Jonathan Lang wrote:
Complex numbers come in two representations: rectilinear coordinates
and polar coordinates:

I think there's also the Riemanian two angle form of the complex
number sphere with r = 0.5 around (0,0,0.5) touching the plane at
the origin (0,0) and reaching up to (0,0,1) in space. But admittedly
the resulting math is that of projective space.

Then there is the classic fact that you should make e.g. role Complex
an intentional supertype of Num while the class Complex needs a wider
extensional type with the added imaginary part in one form or another.

As Luke pointed out, a plain role/class pair might not be enough to
model the structural properties of the communalities and differences
of Num and Complex. We need to define a family of related types that
manage the different interpretations of a 2-tupel of Nums while sharing
the underlying data layout---not to mention to be compatible with more
generic vector stuff like the scalar product.

Another idea is to model nums to have a directional bit where the
polar complex have a full range angle.

Reply via email to