44 #ifndef ROL_EXPUTILITY_HPP 45 #define ROL_EXPUTILITY_HPP 77 TEUCHOS_TEST_FOR_EXCEPTION((
coeff_ <= zero), std::invalid_argument,
78 ">>> ERROR (ROL::ExpUtility): Rate must be positive!");
101 Teuchos::ParameterList &list
102 = parlist.sublist(
"SOL").sublist(
"Risk Measure").sublist(
"Exponential Utility");
103 coeff_ = list.get<Real>(
"Rate");
125 void update(
const Real val,
const Real weight) {
131 sampler.
sumAll(&val,&ev,1);
132 return std::log(ev)/
coeff_;
136 Real ev = std::exp(
coeff_*val);
143 sampler.
sumAll(&val,&ev,1);
153 Real ev = std::exp(
coeff_*val);
163 std::vector<Real> myval(2), val(2);
166 sampler.
sumAll(&myval[0],&val[0],2);
void reset(Teuchos::RCP< Vector< Real > > &x0, const Vector< Real > &x, Teuchos::RCP< Vector< Real > > &v0, const Vector< Real > &v)
Reset internal risk measure storage. Called for Hessian-times-a-vector computation.
ExpUtility(const Real coeff=1)
Constructor.
Provides an interface for the entropic risk.
void update(const Real val, const Vector< Real > &g, const Real weight)
Update internal risk measure storage for gradient computation.
Teuchos::RCP< Vector< Real > > dualVector2_
void sumAll(Real *input, Real *output, int dim) const
Defines the linear algebra or vector space interface.
void getGradient(Vector< Real > &g, SampleGenerator< Real > &sampler)
Return risk measure (sub)gradient.
void reset(Teuchos::RCP< Vector< Real > > &x0, const Vector< Real > &x)
Reset internal risk measure storage. Called for value and gradient computation.
Teuchos::RCP< Vector< Real > > scaledGradient_
Real getValue(SampleGenerator< Real > &sampler)
Return risk measure value.
void update(const Real val, const Real weight)
Update internal risk measure storage for value computation.
void checkInputs(void) const
void update(const Real val, const Vector< Real > &g, const Real gv, const Vector< Real > &hv, const Real weight)
Update internal risk measure storage for Hessian-time-a-vector computation.
void getHessVec(Vector< Real > &hv, SampleGenerator< Real > &sampler)
Return risk measure Hessian-times-a-vector.
virtual void reset(Teuchos::RCP< Vector< Real > > &x0, const Vector< Real > &x)
Reset internal risk measure storage. Called for value and gradient computation.
ExpUtility(Teuchos::ParameterList &parlist)
Constructor.
Teuchos::RCP< Vector< Real > > dualVector1_
Provides the interface to implement risk measures.