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 3236 of file nlp.c.

References SCIP_NlRow::constant, and NULL.

Referenced by nlrowaggrCreate(), and SCIPcreateNlpiProb().

◆ SCIPnlrowGetNLinearVars()

int SCIPnlrowGetNLinearVars ( SCIP_NLROW nlrow)

gets number of variables of linear part

Parameters
nlrowNLP row

Definition at line 3246 of file nlp.c.

References SCIP_NlRow::nlinvars, and NULL.

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 3256 of file nlp.c.

References SCIP_NlRow::linvars, and NULL.

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 3266 of file nlp.c.

References SCIP_NlRow::lincoefs, and NULL.

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 3276 of file nlp.c.

References SCIP_NlRow::nquadvars, and NULL.

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 3286 of file nlp.c.

References NULL, and 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 3296 of file nlp.c.

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

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

◆ SCIPnlrowGetNQuadElems()

◆ SCIPnlrowGetQuadElems()

SCIP_QUADELEM* SCIPnlrowGetQuadElems ( SCIP_NLROW nlrow)

gets quadratic elements in quadratic part

Parameters
nlrowNLP row

Definition at line 3333 of file nlp.c.

References NULL, and SCIP_NlRow::quadelems.

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

◆ 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 3343 of file nlp.c.

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

◆ SCIPnlrowGetExprtree()

SCIP_EXPRTREE* SCIPnlrowGetExprtree ( SCIP_NLROW nlrow)

gets expression tree

Parameters
nlrowNLP row

Definition at line 3364 of file nlp.c.

References SCIP_NlRow::exprtree, and NULL.

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

◆ SCIPnlrowGetLhs()

SCIP_Real SCIPnlrowGetLhs ( SCIP_NLROW nlrow)

◆ SCIPnlrowGetRhs()

SCIP_Real SCIPnlrowGetRhs ( SCIP_NLROW nlrow)

◆ SCIPnlrowGetCurvature()

SCIP_EXPRCURV SCIPnlrowGetCurvature ( SCIP_NLROW nlrow)

returns the curvature of a nonlinear row

Parameters
nlrowNLP row

Definition at line 3394 of file nlp.c.

References SCIP_NlRow::curvature, and NULL.

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 3403 of file nlp.c.

References SCIP_NlRow::curvature, and NULL.

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 3413 of file nlp.c.

References SCIP_NlRow::name, and NULL.

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 3423 of file nlp.c.

References SCIP_NlRow::nlpindex, and NULL.

◆ SCIPnlrowIsInNLP()

SCIP_Bool SCIPnlrowIsInNLP ( SCIP_NLROW nlrow)

returns TRUE iff row is member of current NLP

Parameters
nlrowNLP row

Definition at line 3433 of file nlp.c.

References SCIP_NlRow::nlpindex, and NULL.

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 3445 of file nlp.c.

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

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 1242 of file scip_nlp.c.

References FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1278 of file scip_nlp.c.

References FALSE, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPcheckStage(), 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 1304 of file scip_nlp.c.

References FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1327 of file scip_nlp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1350 of file scip_nlp.c.

References FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1372 of file scip_nlp.c.

References FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1395 of file scip_nlp.c.

References FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1418 of file scip_nlp.c.

References FALSE, Scip::nlp, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1441 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1465 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1502 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1530 of file scip_nlp.c.

References FALSE, Scip::mem, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1555 of file scip_nlp.c.

References FALSE, Scip::mem, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1589 of file scip_nlp.c.

References SCIP_QuadElement::coef, FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPcheckStage(), 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 1618 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, NULL, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPcheckStage(), 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 1656 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1679 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_EXPRCURV_UNKNOWN, SCIP_OKAY, SCIPcheckStage(), 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 1705 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1729 of file scip_nlp.c.

References FALSE, Scip::mem, Scip::nlp, SCIP_Mem::probmem, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1752 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), 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 1779 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), 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 1807 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage(), 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 1835 of file scip_nlp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1856 of file scip_nlp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1878 of file scip_nlp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1900 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1928 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1957 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 1986 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 2020 of file scip_nlp.c.

References FALSE, Scip::nlp, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 2055 of file scip_nlp.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), 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 2079 of file scip_nlp.c.

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

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