Blaze 3.9
orgrq.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_LAPACK_CLAPACK_ORGRQ_H_
36#define _BLAZE_MATH_LAPACK_CLAPACK_ORGRQ_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
44#include <blaze/util/Complex.h>
46
47
48//=================================================================================================
49//
50// LAPACK FORWARD DECLARATIONS
51//
52//=================================================================================================
53
54//*************************************************************************************************
56#if !defined(INTEL_MKL_VERSION)
57extern "C" {
58
59void sorgrq_( blaze::blas_int_t* m, blaze::blas_int_t* n, blaze::blas_int_t* k, float* A,
60 blaze::blas_int_t* lda, float* tau, float* work, blaze::blas_int_t* lwork,
61 blaze::blas_int_t* info );
62void dorgrq_( blaze::blas_int_t* m, blaze::blas_int_t* n, blaze::blas_int_t* k, double* A,
63 blaze::blas_int_t* lda, double* tau, double* work, blaze::blas_int_t* lwork,
64 blaze::blas_int_t* info );
65
66}
67#endif
69//*************************************************************************************************
70
71
72
73
74namespace blaze {
75
76//=================================================================================================
77//
78// LAPACK FUNCTIONS TO RECONSTRUCT Q FROM A RQ DECOMPOSITION (ORGRQ)
79//
80//=================================================================================================
81
82//*************************************************************************************************
85void orgrq( blas_int_t m, blas_int_t n, blas_int_t k, float* A, blas_int_t lda,
86 const float* tau, float* work, blas_int_t lwork, blas_int_t* info );
87
88void orgrq( blas_int_t m, blas_int_t n, blas_int_t k, double* A, blas_int_t lda,
89 const double* tau, double* work, blas_int_t lwork, blas_int_t* info );
91//*************************************************************************************************
92
93
94//*************************************************************************************************
125inline void orgrq( blas_int_t m, blas_int_t n, blas_int_t k, float* A, blas_int_t lda,
126 const float* tau, float* work, blas_int_t lwork, blas_int_t* info )
127{
128#if defined(INTEL_MKL_VERSION)
129 BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( blas_int_t ) );
130#endif
131
132 sorgrq_( &m, &n, &k, A, &lda, const_cast<float*>( tau ), work, &lwork, info );
133}
134//*************************************************************************************************
135
136
137//*************************************************************************************************
168inline void orgrq( blas_int_t m, blas_int_t n, blas_int_t k, double* A, blas_int_t lda,
169 const double* tau, double* work, blas_int_t lwork, blas_int_t* info )
170{
171#if defined(INTEL_MKL_VERSION)
172 BLAZE_STATIC_ASSERT( sizeof( MKL_INT ) == sizeof( blas_int_t ) );
173#endif
174
175 dorgrq_( &m, &n, &k, A, &lda, const_cast<double*>( tau ), work, &lwork, info );
176}
177//*************************************************************************************************
178
179} // namespace blaze
180
181#endif
Header file for the complex data type.
Compile time assertion.
void orgrq(DenseMatrix< MT, SO > &A, const ElementType_t< MT > *tau)
LAPACK kernel for the reconstruction of the orthogonal matrix Q from a RQ decomposition.
Definition: orgrq.h:119
int32_t blas_int_t
Signed integer type used in the BLAS/LAPACK wrapper functions.
Definition: Types.h:64
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.
Definition: StaticAssert.h:112
Header file for basic BLAS type definitions.