Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods for the creation and interaction with rows of the NLP relaxation

Functions

SCIP_Real SCIPnlrowGetConstant (SCIP_NLROW *nlrow)
 
int SCIPnlrowGetNLinearVars (SCIP_NLROW *nlrow)
 
SCIP_VAR ** SCIPnlrowGetLinearVars (SCIP_NLROW *nlrow)
 
SCIP_RealSCIPnlrowGetLinearCoefs (SCIP_NLROW *nlrow)
 
int SCIPnlrowGetNQuadVars (SCIP_NLROW *nlrow)
 
SCIP_VAR ** SCIPnlrowGetQuadVars (SCIP_NLROW *nlrow)
 
int SCIPnlrowSearchQuadVar (SCIP_NLROW *nlrow, SCIP_VAR *var)
 
int SCIPnlrowGetNQuadElems (SCIP_NLROW *nlrow)
 
SCIP_QUADELEMSCIPnlrowGetQuadElems (SCIP_NLROW *nlrow)
 
void SCIPnlrowGetQuadData (SCIP_NLROW *nlrow, int *nquadvars, SCIP_VAR ***quadvars, int *nquadelems, SCIP_QUADELEM **quadelems)
 
SCIP_EXPRTREESCIPnlrowGetExprtree (SCIP_NLROW *nlrow)
 
SCIP_Real SCIPnlrowGetLhs (SCIP_NLROW *nlrow)
 
SCIP_Real SCIPnlrowGetRhs (SCIP_NLROW *nlrow)
 
SCIP_EXPRCURV SCIPnlrowGetCurvature (SCIP_NLROW *nlrow)
 
void SCIPnlrowSetCurvature (SCIP_NLROW *nlrow, SCIP_EXPRCURV curvature)
 
const char * SCIPnlrowGetName (SCIP_NLROW *nlrow)
 
int SCIPnlrowGetNLPPos (SCIP_NLROW *nlrow)
 
SCIP_Bool SCIPnlrowIsInNLP (SCIP_NLROW *nlrow)
 
