This page covers a clean source installation and the shortest route to the C++, Python, CLI and graphical interfaces.
Requirements
A standard source build requires:
- Linux with GCC or Clang supporting C++20;
- CMake 3.20 or newer and Ninja or Make;
- GNU Scientific Library (GSL);
- Eigen 3;
- Python 3.10–3.12 and
pybind11 for the Python package.
MARTY and SOFTSUSY are optional. The bundled 2HDMC and MinuitCpp components are built only where required by the selected configuration.
Build the C++ core and CLI
sudo apt-get update
sudo apt-get install -y \
build-essential cmake ninja-build pkg-config \
libgsl-dev libeigen3-dev
cmake -S Hyperiso/Hyperiso/core -B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_WITH_CLI=ON
cmake --build build --parallel
cmake --install build --prefix "$HOME/.local"
Add the installation prefix when needed:
export PATH="$HOME/.local/bin:$PATH"
export CMAKE_PREFIX_PATH="$HOME/.local:$CMAKE_PREFIX_PATH"
Verify the CLI:
hyperiso-ui --version
hyperiso-ui --help
Install the Python package from source
From the repository root:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install ./Hyperiso/Hyperiso
For development and tests:
python -m pip install -e "./Hyperiso/Hyperiso[test,dev]"
python -m pytest Hyperiso/Hyperiso/pyhyperiso/test
The unrelated package named pybind is not required; HyperIso uses pybind11.
Verify the Python installation
python - <<'PY'
import pyhyperiso
from pyhyperiso.phyperiso import pyhyperiso as native
assert pyhyperiso.__version__ == native.__version__
print("pyhyperiso", pyhyperiso.__version__, "import OK")
PY
Run the command-line interface
Wilson coefficients:
hyperiso-ui wilson summary \
--model SM \
--lha Assets/lha/si_input.flha \
--groups BCoefficients \
--coeffs C7,C9,C10 \
--qmatch 81 \
--q 4.8 \
--order NNLO
Observables:
hyperiso-ui observable summary \
--model SM \
--lha Assets/lha/si_input.flha \
--observables BR_Bs__mu_mu,BR_B__Xs_gamma \
--order NNLO
Start the Dash interface
cd GHyperiso/HyperisoDashGUI
python -m pip install -r requirements.txt
python app.py
Open http://127.0.0.1:8050 in a browser.
Run tests
cmake -S Hyperiso/Hyperiso/core -B build-test \
-G Ninja \
-DCMAKE_BUILD_TYPE=Debug \
-DENABLE_TESTS=ON
cmake --build build-test --parallel
ctest --test-dir build-test --output-on-failure
Heavy numerical comparison tests are opt-in through -DHYPERISO_BUILD_COMPARISON_TESTS=ON.
Next steps