14{
15#ifdef FLA_ENABLE_EXTERNAL_LAPACK_INTERFACES
17 int n_A, cs_A;
18 int m_p;
19 int inc_p;
20 int* buff_p;
21 int k1_1, k2_1;
22 int* pivots_lapack;
24
27
29
31
34
37
38 buff_p = FLA_INT_PTR( p );
39
40
41 k1_1 = 1;
42 k2_1 = m_p;
43
44
45
46
47
48#ifdef FLA_ENABLE_WINDOWS_BUILD
49 pivots_lapack = ( int * ) _alloca( m_p * sizeof( int ) );
50#else
51 pivots_lapack = ( int * ) alloca( m_p * sizeof( int ) );
52#endif
53
54 for (
i = 0;
i < m_p;
i++ )
55 {
56 pivots_lapack[
i ] = buff_p[
i ] +
i + 1;
57 }
58
59 switch ( datatype ){
60
61 case FLA_FLOAT:
62 {
63 float* buff_A = ( float * ) FLA_FLOAT_PTR( A );
64
66 buff_A, &cs_A,
67 &k1_1,
68 &k2_1,
69 pivots_lapack,
70 &inc_p );
71 break;
72 }
73
74 case FLA_DOUBLE:
75 {
76 double* buff_A = ( double * ) FLA_DOUBLE_PTR( A );
77
79 buff_A, &cs_A,
80 &k1_1,
81 &k2_1,
82 pivots_lapack,
83 &inc_p );
84 break;
85 }
86
87 case FLA_COMPLEX:
88 {
90
92 buff_A, &cs_A,
93 &k1_1,
94 &k2_1,
95 pivots_lapack,
96 &inc_p );
97 break;
98 }
99
100 case FLA_DOUBLE_COMPLEX:
101 {
103
105 buff_A, &cs_A,
106 &k1_1,
107 &k2_1,
108 pivots_lapack,
109 &inc_p );
110 break;
111 }
112
113 }
114#else
115 FLA_Check_error_code( FLA_EXTERNAL_LAPACK_NOT_IMPLEMENTED );
116#endif
117
118 return FLA_SUCCESS;
119}
FLA_Error FLA_Apply_pivots_check(FLA_Side side, FLA_Trans trans, FLA_Obj p, FLA_Obj A)
Definition FLA_Apply_pivots_check.c:13
int F77_zlaswp(int *n, dcomplex *a, int *lda, int *k1, int *k2, int *ipiv, int *incx)
int F77_claswp(int *n, scomplex *a, int *lda, int *k1, int *k2, int *ipiv, int *incx)
int F77_dlaswp(int *n, double *a, int *lda, int *k1, int *k2, int *ipiv, int *incx)
int F77_slaswp(int *n, float *a, int *lda, int *k1, int *k2, int *ipiv, int *incx)
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_col_stride(FLA_Obj obj)
Definition FLA_Query.c:174
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
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
int i
Definition bl1_axmyv2.c:145
Definition blis_type_defs.h:138
Definition blis_type_defs.h:133