// Deterministic PRNG so every method multiplies identical inputs for a given size. function mulberry32(seed: number) { let a = seed return () => { a |= 0 a = (a + 0x6d2b79f5) | 0 let t = Math.imul(a ^ (a >>> 15), 1 | a) t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t return ((t ^ (t >>> 14)) >>> 0) / 4294967296 } } export function generateMatrix(n: number, seed: number): Float64Array { const rand = mulberry32(seed) const m = new Float64Array(n * n) for (let i = 0; i < m.length; i++) m[i] = rand() - 0.5 return m }