tm@polari.UUCP (Toshi Morita) (07/24/90)
Demo Pidgin program ; ; Sieve benchmark ; top; byte FL(10001); int IIN; byte NU; int ICO; int IPR; int IRE; byte AA; byte CR; int ITH; byte TN; int ISI; byte ZE; byte SP; ; ; main code ; beginmain(AC,IAV); CR=+013; SP=+032; ZE=+000; ITH=+00003; TN=+010; ISI=+10000; ms 'Sieve x 1' ms '0... ' write CR; NU=+255; while; NU++; AA=NU<!TN; on AA; ICO=+00000; Set number of primes to zero IIN=+00000; while; Clear flags array to one IIN++; AA=IIN<=ISI; on AA; FL(IIN)=+001; endwhile; IIN=+00000; while; IIN++; AA=IIN<=ISI; on AA; AA=FL(IIN); if AA; IPR=IIN+IIN; IPR=IPR+ITH; ; decprt IPR; ; write SP; IRE=IIN+IPR; while; AA=IRE<!ISI; on AA; FL(IRE)=ZE; IRE=IRE+IPR; endwhile; ICO++; endif; endwhile; endwhile; ms '...done. '; write CR; decprt ICO; ms ' primes. '; endmain; bottom;
tm@polari.UUCP (Toshi Morita) (08/05/90)
Sieve demo for QForth. 10000 constant size create flags size 1+ allot variable count variable prime variable ref : sieve cr ." Sieve x 10... " cr 10 0 do 0 count ! flags size 1+ 1 fill size 1+ 1 do flags i + c@ if i dup + 2+ 1+ prime ! i prime @ + ref ! begin ref @ size < while 0 flags ref @ + c! ref @ prime @ + ref ! repeat count @ 1+ count ! else then loop loop ." ...done. " cr count ? ." primes. " ;