Detailed Description
defines macros for basic operations in double-double arithmetic giving roughly twice the precision of a double
Definition in file dbldblarith.h.
#include "math.h"
Go to the source code of this file.
Macro Definition Documentation
◆ QUAD_EPSILON
#define QUAD_EPSILON 1e-12 |
Definition at line 42 of file dbldblarith.h.
Referenced by checkDualFeasibility(), chgCoeffWithBound(), chgQuadCoeffWithBound(), constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutsTransformKnapsackCover(), cutsTransformMIR(), cutsTransformStrongCG(), determineBoundForSNF(), evaluateLiftingFunctionKnapsack(), getClosestVlb(), getClosestVub(), removeZeros(), removeZerosQuad(), and SCIPcutGenerationHeuristicCMIR().
◆ QUAD_HI
Definition at line 45 of file dbldblarith.h.
Referenced by buildFlowCover(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), evaluateLiftingFunction(), performBoundSubstitution(), postprocessCutQuad(), SCIPaggrRowAddCustomCons(), SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowCancelVarWithBound(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcutGenerationHeuristicCMIR(), and varVecAddScaledRowCoefsQuad().
◆ QUAD_LO
Definition at line 46 of file dbldblarith.h.
Referenced by SCIPcalcMIR(), SCIPcalcStrongCG(), and SCIPcutGenerationHeuristicCMIR().
◆ QUAD
Definition at line 47 of file dbldblarith.h.
Referenced by addCand(), aggrRowGetMinActivity(), buildFlowCover(), calcEfficacyDenseStorageQuad(), calcEfficacyNormQuad(), chgCoeffWithBound(), chgQuadCoeffWithBound(), computeBilinEnvelope2(), computeInitialKnapsackCover(), computeLiftingData(), constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutsTransformKnapsackCover(), cutsTransformMIR(), cutsTransformStrongCG(), cutTightenCoefs(), cutTightenCoefsQuad(), determineBoundForSNF(), estimateGradient(), evalPhiAtRay(), evaluateLiftingFunction(), evaluateLiftingFunctionKnapsack(), generateLiftedFlowCoverCut(), getAlphaAndBeta(), getClosestVlb(), getClosestVub(), getFlowCover(), getMaxActivity(), getMinActivity(), performBoundSubstitution(), performBoundSubstitutionSimple(), postprocessCut(), postprocessCutQuad(), prepareLiftingData(), propagateCons(), propagateCutoffboundVar(), removeZerosQuad(), resolvePropagation(), SCIP_DECL_SORTINDCOMP(), SCIPaggrRowAddCustomCons(), SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowCancelVarWithBound(), SCIPaggrRowClear(), SCIPaggrRowGetProbvarValue(), SCIPaggrRowGetValue(), SCIPaggrRowPrint(), SCIPaggrRowRemoveZeros(), SCIPcalcFlowCover(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcomputeBilinEnvelope1(), SCIPcutGenerationHeuristicCMIR(), SCIPcutsTightenCoefficients(), separateCons(), SORTTPL_NAME(), undoBdchgsProof(), and varVecAddScaledRowCoefsQuad().
◆ QUAD_MEMBER
◆ QUAD_TO_DBL
Definition at line 49 of file dbldblarith.h.
Referenced by addCand(), aggrRowGetMinActivity(), buildFlowCover(), calcEfficacyDenseStorageQuad(), calcEfficacyNormQuad(), chgCoeffWithBound(), chgQuadCoeffWithBound(), computeBilinEnvelope2(), computeInitialKnapsackCover(), computeLiftingData(), constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutsTransformKnapsackCover(), cutsTransformMIR(), cutsTransformStrongCG(), cutTightenCoefs(), cutTightenCoefsQuad(), determineBoundForSNF(), estimateGradient(), evalPhiAtRay(), evaluateLiftingFunction(), evaluateLiftingFunctionKnapsack(), generateLiftedFlowCoverCut(), getAlphaAndBeta(), getClosestVlb(), getClosestVub(), getFlowCover(), getMaxActivity(), getMinActivity(), postprocessCut(), postprocessCutQuad(), prepareLiftingData(), propagateCons(), propagateCutoffboundVar(), removeZeros(), removeZerosQuad(), resolvePropagation(), SCIP_DECL_SORTINDCOMP(), SCIPaggrRowCancelVarWithBound(), SCIPaggrRowGetProbvarValue(), SCIPaggrRowGetRhs(), SCIPaggrRowGetValue(), SCIPaggrRowPrint(), SCIPcalcFlowCover(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcomputeBilinEnvelope1(), SCIPcutGenerationHeuristicCMIR(), SCIPcutsTightenCoefficients(), separateCons(), SORTTPL_NAME(), and undoBdchgsProof().
◆ QUAD_SCALE
Definition at line 50 of file dbldblarith.h.
Referenced by cutsRoundMIR(), cutsRoundStrongCG(), cutsTransformMIR(), evalPhiAtRay(), and SCIPcomputeBilinEnvelope1().
◆ QUAD_ASSIGN
Definition at line 51 of file dbldblarith.h.
Referenced by aggrRowGetMinActivity(), buildFlowCover(), computeInitialKnapsackCover(), computeLiftingData(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutsTransformKnapsackCover(), cutsTransformMIR(), cutsTransformStrongCG(), cutTightenCoefs(), cutTightenCoefsQuad(), estimateGradient(), evalPhiAtRay(), evaluateLiftingFunction(), generateLiftedFlowCoverCut(), getFlowCover(), getMaxActivity(), getMinActivity(), postprocessCut(), prepareLiftingData(), removeZeros(), removeZerosQuad(), resolvePropagation(), SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowCancelVarWithBound(), SCIPaggrRowClear(), SCIPaggrRowCreate(), SCIPcalcFlowCover(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcutGenerationHeuristicCMIR(), SCIPcutsTightenCoefficients(), and SORTTPL_NAME().
◆ QUAD_ASSIGN_Q
Definition at line 52 of file dbldblarith.h.
Referenced by buildFlowCover(), constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutTightenCoefs(), cutTightenCoefsQuad(), prepareLiftingData(), SCIPaggrRowCopy(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), and SCIPcutGenerationHeuristicCMIR().
◆ QUAD_ARRAY_SIZE
#define QUAD_ARRAY_SIZE | ( | size | ) | ((size)*2) |
Definition at line 53 of file dbldblarith.h.
Referenced by SCIPaggrRowCopy(), SCIPaggrRowCreate(), SCIPaggrRowFree(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), and SCIPcutGenerationHeuristicCMIR().
◆ QUAD_ARRAY_LOAD
#define QUAD_ARRAY_LOAD | ( | r, | |
a, | |||
idx | |||
) | do { QUAD_HI(r) = (a)[2*(idx)]; QUAD_LO(r) = (a)[2*(idx) + 1]; } while(0) |
Definition at line 54 of file dbldblarith.h.
Referenced by calcEfficacyDenseStorageQuad(), calcEfficacyNormQuad(), computeInitialKnapsackCover(), constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutsTransformKnapsackCover(), cutsTransformMIR(), cutsTransformStrongCG(), cutTightenCoefsQuad(), determineBoundForSNF(), getClosestVlb(), getClosestVub(), performBoundSubstitution(), performBoundSubstitutionSimple(), postprocessCutQuad(), prepareLiftingData(), removeZerosQuad(), SCIP_DECL_SORTINDCOMP(), SCIPaggrRowAddCustomCons(), SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowCancelVarWithBound(), SCIPaggrRowGetProbvarValue(), SCIPaggrRowGetValue(), SCIPaggrRowPrint(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcutGenerationHeuristicCMIR(), and varVecAddScaledRowCoefsQuad().
◆ QUAD_ARRAY_STORE
#define QUAD_ARRAY_STORE | ( | a, | |
idx, | |||
x | |||
) | do { (a)[2*(idx)] = QUAD_HI(x); (a)[2*(idx) + 1] = QUAD_LO(x); } while(0) |
Definition at line 55 of file dbldblarith.h.
Referenced by cutsRoundMIR(), cutsRoundStrongCG(), cutsTransformKnapsackCover(), cutsTransformMIR(), cutsTransformStrongCG(), cutTightenCoefsQuad(), performBoundSubstitution(), removeZerosQuad(), SCIPaggrRowAddCustomCons(), SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowCancelVarWithBound(), SCIPaggrRowClear(), SCIPcalcKnapsackCover(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcutGenerationHeuristicCMIR(), and varVecAddScaledRowCoefsQuad().
◆ SCIPquadprecProdDD
Definition at line 58 of file dbldblarith.h.
Referenced by aggrRowGetMinActivity(), computeBilinEnvelope2(), cutsSubstituteStrongCG(), evalPhiAtRay(), evaluateLiftingFunction(), getAlphaAndBeta(), getMaxActivity(), getMinActivity(), propagateCons(), resolvePropagation(), SCIPcomputeBilinEnvelope1(), and separateCons().
◆ SCIPquadprecSquareD
Definition at line 59 of file dbldblarith.h.
Referenced by evalPhiAtRay().
◆ SCIPquadprecSumDD
Definition at line 60 of file dbldblarith.h.
Referenced by addCand(), chgCoeffWithBound(), computeBilinEnvelope2(), constructSNFRelaxation(), cutsSubstituteMIR(), cutsTransformMIR(), evaluateLiftingFunction(), generateLiftedFlowCoverCut(), propagateCons(), propagateCutoffboundVar(), resolvePropagation(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcomputeBilinEnvelope1(), SCIPcutGenerationHeuristicCMIR(), SCIPcutsTightenCoefficients(), and undoBdchgsProof().
◆ SCIPquadprecDivDD
Definition at line 61 of file dbldblarith.h.
Referenced by cutsRoundStrongCG(), cutsSubstituteStrongCG(), and SCIPcomputeBilinEnvelope1().
◆ SCIPquadprecSumQD
#define SCIPquadprecSumQD | ( | r, | |
a, | |||
b | |||
) | SCIPdbldblSum21(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), b) |
Definition at line 62 of file dbldblarith.h.
Referenced by addOneRow(), buildFlowCover(), chgQuadCoeffWithBound(), computeBilinEnvelope2(), computeLiftingData(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutTightenCoefs(), estimateGradient(), evalPhiAtRay(), evaluateLiftingFunction(), evaluateLiftingFunctionKnapsack(), generateLiftedFlowCoverCut(), getAlphaAndBeta(), getFlowCover(), propagateCons(), propagateCutoffboundVar(), removeZeros(), resolvePropagation(), SCIPaggrRowAddCustomCons(), SCIPaggrRowAddObjectiveFunction(), SCIPaggrRowAddRow(), SCIPcalcKnapsackCover(), SCIPcomputeBilinEnvelope1(), SCIPcutGenerationHeuristicCMIR(), SCIPcutsTightenCoefficients(), separateCons(), SORTTPL_NAME(), and varVecAddScaledRowCoefsQuad().
◆ SCIPquadprecProdQD
#define SCIPquadprecProdQD | ( | r, | |
a, | |||
b | |||
) | SCIPdbldblProd21(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), b) |
Definition at line 63 of file dbldblarith.h.
Referenced by addCand(), chgCoeffWithBound(), chgQuadCoeffWithBound(), computeBilinEnvelope2(), constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutTightenCoefs(), cutTightenCoefsQuad(), evalPhiAtRay(), performBoundSubstitution(), performBoundSubstitutionSimple(), prepareLiftingData(), removeZerosQuad(), resolvePropagation(), SCIPaggrRowCancelVarWithBound(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcomputeBilinEnvelope1(), SCIPcutGenerationHeuristicCMIR(), SCIPcutsTightenCoefficients(), and undoBdchgsProof().
◆ SCIPquadprecDivDQ
#define SCIPquadprecDivDQ | ( | r, | |
a, | |||
b | |||
) | SCIPdbldblDiv12(QUAD_HI(r), QUAD_LO(r), a, QUAD_HI(b), QUAD_LO(b)) |
Definition at line 64 of file dbldblarith.h.
Referenced by cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), prepareLiftingData(), and SCIPcalcStrongCG().
◆ SCIPquadprecDivQD
#define SCIPquadprecDivQD | ( | r, | |
a, | |||
b | |||
) | SCIPdbldblDiv21(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), b) |
Definition at line 65 of file dbldblarith.h.
Referenced by computeBilinEnvelope2(), propagateCons(), propagateCutoffboundVar(), and resolvePropagation().
◆ SCIPquadprecProdQQ
#define SCIPquadprecProdQQ | ( | r, | |
a, | |||
b | |||
) | SCIPdbldblProd22(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), QUAD_HI(b), QUAD_LO(b)) |
Definition at line 66 of file dbldblarith.h.
Referenced by constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutsTransformMIR(), evaluateLiftingFunctionKnapsack(), and SCIPcomputeBilinEnvelope1().
◆ SCIPquadprecSumQQ
#define SCIPquadprecSumQQ | ( | r, | |
a, | |||
b | |||
) | SCIPdbldblSum22(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), QUAD_HI(b), QUAD_LO(b)) |
Definition at line 67 of file dbldblarith.h.
Referenced by aggrRowGetMinActivity(), chgCoeffWithBound(), chgQuadCoeffWithBound(), computeBilinEnvelope2(), computeInitialKnapsackCover(), computeLiftingData(), constructSNFRelaxation(), cutsRoundMIR(), cutsRoundStrongCG(), cutsSubstituteMIR(), cutsSubstituteStrongCG(), cutsTransformMIR(), cutTightenCoefs(), cutTightenCoefsQuad(), evalPhiAtRay(), generateLiftedFlowCoverCut(), getMaxActivity(), getMinActivity(), performBoundSubstitution(), performBoundSubstitutionSimple(), prepareLiftingData(), removeZerosQuad(), resolvePropagation(), SCIPaggrRowCancelVarWithBound(), SCIPcalcMIR(), SCIPcalcStrongCG(), SCIPcomputeBilinEnvelope1(), SCIPcutGenerationHeuristicCMIR(), and SCIPcutsTightenCoefficients().
◆ SCIPquadprecSquareQ
#define SCIPquadprecSquareQ | ( | r, | |
a | |||
) | SCIPdbldblSquare2(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a)) |
Definition at line 68 of file dbldblarith.h.
Referenced by computeBilinEnvelope2(), and SCIPcomputeBilinEnvelope1().
◆ SCIPquadprecDivQQ
#define SCIPquadprecDivQQ | ( | r, | |
a, | |||
b | |||
) | SCIPdbldblDiv22(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), QUAD_HI(b), QUAD_LO(b)) |
Definition at line 69 of file dbldblarith.h.
Referenced by computeBilinEnvelope2(), and SCIPcomputeBilinEnvelope1().
◆ SCIPquadprecSqrtD
Definition at line 70 of file dbldblarith.h.
◆ SCIPquadprecSqrtQ
Definition at line 71 of file dbldblarith.h.
Referenced by computeBilinEnvelope2(), and evalPhiAtRay().
◆ SCIPquadprecAbsQ
Definition at line 72 of file dbldblarith.h.
◆ SCIPquadprecFloorQ
#define SCIPquadprecFloorQ | ( | r, | |
a | |||
) | SCIPdbldblFloor2(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a)) |
Definition at line 73 of file dbldblarith.h.
◆ SCIPquadprecCeilQ
Definition at line 74 of file dbldblarith.h.
◆ SCIPquadprecEpsFloorQ
#define SCIPquadprecEpsFloorQ | ( | r, | |
a, | |||
eps | |||
) | SCIPdbldblEpsFloor2(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), eps) |
Definition at line 75 of file dbldblarith.h.
Referenced by cutsRoundMIR(), cutsRoundStrongCG(), cutTightenCoefs(), cutTightenCoefsQuad(), SCIPcalcMIR(), SCIPcalcStrongCG(), and SCIPcutGenerationHeuristicCMIR().
◆ SCIPquadprecEpsCeilQ
#define SCIPquadprecEpsCeilQ | ( | r, | |
a, | |||
eps | |||
) | SCIPdbldblEpsCeil2(QUAD_HI(r), QUAD_LO(r), QUAD_HI(a), QUAD_LO(a), eps) |
Definition at line 76 of file dbldblarith.h.
◆ SCIPdbldblProd
multiply two floating point numbers, both given by one double, and return the result as two doubles.
Definition at line 126 of file dbldblarith.h.
◆ SCIPdbldblSquare
#define SCIPdbldblSquare | ( | rhi, | |
rlo, | |||
a | |||
) |
square a floating point number given by one double and return the result as two doubles.
Definition at line 142 of file dbldblarith.h.
◆ SCIPdbldblSum
add two floating point numbers, both given by one double, and return the result as two doubles.
Definition at line 154 of file dbldblarith.h.
◆ SCIPdbldblDiv
divide two floating point numbers, both given by one double, and return the result as two doubles.
Definition at line 165 of file dbldblarith.h.
◆ SCIPdbldblSum21
#define SCIPdbldblSum21 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
b | |||
) |
add two floating point numbers, the first is given by two doubles, the second is given by one double, and return the result as two doubles.
Definition at line 180 of file dbldblarith.h.
◆ SCIPdbldblProd21
#define SCIPdbldblProd21 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
b | |||
) |
multiply two floating point numbers, the first is given by two doubles, the second is given by one double, and return the result as two doubles.
Definition at line 193 of file dbldblarith.h.
◆ SCIPdbldblDiv12
#define SCIPdbldblDiv12 | ( | rhi, | |
rlo, | |||
a, | |||
bhi, | |||
blo | |||
) |
divide two floating point numbers, the first is given by one double, the second is given by two doubles, and return the result as two doubles.
Definition at line 205 of file dbldblarith.h.
◆ SCIPdbldblDiv21
#define SCIPdbldblDiv21 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
b | |||
) |
divide two floating point numbers, the first is given by two doubles, the second is given by one double, and return the result as two doubles.
Definition at line 221 of file dbldblarith.h.
◆ SCIPdbldblProd22
#define SCIPdbldblProd22 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
bhi, | |||
blo | |||
) |
multiply two floating point numbers, both given by two doubles, and return the result as two doubles.
Definition at line 237 of file dbldblarith.h.
◆ SCIPdbldblSum22
#define SCIPdbldblSum22 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
bhi, | |||
blo | |||
) |
add two floating point numbers, both given by two doubles, and return the result as two doubles.
Definition at line 249 of file dbldblarith.h.
◆ SCIPdbldblSquare2
#define SCIPdbldblSquare2 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo | |||
) |
square a floating point number given by two doubles and return the result as two doubles.
Definition at line 258 of file dbldblarith.h.
◆ SCIPdbldblDiv22
#define SCIPdbldblDiv22 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
bhi, | |||
blo | |||
) |
divide two floating point numbers, both given by two doubles, and return the result as two doubles.
Definition at line 267 of file dbldblarith.h.
◆ SCIPdbldblSqrt
#define SCIPdbldblSqrt | ( | rhi, | |
rlo, | |||
a | |||
) |
take the square root of a floating point number given by one double and return the result as two doubles.
Definition at line 285 of file dbldblarith.h.
◆ SCIPdbldblSqrt2
#define SCIPdbldblSqrt2 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo | |||
) |
take the square root of a floating point number given by two doubles and return the result as two doubles.
Definition at line 304 of file dbldblarith.h.
◆ SCIPdbldblAbs2
#define SCIPdbldblAbs2 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo | |||
) |
compute the absolute value of the floating point number given by two doubles
Definition at line 322 of file dbldblarith.h.
◆ SCIPdbldblFloor2
#define SCIPdbldblFloor2 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo | |||
) |
compute the floored value of the floating point number given by two doubles
Definition at line 337 of file dbldblarith.h.
◆ SCIPdbldblCeil2
#define SCIPdbldblCeil2 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo | |||
) |
compute the ceiled value of the floating point number given by two doubles
Definition at line 357 of file dbldblarith.h.
◆ SCIPdbldblEpsFloor2
#define SCIPdbldblEpsFloor2 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
eps | |||
) | SCIPdbldblFloor2(rhi, rlo, ahi, (alo) + (eps)) |
compute the floored value of the floating point number given by two doubles, add epsilon first for safety
Definition at line 377 of file dbldblarith.h.
◆ SCIPdbldblEpsCeil2
#define SCIPdbldblEpsCeil2 | ( | rhi, | |
rlo, | |||
ahi, | |||
alo, | |||
eps | |||
) | SCIPdbldblCeil2(rhi, rlo, ahi, (alo) - (eps)) |
compute the ceiled value of the floating point number given by two doubles, subtract epsilon first for safety
Definition at line 380 of file dbldblarith.h.