vector: add free dot function
This commit is contained in:
parent
b0d3211f02
commit
d342ef72f5
14
vector.cpp
14
vector.cpp
@ -399,6 +399,19 @@ util::operator- (U a, const util::vector<S,T> &b)
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
template <size_t S, typename T>
|
||||
T
|
||||
util::dot (vector<S,T> a, vector<S,T> b)
|
||||
{
|
||||
return std::inner_product (std::begin (a),
|
||||
std::end (a),
|
||||
std::begin (b),
|
||||
T{0});
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// ostream
|
||||
|
||||
template <size_t S, typename T>
|
||||
std::ostream&
|
||||
util::operator<< (std::ostream &os, const util::vector<S,T> &v) {
|
||||
@ -437,6 +450,7 @@ template util::vector<S,T> util::operator* (unsigned, const util::vector<S,T>&);
|
||||
template util::vector<S,T> util::operator* (float, const util::vector<S,T>&); \
|
||||
template util::vector<S,T> util::operator+ (T, const util::vector<S,T>&); \
|
||||
template util::vector<S,T> util::operator- (T, const util::vector<S,T>&); \
|
||||
template T util::dot (util::vector<S,T>, util::vector<S,T>); \
|
||||
template std::ostream& util::operator<< (std::ostream&, const util::vector<S,T> &v);\
|
||||
template const json::tree::node& util::operator>> (const json::tree::node&, util::vector<S,T>&);
|
||||
|
||||
|
@ -97,6 +97,8 @@ namespace util {
|
||||
template <size_t S, typename T, typename U> vector<S,T> operator+ (U, const vector<S,T>&);
|
||||
template <size_t S, typename T, typename U> vector<S,T> operator- (U, const vector<S,T>&);
|
||||
|
||||
template <size_t S, typename T> T dot (vector<S,T>, vector<S,T>);
|
||||
|
||||
// output and serialisation operators
|
||||
template <size_t S, typename T> std::ostream& operator<< (std::ostream&, const vector<S,T>&);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user