You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+17Lines changed: 17 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [Unreleased]
9
+
10
+
### Added
11
+
-**Conditional BLAS linking for Rust backend** — Apple Accelerate on macOS, OpenBLAS on Linux.
12
+
Pre-built wheels now use platform-optimized BLAS for matrix-vector and matrix-matrix
13
+
operations across all Rust-accelerated code paths (weights, OLS, TROP). Windows continues
14
+
using pure Rust (no external dependencies). Improves Rust backend performance at larger scales.
15
+
-`rust_backend_info()` diagnostic function in `diff_diff._backend` — reports compile-time
16
+
BLAS feature status (blas, accelerate, openblas)
17
+
18
+
### Fixed
19
+
-**Rust SDID backend performance regression at scale** — Frank-Wolfe solver was 3-10x slower than pure Python at 1k+ scale
20
+
- Gram-accelerated FW loop for time weights: precomputes A^T@A, reducing per-iteration cost from O(N×T0) to O(T0) (~100x speedup per iteration at 5k scale)
21
+
- Allocation-free FW loop for unit weights: 1 GEMV per iteration (was 3), zero heap allocations (was ~8)
22
+
- Dispatch based on problem dimensions: Gram path when T0 < N, standard path when T0 >= N
23
+
- Rust backend now faster than pure Python at all scales
0 commit comments