42 #include "ConstrainedOptPack_MeritFuncNLPModL1.hpp"
43 #include "AbstractLinAlgPack_VectorMutable.hpp"
44 #include "AbstractLinAlgPack_VectorStdOps.hpp"
45 #include "Teuchos_Assert.hpp"
47 namespace ConstrainedOptPack {
64 h || hl || hu, std::logic_error
65 ,
"MeritFuncNLPModL1::value(...) : Error! general inequalities are not supported!" );
80 std::ostream& out,
const std::string& L
84 << L <<
"*** Define a modified L1 merit funciton that uses different\n"
85 << L <<
"*** penalty parameters for each constriant.\n"
86 << L <<
"*** (assumes Gc_k'*d_k + c_k = 0):\n"
87 << L <<
"phi(f,c) = f + sum( mu(j) * abs(c(j)), j = 1,...,m )\n"
88 << L <<
"Dphi(x_k,d_k) = Gf_k' * d_k - sum( mu(j) * abs(c(j)), j = 1,...,m )\n";
103 h_k || hl || hu, std::logic_error
104 ,
"MeritFuncNLPModL1::value(...) : Error! general inequalities are not supported!" );
117 mu_ = space_c->create_member();
const Vector & get_mu() const
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
void print_merit_func(std::ostream &out, const std::string &leading_str) const
value_type calc_deriv(const Vector &Gf_k, const Vector *c_k, const Vector *h_k, const Vector *hl, const Vector *hu, const Vector &d_k)
If the value n passed to resize(n) does not equal the size of the vector parameters then an exception...
value_type value(value_type f, const Vector *c, const Vector *h, const Vector *hl, const Vector *hu) const
void set_space_c(const VectorSpace::space_ptr_t &space_c)
MeritFuncNLPModL1()
Initializes deriv() = 0 and mu() = 0.
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)