libflame  revision_anchor
Functions
FLA_Sqrt.c File Reference

(r)

Functions

FLA_Error FLA_Sqrt (FLA_Obj alpha)
 

Function Documentation

◆ FLA_Sqrt()

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

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

Referenced by FLA_Chol_l_unb_var1(), FLA_Chol_l_unb_var2(), FLA_Chol_l_unb_var3(), FLA_Chol_u_unb_var1(), FLA_Chol_u_unb_var2(), FLA_Chol_u_unb_var3(), FLA_Hevd_compute_scaling(), and FLA_Svd_compute_scaling().