|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] Complex number display |
Date: | Wed, 21 May 2014 14:24:09 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130330 Thunderbird/17.0.5 |
Hi Fred, thanks, fixed in SVN 280. /// Jürgen On 05/21/2014 03:28 AM, Frederick H. Pitts wrote:
Hello Juergen, Elias, I think there are still three flies in the "complex number display" ointment. Please see the attached tar file containing a APL test file and a log file generated from it using GnuAPL svn 279. Only one of the 4 complex numbers entered in polar form and that have a zero real part is displayed with a 0 for the real part. The remaining 3 numbers display with a real part having a E¯16 scale factor. For these 3 numbers, the real part magnitude is definitely 10 orders of magnitude less than the imaginary part magnitude and should display with a 0 for the real part. Regards, Fred On Tue, 2014-05-20 at 18:09 +0200, Juergen Sauermann wrote:Hi Fred, Elias, fixed in SVN 279. I dared to print the (non-zero) imaginary part even if the standard tells otherwise. /// Jürgen On 05/20/2014 07:35 AM, Frederick H. Pitts wrote:Elias, The part before the "Then:" states the obvious. Numeric output conversion converts numbers in internal format (implementation-defined)) to external literal decimal format. The part after the "Then:" is totally bogus. What is the point of performing complex number calculations and then summarily throwing away the imaginary part? The imaginary part could be the part the user is interested in. Sincerely, I do not see anything here that legitimately contradicts the descriptions cited in the IBM APL2 Language Reference. The IBM document says 1) display the real part as 0 if the real part magnitude is ⎕PP orders of magnitude less than the imaginary part magnitude and 2) suppress the display imaginary part if its magnitude is ⎕PP orders of magnitude less than the real part. The exception is when ⎕PP is at maximum; then both parts are displayed at full precision. Regards, Fred On Tue, 2014-05-20 at 12:47 +0800, Elias Mårtenson wrote:ISO/IEC 13751:2000 seems to give an implementation lots of flexibility here. I'm honestly not sure how to interpret this. Section 15.2.2 says: Informal Description: Numeric output conversion converts numeric values represented as numbers—numeric quantities whose format is implementation-defined—into the same numeric quantities represented in decimal notation as lists of characters. Then: Note: Any imaginary-part of the numeric input to Numeric-Output-Conversion is simply ignored; only the real-part of a complex-number is used. Regards, Elias On 20 May 2014 12:24, Frederick H. Pitts <address@hidden> wrote: Juergen,Under "Display of Complex Numbers:" on page 13 of the"APL2 Programming: Language reference", the document says:"In J notation, the real or imaginary part is notdisplayed if it is less than the other by more than ⎕PP orders of magnitude (unless ⎕PP is at its maximum)".In SVN 268, neither of the presented examples work.The smaller magnitude part is not zeroed if its the real part or suppressed if its the imaginary part.In addition, complex numbers entered in polar notationas described at the top page 12 do not display correctly per the description on page 13. 1D90 and 1R1.5707963267948965 should display as 0J1 assuming ⎕PP is less than maximum. Currently the real part is displayed as some number times 10 to the -16 power, i.e. zero for all intents and purposes.Regards, FredRetired Chemical Engineer
[Prev in Thread] | Current Thread | [Next in Thread] |