lapack: add BalanceNone const

This commit is contained in:
Vladimir Chalupecky
2018-08-22 15:21:16 +02:00
committed by Vladimír Chalupecký
parent b132fde8ea
commit 3092bd2577
5 changed files with 14 additions and 13 deletions

View File

@@ -24,7 +24,7 @@ func (impl Implementation) Dgebak(job lapack.BalanceJob, side lapack.EVSide, n,
switch job {
default:
panic(badBalanceJob)
case lapack.None, lapack.Permute, lapack.Scale, lapack.PermuteScale:
case lapack.BalanceNone, lapack.Permute, lapack.Scale, lapack.PermuteScale:
}
switch side {
default:
@@ -40,7 +40,7 @@ func (impl Implementation) Dgebak(job lapack.BalanceJob, side lapack.EVSide, n,
}
// Quick return if possible.
if n == 0 || m == 0 || job == lapack.None {
if n == 0 || m == 0 || job == lapack.BalanceNone {
return
}

View File

@@ -35,14 +35,14 @@ import (
// the computed eigenvalues and/or eigenvectors.
//
// job specifies the operations that will be performed on A.
// If job is lapack.None, Dgebal sets scale[i] = 1 for all i and returns ilo=0, ihi=n-1.
// If job is lapack.BalanceNone, Dgebal sets scale[i] = 1 for all i and returns ilo=0, ihi=n-1.
// If job is lapack.Permute, only permuting will be done.
// If job is lapack.Scale, only scaling will be done.
// If job is lapack.PermuteScale, both permuting and scaling will be done.
//
// On return, if job is lapack.Permute or lapack.PermuteScale, it will hold that
// A[i,j] == 0, for i > j and j ∈ {0, ..., ilo-1, ihi+1, ..., n-1}.
// If job is lapack.None or lapack.Scale, or if n == 0, it will hold that
// If job is lapack.BalanceNone or lapack.Scale, or if n == 0, it will hold that
// ilo == 0 and ihi == n-1.
//
// On return, scale will contain information about the permutations and scaling
@@ -58,7 +58,7 @@ func (impl Implementation) Dgebal(job lapack.BalanceJob, n int, a []float64, lda
switch job {
default:
panic(badBalanceJob)
case lapack.None, lapack.Permute, lapack.Scale, lapack.PermuteScale:
case lapack.BalanceNone, lapack.Permute, lapack.Scale, lapack.PermuteScale:
}
checkMatrix(n, n, a, lda)
if len(scale) != n {
@@ -68,7 +68,7 @@ func (impl Implementation) Dgebal(job lapack.BalanceJob, n int, a []float64, lda
ilo = 0
ihi = n - 1
if n == 0 || job == lapack.None {
if n == 0 || job == lapack.BalanceNone {
for i := range scale {
scale[i] = 1
}

View File

@@ -168,6 +168,7 @@ const (
Permute BalanceJob = 'P'
Scale BalanceJob = 'S'
PermuteScale BalanceJob = 'B'
BalanceNone BalanceJob = 'N'
)
// SchurJob specifies whether the Schur form is computed in Dhseqr.

View File

@@ -22,7 +22,7 @@ type Dgebaker interface {
func DgebakTest(t *testing.T, impl Dgebaker) {
rnd := rand.New(rand.NewSource(1))
for _, job := range []lapack.BalanceJob{lapack.None, lapack.Permute, lapack.Scale, lapack.PermuteScale} {
for _, job := range []lapack.BalanceJob{lapack.BalanceNone, lapack.Permute, lapack.Scale, lapack.PermuteScale} {
for _, side := range []lapack.EVSide{lapack.EVLeft, lapack.EVRight} {
for _, n := range []int{0, 1, 2, 3, 4, 5, 6, 10, 18, 31, 53} {
for _, extra := range []int{0, 11} {

View File

@@ -22,7 +22,7 @@ type Dgebaler interface {
func DgebalTest(t *testing.T, impl Dgebaler) {
rnd := rand.New(rand.NewSource(1))
for _, job := range []lapack.BalanceJob{lapack.None, lapack.Permute, lapack.Scale, lapack.PermuteScale} {
for _, job := range []lapack.BalanceJob{lapack.BalanceNone, lapack.Permute, lapack.Scale, lapack.PermuteScale} {
for _, n := range []int{0, 1, 2, 3, 4, 5, 6, 10, 18, 31, 53, 100} {
for _, extra := range []int{0, 11} {
for cas := 0; cas < 100; cas++ {
@@ -65,12 +65,12 @@ func testDgebal(t *testing.T, impl Dgebaler, job lapack.BalanceJob, a blas64.Gen
return
}
if job == lapack.None {
if job == lapack.BalanceNone {
if ilo != 0 {
t.Errorf("%v: unexpected ilo when job=None. Want 0, got %v", prefix, ilo)
t.Errorf("%v: unexpected ilo when job=BalanceNone. Want 0, got %v", prefix, ilo)
}
if ihi != n-1 {
t.Errorf("%v: unexpected ihi when job=None. Want %v, got %v", prefix, n-1, ihi)
t.Errorf("%v: unexpected ihi when job=BalanceNone. Want %v, got %v", prefix, n-1, ihi)
}
k := -1
for i := range scale {
@@ -80,10 +80,10 @@ func testDgebal(t *testing.T, impl Dgebaler, job lapack.BalanceJob, a blas64.Gen
}
}
if k != -1 {
t.Errorf("%v: unexpected scale[%v] when job=None. Want 1, got %v", prefix, k, scale[k])
t.Errorf("%v: unexpected scale[%v] when job=BalanceNone. Want 1, got %v", prefix, k, scale[k])
}
if !equalApproxGeneral(a, want, 0) {
t.Errorf("%v: unexpected modification of A when job=None", prefix)
t.Errorf("%v: unexpected modification of A when job=BalanceNone", prefix)
}
return
}