Coder Social home page Coder Social logo

scipopt / papilo Goto Github PK

View Code? Open in Web Editor NEW
62.0 62.0 17.0 8.05 MB

Parallel Presolve for Integer and Linear Optimization

License: GNU Lesser General Public License v3.0

CMake 1.37% Makefile 0.05% Shell 1.36% Python 1.40% C++ 36.48% C 0.32% JetBrains MPS 59.00% Visual Basic 6.0 0.02%

papilo's People

Contributors

alexhoen avatar ambros-gleixner avatar antoineprv avatar buh13246 avatar chrjabs avatar dominikkamp avatar fschloesser avatar gabrielkp avatar galabovaa avatar gionimexi avatar jamesjer avatar ju-manns avatar ldr709 avatar lgottwald avatar matbesancon avatar sbolusani avatar svigerske avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

papilo's Issues

Typo breaking build without GMP

When building without GMP (-DGMP=OFF), I get the following error:

scipoptsuite-9.0.1/papilo/src/papilo/misc/MultiPrecision.hpp:142:35: error: #if with no expression
  142 | #if PAPILO_SERIALIZATION_AVAILABLE
      |                                   ^

I assume there should be an #ifdef on the following line, at least that fixes the build for me.

#if PAPILO_SERIALIZATION_AVAILABLE

Request of Python interface

Hi, Thank you for your great work!
I was wondering if there is any plan to support the Python interface, such that one could easily invoke your algorithms for fast prototyping.

the excutable binary file not found after building the package

Hello,
I'm installing PAPILO on ubuntu following the instruction. I have succeeded in building the package.
According to the README.md, the excutable binary file can be called by

bin/papilo presolve -f problem.mps -r reduced.mps -v reduced.postsolve

but I do not find any folder named "bin" or binary file named "papilo".
Looking forward to your reply.

Presolve killed

PaPILO is killed while trying to presolve a MILP model stored in a 9.6 GB MPS file. The computer has a AMD Ryzen Threadripper 3960X 24-Core Processor, which has 48 logical cores due to hyper-threading, has 128 GB RAM, and runs Ubuntu 20.04.5 LTS. Is PaPILO running out of memory?

$ /home/muck/papilo-2.1.0/build/bin/papilo presolve -f /data/muck/gen_MPS_files/p10_fix0_MILP_binary_x.mps -r /data/muck/PaPILO_files_MILP_binary_x/p10_fix0_red.mps -v /data/muck/PaPILO_files_MILP_binary_x/p10_fix0_red.postsolve
PaPILO version 2.1.0 [mode: debug][Solvers: none][GitHash: ]
Copyright (C) 2020-2022 Zuse Institute Berlin (ZIB)

