equations.c
Go to the documentation of this file.
1004 /* For large systems, Gaussian elimination is very time consuming. Try to parallelize it if possible */
1277 printf(" Considering range - [%f %f] (%u %u)\n",LowerLimit(&(isNew[k])),UpperLimit(&(isNew[k])),full,status);
1329 /* 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:356 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 double EvaluateWholeEquation(double *varValues, Tequation *eq) Evaluates an equation in a given point. Definition: equation.c:1615 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:1697 Tmonomial * GetMonomial(unsigned int i, Tequation *eq) Gets a monomial from an equation. Definition: equation.c:1584 void DeriveEquation(unsigned int nv, Tequation *d, Tequation *eq) Derives an equation. Definition: equation.c:1665 unsigned int NEquations(Tequations *eqs) Number of equations in the set. Definition: equations.c:1075 boolean BilinealMonomialEquation(Tequation *eq) Identify single bilineal monomial equations. Definition: equation.c:1109 #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:1126 void EvaluateEquationInt(Tinterval *varValues, Tinterval *i_out, Tequation *eq) Interval evaluation of an equation. Definition: equation.c:1649 void AddMatrixEquation(TMequation *equation, Tequations *eqs) Adds a matrix equation to the set. Definition: equations.c:1665 unsigned int NSystemEquations(Tequations *eqs) Number of system equations in the set. Definition: equations.c:1080 unsigned int NCoordEquations(Tequations *eqs) Number of coordenalization equations in the set. Definition: equations.c:1085 void IntervalAdd(Tinterval *i1, Tinterval *i2, Tinterval *i_out) Addition of two intervals. Definition: interval.c:418 unsigned int GetEquationNumVariables(Tequation *eq) Gets the number of variables equation used in the equation. Definition: equation.c:1183 double EvaluateEquation(double *varValues, Tequation *eq) Evaluates an equation in a given point. Definition: equation.c:1633 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:768 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:2430 void GetFirstOrderApproximationToEquation(Tbox *b, double *c, TLinearConstraint *lc, TequationInfo *ei) Gets a first order approximation to a given equation. Definition: equations.c:471 void IntervalInvert(Tinterval *i, Tinterval *i_out) Change of sign of a given interval. Definition: interval.c:456 unsigned int ReplaceVariableInEquation(double epsilon, unsigned int nv, TLinearConstraint *lc, Tequation *eq) Replaces a variable. Definition: equation.c:481 unsigned int NInequalityEquations(Tequations *eqs) Number of inequalities in the set. Definition: equations.c:1100 #define LEQ In a Tequation, the equation relational operator is less equal. Definition: equation.h:195 unsigned int CmpEquations(Tequation *eq1, Tequation *eq2) Equation comparison. Definition: equation.c:1188 #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:2185 #define NOCMP In a Tequation, the equation relational operator is not defined yet. Definition: equation.h:207 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:1175 #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:2586 unsigned int GetEquationTypeN(unsigned int i, Tequations *eqs) Gets the type of a particular equation. Definition: equations.c:1144 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:189 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:447 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:629 void PrintMEquation(FILE *f, char **varNames, TMequation *me) Prints a Transform sequence to a file. Definition: mequation.c:414 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:1766 void PrintEquation(FILE *f, char **varNames, Tequation *eq) Prints an equation. Definition: equation.c:1714 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:882 unsigned int NEqualityEquations(Tequations *eqs) Number of equalities in the set. Definition: equations.c:1095 boolean HasEquation(Tequation *equation, Tequations *eqs) Checks if a given equation is already in the set. Definition: equations.c:1160 void CopyEquationInfo(TequationInfo *ei_dst, TequationInfo *ei_src) TequationInfo copy constructor. Definition: equations.c:412 boolean IsSystemEquation(unsigned int i, Tequations *eqs) Identify system equations. Definition: equations.c:1115 Information associated with each scalar equation in the equation set. Definition: equations.h:46 Definitions of constants and macros used in several parts of the cuik library. boolean ParabolaEquation(Tequation *eq) Identify scaled parabola equations. Definition: equation.c:1121 void EvaluateEqualitySparseEquations(double *v, double *r, Tequations *eqs) Evaluates the set of equality equations for sparse systems. Definition: equations.c:2563 void EvaluateEqualityEquations(boolean systemOnly, double *v, double *r, Tequations *eqs) Evaluates all equality equations in the set. Definition: equations.c:2477 boolean LinearizeSphereEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a sphere equation. Definition: equations.c:2017 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:2541 boolean PolynomialEquations(Tequations *eqs) Identify polynomial system of equations. Definition: equations.c:1105 void ShiftVariablesInMEquation(unsigned int nv, TMequation *me) Adjust variable indices after removina a variable. Definition: mequation.c:286 void AddEquation(Tequation *equation, Tequations *eqs) Adds an equation to the set. Definition: equations.c:1629 void GetEquationBounds(Tinterval *bounds, Tequation *eq) Returns the right-hand side of the equation in the form of an interval. Definition: equation.c:1154 unsigned int VariableSetSize(Tvariable_set *vs) Gets the number of elements of a variable set. Definition: variable_set.c:442 double GetEquationValue(Tequation *eq) Gets the right-hand value of the equation. Definition: equation.c:1149 unsigned int FixVariableInEquation(double epsilon, unsigned int nv, double b, Tequation *eq) Turns a variable into a constant. Definition: equation.c:461 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:2127 #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:2624 #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:355 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:752 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:1090 boolean LinearizeParabolaEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a parabola equation. Definition: equations.c:1871 unsigned int FindMonomial(Tmonomial *f, Tequation *eq) Searches for a given monomial in the equation. Definition: equation.c:1561 void EvaluateInequalityEquations(double *v, double *r, Tequations *eqs) Error in inequalities. Definition: equations.c:2643 boolean IsDummyEquation(unsigned int i, Tequations *eqs) Identify dummy equations. Definition: equations.c:1135 void EvaluateSubSetEqualityEquations(double *v, boolean *se, double *r, Tequations *eqs) Evaluates a subset of the equality equations in the set. Definition: equations.c:2505 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:2151 boolean IsInside(double p, double tol, Tinterval *i) Checks if a value is inside an interval. Definition: interval.c:343 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:407 boolean LinearizeSaddleEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a saddle equation. Definition: equations.c:1708 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:384 void IntervalPow(Tinterval *i, unsigned int p, Tinterval *i_out) Power of a given interval by a integer power factor. Definition: interval.c:489 void SetEquationInfo(Tequation *e, TequationInfo *ei) TequationInfo constructor. Definition: equations.c:297 void PrintEquations(FILE *f, char **varNames, Tequations *eqs) Prints a set of equations. Definition: equations.c:2694 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:1596 double GetBoxMaxSizeVarSet(Tvariable_set *vars, Tbox *b) Computes the size of the box. Definition: box.c:615 void DeriveEqualityEquations(unsigned int v, Tequations *deqs, Tequations *eqs) Derives an equation set. Definition: equations.c:2668 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:1592 boolean UsedVarInEquations(unsigned int nv, Tequations *eqs) Checks if a variable is used in the set of equations. Definition: equations.c:860 void DeriveMEquation(unsigned int v, TMequation *dme, TMequation *me) Derives a matrix equation. Definition: mequation.c:312 unsigned int NumberScalarEquations(TMequation *me) Number of scaler equations defined by a matrix equation. Definition: mequation.c:281 boolean GaussianElimination(Tequations *eqs) Perform Gaussian elimination on the set of equations. Definition: equations.c:963 Tvariable_set * GetEquationVariables(Tequation *eq) Gets the set of variables equation used in the equation. Definition: equation.c:1178 double GetBoxMinSizeVarSet(Tvariable_set *vars, Tbox *b) Computes the minimum size of the box. Definition: box.c:633 void EvaluateMEquationXVectors(double *v, unsigned int n, double *p, double *r, TMequation *me) Equation x vector evaluation. Definition: mequation.c:378 boolean UsedVarInNonDummyEquations(unsigned int nv, Tequations *eqs) Checks if a variable is used in the set of equations. Definition: equations.c:835 unsigned int GetEquationCmp(Tequation *eq) Gets the type of relational operator of the equation. Definition: equation.c:1139 boolean LinearizeCircleEquation(double epsilon, unsigned int safeSimplex, Tbox *b, TSimplex *lp, TequationInfo *ei) Produces a linear relaxation for a circle equation. Definition: equations.c:1917 void AddEquationNoSimp(Tequation *equation, Tequations *eqs) Adds an equation to the set. Definition: equations.c:1656 void IntervalOffset(Tinterval *i, double offset, Tinterval *i_out) Interval offset. Definition: interval.c:622 boolean ReplaceVariableInEquations(double epsilon, unsigned int nv, TLinearConstraint *lc, Tequations *eqs) Replaces a variable with a linear expression. Definition: equations.c:925 |
Follow us!