Scippy

SoPlex

Sequential object-oriented simPlex

soplex_interface.cpp File Reference
#include "soplex.h"
#include "soplex_interface.h"
#include <iostream>

Go to the source code of this file.

Functions

void * SoPlex_create ()
 
void SoPlex_free (void *soplex)
 
void SoPlex_clearLPReal (void *soplex)
 
int SoPlex_numRows (void *soplex)
 
int SoPlex_numCols (void *soplex)
 
void SoPlex_setRational (void *soplex)
 
void SoPlex_setIntParam (void *soplex, int paramcode, int paramvalue)
 
int SoPlex_getIntParam (void *soplex, int paramcode)
 
void SoPlex_addColReal (void *soplex, double *colentries, int colsize, int nnonzeros, double objval, double lb, double ub)
 
void SoPlex_addColRational (void *soplex, long *colnums, long *coldenoms, int colsize, int nnonzeros, long objvalnum, long objvaldenom, long lbnum, long lbdenom, long ubnum, long ubdenom)
 
void SoPlex_addRowReal (void *soplex, double *rowentries, int rowsize, int nnonzeros, double lb, double ub)
 
void SoPlex_addRowRational (void *soplex, long *rownums, long *rowdenoms, int rowsize, int nnonzeros, long lbnum, long lbdenom, long ubnum, long ubdenom)
 
void SoPlex_getPrimalReal (void *soplex, double *primal, int dim)
 
char * SoPlex_getPrimalRationalString (void *soplex, int dim)
 
void SoPlex_getDualReal (void *soplex, double *dual, int dim)
 
int SoPlex_optimize (void *soplex)
 
void SoPlex_changeObjReal (void *soplex, double *obj, int dim)
 
void SoPlex_changeObjRational (void *soplex, long *objnums, long *objdenoms, int dim)
 
void SoPlex_changeLhsReal (void *soplex, double *lhs, int dim)
 
void SoPlex_changeLhsRational (void *soplex, long *lhsnums, long *lhsdenoms, int dim)
 
void SoPlex_changeRhsReal (void *soplex, double *rhs, int dim)
 
void SoPlex_changeRhsRational (void *soplex, long *rhsnums, long *rhsdenoms, int dim)
 
void SoPlex_writeFileReal (void *soplex, char *filename)
 
double SoPlex_objValueReal (void *soplex)
 
char * SoPlex_objValueRationalString (void *soplex)
 
void SoPlex_changeBoundsReal (void *soplex, double *lb, double *ub, int dim)
 
void SoPlex_changeVarBoundsReal (void *soplex, int colidx, double lb, double ub)
 
void SoPlex_changeVarBoundsRational (void *soplex, int colidx, long lbnum, long lbdenom, long ubnum, long ubdenom)
 
void SoPlex_changeVarUpperReal (void *soplex, int colidx, double ub)
 
void SoPlex_getUpperReal (void *soplex, double *ub, int dim)
 

Function Documentation

◆ SoPlex_addColRational()

void SoPlex_addColRational ( void *  soplex,
long *  colnums,
long *  coldenoms,
int  colsize,
int  nnonzeros,
long  objvalnum,
long  objvaldenom,
long  lbnum,
long  lbdenom,
long  ubnum,
long  ubdenom 
)

adds a single rational column

Definition at line 96 of file soplex_interface.cpp.

References DSVectorBase< R >::add().

◆ SoPlex_addColReal()

void SoPlex_addColReal ( void *  soplex,
double *  colentries,
int  colsize,
int  nnonzeros,
double  objval,
double  lb,
double  ub 
)

adds a single (floating point) column

Definition at line 72 of file soplex_interface.cpp.

References DSVectorBase< R >::add().

◆ SoPlex_addRowRational()

void SoPlex_addRowRational ( void *  soplex,
long *  rownums,
long *  rowdenoms,
int  rowsize,
int  nnonzeros,
long  lbnum,
long  lbdenom,
long  ubnum,
long  ubdenom 
)

adds a single rational row

Definition at line 163 of file soplex_interface.cpp.

References DSVectorBase< R >::add().

◆ SoPlex_addRowReal()

void SoPlex_addRowReal ( void *  soplex,
double *  rowentries,
int  rowsize,
int  nnonzeros,
double  lb,
double  ub 
)

adds a single (floating point) row

Definition at line 140 of file soplex_interface.cpp.

References DSVectorBase< R >::add().

◆ SoPlex_changeBoundsReal()

void SoPlex_changeBoundsReal ( void *  soplex,
double *  lb,
double *  ub,
int  dim 
)

changes vectors of column bounds to lb and ub

Definition at line 364 of file soplex_interface.cpp.

◆ SoPlex_changeLhsRational()

void SoPlex_changeLhsRational ( void *  soplex,
long *  lhsnums,
long *  lhsdenoms,
int  dim 
)

changes rational left-hand side vector for constraints to lhs

Definition at line 285 of file soplex_interface.cpp.

◆ SoPlex_changeLhsReal()

