native,cgo: replace lapack.EigComp with lapack.JobEV in Dsyev

This commit is contained in:
Vladimir Chalupecky
2016-10-05 22:47:24 +09:00
parent 5877fdce9e
commit efcc5f8fec
5 changed files with 13 additions and 13 deletions

View File

@@ -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")
}