Annotation of gforth/sieve.fs, revision 1.3
1.1 anton 1: #! /usr/stud/paysan/bin/forth
2:
1.2 pazsan 3: DECIMAL
1.3 ! pazsan 4: : SECS TIME&DATE 2DROP DROP 60 * + 60 * + ;
1.2 pazsan 5: CREATE FLAGS 8190 ALLOT
6: FLAGS 8190 + CONSTANT EFLAG
1.1 anton 7:
8: : PRIMES ( -- n ) FLAGS 8190 1 FILL 0 3 EFLAG FLAGS
9: DO I C@
10: IF DUP I + DUP EFLAG <
11: IF EFLAG SWAP
12: DO 0 I C! DUP +LOOP
1.2 pazsan 13: ELSE DROP THEN SWAP 1+ SWAP
1.1 anton 14: THEN 2 +
15: LOOP DROP ;
16:
1.2 pazsan 17: : BENCHMARK 0 100 0 DO PRIMES NIP LOOP ;
18: SECS BENCHMARK . SECS SWAP - CR . .( secs)
19:
1.1 anton 20: \ HPPA/720, 50 MHz: user 3.90s
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>