FloPoCo installation manual

Operators tend to come and go as we struggle to support them, and we apologize for that. Hopefully the new Autotest features will bring more stability. Meanwhile, it is possible that the operator you want works better in an older version: read the release notes.


Installation by Docker


Installation in Ubuntu and other Debian derivative

For Debian/Ubuntu, simply look at this directory of installation scripts . Each script works for one environment, and Vagrant or Docker are your friends to set up this environment if you just want to use flopoco.

If you want to hack FloPoCo, these scripts will give you an idea of the dependencies to install, in particular: Sollya (mandatory, used in a lot of operators), WCPG (optional, used in the FixIIR operator), and ScaLP (optional, will improve the quality of many operators).

ScaLP provides a uniform interface to several ILP solver. The instructions provided build ScaLP with the LPSolve back-end, which is the only backend for which installation can be fully automated. Better results may be obtained using other backends: SCIP, Gurobi (both freely available for academic purpose) or CPlex. You are therefore encouraged to download one of these, install it, then recompile ScaLP (adding the relevant arguments to its cmake command, see ScaLP documentation), then FloPoCo.

Unstable git master version

See the install script for the plain version, or the install script for the full version with all possible optional dependencies. These scripts are written for ubuntu 18.04 (bionic). You can install them in a virtual machine using Vagrant as follows:

vagrant init ubuntu/bionic64 && vagrant up
vagrant ssh

# the following happens in the virtual machine
wget http://flopoco.gforge.inria.fr/install_scripts/install-plain-gitmaster-on-bionic64.sh
sh install-plain-gitmaster-on-bionic64.sh

To install all the possible dependencies, replace the two last lines with

wget http://flopoco.gforge.inria.fr/install_scripts/install-full-gitmaster-on-bionic64.sh
sh install-full-gitmaster-on-bionic64.sh

Your mileage may vary, but these scripts provide a good starting point.

Version 4.1.2, the last one with the old pipelining framework

See the install script . It was written for ubuntu 16.04 (xenial), and is probably broken on more recent versions. In this case you can install it in a virtual machine using Vagrant as follows:

vagrant init ubuntu/xenial64 && vagrant up
vagrant ssh

# the following happens in the virtual machine
wget http://flopoco.gforge.inria.fr/install_scripts/install-plain-4.1.2-on-xenial64.sh
sh install-plain-4.1.2-on-xenial64.sh

Version 2.5.0, the last version before the transition to Sollya4 broke everything that bit heaps had not yet broken

TODO: wrap this in a virtual machine for future generations.

yes | sudo apt-get install g++ libgmp3-dev libmpfr-dev libxml2-dev bison libmpfi-dev flex cmake libboost-all-dev libgsl0-dev && wget https://gforge.inria.fr/frs/download.php/file/34429/libfplll-3.0.12.tar.gz && tar xzf libfplll-3.0.12.tar.gz && cd libfplll-3.0.12/ && ./configure && make -j2 && sudo make install && cd .. && wget https://gforge.inria.fr/frs/download.php/28571/sollya-3.0.tar.gz && tar xzf sollya-3.0.tar.gz && cd sollya-3.0/ && ./configure && make -j4 && sudo make install && cd .. && wget https://gforge.inria.fr/frs/download.php/file/32591/flopoco-2.5.0.tgz && tar xzf flopoco-2.5.0.tgz && cd flopoco-2.5.0/ && cmake . && make -j4 && ./flopoco

Version 2.3.2, the last version before the Great Leader embarked the project in the bit heap hazardous adventure

TODO: wrap this in a virtual machine for future generations.

yes | sudo apt-get install g++ libgmp3-dev libmpfr-dev libxml2-dev bison libmpfi-dev flex cmake libboost-all-dev libgsl0-dev && wget https://gforge.inria.fr/frs/download.php/file/34429/libfplll-3.0.12.tar.gz && tar xzf libfplll-3.0.12.tar.gz && cd libfplll-3.0.12/ && ./configure && make -j2 && sudo make install && cd .. && wget https://gforge.inria.fr/frs/download.php/28571/sollya-3.0.tar.gz && tar xzf sollya-3.0.tar.gz && cd sollya-3.0/ && ./configure && make -j4 && sudo make install && cd .. && wget https://gforge.inria.fr/frs/download.php/file/35206/flopoco-2.3.2.tgz && tar xzf flopoco-2.3.2.tgz && cd flopoco-2.3.2/ && cmake . && make -j4 && ./flopoco

