geqp3.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_LAPACK_CLAPACK_GEQP3_H_
36 #define _BLAZE_MATH_LAPACK_CLAPACK_GEQP3_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 
45 
46 //=================================================================================================
47 //
48 // LAPACK FORWARD DECLARATIONS
49 //
50 //=================================================================================================
51 
52 //*************************************************************************************************
54 #if !defined(INTEL_MKL_VERSION)
55 extern "C" {
56 
57 void sgeqp3_( int* m, int* n, float* A, int* lda, int* jpvt, float* tau, float* work, int* lwork, int* info );
58 void dgeqp3_( int* m, int* n, double* A, int* lda, int* jpvt, double* tau, double* work, int* lwork, int* info );
59 
60 }
61 #endif
62 
63 //*************************************************************************************************
64 
65 
66 
67 
68 namespace blaze {
69 
70 //=================================================================================================
71 //
72 // LAPACK QR DECOMPOSITION FUNCTIONS (GEQP3)
73 //
74 //=================================================================================================
75 
76 //*************************************************************************************************
79 inline void geqp3( int m, int n, float* A, int lda, int* jpvt, float* tau,
80  float* work, int lwork, int* info );
81 
82 inline void geqp3( int m, int n, double* A, int lda, int* jpvt, double* tau,
83  double* work, int lwork, int* info );
85 //*************************************************************************************************
86 
87 
88 //*************************************************************************************************
138 inline void geqp3( int m, int n, float* A, int lda, int* jpvt, float* tau,
139  float* work, int lwork, int* info )
140 {
141 #if defined(INTEL_MKL_VERSION)
142  BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( int ) );
143 #endif
144 
145  sgeqp3_( &m, &n, A, &lda, jpvt, tau, work, &lwork, info );
146 }
147 //*************************************************************************************************
148 
149 
150 //*************************************************************************************************
200 inline void geqp3( int m, int n, double* A, int lda, int* jpvt, double* tau,
201  double* work, int lwork, int* info )
202 {
203 #if defined(INTEL_MKL_VERSION)
204  BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( int ) );
205 #endif
206 
207  dgeqp3_( &m, &n, A, &lda, jpvt, tau, work, &lwork, info );
208 }
209 //*************************************************************************************************
210 
211 } // namespace blaze
212 
213 #endif
void geqp3(int m, int n, float *A, int lda, int *jpvt, float *tau, float *work, int lwork, int *info)
LAPACK kernel for the QR decomposition of the given dense single precision column-major matrix...
Definition: geqp3.h:138
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Compile time assertion.
#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:112