Robert Smith avatar Robert Smith committed e4a06b5

added simple gcd tests

Comments (0)

Files changed (1)

 
 (in-package #:gcd)
 
+(declaim (optimize speed (safety 0) (debug 0)))
+
 (defun rec-gcd (u v)
   (if (zerop v)
       u
-      (gcd v (mod u v))))
+      (rec-gcd v (mod u v))))
 
 (defun iter-gcd (u v)
   (until (zerop v)
              
              (decf v u))
            
-           (ash u shift))))))
+           (ash u shift))))))
+
+(defun test (a b)
+  (format t "CL GCD~%")
+  (time (cl:gcd a b))
+
+  (format t "REC GCD~%")
+  (time (rec-gcd a b))
+
+  (format t "ITER GCD~%")
+  (time (iter-gcd a b))
+
+  (format t "BINARY GCD~%")
+  (time (binary-gcd a b))
+
+  (format t "ITER BINARY GCD~%")
+  (time (iter-binary-gcd a b))
+  nil)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.