package testblas import ( "testing" "golang.org/x/exp/rand" "gonum.org/v1/gonum/blas" ) func DgemvBenchmark(b *testing.B, blasser Dgemver, tA blas.Transpose, m, n, incX, incY int) { var lenX, lenY int if tA == blas.NoTrans { lenX = n lenY = m } else { lenX = m lenY = n } xr := make([]float64, lenX) for i := range xr { xr[i] = rand.Float64() } x := makeIncremented(xr, incX, 0) yr := make([]float64, lenY) for i := range yr { yr[i] = rand.Float64() } y := makeIncremented(yr, incY, 0) a := make([]float64, m*n) for i := range a { a[i] = rand.Float64() } b.ResetTimer() for i := 0; i < b.N; i++ { blasser.Dgemv(tA, m, n, 2, a, n, x, incX, 3, y, incY) } } func DgerBenchmark(b *testing.B, blasser Dgerer, m, n, incX, incY int) { xr := make([]float64, m) for i := range xr { xr[i] = rand.Float64() } x := makeIncremented(xr, incX, 0) yr := make([]float64, n) for i := range yr { yr[i] = rand.Float64() } y := makeIncremented(yr, incY, 0) a := make([]float64, m*n) for i := range a { a[i] = rand.Float64() } b.ResetTimer() for i := 0; i < b.N; i++ { blasser.Dger(m, n, 2, x, incX, y, incY, a, n) } }