SCIP_Real SCIPnlrowGetDualsol (SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPcreateNlRow (SCIP *scip, SCIP_NLROW **nlrow, const char *name, SCIP_Real constant, int nlinvars, SCIP_VAR **linvars, SCIP_Real *lincoefs, int nquadvars, SCIP_VAR **quadvars, int nquadelems, SCIP_QUADELEM *quadelems, SCIP_EXPRTREE *expression, SCIP_Real lhs, SCIP_Real rhs, SCIP_EXPRCURV curvature)
 
SCIP_RETCODE SCIPcreateEmptyNlRow (SCIP *scip, SCIP_NLROW **nlrow, const char *name, SCIP_Real lhs, SCIP_Real rhs)
 
SCIP_RETCODE SCIPcreateNlRowFromRow (SCIP *scip, SCIP_NLROW **nlrow, SCIP_ROW *row)
 
SCIP_RETCODE SCIPcaptureNlRow (SCIP *scip, SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPreleaseNlRow (SCIP *scip, SCIP_NLROW **nlrow)
 
SCIP_RETCODE SCIPchgNlRowLhs (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real lhs)
 
SCIP_RETCODE SCIPchgNlRowRhs (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real rhs)
 
SCIP_RETCODE SCIPchgNlRowConstant (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real constant)
 
SCIP_RETCODE SCIPaddLinearCoefToNlRow (SCIP *scip, SCIP_NLROW *nlrow, SCIP_VAR *var, SCIP_Real val)
 
SCIP_RETCODE SCIPaddLinearCoefsToNlRow (SCIP *scip, SCIP_NLROW *nlrow, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
 
SCIP_RETCODE SCIPchgNlRowLinearCoef (SCIP *scip, SCIP_NLROW *nlrow, SCIP_VAR *var, SCIP_Real coef)
 
SCIP_RETCODE SCIPaddQuadVarToNlRow (SCIP *scip, SCIP_NLROW *nlrow, SCIP_VAR *var)
 
SCIP_RETCODE SCIPaddQuadVarsToNlRow (SCIP *scip, SCIP_NLROW *nlrow, int nvars, SCIP_VAR **vars)
 
SCIP_RETCODE SCIPaddQuadElementToNlRow (SCIP *scip, SCIP_NLROW *nlrow, SCIP_QUADELEM quadelem)
 
SCIP_RETCODE SCIPaddQuadElementsToNlRow (SCIP *scip, SCIP_NLROW *nlrow, int nquadelems, SCIP_QUADELEM *quadelems)
 
SCIP_RETCODE SCIPchgNlRowQuadElement (SCIP *scip, SCIP_NLROW *nlrow, SCIP_QUADELEM quadelement)
 
SCIP_RETCODE SCIPsetNlRowExprtree (SCIP *scip, SCIP_NLROW *nlrow, SCIP_EXPRTREE *exprtree)
 
SCIP_RETCODE SCIPsetNlRowExprtreeParam (SCIP *scip, SCIP_NLROW *nlrow, int paramidx, SCIP_Real paramval)
 
SCIP_RETCODE SCIPsetNlRowExprtreeParams (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *paramvals)
 
SCIP_RETCODE SCIPrecalcNlRowNLPActivity (SCIP *scip, SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPgetNlRowNLPActivity (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *activity)
 
SCIP_RETCODE SCIPgetNlRowNLPFeasibility (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *feasibility)
 
SCIP_RETCODE SCIPrecalcNlRowPseudoActivity (SCIP *scip, SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPgetNlRowPseudoActivity (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *pseudoactivity)
 
SCIP_RETCODE SCIPgetNlRowPseudoFeasibility (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *pseudofeasibility)
 
SCIP_RETCODE SCIPrecalcNlRowActivity (SCIP *scip, SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPgetNlRowActivity (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *activity)
 
SCIP_RETCODE SCIPgetNlRowFeasibility (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *feasibility)
 
SCIP_RETCODE SCIPgetNlRowSolActivity (SCIP *scip, SCIP_NLROW *nlrow, SCIP_SOL *sol, SCIP_Real *activity)
 
SCIP_RETCODE SCIPgetNlRowSolFeasibility (SCIP *scip, SCIP_NLROW *nlrow, SCIP_SOL *sol, SCIP_Real *feasibility)
 
SCIP_RETCODE SCIPgetNlRowActivityBounds (SCIP *scip, SCIP_NLROW *nlrow, SCIP_Real *minactivity, SCIP_Real *maxactivity)
 
SCIP_RETCODE SCIPprintNlRow (SCIP *scip, SCIP_NLROW *nlrow, FILE *file)
 

Function Documentation

◆ SCIPnlrowGetConstant()

SCIP_Real SCIPnlrowGetConstant ( SCIP_NLROW nlrow)

gets constant

Parameters
nlrowNLP row

Definition at line 3235 of file nlp.c.

References SCIP_NlRow::constant.

Referenced by nlrowaggrCreate(), and SCIPcreateNlpiProb().

◆ SCIPnlrowGetNLinearVars()

int SCIPnlrowGetNLinearVars ( SCIP_NLROW nlrow)

gets number of variables of linear part

Parameters
nlrowNLP row

Definition at line 3245 of file nlp.c.

References SCIP_NlRow::nlinvars.

Referenced by applyHeur(), computeGradient(), generateCut(), heurExec(), nlrowaggrCreate(), and SCIPcreateNlpiProb().

◆ SCIPnlrowGetLinearVars()

SCIP_VAR** SCIPnlrowGetLinearVars ( SCIP_NLROW nlrow)

gets array with variables of linear part

Parameters
nlrowNLP row

Definition at line 3255 of file nlp.c.

References SCIP_NlRow::linvars.

Referenced by computeGradient(), generateCut(), nlrowaggrCreate(), and SCIPcreateNlpiProb().

◆ SCIPnlrowGetLinearCoefs()

SCIP_Real* SCIPnlrowGetLinearCoefs ( SCIP_NLROW nlrow)

gets array with coefficients in linear part

Parameters
nlrowNLP row

Definition at line 3265 of file nlp.c.

References SCIP_NlRow::lincoefs.

Referenced by computeGradient(), generateCut(), nlrowaggrCreate(), and SCIPcreateNlpiProb().

◆ SCIPnlrowGetNQuadVars()

int SCIPnlrowGetNQuadVars ( SCIP_NLROW nlrow)

gets number of quadratic variables in quadratic part

Parameters
nlrowNLP row

Definition at line 3275 of file nlp.c.

References SCIP_NlRow::nquadvars.

Referenced by computeGradient(), createMIP(), createTcliqueGraph(), doSeachEcAggr(), findAndStoreEcAggregations(), isCandidate(), nlrowaggrCreate(), SCIPaddQuadVarsToNlRow(), and searchEcAggrWithCliques().

◆ SCIPnlrowGetQuadVars()

SCIP_VAR** SCIPnlrowGetQuadVars ( SCIP_NLROW nlrow)

gets quadratic variables in quadratic part

Parameters
nlrowNLP row

Definition at line 3285 of file nlp.c.

References SCIP_NlRow::quadvars.

Referenced by computeGradient(), computeInteriorPoint(), createMIP(), createTcliqueGraph(), doSeachEcAggr(), generateCut(), isCandidate(), nlrowaggrCreate(), processNlRow(), and SCIPcreateNlpiProb().

◆ SCIPnlrowSearchQuadVar()

int SCIPnlrowSearchQuadVar ( SCIP_NLROW nlrow,
SCIP_VAR var 
)

gives position of variable in quadvars array of row, or -1 if not found

Parameters
nlrownonlinear row
varvariable to search for

Definition at line 3295 of file nlp.c.

References SCIP_NlRow::nquadvars, SCIP_NlRow::quadvars, SCIP_NlRow::quadvarshash, SCIPhashmapExists(), and SCIPhashmapGetImage().

Referenced by createNlRow(), nlpDelVarPos(), nlrowRemoveFixedQuadVars(), nlrowRemoveFixedVar(), and SCIPnlrowAddQuadVar().

◆ SCIPnlrowGetNQuadElems()

◆ SCIPnlrowGetQuadElems()

SCIP_QUADELEM* SCIPnlrowGetQuadElems ( SCIP_NLROW nlrow)

◆ SCIPnlrowGetQuadData()

void SCIPnlrowGetQuadData ( SCIP_NLROW nlrow,
int *  nquadvars,
SCIP_VAR ***  quadvars,
int *  nquadelems,
SCIP_QUADELEM **  quadelems 
)

gets array with coefficients in linear part

Parameters
nlrowNLP row
nquadvarsbuffer to store number of variables in quadratic term, or NULL if not of interest
quadvarsbuffer to store pointer to array of variables in quadratic term, or NULL if not of interest
nquadelemsbuffer to store number of entries in quadratic term, or NULL if not of interest
quadelemsbuffer to store pointer to array of entries in quadratic term, or NULL if not of interest

Definition at line 3342 of file nlp.c.

References SCIP_NlRow::nquadelems, SCIP_NlRow::nquadvars, SCIP_NlRow::quadelems, and SCIP_NlRow::quadvars.

◆ SCIPnlrowGetExprtree()

SCIP_EXPRTREE* SCIPnlrowGetExprtree ( SCIP_NLROW nlrow)

gets expression tree

Parameters
nlrowNLP row

Definition at line 3363 of file nlp.c.

References SCIP_NlRow::exprtree.

Referenced by applyHeur(), computeGradient(), generateCut(), heurExec(), isCandidate(), isNlobbtApplicable(), processNlRow(), SCIPcreateNlpiProb(), and storeNonlinearConvexNlrows().

◆ SCIPnlrowGetLhs()

SCIP_Real SCIPnlrowGetLhs ( SCIP_NLROW nlrow)

◆ SCIPnlrowGetRhs()

◆ SCIPnlrowGetCurvature()

SCIP_EXPRCURV SCIPnlrowGetCurvature ( SCIP_NLROW nlrow)

returns the curvature of a nonlinear row

Parameters
nlrowNLP row

Definition at line 3393 of file nlp.c.

References SCIP_NlRow::curvature.

Referenced by computeMaxViolation(), isNlobbtApplicable(), SCIPcreateNlpiProb(), and storeNonlinearConvexNlrows().

◆ SCIPnlrowSetCurvature()

void SCIPnlrowSetCurvature ( SCIP_NLROW nlrow,
SCIP_EXPRCURV  curvature 
)

sets the curvature of a nonlinear row

Parameters
nlrowNLP row
curvaturecurvature of NLP row

Definition at line 3402 of file nlp.c.

References SCIP_NlRow::curvature.

Referenced by SCIPaddQuadElementsToNlRow(), SCIPaddQuadElementToNlRow(), and SCIPsetNlRowExprtree().

◆ SCIPnlrowGetName()

const char* SCIPnlrowGetName ( SCIP_NLROW nlrow)

returns the name of a nonlinear row

Parameters
nlrowNLP row

Definition at line 3412 of file nlp.c.

References SCIP_NlRow::name.

Referenced by findPointPosition(), generateCut(), processNlRow(), SCIPcreateNlpiProb(), and separateCuts().

◆ SCIPnlrowGetNLPPos()

int SCIPnlrowGetNLPPos ( SCIP_NLROW nlrow)

gets position of a nonlinear row in current NLP, or -1 if not in NLP

Parameters
nlrowNLP row

Definition at line 3422 of file nlp.c.

References SCIP_NlRow::nlpindex.

◆ SCIPnlrowIsInNLP()

SCIP_Bool SCIPnlrowIsInNLP ( SCIP_NLROW nlrow)

returns TRUE iff row is member of current NLP

Parameters
nlrowNLP row

Definition at line 3432 of file nlp.c.

References SCIP_NlRow::nlpindex.

Referenced by computeCut(), isCandidate(), and isPossibleToComputeCut().

◆ SCIPnlrowGetDualsol()

SCIP_Real SCIPnlrowGetDualsol ( SCIP_NLROW nlrow)

gets the dual NLP solution of a nlrow for a ranged constraint, the dual value is positive if the right hand side is active and negative if the left hand side is active

Parameters
nlrowNLP row

Definition at line 3444 of file nlp.c.

References SCIP_NlRow::dualsol, and SCIP_NlRow::nlpiindex.

Referenced by SCIPapplyHeurDualval().

◆ SCIPcreateNlRow()

SCIP_RETCODE SCIPcreateNlRow ( SCIP scip,
SCIP_NLROW **  nlrow,
const char *  name,
SCIP_Real  constant,
int  nlinvars,
SCIP_VAR **  linvars,
SCIP_Real lincoefs,
int  nquadvars,
SCIP_VAR **  quadvars,
int  nquadelems,
SCIP_QUADELEM quadelems,
SCIP_EXPRTREE expression,
SCIP_Real  lhs,
SCIP_Real  rhs,
SCIP_EXPRCURV  curvature 
)

creates and captures an NLP row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowbuffer to store pointer to nonlinear row
namename of nonlinear row
constantconstant
nlinvarsnumber of linear variables
linvarslinear variables, or NULL if nlinvars == 0
lincoefslinear coefficients, or NULL if nlinvars == 0
nquadvarsnumber variables in quadratic terms
quadvarsvariables in quadratic terms, or NULL if nquadvars == 0
nquadelemsnumber of elements in quadratic term
quadelemselements (i.e., monomials) in quadratic term, or NULL if nquadelems == 0
expressionnonlinear expression, or NULL
lhsleft hand side
rhsright hand side
curvaturecurvature of the nonlinear row

Definition at line 32191 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowCreate(), Scip::set, and TRUE.

Referenced by addKnapsackConstraints(), addLinearConstraints(), addLogicOrConstraints(), addSetppcConstraints(), addVarboundConstraints(), createNlRow(), and SCIP_DECL_CONSINITSOL().

◆ SCIPcreateEmptyNlRow()

SCIP_RETCODE SCIPcreateEmptyNlRow ( SCIP scip,
SCIP_NLROW **  nlrow,
const char *  name,
SCIP_Real  lhs,
SCIP_Real  rhs 
)

creates and captures an NLP nonlinear row without any coefficients

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowpointer to nonlinear row
namename of nonlinear row
lhsleft hand side
rhsright hand side

Definition at line 32227 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPnlrowCreate(), Scip::set, and TRUE.

◆ SCIPcreateNlRowFromRow()

SCIP_RETCODE SCIPcreateNlRowFromRow ( SCIP scip,
SCIP_NLROW **  nlrow,
SCIP_ROW row 
)

creates and captures an NLP row from a linear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowpointer to nonlinear row
rowthe linear row to copy

Definition at line 32253 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowCreateFromRow(), Scip::set, and TRUE.

◆ SCIPcaptureNlRow()

SCIP_RETCODE SCIPcaptureNlRow ( SCIP scip,
SCIP_NLROW nlrow 
)

increases usage counter of NLP nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrownonlinear row to capture

Definition at line 32276 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPnlrowCapture(), and TRUE.

◆ SCIPreleaseNlRow()

SCIP_RETCODE SCIPreleaseNlRow ( SCIP scip,
SCIP_NLROW **  nlrow 
)

decreases usage counter of NLP nonlinear row, and frees memory if necessary

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowpointer to nonlinear row

Definition at line 32299 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowRelease(), Scip::set, and TRUE.

Referenced by addBilinearTerm(), addKnapsackConstraints(), addLinearCoef(), addLinearConstraints(), addLogicOrConstraints(), addQuadVarTerm(), addSetppcConstraints(), addVarboundConstraints(), chgLinearCoefPos(), consdataAddExprtrees(), consdataFree(), consdataSetExprtrees(), createNlRow(), delLinearCoefPos(), delQuadVarTermPos(), mergeAndCleanQuadVarTerms(), presolveDisaggregate(), presolveRemoveFixedVariables(), releaseHashmapNLPRows(), removeBilinearTermsPos(), replaceQuadVarTermPos(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSEXITSOL(), and SCIP_DECL_CONSINITSOL().

◆ SCIPchgNlRowLhs()

SCIP_RETCODE SCIPchgNlRowLhs ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real  lhs 
)

changes left hand side of NLP nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
lhsnew left hand side

Definition at line 32321 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlrowChgLhs(), Scip::set, Scip::stat, and TRUE.

◆ SCIPchgNlRowRhs()

SCIP_RETCODE SCIPchgNlRowRhs ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real  rhs 
)

changes right hand side of NLP nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
rhsnew right hand side

Definition at line 32344 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlrowChgRhs(), Scip::set, Scip::stat, and TRUE.

Referenced by createNlRow().

◆ SCIPchgNlRowConstant()

SCIP_RETCODE SCIPchgNlRowConstant ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real  constant 
)

changes constant of NLP nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
constantnew value for constant

Definition at line 32367 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlrowChgConstant(), Scip::set, Scip::stat, and TRUE.

◆ SCIPaddLinearCoefToNlRow()

SCIP_RETCODE SCIPaddLinearCoefToNlRow ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_VAR var,
SCIP_Real  val 
)

adds variable with a linear coefficient to the nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
varproblem variable
valvalue of coefficient in linear part of row

Definition at line 32390 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowAddLinearCoef(), Scip::set, Scip::stat, and TRUE.

Referenced by createNlRow().

◆ SCIPaddLinearCoefsToNlRow()

SCIP_RETCODE SCIPaddLinearCoefsToNlRow ( SCIP scip,
SCIP_NLROW nlrow,
int  nvars,
SCIP_VAR **  vars,
SCIP_Real vals 
)

adds variables with linear coefficients to the row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
nvarsnumber of variables to add to the row
varsproblem variables to add
valsvalues of coefficients in linear part of row

Definition at line 32414 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowAddLinearCoef(), Scip::set, Scip::stat, and TRUE.

Referenced by createNlRow().

◆ SCIPchgNlRowLinearCoef()

SCIP_RETCODE SCIPchgNlRowLinearCoef ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_VAR var,
SCIP_Real  coef 
)

changes linear coefficient of a variables in a row

Setting the coefficient to 0.0 means that it is removed from the row the variable does not need to exists before.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
varvariable
coefnew value of coefficient

Definition at line 32451 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowChgLinearCoef(), Scip::set, Scip::stat, and TRUE.

◆ SCIPaddQuadVarToNlRow()

SCIP_RETCODE SCIPaddQuadVarToNlRow ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_VAR var 
)

adds quadratic variable to the nonlinear row

After adding a quadratic variable, it can be used to add quadratic elements.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
varproblem variable

Definition at line 32479 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowAddQuadVar(), Scip::set, and TRUE.

Referenced by createNlRow().

◆ SCIPaddQuadVarsToNlRow()

SCIP_RETCODE SCIPaddQuadVarsToNlRow ( SCIP scip,
SCIP_NLROW nlrow,
int  nvars,
SCIP_VAR **  vars 
)

adds quadratic variables to the nonlinear row

After adding quadratic variables, they can be used to add quadratic elements.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
nvarsnumber of problem variables
varsproblem variables

Definition at line 32504 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowAddQuadVar(), SCIPnlrowEnsureQuadVarsSize(), SCIPnlrowGetNQuadVars(), Scip::set, and TRUE.

◆ SCIPaddQuadElementToNlRow()

SCIP_RETCODE SCIPaddQuadElementToNlRow ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_QUADELEM  quadelem 
)

