CoCalc Public FilesLIBFQFFT / libfqffttest.sagewsOpen with one click!
Author: ℏal Snyder
Views : 52
Description: Install transcript for libfqfft, FFT on finite fields
Compute Environment: Ubuntu 18.04 (Deprecated)

Example install of libfqfft on CoCalc

This worksheet essentially follows the install instructions from the libfqfft GitHub repo.

From the README file of libfqfft:

libfqfft is a C++ library for Fast Fourier Transforms (FFTs) in finite fields with multithreading support (via OpenMP).

%auto %default_mode sh
FFT_DIR=~/LIBFQFFT pwd
/home/user/LIBFQFFT
# clone libfqfft git repo cd $FFT_DIR repo_url="https://github.com/scipr-lab/libfqfft.git" repo=`basename $repo_url .git` test -d $repo || { echo cloning $repo from GitHub git clone -q $repo_url } ls -ld $repo
cloning libfqfft from GitHub
drwxr-xr-x 6 user user 13 May 14 04:48 libfqfft
cd $FFT_DIR/$repo git submodule init && git submodule -q update test -d build || mkdir build
Submodule 'depends/ate-pairing' (https://github.com/herumi/ate-pairing.git) registered for path 'depends/ate-pairing' Submodule 'depends/gtest' (https://github.com/google/googletest.git) registered for path 'depends/gtest' Submodule 'depends/libff' (https://github.com/scipr-lab/libff.git) registered for path 'depends/libff' Submodule 'depends/xbyak' (https://github.com/herumi/xbyak.git) registered for path 'depends/xbyak'
cmake -DWITH_PROCPS=OFF -DCMAKE_INSTALL_PREFIX=/home/user/opt
-- The C compiler identification is GNU 5.4.0 -- The CXX compiler identification is GNU 5.4.0 -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/g++ -- Check for working CXX compiler: /usr/bin/g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found PkgConfig: /ext/sage/sage-8.1/local/bin/pkg-config (found version "0.29.1") -- Found PythonInterp: /ext/sage/sage-8.1/local/bin/python (found version "2.7.14") -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE -- GMP: /ext/sage/sage-8.1/local/lib/libgmp.so, /ext/sage/sage-8.1/local/include -- Configuring done -- Generating done -- Build files have been written to: /home/user/LIBFQFFT/libfqfft
# this step can take a minute or two make -s 2>/dev/null | grep -v Building
Scanning dependencies of target zm [ 8%] Linking CXX static library libzm.a [ 8%] Built target zm Scanning dependencies of target ff [100%] Linking CXX static library libff.a [100%] Built target ff
make install|tail
-- Installing: /home/user/opt/include/libfqfft/evaluation_domain/domains/basic_radix2_domain.hpp -- Installing: /home/user/opt/include/libfqfft/evaluation_domain/domains/extended_radix2_domain.hpp -- Installing: /home/user/opt/include/libfqfft/evaluation_domain/domains/basic_radix2_domain_aux.tcc -- Installing: /home/user/opt/include/libfqfft/evaluation_domain/domains/arithmetic_sequence_domain.hpp -- Installing: /home/user/opt/include/libfqfft/evaluation_domain/domains/geometric_sequence_domain.tcc -- Installing: /home/user/opt/include/libfqfft/evaluation_domain/evaluation_domain.hpp -- Installing: /home/user/opt/include/libfqfft/evaluation_domain/get_evaluation_domain.hpp -- Installing: /home/user/opt/include/libfqfft/kronecker_substitution -- Installing: /home/user/opt/include/libfqfft/kronecker_substitution/kronecker_substitution.tcc -- Installing: /home/user/opt/include/libfqfft/kronecker_substitution/kronecker_substitution.hpp
make -s check 2>/dev/null| egrep -v "(Building|Linking)"
[ 6%] Built target zm [ 72%] Built target ff Scanning dependencies of target gtest [ 76%] Built target gtest Scanning dependencies of target gtest_main [ 80%] Built target gtest_main Scanning dependencies of target evaluation_domain_test [ 87%] Built target evaluation_domain_test Scanning dependencies of target polynomial_arithmetic_test [ 93%] Built target polynomial_arithmetic_test Scanning dependencies of target kronecker_substitution_test [100%] Built target kronecker_substitution_test Scanning dependencies of target check Test project /home/user/LIBFQFFT/libfqfft Start 1: evaluation_domain_test 1/3 Test #1: evaluation_domain_test ........... Passed 0.02 sec Start 2: polynomial_arithmetic_test 2/3 Test #2: polynomial_arithmetic_test ....... Passed 0.01 sec Start 3: kronecker_substitution_test 3/3 Test #3: kronecker_substitution_test ...... Passed 0.00 sec 100% tests passed, 0 tests failed out of 3 Total Test time (real) = 0.04 sec [100%] Built target check