53 #include "Teuchos_oblackholestream.hpp" 54 #include "Teuchos_GlobalMPISession.hpp" 65 using Teuchos::ArrayRCP;
71 std::vector<RealT> norms(numVectors);
74 for(
int i=0;i<numVectors;++i) {
81 int main(
int argc,
char *argv[]) {
83 Teuchos::GlobalMPISession mpiSession(&argc,&argv);
85 int iprint = argc - 1;
86 Teuchos::RCP<std::ostream> outStream;
87 Teuchos::oblackholestream bhs;
89 outStream = Teuchos::rcp(&std::cout,
false);
91 outStream = Teuchos::rcp(&bhs,
false);
97 Teuchos::SerialDenseMatrix<int,RealT> M(2,2,
true);
104 Teuchos::RCP<std::vector<RealT> > w_rcp = Teuchos::rcp(
new std::vector<RealT>(2));
105 Teuchos::RCP<std::vector<RealT> > x_rcp = Teuchos::rcp(
new std::vector<RealT>(2));
106 Teuchos::RCP<std::vector<RealT> > y_rcp = Teuchos::rcp(
new std::vector<RealT>(2));
107 Teuchos::RCP<std::vector<RealT> > z_rcp = Teuchos::rcp(
new std::vector<RealT>(2));
126 ArrayRCP<RCP<Vector<RealT> > > A_rcp(2);
127 ArrayRCP<RCP<Vector<RealT> > > B_rcp(2);
139 if(static_cast<int>(
norm_sum(*A)) != 6) {
140 *outStream <<
"Norm test failed!\n";
145 RCP<MultiVector<RealT> > C = A->clone();
147 *outStream <<
"Clone test failed!\n";
152 RCP<MultiVector<RealT> > D = A->deepCopy();
153 if(static_cast<int>(
norm_sum(*D)) != 6) {
154 *outStream <<
"Deep copy test failed!\n";
159 std::vector<int> index(1);
162 RCP<MultiVector<RealT> > S = A->shallowCopy(index);
163 if(static_cast<int>(
norm_sum(*S)) != 1) {
164 *outStream <<
"Shallow copy test failed!\n";
169 std::vector<RealT> alpha(2);
173 if(static_cast<int>(
norm_sum(*A)) != 49) {
174 *outStream <<
"Scaling test failed!\n";
179 A->gemm(2.0,*B,M,1.0);
180 if(static_cast<int>(
norm_sum(*A)) != 53) {
181 *outStream <<
"Matmat multiply test failed! The norm_sum is " <<
static_cast<int>(
norm_sum(*A)) <<
", not equal to 49.\n";
187 if(static_cast<int>(
norm_sum(*A)) != 2) {
188 *outStream <<
"Set test failed!\n";
193 Teuchos::SerialDenseMatrix<int,RealT> P(2,2,
true);
194 B->innerProducts(1.0,*B,P);
195 Teuchos::SerialDenseMatrix<int,RealT> Check(2,2,
true);
201 *outStream <<
"Inner product test failed!\n";
206 std::vector<RealT> dots(2);
208 if(static_cast<int>(dots[0]) != 1 ||
209 static_cast<int>(dots[1]) != 25 ) {
210 *outStream <<
"Dot product test failed!\n";
223 catch(std::logic_error err) {
224 *outStream << err.what() <<
"\n";
228 if (errorFlag != 0) {
229 std::cout <<
"End Result: TEST FAILED\n";
232 std::cout <<
"End Result: TEST PASSED\n";
virtual void norms(std::vector< Real > &normvec) const =0
Compute the norm of each vector in the MultiVector.
Contains definitions of custom data types in ROL.
Provides the std::vector implementation of the ROL::Vector interface.
Real norm_sum(const MultiVector< Real > &A)
Default implementation of the ROL::MultiVector container class.
virtual int getNumberOfVectors() const =0
Get the number of vectors in the MultiVector.
Provides a container and operations on multiple ROL vectors for use with other Trilinos packages whic...
int main(int argc, char *argv[])