add a quadratic element to the nonlinear row

Variable indices of the quadratic element need to be relative to quadratic variables array of row.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
quadelemquadratic element

Definition at line 32538 of file scip.c.

References checkStage(), SCIP_QuadElement::coef, FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPnlrowAddQuadElement(), SCIPnlrowSetCurvature(), Scip::set, Scip::stat, and TRUE.

Referenced by createNlRow().

◆ SCIPaddQuadElementsToNlRow()

SCIP_RETCODE SCIPaddQuadElementsToNlRow ( SCIP scip,
SCIP_NLROW nlrow,
int  nquadelems,
SCIP_QUADELEM quadelems 
)

adds quadratic elements to the nonlinear row

Variable indices of the quadratic elements need to be relative to quadratic variables array of row.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
nquadelemsnumber of quadratic elements
quadelemsquadratic elements

Definition at line 32567 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPnlrowAddQuadElement(), SCIPnlrowEnsureQuadElementsSize(), SCIPnlrowGetNQuadElems(), SCIPnlrowSetCurvature(), Scip::set, Scip::stat, and TRUE.

◆ SCIPchgNlRowQuadElement()

SCIP_RETCODE SCIPchgNlRowQuadElement ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_QUADELEM  quadelement 
)

changes coefficient in quadratic part of a row

