Ken,

Understood about punch cards, and in fact I have some loose methods in String 
to avoid such hassles with hard to spot spellings.  That said, I simply 
disagree with you on #cosh vs. #cosH.  As I said, I'm not particularly invested 
in the outcome; I just find it cumbersome to type and to read, and despite 
that, would not conclude that cosH is not a typo - it would depend on the 
circumstances.  As I said, I'm not planning any major troop movements over this 
one.

As for the zero vector, it is hard to say.  Note that a nearly zero vector is 
going to have a very poorly defined direction in that the result will likely be 
dominated by roundoff error.  Often there is a better way to compute such 
things; a rearrangment of governing equations can make a world of difference - 
that's not something you can fix, it will be problem-specific how one would 
avoid computing the argument in tricky situations.  One possible approach is to 
simply compute the angle the same way for all values and let under/over flow 
errors take care of the garbage.  Another would be to raise an error.  Finally, 
you might define #argument, #argumentIfSmall: (takes a block for the 
troublesome case) and #argumentIEEE to use their convetion.

Something that deserves a careful look is the test for floats being close to 
each other.  I have been supicious about that for a while, and on first glance, 
Dolphin seems to handle it very differently from the way Squeak does.  IMHO, 
being different from Dolphin is cause for a good think.  We shouls also see how 
VW handles it.

Just looking at #closeTo:, it appears to "think" that 10^-4 is a good 
threshold, and that is questionable depending on the scales involved, and is 
far from the smallest float that can be reasonable represented.

Bill



-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Ken Dickey
Sent: Sunday, August 30, 2009 6:10 PM
To: [email protected]
Subject: Re: [Pharo-project] Complex Solutions

>From: "Schwab,Wilhelm K" <[email protected]>
...
>On #cosH vs. #cosh, etc.,I do not like what you have done, but it's 
>hardly  cause to start a war.  I would be more inclined to agree with 
>your no-typo  argument if you spelled out hyperbolic.  We write cos and 
>cosh; I see no  advantage to typing cosH, which could just as easily be errant 
>as cosh.

I don't understand your comment.  

"cos" and "cosh" differ in a single, lower case character.  In a line of code 
where I expect to see "cos" but the text is actually "cosh" I would be more 
likely to misread the text as "cos" than if the text is "cosH".  In this case 
the capital is distinctive.  It clues the reader to the difference.

[I once had a bug in a Fortran program where 1 was substituted for l (ell) but 
in the punch card font, it was very difficult to distinguish this].


>#angle vs. #argument.  The terminology of modulus and argument is heavily
> drilled into engineers and physisists, so I would go with that inertia vs.
> anything from Scheme or Lisp.

Thanks.  I'll make the change.


>>Complex>>angle looks like it will answer zero for a value of zero??
>>Complex>>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'll raise an error.  Zero divide?


One again, thanks.
-KenD

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

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

Reply via email to