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.
Definition: Function.h:37
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: Variable.h:31
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