|
current LP data
Definition at line 255 of file struct_lp.h.
#include <struct_lp.h>
objective value of LP without loose variables, or SCIP_INVALID
Definition at line 257 of file struct_lp.h.
Referenced by adjustLPobjval(), conflictAnalyzeLP(), lpDelColset(), lpDelRowset(), lpFlushAddCols(), lpFlushAddRows(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), lpRestoreSolVals(), lpSetBarrierconvtol(), lpSetDualfeastol(), lpSetFeastol(), lpSetIterationLimit(), lpSetUobjlim(), lpSolve(), lpStoreSolVals(), SCIPcolGetStrongbranch(), SCIPconflictAnalyzeLP(), SCIPlpGetColumnObjval(), SCIPlpGetObjval(), SCIPlpGetPrimalRay(), SCIPlpGetSol(), SCIPlpGetUnboundedSol(), SCIPlpReset(), SCIPlpSetCutoffbound(), and SCIPlpSolveAndEval().
current solution value of all loose variables set to their best bounds, ignoring variables, with infinite best bound
Definition at line 258 of file struct_lp.h.
Referenced by getFiniteLooseObjval(), lpUpdateObjval(), lpUpdateVarColumnProved(), lpUpdateVarLooseProved(), lpUpdateVarProved(), recomputeLooseObjectiveValue(), SCIPlpComputeRelIntPoint(), SCIPlpDecNLoosevars(), SCIPlpGetLooseObjval(), and SCIPlpGetObjval().
upper objective limit of LP (copy of primal->cutoffbound)
Definition at line 270 of file struct_lp.h.
Referenced by analyzeStrongbranch(), lpSolve(), lpSolveStable(), SCIPchgVarObjProbing(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPcolSetStrongbranchData(), SCIPconflictAnalyzePseudo(), SCIPconflictAnalyzeStrongbranch(), SCIPendDive(), SCIPlpComputeRelIntPoint(), SCIPlpSetCutoffbound(), SCIPlpSolveAndEval(), SCIPtreeEndProbing(), solveNodeLP(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
LP solver interface
Definition at line 278 of file struct_lp.h.
Referenced by lpAlgorithm(), lpBarrier(), lpCheckIntpar(), lpCheckRealpar(), lpDelColset(), lpDelRowset(), lpDualSimplex(), lpFlushAddCols(), lpFlushAddRows(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), lpLexDualSimplex(), lpPrimalSimplex(), lpSetIntpar(), lpSetRealpar(), lpSetUobjlim(), lpSolve(), lpSolveStable(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPconflictAnalyzePseudo(), SCIPconflictAnalyzeStrongbranch(), SCIPdummyDebugMethodForSun(), SCIPlpEndStrongbranch(), SCIPlpFlush(), SCIPlpFreeNorms(), SCIPlpFreeState(), SCIPlpGetBase(), SCIPlpGetBasisInd(), SCIPlpGetBInvACol(), SCIPlpGetBInvARow(), SCIPlpGetBInvCol(), SCIPlpGetBInvRow(), SCIPlpGetDualfarkas(), SCIPlpGetIterations(), SCIPlpGetLPI(), SCIPlpGetNorms(), SCIPlpGetPrimalRay(), SCIPlpGetSol(), SCIPlpGetState(), SCIPlpGetUnboundedSol(), SCIPlpMarkFlushed(), SCIPlpSetNorms(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPlpStartStrongbranch(), SCIPlpWrite(), SCIPtreeEndProbing(), and updateLazyBounds().
array with columns currently stored in the LP solver
Definition at line 279 of file struct_lp.h.
Referenced by ensureLpicolsSize(), lpCleanupCols(), lpDelColset(), lpFlushAddCols(), lpFlushDelCols(), lpRemoveObsoleteCols(), SCIPlpGetDualfarkas(), SCIPlpGetPrimalRay(), SCIPlpGetSol(), SCIPlpGetUnboundedSol(), SCIPlpMarkFlushed(), SCIPlpUpdateAges(), and undoBdchgsDualsol().
array with rows currently stored in the LP solver
Definition at line 280 of file struct_lp.h.
Referenced by ensureLpirowsSize(), lpCleanupRows(), lpDelRowset(), lpFlushAddRows(), lpFlushDelRows(), lpRemoveObsoleteRows(), SCIPlpGetDualfarkas(), SCIPlpGetSol(), SCIPlpGetUnboundedSol(), SCIPlpMarkFlushed(), SCIPlpRemoveRedundantRows(), SCIPlpUpdateAges(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
array with current LP columns in correct order
Definition at line 283 of file struct_lp.h.
Referenced by checkLazyColArray(), ensureColsSize(), lpCleanupCols(), lpDelColset(), lpFlushAddCols(), lpFlushDelCols(), lpRemoveObsoleteCols(), provedBound(), rowEventSideChanged(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPcolInvalidateStrongbranchData(), SCIPcolSetStrongbranchData(), SCIPconflictAnalyzeLP(), SCIPlpAddCol(), SCIPlpComputeRelIntPoint(), SCIPlpEndDive(), SCIPlpGetCols(), SCIPlpGetNewcols(), SCIPlpMarkFlushed(), SCIPlpRecalculateObjSqrNorm(), SCIPlpShrinkCols(), SCIPlpStartDive(), SCIPlpUpdateAges(), SCIPlpWriteMip(), and undoBdchgsDualsol().
array with current LP rows in correct order
Definition at line 285 of file struct_lp.h.
Referenced by ensureRowsSize(), getMaxAbsWeight(), getMaxAbsWeightCalcSparsity(), lpCleanupRows(), lpDelRowset(), lpFlushAddRows(), lpFlushDelRows(), lpRemoveObsoleteRows(), provedBound(), rowEventSideChanged(), SCIPconflictAnalyzeLP(), SCIPlpAddRow(), SCIPlpComputeRelIntPoint(), SCIPlpEndDive(), SCIPlpGetNewrows(), SCIPlpGetRows(), SCIPlpMarkFlushed(), SCIPlpRemoveRedundantRows(), SCIPlpShrinkRows(), SCIPlpStartDive(), SCIPlpSumRows(), SCIPlpUpdateAges(), SCIPlpWriteMip(), substituteMIRRow(), substituteStrongCGRow(), sumMIRRow(), and sumStrongCGRow().
LP number for which the currently stored solution values are valid
Definition at line 291 of file struct_lp.h.
Referenced by lpBarrier(), lpCleanupCols(), lpCleanupRows(), lpDualSimplex(), lpLexDualSimplex(), lpPrimalSimplex(), lpRestoreSolVals(), SCIPcolGetFeasibility(), SCIPcolGetRedcost(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPlpGetSol(), SCIPlpGetUnboundedSol(), SCIPlpRemoveRedundantRows(), SCIPlpReset(), SCIPlpStartDive(), SCIPlpUpdateAges(), and SCIProwGetLPActivity().
number of columns in the LP solver
Definition at line 294 of file struct_lp.h.
Referenced by coefChanged(), ensureLpicolsSize(), lpCleanupCols(), lpCleanupRows(), lpDelColset(), lpFlushAddCols(), lpFlushDelCols(), lpLexDualSimplex(), lpRemoveObsoleteCols(), SCIPconflictAnalyzeStrongbranch(), SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetNorms(), SCIPlpGetPrimalRay(), SCIPlpGetSol(), SCIPlpGetState(), SCIPlpGetUnboundedSol(), SCIPlpMarkFlushed(), SCIPlpRemoveRedundantRows(), SCIPlpUpdateAges(), and SCIPtreeEndProbing().
int SCIP_Lp::lpifirstchgcol |
number of rows in the LP solver
Definition at line 297 of file struct_lp.h.
Referenced by coefChanged(), ensureLpirowsSize(), lpCleanupRows(), lpDelRowset(), lpFlushAddRows(), lpFlushDelRows(), lpLexDualSimplex(), lpRemoveObsoleteRows(), SCIPconflictAnalyzeStrongbranch(), SCIPlpFlush(), SCIPlpGetDualfarkas(), SCIPlpGetNorms(), SCIPlpGetSol(), SCIPlpGetState(), SCIPlpGetUnboundedSol(), SCIPlpMarkFlushed(), SCIPlpRemoveRedundantRows(), SCIPlpUpdateAges(), SCIPtreeEndProbing(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
int SCIP_Lp::lpifirstchgrow |
current number of LP columns (number of used slots in cols vector)
Definition at line 304 of file struct_lp.h.
Referenced by checkLazyColArray(), ensureColsSize(), lpBarrier(), lpCleanupCols(), lpCleanupRows(), lpDelColset(), lpDualSimplex(), lpFlushAddCols(), lpFlushChgCols(), lpFlushDelCols(), lpLexDualSimplex(), lpPrimalSimplex(), lpRemoveObsoleteCols(), provedBound(), rowEventSideChanged(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPcolInvalidateStrongbranchData(), SCIPcolSetStrongbranchData(), SCIPconflictAnalyzeLP(), SCIPlpAddCol(), SCIPlpAddRow(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpComputeRelIntPoint(), SCIPlpEndDive(), SCIPlpFlush(), SCIPlpGetNCols(), SCIPlpGetNewcols(), SCIPlpGetNNewcols(), SCIPlpMarkFlushed(), SCIPlpMarkSize(), SCIPlpRecalculateObjSqrNorm(), SCIPlpRemoveAllObsoletes(), SCIPlpRemoveNewObsoletes(), SCIPlpRemoveRedundantRows(), SCIPlpShrinkCols(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPlpUpdateAges(), SCIPlpWriteMip(), and treeBacktrackProbing().
int SCIP_Lp::lazycolssize |
int SCIP_Lp::nremovablecols |
current number of LP rows (number of used slots in rows vector)
Definition at line 310 of file struct_lp.h.
Referenced by ensureRowsSize(), getMaxAbsWeightCalcSparsity(), lpBarrier(), lpCleanupRows(), lpDelRowset(), lpDualSimplex(), lpFlushAddRows(), lpFlushChgRows(), lpFlushDelRows(), lpLexDualSimplex(), lpPrimalSimplex(), lpRemoveObsoleteRows(), lpSetBarrierconvtol(), lpSetDualfeastol(), lpSetFeastol(), provedBound(), rowEventSideChanged(), SCIPconflictAnalyzeLP(), SCIPlpAddCol(), SCIPlpAddRow(), SCIPlpCalcMIR(), SCIPlpCalcStrongCG(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpComputeRelIntPoint(), SCIPlpEndDive(), SCIPlpFlush(), SCIPlpGetNewrows(), SCIPlpGetNNewrows(), SCIPlpGetNRows(), SCIPlpMarkFlushed(), SCIPlpMarkSize(), SCIPlpRemoveAllObsoletes(), SCIPlpRemoveNewObsoletes(), SCIPlpRemoveRedundantRows(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPlpSumRows(), SCIPlpUpdateAges(), SCIPlpWriteMip(), and treeBacktrackProbing().
int SCIP_Lp::nremovablerows |
int SCIP_Lp::looseobjvalinf |
number of loose variables with infinite best bound in current solution
Definition at line 313 of file struct_lp.h.
Referenced by getFiniteLooseObjval(), lpSolveStable(), lpUpdateObjval(), lpUpdateVarColumn(), lpUpdateVarColumnProved(), lpUpdateVarLoose(), lpUpdateVarLooseProved(), lpUpdateVarProved(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPlpComputeRelIntPoint(), SCIPlpDecNLoosevars(), SCIPlpGetLooseObjval(), and SCIPlpGetObjval().
int SCIP_Lp::glbpseudoobjvalinf |
int SCIP_Lp::pseudoobjvalinf |
int SCIP_Lp::ndivechgsides |
int SCIP_Lp::divechgsidessize |
int SCIP_Lp::divinglpiitlim |
solution status of last LP solution
Definition at line 326 of file struct_lp.h.
Referenced by conflictAnalyzeLP(), lpDelColset(), lpDelRowset(), lpFlushAddCols(), lpFlushAddRows(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), lpRestoreSolVals(), lpSetBarrierconvtol(), lpSetDualfeastol(), lpSetFeastol(), lpSetIterationLimit(), lpSetUobjlim(), lpSolve(), lpStoreSolVals(), SCIPchgDualfeastol(), SCIPchgLpfeastol(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPconflictAnalyzeLP(), SCIPlpGetDualfarkas(), SCIPlpGetPrimalRay(), SCIPlpGetSolstat(), SCIPlpGetUnboundedSol(), SCIPlpReset(), SCIPlpSetCutoffbound(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPnodeUpdateLowerboundLP(), SCIPprobUpdateBestRootSol(), and SCIPtreeEndProbing().
algorithm used for last LP solve
Definition at line 327 of file struct_lp.h.
Referenced by lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), lpPrimalSimplex(), lpSetBarrierconvtol(), lpSolve(), SCIPchgBarrierconvtol(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpGetSol(), SCIPlpReset(), and SCIPlpSolveAndEval().
are all cached changes applied to the LP solver?
Definition at line 337 of file struct_lp.h.
Referenced by checkLazyBounds(), coefChanged(), conflictAnalyzeLP(), enforceConstraints(), focusnodeToFork(), forkCreate(), forkFree(), getFiniteLooseObjval(), insertColChgcols(), lpAlgorithm(), lpBarrier(), lpCleanupCols(), lpCleanupRows(), lpDelColset(), lpDelRowset(), lpDualSimplex(), lpLexDualSimplex(), lpPrimalSimplex(), lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), lpSolve(), lpSolveStable(), priceAndCutLoop(), probingnodeUpdate(), propAndSolve(), rowEventSideChanged(), rowSideChanged(), SCIPcolChgLb(), SCIPcolChgObj(), SCIPcolChgUb(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPconflictAnalyzeLP(), SCIPconflictAnalyzeStrongbranch(), SCIPlpAddCol(), SCIPlpAddRow(), SCIPlpEndDive(), SCIPlpFlush(), SCIPlpGetBase(), SCIPlpGetBasisInd(), SCIPlpGetBInvACol(), SCIPlpGetBInvARow(), SCIPlpGetBInvCol(), SCIPlpGetBInvRow(), SCIPlpGetColumnObjval(), SCIPlpGetDualfarkas(), SCIPlpGetLooseObjval(), SCIPlpGetNorms(), SCIPlpGetObjval(), SCIPlpGetPrimalRay(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetState(), SCIPlpGetUnboundedSol(), SCIPlpIsSolved(), SCIPlpMarkFlushed(), SCIPlpRemoveRedundantRows(), SCIPlpSetCutoffbound(), SCIPlpSetNorms(), SCIPlpSetState(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPlpUpdateAges(), SCIPlpWrite(), SCIPlpWriteMip(), SCIPnodeUpdateLowerboundLP(), SCIPpriceLoop(), SCIPsolveCIP(), SCIPtreeEndProbing(), SCIPtreeStartProbing(), separationRoundLP(), separationRoundResolveLP(), solveNodeInitialLP(), solveNodeLP(), undoBdchgsDualfarkas(), and undoBdchgsDualsol().
is current LP solved?
Definition at line 338 of file struct_lp.h.
Referenced by branchcandCalcLPCands(), conflictAnalyzeLP(), enforceConstraints(), focusnodeToFork(), forkCreate(), forkFree(), lpDelColset(), lpDelRowset(), lpFlushAddCols(), lpFlushAddRows(), lpFlushAndSolve(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpFlushDelRows(), lpRestoreSolVals(), lpSetBarrierconvtol(), lpSetDualfeastol(), lpSetFeastol(), lpSetIterationLimit(), lpSetUobjlim(), lpSolve(), lpStoreSolVals(), priceAndCutLoop(), printDualSol(), probingnodeUpdate(), propAndSolve(), provedBound(), SCIPchgBarrierconvtol(), SCIPchgDualfeastol(), SCIPchgLpfeastol(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPconflictAnalyzeLP(), SCIPconflictAnalyzeStrongbranch(), SCIPlpCalcMIR(), SCIPlpCalcStrongCG(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpGetBase(), SCIPlpGetBasisInd(), SCIPlpGetBInvACol(), SCIPlpGetBInvARow(), SCIPlpGetBInvCol(), SCIPlpGetBInvRow(), SCIPlpGetColumnObjval(), SCIPlpGetDualfarkas(), SCIPlpGetLooseObjval(), SCIPlpGetNorms(), SCIPlpGetObjval(), SCIPlpGetPrimalRay(), SCIPlpGetSol(), SCIPlpGetSolstat(), SCIPlpGetState(), SCIPlpGetUnboundedSol(), SCIPlpIsSolved(), SCIPlpRemoveAllObsoletes(), SCIPlpRemoveNewObsoletes(), SCIPlpReset(), SCIPlpSetCutoffbound(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPlpUpdateAges(), SCIPpriceLoop(), SCIPpricestoreAddProbVars(), SCIPsolLinkLPSol(), SCIPsolveCIP(), SCIPtreeEndProbing(), SCIPtreeLoadLPState(), SCIPtreeStartProbing(), separationRoundLP(), separationRoundResolveLP(), solveNodeInitialLP(), solveNodeLP(), undoBdchgsDualfarkas(), undoBdchgsDualsol(), and updatePseudocost().
is current LP solution (rather LPI state) primal feasible?
Definition at line 339 of file struct_lp.h.
Referenced by addCurrentSolution(), conflictAnalyzeLP(), forkCreate(), forkFree(), lpAlgorithm(), lpDelColset(), lpFlushAddRows(), lpFlushAndSolve(), lpFlushChgCols(), lpFlushChgRows(), lpFlushDelCols(), lpRestoreSolVals(), lpSetFeastol(), lpSetUobjlim(), lpSolve(), lpStoreSolVals(), probingnodeUpdate(), SCIPconflictAnalyzeLP(), SCIPlpReset(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPtreeEndProbing(), SCIPtreeLoadLPState(), and SCIPtreeStartProbing().
is current LP solution (rather LPI state) dual feasible?
Definition at line 340 of file struct_lp.h.
Referenced by conflictAnalyzeLP(), forkCreate(), forkFree(), lpAlgorithm(), lpDelRowset(), lpFlushAddCols(), lpFlushAndSolve(), lpFlushChgCols(), lpFlushDelRows(), lpRestoreSolVals(), lpSetBarrierconvtol(), lpSetDualfeastol(), lpSolve(), lpStoreSolVals(), printDualSol(), probingnodeUpdate(), SCIPconflictAnalyzeLP(), SCIPlpReset(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPtreeEndProbing(), SCIPtreeLoadLPState(), and SCIPtreeStartProbing().
is current LP solution a basic solution?
Definition at line 341 of file struct_lp.h.
Referenced by lpBarrier(), lpCleanupCols(), lpCleanupRows(), lpDualSimplex(), lpFlushAndSolve(), lpLexDualSimplex(), lpPrimalSimplex(), lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), lpRestoreSolVals(), lpStoreSolVals(), SCIPconflictAnalyzeLP(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpGetBase(), SCIPlpGetBasisInd(), SCIPlpGetBInvACol(), SCIPlpGetBInvARow(), SCIPlpGetBInvCol(), SCIPlpGetBInvRow(), SCIPlpGetSol(), SCIPlpIsSolBasic(), SCIPlpRemoveRedundantRows(), SCIPlpReset(), SCIPlpSetState(), SCIPtreeEndProbing(), and SCIPtreeLoadLPState().
are we currently in probing mode?
Definition at line 347 of file struct_lp.h.
Referenced by lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), lpPrimalSimplex(), SCIPlpEndProbing(), SCIPlpEndStrongbranchProbing(), SCIPlpMarkDivingObjChanged(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPlpStartProbing(), SCIPlpStartStrongbranchProbing(), SCIPlpUnmarkDivingObjChanged(), and SCIPlpUpdateVarObj().
LP is used for diving: col bounds and obj don't correspond to variables
Definition at line 349 of file struct_lp.h.
Referenced by conflictAddConflictCons(), lpBarrier(), lpCleanupCols(), lpCleanupRows(), lpDelColset(), lpDelRowset(), lpDualSimplex(), lpFlushAddCols(), lpFlushDelCols(), lpLexDualSimplex(), lpPrimalSimplex(), lpRemoveObsoleteCols(), lpRemoveObsoleteRows(), SCIPcolAddCoef(), SCIPcolChgCoef(), SCIPcolDelCoef(), SCIPcolIncCoef(), SCIPlpAddCol(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpClear(), SCIPlpDiving(), SCIPlpDivingRowsChanged(), SCIPlpEndDive(), SCIPlpMarkDivingObjChanged(), SCIPlpMarkSize(), SCIPlpRemoveAllObsoletes(), SCIPlpRemoveNewObsoletes(), SCIPlpRemoveRedundantRows(), SCIPlpSetSizeMark(), SCIPlpShrinkCols(), SCIPlpSolveAndEval(), SCIPlpStartDive(), SCIPlpUnmarkDivingObjChanged(), SCIProwAddCoef(), SCIProwAddConstant(), SCIProwChgCoef(), SCIProwChgConstant(), SCIProwChgLhs(), SCIProwChgRhs(), SCIProwDelCoef(), SCIProwIncCoef(), SCIPupdateVarPseudocost(), and updateLazyBounds().
does the LPI support the FEASTOL parameter?
Definition at line 358 of file struct_lp.h.
does the LPI support the DUALFEASTOL parameter?
Definition at line 359 of file struct_lp.h.
does the LPI support the BARRIERCONVTOL parameter?
Definition at line 360 of file struct_lp.h.
does the LPI support the SCALING parameter?
Definition at line 362 of file struct_lp.h.
does the LPI support the PRESOLVING parameter?
Definition at line 363 of file struct_lp.h.
does the LPI support row representation of a simplex basis?
Definition at line 364 of file struct_lp.h.
simplex algorithm shall use row representation of the basis if number of rows divided by number of columns exceeds this value
Definition at line 365 of file struct_lp.h.
Referenced by lpSetRowrepswitch().
|