Maxima
10-20-2021, 09:52 PM (This post was last modified: 10-20-2021 09:53 PM by Gil.)
Post: #1
 Gil Senior Member Posts: 578 Joined: Oct 2019
Maxima
I developed a program on HP50G to calculate the Theorical Normal Earth Gravity.

Then I checked some of my program key values with the ones given by Charles Karney, who suggested me to verify my figures myself by own calculations with the program Maxima.

And look what I found with Maxima:

bigfloat (1/298257223563) gives

3.35281066474748071984552861852055595573263617800976384662611491675256864397313809041641635312737285​6... × 10^-12

but, executing,
bigfloat (1/298.257223563) gives

3.3528106647474804902220313351790537126362323760986328125... × 10^-3,

having previously done
fpprec : 100

Surprising result for a dummy like me.

How do you tackle such an issue?

Gil Campart

Attached File(s) Thumbnail(s)

10-20-2021, 10:35 PM
Post: #2
 Albert Chan Senior Member Posts: 2,516 Joined: Jul 2018
RE: Maxima
Hi, Gil

What you wanted is to increase precision of 298.257223563 before getting reciprocal, so do this:

1 / 298.257223563b0
10-20-2021, 11:12 PM
Post: #3
 Albert Chan Senior Member Posts: 2,516 Joined: Jul 2018
RE: Maxima
There is also a decimal float package, https://people.eecs.berkeley.edu/~fatema...decfp.lisp

"C:/Program Files/Maxima/share/maxima/5.38.0/share/decfp.lisp"

(%i2) 0.9 - 0.3 * 3 ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ ﻿→ 1.110223024625157 * 10^16
(%i3) 0.9b0 - 0.3b0 * 3 ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ → -1.387778780781446b-17
(%i4) 0.9L0 - 0.3L0 * 3 ﻿ ﻿ ﻿ ﻿ ﻿ ﻿ → 0.L0
10-20-2021, 11:27 PM (This post was last modified: 10-20-2021 11:29 PM by Gil.)
Post: #4
 Gil Senior Member Posts: 578 Joined: Oct 2019
RE: Maxima
Indeed, with b0 at the end the same digits with my programs.% “HP50G Division many digits“ !

Well, I feel somewhat more confident!

Thanks for the tip.

But why is it so to proceed?
Gil
10-21-2021, 11:48 AM (This post was last modified: 10-21-2021 11:56 AM by John Keith.)
Post: #5
 John Keith Senior Member Posts: 1,021 Joined: Dec 2013
RE: Maxima
If you need higher precision on the 50g you can use the LongFloat library. With DIGITS set to 50, 298257223563 R<->F FINV returns 33528106647474807198455286185205559557326361780098.E-61 which agrees with your first result. With input of 298.257223563, R<->F FINV returns 33528106647474807198455286185205559557326361780098.E-52 which is also correct for all 50 digits, differing only in the exponent.

DIGITS can be set to any number up to 9999 which should be adequate for most purposes.
10-21-2021, 02:07 PM (This post was last modified: 10-21-2021 02:09 PM by Ren.)
Post: #6
 Ren Member Posts: 181 Joined: Mar 2016
RE: Maxima
(10-21-2021 11:48 AM)John Keith Wrote:  DIGITS can be set to any number up to 9999 which should be adequate for most purposes.

[chuckle!]
(Remembering "the Rule of Thumb" for pi ~ 2)

10B, 10BII, 12C, 14B, 15C, 16C, 17B, 18C, 19BII, 20b, 22, 29C, 35, 38G, 39G, 41CV, 48G, 97
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)