void SoPlex_changeLhsReal ( void *  soplex,
double *  lhs,
int  dim 
)

changes left-hand side vector for constraints to lhs

Definition at line 277 of file soplex_interface.cpp.

◆ SoPlex_changeObjRational()

void SoPlex_changeObjRational ( void *  soplex,
long *  objnums,
long *  objdenoms,
int  dim 
)

changes rational objective function vector to obj

Definition at line 257 of file soplex_interface.cpp.

◆ SoPlex_changeObjReal()

void SoPlex_changeObjReal ( void *  soplex,
double *  obj,
int  dim 
)

changes objective function vector to obj

Definition at line 249 of file soplex_interface.cpp.

◆ SoPlex_changeRhsRational()

void SoPlex_changeRhsRational ( void *  soplex,
long *  rhsnums,
long *  rhsdenoms,
int  dim 
)

changes rational right-hand side vector for constraints to rhs

Definition at line 313 of file soplex_interface.cpp.

◆ SoPlex_changeRhsReal()

void SoPlex_changeRhsReal ( void *  soplex,
double *  rhs,
int  dim 
)

changes right-hand side vector for constraints to rhs

Definition at line 305 of file soplex_interface.cpp.

◆ SoPlex_changeVarBoundsRational()

void SoPlex_changeVarBoundsRational ( void *  soplex,
int  colidx,
long  lbnum,
long  lbdenom,
long  ubnum,
long  ubdenom 
)

changes rational bounds of a column to lbnum/lbdenom and ubnum/ubdenom

Definition at line 380 of file soplex_interface.cpp.

◆ SoPlex_changeVarBoundsReal()

void SoPlex_changeVarBoundsReal ( void *  soplex,
int  colidx,
double  lb,
double  ub 
)

changes bounds of a column to lb and ub

Definition at line 373 of file soplex_interface.cpp.

◆ SoPlex_changeVarUpperReal()

void SoPlex_changeVarUpperReal ( void *  soplex,
int  colidx,
double  ub 
)

changes upper bound of column to ub

Definition at line 404 of file soplex_interface.cpp.

◆ SoPlex_clearLPReal()

void SoPlex_clearLPReal ( void *  soplex)

clears the (floating point) LP

Definition at line 22 of file soplex_interface.cpp.

◆ SoPlex_create()

void* SoPlex_create ( )

creates new SoPlex struct

Definition at line 8 of file soplex_interface.cpp.

◆ SoPlex_free()

void SoPlex_free ( void *  soplex)

frees SoPlex struct

Definition at line 15 of file soplex_interface.cpp.

◆ SoPlex_getDualReal()

void SoPlex_getDualReal ( void *  soplex,
double *  dual,
int  dim 
)

gets dual solution

Definition at line 235 of file soplex_interface.cpp.

◆ SoPlex_getIntParam()

int SoPlex_getIntParam ( void *  soplex,
int  paramcode 
)

returns value of integer parameter

Definition at line 65 of file soplex_interface.cpp.

◆ SoPlex_getPrimalRationalString()

char* SoPlex_getPrimalRationalString ( void *  soplex,
int  dim 
)

Returns rational primal solution in a char pointer. The caller needs to ensure the char array is freed.

Definition at line 211 of file soplex_interface.cpp.

◆ SoPlex_getPrimalReal()

void SoPlex_getPrimalReal ( void *  soplex,
double *  primal,
int  dim 
)

gets primal solution

Definition at line 202 of file soplex_interface.cpp.

◆ SoPlex_getUpperReal()

void SoPlex_getUpperReal ( void *  soplex,
double *  ub,
int  dim 
)

changes upper bound vector of columns to ub

Definition at line 411 of file soplex_interface.cpp.

◆ SoPlex_numCols()

int SoPlex_numCols ( void *  soplex)

returns number of columns

Definition at line 36 of file soplex_interface.cpp.

◆ SoPlex_numRows()

int SoPlex_numRows ( void *  soplex)

returns number of rows

Definition at line 29 of file soplex_interface.cpp.

◆ SoPlex_objValueRationalString()

char* SoPlex_objValueRationalString ( void *  soplex)

Returns the rational objective value (as a string) if a primal solution is available. The caller needs to ensure the char array is freed.

Definition at line 349 of file soplex_interface.cpp.

◆ SoPlex_objValueReal()

double SoPlex_objValueReal ( void *  soplex)

returns the objective value if a primal solution is available

Definition at line 340 of file soplex_interface.cpp.

◆ SoPlex_optimize()

int SoPlex_optimize ( void *  soplex)

optimizes the given LP

Definition at line 242 of file soplex_interface.cpp.

◆ SoPlex_setIntParam()

void SoPlex_setIntParam ( void *  soplex,
int  paramcode,
int  paramvalue 
)

sets integer parameter value

Definition at line 58 of file soplex_interface.cpp.

◆ SoPlex_setRational()

◆ SoPlex_writeFileReal()

void SoPlex_writeFileReal ( void *  soplex,
char *  filename 
)

write LP to file

Definition at line 333 of file soplex_interface.cpp.