changeset 60082:1697c06499c8

Add simplification rules for calcFunc-sec, calcFunc-csc, calcFunc-cot.
author Jay Belanger <jay.p.belanger@gmail.com>
date Tue, 15 Feb 2005 19:27:17 +0000
parents 5af1fe16a166
children c96f8fda0cfb
files lisp/calc/calc-units.el
diffstat 1 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/calc/calc-units.el	Tue Feb 15 19:26:49 2005 +0000
+++ b/lisp/calc/calc-units.el	Tue Feb 15 19:27:17 2005 +0000
@@ -1241,6 +1241,45 @@
 	      (eq (nth 1 (nth 2 rad)) 'rad)
 	      (list 'calcFunc-tan (nth 1 rad))))))
 
+(math-defsimplify calcFunc-sec
+  (and math-simplifying-units
+       (math-units-in-expr-p (nth 1 math-simplify-expr) nil)
+       (let ((rad (math-simplify-units
+		   (math-evaluate-expr
+		    (math-to-standard-units (nth 1 math-simplify-expr) nil))))
+	     (calc-angle-mode 'rad))
+	 (and (eq (car-safe rad) '*)
+	      (math-realp (nth 1 rad))
+	      (eq (car-safe (nth 2 rad)) 'var)
+	      (eq (nth 1 (nth 2 rad)) 'rad)
+	      (list 'calcFunc-sec (nth 1 rad))))))
+
+(math-defsimplify calcFunc-csc
+  (and math-simplifying-units
+       (math-units-in-expr-p (nth 1 math-simplify-expr) nil)
+       (let ((rad (math-simplify-units
+		   (math-evaluate-expr
+		    (math-to-standard-units (nth 1 math-simplify-expr) nil))))
+	     (calc-angle-mode 'rad))
+	 (and (eq (car-safe rad) '*)
+	      (math-realp (nth 1 rad))
+	      (eq (car-safe (nth 2 rad)) 'var)
+	      (eq (nth 1 (nth 2 rad)) 'rad)
+	      (list 'calcFunc-csc (nth 1 rad))))))
+
+(math-defsimplify calcFunc-cot
+  (and math-simplifying-units
+       (math-units-in-expr-p (nth 1 math-simplify-expr) nil)
+       (let ((rad (math-simplify-units
+		   (math-evaluate-expr
+		    (math-to-standard-units (nth 1 math-simplify-expr) nil))))
+	     (calc-angle-mode 'rad))
+	 (and (eq (car-safe rad) '*)
+	      (math-realp (nth 1 rad))
+	      (eq (car-safe (nth 2 rad)) 'var)
+	      (eq (nth 1 (nth 2 rad)) 'rad)
+	      (list 'calcFunc-cot (nth 1 rad))))))
+
 
 (defun math-remove-units (expr)
   (if (math-check-unit-name expr)