On 23/11/13 08:43, Ali Çehreli wrote:
import std.stdio;
import std.complex;
void main()
{
writeln(complex(1.0L, -real.infinity) * complex(0.0, 1.0L));
writeln((1L - ireal.infinity) * 1i);
}
The output:
inf-nani <-- "incorrect" according to the quoted page
inf+1i <-- correct
But, still operating with builtins,
writeln((1L - ireal.infinity) * (0 + 1i));
and you get again
inf-nani
Basically, your nice result with (1L - ireal.infinity) * 1i comes about because
in this case, you're not multiplying two complex numbers, but one complex and
one imaginary. In the latter case, there's no 0 to multiply by infinity.