methods for interval arithmetics
SCIP_Bool SCIPintervalHasRoundingControl (void) void SCIPintervalSetRoundingMode (SCIP_ROUNDMODE roundmode) SCIP_ROUNDMODE SCIPintervalGetRoundingMode (void) void SCIPintervalSetRoundingModeDownwards (void) void SCIPintervalSetRoundingModeUpwards (void) void SCIPintervalSetRoundingModeToNearest (void) void SCIPintervalSetRoundingModeTowardsZero (void) SCIP_Real SCIPintervalNegateReal (SCIP_Real x) SCIP_Real SCIPintervalGetInf (SCIP_INTERVAL interval) SCIP_Real SCIPintervalGetSup (SCIP_INTERVAL interval) void SCIPintervalSet (SCIP_INTERVAL *resultant, SCIP_Real value) void SCIPintervalSetBounds (SCIP_INTERVAL *resultant, SCIP_Real inf, SCIP_Real sup) void SCIPintervalSetEmpty (SCIP_INTERVAL *resultant) SCIP_Bool SCIPintervalIsEmpty (SCIP_Real infinity, SCIP_INTERVAL operand) void SCIPintervalSetEntire (SCIP_Real infinity, SCIP_INTERVAL *resultant) SCIP_Bool SCIPintervalIsEntire (SCIP_Real infinity, SCIP_INTERVAL operand) SCIP_Bool SCIPintervalIsPositiveInfinity (SCIP_Real infinity, SCIP_INTERVAL operand) SCIP_Bool SCIPintervalIsNegativeInfinity (SCIP_Real infinity, SCIP_INTERVAL operand) SCIP_Bool SCIPintervalIsSubsetEQ (SCIP_Real infinity, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) SCIP_Bool SCIPintervalAreDisjoint (SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) SCIP_Bool SCIPintervalAreDisjointEps (SCIP_Real eps, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalIntersect (SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalIntersectEps (SCIP_INTERVAL *resultant, SCIP_Real eps, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalUnify (SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalAddInf (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalAddSup (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalAdd (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalAddScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalAddVectors (SCIP_Real infinity, SCIP_INTERVAL *resultant, int length, SCIP_INTERVAL *operand1, SCIP_INTERVAL *operand2) void SCIPintervalSub (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalSubScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalMulInf (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalMulSup (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalMul (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalMulScalarInf (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalMulScalarSup (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalMulScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalDiv (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalDivScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalScalprod (SCIP_Real infinity, SCIP_INTERVAL *resultant, int length, SCIP_INTERVAL *operand1, SCIP_INTERVAL *operand2) void SCIPintervalScalprodScalarsInf (SCIP_Real infinity, SCIP_INTERVAL *resultant, int length, SCIP_INTERVAL *operand1, SCIP_Real *operand2) void SCIPintervalScalprodScalarsSup (SCIP_Real infinity, SCIP_INTERVAL *resultant, int length, SCIP_INTERVAL *operand1, SCIP_Real *operand2) void SCIPintervalScalprodScalars (SCIP_Real infinity, SCIP_INTERVAL *resultant, int length, SCIP_INTERVAL *operand1, SCIP_Real *operand2) void SCIPintervalSquare (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalSquareRoot (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalPower (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalPowerScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalPowerScalarScalar (SCIP_INTERVAL *resultant, SCIP_Real operand1, SCIP_Real operand2) SCIP_Real SCIPintervalPowerScalarIntegerInf (SCIP_Real operand1, int operand2) SCIP_Real SCIPintervalPowerScalarIntegerSup (SCIP_Real operand1, int operand2) void SCIPintervalPowerScalarInteger (SCIP_INTERVAL *resultant, SCIP_Real operand1, int operand2) void SCIPintervalPowerScalarInverse (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL basedomain, SCIP_Real exponent, SCIP_INTERVAL image) void SCIPintervalSignPowerScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_Real operand2) void SCIPintervalReciprocal (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalExp (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalLog (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalMin (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalMax (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand1, SCIP_INTERVAL operand2) void SCIPintervalAbs (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalSin (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalCos (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalSign (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) void SCIPintervalEntropy (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL operand) SCIP_Real SCIPintervalQuadUpperBound (SCIP_Real infinity, SCIP_Real a, SCIP_INTERVAL b_, SCIP_INTERVAL x) void SCIPintervalQuad (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_Real sqrcoeff, SCIP_INTERVAL lincoeff, SCIP_INTERVAL xrng) void SCIPintervalSolveUnivariateQuadExpressionPositive (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL sqrcoeff, SCIP_INTERVAL lincoeff, SCIP_INTERVAL rhs, SCIP_INTERVAL xbnds) void SCIPintervalSolveUnivariateQuadExpressionNegative (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL sqrcoeff, SCIP_INTERVAL lincoeff, SCIP_INTERVAL rhs, SCIP_INTERVAL xbnds) void SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_Real sqrcoeff, SCIP_Real lincoeff, SCIP_Real rhs, SCIP_INTERVAL xbnds) void SCIPintervalSolveUnivariateQuadExpression (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_INTERVAL sqrcoeff, SCIP_INTERVAL lincoeff, SCIP_INTERVAL rhs, SCIP_INTERVAL xbnds) void SCIPintervalQuadBivar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_Real ax, SCIP_Real ay, SCIP_Real axy, SCIP_Real bx, SCIP_Real by, SCIP_INTERVAL xbnds, SCIP_INTERVAL ybnds) void SCIPintervalSolveBivariateQuadExpressionAllScalar (SCIP_Real infinity, SCIP_INTERVAL *resultant, SCIP_Real ax, SCIP_Real ay, SCIP_Real axy, SCIP_Real bx, SCIP_Real by, SCIP_INTERVAL rhs, SCIP_INTERVAL xbnds, SCIP_INTERVAL ybnds) int SCIPintervalPropagateWeightedSum (SCIP_Real infinity, int noperands, SCIP_INTERVAL *operands, SCIP_Real *weights, SCIP_Real constant, SCIP_INTERVAL rhs, SCIP_INTERVAL *resultants, SCIP_Bool *infeasible) ◆ SCIP_INTERVAL ◆ SCIP_ROUNDMODErounding mode of floating point operations (upwards, downwards, nearest, ...)
exact values depend on machine and compiler
Definition at line 64 of file intervalarith.h.
◆ SCIPintervalHasRoundingControl() SCIP_Bool SCIPintervalHasRoundingControl ( void ) ◆ SCIPintervalSetRoundingMode() ◆ SCIPintervalGetRoundingMode() ◆ SCIPintervalSetRoundingModeDownwards() void SCIPintervalSetRoundingModeDownwards ( void ) ◆ SCIPintervalSetRoundingModeUpwards() void SCIPintervalSetRoundingModeUpwards ( void ) ◆ SCIPintervalSetRoundingModeToNearest() void SCIPintervalSetRoundingModeToNearest ( void ) ◆ SCIPintervalSetRoundingModeTowardsZero() void SCIPintervalSetRoundingModeTowardsZero ( void ) ◆ SCIPintervalNegateReal() ◆ SCIPintervalGetInf()returns infimum of interval
Definition at line 405 of file intervalarith.c.
References SCIP_Interval::inf.
Referenced by computeRoot(), findMonoidalQuadRoot(), getFeasiblePointsBilinear(), intEvalQuotient(), lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), nlrowCalcActivityBounds(), propagateBoundsQuadExpr(), provedBound(), reverseProp(), SCIP_DECL_EXPRCURVATURE(), SCIP_DECL_EXPRINITESTIMATES(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalSolveUnivariateQuadExpression(), SCIPlpGetModifiedProvedPseudoObjval(), and startProbing().
◆ SCIPintervalGetSup()returns supremum of interval
Definition at line 413 of file intervalarith.c.
References SCIP_Interval::sup.
Referenced by getFeasiblePointsBilinear(), intEvalQuotient(), nlrowCalcActivityBounds(), propagateBoundsQuadExpr(), reverseProp(), SCIP_DECL_EXPRCURVATURE(), SCIP_DECL_EXPRINITESTIMATES(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalSolveUnivariateQuadExpression(), and startProbing().
◆ SCIPintervalSet()stores given value as interval
Definition at line 421 of file intervalarith.c.
References SCIP_Interval::inf, NULL, and SCIP_Interval::sup.
Referenced by computeMaxForBilinearProp(), getFeasiblePointsBilinear(), intEvalQuotient(), lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), nlrowCalcActivityBounds(), propagateBoundsQuadExpr(), provedBound(), reverseProp(), reversePropBilinear(), reversepropQuotient(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalDiv(), SCIPintervalEntropy(), SCIPintervalIntersectEps(), SCIPintervalPower(), SCIPintervalPowerScalarInteger(), SCIPintervalPowerScalarScalar(), SCIPintervalQuadBivar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPlpGetModifiedProvedPseudoObjval().
◆ SCIPintervalSetBounds()stores given infimum and supremum as interval
Definition at line 433 of file intervalarith.c.
References SCIP_Interval::inf, NULL, and SCIP_Interval::sup.
Referenced by computeRangeForBilinearProp(), computeRevPropIntervalSin(), computeRoot(), estimateBivariateQuotient(), estimateUnivariateQuotient(), findMonoidalQuadRoot(), getFeasiblePointsBilinear(), intevalBilinear(), nlrowCalcActivityBounds(), presolveRedundantConss(), propConss(), provedBound(), reverseProp(), SCIP_DECL_EXPR_INTEVALVAR(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRINITSEPA(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIP_DECL_NLHDLRSOLLINEARIZE(), SCIPexprcurvPower(), SCIPexprcurvPowerInv(), SCIPintervalCos(), SCIPintervalEntropy(), SCIPintervalPower(), SCIPintervalPowerScalarInverse(), SCIPintervalQuadBivar(), SCIPintervalSin(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
◆ SCIPintervalSetEmpty()sets interval to empty interval, which will be [1.0, -1.0]
Definition at line 447 of file intervalarith.c.
References SCIP_Interval::inf, NULL, and SCIP_Interval::sup.
Referenced by computeRevPropIntervalSin(), forwardPropExpr(), intevalBilinear(), intEvalQuotient(), reverseProp(), reversePropBilinear(), reversepropQuotient(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_NLHDLRINTEVAL(), SCIPexprEvalActivity(), SCIPintervalEntropy(), SCIPintervalLog(), SCIPintervalPowerScalar(), SCIPintervalPowerScalarInverse(), SCIPintervalQuad(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), SCIPintervalSolveUnivariateQuadExpressionPositive(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), and SCIPintervalSquareRoot().
◆ SCIPintervalIsEmpty()indicates whether interval is empty, i.e., whether inf > sup
Definition at line 458 of file intervalarith.c.
References FALSE, SCIP_Interval::inf, infinity, and SCIP_Interval::sup.
Referenced by computeRoot(), createAuxVar(), estimateVertexPolyhedralProduct(), findMonoidalQuadRoot(), forwardPropExpr(), getFeasiblePointsBilinear(), intevalBilinear(), intEvalQuotient(), isIntervalBetter(), presolveRedundantConss(), propagateBoundsQuadExpr(), propConss(), reverseProp(), reversePropQueue(), reversepropQuotient(), SCIP_DECL_EXPRESTIMATE(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRINITSEPA(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalAbs(), SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalCos(), SCIPintervalDiv(), SCIPintervalDivScalar(), SCIPintervalEntropy(), SCIPintervalExp(), SCIPintervalLog(), SCIPintervalMax(), SCIPintervalMin(), SCIPintervalMul(), SCIPintervalMulInf(), SCIPintervalMulScalar(), SCIPintervalMulScalarInf(), SCIPintervalMulScalarSup(), SCIPintervalMulSup(), SCIPintervalPower(), SCIPintervalPowerScalar(), SCIPintervalPropagateWeightedSum(), SCIPintervalQuad(), SCIPintervalQuadUpperBound(), SCIPintervalReciprocal(), SCIPintervalSign(), SCIPintervalSignPowerScalar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), SCIPintervalSquare(), SCIPintervalSquareRoot(), SCIPintervalSub(), SCIPtightenExprIntervalNonlinear(), and tightenAuxVarBounds().
◆ SCIPintervalSetEntire()sets interval to entire [-infinity, +infinity]
Definition at line 470 of file intervalarith.c.
References SCIP_Interval::inf, infinity, NULL, and SCIP_Interval::sup.
Referenced by computeRangeForBilinearProp(), createAuxVar(), forwardPropExpr(), intevalBilinear(), intEvalQuotient(), reversepropQuotient(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPexprCreate(), SCIPexprEvalActivity(), SCIPgetExprBoundsNonlinear(), SCIPintervalPropagateWeightedSum(), SCIPintervalScalprod(), SCIPintervalScalprodScalarsInf(), and SCIPintervalScalprodScalarsSup().
◆ SCIPintervalIsEntire()indicates whether interval is entire, i.e., whether inf ≤ -infinity and sup ≥ infinity
Definition at line 482 of file intervalarith.c.
References SCIP_Interval::inf, infinity, and SCIP_Interval::sup.
Referenced by nlrowCalcActivityBounds(), reversePropQueue(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalPropagateWeightedSum(), and SCIPtightenExprIntervalNonlinear().
◆ SCIPintervalIsPositiveInfinity() ◆ SCIPintervalIsNegativeInfinity() ◆ SCIPintervalIsSubsetEQ() ◆ SCIPintervalAreDisjoint() ◆ SCIPintervalAreDisjointEps()indicates whether operand1 and operand2 are disjoint with epsilon tolerance
Returns whether minimal (relative) distance of intervals is larger than epsilon. Same as SCIPintervalIsEmpty(SCIPintervalIntersectEps(operand1, operand2))
.
Definition at line 541 of file intervalarith.c.
References eps, FALSE, SCIP_Interval::inf, SCIPrelDiff(), and SCIP_Interval::sup.
◆ SCIPintervalIntersect()intersection of two intervals
Definition at line 557 of file intervalarith.c.
References SCIP_Interval::inf, MAX, MIN, NULL, and SCIP_Interval::sup.
Referenced by reverseProp(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINITSEPA(), SCIP_DECL_NLHDLRINTEVAL(), SCIPintervalIntersectEps(), SCIPintervalPowerScalarInverse(), SCIPintervalPropagateWeightedSum(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), SCIPintervalSolveUnivariateQuadExpressionPositive(), and SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar().
◆ SCIPintervalIntersectEps()intersection of two intervals with epsilon tolerance
If intersection of operand1 and operand2 is empty, but minimal (relative) distance of intervals is at most epsilon, then set resultant to singleton containing the point in operand1 that is closest to operand2, i.e.,
resultant = { operand1.sup }
, if operand1.sup
< operand2.inf
and reldiff(operand2.inf,operand1.sup)
≤ epsresultant = { operand1.inf }
, if operand1.inf
> operand2.sup
and reldiff(operand1.inf,operand2.sup)
≤ epsresultant
= intersection of operand1
and operand2
, otherwiseDefinition at line 578 of file intervalarith.c.
References eps, SCIP_Interval::inf, NULL, SCIPintervalIntersect(), SCIPintervalSet(), SCIPrelDiff(), and SCIP_Interval::sup.
Referenced by estimateBivariateQuotient(), estimateUnivariateQuotient(), forwardPropExpr(), SCIP_DECL_NLHDLRESTIMATE(), SCIPgetExprBoundsNonlinear(), and SCIPtightenExprIntervalNonlinear().
◆ SCIPintervalUnify() ◆ SCIPintervalAddInf() ◆ SCIPintervalAddSup() ◆ SCIPintervalAdd()adds operand1 and operand2 and stores result in resultant
Definition at line 690 of file intervalarith.c.
References infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalAddInf(), SCIPintervalAddSup(), and SCIPintervalIsEmpty().
Referenced by lpUpdateVarLooseProved(), lpUpdateVarProved(), nlrowCalcActivityBounds(), provedBound(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalQuadBivar(), SCIPintervalSin(), and SCIPlpGetModifiedProvedPseudoObjval().
◆ SCIPintervalAddScalar()adds operand1 and scalar operand2 and stores result in resultant
Definition at line 717 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), and SCIP_Interval::sup.
Referenced by intEvalQuotient(), reversepropQuotient(), SCIP_DECL_EXPRREVERSEPROP(), SCIPintervalQuadBivar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSubScalar().
◆ SCIPintervalAddVectors() ◆ SCIPintervalSub()subtracts operand2 from operand1 and stores result in resultant
Definition at line 797 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), and SCIP_Interval::sup.
Referenced by lpUpdateVarColumnProved(), lpUpdateVarProved(), provedBound(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalCos(), SCIPintervalSin(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPlpGetModifiedProvedPseudoObjval().
◆ SCIPintervalSubScalar()subtracts scalar operand2 from operand1 and stores result in resultant
Definition at line 845 of file intervalarith.c.
References infinity, and SCIPintervalAddScalar().
Referenced by reversepropQuotient().
◆ SCIPintervalMulInf()multiplies operand1 with operand2 and stores infimum of result in infimum of resultant
Definition at line 856 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), MIN, NULL, SCIP_Real, SCIP_ROUND_DOWNWARDS, SCIPintervalIsEmpty(), SCIPintervalMulScalarInf(), and SCIP_Interval::sup.
Referenced by SCIPintervalMul(), and SCIPintervalScalprod().
◆ SCIPintervalMulSup()multiplies operand1 with operand2 and stores supremum of result in supremum of resultant
Definition at line 916 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), MAX, NULL, SCIP_Real, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalMulScalarSup(), and SCIP_Interval::sup.
Referenced by SCIPintervalMul(), and SCIPintervalScalprod().
◆ SCIPintervalMul()multiplies operand1 with operand2 and stores result in resultant
Definition at line 976 of file intervalarith.c.
References infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalMulInf(), and SCIPintervalMulSup().
Referenced by lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), provedBound(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), SCIPintervalDiv(), SCIPintervalPower(), SCIPintervalQuad(), and SCIPlpGetModifiedProvedPseudoObjval().
◆ SCIPintervalMulScalarInf() ◆ SCIPintervalMulScalarSup() ◆ SCIPintervalMulScalar()multiplies operand1 with scalar operand2 and stores result in resultant
Definition at line 1115 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalMulScalarInf(), SCIPintervalMulScalarSup(), and SCIP_Interval::sup.
Referenced by computeRangeForBilinearProp(), intevalBilinear(), intEvalQuotient(), nlrowCalcActivityBounds(), reversepropQuotient(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalCos(), SCIPintervalPropagateWeightedSum(), SCIPintervalSin(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
◆ SCIPintervalDiv()divides operand1 by operand2 and stores result in resultant
Definition at line 1154 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalMul(), SCIPintervalSet(), and SCIP_Interval::sup.
Referenced by intEvalQuotient(), reversepropQuotient(), and SCIPintervalSolveUnivariateQuadExpression().
◆ SCIPintervalDivScalar()divides operand1 by scalar operand2 and stores result in resultant
Definition at line 1208 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), and SCIP_Interval::sup.
Referenced by computeMaxForBilinearProp(), intEvalQuotient(), propagateBoundsLinExpr(), and SCIPintervalPropagateWeightedSum().
◆ SCIPintervalScalprod()computes the scalar product of two vectors of intervals and stores result in resultant
Definition at line 1311 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalAddInf(), SCIPintervalAddSup(), SCIPintervalMulInf(), SCIPintervalMulSup(), SCIPintervalSetEntire(), and SCIP_Interval::sup.
◆ SCIPintervalScalprodScalarsInf() ◆ SCIPintervalScalprodScalarsSup() ◆ SCIPintervalScalprodScalars() ◆ SCIPintervalSquare()squares operand and stores result in resultant
Definition at line 1431 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), MAX, NULL, SCIP_Real, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIP_Interval::sup, x, and y.
◆ SCIPintervalSquareRoot()stores (positive part of) square root of operand in resultant
Definition at line 1503 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), SCIPintervalSetEmpty(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by computeMaxForBilinearProp().
◆ SCIPintervalPower()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 1564 of file intervalarith.c.
References SCIP_Interval::inf, infinity, NULL, SCIPintervalExp(), SCIPintervalIsEmpty(), SCIPintervalLog(), SCIPintervalMul(), SCIPintervalPowerScalar(), SCIPintervalSet(), SCIPintervalSetBounds(), and SCIP_Interval::sup.
Referenced by SCIPintervalPowerScalarInverse().
◆ SCIPintervalPowerScalar()stores operand1 to the power of the scalar operand2 in resultant
Definition at line 1903 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), MAX, NULL, SCIP_Bool, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), SCIPintervalPowerScalarIntegerInf(), SCIPintervalPowerScalarIntegerSup(), SCIPintervalSetEmpty(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRINTEVAL(), and SCIPintervalPower().
◆ SCIPintervalPowerScalarScalar() ◆ SCIPintervalPowerScalarIntegerInf() ◆ SCIPintervalPowerScalarIntegerSup() ◆ SCIPintervalPowerScalarInteger()computes bounds on power of a scalar operand1 to an integer operand2
Both operands need to be finite numbers. Needs to have operand1 ≥ 0 and needs to have operand2 ≥ 0 if operand1 = 0.
Definition at line 1768 of file intervalarith.c.
References SCIP_Interval::inf, intervalGetRoundingMode(), intervalSetRoundingMode(), negate(), SCIP_Real, SCIP_REAL_MAX, SCIP_ROUND_UPWARDS, SCIPintervalPowerScalarInteger(), SCIPintervalReciprocal(), SCIPintervalSet(), SCIP_Interval::sup, and TRUE.
Referenced by SCIPintervalPowerScalarInteger().
◆ SCIPintervalPowerScalarInverse()given an interval for the image of a power operation, computes an interval for the origin
That is, for \(y = x^p\) with the exponent \(p\) a given scalar and \(y\) = image
a given interval, computes \(x \subseteq \text{basedomain}\) such that \(y \in x^p\) and such that for all \(z \in \text{basedomain} \setminus x: z^p \not \in y\).
Definition at line 2152 of file intervalarith.c.
References EPSISINT, SCIP_Interval::inf, infinity, MAX, MIN, NULL, SCIPintervalIntersect(), SCIPintervalPower(), SCIPintervalReciprocal(), SCIPintervalSetBounds(), SCIPintervalSetEmpty(), SCIPintervalUnify(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRREVERSEPROP().
◆ SCIPintervalSignPowerScalar()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 \(\mathrm{sign}(x) |x|^n\).
Definition at line 2233 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), negate(), NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_NEAREST, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRINTEVAL(), and SCIP_DECL_EXPRREVERSEPROP().
◆ SCIPintervalReciprocal()computes the reciprocal of an interval
Definition at line 2405 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRREVERSEPROP(), SCIPintervalPowerScalarInteger(), and SCIPintervalPowerScalarInverse().
◆ SCIPintervalExp()stores exponential of operand in resultant
Definition at line 2478 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), and SCIPintervalPower().
◆ SCIPintervalLog()stores natural logarithm of operand in resultant
Definition at line 2562 of file intervalarith.c.
References SCIP_Interval::inf, infinity, intervalGetRoundingMode(), NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), SCIPintervalSetEmpty(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), and SCIPintervalPower().
◆ SCIPintervalMin() ◆ SCIPintervalMax() ◆ SCIPintervalAbs() ◆ SCIPintervalSin()stores sine value of operand in resultant
Definition at line 2700 of file intervalarith.c.
References SCIP_Interval::inf, infinity, pi_d_l, pi_d_u, SCIP_Real, SCIPintervalAdd(), SCIPintervalCos(), SCIPintervalMulScalar(), SCIPintervalSetBounds(), SCIPintervalSub(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRINTEVAL().
◆ SCIPintervalCos()stores cosine value of operand in resultant
Definition at line 2742 of file intervalarith.c.
References SCIP_Interval::inf, infinity, MAX, MIN, NULL, pi_d_l, pi_d_u, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPdebugMessage, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalMulScalar(), SCIPintervalSetBounds(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIPintervalSub(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRINTEVAL(), and SCIPintervalSin().
◆ SCIPintervalSign() ◆ SCIPintervalEntropy()stores entropy of operand in resultant
Definition at line 2896 of file intervalarith.c.
References SCIP_Interval::inf, infinity, MAX, MAX3, MIN, NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSetEmpty(), SCIPintervalSetRoundingModeToNearest(), SCIPintervalSetRoundingModeUpwards(), SCIPnegateReal(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by reverseProp(), and SCIP_DECL_EXPRINTEVAL().
◆ SCIPintervalQuadUpperBound()computes exact upper bound on \( a x^2 + b x \) 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 2995 of file intervalarith.c.
References a, b, SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), MAX, negate(), SCIP_Real, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalQuadUpperBound(), SCIP_Interval::sup, and x.
Referenced by SCIP_DECL_NLHDLRINTEVAL(), SCIPintervalQuad(), SCIPintervalQuadUpperBound(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
◆ SCIPintervalQuad() ◆ SCIPintervalSolveUnivariateQuadExpressionPositive()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 \( a x^2 + b x \in c\) within xbnds.
Definition at line 3125 of file intervalarith.c.
References SCIP_Interval::inf, infinity, NULL, SCIPdebugMessage, SCIPdebugPrintf, SCIPintervalIntersect(), SCIPintervalSetEmpty(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), and SCIP_Interval::sup.
Referenced by SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), and SCIPintervalSolveUnivariateQuadExpressionNegative().
◆ SCIPintervalSolveUnivariateQuadExpressionNegative() ◆ SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar()computes positive solutions of a quadratic equation with scalar coefficients
Givens scalar a, b, and c, this function computes an interval that contains all positive solutions of \( a x^2 + b x \geq c\) within xbnds. Implements Algorithm 3.2 from Domes and Neumaier: Constraint propagation on quadratic constraints (2008).
Definition at line 3208 of file intervalarith.c.
References b, SCIP_Interval::inf, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), MAX, negate(), NULL, SCIP_Real, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_NEAREST, SCIP_ROUND_UPWARDS, SCIPintervalIntersect(), SCIPintervalSetEmpty(), SCIPnextafter(), and SCIP_Interval::sup.
Referenced by computeRoot(), findMonoidalQuadRoot(), and SCIPintervalSolveUnivariateQuadExpressionPositive().
◆ SCIPintervalSolveUnivariateQuadExpression()solves a quadratic equation with interval coefficients
Given intervals a, b and c, this function computes an interval that contains all solutions of \( a x^2 + b x \in c\) within xbnds.
Definition at line 3412 of file intervalarith.c.
References SCIP_Interval::inf, infinity, MAX, MIN, NULL, SCIPdebugMessage, SCIPintervalDiv(), SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPintervalIntersect(), SCIPintervalIsEmpty(), SCIPintervalSetEmpty(), SCIPintervalSolveUnivariateQuadExpressionNegative(), SCIPintervalSolveUnivariateQuadExpressionPositive(), SCIPintervalUnify(), and SCIP_Interval::sup.
Referenced by getFeasiblePointsBilinear(), propagateBoundsQuadExpr(), SCIP_DECL_EXPRREVERSEPROP(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
◆ SCIPintervalQuadBivar()stores range of bivariate quadratic term in resultant
Given scalars \(a_x\), \(a_y\), \(a_{xy}\), \(b_x\), and \(b_y\) and intervals for \(x\) and \(y\), computes interval for \( a_x x^2 + a_y y^2 + a_{xy} x y + b_x x + b_y y \).
Definition at line 3478 of file intervalarith.c.
References SCIP_Interval::inf, infinity, MAX, MIN, NULL, REALABS, SCIP_Real, SCIPdebugMessage, SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalQuad(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIP_Interval::sup, x, and y.
◆ SCIPintervalSolveBivariateQuadExpressionAllScalar()solves a bivariate quadratic equation for the first variable
Given scalars \(a_x\), \(a_y\), \(a_{xy}\), \(b_x\) and \(b_y\), and intervals for \(x\), \(y\), and rhs, computes \( \{ x \in \mathbf{x} : \exists y \in \mathbf{y} : a_x x^2 + a_y y^2 + a_{xy} x y + b_x x + b_y y \in \mathbf{\mbox{rhs}} \} \).
Definition at line 3739 of file intervalarith.c.
References b, CALCB, CALCR, EPSGE, EPSGT, EPSLE, EPSLT, EPSN, EPSZ, SCIP_Interval::inf, infinity, MAX, MIN, NULL, REALABS, SCIP_Real, SCIPintervalAddScalar(), SCIPintervalIntersect(), SCIPintervalIsEmpty(), SCIPintervalMulScalar(), SCIPintervalQuad(), SCIPintervalQuadUpperBound(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSetEmpty(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), SCIPintervalSolveUnivariateQuadExpressionNegative(), SCIPintervalSolveUnivariateQuadExpressionPositive(), SCIPintervalSub(), SCIPintervalUnify(), and SCIP_Interval::sup.
Referenced by SCIPintervalSolveBivariateQuadExpressionAllScalar().
◆ SCIPintervalPropagateWeightedSum()propagates a weighted sum of intervals in a given interval
Given \(\text{constant} + \sum_i \text{weights}_i \text{operands}_i \in \text{rhs}\), computes possibly tighter interval for each term.
*infeasible
= FALSE.
Definition at line 4625 of file intervalarith.c.
References BMScopyMemoryArray, FALSE, SCIP_Interval::inf, infinity, NULL, SCIP_Real, SCIPdebugMessage, SCIPdebugPrintf, SCIPintervalDivScalar(), SCIPintervalGetRoundingMode(), SCIPintervalIntersect(), SCIPintervalIsEmpty(), SCIPintervalIsEntire(), SCIPintervalMulScalar(), SCIPintervalNegateReal(), SCIPintervalSetEntire(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIP_Interval::sup, and TRUE.
Referenced by reversePropagateLinearExpr(), and SCIP_DECL_EXPRREVERSEPROP().
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4