46int main(
int argc,
char *argv[]) {
52 ROL::GlobalMPISession mpiSession(&argc, &argv);
54 int iprint = argc - 1;
56 ROL::Ptr<std::ostream> outStream;
60 outStream = ROL::makePtrFromRef(std::cout);
62 outStream = ROL::makePtrFromRef(bhs);
66 RealT errtol = ROL::ROL_THRESHOLD<RealT>();
70 PV::size_type nvec = 3;
79 RealT left = -1e0, right = 1e0;
81 std::vector<ROL::Ptr<V> > x_ptr;
82 std::vector<ROL::Ptr<V> > y_ptr;
83 std::vector<ROL::Ptr<V> > z_ptr;
85 for( PV::size_type k=0; k<nvec; ++k ) {
86 ROL::Ptr<std::vector<RealT> > xk_ptr = ROL::makePtr<std::vector<RealT>>(
dim[k]);
87 ROL::Ptr<std::vector<RealT> > yk_ptr = ROL::makePtr<std::vector<RealT>>(
dim[k]);
88 ROL::Ptr<std::vector<RealT> > zk_ptr = ROL::makePtr<std::vector<RealT>>(
dim[k]);
90 for(
int i=0; i<
dim[k]; ++i ) {
91 (*xk_ptr)[i] = ( (
RealT)rand() / (
RealT)RAND_MAX ) * (right - left) + left;
92 (*yk_ptr)[i] = ( (
RealT)rand() / (
RealT)RAND_MAX ) * (right - left) + left;
93 (*zk_ptr)[i] = ( (
RealT)rand() / (
RealT)RAND_MAX ) * (right - left) + left;
96 ROL::Ptr<V> xk = ROL::makePtr<SV>( xk_ptr );
97 ROL::Ptr<V> yk = ROL::makePtr<SV>( yk_ptr );
98 ROL::Ptr<V> zk = ROL::makePtr<SV>( zk_ptr );
108 ROL::Ptr<V> y = ROL::CreatePartitionedVector<RealT>(y_ptr[0],y_ptr[1],y_ptr[2]);
112 std::vector<RealT> consistency = x.checkVector(*y, z,
true, *outStream);
114 if (checkvec.
norm() > std::sqrt(errtol)) {
120 ROL::Ptr<ROL::Vector<RealT> > zp = x.clone();
122 RealT znorm = zp->norm();
123 *outStream <<
"Norm of ROL::Vector z (first basis vector): " << znorm <<
"\n";
124 if ( std::abs(znorm-1.0) > errtol ) {
125 *outStream <<
"---> POSSIBLE ERROR ABOVE!\n";
129 zp = x.basis(total_dim/2);
131 *outStream <<
"\nNorm of ROL::Vector z ('middle' basis vector): " << znorm <<
"\n";
132 if ( std::abs(znorm-1.0) > errtol ) {
133 *outStream <<
"---> POSSIBLE ERROR ABOVE!\n";
137 zp = x.basis(total_dim-1);
139 *outStream <<
"\nNorm of ROL::Vector z (last basis vector): " << znorm <<
"\n";
140 if ( std::abs(znorm-1.0) > errtol ) {
141 *outStream <<
"---> POSSIBLE ERROR ABOVE!\n";
147 consistency = x.checkVector(x, x,
true, *outStream);
148 if (checkvec.
norm() > 0.0) {
153 int m = atoi(argv[1]);
162 catch (std::logic_error& err) {
163 *outStream << err.what() <<
"\n";
168 std::cout <<
"End Result: TEST FAILED\n";
170 std::cout <<
"End Result: TEST PASSED\n";