mirror of
https://github.com/gonum/gonum.git
synced 2025-10-06 07:37:03 +08:00
mat: clean up lint
This commit is contained in:
@@ -134,7 +134,10 @@ func TestCholeskySolveTo(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var x Dense
|
var x Dense
|
||||||
chol.SolveTo(&x, test.b)
|
err := chol.SolveTo(&x, test.b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from Cholesky solve: %v", err)
|
||||||
|
}
|
||||||
if !EqualApprox(&x, test.ans, 1e-12) {
|
if !EqualApprox(&x, test.ans, 1e-12) {
|
||||||
t.Error("incorrect Cholesky solve solution")
|
t.Error("incorrect Cholesky solve solution")
|
||||||
}
|
}
|
||||||
@@ -195,13 +198,19 @@ func TestCholeskySolveCholTo(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var x Dense
|
var x Dense
|
||||||
chola.SolveCholTo(&x, &cholb)
|
err := chola.SolveCholTo(&x, &cholb)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from Cholesky solve: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
var ans Dense
|
var ans Dense
|
||||||
ans.Mul(test.a, &x)
|
ans.Mul(test.a, &x)
|
||||||
if !EqualApprox(&ans, test.b, 1e-12) {
|
if !EqualApprox(&ans, test.b, 1e-12) {
|
||||||
var y Dense
|
var y Dense
|
||||||
y.Solve(test.a, test.b)
|
err := y.Solve(test.a, test.b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from dense solve: %v", err)
|
||||||
|
}
|
||||||
t.Errorf("incorrect Cholesky solve solution product\ngot solution:\n%.4v\nwant solution\n%.4v",
|
t.Errorf("incorrect Cholesky solve solution product\ngot solution:\n%.4v\nwant solution\n%.4v",
|
||||||
Formatted(&x), Formatted(&y))
|
Formatted(&x), Formatted(&y))
|
||||||
}
|
}
|
||||||
@@ -239,7 +248,10 @@ func TestCholeskySolveVecTo(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var x VecDense
|
var x VecDense
|
||||||
chol.SolveVecTo(&x, test.b)
|
err := chol.SolveVecTo(&x, test.b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from Cholesky solve: %v", err)
|
||||||
|
}
|
||||||
if !EqualApprox(&x, test.ans, 1e-12) {
|
if !EqualApprox(&x, test.ans, 1e-12) {
|
||||||
t.Error("incorrect Cholesky solve solution")
|
t.Error("incorrect Cholesky solve solution")
|
||||||
}
|
}
|
||||||
@@ -326,7 +338,10 @@ func TestCholeskyInverseTo(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sInv SymDense
|
var sInv SymDense
|
||||||
chol.InverseTo(&sInv)
|
err := chol.InverseTo(&sInv)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from Cholesky inverse: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
var ans Dense
|
var ans Dense
|
||||||
ans.Mul(&sInv, &s)
|
ans.Mul(&sInv, &s)
|
||||||
@@ -672,7 +687,10 @@ func BenchmarkCholeskyInverseTo(b *testing.B) {
|
|||||||
|
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
chol.InverseTo(dst)
|
err := chol.InverseTo(dst)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error from Cholesky inverse: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@@ -545,7 +545,7 @@ func (m *Dense) Exp(a Matrix) {
|
|||||||
vpu.Add(v, u)
|
vpu.Add(v, u)
|
||||||
vmu.Sub(v, u)
|
vmu.Sub(v, u)
|
||||||
|
|
||||||
m.Solve(vmu, vpu)
|
_ = m.Solve(vmu, vpu)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -615,7 +615,7 @@ func (m *Dense) Exp(a Matrix) {
|
|||||||
vpu.Add(v, u)
|
vpu.Add(v, u)
|
||||||
vmu.Sub(v, u)
|
vmu.Sub(v, u)
|
||||||
|
|
||||||
m.Solve(vmu, vpu)
|
_ = m.Solve(vmu, vpu)
|
||||||
|
|
||||||
for ; s > 0; s-- {
|
for ; s > 0; s-- {
|
||||||
m.Mul(m, m)
|
m.Mul(m, m)
|
||||||
|
@@ -584,7 +584,10 @@ func marshalBinaryBenchDense(b *testing.B, size int) {
|
|||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
m.MarshalBinary()
|
_, err := m.MarshalBinary()
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,7 +609,10 @@ func unmarshalBinaryBenchDense(b *testing.B, size int) {
|
|||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
var m Dense
|
var m Dense
|
||||||
m.UnmarshalBinary(buf)
|
err := m.UnmarshalBinary(buf)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -625,7 +631,10 @@ func marshalBinaryToBenchDense(b *testing.B, size int) {
|
|||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
m.MarshalBinaryTo(w)
|
_, err := m.MarshalBinaryTo(w)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -663,7 +672,10 @@ func unmarshalBinaryFromBenchDense(b *testing.B, size int) {
|
|||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
var m Dense
|
var m Dense
|
||||||
m.UnmarshalBinaryFrom(r)
|
_, err := m.UnmarshalBinaryFrom(r)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
r.reset()
|
r.reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -682,7 +694,10 @@ func marshalBinaryBenchVecDense(b *testing.B, size int) {
|
|||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
vec.MarshalBinary()
|
_, err := vec.MarshalBinary()
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -704,7 +719,10 @@ func unmarshalBinaryBenchVecDense(b *testing.B, size int) {
|
|||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
var vec VecDense
|
var vec VecDense
|
||||||
vec.UnmarshalBinary(buf)
|
err := vec.UnmarshalBinary(buf)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -723,7 +741,10 @@ func marshalBinaryToBenchVecDense(b *testing.B, size int) {
|
|||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
vec.MarshalBinaryTo(w)
|
_, err := vec.MarshalBinaryTo(w)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -746,7 +767,10 @@ func unmarshalBinaryFromBenchVecDense(b *testing.B, size int) {
|
|||||||
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
var vec VecDense
|
var vec VecDense
|
||||||
vec.UnmarshalBinaryFrom(r)
|
_, err := vec.UnmarshalBinaryFrom(r)
|
||||||
|
if err != nil {
|
||||||
|
b.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
r.reset()
|
r.reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
//nolint:deadcode,unused
|
||||||
package mat
|
package mat
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
@@ -79,7 +79,10 @@ func TestLQSolveTo(t *testing.T) {
|
|||||||
var x Dense
|
var x Dense
|
||||||
lq := &LQ{}
|
lq := &LQ{}
|
||||||
lq.Factorize(a)
|
lq.Factorize(a)
|
||||||
lq.SolveTo(&x, trans, b)
|
err := lq.SolveTo(&x, trans, b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from LQ solve: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Test that the normal equations hold.
|
// Test that the normal equations hold.
|
||||||
// Aᵀ * A * x = Aᵀ * b if !trans
|
// Aᵀ * A * x = Aᵀ * b if !trans
|
||||||
@@ -132,7 +135,10 @@ func TestLQSolveToVec(t *testing.T) {
|
|||||||
var x VecDense
|
var x VecDense
|
||||||
lq := &LQ{}
|
lq := &LQ{}
|
||||||
lq.Factorize(a)
|
lq.Factorize(a)
|
||||||
lq.SolveVecTo(&x, trans, b)
|
err := lq.SolveVecTo(&x, trans, b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from LQ solve: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Test that the normal equations hold.
|
// Test that the normal equations hold.
|
||||||
// Aᵀ * A * x = Aᵀ * b if !trans
|
// Aᵀ * A * x = Aᵀ * b if !trans
|
||||||
|
@@ -103,7 +103,10 @@ func TestQRSolveTo(t *testing.T) {
|
|||||||
var x Dense
|
var x Dense
|
||||||
var qr QR
|
var qr QR
|
||||||
qr.Factorize(a)
|
qr.Factorize(a)
|
||||||
qr.SolveTo(&x, trans, b)
|
err := qr.SolveTo(&x, trans, b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from QR solve: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Test that the normal equations hold.
|
// Test that the normal equations hold.
|
||||||
// Aᵀ * A * x = Aᵀ * b if !trans
|
// Aᵀ * A * x = Aᵀ * b if !trans
|
||||||
@@ -156,7 +159,10 @@ func TestQRSolveVecTo(t *testing.T) {
|
|||||||
var x VecDense
|
var x VecDense
|
||||||
var qr QR
|
var qr QR
|
||||||
qr.Factorize(a)
|
qr.Factorize(a)
|
||||||
qr.SolveVecTo(&x, trans, b)
|
err := qr.SolveVecTo(&x, trans, b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from QR solve: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Test that the normal equations hold.
|
// Test that the normal equations hold.
|
||||||
// Aᵀ * A * x = Aᵀ * b if !trans
|
// Aᵀ * A * x = Aᵀ * b if !trans
|
||||||
|
@@ -214,7 +214,10 @@ func TestSolve(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var x Dense
|
var x Dense
|
||||||
x.Solve(a, b)
|
err := x.Solve(a, b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from dense solve: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Test that the normal equations hold.
|
// Test that the normal equations hold.
|
||||||
// Aᵀ * A * x = Aᵀ * b
|
// Aᵀ * A * x = Aᵀ * b
|
||||||
@@ -233,10 +236,10 @@ func TestSolve(t *testing.T) {
|
|||||||
Solve(a, b Matrix) error
|
Solve(a, b Matrix) error
|
||||||
}
|
}
|
||||||
rd := receiver.(Solver)
|
rd := receiver.(Solver)
|
||||||
rd.Solve(a, b)
|
_ = rd.Solve(a, b)
|
||||||
}
|
}
|
||||||
denseComparison := func(receiver, a, b *Dense) {
|
denseComparison := func(receiver, a, b *Dense) {
|
||||||
receiver.Solve(a, b)
|
_ = receiver.Solve(a, b)
|
||||||
}
|
}
|
||||||
testTwoInput(t, "Solve", &Dense{}, method, denseComparison, legalTypesAll, legalSizeSolve, 1e-7)
|
testTwoInput(t, "Solve", &Dense{}, method, denseComparison, legalTypesAll, legalSizeSolve, 1e-7)
|
||||||
}
|
}
|
||||||
@@ -269,7 +272,10 @@ func TestSolveVec(t *testing.T) {
|
|||||||
b.SetVec(i, rand.Float64())
|
b.SetVec(i, rand.Float64())
|
||||||
}
|
}
|
||||||
var x VecDense
|
var x VecDense
|
||||||
x.SolveVec(a, b)
|
err := x.SolveVec(a, b)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error from dense vector solve: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// Test that the normal equations hold.
|
// Test that the normal equations hold.
|
||||||
// Aᵀ * A * x = Aᵀ * b
|
// Aᵀ * A * x = Aᵀ * b
|
||||||
@@ -288,10 +294,10 @@ func TestSolveVec(t *testing.T) {
|
|||||||
SolveVec(a Matrix, b Vector) error
|
SolveVec(a Matrix, b Vector) error
|
||||||
}
|
}
|
||||||
rd := receiver.(SolveVecer)
|
rd := receiver.(SolveVecer)
|
||||||
rd.SolveVec(a, b.(Vector))
|
_ = rd.SolveVec(a, b.(Vector))
|
||||||
}
|
}
|
||||||
denseComparison := func(receiver, a, b *Dense) {
|
denseComparison := func(receiver, a, b *Dense) {
|
||||||
receiver.Solve(a, b)
|
_ = receiver.Solve(a, b)
|
||||||
}
|
}
|
||||||
testTwoInput(t, "SolveVec", &VecDense{}, method, denseComparison, legalTypesMatrixVector, legalSizeSolve, 1e-12)
|
testTwoInput(t, "SolveVec", &VecDense{}, method, denseComparison, legalTypesMatrixVector, legalSizeSolve, 1e-12)
|
||||||
}
|
}
|
||||||
|
@@ -631,7 +631,7 @@ func (s *SymDense) GrowSym(n int) Symmetric {
|
|||||||
// PowPSD computes a^pow where a is a positive symmetric definite matrix.
|
// PowPSD computes a^pow where a is a positive symmetric definite matrix.
|
||||||
//
|
//
|
||||||
// PowPSD returns an error if the matrix is not not positive symmetric definite
|
// PowPSD returns an error if the matrix is not not positive symmetric definite
|
||||||
// or the Eigendecomposition is not successful.
|
// or the Eigen decomposition is not successful.
|
||||||
func (s *SymDense) PowPSD(a Symmetric, pow float64) error {
|
func (s *SymDense) PowPSD(a Symmetric, pow float64) error {
|
||||||
dim := a.Symmetric()
|
dim := a.Symmetric()
|
||||||
s.reuseAsNonZeroed(dim)
|
s.reuseAsNonZeroed(dim)
|
||||||
|
@@ -724,7 +724,10 @@ func TestPowPSD(t *testing.T) {
|
|||||||
mat.SymOuterK(1, a)
|
mat.SymOuterK(1, a)
|
||||||
|
|
||||||
var sym SymDense
|
var sym SymDense
|
||||||
sym.PowPSD(&mat, float64(pow))
|
err := sym.PowPSD(&mat, float64(pow))
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
var dense Dense
|
var dense Dense
|
||||||
dense.Pow(&mat, pow)
|
dense.Pow(&mat, pow)
|
||||||
|
@@ -178,17 +178,6 @@ func isUpperUplo(u blas.Uplo) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func uploToTriKind(u blas.Uplo) TriKind {
|
|
||||||
switch u {
|
|
||||||
case blas.Upper:
|
|
||||||
return Upper
|
|
||||||
case blas.Lower:
|
|
||||||
return Lower
|
|
||||||
default:
|
|
||||||
panic(badTriangle)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// asSymBlas returns the receiver restructured as a blas64.Symmetric with the
|
// asSymBlas returns the receiver restructured as a blas64.Symmetric with the
|
||||||
// same backing memory. Panics if the receiver is unit.
|
// same backing memory. Panics if the receiver is unit.
|
||||||
// This returns a blas64.Symmetric and not a *SymDense because SymDense can only
|
// This returns a blas64.Symmetric and not a *SymDense because SymDense can only
|
||||||
|
Reference in New Issue
Block a user