OSDN Git Service

Thanos did someting
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / lapack / gonum / iparmq.go
diff --git a/vendor/gonum.org/v1/gonum/lapack/gonum/iparmq.go b/vendor/gonum.org/v1/gonum/lapack/gonum/iparmq.go
deleted file mode 100644 (file)
index ea3d6df..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright ©2016 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 gonum
-
-import "math"
-
-// Iparmq returns problem and machine dependent parameters useful for Dhseqr and
-// related subroutines for eigenvalue problems.
-//
-// ispec specifies the parameter to return:
-//  12: Crossover point between Dlahqr and Dlaqr0. Will be at least 11.
-//  13: Deflation window size.
-//  14: Nibble crossover point. Determines when to skip a multi-shift QR sweep.
-//  15: Number of simultaneous shifts in a multishift QR iteration.
-//  16: Select structured matrix multiply.
-// For other values of ispec Iparmq will panic.
-//
-// name is the name of the calling function. name must be in uppercase but this
-// is not checked.
-//
-// opts is not used and exists for future use.
-//
-// n is the order of the Hessenberg matrix H.
-//
-// ilo and ihi specify the block [ilo:ihi+1,ilo:ihi+1] that is being processed.
-//
-// lwork is the amount of workspace available.
-//
-// Except for ispec input parameters are not checked.
-//
-// Iparmq is an internal routine. It is exported for testing purposes.
-func (Implementation) Iparmq(ispec int, name, opts string, n, ilo, ihi, lwork int) int {
-       nh := ihi - ilo + 1
-       ns := 2
-       switch {
-       case nh >= 30:
-               ns = 4
-       case nh >= 60:
-               ns = 10
-       case nh >= 150:
-               ns = max(10, nh/int(math.Log(float64(nh))/math.Ln2))
-       case nh >= 590:
-               ns = 64
-       case nh >= 3000:
-               ns = 128
-       case nh >= 6000:
-               ns = 256
-       }
-       ns = max(2, ns-(ns%2))
-
-       switch ispec {
-       default:
-               panic("lapack: bad ispec")
-
-       case 12:
-               // Matrices of order smaller than nmin get sent to Dlahqr, the
-               // classic double shift algorithm. This must be at least 11.
-               const nmin = 75
-               return nmin
-
-       case 13:
-               const knwswp = 500
-               if nh <= knwswp {
-                       return ns
-               }
-               return 3 * ns / 2
-
-       case 14:
-               // Skip a computationally expensive multi-shift QR sweep with
-               // Dlaqr5 whenever aggressive early deflation finds at least
-               // nibble*(window size)/100 deflations. The default, small,
-               // value reflects the expectation that the cost of looking
-               // through the deflation window with Dlaqr3 will be
-               // substantially smaller.
-               const nibble = 14
-               return nibble
-
-       case 15:
-               return ns
-
-       case 16:
-               if len(name) != 6 {
-                       panic("lapack: bad name")
-               }
-               const (
-                       k22min = 14
-                       kacmin = 14
-               )
-               var acc22 int
-               switch {
-               case name[1:] == "GGHRD" || name[1:] == "GGHD3":
-                       acc22 = 1
-                       if nh >= k22min {
-                               acc22 = 2
-                       }
-               case name[3:] == "EXC":
-                       if nh >= kacmin {
-                               acc22 = 1
-                       }
-                       if nh >= k22min {
-                               acc22 = 2
-                       }
-               case name[1:] == "HSEQR" || name[1:5] == "LAQR":
-                       if ns >= kacmin {
-                               acc22 = 1
-                       }
-                       if ns >= k22min {
-                               acc22 = 2
-                       }
-               }
-               return acc22
-       }
-}