// Copyright (c) 2026 Petr BalvĂ­n (https://petrbalvin.org) // SPDX-License-Identifier: MIT package linalg import ( "math" "testing" ) // TestDetFactorsThroughParallelDispatch drives base.Factor's rank-1 // update dispatch through the public Det entry: a 200 by 200 upper // triangular matrix keeps every pivot on the diagonal, and the first // pivot's update spans 199 rows times 200 columns, past the dispatch // quantum, so the crewed path runs rather than the inline one. No row // changes under the elimination, since the multiplier of every row is // zero, so the determinant is exactly 2 to the 200th, which float64 // holds as an exact power of two. func TestDetFactorsThroughParallelDispatch(t *testing.T) { const n = 200 vals := make([]float64, n*n) for i := range n { for j := i; j < n; j++ { vals[i*n+j] = 2 } } d, err := Det(mustFloats(t, vals, n, n)) if err != nil { t.Fatalf("Det: %v", err) } if want := math.Ldexp(1, 200); d != want { t.Fatalf("Det = %v, want exactly %v", d, want) } }