42 #ifndef NLP_SECOND_ORDER_INFO_H
43 #define NLP_SECOND_ORDER_INFO_H
47 namespace NLPInterfacePack {
139 virtual void set_HL(MatrixSymOp*
HL);
146 virtual MatrixSymOp*
get_HL();
154 virtual MatrixSymOp&
HL();
162 virtual const MatrixSymOp&
HL()
const;
219 const Vector& x,
const Vector* lambda,
bool newpoint =
true)
const;
242 :
HL(NULL),
Gc(NULL),
Gf(NULL),
f(NULL),
c(NULL)
246 :
HL(HL_in),
Gc(first_order_info.
Gc),
Gf(first_order_info.
Gf)
247 ,
f(first_order_info.
f),
c(first_order_info.
c)
299 #ifdef DOXYGEN_COMPILE
318 #endif // NLP_SECOND_ORDER_INFO_H
AbstractLinAlgPack::size_type size_type
NLPSecondOrder()
Initialize to no reference set to calculation quanities.
Teuchos::AbstractFactory< AbstractLinAlgPack::MatrixSymOp > * factory_HL
VectorMutable * c
Pointer to equality constraints residule c (may be NULL if not set)
Abstract interface for immutable, finite dimensional, coordinate vectors {abstract}.
MatrixOp * Gc
Pointer to Hessian of the equality constraints Gc (may be NULL if not set)
virtual MatrixSymOp & HL()
Returns non-const *this->get_HL().
const FirstOrderInfo first_order_info() const
Return objective gradient and zero order information.
Struct for zero, first and second order quantities (pointers)
void initialize(bool test_setup)
Initialize the NLP for its first use.
value_type * f
Pointer to objective function f (may be NULL if not set)
virtual void set_HL(MatrixSymOp *HL)
Set a pointer to a matrix object to be updated when this->calc_HL() is called.
MatrixSymOp * HL
Pointer to Hessiand of the Lagrangian HL) (may be NULL is not set)
Struct for zero and first order quantities (pointers)
virtual size_type num_HL_evals() const
Number of Hessian evaluations.
NLP first order information interface class {abstract}.
virtual MatrixSymOp * get_HL()
Return pointer passed to this->set_HL().
virtual void imp_calc_HL(const Vector &x, const Vector *lambda, bool newpoint, const SecondOrderInfo &second_order_info) const =0
Overridden to compute Gc(x) and perhaps Gf(x), f(x) and c(x).
void unset_quantities()
Call to unset all storage quantities (both in this class and all subclasses).
AbstractLinAlgPack::value_type value_type
VectorMutable * Gf
Pointer to gradient of objective function Gf (may be NULL if not set)
Abstract interface for mutable coordinate vectors {abstract}.
virtual void calc_HL(const Vector &x, const Vector *lambda, bool newpoint=true) const
Update the matrix for HL at the point x, lambda, lambdaI and put it in the stored reference...
Teuchos::RCP< const Teuchos::AbstractFactory< MatrixSymOp > > mat_sym_fcty_ptr_t
SecondOrderInfo(MatrixSymOp *HL_in, const FirstOrderInfo &first_order_info)
virtual const mat_sym_fcty_ptr_t factory_HL() const =0
Return a matrix factory object for creating HL.
NLP second order information interface class {abstract}.
const SecondOrderInfo second_order_info() const
Return objective gradient and zero order information.