142 Real
zero(0), one(1);
143 ROL_TEST_FOR_EXCEPTION((
prob_ <=
zero) || (
prob_ >= one), std::invalid_argument,
144 ">>> ERROR (ROL::GenMoreauYosidaCVaR): Confidence level must be between 0 and 1!");
145 ROL_TEST_FOR_EXCEPTION((
lam_ <
zero) || (
lam_ > one), std::invalid_argument,
146 ">>> ERROR (ROL::GenMoreauYosidaCVaR): Convex combination parameter must be positive!");
147 ROL_TEST_FOR_EXCEPTION((
eps_ <=
zero), std::invalid_argument,
148 ">>> ERROR (ROL::GenMoreauYosidaCVaR): Smoothing parameter must be positive!");
228 Real
zero(0), one(1), two(2), p1(0.1);
236 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(ub) is correct? \n";
237 std::cout << std::right << std::setw(20) <<
"t"
238 << std::setw(20) <<
"v'(x)"
239 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t"
240 << std::setw(20) <<
"Error"
242 for (
int i = 0; i < 13; i++) {
245 diff = (vy-vx)/(two*t);
246 err = std::abs(diff-dv);
247 std::cout << std::scientific << std::setprecision(11) << std::right
248 << std::setw(20) << t
249 << std::setw(20) << dv
250 << std::setw(20) << diff
251 << std::setw(20) << err
263 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v''(ub) is correct? \n";
264 std::cout << std::right << std::setw(20) <<
"t"
265 << std::setw(20) <<
"v''(x)"
266 << std::setw(20) <<
"(v'(x+t)-v'(x-t))/2t"
267 << std::setw(20) <<
"Error"
269 for (
int i = 0; i < 13; i++) {
272 diff = (vy-vx)/(two*t);
273 err = std::abs(diff-dv);
274 std::cout << std::scientific << std::setprecision(11) << std::right
275 << std::setw(20) << t
276 << std::setw(20) << dv
277 << std::setw(20) << diff
278 << std::setw(20) << err
291 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(0) is correct? \n";
292 std::cout << std::right << std::setw(20) <<
"t"
293 << std::setw(20) <<
"v'(x)"
294 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t"
295 << std::setw(20) <<
"Error"
297 for (
int i = 0; i < 13; i++) {
300 diff = (vy-vx)/(two*t);
301 err = std::abs(diff-dv);
302 std::cout << std::scientific << std::setprecision(11) << std::right
303 << std::setw(20) << t
304 << std::setw(20) << dv
305 << std::setw(20) << diff
306 << std::setw(20) << err
318 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v''(0) is correct? \n";
319 std::cout << std::right << std::setw(20) <<
"t"
320 << std::setw(20) <<
"v''(x)"
321 << std::setw(20) <<
"(v'(x+t)-v'(x-t))/2t"
322 << std::setw(20) <<
"Error"
324 for (
int i = 0; i < 13; i++) {
327 diff = (vy-vx)/(two*t);
328 err = std::abs(diff-dv);
329 std::cout << std::scientific << std::setprecision(11) << std::right
330 << std::setw(20) << t
331 << std::setw(20) << dv
332 << std::setw(20) << diff
333 << std::setw(20) << err
346 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(lb) is correct? \n";
347 std::cout << std::right << std::setw(20) <<
"t"
348 << std::setw(20) <<
"v'(x)"
349 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t"
350 << std::setw(20) <<
"Error"
352 for (
int i = 0; i < 13; i++) {
355 diff = (vy-vx)/(two*t);
356 err = std::abs(diff-dv);
357 std::cout << std::scientific << std::setprecision(11) << std::right
358 << std::setw(20) << t
359 << std::setw(20) << dv
360 << std::setw(20) << diff
361 << std::setw(20) << err
373 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v''(lb) is correct? \n";
374 std::cout << std::right << std::setw(20) <<
"t"
375 << std::setw(20) <<
"v''(x)"
376 << std::setw(20) <<
"(v'(x+t)-v'(x-t))/2t"
377 << std::setw(20) <<
"Error"
379 for (
int i = 0; i < 13; i++) {
382 diff = (vy-vx)/(two*t);
383 err = std::abs(diff-dv);
384 std::cout << std::scientific << std::setprecision(11) << std::right
385 << std::setw(20) << t
386 << std::setw(20) << dv
387 << std::setw(20) << diff
388 << std::setw(20) << err