Raul Miller wrote:
> On 4/24/07, John Randall <[EMAIL PROTECTED]> wrote:
>> I think this merely delays the problem.  You get the same issue with
>> streamlines with
>>
>> plot Fz z r=: _1e_12+0.01*1+i.200
>>
>> I agree that the axis labels are less than informative.  The point is
>> that
>> the transformation is (mathematically) conformal but evidently not
>> (computationally) conformal.
>
> Well... even if we entirely toss the vertical axis rays, we still get
> zero crossings for that range of radii:
>
>    plot Fz (z=:|:@:((i:4) ray"0) ) r=:0.01*1+i.200
>
> Anyways, I guess this means I put my epsilon in the wrong place.
> (I attribute that to my lack of familiarity with this problem domain).
>
> But how about:
>
>    gz=:*: + ] * 1e_99 + %:@(1 + *:)
>
> This eliminates the quirks that I think we are calling the problem.
> Raul:

I agree that your new verb avoids zero crossings with 200 at the end,
but not with 300.  You also get the artifact of a short segment of the
channel wall in a streamline.  There are also corners in the
streamlines: impossible if the transform is conformal, and in
particular preserves local angles.  Choosing a small negative epsilon
is not a million miles from recognizing -0.

We could argue endlessly about the details of the example. It
obviously did not impress you.  Its intended audience is people doing
scientific computation, where solutions to differential equations
(like streamlines) are commonplace.  People using complex numbers
expect them to work correctly in standard scenarios, such as conformal
mappings of boundary value problems.  Kahan's point is that
Fortran-style complex numbers do not allow one to express some
one-sided limits because of the way standard libraries implement
complex square root and log (they ignore the sign of +/-0 in real and
imaginary parts and assume there is just one complex zero).  This is
particularly problematic at branch points, which are also important in
practice.  Minor changes to languages, such as has been done in C99,
can be done easily.  This makes an important application (numerical
solution of differential equations: probably 99% of all floating-point
CPU cycles) less error-prone.

Best wishes,

John




----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to