methods for interval arithmetics
Data Structures | |
struct | SCIP_Interval |
Typedefs | |
typedef struct SCIP_Interval | SCIP_INTERVAL |
typedef int | SCIP_ROUNDMODE |
Definition at line 58 of file intervalarith.h.
rounding mode of floating point operations (upwards, downwards, nearest, ...)
exact values depend on machine and compiler
Definition at line 64 of file intervalarith.h.
returns whether rounding mode control is available
Definition at line 239 of file intervalarith.c.
References FALSE.
Referenced by SCIPfindSimpleRational().
void SCIPintervalSetRoundingMode | ( | SCIP_ROUNDMODE | roundmode | ) |
sets rounding mode of floating point operations
roundmode | rounding mode to activate |
Definition at line 268 of file intervalarith.c.
References i, and intervalSetRoundingMode().
Referenced by computeMaxBoundaryForBilinearProp(), computeMaxForBilinearProp(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPfindSimpleRational(), SCIPintervalCos(), and SCIPintervalPropagateWeightedSum().
SCIP_ROUNDMODE SCIPintervalGetRoundingMode | ( | void | ) |
gets current rounding mode of floating point operations
Definition at line 276 of file intervalarith.c.
References intervalGetRoundingMode().
Referenced by computeMaxBoundaryForBilinearProp(), computeMaxForBilinearProp(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPfindSimpleRational(), SCIPintervalCos(), SCIPintervalEntropy(), and SCIPintervalPropagateWeightedSum().
sets rounding mode of floating point operations to downwards rounding
Definition at line 344 of file intervalarith.c.
References intervalSetRoundingMode(), and SCIP_ROUND_DOWNWARDS.
Referenced by computeMaxForBilinearProp(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPfindSimpleRational(), SCIPintervalCos(), and SCIPintervalPropagateWeightedSum().
sets rounding mode of floating point operations to upwards rounding
Definition at line 352 of file intervalarith.c.
References intervalSetRoundingMode(), and SCIP_ROUND_UPWARDS.
Referenced by computeMaxBoundaryForBilinearProp(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), and SCIPintervalEntropy().
sets rounding mode of floating point operations to nearest rounding
Definition at line 360 of file intervalarith.c.
References intervalSetRoundingMode(), and SCIP_ROUND_NEAREST.
Referenced by SCIPintervalEntropy().
sets rounding mode of floating point operations to towards zero rounding
Definition at line 368 of file intervalarith.c.
References intervalSetRoundingMode(), and SCIP_ROUND_ZERO.
negates a number in a way that the compiler does not optimize it away
x | number to negate |
Definition at line 376 of file intervalarith.c.
Referenced by computeMaxBoundaryForBilinearProp(), computeMaxForBilinearProp(), and SCIPintervalPropagateWeightedSum().
SCIP_Real SCIPintervalGetInf | ( | SCIP_INTERVAL | interval | ) |
returns infimum of interval
interval | interval |
Definition at line 405 of file intervalarith.c.
References i.
Referenced by computeRoot(), 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_EXPRMONOTONICITY(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalSolveUnivariateQuadExpression(), SCIPlpGetModifiedProvedPseudoObjval(), and startProbing().
SCIP_Real SCIPintervalGetSup | ( | SCIP_INTERVAL | interval | ) |
returns supremum of interval
interval | interval |
Definition at line 413 of file intervalarith.c.
References i.
Referenced by getFeasiblePointsBilinear(), intEvalQuotient(), nlrowCalcActivityBounds(), propagateBoundsQuadExpr(), reverseProp(), SCIP_DECL_EXPRCURVATURE(), SCIP_DECL_EXPRINITESTIMATES(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRMONOTONICITY(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalSolveUnivariateQuadExpression(), and startProbing().
void SCIPintervalSet | ( | SCIP_INTERVAL * | resultant, |
SCIP_Real | value ) |
stores given value as interval
resultant | interval to store value into |
value | value to store |
Definition at line 421 of file intervalarith.c.
References assert(), i, and NULL.
Referenced by computeMaxForBilinearProp(), getFeasiblePointsBilinear(), intEvalQuotient(), lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), nlrowCalcActivityBounds(), propagateBoundsQuadExpr(), provedBound(), reverseProp(), reversePropBilinear(), reversepropQuotient(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalDiv(), SCIPintervalEntropy(), SCIPintervalIntersectEps(), SCIPintervalPower(), SCIPintervalPowerScalarInteger(), SCIPintervalPowerScalarScalar(), SCIPintervalQuadBivar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPlpGetModifiedProvedPseudoObjval().
void SCIPintervalSetBounds | ( | SCIP_INTERVAL * | resultant, |
SCIP_Real | inf, | ||
SCIP_Real | sup ) |
stores given infimum and supremum as interval
resultant | interval to store value into |
inf | value to store as infimum |
sup | value to store as supremum |
Definition at line 433 of file intervalarith.c.
References assert(), i, and NULL.
Referenced by computeRangeForBilinearProp(), computeRevPropIntervalSin(), computeRoot(), computeRoot(), estimateBivariateQuotient(), estimateUnivariateQuotient(), findMonoidalQuadRoot(), getFeasiblePointsBilinear(), intevalBilinear(), nlrowCalcActivityBounds(), presolveRedundantConss(), propConss(), provedBound(), reverseProp(), SCIP_DECL_EXPR_INTEVALVAR(), SCIP_DECL_EXPR_INTEVALVAR(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), 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().
void SCIPintervalSetEmpty | ( | SCIP_INTERVAL * | resultant | ) |
sets interval to empty interval, which will be [1.0, -1.0]
resultant | resultant interval of operation |
Definition at line 447 of file intervalarith.c.
References assert(), i, and NULL.
Referenced by computeRevPropIntervalSin(), forwardPropExpr(), intevalBilinear(), intEvalQuotient(), reverseProp(), reversePropBilinear(), reversepropQuotient(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_NLHDLRINTEVAL(), SCIPexprEvalActivity(), SCIPintervalEntropy(), SCIPintervalLog(), SCIPintervalPowerScalar(), SCIPintervalPowerScalarInverse(), SCIPintervalQuad(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), SCIPintervalSolveUnivariateQuadExpressionPositive(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), and SCIPintervalSquareRoot().
SCIP_Bool SCIPintervalIsEmpty | ( | SCIP_Real | infinity, |
SCIP_INTERVAL | operand ) |
indicates whether interval is empty, i.e., whether inf > sup
infinity | value for infinity |
operand | operand of operation |
Definition at line 458 of file intervalarith.c.
References FALSE, i, and infinity.
Referenced by computeRoot(), computeRoot(), createAuxVar(), estimateVertexPolyhedralProduct(), findMonoidalQuadRoot(), forwardPropExpr(), getFeasiblePointsBilinear(), intevalBilinear(), intEvalQuotient(), isIntervalBetter(), presolveRedundantConss(), propagateBoundsQuadExpr(), propConss(), reverseProp(), reversePropQueue(), reversepropQuotient(), SCIP_DECL_EXPRESTIMATE(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), 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().
void SCIPintervalSetEntire | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant ) |
sets interval to entire [-infinity, +infinity]
infinity | value for infinity |
resultant | resultant interval of operation |
Definition at line 470 of file intervalarith.c.
References assert(), i, infinity, and NULL.
Referenced by computeRangeForBilinearProp(), createAuxVar(), forwardPropExpr(), intevalBilinear(), intEvalQuotient(), reversepropQuotient(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPexprCreate(), SCIPexprEvalActivity(), SCIPgetExprBoundsNonlinear(), SCIPintervalPropagateWeightedSum(), SCIPintervalScalprod(), SCIPintervalScalprodScalarsInf(), and SCIPintervalScalprodScalarsSup().
SCIP_Bool SCIPintervalIsEntire | ( | SCIP_Real | infinity, |
SCIP_INTERVAL | operand ) |
indicates whether interval is entire, i.e., whether inf ≤ -infinity and sup ≥ infinity
infinity | value for infinity |
operand | operand of operation |
Definition at line 482 of file intervalarith.c.
Referenced by nlrowCalcActivityBounds(), reversePropQueue(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalPropagateWeightedSum(), and SCIPtightenExprIntervalNonlinear().
SCIP_Bool SCIPintervalIsPositiveInfinity | ( | SCIP_Real | infinity, |
SCIP_INTERVAL | operand ) |
indicates whether interval is positive infinity, i.e., [infinity, infinity]
infinity | value for infinity |
operand | operand of operation |
Definition at line 491 of file intervalarith.c.
SCIP_Bool SCIPintervalIsNegativeInfinity | ( | SCIP_Real | infinity, |
SCIP_INTERVAL | operand ) |
indicates whether interval is negative infinity, i.e., [-infinity, -infinity]
infinity | value for infinity |
operand | operand of operation |
Definition at line 500 of file intervalarith.c.
SCIP_Bool SCIPintervalIsSubsetEQ | ( | SCIP_Real | infinity, |
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
indicates whether operand1 is contained in operand2
infinity | value for infinity |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 509 of file intervalarith.c.
References FALSE, i, infinity, MAX, MIN, and TRUE.
Referenced by isIntervalBetter(), presolveRedundantConss(), and reverseProp().
SCIP_Bool SCIPintervalAreDisjoint | ( | SCIP_INTERVAL | operand1, |
SCIP_INTERVAL | operand2 ) |
indicates whether operand1 and operand2 are disjoint
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 528 of file intervalarith.c.
References i.
SCIP_Bool SCIPintervalAreDisjointEps | ( | SCIP_Real | eps, |
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
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))
.
eps | epsilon |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 541 of file intervalarith.c.
References eps, FALSE, i, and SCIPrelDiff().
void SCIPintervalIntersect | ( | SCIP_INTERVAL * | resultant, |
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
intersection of two intervals
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 557 of file intervalarith.c.
References assert(), i, MAX, MIN, and NULL.
Referenced by reverseProp(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_NLHDLRINITSEPA(), SCIP_DECL_NLHDLRINTEVAL(), SCIPintervalIntersectEps(), SCIPintervalPowerScalarInverse(), SCIPintervalPropagateWeightedSum(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), SCIPintervalSolveUnivariateQuadExpressionPositive(), and SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar().
void SCIPintervalIntersectEps | ( | SCIP_INTERVAL * | resultant, |
SCIP_Real | eps, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
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
, otherwise resultant | resultant interval of operation |
eps | epsilon |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 578 of file intervalarith.c.
References assert(), eps, i, NULL, SCIPintervalIntersect(), SCIPintervalSet(), and SCIPrelDiff().
Referenced by estimateBivariateQuotient(), estimateUnivariateQuotient(), forwardPropExpr(), SCIP_DECL_NLHDLRESTIMATE(), SCIPgetExprBoundsNonlinear(), and SCIPtightenExprIntervalNonlinear().
void SCIPintervalUnify | ( | SCIP_INTERVAL * | resultant, |
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
interval enclosure of the union of two intervals
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 609 of file intervalarith.c.
References assert(), i, MAX, MIN, and NULL.
Referenced by intEvalQuotient(), reversepropQuotient(), SCIP_DECL_EXPRREVERSEPROP(), SCIP_DECL_EXPRREVERSEPROP(), SCIPintervalPowerScalarInverse(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSolveUnivariateQuadExpression().
void SCIPintervalAddInf | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
adds operand1 and operand2 and stores infimum of result in infimum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 636 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), NULL, and SCIP_ROUND_DOWNWARDS.
Referenced by SCIPintervalAdd(), SCIPintervalAddVectors(), SCIPintervalScalprod(), and SCIPintervalScalprodScalarsInf().
void SCIPintervalAddSup | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
adds operand1 and operand2 and stores supremum of result in supremum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 663 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), NULL, and SCIP_ROUND_UPWARDS.
Referenced by SCIPintervalAdd(), SCIPintervalAddVectors(), SCIPintervalScalprod(), and SCIPintervalScalprodScalarsSup().
void SCIPintervalAdd | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
adds operand1 and operand2 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 690 of file intervalarith.c.
References assert(), i, 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().
void SCIPintervalAddScalar | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
adds operand1 and scalar operand2 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 717 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, and SCIPintervalIsEmpty().
Referenced by intEvalQuotient(), reversepropQuotient(), SCIP_DECL_EXPRREVERSEPROP(), SCIPintervalQuadBivar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSubScalar().
void SCIPintervalAddVectors | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
int | length, | ||
SCIP_INTERVAL * | operand1, | ||
SCIP_INTERVAL * | operand2 ) |
adds vector operand1 and vector operand2 and stores result in vector resultant
infinity | value for infinity |
resultant | array of resultant intervals of operation |
length | length of arrays |
operand1 | array of first operands of operation |
operand2 | array of second operands of operation |
Definition at line 767 of file intervalarith.c.
References i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalAddInf(), and SCIPintervalAddSup().
void SCIPintervalSub | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
subtracts operand2 from operand1 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 797 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, and SCIPintervalIsEmpty().
Referenced by lpUpdateVarColumnProved(), lpUpdateVarProved(), provedBound(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalCos(), SCIPintervalSin(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPlpGetModifiedProvedPseudoObjval().
void SCIPintervalSubScalar | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
subtracts scalar operand2 from operand1 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 845 of file intervalarith.c.
References i, infinity, and SCIPintervalAddScalar().
Referenced by reversepropQuotient().
void SCIPintervalMulInf | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
multiplies operand1 with operand2 and stores infimum of result in infimum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation; can be +/-inf |
operand2 | second operand of operation; can be +/-inf |
Definition at line 856 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), MIN, NULL, SCIP_ROUND_DOWNWARDS, SCIPintervalIsEmpty(), and SCIPintervalMulScalarInf().
Referenced by SCIPintervalMul(), and SCIPintervalScalprod().
void SCIPintervalMulSup | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
multiplies operand1 with operand2 and stores supremum of result in supremum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation; can be +/-inf |
operand2 | second operand of operation; can be +/-inf |
Definition at line 916 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), MAX, NULL, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), and SCIPintervalMulScalarSup().
Referenced by SCIPintervalMul(), and SCIPintervalScalprod().
void SCIPintervalMul | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
multiplies operand1 with operand2 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation; can be +/-inf |
operand2 | second operand of operation; can be +/-inf |
Definition at line 976 of file intervalarith.c.
References assert(), i, 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().
void SCIPintervalMulScalarInf | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
multiplies operand1 with scalar operand2 and stores infimum of result in infimum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation; can be +/- inf |
Definition at line 1003 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, and SCIPintervalIsEmpty().
Referenced by SCIPintervalMulInf(), SCIPintervalMulScalar(), and SCIPintervalScalprodScalarsInf().
void SCIPintervalMulScalarSup | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
multiplies operand1 with scalar operand2 and stores supremum of result in supremum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation; can be +/- inf |
Definition at line 1059 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), NULL, SCIP_ROUND_UPWARDS, and SCIPintervalIsEmpty().
Referenced by SCIPintervalMulScalar(), SCIPintervalMulSup(), and SCIPintervalScalprodScalarsSup().
void SCIPintervalMulScalar | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
multiplies operand1 with scalar operand2 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1115 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalMulScalarInf(), and SCIPintervalMulScalarSup().
Referenced by computeRangeForBilinearProp(), intevalBilinear(), intEvalQuotient(), nlrowCalcActivityBounds(), reversepropQuotient(), SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIPintervalCos(), SCIPintervalPropagateWeightedSum(), SCIPintervalSin(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
void SCIPintervalDiv | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
divides operand1 by operand2 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1154 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalMul(), and SCIPintervalSet().
Referenced by intEvalQuotient(), reversepropQuotient(), and SCIPintervalSolveUnivariateQuadExpression().
void SCIPintervalDivScalar | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
divides operand1 by scalar operand2 and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1208 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, and SCIPintervalIsEmpty().
Referenced by computeMaxForBilinearProp(), intEvalQuotient(), propagateBoundsLinExpr(), and SCIPintervalPropagateWeightedSum().
void SCIPintervalScalprod | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
int | length, | ||
SCIP_INTERVAL * | operand1, | ||
SCIP_INTERVAL * | operand2 ) |
computes the scalar product of two vectors of intervals and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
length | length of vectors |
operand1 | first vector as array of intervals; can have +/-inf entries |
operand2 | second vector as array of intervals; can have +/-inf entries |
Definition at line 1311 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalAddInf(), SCIPintervalAddSup(), SCIPintervalMulInf(), SCIPintervalMulSup(), and SCIPintervalSetEntire().
void SCIPintervalScalprodScalarsInf | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
int | length, | ||
SCIP_INTERVAL * | operand1, | ||
SCIP_Real * | operand2 ) |
computes the scalar product of a vector of intervals and a vector of scalars and stores infimum of result in infimum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
length | length of vectors |
operand1 | first vector as array of intervals |
operand2 | second vector as array of scalars; can have +/-inf entries |
Definition at line 1351 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), SCIP_ROUND_DOWNWARDS, SCIPintervalAddInf(), SCIPintervalMulScalarInf(), and SCIPintervalSetEntire().
Referenced by SCIPintervalScalprodScalars().
void SCIPintervalScalprodScalarsSup | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
int | length, | ||
SCIP_INTERVAL * | operand1, | ||
SCIP_Real * | operand2 ) |
computes the scalar product of a vector of intervals and a vector of scalars and stores supremum of result in supremum of resultant
infinity | value for infinity |
resultant | resultant interval of operation |
length | length of vectors |
operand1 | first vector as array of intervals |
operand2 | second vector as array of scalars; can have +/-inf entries |
Definition at line 1377 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), SCIP_ROUND_UPWARDS, SCIPintervalAddSup(), SCIPintervalMulScalarSup(), and SCIPintervalSetEntire().
Referenced by SCIPintervalScalprodScalars().
void SCIPintervalScalprodScalars | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
int | length, | ||
SCIP_INTERVAL * | operand1, | ||
SCIP_Real * | operand2 ) |
computes the scalar product of a vector of intervals and a vector of scalars and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
length | length of vectors |
operand1 | first vector as array of intervals |
operand2 | second vector as array of scalars; can have +/-inf entries |
Definition at line 1403 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalScalprodScalarsInf(), and SCIPintervalScalprodScalarsSup().
void SCIPintervalSquare | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
squares operand and stores result in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 1431 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), MAX, NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), x, and y.
void SCIPintervalSquareRoot | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores (positive part of) square root of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 1503 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), SCIPintervalSetEmpty(), and SCIPnextafter().
Referenced by computeMaxForBilinearProp().
void SCIPintervalPower | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
stores operand1 to the power of operand2 in resultant
uses SCIPintervalPowerScalar if operand2 is a scalar, otherwise computes exp(op2*log(op1))
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1564 of file intervalarith.c.
References assert(), i, infinity, NULL, SCIPintervalExp(), SCIPintervalIsEmpty(), SCIPintervalLog(), SCIPintervalMul(), SCIPintervalPowerScalar(), SCIPintervalSet(), and SCIPintervalSetBounds().
Referenced by SCIPintervalPowerScalarInverse().
void SCIPintervalPowerScalar | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
stores operand1 to the power of the scalar operand2 in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1903 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), MAX, NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), SCIPintervalPowerScalarIntegerInf(), SCIPintervalPowerScalarIntegerSup(), SCIPintervalSetEmpty(), and SCIPnextafter().
Referenced by SCIP_DECL_EXPRINTEVAL(), and SCIPintervalPower().
void SCIPintervalPowerScalarScalar | ( | SCIP_INTERVAL * | resultant, |
SCIP_Real | operand1, | ||
SCIP_Real | operand2 ) |
stores bounds on the power of a scalar operand1 to a scalar operand2 in resultant
Both operands need to be finite numbers. Needs to have operand1 ≥ 0 or operand2 integer and needs to have operand2 ≥ 0 if operand1 = 0.
resultant | resultant of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1860 of file intervalarith.c.
References assert(), i, intervalGetRoundingMode(), NULL, result, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalSet(), and SCIPnextafter().
computes lower bound on power of a scalar operand1 to an integer operand2
Both operands need to be finite numbers. Needs to have operand1 ≥ 0 and need to have operand2 ≥ 0 if operand1 = 0.
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1610 of file intervalarith.c.
References assert(), i, intervalGetRoundingMode(), intervalSetRoundingMode(), result, SCIP_ROUND_DOWNWARDS, SCIPintervalPowerScalarIntegerSup(), 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. Needs to have operand1 ≥ 0 and needs to have operand2 ≥ 0 if operand1 = 0.
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1693 of file intervalarith.c.
References assert(), i, intervalGetRoundingMode(), intervalSetRoundingMode(), result, SCIP_ROUND_UPWARDS, SCIPintervalPowerScalarIntegerInf(), and TRUE.
Referenced by SCIPintervalPowerScalar(), and SCIPintervalPowerScalarIntegerInf().
void SCIPintervalPowerScalarInteger | ( | SCIP_INTERVAL * | resultant, |
SCIP_Real | operand1, | ||
int | operand2 ) |
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.
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 1768 of file intervalarith.c.
References assert(), i, intervalGetRoundingMode(), intervalSetRoundingMode(), negate(), SCIP_REAL_MAX, SCIP_ROUND_UPWARDS, SCIPintervalPowerScalarInteger(), SCIPintervalReciprocal(), SCIPintervalSet(), and TRUE.
Referenced by SCIPintervalPowerScalarInteger().
void SCIPintervalPowerScalarInverse | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | basedomain, | ||
SCIP_Real | exponent, | ||
SCIP_INTERVAL | image ) |
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\).
infinity | value for infinity |
resultant | resultant interval of operation |
basedomain | domain of base |
exponent | exponent |
image | interval image of power |
Definition at line 2152 of file intervalarith.c.
References assert(), EPSISINT, i, SCIP_Interval::inf, infinity, MAX, MIN, NULL, SCIPintervalIntersect(), SCIPintervalPower(), SCIPintervalReciprocal(), SCIPintervalSetBounds(), SCIPintervalSetEmpty(), SCIPintervalUnify(), and SCIP_Interval::sup.
Referenced by SCIP_DECL_EXPRREVERSEPROP().
void SCIPintervalSignPowerScalar | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_Real | operand2 ) |
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\).
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 2233 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), negate(), NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_NEAREST, SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), and SCIPnextafter().
Referenced by SCIP_DECL_EXPRINTEVAL(), and SCIP_DECL_EXPRREVERSEPROP().
void SCIPintervalReciprocal | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
computes the reciprocal of an interval
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2405 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), NULL, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_UPWARDS, and SCIPintervalIsEmpty().
Referenced by SCIP_DECL_EXPRREVERSEPROP(), SCIPintervalPowerScalarInteger(), and SCIPintervalPowerScalarInverse().
void SCIPintervalExp | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores exponential of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2478 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), and SCIPnextafter().
Referenced by SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), and SCIPintervalPower().
void SCIPintervalLog | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores natural logarithm of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2562 of file intervalarith.c.
References assert(), i, infinity, intervalGetRoundingMode(), NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalIsEmpty(), SCIPintervalSetEmpty(), and SCIPnextafter().
Referenced by SCIP_DECL_EXPRINTEVAL(), SCIP_DECL_EXPRREVERSEPROP(), and SCIPintervalPower().
void SCIPintervalMin | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
stores minimum of operands in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 2630 of file intervalarith.c.
References assert(), i, infinity, MIN, NULL, and SCIPintervalIsEmpty().
void SCIPintervalMax | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand1, | ||
SCIP_INTERVAL | operand2 ) |
stores maximum of operands in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand1 | first operand of operation |
operand2 | second operand of operation |
Definition at line 2646 of file intervalarith.c.
References assert(), i, infinity, MAX, NULL, and SCIPintervalIsEmpty().
void SCIPintervalAbs | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores absolute value of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2662 of file intervalarith.c.
References assert(), i, infinity, MAX, NULL, and SCIPintervalIsEmpty().
Referenced by SCIP_DECL_EXPRINTEVAL().
void SCIPintervalSin | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores sine value of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2700 of file intervalarith.c.
References i, infinity, pi_d_l, pi_d_u, SCIPintervalAdd(), SCIPintervalCos(), SCIPintervalMulScalar(), SCIPintervalSetBounds(), and SCIPintervalSub().
Referenced by SCIP_DECL_EXPRINTEVAL().
void SCIPintervalCos | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores cosine value of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2742 of file intervalarith.c.
References assert(), i, infinity, MAX, MIN, NULL, pi_d_l, pi_d_u, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPdebugMessage, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalMulScalar(), SCIPintervalSetBounds(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIPintervalSub(), and SCIPnextafter().
Referenced by SCIP_DECL_EXPRINTEVAL(), and SCIPintervalSin().
void SCIPintervalSign | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores sign of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2869 of file intervalarith.c.
References assert(), i, infinity, NULL, and SCIPintervalIsEmpty().
void SCIPintervalEntropy | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | operand ) |
stores entropy of operand in resultant
infinity | value for infinity |
resultant | resultant interval of operation |
operand | operand of operation |
Definition at line 2896 of file intervalarith.c.
References assert(), i, infinity, MAX, MAX3, MIN, NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_NEAREST, SCIPintervalGetRoundingMode(), SCIPintervalIsEmpty(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPintervalSetEmpty(), SCIPintervalSetRoundingModeToNearest(), SCIPintervalSetRoundingModeUpwards(), SCIPnegateReal(), and SCIPnextafter().
Referenced by reverseProp(), and SCIP_DECL_EXPRINTEVAL().
SCIP_Real SCIPintervalQuadUpperBound | ( | SCIP_Real | infinity, |
SCIP_Real | a, | ||
SCIP_INTERVAL | b_, | ||
SCIP_INTERVAL | x ) |
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).
infinity | value for infinity |
a | coefficient of x^2 |
b_ | coefficient of x |
x | range of x |
Definition at line 2995 of file intervalarith.c.
References a, assert(), b, i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), MAX, negate(), SCIP_ROUND_UPWARDS, SCIPintervalIsEmpty(), SCIPintervalQuadUpperBound(), and x.
Referenced by SCIP_DECL_NLHDLRINTEVAL(), SCIPintervalQuad(), SCIPintervalQuadUpperBound(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
void SCIPintervalQuad | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_Real | sqrcoeff, | ||
SCIP_INTERVAL | lincoeff, | ||
SCIP_INTERVAL | xrng ) |
stores range of quadratic term in resultant
given scalar a and intervals b and x, computes interval for \( a x^2 + b x \)
infinity | value for infinity |
resultant | resultant interval of operation |
sqrcoeff | coefficient of x^2 |
lincoeff | coefficient of x |
xrng | range of x |
Definition at line 3090 of file intervalarith.c.
References assert(), i, infinity, SCIPintervalIsEmpty(), SCIPintervalMul(), SCIPintervalQuadUpperBound(), and SCIPintervalSetEmpty().
Referenced by SCIPintervalQuadBivar(), and SCIPintervalSolveBivariateQuadExpressionAllScalar().
void SCIPintervalSolveUnivariateQuadExpressionPositive | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | sqrcoeff, | ||
SCIP_INTERVAL | lincoeff, | ||
SCIP_INTERVAL | rhs, | ||
SCIP_INTERVAL | xbnds ) |
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.
infinity | value for infinity |
resultant | resultant interval of operation |
sqrcoeff | coefficient of x^2 |
lincoeff | coefficient of x |
rhs | right hand side of equation |
xbnds | bounds on x |
Definition at line 3125 of file intervalarith.c.
References assert(), i, SCIP_Interval::inf, infinity, NULL, SCIPdebugMessage, SCIPdebugPrintf, SCIPintervalIntersect(), SCIPintervalSetEmpty(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), and SCIP_Interval::sup.
Referenced by SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpression(), and SCIPintervalSolveUnivariateQuadExpressionNegative().
void SCIPintervalSolveUnivariateQuadExpressionNegative | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | sqrcoeff, | ||
SCIP_INTERVAL | lincoeff, | ||
SCIP_INTERVAL | rhs, | ||
SCIP_INTERVAL | xbnds ) |
computes interval with negative solutions of a quadratic equation with interval coefficients
Given intervals a, b, and c, this function computes an interval that contains all negative solutions of \( a x^2 + b x \in c\) within xbnds.
infinity | value for infinity |
resultant | resultant interval of operation |
sqrcoeff | coefficient of x^2 |
lincoeff | coefficient of x |
rhs | right hand side of equation |
xbnds | bounds on x |
Definition at line 3172 of file intervalarith.c.
References i, infinity, and SCIPintervalSolveUnivariateQuadExpressionPositive().
Referenced by SCIPintervalSolveBivariateQuadExpressionAllScalar(), and SCIPintervalSolveUnivariateQuadExpression().
void SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_Real | sqrcoeff, | ||
SCIP_Real | lincoeff, | ||
SCIP_Real | rhs, | ||
SCIP_INTERVAL | xbnds ) |
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).
infinity | value for infinity |
resultant | resultant interval of operation |
sqrcoeff | coefficient of x^2 |
lincoeff | coefficient of x |
rhs | right hand side of equation |
xbnds | bounds on x |
Definition at line 3208 of file intervalarith.c.
References assert(), b, i, infinity, intervalGetRoundingMode(), intervalSetRoundingMode(), MAX, negate(), NULL, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIP_ROUND_DOWNWARDS, SCIP_ROUND_NEAREST, SCIP_ROUND_UPWARDS, SCIPintervalIntersect(), SCIPintervalSetEmpty(), and SCIPnextafter().
Referenced by computeRoot(), computeRoot(), findMonoidalQuadRoot(), and SCIPintervalSolveUnivariateQuadExpressionPositive().
void SCIPintervalSolveUnivariateQuadExpression | ( | SCIP_Real | infinity, |
SCIP_INTERVAL * | resultant, | ||
SCIP_INTERVAL | sqrcoeff, | ||
SCIP_INTERVAL | lincoeff, | ||
SCIP_INTERVAL | rhs, | ||
SCIP_INTERVAL | xbnds ) |
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.
infinity | value for infinity |
resultant | resultant interval of operation |
sqrcoeff | coefficient of x^2 |
lincoeff | coefficient of x |
rhs | right hand side of equation |
xbnds | bounds on x |
Definition at line 3412 of file intervalarith.c.
References assert(), i, 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().
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 ) |
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 \).
infinity | value for infinity in interval arithmetics |
resultant | buffer where to store result of operation |
ax | square coefficient of x |
ay | square coefficient of y |
axy | bilinear coefficients |
bx | linear coefficient of x |
by | linear coefficient of y |
xbnds | bounds on x |
ybnds | bounds on y |
Definition at line 3478 of file intervalarith.c.
References assert(), i, infinity, MAX, MIN, NULL, REALABS, SCIPdebugMessage, SCIPintervalAdd(), SCIPintervalAddScalar(), SCIPintervalQuad(), SCIPintervalSet(), SCIPintervalSetBounds(), x, and y.
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 ) |
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}} \} \).
infinity | value for infinity in interval arithmetics |
resultant | buffer where to store result of operation |
ax | square coefficient of x |
ay | square coefficient of y |
axy | bilinear coefficients |
bx | linear coefficient of x |
by | linear coefficient of y |
rhs | right-hand-side of equation |
xbnds | bounds on x |
ybnds | bounds on y |
Definition at line 3739 of file intervalarith.c.
References assert(), b, c, CALCB, CALCR, EPSGE, EPSGT, EPSLE, EPSLT, EPSN, EPSZ, i, 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().
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 ) |
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.infinity | value for infinity in interval arithmetics |
noperands | number of operands (intervals) to propagate |
operands | intervals to propagate |
weights | weights of intervals in sum |
constant | constant in sum |
rhs | right-hand-side interval |
resultants | array to store propagated intervals, if any reduction is found at all (check return code and *infeasible) |
infeasible | buffer to store if propagation produced empty interval |
Definition at line 4625 of file intervalarith.c.
References assert(), BMScopyMemoryArray, c, FALSE, i, SCIP_Interval::inf, infinity, NULL, SCIPdebugMessage, SCIPdebugPrintf, SCIPintervalDivScalar(), SCIPintervalGetRoundingMode(), SCIPintervalIntersect(), SCIPintervalIsEmpty(), SCIPintervalIsEntire(), SCIPintervalMulScalar(), SCIPintervalNegateReal(), SCIPintervalSetEntire(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), SCIP_Interval::sup, and TRUE.
Referenced by reversePropagateLinearExpr(), and SCIP_DECL_EXPRREVERSEPROP().