]> code.delx.au - gnu-emacs/blobdiff - lisp/calc/calcalg2.el
(gnus-newsrc-file-version): Add defvar.
[gnu-emacs] / lisp / calc / calcalg2.el
index d5a9009c1acb76952889853eb54060e9545b2085..a534e4fd4591ba9cb8a62581cc89dd5b3fdc1806 100644 (file)
@@ -1,6 +1,7 @@
 ;;; calcalg2.el --- more algebraic functions for Calc
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <belanger@truman.edu>
                                           (and step (list step)))))))
 
 (defun calc-solve-for (var)
-  (interactive "sVariable to solve for: ")
+  (interactive "sVariable(s) to solve for: ")
   (calc-slow-wrapper
    (let ((func (if (calc-is-inverse)
                   (if (calc-is-hyperbolic) 'calcFunc-ffinv 'calcFunc-finv)
 (defvar math-deriv-var)
 (defvar math-deriv-total)
 (defvar math-deriv-symb)
+(defvar math-decls-cache)
+(defvar math-decls-all)
 
 (defun math-derivative (expr)
   (cond ((equal expr math-deriv-var)
 
 (put 'calcFunc-tan\' 'math-derivative-1
      (function (lambda (u) (math-to-radians-2
-                           (math-div 1 (math-sqr
-                                        (math-normalize
-                                         (list 'calcFunc-cos u))))))))
+                           (math-sqr
+                             (math-normalize
+                              (list 'calcFunc-sec u)))))))
 
 (put 'calcFunc-sec\' 'math-derivative-1
      (function (lambda (u) (math-to-radians-2 
 (put 'calcFunc-cot\' 'math-derivative-1
      (function (lambda (u) (math-neg
                             (math-to-radians-2
-                             (math-div 1 (math-sqr
-                                          (math-normalize
-                                           (list 'calcFunc-sin u)))))))))
+                             (math-sqr
+                              (math-normalize
+                               (list 'calcFunc-csc u))))))))
 
 (put 'calcFunc-arcsin\' 'math-derivative-1
      (function (lambda (u)
      (function (lambda (u) (math-normalize (list 'calcFunc-sinh u)))))
 
 (put 'calcFunc-tanh\' 'math-derivative-1
-     (function (lambda (u) (math-div 1 (math-sqr
-                                       (math-normalize
-                                        (list 'calcFunc-cosh u)))))))
+     (function (lambda (u) (math-sqr
+                            (math-normalize
+                             (list 'calcFunc-sech u))))))
 
 (put 'calcFunc-sech\' 'math-derivative-1
      (function (lambda (u) (math-neg
                              (math-normalize (list 'calcFunc-csch u))
                              (math-normalize (list 'calcFunc-coth u)))))))
 
-(put 'calcFunc-tanh\' 'math-derivative-1
+(put 'calcFunc-coth\' 'math-derivative-1
      (function (lambda (u) (math-neg
-                            (math-div 1 (math-sqr
-                                         (math-normalize
-                                          (list 'calcFunc-sinh u))))))))
+                            (math-sqr
+                             (math-normalize
+                              (list 'calcFunc-csch u)))))))
 
 (put 'calcFunc-arcsinh\' 'math-derivative-1
      (function (lambda (u)
 
 (math-defintegral calcFunc-tan
   (and (equal u math-integ-var)
-       (math-neg (math-from-radians-2
-                 (list 'calcFunc-ln (list 'calcFunc-cos u))))))
+       (math-from-radians-2
+        (list 'calcFunc-ln (list 'calcFunc-sec u)))))
 
 (math-defintegral calcFunc-sec
   (and (equal u math-integ-var)