6 "gonum.org/v1/gonum/blas"
7 "gonum.org/v1/gonum/floats"
10 type Dspr2er interface {
11 Dspr2(ul blas.Uplo, n int, alpha float64, x []float64, incX int, y []float64, incY int, a []float64)
14 func Dspr2Test(t *testing.T, blasser Dspr2er) {
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 := flattenTriangular(test.a, test.ul)
61 x := makeIncremented(test.x, incX, extra)
62 y := makeIncremented(test.y, incY, extra)
63 blasser.Dspr2(test.ul, test.n, test.alpha, x, incX, y, incY, aFlat)
64 ansFlat := flattenTriangular(test.ans, test.ul)
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)