-
Notifications
You must be signed in to change notification settings - Fork 37
Compilation Guide
From top level after cloning, just
pip install .
Ideally, this should work. But today is a day the name of which ends in a y, so you'll probably be unlucky. But who knows!?!??! Give it a try!!!
- You should at least have things like
boost,boost-python,eigen,cmake,gmp,mpfr,mpcinstalled before this will work, I don't thinkpipwill install these dependencies for you.
I find the error messages from pip install . from top level rather unhelpful at this time, so probably a more step-by-step will be better.
These instructions assume you have CMake, a modern C++ compiler.
- Bertini is developed on MacOS and Linux, these instructions have not been tested on Windows. That's a work in progress.
- We're working on pre-built wheels to eliminate this whole building from source thing, but it's a work in progress.
-
Use a package manager to install relevant packages.
- We recommend Conda because it has all of the packages in one spot with the right versions.
- Homebrew on MacOS makes these things kinda easy, too.
a. With conda:
conda activate,conda install gmp mpfr mpc cmake boost eigen conda-forge::libboost-python numpy. Your system also needs thebuild-essentialpackage, it is likely installed by default.b. With another packager manager:
$PACKAGE_MANAGER install gmp mpfr mpc cmake boost eigen boost-python3 build-essential,pip install numpy. If you're usingapt, then you need the*-devor-dev-allversions of some of these packages. -
Clone and move in.
git clone https://github.com/bertiniteam/b2, thencd b2.
-
mkdir build && cd build -
cmake .., adding-DCMAKE_PREFIX_PATH=$CONDA_PREFIXif using Conda -
make install, or maybesudo make installif needed.a. If your computer can handle the heat, try instead
make install -j x, where x = a number dictating how much resources are dedicated towards compiling. It makes compiling much faster. A modern 32GB Ram laptop can comfortably run-j 4.3is a good starting point. I use8on my M3 Macintosh.
ℹ️ If you just want the core software for use with C++, you can stop here. If you want to use Bertini2 with Python, keep going.
-
cd b2/python_bindings -
Install
eigenpy. From Conda,conda install conda-forge::eigenpy. From Homebrew,brew install eigenpy. -
mkdir build && cd build -
cmake .., again adding-DCMAKE_PREFIX_PATH=$CONDA_PREFIXif using Conda -
make installorsudo make installa. See note on previous make install step for parallel building
-
cd b2/python -
pip install .