Weslley S. Pereira, University of Colorado Denver, U.S. Real values for test:
(1) x = 2**m, where m = MINEXPONENT-DIGITS, ..., MINEXPONENT-1. Stop on the first success.
Mind that not all platforms might implement subnormal numbers.
(2) x = 2**m, where m = MINEXPONENT, ..., 0. Stop on the first success.
(3) x = OV, where OV is the overflow threshold. OV^2 overflows but the norm is OV.
(4) x = 2**m, where m = MAXEXPONENT-1, ..., 1. Stop on the first success.
Tests:
(a) y = x + 0 * I, |y| = x
(b) y = 0 + x * I, |y| = x
(c) y = (3/4)*x + x * I, |y| = (5/4)*x whenever (3/4)*x and (5/4)*x can be exactly stored
(d) y = (1/2)*x + (1/2)*x * I, |y| = (1/2)*x*sqrt(2) whenever (1/2)*x can be exactly stored
Special cases:
(i) Inf propagation
(1) y = Inf + 0 * I, |y| is Inf.
(2) y =-Inf + 0 * I, |y| is Inf.
(3) y = 0 + Inf * I, |y| is Inf.
(4) y = 0 - Inf * I, |y| is Inf.
(5) y = Inf + Inf * I, |y| is Inf.
(n) NaN propagation
(1) y = NaN + 0 * I, |y| is NaN.
(2) y = 0 + NaN * I, |y| is NaN.
(3) y = NaN + NaN * I, |y| is NaN.