108 Real
zero(0), one(1);
109 ROL_TEST_FOR_EXCEPTION((
prob_ <=
zero) || (
prob_ >= one), std::invalid_argument,
110 ">>> ERROR (ROL::GenMoreauYosidaCVaR): Confidence level must be between 0 and 1!");
111 ROL_TEST_FOR_EXCEPTION((
lam_ <
zero) || (
lam_ > one), std::invalid_argument,
112 ">>> ERROR (ROL::GenMoreauYosidaCVaR): Convex combination parameter must be positive!");
113 ROL_TEST_FOR_EXCEPTION((
eps_ <=
zero), std::invalid_argument,
114 ">>> ERROR (ROL::GenMoreauYosidaCVaR): Smoothing parameter must be positive!");
194 Real
zero(0), one(1), two(2), p1(0.1);
202 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(ub) is correct? \n";
203 std::cout << std::right << std::setw(20) <<
"t"
204 << std::setw(20) <<
"v'(x)"
205 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t"
206 << std::setw(20) <<
"Error"
208 for (
int i = 0; i < 13; i++) {
211 diff = (vy-vx)/(two*t);
212 err = std::abs(diff-dv);
213 std::cout << std::scientific << std::setprecision(11) << std::right
214 << std::setw(20) << t
215 << std::setw(20) << dv
216 << std::setw(20) << diff
217 << std::setw(20) << err
229 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v''(ub) is correct? \n";
230 std::cout << std::right << std::setw(20) <<
"t"
231 << std::setw(20) <<
"v''(x)"
232 << std::setw(20) <<
"(v'(x+t)-v'(x-t))/2t"
233 << std::setw(20) <<
"Error"
235 for (
int i = 0; i < 13; i++) {
238 diff = (vy-vx)/(two*t);
239 err = std::abs(diff-dv);
240 std::cout << std::scientific << std::setprecision(11) << std::right
241 << std::setw(20) << t
242 << std::setw(20) << dv
243 << std::setw(20) << diff
244 << std::setw(20) << err
257 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(0) is correct? \n";
258 std::cout << std::right << std::setw(20) <<
"t"
259 << std::setw(20) <<
"v'(x)"
260 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t"
261 << std::setw(20) <<
"Error"
263 for (
int i = 0; i < 13; i++) {
266 diff = (vy-vx)/(two*t);
267 err = std::abs(diff-dv);
268 std::cout << std::scientific << std::setprecision(11) << std::right
269 << std::setw(20) << t
270 << std::setw(20) << dv
271 << std::setw(20) << diff
272 << std::setw(20) << err
284 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v''(0) is correct? \n";
285 std::cout << std::right << std::setw(20) <<
"t"
286 << std::setw(20) <<
"v''(x)"
287 << std::setw(20) <<
"(v'(x+t)-v'(x-t))/2t"
288 << std::setw(20) <<
"Error"
290 for (
int i = 0; i < 13; i++) {
293 diff = (vy-vx)/(two*t);
294 err = std::abs(diff-dv);
295 std::cout << std::scientific << std::setprecision(11) << std::right
296 << std::setw(20) << t
297 << std::setw(20) << dv
298 << std::setw(20) << diff
299 << std::setw(20) << err
312 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(lb) is correct? \n";
313 std::cout << std::right << std::setw(20) <<
"t"
314 << std::setw(20) <<
"v'(x)"
315 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t"
316 << std::setw(20) <<
"Error"
318 for (
int i = 0; i < 13; i++) {
321 diff = (vy-vx)/(two*t);
322 err = std::abs(diff-dv);
323 std::cout << std::scientific << std::setprecision(11) << std::right
324 << std::setw(20) << t
325 << std::setw(20) << dv
326 << std::setw(20) << diff
327 << std::setw(20) << err
339 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v''(lb) is correct? \n";
340 std::cout << std::right << std::setw(20) <<
"t"
341 << std::setw(20) <<
"v''(x)"
342 << std::setw(20) <<
"(v'(x+t)-v'(x-t))/2t"
343 << std::setw(20) <<
"Error"
345 for (
int i = 0; i < 13; i++) {
348 diff = (vy-vx)/(two*t);
349 err = std::abs(diff-dv);
350 std::cout << std::scientific << std::setprecision(11) << std::right
351 << std::setw(20) << t
352 << std::setw(20) << dv
353 << std::setw(20) << diff
354 << std::setw(20) << err