stat: clean up lint

This commit is contained in:
Dan Kortschak
2019-11-21 12:39:19 +10:30
committed by GitHub
parent 6d55676c7d
commit 212233dec6
9 changed files with 36 additions and 33 deletions

View File

@@ -32,7 +32,7 @@ func (s symView) At(i, j int) float64 {
return s.sym.At(s.i+i, s.j+j) return s.sym.At(s.i+i, s.j+j)
} }
func (s symView) T() mat.Matrix { return mat.Transpose{s} } func (s symView) T() mat.Matrix { return mat.Transpose{Matrix: s} }
func ExampleCC() { func ExampleCC() {
// This example is directly analogous to Example 3.5 on page 87 of // This example is directly analogous to Example 3.5 on page 87 of

View File

@@ -110,7 +110,10 @@ func NewNormalPrecision(mu []float64, prec *mat.SymDense, src rand.Source) (norm
return nil, false return nil, false
} }
var sigma mat.SymDense var sigma mat.SymDense
chol.InverseTo(&sigma) err := chol.InverseTo(&sigma)
if err != nil {
return nil, false
}
return NewNormal(mu, &sigma, src) return NewNormal(mu, &sigma, src)
} }
@@ -341,7 +344,10 @@ func (n *Normal) ScoreInput(score, x []float64) []float64 {
copy(tmp, x) copy(tmp, x)
floats.Sub(tmp, n.mu) floats.Sub(tmp, n.mu)
n.chol.SolveVecTo(mat.NewVecDense(len(score), score), mat.NewVecDense(len(tmp), tmp)) err := n.chol.SolveVecTo(mat.NewVecDense(len(score), score), mat.NewVecDense(len(tmp), tmp))
if err != nil {
panic(err)
}
floats.Scale(-1, score) floats.Scale(-1, score)
return score return score
} }

View File

