Post Reply 
HP-42S (Free42, DM-42) mini-challenge – Wallis Product
07-06-2020, 12:40 PM
Post: #17
RE: HP-42S (Free42, DM-42) mini-challenge – Wallis Product
(07-06-2020 11:06 AM)EdS2 Wrote:  
(07-06-2020 02:31 AM)Gerson W. Barbosa Wrote:  ...

I’ve managed to save a few bytes and steps by shamelessly borrowing part of J-M Baillard’s code. I will publish it here later, if you are interested.
Interested? But of course!

So, here it is, based on the amazing, on the astounding Wallis-Wasicki formula :-)

Code:

00 { 141-Byte Prgm }
01▸LBL "W"
02 STO 01
03 NOT
04 2
05 MOD
06 ENTER
07 STO+ ST X
08 1
09 -
10 4
11 RCL× 01
12 1
13 RCL- ST T
14 ×
15 R↑
16 STO+ ST X
17 +
18 3
19 RCL× ST T
20 -2
21 STO 02
22 RCL+ 01
23 X<>Y
24 +
25 STO 03
26 RCL 02
27 X<> ST L
28 STO+ ST X
29 RCL+ ST L
30 STO 04
31 -
32 RCL- 02
33 RCL× ST Z
34 +/-
35 4
36 RCL× 01
37 RCL- ST Z
38 RCL- 02
39 STO÷ ST Y
40 X<>Y
41 R↓
42 X<>Y
43▸LBL 00
44 STO+ ST T
45 X<>Y
46 R↑
47 RCL× ST T
48 RCL 03
49 X<>Y
50 SIGN
51 +/-
52 STO× ST Z
53 X<> ST L
54 ÷
55 X<> ST Z
56 RCL 01
57 STO+ ST X
58 X↑2
59 STO× 02
60 DSE ST X
61 STO÷ 02
62 R↓
63 RCL ST Y
64 SIGN
65 X<> ST Z
66 ABS
67 X<> 04
68 +/-
69 STO+ 03
70 NOT
71 +/-
72 NOT
73 +/-
74 X<> 04
75 DSE 01
76 GTO 00
77 SIGN
78 RCL+ ST T
79 RCL× 02
80 ABS
81 END

01: 3.151515151515151515151515151515152
02: 3.140740740740740740740740740740741
03: 3.141577263316393751176359872012044
04: 3.141593864074484229522989212911695
05: 3.141592682610236909552589409774771
06: 3.141592651452292998395352098655921
07: 3.141592653532218907530988374852819
08: 3.141592653593856174058282094810482
09: 3.141592653589909875031699539089613
10: 3.141592653589785247473875899289923
11: 3.141592653589792999646253245914736
12: 3.141592653589793254475588473668716
13: 3.141592653589793238954647785071681
14: 3.141592653589793238430189382757839
15: 3.141592653589793238461625819757986
16: 3.141592653589793238462709648277746
17: 3.141592653589793238462645493302460
18: 3.141592653589793238462643247285411
19: 3.141592653589793238462643378896107
20: 3.141592653589793238462643383559629
21: 3.141592653589793238462643383288622
22: 3.141592653589793238462643383278927
23: 3.141592653589793238462643383279480
24: 3.141592653589793238462643383279504


The HP-71B program might be more readable:

Code:


10 INPUT N
15 T=MOD(N+1,2)
20 S=2*T-1
25 L=N-2+3*T
30 M=6*T-2
35 D=4*N*(1-T)+2*T
40 E=4*N-D+2
45 C=-S*(L-M+2)/E
50 W=1
55 FOR I=1 TO N
60 T=4*I*I
65 W=W*T/(T-1)
70 C=S*L/(D+C)
75 L=L-M @ M=2-M
80 T=D @ D=E @ E=T
85 S=-S
90 NEXT I
95 DISP 2*W*(C+1)

RUN

? 8

3.14159265359


For more efficiency it is better to process two terms at a time, but then the results for odd n are not accessible:

Code:


10 INPUT N
15 W=1
20 M=N+1
25 D=4*N
30 C=(M-2)/D
35 FOR I=1 TO N/2
40 T=I*(16*I-8)
45 W=W*T*T/(T*(T-2)-3)
50 C=(M-4)/(D+M/(2-C))
55 M=M-2
60 NEXT I
65 DISP 2*W*(1-C)

RUN

? 8

3.14159265361

Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: HP-42S (Free42, DM-42) mini-challenge – Wallis Product - Gerson W. Barbosa - 07-06-2020 12:40 PM



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