15#ifndef MINOTAURAMPLNONLINEARFUNCTION_H
16#define MINOTAURAMPLNONLINEARFUNCTION_H
22namespace MINOTAUR_AMPL {
55 double eval(
const double *x,
int *error);
61 void evalHessian(
const double mult,
const double *x,
72 void fillJac(
const double *,
double *,
int *);
75 void getVars(Minotaur::VariableSet *);
81 void prepJac(Minotaur::VarSetConstIter, Minotaur::VarSetConstIter);
92 void setVars(Minotaur::VarSetConstIterator vb,
93 Minotaur::VarSetConstIterator ve);
96 void write(std::ostream &out)
const;
Declare abstract base class NonlinearFunction.
Declare the AMPLNonlinearFunction class for setting up evaluation and derivatives of nonlinear Functi...
Definition: AMPLNonlinearFunction.h:31
void getVars(Minotaur::VariableSet *)
Get variables used in this function.
Definition: AMPLNonlinearFunction.cpp:120
void write(std::ostream &out) const
Display the nonlinear function.
Definition: AMPLNonlinearFunction.cpp:151
void finalHessStor(const Minotaur::LTHessStor *)
Finalize hessian preparation.
Definition: AMPLNonlinearFunction.cpp:108
void fillHessStor(Minotaur::LTHessStor *)
Fill sparsity of hessian into hessian storage.
Definition: AMPLNonlinearFunction.cpp:102
void evalGradient(const double *x, double *grad_f, int *error)
Evaluate and add gradient at a given point.
Definition: AMPLNonlinearFunction.cpp:73
void fillJac(const double *, double *, int *)
Evaluate and add gradient at a given point to the jacobian.
Definition: AMPLNonlinearFunction.cpp:114
void evalHessian(const double mult, const double *x, const Minotaur::LTHessStor *stor, double *values, int *error)
Evaluate and add hessian at a given point.
Definition: AMPLNonlinearFunction.cpp:94
void setVars(Minotaur::VarSetConstIterator vb, Minotaur::VarSetConstIterator ve)
Tell what variables are in this function.
Definition: AMPLNonlinearFunction.cpp:144
double eval(const double *x, int *error)
Evaluate the function at a given point x.
Definition: AMPLNonlinearFunction.cpp:53
void prepJac(Minotaur::VarSetConstIter, Minotaur::VarSetConstIter)
Prepare for evaluating sparse jacobian.
Definition: AMPLNonlinearFunction.cpp:137
Minotaur::NonlinearFunctionPtr cloneWithVars(Minotaur::VariableConstIterator vbeg, int *err) const
Make a clone using new variables.
Definition: AMPLNonlinearFunction.cpp:45
AMPLNonlinearFunction()
Default constructor.
Definition: AMPLNonlinearFunction.cpp:21
void multiply(double c)
Multiply by a constant.
Definition: AMPLNonlinearFunction.cpp:129
Base class for nonlinear functions.
Definition: NonlinearFunction.h:31
unsigned int UInt
Unsigned integer.
Definition: Types.h:30
Definition: HessianOfLag.h:21