Detailed Descriptionmemory 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.
Macro Definition Documentation
Definition at line 51 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().
Definition at line 52 of file memory.c. Referenced by garbagecollectChkmem().
Definition at line 53 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().
Definition at line 54 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().
Definition at line 58 of file memory.c. Referenced by BMScheckEmptyBlockMemory_call(), BMScheckEmptyMemory_call(), BMSdisplayBlockMemory_call(), and BMSdisplayMemory_call().
Definition at line 62 of file memory.c. Referenced by BMSallocBufferMemory_work(), BMSfreeBufferMemory_work(), createChunk(), and linkChunk().
Definition at line 63 of file memory.c. Referenced by BMSallocBufferMemory_work(), and linkChunk().
Definition at line 66 of file memory.c. Referenced by BMSallocClearMemory_call(), BMSallocMemory_call(), BMSallocMemoryArray_call(), BMSreallocMemory_call(), BMSreallocMemoryArray_call(), calcMemoryGrowSize(), and createChunk().
Definition at line 67 of file memory.c. Referenced by addConcaveEstimatorBivariate(), addConcaveEstimatorMultivariate(), addConcaveEstimatorUnivariate(), addConflictBinvar(), addIntervalGradientEstimator(), addLinearization(), addLinearizationCuts(), addUserEstimator(), aggregation(), analyzeEnergyRequirement(), applyFixings(), applyVbounds(), BMSreallocBlockMemory_call(), BMSreallocBlockMemoryArray_call(), calcPscostQuot(), calcScore(), calcShiftVal(), calcTwoRowBnds(), calculateBounds(), checkArraySizesGLS(), checkArraySizesHeur(), checkCons(), checkCurvature(), checkFactorable(), checkFixedVariables(), checkRedundancySide(), chooseDoubleVar(), collectBinaryCliqueData(), collectBinaryVars(), collectBranchingCands(), collectDataTTEF(), collectIntVars(), collectMaxactVar(), collectNonBinaryImplicationData(), collectNonBinaryVBoundData(), collectThetaSubtree(), computeCoreWithInterval(), computeFieldWidth(), computeFixingOrder(), computeReferencePointGauge(), computeViolation(), conflictAnalyze(), conflictCreateReconvergenceConss(), conflictInsertConflictset(), conflictMarkBoundCheckPresence(), conflictsetAddBound(), conflictsetAddBounds(), conflictsetCalcInsertDepth(), consCapacityConstraintsFinder(), consCheckRedundancy(), consdataGetActivity(), consdataUpdateLinearActivity(), copyAndSolveComponent(), coretimesUpdateLb(), createChunk(), createCoreProfile(), createCoverCuts(), createCoverCutsTimepoint(), createCoveringProblem(), createDisjuctiveCons(), createNlRow(), createSelectedSortedEventpointsSol(), createSubproblem(), cutGenerationHeuristic(), cutpoolDelCut(), determineBound(), dualWeightsTightening(), enforceConflictgraph(), ensureMemorySize(), evalLhs(), evalMin(), execRelpscost(), exprgraphUpdateVarNodeBounds(), exprUnconvertPolynomial(), findDominancePairs(), fixAndPropagate(), fixDiscreteVars(), fixInterdiction(), generateCloseCutPoint(), generateConvexConcaveUnderestimator(), generateCut(), generateCutLTIcomputeCoefs(), generateCutSol(), generateDisjCutSOS1(), generateOrthogonal_lx_ly_Underestimator(), generateOrthogonal_lx_uy_Underestimator(), generateSparseCut(), generateUnderestimatorParallelYFacets(), getBounddist(), getBranchingDecisionStrongbranchSOS1(), getDiveBdChgsSOS1conflictgraph(), getDiveBdChgsSOS1constraints(), getFlowCover(), getImpliedBounds(), getIterationsLeft(), getVectorOfWeights(), getZiValue(), GUBsetCalcCliquePartition(), handleCycle(), hashtableResize(), hessLagAddExprtree(), hessLagSparsitySetNzFlagForExprtree(), initSepaData(), insertSortedRootNeighbors(), insertZerolist(), isLbBetter(), isUbBetter(), lpGetResolveItlim(), 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(), readNonlinearExprs(), registerBranchingCandidatesCentrality(), registerBranchingCandidatesGap(), reoptSimilarity(), resolvePropagation(), resolvePropagationCoretimes(), respropCumulativeCondition(), rowAddNorms(), rowCalcIdxsAndVals(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_CONSENFOLP(), 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(), SCIPcalcCliquePartition(), SCIPcalcIntegralScalar(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPcolSetStrongbranchData(), SCIPconflictAddRelaxedBound(), SCIPconshdlrPropagate(), SCIPconshdlrSeparateLP(), SCIPdivesetUpdateStats(), SCIPevalExprtreeLocalBounds(), SCIPexprgraphGetSeparableTrees(), SCIPgetFeasibilityQuadratic(), SCIPgetGap(), SCIPgetTransGap(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPintarrayExtend(), SCIPintarraySetVal(), SCIPintervalIntersect(), SCIPintervalIsSubsetEQ(), SCIPintervalMin(), SCIPintervalMulInf(), SCIPintervalPowerScalarInverse(), SCIPintervalQuadBivar(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalUnify(), SCIPlpGetRootObjval(), SCIPlpGetSol(), SCIPlpGetUnboundedSol(), SCIPlpiGetSolverName(), 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(), SCIPresolveSolHeurSubNlp(), SCIProwCalcIntegralScalar(), SCIProwCalcProbability(), SCIProwGetLPActivity(), SCIProwGetLPFeasibility(), SCIProwGetNLPFeasibility(), SCIProwGetObjParallelism(), SCIProwGetPseudoActivity(), SCIProwGetPseudoFeasibility(), SCIProwGetRelaxFeasibility(), SCIProwGetSolActivity(), SCIProwGetSolFeasibility(), SCIPselectVarPseudoStrongBranching(), SCIPselectVarStrongBranching(), SCIPsetGetHugeValue(), SCIPsetLpfeastol(), SCIPsetModifiedDefaultSettingsIpopt(), SCIPsolve(), SCIPsolveCIP(), SCIPstoreSolutionGap(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtreeBranchVar(), SCIPtreeBranchVarNary(), SCIPtreeCalcChildEstimate(), SCIPtreeGetLowerbound(), SCIPvarChgLbGlobal(), SCIPvarChgLbLocal(), SCIPvarGetAvgSol(), SCIPvarGetMultaggrUbGlobal(), SCIPvarGetMultaggrUbLocal(), SCIPvarIsBinary(), SCIPvarIsPscostRelerrorReliable(), SCIPvarRemoveCliquesImplicsVbs(), SCIPvboundsAdd(), searchEcAggrWithCliques(), selectShifting(), selectVarMultAggrBranching(), separateCons(), separateCuts(), separateGLS(), separateHeur(), separatePoint(), separateSequLiftedMinimalCoverInequality(), sepastoreIsBdchgApplicable(), sequentialUpAndDownLifting(), sequentialUpAndDownLiftingGUB(), solveDerivativeEquation(), solveNode(), solveSubMIP(), solveSubNLP(), solveSubproblem(), solveSubscip(), sortVariables(), tarjan(), tightenCoefs(), tightenLbTTEF(), tightenUbTTEF(), tightenVarsBoundsSOS1(), transformValue(), turnoffNodeSelector(), updateEstimate(), varAddTransitiveBinaryClosureImplic(), varAddTransitiveImplic(), varProcessChgLbLocal(), and varUpdateAggregationBounds().
Definition at line 74 of file memory.c. Referenced by BMScheckEmptyBlockMemory_call(), and BMSdisplayBlockMemory_call().
Definition at line 82 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().
Definition at line 92 of file memory.c. Referenced by BMSallocClearBufferMemoryArray_call(), BMSdestroyBlockMemory_call(), BMSduplicateBlockMemoryArray_call(), BMSduplicateBufferMemoryArray_call(), and calcMemoryGrowSize().
minimal size of a chunk (in bytes) Definition at line 646 of file memory.c. Referenced by createChunk().
maximal size of a chunk (in bytes) Definition at line 647 of file memory.c. Referenced by createChunk().
maximal number of elements in one chunk Definition at line 648 of file memory.c. Referenced by createChunk().
size of lazy free list to start garbage collection Definition at line 649 of file memory.c. Referenced by freeChkmemElement().
minimal alignment of chunks Definition at line 650 of file memory.c. Referenced by alignSize(), BMSalignMemsize(), and BMSisAligned().
Definition at line 895 of file memory.c. Referenced by allocChunkElement(), freeChunkElement(), and isPtrInChkmem().
Definition at line 896 of file memory.c. Referenced by allocChkmemElement(), BMSallocChunkMemory_call(), BMSfreeChunkMemory_call(), BMSfreeChunkMemoryNull_call(), createChunk(), freeChkmemElement(), garbagecollectChkmem(), and isPtrInChkmem().
size of chunk block hash table; should be prime Definition at line 1661 of file memory.c. Referenced by BMScheckEmptyBlockMemory_call(), BMSclearBlockMemory_call(), BMScreateBlockMemory_call(), BMSdisplayBlockMemory_call(), BMSgarbagecollectBlockMemory_call(), findChkmem(), and getHashNumber().
Definition at line 1702 of file memory.c. Referenced by BMSallocBlockMemory_work(), BMSfreeBlockMemory_call(), and BMSfreeBlockMemoryNull_call(). Typedef Documentation
Function Documentation
allocates array and initializes it with 0; returns NULL if memory allocation failed
Definition at line 311 of file memory.c. References debugMessage, MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
allocates memory; returns NULL if memory allocation failed
Definition at line 350 of file memory.c. References debugMessage, MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader. Referenced by BMSduplicateMemory_call().
allocates array; returns NULL if memory allocation failed
Definition at line 386 of file memory.c. References debugMessage, MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader. Referenced by BMSduplicateMemoryArray_call().
allocates memory; returns NULL if memory allocation failed
Definition at line 426 of file memory.c. References MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
reallocates array; returns NULL if memory allocation failed
Definition at line 466 of file memory.c. References MAX, MAXMEMSIZE, NULL, printError, and printErrorHeader.
copies the contents of one memory element into another memory element
Definition at line 522 of file memory.c. References NULL. Referenced by BMSduplicateMemory_call(), and BMSduplicateMemoryArray_call().
moves the contents of one memory element into another memory element, should be used if both elements overlap, otherwise BMScopyMemory is faster
Definition at line 539 of file memory.c. References NULL.
allocates memory and copies the contents of the given memory element into the new memory element
Definition at line 554 of file memory.c. References BMSallocMemory_call(), BMScopyMemory_call(), and NULL.
allocates array and copies the contents of the given source array into the new array
Definition at line 573 of file memory.c. References BMSallocMemoryArray_call(), BMScopyMemory_call(), and NULL.
frees an allocated memory element and sets pointer to NULL
Definition at line 593 of file memory.c. References NULL, printError, and printErrorHeader.
frees an allocated memory element if pointer is not NULL and sets pointer to NULL
Definition at line 616 of file memory.c. References NULL.
aligns the given byte size corresponding to the minimal alignment
Definition at line 704 of file memory.c. References ALIGNMENT. Referenced by BMSalignMemsize(), BMSallocBlockMemory_work(), BMScreateChunkMemory_call(), BMSfreeBlockMemory_work(), and BMSreallocBlockMemory_call().
aligns the given byte size corresponding to the minimal alignment for chunk and block memory
Definition at line 715 of file memory.c. References ALIGNMENT, and alignSize().
checks whether the given size meets the alignment conditions for chunk and block memory
Definition at line 724 of file memory.c. References ALIGNMENT. Referenced by createChkmem(), createChunk(), and getHashNumber().
checks, if the given pointer belongs to the given chunk
Definition at line 735 of file memory.c. References NULL. Referenced by freeChunkElement(), and isPtrInChkmem().
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
Definition at line 752 of file memory.c. References NULL. Referenced by garbagecollectChkmem(), and isPtrInChkmem().
checks, if a pointer belongs to a chunk of the given chunk block
Definition at line 788 of file memory.c. References checkChkmem, checkChunk, findChunk(), isPtrInChunk(), and NULL. Referenced by findChkmem(), and freeChkmemElement().
links chunk to the block's chunk array, sort it by store pointer; returns TRUE if successful, FALSE otherwise
Definition at line 904 of file memory.c. References BMSreallocMemoryArray, debugMessage, FALSE, NULL, and TRUE. Referenced by createChunk().
unlinks chunk from the chunk block's chunk list
Definition at line 976 of file memory.c. References debugMessage, and NULL. Referenced by freeChunk().
links chunk to the chunk block's eager chunk list
Definition at line 1009 of file memory.c. References NULL. Referenced by freeChunkElement().
unlinks chunk from the chunk block's eager chunk list
Definition at line 1030 of file memory.c. References NULL. Referenced by allocChunkElement(), and freeChunk().
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
Definition at line 1055 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().
destroys a chunk without updating the chunk lists
Definition at line 1125 of file memory.c. References BMSfreeMemory, debugMessage, and NULL. Referenced by clearChkmem(), and freeChunk().
removes a completely unused chunk, i.e. a chunk with all elements in the eager free list
Definition at line 1139 of file memory.c. References debugMessage, destroyChunk(), NULL, unlinkChunk(), and unlinkEagerChunk(). Referenced by garbagecollectChkmem().
returns an element of the eager free list and removes it from the list
Definition at line 1169 of file memory.c. References checkChunk, debugMessage, NULL, and unlinkEagerChunk(). Referenced by allocChkmemElement().
puts given pointer into the eager free list and adds the chunk to the eager list of its chunk block, if necessary
Definition at line 1206 of file memory.c. References checkChunk, debugMessage, isPtrInChunk(), linkEagerChunk(), and NULL. Referenced by garbagecollectChkmem().
creates a new chunk block data structure
Definition at line 1235 of file memory.c. References BMSallocMemory, BMSisAligned(), and NULL. Referenced by BMSallocBlockMemory_work(), and BMScreateChunkMemory_call().
destroys all chunks of the chunk block, but keeps the chunk block header structure
Definition at line 1276 of file memory.c. References destroyChunk(), and NULL. Referenced by BMSclearChunkMemory_call(), destroyChkmem(), and garbagecollectChkmem().
deletes chunk block and frees all associated memory chunks
Definition at line 1299 of file memory.c. References BMSfreeMemory, BMSfreeMemoryArrayNull, clearChkmem(), and NULL. Referenced by BMSclearBlockMemory_call(), BMSdestroyChunkMemory_call(), and BMSgarbagecollectBlockMemory_call().
allocates a new memory element from the chunk block
Definition at line 1318 of file memory.c. References allocChunkElement(), checkChkmem, createChunk(), and NULL. Referenced by BMSallocBlockMemory_work(), and BMSallocChunkMemory_call().
sorts the lazy free list of the chunk block into the eager free lists of the chunks, and removes completely unused chunks
Definition at line 1357 of file memory.c. References checkChkmem, clearChkmem(), debugMessage, errorMessage, findChunk(), freeChunk(), freeChunkElement(), and NULL. Referenced by BMSgarbagecollectBlockMemory_call(), BMSgarbagecollectChunkMemory_call(), and freeChkmemElement().
frees a memory element and returns it to the lazy freelist of the chunk block
Definition at line 1424 of file memory.c. References checkChkmem, GARBAGE_SIZE, garbagecollectChkmem(), isPtrInChkmem(), NULL, printError, and printErrorHeader. Referenced by BMSfreeBlockMemory_work(), BMSfreeChunkMemory_call(), and BMSfreeChunkMemoryNull_call().
creates a new chunk block data structure
Definition at line 1462 of file memory.c. References alignSize(), createChkmem(), debugMessage, NULL, printError, and printErrorHeader.
clears a chunk block data structure
Definition at line 1486 of file memory.c. References clearChkmem(), debugMessage, NULL, printError, and printErrorHeader.
destroys and frees a chunk block data structure
Definition at line 1504 of file memory.c. References debugMessage, destroyChkmem(), NULL, printError, and printErrorHeader.
allocates a memory element of the given chunk block
Definition at line 1524 of file memory.c. References allocChkmemElement(), checkChkmem, debugMessage, NULL, printError, and printErrorHeader. Referenced by BMSduplicateChunkMemory_call().
duplicates a given memory element by allocating a new element of the same chunk block and copying the data
Definition at line 1551 of file memory.c. References BMSallocChunkMemory_call(), BMScopyMemorySize, and NULL.
frees a memory element of the given chunk block and sets pointer to NULL
Definition at line 1573 of file memory.c. References checkChkmem, debugMessage, freeChkmemElement(), NULL, printError, and printErrorHeader.
frees a memory element of the given chunk block if pointer is not NULL and sets pointer to NULL
Definition at line 1602 of file memory.c. References checkChkmem, debugMessage, freeChkmemElement(), and NULL.
calls garbage collection of chunk block and frees chunks without allocated memory elements
Definition at line 1626 of file memory.c. References debugMessage, and garbagecollectChkmem().
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.
Definition at line 1712 of file memory.c. References CHKHASH_SIZE, isPtrInChkmem(), and NULL. Referenced by BMSgetBlockPointerSize_call().
calculates hash number of memory size
Definition at line 1735 of file memory.c. References BMSisAligned(), and CHKHASH_SIZE. Referenced by BMSallocBlockMemory_work(), and BMSfreeBlockMemory_work().
creates a block memory allocation data structure
Definition at line 1746 of file memory.c. References BMSallocMemory, CHKHASH_SIZE, NULL, printError, and printErrorHeader.
frees all chunk blocks in the block memory
Definition at line 1776 of file memory.c. References CHKHASH_SIZE, destroyChkmem(), NULL, printError, and printErrorHeader. Referenced by BMSdestroyBlockMemory_call().
clears and deletes block memory
Definition at line 1809 of file memory.c. References BMSclearBlockMemory_call(), BMSfreeMemory, INLINE, NULL, printError, and printErrorHeader.
work for allocating memory in the block memory pool
Definition at line 1832 of file memory.c. References alignSize(), allocChkmemElement(), BMSduplicateMemoryArray, checkBlkmem, createChkmem(), debugMessage, getHashNumber(), NULL, printError, and printErrorHeader. Referenced by BMSallocBlockMemory_call(), and BMSallocBlockMemoryArray_call().
allocates memory in the block memory pool
Definition at line 1887 of file memory.c. References BMSallocBlockMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader. Referenced by BMSduplicateBlockMemory_call(), and BMSreallocBlockMemory_call().
allocates array in the block memory pool
Definition at line 1907 of file memory.c. References BMSallocBlockMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader. Referenced by BMSallocClearBlockMemoryArray_call(), BMSduplicateBlockMemoryArray_call(), and BMSreallocBlockMemoryArray_call().
allocates array in the block memory pool and clears it
Definition at line 1928 of file memory.c. References BMSallocBlockMemoryArray_call(), BMSclearMemorySize, and NULL.
resizes memory element in the block memory pool and copies the data
Definition at line 1946 of file memory.c. References alignSize(), BMSallocBlockMemory_call(), BMScopyMemorySize, BMSfreeBlockMemory_call(), MAXMEMSIZE, MIN, NULL, printError, and printErrorHeader.
resizes array in the block memory pool and copies the data
Definition at line 1986 of file memory.c. References BMSallocBlockMemoryArray_call(), BMScopyMemorySize, BMSfreeBlockMemory_call(), MAXMEMSIZE, MIN, NULL, printError, and printErrorHeader.
duplicates memory element in the block memory pool and copies the data
Definition at line 2025 of file memory.c. References BMSallocBlockMemory_call(), BMScopyMemorySize, and NULL.
duplicates array in the block memory pool and copies the data
Definition at line 2045 of file memory.c. References BMSallocBlockMemoryArray_call(), BMScopyMemorySize, INLINE, and NULL.
common work for freeing block memory
Definition at line 2067 of file memory.c. References alignSize(), debugMessage, freeChkmemElement(), getHashNumber(), NULL, printError, and printErrorHeader. Referenced by BMSfreeBlockMemory_call(), and BMSfreeBlockMemoryNull_call().
frees memory element in the block memory pool and sets pointer to NULL
Definition at line 2110 of file memory.c. References BMSfreeBlockMemory_work(), checkBlkmem, NULL, printError, and printErrorHeader. Referenced by BMSreallocBlockMemory_call(), and BMSreallocBlockMemoryArray_call().
frees memory element in the block memory pool if pointer is not NULL and sets pointer to NULL
Definition at line 2132 of file memory.c. References BMSfreeBlockMemory_work(), checkBlkmem, and NULL.
calls garbage collection of block memory, frees chunks without allocated memory elements, and frees chunk blocks without any chunks
Definition at line 2153 of file memory.c. References CHKHASH_SIZE, destroyChkmem(), garbagecollectChkmem(), and NULL.
returns the size of the given memory element; returns 0, if the element is not member of the block memory
Definition at line 2194 of file memory.c. References findChkmem(), and NULL.
outputs allocation diagnostics of block memory
Definition at line 2214 of file memory.c. References CHKHASH_SIZE, LONGINT_FORMAT, NULL, and printInfo.
outputs warning messages, if there are allocated elements in the block memory
Definition at line 2337 of file memory.c. References CHKHASH_SIZE, LONGINT_FORMAT, NULL, and printInfo.
creates memory buffer storage
Definition at line 2430 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.
destroys buffer memory
Definition at line 2466 of file memory.c. References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, printError, and printErrorHeader.
set arraygrowfac
Definition at line 2499 of file memory.c. References BMS_BufMem::arraygrowfac, and NULL.
set arraygrowinit
Definition at line 2511 of file memory.c. References BMS_BufMem::arraygrowinit, and NULL.
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.
Definition at line 2528 of file memory.c. Referenced by BMSallocBufferMemory_work(), and BMSreallocBufferMemory_work().
work for allocating the next unused buffer
Definition at line 2570 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().
allocates the next unused buffer
Definition at line 2700 of file memory.c. References BMSallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader. Referenced by BMSduplicateBufferMemory_call(), and BMSreallocBufferMemory_work().
allocates the next unused buffer array
Definition at line 2720 of file memory.c. References BMSallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader. Referenced by BMSallocClearBufferMemoryArray_call(), and BMSduplicateBufferMemoryArray_call().
allocates the next unused buffer and clears it
Definition at line 2741 of file memory.c. References BMSallocBufferMemoryArray_call(), BMSclearMemorySize, INLINE, and NULL.
work for reallocating the buffer to at least the given size
Definition at line 2760 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().
reallocates the buffer to at least the given size
Definition at line 2832 of file memory.c. References BMSreallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
reallocates an array in the buffer to at least the given size
Definition at line 2853 of file memory.c. References BMSreallocBufferMemory_work(), MAXMEMSIZE, NULL, printError, and printErrorHeader.
allocates the next unused buffer and copies the given memory into the buffer
Definition at line 2875 of file memory.c. References BMSallocBufferMemory_call(), BMScopyMemorySize, and NULL.
allocates an array in the next unused buffer and copies the given memory into the buffer
Definition at line 2898 of file memory.c. References BMSallocBufferMemoryArray_call(), BMScopyMemorySize, INLINE, and NULL.
work for freeing a buffer
Definition at line 2923 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, and BMS_BufMem::used. Referenced by BMSfreeBufferMemory_call(), and BMSfreeBufferMemoryNull_call().
frees a buffer and sets pointer to NULL
Definition at line 2988 of file memory.c. References BMSfreeBufferMemory_work(), BMSfreeMemory, NULL, printError, and printErrorHeader.
frees a buffer if pointer is not NULL and sets pointer to NULL
Definition at line 3011 of file memory.c. References BMSfreeBufferMemory_work(), BMSfreeMemory, and NULL.
gets number of used buffers
Definition at line 3031 of file memory.c. References BMS_BufMem::firstfree, and NULL. Referenced by exitPresolve(), initPresolve(), presolve(), presolveRound(), priceAndCutLoop(), propAndSolve(), SCIPsolveCIP(), and solveNode().
returns the number of allocated bytes in the buffer memory
Definition at line 3041 of file memory.c. References BMS_BufMem::ndata, NULL, BMS_BufMem::size, and BMS_BufMem::totalmem. Referenced by SCIPmemGetUsed().
outputs statistics about currently allocated buffers to the screen
Definition at line 3059 of file memory.c. References BMS_BufMem::data, BMS_BufMem::ndata, NULL, BMS_BufMem::size, and BMS_BufMem::used. Referenced by SCIPprintMemoryDiagnostic(). |