Scippy

SoPlex

Sequential object-oriented simPlex

soplexmain.cpp File Reference

Command line interface of SoPlex LP solver. More...

#include <assert.h>
#include <math.h>
#include <string.h>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <memory>
#include <boost/program_options.hpp>
#include <exception>
#include <boost/exception/diagnostic_information.hpp>
#include <boost/exception/exception.hpp>
#include "soplex.h"
#include "soplex/validation.h"
#include "soplex/statistics.h"
#include "soplex/args.hpp"

Go to the source code of this file.

Macros

#define EGlpNumStart()   {}
 
#define EGlpNumClear()   {}
 

Functions

int main (int argc, char *argv[])
 runs SoPlexBase command line More...
 
template<class R >
static void checkSolutionReal (SoPlexBase< R > &soplex)
 performs external feasibility check with real type More...
 
template<class R >
static void checkSolutionRational (SoPlexBase< R > &soplex)
 performs external feasibility check with rational type More...
 
template<class R >
void checkSolution (SoPlexBase< R > &soplex)
 performs external feasibility check according to check mode More...
 
template<class R >
static void printPrimalSolution (SoPlexBase< R > &soplex, NameSet &colnames, NameSet &rownames, bool real=true, bool rational=false)
 
template<class R >
static void printDualSolution (SoPlexBase< R > &soplex, NameSet &colnames, NameSet &rownames, bool real=true, bool rational=false)
 

Detailed Description

Command line interface of SoPlex LP solver.

Definition in file soplexmain.cpp.

Macro Definition Documentation

◆ EGlpNumClear

#define EGlpNumClear ( )    {}

Definition at line 46 of file soplexmain.cpp.

Referenced by main().

◆ EGlpNumStart

#define EGlpNumStart ( )    {}

Definition at line 45 of file soplexmain.cpp.

Referenced by main().

Function Documentation

◆ checkSolution()

void checkSolution ( SoPlexBase< R > &  soplex)

performs external feasibility check according to check mode

Definition at line 173 of file soplexmain.cpp.

References checkSolutionRational(), checkSolutionReal(), SoPlexBase< R >::intParam(), MSG_INFO1, and SoPlexBase< R >::spxout.

◆ checkSolutionRational()

static void checkSolutionRational ( SoPlexBase< R > &  soplex)
static

◆ checkSolutionReal()

static void checkSolutionReal ( SoPlexBase< R > &  soplex)
static

performs external feasibility check with real type

Todo:
implement external check; currently we use the internal methods for convenience

Definition at line 59 of file soplexmain.cpp.

References SoPlexBase< R >::getBoundViolation(), SoPlexBase< R >::getDualViolation(), SoPlexBase< R >::getRedCostViolation(), SoPlexBase< R >::getRowViolation(), SoPlexBase< R >::hasDual(), SoPlexBase< R >::hasPrimal(), MSG_INFO1, SoPlexBase< R >::realParam(), and SoPlexBase< R >::spxout.

Referenced by checkSolution().

◆ main()

int main ( int  argc,
char *  argv[] 
)

runs SoPlexBase command line

Todo:
the EGlib version info should be printed after the SoPlexBase version info

Definition at line 422 of file soplexmain.cpp.

References SoPlexBase< R >::_currentSettings, TimerFactory::createTimer(), Rational::disableListMem(), EGlpNumClear, EGlpNumStart, SoPlexBase< R >::FEASTOL, SPxOut::getStream(), SoPlexBase< R >::hasBasis(), SPxOut::INFO1, SoPlexBase< R >::intParam(), SoPlexBase< R >::ITERLIMIT, MSG_ERROR, MSG_INFO1, MSG_WARNING, SoPlexBase< R >::numCols(), SoPlexBase< R >::numNonzeros(), SoPlexBase< R >::numRows(), SoPlexBase< R >::optimize(), SoPlexBase< R >::OPTTOL, SPxOut::precision(), SoPlexBase< R >::PRICER, printDualSolution(), printPrimalSolution(), SoPlexBase< R >::printStatistics(), SoPlexBase< R >::printUserSettings(), SoPlexBase< R >::printVersion(), SoPlexBase< R >::RATIOTESTER, SoPlexBase< R >::readBasisFile(), SoPlexBase< R >::readFile(), SoPlexBase< R >::READMODE, SoPlexBase< R >::READMODE_RATIONAL, SoPlexBase< R >::READMODE_REAL, SoPlexBase< R >::saveSettingsFile(), SoPlexBase< R >::SCALER, SoPlexBase< R >::setIntParam(), SoPlexBase< R >::setRandomSeed(), SoPlexBase< R >::setRealParam(), SoPlexBase< R >::SIMPLIFIER, SoPlexBase< R >::SOLVEMODE, SoPlexBase< R >::SOLVEMODE_REAL, SOPLEX_COPYRIGHT, soplex::spx_free(), SoPlexBase< R >::spxout, SoPlexBase< R >::SYNCMODE, SoPlexBase< R >::SYNCMODE_AUTO, SoPlexBase< R >::SYNCMODE_MANUAL, SoPlexBase< R >::TIMELIMIT, Validation< R >::updateExternalSolution(), Validation< R >::updateValidationTolerance(), Timer::USER_TIME, Validation< R >::validate, Validation< R >::validateSolveReal(), SoPlexBase< R >::VERBOSITY, SPxException::what(), SoPlexBase< R >::writeBasisFile(), SoPlexBase< R >::writeDualFileReal(), SoPlexBase< R >::writeFile(), and Timer::~Timer().

◆ printDualSolution()

◆ printPrimalSolution()

static void printPrimalSolution ( SoPlexBase< R > &  soplex,
NameSet colnames,
NameSet rownames,
bool  real = true,
bool  rational = false 
)
static