44 #ifndef ROL_TRUNCATEDMEANQUAD_HPP 45 #define ROL_TRUNCATEDMEANQUAD_HPP 62 Real
error(Real x,
int deriv = 0) {
63 bool inside = ((abs_->evaluate(x,0) <=
beta_) ?
true :
false );
66 err = (inside ? 0.5*std::pow(x,2.0)/beta_ : std::abs(x)-0.5*
beta_);
69 err = (inside ? x/beta_ : ((0.0 < x) - (x < 0.0)))
72 err = (inside ? 1.0/beta_ : 0.0);
78 Real X = ((deriv==0) ? x : ((deriv==1) ? 1.0 : 0.0));
79 Real reg =
error(x,deriv) + X;
87 Real vx = 0.0, vy = 0.0;
92 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(beta) is correct? \n";
93 std::cout << std::right << std::setw(20) <<
"t" 94 << std::setw(20) <<
"v'(x)" 95 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t" 96 << std::setw(20) <<
"Error" 98 for (
int i = 0; i < 13; i++) {
101 diff = (vy-vx)/(2.0*t);
102 err = std::abs(diff-dv);
103 std::cout << std::scientific << std::setprecision(11) << std::right
104 << std::setw(20) << t
105 << std::setw(20) << dv
106 << std::setw(20) << diff
107 << std::setw(20) << err
120 std::cout << std::right << std::setw(20) <<
"CHECK REGRET: v'(-beta) is correct? \n";
121 std::cout << std::right << std::setw(20) <<
"t" 122 << std::setw(20) <<
"v'(x)" 123 << std::setw(20) <<
"(v(x+t)-v(x-t))/2t" 124 << std::setw(20) <<
"Error" 126 for (
int i = 0; i < 13; i++) {
129 diff = (vy-vx)/(2.0*t);
130 err = std::abs(diff-dv);
131 std::cout << std::scientific << std::setprecision(11) << std::right
132 << std::setw(20) << t
133 << std::setw(20) << dv
134 << std::setw(20) << diff
135 << std::setw(20) << err
virtual void checkRegret(void)
TruncatedMeanQuadrangle(Real beta)
Real error(Real x, int deriv=0)
Real regret(Real x, int deriv=0)