Setting the coefficient in the quadelement to 0.0 means that it is removed from the row the element does not need to exists before.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
quadelementnew quadratic element, or update for existing one

Definition at line 32605 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowChgQuadElem(), Scip::set, Scip::stat, and TRUE.

◆ SCIPsetNlRowExprtree()

SCIP_RETCODE SCIPsetNlRowExprtree ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_EXPRTREE exprtree 
)

sets or deletes expression tree in the nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
exprtreeexpression tree, or NULL

Definition at line 32628 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPnlrowChgExprtree(), SCIPnlrowSetCurvature(), Scip::set, Scip::stat, and TRUE.

◆ SCIPsetNlRowExprtreeParam()

SCIP_RETCODE SCIPsetNlRowExprtreeParam ( SCIP scip,
SCIP_NLROW nlrow,
int  paramidx,
SCIP_Real  paramval 
)

sets a parameter of expression tree in the nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
paramidxindex of parameter in expression tree
paramvalnew value of parameter in expression tree

Definition at line 32654 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowChgExprtreeParam(), Scip::set, Scip::stat, and TRUE.

◆ SCIPsetNlRowExprtreeParams()

SCIP_RETCODE SCIPsetNlRowExprtreeParams ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real paramvals 
)

sets parameters of expression tree in the nonlinear row

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
paramvalsnew values of parameter in expression tree

