mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-24 05:28:05 +00:00
Merge branch 'dev'
This commit is contained in:
@@ -15,8 +15,6 @@
|
||||
|
||||
- SP15 is a fixed-coefficient symmetric FIR filter with 15 weights: $[-3, -6, -5, 3, 21, 46, 67, 74, 67, 46, 21, 3, -5, -6, -3]$ divided by 320.
|
||||
- No configurable parameters; computation is stateless per bar.
|
||||
- Output range: Tracks input.
|
||||
- Requires `Period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
SP15 is a fixed-coefficient symmetric FIR filter with 15 weights: $[-3, -6, -5, 3, 21, 46, 67, 74, 67, 46, 21, 3, -5, -6, -3]$ divided by 320. The weights were designed by John Spencer to have zero frequency response at periods 4 and 5 (frequencies $2\pi/4$ and $2\pi/5$), making the filter effective at removing quarterly and quintile seasonal components from economic time series. The negative edge weights provide bandpass-like characteristics, and the fixed design requires no parameters beyond the source series.
|
||||
@@ -128,4 +126,4 @@ O(1) per bar (N is fixed at 15). The dot product takes ~60 cycles on modern x86.
|
||||
| Negative edge weights | Yes | Signed FMA; no special masking |
|
||||
| Fixed-N: 15 taps | Yes | Compiler can fully unroll the 15-FMA loop at O3 |
|
||||
|
||||
With symmetric folding (8 unique weight pairs), the 15-tap dot product reduces to ~8 FMAs. AVX2 processes 4 output bars per outer iteration. Batch throughput: ~2 cycles per output bar at peak. Unrolled codegen fits entirely in instruction cache.
|
||||
With symmetric folding (8 unique weight pairs), the 15-tap dot product reduces to ~8 FMAs. AVX2 processes 4 output bars per outer iteration. Batch throughput: ~2 cycles per output bar at peak. Unrolled codegen fits entirely in instruction cache.
|
||||
Reference in New Issue
Block a user