]> gitweb.factorcode.org Git - factor.git/commitdiff
benchmark.spectral-norm: use unsafe sequence ops again, use TYPED: instead of HINTS:
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 15 Apr 2010 04:50:17 +0000 (21:50 -0700)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 15 Apr 2010 04:51:01 +0000 (21:51 -0700)
extra/benchmark/spectral-norm/spectral-norm.factor

index 386ffb0ae10c6aa4498bc2515e4620c6ecc5c188..93fb8cb562efdf32f56c21642e854cbc6809c3ee 100644 (file)
@@ -1,8 +1,8 @@
 ! Factor port of
 ! http://shootout.alioth.debian.org/gp4/benchmark.php?test=spectralnorm&lang=all
 USING: alien.c-types specialized-arrays kernel math
-math.functions math.vectors sequences prettyprint words hints
-locals ;
+math.functions math.vectors sequences sequences.private
+prettyprint words typed locals ;
 SPECIALIZED-ARRAY: double
 IN: benchmark.spectral-norm
 
@@ -19,13 +19,13 @@ IN: benchmark.spectral-norm
     + 1 + recip ; inline
 
 : (eval-A-times-u) ( u i j -- x )
-    [ swap nth ] [ eval-A ] bi-curry bi* * ; inline
+    [ swap nth-unsafe ] [ eval-A ] bi-curry bi* * ; inline
 
 : eval-A-times-u ( n u -- seq )
     [ (eval-A-times-u) ] inner-loop ; inline
 
 : (eval-At-times-u) ( u i j -- x )
-    [ swap nth ] [ swap eval-A ] bi-curry bi* * ; inline
+    [ swap nth-unsafe ] [ swap eval-A ] bi-curry bi* * ; inline
 
 : eval-At-times-u ( u n -- seq )
     [ (eval-At-times-u) ] inner-loop ; inline
@@ -43,11 +43,9 @@ IN: benchmark.spectral-norm
         [ n eval-AtA-times-u ] keep
     ] times ; inline
 
-: spectral-norm ( n -- norm )
+TYPED: spectral-norm ( n: fixnum -- norm )
     u/v [ v. ] [ norm-sq ] bi /f sqrt ;
 
-HINTS: spectral-norm fixnum ;
-
 : spectral-norm-main ( -- )
     2000 spectral-norm . ;