OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / lapack / testlapack / dlarf.go
diff --git a/vendor/gonum.org/v1/gonum/lapack/testlapack/dlarf.go b/vendor/gonum.org/v1/gonum/lapack/testlapack/dlarf.go
deleted file mode 100644 (file)
index 61fabca..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-// Copyright ©2015 The Gonum Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package testlapack
-
-import (
-       "testing"
-
-       "golang.org/x/exp/rand"
-
-       "gonum.org/v1/gonum/blas"
-       "gonum.org/v1/gonum/blas/blas64"
-       "gonum.org/v1/gonum/floats"
-)
-
-type Dlarfer interface {
-       Dlarf(side blas.Side, m, n int, v []float64, incv int, tau float64, c []float64, ldc int, work []float64)
-}
-
-func DlarfTest(t *testing.T, impl Dlarfer) {
-       rnd := rand.New(rand.NewSource(1))
-       for i, test := range []struct {
-               m, n, ldc    int
-               incv, lastv  int
-               lastr, lastc int
-               tau          float64
-       }{
-               {
-                       m:   3,
-                       n:   2,
-                       ldc: 2,
-
-                       incv:  4,
-                       lastv: 1,
-
-                       lastr: 2,
-                       lastc: 1,
-
-                       tau: 2,
-               },
-               {
-                       m:   2,
-                       n:   3,
-                       ldc: 3,
-
-                       incv:  4,
-                       lastv: 1,
-
-                       lastr: 1,
-                       lastc: 2,
-
-                       tau: 2,
-               },
-               {
-                       m:   2,
-                       n:   3,
-                       ldc: 3,
-
-                       incv:  4,
-                       lastv: 1,
-
-                       lastr: 0,
-                       lastc: 1,
-
-                       tau: 2,
-               },
-               {
-                       m:   2,
-                       n:   3,
-                       ldc: 3,
-
-                       incv:  4,
-                       lastv: 0,
-
-                       lastr: 0,
-                       lastc: 1,
-
-                       tau: 2,
-               },
-               {
-                       m:   10,
-                       n:   10,
-                       ldc: 10,
-
-                       incv:  4,
-                       lastv: 6,
-
-                       lastr: 9,
-                       lastc: 8,
-
-                       tau: 2,
-               },
-       } {
-               // Construct a random matrix.
-               c := make([]float64, test.ldc*test.m)
-               for i := 0; i <= test.lastr; i++ {
-                       for j := 0; j <= test.lastc; j++ {
-                               c[i*test.ldc+j] = rnd.Float64()
-                       }
-               }
-               cCopy := make([]float64, len(c))
-               copy(cCopy, c)
-               cCopy2 := make([]float64, len(c))
-               copy(cCopy2, c)
-
-               // Test with side right.
-               sz := max(test.m, test.n) // so v works for both right and left side.
-               v := make([]float64, test.incv*sz+1)
-               // Fill with nonzero entries up until lastv.
-               for i := 0; i <= test.lastv; i++ {
-                       v[i*test.incv] = rnd.Float64()
-               }
-               // Construct h explicitly to compare.
-               h := make([]float64, test.n*test.n)
-               for i := 0; i < test.n; i++ {
-                       h[i*test.n+i] = 1
-               }
-               hMat := blas64.General{
-                       Rows:   test.n,
-                       Cols:   test.n,
-                       Stride: test.n,
-                       Data:   h,
-               }
-               vVec := blas64.Vector{
-                       Inc:  test.incv,
-                       Data: v,
-               }
-               blas64.Ger(-test.tau, vVec, vVec, hMat)
-
-               // Apply multiplication (2nd copy is to avoid aliasing).
-               cMat := blas64.General{
-                       Rows:   test.m,
-                       Cols:   test.n,
-                       Stride: test.ldc,
-                       Data:   cCopy,
-               }
-               cMat2 := blas64.General{
-                       Rows:   test.m,
-                       Cols:   test.n,
-                       Stride: test.ldc,
-                       Data:   cCopy2,
-               }
-               blas64.Gemm(blas.NoTrans, blas.NoTrans, 1, cMat2, hMat, 0, cMat)
-
-               // cMat now stores the true answer. Compare with the function call.
-               work := make([]float64, sz)
-               impl.Dlarf(blas.Right, test.m, test.n, v, test.incv, test.tau, c, test.ldc, work)
-               if !floats.EqualApprox(c, cMat.Data, 1e-14) {
-                       t.Errorf("Dlarf mismatch right, case %v. Want %v, got %v", i, cMat.Data, c)
-               }
-
-               // Test on the left side.
-               copy(c, cCopy2)
-               copy(cCopy, c)
-               // Construct h.
-               h = make([]float64, test.m*test.m)
-               for i := 0; i < test.m; i++ {
-                       h[i*test.m+i] = 1
-               }
-               hMat = blas64.General{
-                       Rows:   test.m,
-                       Cols:   test.m,
-                       Stride: test.m,
-                       Data:   h,
-               }
-               blas64.Ger(-test.tau, vVec, vVec, hMat)
-               blas64.Gemm(blas.NoTrans, blas.NoTrans, 1, hMat, cMat2, 0, cMat)
-               impl.Dlarf(blas.Left, test.m, test.n, v, test.incv, test.tau, c, test.ldc, work)
-               if !floats.EqualApprox(c, cMat.Data, 1e-14) {
-                       t.Errorf("Dlarf mismatch left, case %v. Want %v, got %v", i, cMat.Data, c)
-               }
-       }
-}