83 ROL::Ptr<const vector> xp = getVector<XPrim>(x);
84 ROL::Ptr<vector> gp = getVector<XDual>(g);
87 ROL_TEST_FOR_EXCEPTION( (n != 5), std::invalid_argument,
">>> ERROR (ROL_SimpleEqConstrained, objective gradient): "
88 " Primal vector x must be of length 5.");
91 ROL_TEST_FOR_EXCEPTION( (n != 5), std::invalid_argument,
">>> ERROR (ROL_SimpleEqConstrained, objective gradient): "
92 "Gradient vector g must be of length 5.");
100 Real expxi = exp(x1*x2*x3*x4*x5);
102 (*gp)[0] = x2*x3*x4*x5 * expxi - 3*pow(x1,2) * (pow(x1,3) + pow(x2,3) + 1);
103 (*gp)[1] = x1*x3*x4*x5 * expxi - 3*pow(x2,2) * (pow(x1,3) + pow(x2,3) + 1);
104 (*gp)[2] = x1*x2*x4*x5 * expxi;
105 (*gp)[3] = x1*x2*x3*x5 * expxi;
106 (*gp)[4] = x1*x2*x3*x4 * expxi;
112 ROL::Ptr<const vector> xp = getVector<XPrim>(x);
113 ROL::Ptr<const vector> vp = getVector<XPrim>(v);
114 ROL::Ptr<vector> hvp = getVector<XDual>(hv);
117 ROL_TEST_FOR_EXCEPTION( (n != 5), std::invalid_argument,
">>> ERROR (ROL_SimpleEqConstrained, objective hessVec): "
118 "Primal vector x must be of length 5.");
121 ROL_TEST_FOR_EXCEPTION( (n != 5), std::invalid_argument,
">>> ERROR (ROL_SimpleEqConstrained, objective hessVec): "
122 "Input vector v must be of length 5.");
125 ROL_TEST_FOR_EXCEPTION( (n != 5), std::invalid_argument,
">>> ERROR (ROL_SimpleEqConstrained, objective hessVec): "
126 "Output vector hv must be of length 5.");
140 Real expxi = exp(x1*x2*x3*x4*x5);
142 (*hvp)[0] = ( pow(x2,2)*pow(x3,2)*pow(x4,2)*pow(x5,2)*expxi-9.0*pow(x1,4)-6.0*(pow(x1,3)+pow(x2,3)+1.0)*x1 ) * v1 +
143 ( x3*x4*x5*expxi+x2*pow(x3,2)*pow(x4,2)*pow(x5,2)*x1*expxi-9.0*pow(x2,2)*pow(x1,2) ) * v2 +
144 ( x2*x4*x5*expxi+pow(x2,2)*x3*pow(x4,2)*pow(x5,2)*x1*expxi ) * v3 +
145 ( x2*x3*x5*expxi+pow(x2,2)*pow(x3,2)*x4*pow(x5,2)*x1*expxi ) * v4 +
146 ( x2*x3*x4*expxi+pow(x2,2)*pow(x3,2)*pow(x4,2)*x5*x1*expxi ) * v5;
148 (*hvp)[1] = ( x3*x4*x5*expxi+x2*pow(x3,2)*pow(x4,2)*pow(x5,2)*x1*expxi-9.0*pow(x2,2)*pow(x1,2) ) * v1 +
149 ( pow(x1,2)*pow(x3,2)*pow(x4,2)*pow(x5,2)*expxi-9.0*pow(x2,4)-6.0*(pow(x1,3)+pow(x2,3)+1.0)*x2 ) * v2 +
150 ( x1*x4*x5*expxi+pow(x1,2)*x3*pow(x4,2)*pow(x5,2)*x2*expxi ) * v3 +
151 ( x1*x3*x5*expxi+pow(x1,2)*pow(x3,2)*x4*pow(x5,2)*x2*expxi ) * v4 +
152 ( x1*x3*x4*expxi+pow(x1,2)*pow(x3,2)*pow(x4,2)*x5*x2*expxi ) * v5;
154 (*hvp)[2] = ( x2*x4*x5*expxi+pow(x2,2)*x3*pow(x4,2)*pow(x5,2)*x1*expxi ) * v1 +
155 ( x1*x4*x5*expxi+pow(x1,2)*x3*pow(x4,2)*pow(x5,2)*x2*expxi ) * v2 +
156 ( pow(x1,2)*pow(x2,2)*pow(x4,2)*pow(x5,2)*expxi ) * v3 +
157 ( x1*x2*x5*expxi+pow(x1,2)*pow(x2,2)*x4*pow(x5,2)*x3*expxi ) * v4 +
158 ( x1*x2*x4*expxi+pow(x1,2)*pow(x2,2)*pow(x4,2)*x5*x3*expxi ) * v5;
160 (*hvp)[3] = ( x2*x3*x5*expxi+pow(x2,2)*pow(x3,2)*x4*pow(x5,2)*x1*expxi ) * v1 +
161 ( x1*x3*x5*expxi+pow(x1,2)*pow(x3,2)*x4*pow(x5,2)*x2*expxi ) * v2 +
162 ( x1*x2*x5*expxi+pow(x1,2)*pow(x2,2)*x4*pow(x5,2)*x3*expxi ) * v3 +
163 ( pow(x1,2)*pow(x2,2)*pow(x3,2)*pow(x5,2)*expxi ) * v4 +
164 ( x1*x2*x3*expxi+pow(x1,2)*pow(x2,2)*pow(x3,2)*x5*x4*expxi ) * v5;
166 (*hvp)[4] = ( x2*x3*x4*expxi+pow(x2,2)*pow(x3,2)*pow(x4,2)*x5*x1*expxi ) * v1 +
167 ( x1*x3*x4*expxi+pow(x1,2)*pow(x3,2)*pow(x4,2)*x5*x2*expxi ) * v2 +
168 ( x1*x2*x4*expxi+pow(x1,2)*pow(x2,2)*pow(x4,2)*x5*x3*expxi ) * v3 +
169 ( x1*x2*x3*expxi+pow(x1,2)*pow(x2,2)*pow(x3,2)*x5*x4*expxi ) * v4 +
170 ( pow(x1,2)*pow(x2,2)*pow(x3,2)*pow(x4,2)*expxi ) * v5;