MADNESS 0.10.1
Classes | Namespaces | Macros | Functions
linalg_wrappers.h File Reference

Template wrappers for LAPACK routines. More...

#include <madness/tensor/clapack.h>
#include <madness/fortran_ctypes.h>
Include dependency graph for linalg_wrappers.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  madness::LinAlgException
 Linear algebra Exception. More...
 
struct  madness::detail::real_type< T >
 
struct  madness::detail::real_type< std::complex< T > >
 

Namespaces

namespace  madness
 Namespace for all elements and tools of MADNESS.
 
namespace  madness::detail
 

Macros

#define LINALG_ASSERT(condition, msg, value)
 
#define LINALG_EXCEPTION(msg, value)
 
#define LINALG_EXCEPTION_AT(F, L)   LINALG_STRINGIZE(F) "(" LINALG_STRINGIZE(L) ")"
 
#define LINALG_STRINGIZE(X)   #X
 

Functions

template<typename T >
void madness::cholesky (char uplo, integer n, T *A, integer lda)
 Compute the Cholesky Factorization via LAPACK.
 
template<typename T >
void madness::hereig (char jobz, char uplo, integer n, T *A, integer lda, typename detail::real_type< T >::type *W)
 Solve the EVP via LAPACK.
 
template<typename T >
void madness::hereig_gen (integer itype, char jobz, char uplo, integer n, T *A, integer lda, T *B, integer ldb, typename detail::real_type< T >::type *W)
 Solve the Generalized EVP via LAPACK.
 
template<typename T >
void madness::svd (char jobu, char jobvt, integer m, integer n, T *A, integer lda, typename detail::real_type< T >::type *S, T *U, integer ldu, T *VT, integer ldvt)
 Compute the SVD via LAPACK.
 

Detailed Description

Template wrappers for LAPACK routines.

Macro Definition Documentation

◆ LINALG_ASSERT

#define LINALG_ASSERT (   condition,
  msg,
  value 
)
Value:
do {if (!(condition)) \
throw ::madness::LinAlgException("LINALG ASSERTION FAILED: " LINALG_EXCEPTION_AT( __FILE__, __LINE__ ) ": " msg , \
#condition,value,__LINE__,__FUNCTION__,__FILE__); \
} while (0)
#define LINALG_EXCEPTION_AT(F, L)
Definition linalg_wrappers.h:98

◆ LINALG_EXCEPTION

#define LINALG_EXCEPTION (   msg,
  value 
)
Value:
throw ::madness::LinAlgException("LINALG EXCEPTION: " LINALG_EXCEPTION_AT( __FILE__, __LINE__ ) ": " msg , \
0,value,__LINE__,__FUNCTION__,__FILE__)

◆ LINALG_EXCEPTION_AT

#define LINALG_EXCEPTION_AT (   F,
  L 
)    LINALG_STRINGIZE(F) "(" LINALG_STRINGIZE(L) ")"

◆ LINALG_STRINGIZE

#define LINALG_STRINGIZE (   X)    #X