Skip to content

Commit 76c826f

Browse files
committed
Merge branch 'master' of https://github.com/iparsw/differintP
2 parents 7343633 + fc4c058 commit 76c826f

6 files changed

Lines changed: 307 additions & 111 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
bentchmark.ipynb
2+
13
# Byte-compiled / optimized / DLL files
24
__pycache__/
35
*.py[cod]

changelog.md

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,15 @@
7373

7474
# differintP Changelog
7575

76+
## 0.0.x
77+
7678
### 0.0.2 (7/3/2025)
7779

7880
- Optimized core functions: `GL`, `RL`, and `RLpoint`
7981
- Added GPU-accelerated `GL` (`GL_gpu`) via [CuPy](https://cupy.dev/) (optional dependency)
8082
- Modernized package setup and build system
8183

82-
#### GL:
84+
[Benchmark](https://github.com/iparsw/differintC/blob/main/BENCHMARK.md) Result for GL:
8385

8486
| count | differintP | differint |
8587
| ----- | ----------- | ----------- |
@@ -91,7 +93,7 @@
9193
| 1+e7 | * | * |
9294

9395

94-
#### RL
96+
[Benchmark](https://github.com/iparsw/differintC/blob/main/BENCHMARK.md) Result for RL
9597

9698
| count | differintP | differint |
9799
| ----- | ----------- | ----------- |
@@ -100,7 +102,7 @@
100102
| 1+e4 | 1372.8949 ms| 3.8757 ms |
101103

102104

103-
#### RLpoint
105+
[Benchmark](https://github.com/iparsw/differintC/blob/main/BENCHMARK.md) Result for RLpoint
104106

105107
| count | differintP | differint |
106108
| ----- | ----------- | ----------- |
@@ -109,4 +111,43 @@
109111
| 1+e4 | 1.0374 ms | 9.7152 ms |
110112
| 1+e5 | 12.5892 ms | 108.2792 ms |
111113
| 1+e6 | 126.6893 ms | 995.7722 ms |
112-
| 1+e7 | 1257.0316 ms| * |
114+
| 1+e7 | 1257.0316 ms| * |
115+
116+
117+
### 0.0.3 (7/4/2025)
118+
119+
- **Redesigned `GLpoint`:** Now uses a fast, single-pass recurrence to compute the Grünwald-Letnikov fractional derivative at the endpoint. This new implementation is both efficient and direct.
120+
- Legacy and alternative endpoint methods (`GLpoint_direct` and `GLpoint_via_GL`) have been moved to `special.py` for reference and comparison.
121+
122+
[Benchmark](https://github.com/iparsw/differintC/blob/main/BENCHMARK.md) Result for GLpoint:
123+
124+
| count | differintP | differint | Speedup Factor |
125+
| ----- | ----------- | ------------ | -------------- |
126+
| 1+e2 | 0.0148 ms | 0.0416 ms | x2.81 |
127+
| 1+e3 | 0.0276 ms | 0.4213 ms | x15.26 |
128+
| 1+e4 | 0.0397 ms | 3.8376 ms | x96.66 |
129+
| 1+e5 | 0.3285 ms | 36.303 ms | x110.5 |
130+
| 1+e6 | 5.267 ms | 385.9205 ms | x73.27 |
131+
| 1+e7 | 51.2645 ms | 3674.3541 ms | x71.67 |
132+
133+
134+
- **Optimized `GLI` implementation:**
135+
136+
- Replaced class-based coefficient calculation with direct variable computation for improved clarity and performance.
137+
- Vectorized the 3-point Lagrange interpolation step for all interior points.
138+
- Switched from per-point convolution in a loop to a single global convolution for the entire array, greatly increasing speed.
139+
- Introduced a hybrid approach: uses direct convolution for arrays smaller than 800 points and FFT convolution for larger arrays to ensure optimal performance.
140+
141+
[Benchmark](https://github.com/iparsw/differintC/blob/main/BENCHMARK.md) Result for GLI:
142+
143+
| count | differintP | differint | Speedup Factor |
144+
| ----- | ----------- | ------------ | -------------- |
145+
| 1+e2 | 0.7582 ms | 0.0536 ms | x14.14 |
146+
| 1+e3 | 7.391 ms | 0.1832 ms | x40.34 |
147+
| 1+e4 | 128.3709 ms | 0.6801 ms | x188.7 |
148+
| 2+e4 | 15181 ms | 5.3272 ms | x2849 |
149+
150+
- Wiki Pages for
151+
- `CaputoL1point` `CaputoL2point` `CaputoL2Cpoint` `CaputoFromRLpoint`
152+
- `CRONE` `GL` `GLpoint` `GLI` `GL_gpu`
153+
- `RL` `RLpoint`

0 commit comments

Comments
 (0)