55 const Teuchos::RCP<const Epetra_BlockMap>& block_map) :
65 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
66 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
67 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm,
78 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
79 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
80 const Teuchos::RCP<const Epetra_BlockMap>& product_map,
81 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm,
93 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
94 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
95 const Teuchos::RCP<const Epetra_BlockMap>& product_map,
96 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm,
129 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
130 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
131 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm,
136 this->basis_ = new_basis;
143 const Teuchos::RCP<const Epetra_BlockMap>& block_map,
144 const Teuchos::RCP<const Epetra_BlockMap>& coeff_map,
145 const Teuchos::RCP<const Epetra_BlockMap>& product_map,
146 const Teuchos::RCP<const EpetraExt::MultiComm>& product_comm,
151 this->basis_ = new_basis;
158 int lid = this->map_->LID(0);
159 v.
Scale(1.0, *(this->coeff_[lid]));
166 const Teuchos::Array<double>& nrm2 = this->basis_->norm_squared();
169 for (
int i=1; i<this->size(); i++) {
170 i_gid = this->map_->GID(i);
171 v.
Multiply(nrm2[i_gid], *(this->coeff_[i]), *(this->coeff_[i]), 1.0);
void computeStandardDeviation(Epetra_MultiVector &v) const
Compute standard deviation.
KOKKOS_INLINE_FUNCTION PCE< Storage > sqrt(const PCE< Storage > &a)
void computeVariance(Epetra_MultiVector &v) const
Compute variance.
const IndexType num_vectors
virtual ~EpetraMultiVectorOrthogPoly()
Destructor.
EpetraMultiVectorOrthogPoly & operator=(const EpetraMultiVectorOrthogPoly &v)
Assignment.
int PutScalar(double ScalarConstant)
void reset(const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &basis, const Teuchos::RCP< const Epetra_BlockMap > &block_map, const Teuchos::RCP< const Epetra_BlockMap > &coeff_map, const Teuchos::RCP< const EpetraExt::MultiComm > &product_comm, int num_vectors)
Reset to a new basis.
ProductEpetraMultiVector & operator=(const ProductEpetraMultiVector &v)
Assignment.
void computeMean(Epetra_MultiVector &v) const
Compute mean.
int Scale(double ScalarValue)
void reset(const Teuchos::RCP< const Epetra_BlockMap > &block_map, const Teuchos::RCP< const Epetra_BlockMap > &coeff_map, const Teuchos::RCP< const EpetraExt::MultiComm > &product_comm, int num_vectors)
Reset to a new size.
A container class storing products of Epetra_MultiVector's.
Teuchos::RCP< const Stokhos::OrthogPolyBasis< ordinal_type, value_type > > basis_
Basis.
A product (in the mathematical sense) container class whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
A container class storing an orthogonal polynomial whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
int Multiply(char TransA, char TransB, double ScalarAB, const Epetra_MultiVector &A, const Epetra_MultiVector &B, double ScalarThis)
EpetraMultiVectorOrthogPoly()
Constructor with no basis.
A container class storing an orthogonal polynomial whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.