memory allocation routines
Definition in file memory.c.
#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>#include <stdint.h>#include "blockmemshell/memory.h"Go to the source code of this file.
Macros | |
| #define | debugMessage while( FALSE ) printf |
| #define | errorMessage printf |
| #define | printErrorHeader(f, l) printf("[%s:%d] ERROR: ", f, l) |
| #define | printError printf |
| #define | warningMessage printf |
| #define | printInfo printf |
| #define | FALSE 0 |
| #define | TRUE 1 |
| #define | MAX(x, y) ((x) >= (y) ? (x) : (y)) |
| #define | MIN(x, y) ((x) <= (y) ? (x) : (y)) |
| #define | LONGINT_FORMAT "lld" |
| #define | MAXMEMSIZE SIZE_MAX / 2 |
| #define | INLINE inline |
| #define | CHKHASH_POWER 10 |
| #define | CHKHASH_SIZE (1<<CHKHASH_POWER) |
| #define | CHUNKLENGTH_MIN 1024 |
| #define | CHUNKLENGTH_MAX 1048576 |
| #define | STORESIZE_MAX 8192 |
| #define | GARBAGE_SIZE 256 |
| #define | ALIGNMENT (sizeof(FREELIST)) |
| #define | checkChunk(chunk) |
| #define | checkChkmem(chkmem) |
| #define | checkBlkmem(blkmem) |
Typedefs | |
| typedef struct Freelist | FREELIST |
| typedef struct Chunk | CHUNK |
Functions | |
| size_t | BMSgetPointerSize_call (const void *ptr) |
| void | BMSdisplayMemory_call (void) |
| void | BMScheckEmptyMemory_call (void) |
| long long | BMSgetMemoryUsed_call (void) |
| void * | BMSallocClearMemory_call (size_t num, size_t typesize, const char *filename, int line) |
| void * | BMSallocMemory_call (size_t size, const char *filename, int line) |
| void * | BMSallocMemoryArray_call (size_t num, size_t typesize, const char *filename, int line) |
| void * | BMSreallocMemory_call (void *ptr, size_t size, const char *filename, int line) |
| void * | BMSreallocMemoryArray_call (void *ptr, size_t num, size_t typesize, const char *filename, int line) |
| void | BMSclearMemory_call (void *ptr, size_t size) |
| void | BMScopyMemory_call (void *ptr, const void *source, size_t size) |
| void | BMSmoveMemory_call (void *ptr, const void *source, size_t size) |
| void * | BMSduplicateMemory_call (const void *source, size_t size, const char *filename, int line) |
| void * | BMSduplicateMemoryArray_call (const void *source, size_t num, size_t typesize, const char *filename, int line) |
| void | BMSfreeMemory_call (void **ptr, const char *filename, int line) |
| void | BMSfreeMemoryNull_call (void **ptr, const char *filename, int line) |
| static void | alignSize (size_t *size) |
| void | BMSalignMemsize (size_t *size) |
| int | BMSisAligned (size_t size) |
| static int | isPtrInChunk (const CHUNK *chunk, const void *ptr) |
| static CHUNK * | findChunk (const BMS_CHKMEM *chkmem, const void *ptr) |
| static int | isPtrInChkmem (const BMS_CHKMEM *chkmem, const void *ptr) |
| static int | linkChunk (BMS_CHKMEM *chkmem, CHUNK *chunk, long long *memsize) |
| static void | unlinkChunk (CHUNK *chunk) |
| static void | linkEagerChunk (BMS_CHKMEM *chkmem, CHUNK *chunk) |
| static void | unlinkEagerChunk (CHUNK *chunk) |
| static int | createChunk (BMS_CHKMEM *chkmem, long long *memsize) |
| static void | destroyChunk (CHUNK *chunk, long long *memsize) |
| static void | freeChunk (CHUNK *chunk, long long *memsize) |
| static void * | allocChunkElement (CHUNK *chunk) |
| static void | freeChunkElement (CHUNK *chunk, void *ptr) |
| static BMS_CHKMEM * | createChkmem (int size, int initchunksize, int garbagefactor, long long *memsize) |
| static void | clearChkmem (BMS_CHKMEM *chkmem, long long *memsize) |
| static void | destroyChkmem (BMS_CHKMEM **chkmem, long long *memsize) |
| static void * | allocChkmemElement (BMS_CHKMEM *chkmem, long long *memsize) |
| static void | garbagecollectChkmem (BMS_CHKMEM *chkmem, long long *memsize) |
| static void | freeChkmemElement (BMS_CHKMEM *chkmem, void *ptr, long long *memsize, const char *filename, int line) |
| BMS_CHKMEM * | BMScreateChunkMemory_call (size_t size, int initchunksize, int garbagefactor, const char *filename, int line) |
| void | BMSclearChunkMemory_call (BMS_CHKMEM *chkmem, const char *filename, int line) |
| void | BMSdestroyChunkMemory_call (BMS_CHKMEM **chkmem, const char *filename, int line) |
| void * | BMSallocChunkMemory_call (BMS_CHKMEM *chkmem, size_t size, const char *filename, int line) |
| void * | BMSduplicateChunkMemory_call (BMS_CHKMEM *chkmem, const void *source, size_t size, const char *filename, int line) |
| void | BMSfreeChunkMemory_call (BMS_CHKMEM *chkmem, void **ptr, size_t size, const char *filename, int line) |
| void | BMSfreeChunkMemoryNull_call (BMS_CHKMEM *chkmem, void **ptr, size_t size, const char *filename, int line) |
| void | BMSgarbagecollectChunkMemory_call (BMS_CHKMEM *chkmem) |
| long long | BMSgetChunkMemoryUsed_call (const BMS_CHKMEM *chkmem) |
| static BMS_CHKMEM * | findChkmem (const BMS_BLKMEM *blkmem, const void *ptr) |
| static int | getHashNumber (int size) |
| BMS_BLKMEM * | BMScreateBlockMemory_call (int initchunksize, int garbagefactor, const char *filename, int line) |
| void | BMSclearBlockMemory_call (BMS_BLKMEM *blkmem, const char *filename, int line) |
| void | BMSdestroyBlockMemory_call (BMS_BLKMEM **blkmem, const char *filename, int line) |
| static INLINE void * | BMSallocBlockMemory_work (BMS_BLKMEM *blkmem, size_t size, const char *filename, int line) |
| void * | BMSallocBlockMemory_call (BMS_BLKMEM *blkmem, size_t size, const char *filename, int line) |
| void * | BMSallocBlockMemoryArray_call (BMS_BLKMEM *blkmem, size_t num, size_t typesize, const char *filename, int line) |
| void * | BMSallocClearBlockMemoryArray_call (BMS_BLKMEM *blkmem, size_t num, size_t typesize, const char *filename, int line) |
| void * | BMSreallocBlockMemory_call (BMS_BLKMEM *blkmem, void *ptr, size_t oldsize, size_t newsize, const char *filename, int line) |
| void * | BMSreallocBlockMemoryArray_call (BMS_BLKMEM *blkmem, void *ptr, size_t oldnum, size_t newnum, size_t typesize, const char *filename, int line) |
| void * | BMSduplicateBlockMemory_call (BMS_BLKMEM *blkmem, const void *source, size_t size, const char *filename, int line) |
| void * | BMSduplicateBlockMemoryArray_call (BMS_BLKMEM *blkmem, const void *source, size_t num, size_t typesize, const char *filename, int line) |
| static INLINE void | BMSfreeBlockMemory_work (BMS_BLKMEM *blkmem, void **ptr, size_t size, const char *filename, int line) |
| void | BMSfreeBlockMemory_call (BMS_BLKMEM *blkmem, void **ptr, size_t size, const char *filename, int line) |
| void | BMSfreeBlockMemoryNull_call (BMS_BLKMEM *blkmem, void **ptr, size_t size, const char *filename, int line) |
| void | BMSgarbagecollectBlockMemory_call (BMS_BLKMEM *blkmem) |
| long long | BMSgetBlockMemoryAllocated_call (const BMS_BLKMEM *blkmem) |
| long long | BMSgetBlockMemoryUsed_call (const BMS_BLKMEM *blkmem) |
| long long | BMSgetBlockMemoryUnused_call (const BMS_BLKMEM *blkmem) |
| long long | BMSgetBlockMemoryUsedMax_call (const BMS_BLKMEM *blkmem) |
| long long | BMSgetBlockMemoryUnusedMax_call (const BMS_BLKMEM *blkmem) |
| long long | BMSgetBlockMemoryAllocatedMax_call (const BMS_BLKMEM *blkmem) |
| size_t | BMSgetBlockPointerSize_call (const BMS_BLKMEM *blkmem, const void *ptr) |
| void | BMSdisplayBlockMemory_call (const BMS_BLKMEM *blkmem) |
| long long | BMScheckEmptyBlockMemory_call (const BMS_BLKMEM *blkmem) |
| BMS_BUFMEM * | BMScreateBufferMemory_call (double arraygrowfac, int arraygrowinit, unsigned int clean, const char *filename, int line) |
| void | BMSdestroyBufferMemory_call (BMS_BUFMEM **buffer, const char *filename, int line) |
| void | BMSsetBufferMemoryArraygrowfac (BMS_BUFMEM *buffer, double arraygrowfac) |
| void | BMSsetBufferMemoryArraygrowinit (BMS_BUFMEM *buffer, int arraygrowinit) |
| static size_t | calcMemoryGrowSize (size_t initsize, SCIP_Real growfac, size_t num) |
| static INLINE void * | BMSallocBufferMemory_work (BMS_BUFMEM *buffer, size_t size, const char *filename, int line) |
| void * | BMSallocBufferMemory_call (BMS_BUFMEM *buffer, size_t size, const char *filename, int line) |
| void * | BMSallocBufferMemoryArray_call (BMS_BUFMEM *buffer, size_t num, size_t typesize, const char *filename, int line) |
| void * | BMSallocClearBufferMemoryArray_call (BMS_BUFMEM *buffer, size_t num, size_t typesize, const char *filename, int line) |
| static INLINE void * | BMSreallocBufferMemory_work (BMS_BUFMEM *buffer, void *ptr, size_t size, const char *filename, int line) |
| void * | BMSreallocBufferMemory_call (BMS_BUFMEM *buffer, void *ptr, size_t size, const char *filename, int line) |
| void * | BMSreallocBufferMemoryArray_call (BMS_BUFMEM *buffer, void *ptr, size_t num, size_t typesize, const char *filename, int line) |
| void * | BMSduplicateBufferMemory_call (BMS_BUFMEM *buffer, const void *source, size_t size, const char *filename, int line) |
| void * | BMSduplicateBufferMemoryArray_call (BMS_BUFMEM *buffer, const void *source, size_t num, size_t typesize, const char *filename, int line) |
| static INLINE void | BMSfreeBufferMemory_work (BMS_BUFMEM *buffer, void **ptr, const char *filename, int line) |
| void | BMSfreeBufferMemory_call (BMS_BUFMEM *buffer, void **ptr, const char *filename, int line) |
| void | BMSfreeBufferMemoryNull_call (BMS_BUFMEM *buffer, void **ptr, const char *filename, int line) |
| size_t | BMSgetNUsedBufferMemory (BMS_BUFMEM *buffer) |
| long long | BMSgetBufferMemoryUsed (const BMS_BUFMEM *buffer) |
| void | BMSprintBufferMemory (BMS_BUFMEM *buffer) |
| #define debugMessage while( FALSE ) printf |
Definition at line 59 of file memory.c.
Referenced by allocChunkElement(), BMSallocBlockMemory_work(), BMSallocBufferMemory_work(), BMSallocChunkMemory_call(), BMSallocClearMemory_call(), BMSallocMemory_call(), BMSallocMemoryArray_call(), BMSclearChunkMemory_call(), BMScreateChunkMemory_call(), BMSdestroyChunkMemory_call(), BMSfreeBlockMemory_work(), BMSfreeBufferMemory_work(), BMSfreeChunkMemory_call(), BMSfreeChunkMemoryNull_call(), BMSgarbagecollectChunkMemory_call(), BMSreallocBufferMemory_work(), createChunk(), destroyChunk(), freeChunk(), freeChunkElement(), garbagecollectChkmem(), linkChunk(), and unlinkChunk().
| #define errorMessage printf |
Definition at line 60 of file memory.c.
Referenced by BMScheckEmptyBlockMemory_call(), and garbagecollectChkmem().
| #define printErrorHeader | ( | f, | |
| l | |||
| ) | printf("[%s:%d] ERROR: ", f, l) |
Definition at line 61 of file memory.c.
Referenced by BMSallocBlockMemory_call(), BMSallocBlockMemory_work(), BMSallocBlockMemoryArray_call(), BMSallocBufferMemory_call(), BMSallocBufferMemory_work(), BMSallocBufferMemoryArray_call(), BMSallocChunkMemory_call(), BMSallocClearMemory_call(), BMSallocMemory_call(), BMSallocMemoryArray_call(), BMSclearBlockMemory_call(), BMSclearChunkMemory_call(), BMScreateBlockMemory_call(), BMScreateBufferMemory_call(), BMScreateChunkMemory_call(), BMSdestroyBlockMemory_call(), BMSdestroyBufferMemory_call(), BMSdestroyChunkMemory_call(), BMSfreeBlockMemory_call(), BMSfreeBlockMemory_work(), BMSfreeBufferMemory_call(), BMSfreeBufferMemory_work(), BMSfreeChunkMemory_call(), BMSfreeMemory_call(), BMSreallocBlockMemory_call(), BMSreallocBlockMemoryArray_call(), BMSreallocBufferMemory_call(), BMSreallocBufferMemory_work(), BMSreallocBufferMemoryArray_call(), BMSreallocMemory_call(), BMSreallocMemoryArray_call(), and freeChkmemElement().
| #define printError printf |
Definition at line 62 of file memory.c.
Referenced by BMSallocBlockMemory_call(), BMSallocBlockMemory_work(), BMSallocBlockMemoryArray_call(), BMSallocBufferMemory_call(), BMSallocBufferMemory_work(), BMSallocBufferMemoryArray_call(), BMSallocChunkMemory_call(), BMSallocClearMemory_call(), BMSallocMemory_call(), BMSallocMemoryArray_call(), BMSclearBlockMemory_call(), BMSclearChunkMemory_call(), BMScreateBlockMemory_call(), BMScreateBufferMemory_call(), BMScreateChunkMemory_call(), BMSdestroyBlockMemory_call(), BMSdestroyBufferMemory_call(), BMSdestroyChunkMemory_call(), BMSfreeBlockMemory_call(), BMSfreeBlockMemory_work(), BMSfreeBufferMemory_call(), BMSfreeBufferMemory_work(), BMSfreeChunkMemory_call(), BMSfreeMemory_call(), BMSreallocBlockMemory_call(), BMSreallocBlockMemoryArray_call(), BMSreallocBufferMemory_call(), BMSreallocBufferMemory_work(), BMSreallocBufferMemoryArray_call(), BMSreallocMemory_call(), BMSreallocMemoryArray_call(), and freeChkmemElement().
| #define warningMessage printf |
Definition at line 65 of file memory.c.
Referenced by BMSfreeBufferMemory_work().
| #define printInfo printf |
Definition at line 66 of file memory.c.
Referenced by BMScheckEmptyMemory_call(), BMSdisplayBlockMemory_call(), and BMSdisplayMemory_call().
| #define FALSE 0 |
Definition at line 70 of file memory.c.
Referenced by BMSallocBufferMemory_work(), BMSfreeBufferMemory_work(), createChunk(), and linkChunk().
| #define TRUE 1 |
Definition at line 71 of file memory.c.
Referenced by BMSallocBufferMemory_work(), and linkChunk().
| #define MAX | ( | x, | |
| y | |||
| ) | ((x) >= (y) ? (x) : (y)) |
Definition at line 74 of file memory.c.
Referenced by BMSallocBlockMemory_work(), BMSallocClearMemory_call(), BMSallocMemory_call(), BMSallocMemoryArray_call(), BMSfreeBlockMemory_work(), BMSreallocMemory_call(), BMSreallocMemoryArray_call(), calcMemoryGrowSize(), and createChunk().
| #define MIN | ( | x, | |
| y | |||
| ) | ((x) <= (y) ? (x) : (y)) |
Definition at line 75 of file memory.c.
Referenced by addConcaveEstimatorBivariate(), addConcaveEstimatorMultivariate(), addConcaveEstimatorUnivariate(), addConflictBinvar(), addIntervalGradientEstimator(), addLinearization(), addLinearizationCuts(), addUserEstimator(), adjustStorageSize(), aggregation(), analyzeEnergyRequirement(), applyFixings(), applyVbounds(), BMSreallocBlockMemory_call(), BMSreallocBlockMemoryArray_call(), branchBalancedCardinality(), calcCliquePartitionGreedy(), calcNodeLimit(), calcPscostQuot(), calcScore(), calcShiftVal(), calcTwoRowBnds(), calculateBounds(), checkArraySizesGLS(), checkArraySizesHeur(), checkCons(), checkCurvature(), checkFactorable(), checkFixedVariables(), checkNumerics(), checkRedundancySide(), chooseDoubleVar(), collectBinaryCliqueData(), collectBinaryVars(), collectBranchingCands(), collectDataTTEF(), collectIntVars(), collectMaxactVar(), collectNonBinaryImplicationData(), collectNonBinaryVBoundData(), collectThetaSubtree(), computeCoreWithInterval(), computeFieldWidth(), computeFixingOrder(), computeIntegerVariableBounds(), computeInteriorPoint(), computeReferencePointGauge(), computeReferencePointProjection(), computeViolation(), conflictAnalyze(), conflictCreateReconvergenceConss(), conflictInsertConflictset(), conflictMarkBoundCheckPresence(), conflictsetAddBound(), conflictsetAddBounds(), conflictsetCalcInsertDepth(), conflictstoreEnsureMem(), consCapacityConstraintsFinder(), consCheckRedundancy(), consdataGetActivity(), consdataUpdateLinearActivity(), coretimesUpdateLb(), createChunk(), createCoreProfile(), createCoverCuts(), createCoverCutsTimepoint(), createCoveringProblem(), createDisjuctiveCons(), createNlRow(), createSelectedSortedEventpointsSol(), createSubproblem(), cutGenerationHeuristic(), cutpoolDelCut(), determineBound(), determineLimits(), determineMaxDistance(), determineVariableFixings(), dualWeightsTightening(), enforceConflictgraph(), enforceConstraint(), ensureMemorySize(), ensurePartialsolsSize(), evalMin(), execRelpscost(), exprgraphUpdateVarNodeBounds(), exprUnconvertPolynomial(), findDominancePairs(), fixAndPropagate(), fixDiscreteVars(), fixInterdiction(), freeThreadPool(), generateCloseCutPoint(), generateConvexConcaveUnderestimator(), generateCut(), generateCutLTIcomputeCoefs(), generateCutSol(), generateDisjCutSOS1(), generateOrthogonal_lx_ly_Underestimator(), generateOrthogonal_lx_uy_Underestimator(), generateUnderestimatorParallelYFacets(), getBounddist(), getBranchingDecisionStrongbranchSOS1(), getDiveBdChgsSOS1conflictgraph(), getDiveBdChgsSOS1constraints(), getFlowCover(), getImpliedBounds(), getIterationsLeft(), getMinFeas(), getRelDistance(), getVectorOfWeights(), getZiValue(), GUBsetCalcCliquePartition(), handleCycle(), hessLagAddExprtree(), hessLagSparsitySetNzFlagForExprtree(), improvePoint(), initConflictstore(), initSepaData(), insertSortedRootNeighbors(), insertZerolist(), isLbBetter(), isUbBetter(), lpGetResolveItlim(), multihashResize(), nlrowRemoveFixedLinearCoefs(), nlrowRemoveFixedQuadVars(), nodeGetUctScore(), nodepairqueueCreate(), normalizeCumulativeCondition(), optimize(), paramsetSetSeparatingAggressive(), performFixing(), performStrongbranchWithPropagation(), perturb(), phi(), preprocessCliques(), preprocessConstraintPairs(), presolveConsEst(), presolveConsLct(), presolveDual(), presolveFindDuplicates(), presolveTryAddLinearReform(), prettifyConss(), priceAndCutLoop(), primalAddOrigSol(), primalAddSol(), primalSetCutoffbound(), primalSetUpperbound(), propagateBounds(), propagateBoundsBilinearTerm(), propagateBoundsCons(), propagateBoundsGetQuadActivity(), propagateBoundsQuadVar(), propagateCons(), propagateLbTTEF(), propagateTimetable(), propagateUbTTEF(), proposeBranchingPoint(), proposeFeasibleSolution(), readBounds(), readNonlinearExprs(), registerBranchingCandidatesCentrality(), registerBranchingCandidatesGap(), reoptSimilarity(), resolvePropagation(), resolvePropagationCoretimes(), respropCumulativeCondition(), rowAddNorms(), rowCalcIdxsAndVals(), rowprepCleanupImproveCoefrange(), sampleRandomPoints(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_CONCSOLVERSYNCWRITE(), SCIP_DECL_CONSINITLP(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_EXPREVAL(), SCIP_DECL_EXPRGRAPHVARADDED(), SCIP_DECL_HEUREXEC(), SCIP_DECL_NLPISETINTPAR(), SCIP_DECL_NODESELSELECT(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_QUADCONSUPGD(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SOLVECUMULATIVE(), SCIPaddBilinMcCormick(), SCIPaddToNlpiProblemQuadratic(), SCIPanalyzeDeductionsProbing(), SCIPapplyHeurDualval(), SCIPapplyHeurSubNlp(), SCIPapplyProximity(), SCIPapplyRens(), SCIPapplyUndercover(), SCIPapplyZeroobj(), SCIPboolarrayExtend(), SCIPboolarraySetVal(), SCIPbranchGetBranchingPoint(), SCIPcalcIntegralScalar(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPcolSetStrongbranchData(), SCIPcomputeGap(), SCIPconflictAddRelaxedBound(), SCIPconflictstoreGetMaxPoolSize(), SCIPconshdlrPropagate(), SCIPconshdlrSeparateLP(), SCIPcopyConcurrentSolvingStats(), SCIPdivesetUpdateStats(), SCIPevalExprtreeLocalBounds(), SCIPexprgraphGetSeparableTrees(), SCIPgetFeasibilityQuadratic(), SCIPgetTransGap(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPintarrayExtend(), SCIPintarraySetVal(), SCIPintervalCos(), SCIPintervalIntersect(), SCIPintervalIsSubsetEQ(), SCIPintervalMin(), SCIPintervalMulInf(), SCIPintervalPowerScalarInverse(), SCIPintervalQuadBivar(), SCIPintervalSin(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalUnify(), SCIPlpGetRootObjval(), SCIPlpGetSol(), SCIPlpGetUnboundedSol(), SCIPlpiSetIntpar(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPnlpiOracleGetJacobianSparsity(), SCIPnlrowCreate(), SCIPnlrowGetNLPFeasibility(), SCIPnlrowGetPseudoFeasibility(), SCIPnlrowGetSolActivity(), SCIPnlrowGetSolFeasibility(), SCIPnodeAddBoundinfer(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodePropagateAgain(), SCIPparamSetReal(), SCIPperformGenericDivingAlgorithm(), SCIPprimalUpdateObjlimit(), SCIPprimalUpdateObjoffset(), SCIPprobUpdateDualbound(), SCIPpropagateProbing(), SCIPptrarrayExtend(), SCIPptrarraySetVal(), SCIPrealarrayExtend(), SCIPrealarraySetVal(), SCIPrealToRational(), SCIPreoptCheckCutoff(), SCIPresolveSolHeurSubNlp(), SCIProwCalcIntegralScalar(), SCIProwCalcProbability(), SCIProwGetLPActivity(), SCIProwGetLPFeasibility(), SCIProwGetNLPFeasibility(), SCIProwGetObjParallelism(), SCIProwGetPseudoActivity(), SCIProwGetPseudoFeasibility(), SCIProwGetRelaxFeasibility(), SCIProwGetSolActivity(), SCIProwGetSolFeasibility(), SCIPselectVarPseudoStrongBranching(), SCIPselectVarStrongBranching(), SCIPsetFeastol(), SCIPsetGetDebugSolData(), SCIPsetModifiedDefaultSettingsIpopt(), SCIPsolve(), SCIPsolveCIP(), SCIPsolveParallel(), SCIPstoreSolutionGap(), SCIPsyncdataSetSyncFreq(), SCIPsyncdataSetUpperbound(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtreeBranchVar(), SCIPtreeBranchVarNary(), SCIPtreeCalcChildEstimate(), SCIPtreeGetLowerbound(), SCIPvarChgLbGlobal(), SCIPvarChgLbLocal(), SCIPvarGetAvgSol(), SCIPvarGetMinPseudocostScore(), SCIPvarGetMultaggrUbGlobal(), SCIPvarGetMultaggrUbLocal(), SCIPvarIsBinary(), SCIPvarIsPscostRelerrorReliable(), SCIPvarRemoveCliquesImplicsVbs(), SCIPvboundsAdd(), searchEcAggrWithCliques(), selectInitialVariable(), selectNextVariable(), selectShifting(), selectVarMultAggrBranching(), separateCons(), separateCuts(), separateGLS(), separateHeur(), separatePoint(), separateSequLiftedMinimalCoverInequality(), sepastoreIsBdchgApplicable(), sequentialUpAndDownLifting(), sequentialUpAndDownLiftingGUB(), setupSubScip(), solveAndEvalSubscip(), solveComponent(), solveDerivativeEquation(), solveNlp(), solveNLP(), solveNode(), solveSubMIP(), solveSubNLP(), solveSubproblem(), solveSubscip(), sortVariables(), tarjan(), tightenCoefs(), tightenLbTTEF(), tightenUbTTEF(), tightenVarsBoundsSOS1(), transformDualredsToBounddisjunction(), transformValue(), turnoffNodeSelector(), updateEstimate(), varAddTransitiveBinaryClosureImplic(), varAddTransitiveImplic(), varProcessChgLbLocal(), varProcessChgUbLocal(), and varUpdateAggregationBounds().
| #define LONGINT_FORMAT "lld" |
Definition at line 82 of file memory.c.
Referenced by BMScheckEmptyBlockMemory_call(), and BMSdisplayBlockMemory_call().
| #define MAXMEMSIZE SIZE_MAX / 2 |
Definition at line 90 of file memory.c.
Referenced by BMSallocBlockMemory_call(), BMSallocBlockMemoryArray_call(), BMSallocBufferMemory_call(), BMSallocBufferMemoryArray_call(), BMSallocClearMemory_call(), BMSallocMemory_call(), BMSallocMemoryArray_call(), BMSreallocBlockMemory_call(), BMSreallocBlockMemoryArray_call(), BMSreallocBufferMemory_call(), BMSreallocBufferMemoryArray_call(), BMSreallocMemory_call(), BMSreallocMemoryArray_call(), and createChunk().
| #define INLINE inline |
Definition at line 100 of file memory.c.
Referenced by BMSallocClearBufferMemoryArray_call(), BMSdestroyBlockMemory_call(), BMSduplicateBlockMemoryArray_call(), BMSduplicateBufferMemoryArray_call(), and calcMemoryGrowSize().
| #define CHKHASH_POWER 10 |
power for size of chunk block hash table
Definition at line 648 of file memory.c.
Referenced by getHashNumber().
| #define CHKHASH_SIZE (1<<CHKHASH_POWER) |
size of chunk block hash table is 2^CHKHASH_POWER
Definition at line 649 of file memory.c.
Referenced by BMScheckEmptyBlockMemory_call(), BMSclearBlockMemory_call(), BMScreateBlockMemory_call(), BMSdisplayBlockMemory_call(), BMSgarbagecollectBlockMemory_call(), BMSgetChunkMemoryUsed_call(), and findChkmem().
| #define CHUNKLENGTH_MIN 1024 |
minimal size of a chunk (in bytes)
Definition at line 676 of file memory.c.
Referenced by createChunk().
| #define CHUNKLENGTH_MAX 1048576 |
maximal size of a chunk (in bytes)
Definition at line 677 of file memory.c.
Referenced by createChunk().
| #define STORESIZE_MAX 8192 |
maximal number of elements in one chunk
Definition at line 678 of file memory.c.
Referenced by createChunk().
| #define GARBAGE_SIZE 256 |
size of lazy free list to start garbage collection
Definition at line 679 of file memory.c.
Referenced by freeChkmemElement().
| #define ALIGNMENT (sizeof(FREELIST)) |
minimal alignment of chunks
Definition at line 680 of file memory.c.
Referenced by alignSize(), BMSalignMemsize(), and BMSisAligned().
| #define checkChunk | ( | chunk | ) |
Definition at line 925 of file memory.c.
Referenced by allocChunkElement(), freeChunkElement(), and isPtrInChkmem().
| #define checkChkmem | ( | chkmem | ) |
Definition at line 926 of file memory.c.
Referenced by allocChkmemElement(), BMSallocChunkMemory_call(), BMSfreeChunkMemory_call(), BMSfreeChunkMemoryNull_call(), BMSgetChunkMemoryUsed_call(), createChunk(), freeChkmemElement(), garbagecollectChkmem(), and isPtrInChkmem().
| #define checkBlkmem | ( | blkmem | ) |
Definition at line 1747 of file memory.c.
Referenced by BMSallocBlockMemory_work(), BMSfreeBlockMemory_call(), BMSfreeBlockMemory_work(), BMSfreeBlockMemoryNull_call(), BMSgarbagecollectBlockMemory_call(), and BMSgetChunkMemoryUsed_call().
| typedef struct Freelist FREELIST |
| size_t BMSgetPointerSize_call | ( | const void * | ptr | ) |
| void BMSdisplayMemory_call | ( | void | ) |
| void BMScheckEmptyMemory_call | ( | void | ) |
| long long BMSgetMemoryUsed_call | ( | void | ) |
| void* BMSallocClearMemory_call | ( | size_t | num, |
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates array and initializes it with 0; returns NULL if memory allocation failed
| num | number of memory element to allocate |
| typesize | size of one memory element to allocate |
| filename | source file where the allocation is performed |
| line | line number in source file where the allocation is performed |
Definition at line 319 of file memory.c.
References debugMessage, MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
| void* BMSallocMemory_call | ( | size_t | size, |
| const char * | filename, | ||
| int | line | ||
| ) |
allocates memory; returns NULL if memory allocation failed
| size | size of memory element to allocate |
| filename | source file where the allocation is performed |
| line | line number in source file where the allocation is performed |
Definition at line 358 of file memory.c.
References debugMessage, MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
Referenced by BMSduplicateMemory_call().
| void* BMSallocMemoryArray_call | ( | size_t | num, |
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates array; returns NULL if memory allocation failed
| num | number of components of array to allocate |
| typesize | size of each component |
| filename | source file where the allocation is performed |
| line | line number in source file where the allocation is performed |
Definition at line 394 of file memory.c.
References debugMessage, MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
Referenced by BMSduplicateMemoryArray_call().
| void* BMSreallocMemory_call | ( | void * | ptr, |
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates memory; returns NULL if memory allocation failed
| ptr | pointer to memory to reallocate |
| size | new size of memory element |
| filename | source file where the reallocation is performed |
| line | line number in source file where the reallocation is performed |
Definition at line 434 of file memory.c.
References MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
| void* BMSreallocMemoryArray_call | ( | void * | ptr, |
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
reallocates array; returns NULL if memory allocation failed
| ptr | pointer to memory to reallocate |
| num | number of components of array to allocate |
| typesize | size of each component |
| filename | source file where the reallocation is performed |
| line | line number in source file where the reallocation is performed |
Definition at line 474 of file memory.c.
References MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
| void BMSclearMemory_call | ( | void * | ptr, |
| size_t | size | ||
| ) |
| void BMScopyMemory_call | ( | void * | ptr, |
| const void * | source, | ||
| size_t | size | ||
| ) |
copies the contents of one memory element into another memory element
| ptr | pointer to target memory element |
| source | pointer to source memory element |
| size | size of memory element to copy |
Definition at line 530 of file memory.c.
References NULL.
Referenced by BMSduplicateMemory_call(), and BMSduplicateMemoryArray_call().
| void BMSmoveMemory_call | ( | void * | ptr, |
| const void * | source, | ||
| size_t | size | ||
| ) |
moves the contents of one memory element into another memory element, should be used if both elements overlap, otherwise BMScopyMemory is faster
| ptr | pointer to target memory element |
| source | pointer to source memory element |
| size | size of memory element to copy |
Definition at line 547 of file memory.c.
References NULL.
| void* BMSduplicateMemory_call | ( | const void * | source, |
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates memory and copies the contents of the given memory element into the new memory element
| source | pointer to source memory element |
| size | size of memory element to copy |
| filename | source file where the duplication is performed |
| line | line number in source file where the duplication is performed |
Definition at line 562 of file memory.c.
References BMSallocMemory_call(), BMScopyMemory_call(), and NULL.
| void* BMSduplicateMemoryArray_call | ( | const void * | source, |
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates array and copies the contents of the given source array into the new array
| source | pointer to source memory element |
| num | number of components of array to allocate |
| typesize | size of each component |
| filename | source file where the duplication is performed |
| line | line number in source file where the duplication is performed |
Definition at line 581 of file memory.c.
References BMSallocMemoryArray_call(), BMScopyMemory_call(), and NULL.
| void BMSfreeMemory_call | ( | void ** | ptr, |
| const char * | filename, | ||
| int | line | ||
| ) |
frees an allocated memory element and sets pointer to NULL
| ptr | pointer to pointer to memory element |
| filename | source file where the deallocation is performed |
| line | line number in source file where the deallocation is performed |
Definition at line 601 of file memory.c.
References NULL, printError, and printErrorHeader.
| void BMSfreeMemoryNull_call | ( | void ** | ptr, |
| const char * | filename, | ||
| int | line | ||
| ) |
frees an allocated memory element if pointer is not NULL and sets pointer to NULL
| ptr | pointer to pointer to memory element |
| filename | source file where the deallocation is performed |
| line | line number in source file where the deallocation is performed |
Definition at line 624 of file memory.c.
References NULL.
|
static |
aligns the given byte size corresponding to the minimal alignment
| size | pointer to the size to align |
Definition at line 734 of file memory.c.
References ALIGNMENT.
Referenced by BMSalignMemsize(), BMSallocBlockMemory_work(), BMScreateChunkMemory_call(), BMSfreeBlockMemory_work(), and BMSreallocBlockMemory_call().
| void BMSalignMemsize | ( | size_t * | size | ) |
aligns the given byte size corresponding to the minimal alignment for chunk and block memory
| size | pointer to the size to align |
Definition at line 745 of file memory.c.
References ALIGNMENT, and alignSize().
| int BMSisAligned | ( | size_t | size | ) |
checks whether the given size meets the alignment conditions for chunk and block memory
| size | size to check for alignment |
Definition at line 754 of file memory.c.
References ALIGNMENT.
Referenced by createChkmem(), createChunk(), and getHashNumber().
|
static |
checks, if the given pointer belongs to the given chunk
| chunk | memory chunk |
| ptr | pointer |
Definition at line 765 of file memory.c.
References NULL.
Referenced by freeChunkElement(), and isPtrInChkmem().
|
static |
given a pointer, finds the chunk this pointer points to in the chunk array of the given chunk block; binary search is used; returns NULL if the pointer does not belong to the chunk block
| chkmem | chunk block |
| ptr | pointer |
Definition at line 782 of file memory.c.
References NULL.
Referenced by garbagecollectChkmem(), and isPtrInChkmem().
|
static |
checks, if a pointer belongs to a chunk of the given chunk block
| chkmem | chunk block |
| ptr | pointer |
Definition at line 818 of file memory.c.
References checkChkmem, checkChunk, findChunk(), isPtrInChunk(), and NULL.
Referenced by findChkmem(), and freeChkmemElement().
|
static |
links chunk to the block's chunk array, sort it by store pointer; returns TRUE if successful, FALSE otherwise
| chkmem | chunk block |
| chunk | memory chunk |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 934 of file memory.c.
References BMSreallocMemoryArray, debugMessage, FALSE, NULL, and TRUE.
Referenced by createChunk().
|
static |
unlinks chunk from the chunk block's chunk list
| chunk | memory chunk |
Definition at line 1011 of file memory.c.
References debugMessage, and NULL.
Referenced by freeChunk().
|
static |
links chunk to the chunk block's eager chunk list
| chkmem | chunk block |
| chunk | memory chunk |
Definition at line 1044 of file memory.c.
References NULL.
Referenced by freeChunkElement().
|
static |
unlinks chunk from the chunk block's eager chunk list
| chunk | memory chunk |
Definition at line 1065 of file memory.c.
References NULL.
Referenced by allocChunkElement(), and freeChunk().
|
static |
creates a new memory chunk in the given chunk block and adds memory elements to the lazy free list; returns TRUE if successful, FALSE otherwise
| chkmem | chunk block |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1090 of file memory.c.
References BMSallocMemorySize, BMSisAligned(), checkChkmem, CHUNKLENGTH_MAX, CHUNKLENGTH_MIN, debugMessage, FALSE, linkChunk(), MAX, MAXMEMSIZE, MIN, NULL, and STORESIZE_MAX.
Referenced by allocChkmemElement().
|
static |
destroys a chunk without updating the chunk lists
| chunk | memory chunk |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1166 of file memory.c.
References BMSfreeMemory, debugMessage, and NULL.
Referenced by clearChkmem(), and freeChunk().
|
static |
removes a completely unused chunk, i.e. a chunk with all elements in the eager free list
| chunk | memory chunk |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1184 of file memory.c.
References debugMessage, destroyChunk(), NULL, unlinkChunk(), and unlinkEagerChunk().
Referenced by garbagecollectChkmem().
|
static |
returns an element of the eager free list and removes it from the list
| chunk | memory chunk |
Definition at line 1215 of file memory.c.
References checkChunk, debugMessage, NULL, and unlinkEagerChunk().
Referenced by allocChkmemElement().
|
static |
puts given pointer into the eager free list and adds the chunk to the eager list of its chunk block, if necessary
| chunk | memory chunk |
| ptr | pointer |
Definition at line 1252 of file memory.c.
References checkChunk, debugMessage, isPtrInChunk(), linkEagerChunk(), and NULL.
Referenced by garbagecollectChkmem().
|
static |
creates a new chunk block data structure
| size | element size of the chunk block |
| initchunksize | number of elements in the first chunk of the chunk block |
| garbagefactor | garbage collector is called, if at least garbagefactor * avg. chunksize elements are free (-1: disable garbage collection) |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1281 of file memory.c.
References BMSallocMemory, BMSisAligned(), and NULL.
Referenced by BMSallocBlockMemory_work(), and BMScreateChunkMemory_call().
|
static |
destroys all chunks of the chunk block, but keeps the chunk block header structure
| chkmem | chunk block |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1326 of file memory.c.
References destroyChunk(), and NULL.
Referenced by BMSclearChunkMemory_call(), destroyChkmem(), and garbagecollectChkmem().
|
static |
deletes chunk block and frees all associated memory chunks
| chkmem | pointer to chunk block |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1350 of file memory.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, clearChkmem(), and NULL.
Referenced by BMSclearBlockMemory_call(), BMSdestroyChunkMemory_call(), and BMSgarbagecollectBlockMemory_call().
|
static |
allocates a new memory element from the chunk block
| chkmem | chunk block |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1373 of file memory.c.
References allocChunkElement(), checkChkmem, createChunk(), and NULL.
Referenced by BMSallocBlockMemory_work(), and BMSallocChunkMemory_call().
|
static |
sorts the lazy free list of the chunk block into the eager free lists of the chunks, and removes completely unused chunks
| chkmem | chunk block |
| memsize | pointer to total size of allocated memory (or NULL) |
Definition at line 1413 of file memory.c.
References checkChkmem, clearChkmem(), debugMessage, errorMessage, findChunk(), freeChunk(), freeChunkElement(), and NULL.
Referenced by BMSgarbagecollectBlockMemory_call(), BMSgarbagecollectChunkMemory_call(), and freeChkmemElement().
|
static |
frees a memory element and returns it to the lazy freelist of the chunk block
| chkmem | chunk block |
| ptr | memory element |
| memsize | pointer to total size of allocated memory (or NULL) |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1481 of file memory.c.
References checkChkmem, GARBAGE_SIZE, garbagecollectChkmem(), isPtrInChkmem(), NULL, printError, and printErrorHeader.
Referenced by BMSfreeBlockMemory_work(), BMSfreeChunkMemory_call(), and BMSfreeChunkMemoryNull_call().
| BMS_CHKMEM* BMScreateChunkMemory_call | ( | size_t | size, |
| int | initchunksize, | ||
| int | garbagefactor, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
creates a new chunk block data structure
| size | element size of the chunk block |
| initchunksize | number of elements in the first chunk of the chunk block |
| garbagefactor | garbage collector is called, if at least garbagefactor * avg. chunksize elements are free (-1: disable garbage collection) |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1518 of file memory.c.
References alignSize(), createChkmem(), debugMessage, NULL, printError, and printErrorHeader.
| void BMSclearChunkMemory_call | ( | BMS_CHKMEM * | chkmem, |
| const char * | filename, | ||
| int | line | ||
| ) |
clears a chunk block data structure
| chkmem | chunk block |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1542 of file memory.c.
References clearChkmem(), debugMessage, NULL, printError, and printErrorHeader.
| void BMSdestroyChunkMemory_call | ( | BMS_CHKMEM ** | chkmem, |
| const char * | filename, | ||
| int | line | ||
| ) |
destroys and frees a chunk block data structure
| chkmem | pointer to chunk block |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1560 of file memory.c.
References debugMessage, destroyChkmem(), NULL, printError, and printErrorHeader.
| void* BMSallocChunkMemory_call | ( | BMS_CHKMEM * | chkmem, |
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates a memory element of the given chunk block
| chkmem | chunk block |
| size | size of memory element to allocate (only needed for sanity check) |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1580 of file memory.c.
References allocChkmemElement(), checkChkmem, debugMessage, NULL, printError, and printErrorHeader.
Referenced by BMSduplicateChunkMemory_call().
| void* BMSduplicateChunkMemory_call | ( | BMS_CHKMEM * | chkmem, |
| const void * | source, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
duplicates a given memory element by allocating a new element of the same chunk block and copying the data
| chkmem | chunk block |
| source | source memory element |
| size | size of memory element to allocate (only needed for sanity check) |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1607 of file memory.c.
References BMSallocChunkMemory_call(), BMScopyMemorySize, and NULL.
| void BMSfreeChunkMemory_call | ( | BMS_CHKMEM * | chkmem, |
| void ** | ptr, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
frees a memory element of the given chunk block and sets pointer to NULL
| chkmem | chunk block |
| ptr | pointer to pointer to memory element to free |
| size | size of memory element to allocate (only needed for sanity check) |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1629 of file memory.c.
References checkChkmem, debugMessage, freeChkmemElement(), NULL, printError, and printErrorHeader.
| void BMSfreeChunkMemoryNull_call | ( | BMS_CHKMEM * | chkmem, |
| void ** | ptr, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
frees a memory element of the given chunk block if pointer is not NULL and sets pointer to NULL
| chkmem | chunk block |
| ptr | pointer to pointer to memory element to free |
| size | size of memory element to allocate (only needed for sanity check) |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1658 of file memory.c.
References checkChkmem, debugMessage, freeChkmemElement(), and NULL.
| void BMSgarbagecollectChunkMemory_call | ( | BMS_CHKMEM * | chkmem | ) |
calls garbage collection of chunk block and frees chunks without allocated memory elements
| chkmem | chunk block |
Definition at line 1682 of file memory.c.
References debugMessage, garbagecollectChkmem(), and NULL.
| long long BMSgetChunkMemoryUsed_call | ( | const BMS_CHKMEM * | chkmem | ) |
returns the number of allocated bytes in the chunk block
| chkmem | chunk block |
Definition at line 1692 of file memory.c.
References checkBlkmem, checkChkmem, CHKHASH_SIZE, and NULL.
|
static |
finds the chunk block, to whick the given pointer belongs to
This could be done by selecting the chunk block of the corresponding element size, but in a case of an error (free gives an incorrect element size), we want to identify and output the correct element size.
| blkmem | block memory |
| ptr | memory element to search |
Definition at line 1757 of file memory.c.
References CHKHASH_SIZE, isPtrInChkmem(), and NULL.
Referenced by BMSgetBlockPointerSize_call().
|
static |
calculates hash number of memory size
| size | element size |
Definition at line 1780 of file memory.c.
References BMSisAligned(), and CHKHASH_POWER.
Referenced by BMSallocBlockMemory_work(), and BMSfreeBlockMemory_work().
| BMS_BLKMEM* BMScreateBlockMemory_call | ( | int | initchunksize, |
| int | garbagefactor, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
creates a block memory allocation data structure
| initchunksize | number of elements in the first chunk of each chunk block |
| garbagefactor | garbage collector is called, if at least garbagefactor * avg. chunksize elements are free (-1: disable garbage collection) |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1791 of file memory.c.
References BMSallocMemory, CHKHASH_SIZE, NULL, printError, and printErrorHeader.
| void BMSclearBlockMemory_call | ( | BMS_BLKMEM * | blkmem, |
| const char * | filename, | ||
| int | line | ||
| ) |
frees all chunk blocks in the block memory
| blkmem | block memory |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1825 of file memory.c.
References CHKHASH_SIZE, destroyChkmem(), NULL, printError, and printErrorHeader.
Referenced by BMSdestroyBlockMemory_call().
| void BMSdestroyBlockMemory_call | ( | BMS_BLKMEM ** | blkmem, |
| const char * | filename, | ||
| int | line | ||
| ) |
clears and deletes block memory
| blkmem | pointer to block memory |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1859 of file memory.c.
References BMSclearBlockMemory_call(), BMSfreeMemory, INLINE, NULL, printError, and printErrorHeader.
|
static |
work for allocating memory in the block memory pool
| blkmem | block memory |
| size | size of memory element to allocate |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1882 of file memory.c.
References alignSize(), allocChkmemElement(), BMSduplicateMemoryArray, checkBlkmem, createChkmem(), debugMessage, getHashNumber(), MAX, NULL, printError, and printErrorHeader.
Referenced by BMSallocBlockMemory_call(), and BMSallocBlockMemoryArray_call().
| void* BMSallocBlockMemory_call | ( | BMS_BLKMEM * | blkmem, |
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates memory in the block memory pool
| blkmem | block memory |
| size | size of memory element to allocate |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1945 of file memory.c.
References BMSallocBlockMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
Referenced by BMSduplicateBlockMemory_call(), and BMSreallocBlockMemory_call().
| void* BMSallocBlockMemoryArray_call | ( | BMS_BLKMEM * | blkmem, |
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates array in the block memory pool
| blkmem | block memory |
| num | size of array to be allocated |
| typesize | size of each component |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1965 of file memory.c.
References BMSallocBlockMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
Referenced by BMSallocClearBlockMemoryArray_call(), BMSduplicateBlockMemoryArray_call(), and BMSreallocBlockMemoryArray_call().
| void* BMSallocClearBlockMemoryArray_call | ( | BMS_BLKMEM * | blkmem, |
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates array in the block memory pool and clears it
| blkmem | block memory |
| num | size of array to be allocated |
| typesize | size of each component |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 1986 of file memory.c.
References BMSallocBlockMemoryArray_call(), BMSclearMemorySize, and NULL.
| void* BMSreallocBlockMemory_call | ( | BMS_BLKMEM * | blkmem, |
| void * | ptr, | ||
| size_t | oldsize, | ||
| size_t | newsize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
resizes memory element in the block memory pool and copies the data
| blkmem | block memory |
| ptr | memory element to reallocated |
| oldsize | old size of memory element |
| newsize | new size of memory element |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2004 of file memory.c.
References alignSize(), BMSallocBlockMemory_call(), BMScopyMemorySize, BMSfreeBlockMemory_call(), MAXMEMSIZE, MIN, NULL, printError, and printErrorHeader.
| void* BMSreallocBlockMemoryArray_call | ( | BMS_BLKMEM * | blkmem, |
| void * | ptr, | ||
| size_t | oldnum, | ||
| size_t | newnum, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
resizes array in the block memory pool and copies the data
| blkmem | block memory |
| ptr | memory element to reallocated |
| oldnum | old size of array |
| newnum | new size of array |
| typesize | size of each component |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2044 of file memory.c.
References BMSallocBlockMemoryArray_call(), BMScopyMemorySize, BMSfreeBlockMemory_call(), MAXMEMSIZE, MIN, NULL, printError, and printErrorHeader.
| void* BMSduplicateBlockMemory_call | ( | BMS_BLKMEM * | blkmem, |
| const void * | source, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
duplicates memory element in the block memory pool and copies the data
| blkmem | block memory |
| source | memory element to duplicate |
| size | size of memory elements |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2083 of file memory.c.
References BMSallocBlockMemory_call(), BMScopyMemorySize, and NULL.
| void* BMSduplicateBlockMemoryArray_call | ( | BMS_BLKMEM * | blkmem, |
| const void * | source, | ||
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
duplicates array in the block memory pool and copies the data
| blkmem | block memory |
| source | memory element to duplicate |
| num | size of array to be duplicated |
| typesize | size of each component |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2103 of file memory.c.
References BMSallocBlockMemoryArray_call(), BMScopyMemorySize, INLINE, and NULL.
|
static |
common work for freeing block memory
| blkmem | block memory |
| ptr | pointer to pointer to memory element to free |
| size | size of memory element |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2125 of file memory.c.
References alignSize(), checkBlkmem, debugMessage, freeChkmemElement(), getHashNumber(), MAX, NULL, printError, and printErrorHeader.
Referenced by BMSfreeBlockMemory_call(), and BMSfreeBlockMemoryNull_call().
| void BMSfreeBlockMemory_call | ( | BMS_BLKMEM * | blkmem, |
| void ** | ptr, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
frees memory element in the block memory pool and sets pointer to NULL
| blkmem | block memory |
| ptr | pointer to pointer to memory element to free |
| size | size of memory element |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2173 of file memory.c.
References BMSfreeBlockMemory_work(), checkBlkmem, NULL, printError, and printErrorHeader.
Referenced by BMSreallocBlockMemory_call(), and BMSreallocBlockMemoryArray_call().
| void BMSfreeBlockMemoryNull_call | ( | BMS_BLKMEM * | blkmem, |
| void ** | ptr, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
frees memory element in the block memory pool if pointer is not NULL and sets pointer to NULL
| blkmem | block memory |
| ptr | pointer to pointer to memory element to free |
| size | size of memory element |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2195 of file memory.c.
References BMSfreeBlockMemory_work(), checkBlkmem, and NULL.
| void BMSgarbagecollectBlockMemory_call | ( | BMS_BLKMEM * | blkmem | ) |
calls garbage collection of block memory, frees chunks without allocated memory elements, and frees chunk blocks without any chunks
| blkmem | block memory |
Definition at line 2216 of file memory.c.
References checkBlkmem, CHKHASH_SIZE, destroyChkmem(), garbagecollectChkmem(), and NULL.
| long long BMSgetBlockMemoryAllocated_call | ( | const BMS_BLKMEM * | blkmem | ) |
| long long BMSgetBlockMemoryUsed_call | ( | const BMS_BLKMEM * | blkmem | ) |
| long long BMSgetBlockMemoryUnused_call | ( | const BMS_BLKMEM * | blkmem | ) |
| long long BMSgetBlockMemoryUsedMax_call | ( | const BMS_BLKMEM * | blkmem | ) |
| long long BMSgetBlockMemoryUnusedMax_call | ( | const BMS_BLKMEM * | blkmem | ) |
| long long BMSgetBlockMemoryAllocatedMax_call | ( | const BMS_BLKMEM * | blkmem | ) |
| size_t BMSgetBlockPointerSize_call | ( | const BMS_BLKMEM * | blkmem, |
| const void * | ptr | ||
| ) |
returns the size of the given memory element; returns 0, if the element is not member of the block memory
| blkmem | block memory |
| ptr | memory element |
Definition at line 2310 of file memory.c.
References findChkmem(), and NULL.
| void BMSdisplayBlockMemory_call | ( | const BMS_BLKMEM * | blkmem | ) |
outputs allocation diagnostics of block memory
| blkmem | block memory |
Definition at line 2330 of file memory.c.
References CHKHASH_SIZE, LONGINT_FORMAT, NULL, and printInfo.
| long long BMScheckEmptyBlockMemory_call | ( | const BMS_BLKMEM * | blkmem | ) |
outputs error messages, if there are allocated elements in the block memory and returns number of unfreed bytes
| blkmem | block memory |
Definition at line 2457 of file memory.c.
References CHKHASH_SIZE, errorMessage, LONGINT_FORMAT, and NULL.
| BMS_BUFMEM* BMScreateBufferMemory_call | ( | double | arraygrowfac, |
| int | arraygrowinit, | ||
| unsigned int | clean, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
creates memory buffer storage
| arraygrowfac | memory growing factor for dynamically allocated arrays |
| arraygrowinit | initial size of dynamically allocated arrays |
| clean | should the memory blocks in the buffer be initialized to zero? |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2554 of file memory.c.
References BMS_BufMem::arraygrowfac, BMS_BufMem::arraygrowinit, BMSallocMemory, BMS_BufMem::clean, BMS_BufMem::data, BMS_BufMem::firstfree, BMS_BufMem::ndata, NULL, printError, printErrorHeader, BMS_BufMem::size, BMS_BufMem::totalmem, and BMS_BufMem::used.
| void BMSdestroyBufferMemory_call | ( | BMS_BUFMEM ** | buffer, |
| const char * | filename, | ||
| int | line | ||
| ) |
destroys buffer memory
| buffer | pointer to memory buffer storage |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2590 of file memory.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, printError, and printErrorHeader.
| void BMSsetBufferMemoryArraygrowfac | ( | BMS_BUFMEM * | buffer, |
| double | arraygrowfac | ||
| ) |
set arraygrowfac
| buffer | pointer to memory buffer storage |
| arraygrowfac | memory growing factor for dynamically allocated arrays |
Definition at line 2623 of file memory.c.
References BMS_BufMem::arraygrowfac, and NULL.
Referenced by SCIP_DECL_PARAMCHGD().
| void BMSsetBufferMemoryArraygrowinit | ( | BMS_BUFMEM * | buffer, |
| int | arraygrowinit | ||
| ) |
set arraygrowinit
| buffer | pointer to memory buffer storage |
| arraygrowinit | initial size of dynamically allocated arrays |
Definition at line 2635 of file memory.c.
References BMS_BufMem::arraygrowinit, and NULL.
Referenced by SCIP_DECL_PARAMCHGD().
|
static |
calculate memory size for dynamically allocated arrays
This function is a copy of the function in set.c in order to be able to use memory.? separately.
| initsize | initial size of array |
| growfac | growing factor of array |
| num | minimum number of entries to store |
Definition at line 2652 of file memory.c.
Referenced by BMSallocBufferMemory_work(), and BMSreallocBufferMemory_work().
|
static |
work for allocating the next unused buffer
| buffer | memory buffer storage |
| size | minimal required size of the buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2694 of file memory.c.
References BMS_BufMem::arraygrowfac, BMS_BufMem::arraygrowinit, BMSallocClearMemorySize, BMSallocMemorySize, BMSclearMemorySize, BMSreallocMemoryArray, BMSreallocMemorySize, calcMemoryGrowSize(), BMS_BufMem::clean, BMS_BufMem::data, debugMessage, FALSE, BMS_BufMem::firstfree, BMS_BufMem::ndata, NULL, printError, printErrorHeader, BMS_BufMem::size, BMS_BufMem::totalmem, TRUE, and BMS_BufMem::used.
Referenced by BMSallocBufferMemory_call(), and BMSallocBufferMemoryArray_call().
| void* BMSallocBufferMemory_call | ( | BMS_BUFMEM * | buffer, |
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates the next unused buffer
| buffer | memory buffer storage |
| size | minimal required size of the buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2824 of file memory.c.
References BMSallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
Referenced by BMSduplicateBufferMemory_call(), and BMSreallocBufferMemory_work().
| void* BMSallocBufferMemoryArray_call | ( | BMS_BUFMEM * | buffer, |
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates the next unused buffer array
| buffer | memory buffer storage |
| num | size of array to be allocated |
| typesize | size of components |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2844 of file memory.c.
References BMSallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
Referenced by BMSallocClearBufferMemoryArray_call(), and BMSduplicateBufferMemoryArray_call().
| void* BMSallocClearBufferMemoryArray_call | ( | BMS_BUFMEM * | buffer, |
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates the next unused buffer and clears it
| buffer | memory buffer storage |
| num | size of array to be allocated |
| typesize | size of components |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2865 of file memory.c.
References BMSallocBufferMemoryArray_call(), BMSclearMemorySize, INLINE, and NULL.
|
static |
work for reallocating the buffer to at least the given size
| buffer | memory buffer storage |
| ptr | pointer to the allocated memory buffer |
| size | minimal required size of the buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2884 of file memory.c.
References BMS_BufMem::arraygrowfac, BMS_BufMem::arraygrowinit, BMSallocBufferMemory_call(), BMSreallocMemorySize, calcMemoryGrowSize(), BMS_BufMem::clean, BMS_BufMem::data, debugMessage, BMS_BufMem::firstfree, BMS_BufMem::ndata, NULL, printError, printErrorHeader, BMS_BufMem::size, BMS_BufMem::totalmem, and BMS_BufMem::used.
Referenced by BMSreallocBufferMemory_call(), and BMSreallocBufferMemoryArray_call().
| void* BMSreallocBufferMemory_call | ( | BMS_BUFMEM * | buffer, |
| void * | ptr, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
reallocates the buffer to at least the given size
| buffer | memory buffer storage |
| ptr | pointer to the allocated memory buffer |
| size | minimal required size of the buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2956 of file memory.c.
References BMSreallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
| void* BMSreallocBufferMemoryArray_call | ( | BMS_BUFMEM * | buffer, |
| void * | ptr, | ||
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
reallocates an array in the buffer to at least the given size
| buffer | memory buffer storage |
| ptr | pointer to the allocated memory buffer |
| num | size of array to be allocated |
| typesize | size of components |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2977 of file memory.c.
References BMSreallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
| void* BMSduplicateBufferMemory_call | ( | BMS_BUFMEM * | buffer, |
| const void * | source, | ||
| size_t | size, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates the next unused buffer and copies the given memory into the buffer
| buffer | memory buffer storage |
| source | memory block to copy into the buffer |
| size | minimal required size of the buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 2999 of file memory.c.
References BMSallocBufferMemory_call(), BMScopyMemorySize, and NULL.
| void* BMSduplicateBufferMemoryArray_call | ( | BMS_BUFMEM * | buffer, |
| const void * | source, | ||
| size_t | num, | ||
| size_t | typesize, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
allocates an array in the next unused buffer and copies the given memory into the buffer
| buffer | memory buffer storage |
| source | memory block to copy into the buffer |
| num | size of array to be allocated |
| typesize | size of components |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 3022 of file memory.c.
References BMSallocBufferMemoryArray_call(), BMScopyMemorySize, INLINE, and NULL.
|
static |
work for freeing a buffer
| buffer | memory buffer storage |
| ptr | pointer to pointer to the allocated memory buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 3047 of file memory.c.
References BMS_BufMem::clean, BMS_BufMem::data, debugMessage, FALSE, BMS_BufMem::firstfree, BMS_BufMem::ndata, NULL, printError, printErrorHeader, BMS_BufMem::size, BMS_BufMem::used, and warningMessage.
Referenced by BMSfreeBufferMemory_call(), and BMSfreeBufferMemoryNull_call().
| void BMSfreeBufferMemory_call | ( | BMS_BUFMEM * | buffer, |
| void ** | ptr, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
frees a buffer and sets pointer to NULL
| buffer | memory buffer storage |
| ptr | pointer to pointer to the allocated memory buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 3119 of file memory.c.
References BMSfreeBufferMemory_work(), BMSfreeMemory, NULL, printError, and printErrorHeader.
| void BMSfreeBufferMemoryNull_call | ( | BMS_BUFMEM * | buffer, |
| void ** | ptr, | ||
| const char * | filename, | ||
| int | line | ||
| ) |
frees a buffer if pointer is not NULL and sets pointer to NULL
| buffer | memory buffer storage |
| ptr | pointer to pointer to the allocated memory buffer |
| filename | source file of the function call |
| line | line number in source file of the function call |
Definition at line 3142 of file memory.c.
References BMSfreeBufferMemory_work(), BMSfreeMemory, and NULL.
| size_t BMSgetNUsedBufferMemory | ( | BMS_BUFMEM * | buffer | ) |
gets number of used buffers
| buffer | memory buffer storage |
Definition at line 3162 of file memory.c.
References BMS_BufMem::firstfree, and NULL.
Referenced by exitPresolve(), initPresolve(), presolve(), presolveRound(), priceAndCutLoop(), propagationRound(), propAndSolve(), SCIPprimalHeuristics(), SCIPsolveCIP(), separationRoundLP(), and solveNode().
| long long BMSgetBufferMemoryUsed | ( | const BMS_BUFMEM * | buffer | ) |
returns the number of allocated bytes in the buffer memory
| buffer | buffer memory |
Definition at line 3172 of file memory.c.
References BMS_BufMem::ndata, NULL, BMS_BufMem::size, and BMS_BufMem::totalmem.
Referenced by SCIPmemGetTotal(), and SCIPmemGetUsed().
| void BMSprintBufferMemory | ( | BMS_BUFMEM * | buffer | ) |
outputs statistics about currently allocated buffers to the screen
| buffer | memory buffer storage |
Definition at line 3190 of file memory.c.
References BMS_BufMem::data, BMS_BufMem::ndata, NULL, BMS_BufMem::size, and BMS_BufMem::used.
Referenced by SCIPprintMemoryDiagnostic().