Older versions may include operators that have later been deprecated. Look up the source code repository


Hard-core installation from source with all the libraries (Linux and Mac OS X)

Although most libraries are available in your distribution, some of them may not. Hence, the following shows how to compile the basic libraries that are required to compile and run FloPoCo. These are the libraries that are absolutely required, additional libraries may be required to enable additional features. Select the installation directory (where /include, /lib, /bin, /share are created) by setting $INSTALL_DIR to the directory of your choice. The versions listed here are tested to be compatible to each other. In case a specific version is not available anymore, try a newer version.

Compile and install GMP

wget https://gmplib.org/download/gmp/gmp-6.1.1.tar.lz
lzip -d gmp-6.1.1.tar.lz
tar xf gmp-6.1.1.tar
cd gmp-6.1.1
./configure --prefix=$INSTALL_DIR
make -j4
make check
make install

Compile and install MPFI

wget https://gforge.inria.fr/frs/download.php/file/37332/mpfi-1.5.3.tar.gz
tar xfz mpfi-1.5.3.tar.gz
cd mpfi-1.5.3
./configure --prefix=$INSTALL_DIR --with-gmp=$INSTALL_DIR --with-mpfr=$INSTALL_DIR
make -j4
make check
make install

Compile and install MPFR

wget http://www.mpfr.org/mpfr-current/mpfr-4.0.0.tar.gz
tar xf mpfr-4.0.0.tar.gz
cd mpfr-4.0.0
./configure --prefix=$INSTALL_DIR --with-gmp=$INSTALL_DIR
make -j4
make check
make install

Compile and install FPLLL (required for Sollya)

wget https://github.com/fplll/fplll/releases/download/5.0.2/fplll-5.0.2.tar.gz
tar xf fplll-5.0.2.tar.gz
cd fplll-5.0.2
./configure --prefix=$INSTALL_DIR --with-gmp=$INSTALL_DIR --with-mpfr=$INSTALL_DIR
make -j4
make check
make install

Compile and install Sollya

wget https://gforge.inria.fr/frs/download.php/file/36270/sollya-6.0.tar.gz
tar xf sollya-6.0.tar.gz
cd sollya-6.0
./configure --prefix=$INSTALL_DIR --with-gmp=$INSTALL_DIR --with-mpfr=$INSTALL_DIR --with-mpfi=$INSTALL_DIR --with-fplll=$INSTALL_DIR
make -j4
make check
make install

Finally, compile FloPoCo

git clone https://scm.gforge.inria.fr/anonscm/git/flopoco/flopoco.git
cd flopoco
cmake . -DCMAKE_INCLUDE_PATH=/opt/local/include -DCMAKE_PREFIX_PATH:PATH=$INSTALL_DIR
make -j4

Depending on what you selected as your installation directory, you may have to add the $INSTALL_DIR/lib path to the LD_LIBRARY_PATH (Linux) or DYLD_LIBRARY_PATH (Mac OS X):

export LD_LIBRARY_PATH=$INSTALL_DIR/lib

or

export DYLD_LIBRARY_PATH=$INSTALL_DIR/lib

Now, you should be able to run FloPoCo.

Installation in Windows

Here is a simple way to get FloPoCo running in a virtual machine under Windows. You will need to install :

Installing Ubuntu in a Vagrant virtual box

Create a folder where you want to contain all the Vagrant files.

Open a command prompt and go into this folder. If you are using windows, you can quickly open a command prompt by holding down shift and right-clicking the project folder, then choose “open command window here”.

Now type the following commands :

vagrant init ubuntu/bionic64

vagrant up

The first time, it may take some time depending on your internet connection.

Connecting to the virtual machine by SSH

You have two solutions at this point :

Installing Flopoco on your virtual machine

Go to the Linux installation instructions : Copy one of the one-line installation scripts and paste it into the prompt of your virtual machine. Wait. Sometime, you will be asked to press "y".

Some common problems

If you encountered others problems, give us feedback and if possible solutions so that we can add them to the preceeding list.