@@ -369,6 +369,41 @@ fn add_2d_f32_blas(bench: &mut test::Bencher)
369
369
} ) ;
370
370
}
371
371
372
+ #[ bench]
373
+ fn muladd_2d_f32_regular ( bench : & mut test:: Bencher )
374
+ {
375
+ use rblas:: Axpy ;
376
+ use rblas:: attribute:: Transpose ;
377
+ use ndarray:: blas:: AsBlas ;
378
+ let mut a = OwnedArray :: < f32 , _ > :: zeros ( ( 64 , 64 ) ) ;
379
+ let b = OwnedArray :: < f32 , _ > :: zeros ( ( 64 , 64 ) ) ;
380
+ let scalar = 3.1415926535 ;
381
+ let len = a. len ( ) ;
382
+ let mut av = a. view_mut ( ) . into_shape ( len) . unwrap ( ) ;
383
+ let bv = b. view ( ) . into_shape ( len) . unwrap ( ) ;
384
+ bench. iter ( || {
385
+ av. zip_mut_with ( & bv, |a, & b| * a += scalar * b) ;
386
+ } ) ;
387
+ }
388
+
389
+ #[ cfg( feature = "rblas" ) ]
390
+ #[ bench]
391
+ fn muladd_2d_f32_blas ( bench : & mut test:: Bencher )
392
+ {
393
+ use rblas:: Axpy ;
394
+ use rblas:: attribute:: Transpose ;
395
+ use ndarray:: blas:: AsBlas ;
396
+ let mut a = OwnedArray :: < f32 , _ > :: zeros ( ( 64 , 64 ) ) ;
397
+ let b = OwnedArray :: < f32 , _ > :: zeros ( ( 64 , 64 ) ) ;
398
+ let scalar = 3.1415926535 ;
399
+ let len = a. len ( ) ;
400
+ let mut av = a. view_mut ( ) . into_shape ( len) . unwrap ( ) ;
401
+ let bv = b. view ( ) . into_shape ( len) . unwrap ( ) ;
402
+ bench. iter ( || {
403
+ f32:: axpy ( & scalar, & bv. bv ( ) , & mut av. bvm ( ) ) ;
404
+ } ) ;
405
+ }
406
+
372
407
373
408
#[ bench]
374
409
fn assign_scalar_2d_large ( bench : & mut test:: Bencher )
0 commit comments