mirror of
https://github.com/gonum/gonum.git
synced 2025-10-19 21:44:41 +08:00
native,cgo: replace lapack.EigComp with lapack.JobEV in Dsyev
This commit is contained in:
@@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
type Dsyever interface {
|
||||
Dsyev(jobz lapack.EigComp, uplo blas.Uplo, n int, a []float64, lda int, w, work []float64, lwork int) (ok bool)
|
||||
Dsyev(jobz lapack.JobEV, uplo blas.Uplo, n int, a []float64, lda int, w, work []float64, lwork int) (ok bool)
|
||||
}
|
||||
|
||||
func DsyevTest(t *testing.T, impl Dsyever) {
|
||||
@@ -54,9 +54,9 @@ func DsyevTest(t *testing.T, impl Dsyever) {
|
||||
}
|
||||
|
||||
work := make([]float64, 1)
|
||||
impl.Dsyev(lapack.EigDecomp, uplo, n, a, lda, w, work, -1)
|
||||
impl.Dsyev(lapack.ComputeEV, uplo, n, a, lda, w, work, -1)
|
||||
work = make([]float64, int(work[0]))
|
||||
impl.Dsyev(lapack.EigDecomp, uplo, n, a, lda, w, work, len(work))
|
||||
impl.Dsyev(lapack.ComputeEV, uplo, n, a, lda, w, work, len(work))
|
||||
|
||||
// Check that the decomposition is correct
|
||||
orig := blas64.General{
|
||||
@@ -105,7 +105,7 @@ func DsyevTest(t *testing.T, impl Dsyever) {
|
||||
for i := range work {
|
||||
work[i] = rnd.Float64()
|
||||
}
|
||||
impl.Dsyev(lapack.EigValueOnly, uplo, n, a, lda, w, work, len(work))
|
||||
impl.Dsyev(lapack.None, uplo, n, a, lda, w, work, len(work))
|
||||
if !floats.EqualApprox(w, wAns, 1e-8) {
|
||||
t.Errorf("Eigenvalue mismatch when vectors not computed")
|
||||
}
|
||||
|
Reference in New Issue
Block a user