[Pkg-octave-devel] Sparse + complex arithmetic inconsistency
* David Bateman <David.Bateman@motorola.com> [2007-03-30 10:58]:
> Rafael Laboissiere wrote:
> > I have here:
> >
> > $ g++ --version | fgrep g++
> > g++ (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
> >
> This might play a part in the issue.
Could someone write a simple C++ test program that could put the bug in
evidence?
> No I don't think this matters, as the "./" operator directly calls the
> libc++ std::<complex>(double) division operator. However it should do this
> for both "./" on full and sparse matrices, therefore "(1+1i)/0" and
> "sparse(1+1i)/sparse(0)" should both give the same result. Can you confirm
> what "sparse(1+1i)/sparse(0)" gives on your system? However, given the
> "make check" failure you sent it appears that the full and sparse divisions
> don't agree.
Indeed:
octave2.9:1> (1+1i)/0
warning: division by zero
ans = Inf + Infi
octave2.9:2> sparse(1+1i)/sparse(0)
warning: division by zero
ans = NaN - NaNi
However:
octave2.9:3> 1/0
warning: division by zero
ans = Inf
octave2.9:4> sparse(1)/sparse(0)
warning: division by zero
ans = Inf
This is also weird:
octave2.9:5> 0/0
warning: division by zero
ans = NaN
octave2.9:6> sparse(0)/sparse(0)
warning: division by zero
ans = 0
> Looking at the code is Sparse-op-defs.h for quotient, I see no reason for
> this.
Which is the relevant part in this file?
--
Rafael
Reply to: