-------------- Original message ---------------------- From: "Jonathan Lang" <[EMAIL PROTECTED]> > Mark Biggar wrote: > > Jonathan Lang wrote: > > > They can be: > > > > > > $A > $B if $A.x > $B.x | $A.y > $B.y; > > > $A < $B if $A.x < $B.x | $A.y < $B.y; > > > > That dosn't work. > > Agreed. The above was written in haste, and contained a couple of > fatal syntax errors that I didn't intend. Try this: > > multi infix:< <= > (Complex $A, Complex $B) { > $A.x < $B.x || $A.x == $B.x && $A.y <= $B.y > } > > or > > multi infix:< <= > (Complex $A, Complex $B) { > $A == $B || pi()/2 < ($A - $B).a <= 3*pi()/2 # if $.a is > normalized to 0..2*pi() > } > > This is transitive, reflexive, and anti-symmetric. The underlying > rule for <= in English: anywhere to the west, or due south, or equal.
See the following. http://www.cut-the-knot.org/do_you_know/complex_compare.shtml -- Mark Biggar [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED]