Skip to content

InsightSoftwareConsortium/pocketfft

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

pocketfft fork for the Insight Toolkit (ITK)

This is the InsightSoftwareConsortium fork of mreineck/pocketfft, vendored by ITK as the third-party module ITKPocketFFT (Modules/ThirdParty/PocketFFT/ in ITK).

This welcome branch is the default branch and contains only this README.

Upstream

pocketfft has no upstream release tags, so this fork is branch-anchored: it tracks the tip of upstream cpp.

This fork strives to mirror upstream

The fork is a faithful copy of upstream cpp. ITK-specific configuration is NOT carried here. In particular:

  • POCKETFFT_NAMESPACE (set by ITK to itk::detail::pocketfft) and
  • POCKETFFT_CACHE_SIZE (set by ITK to 16)

are applied in ITK's wrapper header itk_pocketfft.h.in, which #defines them before including the vendored pocketfft_hdronly.h. The vendored copy keeps the upstream defaults (pocketfft and 0).

The only patches this fork may carry on an overlay branch are transient fixes intended to be submitted upstream as pull requests (for example compiler warning fixes). When such a patch is merged upstream, it leaves this fork and the overlay collapses back to a plain mirror of cpp.

Branch naming

Overlay branches are branch-anchored:

for/itk-pocketfft-cpp-<shaN>

where <shaN> is the abbreviated (>= 7 char) commit hash of the overlay tip (the upstream cpp commit when there are no pending transient patches).

Anchor each overlay with a branch, never a tag, and protect it against deletion and force-push so the pinned commit stays reachable.

ITK pins the consumed ref in Modules/ThirdParty/PocketFFT/UpdateFromUpstream.sh (tag=...).

Updating to a newer upstream

  1. Clone this fork; add upstream:
    git clone git@github.com:InsightSoftwareConsortium/pocketfft.git
    cd pocketfft
    git remote add upstream https://github.com/mreineck/pocketfft.git
    git fetch upstream
    
  2. Fast-forward the cpp mirror to the new upstream tip:
    git checkout cpp
    git merge --ff-only upstream/cpp
    git push origin cpp
    
  3. If transient (upstream-bound) patches are still needed, create the overlay on the new tip and apply them; otherwise the overlay tip is just cpp:
    SHAN=$(git rev-parse --short=7 cpp)
    git branch for/itk-pocketfft-cpp-$SHAN cpp
    git push origin for/itk-pocketfft-cpp-$SHAN
    
  4. In ITK, set tag="for/itk-pocketfft-cpp-$SHAN" in Modules/ThirdParty/PocketFFT/UpdateFromUpstream.sh and run it from a clean ITK checkout.
  5. Verify the import: ITKPocketFFT builds, the ITKFFT PocketFFT tests pass, and itk_pocketfft.h remains the only includer of pocketfft_hdronly.h.

See ITK's Third-Party Fork Conventions and Updating Third Party Projects.

About

Fork of https://gitlab.mpcdf.mpg.de/mtr/pocketfft to simplify external contributions

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 99.8%
  • Meson 0.2%