• Subject: Re: Lua evolution and C99
• From: Leo Razoumov <slonik.az@...>
• Date: Tue, 9 Aug 2011 15:15:11 -0400

```On Tue, Aug 9, 2011 at 06:58, David Kastrup <dak@gnu.org> wrote:
> Lexicographic order is ordering first by real part, then (on equality)
> by imaginary part.  Or vice versa.  It preserves that equivalence for
> any positive real constant.
>

No, it does not. Under lexicographic order (real first, imaginary
second) number i=sqrt(-1)
is a positive number because i>0 in lexicographic order. It leads to
i*x<i*y inconsistent with x<y for quite a few x,y pairs.
E.g.: x=1-3i; y=2+i; x<y but i*x>i*y

Complex numbers are not an ordered field [1], that is, you cannot
define an ordering which is consistent with arithmetic operations [2]
For no better reference at hand, here are two relevant Wikipedia articles

[1]  http://en.wikipedia.org/wiki/Complex_numbers
[2]  http://en.wikipedia.org/wiki/Ordered_field

In any case, real numbers (being a subset of complex numbers) possess
certain unique properties that justify supplying them as a distinct
datatype. Having complex numbers as the only numeric datatype (typedef
complex lua_Number) would make life unnecessary complicated.

--Leo--

```