As a follow-up to my previous message, I have just produced the following log on IDLE, for your information: ------------------------------ >>> math.e ** (math.log (123456789000000000000000000000000000000000000000000) / 3) 4.979338592181741e+16 >>> 10 ** (math.log10 (123456789000000000000000000000000000000000000000000) / 3) 4.979338592181736e+16 >>> 123456789000000000000000000000000000000000000000000 ** (1.0 / 3.0) 4.979338592181734e+16 >>> 123456789e42 ** (1.0 / 3.0) 4.979338592181734e+16 ------------------------------
Stephen Tucker. On Fri, Feb 17, 2023 at 10:27 AM Stephen Tucker <stephen_tuc...@sil.org> wrote: > Thanks, one and all, for your reponses. > > This is a hugely controversial claim, I know, but I would consider this > behaviour to be a serious deficiency in the IEEE standard. > > Consider an integer N consisting of a finitely-long string of digits in > base 10. > > Consider the infinitely-precise cube root of N (yes I know that it could > never be computed unless N is the cube of an integer, but this is a > mathematical argument, not a computational one), also in base 10. Let's > call it RootN. > > Now consider appending three zeroes to the right-hand end of N (let's call > it NZZZ) and NZZZ's infinitely-precise cube root (RootNZZZ). > > The *only *difference between RootN and RootNZZZ is that the decimal > point in RootNZZZ is one place further to the right than the decimal point > in RootN. > > None of the digits in RootNZZZ's string should be different from the > corresponding digits in RootN. > > I rest my case. > > Perhaps this observation should be brought to the attention of the IEEE. I > would like to know their response to it. > > Stephen Tucker. > > > On Thu, Feb 16, 2023 at 6:49 PM Peter Pearson <pkpearson@nowhere.invalid> > wrote: > >> On Tue, 14 Feb 2023 11:17:20 +0000, Oscar Benjamin wrote: >> > On Tue, 14 Feb 2023 at 07:12, Stephen Tucker <stephen_tuc...@sil.org> >> wrote: >> [snip] >> >> I have just produced the following log in IDLE (admittedly, in Python >> >> 2.7.10 and, yes I know that it has been superseded). >> >> >> >> It appears to show a precision tail-off as the supplied float gets >> bigger. >> [snip] >> >> >> >> For your information, the first 20 significant figures of the cube >> root in >> >> question are: >> >> 49793385921817447440 >> >> >> >> Stephen Tucker. >> >> ---------------------------------------------- >> >> >>> 123.456789 ** (1.0 / 3.0) >> >> 4.979338592181744 >> >> >>> 123456789000000000000000000000000000000000. ** (1.0 / 3.0) >> >> 49793385921817.36 >> > >> > You need to be aware that 1.0/3.0 is a float that is not exactly equal >> > to 1/3 ... >> [snip] >> > SymPy again: >> > >> > In [37]: a, x = symbols('a, x') >> > >> > In [38]: print(series(a**x, x, Rational(1, 3), 2)) >> > a**(1/3) + a**(1/3)*(x - 1/3)*log(a) + O((x - 1/3)**2, (x, 1/3)) >> > >> > You can see that the leading relative error term from x being not >> > quite equal to 1/3 is proportional to the log of the base. You should >> > expect this difference to grow approximately linearly as you keep >> > adding more zeros in the base. >> >> Marvelous. Thank you. >> >> >> -- >> To email me, substitute nowhere->runbox, invalid->com. >> -- >> https://mail.python.org/mailman/listinfo/python-list >> > -- https://mail.python.org/mailman/listinfo/python-list