X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finterval.cc;h=ed45c665620eb42349595f90e5d2aab081cb816b;hb=bdcf26a4e5fa6886f56859b85fe948b4cce188ea;hp=f176c7486fe5738ab5150ac46f22cdfab5b1ae4c;hpb=afa9eb0922477ed70c182b3fc023a3baedb5c6f0;p=lilypond.git diff --git a/flower/interval.cc b/flower/interval.cc index f176c7486f..ed45c66562 100644 --- a/flower/interval.cc +++ b/flower/interval.cc @@ -1,83 +1,42 @@ -#include -#include -#include "interval.hh" -#include "string.hh" - +/* + interval.cc -- instantiate Interval_t -const Real INFTY = HUGE; + source file of the Flower Library -void -Interval::set_empty() { - min = INFTY; - max = -INFTY; -} + (c) 1997--2007 Han-Wen Nienhuys +*/ -Real -Interval::length() const { - assert(max >= min); - return max-min; -} +#include "interval.hh" -void -Interval::unite(Interval h) -{ - compare(h, *this ); - if (h.minmax) - max = h.max; -} +#include "interval.tcc" -void -Interval::intersect(Interval h) +template<> +Real +Interval_t::infinity () { - min = MAX(h.min, min); - max = MIN(h.max, max); + return HUGE_VAL; } -Interval -intersection(Interval a, Interval const&b) +template<> +string +Interval_t::T_to_string (Real r) { - a.intersect(b); - return a; - + return ::to_string (r); } +template<> int -Interval::compare(const Interval&a,Interval const&b) +Interval_t::infinity () { - if (a.min == b.min && a.max == b.max) - return 0; - - if (a.min <= b.min && a.max >= b.max) - return 1; - - if (a.min >= b.min && a.max <= b.max) - return -1; - - assert(false); // not comparable - - return 0; + return INT_MAX; } -Interval -intersect(Interval x, Interval const &y) -{ - x.intersect(y); - return x; -} - -String -Interval::str() const -{ - if (empty()) - return "[empty]"; - String s("["); - - return s + min + "," + max +"]"; -} -bool -Interval::elt_q(Real r) +template<> +string +Interval_t::T_to_string (int i) { - return r >= min && r <= max; + return ::to_string (i); } + +template INTERVAL__INSTANTIATE (int); +template INTERVAL__INSTANTIATE (Real);