| 1 : |
anton
|
1.1
|
\ #! /usr/stud/paysan/bin/forth |
| 2 : |
|
|
|
| 3 : |
|
|
DECIMAL |
| 4 : |
|
|
\ : SECS TIME&DATE SWAP 60 * + SWAP 3600 * + NIP NIP NIP ; |
| 5 : |
|
|
CREATE FLAGS 8190 ALLOT |
| 6 : |
|
|
variable eflag |
| 7 : |
|
|
\ FLAGS 8190 + CONSTANT EFLAG |
| 8 : |
|
|
|
| 9 : |
|
|
: PRIMES ( -- n ) FLAGS 8190 1 FILL 0 3 EFLAG @ FLAGS |
| 10 : |
|
|
DO I C@ |
| 11 : |
|
|
IF DUP I + DUP EFLAG @ < |
| 12 : |
|
|
IF EFLAG @ SWAP |
| 13 : |
|
|
DO 0 I C! DUP +LOOP |
| 14 : |
|
|
ELSE DROP THEN SWAP 1+ SWAP |
| 15 : |
|
|
THEN 2 + |
| 16 : |
|
|
LOOP DROP ; |
| 17 : |
|
|
|
| 18 : |
|
|
: BENCHMARK 0 1000 0 DO PRIMES NIP LOOP ; |
| 19 : |
|
|
\ SECS BENCHMARK . SECS SWAP - CR . .( secs) |
| 20 : |
|
|
: main |
| 21 : |
|
|
flags 8190 + eflag ! |
| 22 : |
|
|
benchmark ( . ) drop |
| 23 : |
|
|
; |