summaryrefslogtreecommitdiff
path: root/lisp/calc
diff options
context:
space:
mode:
authorJay Belanger <jay.p.belanger@gmail.com>2005-02-15 19:27:17 +0000
committerJay Belanger <jay.p.belanger@gmail.com>2005-02-15 19:27:17 +0000
commit40b444acab7a616650166acccdba7b0c75f0e701 (patch)
tree1c3d7a538b7206b8308a99e62e27316227ea1ed8 /lisp/calc
parent6735a29b343972d958c9c03a2b29e56aa1a69bd8 (diff)
downloademacs-40b444acab7a616650166acccdba7b0c75f0e701.tar.gz
Add simplification rules for calcFunc-sec, calcFunc-csc, calcFunc-cot.
Diffstat (limited to 'lisp/calc')
-rw-r--r--lisp/calc/calc-units.el39
1 files changed, 39 insertions, 0 deletions
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
index e8a3abfe958..4b3c284ddad 100644
--- a/lisp/calc/calc-units.el
+++ b/lisp/calc/calc-units.el
@@ -1241,6 +1241,45 @@ Entries are (SYMBOL EXPR DOC-STRING TEMP-TYPE BASE-UNITS).")
(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)