14EIGEN_LAPACK_FUNC(getrf,(
int *m,
int *n, RealScalar *pa,
int *lda,
int *ipiv,
int *info))
18 else if(*n<0) *info = -2;
19 else if(*lda<std::max(1,*m)) *info = -4;
23 return xerbla_(SCALAR_SUFFIX_UP
"GETRF", &e, 6);
29 Scalar* a =
reinterpret_cast<Scalar*
>(pa);
30 int nb_transpositions;
32 ::blocked_lu(*m, *n, a, *lda, ipiv, nb_transpositions));
34 for(
int i=0; i<std::min(*m,*n); ++i)
46EIGEN_LAPACK_FUNC(getrs,(
char *trans,
int *n,
int *nrhs, RealScalar *pa,
int *lda,
int *ipiv, RealScalar *pb,
int *ldb,
int *info))
49 if(OP(*trans)==INVALID) *info = -1;
50 else if(*n<0) *info = -2;
51 else if(*nrhs<0) *info = -3;
52 else if(*lda<std::max(1,*n)) *info = -5;
53 else if(*ldb<std::max(1,*n)) *info = -8;
57 return xerbla_(SCALAR_SUFFIX_UP
"GETRS", &e, 6);
60 Scalar* a =
reinterpret_cast<Scalar*
>(pa);
61 Scalar* b =
reinterpret_cast<Scalar*
>(pb);
65 for(
int i=0; i<*n; ++i)
70 lu.triangularView<
UnitLower>().solveInPlace(B);
71 lu.triangularView<
Upper>().solveInPlace(B);
73 else if(OP(*trans)==TR)
79 else if(OP(*trans)==ADJ)
81 lu.triangularView<
Upper>().adjoint().solveInPlace(B);
82 lu.triangularView<
UnitLower>().adjoint().solveInPlace(B);
85 for(
int i=0; i<*n; ++i)
GLM_FUNC_QUALIFIER mat< C, R, T, Q >::transpose_type transpose(mat< C, R, T, Q > const &m)
Definition func_matrix.inl:374
@ UnitLower
Definition Constants.h:217
@ Upper
Definition Constants.h:211
Definition PartialPivLU.h:336