equations.c
Go to the documentation of this file.
931 Error("Wrong variable replacement for matrix/trigonometric equations in ReplaceVariableInEquations: can not use general replacements");
944 Error("Wrong variable replacement for matrix/trigonometric equations in ReplaceVariableInEquations: the replacement must be constant");
948 Error("Wrong variable replacement for matrix/trigonometric equations in ReplaceVariableInEquations: replacement can not have offset");
1371 printf(" Considering range - [%f %f] (%u %u)\n",LowerLimit(&(isNew[k])),UpperLimit(&(isNew[k])),full,status);
1423 /* If the box is not already empty -> crop using the linear approximation (or special functions). */
unsigned int EvaluateMEquation(double *v, double *r, TMequation *me) Evaluates a matrix equation. Definition: mequation.c:415 boolean SimplexAddNewConstraint(double epsilon, unsigned int safeSimplex, TLinearConstraint *lc, unsigned int eq_type, Tinterval *is, TSimplex *s) Adds a row (i.e., a constraint) to the simplex. Definition: simplex.c:67 Tequation * GetScalarEquation(unsigned int n, Tequations *eqs) Gets a scalar equation from the set. Definition: equations.c:1791 double EvaluateWholeEquation(double *varValues, Tequation *eq) Evaluates an equation in a given point. Definition: equation.c:1726 void ReplaceVarInMEquation(unsigned int nv, unsigned int nvNew, TMequation *me) Replaces a variable. Definition: mequation.c:345 boolean Intersect(Tinterval *i1, Tinterval *i2) Checks is a two intervals intersect. Definition: interval.c:272 boolean HasRotations(TMequation *me) Cheks if a matrix equation includes rotations. Definition: mequation.c:163 Definition of basic functions. Tequation * GetEquation(unsigned int n, Tequations *eqs) Gets an equation from the set. Definition: equations.c:1799 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 unsigned int NEquations(Tequations *eqs) Number of equations in the set. Definition: equations.c:1164 boolean BilinealMonomialEquation(Tequation *eq) Identify single bilineal monomial equations. Definition: equation.c:1172 #define ROUNDDOWN Sets the floating point operations in rounding down mode. Definition: defines.h:219 unsigned int GetVariableTypeN(unsigned int n, Tvariables *vs) Gets the type of a particular variable. Definition: variables.c:123 boolean IsCoordEquation(unsigned int i, Tequations *eqs) Identify coordenalization equations. Definition: equations.c:1220 void EvaluateEquationInt(Tinterval *varValues, Tinterval *i_out, Tequation *eq) Interval evaluation of an equation. Definition: equation.c:1760 void AddMatrixEquation(TMequation *equation, Tequations *eqs) Adds a matrix equation to the set. Definition: equations.c:1759 unsigned int NSystemEquations(Tequations *eqs) Number of system equations in the set. Definition: equations.c:1174 unsigned int NCoordEquations(Tequations *eqs) Number of coordenalization equations in the set. Definition: equations.c:1179 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 CopyEquations(Tequations *eqs_dst, Tequations *eqs_src) Copy constructor. Definition: equations.c:755 void UpdateSplitWeight(unsigned int ne, double *splitDim, Tbox *b, Tequations *eqs) Computes the linearization error induced by the variables of a given equation. Definition: equations.c:2532 void GetFirstOrderApproximationToEquation(Tbox *b, double *c, TLinearConstraint *lc, TequationInfo *ei) Gets a first order approximation to a given equation. Definition: equations.c:458 void IntervalInvert(Tinterval *i, Tinterval *i_out) Change of sign of a given interval. Definition: interval.c:461 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 unsigned int NInequalityEquations(Tequations *eqs) Number of inequalities in the set. Definition: equations.c:1194 #define LEQ In a Tequation, the equation relational operator is less equal. Definition: equation.h:196 unsigned int CmpEquations(Tequation *eq1, Tequation *eq2) Equation comparison. Definition: equation.c:1251 #define MAX_EQ_MATRIX Max number of scalar equations in a matrix equation. Definition: mequation.h:24 boolean AddEquation2Simplex(unsigned int ne, double lr2tm_q, double lr2tm_s, double epsilon, unsigned int safeSimplex, double rho, Tbox *b, Tvariables *vs, TSimplex *lp, Tequations *eqs) Adds an equation to the simplex. Definition: equations.c:2287 #define NOCMP In a Tequation, the equation relational operator is not defined yet. Definition: equation.h:208 boolean RectangleParabolaClipping(Tinterval *x, double alpha, double beta, Tinterval *y, Tinterval *x_new, Tinterval *y_new) Clips a 2D box and a scaled parabola. Definition: geom.c:473 void SimplexExpandBounds(unsigned int eq_type, Tinterval *b) Expands an interval according to the equation type. Definition: simplex.c:19 unsigned int CropEquation(unsigned int ne, unsigned int varType, double epsilon, double rho, Tbox *b, Tvariables *vs, Tequations *eqs) Equation-wise crop. Definition: equations.c:1269 #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 void EvaluateSubSetEqualitySparseEquations(double *v, boolean *se, double *r, Tequations *eqs) Evaluates a subset of the set of equality equations for sparse systems. Definition: equations.c:2698 unsigned int GetEquationTypeN(unsigned int i, Tequations *eqs) Gets the type of a particular equation. Definition: equations.c:1238 boolean VarIncluded(unsigned int id, Tvariable_set *vs) Checks if a variable index is included in a set of variable indexes. Definition: variable_set.c:183 #define GEQ In a Tequation, the equation relational operator is great equal. Definition: equation.h:190 boolean VarIncludedinMEquation(unsigned int v, TMequation *me) Checks if the matrix equation includes a given variable. Definition: mequation.c:191 boolean BoxSaddleClipping(Tinterval *x, Tinterval *y, double alpha, double beta, Tinterval *z, Tinterval *x_new, Tinterval *y_new, Tinterval *z_new) Clips a 3D box and a scaled saddle. Definition: geom.c:518 unsigned int GetVariableN(unsigned int n, Tvariable_set *vs) Gets a variable identifier from a variable set. Definition: variable_set.c:454 Error and warning functions. void ErrorDueToVariable(unsigned int m, double *c, Tinterval *is, double *ev, TequationInfo *ei) Computes the linealization error for a given equation for each variable involved in the equation... Definition: equations.c:616 void PrintMEquation(FILE *f, char **varNames, TMequation *me) Prints a Transform sequence to a file. Definition: mequation.c:473 boolean LinearizeBilinealMonomialEquation(double epsilon, double lr2tm, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a bilienal monomial equation. Definition: equations.c:1868 void PrintEquation(FILE *f, char **varNames, Tequation *eq) Prints an equation. Definition: equation.c:1825 void CopyLinearConstraint(TLinearConstraint *lc_dst, TLinearConstraint *lc_src) Copy constructor. Definition: linear_constraint.c:31 void RemoveEquationsWithVar(double epsilon, unsigned int nv, Tequations *eqs) Removes all equations that include a given variable. Definition: equations.c:869 unsigned int NEqualityEquations(Tequations *eqs) Number of equalities in the set. Definition: equations.c:1189 boolean HasEquation(Tequation *equation, Tequations *eqs) Checks if a given equation is already in the set. Definition: equations.c:1254 void CopyEquationInfo(TequationInfo *ei_dst, TequationInfo *ei_src) TequationInfo copy constructor. Definition: equations.c:399 boolean IsSystemEquation(unsigned int i, Tequations *eqs) Identify system equations. Definition: equations.c:1209 Information associated with each scalar equation in the equation set. Definition: equations.h:46 unsigned int NScalarEquations(Tequations *eqs) Number of scalar equations in the set. Definition: equations.c:1169 Definitions of constants and macros used in several parts of the cuik library. boolean ParabolaEquation(Tequation *eq) Identify scaled parabola equations. Definition: equation.c:1184 void EvaluateEqualitySparseEquations(double *v, double *r, Tequations *eqs) Evaluates the set of equality equations for sparse systems. Definition: equations.c:2675 void EvaluateEqualityEquations(boolean systemOnly, double *v, double *r, Tequations *eqs) Evaluates all equality equations in the set. Definition: equations.c:2579 boolean LinearizeSphereEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a sphere equation. Definition: equations.c:2119 void CopyMEquation(TMequation *me_dst, TMequation *me_src) Copy constructor. Definition: mequation.c:113 Tvariable_set * GetMonomialVariables(Tmonomial *f) Gets the variables of a monomial. Definition: monomial.c:153 void CacheScalarEQUInfo(Tequations *eqs) Collects information about scalar equality equations. Definition: equations.c:2643 boolean PolynomialEquations(Tequations *eqs) Identify polynomial system of equations. Definition: equations.c:1199 void ShiftVariablesInMEquation(unsigned int nv, TMequation *me) Adjust variable indices after removina a variable. Definition: mequation.c:288 void AddEquation(Tequation *equation, Tequations *eqs) Adds an equation to the set. Definition: equations.c:1723 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 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 unsigned int FixVarInMEquation(unsigned int nv, double v, TMequation *me) Set a variable to a constant value. Definition: mequation.c:296 void GetLinearConstraintError(Tinterval *error, TLinearConstraint *lc) Gets the right-hand side interval for the linear constraint. Definition: linear_constraint.c:86 boolean LinearizeGeneralEquationInt(unsigned int cmp, double epsilon, unsigned int safeSimplex, Tbox *b, double *c, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a general equation at a given point. Definition: equations.c:2229 #define MEM_DUP(_var, _n, _type) Duplicates a previously allocated memory space. Definition: defines.h:414 void EvaluateEquationsXVectors(double *v, unsigned int ng, unsigned int *g, double *p, double *r, Tequations *eqs) Evaluates the matrix equations multiplied by some given vectors. Definition: equations.c:2736 #define NO_UINT Used to denote an identifier that has not been initialized. Definition: defines.h:435 void IntervalScale(Tinterval *i1, double e, Tinterval *i_out) Scales an interval. Definition: interval.c:360 unsigned int CropLinearConstraint(double epsilon, unsigned int varType, Tbox *b, Tvariables *vs, TLinearConstraint *lc) Reduce the ranges for. Definition: linear_constraint.c:297 boolean CleanInfEquation(Tequation *eq_in, Tinterval *varValues, boolean *changed, Tequation *eq_out) Removes the monomials that evaluate to inf. Definition: equation.c:763 boolean RectangleCircleClipping(double r2, Tinterval *x, Tinterval *y, Tinterval *x_new, Tinterval *y_new) Clips a rectangle and a circle. Definition: geom.c:347 unsigned int NDummyEquations(Tequations *eqs) Number of dummy equations in the set. Definition: equations.c:1184 boolean LinearizeParabolaEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a parabola equation. Definition: equations.c:1973 unsigned int FindMonomial(Tmonomial *f, Tequation *eq) Searches for a given monomial in the equation. Definition: equation.c:1672 void EvaluateInequalityEquations(double *v, double *r, Tequations *eqs) Error in inequalities. Definition: equations.c:2755 boolean IsDummyEquation(unsigned int i, Tequations *eqs) Identify dummy equations. Definition: equations.c:1229 void EvaluateSubSetEqualityEquations(double *v, boolean *se, double *r, Tequations *eqs) Evaluates a subset of the equality equations in the set. Definition: equations.c:2607 boolean LinearizeGeneralEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a general equation at the central point of the sub-box defined by th... Definition: equations.c:2253 boolean IsInside(double p, double tol, Tinterval *i) Checks if a value is inside an interval. Definition: interval.c:348 Tinterval * GetBoxIntervals(Tbox *b) Returns a pointer to the array of intervals defining the box. Definition: box.c:284 Tequation * GetOriginalEquation(TequationInfo *ei) Returns the equation stored in a TequationInfo. Definition: equations.c:394 boolean LinearizeSaddleEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a saddle equation. Definition: equations.c:1810 void SetLinearConstraintError(Tinterval *error, TLinearConstraint *lc) Sets a new righ-hand side error of the linear constraint. Definition: linear_constraint.c:96 void IntervalProduct(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Product of two intervals. Definition: interval.c:389 void IntervalPow(Tinterval *i, unsigned int p, Tinterval *i_out) Power of a given interval by a integer power factor. Definition: interval.c:494 void SetEquationInfo(Tequation *e, TequationInfo *ei) TequationInfo constructor. Definition: equations.c:284 void PrintEquations(FILE *f, char **varNames, Tequations *eqs) Prints a set of equations. Definition: equations.c:2806 boolean BoxSphereClipping(double r2, Tinterval *x, Tinterval *y, Tinterval *z, Tinterval *x_new, Tinterval *y_new, Tinterval *z_new) Clips a 3D box and a sphere. Definition: geom.c:401 void AddEquationInt(Tequation *equation, Tequations *eqs) Adds an equation to a set. Definition: equations.c:1690 double GetBoxMaxSizeVarSet(Tvariable_set *vars, Tbox *b) Computes the size of the box. Definition: box.c:639 void DeriveEqualityEquations(unsigned int v, Tequations *deqs, Tequations *eqs) Derives an equation set. Definition: equations.c:2780 Definition of the Tequations type and the associated functions. 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 UsedVarInEquations(unsigned int nv, Tequations *eqs) Checks if a variable is used in the set of equations. Definition: equations.c:847 void DeriveMEquation(unsigned int v, TMequation *dme, TMequation *me) Derives a matrix equation. Definition: mequation.c:371 unsigned int NumberScalarEquations(TMequation *me) Number of scaler equations defined by a matrix equation. Definition: mequation.c:283 boolean GaussianElimination(Tequations *eqs) Perform Gaussian elimination on the set of equations. Definition: equations.c:993 Tvariable_set * GetEquationVariables(Tequation *eq) Gets the set of variables equation used in the equation. Definition: equation.c:1241 double GetBoxMinSizeVarSet(Tvariable_set *vars, Tbox *b) Computes the minimum size of the box. Definition: box.c:657 void EvaluateMEquationXVectors(double *v, unsigned int n, double *p, double *r, TMequation *me) Equation x vector evaluation. Definition: mequation.c:437 boolean UsedVarInNonDummyEquations(unsigned int nv, Tequations *eqs) Checks if a variable is used in the set of equations. Definition: equations.c:822 unsigned int GetEquationCmp(Tequation *eq) Gets the type of relational operator of the equation. Definition: equation.c:1202 boolean LinearizeCircleEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a circle equation. Definition: equations.c:2019 void AddEquationNoSimp(Tequation *equation, Tequations *eqs) Adds an equation to the set. Definition: equations.c:1750 void IntervalOffset(Tinterval *i, double offset, Tinterval *i_out) Interval offset. Definition: interval.c:627 boolean ReplaceVariableInEquations(double epsilon, unsigned int nv, TLinearConstraint *lc, Tequations *eqs) Replaces a variable with a linear expression. Definition: equations.c:912 |
Follow us!