[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] calc/calc-lang.el (c): Added support for more C (C99) functions.
From: |
Rüdiger Sonderfeld |
Subject: |
[PATCH] calc/calc-lang.el (c): Added support for more C (C99) functions. |
Date: |
Wed, 01 Feb 2012 19:01:32 +0100 |
User-agent: |
KMail/4.7.3 (Linux/3.0.0-15-generic; KDE/4.7.4; x86_64; ; ) |
I added support for more C (C99) functions to calc's C language mode. I have
signed the fsf papers.
Regards,
Rüdiger
-- >8 --
Subject: [PATCH] calc/calc-lang.el (c): Added support for more C (C99)
functions.
Support for fma (x*y+z), fmax (max), jn, j0, j1 (bessel 1st kind), yn,
y0, y1 (bessel 2nd kind), tgamma (gamma).
Signed-off-by: Rüdiger Sonderfeld <address@hidden>
---
lisp/calc/calc-lang.el | 32 +++++++++++++++++++++++++++++++-
1 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
index c53f59e..0463b6a 100644
--- a/lisp/calc/calc-lang.el
+++ b/lisp/calc/calc-lang.el
@@ -134,7 +134,37 @@
( asinh . calcFunc-arcsinh )
( atan . calcFunc-arctan )
( atan2 . calcFunc-arctan2 )
- ( atanh . calcFunc-arctanh )))
+ ( atanh . calcFunc-arctanh )
+ ( fma . (math-C-parse-fma))
+ ( fmax . calcFunc-max )
+ ( jn . calcFunc-besJ )
+ ( j0 . (math-C-parse-bess))
+ ( 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 )
--
1.7.8.3
- [PATCH] calc/calc-lang.el (c): Added support for more C (C99) functions.,
Rüdiger Sonderfeld <=