mat: Add Scale method for TriDense and Cholesky (#267)

* mat: Add Scale method for TriDense and Cholesky
This commit is contained in:
Brendan Tracey
2017-10-19 07:24:29 -06:00
committed by GitHub
parent 38fbc22caf
commit ac9ad9e533
5 changed files with 173 additions and 0 deletions

View File

@@ -319,6 +319,23 @@ func TestTriMul(t *testing.T) {
testTwoInput(t, "TriMul", receiver, method, denseComparison, legalTypesUpper, legalSizeTriMul, 1e-14)
}
func TestScaleTri(t *testing.T) {
for _, f := range []float64{0.5, 1, 3} {
method := func(receiver, a Matrix) {
type ScaleTrier interface {
ScaleTri(f float64, a Triangular)
}
rd := receiver.(ScaleTrier)
rd.ScaleTri(f, a.(Triangular))
}
denseComparison := func(receiver, a *Dense) {
receiver.Scale(f, a)
}
testOneInput(t, "ScaleTriUpper", NewTriDense(3, Upper, nil), method, denseComparison, legalTypeTriUpper, isSquare, 1e-14)
testOneInput(t, "ScaleTriLower", NewTriDense(3, Lower, nil), method, denseComparison, legalTypeTriLower, isSquare, 1e-14)
}
}
func TestCopySymIntoTriangle(t *testing.T) {
nan := math.NaN()
for tc, test := range []struct {