Blaze  3.6
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,
58  float* work, int* lwork, int* info );
59 void dgeqp3_( int* m, int* n, double* A, int* lda, int* jpvt, double* tau,
60  double* work, int* lwork, int* info );
61 
62 }
63 #endif
64 
65 //*************************************************************************************************
66 
67 
68 
69 
70 namespace blaze {
71 
72 //=================================================================================================
73 //
74 // LAPACK QR DECOMPOSITION FUNCTIONS (GEQP3)
75 //
76 //=================================================================================================
77 
78 //*************************************************************************************************
81 void geqp3( int m, int n, float* A, int lda, int* jpvt, float* tau,
82  float* work, int lwork, int* info );
83 
84 void geqp3( int m, int n, double* A, int lda, int* jpvt, double* tau,
85  double* work, int lwork, int* info );
87 //*************************************************************************************************
88 
89 
90 //*************************************************************************************************
140 inline void geqp3( int m, int n, float* A, int lda, int* jpvt, float* tau,
141  float* work, int lwork, int* info )
142 {
143 #if defined(INTEL_MKL_VERSION)
144  BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( int ) );
145 #endif
146 
147  sgeqp3_( &m, &n, A, &lda, jpvt, tau, work, &lwork, info );
148 }
149 //*************************************************************************************************
150 
151 
152 //*************************************************************************************************
202 inline void geqp3( int m, int n, double* A, int lda, int* jpvt, double* tau,
203  double* work, int lwork, int* info )
204 {
205 #if defined(INTEL_MKL_VERSION)
206  BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( int ) );
207 #endif
208 
209  dgeqp3_( &m, &n, A, &lda, jpvt, tau, work, &lwork, info );
210 }
211 //*************************************************************************************************
212 
213 } // namespace blaze
214 
215 #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:140
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
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