+Learned to count
authorAlex Klinkhamer <grencez@gmail.com>
Sun, 6 Jul 2008 15:54:28 +0000 (6 11:54 -0400)
committerAlex Klinkhamer <grencez@gmail.com>
Sun, 6 Jul 2008 15:54:28 +0000 (6 11:54 -0400)
Permutations were implemented wrong.
Can also use counting functions from Lineal's webui if you know they
exist.

src/math/counting.lisp
src/overload/client-fns.lisp
src/overload/overload.lisp

index f523c96..93f159f 100644 (file)
@@ -16,7 +16,7 @@
 (defun nPr (n r)
   (declare (integer n r))
   (loop :for k :from (- n r) :to n
-        :for prod = k :then (* prod k)
+        :for prod = 1 :then (* prod k)
         :finally (return prod)))
 
 ;V combination V
index cf2569c..9867e18 100644 (file)
@@ -14,6 +14,7 @@
         ("dot" over-dot-prod)
         ("expt" exptn)
         ("inverse" over-multv-inverse)
+        ("nAr" nAr) ("nCr" nCr) ("nPr" nPr)
         ("orth" over-orth)
         ("proj" over-proj)
         ("recall" lineal::over-recall)
index 5730c84..46cf928 100644 (file)
@@ -14,6 +14,7 @@
     :lineal.math
     det
     dot-prod
+    factorial
     mtrix-addn
     mtrix-augment
     mtrix-coltuple-multn
@@ -23,6 +24,7 @@
     mtrix-square-identity
     mtrix-subtrn
     mtrix-transpose
+    nAr nCr nPr
     nullspace
     output-tuple
     output-matrix