]> https://gitweb.dealii.org/ - dealii.git/commitdiff
add Point::squared_distance()
authorDenis Davydov <davydden@gmail.com>
Mon, 24 Apr 2017 12:03:44 +0000 (14:03 +0200)
committerDenis Davydov <davydden@gmail.com>
Mon, 24 Apr 2017 12:03:44 +0000 (14:03 +0200)
doc/news/changes/minor/20170424DenisDavydov [new file with mode: 0644]
include/deal.II/base/point.h

diff --git a/doc/news/changes/minor/20170424DenisDavydov b/doc/news/changes/minor/20170424DenisDavydov
new file mode 100644 (file)
index 0000000..36a57f5
--- /dev/null
@@ -0,0 +1,4 @@
+New: add Point<dim,Number>::squared_distance() which calculates the squared
+Euclidean distance.
+<br>
+(Denis Davydov, 2017/04/24)
index 0149994d4800f2ff6c92540b04fb4f3a0a28bc64..0f2369b512eb8fa9c1405e54bb971087e7e65f7b 100644 (file)
@@ -227,6 +227,12 @@ public:
    */
   typename numbers::NumberTraits<Number>::real_type distance (const Point<dim,Number> &p) const;
 
+  /**
+   * Return the squared Euclidean distance of <tt>this</tt> point to the point
+   * <tt>p</tt>.
+   */
+  typename numbers::NumberTraits<Number>::real_type squared_distance (const Point<dim,Number> &p) const;
+
   /**
    * @}
    */
@@ -475,6 +481,16 @@ template <int dim, typename Number>
 inline
 typename numbers::NumberTraits<Number>::real_type
 Point<dim,Number>::distance (const Point<dim,Number> &p) const
+{
+  return std::sqrt(squared_distance(p));
+}
+
+
+
+template <int dim, typename Number>
+inline
+typename numbers::NumberTraits<Number>::real_type
+Point<dim,Number>::squared_distance (const Point<dim,Number> &p) const
 {
   Number sum = Number();
   for (unsigned int i=0; i<dim; ++i)
@@ -483,7 +499,7 @@ Point<dim,Number>::distance (const Point<dim,Number> &p) const
       sum += numbers::NumberTraits<Number>::abs_square (diff);
     }
 
-  return std::sqrt(sum);
+  return sum;
 }
 
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.