35 #ifndef _BLAZE_MATH_VECTOR_H_ 36 #define _BLAZE_MATH_VECTOR_H_ 61 template<
typename T1,
typename T2 >
62 inline decltype(
auto)
inner( const Vector<T1,false>& lhs, const Vector<T2,false>& rhs );
64 template< typename T1, typename T2 >
65 inline decltype(auto)
inner( const Vector<T1,false>& lhs, const Vector<T2,true>& rhs );
67 template< typename T1, typename T2 >
68 inline decltype(auto)
inner( const Vector<T1,true>& lhs, const Vector<T2,false>& rhs );
70 template< typename T1, typename T2 >
71 inline decltype(auto)
inner( const Vector<T1,true>& lhs, const Vector<T2,true>& rhs );
73 template< typename T1,
bool TF1, typename T2,
bool TF2 >
74 inline decltype(auto)
dot( const Vector<T1,TF1>& lhs, const Vector<T2,TF2>& rhs );
76 template< typename T1,
bool TF1, typename T2,
bool TF2 >
77 inline decltype(auto) operator,( const Vector<T1,TF1>& lhs, const Vector<T2,TF2>& rhs );
79 template< typename T1, typename T2 >
80 inline decltype(auto)
outer( const Vector<T1,false>& lhs, const Vector<T2,false>& rhs );
82 template< typename T1, typename T2 >
83 inline decltype(auto)
outer( const Vector<T1,false>& lhs, const Vector<T2,true>& rhs );
85 template< typename T1, typename T2 >
86 inline decltype(auto)
outer( const Vector<T1,true>& lhs, const Vector<T2,false>& rhs );
88 template< typename T1, typename T2 >
89 inline decltype(auto)
outer( const Vector<T1,true>& lhs, const Vector<T2,true>& rhs );
91 template< typename VT,
bool TF >
92 inline
std::ostream& operator<<(
std::ostream& os, const Vector<VT,TF>& v );
106 template< typename T1
110 return trans(~lhs) * (~rhs);
124 template<
typename T1
142 template<
typename T1
146 return (~lhs) * (~rhs);
160 template<
typename T1
164 return (~lhs) *
trans(~rhs);
178 template<
typename T1
184 return inner( ~lhs, ~rhs );
198 template<
typename T1
202 inline decltype(
auto) operator,( const
Vector<T1,TF1>& lhs, const
Vector<T2,TF2>& rhs )
204 return inner( ~lhs, ~rhs );
218 template<
typename T1
222 return (~lhs) *
trans(~rhs);
236 template<
typename T1
240 return (~lhs) * (~rhs);
254 template<
typename T1
272 template<
typename T1
276 return trans(~lhs) * (~rhs);
289 template<
typename VT
291 inline std::ostream& operator<<( std::ostream& os, const Vector<VT,TF>& v )
295 if( tmp.size() == 0UL ) {
300 for(
size_t i=0UL; i<tmp.size(); ++i )
305 for(
size_t i=0UL; i<tmp.size(); ++i )
306 os <<
"( " << std::setw( 11UL ) << tmp[i] <<
" )\n";
decltype(auto) inner(const Vector< T1, false > &lhs, const Vector< T2, false > &rhs)
Multiplication operator for the scalar product (dot/inner product) of two vectors ( )...
Definition: Vector.h:108
Header file for auxiliary alias declarations.
const bool rowVector
Transpose flag for row vectors.
Definition: TransposeFlag.h:73
decltype(auto) dot(const Vector< T1, TF1 > &lhs, const Vector< T2, TF2 > &rhs)
Multiplication operator for the scalar product (dot/inner product) of two vectors ( )...
Definition: Vector.h:182
Header file for the vector transpose flag types.
typename T::CompositeType CompositeType_
Alias declaration for nested CompositeType type definitions.The CompositeType_ alias declaration prov...
Definition: Aliases.h:83
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
decltype(auto) outer(const Vector< T1, false > &lhs, const Vector< T2, false > &rhs)
Multiplication operator for the outer product of two vectors ( ).
Definition: Vector.h:220
decltype(auto) trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:789
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:177
Header file for the Vector CRTP base class.