#[repr(C)]pub struct SCIP_Row {Show 50 fields
pub constant: f64,
pub lhs: f64,
pub rhs: f64,
pub flushedlhs: f64,
pub flushedrhs: f64,
pub sqrnorm: f64,
pub sumnorm: f64,
pub objprod: f64,
pub maxval: f64,
pub minval: f64,
pub dualsol: f64,
pub activity: f64,
pub dualfarkas: f64,
pub pseudoactivity: f64,
pub minactivity: f64,
pub maxactivity: f64,
pub validpsactivitydomchg: c_longlong,
pub validactivitybdsdomchg: c_longlong,
pub obsoletenode: c_longlong,
pub activeinlpcounter: c_longlong,
pub nlpsaftercreation: c_longlong,
pub storedsolvals: *mut SCIP_ROWSOLVALS,
pub origin: *mut c_void,
pub name: *mut c_char,
pub cols: *mut *mut SCIP_COL,
pub cols_index: *mut c_int,
pub vals: *mut f64,
pub linkpos: *mut c_int,
pub eventfilter: *mut SCIP_EVENTFILTER,
pub rowexact: *mut SCIP_ROWEXACT,
pub validactivitylp: c_longlong,
pub index: c_int,
pub size: c_int,
pub len: c_int,
pub nlpcols: c_int,
pub nunlinked: c_int,
pub nuses: c_int,
pub lppos: c_int,
pub lpipos: c_int,
pub lpdepth: c_int,
pub minidx: c_int,
pub maxidx: c_int,
pub numintcols: c_int,
pub numimplintcols: c_int,
pub nummaxval: c_int,
pub numminval: c_int,
pub age: c_int,
pub rank: c_int,
pub _bitfield_align_1: [u16; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4]>,
}Expand description
LP row The column vector of the LP row is partitioned into two parts: The first row->nlpcols columns in the cols array are the ones that belong to the current LP (row->cols[j]->lppos >= 0) and that are linked to the row (row->linkpos[j] >= 0). The remaining row->len - row->nlpcols columns in the cols array are the ones that don’t belong to the current LP (row->cols[j]->lppos == -1) or that are not linked to the row (row->linkpos[j] == -1).
Fields§
§constant: f64< constant shift c in row lhs <= ax + c <= rhs
lhs: f64< left hand side of row
rhs: f64< right hand side of row
flushedlhs: f64< left hand side minus constant of row already flushed to the LP solver
flushedrhs: f64< right hand side minus constant of row already flushed to the LP solver
sqrnorm: f64< squared Euclidean norm of row vector
sumnorm: f64< sum norm of row vector (sum of absolute values of coefficients)
objprod: f64< scalar product of row vector with objective function
maxval: f64< maximal absolute value of row vector, only valid if nummaxval > 0
minval: f64< minimal absolute non-zero value of row vector, only valid if numminval > 0
dualsol: f64< dual solution value in LP, is 0 if row is not in LP
activity: f64< row activity value in LP, or SCIP_INVALID if not yet calculated
dualfarkas: f64< multiplier value in dual Farkas infeasibility proof
pseudoactivity: f64< row activity value in pseudo solution, or SCIP_INVALID if not yet calculated
minactivity: f64< minimal activity value w.r.t. the column’s bounds, or SCIP_INVALID
maxactivity: f64< maximal activity value w.r.t. the column’s bounds, or SCIP_INVALID
validpsactivitydomchg: c_longlong< domain change number for which pseudo activity value is valid
validactivitybdsdomchg: c_longlong< domain change number for which activity bound values are valid
obsoletenode: c_longlong< last node where this row was removed due to aging
activeinlpcounter: c_longlong< counter for the number of times this row was active in an optimal LP solution
nlpsaftercreation: c_longlong< counter for the number of LPs after the row has been created
storedsolvals: *mut SCIP_ROWSOLVALS< values stored before entering diving or probing mode
origin: *mut c_void< pointer to constraint handler or separator who created the row (NULL if unknown)
name: *mut c_char< name of the row
cols: *mut *mut SCIP_COL< columns of row entries, that may have a nonzero primal solution value
cols_index: *mut c_int< copy of cols[i]->index for avoiding expensive dereferencing
vals: *mut f64< coefficients of row entries
linkpos: *mut c_int< position of row in row vector of the column, or -1 if not yet linked
eventfilter: *mut SCIP_EVENTFILTER< event filter for events concerning this row
rowexact: *mut SCIP_ROWEXACT< pointer to exact row if it exists, or NULL in fp-scip
validactivitylp: c_longlong< LP number for which activity value is valid
index: c_int< consecutively numbered row identifier
size: c_int< size of the col- and val-arrays
len: c_int< number of nonzeros in row
nlpcols: c_int< number of linked columns in row, that belong to the current LP
nunlinked: c_int< number of row entries, where the columns don’t know about the row
nuses: c_int< number of times, this row is referenced
lppos: c_int< row position number in current LP, or -1 if not in current LP
lpipos: c_int< row position number in LP solver, or -1 if not in LP solver
lpdepth: c_int< depth level at which row entered the LP, or -1 if not in current LP
minidx: c_int< minimal column index of row entries
maxidx: c_int< maximal column index of row entries
numintcols: c_int< number of integral columns
numimplintcols: c_int< number of implied integral columns
nummaxval: c_int< number of coefs with absolute value equal to maxval, zero if maxval invalid
numminval: c_int< number of coefs with absolute value equal to minval, zero if minval invalid
age: c_int< number of successive times this row was in LP and was not sharp in solution
rank: c_int< rank of the row (upper bound, to be precise)
_bitfield_align_1: [u16; 0]§_bitfield_1: __BindgenBitfieldUnit<[u8; 4]>