Eigen::internal::lapacke_helpers::lapacke_partial_lu< Scalar, StorageOrder > Struct Template Reference

#include <PartialPivLU_LAPACKE.h>

Static Public Member Functions

static lapack_int blocked_lu (Index rows, Index cols, Scalar *lu_data, Index luStride, lapack_int *row_transpositions, lapack_int &nb_transpositions, lapack_int maxBlockSize=256)
 

Member Function Documentation

◆ blocked_lu()

template<typename Scalar , int StorageOrder>
static lapack_int Eigen::internal::lapacke_helpers::lapacke_partial_lu< Scalar, StorageOrder >::blocked_lu ( Index  rows,
Index  cols,
Scalar lu_data,
Index  luStride,
lapack_int row_transpositions,
lapack_int nb_transpositions,
lapack_int  maxBlockSize = 256 
)
inlinestatic

performs the LU decomposition in-place of the matrix represented

52  {
53  EIGEN_UNUSED_VARIABLE(maxBlockSize);
54  // Set up parameters for getrf
55  lapack_int matrix_order = StorageOrder == RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR;
56  lapack_int lda = to_lapack(luStride);
57  Scalar* a = lu_data;
58  lapack_int* ipiv = row_transpositions;
61  nb_transpositions = 0;
62 
63  lapack_int info = getrf(matrix_order, m, n, to_lapack(a), lda, ipiv);
64  eigen_assert(info >= 0);
65 
66  for (int i = 0; i < m; i++) {
67  ipiv[i]--;
68  if (ipiv[i] != i) nb_transpositions++;
69  }
70  lapack_int first_zero_pivot = info;
71  return first_zero_pivot;
72  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
#define EIGEN_UNUSED_VARIABLE(var)
Definition: Macros.h:966
#define eigen_assert(x)
Definition: Macros.h:910
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
SCALAR Scalar
Definition: bench_gemm.cpp:45
@ RowMajor
Definition: Constants.h:320
#define LAPACK_COL_MAJOR
Definition: lapacke.h:124
#define lapack_int
Definition: lapacke.h:52
#define LAPACK_ROW_MAJOR
Definition: lapacke.h:123
const Scalar * a
Definition: level2_cplx_impl.h:32
const char const int const RealScalar const RealScalar const int * lda
Definition: level2_cplx_impl.h:20
int * m
Definition: level2_cplx_impl.h:294
int info
Definition: level2_cplx_impl.h:39
EIGEN_ALWAYS_INLINE auto to_lapack(Source value)
Definition: lapacke_helpers.h:61

References a, cols, eigen_assert, EIGEN_UNUSED_VARIABLE, i, info, LAPACK_COL_MAJOR, lapack_int, LAPACK_ROW_MAJOR, lda, m, n, Eigen::RowMajor, rows, and Eigen::internal::lapacke_helpers::to_lapack().


The documentation for this struct was generated from the following file: