Installation

Pip

The preferred way to install the alpaqa Python interface is using pip:

python3 -m pip install --upgrade --pre 'alpaqa[casadi]'

(PyPI)

To compile problems using the Python interface, you will need a C compiler, such as GCC or Clang on Linux, Xcode on macOS, or MSVC on Windows (see the Tips and tricks page for details and alternatives).

From source

Building alpaqa from source requires the installation of some C++ dependencies, see Installation (Doxygen) for detailed instructions.

C++ Library

The easiest way to install and use the alpaqa C++ libraries is by using Conan, as explained in the CMake example.

Alternatively, pre-built binaries for Linux are available from the Releases page on GitHub.

For Debian-based systems, the .deb packages can be installed using

sudo apt update
sudo apt install ./libalpaqa*_1.1.0a1_amd64.deb

Different components are available:

  • libalpaqa contains the shared libraries needed to run applications that use alpaqa.

  • libalpaqa-debug contains the debugging symbols for those libraries.

  • libalpaqa-dl_dev contains the C header files needed to compile problem specifications that can be dynamically loaded by alpaqa.

  • libalpaqa-dev contains all development files such as headers and CMake configuration files needed to compile software that invokes alpaqa solvers.

  • libalpaqa-extra contains additional solvers and problem loaders that fall outside of the core library.

  • libalpaqa-extra-dev contains all development files for the extra libraries.

  • libalpaqa-casadi contains classes for loading and building problem definitions using CasADi.

  • libalpaqa-casadi-dev contains classes development files for those classes.

  • libalpaqa-tools contains command line utilities such as alpaqa-driver, which can be used to invoke the solvers directly, without the need to write any C++ code.

More information about the different components of alpaqa can be found in the CMake API Reference.

The following distributions are tested:

  • Debian: 11 (Bullseye), 12 (Bookworm), 13 (Trixie), Sid

  • Ubuntu: 20.04 (Focal), 22.04 (Jammy), 24.04 (Noble), rolling

Alternatively, the .tar.gz file can be extracted and installed manually.

sudo tar xzf alpaqa-1.1.0a1-Linux-x86_64.tar.gz -C /usr/local --strip-components=1

When using the development packages, it is important to use the correct version of Eigen (currently 3.4.0) to avoid ABI incompatibilities. You should also add the correct architecture-specific flags: -march=haswell for amd64 packages, and -mcpu=cortex-a53+crc+simd for aarch64 packages. The reason is that Eigen’s ABI depends on the selected SIMD ISA extensions. ABI-related issues can be fully avoided by simply using Conan to install alpaqa instead of using the pre-built packages.

The development packages of alpaqa depend on the guanaqo library, which can be installed from source:

git clone https://github.com/tttapa/guanaqo --branch=1.0.0-alpha.16
cmake -B build-guanaqo -S guanaqo -G "Ninja Multi-Config" -DBUILD_TESTING=Off
cmake --build build-guanaqo --config Debug
sudo cmake --install build-guanaqo --config Debug --prefix=/usr/local
cmake --build build-guanaqo --config Release
sudo cmake --install build-guanaqo --config Release --prefix=/usr/local

MATLAB interface

The experimental MATLAB/MEX interface can be installed by running the following command in the MATLAB command window:

unzip(['https://github.com/kul-optec/alpaqa/releases/download/1.1.0a1/alpaqa-matlab-' computer('arch') '.zip'], userpath)

You need CasADi to be installed as well: https://web.casadi.org/get

To uninstall the alpaqa MATLAB interface, simply remove the +alpaqa folder:

rmdir(fullfile(userpath, '+alpaqa'), 's');