Show
Ignore:
Timestamp:
11/26/05 08:33:26 (3 years ago)
Author:
miyoshi
Message:

Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • vendor/emacs-CVS_HEAD/lisp/calc/calc-alg.el

    r3939 r3988  
    9393 
    9494;;; Write out powers (a*b*...)^n as a*b*...*a*b*... 
    95 (defun calcFunc-writeoutpower (expr) 
    96   (math-normalize (math-map-tree 'math-write-out-power expr))) 
    97  
    98 (defun math-write-out-power (expr) 
     95(defun calcFunc-powerexpand (expr) 
     96  (math-normalize (math-map-tree 'math-powerexpand expr))) 
     97 
     98(defun math-powerexpand (expr) 
    9999  (if (eq (car-safe expr) '^) 
    100       (let ((a (nth 1 expr)) 
    101             (n (nth 2 expr)) 
    102             (prod (nth 1 expr)) 
    103             (i 1)) 
    104         (if (and (integerp n) 
    105                  (> n 0)) 
    106             (progn 
    107               (while (< i n) 
    108                 (setq prod (math-mul prod a)) 
    109                 (setq i (1+ i))) 
    110               prod) 
    111           expr)) 
     100      (let ((n (nth 2 expr))) 
     101        (cond ((and (integerp n) 
     102                    (> n 0)) 
     103               (let ((i 1) 
     104                     (a (nth 1 expr)) 
     105                     (prod (nth 1 expr))) 
     106                 (while (< i n) 
     107                   (setq prod (math-mul prod a)) 
     108                   (setq i (1+ i))) 
     109                 prod)) 
     110              ((and (integerp n) 
     111                    (< n 0)) 
     112               (let ((i -1) 
     113                     (a (math-pow (nth 1 expr) -1)) 
     114                     (prod (math-pow (nth 1 expr) -1))) 
     115                 (while (> i n) 
     116                   (setq prod (math-mul a prod)) 
     117                   (setq i (1- i))) 
     118                 prod)) 
     119              (t 
     120               expr))) 
    112121    expr)) 
    113122 
    114 (defun calc-writeoutpower () 
     123(defun calc-powerexpand () 
    115124  (interactive) 
    116125  (calc-slow-wrapper 
    117    (calc-enter-result 1 "expp" 
    118                       (calcFunc-writeoutpower (calc-top-n 1))))) 
     126   (calc-enter-result 1 "pexp" 
     127                      (calcFunc-powerexpand (calc-top-n 1))))) 
    119128 
    120129(defun calc-collect (&optional var)