>From: "Schwab,Wilhelm K" <[email protected]>
...
>I have not been over all of it, but I have found that Real>>arcCosH and
> #arcTanH can answer a Complex.  I would rather not have to say it, but I do
> not get the sense that you have taken our concerns seriously.  We want the
> errors from Float when the domains are violated.  A mere #asComplex can be
> dividing line that puts the programmer in conrol.

Thanks.  I had not caught these.

>On this next minor point I can be talked out of it, but I would much prefer
> #cosh etc. to #cosH; it's easier to type and matches all conventional
> notation that I have seen.

I am trying to follow camelCase as I understand it.  One rubric from user 
interfaces is that things which are distinct should *look* distinct.  I 
personally perfer cosH to cosh because I know it is not a typo. That I really 
mean cosH not cos.  

Let me know the proper thing to do here.

>Number>>angle should probably be called #argument, though I would argue that
> it should not exist as it is another example of implicit (however benign)
> coercion to complex numbers.

I am trying to follow conventions here for other languages which support 
Complex data types [primarily Common Lisp and, Scheme].  An angle in radians 
is what is returned.  Wny not call the function returning an angle to be 
#angle ?

Again, let me know the proper thing to do in Smalltalk.

>Complex>>angle looks like it will answer zero for a value of zero??  AFAIK,
> there should be no direction for a zero vector.  In a way, it is splitting
> hairs because exact comparisons of floats are dubious, but it probably
> should raise an error for zero.

I am following ANSI X3J13 (they had a formal vote which declared the angle of 
zero to be zero).  Let me know of a better refrerence.  [The problem with 
standards is that there are so many to chose from ;^].

>Object Arts has long looked down on #as* and #is* methods.  With my bias
> toward their views confessed, #isComplex and #isNumberOrComplex realy
> should not exist, and even if they do, what are they doing in Object? 
> #isNumberOrComplex raises concerns that there is too much blending of
> Complex into floats.

According to my recollection of _Squeak by Example_, #isFoo is a standard 
ideom for a class #Foo.

#isNumberOrComplex is used to make double dispatch work in #=, now that 
Complex instances answer false to isNumber.  

Do you have a better solution here?

#isNumberOrComplex was added to Object to make the test relatively cheap (#= 
is used a lot, yes?).

If Complex does not interoperate, at least to some extent, with Floats how 
would it be useful for anything?  Smalltalk without polymorphism ???

Better solutions?

>There are various uses of Taylor series corrections and some things that are
> computed directly in terms of exponentials.  My hunch is that robust
> scientific libraries will (hopefully) do these things well, and most of the
> transcendental functions, especially over complex numbers, should come from
> them when possible and reasonable.  The results will likely be faster and
> probably more accurate than what we can do in Smalltalk.

I agree that a better global solution for numbers is desired.  This is an 
attempt for a small tweak to simply fix the problems I outlined.  These 
problems exist in the current code base.

Thank you again for taking the time to look at this,
-KenD


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to