diff options
| author | Jay Belanger | 2013-02-23 19:05:13 -0600 |
|---|---|---|
| committer | Jay Belanger | 2013-02-23 19:05:13 -0600 |
| commit | 7a91562ff0ea0033add100295a52ded5a8be0d9b (patch) | |
| tree | d3d7eb3457696e56caa67229af2e5405b2596e4f | |
| parent | 2ae3d73667b6b59480070b4e6b4f7802cacc3455 (diff) | |
| download | emacs-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/ChangeLog | 9 | ||||
| -rw-r--r-- | lisp/calc/calc-math.el | 8 | ||||
| -rw-r--r-- | lisp/calc/calcalg2.el | 18 |
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 @@ | |||
| 1 | 2013-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 | |||
| 1 | 2013-02-23 Peter Kleiweg <p.c.j.kleiweg@rug.nl> | 10 | 2013-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))))) |