libflame  revision_anchor
Functions
FLA_Absolute_value.c File Reference

(r)

Functions

FLA_Error FLA_Absolute_value (FLA_Obj alpha)
 

Function Documentation

◆ FLA_Absolute_value()

FLA_Error FLA_Absolute_value ( FLA_Obj  alpha)
14 {
15  FLA_Datatype datatype;
16 
17  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
18  FLA_Absolute_value_check( alpha );
19 
20  datatype = FLA_Obj_datatype( alpha );
21 
22  switch ( datatype ){
23 
24  case FLA_FLOAT:
25  {
26  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
27 
28  *buff_alpha = ( float ) fabs( ( double ) *buff_alpha );
29 
30  break;
31  }
32 
33  case FLA_DOUBLE:
34  {
35  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
36 
37  *buff_alpha = fabs( *buff_alpha );
38 
39  break;
40  }
41 
42  case FLA_COMPLEX:
43  {
44  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
45 
46  buff_alpha->real = ( float ) sqrt( ( double ) buff_alpha->real * buff_alpha->real +
47  buff_alpha->imag * buff_alpha->imag );
48  buff_alpha->imag = 0.0F;
49 
50 
51  break;
52  }
53 
54  case FLA_DOUBLE_COMPLEX:
55  {
56  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
57 
58  buff_alpha->real = sqrt( buff_alpha->real * buff_alpha->real +
59  buff_alpha->imag * buff_alpha->imag );
60  buff_alpha->imag = 0.0;
61 
62  break;
63  }
64 
65  }
66 
67  return FLA_SUCCESS;
68 }
FLA_Error FLA_Absolute_value_check(FLA_Obj alpha)
Definition: FLA_Absolute_value_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
Definition: blis_type_defs.h:138
double real
Definition: blis_type_defs.h:139
double imag
Definition: blis_type_defs.h:139
Definition: blis_type_defs.h:133
float imag
Definition: blis_type_defs.h:134
float real
Definition: blis_type_defs.h:134

References FLA_Absolute_value_check(), FLA_Check_error_level(), FLA_Obj_datatype(), scomplex::imag, dcomplex::imag, scomplex::real, and dcomplex::real.

Referenced by FLA_Bidiag_UT_l_realify_unb(), FLA_Bidiag_UT_u_realify_unb(), FLA_Tridiag_UT_l_realify_unb(), and FLA_Tridiag_UT_u_realify_unb().