equation.c
Go to the documentation of this file.
156 void EquationFromLinearConstraintProduct(TLinearConstraint *lc1,TLinearConstraint *lc2,Tequation *eq)
763 boolean CleanInfEquation(Tequation *eq_in,Tinterval *varValues,boolean *changed,Tequation *eq_out)
1542 AddCt2Monomial(+1.0,&f);AddVariable2Monomial(NFUN,v1y,1,&f);AddVariable2Monomial(NFUN,v2z,1,&f);
1544 AddCt2Monomial(-1.0,&f);AddVariable2Monomial(NFUN,v1z,1,&f);AddVariable2Monomial(NFUN,v2y,1,&f);
1554 AddCt2Monomial(+1.0,&f);AddVariable2Monomial(NFUN,v1z,1,&f);AddVariable2Monomial(NFUN,v2x,1,&f);
1556 AddCt2Monomial(-1.0,&f);AddVariable2Monomial(NFUN,v1x,1,&f);AddVariable2Monomial(NFUN,v2z,1,&f);
1566 AddCt2Monomial(+1.0,&f);AddVariable2Monomial(NFUN,v1x,1,&f);AddVariable2Monomial(NFUN,v2y,1,&f);
1568 AddCt2Monomial(-1.0,&f);AddVariable2Monomial(NFUN,v1y,1,&f);AddVariable2Monomial(NFUN,v2x,1,&f);
1600 AddCt2Monomial(+1.0,&f);AddVariable2Monomial(NFUN,v1x,1,&f);AddVariable2Monomial(NFUN,v2x,1,&f);
1602 AddCt2Monomial(+1.0,&f);AddVariable2Monomial(NFUN,v1y,1,&f);AddVariable2Monomial(NFUN,v2y,1,&f);
1604 AddCt2Monomial(+1.0,&f);AddVariable2Monomial(NFUN,v1z,1,&f);AddVariable2Monomial(NFUN,v2z,1,&f);
1638 AddCt2Monomial(-2.0,&f);AddVariable2Monomial(NFUN,v1x,1,&f);AddVariable2Monomial(NFUN,v2x,1,&f);
1645 AddCt2Monomial(-2.0,&f);AddVariable2Monomial(NFUN,v1y,1,&f);AddVariable2Monomial(NFUN,v2y,1,&f);
1652 AddCt2Monomial(-2.0,&f);AddVariable2Monomial(NFUN,v1z,1,&f);AddVariable2Monomial(NFUN,v2z,1,&f);
Definition of the Tequation type and the associated functions. void RewriteEquation2Simp(double epsilon, Tmapping *map, Tequation *eqOut, Tequation *eq) Applies the simplification mapping to an equation. Definition: equation.c:237 Tinterval * GetBoxInterval(unsigned int n, Tbox *b) Returns a pointer to one of the intervals defining the box. Definition: box.c:270 double EvaluateWholeEquation(double *varValues, Tequation *eq) Evaluates an equation in a given point. Definition: equation.c:1726 Tmonomial * GetMonomial(unsigned int i, Tequation *eq) Gets a monomial from an equation. Definition: equation.c:1695 void DeriveEquation(unsigned int nv, Tequation *d, Tequation *eq) Derives an equation. Definition: equation.c:1776 void GenerateSaddleEquation(unsigned int vx, unsigned int vy, unsigned int vz, Tequation *eq) Construtor. Generates a saddle equation. Definition: equation.c:1455 void DeriveMonomial(unsigned int nv, Tmonomial *df, Tmonomial *f) Derives an monomial. Definition: monomial.c:238 boolean BilinealMonomialEquation(Tequation *eq) Identify single bilineal monomial equations. Definition: equation.c:1172 void SetMonomialCt(double k, Tmonomial *f) Changes the scale factor of a monomial. Definition: monomial.c:144 void SetEquationType(unsigned int type, Tequation *eq) Changes the type of the equation (SYSTEM_EQ, CARTESIAN_EQ, DUMMY_EQ, DERIVED_EQ). ... Definition: equation.c:1076 void GenerateCrossProductEquations(unsigned int v1x, unsigned int v1y, unsigned int v1z, unsigned int v2x, unsigned int v2y, unsigned int v2z, unsigned int v3x, unsigned int v3y, unsigned int v3z, unsigned int vs, double s, Tequation *eq) Construtor. Generates the three equations of the cross product of two unitary vectors. Definition: equation.c:1527 void MonomialProduct(Tmonomial *f1, Tmonomial *f2, Tmonomial *f) Product of two monomials. Definition: monomial.c:183 void GenerateNormEquation(unsigned int vx, unsigned int vy, unsigned int vz, double n, Tequation *eq) Construtor. Generates an equation that is the norm of a 3d vector. Definition: equation.c:1494 boolean LinearMonomial(Tmonomial *f) Checks if a monomial is lienal: K*x, with K a constant. Definition: monomial.c:79 void EvaluateEquationInt(Tinterval *varValues, Tinterval *i_out, Tequation *eq) Interval evaluation of an equation. Definition: equation.c:1760 unsigned int GetVarIDInOriginal(unsigned int v, Tmapping *m) Gets the original identifier of a simplified variable. Definition: csmapping.c:135 void AddScaledMonomial(double sc, Tmonomial *f, Tequation *eq) Adds a new scaled monomial to the equation. Definition: equation.c:1326 void LinearEquation2LinearConstraint(TLinearConstraint *lc, Tequation *eq) Converts a linear equation into a linear constraint. Definition: equation.c:1708 void IntervalAdd(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Addition of two intervals. Definition: interval.c:423 unsigned int GetEquationNumVariables(Tequation *eq) Gets the number of variables equation used in the equation. Definition: equation.c:1246 double EvaluateEquation(double *varValues, Tequation *eq) Evaluates an equation in a given point. Definition: equation.c:1744 void CopyEquation(Tequation *eq_dst, Tequation *eq_orig) Copy constructor. Definition: equation.c:216 void UnionVarSet(boolean fun, Tvariable_set *vs_new, Tvariable_set *vs) Produces a variable set that is the union of two variable sets. Definition: variable_set.c:221 void GenerateParabolaEquation(unsigned int vx, unsigned int vy, Tequation *eq) Construtor. Generates a parabola equation. Definition: equation.c:1424 unsigned int ReplaceVariableInEquation(double epsilon, unsigned int nv, TLinearConstraint *lc, Tequation *eq) Replaces a variable. Definition: equation.c:481 unsigned int GetLinearConstraintVariable(unsigned int i, TLinearConstraint *lc) Gets the a particular variable index. Definition: linear_constraint.c:75 Mapping between the sets of variables in two different cuiksystems. Definition: csmapping.h:53 #define LEQ In a Tequation, the equation relational operator is less equal. Definition: equation.h:196 void ResetEquationMonomials(Tequation *eq) Resets the information about monomials stored in the equation. Definition: equation.c:35 unsigned int CmpEquations(Tequation *eq1, Tequation *eq2) Equation comparison. Definition: equation.c:1251 void InvertLinearConstraint(TLinearConstraint *lc) Changes the sign of a linear constraint. Definition: linear_constraint.c:182 #define NOCMP In a Tequation, the equation relational operator is not defined yet. Definition: equation.h:208 void ResetVarSet(Tvariable_set *vs) Resets the information stored in a variable set. Definition: variable_set.c:79 void FixVariableInMonomial(unsigned int nv, double v, Tmonomial *f) Replaces a variable by a constant. Definition: monomial.c:31 double EvaluateMonomial(double *varValues, Tmonomial *f) Evaluates a monomial for a given set of value for the variables. Definition: monomial.c:197 #define ZERO Floating point operations giving a value below this constant (in absolute value) are considered 0... Definition: defines.h:37 void AddTerm2LinearConstraint(unsigned int ind, double val, TLinearConstraint *lc) Adds a scaled variable to the linear constraint. Definition: linear_constraint.c:106 unsigned int CmpVarSet(Tvariable_set *vs1, Tvariable_set *vs2) Variable set comparison. Definition: variable_set.c:112 void SetEquationValue(double v, Tequation *eq) Changes the right-hand value of the equation. Definition: equation.c:1089 unsigned int GetPlaceinSet(unsigned int id, Tvariable_set *vs) Gets the position of a variable index in a set of variable indexes. Definition: variable_set.c:165 void AddMonomial(Tmonomial *f, Tequation *eq) Adds a new monomial to the equation. Definition: equation.c:1419 unsigned int GetVariableFunctionN(unsigned int n, Tvariable_set *vs) Gets a variable function from a variable set. Definition: variable_set.c:481 #define GEQ In a Tequation, the equation relational operator is great equal. Definition: equation.h:190 boolean IsSimplificable(unsigned int simpLevel, unsigned int nTerms, boolean polynomial, boolean *systemVars, Tbox *cb, unsigned int *v, TLinearConstraint *lc, Tequation *eq) Identify equations than can trigger variable simplifications. Definition: equation.c:851 unsigned int GetVariableN(unsigned int n, Tvariable_set *vs) Gets a variable identifier from a variable set. Definition: variable_set.c:454 void CtScaleEquation(double ct, Tequation *eq) Scales an equation by a constant factor. Definition: equation.c:663 boolean BilinearMonomial(Tmonomial *f) Checks if a monomial is bilienal: K*x*y, with K a constant. Definition: monomial.c:71 void PrintEquation(FILE *f, char **varNames, Tequation *eq) Prints an equation. Definition: equation.c:1825 void SetEquationCmp(unsigned int cmp, Tequation *eq) Changes the relational operator (LEQ, GEQ, EQU) of the equation. Definition: equation.c:1081 void EquationFromLinearConstraintProduct(TLinearConstraint *lc1, TLinearConstraint *lc2, Tequation *eq) Defines a new equation from the product of two linear constraints. Definition: equation.c:156 unsigned int GetVariablePowerN(unsigned int n, Tvariable_set *vs) Gets a variable power from a variable set. Definition: variable_set.c:470 void GenerateGeneralNormEquation(unsigned int nv, unsigned int *v, double n, Tequation *eq) Construtor. Generates an equation that is the norm of a vector. Definition: equation.c:1506 boolean PolynomialMonomial(Tmonomial *f) Identifies monimials not involving any kind of (trigonomitric function). Definition: monomial.c:86 unsigned int CmpMonomial(Tmonomial *f1, Tmonomial *f2) Monomial comparison. Definition: monomial.c:103 void VarScaleEquation(unsigned int v, Tequation *eq) Scales an equation with a variable factor. Definition: equation.c:680 Definitions of constants and macros used in several parts of the cuik library. void IntervalSubstract(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Substraction of two intervals. Definition: interval.c:442 void ShiftVarIndexes(unsigned int nv, Tvariable_set *vs) Reduces the variable indexes above a given index. Definition: variable_set.c:99 boolean ParabolaEquation(Tequation *eq) Identify scaled parabola equations. Definition: equation.c:1184 void ScaleLinearConstraint(double a, TLinearConstraint *lc) Scales a linear constraint. Definition: linear_constraint.c:192 Tvariable_set * GetMonomialVariables(Tmonomial *f) Gets the variables of a monomial. Definition: monomial.c:153 void GenerateScaledParabolaEquation(double s, unsigned int vx, unsigned int vy, Tequation *eq) Construtor. Generates a scaled parabola equation. Definition: equation.c:1429 unsigned int GetNumTermsInLinearConstraint(TLinearConstraint *lc) Number of variables in a linear constraint. Definition: linear_constraint.c:49 void GetEquationBounds(Tinterval *bounds, Tequation *eq) Returns the right-hand side of the equation in the form of an interval. Definition: equation.c:1217 void GenerateScaledSaddleEquation(double s, unsigned int vx, unsigned int vy, unsigned int vz, Tequation *eq) Construtor. Generates a scaled saddle equation. Definition: equation.c:1461 unsigned int VariableSetSize(Tvariable_set *vs) Gets the number of elements of a variable set. Definition: variable_set.c:449 double GetEquationValue(Tequation *eq) Gets the right-hand value of the equation. Definition: equation.c:1212 unsigned int FixVariableInEquation(double epsilon, unsigned int nv, double b, Tequation *eq) Turns a variable into a constant. Definition: equation.c:461 void VarAccumulateEquations(Tequation *eqn, unsigned int v, Tequation *eq) Adds an equation scaled with a variable to another equation. Definition: equation.c:377 void GetLinearConstraintError(Tinterval *error, TLinearConstraint *lc) Gets the right-hand side interval for the linear constraint. Definition: linear_constraint.c:86 #define MEM_DUP(_var, _n, _type) Duplicates a previously allocated memory space. Definition: defines.h:414 #define NO_UINT Used to denote an identifier that has not been initialized. Definition: defines.h:435 void AddVariable2Monomial(unsigned int fn, unsigned int varid, unsigned int p, Tmonomial *f) Adds a power variable to the monomial. Definition: monomial.c:171 boolean CleanInfEquation(Tequation *eq_in, Tinterval *varValues, boolean *changed, Tequation *eq_out) Removes the monomials that evaluate to inf. Definition: equation.c:763 void AddCt2LinearConstraint(double ct, TLinearConstraint *lc) Adds a constant term to the linear constraint. Definition: linear_constraint.c:101 unsigned int FindMonomial(Tmonomial *f, Tequation *eq) Searches for a given monomial in the equation. Definition: equation.c:1672 void EquationFromLinearConstraint(TLinearConstraint *lc, Tequation *eq) Defines a new equation from a linear constraint. Definition: equation.c:106 boolean IsInside(double p, double tol, Tinterval *i) Checks if a value is inside an interval. Definition: interval.c:348 void PrintMonomials(FILE *f, char **varNames, Tequation *eq) Prints an equation as a set if monomials. Definition: equation.c:1803 void EvaluateMonomialInt(Tinterval *varValues, Tinterval *i_out, Tmonomial *f) Evaluates a monomial for a given set of ranges for the variables. Definition: monomial.c:210 #define MAX_TERMS_SIMP Maximum number of terms to be used in the simplifications. Definition: equation.h:31 void PrintMonomial(FILE *file, boolean first, char **varNames, Tmonomial *f) Prints a monomial. Definition: monomial.c:255 double GetLinearConstraintCoefficient(unsigned int i, TLinearConstraint *lc) Gets the a particular linear constraint coefficient. Definition: linear_constraint.c:59 void GetOriginalVarRelation(unsigned int nvo, TLinearConstraint *lc, Tmapping *m) Gets the relation for a variable in the original set with the variables in the simple set... Definition: csmapping.c:112 void ProductEquations(Tequation *eq1, Tequation *eq2, Tequation *eqOut) Product of two equations. Definition: equation.c:398 void GenerateDistanceEquation(unsigned int v1x, unsigned int v1y, unsigned int v1z, unsigned int v2x, unsigned int v2y, unsigned int v2z, unsigned int vc, double c, Tequation *eq) Construtor. Generates the equation of the distance between two points. Definition: equation.c:1623 void RewriteEquation2Orig(Tmapping *map, Tequation *eqOut, Tequation *eq) Applies the un-simplification mapping to an equation. Definition: equation.c:321 void AccumulateEquations(Tequation *eqn, double ct, Tequation *eq) Adds a scaled equation to another equation. Definition: equation.c:366 unsigned int GetNumMonomials(Tequation *eq) Number of monomials in an equation. Definition: equation.c:1703 boolean QuadraticMonomial(Tmonomial *f) Checks if a monomial is quadratic: K*x^2, with K a constant. Definition: monomial.c:64 Tvariable_set * GetEquationVariables(Tequation *eq) Gets the set of variables equation used in the equation. Definition: equation.c:1241 void GenerateDotProductEquation(unsigned int v1x, unsigned int v1y, unsigned int v1z, unsigned int v2x, unsigned int v2y, unsigned int v2z, unsigned int vc, double c, Tequation *eq) Construtor. Generates the equation of the dot product of two unitary vectors. Definition: equation.c:1588 void ReplaceVariableInMonomial(unsigned int nv, double ct, unsigned int nvNew, Tmonomial *f) Replaces a variable. Definition: monomial.c:42 unsigned int GetEquationCmp(Tequation *eq) Gets the type of relational operator of the equation. Definition: equation.c:1202 void IntervalOffset(Tinterval *i, double offset, Tinterval *i_out) Interval offset. Definition: interval.c:627 |
Follow us!