runtime: make complex division c99 compatible

- changes tests to check that the real and imaginary part of the go complex
  division result is equal to the result gcc produces for c99
- changes complex division code to satisfy new complex division test
- adds float functions isNan, isFinite, isInf, abs and copysign
  in the runtime package

Fixes #14644.

name                   old time/op  new time/op  delta
Complex128DivNormal-4  21.8ns ± 6%  13.9ns ± 6%  -36.37%  (p=0.000 n=20+20)
Complex128DivNisNaN-4  14.1ns ± 1%  15.0ns ± 1%   +5.86%  (p=0.000 n=20+19)
Complex128DivDisNaN-4  12.5ns ± 1%  16.7ns ± 1%  +33.79%  (p=0.000 n=19+20)
Complex128DivNisInf-4  10.1ns ± 1%  13.0ns ± 1%  +28.25%  (p=0.000 n=20+19)
Complex128DivDisInf-4  11.0ns ± 1%  20.9ns ± 1%  +90.69%  (p=0.000 n=16+19)
ComplexAlgMap-4        86.7ns ± 1%  86.8ns ± 2%     ~     (p=0.804 n=20+20)

Change-Id: I261f3b4a81f6cc858bc7ff48f6fd1b39c300abf0
Reviewed-on: https://go-review.googlesource.com/37441
Reviewed-by: Robert Griesemer <gri@golang.org>
diff --git a/test/cmplxdivide1.go b/test/cmplxdivide1.go
index e9031dd..a52fb6f 100644
--- a/test/cmplxdivide1.go
+++ b/test/cmplxdivide1.go
@@ -2,2406 +2,4113 @@
 // # generated by cmplxdivide.c
 
 package main
