Detailed Description
commonly used numerical methods
Modules | |
Computations With Tolerances | |
methods used by the majority of operations involving floating-point computations in SCIP | |
Macros | |
#define | SCIPisFinite(x) ((x) == (x)) |
Macro Definition Documentation
◆ SCIPisFinite
Definition at line 1901 of file pub_misc.h.
Referenced by computeSecant(), computeTangent(), computeVertexPolyhedralFacetBivariate(), computeVertexPolyhedralFacetUnivariate(), evalFunctionGradient(), evalFunctionValue(), F77_FUNC(), generateCut(), getDualBranchscore(), hessLagAddExpr(), readExpression(), readLinearCoefs(), readMultIncr(), SCIP_DECL_EXPREVAL(), SCIPcreateExprValue(), SCIPexprhdlrBwDiffExpr(), SCIPexprhdlrBwFwDiffExpr(), SCIPexprhdlrEvalExpr(), SCIPexprhdlrEvalFwDiffExpr(), SCIPexprhdlrFwDiffExpr(), SCIPlpGetSol(), SCIPnlpiOracleEvalJacobian(), SCIPsolSetVal(), and setupStart().
Function Documentation
◆ SCIPcalcMachineEpsilon()
SCIP_Real SCIPcalcMachineEpsilon | ( | void | ) |
returns the machine epsilon: the smallest number eps > 0, for which 1.0 + eps > 1.0
Definition at line 9009 of file misc.c.
References eps, and SCIP_Real.
Referenced by SCIPrealHashCode().
◆ SCIPnextafter()
returns the next representable value of from in the direction of to
- Parameters
-
from value from which the next representable value should be returned to direction in which the next representable value should be returned
Definition at line 9275 of file misc.c.
Referenced by computeMaxForBilinearProp(), initSolve(), SCIPintervalCos(), SCIPintervalEntropy(), SCIPintervalExp(), SCIPintervalLog(), SCIPintervalPowerScalar(), SCIPintervalPowerScalarScalar(), SCIPintervalSignPowerScalar(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), SCIPintervalSquareRoot(), and SCIPrealHashCode().
◆ SCIPcalcGreComDiv()
SCIP_Longint SCIPcalcGreComDiv | ( | SCIP_Longint | val1, |
SCIP_Longint | val2 | ||
) |
calculates the greatest common divisor of the two given values
- Parameters
-
val1 first value of greatest common devisor calculation val2 second value of greatest common devisor calculation
Definition at line 9032 of file misc.c.
Referenced by deleteRedundantVars(), normalizeCumulativeCondition(), SCIPcalcIntegralScalar(), SCIPcalcSmaComMul(), SCIPprobScaleObj(), SCIPrealHashCode(), SCIProwCalcIntegralScalar(), SCIPsolveKnapsackExactly(), simplifyInequalities(), and tryAggregateIntVars().
◆ SCIPcalcSmaComMul()
SCIP_Longint SCIPcalcSmaComMul | ( | SCIP_Longint | val1, |
SCIP_Longint | val2 | ||
) |
calculates the smallest common multiple of the two given values
- Parameters
-
val1 first value of smallest common multiple calculation val2 second value of smallest common multiple calculation
Definition at line 9284 of file misc.c.
References SCIP_Longint, and SCIPcalcGreComDiv().
Referenced by SCIPrealHashCode(), and tryAggregateIntVars().
◆ SCIPcalcBinomCoef()
SCIP_Longint SCIPcalcBinomCoef | ( | int | n, |
int | m | ||
) |
calculates a binomial coefficient n over m, choose m elements out of n, maximal value will be 33 over 16 (because the n=33 is the last line in the Pascal's triangle where each entry fits in a 4 byte value), an error occurs due to big numbers or an negative value m (and m < n) and -1 will be returned
- Parameters
-
n number of different elements m number to choose out of the above
Definition at line 10183 of file misc.c.
References SCIP_Longint, SCIP_LONGINT_MAX, and SCIP_Real.
Referenced by SCIPrealHashCode().
◆ SCIPcalcFibHash()
unsigned int SCIPcalcFibHash | ( | SCIP_Real | v | ) |
calculates hash for floating-point number by using Fibonacci hashing
- Parameters
-
v number to hash
Definition at line 10258 of file misc.c.
Referenced by SCIP_DECL_EXPRHASH(), SCIPexprhdlrHashExpr(), and SCIPrealHashCode().
◆ SCIPrealToRational()
SCIP_Bool SCIPrealToRational | ( | SCIP_Real | val, |
SCIP_Real | mindelta, | ||
SCIP_Real | maxdelta, | ||
SCIP_Longint | maxdnom, | ||
SCIP_Longint * | nominator, | ||
SCIP_Longint * | denominator | ||
) |
converts a real number into a (approximate) rational representation, and returns TRUE iff the conversion was successful
- Parameters
-
val real value r to convert into rational number mindelta minimal allowed difference r - q of real r and rational q = n/d maxdelta maximal allowed difference r - q of real r and rational q = n/d maxdnom maximal denominator allowed nominator pointer to store the nominator n of the rational number denominator pointer to store the denominator d of the rational number
Definition at line 9305 of file misc.c.
References a, b, EPSFLOOR, EPSGT, FALSE, NULL, REALABS, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_Real, and TRUE.
Referenced by prettifyConss(), SCIPcalcIntegralScalar(), SCIPfindSimpleRational(), SCIPrealHashCode(), SCIProwCalcIntegralScalar(), and tryAggregateIntVars().
◆ SCIPcalcIntegralScalar()
SCIP_RETCODE SCIPcalcIntegralScalar | ( | SCIP_Real * | vals, |
int | nvals, | ||
SCIP_Real | mindelta, | ||
SCIP_Real | maxdelta, | ||
SCIP_Longint | maxdnom, | ||
SCIP_Real | maxscale, | ||
SCIP_Real * | intscalar, | ||
SCIP_Bool * | success | ||
) |
tries to find a value, such that all given values, if scaled with this value become integral in relative allowed difference in between mindelta and maxdelta
- Parameters
-
vals values to scale nvals number of values to scale mindelta minimal relative allowed difference of scaled coefficient s*c and integral i maxdelta maximal relative allowed difference of scaled coefficient s*c and integral i maxdnom maximal denominator allowed in rational numbers maxscale maximal allowed scalar intscalar pointer to store scalar that would make the coefficients integral, or NULL success stores whether returned value is valid
Definition at line 9468 of file misc.c.
References EPSEQ, FALSE, isIntegralScalar(), nscalars, NULL, optimize(), REALABS, SCIP_Bool, SCIP_DEFAULT_EPSILON, SCIP_INVALID, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIPcalcGreComDiv(), SCIPdebugMessage, SCIPrealToRational(), and TRUE.
Referenced by buildFlowCover(), calculateScalingValue(), cutTightenCoefs(), cutTightenCoefsQuad(), SCIPcutGenerationHeuristicCMIR(), SCIPprobScaleObj(), SCIPrealHashCode(), SCIPseparateRelaxedKnapsack(), and transformNonIntegralRow().
◆ SCIPfindSimpleRational()
SCIP_Bool SCIPfindSimpleRational | ( | SCIP_Real | lb, |
SCIP_Real | ub, | ||
SCIP_Longint | maxdnom, | ||
SCIP_Longint * | nominator, | ||
SCIP_Longint * | denominator | ||
) |
given a (usually very small) interval, tries to find a rational number with simple denominator (i.e. a small number, probably multiplied with powers of 10) out of this interval; returns TRUE iff a valid rational number inside the interval was found
- Parameters
-
lb lower bound of the interval ub upper bound of the interval maxdnom maximal denominator allowed for resulting rational number nominator pointer to store the nominator n of the rational number denominator pointer to store the denominator d of the rational number
Definition at line 9688 of file misc.c.
References SCIP_Real, SCIPintervalGetRoundingMode(), SCIPintervalHasRoundingControl(), SCIPintervalSetRoundingMode(), SCIPintervalSetRoundingModeDownwards(), and SCIPrealToRational().
Referenced by SCIPrealHashCode(), and SCIPselectSimpleValue().
◆ SCIPselectSimpleValue()
SCIP_Real SCIPselectSimpleValue | ( | SCIP_Real | lb, |
SCIP_Real | ub, | ||
SCIP_Longint | maxdnom | ||
) |
given a (usually very small) interval, selects a value inside this interval; it is tried to select a rational number with simple denominator (i.e. a small number, probably multiplied with powers of 10); if no valid rational number inside the interval was found, selects the central value of the interval
- Parameters
-
lb lower bound of the interval ub upper bound of the interval maxdnom maximal denominator allowed for resulting rational number
Definition at line 9735 of file misc.c.
References MAX, SCIP_Bool, SCIP_Longint, SCIP_Real, SCIPdebugMessage, SCIPdebugPrintf, and SCIPfindSimpleRational().
Referenced by SCIP_DECL_PRESOLEXEC(), SCIPanalyzeDeductionsProbing(), and SCIPrealHashCode().
◆ SCIPcalcRootNewton()
SCIP_Real SCIPcalcRootNewton | ( | SCIP_DECL_NEWTONEVAL((*function)) | , |
SCIP_DECL_NEWTONEVAL((*derivative)) | , | ||
SCIP_Real * | params, | ||
int | nparams, | ||
SCIP_Real | x, | ||
SCIP_Real | eps, | ||
int | k | ||
) |
Performs the Newton Procedure from a given starting point to compute a root of the given function with specified precision and maximum number of iterations. If the procedure fails, SCIP_INVALID is returned.
- Parameters
-
params parameters needed for function (can be NULL) nparams number of parameters (can be 0) x starting point eps tolerance k iteration limit
Definition at line 9776 of file misc.c.
References eps, getRand(), NULL, REALABS, SCIP_INVALID, SCIP_Longint, SCIP_RAND_MAX, SCIP_Real, and x.
Referenced by computeLeftSecantSin(), computeRightSecantSin(), computeSolTangentSin(), and SCIPrealHashCode().
◆ SCIPrelDiff()
returns the relative difference: (val1-val2)/max(|val1|,|val2|,1.0)
- Parameters
-
val1 first value to be compared val2 second value to be compared
Definition at line 11096 of file misc.c.
References REALABS, and SCIP_Real.
Referenced by buildFlowCover(), checkCons(), checkCumulativeCondition(), checkOrigPbCons(), checkSolOrig(), getIntegralScalar(), getScaledDualWeight(), isConsViolated(), isIntegralScalar(), priceAndCutLoop(), SCIP_DECL_CONSCHECK(), SCIPbendersSubproblemIsOptimal(), SCIPbranchExecExtern(), SCIPbranchGetBranchingPoint(), SCIPconcsolverSync(), SCIPcutGenerationHeuristicCMIR(), SCIPintervalAreDisjointEps(), SCIPintervalIntersectEps(), SCIPsetIsLbBetter(), SCIPsetIsUbBetter(), SCIPtreeBranchVar(), SCIPtreeBranchVarNary(), SCIPvalidateSolve(), solveBendersSubproblems(), and updateBestCandidate().
◆ SCIPcomputeGap()
SCIP_Real SCIPcomputeGap | ( | SCIP_Real | eps, |
SCIP_Real | inf, | ||
SCIP_Real | primalbound, | ||
SCIP_Real | dualbound | ||
) |
computes the gap from the primal and the dual bound
- Parameters
-
eps the value treated as zero inf the value treated as infinity primalbound the primal bound dualbound the dual bound
Definition at line 11114 of file misc.c.
References EPSEQ, EPSZ, SCIP_Interval::inf, REALABS, and SCIP_Real.
Referenced by SCIPgetConcurrentGap(), SCIPgetGap(), SCIPgetTransGap(), and SCIPstoreSolutionGap().