1 // Copyright ©2017 The Gonum Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
11 "golang.org/x/exp/rand"
13 "gonum.org/v1/gonum/blas/blas64"
16 func TestDlagsy(t *testing.T) {
18 rnd := rand.New(rand.NewSource(1))
19 for _, n := range []int{0, 1, 2, 3, 4, 5, 10, 50} {
20 for _, lda := range []int{0, 2*n + 1} {
24 d := make([]float64, n)
32 Data: nanSlice(n * lda),
34 work := make([]float64, a.Rows+a.Cols)
36 Dlagsy(a.Rows, 0, d, a.Data, a.Stride, rnd, work)
40 for i := 0; i < n; i++ {
41 for j := 0; j < n; j++ {
42 aij := a.Data[i*a.Stride+j]
46 if i == j && math.Abs(aij-1) > tol {
49 if i != j && math.Abs(aij) > tol {
58 t.Errorf("Case n=%v,lda=%v: unexpected result", n, lda)
64 func TestDlagge(t *testing.T) {
65 rnd := rand.New(rand.NewSource(1))
66 for _, n := range []int{0, 1, 2, 3, 4, 5, 10, 50} {
67 for _, lda := range []int{0, 2*n + 1} {
71 d := make([]float64, n)
79 Data: nanSlice(n * lda),
81 work := make([]float64, a.Rows+a.Cols)
83 Dlagge(a.Rows, a.Cols, 0, 0, d, a.Data, a.Stride, rnd, work)
85 if !isOrthonormal(a) {
86 t.Errorf("Case n=%v,lda=%v: unexpected result", n, lda)