Optimize arb/acb poly coefficient set #3867
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| paths: | |
| - '.github/workflows/CI.yml' | |
| - 'src/**' | |
| - 'examples/**' | |
| - 'acinclude.m4' | |
| - 'bootstrap.sh' | |
| - 'CMakeLists.txt' | |
| - 'config/**' | |
| - 'configure.ac' | |
| - 'Makefile.in' | |
| push: | |
| paths: | |
| - '.github/workflows/CI.yml' | |
| - 'src/**' | |
| - 'examples/**' | |
| - 'acinclude.m4' | |
| - 'bootstrap.sh' | |
| - 'CMakeLists.txt' | |
| - 'config/**' | |
| - 'configure.ac' | |
| - 'Makefile.in' | |
| env: | |
| GLOBAL_MULTIPLIER: 1 | |
| concurrency: | |
| # Group by workflow and ref, and to limit to 1 concurrent job except for main | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/main' || github.run_number }} | |
| # Cancel intermediate builds for pull requests | |
| cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
| jobs: | |
| assert-ntl-msolve-nemo: | |
| name: NTL, msolve and Nemo.jl | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: "gcc" | |
| TESTCOEFF: "0.1" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y libgmp-dev libmpfr-dev libntl-dev autoconf libtool-bin | |
| $CC --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| julia --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| - name: "Build FLINT for msolve" | |
| run: | | |
| ./bootstrap.sh && ./configure CC=${CC} --with-ntl --enable-assert | |
| $MAKE && sudo make install && sudo ldconfig | |
| - name: "Test msolve" | |
| run: | | |
| git clone --depth=1 https://github.com/algebraic-solving/msolve | |
| cd msolve/ && ./autogen.sh && ./configure && $MAKE && make check | |
| - name: "Build FLINT for Nemo" | |
| run: | | |
| gmp_path=$(julia -e 'include("dev/find_gmp_mpfr.jl"); print(gmp_artifact_dir())') | |
| mpfr_path=$(julia -e 'include("dev/find_gmp_mpfr.jl"); print(mpfr_artifact_dir())') | |
| echo "Path to GMP and MPFR: ${gmp_path}, ${mpfr_path}" | |
| ./bootstrap.sh && ./configure CC=${CC} --with-gmp=$gmp_path --with-mpfr=$mpfr_path && $MAKE | |
| mkdir lib | |
| cp libflint.so* lib/ | |
| - name: "Test Nemo.jl" | |
| run: | | |
| git clone --depth 1 https://github.com/Nemocas/Nemo.jl.git | |
| mkdir -p ~/.julia/artifacts | |
| echo -e "[e134572f-a0d5-539d-bddf-3cad8db41a82]\nFLINT = \"$(pwd)\"" > ~/.julia/artifacts/Overrides.toml | |
| julia -e "import Pkg; Pkg.develop(path=\"./Nemo.jl\"); Pkg.test(\"Nemo\")" | |
| ubuntu-codecov: | |
| name: codecov (x10) | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: "gcc" | |
| TESTCOEFF: "10" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: echo "FLINT_TEST_MULTIPLIER=$(echo "${TESTCOEFF} * ${GLOBAL_MULTIPLIER}" | bc)" >> $GITHUB_ENV | |
| - uses: actions/checkout@v5 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y libgmp-dev libmpfr-dev autoconf libtool-bin lcov | |
| $CC --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| lcov --version | |
| python3 --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: ./bootstrap.sh && ./configure CC=${CC} --enable-avx2 --enable-coverage | |
| - name: "Compile library" | |
| run: $MAKE && ldd libflint.so | |
| - name: "Compile tests" | |
| run: $MAKE tests | |
| - name: "Check" | |
| run: echo "FLINT_TEST_MULTIPLIER = $FLINT_TEST_MULTIPLIER" && $MAKE check | |
| - name: "Check Python" | |
| run: $MAKE check PYTHON=1 | |
| - name: "Gather coverage data" | |
| run: $MAKE coverage | |
| - name: "Upload coverage data" | |
| uses: codecov/codecov-action@v5 | |
| if: github.repository == 'flintlib/flint' | |
| with: | |
| files: build/coverage/coverage.info | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| regression-check: | |
| name: Regression check | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: "gcc" | |
| CFLAGS: "-march=native -std=c11 -Wall -Wextra -Werror" | |
| MODULES: "build/thread_pool_merged.lo build/thread_support_merged.lo build/ulong_extras_merged.lo build/long_extras_merged.lo build/perm_merged.lo build/double_extras_merged.lo build/d_vec_merged.lo build/d_mat_merged.lo build/mpn_extras_merged.lo build/nmod_merged.lo build/nmod_vec_merged.lo build/nmod_mat_merged.lo build/nmod_poly_merged.lo build/mpn_mod_merged.lo build/fmpz_merged.lo build/fmpz_vec_merged.lo build/fmpz_mat_merged.lo build/fmpz_poly_merged.lo build/fmpz_mod_merged.lo build/fmpz_mod_vec_merged.lo build/fmpz_mod_mat_merged.lo build/fmpz_mod_poly_merged.lo build/fmpq_merged.lo build/fmpq_vec_merged.lo build/fmpq_mat_merged.lo build/fmpq_poly_merged.lo build/fq_merged.lo build/fq_vec_merged.lo build/fq_mat_merged.lo build/fq_poly_merged.lo build/fq_nmod_merged.lo build/fq_nmod_vec_merged.lo build/fq_nmod_mat_merged.lo build/fq_nmod_poly_merged.lo build/fq_zech_merged.lo build/fq_zech_mat_merged.lo build/fq_zech_poly_merged.lo build/fq_default_merged.lo build/fq_default_mat_merged.lo build/fq_default_poly_merged.lo build/fq_embed_merged.lo build/fq_nmod_embed_merged.lo build/fq_zech_embed_merged.lo build/padic_merged.lo build/padic_mat_merged.lo build/padic_poly_merged.lo build/qadic_merged.lo build/nmod_poly_factor_merged.lo build/fmpz_factor_merged.lo build/fmpz_poly_factor_merged.lo build/fmpz_mod_poly_factor_merged.lo build/fq_poly_factor_merged.lo build/fq_nmod_poly_factor_merged.lo build/fq_zech_poly_factor_merged.lo build/fq_default_poly_factor_merged.lo build/nmod_poly_mat_merged.lo build/fmpz_poly_mat_merged.lo build/mpoly_merged.lo build/nmod_mpoly_merged.lo build/fmpz_mpoly_merged.lo build/fmpz_mod_mpoly_merged.lo build/fmpq_mpoly_merged.lo build/fq_nmod_mpoly_merged.lo build/fq_zech_mpoly_merged.lo build/nmod_mpoly_factor_merged.lo build/fmpz_mpoly_factor_merged.lo build/fmpz_mod_mpoly_factor_merged.lo build/fmpq_mpoly_factor_merged.lo build/fq_nmod_mpoly_factor_merged.lo build/fq_zech_mpoly_factor_merged.lo build/fft_merged.lo build/fft_small_merged.lo" | |
| # Everything until fmpz_poly_q | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y libgmp-dev libmpfr-dev autoconf libtool-bin | |
| $CC --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: ./bootstrap.sh && ./configure CC=${CC} CFLAGS="${CFLAGS}" --disable-debug | |
| - name: "Check regression in a subset of modules" | |
| run: $MAKE $MODULES | |
| ubuntu-arm: | |
| name: ARM (x0.5) | |
| runs-on: ubuntu-24.04-arm | |
| env: | |
| CC: "gcc" | |
| TESTCOEFF: "0.5" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: echo "FLINT_TEST_MULTIPLIER=$(echo "${TESTCOEFF} * ${GLOBAL_MULTIPLIER}" | bc)" >> $GITHUB_ENV | |
| - uses: actions/checkout@v5 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y libgmp-dev libmpfr-dev autoconf libtool-bin | |
| $CC --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: ./bootstrap.sh && ./configure CC=${CC} --disable-debug | |
| - name: "Compile library" | |
| run: $MAKE && ldd libflint.so | |
| - name: "Compile tests" | |
| run: $MAKE tests | |
| - name: "Check" | |
| run: echo "FLINT_TEST_MULTIPLIER = $FLINT_TEST_MULTIPLIER" && $MAKE check | |
| macos-m1: | |
| name: M1 (x0.5) | |
| runs-on: macos-26 | |
| env: | |
| TESTCOEFF: "0.5" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: echo "FLINT_TEST_MULTIPLIER=$(echo "${TESTCOEFF} * ${GLOBAL_MULTIPLIER}" | bc)" >> $GITHUB_ENV | |
| - uses: actions/checkout@v5 | |
| - name: "Setup" | |
| run: | | |
| brew install make autoconf libtool automake llvm | |
| $(brew --prefix llvm)/bin/clang --version | |
| gmake --version | |
| autoconf --version | |
| echo "MAKE=gmake -j$(expr $(nproc) + 1) -l 10 --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: ./bootstrap.sh && ./configure CC=$(brew --prefix llvm)/bin/clang --with-gmp=$(brew --prefix) --with-mpfr=$(brew --prefix) --disable-debug | |
| - name: "Compile library" | |
| run: $MAKE | |
| - name: "Compile tests" | |
| run: $MAKE tests | |
| - name: "Compile profiles" | |
| run: $MAKE profile | |
| - name: "Check" | |
| run: echo "FLINT_TEST_MULTIPLIER = $FLINT_TEST_MULTIPLIER" && $MAKE check | |
| ubuntu-clang: | |
| name: BLAS, examples (x1) | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: "clang" | |
| TESTCOEFF: "1" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: echo "FLINT_TEST_MULTIPLIER=$(echo "${TESTCOEFF} * ${GLOBAL_MULTIPLIER}" | bc)" >> $GITHUB_ENV | |
| - uses: actions/checkout@v5 | |
| - name: "Setup" | |
| run: | | |
| sudo apt-get install -y libgmp-dev libmpfr-dev autoconf libtool-bin perl libopenblas-dev | |
| clang --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: ./bootstrap.sh && ./configure CC=${CC} --with-blas --disable-debug | |
| - name: "Compile library" | |
| run: $MAKE && ldd libflint.so | |
| - name: "Compile tests" | |
| run: $MAKE tests | |
| - name: "Check" | |
| run: echo "FLINT_TEST_MULTIPLIER = $FLINT_TEST_MULTIPLIER" && $MAKE check | |
| - name: "Compile examples" | |
| run: $MAKE examples | |
| - name: "Check examples" | |
| run: $MAKE checkexamples | |
| mingw64-gcc: | |
| name: MinGW (x0.5) | |
| runs-on: windows-latest | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| env: | |
| CC: "gcc" | |
| TESTCOEFF: "0.5" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: "Setup MinGW" | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: mingw64 | |
| update: true | |
| install: bc mingw-w64-x86_64-gcc mingw-w64-x86_64-autotools | |
| - name: "Rescale multiplier" | |
| run: echo "FLINT_TEST_MULTIPLIER=$(echo "${TESTCOEFF} * ${GLOBAL_MULTIPLIER}" | bc)" >> $GITHUB_ENV | |
| - name: "Setup" | |
| run: | | |
| gcc --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: ./bootstrap.sh && ./configure CC=${CC} --enable-fast-build --disable-debug | |
| - name: "Compile library" | |
| run: $MAKE | |
| - name: "Compile tests" | |
| run: $MAKE tests | |
| - name: "Check" | |
| run: echo "FLINT_TEST_MULTIPLIER = $FLINT_TEST_MULTIPLIER" && $MAKE check | |
| msvc: | |
| name: MSVC (x0.5) | |
| runs-on: windows-latest | |
| env: | |
| TESTCOEFF: "0.5" | |
| steps: | |
| - name: "Rescale multiplier" | |
| run: | | |
| $TESTCOEFF = $env:TESTCOEFF * $env:GLOBAL_MULTIPLIER | |
| echo "FLINT_TEST_MULTIPLIER=$TESTCOEFF" | Out-File -Append -FilePath $env:GITHUB_ENV | |
| - uses: actions/checkout@v5 | |
| - name: "Cache vcpkg packages" | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ runner.temp }}\vcpkg\archives | |
| key: ${{ runner.os }}-vcpkg-${{ hashFiles('**/vcpkg.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-vcpkg- | |
| - name: "Install vcpkg packages" | |
| run: vcpkg install gmp mpfr pthreads --binarysource="clear;files,${{ runner.temp }}\vcpkg\archives,readwrite" | |
| - name: "Setup MSVC" | |
| uses: ilammy/[email protected] | |
| with: | |
| arch: x86_64 | |
| - name: "Configure" | |
| run: | | |
| mkdir build; cd build | |
| cmake ` | |
| -G "Ninja" ` | |
| -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake ` | |
| -DCMAKE_C_FLAGS="/wd4018 /wd4146 /wd4244 /wd4267 /wd4305 /wd4996" ` | |
| -DBUILD_TESTING=ON ` | |
| -DCMAKE_BUILD_TYPE=Release ` | |
| .. | |
| - name: "Build" | |
| run: cd build; cmake --build . -j5 | |
| - name: "Check" | |
| run: | | |
| cd build | |
| set "FLINT_TEST_MULTIPLIER=$env:FLINT_TEST_MULTIPLIER" | |
| ctest -j5 --output-on-failure | |
| alpine-32bit: | |
| name: 32-bit, musl, assert (x2.5) | |
| runs-on: ubuntu-24.04 | |
| env: | |
| CC: "gcc" | |
| TESTCOEFF: "2.5" | |
| defaults: | |
| run: | |
| shell: alpine.sh {0} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: "Setup latest Alpine Linux" | |
| uses: jirutka/setup-alpine@v1 | |
| with: | |
| arch: x86 | |
| branch: edge | |
| packages: gmp-dev mpfr-dev gcc musl-dev make autoconf automake libtool | |
| - name: "Rescale multiplier" | |
| run: echo "FLINT_TEST_MULTIPLIER=$(echo "${TESTCOEFF} * ${GLOBAL_MULTIPLIER}" | bc)" >> $GITHUB_ENV | |
| - name: "Setup" | |
| run: | | |
| gcc --version | |
| make --version | |
| autoconf --version | |
| libtool --version | |
| echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
| - name: "Configure" | |
| run: ./bootstrap.sh && ./configure CC=${CC} --enable-assert --disable-debug | |
| - name: "Compile library" | |
| run: $MAKE | |
| - name: "Compile tests" | |
| run: $MAKE tests | |
| - name: "Check" | |
| run: echo "FLINT_TEST_MULTIPLIER = $FLINT_TEST_MULTIPLIER" && $MAKE check |