]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/math/polynomials/polynomials.factor
factor: trim using lists
[factor.git] / basis / math / polynomials / polynomials.factor
index 1212f630514a764915f35c119c375e109080c525..225ea075377bca8eff23beb858041c5966ee05de 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: arrays combinators fry kernel macros make math math.bits
-math.order math.vectors sequences splitting vectors ;
+USING: arrays combinators kernel make math math.bits
+math.vectors sequences vectors ;
 IN: math.polynomials
 
 <PRIVATE
@@ -32,11 +32,11 @@ ALIAS: n*p n*v
     2dup [ length ] bi@ + 1 - 2pad-tail ;
 
 : p* ( p q -- r )
-    2unempty pextend-conv 
-    [ drop length [ iota ] keep ]
+    2unempty pextend-conv
+    [ drop length [ <iota> ] keep ]
     [ nip <reversed> ]
     [ drop ] 2tri
-    '[ _ _ <slice> _ v* sum ] map reverse! ;
+    '[ _ _ <slice> _ vdot ] map reverse! ;
 
 : p-sq ( p -- p^2 ) dup p* ; inline
 
@@ -86,7 +86,7 @@ PRIVATE>
     [ V{ 0 } clone V{ 1 } clone ] 2dip swap (pgcd) [ >array ] bi@ ;
 
 : pdiff ( p -- p' )
-    dup length iota v* rest ;
+    dup length <iota> v* rest ;
 
 : polyval ( x p -- p[x] )
     ! Horner scheme
@@ -94,9 +94,8 @@ PRIVATE>
     [ drop ] 2bi
     '[ [ _ * ] dip + ] each ;
 
-MACRO: polyval* ( p -- )
+MACRO: polyval* ( p -- quot )
     reverse
     [ rest [ \ * swap \ + [ ] 3sequence ] map ]
     [ first \ drop swap [ ] 2sequence ] bi
     prefix \ cleave [ ] 2sequence ;
-