Esempio n. 1
0
ArrayXd GoSUM::CModelVariables::expandNTuple(const ArrayXd &X) const
{
    if ( X.size()!=mvs.size() )  throw "GoSUM::CModelVariables::expand error: wrong X size";
    int i,j,k,N=int(mvs.size()),eN=expandedSize(),exsize;
    ArrayXd eX=ArrayXd::Zero(eN);
    for ( i=j=0; i<N; i++,j+=exsize )
    {   exsize=mvs[i].expandedSize();
        if ( exsize==1 )  {  eX(j)=X(i);  }
        else              {  for ( k=0; k<exsize; k++ )  if (k==X(i)) { eX(j+k) = 1.; break; } } }
    return eX;
}
Esempio n. 2
0
    parzenWindowEstimator1D::parzenWindowEstimator1D()
    {
        dim = 1;

        Matrix eX(1,2);
        eX(0,0) = -0.1;        eX(0,1) =  0.2;

        std::vector<int> bN; bN.push_back(20);

        resize(eX,bN);
    }
Esempio n. 3
0
ArrayXd GoSUM::CModelVariables::expandedNTuple(int _at) const
{
    int i,j,k,N=int(mvs.size()),eN=expandedSize(),exsize;
    ArrayXd eX=ArrayXd::Zero(eN);
    for ( i=j=0; i<N; i++,j+=exsize )
    {   exsize=mvs[i].expandedSize();
        if ( exsize==1 )  {  eX(j)=mvs[i].sampleValue(_at);  }
        else              {  for ( k=0; k<exsize; k++ )  if (k==mvs[i].sampleValue(_at)) { eX(j+k) = 1.; break; }  }  }
    return eX;
}
Esempio n. 4
0
	void Rotate_002( )
	{
		vector_type eX( 1, 0, 0 );
		vector_type eY( 0, 1, 0 );
		quaternion_type q = quaternion_type::rotate( eX, eY );

		vector_type _eX = q.rotate( eY );

		CPPUNIT_ASSERTION_DOUBLES_EQUAL( _eX.x, value_type( -1 ), 1.0e-6 );
		CPPUNIT_ASSERTION_DOUBLES_EQUAL( _eX.y, value_type( 0 ), 1.0e-6 );
		CPPUNIT_ASSERTION_DOUBLES_EQUAL( _eX.z, value_type( 0 ), 1.0e-6 );
	}
bool tEpetraThyraConverter::test_single_blockEpetraToThyra(int verbosity, std::ostream & os)
{
   bool status;
   bool allPassed = true;

   const Epetra_Comm & Comm = *GetComm();
   const RCP<const Teuchos::Comm<Teuchos::Ordinal> > tComm = Thyra::create_Comm(rcpFromRef(Comm));
 
   // get process information
   int numProc = Comm.NumProc();
   // int myPID   = Comm.MyPID();

   // how big is this vector
   int myElmts = 1000;
   int glElmts = myElmts*numProc;

   // build vector space
   const RCP<const Thyra::VectorSpaceBase<double> > vs
         = Thyra::defaultSpmdVectorSpace<double>(tComm,myElmts,glElmts); 
   const RCP<const Thyra::VectorSpaceBase<double> > prodVS = vs;
 
   // from the vector space build an epetra map
   const RCP<const Epetra_Map> map = Teko::Epetra::thyraVSToEpetraMap(*prodVS,rcpFromRef(Comm));
   
   // build an epetra multivector 
   int vecs = 10;
   Epetra_MultiVector eX(*map,vecs);
   eX.Random();

   // build a Thyra copy of this Epetra_MultiVector
   const RCP<Thyra::MultiVectorBase<double> >  tX = Thyra::createMembers(prodVS,eX.NumVectors());
   Teko::Epetra::blockEpetraToThyra(eX,tX.ptr());

   TEST_ASSERT(tX!=Teuchos::null,
            "\n   tEpetraThyraConverter::test_single_blockEpetraToThyra: " << toString(status) 
         << ": blockEpetraToThyra returns not null");

   double result = compareEpetraMVToThyra(eX,tX,verbosity,os);
   TEST_ASSERT(result==0.0,
            "\n   tEpetraThyraConverter::test_single_blockEpetraToThyra: " << toString(status) 
         << ": Epetra MV is compared to Thyra MV (maxdiff = " << result << ")");

   return allPassed;
}