2005-03-28 23:45:13 -05:00
|
|
|
IN: temporary
|
2005-07-31 23:38:33 -04:00
|
|
|
USING: compiler kernel math sequences test ;
|
2004-08-25 20:51:19 -04:00
|
|
|
|
2005-01-23 16:47:28 -05:00
|
|
|
: (fac) ( n! i -- n! )
|
2006-01-28 15:49:31 -05:00
|
|
|
dup zero? [
|
2005-01-23 16:47:28 -05:00
|
|
|
drop
|
|
|
|
] [
|
2005-09-16 22:47:28 -04:00
|
|
|
[ * ] keep 1- (fac)
|
2005-09-24 15:21:17 -04:00
|
|
|
] if ;
|
2005-01-23 16:47:28 -05:00
|
|
|
|
|
|
|
: fac ( n -- n! )
|
|
|
|
1 swap (fac) ;
|
|
|
|
|
2005-01-06 23:16:13 -05:00
|
|
|
: small-fac-benchmark
|
|
|
|
#! This tests fixnum math.
|
2005-09-16 22:47:28 -04:00
|
|
|
1 swap [ 10 fac 10 [ 1+ / ] each max ] times ; compiled
|
2005-01-06 23:16:13 -05:00
|
|
|
|
|
|
|
: big-fac-benchmark
|
2005-09-16 22:47:28 -04:00
|
|
|
10000 fac 10000 [ 1+ / ] each ; compiled
|
2004-12-17 19:27:42 -05:00
|
|
|
|
2005-01-06 23:16:13 -05:00
|
|
|
[ 1 ] [ big-fac-benchmark ] unit-test
|
|
|
|
|
|
|
|
[ 1 ] [ 1000000 small-fac-benchmark ] unit-test
|