Detailed Descriptioninterval arithmetics for provable bounds Definition in file intervalarith.h. #include "scip/def.h" Go to the source code of this file.
Typedef Documentation
Definition at line 41 of file intervalarith.h.
rounding mode of floating point operations (upwards, downwards, nearest, ...) exact values depend on machine and compiler, so we define a corresponding enum in the header file Definition at line 45 of file intervalarith.h. Function Documentation
returns whether rounding mode control is available Definition at line 180 of file intervalarith.c. References FALSE. Referenced by SCIPfindSimpleRational().
sets rounding mode of floating point operations
Definition at line 188 of file intervalarith.c. References SCIPerrorMessage. Referenced by consdataUpdateLinearActivity(), consdataUpdateLinearActivityLbChange(), consdataUpdateLinearActivityUbChange(), exprgraphNodePropagateBounds(), propagateBounds(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateConstraintSides(), SCIPfindSimpleRational(), SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalAddVectors(), SCIPintervalDiv(), SCIPintervalDivScalar(), SCIPintervalMul(), SCIPintervalMulScalar(), SCIPintervalPowerScalarInteger(), SCIPintervalPowerScalarIntegerInf(), SCIPintervalPowerScalarIntegerSup(), SCIPintervalQuadUpperBound(), SCIPintervalReciprocal(), SCIPintervalScalprod(), SCIPintervalScalprodScalars(), SCIPintervalSetRoundingModeDownwards(), SCIPintervalSetRoundingModeToNearest(), SCIPintervalSetRoundingModeTowardsZero(), SCIPintervalSetRoundingModeUpwards(), SCIPintervalSignPowerScalar(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), SCIPintervalSquare(), and SCIPintervalSub().
gets current rounding mode of floating point operations Definition at line 196 of file intervalarith.c. References negate(), and SCIP_ROUND_NEAREST. Referenced by consdataUpdateLinearActivity(), consdataUpdateLinearActivityLbChange(), consdataUpdateLinearActivityUbChange(), exprgraphNodePropagateBounds(), propagateBounds(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateConstraintSides(), SCIPfindSimpleRational(), SCIPintervalAdd(), SCIPintervalAddInf(), SCIPintervalAddScalar(), SCIPintervalAddSup(), SCIPintervalAddVectors(), SCIPintervalDiv(), SCIPintervalDivScalar(), SCIPintervalExp(), SCIPintervalLog(), SCIPintervalMul(), SCIPintervalMulInf(), SCIPintervalMulScalar(), SCIPintervalMulScalarInf(), SCIPintervalMulScalarSup(), SCIPintervalMulSup(), SCIPintervalPowerScalar(), SCIPintervalPowerScalarInteger(), SCIPintervalPowerScalarIntegerInf(), SCIPintervalPowerScalarIntegerSup(), SCIPintervalPowerScalarScalar(), SCIPintervalQuadUpperBound(), SCIPintervalReciprocal(), SCIPintervalScalprod(), SCIPintervalScalprodScalars(), SCIPintervalScalprodScalarsInf(), SCIPintervalScalprodScalarsSup(), SCIPintervalSignPowerScalar(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), SCIPintervalSquare(), SCIPintervalSquareRoot(), and SCIPintervalSub().
sets rounding mode of floating point operations to downwards rounding Definition at line 390 of file intervalarith.c. References SCIP_ROUND_DOWNWARDS, and SCIPintervalSetRoundingMode(). Referenced by consdataUpdateLinearActivity(), consdataUpdateLinearActivityLbChange(), consdataUpdateLinearActivityUbChange(), exprgraphNodePropagateBounds(), propagateBounds(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateConstraintSides(), and SCIPfindSimpleRational().
sets rounding mode of floating point operations to upwards rounding Definition at line 398 of file intervalarith.c. References SCIP_ROUND_UPWARDS, and SCIPintervalSetRoundingMode(). Referenced by consdataUpdateLinearActivity(), consdataUpdateLinearActivityLbChange(), consdataUpdateLinearActivityUbChange(), propagateBounds(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), and propagateBoundsQuadVar().
sets rounding mode of floating point operations to nearest rounding Definition at line 406 of file intervalarith.c. References SCIP_ROUND_NEAREST, and SCIPintervalSetRoundingMode().
sets rounding mode of floating point operations to towards zero rounding Definition at line 414 of file intervalarith.c. References SCIP_ROUND_ZERO, and SCIPintervalSetRoundingMode(). negates a number in a way that the compiler does not optimize it away
Definition at line 422 of file intervalarith.c. References negate(). Referenced by consdataUpdateLinearActivityLbChange(), consdataUpdateLinearActivityUbChange(), exprgraphNodePropagateBounds(), propagateBoundsCons(), and propagateConstraintSides().
returns infimum of interval
Definition at line 451 of file intervalarith.c. References SCIP_Interval::inf. Referenced by addIntervalGradientEstimator(), enforceViolatedFixedNonlinear(), lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), nlrowCalcActivityBounds(), presolveTryAddLinearReform(), propagateBounds(), propagateBoundsBilinearTerm(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateBoundsTightenVar(), propagateConstraintSides(), provedBound(), reformNode2Var(), reformulate(), replaceViolatedByLinearConstraints(), SCIP_DECL_EXPRGRAPHNODEREFORM(), SCIP_DECL_NONLINCONSUPGD(), SCIPintervalSolveUnivariateQuadExpression(), SCIPlpGetModifiedProvedPseudoObjval(), and tightenBounds().
returns supremum of interval
Definition at line 459 of file intervalarith.c. References SCIP_Interval::sup. Referenced by addIntervalGradientEstimator(), enforceViolatedFixedNonlinear(), nlrowCalcActivityBounds(), presolveTryAddLinearReform(), propagateBounds(), propagateBoundsBilinearTerm(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateBoundsTightenVar(), propagateConstraintSides(), reformNode2Var(), reformulate(), replaceViolatedByLinearConstraints(), SCIP_DECL_EXPRGRAPHNODEREFORM(), SCIP_DECL_NONLINCONSUPGD(), SCIPintervalSolveUnivariateQuadExpression(), and tightenBounds().
stores given value as interval
Definition at line 467 of file intervalarith.c. References SCIP_Interval::inf, NULL, and SCIP_Interval::sup. Referenced by checkFixedVariables(), consdataCreate(), exprgraphNodePropagateBounds(), lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), nlrowCalcActivityBounds(), presolveTryAddLinearReform(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), provedBound(), SCIP_DECL_EXPRINTEVAL(), SCIPexprgraphAddNode(), SCIPexprgraphReplaceVarByLinearSum(), SCIPintervalDiv(), SCIPintervalPowerScalarInteger(), SCIPintervalPowerScalarScalar(), SCIPintervalQuadBivar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPlpGetModifiedProvedPseudoObjval().
stores given infimum and supremum as interval
Definition at line 479 of file intervalarith.c. References SCIP_Interval::inf, NULL, and SCIP_Interval::sup. Referenced by addIntervalGradientEstimator(), addUserEstimator(), checkCurvature(), exprgraphNodePropagateBounds(), getImpliedBounds(), nlrowCalcActivityBounds(), operator-(), propagateBounds(), propagateBoundsBilinearTerm(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateCons(), provedBound(), SCIP_DECL_EXPRCURV(), SCIP_DECL_EXPRGRAPHVARADDED(), SCIP_DECL_EXPRINTEVAL(), SCIPevalExprtreeGlobalBounds(), SCIPevalExprtreeLocalBounds(), SCIPexprcurvPower(), SCIPintervalPowerScalarInverse(), SCIPintervalQuadBivar(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
sets interval to empty interval, which will be [1.0, -1.0] sets interval to empty interval, which will be [infinity, -infinity]
Definition at line 493 of file intervalarith.c. References SCIP_Interval::inf, NULL, and SCIP_Interval::sup. Referenced by addBilinearTerm(), addQuadVarTerm(), catchQuadVarEvents(), consdataCreate(), delQuadVarTermPos(), mergeAndCleanLinearVars(), mergeAndCleanQuadVarTerms(), removeBilinearTermsPos(), replaceQuadVarTermPos(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EXPRINTEVAL(), SCIPaddQuadVarLinearCoefQuadratic(), SCIPaddSquareCoefQuadratic(), SCIPchgBilinCoefQuadratic(), SCIPchgLinearCoefQuadratic(), SCIPchgSquareCoefQuadratic(), SCIPintervalLog(), SCIPintervalPowerScalar(), SCIPintervalPowerScalarInverse(), SCIPintervalQuad(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), SCIPintervalSolveUnivariateQuadExpressionPositive(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), and SCIPintervalSquareRoot().
indicates whether interval is empty, i.e., whether inf > sup
Definition at line 504 of file intervalarith.c. References FALSE, SCIP_Interval::inf, and SCIP_Interval::sup. Referenced by computeBoundsX(), computeBoundsZ(), enforceViolatedFixedNonlinear(), exprgraphNodePropagateBounds(), exprgraphNodeUpdateBounds(), propagateBounds(), propagateBoundsBilinearTerm(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateBoundsTightenVar(), reformEnsureChildrenMinCurvature(), reformMonomial(), reformulate(), SCIP_DECL_EXPRINTEVAL(), SCIPexprgraphCheckCurvature(), SCIPexprgraphGetNodePolynomialMonomialCurvature(), SCIPexprgraphPropagateVarBounds(), SCIPexprgraphTightenNodeBounds(), SCIPexprgraphUpdateNodeBoundsCurvature(), SCIPintervalAbs(), SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalDiv(), SCIPintervalDivScalar(), SCIPintervalExp(), SCIPintervalLog(), SCIPintervalMax(), SCIPintervalMin(), SCIPintervalMul(), SCIPintervalMulInf(), SCIPintervalMulScalar(), SCIPintervalMulScalarInf(), SCIPintervalMulScalarSup(), SCIPintervalMulSup(), SCIPintervalPower(), SCIPintervalPowerScalar(), SCIPintervalQuad(), SCIPintervalQuadUpperBound(), SCIPintervalReciprocal(), SCIPintervalSign(), SCIPintervalSignPowerScalar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSquare(), SCIPintervalSquareRoot(), and SCIPintervalSub().
sets interval to entire [-infinity, +infinity]
Definition at line 516 of file intervalarith.c. References SCIP_Interval::inf, NULL, and SCIP_Interval::sup. Referenced by computeBoundsX(), computeBoundsZ(), exprgraphCreateNode(), exprgraphNodePropagateBounds(), SCIP_DECL_EXPRINTEVAL(), SCIPexprEvalIntUser(), SCIPexprgraphAddNode(), SCIPexprgraphAddVars(), SCIPexprgraphEnableNode(), SCIPexprgraphNodeSplitOffLinear(), SCIPexprgraphReplaceVarByLinearSum(), SCIPintervalScalprod(), SCIPintervalScalprodScalarsInf(), SCIPintervalScalprodScalarsSup(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSolveUnivariateQuadExpression().
indicates whether interval is entire, i.e., whether inf <= -infinity and sup >= infinity
Definition at line 528 of file intervalarith.c. References SCIP_Interval::inf, and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), nlrowCalcActivityBounds(), propagateBoundsBilinearTerm(), propagateBoundsCons(), propagateBoundsQuadVar(), and SCIP_DECL_EXPRINTEVAL().
indicates whether interval is positive infinity, i.e., [infinity, infinity]
Definition at line 537 of file intervalarith.c. References SCIP_Interval::inf, and SCIP_Interval::sup. Referenced by propagateBoundsTightenVar().
indicates whether interval is negative infinity, i.e., [-infinity, -infinity]
Definition at line 546 of file intervalarith.c. References SCIP_Interval::inf, and SCIP_Interval::sup. Referenced by propagateBoundsTightenVar().
indicates whether operand1 is contained in operand2
Definition at line 555 of file intervalarith.c. References FALSE, SCIP_Interval::inf, MAX, MIN, SCIP_Interval::sup, and TRUE. Referenced by propagateBoundsCons().
indicates whether operand1 and operand2 are disjoint
Definition at line 574 of file intervalarith.c. References SCIP_Interval::inf, and SCIP_Interval::sup. Referenced by propagateBoundsCons().
intersection of two intervals
Definition at line 583 of file intervalarith.c. References SCIP_Interval::inf, MAX, MIN, NULL, and SCIP_Interval::sup. Referenced by exprgraphNodeUpdateBounds(), SCIPexprgraphTightenNodeBounds(), SCIPexprgraphUpdateNodeBoundsCurvature(), SCIPintervalPowerScalarInverse(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSolveUnivariateQuadExpressionPositive().
interval enclosure of the union of two intervals
Definition at line 596 of file intervalarith.c. References SCIP_Interval::inf, MAX, MIN, NULL, and SCIP_Interval::sup. Referenced by SCIPintervalPowerScalarInverse(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSolveUnivariateQuadExpression().
adds operand1 and operand2 and stores infimum of result in infimum of resultant
Definition at line 623 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_DOWNWARDS, and SCIPintervalGetRoundingMode(). Referenced by SCIPintervalAdd(), SCIPintervalAddVectors(), SCIPintervalScalprod(), and SCIPintervalScalprodScalarsInf().
adds operand1 and operand2 and stores supremum of result in supremum of resultant
Definition at line 650 of file intervalarith.c. References NULL, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), and SCIP_Interval::sup. Referenced by SCIPintervalAdd(), SCIPintervalAddVectors(), SCIPintervalScalprod(), and SCIPintervalScalprodScalarsSup().
adds operand1 and operand2 and stores result in resultant
Definition at line 677 of file intervalarith.c. References NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalAddInf(), SCIPintervalAddSup(), SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), and SCIPintervalSetRoundingMode(). Referenced by exprgraphNodePropagateBounds(), lpUpdateVarLooseProved(), lpUpdateVarProved(), nlrowCalcActivityBounds(), operator+(), presolveTryAddLinearReform(), propagateBounds(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), provedBound(), SCIP_DECL_EXPRINTEVAL(), SCIPintervalQuadBivar(), and SCIPlpGetModifiedProvedPseudoObjval().
adds operand1 and scalar operand2 and stores result in resultant
Definition at line 704 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), propagateBounds(), propagateBoundsQuadVar(), SCIP_DECL_EXPRINTEVAL(), SCIPintervalQuadBivar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSubScalar().
adds vector operand1 and vector operand2 and stores result in vector resultant
Definition at line 754 of file intervalarith.c. References SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalAddInf(), SCIPintervalAddSup(), SCIPintervalGetRoundingMode(), and SCIPintervalSetRoundingMode().
subtracts operand2 from operand1 and stores result in resultant
Definition at line 784 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), lpUpdateVarColumnProved(), lpUpdateVarProved(), operator-(), propagateBounds(), propagateBoundsCons(), propagateBoundsQuadVar(), provedBound(), SCIP_DECL_EXPRINTEVAL(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPlpGetModifiedProvedPseudoObjval().
subtracts scalar operand2 from operand1 and stores result in resultant
Definition at line 832 of file intervalarith.c. References SCIPintervalAddScalar(). Referenced by exprgraphNodePropagateBounds(), and propagateBounds().
multiplies operand1 with operand2 and stores infimum of result in infimum of resultant
Definition at line 843 of file intervalarith.c. References SCIP_Interval::inf, MIN, NULL, SCIP_Real, SCIP_ROUND_DOWNWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalMulScalarInf(), and SCIP_Interval::sup. Referenced by propagateBoundsCons(), SCIPintervalMul(), and SCIPintervalScalprod().
multiplies operand1 with operand2 and stores supremum of result in supremum of resultant
Definition at line 903 of file intervalarith.c. References SCIP_Interval::inf, MAX, NULL, SCIP_Real, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalMulScalarSup(), and SCIP_Interval::sup. Referenced by propagateBoundsCons(), SCIPintervalMul(), and SCIPintervalScalprod().
multiplies operand1 with operand2 and stores result in resultant
Definition at line 963 of file intervalarith.c. References NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalMulInf(), SCIPintervalMulSup(), and SCIPintervalSetRoundingMode(). Referenced by exprgraphNodePropagateBounds(), lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), operator*(), provedBound(), SCIP_DECL_EXPRINTEVAL(), SCIPintervalDiv(), SCIPintervalPower(), SCIPintervalQuad(), and SCIPlpGetModifiedProvedPseudoObjval().
multiplies operand1 with scalar operand2 and stores infimum of result in infimum of resultant
Definition at line 990 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_DOWNWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), and SCIP_Interval::sup. Referenced by SCIPintervalMulInf(), SCIPintervalMulScalar(), and SCIPintervalScalprodScalarsInf().
multiplies operand1 with scalar operand2 and stores supremum of result in supremum of resultant
Definition at line 1046 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), and SCIP_Interval::sup. Referenced by SCIPintervalMulScalar(), SCIPintervalMulSup(), and SCIPintervalScalprodScalarsSup().
multiplies operand1 with scalar operand2 and stores result in resultant
Definition at line 1102 of file intervalarith.c. References NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalMulScalarInf(), SCIPintervalMulScalarSup(), and SCIPintervalSetRoundingMode(). Referenced by addIntervalGradientEstimator(), exprgraphNodePropagateBounds(), nlrowCalcActivityBounds(), presolveTryAddLinearReform(), propagateBounds(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), replaceViolatedByLinearConstraints(), SCIP_DECL_EXPRINTEVAL(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
divides operand1 by operand2 and stores result in resultant
Definition at line 1128 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalMul(), SCIPintervalSet(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), operator/(), SCIP_DECL_EXPRINTEVAL(), and SCIPintervalSolveUnivariateQuadExpression().
divides operand1 by scalar operand2 and stores result in resultant
Definition at line 1182 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by presolveTryAddLinearReform(), propagateBounds(), and propagateBoundsCons().
computes the scalar product of two vectors of intervals and stores result in resultant
Definition at line 1285 of file intervalarith.c. References SCIP_Interval::inf, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalAddInf(), SCIPintervalAddSup(), SCIPintervalGetRoundingMode(), SCIPintervalMulInf(), SCIPintervalMulSup(), SCIPintervalSetEntire(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup.
computes the scalar product of a vector of intervals and a vector of scalars and stores infimum of result in infimum of resultant computes scalar product of a vector of intervals and a vector of scalars and stores infimum of result in infimum of resultant
Definition at line 1327 of file intervalarith.c. References SCIP_Interval::inf, SCIP_ROUND_DOWNWARDS, SCIPintervalAddInf(), SCIPintervalGetRoundingMode(), SCIPintervalMulScalarInf(), SCIPintervalSetEntire(), and SCIP_Interval::sup. Referenced by SCIPintervalScalprodScalars().
computes the scalar product of a vector of intervals and a vector of scalars and stores supremum of result in supremum of resultant
Definition at line 1355 of file intervalarith.c. References SCIP_Interval::inf, SCIP_ROUND_UPWARDS, SCIPintervalAddSup(), SCIPintervalGetRoundingMode(), SCIPintervalMulScalarSup(), SCIPintervalSetEntire(), and SCIP_Interval::sup. Referenced by SCIPintervalScalprodScalars().
computes the scalar product of a vector of intervals and a vector of scalars and stores result in resultant
Definition at line 1381 of file intervalarith.c. References SCIP_Interval::inf, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalScalprodScalarsInf(), SCIPintervalScalprodScalarsSup(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by SCIP_DECL_EXPRINTEVAL().
squares operand and stores result in resultant
Definition at line 1409 of file intervalarith.c. References SCIP_Interval::inf, MAX, NULL, SCIP_Real, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), propagateBounds(), SCIP_DECL_EXPRINTEVAL(), and square().
stores (positive part of) square root of operand in resultant
Definition at line 1481 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetEmpty(), sqrt(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), propagateBounds(), SCIP_DECL_EXPRINTEVAL(), SCIPintervalSolveUnivariateQuadExpression(), and sqrt().
stores operand1 to the power of operand2 in resultant uses SCIPintervalPowerScalar if operand2 is a scalar, otherwise computes exp(op2*log(op1))
Definition at line 1542 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIPintervalExp(), SCIPintervalIsEmpty(), SCIPintervalLog(), SCIPintervalMul(), SCIPintervalPowerScalar(), and SCIP_Interval::sup. Referenced by pow(), and SCIPintervalPowerScalarInverse().
stores operand1 to the power of the scalar operand2 in resultant stores operand1 to the power of the scalar operand2 in resultant
Definition at line 1865 of file intervalarith.c. References SCIP_Interval::inf, MAX, NULL, pow(), SCIP_Bool, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalPowerScalarIntegerInf(), SCIPintervalPowerScalarIntegerSup(), SCIPintervalSetEmpty(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), pow(), SCIP_DECL_EXPRINTEVAL(), and SCIPintervalPower().
stores bounds on the power of a scalar operand1 to a scalar operand2 in resultant both operands need to be finite numbers need to have operand1 >= 0 or operand2 integer and need to have operand2 >= 0 if operand1 == 0
Definition at line 1822 of file intervalarith.c. References SCIP_Interval::inf, NULL, pow(), SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalGetRoundingMode(), SCIPintervalSet(), and SCIP_Interval::sup. computes lower bound on power of a scalar operand1 to an integer operand2 both operands need to be finite numbers need to have operand1 >= 0 and need to have operand2 >= 0 if operand1 == 0
Definition at line 1575 of file intervalarith.c. References SCIP_Real, SCIP_ROUND_DOWNWARDS, SCIPintervalGetRoundingMode(), SCIPintervalPowerScalarIntegerSup(), SCIPintervalSetRoundingMode(), and TRUE. Referenced by SCIPintervalPowerScalar(), and SCIPintervalPowerScalarIntegerSup(). computes upper bound on power of a scalar operand1 to an integer operand2 both operands need to be finite numbers need to have operand1 >= 0 and need to have operand2 >= 0 if operand1 == 0
Definition at line 1657 of file intervalarith.c. References SCIP_Real, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalPowerScalarIntegerInf(), SCIPintervalSetRoundingMode(), and TRUE. Referenced by SCIPintervalPowerScalar(), and SCIPintervalPowerScalarIntegerInf().
computes bounds on power of a scalar operand1 to an integer operand2 both operands need to be finite numbers need to have operand1 >= 0 and need to have operand2 >= 0 if operand1 == 0
Definition at line 1731 of file intervalarith.c. References SCIP_Interval::inf, negate(), SCIP_Real, SCIP_REAL_MAX, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalPowerScalarInteger(), SCIPintervalReciprocal(), SCIPintervalSet(), SCIPintervalSetRoundingMode(), SCIP_Interval::sup, and TRUE. Referenced by SCIPintervalPowerScalarInteger().
given an interval for the image of a power operation, computes an interval for the origin that is, for y = x^p with p = exponent a given scalar and y = image a given interval, 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
Definition at line 2113 of file intervalarith.c. References EPSISINT, SCIP_Interval::inf, MAX, MIN, NULL, SCIPintervalIntersect(), SCIPintervalPower(), SCIPintervalReciprocal(), SCIPintervalSetBounds(), SCIPintervalSetEmpty(), SCIPintervalUnify(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds().
stores operand1 to the signed power of the scalar positive operand2 in resultant the signed power of x w.r.t. an exponent n >= 0 is given as sign(x) * abs(x)^n
Definition at line 2194 of file intervalarith.c. References SCIP_Interval::inf, negate(), NULL, pow(), SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_NEAREST, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetRoundingMode(), sqrt(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), SCIP_DECL_EXPRINTEVAL(), and signpow().
computes the reciprocal of an interval
Definition at line 2366 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by SCIPintervalPowerScalarInteger(), and SCIPintervalPowerScalarInverse().
stores exponential of operand in resultant
Definition at line 2439 of file intervalarith.c. References exp(), SCIP_Interval::inf, NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), and SCIP_Interval::sup. Referenced by exp(), exprgraphNodePropagateBounds(), SCIP_DECL_EXPRINTEVAL(), and SCIPintervalPower().
stores natural logarithm of operand in resultant
Definition at line 2519 of file intervalarith.c. References SCIP_Interval::inf, log(), NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSetEmpty(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), log(), SCIP_DECL_EXPRINTEVAL(), and SCIPintervalPower().
stores minimum of operands in resultant
Definition at line 2593 of file intervalarith.c. References SCIP_Interval::inf, MIN, NULL, SCIPintervalIsEmpty(), and SCIP_Interval::sup. Referenced by SCIP_DECL_EXPRINTEVAL().
stores maximum of operands in resultant
Definition at line 2609 of file intervalarith.c. References SCIP_Interval::inf, MAX, NULL, SCIPintervalIsEmpty(), and SCIP_Interval::sup. Referenced by SCIP_DECL_EXPRINTEVAL().
stores absolute value of operand in resultant
Definition at line 2625 of file intervalarith.c. References SCIP_Interval::inf, MAX, NULL, SCIPintervalIsEmpty(), and SCIP_Interval::sup. Referenced by abs(), and SCIP_DECL_EXPRINTEVAL().
stores sign of operand in resultant
Definition at line 2651 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIPintervalIsEmpty(), and SCIP_Interval::sup. Referenced by SCIP_DECL_EXPRINTEVAL(), and sign().
computes exact upper bound on for x in [xlb, xub], b an interval, and a scalar Uses Algorithm 2.2 from Domes and Neumaier: Constraint propagation on quadratic constraints (2008)
Definition at line 2680 of file intervalarith.c. References SCIP_Interval::inf, MAX, negate(), SCIP_Real, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalQuadUpperBound(), SCIPintervalSetRoundingMode(), and SCIP_Interval::sup. Referenced by propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), SCIPintervalQuad(), SCIPintervalQuadUpperBound(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
stores range of quadratic term in resultant given scalar a and intervals b and x, computes interval for
Definition at line 2775 of file intervalarith.c. References SCIP_Interval::inf, SCIP_Real, SCIPintervalIsEmpty(), SCIPintervalMul(), SCIPintervalQuadUpperBound(), SCIPintervalSetEmpty(), and SCIP_Interval::sup. Referenced by nlrowCalcActivityBounds(), propagateBoundsQuadVar(), SCIP_DECL_EXPRINTEVAL(), SCIPintervalQuadBivar(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
computes interval with positive solutions of a quadratic equation with interval coefficients Given intervals a, b, and c, this function computes an interval that contains all positive solutions of .
Definition at line 2810 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIPdebugMessage, SCIPdebugPrintf, SCIPintervalIntersect(), SCIPintervalSetEmpty(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), and SCIP_Interval::sup. Referenced by propagateBoundsQuadVar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSolveUnivariateQuadExpression().
computes positive solutions of a quadratic equation with scalar coefficients Given scalar a, b, and c, this function computes an interval that contains all positive solutions of . Implements Algorithm 3.2 from Domes and Neumaier: Constraint propagation on quadratic constraints (2008).
Definition at line 2856 of file intervalarith.c. References SCIP_Interval::inf, negate(), NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_NEAREST, SCIP_ROUND_UPWARDS, SCIPintervalGetRoundingMode(), SCIPintervalSetEmpty(), SCIPintervalSetRoundingMode(), sqrt(), and SCIP_Interval::sup. Referenced by SCIPintervalSolveUnivariateQuadExpressionPositive().
solves a quadratic equation with interval coefficients Given intervals a, b and c, this function computes an interval that contains all solutions of
Definition at line 2957 of file intervalarith.c. References SCIP_Interval::inf, NULL, SCIP_Real, SCIPdebugMessage, SCIPintervalDiv(), SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPintervalSetEmpty(), SCIPintervalSetEntire(), SCIPintervalSolveUnivariateQuadExpressionPositive(), SCIPintervalSquareRoot(), SCIPintervalUnify(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), and propagateBoundsQuadVar().
stores range of bivariate quadratic term in resultant given scalars ax, ay, axy, bx, and by and intervals for x and y, computes interval for NOTE: the operations are not applied rounding-safe here
Definition at line 3019 of file intervalarith.c. References SCIP_Interval::inf, MAX, MIN, NULL, REALABS, SCIP_Real, SCIPdebugMessage, SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalQuad(), SCIPintervalSet(), SCIPintervalSetBounds(), and SCIP_Interval::sup. Referenced by SCIP_DECL_EXPRINTEVAL().
solves a bivariate quadratic equation for the first variable given scalars ax, ay, axy, bx and by, and intervals for x, y, and rhs, computes NOTE: the operations are not applied rounding-safe here
Definition at line 3278 of file intervalarith.c. References CALCB, CALCR, EPSGE, EPSGT, EPSLE, EPSLT, EPSN, EPSZ, SCIP_Interval::inf, MAX, MIN, NULL, REALABS, SCIP_Real, SCIPintervalAddScalar(), SCIPintervalIntersect(), SCIPintervalIsEmpty(), SCIPintervalMulScalar(), SCIPintervalQuad(), SCIPintervalQuadUpperBound(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSetEmpty(), SCIPintervalSetEntire(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpressionPositive(), SCIPintervalSub(), SCIPintervalUnify(), sqrt(), and SCIP_Interval::sup. Referenced by exprgraphNodePropagateBounds(), propagateBoundsBilinearTerm(), and SCIPintervalSolveBivariateQuadExpressionAllScalar(). |