libflame  revision_anchor
Functions
FLA_Set_diagonal.c File Reference

(r)

Functions

FLA_Error FLA_Set_diagonal_vector (FLA_Obj A, FLA_Obj d)
 
FLA_Error FLA_Set_diagonal_matrix (FLA_Obj d, FLA_Obj A)
 

Function Documentation

◆ FLA_Set_diagonal_matrix()

FLA_Error FLA_Set_diagonal_matrix ( FLA_Obj  d,
FLA_Obj  A 
)
72 {
73  FLA_Datatype datatype;
74  int i, m;
75  int rs_A, cs_A;
76  int inc_d;
77 
78  datatype = FLA_Obj_datatype( A );
79 
80  m = FLA_Obj_min_dim( A );
81 
82  rs_A = FLA_Obj_row_stride( A );
83  cs_A = FLA_Obj_col_stride( A );
84 
85  inc_d = FLA_Obj_vector_inc( d );
86 
87  switch ( datatype )
88  {
89  case FLA_FLOAT:
90  {
91  FLA_OBJ_SET_DIAGONAL_VECTOR( float, FLA_FLOAT_PTR, delta_to_alpha, m );
92  break;
93  }
94  case FLA_DOUBLE:
95  {
96  FLA_OBJ_SET_DIAGONAL_VECTOR( double, FLA_DOUBLE_PTR, delta_to_alpha, m );
97  break;
98  }
99 
100  case FLA_COMPLEX:
101  {
102  FLA_OBJ_SET_DIAGONAL_VECTOR( scomplex, FLA_COMPLEX_PTR, delta_to_alpha, m );
103  break;
104  }
105 
106  case FLA_DOUBLE_COMPLEX:
107  {
108  FLA_OBJ_SET_DIAGONAL_VECTOR( dcomplex, FLA_DOUBLE_COMPLEX_PTR, delta_to_alpha, m );
109  break;
110  }
111  }
112  return FLA_SUCCESS;
113 }
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_min_dim(FLA_Obj obj)
Definition: FLA_Query.c:153
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
int FLA_Datatype
Definition: FLA_type_defs.h:49
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:138
Definition: blis_type_defs.h:133

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_min_dim(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), and i.

◆ FLA_Set_diagonal_vector()

FLA_Error FLA_Set_diagonal_vector ( FLA_Obj  A,
FLA_Obj  d 
)
28 {
29  FLA_Datatype datatype;
30  int i, m;
31  int rs_A, cs_A;
32  int inc_d;
33 
34  datatype = FLA_Obj_datatype( A );
35 
36  m = FLA_Obj_min_dim( A );
37 
38  rs_A = FLA_Obj_row_stride( A );
39  cs_A = FLA_Obj_col_stride( A );
40 
41  inc_d = FLA_Obj_vector_inc( d );
42 
43  switch ( datatype )
44  {
45  case FLA_FLOAT:
46  {
47  FLA_OBJ_SET_DIAGONAL_VECTOR( float, FLA_FLOAT_PTR, alpha_to_delta, m );
48  break;
49  }
50  case FLA_DOUBLE:
51  {
52  FLA_OBJ_SET_DIAGONAL_VECTOR( double, FLA_DOUBLE_PTR, alpha_to_delta, m );
53  break;
54  }
55 
56  case FLA_COMPLEX:
57  {
58  FLA_OBJ_SET_DIAGONAL_VECTOR( scomplex, FLA_COMPLEX_PTR, alpha_to_delta, m );
59  break;
60  }
61 
62  case FLA_DOUBLE_COMPLEX:
63  {
64  FLA_OBJ_SET_DIAGONAL_VECTOR( dcomplex, FLA_DOUBLE_COMPLEX_PTR, alpha_to_delta, m );
65  break;
66  }
67  }
68  return FLA_SUCCESS;
69 }

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_min_dim(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), and i.