return *this;
}
- Real linear_combination (Real x) const
- {
- Drul_array<Real> da (at (LEFT), at (RIGHT));
- return ::linear_combination (da, x);
- }
+ Real linear_combination (Real x) const;
string to_string () const;
bool contains (T r) const;
#include "std-string.hh"
#include "real.hh"
-class Offset;
-Offset complex_multiply (Offset, Offset);
-Offset complex_divide (Offset, Offset);
-Offset complex_exp (Offset);
/*
This is a mixture a 2D vector. Sometimes it can
coordinate_a_[a] = -coordinate_a_[a];
return *this;
}
-
+ Offset direction () const;
+
Real arg () const;
Real length () const;
bool is_sane () const;
- Offset operator *= (Offset z2)
- {
- *this = complex_multiply (*this, z2);
- return *this;
- }
+ Offset operator *= (Offset z2);
};
#include "arithmetic-operator.hh"
IMPLEMENT_ARITHMETIC_OPERATOR (Offset, -);
IMPLEMENT_ARITHMETIC_OPERATOR (Offset, *);
+
+
+Offset complex_multiply (Offset, Offset);
+Offset complex_divide (Offset, Offset);
+Offset complex_exp (Offset);
+
+inline Offset
+Offset::operator *= (Offset z2)
+{
+ *this = complex_multiply (*this, z2);
+ return *this;
+}
+
inline Offset
operator * (Real o1, Offset o2)
{
#include "offset.hh"
-
#ifndef STANDALONE
string
Offset::to_string () const
&& !isinf (coordinate_a_[X_AXIS])
&& !isnan (coordinate_a_[Y_AXIS]);
}
+
+Offset
+Offset::direction () const
+{
+ Offset d = *this;
+ d /= length ();
+ return d;
+}
*/
#include "moment.hh"
+#include "real.hh"
+#include "interval.hh"
#include "interval.tcc"
return infty;
}
+
template<>
string
Interval_t<Rational>::T_to_string (Rational a)
}
template INTERVAL__INSTANTIATE (Rational);
+
+
+template<>
+Moment
+Interval_t<Moment>::infinity ()
+{
+ Moment infty;
+
+ infty.main_part_.set_infinite (1);
+ return infty;
+}
+
+
+template<>
+string
+Interval_t<Moment>::T_to_string (Moment a)
+{
+ return a.to_string ();
+}
+
+template INTERVAL__INSTANTIATE (Moment);
+
+template<>
+Real
+Interval_t<Real>::linear_combination (Real x) const
+{
+ Drul_array<Real> da (at (LEFT), at (RIGHT));
+ return ::linear_combination (da, x);
+}