# [Maxima] sign(zeta(x))

Alexey Beshenov al at beshenov.ru
Sat Jan 17 16:41:02 CST 2009

```I found that Maxima doesn't know how to find sign(zeta(x))
for non-integer or positive odd x:

integrate (t^3/(exp(t)-1), t, 0, inf)
Is  zeta(3)  positive, negative, or zero?

It happens because zeta(3) is not evaluated, so sign(zeta(3))=pnz.

Other examples:

sign (zeta(5/6)) => pnz
sign (zeta(-5/2)) => pnz

Maybe we can extend compar.lisp by the following stuff:

;; for real x, zeta(x) has
;; trivial negative even roots
;; and a pole at x=1
(defun sign-zeta (x)
(cond
((eq (mgqp arg 1) t) '\$pos)
((eq (mgqp arg 0) t) '\$neg)
((eq (mgrp 0 arg) t)
(if (integerp arg)
(let ((m (mod arg 4)))
(cond
((= m 3) '\$neg)
((= m 1) '\$pos)
(t '\$zero)))
(let ((fl (take '(\$floor) arg)))
(if (integerp fl)
(if (= (mod (if (evenp fl) fl (1- fl)) 4) 0)
'\$pos
'\$neg)
'\$pnz))))
(t '\$pnz))))

Examples:

(sign-zeta '((\$zeta) -23)) => \$pos
(sign-zeta '((\$zeta) -22)) => \$zero
(sign-zeta '((\$zeta) -21)) => \$neg
(sign-zeta '((\$zeta) 0) => \$neg
(sign-zeta '((\$zeta) 23)) => \$pos
(sign-zeta '((\$zeta) ((rat) 5 6))) => \$neg
(sign-zeta '((\$zeta) ((rat) -5 2))) => \$pos
(sign-zeta '((\$zeta) \$%pi))) => \$pos
(sign-zeta '((\$zeta) ((mtimes) 23 \$%i))) => \$pnz
(sign-zeta '((\$zeta) \$x)) => \$pnz

--
Boomtime, Chaos 17 YOLD 3175
Alexey Beshenov  http://beshenov.ru/

```