feat: Implement SIMD-optimized Multi-Period Simple Moving Average (SMA) with RingBuffer

- Added SmaVector class for calculating multiple SMAs in parallel using SIMD.
- Introduced RingBuffer class for efficient circular buffer management with running sum.
- Implemented unit tests for RingBuffer to ensure correctness and performance.
- Enhanced Add method in RingBuffer to support bar correction semantics.
- Added methods for calculating Min and Max using SIMD acceleration.
- Improved performance with pinned memory and direct span access for SIMD compatibility.
This commit is contained in:
Miha Kralj
2025-11-29 18:28:42 -08:00
parent 8f6142cfc0
commit 1f80cfda74
11 changed files with 3115 additions and 6 deletions
+15
View File
@@ -0,0 +1,15 @@
# EditorConfig for QuanTAlib
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.cs]
# Suppress SonarQube S3776 - Cognitive Complexity
# High-performance SIMD code intentionally has complex control flow
dotnet_diagnostic.S3776.severity = none