35 lines
464 B
Forth
35 lines
464 B
Forth
Block 2130
|
|
( init-4.th - pi series )
|
|
VARIABLE PI-ACC
|
|
VARIABLE PI-SGN
|
|
1000000 CONSTANT PI-SCALE
|
|
: RESET-PI 0 PI-ACC ! 1 PI-SGN ! ;
|
|
: FLIP-SIGN
|
|
PI-SGN @ 0< IF 1 PI-SGN ! ELSE -1 PI-SGN ! THEN
|
|
;
|
|
Block 2131
|
|
: PI-STEP ( n -- )
|
|
2 * 1 +
|
|
PI-SCALE SWAP / PI-SGN @ * PI-ACC @ + PI-ACC !
|
|
FLIP-SIGN
|
|
;
|
|
: PI-CHUNK
|
|
100 0 DO
|
|
I PI-STEP
|
|
LOOP
|
|
;
|
|
Block 2132
|
|
: DO-PI
|
|
RESET-PI
|
|
5 0 DO
|
|
PI-CHUNK
|
|
LOOP
|
|
;
|
|
: RUN-PI
|
|
8 0 DO
|
|
DO-PI
|
|
LOOP
|
|
;
|
|
RUN-PI
|
|
." 4:dopi-ok" CR
|