A package to decode SIF optimization test examples for use by CUTEst and GALAHAD
We provide precompiled SIFDecode executables in the releases tab for Linux (x64 and aarch64), macOS (x64 and aarch64), and Windows (x64).
SIFDecode can be installed using the Meson build system (all commands below are to be run from the top of the source tree):
meson setup builddir
meson compile -C builddir
meson install -C builddirSIFDecode can also be installed via the "make" build system based on ARCHDefs. To use this variant, follow the instructions in the CUTEst wiki.
A large collection of SIF files can be found at https://bitbucket.org/optrove/workspace/repositories/. In particular this contains:
- The CUTEst NLP test set in the
sifrepository - The Maros-Meszaros QP test set in the
maros-meszarosrepository - The Netlib LP test set in the
netlib-lprepository
The test problems are classified according to the CUTE classification scheme.
Since version v3.0.0, an executable binary sifdecoder is
available through the Meson build system and allows you to easily
decode SIF files on any platform.
sifdecoder -h # display the options
sifdecoder -sp ROSENBR.SIF # decode the SIF problem in single precision
sifdecoder -dp ROSENBR.SIF # decode the SIF problem in double precision
sifdecoder -qp ROSENBR.SIF # decode the SIF problem in quadruple precisionThen, you can create either a shared or a static library for your problem
using a Fortran compiler, such as gfortran.
gfortran -O3 -shared -fPIC -o libROSENBR.so *.f # shared library on Linux and FreeBSD
gfortran -O3 -shared -fPIC -o libROSENBR.dll *.f # shared library on Windows
gfortran -O3 -shared -fPIC -o libROSENBR.dylib *.f # shared library on Mac
gfortran -O3 -c *.f # generate object files *.o
ar rcs libROSENBR.a *.o # static library on all platformThe executable sifdecoder accepts the option -suffix.
All generated files are then suffixed with the problem name and the precision,
which allows SIF files to be decoded in parallel within the same folder.
A bash script sifdecoder can
also be used under the "make" build system with additional options but is less interoperable.