Maxima version: 5.18.1
Maxima build date: 20:57 4/19/2009
host type: i686-pc-mingw32
lisp-implementation-type: GNU Common Lisp (GCL)
lisp-implementation-version: GCL 2.6.8
The following line in the routine rtcon in comm2.lisp is responsible for the bug:
(setq e (list* (car e) -1 '((mexpt) -1 ((rat simp) -1 2))
(delete '$%i (copy-list (cdr e)) :count 1 :test #'eq)))
This code replaces the symbol %i with (-1)*(-1)^(-1/2). The expression (-1)^(-1/2) is put on a list of roots. This is mathematically correct, but does not work. The routine rtc-fixitup, which constructs the result does not handle inverse roots. In rtc-fixitup (-1)^(-1/2) is replaced by %i but it has to be -%i.
I have no idea, why %i is not replaced simply by (-1)^(1/2).
I have tried this change. %i is replaced by (-1)^(1/2):
(setq e (list* (car e)
'((mexpt) -1 ((rat simp) 1 2))
(copy-list (cdr e))
:count 1 :test #'eq))))
I have got no problems with the testsuite and the reported bug will vanish.
The code which causes the wrong results has been commented out.
Closing this bug report as fixed.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.