@@ -16,14 +16,6 @@ import (
"gonum.org/v1/gonum/stat" "gonum.org/v1/gonum/stat"
) )
type mvTest struct {
Mu []float64
Sigma *mat.SymDense
Loc []float64
Logprob float64
Prob float64
}
func TestNormProbs(t *testing.T) { func TestNormProbs(t *testing.T) {
dist1, ok := NewNormal([]float64{0, 0}, mat.NewSymDense(2, []float64{1, 0, 0, 1}), nil) dist1, ok := NewNormal([]float64{0, 0}, mat.NewSymDense(2, []float64{1, 0, 0, 1}), nil)
if !ok { if !ok {

View File

@@ -335,7 +335,10 @@ func (Wasserstein) DistNormal(l, r *Normal) float64 {
// Compute Σ_l^(1/2) // Compute Σ_l^(1/2)
var ssl mat.SymDense var ssl mat.SymDense
ssl.PowPSD(&l.sigma, 0.5) err := ssl.PowPSD(&l.sigma, 0.5)
if err != nil {
panic(err)
}
// Compute Σ_l^(1/2)*Σ_r*Σ_l^(1/2) // Compute Σ_l^(1/2)*Σ_r*Σ_l^(1/2)
var mean mat.Dense var mean mat.Dense
mean.Mul(&ssl, &r.sigma) mean.Mul(&ssl, &r.sigma)
@@ -343,7 +346,10 @@ func (Wasserstein) DistNormal(l, r *Normal) float64 {
// Reinterpret as symdense, and take Σ^(1/2) // Reinterpret as symdense, and take Σ^(1/2)
meanSym := mat.NewSymDense(dim, mean.RawMatrix().Data) meanSym := mat.NewSymDense(dim, mean.RawMatrix().Data)
ssl.PowPSD(meanSym, 0.5) err = ssl.PowPSD(meanSym, 0.5)
if err != nil {
panic(err)
}
tr := mat.Trace(&r.sigma) tr := mat.Trace(&r.sigma)
tl := mat.Trace(&l.sigma) tl := mat.Trace(&l.sigma)

View File

@@ -62,14 +62,14 @@ func TestBhattacharyyaUniform(t *testing.T) {
tol float64 tol float64
}{ }{
{ {
a: NewUniform([]r1.Interval{{-3, 2}, {-5, 8}}, rnd), a: NewUniform([]r1.Interval{{Min: -3, Max: 2}, {Min: -5, Max: 8}}, rnd),
b: NewUniform([]r1.Interval{{-4, 1}, {-7, 10}}, rnd), b: NewUniform([]r1.Interval{{Min: -4, Max: 1}, {Min: -7, Max: 10}}, rnd),
samples: 100000, samples: 100000,
tol: 1e-2, tol: 1e-2,
}, },
{ {
a: NewUniform([]r1.Interval{{-3, 2}, {-5, 8}}, rnd), a: NewUniform([]r1.Interval{{Min: -3, Max: 2}, {Min: -5, Max: 8}}, rnd),
b: NewUniform([]r1.Interval{{-5, -4}, {-7, 10}}, rnd), b: NewUniform([]r1.Interval{{Min: -5, Max: -4}, {Min: -7, Max: 10}}, rnd),
samples: 100000, samples: 100000,
tol: 1e-2, tol: 1e-2,
}, },
@@ -257,14 +257,14 @@ func TestKullbackLeiblerUniform(t *testing.T) {
tol float64 tol float64
}{ }{
{ {
a: NewUniform([]r1.Interval{{-5, 2}, {-7, 12}}, rnd), a: NewUniform([]r1.Interval{{Min: -5, Max: 2}, {Min: -7, Max: 12}}, rnd),
b: NewUniform([]r1.Interval{{-4, 1}, {-7, 10}}, rnd), b: NewUniform([]r1.Interval{{Min: -4, Max: 1}, {Min: -7, Max: 10}}, rnd),
samples: 100000, samples: 100000,
tol: 1e-2, tol: 1e-2,
}, },
{ {
a: NewUniform([]r1.Interval{{-5, 2}, {-7, 12}}, rnd), a: NewUniform([]r1.Interval{{Min: -5, Max: 2}, {Min: -7, Max: 12}}, rnd),
b: NewUniform([]r1.Interval{{-9, -6}, {-7, 10}}, rnd), b: NewUniform([]r1.Interval{{Min: -9, Max: -6}, {Min: -7, Max: 10}}, rnd),
samples: 100000, samples: 100000,
tol: 1e-2, tol: 1e-2,
}, },

View File

@@ -206,7 +206,10 @@ func TestStudentsTConditional(t *testing.T) {
newMuVec := mat.NewVecDense(len(muUnob), newMu) newMuVec := mat.NewVecDense(len(muUnob), newMu)
shiftVec := mat.NewVecDense(len(shift), shift) shiftVec := mat.NewVecDense(len(shift), shift)
var tmp mat.VecDense var tmp mat.VecDense
tmp.SolveVec(&sig22, shiftVec) err := tmp.SolveVec(&sig22, shiftVec)
if err != nil {
t.Errorf("unexpected error from vector solve: %v", err)
}
newMuVec.MulVec(sig12, &tmp) newMuVec.MulVec(sig12, &tmp)
floats.Add(newMu, muUnob) floats.Add(newMu, muUnob)
@@ -215,7 +218,10 @@ func TestStudentsTConditional(t *testing.T) {
} }
var tmp2 mat.Dense var tmp2 mat.Dense
tmp2.Solve(&sig22, sig12.T()) err = tmp2.Solve(&sig22, sig12.T())
if err != nil {
t.Errorf("unexpected error from dense solve: %v", err)
}
var tmp3 mat.Dense var tmp3 mat.Dense
tmp3.Mul(sig12, &tmp2) tmp3.Mul(sig12, &tmp2)

View File

@@ -17,11 +17,11 @@ func TestUniformEntropy(t *testing.T) {
Entropy float64 Entropy float64
}{ }{
{ {
NewUniform([]r1.Interval{{0, 1}, {0, 1}}, nil), NewUniform([]r1.Interval{{Min: 0, Max: 1}, {Min: 0, Max: 1}}, nil),
0, 0,
}, },
{ {
NewUniform([]r1.Interval{{-1, 3}, {2, 8}, {-5, -3}}, nil), NewUniform([]r1.Interval{{Min: -1, Max: 3}, {Min: 2, Max: 8}, {Min: -5, Max: -3}}, nil),
math.Log(48), math.Log(48),
}, },
} { } {

View File

@@ -6,13 +6,6 @@ package sampleuv
import "gonum.org/v1/gonum/stat/distuv" import "gonum.org/v1/gonum/stat/distuv"
func max(a, b int) int {
if a < b {
return b
}
return a
}
func ExampleMetropolisHastings_samplingRate() { func ExampleMetropolisHastings_samplingRate() {
// See Burnin example for a description of these quantities. // See Burnin example for a description of these quantities.
n := 1000 n := 1000

View File

@@ -31,7 +31,7 @@ func (e Euclid) At(i, j int) float64 {
y := float64(j/e.x - i/e.x) y := float64(j/e.x - i/e.x)
return 1 / math.Hypot(x, y) return 1 / math.Hypot(x, y)
} }
func (e Euclid) T() mat.Matrix { return mat.Transpose{e} } func (e Euclid) T() mat.Matrix { return mat.Transpose{Matrix: e} }
func ExampleGlobalMoransI_areal() { func ExampleGlobalMoransI_areal() {
locality := Euclid{10, 10} locality := Euclid{10, 10}