6 "gonum.org/v1/gonum/blas"
7 "gonum.org/v1/gonum/floats"
10 type Dsyr2er interface {
11 Dsyr2(ul blas.Uplo, n int, alpha float64, x []float64, incX int, y []float64, incY int, a []float64, lda int)
14 func Dsyr2Test(t *testing.T, blasser Dsyr2er) {
15 for i, test := range []struct {
31 x: []float64{2, 3, 4},
32 y: []float64{5, 6, 7},
48 x: []float64{2, 3, 4},
49 y: []float64{5, 6, 7},
59 incTest := func(incX, incY, extra int) {
60 aFlat := flatten(test.a)
61 x := makeIncremented(test.x, incX, extra)
62 y := makeIncremented(test.y, incY, extra)
63 blasser.Dsyr2(test.ul, test.n, test.alpha, x, incX, y, incY, aFlat, test.n)
64 ansFlat := flatten(test.ans)
65 if !floats.EqualApprox(aFlat, ansFlat, 1e-14) {
66 t.Errorf("Case %v, incX = %v, incY = %v. Want %v, got %v.", i, incX, incY, ansFlat, aFlat)