ROL
|
#include <ROL_LinearCombinationObjective_SimOpt.hpp>
Public Member Functions | |
LinearCombinationObjective_SimOpt (const std::vector< ROL::Ptr< Objective_SimOpt< Real > > > &obj) | |
LinearCombinationObjective_SimOpt (const std::vector< Real > &weights, const std::vector< ROL::Ptr< Objective_SimOpt< Real > > > &obj) | |
void | update (const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) |
Update objective function. u is an iterate, z is an iterate, flag = true if the iterate has changed, iter is the outer algorithm iterations count. More... | |
Real | value (const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
Compute value. More... | |
void | gradient_1 (Vector< Real > &g, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
Compute gradient with respect to first component. More... | |
void | gradient_2 (Vector< Real > &g, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
Compute gradient with respect to second component. More... | |
void | hessVec_11 (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
Apply Hessian approximation to vector. More... | |
void | hessVec_12 (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
void | hessVec_21 (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
void | hessVec_22 (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
void | setParameter (const std::vector< Real > ¶m) |
Public Member Functions inherited from ROL::Objective_SimOpt< Real > | |
void | update (const Vector< Real > &x, bool flag=true, int iter=-1) |
Update objective function. More... | |
Real | value (const Vector< Real > &x, Real &tol) |
Compute value. More... | |
void | gradient (Vector< Real > &g, const Vector< Real > &x, Real &tol) |
Compute gradient. More... | |
void | hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
Apply Hessian approximation to vector. More... | |
std::vector< std::vector< Real > > | checkGradient_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
std::vector< std::vector< Real > > | checkGradient_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &g, const Vector< Real > &d, const bool printToStream, std::ostream &outStream, const int numSteps, const int order) |
std::vector< std::vector< Real > > | checkGradient_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &g, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream, std::ostream &outStream, const int order) |
std::vector< std::vector< Real > > | checkGradient_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
std::vector< std::vector< Real > > | checkGradient_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &g, const Vector< Real > &d, const bool printToStream, std::ostream &outStream, const int numSteps, const int order) |
std::vector< std::vector< Real > > | checkGradient_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &g, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream, std::ostream &outStream, const int order) |
std::vector< std::vector< Real > > | checkHessVec_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream, std::ostream &outStream, const int numSteps, const int order) |
std::vector< std::vector< Real > > | checkHessVec_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream, std::ostream &outStream, const int order) |
std::vector< std::vector< Real > > | checkHessVec_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream, std::ostream &outStream, const int numSteps, const int order) |
std::vector< std::vector< Real > > | checkHessVec_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream, std::ostream &outStream, const int order) |
std::vector< std::vector< Real > > | checkHessVec_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream, std::ostream &outStream, const int numSteps, const int order) |
std::vector< std::vector< Real > > | checkHessVec_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream, std::ostream &outStream, const int order) |
std::vector< std::vector< Real > > | checkHessVec_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
std::vector< std::vector< Real > > | checkHessVec_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream, std::ostream &outStream, const int numSteps, const int order) |
std::vector< std::vector< Real > > | checkHessVec_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream, std::ostream &outStream, const int order) |
Public Member Functions inherited from ROL::Objective< Real > | |
virtual | ~Objective () |
virtual Real | dirDeriv (const Vector< Real > &x, const Vector< Real > &d, Real &tol) |
Compute directional derivative. More... | |
virtual void | invHessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
Apply inverse Hessian approximation to vector. More... | |
virtual void | precond (Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
Apply preconditioner to vector. More... | |
virtual std::vector < std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference gradient check. More... | |
virtual std::vector < std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference gradient check. More... | |
virtual std::vector < std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference gradient check with specified step sizes. More... | |
virtual std::vector < std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference gradient check with specified step sizes. More... | |
virtual std::vector < std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference Hessian-applied-to-vector check. More... | |
virtual std::vector < std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
Finite-difference Hessian-applied-to-vector check. More... | |
virtual std::vector < std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference Hessian-applied-to-vector check with specified step sizes. More... | |
virtual std::vector < std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Finite-difference Hessian-applied-to-vector check with specified step sizes. More... | |
virtual std::vector< Real > | checkHessSym (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout) |
Hessian symmetry check. More... | |
virtual std::vector< Real > | checkHessSym (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout) |
Hessian symmetry check. More... | |
Private Attributes | |
const std::vector< ROL::Ptr < Objective_SimOpt< Real > > > | obj_ |
std::vector< Real > | weights_ |
size_t | size_ |
ROL::Ptr< Vector< Real > > | udual_ |
ROL::Ptr< Vector< Real > > | zdual_ |
bool | uinitialized_ |
bool | zinitialized_ |
Additional Inherited Members | |
Protected Member Functions inherited from ROL::Objective< Real > | |
const std::vector< Real > | getParameter (void) const |
Definition at line 53 of file ROL_LinearCombinationObjective_SimOpt.hpp.
|
inline |
|
inline |
Definition at line 71 of file ROL_LinearCombinationObjective_SimOpt.hpp.
|
inlinevirtual |
Update objective function. u is an iterate, z is an iterate, flag = true if the iterate has changed, iter is the outer algorithm iterations count.
Reimplemented from ROL::Objective_SimOpt< Real >.
Definition at line 78 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::LinearCombinationObjective_SimOpt< Real >::obj_, and ROL::LinearCombinationObjective_SimOpt< Real >::size_.
|
inlinevirtual |
Compute value.
Implements ROL::Objective_SimOpt< Real >.
Definition at line 84 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::LinearCombinationObjective_SimOpt< Real >::size_, and ROL::LinearCombinationObjective_SimOpt< Real >::weights_.
|
inlinevirtual |
Compute gradient with respect to first component.
Reimplemented from ROL::Objective_SimOpt< Real >.
Definition at line 92 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::LinearCombinationObjective_SimOpt< Real >::size_, ROL::LinearCombinationObjective_SimOpt< Real >::udual_, ROL::LinearCombinationObjective_SimOpt< Real >::uinitialized_, ROL::LinearCombinationObjective_SimOpt< Real >::weights_, and ROL::Vector< Real >::zero().
|
inlinevirtual |
Compute gradient with respect to second component.
Reimplemented from ROL::Objective_SimOpt< Real >.
Definition at line 104 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::LinearCombinationObjective_SimOpt< Real >::size_, ROL::LinearCombinationObjective_SimOpt< Real >::weights_, ROL::LinearCombinationObjective_SimOpt< Real >::zdual_, ROL::Vector< Real >::zero(), and ROL::LinearCombinationObjective_SimOpt< Real >::zinitialized_.
|
inlinevirtual |
Apply Hessian approximation to vector.
Reimplemented from ROL::Objective_SimOpt< Real >.
Definition at line 116 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::LinearCombinationObjective_SimOpt< Real >::size_, ROL::LinearCombinationObjective_SimOpt< Real >::udual_, ROL::LinearCombinationObjective_SimOpt< Real >::uinitialized_, ROL::LinearCombinationObjective_SimOpt< Real >::weights_, and ROL::Vector< Real >::zero().
|
inlinevirtual |
Reimplemented from ROL::Objective_SimOpt< Real >.
Definition at line 128 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::LinearCombinationObjective_SimOpt< Real >::size_, ROL::LinearCombinationObjective_SimOpt< Real >::udual_, ROL::LinearCombinationObjective_SimOpt< Real >::uinitialized_, ROL::LinearCombinationObjective_SimOpt< Real >::weights_, and ROL::Vector< Real >::zero().
|
inlinevirtual |
Reimplemented from ROL::Objective_SimOpt< Real >.
Definition at line 140 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::LinearCombinationObjective_SimOpt< Real >::size_, ROL::LinearCombinationObjective_SimOpt< Real >::weights_, ROL::LinearCombinationObjective_SimOpt< Real >::zdual_, ROL::Vector< Real >::zero(), and ROL::LinearCombinationObjective_SimOpt< Real >::zinitialized_.
|
inlinevirtual |
Reimplemented from ROL::Objective_SimOpt< Real >.
Definition at line 152 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::LinearCombinationObjective_SimOpt< Real >::size_, ROL::LinearCombinationObjective_SimOpt< Real >::weights_, ROL::LinearCombinationObjective_SimOpt< Real >::zdual_, ROL::Vector< Real >::zero(), and ROL::LinearCombinationObjective_SimOpt< Real >::zinitialized_.
|
inlinevirtual |
Reimplemented from ROL::Objective< Real >.
Definition at line 166 of file ROL_LinearCombinationObjective_SimOpt.hpp.
References ROL::LinearCombinationObjective_SimOpt< Real >::obj_, ROL::Objective< Real >::setParameter(), and ROL::LinearCombinationObjective_SimOpt< Real >::size_.
|
private |
Definition at line 55 of file ROL_LinearCombinationObjective_SimOpt.hpp.
Referenced by ROL::LinearCombinationObjective_SimOpt< Real >::gradient_1(), ROL::LinearCombinationObjective_SimOpt< Real >::gradient_2(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_11(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_12(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_21(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_22(), ROL::LinearCombinationObjective_SimOpt< Real >::LinearCombinationObjective_SimOpt(), ROL::LinearCombinationObjective_SimOpt< Real >::setParameter(), ROL::LinearCombinationObjective_SimOpt< Real >::update(), and ROL::LinearCombinationObjective_SimOpt< Real >::value().
|
private |
Definition at line 56 of file ROL_LinearCombinationObjective_SimOpt.hpp.
Referenced by ROL::LinearCombinationObjective_SimOpt< Real >::gradient_1(), ROL::LinearCombinationObjective_SimOpt< Real >::gradient_2(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_11(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_12(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_21(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_22(), ROL::LinearCombinationObjective_SimOpt< Real >::LinearCombinationObjective_SimOpt(), and ROL::LinearCombinationObjective_SimOpt< Real >::value().
|
private |
Definition at line 57 of file ROL_LinearCombinationObjective_SimOpt.hpp.
Referenced by ROL::LinearCombinationObjective_SimOpt< Real >::gradient_1(), ROL::LinearCombinationObjective_SimOpt< Real >::gradient_2(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_11(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_12(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_21(), ROL::LinearCombinationObjective_SimOpt< Real >::hessVec_22(), ROL::LinearCombinationObjective_SimOpt< Real >::LinearCombinationObjective_SimOpt(), ROL::LinearCombinationObjective_SimOpt< Real >::setParameter(), ROL::LinearCombinationObjective_SimOpt< Real >::update(), and ROL::LinearCombinationObjective_SimOpt< Real >::value().
|
private |
|
private |
|
private |
|
private |