## Detailed Description

datastructures for NLP management

In SCIP, the NLP is defined as follows:

min const + obj * x + <x, Qx> + f(x) lhs <= const + A * x <= rhs lhs <= const + A * x + <x, Qx> + f(x) <= rhs lb <= x <= ub

where the linear rows and variable bounds are managed by the LP and the nonlinear rows are managed by the NLP.

The row activities are defined as activity = A * x + const for a linear row and as activity = f(x) + <x, Qx> + A * x + const for a nonlinear row. The activities must therefore be in the range of [lhs,rhs].

The main datastructures for storing an NLP are the nonlinear rows. A nonlinear row can live on its own (if it was created by a separator), or as relaxation of a constraint. Thus, it has a nuses-counter, and is deleted, if not needed any more. In difference to columns of an LP, nonlinear rows are defined with respect SCIP variables.

Definition in file struct_nlp.h.

`#include "scip/def.h"`

`#include "scip/type_nlp.h"`

`#include "scip/type_var.h"`

`#include "nlpi/type_nlpi.h"`

`#include "nlpi/type_expr.h"`

Go to the source code of this file.

## Data Structures | |

struct | SCIP_NlRow |

struct | SCIP_Nlp |