35 #ifndef _BLAZE_MATH_BLAS_DOTC_H_ 36 #define _BLAZE_MATH_BLAS_DOTC_H_ 69 BLAZE_ALWAYS_INLINE float dotc(
int n,
const float* x,
int incX,
const float* y,
int incY );
71 BLAZE_ALWAYS_INLINE double dotc(
int n,
const double* x,
int incX,
const double* y,
int incY );
74 const complex<float>* y,
int incY );
77 const complex<double>* y,
int incY );
79 template<
typename VT1,
bool TF1,
typename VT2,
bool TF2 >
80 BLAZE_ALWAYS_INLINE ElementType_<VT1> dotc(
const DenseVector<VT1,TF1>& x,
const DenseVector<VT2,TF2>& y );
103 BLAZE_ALWAYS_INLINE float dotc(
int n,
const float* x,
int incX,
const float* y,
int incY )
105 return cblas_sdot( n, x, incX, y, incY );
127 BLAZE_ALWAYS_INLINE double dotc(
int n,
const double* x,
int incX,
const double* y,
int incY )
129 return cblas_ddot( n, x, incX, y, incY );
153 const complex<float>* y,
int incY )
159 #ifdef OPENBLAS_VERSION 160 cblas_cdotc_sub( n, reinterpret_cast<const float*>( x ), incX,
161 reinterpret_cast<const float*>( y ), incY,
162 reinterpret_cast<openblas_complex_float*>( &tmp ) );
164 cblas_cdotc_sub( n, reinterpret_cast<const float*>( x ), incX,
165 reinterpret_cast<const float*>( y ), incY, &tmp );
192 const complex<double>* y,
int incY )
198 #ifdef OPENBLAS_VERSION 199 cblas_zdotc_sub( n, reinterpret_cast<const double*>( x ), incX,
200 reinterpret_cast<const double*>( y ), incY,
201 reinterpret_cast<openblas_complex_double*>( &tmp ) );
203 cblas_zdotc_sub( n, reinterpret_cast<const double*>( x ), incX,
204 reinterpret_cast<const double*>( y ), incY, &tmp );
227 template<
typename VT1,
bool TF1,
typename VT2,
bool TF2 >
228 ElementType_<VT1> dotc(
const DenseVector<VT1,TF1>& x,
const DenseVector<VT2,TF2>& y )
239 const int n( numeric_cast<int>( (~x).
size() ) );
241 return dotc( n, (~x).data(), 1, (~y).data(), 1 );
Constraint on the data type.
Header file for auxiliary alias declarations.
#define BLAZE_CONSTRAINT_MUST_HAVE_CONST_DATA_ACCESS(T)
Constraint on the data type.In case the given data type T does not provide low-level data access to c...
Definition: ConstDataAccess.h:61
BLAZE_ALWAYS_INLINE size_t size(const Vector< VT, TF > &vector) noexcept
Returns the current size/dimension of the vector.
Definition: Vector.h:265
#define BLAZE_CONSTRAINT_MUST_NOT_BE_COMPUTATION_TYPE(T)
Constraint on the data type.In case the given data type T is a computational expression (i...
Definition: Computation.h:81
Header file for the DenseVector base class.
Cast operators for numeric types.
Constraint on the data type.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
System settings for the BLAS mode.
Header file for run time assertion macros.
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_BE_BLAS_COMPATIBLE_TYPE(T)
Constraint on the data type.In case the given data type T is not a BLAS compatible data type (i...
Definition: BLASCompatible.h:61
Header file for the complex data type.
#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
System settings for the inline keywords.