예제 #1
0
QpGenTaoLinsys::QpGenTaoLinsys(  QpGen * factory,
				       QpGenData * data,
				       LinearAlgebraPackage * la,
				       SparseSymMatrix * Mat_in,
				       DoubleLinearSolver * solver_in )
  : QpGenLinsys( factory, data, la ), solver(solver_in)
{
  SpReferTo( Mat, Mat_in );
}
예제 #2
0
파일: sResiduals.C 프로젝트: fqiang/PIPS
sResiduals::sResiduals( sTree* tree,
			OoqpVector * ixlow_, OoqpVector * ixupp_,
			OoqpVector * iclow_, OoqpVector * icupp_ )
  :NlpGenResiduals()
{

  SpReferTo( ixlow, ixlow_ );
  nxlow = ixlow->numberOfNonzeros();

  SpReferTo( ixupp, ixupp_ );
  nxupp = ixupp->numberOfNonzeros();

  SpReferTo( iclow, iclow_ );
  mclow = iclow->numberOfNonzeros();

  SpReferTo( icupp, icupp_ );
  mcupp = icupp->numberOfNonzeros();

  rQ = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );
  rA = OoqpVectorHandle( (OoqpVector*) tree->newDualYVector() );
  rC = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );

  rz = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );
  if ( mclow > 0 ) {
    rt      = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );
    rlambda = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );
  } else {
    rt      = OoqpVectorHandle( (OoqpVector*) tree->newDualZVectorEmpty() );
    rlambda = OoqpVectorHandle( (OoqpVector*) tree->newDualZVectorEmpty() );
  }

  if ( mcupp > 0 ) {
    ru     = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );
    rpi    = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );
  } else {
    ru     = OoqpVectorHandle( (OoqpVector*) tree->newDualZVectorEmpty() );
    rpi    = OoqpVectorHandle( (OoqpVector*) tree->newDualZVectorEmpty() );
  }

  if( nxlow > 0 ) {
    rv     = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );
    rgamma = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );
  } else {
    rv     = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVectorEmpty() );
    rgamma = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVectorEmpty() );
  }

  if( nxupp > 0 ) {
    rw   = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );
    rphi = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );
  } else {
    rw   = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVectorEmpty() );
    rphi = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVectorEmpty() );
  }

  rp_OriSys = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );
  rd_OriSys = OoqpVectorHandle( (OoqpVector*) tree->newDualYVector() );

  priWrk = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );
  dualWrk = OoqpVectorHandle( (OoqpVector*) tree->newDualYVector() );
  dualWrk_Z = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );
  priWrk_S = OoqpVectorHandle( (OoqpVector*) tree->newDualZVector() );

  Wd  = OoqpVectorHandle( (OoqpVector*) tree->newPrimalVector() );

  
  stochNode = tree;
}
예제 #3
0
파일: sResiduals.C 프로젝트: fqiang/PIPS
sResiduals::sResiduals( sTree* tree, 
			OoqpVector * rQ_,    OoqpVector * rA_, 
			OoqpVector * rC_,    OoqpVector * rz_, 
			OoqpVector * rt_,    OoqpVector * rlambda_, 
			OoqpVector * ru_,    OoqpVector * rpi_, 
			OoqpVector * rv_,    OoqpVector * rgamma_, 
			OoqpVector * rw_,    OoqpVector * rphi_, 
			OoqpVector * ixlow_, double nxlowGlobal,
			OoqpVector * ixupp_, double nxuppGlobal,
			OoqpVector * iclow_, double mclowGlobal, 
			OoqpVector * icupp_, double mcuppGlobal)
  :NlpGenResiduals()
{
  assert(false);
  SpReferTo( ixlow, ixlow_ );
  nxlow = nxlowGlobal;

  SpReferTo( ixupp, ixupp_ );
  nxupp = nxuppGlobal;

  SpReferTo( iclow, iclow_ );
  mclow = mclowGlobal;

  SpReferTo( icupp, icupp_ );
  mcupp = mcuppGlobal;

  SpReferTo( rQ, rQ_ );
  SpReferTo( rA, rA_ );
  SpReferTo( rC, rC_ );
  SpReferTo( rz, rz_ );
  SpReferTo( rt     , rt_ );
  SpReferTo( rlambda, rlambda_ );
  SpReferTo( ru    , ru_ );
  SpReferTo( rpi   , rpi_ );
  SpReferTo( rv    , rpi_ );
  SpReferTo( rgamma, rgamma_ );
  SpReferTo( rw  , rw_ );
  SpReferTo( rphi, rphi_ );

  stochNode = tree;
  createChildren();
}
예제 #4
0
Ma27Solver::Ma27Solver( SparseSymMatrix * sgm ) :
  Ma27SolverBase( sgm->size(), sgm->numberOfNonZeros() )
{
  SpReferTo( mMat, sgm );
}
예제 #5
0
파일: QpGenData.C 프로젝트: fqiang/PIPS
QpGenData::QpGenData( LinearAlgebraPackage * la_in,
		      OoqpVector * c_in, SymMatrix * Q_in,
		      OoqpVector * xlow_in, OoqpVector * ixlow_in,
		      OoqpVector * xupp_in, OoqpVector * ixupp_in,
		      GenMatrix  * A_in, OoqpVector * bA_in,
		      GenMatrix  * C_in,
		      OoqpVector * clow_in, OoqpVector * iclow_in,
		      OoqpVector * cupp_in, OoqpVector * icupp_in )
{
  SpReferTo( g,     c_in  );
  SpReferTo( bA,    bA_in );
  SpReferTo( blx,   xlow_in  );
  SpReferTo( ixlow, ixlow_in );
  SpReferTo( bux,   xupp_in  );
  SpReferTo( ixupp, ixupp_in );
  SpReferTo( bl,    clow_in  );
  SpReferTo( iclow, iclow_in );
  SpReferTo( bu,    cupp_in  );
  SpReferTo( icupp, icupp_in );

  long long dummy;
  la = la_in;

  nx = g->length();
  SpReferTo( Q, Q_in );



  SpReferTo( A, A_in );
  A->getSize( my, dummy );
  
  SpReferTo( C, C_in );
  C->getSize( mz, dummy );
}