Installation

IMPaCT requires the following dependencies:

  • Python 3, CMake, Boost

  • AdaptiveCpp (with clang++ and OpenMP)

  • HDF5, Armadillo (with HDF5 enabled)

  • GSL, NLopt, GLPK

Tip

The easiest way to use IMPaCT is via Docker. For Ubuntu 22.04, use the automated install script.

Run the automated installer:

chmod +x install_ubuntu22.sh
sudo ./install_ubuntu22.sh

This installs all dependencies and builds IMPaCT. See the installation video for a walkthrough.

Install essential build tools:

sudo apt-get install build-essential

Python 3 and CMake:

sudo apt-get install python3 cmake

Boost:

sudo apt-get install libboost-all-dev

AdaptiveCpp:

See the official instructions for the most up-to-date guide. A copy is also bundled in the repository:

unzip AdaptiveCpp-develop.zip
cd AdaptiveCpp-develop
sudo apt install -y libclang-16-dev clang-tools-16 libomp-16-dev
sudo cmake .
sudo make install

If issues occur, add flags such as -DCMAKE_CXX_COMPILER=/path/to/clang++-16.

HDF5:

sudo apt-get install libhdf5-serial-dev

Armadillo:

sudo apt install libopenblas-dev liblapack-dev libarpack2-dev libsuperlu-dev
tar -xvf armadillo-12.6.4.tar.xz
cd armadillo-12.6.4
sudo cmake .
sudo make install

Important

Enable HDF5 in Armadillo: find the armadillo_bits directory (sudo find / -type d -name 'armadillo_bits'), edit config.hpp, and uncomment the line ARMA_USE_HDF5.

GSL:

tar -xzf gsl-2.7.1.tar.gz
cd gsl-2.7.1
./configure && make && sudo make install

NLopt:

tar -xzf nlopt-2.7.1.tar.gz
cd nlopt-2.7.1 && mkdir build && cd build
cmake .. && make && sudo make install

GLPK:

sudo apt-get install glpk-utils libglpk-dev

Note

IMPaCT has been tested on macOS with Intel chips. For Apple Silicon (M1/M2+), check AdaptiveCpp support.

Install dependencies via Homebrew:

brew install python cmake boost hdf5 gsl nlopt glpk

Armadillo:

brew install armadillo

Enable HDF5 in Armadillo: find armadillo_bits (sudo find / -type d -name 'armadillo_bits'), edit config.hpp, and uncomment ARMA_USE_HDF5.

AdaptiveCpp:

unzip AdaptiveCpp-develop.zip
cd AdaptiveCpp-develop
sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local \
              -DCMAKE_CXX_COMPILER=/path/to/clang++ \
              -DOpenMP_ROOT=/path/to/libomp/include
sudo make install

See Docker for container-based installation — no local dependencies needed.

Verification

After installation, verify by building and running an example:

cd examples/ex_2Drobot-R-U
make
./robot2D

You should see output showing the abstraction and synthesis progress.