Almkvist-Giullera formula for pi: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
(added RPL) |
||
Line 2,255: | Line 2,255: | ||
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174503 |
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174503 |
||
────────────────────────────────────────────── ↑↑↑ the true pi to 160 fractional decimal digits (above) is ↑↑↑ ─────────────────────────────────────────────── |
────────────────────────────────────────────── ↑↑↑ the true pi to 160 fractional decimal digits (above) is ↑↑↑ ─────────────────────────────────────────────── |
||
</pre> |
|||
=={{header|RPL}}== |
|||
{{works with|HP|49}} |
|||
The starred formula can be implemented like this: |
|||
« → n |
|||
« 32 6 n * FACT * |
|||
532 n SQ * 126 n * + 9 + * |
|||
3 / n FACT 6 ^ / |
|||
» » '<span style="color:blue">ALMKV</span>' STO |
|||
or like that: |
|||
« → n '2^5*(6*n)!*(532*SQ(n)+126*n+9)/(3*n!^6)' |
|||
» '<span style="color:blue">ALMKV</span>' STO |
|||
which is more readable, although a little bit (0.6%) slower than the pure reverse Polish approach. |
|||
<code>LDIVN</code> is defined at [[Metallic ratios#RPL|Metallic ratios]] |
|||
« 0 → x t |
|||
« 0 1 |
|||
'''WHILE''' DUP x ≤ '''REPEAT''' 4 * '''END''' |
|||
'''WHILE''' DUP 1 > |
|||
'''REPEAT''' 4 IQUOT |
|||
DUP2 + x SWAP - 't' STO |
|||
SWAP 2 IQUOT SWAP |
|||
'''IF''' t 0 ≥ '''THEN''' t 'x' STO SWAP OVER + SWAP '''END''' |
|||
'''END''' DROP |
|||
» » '<span style="color:blue">ISQRT</span>' STO |
|||
« -105 CF <span style="color:grey">@ set exact mode</span> |
|||
« n <span style="color:blue">ALMKV</span> » 'n' 0 9 1 SEQ |
|||
-1 → j |
|||
« 0 "" |
|||
'''DO''' SWAP 'j' INCR LOOK <span style="color:blue">ALMKV</span> 10 6 j * 3 + ^ / + EVAL |
|||
'''UNTIL''' DUP FXND <span style="color:blue">ISQRT</span> SWAP <span style="color:blue">ISQRT</span> 70 <span style="color:blue">LDIVN</span> ROT OVER == |
|||
'''END''' |
|||
"π" →TAG NIP j "iterations" →TAG |
|||
» » '<span style="color:blue">TASK</span>' STO |
|||
{{out}} |
|||
<pre> |
|||
3: { 96 5122560 190722470400 7574824857600000 312546150372456000000 13207874703225491420651520 567273919793089083292259942400 24650600248172987140112763715584000 1080657854354639453670407474439566400000 47701779391594966287470570490839978880000000 } |
|||
2: π:"3.1415926535897932384626433832795028841971693993751058209749445923078164" |
|||
1: iterations:53 |
|||
</pre> |
</pre> |
||