-var tests = []Test{
-	Test{complex(0, 0), complex(0, 0), complex(-nan, -nan)},
-	Test{complex(0, 0), complex(0, 1), complex(0, 0)},
-	Test{complex(0, 0), complex(0, -1), complex(negzero, 0)},
-	Test{complex(0, 0), complex(0, 2), complex(0, 0)},
-	Test{complex(0, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 0), complex(1, 0), complex(0, 0)},
-	Test{complex(0, 0), complex(1, 1), complex(0, 0)},
-	Test{complex(0, 0), complex(1, -1), complex(0, 0)},
-	Test{complex(0, 0), complex(1, 2), complex(0, 0)},
-	Test{complex(0, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 0), complex(-1, 0), complex(negzero, negzero)},
-	Test{complex(0, 0), complex(-1, 1), complex(negzero, negzero)},
-	Test{complex(0, 0), complex(-1, -1), complex(negzero, negzero)},
-	Test{complex(0, 0), complex(-1, 2), complex(0, negzero)},
-	Test{complex(0, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 0), complex(2, 0), complex(0, 0)},
-	Test{complex(0, 0), complex(2, 1), complex(0, 0)},
-	Test{complex(0, 0), complex(2, -1), complex(0, 0)},
-	Test{complex(0, 0), complex(2, 2), complex(0, 0)},
-	Test{complex(0, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 0), complex(nan, 0), complex(nan, nan)},
-	Test{complex(0, 0), complex(nan, 1), complex(nan, nan)},
-	Test{complex(0, 0), complex(nan, -1), complex(nan, nan)},
-	Test{complex(0, 0), complex(nan, 2), complex(nan, nan)},
-	Test{complex(0, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 0), complex(inf, 0), complex(0, 0)},
-	Test{complex(0, 0), complex(inf, 1), complex(0, 0)},
-	Test{complex(0, 0), complex(inf, -1), complex(0, 0)},
-	Test{complex(0, 0), complex(inf, 2), complex(0, 0)},
-	Test{complex(0, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 0), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(0, 0), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(0, 0), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(0, 0), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(0, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 1), complex(0, 0), complex(-nan, inf)},
-	Test{complex(0, 1), complex(0, 1), complex(1, 0)},
-	Test{complex(0, 1), complex(0, -1), complex(-1, 0)},
-	Test{complex(0, 1), complex(0, 2), complex(0.5, 0)},
-	Test{complex(0, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 1), complex(1, 0), complex(0, 1)},
-	Test{complex(0, 1), complex(1, 1), complex(0.5, 0.5)},
-	Test{complex(0, 1), complex(1, -1), complex(-0.5, 0.5)},
-	Test{complex(0, 1), complex(1, 2), complex(0.4, 0.2)},
-	Test{complex(0, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 1), complex(-1, 0), complex(negzero, -1)},
-	Test{complex(0, 1), complex(-1, 1), complex(0.5, -0.5)},
-	Test{complex(0, 1), complex(-1, -1), complex(-0.5, -0.5)},
-	Test{complex(0, 1), complex(-1, 2), complex(0.4, -0.2)},
-	Test{complex(0, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 1), complex(2, 0), complex(0, 0.5)},
-	Test{complex(0, 1), complex(2, 1), complex(0.2, 0.4)},
-	Test{complex(0, 1), complex(2, -1), complex(-0.2, 0.4)},
-	Test{complex(0, 1), complex(2, 2), complex(0.25, 0.25)},
-	Test{complex(0, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(0, 1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(0, 1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(0, 1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(0, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 1), complex(inf, 0), complex(0, 0)},
-	Test{complex(0, 1), complex(inf, 1), complex(0, 0)},
-	Test{complex(0, 1), complex(inf, -1), complex(0, 0)},
-	Test{complex(0, 1), complex(inf, 2), complex(0, 0)},
-	Test{complex(0, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 1), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(0, 1), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(0, 1), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(0, 1), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(0, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(0, -1), complex(0, 1), complex(-1, negzero)},
-	Test{complex(0, -1), complex(0, -1), complex(1, negzero)},
-	Test{complex(0, -1), complex(0, 2), complex(-0.5, negzero)},
-	Test{complex(0, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(0, -1), complex(1, 0), complex(0, -1)},
-	Test{complex(0, -1), complex(1, 1), complex(-0.5, -0.5)},
-	Test{complex(0, -1), complex(1, -1), complex(0.5, -0.5)},
-	Test{complex(0, -1), complex(1, 2), complex(-0.4, -0.2)},
-	Test{complex(0, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(0, -1), complex(-1, 0), complex(negzero, 1)},
-	Test{complex(0, -1), complex(-1, 1), complex(-0.5, 0.5)},
-	Test{complex(0, -1), complex(-1, -1), complex(0.5, 0.5)},
-	Test{complex(0, -1), complex(-1, 2), complex(-0.4, 0.2)},
-	Test{complex(0, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(0, -1), complex(2, 0), complex(0, -0.5)},
-	Test{complex(0, -1), complex(2, 1), complex(-0.2, -0.4)},
-	Test{complex(0, -1), complex(2, -1), complex(0.2, -0.4)},
-	Test{complex(0, -1), complex(2, 2), complex(-0.25, -0.25)},
-	Test{complex(0, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(0, -1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(0, -1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(0, -1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(0, -1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(0, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(0, -1), complex(inf, 0), complex(0, negzero)},
-	Test{complex(0, -1), complex(inf, 1), complex(0, negzero)},
-	Test{complex(0, -1), complex(inf, -1), complex(0, negzero)},
-	Test{complex(0, -1), complex(inf, 2), complex(0, negzero)},
-	Test{complex(0, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(0, -1), complex(-inf, 0), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-inf, 1), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-inf, -1), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-inf, 2), complex(negzero, 0)},
-	Test{complex(0, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(0, 2), complex(0, 0), complex(-nan, inf)},
-	Test{complex(0, 2), complex(0, 1), complex(2, 0)},
-	Test{complex(0, 2), complex(0, -1), complex(-2, 0)},
-	Test{complex(0, 2), complex(0, 2), complex(1, 0)},
-	Test{complex(0, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 2), complex(1, 0), complex(0, 2)},
-	Test{complex(0, 2), complex(1, 1), complex(1, 1)},
-	Test{complex(0, 2), complex(1, -1), complex(-1, 1)},
-	Test{complex(0, 2), complex(1, 2), complex(0.8, 0.4)},
-	Test{complex(0, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 2), complex(-1, 0), complex(negzero, -2)},
-	Test{complex(0, 2), complex(-1, 1), complex(1, -1)},
-	Test{complex(0, 2), complex(-1, -1), complex(-1, -1)},
-	Test{complex(0, 2), complex(-1, 2), complex(0.8, -0.4)},
-	Test{complex(0, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 2), complex(2, 0), complex(0, 1)},
-	Test{complex(0, 2), complex(2, 1), complex(0.4, 0.8)},
-	Test{complex(0, 2), complex(2, -1), complex(-0.4, 0.8)},
-	Test{complex(0, 2), complex(2, 2), complex(0.5, 0.5)},
-	Test{complex(0, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 2), complex(nan, 0), complex(nan, nan)},
-	Test{complex(0, 2), complex(nan, 1), complex(nan, nan)},
-	Test{complex(0, 2), complex(nan, -1), complex(nan, nan)},
-	Test{complex(0, 2), complex(nan, 2), complex(nan, nan)},
-	Test{complex(0, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 2), complex(inf, 0), complex(0, 0)},
-	Test{complex(0, 2), complex(inf, 1), complex(0, 0)},
-	Test{complex(0, 2), complex(inf, -1), complex(0, 0)},
-	Test{complex(0, 2), complex(inf, 2), complex(0, 0)},
-	Test{complex(0, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(0, 2), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(0, 2), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(0, 2), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(0, 2), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(0, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(nan, nan), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)},
-	Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)},
-	Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(1, 0), complex(0, 0), complex(inf, -nan)},
-	Test{complex(1, 0), complex(0, 1), complex(0, -1)},
-	Test{complex(1, 0), complex(0, -1), complex(negzero, 1)},
-	Test{complex(1, 0), complex(0, 2), complex(0, -0.5)},
-	Test{complex(1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 0), complex(1, 0), complex(1, 0)},
-	Test{complex(1, 0), complex(1, 1), complex(0.5, -0.5)},
-	Test{complex(1, 0), complex(1, -1), complex(0.5, 0.5)},
-	Test{complex(1, 0), complex(1, 2), complex(0.2, -0.4)},
-	Test{complex(1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 0), complex(-1, 0), complex(-1, negzero)},
-	Test{complex(1, 0), complex(-1, 1), complex(-0.5, -0.5)},
-	Test{complex(1, 0), complex(-1, -1), complex(-0.5, 0.5)},
-	Test{complex(1, 0), complex(-1, 2), complex(-0.2, -0.4)},
-	Test{complex(1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 0), complex(2, 0), complex(0.5, 0)},
-	Test{complex(1, 0), complex(2, 1), complex(0.4, -0.2)},
-	Test{complex(1, 0), complex(2, -1), complex(0.4, 0.2)},
-	Test{complex(1, 0), complex(2, 2), complex(0.25, -0.25)},
-	Test{complex(1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 0), complex(nan, 0), complex(nan, nan)},
-	Test{complex(1, 0), complex(nan, 1), complex(nan, nan)},
-	Test{complex(1, 0), complex(nan, -1), complex(nan, nan)},
-	Test{complex(1, 0), complex(nan, 2), complex(nan, nan)},
-	Test{complex(1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 0), complex(inf, 0), complex(0, 0)},
-	Test{complex(1, 0), complex(inf, 1), complex(0, 0)},
-	Test{complex(1, 0), complex(inf, -1), complex(0, 0)},
-	Test{complex(1, 0), complex(inf, 2), complex(0, 0)},
-	Test{complex(1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 0), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(1, 0), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(1, 0), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(1, 0), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 1), complex(0, 0), complex(inf, inf)},
-	Test{complex(1, 1), complex(0, 1), complex(1, -1)},
-	Test{complex(1, 1), complex(0, -1), complex(-1, 1)},
-	Test{complex(1, 1), complex(0, 2), complex(0.5, -0.5)},
-	Test{complex(1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 1), complex(1, 0), complex(1, 1)},
-	Test{complex(1, 1), complex(1, 1), complex(1, 0)},
-	Test{complex(1, 1), complex(1, -1), complex(0, 1)},
-	Test{complex(1, 1), complex(1, 2), complex(0.6, -0.2)},
-	Test{complex(1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 1), complex(-1, 0), complex(-1, -1)},
-	Test{complex(1, 1), complex(-1, 1), complex(negzero, -1)},
-	Test{complex(1, 1), complex(-1, -1), complex(-1, negzero)},
-	Test{complex(1, 1), complex(-1, 2), complex(0.2, -0.6)},
-	Test{complex(1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 1), complex(2, 0), complex(0.5, 0.5)},
-	Test{complex(1, 1), complex(2, 1), complex(0.6, 0.2)},
-	Test{complex(1, 1), complex(2, -1), complex(0.2, 0.6)},
-	Test{complex(1, 1), complex(2, 2), complex(0.5, 0)},
-	Test{complex(1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(1, 1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(1, 1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(1, 1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 1), complex(inf, 0), complex(0, 0)},
-	Test{complex(1, 1), complex(inf, 1), complex(0, 0)},
-	Test{complex(1, 1), complex(inf, -1), complex(0, 0)},
-	Test{complex(1, 1), complex(inf, 2), complex(0, 0)},
-	Test{complex(1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 1), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(1, 1), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(1, 1), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(1, 1), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, -1), complex(0, 0), complex(inf, -inf)},
-	Test{complex(1, -1), complex(0, 1), complex(-1, -1)},
-	Test{complex(1, -1), complex(0, -1), complex(1, 1)},
-	Test{complex(1, -1), complex(0, 2), complex(-0.5, -0.5)},
-	Test{complex(1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(1, -1), complex(1, 0), complex(1, -1)},
-	Test{complex(1, -1), complex(1, 1), complex(0, -1)},
-	Test{complex(1, -1), complex(1, -1), complex(1, 0)},
-	Test{complex(1, -1), complex(1, 2), complex(-0.2, -0.6)},
-	Test{complex(1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(1, -1), complex(-1, 0), complex(-1, 1)},
-	Test{complex(1, -1), complex(-1, 1), complex(-1, negzero)},
-	Test{complex(1, -1), complex(-1, -1), complex(negzero, 1)},
-	Test{complex(1, -1), complex(-1, 2), complex(-0.6, -0.2)},
-	Test{complex(1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(1, -1), complex(2, 0), complex(0.5, -0.5)},
-	Test{complex(1, -1), complex(2, 1), complex(0.2, -0.6)},
-	Test{complex(1, -1), complex(2, -1), complex(0.6, -0.2)},
-	Test{complex(1, -1), complex(2, 2), complex(0, -0.5)},
-	Test{complex(1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(1, -1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(1, -1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(1, -1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(1, -1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(1, -1), complex(inf, 0), complex(0, negzero)},
-	Test{complex(1, -1), complex(inf, 1), complex(0, negzero)},
-	Test{complex(1, -1), complex(inf, -1), complex(0, negzero)},
-	Test{complex(1, -1), complex(inf, 2), complex(0, negzero)},
-	Test{complex(1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(1, -1), complex(-inf, 0), complex(negzero, 0)},
-	Test{complex(1, -1), complex(-inf, 1), complex(negzero, 0)},
-	Test{complex(1, -1), complex(-inf, -1), complex(negzero, 0)},
-	Test{complex(1, -1), complex(-inf, 2), complex(negzero, 0)},
-	Test{complex(1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(1, 2), complex(0, 0), complex(inf, inf)},
-	Test{complex(1, 2), complex(0, 1), complex(2, -1)},
-	Test{complex(1, 2), complex(0, -1), complex(-2, 1)},
-	Test{complex(1, 2), complex(0, 2), complex(1, -0.5)},
-	Test{complex(1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 2), complex(1, 0), complex(1, 2)},
-	Test{complex(1, 2), complex(1, 1), complex(1.5, 0.5)},
-	Test{complex(1, 2), complex(1, -1), complex(-0.5, 1.5)},
-	Test{complex(1, 2), complex(1, 2), complex(1, 0)},
-	Test{complex(1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 2), complex(-1, 0), complex(-1, -2)},
-	Test{complex(1, 2), complex(-1, 1), complex(0.5, -1.5)},
-	Test{complex(1, 2), complex(-1, -1), complex(-1.5, -0.5)},
-	Test{complex(1, 2), complex(-1, 2), complex(0.6, -0.8)},
-	Test{complex(1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 2), complex(2, 0), complex(0.5, 1)},
-	Test{complex(1, 2), complex(2, 1), complex(0.8, 0.6)},
-	Test{complex(1, 2), complex(2, -1), complex(0, 1)},
-	Test{complex(1, 2), complex(2, 2), complex(0.75, 0.25)},
-	Test{complex(1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 2), complex(nan, 0), complex(nan, nan)},
-	Test{complex(1, 2), complex(nan, 1), complex(nan, nan)},
-	Test{complex(1, 2), complex(nan, -1), complex(nan, nan)},
-	Test{complex(1, 2), complex(nan, 2), complex(nan, nan)},
-	Test{complex(1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 2), complex(inf, 0), complex(0, 0)},
-	Test{complex(1, 2), complex(inf, 1), complex(0, 0)},
-	Test{complex(1, 2), complex(inf, -1), complex(0, 0)},
-	Test{complex(1, 2), complex(inf, 2), complex(0, 0)},
-	Test{complex(1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(1, 2), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(1, 2), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(1, 2), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(1, 2), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(nan, nan), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)},
-	Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)},
-	Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-1, 0), complex(0, 0), complex(-inf, -nan)},
-	Test{complex(-1, 0), complex(0, 1), complex(0, 1)},
-	Test{complex(-1, 0), complex(0, -1), complex(negzero, -1)},
-	Test{complex(-1, 0), complex(0, 2), complex(0, 0.5)},
-	Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 0), complex(1, 0), complex(-1, 0)},
-	Test{complex(-1, 0), complex(1, 1), complex(-0.5, 0.5)},
-	Test{complex(-1, 0), complex(1, -1), complex(-0.5, -0.5)},
-	Test{complex(-1, 0), complex(1, 2), complex(-0.2, 0.4)},
-	Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 0), complex(-1, 0), complex(1, negzero)},
-	Test{complex(-1, 0), complex(-1, 1), complex(0.5, 0.5)},
-	Test{complex(-1, 0), complex(-1, -1), complex(0.5, -0.5)},
-	Test{complex(-1, 0), complex(-1, 2), complex(0.2, 0.4)},
-	Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 0), complex(2, 0), complex(-0.5, 0)},
-	Test{complex(-1, 0), complex(2, 1), complex(-0.4, 0.2)},
-	Test{complex(-1, 0), complex(2, -1), complex(-0.4, -0.2)},
-	Test{complex(-1, 0), complex(2, 2), complex(-0.25, 0.25)},
-	Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 0), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-1, 0), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-1, 0), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-1, 0), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 0), complex(inf, 0), complex(negzero, 0)},
-	Test{complex(-1, 0), complex(inf, 1), complex(negzero, 0)},
-	Test{complex(-1, 0), complex(inf, -1), complex(negzero, 0)},
-	Test{complex(-1, 0), complex(inf, 2), complex(negzero, 0)},
-	Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 0), complex(-inf, 0), complex(0, negzero)},
-	Test{complex(-1, 0), complex(-inf, 1), complex(0, negzero)},
-	Test{complex(-1, 0), complex(-inf, -1), complex(0, negzero)},
-	Test{complex(-1, 0), complex(-inf, 2), complex(0, negzero)},
-	Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 1), complex(0, 0), complex(-inf, inf)},
-	Test{complex(-1, 1), complex(0, 1), complex(1, 1)},
-	Test{complex(-1, 1), complex(0, -1), complex(-1, -1)},
-	Test{complex(-1, 1), complex(0, 2), complex(0.5, 0.5)},
-	Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 1), complex(1, 0), complex(-1, 1)},
-	Test{complex(-1, 1), complex(1, 1), complex(0, 1)},
-	Test{complex(-1, 1), complex(1, -1), complex(-1, 0)},
-	Test{complex(-1, 1), complex(1, 2), complex(0.2, 0.6)},
-	Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 1), complex(-1, 0), complex(1, -1)},
-	Test{complex(-1, 1), complex(-1, 1), complex(1, negzero)},
-	Test{complex(-1, 1), complex(-1, -1), complex(negzero, -1)},
-	Test{complex(-1, 1), complex(-1, 2), complex(0.6, 0.2)},
-	Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 1), complex(2, 0), complex(-0.5, 0.5)},
-	Test{complex(-1, 1), complex(2, 1), complex(-0.2, 0.6)},
-	Test{complex(-1, 1), complex(2, -1), complex(-0.6, 0.2)},
-	Test{complex(-1, 1), complex(2, 2), complex(0, 0.5)},
-	Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-1, 1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-1, 1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-1, 1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 1), complex(inf, 0), complex(negzero, 0)},
-	Test{complex(-1, 1), complex(inf, 1), complex(negzero, 0)},
-	Test{complex(-1, 1), complex(inf, -1), complex(negzero, 0)},
-	Test{complex(-1, 1), complex(inf, 2), complex(negzero, 0)},
-	Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 1), complex(-inf, 0), complex(0, negzero)},
-	Test{complex(-1, 1), complex(-inf, 1), complex(0, negzero)},
-	Test{complex(-1, 1), complex(-inf, -1), complex(0, negzero)},
-	Test{complex(-1, 1), complex(-inf, 2), complex(0, negzero)},
-	Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, -1), complex(0, 0), complex(-inf, -inf)},
-	Test{complex(-1, -1), complex(0, 1), complex(-1, 1)},
-	Test{complex(-1, -1), complex(0, -1), complex(1, -1)},
-	Test{complex(-1, -1), complex(0, 2), complex(-0.5, 0.5)},
-	Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, -1), complex(1, 0), complex(-1, -1)},
-	Test{complex(-1, -1), complex(1, 1), complex(-1, 0)},
-	Test{complex(-1, -1), complex(1, -1), complex(0, -1)},
-	Test{complex(-1, -1), complex(1, 2), complex(-0.6, 0.2)},
-	Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, -1), complex(-1, 0), complex(1, 1)},
-	Test{complex(-1, -1), complex(-1, 1), complex(negzero, 1)},
-	Test{complex(-1, -1), complex(-1, -1), complex(1, negzero)},
-	Test{complex(-1, -1), complex(-1, 2), complex(-0.2, 0.6)},
-	Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, -1), complex(2, 0), complex(-0.5, -0.5)},
-	Test{complex(-1, -1), complex(2, 1), complex(-0.6, -0.2)},
-	Test{complex(-1, -1), complex(2, -1), complex(-0.2, -0.6)},
-	Test{complex(-1, -1), complex(2, 2), complex(-0.5, 0)},
-	Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, -1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-1, -1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-1, -1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-1, -1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, -1), complex(inf, 0), complex(negzero, negzero)},
-	Test{complex(-1, -1), complex(inf, 1), complex(negzero, negzero)},
-	Test{complex(-1, -1), complex(inf, -1), complex(negzero, negzero)},
-	Test{complex(-1, -1), complex(inf, 2), complex(negzero, negzero)},
-	Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, -1), complex(-inf, 0), complex(0, 0)},
-	Test{complex(-1, -1), complex(-inf, 1), complex(0, 0)},
-	Test{complex(-1, -1), complex(-inf, -1), complex(0, 0)},
-	Test{complex(-1, -1), complex(-inf, 2), complex(0, 0)},
-	Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)},
-	Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)},
-	Test{complex(-1, 2), complex(0, 0), complex(-inf, inf)},
-	Test{complex(-1, 2), complex(0, 1), complex(2, 1)},
-	Test{complex(-1, 2), complex(0, -1), complex(-2, -1)},
-	Test{complex(-1, 2), complex(0, 2), complex(1, 0.5)},
-	Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 2), complex(1, 0), complex(-1, 2)},
-	Test{complex(-1, 2), complex(1, 1), complex(0.5, 1.5)},
-	Test{complex(-1, 2), complex(1, -1), complex(-1.5, 0.5)},
-	Test{complex(-1, 2), complex(1, 2), complex(0.6, 0.8)},
-	Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 2), complex(-1, 0), complex(1, -2)},
-	Test{complex(-1, 2), complex(-1, 1), complex(1.5, -0.5)},
-	Test{complex(-1, 2), complex(-1, -1), complex(-0.5, -1.5)},
-	Test{complex(-1, 2), complex(-1, 2), complex(1, 0)},
-	Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 2), complex(2, 0), complex(-0.5, 1)},
-	Test{complex(-1, 2), complex(2, 1), complex(0, 1)},
-	Test{complex(-1, 2), complex(2, -1), complex(-0.8, 0.6)},
-	Test{complex(-1, 2), complex(2, 2), complex(0.25, 0.75)},
-	Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 2), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-1, 2), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-1, 2), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-1, 2), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 2), complex(inf, 0), complex(negzero, 0)},
-	Test{complex(-1, 2), complex(inf, 1), complex(negzero, 0)},
-	Test{complex(-1, 2), complex(inf, -1), complex(negzero, 0)},
-	Test{complex(-1, 2), complex(inf, 2), complex(negzero, 0)},
-	Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(-1, 2), complex(-inf, 0), complex(0, negzero)},
-	Test{complex(-1, 2), complex(-inf, 1), complex(0, negzero)},
-	Test{complex(-1, 2), complex(-inf, -1), complex(0, negzero)},
-	Test{complex(-1, 2), complex(-inf, 2), complex(0, negzero)},
-	Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)},
-	Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)},
-	Test{complex(nan, nan), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)},
-	Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)},
-	Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(2, 0), complex(0, 0), complex(inf, -nan)},
-	Test{complex(2, 0), complex(0, 1), complex(0, -2)},
-	Test{complex(2, 0), complex(0, -1), complex(negzero, 2)},
-	Test{complex(2, 0), complex(0, 2), complex(0, -1)},
-	Test{complex(2, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 0), complex(1, 0), complex(2, 0)},
-	Test{complex(2, 0), complex(1, 1), complex(1, -1)},
-	Test{complex(2, 0), complex(1, -1), complex(1, 1)},
-	Test{complex(2, 0), complex(1, 2), complex(0.4, -0.8)},
-	Test{complex(2, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 0), complex(-1, 0), complex(-2, negzero)},
-	Test{complex(2, 0), complex(-1, 1), complex(-1, -1)},
-	Test{complex(2, 0), complex(-1, -1), complex(-1, 1)},
-	Test{complex(2, 0), complex(-1, 2), complex(-0.4, -0.8)},
-	Test{complex(2, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 0), complex(2, 0), complex(1, 0)},
-	Test{complex(2, 0), complex(2, 1), complex(0.8, -0.4)},
-	Test{complex(2, 0), complex(2, -1), complex(0.8, 0.4)},
-	Test{complex(2, 0), complex(2, 2), complex(0.5, -0.5)},
-	Test{complex(2, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 0), complex(nan, 0), complex(nan, nan)},
-	Test{complex(2, 0), complex(nan, 1), complex(nan, nan)},
-	Test{complex(2, 0), complex(nan, -1), complex(nan, nan)},
-	Test{complex(2, 0), complex(nan, 2), complex(nan, nan)},
-	Test{complex(2, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 0), complex(inf, 0), complex(0, 0)},
-	Test{complex(2, 0), complex(inf, 1), complex(0, 0)},
-	Test{complex(2, 0), complex(inf, -1), complex(0, 0)},
-	Test{complex(2, 0), complex(inf, 2), complex(0, 0)},
-	Test{complex(2, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 0), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(2, 0), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(2, 0), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(2, 0), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(2, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 1), complex(0, 0), complex(inf, inf)},
-	Test{complex(2, 1), complex(0, 1), complex(1, -2)},
-	Test{complex(2, 1), complex(0, -1), complex(-1, 2)},
-	Test{complex(2, 1), complex(0, 2), complex(0.5, -1)},
-	Test{complex(2, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 1), complex(1, 0), complex(2, 1)},
-	Test{complex(2, 1), complex(1, 1), complex(1.5, -0.5)},
-	Test{complex(2, 1), complex(1, -1), complex(0.5, 1.5)},
-	Test{complex(2, 1), complex(1, 2), complex(0.8, -0.6)},
-	Test{complex(2, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 1), complex(-1, 0), complex(-2, -1)},
-	Test{complex(2, 1), complex(-1, 1), complex(-0.5, -1.5)},
-	Test{complex(2, 1), complex(-1, -1), complex(-1.5, 0.5)},
-	Test{complex(2, 1), complex(-1, 2), complex(0, -1)},
-	Test{complex(2, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 1), complex(2, 0), complex(1, 0.5)},
-	Test{complex(2, 1), complex(2, 1), complex(1, 0)},
-	Test{complex(2, 1), complex(2, -1), complex(0.6, 0.8)},
-	Test{complex(2, 1), complex(2, 2), complex(0.75, -0.25)},
-	Test{complex(2, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(2, 1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(2, 1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(2, 1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(2, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 1), complex(inf, 0), complex(0, 0)},
-	Test{complex(2, 1), complex(inf, 1), complex(0, 0)},
-	Test{complex(2, 1), complex(inf, -1), complex(0, 0)},
-	Test{complex(2, 1), complex(inf, 2), complex(0, 0)},
-	Test{complex(2, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 1), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(2, 1), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(2, 1), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(2, 1), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(2, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, -1), complex(0, 0), complex(inf, -inf)},
-	Test{complex(2, -1), complex(0, 1), complex(-1, -2)},
-	Test{complex(2, -1), complex(0, -1), complex(1, 2)},
-	Test{complex(2, -1), complex(0, 2), complex(-0.5, -1)},
-	Test{complex(2, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(2, -1), complex(1, 0), complex(2, -1)},
-	Test{complex(2, -1), complex(1, 1), complex(0.5, -1.5)},
-	Test{complex(2, -1), complex(1, -1), complex(1.5, 0.5)},
-	Test{complex(2, -1), complex(1, 2), complex(0, -1)},
-	Test{complex(2, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(2, -1), complex(-1, 0), complex(-2, 1)},
-	Test{complex(2, -1), complex(-1, 1), complex(-1.5, -0.5)},
-	Test{complex(2, -1), complex(-1, -1), complex(-0.5, 1.5)},
-	Test{complex(2, -1), complex(-1, 2), complex(-0.8, -0.6)},
-	Test{complex(2, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(2, -1), complex(2, 0), complex(1, -0.5)},
-	Test{complex(2, -1), complex(2, 1), complex(0.6, -0.8)},
-	Test{complex(2, -1), complex(2, -1), complex(1, 0)},
-	Test{complex(2, -1), complex(2, 2), complex(0.25, -0.75)},
-	Test{complex(2, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(2, -1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(2, -1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(2, -1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(2, -1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(2, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(2, -1), complex(inf, 0), complex(0, negzero)},
-	Test{complex(2, -1), complex(inf, 1), complex(0, negzero)},
-	Test{complex(2, -1), complex(inf, -1), complex(0, negzero)},
-	Test{complex(2, -1), complex(inf, 2), complex(0, negzero)},
-	Test{complex(2, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(2, -1), complex(-inf, 0), complex(negzero, 0)},
-	Test{complex(2, -1), complex(-inf, 1), complex(negzero, 0)},
-	Test{complex(2, -1), complex(-inf, -1), complex(negzero, 0)},
-	Test{complex(2, -1), complex(-inf, 2), complex(negzero, 0)},
-	Test{complex(2, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)},
-	Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)},
-	Test{complex(2, 2), complex(0, 0), complex(inf, inf)},
-	Test{complex(2, 2), complex(0, 1), complex(2, -2)},
-	Test{complex(2, 2), complex(0, -1), complex(-2, 2)},
-	Test{complex(2, 2), complex(0, 2), complex(1, -1)},
-	Test{complex(2, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 2), complex(1, 0), complex(2, 2)},
-	Test{complex(2, 2), complex(1, 1), complex(2, 0)},
-	Test{complex(2, 2), complex(1, -1), complex(0, 2)},
-	Test{complex(2, 2), complex(1, 2), complex(1.2, -0.4)},
-	Test{complex(2, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 2), complex(-1, 0), complex(-2, -2)},
-	Test{complex(2, 2), complex(-1, 1), complex(negzero, -2)},
-	Test{complex(2, 2), complex(-1, -1), complex(-2, negzero)},
-	Test{complex(2, 2), complex(-1, 2), complex(0.4, -1.2)},
-	Test{complex(2, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 2), complex(2, 0), complex(1, 1)},
-	Test{complex(2, 2), complex(2, 1), complex(1.2, 0.4)},
-	Test{complex(2, 2), complex(2, -1), complex(0.4, 1.2)},
-	Test{complex(2, 2), complex(2, 2), complex(1, 0)},
-	Test{complex(2, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 2), complex(nan, 0), complex(nan, nan)},
-	Test{complex(2, 2), complex(nan, 1), complex(nan, nan)},
-	Test{complex(2, 2), complex(nan, -1), complex(nan, nan)},
-	Test{complex(2, 2), complex(nan, 2), complex(nan, nan)},
-	Test{complex(2, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 2), complex(inf, 0), complex(0, 0)},
-	Test{complex(2, 2), complex(inf, 1), complex(0, 0)},
-	Test{complex(2, 2), complex(inf, -1), complex(0, 0)},
-	Test{complex(2, 2), complex(inf, 2), complex(0, 0)},
-	Test{complex(2, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(2, 2), complex(-inf, 0), complex(negzero, negzero)},
-	Test{complex(2, 2), complex(-inf, 1), complex(negzero, negzero)},
-	Test{complex(2, 2), complex(-inf, -1), complex(negzero, negzero)},
-	Test{complex(2, 2), complex(-inf, 2), complex(negzero, negzero)},
-	Test{complex(2, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)},
-	Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)},
-	Test{complex(nan, nan), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)},
-	Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)},
-	Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, 0), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, 0), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, 0), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, 0), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, 1), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, 1), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, 1), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, 1), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, -1), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, -1), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, -1), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, -1), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, 2), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, 2), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, 2), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, 2), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, nan), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)},
-	Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)},
-	Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(0, 0), complex(inf, -nan)},
-	Test{complex(inf, 0), complex(0, 1), complex(-nan, -inf)},
-	Test{complex(inf, 0), complex(0, -1), complex(-nan, inf)},
-	Test{complex(inf, 0), complex(0, 2), complex(-nan, -inf)},
-	Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(1, 0), complex(inf, -nan)},
-	Test{complex(inf, 0), complex(1, 1), complex(inf, -inf)},
-	Test{complex(inf, 0), complex(1, -1), complex(inf, inf)},
-	Test{complex(inf, 0), complex(1, 2), complex(inf, -inf)},
-	Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-1, 0), complex(-inf, -nan)},
-	Test{complex(inf, 0), complex(-1, 1), complex(-inf, -inf)},
-	Test{complex(inf, 0), complex(-1, -1), complex(-inf, inf)},
-	Test{complex(inf, 0), complex(-1, 2), complex(-inf, -inf)},
-	Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(2, 0), complex(inf, -nan)},
-	Test{complex(inf, 0), complex(2, 1), complex(inf, -inf)},
-	Test{complex(inf, 0), complex(2, -1), complex(inf, inf)},
-	Test{complex(inf, 0), complex(2, 2), complex(inf, -inf)},
-	Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(nan, 0), complex(nan, nan)},
-	Test{complex(inf, 0), complex(nan, 1), complex(nan, nan)},
-	Test{complex(inf, 0), complex(nan, -1), complex(nan, nan)},
-	Test{complex(inf, 0), complex(nan, 2), complex(nan, nan)},
-	Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(0, 0), complex(inf, inf)},
-	Test{complex(inf, 1), complex(0, 1), complex(-nan, -inf)},
-	Test{complex(inf, 1), complex(0, -1), complex(-nan, inf)},
-	Test{complex(inf, 1), complex(0, 2), complex(-nan, -inf)},
-	Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(1, 0), complex(inf, -nan)},
-	Test{complex(inf, 1), complex(1, 1), complex(inf, -inf)},
-	Test{complex(inf, 1), complex(1, -1), complex(inf, inf)},
-	Test{complex(inf, 1), complex(1, 2), complex(inf, -inf)},
-	Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-1, 0), complex(-inf, -nan)},
-	Test{complex(inf, 1), complex(-1, 1), complex(-inf, -inf)},
-	Test{complex(inf, 1), complex(-1, -1), complex(-inf, inf)},
-	Test{complex(inf, 1), complex(-1, 2), complex(-inf, -inf)},
-	Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(2, 0), complex(inf, -nan)},
-	Test{complex(inf, 1), complex(2, 1), complex(inf, -inf)},
-	Test{complex(inf, 1), complex(2, -1), complex(inf, inf)},
-	Test{complex(inf, 1), complex(2, 2), complex(inf, -inf)},
-	Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(inf, 1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(inf, 1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(inf, 1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(0, 0), complex(inf, -inf)},
-	Test{complex(inf, -1), complex(0, 1), complex(-nan, -inf)},
-	Test{complex(inf, -1), complex(0, -1), complex(-nan, inf)},
-	Test{complex(inf, -1), complex(0, 2), complex(-nan, -inf)},
-	Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(1, 0), complex(inf, -nan)},
-	Test{complex(inf, -1), complex(1, 1), complex(inf, -inf)},
-	Test{complex(inf, -1), complex(1, -1), complex(inf, inf)},
-	Test{complex(inf, -1), complex(1, 2), complex(inf, -inf)},
-	Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-1, 0), complex(-inf, -nan)},
-	Test{complex(inf, -1), complex(-1, 1), complex(-inf, -inf)},
-	Test{complex(inf, -1), complex(-1, -1), complex(-inf, inf)},
-	Test{complex(inf, -1), complex(-1, 2), complex(-inf, -inf)},
-	Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(2, 0), complex(inf, -nan)},
-	Test{complex(inf, -1), complex(2, 1), complex(inf, -inf)},
-	Test{complex(inf, -1), complex(2, -1), complex(inf, inf)},
-	Test{complex(inf, -1), complex(2, 2), complex(inf, -inf)},
-	Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(inf, -1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(inf, -1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(inf, -1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(0, 0), complex(inf, inf)},
-	Test{complex(inf, 2), complex(0, 1), complex(-nan, -inf)},
-	Test{complex(inf, 2), complex(0, -1), complex(-nan, inf)},
-	Test{complex(inf, 2), complex(0, 2), complex(-nan, -inf)},
-	Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(1, 0), complex(inf, -nan)},
-	Test{complex(inf, 2), complex(1, 1), complex(inf, -inf)},
-	Test{complex(inf, 2), complex(1, -1), complex(inf, inf)},
-	Test{complex(inf, 2), complex(1, 2), complex(inf, -inf)},
-	Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-1, 0), complex(-inf, -nan)},
-	Test{complex(inf, 2), complex(-1, 1), complex(-inf, -inf)},
-	Test{complex(inf, 2), complex(-1, -1), complex(-inf, inf)},
-	Test{complex(inf, 2), complex(-1, 2), complex(-inf, -inf)},
-	Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(2, 0), complex(inf, -nan)},
-	Test{complex(inf, 2), complex(2, 1), complex(inf, -inf)},
-	Test{complex(inf, 2), complex(2, -1), complex(inf, inf)},
-	Test{complex(inf, 2), complex(2, 2), complex(inf, -inf)},
-	Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(nan, 0), complex(nan, nan)},
-	Test{complex(inf, 2), complex(nan, 1), complex(nan, nan)},
-	Test{complex(inf, 2), complex(nan, -1), complex(nan, nan)},
-	Test{complex(inf, 2), complex(nan, 2), complex(nan, nan)},
-	Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, nan), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)},
-	Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)},
-	Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(0, 0), complex(-inf, -nan)},
-	Test{complex(-inf, 0), complex(0, 1), complex(-nan, inf)},
-	Test{complex(-inf, 0), complex(0, -1), complex(-nan, -inf)},
-	Test{complex(-inf, 0), complex(0, 2), complex(-nan, inf)},
-	Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(1, 0), complex(-inf, -nan)},
-	Test{complex(-inf, 0), complex(1, 1), complex(-inf, inf)},
-	Test{complex(-inf, 0), complex(1, -1), complex(-inf, -inf)},
-	Test{complex(-inf, 0), complex(1, 2), complex(-inf, inf)},
-	Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-1, 0), complex(inf, -nan)},
-	Test{complex(-inf, 0), complex(-1, 1), complex(inf, inf)},
-	Test{complex(-inf, 0), complex(-1, -1), complex(inf, -inf)},
-	Test{complex(-inf, 0), complex(-1, 2), complex(inf, inf)},
-	Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(2, 0), complex(-inf, -nan)},
-	Test{complex(-inf, 0), complex(2, 1), complex(-inf, inf)},
-	Test{complex(-inf, 0), complex(2, -1), complex(-inf, -inf)},
-	Test{complex(-inf, 0), complex(2, 2), complex(-inf, inf)},
-	Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(0, 0), complex(-inf, inf)},
-	Test{complex(-inf, 1), complex(0, 1), complex(-nan, inf)},
-	Test{complex(-inf, 1), complex(0, -1), complex(-nan, -inf)},
-	Test{complex(-inf, 1), complex(0, 2), complex(-nan, inf)},
-	Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(1, 0), complex(-inf, -nan)},
-	Test{complex(-inf, 1), complex(1, 1), complex(-inf, inf)},
-	Test{complex(-inf, 1), complex(1, -1), complex(-inf, -inf)},
-	Test{complex(-inf, 1), complex(1, 2), complex(-inf, inf)},
-	Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-1, 0), complex(inf, -nan)},
-	Test{complex(-inf, 1), complex(-1, 1), complex(inf, inf)},
-	Test{complex(-inf, 1), complex(-1, -1), complex(inf, -inf)},
-	Test{complex(-inf, 1), complex(-1, 2), complex(inf, inf)},
-	Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(2, 0), complex(-inf, -nan)},
-	Test{complex(-inf, 1), complex(2, 1), complex(-inf, inf)},
-	Test{complex(-inf, 1), complex(2, -1), complex(-inf, -inf)},
-	Test{complex(-inf, 1), complex(2, 2), complex(-inf, inf)},
-	Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(0, 0), complex(-inf, -inf)},
-	Test{complex(-inf, -1), complex(0, 1), complex(-nan, inf)},
-	Test{complex(-inf, -1), complex(0, -1), complex(-nan, -inf)},
-	Test{complex(-inf, -1), complex(0, 2), complex(-nan, inf)},
-	Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(1, 0), complex(-inf, -nan)},
-	Test{complex(-inf, -1), complex(1, 1), complex(-inf, inf)},
-	Test{complex(-inf, -1), complex(1, -1), complex(-inf, -inf)},
-	Test{complex(-inf, -1), complex(1, 2), complex(-inf, inf)},
-	Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-1, 0), complex(inf, -nan)},
-	Test{complex(-inf, -1), complex(-1, 1), complex(inf, inf)},
-	Test{complex(-inf, -1), complex(-1, -1), complex(inf, -inf)},
-	Test{complex(-inf, -1), complex(-1, 2), complex(inf, inf)},
-	Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(2, 0), complex(-inf, -nan)},
-	Test{complex(-inf, -1), complex(2, 1), complex(-inf, inf)},
-	Test{complex(-inf, -1), complex(2, -1), complex(-inf, -inf)},
-	Test{complex(-inf, -1), complex(2, 2), complex(-inf, inf)},
-	Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(0, 0), complex(-inf, inf)},
-	Test{complex(-inf, 2), complex(0, 1), complex(-nan, inf)},
-	Test{complex(-inf, 2), complex(0, -1), complex(-nan, -inf)},
-	Test{complex(-inf, 2), complex(0, 2), complex(-nan, inf)},
-	Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(1, 0), complex(-inf, -nan)},
-	Test{complex(-inf, 2), complex(1, 1), complex(-inf, inf)},
-	Test{complex(-inf, 2), complex(1, -1), complex(-inf, -inf)},
-	Test{complex(-inf, 2), complex(1, 2), complex(-inf, inf)},
-	Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-1, 0), complex(inf, -nan)},
-	Test{complex(-inf, 2), complex(-1, 1), complex(inf, inf)},
-	Test{complex(-inf, 2), complex(-1, -1), complex(inf, -inf)},
-	Test{complex(-inf, 2), complex(-1, 2), complex(inf, inf)},
-	Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(2, 0), complex(-inf, -nan)},
-	Test{complex(-inf, 2), complex(2, 1), complex(-inf, inf)},
-	Test{complex(-inf, 2), complex(2, -1), complex(-inf, -inf)},
-	Test{complex(-inf, 2), complex(2, 2), complex(-inf, inf)},
-	Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(nan, nan), complex(0, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(0, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(2, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
-	Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)},
-	Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)},
-	Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)},
-	Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)},
-	Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)},
-	Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)},
-	Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)},
-	Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)},
-	Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)},
-	Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)},
-	Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)},
-	Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)},
-	Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)},
+
+import "math"
+
+var (
+	nan     = math.NaN()
+	inf     = math.Inf(1)
+	zero    = 0.0
+)
+
+var tests = []struct {
+	f, g complex128
+	out  complex128
+}{
+	{complex(zero, zero), complex(zero, zero), complex(nan, nan)},
+	{complex(zero, zero), complex(zero, -zero), complex(nan, nan)},
+	{complex(zero, zero), complex(zero, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(zero, -1), complex(-zero, zero)},
+	{complex(zero, zero), complex(zero, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(zero, zero), complex(nan, nan)},
+	{complex(zero, zero), complex(-zero, -zero), complex(nan, nan)},
+	{complex(zero, zero), complex(zero, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(-zero, -1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(zero, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(1, zero), complex(zero, zero)},
+	{complex(zero, zero), complex(1, -zero), complex(zero, zero)},
+	{complex(zero, zero), complex(1, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(1, -1), complex(zero, zero)},
+	{complex(zero, zero), complex(1, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(-1, zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, -zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, 1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, -1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, 2), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(2, zero), complex(zero, zero)},
+	{complex(zero, zero), complex(2, -zero), complex(zero, zero)},
+	{complex(zero, zero), complex(2, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(2, -1), complex(zero, zero)},
+	{complex(zero, zero), complex(2, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(inf, zero), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, -zero), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, -1), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(zero, zero), complex(nan, nan)},
+	{complex(zero, -zero), complex(zero, -zero), complex(nan, nan)},
+	{complex(zero, -zero), complex(zero, 1), complex(zero, -zero)},
+	{complex(zero, -zero), complex(zero, -1), complex(zero, -zero)},
+	{complex(zero, -zero), complex(zero, 2), complex(zero, -zero)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -zero), complex(zero, zero), complex(nan, nan)},
+	{complex(zero, -zero), complex(-zero, -zero), complex(nan, nan)},
+	{complex(zero, -zero), complex(zero, 1), complex(zero, -zero)},
+	{complex(zero, -zero), complex(-zero, -1), complex(-zero, zero)},
+	{complex(zero, -zero), complex(zero, 2), complex(zero, -zero)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -zero), complex(1, zero), complex(zero, -zero)},
+	{complex(zero, -zero), complex(1, -zero), complex(zero, zero)},
+	{complex(zero, -zero), complex(1, 1), complex(zero, -zero)},
+	{complex(zero, -zero), complex(1, -1), complex(zero, zero)},
+	{complex(zero, -zero), complex(1, 2), complex(zero, -zero)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -zero), complex(-1, zero), complex(-zero, -zero)},
+	{complex(zero, -zero), complex(-1, -zero), complex(-zero, zero)},
+	{complex(zero, -zero), complex(-1, 1), complex(-zero, -zero)},
+	{complex(zero, -zero), complex(-1, -1), complex(-zero, zero)},
+	{complex(zero, -zero), complex(-1, 2), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -zero), complex(2, zero), complex(zero, -zero)},
+	{complex(zero, -zero), complex(2, -zero), complex(zero, zero)},
+	{complex(zero, -zero), complex(2, 1), complex(zero, -zero)},
+	{complex(zero, -zero), complex(2, -1), complex(zero, zero)},
+	{complex(zero, -zero), complex(2, 2), complex(zero, -zero)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -zero), complex(inf, zero), complex(zero, -zero)},
+	{complex(zero, -zero), complex(inf, -zero), complex(zero, zero)},
+	{complex(zero, -zero), complex(inf, 1), complex(zero, -zero)},
+	{complex(zero, -zero), complex(inf, -1), complex(zero, zero)},
+	{complex(zero, -zero), complex(inf, 2), complex(zero, -zero)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -zero), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(zero, -zero), complex(-inf, -zero), complex(-zero, zero)},
+	{complex(zero, -zero), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(zero, -zero), complex(-inf, -1), complex(-zero, zero)},
+	{complex(zero, -zero), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -zero), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, 1), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 1), complex(zero, -zero), complex(nan, inf)},
+	{complex(zero, 1), complex(zero, 1), complex(1, zero)},
+	{complex(zero, 1), complex(zero, -1), complex(-1, zero)},
+	{complex(zero, 1), complex(zero, 2), complex(0.5, zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 1), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(zero, 1), complex(zero, 1), complex(1, zero)},
+	{complex(zero, 1), complex(-zero, -1), complex(-1, -zero)},
+	{complex(zero, 1), complex(zero, 2), complex(0.5, zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(1, zero), complex(zero, 1)},
+	{complex(zero, 1), complex(1, -zero), complex(zero, 1)},
+	{complex(zero, 1), complex(1, 1), complex(0.5, 0.5)},
+	{complex(zero, 1), complex(1, -1), complex(-0.5, 0.5)},
+	{complex(zero, 1), complex(1, 2), complex(0.4, 0.2)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(-1, zero), complex(-zero, -1)},
+	{complex(zero, 1), complex(-1, -zero), complex(-zero, -1)},
+	{complex(zero, 1), complex(-1, 1), complex(0.5, -0.5)},
+	{complex(zero, 1), complex(-1, -1), complex(-0.5, -0.5)},
+	{complex(zero, 1), complex(-1, 2), complex(0.4, -0.2)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(2, zero), complex(zero, 0.5)},
+	{complex(zero, 1), complex(2, -zero), complex(zero, 0.5)},
+	{complex(zero, 1), complex(2, 1), complex(0.2, 0.4)},
+	{complex(zero, 1), complex(2, -1), complex(-0.2, 0.4)},
+	{complex(zero, 1), complex(2, 2), complex(0.25, 0.25)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(inf, zero), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, -zero), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, 1), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, -1), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, 2), complex(zero, zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(zero, zero), complex(nan, -inf)},
+	{complex(zero, -1), complex(zero, -zero), complex(nan, -inf)},
+	{complex(zero, -1), complex(zero, 1), complex(-1, -zero)},
+	{complex(zero, -1), complex(zero, -1), complex(1, -zero)},
+	{complex(zero, -1), complex(zero, 2), complex(-0.5, -zero)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -1), complex(zero, zero), complex(nan, -inf)},
+	{complex(zero, -1), complex(-zero, -zero), complex(nan, inf)},
+	{complex(zero, -1), complex(zero, 1), complex(-1, -zero)},
+	{complex(zero, -1), complex(-zero, -1), complex(1, zero)},
+	{complex(zero, -1), complex(zero, 2), complex(-0.5, -zero)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -1), complex(1, zero), complex(zero, -1)},
+	{complex(zero, -1), complex(1, -zero), complex(zero, -1)},
+	{complex(zero, -1), complex(1, 1), complex(-0.5, -0.5)},
+	{complex(zero, -1), complex(1, -1), complex(0.5, -0.5)},
+	{complex(zero, -1), complex(1, 2), complex(-0.4, -0.2)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -1), complex(-1, zero), complex(-zero, 1)},
+	{complex(zero, -1), complex(-1, -zero), complex(-zero, 1)},
+	{complex(zero, -1), complex(-1, 1), complex(-0.5, 0.5)},
+	{complex(zero, -1), complex(-1, -1), complex(0.5, 0.5)},
+	{complex(zero, -1), complex(-1, 2), complex(-0.4, 0.2)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -1), complex(2, zero), complex(zero, -0.5)},
+	{complex(zero, -1), complex(2, -zero), complex(zero, -0.5)},
+	{complex(zero, -1), complex(2, 1), complex(-0.2, -0.4)},
+	{complex(zero, -1), complex(2, -1), complex(0.2, -0.4)},
+	{complex(zero, -1), complex(2, 2), complex(-0.25, -0.25)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -1), complex(inf, zero), complex(zero, -zero)},
+	{complex(zero, -1), complex(inf, -zero), complex(zero, -zero)},
+	{complex(zero, -1), complex(inf, 1), complex(zero, -zero)},
+	{complex(zero, -1), complex(inf, -1), complex(zero, -zero)},
+	{complex(zero, -1), complex(inf, 2), complex(zero, -zero)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, -1), complex(-inf, zero), complex(-zero, zero)},
+	{complex(zero, -1), complex(-inf, -zero), complex(-zero, zero)},
+	{complex(zero, -1), complex(-inf, 1), complex(-zero, zero)},
+	{complex(zero, -1), complex(-inf, -1), complex(-zero, zero)},
+	{complex(zero, -1), complex(-inf, 2), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, 2), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 2), complex(zero, -zero), complex(nan, inf)},
+	{complex(zero, 2), complex(zero, 1), complex(2, zero)},
+	{complex(zero, 2), complex(zero, -1), complex(-2, zero)},
+	{complex(zero, 2), complex(zero, 2), complex(1, zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 2), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(zero, 2), complex(zero, 1), complex(2, zero)},
+	{complex(zero, 2), complex(-zero, -1), complex(-2, -zero)},
+	{complex(zero, 2), complex(zero, 2), complex(1, zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(1, zero), complex(zero, 2)},
+	{complex(zero, 2), complex(1, -zero), complex(zero, 2)},
+	{complex(zero, 2), complex(1, 1), complex(1, 1)},
+	{complex(zero, 2), complex(1, -1), complex(-1, 1)},
+	{complex(zero, 2), complex(1, 2), complex(0.8, 0.4)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(-1, zero), complex(-zero, -2)},
+	{complex(zero, 2), complex(-1, -zero), complex(-zero, -2)},
+	{complex(zero, 2), complex(-1, 1), complex(1, -1)},
+	{complex(zero, 2), complex(-1, -1), complex(-1, -1)},
+	{complex(zero, 2), complex(-1, 2), complex(0.8, -0.4)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(2, zero), complex(zero, 1)},
+	{complex(zero, 2), complex(2, -zero), complex(zero, 1)},
+	{complex(zero, 2), complex(2, 1), complex(0.4, 0.8)},
+	{complex(zero, 2), complex(2, -1), complex(-0.4, 0.8)},
+	{complex(zero, 2), complex(2, 2), complex(0.5, 0.5)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(inf, zero), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, -zero), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, 1), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, -1), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, 2), complex(zero, zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(zero, zero), complex(zero, zero), complex(nan, nan)},
+	{complex(zero, zero), complex(zero, -zero), complex(nan, nan)},
+	{complex(zero, zero), complex(zero, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(zero, -1), complex(-zero, zero)},
+	{complex(zero, zero), complex(zero, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(zero, zero), complex(nan, nan)},
+	{complex(zero, zero), complex(-zero, -zero), complex(nan, nan)},
+	{complex(zero, zero), complex(zero, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(-zero, -1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(zero, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(1, zero), complex(zero, zero)},
+	{complex(zero, zero), complex(1, -zero), complex(zero, zero)},
+	{complex(zero, zero), complex(1, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(1, -1), complex(zero, zero)},
+	{complex(zero, zero), complex(1, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(-1, zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, -zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, 1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, -1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-1, 2), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(2, zero), complex(zero, zero)},
+	{complex(zero, zero), complex(2, -zero), complex(zero, zero)},
+	{complex(zero, zero), complex(2, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(2, -1), complex(zero, zero)},
+	{complex(zero, zero), complex(2, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(inf, zero), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, -zero), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, 1), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, -1), complex(zero, zero)},
+	{complex(zero, zero), complex(inf, 2), complex(zero, zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, zero), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(zero, zero), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(zero, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(zero, zero), complex(nan, nan)},
+	{complex(-zero, -zero), complex(zero, -zero), complex(nan, nan)},
+	{complex(-zero, -zero), complex(zero, 1), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(zero, -1), complex(-zero, -zero)},
+	{complex(-zero, -zero), complex(zero, 2), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(zero, zero), complex(nan, nan)},
+	{complex(-zero, -zero), complex(-zero, -zero), complex(nan, nan)},
+	{complex(-zero, -zero), complex(zero, 1), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(-zero, -1), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(zero, 2), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(1, zero), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(1, -zero), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(1, 1), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(1, -1), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(1, 2), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(-1, zero), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(-1, -zero), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(-1, 1), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(-1, -1), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(-1, 2), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(2, zero), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(2, -zero), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(2, 1), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(2, -1), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(2, 2), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(inf, zero), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(inf, -zero), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(inf, 1), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(inf, -1), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(inf, 2), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(-inf, zero), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(-inf, -zero), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(-inf, 1), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(-inf, -1), complex(zero, -zero)},
+	{complex(-zero, -zero), complex(-inf, 2), complex(-zero, zero)},
+	{complex(-zero, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, 1), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 1), complex(zero, -zero), complex(nan, inf)},
+	{complex(zero, 1), complex(zero, 1), complex(1, zero)},
+	{complex(zero, 1), complex(zero, -1), complex(-1, zero)},
+	{complex(zero, 1), complex(zero, 2), complex(0.5, zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 1), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(zero, 1), complex(zero, 1), complex(1, zero)},
+	{complex(zero, 1), complex(-zero, -1), complex(-1, -zero)},
+	{complex(zero, 1), complex(zero, 2), complex(0.5, zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(1, zero), complex(zero, 1)},
+	{complex(zero, 1), complex(1, -zero), complex(zero, 1)},
+	{complex(zero, 1), complex(1, 1), complex(0.5, 0.5)},
+	{complex(zero, 1), complex(1, -1), complex(-0.5, 0.5)},
+	{complex(zero, 1), complex(1, 2), complex(0.4, 0.2)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(-1, zero), complex(-zero, -1)},
+	{complex(zero, 1), complex(-1, -zero), complex(-zero, -1)},
+	{complex(zero, 1), complex(-1, 1), complex(0.5, -0.5)},
+	{complex(zero, 1), complex(-1, -1), complex(-0.5, -0.5)},
+	{complex(zero, 1), complex(-1, 2), complex(0.4, -0.2)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(2, zero), complex(zero, 0.5)},
+	{complex(zero, 1), complex(2, -zero), complex(zero, 0.5)},
+	{complex(zero, 1), complex(2, 1), complex(0.2, 0.4)},
+	{complex(zero, 1), complex(2, -1), complex(-0.2, 0.4)},
+	{complex(zero, 1), complex(2, 2), complex(0.25, 0.25)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(inf, zero), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, -zero), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, 1), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, -1), complex(zero, zero)},
+	{complex(zero, 1), complex(inf, 2), complex(zero, zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 1), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(zero, 1), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(zero, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(zero, zero), complex(nan, -inf)},
+	{complex(-zero, -1), complex(zero, -zero), complex(nan, -inf)},
+	{complex(-zero, -1), complex(zero, 1), complex(-1, zero)},
+	{complex(-zero, -1), complex(zero, -1), complex(1, -zero)},
+	{complex(-zero, -1), complex(zero, 2), complex(-0.5, zero)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -1), complex(zero, zero), complex(nan, -inf)},
+	{complex(-zero, -1), complex(-zero, -zero), complex(nan, inf)},
+	{complex(-zero, -1), complex(zero, 1), complex(-1, zero)},
+	{complex(-zero, -1), complex(-zero, -1), complex(1, -zero)},
+	{complex(-zero, -1), complex(zero, 2), complex(-0.5, zero)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -1), complex(1, zero), complex(-zero, -1)},
+	{complex(-zero, -1), complex(1, -zero), complex(zero, -1)},
+	{complex(-zero, -1), complex(1, 1), complex(-0.5, -0.5)},
+	{complex(-zero, -1), complex(1, -1), complex(0.5, -0.5)},
+	{complex(-zero, -1), complex(1, 2), complex(-0.4, -0.2)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -1), complex(-1, zero), complex(-zero, 1)},
+	{complex(-zero, -1), complex(-1, -zero), complex(zero, 1)},
+	{complex(-zero, -1), complex(-1, 1), complex(-0.5, 0.5)},
+	{complex(-zero, -1), complex(-1, -1), complex(0.5, 0.5)},
+	{complex(-zero, -1), complex(-1, 2), complex(-0.4, 0.2)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -1), complex(2, zero), complex(-zero, -0.5)},
+	{complex(-zero, -1), complex(2, -zero), complex(zero, -0.5)},
+	{complex(-zero, -1), complex(2, 1), complex(-0.2, -0.4)},
+	{complex(-zero, -1), complex(2, -1), complex(0.2, -0.4)},
+	{complex(-zero, -1), complex(2, 2), complex(-0.25, -0.25)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -1), complex(inf, zero), complex(-zero, -zero)},
+	{complex(-zero, -1), complex(inf, -zero), complex(zero, -zero)},
+	{complex(-zero, -1), complex(inf, 1), complex(-zero, -zero)},
+	{complex(-zero, -1), complex(inf, -1), complex(zero, -zero)},
+	{complex(-zero, -1), complex(inf, 2), complex(-zero, -zero)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(-zero, -1), complex(-inf, zero), complex(-zero, zero)},
+	{complex(-zero, -1), complex(-inf, -zero), complex(zero, zero)},
+	{complex(-zero, -1), complex(-inf, 1), complex(-zero, zero)},
+	{complex(-zero, -1), complex(-inf, -1), complex(zero, zero)},
+	{complex(-zero, -1), complex(-inf, 2), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-zero, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-zero, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(zero, 2), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 2), complex(zero, -zero), complex(nan, inf)},
+	{complex(zero, 2), complex(zero, 1), complex(2, zero)},
+	{complex(zero, 2), complex(zero, -1), complex(-2, zero)},
+	{complex(zero, 2), complex(zero, 2), complex(1, zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(zero, zero), complex(nan, inf)},
+	{complex(zero, 2), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(zero, 2), complex(zero, 1), complex(2, zero)},
+	{complex(zero, 2), complex(-zero, -1), complex(-2, -zero)},
+	{complex(zero, 2), complex(zero, 2), complex(1, zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(1, zero), complex(zero, 2)},
+	{complex(zero, 2), complex(1, -zero), complex(zero, 2)},
+	{complex(zero, 2), complex(1, 1), complex(1, 1)},
+	{complex(zero, 2), complex(1, -1), complex(-1, 1)},
+	{complex(zero, 2), complex(1, 2), complex(0.8, 0.4)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(-1, zero), complex(-zero, -2)},
+	{complex(zero, 2), complex(-1, -zero), complex(-zero, -2)},
+	{complex(zero, 2), complex(-1, 1), complex(1, -1)},
+	{complex(zero, 2), complex(-1, -1), complex(-1, -1)},
+	{complex(zero, 2), complex(-1, 2), complex(0.8, -0.4)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(2, zero), complex(zero, 1)},
+	{complex(zero, 2), complex(2, -zero), complex(zero, 1)},
+	{complex(zero, 2), complex(2, 1), complex(0.4, 0.8)},
+	{complex(zero, 2), complex(2, -1), complex(-0.4, 0.8)},
+	{complex(zero, 2), complex(2, 2), complex(0.5, 0.5)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(inf, zero), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, -zero), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, 1), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, -1), complex(zero, zero)},
+	{complex(zero, 2), complex(inf, 2), complex(zero, zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(zero, 2), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(zero, 2), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(zero, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(zero, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(zero, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(1, zero), complex(zero, zero), complex(inf, nan)},
+	{complex(1, zero), complex(zero, -zero), complex(inf, nan)},
+	{complex(1, zero), complex(zero, 1), complex(zero, -1)},
+	{complex(1, zero), complex(zero, -1), complex(-zero, 1)},
+	{complex(1, zero), complex(zero, 2), complex(zero, -0.5)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, zero), complex(zero, zero), complex(inf, nan)},
+	{complex(1, zero), complex(-zero, -zero), complex(-inf, nan)},
+	{complex(1, zero), complex(zero, 1), complex(zero, -1)},
+	{complex(1, zero), complex(-zero, -1), complex(-zero, 1)},
+	{complex(1, zero), complex(zero, 2), complex(zero, -0.5)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, zero), complex(1, zero), complex(1, zero)},
+	{complex(1, zero), complex(1, -zero), complex(1, zero)},
+	{complex(1, zero), complex(1, 1), complex(0.5, -0.5)},
+	{complex(1, zero), complex(1, -1), complex(0.5, 0.5)},
+	{complex(1, zero), complex(1, 2), complex(0.2, -0.4)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, zero), complex(-1, zero), complex(-1, -zero)},
+	{complex(1, zero), complex(-1, -zero), complex(-1, -zero)},
+	{complex(1, zero), complex(-1, 1), complex(-0.5, -0.5)},
+	{complex(1, zero), complex(-1, -1), complex(-0.5, 0.5)},
+	{complex(1, zero), complex(-1, 2), complex(-0.2, -0.4)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, zero), complex(2, zero), complex(0.5, zero)},
+	{complex(1, zero), complex(2, -zero), complex(0.5, zero)},
+	{complex(1, zero), complex(2, 1), complex(0.4, -0.2)},
+	{complex(1, zero), complex(2, -1), complex(0.4, 0.2)},
+	{complex(1, zero), complex(2, 2), complex(0.25, -0.25)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(1, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(1, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(1, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(1, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, zero), complex(inf, zero), complex(zero, zero)},
+	{complex(1, zero), complex(inf, -zero), complex(zero, zero)},
+	{complex(1, zero), complex(inf, 1), complex(zero, zero)},
+	{complex(1, zero), complex(inf, -1), complex(zero, zero)},
+	{complex(1, zero), complex(inf, 2), complex(zero, zero)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, zero), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(1, zero), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(1, zero), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(1, zero), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(1, zero), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, -zero), complex(zero, zero), complex(inf, nan)},
+	{complex(1, -zero), complex(zero, -zero), complex(inf, nan)},
+	{complex(1, -zero), complex(zero, 1), complex(zero, -1)},
+	{complex(1, -zero), complex(zero, -1), complex(zero, 1)},
+	{complex(1, -zero), complex(zero, 2), complex(zero, -0.5)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -zero), complex(zero, zero), complex(inf, nan)},
+	{complex(1, -zero), complex(-zero, -zero), complex(-inf, nan)},
+	{complex(1, -zero), complex(zero, 1), complex(zero, -1)},
+	{complex(1, -zero), complex(-zero, -1), complex(-zero, 1)},
+	{complex(1, -zero), complex(zero, 2), complex(zero, -0.5)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -zero), complex(1, zero), complex(1, -zero)},
+	{complex(1, -zero), complex(1, -zero), complex(1, zero)},
+	{complex(1, -zero), complex(1, 1), complex(0.5, -0.5)},
+	{complex(1, -zero), complex(1, -1), complex(0.5, 0.5)},
+	{complex(1, -zero), complex(1, 2), complex(0.2, -0.4)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -zero), complex(-1, zero), complex(-1, -zero)},
+	{complex(1, -zero), complex(-1, -zero), complex(-1, zero)},
+	{complex(1, -zero), complex(-1, 1), complex(-0.5, -0.5)},
+	{complex(1, -zero), complex(-1, -1), complex(-0.5, 0.5)},
+	{complex(1, -zero), complex(-1, 2), complex(-0.2, -0.4)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -zero), complex(2, zero), complex(0.5, -zero)},
+	{complex(1, -zero), complex(2, -zero), complex(0.5, zero)},
+	{complex(1, -zero), complex(2, 1), complex(0.4, -0.2)},
+	{complex(1, -zero), complex(2, -1), complex(0.4, 0.2)},
+	{complex(1, -zero), complex(2, 2), complex(0.25, -0.25)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -zero), complex(inf, zero), complex(zero, -zero)},
+	{complex(1, -zero), complex(inf, -zero), complex(zero, zero)},
+	{complex(1, -zero), complex(inf, 1), complex(zero, -zero)},
+	{complex(1, -zero), complex(inf, -1), complex(zero, zero)},
+	{complex(1, -zero), complex(inf, 2), complex(zero, -zero)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -zero), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(1, -zero), complex(-inf, -zero), complex(-zero, zero)},
+	{complex(1, -zero), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(1, -zero), complex(-inf, -1), complex(-zero, zero)},
+	{complex(1, -zero), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, 1), complex(zero, zero), complex(inf, inf)},
+	{complex(1, 1), complex(zero, -zero), complex(inf, inf)},
+	{complex(1, 1), complex(zero, 1), complex(1, -1)},
+	{complex(1, 1), complex(zero, -1), complex(-1, 1)},
+	{complex(1, 1), complex(zero, 2), complex(0.5, -0.5)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 1), complex(zero, zero), complex(inf, inf)},
+	{complex(1, 1), complex(-zero, -zero), complex(-inf, -inf)},
+	{complex(1, 1), complex(zero, 1), complex(1, -1)},
+	{complex(1, 1), complex(-zero, -1), complex(-1, 1)},
+	{complex(1, 1), complex(zero, 2), complex(0.5, -0.5)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 1), complex(1, zero), complex(1, 1)},
+	{complex(1, 1), complex(1, -zero), complex(1, 1)},
+	{complex(1, 1), complex(1, 1), complex(1, zero)},
+	{complex(1, 1), complex(1, -1), complex(zero, 1)},
+	{complex(1, 1), complex(1, 2), complex(0.6, -0.2)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 1), complex(-1, zero), complex(-1, -1)},
+	{complex(1, 1), complex(-1, -zero), complex(-1, -1)},
+	{complex(1, 1), complex(-1, 1), complex(-zero, -1)},
+	{complex(1, 1), complex(-1, -1), complex(-1, -zero)},
+	{complex(1, 1), complex(-1, 2), complex(0.2, -0.6)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 1), complex(2, zero), complex(0.5, 0.5)},
+	{complex(1, 1), complex(2, -zero), complex(0.5, 0.5)},
+	{complex(1, 1), complex(2, 1), complex(0.6, 0.2)},
+	{complex(1, 1), complex(2, -1), complex(0.2, 0.6)},
+	{complex(1, 1), complex(2, 2), complex(0.5, zero)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(1, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(1, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(1, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(1, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 1), complex(inf, zero), complex(zero, zero)},
+	{complex(1, 1), complex(inf, -zero), complex(zero, zero)},
+	{complex(1, 1), complex(inf, 1), complex(zero, zero)},
+	{complex(1, 1), complex(inf, -1), complex(zero, zero)},
+	{complex(1, 1), complex(inf, 2), complex(zero, zero)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 1), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(1, 1), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(1, 1), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(1, 1), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(1, 1), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, -1), complex(zero, zero), complex(inf, -inf)},
+	{complex(1, -1), complex(zero, -zero), complex(inf, -inf)},
+	{complex(1, -1), complex(zero, 1), complex(-1, -1)},
+	{complex(1, -1), complex(zero, -1), complex(1, 1)},
+	{complex(1, -1), complex(zero, 2), complex(-0.5, -0.5)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -1), complex(zero, zero), complex(inf, -inf)},
+	{complex(1, -1), complex(-zero, -zero), complex(-inf, inf)},
+	{complex(1, -1), complex(zero, 1), complex(-1, -1)},
+	{complex(1, -1), complex(-zero, -1), complex(1, 1)},
+	{complex(1, -1), complex(zero, 2), complex(-0.5, -0.5)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -1), complex(1, zero), complex(1, -1)},
+	{complex(1, -1), complex(1, -zero), complex(1, -1)},
+	{complex(1, -1), complex(1, 1), complex(zero, -1)},
+	{complex(1, -1), complex(1, -1), complex(1, zero)},
+	{complex(1, -1), complex(1, 2), complex(-0.2, -0.6)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -1), complex(-1, zero), complex(-1, 1)},
+	{complex(1, -1), complex(-1, -zero), complex(-1, 1)},
+	{complex(1, -1), complex(-1, 1), complex(-1, -zero)},
+	{complex(1, -1), complex(-1, -1), complex(-zero, 1)},
+	{complex(1, -1), complex(-1, 2), complex(-0.6, -0.2)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -1), complex(2, zero), complex(0.5, -0.5)},
+	{complex(1, -1), complex(2, -zero), complex(0.5, -0.5)},
+	{complex(1, -1), complex(2, 1), complex(0.2, -0.6)},
+	{complex(1, -1), complex(2, -1), complex(0.6, -0.2)},
+	{complex(1, -1), complex(2, 2), complex(zero, -0.5)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(1, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(1, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(1, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(1, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -1), complex(inf, zero), complex(zero, -zero)},
+	{complex(1, -1), complex(inf, -zero), complex(zero, -zero)},
+	{complex(1, -1), complex(inf, 1), complex(zero, -zero)},
+	{complex(1, -1), complex(inf, -1), complex(zero, -zero)},
+	{complex(1, -1), complex(inf, 2), complex(zero, -zero)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, -1), complex(-inf, zero), complex(-zero, zero)},
+	{complex(1, -1), complex(-inf, -zero), complex(-zero, zero)},
+	{complex(1, -1), complex(-inf, 1), complex(-zero, zero)},
+	{complex(1, -1), complex(-inf, -1), complex(-zero, zero)},
+	{complex(1, -1), complex(-inf, 2), complex(-zero, zero)},
+	{complex(1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(1, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(1, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(1, 2), complex(zero, zero), complex(inf, inf)},
+	{complex(1, 2), complex(zero, -zero), complex(inf, inf)},
+	{complex(1, 2), complex(zero, 1), complex(2, -1)},
+	{complex(1, 2), complex(zero, -1), complex(-2, 1)},
+	{complex(1, 2), complex(zero, 2), complex(1, -0.5)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 2), complex(zero, zero), complex(inf, inf)},
+	{complex(1, 2), complex(-zero, -zero), complex(-inf, -inf)},
+	{complex(1, 2), complex(zero, 1), complex(2, -1)},
+	{complex(1, 2), complex(-zero, -1), complex(-2, 1)},
+	{complex(1, 2), complex(zero, 2), complex(1, -0.5)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 2), complex(1, zero), complex(1, 2)},
+	{complex(1, 2), complex(1, -zero), complex(1, 2)},
+	{complex(1, 2), complex(1, 1), complex(1.5, 0.5)},
+	{complex(1, 2), complex(1, -1), complex(-0.5, 1.5)},
+	{complex(1, 2), complex(1, 2), complex(1, zero)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 2), complex(-1, zero), complex(-1, -2)},
+	{complex(1, 2), complex(-1, -zero), complex(-1, -2)},
+	{complex(1, 2), complex(-1, 1), complex(0.5, -1.5)},
+	{complex(1, 2), complex(-1, -1), complex(-1.5, -0.5)},
+	{complex(1, 2), complex(-1, 2), complex(0.6, -0.8)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 2), complex(2, zero), complex(0.5, 1)},
+	{complex(1, 2), complex(2, -zero), complex(0.5, 1)},
+	{complex(1, 2), complex(2, 1), complex(0.8, 0.6)},
+	{complex(1, 2), complex(2, -1), complex(zero, 1)},
+	{complex(1, 2), complex(2, 2), complex(0.75, 0.25)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(1, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(1, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(1, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(1, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 2), complex(inf, zero), complex(zero, zero)},
+	{complex(1, 2), complex(inf, -zero), complex(zero, zero)},
+	{complex(1, 2), complex(inf, 1), complex(zero, zero)},
+	{complex(1, 2), complex(inf, -1), complex(zero, zero)},
+	{complex(1, 2), complex(inf, 2), complex(zero, zero)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(1, 2), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(1, 2), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(1, 2), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(1, 2), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(1, 2), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(1, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(1, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(-1, zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-1, zero), complex(zero, -zero), complex(-inf, nan)},
+	{complex(-1, zero), complex(zero, 1), complex(zero, 1)},
+	{complex(-1, zero), complex(zero, -1), complex(-zero, -1)},
+	{complex(-1, zero), complex(zero, 2), complex(zero, 0.5)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-1, zero), complex(-zero, -zero), complex(inf, nan)},
+	{complex(-1, zero), complex(zero, 1), complex(zero, 1)},
+	{complex(-1, zero), complex(-zero, -1), complex(-zero, -1)},
+	{complex(-1, zero), complex(zero, 2), complex(zero, 0.5)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, zero), complex(1, zero), complex(-1, zero)},
+	{complex(-1, zero), complex(1, -zero), complex(-1, zero)},
+	{complex(-1, zero), complex(1, 1), complex(-0.5, 0.5)},
+	{complex(-1, zero), complex(1, -1), complex(-0.5, -0.5)},
+	{complex(-1, zero), complex(1, 2), complex(-0.2, 0.4)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, zero), complex(-1, zero), complex(1, -zero)},
+	{complex(-1, zero), complex(-1, -zero), complex(1, -zero)},
+	{complex(-1, zero), complex(-1, 1), complex(0.5, 0.5)},
+	{complex(-1, zero), complex(-1, -1), complex(0.5, -0.5)},
+	{complex(-1, zero), complex(-1, 2), complex(0.2, 0.4)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, zero), complex(2, zero), complex(-0.5, zero)},
+	{complex(-1, zero), complex(2, -zero), complex(-0.5, zero)},
+	{complex(-1, zero), complex(2, 1), complex(-0.4, 0.2)},
+	{complex(-1, zero), complex(2, -1), complex(-0.4, -0.2)},
+	{complex(-1, zero), complex(2, 2), complex(-0.25, 0.25)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, zero), complex(inf, zero), complex(-zero, zero)},
+	{complex(-1, zero), complex(inf, -zero), complex(-zero, zero)},
+	{complex(-1, zero), complex(inf, 1), complex(-zero, zero)},
+	{complex(-1, zero), complex(inf, -1), complex(-zero, zero)},
+	{complex(-1, zero), complex(inf, 2), complex(-zero, zero)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, zero), complex(-inf, zero), complex(zero, -zero)},
+	{complex(-1, zero), complex(-inf, -zero), complex(zero, -zero)},
+	{complex(-1, zero), complex(-inf, 1), complex(zero, -zero)},
+	{complex(-1, zero), complex(-inf, -1), complex(zero, -zero)},
+	{complex(-1, zero), complex(-inf, 2), complex(zero, -zero)},
+	{complex(-1, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-1, -zero), complex(zero, -zero), complex(-inf, nan)},
+	{complex(-1, -zero), complex(zero, 1), complex(-zero, 1)},
+	{complex(-1, -zero), complex(zero, -1), complex(-zero, -1)},
+	{complex(-1, -zero), complex(zero, 2), complex(-zero, 0.5)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-1, -zero), complex(-zero, -zero), complex(inf, nan)},
+	{complex(-1, -zero), complex(zero, 1), complex(-zero, 1)},
+	{complex(-1, -zero), complex(-zero, -1), complex(zero, -1)},
+	{complex(-1, -zero), complex(zero, 2), complex(-zero, 0.5)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(1, zero), complex(-1, zero)},
+	{complex(-1, -zero), complex(1, -zero), complex(-1, -zero)},
+	{complex(-1, -zero), complex(1, 1), complex(-0.5, 0.5)},
+	{complex(-1, -zero), complex(1, -1), complex(-0.5, -0.5)},
+	{complex(-1, -zero), complex(1, 2), complex(-0.2, 0.4)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(-1, zero), complex(1, zero)},
+	{complex(-1, -zero), complex(-1, -zero), complex(1, -zero)},
+	{complex(-1, -zero), complex(-1, 1), complex(0.5, 0.5)},
+	{complex(-1, -zero), complex(-1, -1), complex(0.5, -0.5)},
+	{complex(-1, -zero), complex(-1, 2), complex(0.2, 0.4)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(2, zero), complex(-0.5, zero)},
+	{complex(-1, -zero), complex(2, -zero), complex(-0.5, -zero)},
+	{complex(-1, -zero), complex(2, 1), complex(-0.4, 0.2)},
+	{complex(-1, -zero), complex(2, -1), complex(-0.4, -0.2)},
+	{complex(-1, -zero), complex(2, 2), complex(-0.25, 0.25)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(inf, zero), complex(-zero, zero)},
+	{complex(-1, -zero), complex(inf, -zero), complex(-zero, -zero)},
+	{complex(-1, -zero), complex(inf, 1), complex(-zero, zero)},
+	{complex(-1, -zero), complex(inf, -1), complex(-zero, -zero)},
+	{complex(-1, -zero), complex(inf, 2), complex(-zero, zero)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -zero), complex(-inf, zero), complex(zero, zero)},
+	{complex(-1, -zero), complex(-inf, -zero), complex(zero, -zero)},
+	{complex(-1, -zero), complex(-inf, 1), complex(zero, zero)},
+	{complex(-1, -zero), complex(-inf, -1), complex(zero, -zero)},
+	{complex(-1, -zero), complex(-inf, 2), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -zero), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, 1), complex(zero, zero), complex(-inf, inf)},
+	{complex(-1, 1), complex(zero, -zero), complex(-inf, inf)},
+	{complex(-1, 1), complex(zero, 1), complex(1, 1)},
+	{complex(-1, 1), complex(zero, -1), complex(-1, -1)},
+	{complex(-1, 1), complex(zero, 2), complex(0.5, 0.5)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 1), complex(zero, zero), complex(-inf, inf)},
+	{complex(-1, 1), complex(-zero, -zero), complex(inf, -inf)},
+	{complex(-1, 1), complex(zero, 1), complex(1, 1)},
+	{complex(-1, 1), complex(-zero, -1), complex(-1, -1)},
+	{complex(-1, 1), complex(zero, 2), complex(0.5, 0.5)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 1), complex(1, zero), complex(-1, 1)},
+	{complex(-1, 1), complex(1, -zero), complex(-1, 1)},
+	{complex(-1, 1), complex(1, 1), complex(zero, 1)},
+	{complex(-1, 1), complex(1, -1), complex(-1, zero)},
+	{complex(-1, 1), complex(1, 2), complex(0.2, 0.6)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 1), complex(-1, zero), complex(1, -1)},
+	{complex(-1, 1), complex(-1, -zero), complex(1, -1)},
+	{complex(-1, 1), complex(-1, 1), complex(1, -zero)},
+	{complex(-1, 1), complex(-1, -1), complex(-zero, -1)},
+	{complex(-1, 1), complex(-1, 2), complex(0.6, 0.2)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 1), complex(2, zero), complex(-0.5, 0.5)},
+	{complex(-1, 1), complex(2, -zero), complex(-0.5, 0.5)},
+	{complex(-1, 1), complex(2, 1), complex(-0.2, 0.6)},
+	{complex(-1, 1), complex(2, -1), complex(-0.6, 0.2)},
+	{complex(-1, 1), complex(2, 2), complex(zero, 0.5)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 1), complex(inf, zero), complex(-zero, zero)},
+	{complex(-1, 1), complex(inf, -zero), complex(-zero, zero)},
+	{complex(-1, 1), complex(inf, 1), complex(-zero, zero)},
+	{complex(-1, 1), complex(inf, -1), complex(-zero, zero)},
+	{complex(-1, 1), complex(inf, 2), complex(-zero, zero)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 1), complex(-inf, zero), complex(zero, -zero)},
+	{complex(-1, 1), complex(-inf, -zero), complex(zero, -zero)},
+	{complex(-1, 1), complex(-inf, 1), complex(zero, -zero)},
+	{complex(-1, 1), complex(-inf, -1), complex(zero, -zero)},
+	{complex(-1, 1), complex(-inf, 2), complex(zero, -zero)},
+	{complex(-1, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 1), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, -1), complex(zero, zero), complex(-inf, -inf)},
+	{complex(-1, -1), complex(zero, -zero), complex(-inf, -inf)},
+	{complex(-1, -1), complex(zero, 1), complex(-1, 1)},
+	{complex(-1, -1), complex(zero, -1), complex(1, -1)},
+	{complex(-1, -1), complex(zero, 2), complex(-0.5, 0.5)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -1), complex(zero, zero), complex(-inf, -inf)},
+	{complex(-1, -1), complex(-zero, -zero), complex(inf, inf)},
+	{complex(-1, -1), complex(zero, 1), complex(-1, 1)},
+	{complex(-1, -1), complex(-zero, -1), complex(1, -1)},
+	{complex(-1, -1), complex(zero, 2), complex(-0.5, 0.5)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -1), complex(1, zero), complex(-1, -1)},
+	{complex(-1, -1), complex(1, -zero), complex(-1, -1)},
+	{complex(-1, -1), complex(1, 1), complex(-1, zero)},
+	{complex(-1, -1), complex(1, -1), complex(zero, -1)},
+	{complex(-1, -1), complex(1, 2), complex(-0.6, 0.2)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -1), complex(-1, zero), complex(1, 1)},
+	{complex(-1, -1), complex(-1, -zero), complex(1, 1)},
+	{complex(-1, -1), complex(-1, 1), complex(-zero, 1)},
+	{complex(-1, -1), complex(-1, -1), complex(1, -zero)},
+	{complex(-1, -1), complex(-1, 2), complex(-0.2, 0.6)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -1), complex(2, zero), complex(-0.5, -0.5)},
+	{complex(-1, -1), complex(2, -zero), complex(-0.5, -0.5)},
+	{complex(-1, -1), complex(2, 1), complex(-0.6, -0.2)},
+	{complex(-1, -1), complex(2, -1), complex(-0.2, -0.6)},
+	{complex(-1, -1), complex(2, 2), complex(-0.5, zero)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -1), complex(inf, zero), complex(-zero, -zero)},
+	{complex(-1, -1), complex(inf, -zero), complex(-zero, -zero)},
+	{complex(-1, -1), complex(inf, 1), complex(-zero, -zero)},
+	{complex(-1, -1), complex(inf, -1), complex(-zero, -zero)},
+	{complex(-1, -1), complex(inf, 2), complex(-zero, -zero)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, -1), complex(-inf, zero), complex(zero, zero)},
+	{complex(-1, -1), complex(-inf, -zero), complex(zero, zero)},
+	{complex(-1, -1), complex(-inf, 1), complex(zero, zero)},
+	{complex(-1, -1), complex(-inf, -1), complex(zero, zero)},
+	{complex(-1, -1), complex(-inf, 2), complex(zero, zero)},
+	{complex(-1, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, -1), complex(nan, inf), complex(-zero, zero)},
+	{complex(-1, -1), complex(nan, -inf), complex(zero, -zero)},
+	{complex(-1, 2), complex(zero, zero), complex(-inf, inf)},
+	{complex(-1, 2), complex(zero, -zero), complex(-inf, inf)},
+	{complex(-1, 2), complex(zero, 1), complex(2, 1)},
+	{complex(-1, 2), complex(zero, -1), complex(-2, -1)},
+	{complex(-1, 2), complex(zero, 2), complex(1, 0.5)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 2), complex(zero, zero), complex(-inf, inf)},
+	{complex(-1, 2), complex(-zero, -zero), complex(inf, -inf)},
+	{complex(-1, 2), complex(zero, 1), complex(2, 1)},
+	{complex(-1, 2), complex(-zero, -1), complex(-2, -1)},
+	{complex(-1, 2), complex(zero, 2), complex(1, 0.5)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 2), complex(1, zero), complex(-1, 2)},
+	{complex(-1, 2), complex(1, -zero), complex(-1, 2)},
+	{complex(-1, 2), complex(1, 1), complex(0.5, 1.5)},
+	{complex(-1, 2), complex(1, -1), complex(-1.5, 0.5)},
+	{complex(-1, 2), complex(1, 2), complex(0.6, 0.8)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 2), complex(-1, zero), complex(1, -2)},
+	{complex(-1, 2), complex(-1, -zero), complex(1, -2)},
+	{complex(-1, 2), complex(-1, 1), complex(1.5, -0.5)},
+	{complex(-1, 2), complex(-1, -1), complex(-0.5, -1.5)},
+	{complex(-1, 2), complex(-1, 2), complex(1, zero)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 2), complex(2, zero), complex(-0.5, 1)},
+	{complex(-1, 2), complex(2, -zero), complex(-0.5, 1)},
+	{complex(-1, 2), complex(2, 1), complex(zero, 1)},
+	{complex(-1, 2), complex(2, -1), complex(-0.8, 0.6)},
+	{complex(-1, 2), complex(2, 2), complex(0.25, 0.75)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 2), complex(inf, zero), complex(-zero, zero)},
+	{complex(-1, 2), complex(inf, -zero), complex(-zero, zero)},
+	{complex(-1, 2), complex(inf, 1), complex(-zero, zero)},
+	{complex(-1, 2), complex(inf, -1), complex(-zero, zero)},
+	{complex(-1, 2), complex(inf, 2), complex(-zero, zero)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(-1, 2), complex(-inf, zero), complex(zero, -zero)},
+	{complex(-1, 2), complex(-inf, -zero), complex(zero, -zero)},
+	{complex(-1, 2), complex(-inf, 1), complex(zero, -zero)},
+	{complex(-1, 2), complex(-inf, -1), complex(zero, -zero)},
+	{complex(-1, 2), complex(-inf, 2), complex(zero, -zero)},
+	{complex(-1, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-1, 2), complex(nan, inf), complex(zero, zero)},
+	{complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(2, zero), complex(zero, zero), complex(inf, nan)},
+	{complex(2, zero), complex(zero, -zero), complex(inf, nan)},
+	{complex(2, zero), complex(zero, 1), complex(zero, -2)},
+	{complex(2, zero), complex(zero, -1), complex(-zero, 2)},
+	{complex(2, zero), complex(zero, 2), complex(zero, -1)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, zero), complex(zero, zero), complex(inf, nan)},
+	{complex(2, zero), complex(-zero, -zero), complex(-inf, nan)},
+	{complex(2, zero), complex(zero, 1), complex(zero, -2)},
+	{complex(2, zero), complex(-zero, -1), complex(-zero, 2)},
+	{complex(2, zero), complex(zero, 2), complex(zero, -1)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, zero), complex(1, zero), complex(2, zero)},
+	{complex(2, zero), complex(1, -zero), complex(2, zero)},
+	{complex(2, zero), complex(1, 1), complex(1, -1)},
+	{complex(2, zero), complex(1, -1), complex(1, 1)},
+	{complex(2, zero), complex(1, 2), complex(0.4, -0.8)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, zero), complex(-1, zero), complex(-2, -zero)},
+	{complex(2, zero), complex(-1, -zero), complex(-2, -zero)},
+	{complex(2, zero), complex(-1, 1), complex(-1, -1)},
+	{complex(2, zero), complex(-1, -1), complex(-1, 1)},
+	{complex(2, zero), complex(-1, 2), complex(-0.4, -0.8)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, zero), complex(2, zero), complex(1, zero)},
+	{complex(2, zero), complex(2, -zero), complex(1, zero)},
+	{complex(2, zero), complex(2, 1), complex(0.8, -0.4)},
+	{complex(2, zero), complex(2, -1), complex(0.8, 0.4)},
+	{complex(2, zero), complex(2, 2), complex(0.5, -0.5)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(2, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(2, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(2, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(2, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, zero), complex(inf, zero), complex(zero, zero)},
+	{complex(2, zero), complex(inf, -zero), complex(zero, zero)},
+	{complex(2, zero), complex(inf, 1), complex(zero, zero)},
+	{complex(2, zero), complex(inf, -1), complex(zero, zero)},
+	{complex(2, zero), complex(inf, 2), complex(zero, zero)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, zero), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(2, zero), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(2, zero), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(2, zero), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(2, zero), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(2, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, zero), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, zero), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, -zero), complex(zero, zero), complex(inf, nan)},
+	{complex(2, -zero), complex(zero, -zero), complex(inf, nan)},
+	{complex(2, -zero), complex(zero, 1), complex(zero, -2)},
+	{complex(2, -zero), complex(zero, -1), complex(zero, 2)},
+	{complex(2, -zero), complex(zero, 2), complex(zero, -1)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -zero), complex(zero, zero), complex(inf, nan)},
+	{complex(2, -zero), complex(-zero, -zero), complex(-inf, nan)},
+	{complex(2, -zero), complex(zero, 1), complex(zero, -2)},
+	{complex(2, -zero), complex(-zero, -1), complex(-zero, 2)},
+	{complex(2, -zero), complex(zero, 2), complex(zero, -1)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -zero), complex(1, zero), complex(2, -zero)},
+	{complex(2, -zero), complex(1, -zero), complex(2, zero)},
+	{complex(2, -zero), complex(1, 1), complex(1, -1)},
+	{complex(2, -zero), complex(1, -1), complex(1, 1)},
+	{complex(2, -zero), complex(1, 2), complex(0.4, -0.8)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -zero), complex(-1, zero), complex(-2, -zero)},
+	{complex(2, -zero), complex(-1, -zero), complex(-2, zero)},
+	{complex(2, -zero), complex(-1, 1), complex(-1, -1)},
+	{complex(2, -zero), complex(-1, -1), complex(-1, 1)},
+	{complex(2, -zero), complex(-1, 2), complex(-0.4, -0.8)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -zero), complex(2, zero), complex(1, -zero)},
+	{complex(2, -zero), complex(2, -zero), complex(1, zero)},
+	{complex(2, -zero), complex(2, 1), complex(0.8, -0.4)},
+	{complex(2, -zero), complex(2, -1), complex(0.8, 0.4)},
+	{complex(2, -zero), complex(2, 2), complex(0.5, -0.5)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -zero), complex(inf, zero), complex(zero, -zero)},
+	{complex(2, -zero), complex(inf, -zero), complex(zero, zero)},
+	{complex(2, -zero), complex(inf, 1), complex(zero, -zero)},
+	{complex(2, -zero), complex(inf, -1), complex(zero, zero)},
+	{complex(2, -zero), complex(inf, 2), complex(zero, -zero)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -zero), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(2, -zero), complex(-inf, -zero), complex(-zero, zero)},
+	{complex(2, -zero), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(2, -zero), complex(-inf, -1), complex(-zero, zero)},
+	{complex(2, -zero), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -zero), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -zero), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, 1), complex(zero, zero), complex(inf, inf)},
+	{complex(2, 1), complex(zero, -zero), complex(inf, inf)},
+	{complex(2, 1), complex(zero, 1), complex(1, -2)},
+	{complex(2, 1), complex(zero, -1), complex(-1, 2)},
+	{complex(2, 1), complex(zero, 2), complex(0.5, -1)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 1), complex(zero, zero), complex(inf, inf)},
+	{complex(2, 1), complex(-zero, -zero), complex(-inf, -inf)},
+	{complex(2, 1), complex(zero, 1), complex(1, -2)},
+	{complex(2, 1), complex(-zero, -1), complex(-1, 2)},
+	{complex(2, 1), complex(zero, 2), complex(0.5, -1)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 1), complex(1, zero), complex(2, 1)},
+	{complex(2, 1), complex(1, -zero), complex(2, 1)},
+	{complex(2, 1), complex(1, 1), complex(1.5, -0.5)},
+	{complex(2, 1), complex(1, -1), complex(0.5, 1.5)},
+	{complex(2, 1), complex(1, 2), complex(0.8, -0.6)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 1), complex(-1, zero), complex(-2, -1)},
+	{complex(2, 1), complex(-1, -zero), complex(-2, -1)},
+	{complex(2, 1), complex(-1, 1), complex(-0.5, -1.5)},
+	{complex(2, 1), complex(-1, -1), complex(-1.5, 0.5)},
+	{complex(2, 1), complex(-1, 2), complex(zero, -1)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 1), complex(2, zero), complex(1, 0.5)},
+	{complex(2, 1), complex(2, -zero), complex(1, 0.5)},
+	{complex(2, 1), complex(2, 1), complex(1, zero)},
+	{complex(2, 1), complex(2, -1), complex(0.6, 0.8)},
+	{complex(2, 1), complex(2, 2), complex(0.75, -0.25)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(2, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(2, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(2, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(2, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 1), complex(inf, zero), complex(zero, zero)},
+	{complex(2, 1), complex(inf, -zero), complex(zero, zero)},
+	{complex(2, 1), complex(inf, 1), complex(zero, zero)},
+	{complex(2, 1), complex(inf, -1), complex(zero, zero)},
+	{complex(2, 1), complex(inf, 2), complex(zero, zero)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 1), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(2, 1), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(2, 1), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(2, 1), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(2, 1), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(2, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 1), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 1), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, -1), complex(zero, zero), complex(inf, -inf)},
+	{complex(2, -1), complex(zero, -zero), complex(inf, -inf)},
+	{complex(2, -1), complex(zero, 1), complex(-1, -2)},
+	{complex(2, -1), complex(zero, -1), complex(1, 2)},
+	{complex(2, -1), complex(zero, 2), complex(-0.5, -1)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -1), complex(zero, zero), complex(inf, -inf)},
+	{complex(2, -1), complex(-zero, -zero), complex(-inf, inf)},
+	{complex(2, -1), complex(zero, 1), complex(-1, -2)},
+	{complex(2, -1), complex(-zero, -1), complex(1, 2)},
+	{complex(2, -1), complex(zero, 2), complex(-0.5, -1)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -1), complex(1, zero), complex(2, -1)},
+	{complex(2, -1), complex(1, -zero), complex(2, -1)},
+	{complex(2, -1), complex(1, 1), complex(0.5, -1.5)},
+	{complex(2, -1), complex(1, -1), complex(1.5, 0.5)},
+	{complex(2, -1), complex(1, 2), complex(zero, -1)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -1), complex(-1, zero), complex(-2, 1)},
+	{complex(2, -1), complex(-1, -zero), complex(-2, 1)},
+	{complex(2, -1), complex(-1, 1), complex(-1.5, -0.5)},
+	{complex(2, -1), complex(-1, -1), complex(-0.5, 1.5)},
+	{complex(2, -1), complex(-1, 2), complex(-0.8, -0.6)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -1), complex(2, zero), complex(1, -0.5)},
+	{complex(2, -1), complex(2, -zero), complex(1, -0.5)},
+	{complex(2, -1), complex(2, 1), complex(0.6, -0.8)},
+	{complex(2, -1), complex(2, -1), complex(1, zero)},
+	{complex(2, -1), complex(2, 2), complex(0.25, -0.75)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(2, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(2, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(2, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(2, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -1), complex(inf, zero), complex(zero, -zero)},
+	{complex(2, -1), complex(inf, -zero), complex(zero, -zero)},
+	{complex(2, -1), complex(inf, 1), complex(zero, -zero)},
+	{complex(2, -1), complex(inf, -1), complex(zero, -zero)},
+	{complex(2, -1), complex(inf, 2), complex(zero, -zero)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, -1), complex(-inf, zero), complex(-zero, zero)},
+	{complex(2, -1), complex(-inf, -zero), complex(-zero, zero)},
+	{complex(2, -1), complex(-inf, 1), complex(-zero, zero)},
+	{complex(2, -1), complex(-inf, -1), complex(-zero, zero)},
+	{complex(2, -1), complex(-inf, 2), complex(-zero, zero)},
+	{complex(2, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(2, -1), complex(nan, inf), complex(-zero, -zero)},
+	{complex(2, -1), complex(nan, -inf), complex(zero, zero)},
+	{complex(2, 2), complex(zero, zero), complex(inf, inf)},
+	{complex(2, 2), complex(zero, -zero), complex(inf, inf)},
+	{complex(2, 2), complex(zero, 1), complex(2, -2)},
+	{complex(2, 2), complex(zero, -1), complex(-2, 2)},
+	{complex(2, 2), complex(zero, 2), complex(1, -1)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 2), complex(zero, zero), complex(inf, inf)},
+	{complex(2, 2), complex(-zero, -zero), complex(-inf, -inf)},
+	{complex(2, 2), complex(zero, 1), complex(2, -2)},
+	{complex(2, 2), complex(-zero, -1), complex(-2, 2)},
+	{complex(2, 2), complex(zero, 2), complex(1, -1)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 2), complex(1, zero), complex(2, 2)},
+	{complex(2, 2), complex(1, -zero), complex(2, 2)},
+	{complex(2, 2), complex(1, 1), complex(2, zero)},
+	{complex(2, 2), complex(1, -1), complex(zero, 2)},
+	{complex(2, 2), complex(1, 2), complex(1.2, -0.4)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 2), complex(-1, zero), complex(-2, -2)},
+	{complex(2, 2), complex(-1, -zero), complex(-2, -2)},
+	{complex(2, 2), complex(-1, 1), complex(-zero, -2)},
+	{complex(2, 2), complex(-1, -1), complex(-2, -zero)},
+	{complex(2, 2), complex(-1, 2), complex(0.4, -1.2)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 2), complex(2, zero), complex(1, 1)},
+	{complex(2, 2), complex(2, -zero), complex(1, 1)},
+	{complex(2, 2), complex(2, 1), complex(1.2, 0.4)},
+	{complex(2, 2), complex(2, -1), complex(0.4, 1.2)},
+	{complex(2, 2), complex(2, 2), complex(1, zero)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(2, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(2, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(2, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(2, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 2), complex(inf, zero), complex(zero, zero)},
+	{complex(2, 2), complex(inf, -zero), complex(zero, zero)},
+	{complex(2, 2), complex(inf, 1), complex(zero, zero)},
+	{complex(2, 2), complex(inf, -1), complex(zero, zero)},
+	{complex(2, 2), complex(inf, 2), complex(zero, zero)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(2, 2), complex(-inf, zero), complex(-zero, -zero)},
+	{complex(2, 2), complex(-inf, -zero), complex(-zero, -zero)},
+	{complex(2, 2), complex(-inf, 1), complex(-zero, -zero)},
+	{complex(2, 2), complex(-inf, -1), complex(-zero, -zero)},
+	{complex(2, 2), complex(-inf, 2), complex(-zero, -zero)},
+	{complex(2, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(2, 2), complex(nan, inf), complex(zero, -zero)},
+	{complex(2, 2), complex(nan, -inf), complex(-zero, zero)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(1, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(1, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(1, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(1, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(2, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(2, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(2, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(2, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, zero), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, zero), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, zero), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, zero), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, zero), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(1, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(1, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(1, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(1, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(2, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(2, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(2, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(2, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -zero), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -zero), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -zero), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, 1), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, 1), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, 1), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, 1), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(1, zero), complex(nan, nan)},
+	{complex(nan, 1), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, 1), complex(1, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(1, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(1, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, 1), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, 1), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(2, zero), complex(nan, nan)},
+	{complex(nan, 1), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, 1), complex(2, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(2, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(2, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, 1), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, 1), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 1), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, 1), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, 1), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, 1), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, 1), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -1), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -1), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -1), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -1), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(1, zero), complex(nan, nan)},
+	{complex(nan, -1), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, -1), complex(1, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(1, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(1, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, -1), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, -1), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(2, zero), complex(nan, nan)},
+	{complex(nan, -1), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, -1), complex(2, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(2, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(2, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -1), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -1), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -1), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -1), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -1), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -1), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -1), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, 2), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, 2), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, 2), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, 2), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(1, zero), complex(nan, nan)},
+	{complex(nan, 2), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, 2), complex(1, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(1, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(1, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, 2), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, 2), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(2, zero), complex(nan, nan)},
+	{complex(nan, 2), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, 2), complex(2, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(2, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(2, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, 2), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, 2), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, 2), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, 2), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, 2), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, 2), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, 2), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(zero, zero), complex(inf, nan)},
+	{complex(inf, zero), complex(zero, -zero), complex(inf, nan)},
+	{complex(inf, zero), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, zero), complex(zero, -1), complex(nan, inf)},
+	{complex(inf, zero), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(zero, zero), complex(inf, nan)},
+	{complex(inf, zero), complex(-zero, -zero), complex(-inf, nan)},
+	{complex(inf, zero), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, zero), complex(-zero, -1), complex(nan, inf)},
+	{complex(inf, zero), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(1, zero), complex(inf, nan)},
+	{complex(inf, zero), complex(1, -zero), complex(inf, nan)},
+	{complex(inf, zero), complex(1, 1), complex(inf, -inf)},
+	{complex(inf, zero), complex(1, -1), complex(inf, inf)},
+	{complex(inf, zero), complex(1, 2), complex(inf, -inf)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(-1, zero), complex(-inf, nan)},
+	{complex(inf, zero), complex(-1, -zero), complex(-inf, nan)},
+	{complex(inf, zero), complex(-1, 1), complex(-inf, -inf)},
+	{complex(inf, zero), complex(-1, -1), complex(-inf, inf)},
+	{complex(inf, zero), complex(-1, 2), complex(-inf, -inf)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(2, zero), complex(inf, nan)},
+	{complex(inf, zero), complex(2, -zero), complex(inf, nan)},
+	{complex(inf, zero), complex(2, 1), complex(inf, -inf)},
+	{complex(inf, zero), complex(2, -1), complex(inf, inf)},
+	{complex(inf, zero), complex(2, 2), complex(inf, -inf)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(inf, zero), complex(nan, nan)},
+	{complex(inf, zero), complex(inf, -zero), complex(nan, nan)},
+	{complex(inf, zero), complex(inf, 1), complex(nan, nan)},
+	{complex(inf, zero), complex(inf, -1), complex(nan, nan)},
+	{complex(inf, zero), complex(inf, 2), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, zero), complex(-inf, zero), complex(nan, nan)},
+	{complex(inf, zero), complex(-inf, -zero), complex(nan, nan)},
+	{complex(inf, zero), complex(-inf, 1), complex(nan, nan)},
+	{complex(inf, zero), complex(-inf, -1), complex(nan, nan)},
+	{complex(inf, zero), complex(-inf, 2), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(zero, zero), complex(inf, nan)},
+	{complex(inf, -zero), complex(zero, -zero), complex(inf, nan)},
+	{complex(inf, -zero), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, -zero), complex(zero, -1), complex(nan, inf)},
+	{complex(inf, -zero), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(zero, zero), complex(inf, nan)},
+	{complex(inf, -zero), complex(-zero, -zero), complex(-inf, nan)},
+	{complex(inf, -zero), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, -zero), complex(-zero, -1), complex(nan, inf)},
+	{complex(inf, -zero), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(1, zero), complex(inf, nan)},
+	{complex(inf, -zero), complex(1, -zero), complex(inf, nan)},
+	{complex(inf, -zero), complex(1, 1), complex(inf, -inf)},
+	{complex(inf, -zero), complex(1, -1), complex(inf, inf)},
+	{complex(inf, -zero), complex(1, 2), complex(inf, -inf)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(-1, zero), complex(-inf, nan)},
+	{complex(inf, -zero), complex(-1, -zero), complex(-inf, nan)},
+	{complex(inf, -zero), complex(-1, 1), complex(-inf, -inf)},
+	{complex(inf, -zero), complex(-1, -1), complex(-inf, inf)},
+	{complex(inf, -zero), complex(-1, 2), complex(-inf, -inf)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(2, zero), complex(inf, nan)},
+	{complex(inf, -zero), complex(2, -zero), complex(inf, nan)},
+	{complex(inf, -zero), complex(2, 1), complex(inf, -inf)},
+	{complex(inf, -zero), complex(2, -1), complex(inf, inf)},
+	{complex(inf, -zero), complex(2, 2), complex(inf, -inf)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(inf, zero), complex(nan, nan)},
+	{complex(inf, -zero), complex(inf, -zero), complex(nan, nan)},
+	{complex(inf, -zero), complex(inf, 1), complex(nan, nan)},
+	{complex(inf, -zero), complex(inf, -1), complex(nan, nan)},
+	{complex(inf, -zero), complex(inf, 2), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(-inf, zero), complex(nan, nan)},
+	{complex(inf, -zero), complex(-inf, -zero), complex(nan, nan)},
+	{complex(inf, -zero), complex(-inf, 1), complex(nan, nan)},
+	{complex(inf, -zero), complex(-inf, -1), complex(nan, nan)},
+	{complex(inf, -zero), complex(-inf, 2), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(zero, zero), complex(inf, inf)},
+	{complex(inf, 1), complex(zero, -zero), complex(inf, inf)},
+	{complex(inf, 1), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, 1), complex(zero, -1), complex(nan, inf)},
+	{complex(inf, 1), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(zero, zero), complex(inf, inf)},
+	{complex(inf, 1), complex(-zero, -zero), complex(-inf, -inf)},
+	{complex(inf, 1), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, 1), complex(-zero, -1), complex(nan, inf)},
+	{complex(inf, 1), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(1, zero), complex(inf, nan)},
+	{complex(inf, 1), complex(1, -zero), complex(inf, nan)},
+	{complex(inf, 1), complex(1, 1), complex(inf, -inf)},
+	{complex(inf, 1), complex(1, -1), complex(inf, inf)},
+	{complex(inf, 1), complex(1, 2), complex(inf, -inf)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(-1, zero), complex(-inf, nan)},
+	{complex(inf, 1), complex(-1, -zero), complex(-inf, nan)},
+	{complex(inf, 1), complex(-1, 1), complex(-inf, -inf)},
+	{complex(inf, 1), complex(-1, -1), complex(-inf, inf)},
+	{complex(inf, 1), complex(-1, 2), complex(-inf, -inf)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(2, zero), complex(inf, nan)},
+	{complex(inf, 1), complex(2, -zero), complex(inf, nan)},
+	{complex(inf, 1), complex(2, 1), complex(inf, -inf)},
+	{complex(inf, 1), complex(2, -1), complex(inf, inf)},
+	{complex(inf, 1), complex(2, 2), complex(inf, -inf)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(inf, zero), complex(nan, nan)},
+	{complex(inf, 1), complex(inf, -zero), complex(nan, nan)},
+	{complex(inf, 1), complex(inf, 1), complex(nan, nan)},
+	{complex(inf, 1), complex(inf, -1), complex(nan, nan)},
+	{complex(inf, 1), complex(inf, 2), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 1), complex(-inf, zero), complex(nan, nan)},
+	{complex(inf, 1), complex(-inf, -zero), complex(nan, nan)},
+	{complex(inf, 1), complex(-inf, 1), complex(nan, nan)},
+	{complex(inf, 1), complex(-inf, -1), complex(nan, nan)},
+	{complex(inf, 1), complex(-inf, 2), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(zero, zero), complex(inf, -inf)},
+	{complex(inf, -1), complex(zero, -zero), complex(inf, -inf)},
+	{complex(inf, -1), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, -1), complex(zero, -1), complex(nan, inf)},
+	{complex(inf, -1), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(zero, zero), complex(inf, -inf)},
+	{complex(inf, -1), complex(-zero, -zero), complex(-inf, inf)},
+	{complex(inf, -1), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, -1), complex(-zero, -1), complex(nan, inf)},
+	{complex(inf, -1), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(1, zero), complex(inf, nan)},
+	{complex(inf, -1), complex(1, -zero), complex(inf, nan)},
+	{complex(inf, -1), complex(1, 1), complex(inf, -inf)},
+	{complex(inf, -1), complex(1, -1), complex(inf, inf)},
+	{complex(inf, -1), complex(1, 2), complex(inf, -inf)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(-1, zero), complex(-inf, nan)},
+	{complex(inf, -1), complex(-1, -zero), complex(-inf, nan)},
+	{complex(inf, -1), complex(-1, 1), complex(-inf, -inf)},
+	{complex(inf, -1), complex(-1, -1), complex(-inf, inf)},
+	{complex(inf, -1), complex(-1, 2), complex(-inf, -inf)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(2, zero), complex(inf, nan)},
+	{complex(inf, -1), complex(2, -zero), complex(inf, nan)},
+	{complex(inf, -1), complex(2, 1), complex(inf, -inf)},
+	{complex(inf, -1), complex(2, -1), complex(inf, inf)},
+	{complex(inf, -1), complex(2, 2), complex(inf, -inf)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(inf, zero), complex(nan, nan)},
+	{complex(inf, -1), complex(inf, -zero), complex(nan, nan)},
+	{complex(inf, -1), complex(inf, 1), complex(nan, nan)},
+	{complex(inf, -1), complex(inf, -1), complex(nan, nan)},
+	{complex(inf, -1), complex(inf, 2), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, -1), complex(-inf, zero), complex(nan, nan)},
+	{complex(inf, -1), complex(-inf, -zero), complex(nan, nan)},
+	{complex(inf, -1), complex(-inf, 1), complex(nan, nan)},
+	{complex(inf, -1), complex(-inf, -1), complex(nan, nan)},
+	{complex(inf, -1), complex(-inf, 2), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(zero, zero), complex(inf, inf)},
+	{complex(inf, 2), complex(zero, -zero), complex(inf, inf)},
+	{complex(inf, 2), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, 2), complex(zero, -1), complex(nan, inf)},
+	{complex(inf, 2), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(zero, zero), complex(inf, inf)},
+	{complex(inf, 2), complex(-zero, -zero), complex(-inf, -inf)},
+	{complex(inf, 2), complex(zero, 1), complex(nan, -inf)},
+	{complex(inf, 2), complex(-zero, -1), complex(nan, inf)},
+	{complex(inf, 2), complex(zero, 2), complex(nan, -inf)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(1, zero), complex(inf, nan)},
+	{complex(inf, 2), complex(1, -zero), complex(inf, nan)},
+	{complex(inf, 2), complex(1, 1), complex(inf, -inf)},
+	{complex(inf, 2), complex(1, -1), complex(inf, inf)},
+	{complex(inf, 2), complex(1, 2), complex(inf, -inf)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(-1, zero), complex(-inf, nan)},
+	{complex(inf, 2), complex(-1, -zero), complex(-inf, nan)},
+	{complex(inf, 2), complex(-1, 1), complex(-inf, -inf)},
+	{complex(inf, 2), complex(-1, -1), complex(-inf, inf)},
+	{complex(inf, 2), complex(-1, 2), complex(-inf, -inf)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(2, zero), complex(inf, nan)},
+	{complex(inf, 2), complex(2, -zero), complex(inf, nan)},
+	{complex(inf, 2), complex(2, 1), complex(inf, -inf)},
+	{complex(inf, 2), complex(2, -1), complex(inf, inf)},
+	{complex(inf, 2), complex(2, 2), complex(inf, -inf)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(inf, zero), complex(nan, nan)},
+	{complex(inf, 2), complex(inf, -zero), complex(nan, nan)},
+	{complex(inf, 2), complex(inf, 1), complex(nan, nan)},
+	{complex(inf, 2), complex(inf, -1), complex(nan, nan)},
+	{complex(inf, 2), complex(inf, 2), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(inf, 2), complex(-inf, zero), complex(nan, nan)},
+	{complex(inf, 2), complex(-inf, -zero), complex(nan, nan)},
+	{complex(inf, 2), complex(-inf, 1), complex(nan, nan)},
+	{complex(inf, 2), complex(-inf, -1), complex(nan, nan)},
+	{complex(inf, 2), complex(-inf, 2), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-inf, zero), complex(zero, -zero), complex(-inf, nan)},
+	{complex(-inf, zero), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, zero), complex(zero, -1), complex(nan, -inf)},
+	{complex(-inf, zero), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-inf, zero), complex(-zero, -zero), complex(inf, nan)},
+	{complex(-inf, zero), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, zero), complex(-zero, -1), complex(nan, -inf)},
+	{complex(-inf, zero), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(1, zero), complex(-inf, nan)},
+	{complex(-inf, zero), complex(1, -zero), complex(-inf, nan)},
+	{complex(-inf, zero), complex(1, 1), complex(-inf, inf)},
+	{complex(-inf, zero), complex(1, -1), complex(-inf, -inf)},
+	{complex(-inf, zero), complex(1, 2), complex(-inf, inf)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(-1, zero), complex(inf, nan)},
+	{complex(-inf, zero), complex(-1, -zero), complex(inf, nan)},
+	{complex(-inf, zero), complex(-1, 1), complex(inf, inf)},
+	{complex(-inf, zero), complex(-1, -1), complex(inf, -inf)},
+	{complex(-inf, zero), complex(-1, 2), complex(inf, inf)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(2, zero), complex(-inf, nan)},
+	{complex(-inf, zero), complex(2, -zero), complex(-inf, nan)},
+	{complex(-inf, zero), complex(2, 1), complex(-inf, inf)},
+	{complex(-inf, zero), complex(2, -1), complex(-inf, -inf)},
+	{complex(-inf, zero), complex(2, 2), complex(-inf, inf)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, zero), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, 1), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -1), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, 2), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(inf, zero), complex(nan, nan)},
+	{complex(-inf, zero), complex(inf, -zero), complex(nan, nan)},
+	{complex(-inf, zero), complex(inf, 1), complex(nan, nan)},
+	{complex(-inf, zero), complex(inf, -1), complex(nan, nan)},
+	{complex(-inf, zero), complex(inf, 2), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(-inf, zero), complex(nan, nan)},
+	{complex(-inf, zero), complex(-inf, -zero), complex(nan, nan)},
+	{complex(-inf, zero), complex(-inf, 1), complex(nan, nan)},
+	{complex(-inf, zero), complex(-inf, -1), complex(nan, nan)},
+	{complex(-inf, zero), complex(-inf, 2), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-inf, -zero), complex(zero, -zero), complex(-inf, nan)},
+	{complex(-inf, -zero), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, -zero), complex(zero, -1), complex(nan, -inf)},
+	{complex(-inf, -zero), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(zero, zero), complex(-inf, nan)},
+	{complex(-inf, -zero), complex(-zero, -zero), complex(inf, nan)},
+	{complex(-inf, -zero), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, -zero), complex(-zero, -1), complex(nan, -inf)},
+	{complex(-inf, -zero), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(1, zero), complex(-inf, nan)},
+	{complex(-inf, -zero), complex(1, -zero), complex(-inf, nan)},
+	{complex(-inf, -zero), complex(1, 1), complex(-inf, inf)},
+	{complex(-inf, -zero), complex(1, -1), complex(-inf, -inf)},
+	{complex(-inf, -zero), complex(1, 2), complex(-inf, inf)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(-1, zero), complex(inf, nan)},
+	{complex(-inf, -zero), complex(-1, -zero), complex(inf, nan)},
+	{complex(-inf, -zero), complex(-1, 1), complex(inf, inf)},
+	{complex(-inf, -zero), complex(-1, -1), complex(inf, -inf)},
+	{complex(-inf, -zero), complex(-1, 2), complex(inf, inf)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(2, zero), complex(-inf, nan)},
+	{complex(-inf, -zero), complex(2, -zero), complex(-inf, nan)},
+	{complex(-inf, -zero), complex(2, 1), complex(-inf, inf)},
+	{complex(-inf, -zero), complex(2, -1), complex(-inf, -inf)},
+	{complex(-inf, -zero), complex(2, 2), complex(-inf, inf)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, zero), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -zero), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, 1), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -1), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, 2), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(inf, zero), complex(nan, nan)},
+	{complex(-inf, -zero), complex(inf, -zero), complex(nan, nan)},
+	{complex(-inf, -zero), complex(inf, 1), complex(nan, nan)},
+	{complex(-inf, -zero), complex(inf, -1), complex(nan, nan)},
+	{complex(-inf, -zero), complex(inf, 2), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(-inf, zero), complex(nan, nan)},
+	{complex(-inf, -zero), complex(-inf, -zero), complex(nan, nan)},
+	{complex(-inf, -zero), complex(-inf, 1), complex(nan, nan)},
+	{complex(-inf, -zero), complex(-inf, -1), complex(nan, nan)},
+	{complex(-inf, -zero), complex(-inf, 2), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(zero, zero), complex(-inf, inf)},
+	{complex(-inf, 1), complex(zero, -zero), complex(-inf, inf)},
+	{complex(-inf, 1), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, 1), complex(zero, -1), complex(nan, -inf)},
+	{complex(-inf, 1), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(zero, zero), complex(-inf, inf)},
+	{complex(-inf, 1), complex(-zero, -zero), complex(inf, -inf)},
+	{complex(-inf, 1), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, 1), complex(-zero, -1), complex(nan, -inf)},
+	{complex(-inf, 1), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(1, zero), complex(-inf, nan)},
+	{complex(-inf, 1), complex(1, -zero), complex(-inf, nan)},
+	{complex(-inf, 1), complex(1, 1), complex(-inf, inf)},
+	{complex(-inf, 1), complex(1, -1), complex(-inf, -inf)},
+	{complex(-inf, 1), complex(1, 2), complex(-inf, inf)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(-1, zero), complex(inf, nan)},
+	{complex(-inf, 1), complex(-1, -zero), complex(inf, nan)},
+	{complex(-inf, 1), complex(-1, 1), complex(inf, inf)},
+	{complex(-inf, 1), complex(-1, -1), complex(inf, -inf)},
+	{complex(-inf, 1), complex(-1, 2), complex(inf, inf)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(2, zero), complex(-inf, nan)},
+	{complex(-inf, 1), complex(2, -zero), complex(-inf, nan)},
+	{complex(-inf, 1), complex(2, 1), complex(-inf, inf)},
+	{complex(-inf, 1), complex(2, -1), complex(-inf, -inf)},
+	{complex(-inf, 1), complex(2, 2), complex(-inf, inf)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, zero), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -zero), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, 1), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -1), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, 2), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(inf, zero), complex(nan, nan)},
+	{complex(-inf, 1), complex(inf, -zero), complex(nan, nan)},
+	{complex(-inf, 1), complex(inf, 1), complex(nan, nan)},
+	{complex(-inf, 1), complex(inf, -1), complex(nan, nan)},
+	{complex(-inf, 1), complex(inf, 2), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(-inf, zero), complex(nan, nan)},
+	{complex(-inf, 1), complex(-inf, -zero), complex(nan, nan)},
+	{complex(-inf, 1), complex(-inf, 1), complex(nan, nan)},
+	{complex(-inf, 1), complex(-inf, -1), complex(nan, nan)},
+	{complex(-inf, 1), complex(-inf, 2), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(zero, zero), complex(-inf, -inf)},
+	{complex(-inf, -1), complex(zero, -zero), complex(-inf, -inf)},
+	{complex(-inf, -1), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, -1), complex(zero, -1), complex(nan, -inf)},
+	{complex(-inf, -1), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(zero, zero), complex(-inf, -inf)},
+	{complex(-inf, -1), complex(-zero, -zero), complex(inf, inf)},
+	{complex(-inf, -1), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, -1), complex(-zero, -1), complex(nan, -inf)},
+	{complex(-inf, -1), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(1, zero), complex(-inf, nan)},
+	{complex(-inf, -1), complex(1, -zero), complex(-inf, nan)},
+	{complex(-inf, -1), complex(1, 1), complex(-inf, inf)},
+	{complex(-inf, -1), complex(1, -1), complex(-inf, -inf)},
+	{complex(-inf, -1), complex(1, 2), complex(-inf, inf)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(-1, zero), complex(inf, nan)},
+	{complex(-inf, -1), complex(-1, -zero), complex(inf, nan)},
+	{complex(-inf, -1), complex(-1, 1), complex(inf, inf)},
+	{complex(-inf, -1), complex(-1, -1), complex(inf, -inf)},
+	{complex(-inf, -1), complex(-1, 2), complex(inf, inf)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(2, zero), complex(-inf, nan)},
+	{complex(-inf, -1), complex(2, -zero), complex(-inf, nan)},
+	{complex(-inf, -1), complex(2, 1), complex(-inf, inf)},
+	{complex(-inf, -1), complex(2, -1), complex(-inf, -inf)},
+	{complex(-inf, -1), complex(2, 2), complex(-inf, inf)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, zero), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -zero), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, 1), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -1), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, 2), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(inf, zero), complex(nan, nan)},
+	{complex(-inf, -1), complex(inf, -zero), complex(nan, nan)},
+	{complex(-inf, -1), complex(inf, 1), complex(nan, nan)},
+	{complex(-inf, -1), complex(inf, -1), complex(nan, nan)},
+	{complex(-inf, -1), complex(inf, 2), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(-inf, zero), complex(nan, nan)},
+	{complex(-inf, -1), complex(-inf, -zero), complex(nan, nan)},
+	{complex(-inf, -1), complex(-inf, 1), complex(nan, nan)},
+	{complex(-inf, -1), complex(-inf, -1), complex(nan, nan)},
+	{complex(-inf, -1), complex(-inf, 2), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, -1), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(zero, zero), complex(-inf, inf)},
+	{complex(-inf, 2), complex(zero, -zero), complex(-inf, inf)},
+	{complex(-inf, 2), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, 2), complex(zero, -1), complex(nan, -inf)},
+	{complex(-inf, 2), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(zero, zero), complex(-inf, inf)},
+	{complex(-inf, 2), complex(-zero, -zero), complex(inf, -inf)},
+	{complex(-inf, 2), complex(zero, 1), complex(nan, inf)},
+	{complex(-inf, 2), complex(-zero, -1), complex(nan, -inf)},
+	{complex(-inf, 2), complex(zero, 2), complex(nan, inf)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(1, zero), complex(-inf, nan)},
+	{complex(-inf, 2), complex(1, -zero), complex(-inf, nan)},
+	{complex(-inf, 2), complex(1, 1), complex(-inf, inf)},
+	{complex(-inf, 2), complex(1, -1), complex(-inf, -inf)},
+	{complex(-inf, 2), complex(1, 2), complex(-inf, inf)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(-1, zero), complex(inf, nan)},
+	{complex(-inf, 2), complex(-1, -zero), complex(inf, nan)},
+	{complex(-inf, 2), complex(-1, 1), complex(inf, inf)},
+	{complex(-inf, 2), complex(-1, -1), complex(inf, -inf)},
+	{complex(-inf, 2), complex(-1, 2), complex(inf, inf)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(2, zero), complex(-inf, nan)},
+	{complex(-inf, 2), complex(2, -zero), complex(-inf, nan)},
+	{complex(-inf, 2), complex(2, 1), complex(-inf, inf)},
+	{complex(-inf, 2), complex(2, -1), complex(-inf, -inf)},
+	{complex(-inf, 2), complex(2, 2), complex(-inf, inf)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, zero), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -zero), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, 1), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -1), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, 2), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(inf, zero), complex(nan, nan)},
+	{complex(-inf, 2), complex(inf, -zero), complex(nan, nan)},
+	{complex(-inf, 2), complex(inf, 1), complex(nan, nan)},
+	{complex(-inf, 2), complex(inf, -1), complex(nan, nan)},
+	{complex(-inf, 2), complex(inf, 2), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(-inf, zero), complex(nan, nan)},
+	{complex(-inf, 2), complex(-inf, -zero), complex(nan, nan)},
+	{complex(-inf, 2), complex(-inf, 1), complex(nan, nan)},
+	{complex(-inf, 2), complex(-inf, -1), complex(nan, nan)},
+	{complex(-inf, 2), complex(-inf, 2), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, nan), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, inf), complex(nan, nan)},
+	{complex(-inf, 2), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-zero, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(zero, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-1, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(2, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(2, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, nan), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, nan), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(zero, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(zero, 1), complex(inf, nan)},
+	{complex(nan, inf), complex(-zero, -1), complex(-inf, nan)},
+	{complex(nan, inf), complex(zero, 2), complex(inf, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(1, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(1, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(1, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(1, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-1, zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, -zero), complex(nan, -inf)},
+	{complex(nan, inf), complex(-1, 1), complex(inf, -inf)},
+	{complex(nan, inf), complex(-1, -1), complex(-inf, -inf)},
+	{complex(nan, inf), complex(-1, 2), complex(inf, -inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(2, zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, -zero), complex(nan, inf)},
+	{complex(nan, inf), complex(2, 1), complex(inf, inf)},
+	{complex(nan, inf), complex(2, -1), complex(-inf, inf)},
+	{complex(nan, inf), complex(2, 2), complex(inf, inf)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(zero, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(zero, 1), complex(-inf, nan)},
+	{complex(nan, -inf), complex(-zero, -1), complex(inf, nan)},
+	{complex(nan, -inf), complex(zero, 2), complex(-inf, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(1, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(1, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(1, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(1, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-1, zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, -zero), complex(nan, inf)},
+	{complex(nan, -inf), complex(-1, 1), complex(-inf, inf)},
+	{complex(nan, -inf), complex(-1, -1), complex(inf, inf)},
+	{complex(nan, -inf), complex(-1, 2), complex(-inf, inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(2, zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, -zero), complex(nan, -inf)},
+	{complex(nan, -inf), complex(2, 1), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(2, -1), complex(inf, -inf)},
+	{complex(nan, -inf), complex(2, 2), complex(-inf, -inf)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, -1), complex(nan, nan)},
+	{complex(nan, -inf), complex(-inf, 2), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, nan), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, inf), complex(nan, nan)},
+	{complex(nan, -inf), complex(nan, -inf), complex(nan, nan)},
 }