278 return ADsymCommon(
argument, tmp, tmp2, dim, varType, component, l, S, dimS, dfS,
279 ldf, H, nNewLIS, newLIS, nNewSIS, newSIS, nNewHIS, newHIS );
392 if( fabs( ceil( ((
double)
exponent)/2.0 -
EPS ) - ((
double) exponent)/2.0 ) < 10.0*
EPS ){
400 if( exponent > 0 )
return m;
417 if( fabs( ceil( ((
double)
exponent)/2.0 -
EPS ) - ((
double) exponent)/2.0 ) < 10.0*
EPS ){
427 if( exponent == 1 )
return cc;
450 double *f,
double *df ){
486 double *df,
double *ddf ){
488 double ddargument_result;
489 double dargument_result2;
494 df[0] = nn*dargument_result2;
504 double *df,
double *ddf ){
528 return stream <<
"(" << *(dummy->
argument1) <<
")";
534 return stream <<
"(" << *
argument <<
")";
606 const std::vector< std::string >& _name
virtual returnValue AD_forward2(int number, double *seed1, double *seed2, double *df, double *ddf)=0
virtual returnValue setMonotonicity(MonotonicityType monotonicity_)
TreeProjection * derivative
virtual MonotonicityType getMonotonicity()=0
double * dargument_result
Abstract base class for all scalar-valued symbolic operators.
virtual BooleanType isDependingOn(VariableType var) const =0
BooleanType acadoIsEqual(double x, double y, double TOL)
virtual returnValue evaluate(int number, double *x, double *result)
BEGIN_NAMESPACE_ACADO const double EPS
virtual Operator * myPowerInt(Operator *a, int b)
virtual Operator * differentiate(int index)=0
Allows to pass back messages to the calling function.
virtual returnValue AD_forward2(int number, double *seed1, double *seed2, double *df, double *ddf)
virtual returnValue loadIndices(SymbolicIndexList *indexList)=0
Implements the scalar power operator within the symbolic operators family.
virtual Operator * clone() const =0
IntermediateState pow(const Expression &arg1, const Expression &arg2)
virtual BooleanType isSymbolic() const
virtual Operator * substitute(int index, const Operator *sub)=0
virtual returnValue clearBuffer()
TreeProjection * derivative2
virtual returnValue setVariableExportName(const VariableType &_type, const std::vector< std::string > &_name)
virtual double getValue() const
#define CLOSE_NAMESPACE_ACADO
virtual BooleanType isSymbolic() const =0
Manages the indices of SymbolicVariables.
virtual BooleanType isDependingOn(VariableType var) const
virtual OperatorName getName()=0
virtual returnValue AD_backward2(int number, double seed1, double seed2, double *df, double *ddf)
virtual returnValue enumerateVariables(SymbolicIndexList *indexList)
virtual void powerInt(Operator &arg1, int &arg2)=0
virtual Operator * AD_forward(int dim, VariableType *varType, int *component, Operator **seed, int &nNewIS, TreeProjection ***newIS)=0
virtual returnValue enumerateVariables(SymbolicIndexList *indexList)=0
virtual returnValue loadIndices(SymbolicIndexList *indexList)
virtual returnValue AD_backward2(int number, double seed1, double seed2, double *df, double *ddf)=0
virtual MonotonicityType getMonotonicity()
Power_Int & operator=(const Power_Int &arg)
virtual CurvatureType getCurvature()
Implements the scalar power operator with integer exponent within the symbolic operators family...
virtual Operator * myProd(Operator *a, Operator *b)
virtual returnValue AD_backward(int dim, VariableType *varType, int *component, Operator *seed, Operator **df, int &nNewIS, TreeProjection ***newIS)=0
virtual returnValue initDerivative()
virtual OperatorName getName()
returnValue ADsymCommon(Operator *a, TreeProjection &da, TreeProjection &dda, int dim, VariableType *varType, int *component, Operator *l, Operator **S, int dimS, Operator **dfS, Operator **ldf, Operator **H, int &nNewLIS, TreeProjection ***newLIS, int &nNewSIS, TreeProjection ***newSIS, int &nNewHIS, TreeProjection ***newHIS)
virtual Operator * AD_forward(int dim, VariableType *varType, int *component, Operator **seed, int &nNewIS, TreeProjection ***newIS)
virtual NeutralElement isOneOrZero() const
virtual BooleanType isVariable(VariableType &varType, int &component) const
virtual BooleanType isLinearIn(int dim, VariableType *varType, int *component, BooleanType *implicit_dep)=0
virtual returnValue evaluate(int number, double *x, double *result)=0
virtual Operator * differentiate(int index)
virtual returnValue AD_symmetric(int dim, VariableType *varType, int *component, Operator *l, Operator **S, int dimS, Operator **dfS, Operator **ldf, Operator **H, int &nNewLIS, TreeProjection ***newLIS, int &nNewSIS, TreeProjection ***newSIS, int &nNewHIS, TreeProjection ***newHIS)
virtual returnValue initDerivative()
virtual BooleanType isVariable(VariableType &varType, int &component) const =0
virtual BooleanType isPolynomialIn(int dim, VariableType *varType, int *component, BooleanType *implicit_dep)=0
Abstract base class for all scalar-valued symbolic operators.
virtual std::ostream & print(std::ostream &stream) const
Implements the tree-projection operator within the family of SymbolicOperators.
virtual TreeProjection * convert2TreeProjection(Operator *a) const
virtual BooleanType isPolynomialIn(int dim, VariableType *varType, int *component, BooleanType *implicit_dep)
#define BEGIN_NAMESPACE_ACADO
Abstract base class for templated evaluation of operators.
virtual CurvatureType getCurvature()=0
virtual BooleanType isRationalIn(int dim, VariableType *varType, int *component, BooleanType *implicit_dep)=0
MonotonicityType monotonicity
virtual TreeProjection * clone() const
virtual returnValue AD_backward(int dim, VariableType *varType, int *component, Operator *seed, Operator **df, int &nNewIS, TreeProjection ***newIS)
virtual Operator * clone() const
virtual Operator * substitute(int index, const Operator *sub)
virtual returnValue setCurvature(CurvatureType curvature_)
virtual returnValue setVariableExportName(const VariableType &_type, const std::vector< std::string > &_name)
Implements a scalar constant within the symbolic operators family.
virtual BooleanType isLinearIn(int dim, VariableType *varType, int *component, BooleanType *implicit_dep)
virtual BooleanType isRationalIn(int dim, VariableType *varType, int *component, BooleanType *implicit_dep)