35#ifndef _BLAZE_MATH_DENSE_PLLHP_H_
36#define _BLAZE_MATH_DENSE_PLLHP_H_
67template<
typename MT1,
bool SO1,
typename MT2,
bool SO2,
typename ST >
68int pllhp(
const DenseMatrix<MT1,SO1>& A, DenseMatrix<MT2,SO2>& L,
blas_int_t* P, ST tol );
133template<
typename MT1
153 const size_t n( (*A).rows() );
155 if( ( !IsResizable_v<MT2> && ( (*L).rows() != n || (*L).columns() != n ) ) ) {
159 decltype(
auto) l( derestrict( *L ) );
161 resize( *L, n, n,
false );
164 if( IsRowMajorMatrix_v<MT2> ) {
165 for(
size_t i=0UL; i<n; ++i ) {
166 for(
size_t j=0UL; j<=i; ++j ) {
172 for(
size_t j=0UL; j<n; ++j ) {
173 for(
size_t i=j; i<n; ++i ) {
179 return pstrf( l,
'L', P, tol );
Header file for auxiliary alias declarations.
typename T::ElementType ElementType_t
Alias declaration for nested ElementType type definitions.
Definition: Aliases.h:190
Constraint on the data type.
Constraint on the data type.
Header file for the IsResizable type trait.
Header file for the IsRowMajorMatrix type trait.
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
Base class for dense matrices.
Definition: DenseMatrix.h:82
Header file for the DenseMatrix base class.
blas_int_t pllhp(const DenseMatrix< MT1, SO1 > &A, DenseMatrix< MT2, SO2 > &L, blas_int_t *P, ST tol)
Pivoting Cholesky (PLLHP) decomposition of the given dense matrix.
Definition: PLLHP.h:138
void pstrf(char uplo, blas_int_t n, float *A, blas_int_t lda, blaze::blas_int_t *piv, blaze::blas_int_t *rank, float tol, float *work, blas_int_t *info)
LAPACK kernel for the pivoting Cholesky decomposition of the given dense semi-positive definite singl...
Definition: pstrf.h:155
#define BLAZE_CONSTRAINT_MUST_NOT_BE_SYMMETRIC_MATRIX_TYPE(T)
Constraint on the data type.
Definition: Symmetric.h:79
#define BLAZE_CONSTRAINT_MUST_BE_BLAS_COMPATIBLE_TYPE(T)
Constraint on the data type.
Definition: BLASCompatible.h:61
#define BLAZE_CONSTRAINT_MUST_NOT_BE_HERMITIAN_MATRIX_TYPE(T)
Constraint on the data type.
Definition: Hermitian.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_UPPER_MATRIX_TYPE(T)
Constraint on the data type.
Definition: Upper.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_STRICTLY_TRIANGULAR_MATRIX_TYPE(T)
Constraint on the data type.
Definition: StrictlyTriangular.h:81
#define BLAZE_CONSTRAINT_MUST_NOT_BE_UNITRIANGULAR_MATRIX_TYPE(T)
Constraint on the data type.
Definition: UniTriangular.h:81
int32_t blas_int_t
Signed integer type used in the BLAS/LAPACK wrapper functions.
Definition: Types.h:64
constexpr void reset(Matrix< MT, SO > &matrix)
Resetting the given matrix.
Definition: Matrix.h:806
void resize(Matrix< MT, SO > &matrix, size_t rows, size_t columns, bool preserve=true)
Changing the size of the matrix.
Definition: Matrix.h:1108
bool isSquare(const Matrix< MT, SO > &matrix) noexcept
Checks if the given matrix is a square matrix.
Definition: Matrix.h:1383
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.
Definition: Exception.h:235
Header file for the exception macros of the math module.
Header file for the LAPACK Pivoting Cholesky decomposition functions (pstrf)