diff --git a/src/realtuple.hh b/src/realtuple.hh index f4368b1db6d4a11326531e7e1d4a6d3ff04aa4c5..071c1372b4180882af0ee74c7872275f0ea483c2 100644 --- a/src/realtuple.hh +++ b/src/realtuple.hh @@ -26,17 +26,19 @@ public: /** \brief Construction from a scalar */ RealTuple(double v) { - data_.assign(v); + data_ = v; + } + + /** \brief The exponention map */ + static RealTuple exp(const RealTuple& p, const TangentVector& v) { + return RealTuple(p.data_+v); } /** \brief Geodesic distance between two points Simply the Euclidean distance */ static double distance(const RealTuple& a, const RealTuple& b) { - double result = 0; - for (int i=0; i<N; i++) - result += (a.data_[0] - b.data_[0]) * (a.data_[0] - b.data_[0]); - return std::sqrt(result); + return (a.data_ - b.data_).two_norm(); } @@ -48,7 +50,7 @@ public: private: - Dune::array<double,N> data_; + Dune::FieldVector<double,N> data_; };