# [Maxima] sign(zeta(x))

Dieter Kaiser drdieterkaiser at web.de
Sun Jan 18 12:24:46 CST 2009

```Hello Alexey,

do you have implemented a general mechanism to give \$sign more support for new
functions?

Such a mechanism would be interessting and is availabe for the conjugate
function. It is possible to put a CONJUGATE-FUNCTION on the property list which
is called by the algorithm of \$conjugate.

The advantage would be that it is possible to add new functions without changing
the code of compar.lisp.

I have used this mechanism to support mirror symmetry for the functions in the
file gamma.lisp. No change of the code in the file conjugate.lisp was necessary.

Dieter Kaiser

-----Ursprüngliche Nachricht-----
Von: maxima-bounces at math.utexas.edu [mailto:maxima-bounces at math.utexas.edu] Im
Auftrag von Alexey Beshenov
Gesendet: Samstag, 17. Januar 2009 23:41
An: maxima at math.utexas.edu
Betreff: [Maxima] sign(zeta(x))

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/

_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima

```