Quickstart guide for users
Python bindings
If you want to use ASMC or FastSMC via their Python interface, you can simply install ASMC using pip:
pip install asmc-asmc
For examples, see the ASMC python documentation and FastSMC python documentation.
If you want to compile the C++ executables, read on.
Linux
This guide assumes you have a C++17 compatible compiler (e.g. gcc >= 8.3 or clang >= 7) and CMake >= 3.15. Then, follow these steps to build the ASMC, FastSMC and binary conversion executables:
# Get the source
git clone --recurse-submodules https://github.com/PalamaraLab/ASMC
cd ASMC
# Create a build directory
mkdir build && cd build
# Configure and build
# On first run, CMake will build the required dependencies
cmake -DASMC_NO_PYTHON=TRUE ..
cmake --build . --parallel 4
macOS
This guide assumes you have a recent version of the Xcode command line tools and Homebrew. Install the following dependencies:
brew install cmake
brew install libomp
Then, follow these steps to build the ASMC, FastSMC and binary conversion executables:
# Get the source
git clone --recurse-submodules https://github.com/PalamaraLab/ASMC
cd ASMC
# Create a build directory
mkdir build && cd build
# Configure and build
# On first run, CMake will build the required dependencies
cmake -DASMC_NO_PYTHON=TRUE ..
cmake --build . --parallel 4
Without vcpkg
If you would like to compile ASMC without using vcpkg to handle dependencies, you should first ensure all dependencies are installed:
Ubuntu
sudo apt install libboost-iostreams-dev libboost-math-dev libboost-program-options-dev libeigen3-dev libfmt-dev librange-v3-dev zlib1g-dev
macOS
brew install boost eigen fmt range-v3 zlib
Then, when you run CMake, add the following definition:
cmake -DASMC_AVOID_VCPKG=true ..
You may additionally choose to not recursively clone all submodules, as
long as you still obtain the DataModule submodule. From the ASMC
directory:
git clone https://github.com/PalamaraLab/ASMC
cd ASMC
git submodule update --init DataModule