lapack/testlapack: add test for randomOrthogonal
... and remove the orthogonality assertion in randomOrthogonal.
MODIFY
lapack/testlapack/matgen.go
lapack/testlapack/matgen.go
@@ -675,9 +675,6 @@ func randomOrthogonal(n int, rnd *rand.Rand) blas64.General {
// Compute Q * H_j and store the result into Q.
applyReflector(q, q, v)
}
- if !isOrthogonal(q) {
- panic("Q not orthogonal")
- }
return q
}

MODIFY
lapack/testlapack/matgen_test.go
lapack/testlapack/matgen_test.go
@@ -89,3 +89,13 @@ func TestDlagge(t *testing.T) {
}
}
+
+func TestRandomOrthogonal(t *testing.T) {
+ rnd := rand.New(rand.NewSource(1))
+ for n := 1; n <= 20; n++ {
+ q := randomOrthogonal(n, rnd)
+ if !isOrthogonal(q) {
+ t.Errorf("Case n=%v: Q not orthogonal", n)
+ }
+ }
+}

lapack/testlapack: add test for randomOrthogonal

... and remove the orthogonality assertion in randomOrthogonal.