# [Maxima] limit code

Richard Hennessy rich.hennessy at verizon.net
Wed Jan 27 22:04:14 CST 2010

```Hi all,

I think there is no check for the exponent being an integer in ratlim and/or friends.  If you checked for that you could
eliminate some infinity's and get a signed inf or minf which would be better.

Rich

--------------------------------------------------------------------
Barton said.

I know little to nothing about the limit code; nevertheless, how about:

(setf (get '%signum 'simplim%function) 'simplim%signum)

(defun simplim%signum (e x pt)
(let ((sgn))
(setq e (limit (cadr e) x pt 'think))
(setq sgn (\$csign e))
(cond ((eq sgn '\$zero) '\$ind)
((memq sgn '(\$neg \$pn \$pos))
(take '(%signum) e)) ;; OK, this does sign(e) twice,...
(t  (throw 'limit ())))))

Examples:

(%i2) limit(signum(x^2-3),x,5);
(%o2) 1

(%i3) limit(signum(x),x,a);
(%o3) 'limit(signum(x+a),x,0)

(%i4) assume(a > 0);
(%o4) [a > 0]

(%i5) limit(signum(x),x,a);
(%o5) 1

(%i6) limit(signum(x^3-1),x,inf);
(%o6) 1

(%i7) limit(signum(x^3-7),x,minf);
(%o7) -1

(%i8) limit(x * signum(x),x,0);
(%o8) 0

Barton

```