Blaze 3.9
syevd.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_LAPACK_CLAPACK_SYEVD_H_
36#define _BLAZE_MATH_LAPACK_CLAPACK_SYEVD_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
44#include <blaze/util/Complex.h>
46#include <blaze/util/Types.h>
47
48
49//=================================================================================================
50//
51// LAPACK FORWARD DECLARATIONS
52//
53//=================================================================================================
54
55//*************************************************************************************************
57#if !defined(INTEL_MKL_VERSION)
58extern "C" {
59
60void ssyevd_( char* jobz, char* uplo, blaze::blas_int_t* n, float* A, blaze::blas_int_t* lda,
61 float* w, float* work, blaze::blas_int_t* lwork, blaze::blas_int_t* iwork,
64void dsyevd_( char* jobz, char* uplo, blaze::blas_int_t* n, double* A, blaze::blas_int_t* lda,
65 double* w, double* work, blaze::blas_int_t* lwork, blaze::blas_int_t* iwork,
68
69}
70#endif
72//*************************************************************************************************
73
74
75
76
77namespace blaze {
78
79//=================================================================================================
80//
81// LAPACK SYMMETRIC MATRIX EIGENVALUE FUNCTIONS (SYEVD)
82//
83//=================================================================================================
84
85//*************************************************************************************************
88void syevd( char jobz, char uplo, blas_int_t n, float* A, blas_int_t lda,
89 float* w, float* work, blas_int_t lwork, blas_int_t* iwork,
90 blas_int_t liwork, blas_int_t* info );
91
92void syevd( char jobz, char uplo, blas_int_t n, double* A, blas_int_t lda,
93 double* w, double* work, blas_int_t lwork, blas_int_t* iwork,
94 blas_int_t liwork, blas_int_t* info );
96//*************************************************************************************************
97
98
99//*************************************************************************************************
141inline void syevd( char jobz, char uplo, blas_int_t n, float* A, blas_int_t lda,
142 float* w, float* work, blas_int_t lwork, blas_int_t* iwork,
143 blas_int_t liwork, blas_int_t* info )
144{
145#if defined(INTEL_MKL_VERSION)
146 BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( blas_int_t ) );
147#endif
148
149 ssyevd_( &jobz, &uplo, &n, A, &lda, w, work, &lwork, iwork, &liwork, info
150#if !defined(INTEL_MKL_VERSION)
152#endif
153 );
154}
155//*************************************************************************************************
156
157
158//*************************************************************************************************
200inline void syevd( char jobz, char uplo, blas_int_t n, double* A, blas_int_t lda,
201 double* w, double* work, blas_int_t lwork, blas_int_t* iwork,
202 blas_int_t liwork, blas_int_t* info )
203{
204#if defined(INTEL_MKL_VERSION)
205 BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( blas_int_t ) );
206#endif
207
208 dsyevd_( &jobz, &uplo, &n, A, &lda, w, work, &lwork, iwork, &liwork, info
209#if !defined(INTEL_MKL_VERSION)
211#endif
212 );
213}
214//*************************************************************************************************
215
216} // namespace blaze
217
218#endif
Header file for the complex data type.
Compile time assertion.
void syevd(DenseMatrix< MT, SO > &A, DenseVector< VT, TF > &w, char jobz, char uplo)
LAPACK kernel for computing the eigenvalues of the given dense symmetric matrix.
Definition: syevd.h:140
int32_t blas_int_t
Signed integer type used in the BLAS/LAPACK wrapper functions.
Definition: Types.h:64
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.
Definition: StaticAssert.h:112
size_t fortran_charlen_t
Type of the hidden arguments of character type within a Fortran forward declaration.
Definition: Types.h:186
Header file for basic BLAS type definitions.
Header file for basic type definitions.