18{
20 int m_A, n_A;
21 int ldim_A, inc_A;
23
26
28
30 {
31 return FLA_SUCCESS;
32 }
33
35
39 inc_A = 1;
40
41 switch ( datatype ){
42
43 case FLA_FLOAT:
44 {
45 float* buff_alpha = ( float* ) FLA_FLOAT_PTR( alpha );
46 float* buff_A_gpu = ( float* ) A_gpu;
47
48 for (
i = 0;
i < n_A;
i++ )
49 cublasSscal( m_A,
50 *buff_alpha,
51 buff_A_gpu +
i * ldim_A, inc_A );
52
53 break;
54 }
55
56 case FLA_DOUBLE:
57 {
58 double* buff_alpha = ( double* ) FLA_DOUBLE_PTR( alpha );
59 double* buff_A_gpu = ( double* ) A_gpu;
60
61 for (
i = 0;
i < n_A;
i++ )
62 cublasDscal( m_A,
63 *buff_alpha,
64 buff_A_gpu +
i * ldim_A, inc_A );
65
66 break;
67 }
68
69 case FLA_COMPLEX:
70 {
71 cuComplex* buff_alpha = ( cuComplex* ) FLA_COMPLEX_PTR( alpha );
72 cuComplex* buff_A_gpu = ( cuComplex* ) A_gpu;
73
74 for (
i = 0;
i < n_A;
i++ )
75 cublasCscal( m_A,
76 *buff_alpha,
77 buff_A_gpu +
i * ldim_A, inc_A );
78
79 break;
80 }
81
82 case FLA_DOUBLE_COMPLEX:
83 {
84 cuDoubleComplex* buff_alpha = ( cuDoubleComplex* ) FLA_DOUBLE_COMPLEX_PTR( alpha );
85 cuDoubleComplex* buff_A_gpu = ( cuDoubleComplex* ) A_gpu;
86
87 for (
i = 0;
i < n_A;
i++ )
88 cublasZscal( m_A,
89 *buff_alpha,
90 buff_A_gpu +
i * ldim_A, inc_A );
91
92 break;
93 }
94
95 }
96
97 return FLA_SUCCESS;
98}
FLA_Error FLA_Scal_check(FLA_Obj alpha, FLA_Obj A)
Definition FLA_Scal_check.c:13
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition FLA_Query.c:400
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
FLA_Bool FLA_Obj_equals(FLA_Obj A, FLA_Obj B)
Definition FLA_Query.c:507
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
int i
Definition bl1_axmyv2.c:145