CoCalc Shared FilesLIBFQFFT / libfqffttest.sagewsOpen in CoCalc with one click!
Author: ℏal Snyder
Views : 10
Description: Install transcript for libfqfft, FFT on finite fields

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