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.