norms.hpp
Go to the documentation of this file.
00001 
00012 /*****************************************************************************
00013 ** Ifdefs
00014 *****************************************************************************/
00015 
00016 #ifndef ECL_MATH_NORMS_HPP_
00017 #define ECL_MATH_NORMS_HPP_
00018 
00019 /*****************************************************************************
00020 ** Includes
00021 *****************************************************************************/
00022 
00023 #include <cmath>
00024 
00025 /*****************************************************************************
00026 ** Namespaces
00027 *****************************************************************************/
00028 
00029 namespace ecl {
00030 
00031 /*****************************************************************************
00032 ** Functors
00033 *****************************************************************************/
00039 class EuclideanNorm {
00040 public:
00048         template <typename T>
00049         T operator()(const T& x1, const T& x2) {
00050                 return std::sqrt(x1*x1 + x2*x2);
00051         }
00052 
00061         template <typename T>
00062         T operator()(const T& x1, const T& x2, const T& x3) {
00063                 return std::sqrt(x1*x1 + x2*x2 + x3*x3);
00064         }
00065 
00066         // n dimensional cases using vectors, valarrays and eigen vectors here.
00067 
00068         // maybe also a norm(vectorx, vectory) which is sqrt((x0-y0)^2+(x1-y1)^2.....)
00069 };
00070 
00071 /*****************************************************************************
00072 ** Functions
00073 *****************************************************************************/
00081 template <typename T>
00082 T euclidean_norm(const T& x1, const T& x2) {
00083         return std::sqrt(x1*x1 + x2*x2);
00084 }
00085 
00094 template <typename T>
00095 T euclidean_norm(const T& x1, const T& x2, const T& x3) {
00096         return std::sqrt(x1*x1 + x2*x2 + x3*x3);
00097 }
00098 
00099 } // namespace ecl
00100 
00101 #endif /* ECL_MATH_NORMS_HPP_ */


ecl_math
Author(s): Daniel Stonier
autogenerated on Sun Oct 5 2014 23:36:06