1 ( ARCHETYPICAL IMPLEMENTATION )
2 ( OF THE SIEVE OF ERATOSTHENES )
3 ( IN FORTH -- BIF, FIG -- )
4 ( USING A LITTLE MORE )
5 ( OF THE FORTH AND BIF IDIOMS. )
6 ( COPYRIGHT 2015, 2019,
8 ( BY JOEL MATTHEW REES, )
9 ( AMAGASAKI, JAPAN, 2015 )
10 ( ALL RIGHTS RESERVED. )
11 ( PERMISSION GRANTED BY THE )
12 ( AUTHOR TO USE THIS CODE )
16 ( SHALL RETAIN THIS COPYRIGHT )
17 ( AND PERMISSION NOTICE. )
21 VOCABULARY SIEVE-LOCAL
22 ( MAKE A LOCAL SYMBOL TABLE. )
23 SIEVE-LOCAL DEFINITIONS
36 ( TO DISPLAY MAXSIEVE )
40 ( OLD FORTHS DON'T PROVIDE A )
41 ( DEFAULT BEHAVIOR FOR CREATE )
48 ( OLD FORTHS DON'T PROVIDE )
51 ( TO SHOW HOW IT CAN BE DONE. )
53 CELLWIDTH MAXSIEVE SWAP - ALLOT
55 ( OF THE BYTE ARRAY. )
57 : NOT-PRIME! ( ADR N -- )
60 : IS-PRIME? ( ADR N -- F )
65 : SIEVE-INIT ( ADR -- )
71 ( FOR 2 TO FINALPASS. )
72 2+ MAXSIEVE 2- -1 FILL
76 : PRIME-PASS ( ADR PRIME -- )
77 ( DOUBLE IS FIRST MULTIPLE )
78 MAXSIEVE OVER DUP + DO
80 DUP +LOOP ( NEXT MULTIPLE )
83 : FIND-PRIMES ( ADR -- )
97 : COUNT-PRIMES ( ADR -- )
108 : PRINT-ALL ( ADR -- )
110 I DISPWIDTH .R ." : IS "
111 DUP I IS-PRIME? 0= IF
119 : PRINT-PRIMES ( ADR -- )