Add boundary test coverage: stableNorm, LinSpaced, complex GEMV, triangular solve
Summary
- stable_norm.cpp: Test stableNorm/blueNorm at the 4096-element block boundary and with scale transitions across blocks (tiny→huge, huge→tiny, matrix columns with different magnitudes)
- nullary.cpp: Test LinSpaced at vectorization packet boundary sizes with element-by-element verification, including the flip path. Add integer LinSpaced divisor path tests.
- product_extra.cpp: Test complex GEMV with all conjugation combinations (none, lhs, rhs, both) at sizes exercising packet boundaries, including both ColMajor and RowMajor layouts.
- product_trsolve.cpp: Test triangular solve scalar fallback path (OtherInnerStride != 1) at blocking boundary sizes (1–64 including 47/48/49). Covers Lower, Upper, UnitLower, InnerStride=2 and 3, vector RHS, and complex conjugate/adjoint variants.
~400 lines added across 4 files. All tests pass.
Test plan
-
ctest -R stable_norm— all subtests pass -
ctest -R nullary— all subtests pass -
ctest -R product_extra— all subtests pass -
ctest -R product_trsolve— all subtests pass
Edited by Rasmus Munk Larsen