35 #ifndef _BLAZE_MATH_VECTOR_H_ 36 #define _BLAZE_MATH_VECTOR_H_ 62 template<
typename T1,
typename T2 >
63 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
64 inner(
const Vector<T1,false>& lhs,
const Vector<T2,false>& rhs );
66 template<
typename T1,
typename T2 >
67 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
68 inner(
const Vector<T1,false>& lhs,
const Vector<T2,true>& rhs );
70 template<
typename T1,
typename T2 >
71 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
72 inner(
const Vector<T1,true>& lhs,
const Vector<T2,false>& rhs );
74 template<
typename T1,
typename T2 >
75 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
76 inner(
const Vector<T1,true>& lhs,
const Vector<T2,true>& rhs );
78 template<
typename T1,
bool TF1,
typename T2,
bool TF2 >
79 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
80 dot(
const Vector<T1,TF1>& lhs,
const Vector<T2,TF2>& rhs );
82 template<
typename T1,
bool TF1,
typename T2,
bool TF2 >
83 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
84 operator,(
const Vector<T1,TF1>& lhs,
const Vector<T2,TF2>& rhs );
86 template<
typename T1,
typename T2 >
87 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
88 outer(
const Vector<T1,false>& lhs,
const Vector<T2,false>& rhs );
90 template<
typename T1,
typename T2 >
91 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
92 outer(
const Vector<T1,false>& lhs,
const Vector<T2,true>& rhs );
94 template<
typename T1,
typename T2 >
95 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
96 outer(
const Vector<T1,true>& lhs,
const Vector<T2,false>& rhs );
98 template<
typename T1,
typename T2 >
99 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
100 outer(
const Vector<T1,true>& lhs,
const Vector<T2,true>& rhs );
102 template<
typename VT,
bool TF >
103 inline std::ostream& operator<<( std::ostream& os, const Vector<VT,TF>& v );
117 template<
typename T1
119 inline const MultTrait_< ElementType_<T1>, ElementType_<T2> >
122 return trans(~lhs) * (~rhs);
136 template<
typename T1
155 template<
typename T1
160 return (~lhs) * (~rhs);
174 template<
typename T1
179 return (~lhs) *
trans(~rhs);
193 template<
typename T1
200 return inner( ~lhs, ~rhs );
214 template<
typename T1
221 return inner( ~lhs, ~rhs );
235 template<
typename T1
240 return (~lhs) *
trans(~rhs);
254 template<
typename T1
259 return (~lhs) * (~rhs);
273 template<
typename T1
292 template<
typename T1
297 return trans(~lhs) * (~rhs);
310 template<
typename VT
312 inline std::ostream& operator<<( std::ostream& os, const Vector<VT,TF>& v )
316 if( tmp.size() == 0UL ) {
321 for(
size_t i=0UL; i<tmp.size(); ++i )
326 for(
size_t i=0UL; i<tmp.size(); ++i )
327 os <<
"( " << std::setw( 11UL ) << tmp[i] <<
" )\n";
Header file for auxiliary alias declarations.
const bool rowVector
Transpose flag for row vectors.
Definition: TransposeFlag.h:73
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
Header file for the multiplication trait.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
typename T::ElementType ElementType_
Alias declaration for nested ElementType type definitions.The ElementType_ alias declaration provides...
Definition: Aliases.h:163
const MultTrait_< ElementType_< T1 >, ElementType_< T2 > > 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:120
const MultTrait_< ElementType_< T1 >, ElementType_< T2 > > 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:198
decltype(auto) trans(const DenseMatrix< MT, SO > &dm)
Calculation of the transpose of the given dense matrix.
Definition: DMatTransExpr.h:790
Base class for N-dimensional vectors.The Vector class is a base class for all arbitrarily sized (N-di...
Definition: Forward.h:177
const MultTrait_< ElementType_< T1 >, ElementType_< T2 > > outer(const Vector< T1, false > &lhs, const Vector< T2, false > &rhs)
Multiplication operator for the outer product of two vectors ( ).
Definition: Vector.h:238
const MultTrait_< ElementType_< T1 >, ElementType_< T2 > > operator,(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:219
Header file for the Vector CRTP base class.