libflame  revision_anchor
Functions
FLA_Invert.c File Reference

(r)

Functions

FLA_Error FLA_Invert (FLA_Conj conj, FLA_Obj x)
 

Function Documentation

◆ FLA_Invert()

FLA_Error FLA_Invert ( FLA_Conj  conj,
FLA_Obj  x 
)
14 {
15  FLA_Datatype datatype;
16  int n_elem;
17  int inc_x;
18  conj1_t blis_conj;
19 
20  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
21  FLA_Invert_check( conj, x );
22 
23  if ( FLA_Obj_has_zero_dim( x ) ) return FLA_SUCCESS;
24 
25  datatype = FLA_Obj_datatype( x );
26 
27  n_elem = FLA_Obj_vector_dim( x );
28  inc_x = FLA_Obj_vector_inc( x );
29 
30  FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
31 
32 
33  switch ( datatype ){
34 
35  case FLA_FLOAT:
36  {
37  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
38 
39  bl1_sinvertv( blis_conj,
40  n_elem,
41  buff_x, inc_x );
42 
43  break;
44  }
45 
46  case FLA_DOUBLE:
47  {
48  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
49 
50  bl1_dinvertv( blis_conj,
51  n_elem,
52  buff_x, inc_x );
53 
54  break;
55  }
56 
57  case FLA_COMPLEX:
58  {
59  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
60 
61  bl1_cinvertv( blis_conj,
62  n_elem,
63  buff_x, inc_x );
64 
65  break;
66  }
67 
68  case FLA_DOUBLE_COMPLEX:
69  {
70  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
71 
72  bl1_zinvertv( blis_conj,
73  n_elem,
74  buff_x, inc_x );
75 
76  break;
77  }
78 
79  }
80 
81  return FLA_SUCCESS;
82 }
FLA_Error FLA_Invert_check(FLA_Conj conj, FLA_Obj x)
Definition: FLA_Invert_check.c:13
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
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
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
void bl1_dinvertv(conj1_t conj, int n, double *x, int incx)
Definition: bl1_invertv.c:27
void bl1_zinvertv(conj1_t conj, int n, dcomplex *x, int incx)
Definition: bl1_invertv.c:67
void bl1_cinvertv(conj1_t conj, int n, scomplex *x, int incx)
Definition: bl1_invertv.c:41
void bl1_sinvertv(conj1_t conj, int n, float *x, int incx)
Definition: bl1_invertv.c:13
conj1_t
Definition: blis_type_defs.h:80
Definition: blis_type_defs.h:138
Definition: blis_type_defs.h:133

References bl1_cinvertv(), bl1_dinvertv(), bl1_sinvertv(), bl1_zinvertv(), FLA_Check_error_level(), FLA_Invert_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), and FLA_Param_map_flame_to_blis_conj().

Referenced by FLA_Fill_with_inverse_dist(), FLA_Hevd_compute_scaling(), FLA_Svd_compute_scaling(), FLA_Trinv_ln_unb_var1(), FLA_Trinv_ln_unb_var2(), FLA_Trinv_ln_unb_var3(), FLA_Trinv_ln_unb_var4(), FLA_Trinv_un_unb_var1(), FLA_Trinv_un_unb_var2(), FLA_Trinv_un_unb_var3(), and FLA_Trinv_un_unb_var4().