Definition at line 32678 of file scip.c.

References checkStage(), FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPnlrowChgExprtreeParams(), Scip::set, Scip::stat, and TRUE.

◆ SCIPrecalcNlRowNLPActivity()

SCIP_RETCODE SCIPrecalcNlRowNLPActivity ( SCIP scip,
SCIP_NLROW nlrow 
)

recalculates the activity of a nonlinear row in the last NLP solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row

Definition at line 32701 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPerrorMessage, SCIPnlrowRecalcNLPActivity(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetNlRowNLPActivity()

SCIP_RETCODE SCIPgetNlRowNLPActivity ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real activity 
)

returns the activity of a nonlinear row in the last NLP solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
activitypointer to store activity value

Definition at line 32728 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPerrorMessage, SCIPnlrowGetNLPActivity(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetNlRowNLPFeasibility()

SCIP_RETCODE SCIPgetNlRowNLPFeasibility ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real feasibility 
)

gives the feasibility of a nonlinear row in the last NLP solution: negative value means infeasibility

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
feasibilitypointer to store feasibility value

Definition at line 32756 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPerrorMessage, SCIPnlrowGetNLPFeasibility(), Scip::set, Scip::stat, and TRUE.

◆ SCIPrecalcNlRowPseudoActivity()

SCIP_RETCODE SCIPrecalcNlRowPseudoActivity ( SCIP scip,
SCIP_NLROW nlrow 
)

