Re: BUG #16281: LN() function inaccurate at 1000th fractional digit
От | Tom Lane |
---|---|
Тема | Re: BUG #16281: LN() function inaccurate at 1000th fractional digit |
Дата | |
Msg-id | 13048.1583003559@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #16281: LN() function inaccurate at 1000th fractional digit (Dean Rasheed <dean.a.rasheed@gmail.com>) |
Ответы |
Re: BUG #16281: LN() function inaccurate at 1000th fractional digit
|
Список | pgsql-bugs |
Dean Rasheed <dean.a.rasheed@gmail.com> writes: > Looking more closely at ln_var(), it seems that there was an oversight > related to the way that it computes the local_rscale for the Taylor > series expansion --- it fails to account for the fact that the result > is multiplied by fact (2^(nsqrt+1), where nsqrt is the number of > square roots performed in the range reduction phase, which in practice > is at most 22). > Since 2^22 has 7 decimal digits, multiplying by 2^22 almost entirely > wipes out the 8-digit safety margin used in the Taylor series > expansion. The attached patch corrects that. Looks sane to me. > With this patch, all the examples originally posted return the correct > results (calculated with bc). I'd be interested to know how the OP > constructed these examples, and whether there were any that were off > by more than 1 ULP. Yeah, that would be interesting. regards, tom lane
В списке pgsql-bugs по дате отправления: