mirror of
https://github.com/gonum/gonum.git
synced 2025-10-20 21:59:25 +08:00
lapack,native,cgo: use lapack.EVComp instead of lapack.Comp in Dhseqr
This commit is contained in:
@@ -1828,7 +1828,7 @@ func (impl Implementation) Dtrtrs(uplo blas.Uplo, trans blas.Transpose, diag bla
|
||||
// URL: http://dx.doi.org/10.1137/S0895479801384585
|
||||
//
|
||||
// Dhseqr is an internal routine. It is exported for testing purposes.
|
||||
func (impl Implementation) Dhseqr(job lapack.EVJob, compz lapack.Comp, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64, z []float64, ldz int, work []float64, lwork int) (unconverged int) {
|
||||
func (impl Implementation) Dhseqr(job lapack.EVJob, compz lapack.EVComp, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64, z []float64, ldz int, work []float64, lwork int) (unconverged int) {
|
||||
switch job {
|
||||
default:
|
||||
panic(badEVJob)
|
||||
@@ -1837,7 +1837,7 @@ func (impl Implementation) Dhseqr(job lapack.EVJob, compz lapack.Comp, n, ilo, i
|
||||
var wantz bool
|
||||
switch compz {
|
||||
default:
|
||||
panic("lapack: bad compz")
|
||||
panic(badEVComp)
|
||||
case lapack.None:
|
||||
case lapack.InitZ, lapack.UpdateZ:
|
||||
wantz = true
|
||||
@@ -1866,7 +1866,8 @@ func (impl Implementation) Dhseqr(job lapack.EVJob, compz lapack.Comp, n, ilo, i
|
||||
}
|
||||
}
|
||||
|
||||
return lapacke.Dhseqr(lapack.Job(job), compz, n, ilo+1, ihi+1, h, ldh, wr, wi, z, ldz, work, lwork)
|
||||
return lapacke.Dhseqr(lapack.Job(job), lapack.Comp(compz), n, ilo+1, ihi+1,
|
||||
h, ldh, wr, wi, z, ldz, work, lwork)
|
||||
}
|
||||
|
||||
// Dgeev computes the eigenvalues and, optionally, the left and/or right
|
||||
|
@@ -146,8 +146,8 @@ const (
|
||||
EigenvaluesOnly EVJob = 'E'
|
||||
EigenvaluesAndSchur EVJob = 'S'
|
||||
|
||||
InitZ Comp = 'I'
|
||||
UpdateZ Comp = 'V'
|
||||
InitZ EVComp = 'I'
|
||||
UpdateZ EVComp = 'V'
|
||||
)
|
||||
|
||||
// UpdateQ specifies that the matrix Q will be updated.
|
||||
|
@@ -118,7 +118,7 @@ import (
|
||||
// URL: http://dx.doi.org/10.1137/S0895479801384585
|
||||
//
|
||||
// Dhseqr is an internal routine. It is exported for testing purposes.
|
||||
func (impl Implementation) Dhseqr(job lapack.EVJob, compz lapack.Comp, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64, z []float64, ldz int, work []float64, lwork int) (unconverged int) {
|
||||
func (impl Implementation) Dhseqr(job lapack.EVJob, compz lapack.EVComp, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64, z []float64, ldz int, work []float64, lwork int) (unconverged int) {
|
||||
var wantt bool
|
||||
switch job {
|
||||
default:
|
||||
@@ -130,7 +130,7 @@ func (impl Implementation) Dhseqr(job lapack.EVJob, compz lapack.Comp, n, ilo, i
|
||||
var wantz bool
|
||||
switch compz {
|
||||
default:
|
||||
panic("lapack: bad compz")
|
||||
panic(badEVComp)
|
||||
case lapack.None:
|
||||
case lapack.InitZ, lapack.UpdateZ:
|
||||
wantz = true
|
||||
|
@@ -16,7 +16,7 @@ import (
|
||||
)
|
||||
|
||||
type Dhseqrer interface {
|
||||
Dhseqr(job lapack.EVJob, compz lapack.Comp, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64,
|
||||
Dhseqr(job lapack.EVJob, compz lapack.EVComp, n, ilo, ihi int, h []float64, ldh int, wr, wi []float64,
|
||||
z []float64, ldz int, work []float64, lwork int) int
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ func testDhseqr(t *testing.T, impl Dhseqrer, i int, test dhseqrTest, job lapack.
|
||||
copyGeneral(h, blas64.General{Rows: n, Cols: n, Stride: max(1, n), Data: test.h})
|
||||
hCopy := cloneGeneral(h)
|
||||
|
||||
var compz lapack.Comp = lapack.None
|
||||
var compz lapack.EVComp = lapack.None
|
||||
z := blas64.General{Stride: max(1, n)}
|
||||
if wantz {
|
||||
// First, let Dhseqr initialize Z to the identity matrix.
|
||||
|
Reference in New Issue
Block a user