Dependencies#
SHOP Binaries#
The SHOP binaries are available in different builds to support various operating systems and environments. Below are the details of the compiler versions used for the Windows, Debian, and Alma Linux builds.
Debian Base build#
The SHOP binaries are built with the following dependencies:
OS |
Python version |
pybind |
glibc / glibcxx |
---|---|---|---|
Debian 11 (bullseye) |
|
|
glibc |
Debian 11 (bullseye) |
|
|
glibc |
Debian 11 (bullseye) |
|
|
glibc |
Debian 11 (bullseye) |
|
|
glibc |
Debian 11 (bullseye) |
|
|
glibc |
ALMA Linux build#
Alma Linux is built with the following dependencies:
OS |
Python version |
pybind |
glibc / glibcxx |
---|---|---|---|
Alma Linux 8.9 (Midnight Oncilla) |
|
|
glibc |
Windows build#
Windows is built with the following dependencies:
OS |
Python version |
pybind |
C compiler / CXX compiler |
---|---|---|---|
Windows |
|
|
|
Windows |
|
|
|
Windows |
|
|
|
Windows |
|
|
|
Windows |
|
|
|
Python Version support#
Our policy is to build for all Python versions supported by Python Software Foundation. We strive to support the latest Python version shortly after release, but it might take a few weeks until all our dependencies are updated so that we can add it to our builds.
Included third-party libraries#
In addition to the main external solver libraries CPLEX, Gurobi and OSI/CBC with their appropriate licences, SHOP uses the following libraries:
Armadillo (open source)#
Armadillo is a high-quality linear algebra library (matrix maths) for the C++ language, employing the Intel® Math Kernel Library (by choice of SINTEF) at the core level.
The following papers describe Armadillo:
Conrad Sanderson and Ryan Curtin. Armadillo: An Efficient Framework for Numerical Linear Algebra. International Conference on Computer and Automation Engineering, 2025.
Conrad Sanderson and Ryan Curtin. Practical Sparse Matrices in C++ with Hybrid Storage and Template-Based Expression Optimisation. Mathematical and Computational Applications, Vol. 24, No. 3, 2019.
Armadillo is distributed under the permissive Apache 2.0 license with the following copyright notice:
Armadillo C++ Linear Algebra Library
Copyright 2008-2025 Conrad Sanderson (https://conradsanderson.id.au)
Copyright 2008-2016 National ICT Australia (NICTA)
Copyright 2017-2025 Data61 / CSIROThis product includes software developed by Conrad Sanderson (https://conradsanderson.id.au)
This product includes software developed at National ICT Australia (NICTA)
This product includes software developed at Data61 / CSIRO
Attribution Notice.
As per UN General Assembly Resolution A/RES/ES-11/1
adopted on 2 March 2022 with 141 votes in favour and 5 votes against,
we attribute the violation of the sovereignty and territorial integrity of Ukraine,
and subsequent destruction of many Ukrainian cities and civilian infrastructure,
to large-scale military aggression by the Russian Federation (aided by Belarus).
Further details:
https://undocs.org/A/RES/ES-11/1
https://digitallibrary.un.org/record/3965290/files/A_RES_ES-11_1-EN.pdf
https://digitallibrary.un.org/record/3965290/files/A_RES_ES-11_1-RU.pdf
Intel® Math Kernel Library#
Intel® Math Kernel Library (Intel® MKL) accelerates math processing routines, increases application performance, and reduces development time on Intel® processors.
Intel® MKL is distributed under the Intel Simplified Software License with the following copyright notice:
Use and Redistribution. You may use and redistribute the software, which is provided in binary form only, (the “Software”), without modification, provided the following conditions are met:
Redistributions must reproduce the above copyright notice and these terms of use in the Software and in the documentation and/or other materials provided with the distribution. Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission. No reverse engineering, decompilation, or disassembly of the Software is permitted, nor any modification or alteration of the Software or its operation at any time, including during execution. No other licenses. Except as provided in the preceding section, Intel grants no licenses or other rights by implication, estoppel or otherwise to, patent, copyright, trademark, trade name, service mark or other intellectual property licenses or rights of Intel.
Third party software. “Third Party Software” means the files (if any) listed in the “third-party-software.txt” or other similarly-named text file that may be included with the Software. Third Party Software, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms solely govern Your use of the Third Party Software.
DISCLAIMER. THIS SOFTWARE IS PROVIDED “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE.
LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software.
Termination. Your right to use the Software is terminated in the event of your breach of this license.
Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input (“Feedback”) related to the Software, Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations.
Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software.
Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. THE UNITED NATIONS CONVENTION ON CONTRACTS FOR THE INTERNATIONAL SALE OF GOODS (1980) IS SPECIFICALLY EXCLUDED AND WILL NOT APPLY TO THE SOFTWARE.