@@ -95,6 +95,8 @@ def time_axpy(self, n, variant):
9595
9696# ### BLAS level 2 ###
9797
98+ # gemv
99+
98100gemv_sizes = [100 , 200 , 400 , 600 , 800 , 1000 ]
99101
100102def run_gemv (a , x , y , func ):
@@ -120,6 +122,37 @@ def time_gemv(self, n, variant):
120122 run_gemv (self .a , self .x , self .y , self .gemv )
121123
122124
125+ # gbmv
126+
127+ gbmv_sizes = [100 , 200 , 400 , 600 , 800 , 1000 ]
128+
129+ def run_gbmv (m , n , kl , ku , a , x , y , func ):
130+ res = func (m , n , kl , ku , 1.0 , a , x , y = y , overwrite_y = True )
131+ return res
132+
133+
134+ class gbmv :
135+ params = [gbmv_sizes , ['s' , 'd' , 'c' , 'z' ], [1 , 2 , 3 ]]
136+ param_names = ["size" , "variant" , "kl" ]
137+
138+ def setup (self , n , variant , kl ):
139+ rndm = np .random .RandomState (1234 )
140+ dtyp = dtype_map [variant ]
141+
142+ self .x = np .array (rndm .uniform (size = (n ,)), dtype = dtyp )
143+ self .y = np .empty (n , dtype = dtyp )
144+
145+ self .m = n
146+
147+ a = rndm .uniform (size = (2 * kl + 1 , n ))
148+ self .a = np .array (a , dtype = dtyp , order = 'F' )
149+
150+ self .gbmv = ow .get_func ('gbmv' , variant )
151+
152+ def time_gbmv (self , n , variant , kl ):
153+ run_gbmv (self .m , n , kl , kl , self .a , self .x , self .y , self .gbmv )
154+
155+
123156# ### BLAS level 3 ###
124157
125158# gemm
0 commit comments