ormrq.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_LAPACK_CLAPACK_ORMRQ_H_
36 #define _BLAZE_MATH_LAPACK_CLAPACK_ORMRQ_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 sormrq_( char* side, char* trans, int* m, int* n, int* k, float* A, int* lda, float* tau, float* C, int* ldc, float* work, int* lwork, int* info );
58 void dormrq_( char* side, char* trans, int* m, int* n, int* k, double* A, int* lda, double* tau, double* C, int* ldc, double* work, int* lwork, int* info );
59 
60 }
61 #endif
62 
63 //*************************************************************************************************
64 
65 
66 
67 
68 namespace blaze {
69 
70 //=================================================================================================
71 //
72 // LAPACK FUNCTIONS TO MULTIPLY Q FROM A RQ DECOMPOSITION WITH A MATRIX (ORMRQ)
73 //
74 //=================================================================================================
75 
76 //*************************************************************************************************
79 inline void ormrq( char side, char trans, int m, int n, int k, const float* A, int lda,
80  const float* tau, float* C, int ldc, float* work, int lwork, int* info );
81 
82 inline void ormrq( char side, char trans, int m, int n, int k, const double* A, int lda,
83  const double* tau, double* C, int ldc, double* work, int lwork, int* info );
85 //*************************************************************************************************
86 
87 
88 //*************************************************************************************************
135 inline void ormrq( char side, char trans, int m, int n, int k, const float* A, int lda,
136  const float* tau, float* C, int ldc, float* work, int lwork, int* info )
137 {
138 #if defined(INTEL_MKL_VERSION)
139  BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( int ) );
140 #endif
141 
142  sormrq_( &side, &trans, &m, &n, &k, const_cast<float*>( A ), &lda,
143  const_cast<float*>( tau ), C, &ldc, work, &lwork, info );
144 }
145 //*************************************************************************************************
146 
147 
148 //*************************************************************************************************
195 inline void ormrq( char side, char trans, int m, int n, int k, const double* A, int lda,
196  const double* tau, double* C, int ldc, double* work, int lwork, int* info )
197 {
198 #if defined(INTEL_MKL_VERSION)
199  BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( int ) );
200 #endif
201 
202  dormrq_( &side, &trans, &m, &n, &k, const_cast<double*>( A ), &lda,
203  const_cast<double*>( tau ), C, &ldc, work, &lwork, info );
204 }
205 //*************************************************************************************************
206 
207 } // namespace blaze
208 
209 #endif
void ormrq(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 RQ decomposition with another m...
Definition: ormrq.h:135
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