35 #ifndef _BLAZE_MATH_LAPACK_GETRI_H_
36 #define _BLAZE_MATH_LAPACK_GETRI_H_
43 #include <boost/cast.hpp>
69 void sgetri_(
int* n,
float* A,
int* lda,
int* ipiv,
float* work,
int* lwork,
int*
info );
70 void dgetri_(
int* n,
double* A,
int* lda,
int* ipiv,
double* work,
int* lwork,
int*
info );
71 void cgetri_(
int* n,
float* A,
int* lda,
int* ipiv,
float* work,
int* lwork,
int*
info );
72 void zgetri_(
int* n,
double* A,
int* lda,
int* ipiv,
double* work,
int* lwork,
int*
info );
90 inline void getri(
int n,
float* A,
int lda,
const int* ipiv,
float* work,
int lwork,
int*
info );
92 inline void getri(
int n,
double* A,
int lda,
const int* ipiv,
double* work,
int lwork,
int*
info );
94 inline void getri(
int n, complex<float>* A,
int lda,
const int* ipiv,
95 complex<float>* work,
int lwork,
int*
info );
97 inline void getri(
int n, complex<double>* A,
int lda,
const int* ipiv,
98 complex<double>* work,
int lwork,
int*
info );
100 template<
typename MT,
bool SO >
101 inline void getri( DenseMatrix<MT,SO>& A,
const int* ipiv );
141 inline void getri(
int n,
float* A,
int lda,
const int* ipiv,
float* work,
int lwork,
int*
info )
143 sgetri_( &n, A, &lda, const_cast<int*>( ipiv ), work, &lwork, info );
183 inline void getri(
int n,
double* A,
int lda,
const int* ipiv,
double* work,
int lwork,
int*
info )
185 dgetri_( &n, A, &lda, const_cast<int*>( ipiv ), work, &lwork, info );
225 inline void getri(
int n, complex<float>* A,
int lda,
const int* ipiv,
226 complex<float>* work,
int lwork,
int*
info )
230 cgetri_( &n, reinterpret_cast<float*>( A ), &lda, const_cast<int*>( ipiv ),
231 reinterpret_cast<float*>( work ), &lwork, info );
271 inline void getri(
int n, complex<double>* A,
int lda,
const int* ipiv,
272 complex<double>* work,
int lwork,
int*
info )
276 zgetri_( &n, reinterpret_cast<double*>( A ), &lda, const_cast<int*>( ipiv ),
277 reinterpret_cast<double*>( work ), &lwork, info );
316 template<
typename MT
320 using boost::numeric_cast;
333 int n ( numeric_cast<int>( (~A).
columns() ) );
334 int lda ( numeric_cast<int>( (~A).
spacing() ) );
344 getri( n, (~A).data(), lda, ipiv, work.
get(), lwork, &
info );
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exceptionThis macro encapsulates the default way of...
Definition: Exception.h:187
Constraint on the data type.
Log level for high-level information.
Definition: LogLevel.h:80
#define BLAZE_CONSTRAINT_MUST_HAVE_MUTABLE_DATA_ACCESS(T)
Constraint on the data type.In case the given data type T does not provide low-level data access to m...
Definition: MutableDataAccess.h:79
BLAZE_ALWAYS_INLINE bool isSquare(const Matrix< MT, SO > &matrix)
Checks if the given matrix is a square matrix.
Definition: Matrix.h:603
#define BLAZE_CONSTRAINT_MUST_NOT_BE_COMPUTATION_TYPE(T)
Constraint on the data type.In case the given data type T is a computational expression (i...
Definition: Computation.h:118
Pointer get() const
Returns a pointer to the managed array.
Definition: UniqueArray.h:245
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_NOT_BE_ADAPTOR_TYPE(T)
Constraint on the data type.In case the given data type T is an adaptor type (as for instance LowerMa...
Definition: Adaptor.h:118
Base class for dense matrices.The DenseMatrix class is a base class for all dense matrix classes...
Definition: DenseMatrix.h:70
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the DenseMatrix base class.
Type ElementType
Type of the sparse matrix elements.
Definition: CompressedMatrix.h:2586
Constraint on the data type.
Constraint on the data type.
void getri(int n, float *A, int lda, const int *ipiv, float *work, int lwork, int *info)
LAPACK kernel for the inversion of the given dense general single precision column-major square matri...
Definition: getri.h:141
const bool spacing
Adding an additional spacing line between two log messages.This setting gives the opportunity to add ...
Definition: Logging.h:70
Header file for run time assertion macros.
Header file for the UniqueArray smart pointer class.
#define BLAZE_CONSTRAINT_MUST_BE_BLAS_COMPATIBLE_TYPE(T)
Constraint on the data type.In case the given data type T is not a BLAS compatible data type (i...
Definition: BlasCompatible.h:79
Header file for the IsRowMajorMatrix type trait.
BLAZE_ALWAYS_INLINE size_t columns(const Matrix< MT, SO > &matrix)
Returns the current number of columns of the matrix.
Definition: Matrix.h:324
Header file for the complex data type.
Header file for exception macros.
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:143
Scope-limited management of dynamically allocated arrays.The UniqueArray class implements a scope-res...
Definition: UniqueArray.h:97
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_INTERNAL_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERTION flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:101