Signed infinity and signed zero Re: [Maxima] proposal to change acos
Subject: Signed infinity and signed zero Re: [Maxima] proposal to change acos
From: Raymond Toy
Date: Mon, 28 Nov 2005 12:05:28 -0500
>>>>> "Richard" == Richard Fateman writes:
Richard> Basically, if you have a system that has signed
Richard> infinities (as IEEE 754) you end up with signed zeros.
Richard> For a probably too-long discussion of this, see extrat.pdf
Richard> in www.cs.berkeley.edu/~fateman/papers/ also refs.
Richard> Projective and affine mode rational numbers are also
Richard> possible. This would give us in affine mode,
Richard> one (unsigned + or - infinity) which is 1/0.
Richard> Why introduce this? because a +b/c should be
Richard> computed as a if c=1/0. This allows one
Richard> to continue to compute, even after a division by 0.
Richard> If you have +inf and -inf you should also have +0 and -0,
Richard> and 0/0= undef. (projective mode)
Richard> This could/should be added to the Lisp, and then allowed
Richard> to show through for Maxima.
Hmm. This complicates things quite a bit because as far as I know,
only cmucl and sbcl support signed zeroes. Thus, we can't just
convert log(-1.0 - 0.0 *%i) into (cl:log #c(-1.0 -0.0)). We have to
do this ourselves. Of course, we would have to do this ourselves for
bigfloats, so perhaps that's not so bad.
We will also have to prevent maxima from converting -0.0*%i to 0.
(Curiously, maxima cvs on cmucl says -0.0*%i is -0.0)
Ray