ormlq.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_LAPACK_CLAPACK_ORMLQ_H_
36 #define _BLAZE_MATH_LAPACK_CLAPACK_ORMLQ_H_
37 
38 
39 //=================================================================================================
40 //
41 // LAPACK FORWARD DECLARATIONS
42 //
43 //=================================================================================================
44 
45 //*************************************************************************************************
47 extern "C" {
48 
49 void sormlq_( 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 );
50 void dormlq_( 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 );
51 
52 }
54 //*************************************************************************************************
55 
56 
57 
58 
59 namespace blaze {
60 
61 //=================================================================================================
62 //
63 // LAPACK FUNCTIONS TO MULTIPLY Q FROM A LQ DECOMPOSITION WITH A MATRIX (ORMLQ)
64 //
65 //=================================================================================================
66 
67 //*************************************************************************************************
70 inline void ormlq( char side, char trans, int m, int n, int k, const float* A, int lda,
71  const float* tau, float* C, int ldc, float* work, int lwork, int* info );
72 
73 inline void ormlq( char side, char trans, int m, int n, int k, const double* A, int lda,
74  const double* tau, double* C, int ldc, double* work, int lwork, int* info );
76 //*************************************************************************************************
77 
78 
79 //*************************************************************************************************
126 inline void ormlq( char side, char trans, int m, int n, int k, const float* A, int lda,
127  const float* tau, float* C, int ldc, float* work, int lwork, int* info )
128 {
129  sormlq_( &side, &trans, &m, &n, &k, const_cast<float*>( A ), &lda,
130  const_cast<float*>( tau ), C, &ldc, work, &lwork, info );
131 }
132 //*************************************************************************************************
133 
134 
135 //*************************************************************************************************
182 inline void ormlq( char side, char trans, int m, int n, int k, const double* A, int lda,
183  const double* tau, double* C, int ldc, double* work, int lwork, int* info )
184 {
185  dormlq_( &side, &trans, &m, &n, &k, const_cast<double*>( A ), &lda,
186  const_cast<double*>( tau ), C, &ldc, work, &lwork, info );
187 }
188 //*************************************************************************************************
189 
190 } // namespace blaze
191 
192 #endif
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
void ormlq(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 LQ decomposition with another m...
Definition: ormlq.h:126
const DMatTransExpr< MT,!SO > trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:733