Annotation of gforth/sieve.fs, revision 1.2

1.1       anton       1: #! /usr/stud/paysan/bin/forth
                      2: 
1.2     ! pazsan      3: DECIMAL
        !             4: : SECS TIME&DATE  SWAP 60 * + SWAP 3600 * +  NIP NIP NIP ;
        !             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>