|
Minotaur 0.4.1
Docs for developers
|
MonomialFunction represents functions of the form of the form 

#include <PolynomialFunction.h>


Public Member Functions | |
| MonomialFunction () | |
| Default constructor. | |
| MonomialFunction (double c) | |
| A constant monomial. | |
| MonomialFunction (double c, ConstVariablePtr v, UInt p) | |
| Constructor with a single variable, a multiplier, and a power. | |
| ~MonomialFunction () | |
| Destroy. | |
| MonomialFunPtr | clone () const |
| Create a full copy. | |
| NonlinearFunctionPtr | cloneWithVars (VariableConstIterator vbeg, int *err) const |
| double | eval (const double *x, int *error) |
| Evaluate the function at a given point x. | |
| double | eval (const DoubleVector &x, int *error) |
| void | evalGradient (const double *x, double *grad_f, int *error) |
| Evaluate and add gradient at a given point. | |
| void | evalHessian (const double, const double *, const LTHessStor *, double *, int *) |
| Evaluate and add hessian at a given point. | |
| CNode * | fillCG (CGraphPtr cg) |
| void | fillJac (const double *, double *, int *) |
| Evaluate and add gradient at a given point to the jacobian. | |
| void | fillHessStor (LTHessStor *) |
| Fill sparsity of hessian into hessian storage. | |
| void | finalHessStor (const LTHessStor *) |
| Finalize hessian preparation. | |
| double | getCoeff () const |
| int | getDegree () const |
| Get the degree, sum of all powers. | |
| const VarIntMap * | getTerms () const |
| Monomial terms. | |
| void | getVars (VariableSet *) |
| Get variables used in this function. | |
| void | multiply (double coeff, ConstVariablePtr v, int p) |
| Multiply with a variable raised to power. | |
| void | multiply (ConstMonomialFunPtr m2) |
| Multiply with another monomial. | |
| void | multiply (double c) |
| Multiply a constant. | |
| void | prepJac (VarSetConstIter, VarSetConstIter) |
| Prepare for evaluating sparse jacobian. | |
| VarIntMapConstIterator | termsBegin () |
| Iterator for the first term. | |
| VarIntMapConstIterator | termsEnd () |
| Iterator at the end of the terms. | |
| void | toPower (int k) |
| Raise the monomial to power k. | |
| void | write (std::ostream &out) const |
| Display. | |
| void | operator*= (double c) |
| Multiply a constant. | |
| void | operator*= (ConstMonomialFunPtr m2) |
| Multiply a monomial. | |
Public Member Functions inherited from Minotaur::NonlinearFunction | |
| NonlinearFunction () | |
| Default constructor. | |
| virtual | ~NonlinearFunction () |
| Destroy. | |
| virtual void | addConst (const double d, int &err) |
| Add a constant to the function. | |
| virtual void | sqrRoot (int &err) |
| Change the nonlinear function to its square-root. | |
| virtual void | computeBounds (double *lb, double *ub, int *error) |
| Calculate upper and lower bounds on the function using bounds of the variables. | |
| virtual std::string | getNlString (int *err) |
| Return a string in AMPL's .nl format (postfix notation) of this nonlinear function. | |
| virtual double | getFixVarOffset (VariablePtr, double) |
| If a variable is fixed at a given value and removed, what is the constant (offset) needed to be added. | |
| virtual FunctionType | getType () const |
| Return the type of function: polynomial, ... | |
| virtual bool | hasVar (ConstVariablePtr v) const |
| Check if function contains a variable. | |
| virtual bool | isSumOfSquares () const |
| Check if the function is a sum of square terms. | |
| virtual size_t | numVars () |
| Return the number of variables in this function. | |
| virtual void | removeVar (VariablePtr, double) |
| Remove a variable v from the function after fixing it to value val. | |
| virtual void | subst (VariablePtr, VariablePtr, double) |
| Substitute a variable with another. | |
| virtual NonlinearFunctionPtr | getPersp (VariablePtr z, double eps, int *err) const |
| Take perspective of this function with respect to a given variable. | |
| virtual void | varBoundMods (double, double, VarBoundModVector &, SolveStatus *) |
| Tighten variables based on function bounds. | |
| virtual VariableSet::iterator | varsBegin () |
| First iterator for variables. | |
| virtual VariableSet::iterator | varsEnd () |
| Last iterator for variables. | |
Additional Inherited Members | |
Protected Attributes inherited from Minotaur::NonlinearFunction | |
| VariableSet | vars_ |
| A set of variables used in this function. | |
MonomialFunction represents functions of the form of the form 

|
virtual |
Make a clone using new variables. vbeg points to the variable id 0. vbeg+k points to variable id k, where k>=0.
Implements Minotaur::NonlinearFunction.
|
virtual |
Evaluate the function at a given point x.
| [in] | x | The size of the array x must exceed the highest index of the variables used in the function. |
| [out] | *error | It should be set a positive value if there is error encountered while evaluating. Leave undisturbed otherwise. |
Implements Minotaur::NonlinearFunction.
|
virtual |
Evaluate and add gradient at a given point.
| [in] | x | The size of the array x must exceed the highest index of the variables used in the function. |
| [out] | grad_f | The values of grad_f are incremented with the gradient of this function at x. The array grad_f is dense. |
| [out] | error | It should be set a positive value if there is error encountered while evaluating. Leave undisturbed otherwise. |
Implements Minotaur::NonlinearFunction.
|
inlinevirtual |
Evaluate and add hessian at a given point.
| [in] | mult | Multiplier for this objective/constraint function |
| [in] | x | The point where we need the hessian. |
| [in] | stor | The Hessian storage information. |
| [out] | values | The Hessian values to which we add Hessian of this function. |
| [out] | error | We set it to nonzero if any errors are encountered. Do not change it otherwise. |
Implements Minotaur::NonlinearFunction.
Populate the cgraph with a subgraph representing this monomial and return the root node of this subgraph.
|
inlinevirtual |
Fill sparsity of hessian into hessian storage.
| [in,out] | stor | We add variables into stor->cols |
Implements Minotaur::NonlinearFunction.
|
inlinevirtual |
Evaluate and add gradient at a given point to the jacobian.
| [in] | x | The size of the array x must exceed the highest index of the variables used in the function. |
| [out] | values | The values of jacobian are incremented with the gradient of this function at x. 'values' only contains nonzeros of jacobian. The indices (or offsets) where this nonlinear function should put in the values should be calculated in the prepJac function. |
| [out] | error | It should be set a zero value if there is error encountered while evaluating. Leave undisturbed otherwise. |
Implements Minotaur::NonlinearFunction.
|
inlinevirtual |
Finalize hessian preparation.
| [in] | stor | contains the sparsity pattern of hessian of lagrangian. The nonlinear function should save offsets or make other preparation to evaluate hessian. |
Implements Minotaur::NonlinearFunction.
|
inlinevirtual |
Get variables used in this function.
| [in] | vars | A set of variable-pointers into which variables are to be inserted. |
Implements Minotaur::NonlinearFunction.
|
virtual |
Multiply a constant.
Implements Minotaur::NonlinearFunction.
|
inlinevirtual |
Prepare for evaluating sparse jacobian.
All the variables that are in this function can occur in one or more of linear, quadratic and nonlinear functions. All variables that occur in the whole function can be accessed by iterating between vbeg and vend. This function is used to find the offset for variables that occur in the nonlinear function.
Implements Minotaur::NonlinearFunction.
|
virtual |
Display.
Reimplemented from Minotaur::NonlinearFunction.