Blaze 3.9
trmv.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_BLAS_CBLAS_TRMV_H_
36#define _BLAZE_MATH_BLAS_CBLAS_TRMV_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
44#include <blaze/system/BLAS.h>
45#include <blaze/util/Complex.h>
47
48
49namespace blaze {
50
51//=================================================================================================
52//
53// BLAS TRIANGULAR MATRIX/VECTOR MULTIPLICATION FUNCTIONS (TRMV)
54//
55//=================================================================================================
56
57//*************************************************************************************************
60#if BLAZE_BLAS_MODE
61
62void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
63 CBLAS_DIAG diag, blas_int_t n, const float* A, blas_int_t lda,
64 float* x, blas_int_t incX );
65
66void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
67 CBLAS_DIAG diag, blas_int_t n, const double* A, blas_int_t lda,
68 double* x, blas_int_t incX );
69
70void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
71 CBLAS_DIAG diag, blas_int_t n, const complex<float>* A,
72 blas_int_t lda, complex<float>* x, blas_int_t incX );
73
74void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
75 CBLAS_DIAG diag, blas_int_t n, const complex<double>* A,
77
78#endif
80//*************************************************************************************************
81
82
83//*************************************************************************************************
84#if BLAZE_BLAS_MODE
107inline void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
108 CBLAS_DIAG diag, blas_int_t n, const float* A, blas_int_t lda,
109 float* x, blas_int_t incX )
110{
111 cblas_strmv( order, uplo, transA, diag, n, A, lda, x, incX );
112}
113#endif
114//*************************************************************************************************
115
116
117//*************************************************************************************************
118#if BLAZE_BLAS_MODE
141inline void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
142 CBLAS_DIAG diag, blas_int_t n, const double* A, blas_int_t lda,
143 double* x, blas_int_t incX )
144{
145 cblas_dtrmv( order, uplo, transA, diag, n, A, lda, x, incX );
146}
147#endif
148//*************************************************************************************************
149
150
151//*************************************************************************************************
152#if BLAZE_BLAS_MODE
175inline void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
176 CBLAS_DIAG diag, blas_int_t n, const complex<float>* A,
177 blas_int_t lda, complex<float>* x, blas_int_t incX )
178{
179 BLAZE_STATIC_ASSERT( sizeof( complex<float> ) == 2UL*sizeof( float ) );
180
181 cblas_ctrmv( order, uplo, transA, diag, n, reinterpret_cast<const float*>( A ),
182 lda, reinterpret_cast<float*>( x ), incX );
183}
184#endif
185//*************************************************************************************************
186
187
188//*************************************************************************************************
189#if BLAZE_BLAS_MODE
212inline void trmv( CBLAS_ORDER order, CBLAS_UPLO uplo, CBLAS_TRANSPOSE transA,
213 CBLAS_DIAG diag, blas_int_t n, const complex<double>* A,
215{
216 BLAZE_STATIC_ASSERT( sizeof( complex<double> ) == 2UL*sizeof( double ) );
217
218 cblas_ztrmv( order, uplo, transA, diag, n, reinterpret_cast<const double*>( A ),
219 lda, reinterpret_cast<double*>( x ), incX );
220}
221#endif
222//*************************************************************************************************
223
224} // namespace blaze
225
226#endif
Header file for the complex data type.
Compile time assertion.
Complex data type of the Blaze library.
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.
System settings for the BLAS mode.