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
