All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
intervalarith.h
Go to the documentation of this file.
23 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
44 * exact values depend on machine and compiler, so we define a corresponding enum in the header file */
168 /* In optimized mode, some function calls are overwritten by defines to reduce the number of function calls and
170 * With SCIPintervalSetBounds we need to be a bit careful, since i and s could use resultant->inf and resultant->sup,
177 #define SCIPintervalSet(resultant, value) do { (resultant)->inf = (value); (resultant)->sup = (resultant)->inf; } while( FALSE )
178 #define SCIPintervalSetBounds(resultant, i, s) do { SCIP_Real scipintervaltemp; scipintervaltemp = (s); (resultant)->inf = (i); (resultant)->sup = scipintervaltemp; } while( FALSE )
179 #define SCIPintervalSetEmpty(resultant) do { (resultant)->inf = 1.0; (resultant)->sup = -1.0; } while( FALSE )
180 #define SCIPintervalSetEntire(infinity, resultant) do { (resultant)->inf = -(infinity); (resultant)->sup = (infinity); } while( FALSE )
182 #define SCIPintervalIsEntire(infinity, operand) ( (operand).inf <= -(infinity) && (operand).sup >= (infinity) )
183 #define SCIPintervalIsPositiveInfinity(infinity, operand) ( (operand).inf >= (infinity) && (operand).sup >= (operand).inf )
184 #define SCIPintervalIsNegativeInfinity(infinity, operand) ( (operand).sup <= -(infinity) && (operand).sup >= (operand).inf )
310 /** multiplies operand1 with scalar operand2 and stores infimum of result in infimum of resultant */
319 /** multiplies operand1 with scalar operand2 and stores supremum of result in supremum of resultant */
365 /** computes the scalar product of a vector of intervals and a vector of scalars and stores infimum of result in infimum
377 /** computes the scalar product of a vector of intervals and a vector of scalars and stores supremum of result in supremum
389 /** computes the scalar product of a vector of intervals and a vector of scalars and stores result in resultant */
440 * need to have operand1 >= 0 or operand2 integer and need to have operand2 >= 0 if operand1 == 0
483 * computes a subinterval x of basedomain such that y in x^p and such that for all z in basedomain less x, z^p not in y
498 * @attention we assume correctly rounded sqrt(double) and pow(double) functions when rounding is to nearest
567 /** computes exact upper bound on \f$ a x^2 + b x \f$ for x in [xlb, xub], b an interval, and a scalar
569 * Uses Algorithm 2.2 from Domes and Neumaier: Constraint propagation on quadratic constraints (2008) */
591 /** computes interval with positive solutions of a quadratic equation with interval coefficients
593 * Given intervals a, b, and c, this function computes an interval that contains all positive solutions of \f$ a x^2 + b x \in c\f$.
606 * Given scalar a, b, and c, this function computes an interval that contains all positive solutions of \f$ a x^2 + b x \geq c\f$.
607 * Implements Algorithm 3.2 from Domes and Neumaier: Constraint propagation on quadratic constraints (2008).
620 * Given intervals a, b and c, this function computes an interval that contains all solutions of \f$ a x^2 + b x \in c\f$
632 * given scalars ax, ay, axy, bx, and by and intervals for x and y, computes interval for \f$ ax x^2 + ay y^2 + axy x y + bx x + by y \f$
|