mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-13 15:00:18 +01:00
feat(modules): migrate to go modules and bump go version 1.14.4
- migrate to go module - bump go version 1.14.4 Signed-off-by: prateekpandey14 <prateek.pandey@mayadata.io>
This commit is contained in:
parent
f5ae3ff476
commit
fa76b346a0
837 changed files with 104140 additions and 158314 deletions
59
vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr1.go
generated
vendored
Normal file
59
vendor/gonum.org/v1/gonum/lapack/gonum/dlaqr1.go
generated
vendored
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
// 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"
|
||||
|
||||
// Dlaqr1 sets v to a scalar multiple of the first column of the product
|
||||
// (H - (sr1 + i*si1)*I)*(H - (sr2 + i*si2)*I)
|
||||
// where H is a 2×2 or 3×3 matrix, I is the identity matrix of the same size,
|
||||
// and i is the imaginary unit. Scaling is done to avoid overflows and most
|
||||
// underflows.
|
||||
//
|
||||
// n is the order of H and must be either 2 or 3. It must hold that either sr1 =
|
||||
// sr2 and si1 = -si2, or si1 = si2 = 0. The length of v must be equal to n. If
|
||||
// any of these conditions is not met, Dlaqr1 will panic.
|
||||
//
|
||||
// Dlaqr1 is an internal routine. It is exported for testing purposes.
|
||||
func (impl Implementation) Dlaqr1(n int, h []float64, ldh int, sr1, si1, sr2, si2 float64, v []float64) {
|
||||
switch {
|
||||
case n != 2 && n != 3:
|
||||
panic("lapack: n must be 2 or 3")
|
||||
case ldh < n:
|
||||
panic(badLdH)
|
||||
case len(h) < (n-1)*ldh+n:
|
||||
panic(shortH)
|
||||
case !((sr1 == sr2 && si1 == -si2) || (si1 == 0 && si2 == 0)):
|
||||
panic(badShifts)
|
||||
case len(v) != n:
|
||||
panic(shortV)
|
||||
}
|
||||
|
||||
if n == 2 {
|
||||
s := math.Abs(h[0]-sr2) + math.Abs(si2) + math.Abs(h[ldh])
|
||||
if s == 0 {
|
||||
v[0] = 0
|
||||
v[1] = 0
|
||||
} else {
|
||||
h21s := h[ldh] / s
|
||||
v[0] = h21s*h[1] + (h[0]-sr1)*((h[0]-sr2)/s) - si1*(si2/s)
|
||||
v[1] = h21s * (h[0] + h[ldh+1] - sr1 - sr2)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
s := math.Abs(h[0]-sr2) + math.Abs(si2) + math.Abs(h[ldh]) + math.Abs(h[2*ldh])
|
||||
if s == 0 {
|
||||
v[0] = 0
|
||||
v[1] = 0
|
||||
v[2] = 0
|
||||
} else {
|
||||
h21s := h[ldh] / s
|
||||
h31s := h[2*ldh] / s
|
||||
v[0] = (h[0]-sr1)*((h[0]-sr2)/s) - si1*(si2/s) + h[1]*h21s + h[2]*h31s
|
||||
v[1] = h21s*(h[0]+h[ldh+1]-sr1-sr2) + h[ldh+2]*h31s
|
||||
v[2] = h31s*(h[0]+h[2*ldh+2]-sr1-sr2) + h21s*h[2*ldh+1]
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue