GENERIC INTERFACEPolarBasic (R, C);
Arithmetic for Modula-3, see doc for detailsAbstract: Complex numbers in polar coordinates
FROM Arithmetic IMPORT Error;
CONST Brand = R.Brand & "Polar";
TYPE
(* polar angles are in radians *)
T = RECORD radius, angle: R.T; END;
<* INLINE *>
PROCEDURE IsZero (READONLY x: T; ): BOOLEAN;
<* INLINE *>
PROCEDURE Equal (READONLY x, y: T; ): BOOLEAN; (* x=y *)
PROCEDURE FromComplex (READONLY c: C.T; ): T;
PROCEDURE ToComplex (READONLY c: T; ): C.T;
PROCEDURE Mul (READONLY x, y: T; ): T; (* x*y *)
PROCEDURE Div (READONLY x, y: T; ): T RAISES {Error}; (* x/y *)
END PolarBasic.