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
00043
00044
00045
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);
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 };
00182 };
00183
00184
00185 #include "range_impl.hpp"
00186
00187 #endif // __MLPACK_CORE_MATH_RANGE_HPP