From: Volker v. N. <va...@us...> - 2012-10-09 19:21:37
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Maxima, A Computer Algebra System". The branch, master has been updated via df0ae4a52b944d38eec3bdb074b4445023eb55f0 (commit) from ce694c1d33839bf3209cd1d04c20687d19c152bf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit df0ae4a52b944d38eec3bdb074b4445023eb55f0 Author: Volker van Nek <vol...@gm...> Date: Tue Oct 9 21:19:06 2012 +0200 add function and variable diff --git a/src/combin.lisp b/src/combin.lisp index ef4386c..51b006e 100644 --- a/src/combin.lisp +++ b/src/combin.lisp @@ -13,7 +13,7 @@ (macsyma-module combin) (declare-top (special *mfactl *factlist donel nn* dn* *ans* *var* - $zerobern *n $cflength *a* $prevfib + $zerobern *n $cflength *a* $prevfib $next_lucas *infsumsimp *times *plus sum usum makef varlist genvar $sumsplitfact $ratfac $simpsum $prederror $listarith @@ -715,6 +715,31 @@ f2 (+ f2 $prevfib))) f2)))) +(defmfun $lucas (n) + (cond + ((fixnump n) (lucas n)) + (t (setq $next_lucas `(($lucas) ,(add2* n 1))) + `(($lucas) ,n) ))) + +(defun lucas (n) + (declare (fixnum n)) + (let ((w 2) (x 2) (y 1) u v (sign (signum n))) (declare (fixnum sign)) + (setq n (abs n)) + (do ((i (1- (integer-length n)) (1- i))) + ((< i 0)) + (declare (fixnum i)) + (setq u (* x x) v (* y y)) + (if (logbitp i n) + (setq y (+ v w) x (+ y (- u) w) w -2) + (setq x (- u w) y (+ v w (- x)) w 2) )) + (cond + ((or (= 1 sign) (not (logbitp 0 n))) + (setq $next_lucas y) + x ) + (t + (setq $next_lucas (neg y)) + (neg x) )))) + ;; continued fraction stuff (defmfun $cfdisrep (a) ----------------------------------------------------------------------- Summary of changes: src/combin.lisp | 27 ++++++++++++++++++++++++++- 1 files changed, 26 insertions(+), 1 deletions(-) hooks/post-receive -- Maxima, A Computer Algebra System |