14{
15 int info = 0;
16#ifdef FLA_ENABLE_EXTERNAL_LAPACK_INTERFACES
18 int cs_A;
19 int cs_B;
20 int m_C, n_C, cs_C;
21 char blas_transa;
22 char blas_transb;
23
26
30
32
36
38
40
43
44
45 switch( datatype ){
46
47 case FLA_FLOAT:
48 {
49 int *buff_isgn = ( int * ) FLA_INT_PTR( isgn );
50 float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
51 float *buff_B = ( float * ) FLA_FLOAT_PTR( B );
52 float *buff_C = ( float * ) FLA_FLOAT_PTR( C );
53 float *buff_scale = ( float * ) FLA_FLOAT_PTR( scale );
54
56 &blas_transb,
57 buff_isgn,
58 &m_C,
59 &n_C,
60 buff_A, &cs_A,
61 buff_B, &cs_B,
62 buff_C, &cs_C,
63 buff_scale,
64 &info );
65
66 break;
67 }
68
69 case FLA_DOUBLE:
70 {
71 int *buff_isgn = ( int * ) FLA_INT_PTR( isgn );
72 double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
73 double *buff_B = ( double * ) FLA_DOUBLE_PTR( B );
74 double *buff_C = ( double * ) FLA_DOUBLE_PTR( C );
75 double *buff_scale = ( double * ) FLA_DOUBLE_PTR( scale );
76
78 &blas_transb,
79 buff_isgn,
80 &m_C,
81 &n_C,
82 buff_A, &cs_A,
83 buff_B, &cs_B,
84 buff_C, &cs_C,
85 buff_scale,
86 &info );
87
88 break;
89 }
90
91 case FLA_COMPLEX:
92 {
93 int *buff_isgn = ( int * ) FLA_INT_PTR( isgn );
97 float *buff_scale = ( float * ) FLA_COMPLEX_PTR( scale );
98
100 &blas_transb,
101 buff_isgn,
102 &m_C,
103 &n_C,
104 buff_A, &cs_A,
105 buff_B, &cs_B,
106 buff_C, &cs_C,
107 buff_scale,
108 &info );
109
110 break;
111 }
112
113 case FLA_DOUBLE_COMPLEX:
114 {
115 int *buff_isgn = ( int * ) FLA_INT_PTR( isgn );
119 double *buff_scale = ( double * ) FLA_DOUBLE_COMPLEX_PTR( scale );
120
122 &blas_transb,
123 buff_isgn,
124 &m_C,
125 &n_C,
126 buff_A, &cs_A,
127 buff_B, &cs_B,
128 buff_C, &cs_C,
129 buff_scale,
130 &info );
131
132 break;
133 }
134
135 }
136
137
138
140#else
141 FLA_Check_error_code( FLA_EXTERNAL_LAPACK_NOT_IMPLEMENTED );
142#endif
143
144 return info;
145}
FLA_Error FLA_Sylv_check(FLA_Trans transa, FLA_Trans transb, FLA_Obj isgn, FLA_Obj A, FLA_Obj B, FLA_Obj C, FLA_Obj scale)
Definition FLA_Sylv_check.c:13
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
int F77_ctrsyl(char *transa, char *transb, int *isgn, int *m, int *n, scomplex *a, int *lda, scomplex *b, int *ldb, scomplex *c, int *ldc, float *scale, int *info)
int F77_ztrsyl(char *transa, char *transb, int *isgn, int *m, int *n, dcomplex *a, int *lda, dcomplex *b, int *ldb, dcomplex *c, int *ldc, double *scale, int *info)
int F77_dtrsyl(char *transa, char *transb, int *isgn, int *m, int *n, double *a, int *lda, double *b, int *ldb, double *c, int *ldc, double *scale, int *info)
int F77_strsyl(char *transa, char *transb, int *isgn, int *m, int *n, float *a, int *lda, float *b, int *ldb, float *c, int *ldc, float *scale, int *info)
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition FLA_Query.c:400
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition FLA_Query.c:174
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
void FLA_Param_map_flame_to_netlib_trans(FLA_Trans trans, void *blas_trans)
Definition FLA_Param.c:15
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_Set(FLA_Obj alpha, FLA_Obj A)
Definition FLA_Set.c:13
Definition blis_type_defs.h:138
Definition blis_type_defs.h:133