aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Belanger2013-02-23 19:05:13 -0600
committerJay Belanger2013-02-23 19:05:13 -0600
commit7a91562ff0ea0033add100295a52ded5a8be0d9b (patch)
treed3d7eb3457696e56caa67229af2e5405b2596e4f
parent2ae3d73667b6b59480070b4e6b4f7802cacc3455 (diff)
downloademacs-7a91562ff0ea0033add100295a52ded5a8be0d9b.tar.gz
emacs-7a91562ff0ea0033add100295a52ded5a8be0d9b.zip
* calc/calc-ext.el (math-to-radians-2, math-from-radians-2):
Add option to force `pi' to remain symbolic. * calc/calcalg2.el (calcFunc-sin, calcFunc-cos, calcFunc-tan) (calcFunc-cot, calcFunc-csc, calcFunc-sec, calcFunc-arcsin) (calcFunc-arccos, calcFunc-arctan): Use symbolic `pi' in the derivatives, when necessary.
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/calc/calc-math.el8
-rw-r--r--lisp/calc/calcalg2.el18
3 files changed, 22 insertions, 13 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1897e48d715..d596d4f6fb1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
12013-02-24 Jay Belanger <jay.p.belanger@gmail.com>
2
3 * calc/calc-ext.el (math-to-radians-2, math-from-radians-2):
4 Add option to force `pi' to remain symbolic.
5 * calc/calcalg2.el (calcFunc-sin, calcFunc-cos, calcFunc-tan)
6 (calcFunc-cot, calcFunc-csc, calcFunc-sec, calcFunc-arcsin)
7 (calcFunc-arccos, calcFunc-arctan): Use symbolic `pi' in the
8 derivatives, when necessary.
9
12013-02-23 Peter Kleiweg <p.c.j.kleiweg@rug.nl> 102013-02-23 Peter Kleiweg <p.c.j.kleiweg@rug.nl>
2 11
3 * progmodes/ps-mode.el (ps-mode-version): Bump to 1.1i. 12 * progmodes/ps-mode.el (ps-mode-version): Bump to 1.1i.
diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el
index 94b3f645785..3b845f563a1 100644
--- a/lisp/calc/calc-math.el
+++ b/lisp/calc/calc-math.el
@@ -777,18 +777,18 @@ If this can't be done, return NIL."
777 (math-to-hms a 'rad)) 777 (math-to-hms a 'rad))
778 (t a))) 778 (t a)))
779 779
780(defun math-to-radians-2 (a) ; [N N] 780(defun math-to-radians-2 (a &optional force-symbolic) ; [N N]
781 (cond ((eq (car-safe a) 'hms) 781 (cond ((eq (car-safe a) 'hms)
782 (math-from-hms a 'rad)) 782 (math-from-hms a 'rad))
783 ((memq calc-angle-mode '(deg hms)) 783 ((memq calc-angle-mode '(deg hms))
784 (if calc-symbolic-mode 784 (if (or calc-symbolic-mode force-symbolic)
785 (math-div (math-mul a '(var pi var-pi)) 180) 785 (math-div (math-mul a '(var pi var-pi)) 180)
786 (math-mul a (math-pi-over-180)))) 786 (math-mul a (math-pi-over-180))))
787 (t a))) 787 (t a)))
788 788
789(defun math-from-radians-2 (a) ; [N N] 789(defun math-from-radians-2 (a &optional force-symbolic) ; [N N]
790 (cond ((memq calc-angle-mode '(deg hms)) 790 (cond ((memq calc-angle-mode '(deg hms))
791 (if calc-symbolic-mode 791 (if (or calc-symbolic-mode force-symbolic)
792 (math-div (math-mul 180 a) '(var pi var-pi)) 792 (math-div (math-mul 180 a) '(var pi var-pi))
793 (math-div a (math-pi-over-180)))) 793 (math-div a (math-pi-over-180))))
794 (t a))) 794 (t a)))
diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el
index 58a82bcf143..cd962e7dbed 100644
--- a/lisp/calc/calcalg2.el
+++ b/lisp/calc/calcalg2.el
@@ -401,18 +401,18 @@
401 401
402(put 'calcFunc-sin\' 'math-derivative-1 402(put 'calcFunc-sin\' 'math-derivative-1
403 (function (lambda (u) (math-to-radians-2 (math-normalize 403 (function (lambda (u) (math-to-radians-2 (math-normalize
404 (list 'calcFunc-cos u)))))) 404 (list 'calcFunc-cos u)) t))))
405 405
406(put 'calcFunc-cos\' 'math-derivative-1 406(put 'calcFunc-cos\' 'math-derivative-1
407 (function (lambda (u) (math-neg (math-to-radians-2 407 (function (lambda (u) (math-neg (math-to-radians-2
408 (math-normalize 408 (math-normalize
409 (list 'calcFunc-sin u))))))) 409 (list 'calcFunc-sin u)) t)))))
410 410
411(put 'calcFunc-tan\' 'math-derivative-1 411(put 'calcFunc-tan\' 'math-derivative-1
412 (function (lambda (u) (math-to-radians-2 412 (function (lambda (u) (math-to-radians-2
413 (math-sqr 413 (math-sqr
414 (math-normalize 414 (math-normalize
415 (list 'calcFunc-sec u))))))) 415 (list 'calcFunc-sec u))) t))))
416 416
417(put 'calcFunc-sec\' 'math-derivative-1 417(put 'calcFunc-sec\' 'math-derivative-1
418 (function (lambda (u) (math-to-radians-2 418 (function (lambda (u) (math-to-radians-2
@@ -420,7 +420,7 @@
420 (math-normalize 420 (math-normalize
421 (list 'calcFunc-sec u)) 421 (list 'calcFunc-sec u))
422 (math-normalize 422 (math-normalize
423 (list 'calcFunc-tan u))))))) 423 (list 'calcFunc-tan u))) t))))
424 424
425(put 'calcFunc-csc\' 'math-derivative-1 425(put 'calcFunc-csc\' 'math-derivative-1
426 (function (lambda (u) (math-neg 426 (function (lambda (u) (math-neg
@@ -429,32 +429,32 @@
429 (math-normalize 429 (math-normalize
430 (list 'calcFunc-csc u)) 430 (list 'calcFunc-csc u))
431 (math-normalize 431 (math-normalize
432 (list 'calcFunc-cot u)))))))) 432 (list 'calcFunc-cot u))) t)))))
433 433
434(put 'calcFunc-cot\' 'math-derivative-1 434(put 'calcFunc-cot\' 'math-derivative-1
435 (function (lambda (u) (math-neg 435 (function (lambda (u) (math-neg
436 (math-to-radians-2 436 (math-to-radians-2
437 (math-sqr 437 (math-sqr
438 (math-normalize 438 (math-normalize
439 (list 'calcFunc-csc u)))))))) 439 (list 'calcFunc-csc u))) t)))))
440 440
441(put 'calcFunc-arcsin\' 'math-derivative-1 441(put 'calcFunc-arcsin\' 'math-derivative-1
442 (function (lambda (u) 442 (function (lambda (u)
443 (math-from-radians-2 443 (math-from-radians-2
444 (math-div 1 (math-normalize 444 (math-div 1 (math-normalize
445 (list 'calcFunc-sqrt 445 (list 'calcFunc-sqrt
446 (math-sub 1 (math-sqr u))))))))) 446 (math-sub 1 (math-sqr u))))) t))))
447 447
448(put 'calcFunc-arccos\' 'math-derivative-1 448(put 'calcFunc-arccos\' 'math-derivative-1
449 (function (lambda (u) 449 (function (lambda (u)
450 (math-from-radians-2 450 (math-from-radians-2
451 (math-div -1 (math-normalize 451 (math-div -1 (math-normalize
452 (list 'calcFunc-sqrt 452 (list 'calcFunc-sqrt
453 (math-sub 1 (math-sqr u))))))))) 453 (math-sub 1 (math-sqr u))))) t))))
454 454
455(put 'calcFunc-arctan\' 'math-derivative-1 455(put 'calcFunc-arctan\' 'math-derivative-1
456 (function (lambda (u) (math-from-radians-2 456 (function (lambda (u) (math-from-radians-2
457 (math-div 1 (math-add 1 (math-sqr u))))))) 457 (math-div 1 (math-add 1 (math-sqr u))) t))))
458 458
459(put 'calcFunc-sinh\' 'math-derivative-1 459(put 'calcFunc-sinh\' 'math-derivative-1
460 (function (lambda (u) (math-normalize (list 'calcFunc-cosh u))))) 460 (function (lambda (u) (math-normalize (list 'calcFunc-cosh u)))))