fn Mat(comptime k: u8) type
fn Mat(comptime k: u8) type { return struct { const Self = @This(); rows: [k]PolyVec(k), fn uniform(seed: [32]u8, comptime transposed: bool) Self { var ret: Self = undefined; var i: u8 = 0; while (i < k) : (i += 1) { var j: u8 = 0; while (j < k) : (j += 1) { ret.rows[i].ps[j] = Poly.uniform( seed, if (transposed) i else j, if (transposed) j else i, ); } } return ret; } // Returns transpose of A fn transpose(m: Self) Self { var ret: Self = undefined; for (0..k) |i| { for (0..k) |j| { ret.rows[i].ps[j] = m.rows[j].ps[i]; } } return ret; } }; }