File:  [gforth] / gforth / sieve.fs
Revision 1.3: download - view: text, annotated - select for diffs
Tue Oct 18 15:51:22 1994 UTC (25 years, 1 month ago) by pazsan
Branches: MAIN
CVS tags: v0-7-0, v0-6-2, v0-6-1, v0-6-0, v0-5-0, v0-4-0, v0-3-0, v0-2-1, v0-2-0, gforth-0_1beta, HEAD
hash.fs uses single (but large) hash table (like LMI)
time&date bug fixed
ORDER reversed (let's see the reactions)
time printout in sieve.fs fixed
startup.fs modified due to history.fs and doskey.fs (see comment of these
files)

    1: #! /usr/stud/paysan/bin/forth
    2: 
    3: DECIMAL
    4: : SECS TIME&DATE  2DROP DROP  60 * + 60 * + ;
    5: CREATE FLAGS 8190 ALLOT
    6: FLAGS 8190 + CONSTANT EFLAG
    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
   13:            ELSE  DROP  THEN  SWAP 1+ SWAP
   14:            THEN  2 +
   15:        LOOP  DROP ;
   16: 
   17: : BENCHMARK  0 100 0 DO  PRIMES NIP  LOOP ;
   18: SECS BENCHMARK . SECS SWAP - CR . .( secs)
   19: 
   20: \ HPPA/720, 50 MHz: user 3.90s

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>