From 13ea2bbdf58f4a2ba448404c78d8954a7c4878dd Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Wed, 15 Apr 2015 13:48:07 +1000 Subject: [PATCH] vector: style --- vector.cpp | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/vector.cpp b/vector.cpp index 96dd1eac..407a47f5 100644 --- a/vector.cpp +++ b/vector.cpp @@ -25,15 +25,14 @@ #include #include - -//----------------------------------------------------------------------------- -using namespace util; +using util::vector; -//----------------------------------------------------------------------------- +/////////////////////////////////////////////////////////////////////////////// template T -util::vector::magnitude (void) const { +util::vector::magnitude (void) const +{ // TODO: this should not truncate for integral types return static_cast (std::sqrt (magnitude2 ())); } @@ -42,7 +41,8 @@ util::vector::magnitude (void) const { //----------------------------------------------------------------------------- template T -util::vector::magnitude2 (void) const { +util::vector::magnitude2 (void) const +{ T total { 0 }; for (size_t i = 0; i < S; ++i) total += pow2 (this->data[i]); @@ -53,7 +53,8 @@ util::vector::magnitude2 (void) const { //----------------------------------------------------------------------------- template T -util::vector::difference (const util::vector &rhs) const { +util::vector::difference (const util::vector &rhs) const +{ // TODO: change the signature to ensure it does not truncate return static_cast (std::sqrt (difference2 (rhs))); } @@ -62,7 +63,8 @@ util::vector::difference (const util::vector &rhs) const { //----------------------------------------------------------------------------- template T -util::vector::difference2 (const util::vector &rhs) const { +util::vector::difference2 (const util::vector &rhs) const +{ T sum {0}; for (size_t i = 0; i < S; ++i) sum += pow2 (this->data[i] - rhs.data[i]); @@ -72,7 +74,8 @@ util::vector::difference2 (const util::vector &rhs) const { //----------------------------------------------------------------------------- template util::vector& -util::vector::normalise (void) { +util::vector::normalise (void) +{ T mag = magnitude (); for (size_t i = 0; i < S; ++i) @@ -85,7 +88,8 @@ util::vector::normalise (void) { //----------------------------------------------------------------------------- template util::vector -util::vector::normalised (void) const { +util::vector::normalised (void) const +{ T mag = magnitude (); util::vector out; @@ -140,7 +144,8 @@ template util::vector3d util::cross(const util::vector3d&, const util::vector3d& //----------------------------------------------------------------------------- template util::vector<3,T> -util::spherical_to_cartesian (const util::vector<3,T> &s) { +util::spherical_to_cartesian (const util::vector<3,T> &s) +{ return util::vector<3,T> { s.x * sin (s.y) * cos (s.z), s.x * sin (s.y) * sin (s.z), @@ -152,7 +157,8 @@ util::spherical_to_cartesian (const util::vector<3,T> &s) { //----------------------------------------------------------------------------- template util::vector<3,T> -util::cartesian_to_spherical (const util::vector<3,T> &c) { +util::cartesian_to_spherical (const util::vector<3,T> &c) +{ T mag = c.magnitude (); return util::vector<3,T> { @@ -166,7 +172,8 @@ util::cartesian_to_spherical (const util::vector<3,T> &c) { //----------------------------------------------------------------------------- template bool -util::vector::is_zero (void) const { +util::vector::is_zero (void) const +{ return std::all_of (std::begin (this->data), std::end (this->data), [] (T i) { return almost_zero (i); }); @@ -182,7 +189,8 @@ util::vector::ZERO (T{0}); //----------------------------------------------------------------------------- template void -util::vector::sanity (void) const { +util::vector::sanity (void) const +{ CHECK (std::all_of (std::begin (this->data), std::end (this->data), [] (T i) { return !std::isnan (i); })); @@ -194,7 +202,8 @@ util::vector::sanity (void) const { template std::ostream& -util::operator<< (std::ostream &os, const util::vector &v) { +util::operator<< (std::ostream &os, const util::vector &v) +{ os << "vec" << S << "(" << v.data[0]; for (size_t i = 1; i < S; ++i) os << ", " << v.data[i]; @@ -206,7 +215,8 @@ util::operator<< (std::ostream &os, const util::vector &v) { //----------------------------------------------------------------------------- template const json::tree::node& -util::operator>> (const json::tree::node &node, util::vector &v) { +util::operator>> (const json::tree::node &node, util::vector &v) +{ const json::tree::array &array = node.as_array (); if (array.size () != S) throw std::runtime_error ("Invalid dimensionality for json-to-vector"); @@ -222,7 +232,6 @@ util::operator>> (const json::tree::node &node, util::vector &v) { //----------------------------------------------------------------------------- - #define INSTANTIATE_S_T(S,T) \ template struct util::vector; \ template std::ostream& util::operator<< (std::ostream&, const util::vector &v);\