performs the LU decomposition in-place of the matrix represented by the variables rows, cols, lu_data, and lu_stride using a recursive, blocked algorithm.
406 blockSize =
size / 8;
407 blockSize = (blockSize / 16) * 16;
411 nb_transpositions = 0;
412 Index first_zero_pivot = -1;
429 PivIndex nb_transpositions_in_panel;
433 nb_transpositions_in_panel, 16);
434 if (
ret >= 0 && first_zero_pivot == -1) first_zero_pivot =
k +
ret;
436 nb_transpositions += nb_transpositions_in_panel;
439 Index piv = (row_transpositions[
i] += internal::convert_index<PivIndex>(
k));
440 A_0.row(
i).swap(A_0.row(piv));
445 for (
Index i =
k;
i <
k + bs; ++
i) A_2.row(
i).swap(A_2.row(row_transpositions[
i]));
448 A11.template triangularView<UnitLower>().solveInPlace(A12);
450 A22.noalias() -= A21 * A12;
453 return first_zero_pivot;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
static ConstMapType Map(const Scalar *data)
Definition: PlainObjectBase.h:595
cout<< "Here is the matrix m:"<< endl<< m<< endl;Eigen::FullPivLU< Matrix5x3 > lu(m)
#define min(a, b)
Definition: datatypes.h:22
#define max(a, b)
Definition: datatypes.h:23
Eigen::DenseIndex ret
Definition: level1_cplx_impl.h:43
char char char int int * k
Definition: level2_impl.h:374
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
static Index blocked_lu(Index rows, Index cols, Scalar *lu_data, Index luStride, PivIndex *row_transpositions, PivIndex &nb_transpositions, Index maxBlockSize=256)
Definition: PartialPivLU.h:391
static constexpr int UnBlockedBound
Definition: PartialPivLU.h:306
Ref< Matrix< Scalar, Dynamic, Dynamic, StorageOrder > > BlockType
Definition: PartialPivLU.h:314
Ref< MatrixType > MatrixTypeRef
Definition: PartialPivLU.h:313
static constexpr bool UnBlockedAtCompileTime
Definition: PartialPivLU.h:307
static Index unblocked_lu(MatrixTypeRef &lu, PivIndex *row_transpositions, PivIndex &nb_transpositions)
Definition: PartialPivLU.h:327