13#ifndef MINOTAURFUNCTION_H
14#define MINOTAURFUNCTION_H
81 virtual double eval(
const DoubleVector &x,
int *error)
const;
84 virtual double eval(
const double *x,
int *error)
const;
86 virtual void prepJac();
91 virtual void evalGradient(
const double *x,
double *grad_f,
int *error)
94 virtual void fillJac(
const double *x,
double *values,
int *error);
146 virtual void evalHessian(
const double mult,
const double *x,
147 const size_t *offset,
double *values ,
int *error);
148 virtual void evalHessian(
double mult,
const double *x,
149 const LTHessStor *stor,
double *values ,
int *error);
154 std::set<ConstVariablePair, CompareVariablePair> & v_pairs);
157 virtual void finalHessStor(
const LTHessStor *stor);
207 virtual void write(std::ostream &out)
const;
Declare the class LinearFunction for storing and modifying a linear function.
Declare abstract base class NonlinearFunction.
Construct and manage quadratic functions.
Declare important 'types' used in Minotaur.
virtual QuadraticFunctionPtr getQuadraticFunction() const
Return the quadratic part of the function.
Definition Function.cpp:540
virtual void evalHessian(const double mult, const double *x, const size_t *offset, double *values, int *error)
Definition Function.cpp:296
virtual FunctionPtr cloneWithVarsPermute(VariableConstIterator vbeg, UIntVector variableaddress, int *err) const
similar to above function, but for shuffling variables
Definition Function.cpp:154
virtual void fillHessOffset(size_t *offset, size_t &pos, std::set< ConstVariablePair, CompareVariablePair > &v_pairs)
Fill in the values of offset, starting from position pos.
Definition Function.cpp:277
VarSetConstIterator varsEnd()
Return an end-iterator for the variables that are in this function.
Definition Function.cpp:583
virtual void changeNlf(NonlinearFunctionPtr nlf)
Change the nonlinear function part.
Definition Function.cpp:509
virtual double eval(const DoubleVector &x, int *error) const
Definition Function.cpp:403
virtual ~Function()
Destroy.
Definition Function.cpp:109
bool isLinearIn(ConstVariablePtr v)
Check if function is linear in a variable.
Definition Function.cpp:552
VarSetConstIterator varsBegin()
Return a begin-iterator for the variables that are in this function.
Definition Function.cpp:577
virtual bool hasVar(VariablePtr var) const
Definition Function.cpp:259
friend std::ostream & operator<<(std::ostream &out, const Function &f)
Express the function and send the output to the output stream "out".
virtual LinearFunctionPtr getLinearFunction() const
Return the linear part of the function.
Definition Function.cpp:534
virtual void operator*=(const double c)
Definition Function.cpp:233
QuadraticFunctionPtr removeQuadratic()
Definition Function.cpp:366
virtual void changeLf(LinearFunctionPtr lf)
Change the linear function part.
Definition Function.cpp:499
NonlinearFunctionPtr removeNonlinear()
Definition Function.cpp:384
virtual void subst(VariablePtr out, VariablePtr in, double rat)
Substitute a variable with another.
Definition Function.cpp:185
VariableSet vars_
The variables that occur in this function.
Definition Function.h:214
virtual UInt getNumNzInHess()
Definition Function.cpp:265
virtual FunctionPtr cloneWithVars(VariableConstIterator vbeg, int *err) const
Definition Function.cpp:124
virtual void write(std::ostream &out) const
Express the function and send the output to the output stream "out".
Definition Function.cpp:650
virtual NonlinearFunctionPtr getNonlinearFunction() const
Return the nonlinear part of the function.
Definition Function.cpp:546
FunctionType type_
The type of the function.
Definition Function.h:211
void add(ConstLinearFunctionPtr lPtr)
Definition Function.cpp:332
virtual void evalGradient(const double *x, double *grad_f, int *error) const
Definition Function.cpp:426
Function()
Default constructor.
Definition Function.cpp:17
virtual UInt getNumVars() const
Return the number of variables that are in this function.
Definition Function.cpp:253
LinearFunctionPtr removeLinear()
Definition Function.cpp:346
virtual FunctionType getType()
Definition Function.cpp:493
The base class linear function is of the form c'x.
Definition LinearFunction.h:31
Base class for nonlinear functions.
Definition NonlinearFunction.h:31
Definition QuadraticFunction.h:38
Definition ActiveNodeStore.h:20
unsigned int UInt
Unsigned integer.
Definition Types.h:30
FunctionType
Different types of functions in Minotaur.
Definition Types.h:65
Definition HessianOfLag.h:21