<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV>I had also wondered about building Complex out of Point. The taste issues here are for Smalltalk</DIV><DIV>experts, so what I'll do is try to contribute with a quick look at the math.</DIV><DIV><BR class="khtml-block-placeholder"></DIV>Here's a table that describes some similarities and differences between Complex and<DIV>Number & Point, respectively.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV> Function(s) Number Point</DIV><DIV>+, - must extend is correct</DIV><DIV>*,/ must extend wrong, must override</DIV><DIV>real,imaginary must extend aliases for x,y</DIV><DIV>reciprocal must extend wrong, must override</DIV><DIV>a+ib write a + b i a@b concise but nonstandard</DIV><DIV>printOn: extend a@b concise but nonstandard</DIV><DIV>abs must extend r, not abs</DIV><DIV>arg must extend theta almost right: arbitrary for 0@0; sloppy accuracy for 0@1, different root convention</DIV><DIV>sin, cos must extend must extend</DIV><DIV>degreeCos, degreeSin copy from Float </DIV><DIV>interpolation leave to user interpolateTo:at:</DIV><DIV>isZero must extend is correct</DIV><DIV>|a -b| leave to user a dist: b</DIV><DIV>rendering on plane use Point is correct</DIV><DIV>= must extend is correct</DIV><DIV>>, < etc. return error? override, return error</DIV><DIV>adaptToNumber must extend is wrong, should be ^ rcvr@0 perform: selector with: self</DIV><DIV>asFloatPoint must extend correct?</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>In the absence of guidance, I'm steaming ahead building on what's already there. In the event that the stuff</DIV><DIV>needs to be moved around, I hope someone out there knows an easy way of doing it.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV> regards</DIV><DIV> ws</DIV><DIV><BR><DIV><DIV>On Sep 30, 2005, at 09.13, <A href="mailto:squeak-dev-request@lists.squeakfoundation.org">squeak-dev-request@lists.squeakfoundation.org</A> wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco">I may be missing something, but is there a specific reason why we do not<SPAN class="Apple-converted-space"> </SPAN></FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco">implement complex numbers simply by extending Point ? it would make it<SPAN class="Apple-converted-space"> </SPAN></FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco">easier to work with transformations on the complex plane where<SPAN class="Apple-converted-space"> </SPAN></FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco">conversion between Point and Complex would happen all the time.</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco">Stef</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"><BR></P> <BR class="Apple-interchange-newline"></BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>