6 "gonum.org/v1/gonum/blas"
7 "gonum.org/v1/gonum/floats"
10 type Dsymmer interface {
11 Dsymm(s blas.Side, ul blas.Uplo, m, n int, alpha float64, a []float64, lda int, b []float64, ldb int, beta float64, c []float64, ldc int)
14 func DsymmTest(t *testing.T, blasser Dsymmer) {
15 for i, test := range []struct {
110 {126, 156, 144, 285},
111 {211, 252, 275, 535},
112 {282, 291, 327, 689},
232 {145, 244, 301, 187},
233 {208, 307, 397, 247},
268 aFlat := flatten(test.a)
269 bFlat := flatten(test.b)
270 cFlat := flatten(test.c)
271 ansFlat := flatten(test.ans)
272 blasser.Dsymm(test.side, test.ul, test.m, test.n, test.alpha, aFlat, len(test.a[0]), bFlat, test.n, test.beta, cFlat, test.n)
273 if !floats.EqualApprox(cFlat, ansFlat, 1e-14) {
274 t.Errorf("Case %v: Want %v, got %v.", i, ansFlat, cFlat)