libflame revision_anchor
Functions
FLA_Asum_external.c File Reference

(r)

Functions

FLA_Error FLA_Asum_external (FLA_Obj x, FLA_Obj asum_x)
 

Function Documentation

◆ FLA_Asum_external()

FLA_Error FLA_Asum_external ( FLA_Obj  x,
FLA_Obj  asum_x 
)
14{
15 FLA_Datatype datatype;
17 int num_elem;
18 int inc_x;
19
22
23 if ( FLA_Obj_has_zero_dim( x ) )
24 {
26 return FLA_SUCCESS;
27 }
28
30 datatype = FLA_Obj_datatype( x );
31
34
35
36 switch ( datatype ){
37
38 case FLA_FLOAT:
39 {
40 float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
41 float *buff_asum_x = ( float * ) FLA_FLOAT_PTR( asum_x );
42
46
47 break;
48 }
49
50 case FLA_DOUBLE:
51 {
52 double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
53 double *buff_asum_x = ( double * ) FLA_DOUBLE_PTR( asum_x );
54
58
59 break;
60 }
61
62 case FLA_COMPLEX:
63 {
64 if ( dt_asum == FLA_FLOAT )
65 {
67 float *buff_asum_x = ( float * ) FLA_FLOAT_PTR( asum_x );
68
72 }
73 else if ( dt_asum == FLA_COMPLEX )
74 {
77
80 &(buff_asum_x->real) );
81 buff_asum_x->imag = 0.0F;
82 }
83
84 break;
85 }
86
88 {
89 if ( dt_asum == FLA_DOUBLE )
90 {
92 double *buff_asum_x = ( double * ) FLA_DOUBLE_PTR( asum_x );
93
97 }
98 else if ( dt_asum == FLA_DOUBLE_COMPLEX )
99 {
102
104 buff_x, inc_x,
105 &(buff_asum_x->real) );
106 buff_asum_x->imag = 0.0;
107 }
108
109 break;
110 }
111
112 }
113
114 return FLA_SUCCESS;
115}
FLA_Error FLA_Asum_check(FLA_Obj x, FLA_Obj asum_x)
Definition FLA_Asum_check.c:13
FLA_Obj FLA_ZERO
Definition FLA_Init.c:20
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition FLA_Query.c:400
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition FLA_Query.c:145
dim_t FLA_Obj_vector_dim(FLA_Obj obj)
Definition FLA_Query.c:137
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
FLA_Error FLA_Set(FLA_Obj alpha, FLA_Obj A)
Definition FLA_Set.c:13
void bl1_zasum(int n, dcomplex *x, int incx, double *norm)
Definition bl1_asum.c:46
void bl1_casum(int n, scomplex *x, int incx, float *norm)
Definition bl1_asum.c:35
void bl1_sasum(int n, float *x, int incx, float *norm)
Definition bl1_asum.c:13
void bl1_dasum(int n, double *x, int incx, double *norm)
Definition bl1_asum.c:24
int i
Definition bl1_axmyv2.c:145
Definition blis_type_defs.h:138
Definition blis_type_defs.h:133

References bl1_casum(), bl1_dasum(), bl1_sasum(), bl1_zasum(), FLA_Asum_check(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_Set(), FLA_ZERO, and i.

Referenced by FLA_Asum().