libflame revision_anchor
Functions
FLA_Mult_add.c File Reference

(r)

Functions

FLA_Error FLA_Mult_add (FLA_Obj alpha, FLA_Obj beta, FLA_Obj gamma)
 

Function Documentation

◆ FLA_Mult_add()

FLA_Error FLA_Mult_add ( FLA_Obj  alpha,
FLA_Obj  beta,
FLA_Obj  gamma 
)
14{
15 FLA_Datatype datatype;
16
19
20 datatype = FLA_Obj_datatype( gamma );
21
22 switch ( datatype ){
23
24 case FLA_FLOAT:
25 {
26 float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
27 float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
28 float *buff_gamma = ( float * ) FLA_FLOAT_PTR( gamma );
29
31
32 break;
33 }
34
35 case FLA_DOUBLE:
36 {
37 double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
38 double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
39 double *buff_gamma = ( double * ) FLA_DOUBLE_PTR( gamma );
40
42
43 break;
44 }
45
46 case FLA_COMPLEX:
47 {
52
53 alphabeta.real = buff_alpha->real * buff_beta->real -
54 buff_alpha->imag * buff_beta->imag;
55
56 alphabeta.imag = buff_alpha->real * buff_beta->imag +
57 buff_alpha->imag * buff_beta->real;
58
59 buff_gamma->real = buff_gamma->real + alphabeta.real;
60 buff_gamma->imag = buff_gamma->imag + alphabeta.imag;
61
62 break;
63 }
64
66 {
71
72 alphabeta.real = buff_alpha->real * buff_beta->real -
73 buff_alpha->imag * buff_beta->imag;
74
75 alphabeta.imag = buff_alpha->real * buff_beta->imag +
76 buff_alpha->imag * buff_beta->real;
77
78 buff_gamma->real = buff_gamma->real + alphabeta.real;
79 buff_gamma->imag = buff_gamma->imag + alphabeta.imag;
80
81 break;
82 }
83
84 }
85
86 return FLA_SUCCESS;
87}
FLA_Error FLA_Mult_add_check(FLA_Obj alpha, FLA_Obj beta, FLA_Obj gamma)
Definition FLA_Mult_add_check.c:13
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
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
Definition blis_type_defs.h:138
double real
Definition blis_type_defs.h:139
Definition blis_type_defs.h:133
float real
Definition blis_type_defs.h:134

References FLA_Check_error_level(), FLA_Mult_add_check(), FLA_Obj_datatype(), i, scomplex::real, and dcomplex::real.

Referenced by FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Fill_with_cluster_dist(), FLA_Fill_with_geometric_dist(), FLA_Fill_with_inverse_dist(), FLA_Fill_with_linear_dist(), FLA_Fill_with_logarithmic_dist(), FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_h_unb_var4(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), and FLA_Lyap_n_unb_var4().