recalculates the activity of a nonlinear row for the current pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row

Definition at line 32784 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPnlrowRecalcPseudoActivity(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetNlRowPseudoActivity()

SCIP_RETCODE SCIPgetNlRowPseudoActivity ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real pseudoactivity 
)

gives the activity of a nonlinear row for the current pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
pseudoactivitypointer to store pseudo activity value

Definition at line 32805 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPnlrowGetPseudoActivity(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetNlRowPseudoFeasibility()

SCIP_RETCODE SCIPgetNlRowPseudoFeasibility ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real pseudofeasibility 
)

gives the feasibility of a nonlinear row for the current pseudo solution: negative value means infeasibility

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
pseudofeasibilitypointer to store pseudo feasibility value

Definition at line 32827 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPnlrowGetPseudoFeasibility(), Scip::set, Scip::stat, and TRUE.

◆ SCIPrecalcNlRowActivity()

SCIP_RETCODE SCIPrecalcNlRowActivity ( SCIP scip,
SCIP_NLROW nlrow 
)

recalculates the activity of a nonlinear row in the last NLP or pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row

Definition at line 32849 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlpHasCurrentNodeNLP(), SCIPnlpHasSolution(), SCIPnlrowRecalcNLPActivity(), SCIPnlrowRecalcPseudoActivity(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetNlRowActivity()

SCIP_RETCODE SCIPgetNlRowActivity ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real activity 
)