External libraries:
Boost 1.79.0 (https://www.boost.org/)
TBB Thread building block https://github.com/oneapi-src/oneTBB developed by Intel

reading took 188.0 seconds
Numerical Statistics:
Matrix range [1e+00,1e+00]
Objective range [2e+01,1e+04]
Bounds range [1e+00,1e+00]
RHS range [1e+00,1e+01]
Dynamism Variables: 1e+00
Dynamism Rows : 1e+00

starting presolve of problem /data/muck/gen_MPS_files/p10_fix0_MILP_binary_x.mps:
rows: 47261300
columns: 47251695
int. columns: 47251695
cont. columns: 0
nonzeros: 141744517

round 0 ( Trivial ): 2 del cols, 14889 del rows, 2 chg bounds, 0 chg sides, 0 chg coeffs, 0 tsx applied, 0 tsx conflicts
Killed

Solution in Presolved Reduced Space

If I have a solution (or partial solution) to the original problem defined in a .sol file, is there a way to construct the corresponding solution (or partial solution) in the presolved reduced space?

This might be useful if a good solution (or partial solution) to the original problem is known (for example from a metaheuristic) and I want to provide this initial feasible solution (or partial solution) and the presolved reduced problem to the solver (e.g., Gurobi).

Corrected Dual Solution for Presolved Problem

Is the corrected dual solution, obtained for a presolved problem, a lower bound for the original problem? If the solution to the presolved problem is y, then let r = c-A^T*y be the reduced costs, where c and A are defined for the presolved problem. The corrected dual solution is obtained by evaluating the dual objective defined here: https://developers.google.com/optimization/lp/pdlp_math#dual

I am interested in obtaining a tight lower bound of the original problem. I do not believe PaPILO is able to save off the dual solution, so I cannot evaluate the corrected dual solution from the postsolved solution.

Compilation fails with `‘gcd’ is not a member of ‘boost’`.

Building SCIPOptSuite from source with this recipe, and also when that recipe is updated to use version 8.0.0, compilation fails on my end with the following two errors:

/[…]/scipoptsuite-8.0.0/papilo/src/papilo/presolvers/SimplifyInequalities.hpp:144:21: error: ‘gcd’ is not a member of ‘boost’
  144 |       return boost::gcd( static_cast<int64_t>( val1 ),
/[…]/scipoptsuite-8.0.0/papilo/src/papilo/presolvers/SimplifyInequalities.hpp:164:21: error: ‘gcd’ is not a member of ‘boost’
  164 |       return boost::gcd( static_cast<int64_t>( val1 * multiplier ),

This is on Arch Linux (rolling, last full update today).

Replacing both occurences of boost::gcd with boost::integer::gcd appears to resolve this issue for me (i.e. the build of papilo-core succeeds, though there is now a new error in a different part of SCIPOptSuite).

vector out of bounds access at Presolve.hpp line 1152

result = probUpdate.applyTransaction( &reds[k], &reds.data()[k + 1] );

   for( ; k != static_cast<int>( reds.size() ); ++k )
   {
      result = probUpdate.applyTransaction( &reds[k], &reds.data()[k + 1] );

reds.data()[k+1] is clearly out of bounds in the last iteration of this loop. If compiled with Visual C++ in debug mode, an assert will be triggered within th VC++ implementation of std::vector.

Singleton Column wrong reduction/ constant computation

Using Papilo 2.2.0 with only col singleton enabled I got an issue when reducing this problem.

It should be trivally reduced to 0 but instead it is trivially reduced to -10:

Minimize
 obj: 100000 x1 + 100000 x2
Subject To
 c1: - 0.000555555555555556 x1 + 0.000555555555555556 x2
     - 0.000555555555555556 x3 + 0.000555555555555556 x4  = 0
Bounds
 0 <= x3 <= 0.0001
 0 <= x4 <= 0.0001
End

ttt1.zip
Attached is a zip file containing the lp file, mps file and params for papilo cli.
I can reproduced it with older versions of papilo (2.1.0) at least

PaPILO Presolve: Objective Function Value

Does PaPILO presolve change the objective function value between the original and presolved space? That is, if the PaPILO presolved model is solved to optimality, is the optimal objective value in the presolved space the same as that in the original space? If not, is there a simple way to transform the objective value in the presolved space to the objective value in the original space?

Building with OR-Tools

What is the cmake flag ("-DORTOOLS_DIR=" ?) to specify the location of OR-Tools when trying to build PaPILO with OR-Tools in order to use GLOP and PDLP? Will CP-SAT also be added as a possible OR-Tools solver integrated with PaPILO? CP-SAT can solve pure integer linear programs.

mkdir build
cd build
cmake -DORTOOLS_DIR=PATH_TO_ORTOOLS_BUILD_DIR ..
make

oneTBB default location

If PaPILO does not find oneTBB and it tries to download and use v2021.4.0, does it install oneTBB in the folder external/? If not, does PaPILO need root access in order to install oneTBB?

Boost libraries are required even if Papilo is used as header-only library (at least on windows)

This is due to boost auto linking:

  • Postsolve.hpp, PostsolveStorage.hpp, Presolve.hpp and MultiPrecision.hpp include stuff from boost serialization
  • Those include transitively boost/config/auto_link.hpp which has pragmas to tell the compiler/linker to link against boost libraries. This completely bypases cmake or whatever other build system you use.
  • as a consequence the build fails with a linker error if those boost libraries are not available.

Not sure which compilers are affected. I'm using MSVC and Papilo 2.2.0.

Workaround:
removing those includes in the for files mentioned above worked for me. Not sure whether there are cases they are needed.

Compile error at 98% ARM64 Android

My log is as follows

I have latest tbb & boost

cmake -DCMAKE_INSTALL_PREFIX=$PREFIX/local ..
-- The C compiler identification is Clang 14.0.6
-- The CXX compiler identification is Clang 14.0.6
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /data/data/com.termux/files/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /data/data/com.termux/files/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /data/data/com.termux/files/usr/lib/cmake/Boost-1.78.0/BoostConfig.cmake (found suitable version "1.78.0", minimum required is "1.65") found components: program_options
-- Found GMP: /data/data/com.termux/files/usr/include
-- Performing Test Quadmath_USE_DIRECTLY
-- Performing Test Quadmath_USE_DIRECTLY - Failed
-- Could NOT find Quadmath (missing: Quadmath_LIBRARY Quadmath_INCLUDE_DIR)
-- Git hash: dea16d4
-- Found TBB: /data/data/com.termux/files/usr/lib/cmake/TBB/TBBConfig.cmake (found suitable version "2021.5.0", minimum required is "2018")
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Looking for a Fortran compiler
-- Looking for a Fortran compiler - NOTFOUND
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Looking for sgemm_
-- Looking for sgemm_ - found
-- Found BLAS: /data/data/com.termux/files/usr/lib/libopenblas.so
-- LUSOL is not built
-- Performing Test HAVE_FLAG_STD_CXX14
-- Performing Test HAVE_FLAG_STD_CXX14 - Success
-- Performing Test PAPILO_BYTELL_HASHMAP_WORKS
-- Performing Test PAPILO_BYTELL_HASHMAP_WORKS - Success
-- Found Boost: /data/data/com.termux/files/usr/lib/cmake/Boost-1.78.0/BoostConfig.cmake (found version "1.78.0") found components: iostreams serialization program_options
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_ZLIB
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_ZLIB - Success
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_BZIP2
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_BZIP2 - Success
-- No solvers linked
-- Found Boost: /data/data/com.termux/files/usr/lib/cmake/Boost-1.78.0/BoostConfig.cmake (found version "1.78.0") found components: serialization program_options iostreams
-- Configuring done
-- Generating done
-- Build files have been written to: /data/data/com.termux/files/home/papilo/build
~/papilo/build $ make -j4
[  1%] Building CXX object test/CMakeFiles/unit_test.dir/TestMain.cpp.o
[  3%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/VariableDomains.cpp.o
[  5%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/SparseStorage.cpp.o
[  7%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/core/MatrixBufferTest.cpp.o
[  9%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/ConstraintMatrix.cpp.o
[ 11%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/ProblemUpdate.cpp.o
[ 12%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/core/SparseStorageTest.cpp.o
[ 14%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/core/PresolveTest.cpp.o
[ 16%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/Presolve.cpp.o
[ 18%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/core/ProblemUpdateTest.cpp.o
[ 20%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/postsolve/PostsolveStorage.cpp.o
[ 22%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/misc/VectorUtilsTest.cpp.o
[ 24%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/CoefficientStrengtheningTest.cpp.o
[ 25%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/postsolve/Postsolve.cpp.o
[ 27%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/core/ProbingView.cpp.o
[ 29%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/ConstraintPropagationTest.cpp.o
[ 31%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/DualFixTest.cpp.o
[ 33%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/CoefficientStrengthening.cpp.o
[ 35%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/DominatedColsTest.cpp.o
[ 37%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/ConstraintPropagation.cpp.o
[ 38%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/DominatedCols.cpp.o
[ 40%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/FixContinuousTest.cpp.o
[ 42%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/DualFix.cpp.o
[ 44%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/DualInfer.cpp.o
[ 46%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/FreeVarSubstitutionTest.cpp.o
[ 48%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/ImplIntDetectionTest.cpp.o
[ 50%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/ParallelRowDetectionTest.cpp.o
[ 51%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/FixContinuous.cpp.o
[ 53%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/ParallelColDetectionTest.cpp.o
[ 55%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/FreeVarSubstitution.cpp.o
[ 57%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/ImplIntDetection.cpp.o
[ 59%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/ProbingTest.cpp.o
[ 61%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/ParallelColDetection.cpp.o
[ 62%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/SingletonColsTest.cpp.o
[ 64%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/ParallelRowDetection.cpp.o
[ 66%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/Probing.cpp.o
[ 68%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/SingletonStuffingTest.cpp.o
[ 70%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/SimpleProbingTest.cpp.o
[ 72%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/SimpleProbing.cpp.o
[ 74%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/SimpleSubstitutionTest.cpp.o
[ 75%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/SimplifyInequalitiesTest.cpp.o
[ 77%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/SimpleSubstitution.cpp.o
[ 79%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/SingletonCols.cpp.o
[ 81%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/presolve/SparsifyTest.cpp.o
[ 83%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/SingletonStuffing.cpp.o
[ 85%] Building CXX object test/CMakeFiles/unit_test.dir/papilo/io/MpsParserTest.cpp.o
[ 87%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/Sparsify.cpp.o
[ 88%] Building CXX object CMakeFiles/papilo-core.dir/src/papilo/presolvers/SimplifyInequalities.cpp.o
[ 90%] Linking CXX executable unit_test
ld.lld: error: undefined symbol: __android_log_write
>>> referenced by catch.hpp:10367 (/data/data/com.termux/files/home/papilo/src/papilo/external/catch/catch.hpp:10367)
>>>               CMakeFiles/unit_test.dir/TestMain.cpp.o:(Catch::writeToDebugConsole(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&))
>>> referenced by catch.hpp:10367 (/data/data/com.termux/files/home/papilo/src/papilo/external/catch/catch.hpp:10367)
>>>               CMakeFiles/unit_test.dir/TestMain.cpp.o:(Catch::Detail::(anonymous namespace)::StreamBufImpl<Catch::Detail::(anonymous namespace)::OutputDebugWriter, 256ul>::sync())
>>> referenced by catch.hpp:10367 (/data/data/com.termux/files/home/papilo/src/papilo/external/catch/catch.hpp:10367)
>>>               CMakeFiles/unit_test.dir/TestMain.cpp.o:(Catch::Detail::(anonymous namespace)::StreamBufImpl<Catch::Detail::(anonymous namespace)::OutputDebugWriter, 256ul>::overflow(int))
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [test/CMakeFiles/unit_test.dir/build.make:455: test/unit_test] Error 1
make[1]: *** [CMakeFiles/Makefile2:225: test/CMakeFiles/unit_test.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 92%] Linking CXX static library libpapilo-core.a
[ 92%] Built target papilo-core
make: *** [Makefile:146: all] Error 2

Papilo Compiling Error in Arch WSL

Hi, for testing purpose I installed Arch WSL that always have latest version of libraries in linux. I installed some required packages and compiled IPOPT without any problem. Then, I moved on SCIP and started compiling from Papilo. I directly pulling github files with clone command.
log1.txt file is output of "cmake .." command.

log2.txt file is output of "make -j12" command.
I also attaching CMake log files.
CMakeError.log
CMakeOutput.log

I think these files will be helpful to identify error.

presolve returns error "unknown bound type INDICATORS"

While trying to presolve instances from the MIPLIB collection and found that instance supportcase21i
https://miplib.zib.de/instance_details_supportcase21i.html
with command papilo presolve -f supportcase21i.mps

returns the error unknown bound type INDICATORS

From these references it seems that this is not part of the standard mps format and I don't need the exact structure of the problem instance, so ignoring the INDICATORS section in the mps file would work for me, but I was wondering if Papilo has a better way of handling this.

https://www-eio.upc.es/lceio/manuals/cplex-11/html/reffileformatscplex/reffileformatscplex15.html
https://documentation.aimms.com/platform/solvers/cplex.html#cplex-indicator-constraints

Thanks in advance!

Full output:

PaPILO version 2.1.2 [mode: optimized][Solvers: SCIP,SoPlex][GitHash: 2fe2543]
Copyright (C) 2020-2022 Zuse Institute Berlin (ZIB)

External libraries: 
  Boost    1.76.0        (https://www.boost.org/)
  TBB                    Thread building block https://github.com/oneapi-src/oneTBB developed by Intel
  GMP      6.2.0         GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
  SCIP     8.0.3         Mixed Integer Programming Solver developed at Zuse Institute Berlin (scip.zib.de) [GitHash: 62fab8a2e3]
  SoPlex   6.0.3         Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: f900e3d0]

unknown bound type INDICATORS

Implementing .opb file parser

.opb is a file format to specify 0-1 Integer programs. However it is already supported in the larger SCIP ecosystem. I am aware that this format also contains products of binary variables, so working with the linearization of products of binaries would be enough. I would not expect writing out .opbs with recovered product structures, although it would be nice.

What would be required to make papilo support reading .opb?

For reference SCIP supports the following formats:

cip, cnf, flatzinc, rlp, lp, mps, opb, pip, wbo, zimpl

I understand that supporting flatzinc and similar constraint based formats is really complicated and recovery of those constraint structures from a an presolved MILP quiet hard. So a full support for all filetypes SCIP can support is unrealistic given the linear framework of papilo.

lto1: fatal error: bytecode stream in file ‘CMakeFiles/tbbmalloc.dir/backend.cpp.o’ generated with LTO version 8.1 instead of the expected 6.2

Hello,
After I execute the "cmake ..." command, I was prompted that TBB was not installed and an error was reported during the installation process:

lto1: fatal error: bytecode stream in file ‘CMakeFiles/tbbmalloc.dir/backend.cpp.o’ generated with LTO version 8.1 instead of the expected 6.2

compilation terminated.

lto-wrapper: fatal error: /usr/bin/gcc returned 1 exit status

compilation terminated.

/usr/bin/ld: error: lto-wrapper failed

collect2: error: ld returned 1 exit status

make[2]: ***
[src/tbbmalloc/CMakeFiles/tbbmalloc.dir/build.make:160:gnu_9.4_cxx11_64_relwithdebinfo/libtbbmalloc.so.2.4]
错误 1

make[1]: ***
[CMakeFiles/Makefile2:205:src/tbbmalloc/CMakeFiles/tbbmalloc.dir/all]
错误 2

make: *** [Makefile:152:all] 错误 2

How can I solve this problem?

Misleading prints in interface

Setting verbosity to 3 (e.g. normal level), Papilo's command line output seems to suggest e.g. the following;

round 2 is FAST
round 3 is EXHAUSTIVE

e.g. that it did not perform a search for MEDIUM; however, in fact, it did another FAST and MEDIUM round in between, which both did not find any reductions. Only the rounds where reductions are found are printed, which can be quite misleading, as there are therefore much more rounds being done than there are being printed.

Potential segfault from out-of-bounds access

I am seeing segfaults while running the papilo 2.2.0 testsuite on some architectures. The segfault is repeatable on s390x. Valgrind shows an out-of-bounds array access on all architectures, although it doesn't necessarily lead to a segfault:

$ valgrind --leak-check=no --enable-debuginfod=yes --read-inline-info=yes --read-var-info=yes --track-origins=yes bin/papilo solve -a r -f /builddir/build/BUILD/papilo-2.2.0/check/instances/MIP/gt2.mps -o 21166 -p /builddir/build/BUILD/papilo-2.2.0/settings/default.set
==145== Memcheck, a memory error detector
==145== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==145== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==145== Command: bin/papilo solve -a r -f /builddir/build/BUILD/papilo-2.2.0/check/instances/MIP/gt2.mps -o 21166 -p /builddir/build/BUILD/papilo-2.2.0/settings/default.set
==145== 

PaPILO version 2.2.0 [mode: optimized][Solvers: SCIP,SoPlex][GitHash: ]
Copyright (C) 2020-2023 Zuse Institute Berlin (ZIB)

External libraries: 
  Boost    1.83.0 	 (https://www.boost.org/)
  TBB            	 Thread building block https://github.com/oneapi-src/oneTBB developed by Intel
  GMP      6.3.0  	 GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
  SCIP     9.0.0 	 Mixed Integer Programming Solver developed at Zuse Institute Berlin (scip.zib.de) [GitHash: NoGitInfo]
  SoPlex   7.0.0 	 Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: NoGitInfo]

reading took 2.72 seconds
Numerical Statistics:
 Matrix range    [1e+00,3e+03]
 Objective range [1e+03,8e+03]
 Bounds range    [1e+00,2e+01]
 RHS range       [1e+00,6e+03]
 Dynamism Variables: 3e+03
 Dynamism Rows     : 2e+02

starting presolve of problem /builddir/build/BUILD/papilo-2.2.0/check/instances/MIP/gt2.mps:
  rows:     29
  columns:  188
  int. columns:  188
  cont. columns:  0
  nonzeros: 376

round 0   ( Trivial  ):    0 del cols,    1 del rows,    0 chg bounds,    0 chg sides,    0 chg coeffs,    0 tsx applied,    0 tsx conflicts
round 1   (   Fast   ):   15 del cols,    1 del rows,   16 chg bounds,    0 chg sides,   10 chg coeffs,   27 tsx applied,    0 tsx conflicts
round 2   (   Fast   ):   15 del cols,    1 del rows,   26 chg bounds,    1 chg sides,   11 chg coeffs,   48 tsx applied,    0 tsx conflicts
==145== Invalid read of size 8
==145==    at 0x48BAFA6: boost::multiprecision::backends::gmp_rational::gmp_rational(boost::multiprecision::backends::gmp_rational const&) (gmp.hpp:2387)
==145==    by 0x4A071EE: UnknownInlinedFun (number.hpp:54)
==145==    by 0x4A071EE: papilo::ParallelColDetection<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::execute(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::ProblemUpdate<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Num<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Reductions<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, papilo::Timer const&, int&)::{lambda(int, int)#1}::operator()(int, int) const (ParallelColDetection.hpp:595)
==145==    by 0x4A07848: UnknownInlinedFun (pdqsort.h:152)
==145==    by 0x4A07848: UnknownInlinedFun (pdqsort.h:158)
==145==    by 0x4A07848: void pdqsort_detail::pdqsort_loop<int*, papilo::ParallelColDetection<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::execute(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::ProblemUpdate<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Num<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Reductions<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, papilo::Timer const&, int&)::{lambda(int, int)#1}, false>(int*, int*, papilo::ParallelColDetection<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::execute(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::ProblemUpdate<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Num<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Reductions<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, papilo::Timer const&, int&)::{lambda(int, int)#1}, int, bool) (pdqsort.h:420)
==145==    by 0x4A0875A: UnknownInlinedFun (pdqsort.h:502)
==145==    by 0x4A0875A: papilo::ParallelColDetection<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::execute(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::ProblemUpdate<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Num<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, papilo::Reductions<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, papilo::Timer const&, int&) (ParallelColDetection.hpp:575)
==145==    by 0x494EC94: UnknownInlinedFun (PresolveMethod.hpp:167)
==145==    by 0x494EC94: UnknownInlinedFun (Presolve.hpp:1028)
==145==    by 0x494EC94: UnknownInlinedFun (_utils.h:362)
==145==    by 0x494EC94: UnknownInlinedFun (parallel_for.h:117)
==145==    by 0x494EC94: UnknownInlinedFun (partitioner.h:513)
==145==    by 0x494EC94: tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<int>, papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::run_presolvers(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, std::pair<int, int> const&, papilo::ProblemUpdate<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, bool&, papilo::Timer const&)::{lambda(tbb::detail::d1::blocked_range<int> const&)#1}, tbb::detail::d1::simple_partitioner const>::execute(tbb::detail::d1::execution_data&) (parallel_for.h:170)
==145==    by 0x6374A8A: UnknownInlinedFun (task_dispatcher.h:323)
==145==    by 0x6374A8A: UnknownInlinedFun (task_dispatcher.h:459)
==145==    by 0x6374A8A: tbb::detail::r1::task_dispatcher::execute_and_wait(tbb::detail::d1::task*, tbb::detail::d1::wait_context&, tbb::detail::d1::task_group_context&) (task_dispatcher.cpp:168)
==145==    by 0x49371EA: papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::run_presolvers(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > const&, std::pair<int, int> const&, papilo::ProblemUpdate<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, bool&, papilo::Timer const&) (_task.h:191)
==145==    by 0x49433FD: papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::apply(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, bool)::{lambda()#1}::operator()() const (Presolve.hpp:557)
==145==    by 0x494E8D8: tbb::detail::d1::task_arena_function<papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::apply(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, bool)::{lambda()#1}, papilo::PresolveResult<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > >::operator()() const (task_arena.h:47)
==145==    by 0x636056D: tbb::detail::r1::task_arena_impl::execute(tbb::detail::d1::task_arena_base&, tbb::detail::d1::delegate_base&) (arena.cpp:796)
==145==    by 0x4A780BA: papilo::PresolveResult<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > tbb::detail::d1::task_arena::execute_impl<papilo::PresolveResult<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >, papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::apply(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, bool)::{lambda()#1}>(papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::apply(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, bool)::{lambda()#1}&) [clone .constprop.0] (task_arena.h:251)
==145==    by 0x4933DC9: UnknownInlinedFun (task_arena.h:404)
==145==    by 0x4933DC9: papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >::apply(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> >&, bool) (Presolve.hpp:979)
==145==  Address 0x751f758 is 8 bytes after a block of size 48,128 alloc'd
==145==    at 0x4842F95: operator new(unsigned long) (vg_replace_malloc.c:483)
==145==    by 0x33AEE4: UnknownInlinedFun (new_allocator.h:151)
==145==    by 0x33AEE4: UnknownInlinedFun (alloc_traits.h:475)
==145==    by 0x33AEE4: UnknownInlinedFun (stl_vector.h:377)
==145==    by 0x33AEE4: UnknownInlinedFun (stl_vector.h:1618)
==145==    by 0x33AEE4: std::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > >::operator=(std::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1> > > const&) [clone .isra.0] (vector.tcc:238)
==145==    by 0x154FCA: UnknownInlinedFun (SparseStorage.hpp:67)
==145==    by 0x154FCA: UnknownInlinedFun (ConstraintMatrix.hpp:139)
==145==    by 0x154FCA: UnknownInlinedFun (Problem.hpp:64)
==145==    by 0x154FCA: UnknownInlinedFun (Wrappers.hpp:84)
==145==    by 0x154FCA: main (papilo.cpp:216)

(followed by a few more with the same stacktraces).

Performance regression from Papilo 2.1 to Papilo 2.3

I recently performed some tests for Presolving on SCIP's master branch and observed a significant performance regression for Papilo from 2.1 to 2.3. In general, the Papilo plugin seems to be anywhere between 40 to 100% slower without finding many new reductions. I checked and SCIP does indeed spend this time in Papilo, so the issue lies within Papilo.

Below is an example for the relatively large instance proteindesign121pgb11p9, where Papilo 2.1 takes 45 seconds but Papilo 2.3 takes 125 seconds.

Papilo 2.1:

SCIP version 10.0.0 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: Soplex 8.0.0] [GitHash: 80296625c3]
Copyright (c) 2002-2024 Zuse Institute Berlin (ZIB)
External libraries: 
  Readline 8.1         GNU library for command line editing (gnu.org/s/readline)
  Soplex 8.0.0         Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: bd56f573]
  CppAD 20180000.0     Algorithmic Differentiation of C++ algorithms developed by B. Bell (github.com/coin-or/CppAD)
  ZLIB 1.2.11          General purpose compression library by J. Gailly and M. Adler (zlib.net)
  TinyCThread 1.2      small portable implementation of the C11 threads API (tinycthread.github.io)
  GMP 6.2.1            GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
  ZIMPL 3.5.3          Zuse Institute Mathematical Programming Language developed by T. Koch (zimpl.zib.de)
  AMPL/MP 690e9e7      AMPL .nl file reader library (github.com/ampl/mp)
  PaPILO 2.1.1         parallel presolve for integer and linear optimization (github.com/scipopt/papilo) (built with TBB) [GitHash: 01fada2]
  Nauty 2.8.8          Computing Graph Automorphism Groups by Brendan D. McKay (users.cecs.anu.edu.au/~bdm/nauty)
  sassy 1.1            Symmetry preprocessor by Markus Anders (github.com/markusa4/sassy)
  Ipopt 3.14.11        Interior Point Optimizer developed by A. Waechter et.al. (github.com/coin-or/Ipopt)
original problem has 132672 variables (132594 bin, 78 int, 0 impl, 0 cont) and 254 constraints
    254 constraints of type <linear>
Reading Time: 0.21
LP Solver <Soplex 8.0.0>: barrier convergence tolerance cannot be set -- tolerance of SCIP and LP solver may differ
LP Solver <Soplex 8.0.0>: fastmip setting not available -- SCIP parameter has no effect
LP Solver <Soplex 8.0.0>: number of threads settings not available -- SCIP parameter has no effect
transformed problem has 132672 variables (132594 bin, 78 int, 0 impl, 0 cont) and 254 constraints
    254 constraints of type <linear>

original problem has 524690 active (1.557%) nonzeros and 524690 (1.557%) check nonzeros

presolving:
(round 1, fast)       1 del vars, 0 del conss, 98 add conss, 0 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 187 impls, 2358 clqs
(round 2, fast)       1 del vars, 0 del conss, 98 add conss, 0 chg bounds, 90107 chg sides, 104416 chg coeffs, 0 upgd conss, 187 impls, 2358 clqs
   (7.8s) running MILP presolver
   (53.6s) MILP presolver (5 rounds): 2 aggregations, 50153 fixings, 64 bound changes
(round 3, medium)     50156 del vars, 254 del conss, 350 add conss, 64 chg bounds, 90107 chg sides, 104416 chg coeffs, 0 upgd conss, 187 impls, 297 clqs
(round 4, fast)       50165 del vars, 303 del conss, 445 add conss, 64 chg bounds, 90145 chg sides, 133992 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 5, fast)       50165 del vars, 309 del conss, 445 add conss, 64 chg bounds, 142048 chg sides, 194622 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 6, exhaustive) 50165 del vars, 387 del conss, 445 add conss, 64 chg bounds, 142116 chg sides, 194622 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 7, fast)       50165 del vars, 387 del conss, 446 add conss, 64 chg bounds, 142116 chg sides, 194622 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 8, fast)       50165 del vars, 387 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 194623 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 9, exhaustive) 50165 del vars, 388 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 194623 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 10, exhaustive) 50165 del vars, 388 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 194623 chg coeffs, 67 upgd conss, 227 impls, 3085 clqs
   (56.1s) sparsify aborted: 14974/325192 (4.6%) nonzeros canceled - in total 14974 canceled nonzeros, 15682 changed coefficients, 0 added nonzeros
(round 11, exhaustive) 50165 del vars, 388 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 210305 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 12, fast)       50171 del vars, 394 del conss, 450 add conss, 78 chg bounds, 142117 chg sides, 210305 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 13, fast)       50171 del vars, 400 del conss, 450 add conss, 78 chg bounds, 142308 chg sides, 210496 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 14, medium)     50179 del vars, 400 del conss, 450 add conss, 78 chg bounds, 142316 chg sides, 210504 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 15, fast)       50179 del vars, 400 del conss, 450 add conss, 78 chg bounds, 142316 chg sides, 212261 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 16, exhaustive) 50179 del vars, 401 del conss, 450 add conss, 78 chg bounds, 142317 chg sides, 212261 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
   (58.5s) probing: 100/82433 (0.1%) - 0 fixings, 0 aggregations, 2314814 implications, 0 bound changes
   (60.7s) probing: 200/82433 (0.2%) - 0 fixings, 0 aggregations, 4661844 implications, 0 bound changes
   (62.9s) probing: 300/82433 (0.4%) - 0 fixings, 0 aggregations, 6952610 implications, 0 bound changes
   (65.2s) probing: 400/82433 (0.5%) - 0 fixings, 0 aggregations, 9318092 implications, 0 bound changes
   (67.4s) probing: 500/82433 (0.6%) - 0 fixings, 0 aggregations, 11665774 implications, 0 bound changes
   (69.7s) probing: 600/82433 (0.7%) - 0 fixings, 0 aggregations, 14080957 implications, 0 bound changes
   (72.0s) probing: 700/82433 (0.8%) - 0 fixings, 0 aggregations, 16425770 implications, 0 bound changes
   (74.0s) probing: 800/82433 (1.0%) - 0 fixings, 0 aggregations, 18390246 implications, 0 bound changes
   (76.0s) probing: 900/82433 (1.1%) - 0 fixings, 0 aggregations, 20195635 implications, 0 bound changes
   (77.8s) probing: 1000/82433 (1.2%) - 0 fixings, 0 aggregations, 21772901 implications, 0 bound changes
   (77.8s) probing: 1001/82433 (1.2%) - 0 fixings, 0 aggregations, 21783968 implications, 0 bound changes
   (77.8s) probing aborted: 1000/1000 successive useless probings
   (77.9s) symmetry computation started: requiring (bin +, int +, cont +), (fixed: bin -, int -, cont -)
   (77.9s) no symmetry present (symcode time: 0.01)
clique table cleanup detected 0 bound changes

presolved problem has 388294 active (1.55346%) nonzeros and 310198 (1.24102%) check nonzeros

presolving (17 rounds: 17 fast, 8 medium, 6 exhaustive):
 50179 deleted vars, 401 deleted constraints, 450 added constraints, 78 tightened bounds, 0 added holes, 142317 changed sides, 212261 changed coefficients
 17456 implications, 3086 cliques
presolved problem has 82493 variables (82433 bin, 12 int, 48 impl, 0 cont) and 303 constraints
     66 constraints of type <setppc>
    237 constraints of type <linear>
transformed objective value is always integral (scale: 1)
Presolving Time: 77.88
SCIP Status        : problem is presolved
Total Time         :      78.18
  solving          :      77.97
  presolving       :      77.88 (included in solving)
  reading          :       0.21
  copying          :       0.00 (0 times copied the problem)
Original Problem   :
  Problem name     : proteindesign121pgb11p9
  Variables        : 132672 (132594 binary, 78 integer, 0 implicit integer, 0 continuous)
  Constraints      : 254 initial, 254 maximal
  Objective        : minimize, 1 non-zeros (abs.min = 1, abs.max = 1)
Presolved Problem  :
  Problem name     : t_proteindesign121pgb11p9
  Variables        : 82493 (82433 binary, 12 integer, 48 implicit integer, 0 continuous)
  Constraints      : 303 initial, 303 maximal
  Objective        : minimize, 678 non-zeros (abs.min = 1, abs.max = 1104)
  Nonzeros         : 388294 constraint, 1049380 clique table
Presolvers         :   ExecTime  SetupTime  Calls  FixedVars   AggrVars   ChgTypes  ChgBounds   AddHoles    DelCons    AddCons   ChgSides   ChgCoefs
  boundshift       :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  convertinttobin  :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  domcol           :       0.07       0.00      2          0          0          0          0          0          0          0          0          0
  dualagg          :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualcomp         :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualinfer        :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualsparsify     :       0.05       0.00      1          0          0          0          0          0          0          0          0          0
  gateextraction   :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  implics          :       0.01       0.00      8          0          0          0          0          0          0          0          0          0
  inttobinary      :       0.00       0.00     17          0          0          0          0          0          0          0          0          0
  milp             :      45.87       0.00      1      50153          2          0         64          0        254        252          0          0
  qpkktref         :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  redvub           :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  sparsify         :       0.17       0.00      2          0          0          0          0          0          0          0          0      15682
  stuffing         :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  trivial          :       0.05       0.00     17          0          0          0          0          0          0          0          0          0
  tworowbnd        :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualfix          :       0.04       0.00     17          0          0          0          0          0          0          0          0          0
  genvbounds       :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  probing          :      21.56       0.00      1          0          0          0          0          0          0          0          0          0
  pseudoobj        :       0.00       0.00      1          0          0          0          0          0          0          0          0          0
  symmetry         :       0.06       0.00      1          0          0          0          0          0          0          0          0          0
  vbounds          :       0.20       0.00      2          0          0          0          0          0          0          0          0          0
  varbound         :       0.00       0.00      4          0          0          0          0          0          1          0          0          0
  setppc           :       0.06       0.00     14          0          8          0          0          0          0          0          8          8
  linear           :       9.67       0.02     23          1         15          0         14          0        146        198     142309     196571
  benders          :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  components       :       0.04       0.00      1          0          0          0          0          0          0          0          0          0
  root node        :          -          -      -          0          -          -          0          -          -          -          -          -
Constraints        :     Number  MaxNumber  #Separate #Propagate    #EnfoLP    #EnfoRelax  #EnfoPS    #Check   #ResProp    Cutoffs    DomReds       Cuts    Applied      Conss   Children
  benderslp        :          0          0          0          0          0          0          0          3          0          0          0          0          0          0          0
  integral         :          0          0          0          0          0          0          0          3          0          0          0          0          0          0          0
  setppc           :         66         66          0       4999          0          0          0          0          0          0          0          0          0          0          0
  linear           :        237        237          0       4999          0          0          0          3          0          0          0          0          0          0          0
  benders          :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
  fixedvar         :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
  countsols        :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
  components       :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
Constraint Timings :  TotalTime  SetupTime   Separate  Propagate     EnfoLP     EnfoPS     EnfoRelax   Check    ResProp    SB-Prop
  benderslp        :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  integral         :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  setppc           :       0.44       0.00       0.00       0.44       0.00       0.00       0.00       0.00       0.00       0.00
  linear           :       8.39       0.02       0.00       8.37       0.00       0.00       0.00       0.00       0.00       0.00
  benders          :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  fixedvar         :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  countsols        :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  components       :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
Propagators        : #Propagate   #ResProp    Cutoffs    DomReds
  dualfix          :          0          0          0          0
  genvbounds       :          0          0          0          0
  nlobbt           :          0          0          0          0
  obbt             :          0          0          0          0
  probing          :          0          0          0          0
  pseudoobj        :          0          0          0          0
  redcost          :          0          0          0          0
  rootredcost      :          0          0          0          0
  symmetry         :          0          0          0          0
  vbounds          :          0          0          0          0
Propagator Timings :  TotalTime  SetupTime   Presolve  Propagate    ResProp    SB-Prop
  dualfix          :       0.04       0.00       0.04       0.00       0.00       0.00
  genvbounds       :       0.00       0.00       0.00       0.00       0.00       0.00
  nlobbt           :       0.00       0.00       0.00       0.00       0.00       0.00
  obbt             :       0.00       0.00       0.00       0.00       0.00       0.00
  probing          :      21.56       0.00      21.56       0.00       0.00       0.00
  pseudoobj        :       0.00       0.00       0.00       0.00       0.00       0.00
  redcost          :       0.00       0.00       0.00       0.00       0.00       0.00
  rootredcost      :       0.00       0.00       0.00       0.00       0.00       0.00
  symmetry         :       0.06       0.00       0.06       0.00       0.00       0.00
  vbounds          :       0.20       0.00       0.20       0.00       0.00       0.00
Conflict Analysis  :       Time      Calls    Success    DomReds  Conflicts   Literals    Reconvs ReconvLits   Dualrays   Nonzeros   LP Iters   (pool size: [--,--])
  propagation      :       0.00          0          0          -          0        0.0          0        0.0          -          -          -
  infeasible LP    :       0.00          0          0          -          0        0.0          0        0.0          0        0.0          0
  bound exceed. LP :       0.00          0          0          -          0        0.0          0        0.0          0        0.0          0
  strong branching :       0.00          0          0          -          0        0.0          0        0.0          -          -          0
  pseudo solution  :       0.00          0          0          -          0        0.0          0        0.0          -          -          -
  applied globally :       0.00          -          -          0          0        0.0          -          -          0          -          -
  applied locally  :          -          -          -          0          0        0.0          -          -          0          -          -
Primal Heuristics  :   ExecTime  SetupTime      Calls      Found       Best
  LP solutions     :       0.00          -          -          0          0
  relax solutions  :       0.00          -          -          0          0
  pseudo solutions :       0.00          -          -          0          0
  strong branching :       0.00          -          -          0          0
  actconsdiving    :       0.00       0.00          0          0          0
  adaptivediving   :       0.00       0.00          0          0          0
  alns             :       0.00       0.00          0          0          0
  bound            :       0.00       0.00          0          0          0
  clique           :       0.00       0.00          0          0          0
  coefdiving       :       0.00       0.00          0          0          0
  completesol      :       0.00       0.00          0          0          0
  conflictdiving   :       0.00       0.00          0          0          0
  crossover        :       0.00       0.00          0          0          0
  dins             :       0.00       0.00          0          0          0
  distributiondivin:       0.00       0.00          0          0          0
  dps              :       0.00       0.00          0          0          0
  dualval          :       0.00       0.00          0          0          0
  farkasdiving     :       0.00       0.00          0          0          0
  feaspump         :       0.00       0.00          0          0          0
  fixandinfer      :       0.00       0.00          0          0          0
  fracdiving       :       0.00       0.00          0          0          0
  gins             :       0.00       0.00          0          0          0
  guideddiving     :       0.00       0.00          0          0          0
  indicator        :       0.00       0.00          0          0          0
  indicatordiving  :       0.00       0.00          0          0          0
  intdiving        :       0.00       0.00          0          0          0
  intshifting      :       0.00       0.00          0          0          0
  linesearchdiving :       0.00       0.00          0          0          0
  localbranching   :       0.00       0.00          0          0          0
  locks            :       0.00       0.00          0          0          0
  lpface           :       0.00       0.00          0          0          0
  mpec             :       0.00       0.00          0          0          0
  multistart       :       0.00       0.00          0          0          0
  mutation         :       0.00       0.00          0          0          0
  nlpdiving        :       0.00       0.00          0          0          0
  objpscostdiving  :       0.00       0.00          0          0          0
  octane           :       0.00       0.00          0          0          0
  ofins            :       0.00       0.00          0          0          0
  oneopt           :       0.00       0.00          0          0          0
  padm             :       0.00       0.00          0          0          0
  proximity        :       0.00       0.00          0          0          0
  pscostdiving     :       0.00       0.00          0          0          0
  randrounding     :       0.00       0.00          0          0          0
  rens             :       0.00       0.00          0          0          0
  reoptsols        :       0.00       0.00          0          0          0
  repair           :       0.00       0.00          0          0          0
  rins             :       0.00       0.00          0          0          0
  rootsoldiving    :       0.00       0.00          0          0          0
  rounding         :       0.00       0.00          0          0          0
  scheduler        :       0.00       0.00          0          0          0
  shiftandpropagate:       0.00       0.00          0          0          0
  shifting         :       0.00       0.00          0          0          0
  simplerounding   :       0.00       0.00          0          0          0
  subnlp           :       0.00       0.00          0          0          0
  trivial          :       0.01       0.00          1          0          0
  trivialnegation  :       0.00       0.00          0          0          0
  trustregion      :       0.00       0.00          0          0          0
  trysol           :       0.00       0.00          0          0          0
  twoopt           :       0.00       0.00          0          0          0
  undercover       :       0.00       0.00          0          0          0
  vbounds          :       0.00       0.00          0          0          0
  veclendiving     :       0.00       0.00          0          0          0
  zeroobj          :       0.00       0.00          0          0          0
  zirounding       :       0.00       0.00          0          0          0
  other solutions  :          -          -          -          0          -
LNS (Scheduler)    :      Calls  SetupTime  SolveTime SolveNodes       Sols       Best       Exp3    Exp3-IX  EpsGreedy        UCB TgtFixRate  Opt  Inf Node Stal  Sol  Usr Othr Actv
  rens             :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  rins             :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  mutation         :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  localbranching   :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  crossover        :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  proximity        :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  zeroobjective    :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  dins             :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  trustregion      :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
Solution           :
  Solutions found  :          0 (0 improvements)
  Primal Bound     :          -
  Dual Bound       : +0.00000000000000e+00
  Gap              :   infinite
Integrals          :      Total       Avg%
  primal-dual      :    7797.00     100.00
  primal-ref       :          -          - (not evaluated)
  dual-ref         :          -          - (not evaluated) SCIP, and observed a significant performance regression from Papilo 2.1 to Papilo 2.3.

Papilo 2.3:

SCIP version 10.0.0 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: Soplex 8.0.0] [GitHash: 051425989d]
Copyright (c) 2002-2024 Zuse Institute Berlin (ZIB)

External libraries: 
  Readline 8.1         GNU library for command line editing (gnu.org/s/readline)
  Soplex 8.0.0         Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: bd56f573]
  CppAD 20180000.0     Algorithmic Differentiation of C++ algorithms developed by B. Bell (github.com/coin-or/CppAD)
  ZLIB 1.2.11          General purpose compression library by J. Gailly and M. Adler (zlib.net)
  TinyCThread 1.2      small portable implementation of the C11 threads API (tinycthread.github.io)
  GMP 6.2.1            GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
  ZIMPL 3.5.3          Zuse Institute Mathematical Programming Language developed by T. Koch (zimpl.zib.de)
  AMPL/MP 690e9e7      AMPL .nl file reader library (github.com/ampl/mp)
  PaPILO 2.3.1         parallel presolve for integer and linear optimization (github.com/scipopt/papilo) (built with TBB) [GitHash: a0b3f4e1]
  Nauty 2.8.8          Computing Graph Automorphism Groups by Brendan D. McKay (users.cecs.anu.edu.au/~bdm/nauty)
  sassy 1.1            Symmetry preprocessor by Markus Anders (github.com/markusa4/sassy)
  Ipopt 3.14.11        Interior Point Optimizer developed by A. Waechter et.al. (github.com/coin-or/Ipopt)

user parameter file <scip.set> not found - using default parameters

SCIP> read /home/rolf/phd/data/collection/proteindesign121pgb11p9.mps.gz 

read problem </home/rolf/phd/data/collection/proteindesign121pgb11p9.mps.gz>
============

original problem has 132672 variables (132594 bin, 78 int, 0 impl, 0 cont) and 254 constraints
SCIP> presolve

presolving:
(round 1, fast)       1 del vars, 0 del conss, 98 add conss, 0 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 187 impls, 2358 clqs
(round 2, fast)       1 del vars, 0 del conss, 98 add conss, 0 chg bounds, 90107 chg sides, 104416 chg coeffs, 0 upgd conss, 187 impls, 2358 clqs
   (7.8s) running MILP presolver
   (133.2s) MILP presolver (5 rounds): 2 aggregations, 50153 fixings, 64 bound changes
(round 3, medium)     50156 del vars, 254 del conss, 350 add conss, 64 chg bounds, 90107 chg sides, 104416 chg coeffs, 0 upgd conss, 187 impls, 297 clqs
(round 4, fast)       50165 del vars, 303 del conss, 445 add conss, 64 chg bounds, 90145 chg sides, 133992 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 5, fast)       50165 del vars, 309 del conss, 445 add conss, 64 chg bounds, 142048 chg sides, 194622 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 6, exhaustive) 50165 del vars, 387 del conss, 445 add conss, 64 chg bounds, 142116 chg sides, 194622 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 7, fast)       50165 del vars, 387 del conss, 446 add conss, 64 chg bounds, 142116 chg sides, 194622 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 8, fast)       50165 del vars, 387 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 194623 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 9, exhaustive) 50165 del vars, 388 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 194623 chg coeffs, 0 upgd conss, 227 impls, 3085 clqs
(round 10, exhaustive) 50165 del vars, 388 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 194623 chg coeffs, 67 upgd conss, 227 impls, 3085 clqs
   (136.0s) sparsify aborted: 14974/325192 (4.6%) nonzeros canceled - in total 14974 canceled nonzeros, 15682 changed coefficients, 0 added nonzeros
(round 11, exhaustive) 50165 del vars, 388 del conss, 446 add conss, 64 chg bounds, 142117 chg sides, 210305 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 12, fast)       50171 del vars, 394 del conss, 450 add conss, 78 chg bounds, 142117 chg sides, 210305 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 13, fast)       50171 del vars, 400 del conss, 450 add conss, 78 chg bounds, 142308 chg sides, 210496 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 14, medium)     50179 del vars, 400 del conss, 450 add conss, 78 chg bounds, 142316 chg sides, 210504 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 15, fast)       50179 del vars, 400 del conss, 450 add conss, 78 chg bounds, 142316 chg sides, 212261 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
(round 16, exhaustive) 50179 del vars, 401 del conss, 450 add conss, 78 chg bounds, 142317 chg sides, 212261 chg coeffs, 67 upgd conss, 229 impls, 3085 clqs
   (166.9s) probing: 1000/82433 (1.2%) - 0 fixings, 0 aggregations, 21786924 implications, 0 bound changes
   (166.9s) probing: 1001/82433 (1.2%) - 0 fixings, 0 aggregations, 21800269 implications, 0 bound changes
   (166.9s) probing aborted: 1000/1000 successive useless probings
   (167.0s) symmetry computation started: requiring (bin +, int +, cont +), (fixed: bin -, int -, cont -)
   (167.1s) no symmetry present (symcode time: 0.01)
presolving (17 rounds: 17 fast, 8 medium, 6 exhaustive):
 50179 deleted vars, 401 deleted constraints, 450 added constraints, 78 tightened bounds, 0 added holes, 142317 changed sides, 212261 changed coefficients
 17473 implications, 3086 cliques
presolved problem has 82493 variables (82433 bin, 12 int, 48 impl, 0 cont) and 303 constraints
     66 constraints of type <setppc>
    237 constraints of type <linear>
transformed objective value is always integral (scale: 1)
Presolving Time: 166.97

SCIP> display statistics

SCIP Status        : problem is presolved
Total Time         :     167.40
  solving          :     167.14
  presolving       :     166.97 (included in solving)
  reading          :       0.26
  copying          :       0.00 (0 times copied the problem)
Original Problem   :
  Problem name     : proteindesign121pgb11p9
  Variables        : 132672 (132594 binary, 78 integer, 0 implicit integer, 0 continuous)
  Constraints      : 254 initial, 254 maximal
  Objective        : minimize, 1 non-zeros (abs.min = 1, abs.max = 1)
Presolved Problem  :
  Problem name     : t_proteindesign121pgb11p9
  Variables        : 82493 (82433 binary, 12 integer, 48 implicit integer, 0 continuous)
  Constraints      : 303 initial, 303 maximal
  Objective        : minimize, 678 non-zeros (abs.min = 1, abs.max = 1104)
  Nonzeros         : 388294 constraint, 1049380 clique table
Presolvers         :   ExecTime  SetupTime  Calls  FixedVars   AggrVars   ChgTypes  ChgBounds   AddHoles    DelCons    AddCons   ChgSides   ChgCoefs
  boundshift       :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  convertinttobin  :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  domcol           :       0.10       0.00      2          0          0          0          0          0          0          0          0          0
  dualagg          :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualcomp         :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualinfer        :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualsparsify     :       0.08       0.00      1          0          0          0          0          0          0          0          0          0
  gateextraction   :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  implics          :       0.02       0.00      8          0          0          0          0          0          0          0          0          0
  inttobinary      :       0.00       0.00     17          0          0          0          0          0          0          0          0          0
  milp             :     125.55       0.00      1      50153          2          0         64          0        254        252          0          0
  qpkktref         :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  redvub           :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  sparsify         :       0.22       0.00      2          0          0          0          0          0          0          0          0      15682
  stuffing         :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  trivial          :       0.09       0.00     17          0          0          0          0          0          0          0          0          0
  tworowbnd        :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  dualfix          :       0.06       0.00     17          0          0          0          0          0          0          0          0          0
  genvbounds       :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  probing          :      30.61       0.00      1          0          0          0          0          0          0          0          0          0
  pseudoobj        :       0.00       0.00      1          0          0          0          0          0          0          0          0          0
  symmetry         :       0.09       0.00      1          0          0          0          0          0          0          0          0          0
  vbounds          :       0.22       0.00      2          0          0          0          0          0          0          0          0          0
  varbound         :       0.00       0.00      4          0          0          0          0          0          1          0          0          0
  setppc           :       0.09       0.00     14          0          8          0          0          0          0          0          8          8
  linear           :       9.74       0.03     23          1         15          0         14          0        146        198     142309     196571
  benders          :       0.00       0.00      0          0          0          0          0          0          0          0          0          0
  components       :       0.05       0.00      1          0          0          0          0          0          0          0          0          0
  root node        :          -          -      -          0          -          -          0          -          -          -          -          -
Constraints        :     Number  MaxNumber  #Separate #Propagate    #EnfoLP    #EnfoRelax  #EnfoPS    #Check   #ResProp    Cutoffs    DomReds       Cuts    Applied      Conss   Children
  benderslp        :          0          0          0          0          0          0          0          3          0          0          0          0          0          0          0
  integral         :          0          0          0          0          0          0          0          3          0          0          0          0          0          0          0
  setppc           :         66         66          0       4998          0          0          0          0          0          0          0          0          0          0          0
  linear           :        237        237          0       4998          0          0          0          3          0          0          0          0          0          0          0
  benders          :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
  fixedvar         :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
  countsols        :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
  components       :          0          0          0          0          0          0          0          0          0          0          0          0          0          0          0
Constraint Timings :  TotalTime  SetupTime   Separate  Propagate     EnfoLP     EnfoPS     EnfoRelax   Check    ResProp    SB-Prop
  benderslp        :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  integral         :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  setppc           :       0.57       0.00       0.00       0.57       0.00       0.00       0.00       0.00       0.00       0.00
  linear           :      11.44       0.03       0.00      11.41       0.00       0.00       0.00       0.00       0.00       0.00
  benders          :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  fixedvar         :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  countsols        :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
  components       :       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00
Propagators        : #Propagate   #ResProp    Cutoffs    DomReds
  dualfix          :          0          0          0          0
  genvbounds       :          0          0          0          0
  nlobbt           :          0          0          0          0
  obbt             :          0          0          0          0
  probing          :          0          0          0          0
  pseudoobj        :          0          0          0          0
  redcost          :          0          0          0          0
  rootredcost      :          0          0          0          0
  symmetry         :          0          0          0          0
  vbounds          :          0          0          0          0
Propagator Timings :  TotalTime  SetupTime   Presolve  Propagate    ResProp    SB-Prop
  dualfix          :       0.06       0.00       0.06       0.00       0.00       0.00
  genvbounds       :       0.00       0.00       0.00       0.00       0.00       0.00
  nlobbt           :       0.00       0.00       0.00       0.00       0.00       0.00
  obbt             :       0.00       0.00       0.00       0.00       0.00       0.00
  probing          :      30.61       0.00      30.61       0.00       0.00       0.00
  pseudoobj        :       0.00       0.00       0.00       0.00       0.00       0.00
  redcost          :       0.00       0.00       0.00       0.00       0.00       0.00
  rootredcost      :       0.00       0.00       0.00       0.00       0.00       0.00
  symmetry         :       0.09       0.00       0.09       0.00       0.00       0.00
  vbounds          :       0.22       0.00       0.22       0.00       0.00       0.00
Conflict Analysis  :       Time      Calls    Success    DomReds  Conflicts   Literals    Reconvs ReconvLits   Dualrays   Nonzeros   LP Iters   (pool size: [--,--])
  propagation      :       0.00          0          0          -          0        0.0          0        0.0          -          -          -
  infeasible LP    :       0.00          0          0          -          0        0.0          0        0.0          0        0.0          0
  bound exceed. LP :       0.00          0          0          -          0        0.0          0        0.0          0        0.0          0
  strong branching :       0.00          0          0          -          0        0.0          0        0.0          -          -          0
  pseudo solution  :       0.00          0          0          -          0        0.0          0        0.0          -          -          -
  applied globally :       0.00          -          -          0          0        0.0          -          -          0          -          -
  applied locally  :          -          -          -          0          0        0.0          -          -          0          -          -
Primal Heuristics  :   ExecTime  SetupTime      Calls      Found       Best
  LP solutions     :       0.00          -          -          0          0
  relax solutions  :       0.00          -          -          0          0
  pseudo solutions :       0.00          -          -          0          0
  strong branching :       0.00          -          -          0          0
  actconsdiving    :       0.00       0.00          0          0          0
  adaptivediving   :       0.00       0.00          0          0          0
  alns             :       0.00       0.00          0          0          0
  bound            :       0.00       0.00          0          0          0
  clique           :       0.00       0.00          0          0          0
  coefdiving       :       0.00       0.00          0          0          0
  completesol      :       0.00       0.00          0          0          0
  conflictdiving   :       0.00       0.00          0          0          0
  crossover        :       0.00       0.00          0          0          0
  dins             :       0.00       0.00          0          0          0
  distributiondivin:       0.00       0.00          0          0          0
  dps              :       0.00       0.00          0          0          0
  dualval          :       0.00       0.00          0          0          0
  farkasdiving     :       0.00       0.00          0          0          0
  feaspump         :       0.00       0.00          0          0          0
  fixandinfer      :       0.00       0.00          0          0          0
  fracdiving       :       0.00       0.00          0          0          0
  gins             :       0.00       0.00          0          0          0
  guideddiving     :       0.00       0.00          0          0          0
  indicator        :       0.00       0.00          0          0          0
  indicatordiving  :       0.00       0.00          0          0          0
  intdiving        :       0.00       0.00          0          0          0
  intshifting      :       0.00       0.00          0          0          0
  linesearchdiving :       0.00       0.00          0          0          0
  localbranching   :       0.00       0.00          0          0          0
  locks            :       0.00       0.00          0          0          0
  lpface           :       0.00       0.00          0          0          0
  mpec             :       0.00       0.00          0          0          0
  multistart       :       0.00       0.00          0          0          0
  mutation         :       0.00       0.00          0          0          0
  nlpdiving        :       0.00       0.00          0          0          0
  objpscostdiving  :       0.00       0.00          0          0          0
  octane           :       0.00       0.00          0          0          0
  ofins            :       0.00       0.00          0          0          0
  oneopt           :       0.00       0.00          0          0          0
  padm             :       0.00       0.00          0          0          0
  proximity        :       0.00       0.00          0          0          0
  pscostdiving     :       0.00       0.00          0          0          0
  randrounding     :       0.00       0.00          0          0          0
  rens             :       0.00       0.00          0          0          0
  reoptsols        :       0.00       0.00          0          0          0
  repair           :       0.00       0.00          0          0          0
  rins             :       0.00       0.00          0          0          0
  rootsoldiving    :       0.00       0.00          0          0          0
  rounding         :       0.00       0.00          0          0          0
  scheduler        :       0.00       0.00          0          0          0
  shiftandpropagate:       0.00       0.00          0          0          0
  shifting         :       0.00       0.00          0          0          0
  simplerounding   :       0.00       0.00          0          0          0
  subnlp           :       0.00       0.00          0          0          0
  trivial          :       0.02       0.00          1          0          0
  trivialnegation  :       0.00       0.00          0          0          0
  trustregion      :       0.00       0.00          0          0          0
  trysol           :       0.00       0.00          0          0          0
  twoopt           :       0.00       0.00          0          0          0
  undercover       :       0.00       0.00          0          0          0
  vbounds          :       0.00       0.00          0          0          0
  veclendiving     :       0.00       0.00          0          0          0
  zeroobj          :       0.00       0.00          0          0          0
  zirounding       :       0.00       0.00          0          0          0
  other solutions  :          -          -          -          0          -
LNS (Scheduler)    :      Calls  SetupTime  SolveTime SolveNodes       Sols       Best       Exp3    Exp3-IX  EpsGreedy        UCB TgtFixRate  Opt  Inf Node Stal  Sol  Usr Othr Actv
  rens             :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  rins             :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  mutation         :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  localbranching   :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  crossover        :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  proximity        :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  zeroobjective    :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  dins             :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
  trustregion      :          0       0.00       0.00          0          0          0    0.00000    0.00000   -1.00000    1.00000      0.900    0    0    0    0    0    0    0    1
Solution           :
  Solutions found  :          0 (0 improvements)
  Primal Bound     :          -
  Dual Bound       : +0.00000000000000e+00
  Gap              :   infinite
Integrals          :      Total       Avg%
  primal-dual      :   16713.53     100.00
  primal-ref       :          -          - (not evaluated)
  dual-ref         :          -          - (not evaluated)

SCIP> quit

Build breaks: undefined symbol: papilo::SparseStorage<double>::SparseStorage(std::__1::vector<std::__1::tuple<int, int, double>, std::__1::allocator<std::__1::tuple<int, int, double>>>, int, int, bool, double, int)

===>  Building for papilo-2.1.2
[  9% 7/11] : && /usr/local/libexec/ccache/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fstack-protector-strong binaries/CMakeFiles/duplicates.dir/__/src/duplicates.cpp.o -o bin/duplicates  -Wl,-rpath,/usr/ports/math/papilo/work/.build:/usr/local/lib:  libpapilo-core.so  /usr/local/lib/libboost_iostreams.so  /usr/local/lib/libboost_serialization.so  /usr/local/lib/libboost_program_options.so  /usr/local/lib/libboost_regex.so  /usr/local/lib/libtbb.so.12.9  -lpthread  /usr/local/lib/libgmp.so  /usr/local/lib/libgmpxx.so && :
FAILED: bin/duplicates 
: && /usr/local/libexec/ccache/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fstack-protector-strong binaries/CMakeFiles/duplicates.dir/__/src/duplicates.cpp.o -o bin/duplicates  -Wl,-rpath,/usr/ports/math/papilo/work/.build:/usr/local/lib:  libpapilo-core.so  /usr/local/lib/libboost_iostreams.so  /usr/local/lib/libboost_serialization.so  /usr/local/lib/libboost_program_options.so  /usr/local/lib/libboost_regex.so  /usr/local/lib/libtbb.so.12.9  -lpthread  /usr/local/lib/libgmp.so  /usr/local/lib/libgmpxx.so && :
ld: error: undefined symbol: papilo::SparseStorage<double>::SparseStorage(std::__1::vector<std::__1::tuple<int, int, double>, std::__1::allocator<std::__1::tuple<int, int, double>>>, int, int, bool, double, int)
>>> referenced by duplicates.cpp
>>>               binaries/CMakeFiles/duplicates.dir/__/src/duplicates.cpp.o:(papilo::MpsParser<double>::loadProblem(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))

ld: error: undefined symbol: papilo::SparseStorage<double>::getTranspose() const
>>> referenced by duplicates.cpp
>>>               binaries/CMakeFiles/duplicates.dir/__/src/duplicates.cpp.o:(papilo::Problem<double>::setConstraintMatrix(papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))

ld: error: undefined symbol: papilo::ConstraintMatrix<double>::ConstraintMatrix(papilo::SparseStorage<double>, papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>)
>>> referenced by duplicates.cpp
>>>               binaries/CMakeFiles/duplicates.dir/__/src/duplicates.cpp.o:(papilo::Problem<double>::setConstraintMatrix(papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
>>> referenced by duplicates.cpp
>>>               binaries/CMakeFiles/duplicates.dir/__/src/duplicates.cpp.o:(papilo::Problem<double>::setConstraintMatrix(papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
c++: error: linker command failed with exit code 1 (use -v to see invocation)
[ 18% 7/11] : && /usr/local/libexec/ccache/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fstack-protector-strong binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o -o bin/papilo  -Wl,-rpath,/usr/ports/math/papilo/work/.build:/usr/local/lib:  libpapilo-core.so  /usr/local/lib/libsoplex.so.6.0.3.0  /usr/local/lib/libboost_iostreams.so  /usr/local/lib/libboost_serialization.so  /usr/local/lib/libboost_program_options.so  /usr/local/lib/libboost_regex.so  /usr/local/lib/libtbb.so.12.9  -lpthread  /usr/lib/libz.so  /usr/local/lib/libgmp.so  /usr/local/lib/libgmpxx.so && :
FAILED: bin/papilo 
: && /usr/local/libexec/ccache/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fstack-protector-strong binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o -o bin/papilo  -Wl,-rpath,/usr/ports/math/papilo/work/.build:/usr/local/lib:  libpapilo-core.so  /usr/local/lib/libsoplex.so.6.0.3.0  /usr/local/lib/libboost_iostreams.so  /usr/local/lib/libboost_serialization.so  /usr/local/lib/libboost_program_options.so  /usr/local/lib/libboost_regex.so  /usr/local/lib/libtbb.so.12.9  -lpthread  /usr/lib/libz.so  /usr/local/lib/libgmp.so  /usr/local/lib/libgmpxx.so && :
ld: error: undefined symbol: papilo::Presolve<double>::addDefaultPresolvers()
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::ResultStatus papilo::presolve_and_solve<double>(papilo::OptionsInfo const&, std::__1::unique_ptr<papilo::SolverFactory<double>, std::__1::default_delete<papilo::SolverFactory<double>>>, std::__1::unique_ptr<papilo::SolverFactory<double>, std::__1::default_delete<papilo::SolverFactory<double>>>))

ld: error: undefined symbol: papilo::Presolve<double>::apply(papilo::Problem<double>&, bool)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::ResultStatus papilo::presolve_and_solve<double>(papilo::OptionsInfo const&, std::__1::unique_ptr<papilo::SolverFactory<double>, std::__1::default_delete<papilo::SolverFactory<double>>>, std::__1::unique_ptr<papilo::SolverFactory<double>, std::__1::default_delete<papilo::SolverFactory<double>>>))

ld: error: undefined symbol: papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::addDefaultPresolvers()
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::ResultStatus papilo::presolve_and_solve<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>(papilo::OptionsInfo const&, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>>, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>>))

ld: error: undefined symbol: papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::apply(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>&, bool)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::ResultStatus papilo::presolve_and_solve<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>(papilo::OptionsInfo const&, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>>, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>>))

ld: error: undefined symbol: papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::addDefaultPresolvers()
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::ResultStatus papilo::presolve_and_solve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>(papilo::OptionsInfo const&, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>>, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>>))

ld: error: undefined symbol: papilo::Presolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::apply(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>&, bool)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::ResultStatus papilo::presolve_and_solve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>(papilo::OptionsInfo const&, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>>, std::__1::unique_ptr<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::default_delete<papilo::SolverFactory<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>>))

ld: error: undefined symbol: papilo::SparseStorage<double>::SparseStorage(std::__1::vector<std::__1::tuple<int, int, double>, std::__1::allocator<std::__1::tuple<int, int, double>>>, int, int, bool, double, int)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::MpsParser<double>::loadProblem(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))

ld: error: undefined symbol: papilo::Postsolve<double>::undo(papilo::Solution<double> const&, papilo::Solution<double>&, papilo::PostsolveStorage<double>, bool) const
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(void papilo::postsolve<double>(papilo::PostsolveStorage<double>&, papilo::Solution<double> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Validation<double>::can_reduced_solution_be_recalculated(papilo::Problem<double> const&, papilo::PostsolveStorage<double> const&, papilo::Solution<double> const&))

ld: error: undefined symbol: papilo::SparseStorage<double>::getTranspose() const
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<double>::setConstraintMatrix(papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(void papilo::ConstraintMatrix<double>::serialize<boost::archive::binary_iarchive>(boost::archive::binary_iarchive&, unsigned int))

ld: error: undefined symbol: papilo::ConstraintMatrix<double>::ConstraintMatrix(papilo::SparseStorage<double>, papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<double>::setConstraintMatrix(papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<double>::setConstraintMatrix(papilo::SparseStorage<double>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<double, std::__1::allocator<double>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))

ld: error: undefined symbol: papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::SparseStorage(std::__1::vector<std::__1::tuple<int, int, boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::allocator<std::__1::tuple<int, int, boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>>, int, int, bool, double, int)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::MpsParser<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::loadProblem(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))

ld: error: undefined symbol: papilo::Postsolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::undo(papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>> const&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>&, papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, bool) const
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(void papilo::postsolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>(papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Validation<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::can_reduced_solution_be_recalculated(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>> const&, papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>> const&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>> const&))

ld: error: undefined symbol: papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::getTranspose() const
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::setConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(void papilo::ConstraintMatrix<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::serialize<boost::archive::binary_iarchive>(boost::archive::binary_iarchive&, unsigned int))

ld: error: undefined symbol: papilo::ConstraintMatrix<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::ConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::setConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>::setConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_float<35u>, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))

ld: error: undefined symbol: papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::SparseStorage(std::__1::vector<std::__1::tuple<int, int, boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::allocator<std::__1::tuple<int, int, boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>>, int, int, bool, double, int)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::MpsParser<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::loadProblem(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))

ld: error: undefined symbol: papilo::Postsolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::Postsolve(papilo::Message, papilo::Num<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(void papilo::postsolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>(papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Validation<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::can_reduced_solution_be_recalculated(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&, papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&))

ld: error: undefined symbol: papilo::Postsolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::undo(papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>&, papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, bool) const
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(void papilo::postsolve<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>(papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Validation<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::can_reduced_solution_be_recalculated(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&, papilo::PostsolveStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&, papilo::Solution<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>> const&))

ld: error: undefined symbol: papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::getTranspose() const
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::setConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(void papilo::ConstraintMatrix<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::serialize<boost::archive::binary_iarchive>(boost::archive::binary_iarchive&, unsigned int))

ld: error: undefined symbol: papilo::ConstraintMatrix<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::ConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>)
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::setConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
>>> referenced by papilo.cpp
>>>               binaries/CMakeFiles/papilo-executable.dir/__/src/papilo.cpp.o:(papilo::Problem<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>::setConstraintMatrix(papilo::SparseStorage<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>, std::__1::allocator<boost::multiprecision::number<boost::multiprecision::backends::gmp_rational, (boost::multiprecision::expression_template_option)1>>>, std::__1::vector<papilo::Flags<papilo::RowFlag>, std::__1::allocator<papilo::Flags<papilo::RowFlag>>>, bool))
c++: error: linker command failed with exit code 1 (use -v to see invocation)

Version: 2.1.2
clang-15
FreeBSD 13.2

Program name duplicates is generic

Perhaps the program duplicates could be renamed to papilo_duplicates which would make it easier to distinguish from other similarly named programs.

CMake config fails with Boost IOStreams

Ubuntu 20.10. Running cmake .. all fine but I noticed boost/iostreams,serialization,program_options were not found. I installed them, reran cmake. Then ran it with -DCMAKE_BUILD_TYPE=Release. Still successful. Then ran cmake.. -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=on and got the below error.

Strangely, wiping out the build directory, and even re-cloning papilo and deinstalling the optional boost components did not help.

...
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found version "1.74.0") found components: iostreams serialization program_options
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_ZLIB
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_ZLIB - Success
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_BZIP2
-- Performing Test PAPILO_USE_BOOST_IOSTREAMS_WITH_BZIP2 - Success
-- Linking solvers: SCIP
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found version "1.74.0") found components: serialization program_options iostreams
-- Configuring done
CMake Error at binaries/CMakeLists.txt:53 (add_executable):
Target "papilo-executable" links to target "ZLIB::ZLIB" but the target was
not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?

Breaks with onetbb-2021.3.0: undefined symbol: tbb::task_group_context::init()

FAILED: bin/duplicates 
: && /usr/bin/c++ -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -O2 -pipe -fno-omit-frame-pointer -fstack-protector-strong -fno-strict-aliasing -fno-omit-frame-pointer -fstack-protector-strong binaries/CMakeFiles/duplicates.dir/__/src/duplicates.cpp.o -o bin/duplicates  -Wl,-rpath,/usr/local/lib  libpapilo-core.a  /usr/local/lib/libboost_iostreams.so  /usr/local/lib/libboost_serialization.so  /usr/local/lib/libboost_program_options.so  /usr/local/lib/libboost_regex.so  /usr/local/lib/libtbb.so  /usr/local/lib/libgmp.so  /usr/local/lib/libgmpxx.so && :
ld: error: undefined symbol: tbb::task_group_context::init()
>>> referenced by ConstraintMatrix.cpp
>>>               ConstraintMatrix.cpp.o:(papilo::ConstraintMatrix<double>::compress(bool)) in archive libpapilo-core.a
>>> referenced by ConstraintMatrix.cpp
>>>               ConstraintMatrix.cpp.o:(papilo::ConstraintMatrix<double>::compress(bool)) in archive libpapilo-core.a
>>> referenced by ConstraintMatrix.cpp
>>>               ConstraintMatrix.cpp.o:(papilo::ConstraintMatrix<double>::deleteRowsAndCols(std::__1::vector<int, std::__1::allocator<int> >&, std::__1::vector<int, std::__1::allocator<int> >&, std::__1::vector<papilo::RowActivity<double>, std::__1::allocator<papilo::RowActivity<double> > >&, std::__1::vector<int, std::__1::allocator<int> >&, std::__1::vector<int, std::__1::allocator<int> >&, std::__1::vector<int, std::__1::allocator<int> >&)) in archive libpapilo-core.a
>>> referenced 12 more times

OS: FreeBSD 13

Releases not tagged

CMakeLists.txt says that the version is 2.0.0, but repository has no such tag.

Default Number of Threads

What is the default number of threads used by PaPILO? Is it 1 or the number of physical cores or the number of logical cores? I don't see the number of threads used listed in the console output.

build failure on fedora-37

  [papilo-2.1.1]                    from /sage/local/var/tmp/sage/build/papilo-2.1.1/src/src/papilo/io/MpsParser.hpp:28,
  [papilo-2.1.1]                    from /sage/local/var/tmp/sage/build/papilo-2.1.1/src/test/papilo/io/MpsParserTest.cpp:24:
  [papilo-2.1.1]   /usr/include/boost/multiprecision/float128.hpp: In member function 'std::string boost::multiprecision::backends::float128_backend::str(std::streamsize, std::ios_base::fmtflags) const':
  [papilo-2.1.1]   /usr/include/boost/multiprecision/float128.hpp:260:15: error: 'unique_ptr' is not a member of 'std'
  [papilo-2.1.1]     260 |          std::unique_ptr<char[]>   buf2;
  [papilo-2.1.1]         |               ^~~~~~~~~~
  [papilo-2.1.1]   /usr/include/boost/multiprecision/float128.hpp:12:1: note: 'std::unique_ptr' is defined in header '<memory>'; did you forget to '#include <memory>'?

https://github.com/mkoeppe/PySCIPOpt/actions/runs/3506612801/jobs/5873771362

SOS1 Constraints

Is PaPILO able to exploit SOS1 constraints? That is, is there a difference between the presolve reduction of a problem defined with SOS1 constraints and the presolve reduction of the same problem with its SOS1 constraints removed, assuming that both original problems are equivalent mathematically?

Breaks with highs: error: no member named 'a_index_' in 'HighsLp'

/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:97:13: error: no member named 'a_index_' in 'HighsLp'
      model.a_index_.resize( consMatrix.getNnz() );
      ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:98:13: error: no member named 'a_value_' in 'HighsLp'
      model.a_value_.resize( consMatrix.getNnz() );
      ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:99:13: error: no member named 'a_start_' in 'HighsLp'
      model.a_start_.resize( ncols + 1 );
      ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:100:13: error: no member named 'a_start_' in 'HighsLp'
      model.a_start_[ncols] = consMatrix.getNnz();
      ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:130:16: error: no member named 'a_start_' in 'HighsLp'
         model.a_start_[i] = start;
         ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:134:19: error: no member named 'a_value_' in 'HighsLp'
            model.a_value_[start + k] = double( colvals[k] );
            ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:135:19: error: no member named 'a_index_' in 'HighsLp'
            model.a_index_[start + k] = colrows[k];
            ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:193:13: error: no member named 'a_index_' in 'HighsLp'
      model.a_index_.resize( component.nnonz );
      ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:194:13: error: no member named 'a_value_' in 'HighsLp'
      model.a_value_.resize( component.nnonz );
      ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:195:13: error: no member named 'a_start_' in 'HighsLp'
      model.a_start_.resize( numcols + 1 );
      ~~~~~ ^
/usr/ports/math/papilo/work/papilo-2.1.2/src/papilo/interfaces/HighsInterface.hpp:196:13: error: no member named 'a_start_' in 'HighsLp'
      model.a_start_[numcols] = component.nnonz;
      ~~~~~ ^

Version: 2.1.2
coin-or-highs-1.5.1
clang-15
FreeBSD 13.2

Correct way to handle dual solution when using from command line

What is the correct way to account for an available dual solution when manually solving the presolved instance? I'm writing a .mps file, calling presolve, and then solve the resulting problem (using JuMP -> HiGHS). I then write a .sol file with the extracted (primal) values of all variables

x      0.3
...
z      -1.2

and call postsolve on that, which gives me

=obj=          1234.00
x              ...              obj(0.0)
...

I assume the obj(...) is "only" the objective coefficient (based on an information from SCIP: (obj: <objective coefficient of variable>) ). I've provided parameters using -p lp_presolvers_with_basis.set.

PaPILO with GLOP or PDLP

If PaPILO is built with OR-Tools and the solve command is used to solve an LP (papilo solve -f problem.mps -l problem.sol), does PaPILO write the presolved problem to an MPS file and then call GLOP or PDLP on the presolved MPS file? From the command line, how does one select whether solve uses GLOP vs PDLP?

Missing file "papilolib_export.h"?

Hi, I'm trying to use the C API found in src/papilolib.h, but this includes "papilolib_export.h" which I can't find anywhere. Without it PAPILOLIB_EXPORT is not defined.

I've build papilo using the basic build instructions
mkdir build
cd build
cmake ..
make

Is using the API in src/papilolib.h supported, and if yes how do I obtain/create papilolib_export.h?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.