### Simplify calculator-expt

```* lisp/calculator.el (calculator-expt): Simplify, now that
expt does the right thing if the first arg is -1, 0, or 1.```
parent 799d738b
Pipeline #3934 failed with stage
in 90 minutes and 1 second
 ... ... @@ -1619,30 +1619,10 @@ To use this, apply a binary operator (evaluate it), then call this." "Compute X^Y, dealing with errors appropriately." (condition-case nil (expt x y) (domain-error 0.0e+NaN) (range-error (cond ((and (< x 1.0) (> x -1.0)) ;; For small x, the range error comes from large y. 0.0) ((and (> x 0.0) (< y 0.0)) ;; For large positive x and negative y, the range error ;; comes from large negative y. 0.0) ((and (> x 0.0) (> y 0.0)) ;; For large positive x and positive y, the range error ;; comes from large y. 1.0e+INF) ;; For the rest, x must be large and negative. ;; The range errors come from large integer y. ((< y 0.0) 0.0) ((eq (logand (truncate y) 1) 1) ; expansion of cl `oddp' ;; If y is odd -1.0e+INF) (t ;; 1.0e+INF))) (error 0.0e+NaN))) (overflow-error (if (or (natnump x) (cl-evenp y)) 1.0e+INF -1.0e+INF)))) (defun calculator-fact (x) "Simple factorial of X." ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!