/* ************** */
static T infinity() ;
+ static String T_to_str (T arg);
- T center() { return (left + right) / T(2);}
+ // ugh, egcs 1.02 ices on this
+// T center() { return (left + right) / T(2);}
+ // and can't handle this either
+ // anyone want to make a bug report?
+ // better make one soon, egcs in rh5.1 barfs on this!
+ T center() {
+ T two (2);
+// return (left + right) / two;
+ T result ((left + right) / two);
+ return result;
+ }
void translate (T t) {
left += t;
right += t;
left =m;
right = M;
}
+ Interval_t<T> &operator -= (T r) {
+ *this += -r;
+ return *this;
+ }
+
Interval_t<T> &operator += (T r) {
left += r;
right +=r;
String str() const;
void print () const;
bool elt_b (T r);
+ void negate () {
+ T r = -left;
+ T l = -right;
+ left = l;
+ right =r;
+ }
};
return i;
}
+template<class T>
+inline
+Interval_t<T> operator - (Interval_t<T> i, T a)
+{
+ i += -a;
+ return i;
+}
+
+template<class T>
+inline
+Interval_t<T> operator - (T a,Interval_t<T> i)
+{
+ i.negate ();
+ i += a;
+ return i;
+}
+
template<class T>
inline
Interval_t<T> operator +(Interval_t<T> i,T a){
return a*i;
}
+// again? see fproto.hh
typedef Interval_t<Real> Interval;
-
-
+typedef Interval_t<int> Slice;
#endif // INTERVAL_HH
-
-