Offset direction () const;
Offset swapped () const;
- Real arg () const;
Real angle_degrees () const;
Real length () const;
bool is_sane () const;
IMPLEMENT_ARITHMETIC_OPERATOR (Offset, *);
Offset complex_multiply (Offset, Offset);
-Offset complex_divide (Offset, Offset);
-Offset complex_exp (Offset);
Offset offset_directed (Real);
inline Offset
return z;
}
-Offset
-complex_conjugate (Offset o)
-{
- o[Y_AXIS] = -o[Y_AXIS];
- return o;
-}
-
-Offset
-complex_divide (Offset z1, Offset z2)
-{
- z2 = complex_conjugate (z2);
- Offset z = complex_multiply (z1, z2);
- z *= 1 / z2.length ();
- return z;
-}
-
-Offset
-complex_exp (Offset o)
-{
- Real s = sin (o[Y_AXIS]);
- Real c = cos (o[Y_AXIS]);
-
- Real r = exp (o[X_AXIS]);
-
- return Offset (r * c, r * s);
-}
-
-Real
-Offset::arg () const
-{
- return atan2 (coordinate_a_[Y_AXIS], coordinate_a_[X_AXIS]);
-}
-
static inline Real
atan2d (Real y, Real x)
{