MLPACK  1.0.4
range.hpp
Go to the documentation of this file.
00001 
00022 #ifndef __MLPACK_CORE_MATH_RANGE_HPP
00023 #define __MLPACK_CORE_MATH_RANGE_HPP
00024 
00025 namespace mlpack {
00026 namespace math {
00027 
00031 class Range
00032 {
00033  private:
00034   double lo; 
00035   double hi; 
00036 
00037  public:
00039   inline Range();
00040 
00041   /***
00042    * Initialize a range to enclose only the given point (lo = point, hi =
00043    * point).
00044    *
00045    * @param point Point that this range will enclose.
00046    */
00047   inline Range(const double point);
00048 
00055   inline Range(const double lo, const double hi);
00056 
00058   inline double Lo() const { return lo; }
00060   inline double& Lo() { return lo; }
00061 
00063   inline double Hi() const { return hi; }
00065   inline double& Hi() { return hi; }
00066 
00070   inline double Width() const;
00071 
00075   inline double Mid() const;
00076 
00082   inline Range& operator|=(const Range& rhs);
00083 
00089   inline Range operator|(const Range& rhs) const;
00090 
00097   inline Range& operator&=(const Range& rhs);
00098 
00105   inline Range operator&(const Range& rhs) const;
00106 
00112   inline Range& operator*=(const double d);
00113 
00119   inline Range operator*(const double d) const;
00120 
00126   friend inline Range operator*(const double d, const Range& r); // Symmetric.
00127 
00133   inline bool operator==(const Range& rhs) const;
00134 
00140   inline bool operator!=(const Range& rhs) const;
00141 
00148   inline bool operator<(const Range& rhs) const;
00149 
00156   inline bool operator>(const Range& rhs) const;
00157 
00163   inline bool Contains(const double d) const;
00164 
00172   inline bool Contains(const Range& r) const;
00173 
00177   inline std::string ToString() const;
00178 
00179 };
00180 
00181 }; // namespace math
00182 }; // namespace mlpack
00183 
00184 // Include inlined implementation.
00185 #include "range_impl.hpp"
00186 
00187 #endif // __MLPACK_CORE_MATH_RANGE_HPP