Skip to content

Releases: scipopt/soplex

v8.0.0

24 Nov 13:24

Choose a tag to compare

interface & parameters

  • method SoPlexBase<R>::factorizeColumnRational() is now public
  • added getRowActivity(), getRowActivityRational(), getRowsActivity(), getRowsActivityReal(), getRowsActivityRational(), and getColActivity(), getColActivityRational(), getColsActivity(), getColsActivityReal() to SoPlexBase<R>, based on extended computePrimalActivity() and computeDualActivity()
  • rename enums for verbosity levels: SPxOut::DEBUG to SPxOut::VERB_DEBUG etc.
  • changed type of second argument of spx_alloc() and spx_realloc() from int to size_t
  • changed second argument of NameSet::NameSet(), first argument of NameSet::memRemax(), return of NameSet::memMax(), and return of NameSet::memSize() from int to size_t
  • add constructor for class SolBase
  • deprecated SOPLEX_SUBVERSION, SOPLEX_VERSION_SUB, and soplex::subversion()

build system

  • for cmake >= 3.30, CMP0167 is enforced and BOOST_ROOT no longer supported; use Boost_DIR instead with these cmake versions
  • increased minimal required cmake version to 3.11
  • revised SANITIZE options for makefile: removed SANITIZE=full, added SANITIZE=thread, SANITIZE=address, and SANITIZE=memory to enable thread, address, and memory sanitizers, respectively, in addition to undefined behavior sanitizer; changed default to SANITIZE=false
  • replaced SANITIZE_XYZ=(on|off) options for cmake by SANITIZE=(on|off|thread|address|memory) and let it have an actual effect on the build; undefined behavior sanitizer is always enabled if not SANITIZE=off (the default)
  • Makefiles: by default, SoPlex links with MPFR=true and GMP=true if and only if BOOST=true (options GMP=auto and MPFR=auto)
  • Makefiles: change default value of BOOST to false; set BOOST=true manually to obtain exact rational solving functionality
  • cmake: if SoPlex is build with MPFR, then also projects that use such a SoPlex installation will now look for MPFR
  • cmake: updated FindMPFR.cmake so that MPFR_DIR is now supported

fixed bugs

  • extend memory counters to size_t to avoid segmentation faults for large-scale problems
  • removed instantiation of SPxLPBase<Rational> class template from header file, to avoid problems when SoPlex headers are compiled into several object files of a library

code quality

  • avoid deprecated implicit copy constructor for classes SPxException, SLinSolver, and SLinSolverRational

miscellaneous

  • removed 4th number in SoPlex version; new format is major.minor.patch

Downloads of prebuild libraries and executables, as part of the SCIP Optimization Suite, are available at https://scipopt.org/index.php#download.

v7.1.6

23 Oct 13:54

Choose a tag to compare

Fixed bugs:

  • fixed that SoPlex_objValueRationalString did not calculate the required string length correctly
  • clear vector before modifying number of non-zeros in SSVectorBase<R>::assign2productShort() of basevectors.h to avoid uninitialized indexing
  • also check whitespace at fourth position and only rely on length in row section in MPSInput::readLine() to detect more free MPS formats

Code quality:

  • reorganize NameSet::number() to avoid one hash table lookup and remove false compiler warning
  • avoid a false use-after-free compiler warning from GCC 12 and some more fixes of compiler warnings

v7.1.5

21 Jul 16:03

Choose a tag to compare

Fixed bug:

  • disable setting the boolean variable MACOSX_RPATH to a string value to actually enable @rpath usage

v7.1.4

16 Apr 07:11

Choose a tag to compare

Fixed bugs:

  • correct use of float_control pragma in stablesum implementation
  • relax assertion that requires a valid basis after rational solving
  • correct handling of IEEE infinity values when sorting arrays

Miscellaneous:

  • rename CMAKE_BUILD_TYPE to SOPLEX_BUILD_TYPE in soplex/config.h

v7.1.3

30 Jan 16:05

Choose a tag to compare

Fixed bugs

  • generalize basis adaption to variable bounds in loadDesc() of spxbasis.hpp to avoid errors and cyclings due to outdated non-basis declarations
  • remove fallback methods for mpq_t if GMP is not linked to avert breaking namespace pollution

Code quality

  • correct order of columns and rows when dumping basis
  • generalize optional test _checkBasisScaling() of testsoplex.hpp to both representations

Miscellaneous

  • only invalidate factorization after unscaling matrix in _checkBasisScaling() of testsoplex.hpp to keep basis sequence

v7.1.2

06 Nov 17:03

Choose a tag to compare

  • include C interface (soplex_interface.h) also in static library when building with cmake

v7.1.1

14 Sep 05:09

Choose a tag to compare

Code Quality

  • use nullptr instead of 0 for NULL pointers

v7.1.0

21 Jun 10:28

Choose a tag to compare

Interface & Parameters

  • add method SoPlexBase::numRefinements() to return number of iterative refinements
  • new optional argument writeZeroObjective to write functions of SoPlexBase
  • new functions SPxSolverBase::isTerminationValueEnabled(), SPxSolverBase::toggleTerminationValue(), and
    SPxSolverBase::factorizeAndRecompute()

Code Quality

  • add option to write dense objective to mps/lp files (including variables with zero objective coefficients)

Fixed Bugs

  • remove unused and incorrect SOPLEX_VERSION_API in cmake, SOPLEX_APIVERSION now always set in spxdefines.h
  • disable objective limits once if exceeding unscaled and unsimplified solution is not dual feasible
  • recompute solution from fresh factorization if objective limit is reached to avoid incorrect terminations
  • fix bug when writing bounds for unused variables in MPS file format

Miscellaneous

  • removed gzstream.h/hpp (L-GPL) and replaced it with zstr (MIT License) for .gz file handling

v7.0.1

14 May 09:31

Choose a tag to compare

Merge branch 'website-cosmetics' into 'bugfix-70'

Website cosmetics

See merge request integer/soplex!454

v7.0.0

26 Mar 11:29

Choose a tag to compare

release-700

increase version to 7.0.0.0