Skip to content

Commit 88c8861

Browse files
author
peng.li24
committed
bundle pocketfft, drop pocketfft-dev dependency
- Copy pocketfft_hdronly.h into scipy/pocketfft/ - Change fft.h include to local relative path - Remove pocketfft from CMake deps, target_link_libraries, README - Remove pocketfft include from tests/Makefile - Update core.h and README to reflect bundled status
1 parent eb5d340 commit 88c8861

6 files changed

Lines changed: 3864 additions & 12 deletions

File tree

CMakeLists.txt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ target_include_directories(scipycpp INTERFACE
2626
)
2727
target_compile_features(scipycpp INTERFACE cxx_std_17)
2828

29-
# Transitive dependencies: scipycpp → pocketfft, Eigen3, numpcpp
29+
# Transitive dependencies: scipycpp → Eigen3, numpcpp
3030
target_link_libraries(scipycpp INTERFACE
31-
pocketfft::pocketfft
3231
Eigen3::Eigen
3332
numpycpp::numpycpp
3433
)
@@ -81,15 +80,15 @@ set(CPACK_DEBIAN_FILE_NAME "scipycpp-dev-${CPACK_PACKAGE_VERSION
8180
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
8281

8382
# Recommend the required dependencies
84-
set(CPACK_DEBIAN_PACKAGE_DEPENDS "numpycpp-dev, libeigen3-dev, pocketfft-dev")
83+
set(CPACK_DEBIAN_PACKAGE_DEPENDS "numpycpp-dev, libeigen3-dev")
8584

8685
include(CPack)
8786
add_custom_target(deb
8887
COMMAND cpack -G DEB --config CPackConfig.cmake
8988
COMMENT "Packaging scipycpp-dev-${CPACK_PACKAGE_VERSION}-Linux.deb")
9089

9190
message(STATUS "scipycpp v${PROJECT_VERSION} (header-only C++ library)")
92-
message(STATUS " Dependencies: numpcpp + Eigen3 + pocketfft")
93-
message(STATUS " KDTree: bundled ckdtree (O(log n) true kd-tree)")
91+
message(STATUS " Dependencies: numpcpp + Eigen3")
92+
message(STATUS " Bundled: pocketfft (FFT) + ckdtree (KDTree)")
9493
message(STATUS " DEB: make deb → scipycpp-dev-${CPACK_PACKAGE_VERSION}-Linux.deb")
9594
message(STATUS " Test: cd tests/ && make → build + run alignment tests")

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
**bit-level precision alignment** against Python scipy.
1010

1111
Built on proven C++ libraries:
12-
- **[numpycpp](https://github.com/array2d/numpycpp)** — numpy primitives + SVML bridge
12+
- **[numpycpp](https://github.com/array2d/numpycpp)** — numpy primitives
1313
- **[Eigen3](https://eigen.tuxfamily.org/)** — linear algebra (solve, inv, det, eig, svd, cholesky)
14-
- **[pocketfft](https://github.com/mreineck/pocketfft)** — FFT (same library numpy/scipy use internally)
14+
- **pocketfft** (bundled) — FFT (same library numpy/scipy use internally)
15+
- **ckdtree** (bundled) — KDTree from scipy.spatial
1516

1617
## Quick Start
1718

@@ -58,7 +59,6 @@ auto euler = rot.as_euler_vec("xyz"); // returns [rx, ry, rz]
5859
# Install dependencies
5960
sudo dpkg -i numpycpp-dev-*.deb
6061
sudo apt-get install libeigen3-dev
61-
sudo dpkg -i pocketfft-dev-*.deb
6262
6363
# Install scipycpp
6464
mkdir build && cd build

scipy/core.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Native C++ scipy implementations — header-only, zero pybind11 dependency.
22
//
3-
// Based on: numpcpp (numpy primitives), Eigen3 (linalg), pocketfft (FFT).
3+
// Based on: numpcpp (numpy primitives), Eigen3 (linalg).
4+
// Bundles: pocketfft (FFT), ckdtree (KDTree).
45
//
56
// This is the main entry point that includes all scipy submodules.
67

scipy/fft.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
#pragma once
1010

11-
#include <pocketfft_hdronly.h>
11+
#include "pocketfft/pocketfft_hdronly.h"
1212
#include <vector>
1313
#include <complex>
1414
#include <cstddef>

0 commit comments

Comments
 (0)