gives the activity of a nonlinear row in the last NLP or pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
activitypointer to store activity value

Definition at line 32877 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlpHasCurrentNodeNLP(), SCIPnlpHasSolution(), SCIPnlrowGetNLPActivity(), SCIPnlrowGetPseudoActivity(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetNlRowFeasibility()

SCIP_RETCODE SCIPgetNlRowFeasibility ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real feasibility 
)

gives the feasibility of a nonlinear row in the last NLP or pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
feasibilitypointer to store feasibility value

Definition at line 32906 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlpHasCurrentNodeNLP(), SCIPnlpHasSolution(), SCIPnlrowGetNLPFeasibility(), SCIPnlrowGetPseudoFeasibility(), Scip::set, Scip::stat, and TRUE.

◆ SCIPgetNlRowSolActivity()

SCIP_RETCODE SCIPgetNlRowSolActivity ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_SOL sol,
SCIP_Real activity 
)

gives the activity of a nonlinear row for the given primal solution or NLP solution or pseudo solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
solprimal CIP solution, or NULL for NLP solution of pseudo solution
activitypointer to store activity value

Definition at line 32935 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlpHasCurrentNodeNLP(), SCIPnlpHasSolution(), SCIPnlrowGetNLPActivity(), SCIPnlrowGetPseudoActivity(), SCIPnlrowGetSolActivity(), Scip::set, Scip::stat, and TRUE.

Referenced by computeMaxViolation(), findPointPosition(), generateCut(), improvePoint(), SCIP_DECL_SEPAEXECLP(), and separateCuts().

◆ SCIPgetNlRowSolFeasibility()

SCIP_RETCODE SCIPgetNlRowSolFeasibility ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_SOL sol,
SCIP_Real feasibility 
)

gives the feasibility of a nonlinear row for the given primal solution

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP nonlinear row
solprimal CIP solution
feasibilitypointer to store feasibility value

Definition at line 32969 of file scip.c.

References checkStage(), FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPnlpHasCurrentNodeNLP(), SCIPnlpHasSolution(), SCIPnlrowGetNLPFeasibility(), SCIPnlrowGetPseudoFeasibility(), SCIPnlrowGetSolFeasibility(), Scip::set, Scip::stat, and TRUE.

Referenced by getMinFeas(), and improvePoint().

◆ SCIPgetNlRowActivityBounds()

SCIP_RETCODE SCIPgetNlRowActivityBounds ( SCIP scip,
SCIP_NLROW nlrow,
SCIP_Real minactivity,
SCIP_Real maxactivity 
)

gives the minimal and maximal activity of a nonlinear row w.r.t. the variable's bounds

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
minactivitybuffer to store minimal activity, or NULL
maxactivitybuffer to store maximal activity, or NULL

Definition at line 33004 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, SCIPnlrowGetActivityBounds(), Scip::set, Scip::stat, and TRUE.

◆ SCIPprintNlRow()

SCIP_RETCODE SCIPprintNlRow ( SCIP scip,
SCIP_NLROW nlrow,
FILE *  file 
)

output nonlinear row to file stream

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nlrowNLP row
fileoutput file (or NULL for standard output)

Definition at line 33028 of file scip.c.

References checkStage(), FALSE, Scip::messagehdlr, SCIP_CALL, SCIP_OKAY, SCIPnlrowPrint(), and TRUE.

Referenced by createNlRow(), findPointPosition(), and separateCuts().