Blaze  3.6
ormqr.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_LAPACK_CLAPACK_ORMQR_H_
36 #define _BLAZE_MATH_LAPACK_CLAPACK_ORMQR_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 #include <blaze/util/Types.h>
45 
46 
47 //=================================================================================================
48 //
49 // LAPACK FORWARD DECLARATIONS
50 //
51 //=================================================================================================
52 
53 //*************************************************************************************************
55 #if !defined(INTEL_MKL_VERSION)
56 extern "C" {
57 
58 void sormqr_( char* side, char* trans, int* m, int* n, int* k, float* A, int* lda,
59  float* tau, float* C, int* ldc, float* work, int* lwork, int* info,
61 void dormqr_( char* side, char* trans, int* m, int* n, int* k, double* A, int* lda,
62  double* tau, double* C, int* ldc, double* work, int* lwork, int* info,
64 
65 }
66 #endif
67 
68 //*************************************************************************************************
69 
70 
71 
72 
73 namespace blaze {
74 
75 //=================================================================================================
76 //
77 // LAPACK FUNCTIONS TO MULTIPLY Q FROM A QR DECOMPOSITION WITH A MATRIX (ORMQR)
78 //
79 //=================================================================================================
80 
81 //*************************************************************************************************
84 void ormqr( char side, char trans, int m, int n, int k, const float* A, int lda,
85  const float* tau, float* C, int ldc, float* work, int lwork, int* info );
86 
87 void ormqr( char side, char trans, int m, int n, int k, const double* A, int lda,
88  const double* tau, double* C, int ldc, double* work, int lwork, int* info );
90 //*************************************************************************************************
91 
92 
93 //*************************************************************************************************
140 inline void ormqr( char side, char trans, int m, int n, int k, const float* A, int lda,
141  const float* tau, float* C, int ldc, 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  sormqr_( &side, &trans, &m, &n, &k, const_cast<float*>( A ), &lda,
148  const_cast<float*>( tau ), C, &ldc, work, &lwork, info,
150 }
151 //*************************************************************************************************
152 
153 
154 //*************************************************************************************************
201 inline void ormqr( char side, char trans, int m, int n, int k, const double* A, int lda,
202  const double* tau, double* C, int ldc, double* work, int lwork, int* info )
203 {
204 #if defined(INTEL_MKL_VERSION)
205  BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( int ) );
206 #endif
207 
208  dormqr_( &side, &trans, &m, &n, &k, const_cast<double*>( A ), &lda,
209  const_cast<double*>( tau ), C, &ldc, work, &lwork, info,
211 }
212 //*************************************************************************************************
213 
214 } // namespace blaze
215 
216 #endif
void ormqr(char side, char trans, int m, int n, int k, const float *A, int lda, const float *tau, float *C, int ldc, float *work, int lwork, int *info)
LAPACK kernel for the multiplication of the single precision Q from a QR decomposition with another m...
Definition: ormqr.h:140
Header file for basic type definitions.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Compile time assertion.
decltype(auto) trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:765
#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
Size type of the Blaze library.