+Trace function, +Constants
authorAlex Klinkhamer <grencez@gmail.com>
Fri, 25 Jul 2008 00:02:44 +0000 (24 20:02 -0400)
committerAlex Klinkhamer <grencez@gmail.com>
Fri, 25 Jul 2008 00:02:44 +0000 (24 20:02 -0400)
src/globals.lisp
src/overload/client-fns.lisp
src/overload/matrices.lisp
src/webui/calcupage-buttons.lisp
src/webui/calcupage.lisp
src/webui/compile-ps.lisp
src/webui/devvars.lisp
src/webui/index.lisp
src/webui/matrixui.lisp
src/webui/reload.lisp
src/webui/save-restore.lisp

index c9fef42..314b701 100644 (file)
@@ -60,4 +60,6 @@
       where [name] is what you want the variable to be called
       and [value] is its desired value.")))
 
+(store-vrbl "pi" pi)
+(store-vrbl "e" (exp 1))
 
index 1f8e729..3acdc76 100644 (file)
@@ -5,7 +5,9 @@
       '(("+" addn)
         ("-" subtrn) ("*" multn) ("/" divisn)
         ("^" over-expt)
+        ("asin" asin) ("acos" acos) ("atan" atan)
         ("cat" over-cat)
+        ("cos" cos)
         ("crop" over-crop)
         ("cross" over-cross-prod)
         ("det" over-det)
         ("proj" over-proj)
         ("recall" lineal::over-recall)
         ("ref" over-r-ef) ("rref" over-rr-ef)
+        ("sin" sin)
         ("sqrt" sqrt)
         ("store" lineal::over-store)
+        ("tan" tan)
+        ("tr" over-trace)
         ("transpose" over-transpose)
         ("vcat" over-vcat)
         ("vcrop" over-vcrop)))
index 68e73c1..330d5de 100644 (file)
@@ -4,6 +4,14 @@
   (dimcodom 0 :type integer)
   (elems nil :type list))
 
+(defun over-trace (a)
+  (unless (= (mtrix-dimdom a) (mtrix-dimcodom a))
+    (throw 'over-ex
+           "Can only get the trace of a square matrix."))
+  (loop :for i :from 0
+        :for row :in (mtrix-elems a)
+        :sum (elt row i)))
+
 (defun make-mtrix-like (a elems)
   (make-mtrix
     :dimdom (mtrix-dimdom a)
index 85b9ecb..a0cb00b 100644 (file)
@@ -1,6 +1,4 @@
 
-(in-package :lineal.webui)
-
 (defun htm-button
   (text id action)
   (with-html-output-to-string
index 4f581bc..2f8a2ce 100644 (file)
@@ -1,6 +1,4 @@
 
-(in-package :lineal.webui)
-
 ;V URL: /process-infix
 ;V Receive user's calculation, return result.V
 (defun receive-and-process
index 630a06b..387a2ee 100644 (file)
@@ -1,6 +1,4 @@
 
-(in-package :lineal.webui)
-
 ;V Compile given ParenScript file.V
 (defun compile-ps (ps-path js-path)
   (when (and (probe-file js-path)
index ec84c6a..657388f 100644 (file)
@@ -5,7 +5,8 @@
 (setq
   *file-tree*
   (nconc *file-tree*
-         '(("webui" "webvars" "compile-ps" "index"
+         '(("webui" "webvars";<  :lineal.webui
+            :lineal.webui "compile-ps" "index"
             "matrixui" "calcupage-buttons" "calcupage"
             "save-restore" "reload"))))
 
index af8e8eb..eb8948f 100644 (file)
@@ -1,6 +1,4 @@
 
-(in-package :lineal.webui)
-
 ;V Insert javascript tags.V
 (defmacro js-tag (s . body)
   `(progn
index e5e5d4c..0166c77 100644 (file)
@@ -1,6 +1,4 @@
 
-(in-package :lineal.webui)
-
 ;V URL: /matrix_select_contents
 ;V Return html code for the dropdown menu V
 ;V (html's "select" element) to list all  V
index 6cd823d..7aed6bf 100644 (file)
@@ -1,6 +1,4 @@
 
-(in-package :lineal.webui)
-
 (defmacro bind-reset ((&body args) . body)
   (let (tmp-lets s-sets)
     (loop :for a :in args
index 781f5cb..d950cd5 100644 (file)
@@ -1,6 +1,4 @@
 
-(in-package :lineal.webui)
-
 ;V URL: capture_session
 ;V Return a file for the user to download V
 ;V containing all session variables.      V