Skip to content

Conversation

loiseaujc
Copy link
Contributor

@loiseaujc loiseaujc commented Jul 24, 2025

I'm very grateful to @jacobwilliams for starting out this modernization of the fftpack library. However, with the developments that have happened with stdlib over the past couple of years, I feel like we should go one step further. This PR is the first of an upcoming series aiming at bringing fftpack up to the same quality and performance level as stdlib. It contains the following changes:

  • CMake build now closely parallels that of stdlib (with fypp being turned off for the moment).
  • The meson build system has been removed for now for the sake of simplicity but can be added back eventually if users ask for it.
  • The set of Github Actions now mimicks closely that of stdlib, including:
    • CI.yml : combination of unix-based OS and gfortran or intel compilers
    • CI_windows.yml : uses msys2-build for Windows
    • fpm-deployment : deploys a dedicated fpm branch (if we follow stdlib with the main branch being dedicated to the raw fypp files and CMake build) along with code coverage (via codecov)
    • PR-review.yml : simple action looking for misspelling.

The next few PRs will focus on further modernizing the existing code base (usage of do concurrent wherever appropriate, modules and submodules, etc). Note that I already started modernizing the zfft and dfft and get up a 1.3x speed-up simply by using some do concurrent facilitating the compiler's optimizations of certain loops.

As I ain't sure who is actively following this repo, I'll ping the linalg crew for now @perazz, @jvdp1 and @jalvesz.

Copy link

codecov bot commented Jul 24, 2025

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

@loiseaujc
Copy link
Contributor Author

If it's ok with every body, I'll merge this PR early next week as I have another on its way wherein I've modernized some the implementations leading to almost at 30% speed-up.

Copy link
Contributor

@zoziha zoziha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are many modified files, but the tests passed, so it looks great, thanks for this PR. A 30% speed improvement sounds really nice.

@loiseaujc
Copy link
Contributor Author

Yep many files indeed. I'll break the next ones in smaller successive PR to ease the review process, starting with:

  • PR n°1 : Adding intent specification everywhere
  • PR n°2 : Module/submodules to group real transforms together, complex ones together, etc.
  • PR n°3 : Improved performances by purifying everything and replacing quite a large number of do with do concurrent.

I'll go ahead and merge this one.

@loiseaujc loiseaujc merged commit c1205d0 into fortran-lang:main Sep 30, 2025
16 checks passed
@loiseaujc loiseaujc deleted the dev branch September 30, 2025 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants