mirror of
https://github.com/gonum/gonum.git
synced 2025-10-05 15:16:59 +08:00
lapack/testlapack: use const tol in DlarfgTest
This commit is contained in:

committed by
Vladimír Chalupecký

parent
f81f6eef22
commit
246a5a92a2
@@ -12,6 +12,7 @@ import (
|
|||||||
|
|
||||||
"gonum.org/v1/gonum/blas"
|
"gonum.org/v1/gonum/blas"
|
||||||
"gonum.org/v1/gonum/blas/blas64"
|
"gonum.org/v1/gonum/blas/blas64"
|
||||||
|
"gonum.org/v1/gonum/floats"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Dlarfger interface {
|
type Dlarfger interface {
|
||||||
@@ -19,6 +20,7 @@ type Dlarfger interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func DlarfgTest(t *testing.T, impl Dlarfger) {
|
func DlarfgTest(t *testing.T, impl Dlarfger) {
|
||||||
|
const tol = 1e-14
|
||||||
rnd := rand.New(rand.NewSource(1))
|
rnd := rand.New(rand.NewSource(1))
|
||||||
for i, test := range []struct {
|
for i, test := range []struct {
|
||||||
alpha float64
|
alpha float64
|
||||||
@@ -105,7 +107,7 @@ func DlarfgTest(t *testing.T, impl Dlarfger) {
|
|||||||
}
|
}
|
||||||
blas64.Gemm(blas.Trans, blas.NoTrans, 1, hmat, hmat, 0, eye)
|
blas64.Gemm(blas.Trans, blas.NoTrans, 1, hmat, hmat, 0, eye)
|
||||||
dist := distFromIdentity(n, eye.Data, n)
|
dist := distFromIdentity(n, eye.Data, n)
|
||||||
if dist > 1e-14 {
|
if dist > tol {
|
||||||
t.Errorf("H^T * H is not close to I, dist=%v", dist)
|
t.Errorf("H^T * H is not close to I, dist=%v", dist)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,14 +124,11 @@ func DlarfgTest(t *testing.T, impl Dlarfger) {
|
|||||||
Data: ans,
|
Data: ans,
|
||||||
}
|
}
|
||||||
blas64.Gemv(blas.NoTrans, 1, hmat, xVec, 0, ansVec)
|
blas64.Gemv(blas.NoTrans, 1, hmat, xVec, 0, ansVec)
|
||||||
if math.Abs(ans[0]-beta) > 1e-14 {
|
if math.Abs(ans[0]-beta) > tol {
|
||||||
t.Errorf("Case %v, beta mismatch. Want %v, got %v", i, ans[0], beta)
|
t.Errorf("Case %v, beta mismatch. Want %v, got %v", i, ans[0], beta)
|
||||||
}
|
}
|
||||||
for i := 1; i < n; i++ {
|
if floats.Norm(ans[1:n], math.Inf(1)) > tol {
|
||||||
if math.Abs(ans[i]) > 1e-14 {
|
t.Errorf("Case %v, nonzero answer %v", i, ans[1:n])
|
||||||
t.Errorf("Case %v, nonzero answer %v", i, ans)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user