libflame  revision_anchor
Functions
FLA_Pow.c File Reference

(r)

Functions

FLA_Error FLA_Pow (FLA_Obj base, FLA_Obj exp, FLA_Obj btoe)
 

Function Documentation

◆ FLA_Pow()

FLA_Error FLA_Pow ( FLA_Obj  base,
FLA_Obj  exp,
FLA_Obj  btoe 
)
14 {
15  FLA_Datatype datatype;
16  int r_val = FLA_SUCCESS;
17 
18  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
19  FLA_Pow_check( base, exp, btoe );
20 
21  datatype = FLA_Obj_datatype( base );
22 
23  switch ( datatype ){
24 
25  case FLA_FLOAT:
26  {
27  float *buff_base = ( float * ) FLA_FLOAT_PTR( base );
28  float *buff_exp = ( float * ) FLA_FLOAT_PTR( exp );
29  float *buff_btoe = ( float * ) FLA_FLOAT_PTR( btoe );
30 
31  *buff_btoe = ( float ) pow( *buff_base, *buff_exp );
32 
33  break;
34  }
35 
36  case FLA_DOUBLE:
37  {
38  double *buff_base = ( double * ) FLA_DOUBLE_PTR( base );
39  double *buff_exp = ( double * ) FLA_DOUBLE_PTR( exp );
40  double *buff_btoe = ( double * ) FLA_DOUBLE_PTR( btoe );
41 
42  *buff_btoe = ( double ) pow( *buff_base, *buff_exp );
43 
44  break;
45  }
46 
47  case FLA_COMPLEX:
48  {
49  scomplex *buff_base = ( scomplex * ) FLA_COMPLEX_PTR( base );
50  scomplex *buff_exp = ( scomplex * ) FLA_COMPLEX_PTR( exp );
51  scomplex *buff_btoe = ( scomplex * ) FLA_COMPLEX_PTR( btoe );
52 
53  buff_btoe->real = ( float ) pow( buff_base->real, buff_exp->real );
54  buff_btoe->imag = 0.0;
55 
56  break;
57  }
58 
59  case FLA_DOUBLE_COMPLEX:
60  {
61  dcomplex *buff_base = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( base );
62  dcomplex *buff_exp = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( exp );
63  dcomplex *buff_btoe = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( btoe );
64 
65  buff_btoe->real = ( double ) pow( buff_base->real, buff_exp->real );
66  buff_btoe->imag = 0.0;
67 
68  break;
69  }
70 
71  }
72 
73  return r_val;
74 }
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
FLA_Error FLA_Pow_check(FLA_Obj base, FLA_Obj exp, FLA_Obj btoe)
Definition: FLA_Pow.c:13
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_Check_error_level(), FLA_Obj_datatype(), FLA_Pow_check(), scomplex::imag, dcomplex::imag, scomplex::real, and dcomplex::real.

Referenced by FLA_Fill_with_geometric_dist(), and FLA_Fill_with_logarithmic_dist().