From b1a107166626f4d26399f828fba43b56d57ebeb8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=BCdiger=20Sonderfeld?= Date: Fri, 18 May 2012 10:16:23 -0500 Subject: [PATCH] calc/calc-lang.el (math-C-parse-bess, math-C-parse-fma): New functions. (math-function-table): Add support for more C functions. --- lisp/ChangeLog | 6 ++++++ lisp/calc/calc-lang.el | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 774ea476fb3..30cd1843b30 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2012-05-18 Rüdiger Sonderfeld + + * calc/calc-lang.el (math-C-parse-bess, math-C-parse-fma): + New functions. + (math-function-table): Add support for more C functions. + 2012-05-18 Agustín Martín Domingo * flyspell.el (flyspell-check-pre-word-p, flyspell-check-word-p) diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el index c53f59eb0f4..ec4c497a1c6 100644 --- a/lisp/calc/calc-lang.el +++ b/lisp/calc/calc-lang.el @@ -133,8 +133,39 @@ ( asin . calcFunc-arcsin ) ( asinh . calcFunc-arcsinh ) ( atan . calcFunc-arctan ) - ( atan2 . calcFunc-arctan2 ) - ( atanh . calcFunc-arctanh ))) + ( atan2 . calcFunc-arctan2 ) + ( atanh . calcFunc-arctanh ) + ( fma . (math-C-parse-fma)) + ( fmax . calcFunc-max ) + ( j0 . (math-C-parse-bess)) + ( jn . calcFunc-besJ ) + ( j1 . (math-C-parse-bess)) + ( yn . calcFunc-besY ) + ( y0 . (math-C-parse-bess)) + ( y1 . (math-C-parse-bess)) + ( tgamma . calcFunc-gamma ))) + +(defun math-C-parse-bess (f val) + "Parse C's j0, j1, y0, y1 functions." + (let ((args (math-read-expr-list))) + (math-read-token) + (append + (cond ((eq val 'j0) '(calcFunc-besJ 0)) + ((eq val 'j1) '(calcFunc-besJ 1)) + ((eq val 'y0) '(calcFunc-besY 0)) + ((eq val 'y1) '(calcFunc-besY 1))) + args))) + +(defun math-C-parse-fma (f val) + "Parse C's fma function fma(x,y,z) => (x * y + z)." + (let ((args (math-read-expr-list))) + (math-read-token) + (list 'calcFunc-add + (list 'calcFunc-mul + (nth 0 args) + (nth 1 args)) + (nth 2 args)))) + (put 'c 'math-variable-table '( ( M_PI . var-pi ) -- 2.39.2