delete float, complex - code changes
also:
	cmplx -> complex
	float64(1.0) -> 1.0
	float64(1) -> 1.0

R=gri, r, gri1, r2
CC=golang-dev
https://golang.org/cl/3991043
diff --git a/test/append.go b/test/append.go
index 17c6652..96421c3 100644
--- a/test/append.go
+++ b/test/append.go
@@ -193,7 +193,7 @@
 		case 2:
 			e[i] = fmt.Sprintf("%d", i)
 		case 3:
-			e[i] = float(i)
+			e[i] = float64(i)
 		}
 	}
 
diff --git a/test/blank.go b/test/blank.go
index 6e69f8a..681a5e7 100644
--- a/test/blank.go
+++ b/test/blank.go
@@ -28,7 +28,7 @@
 	c4
 )
 
-var ints = []string {
+var ints = []string{
 	"1",
 	"2",
 	"3",
@@ -36,15 +36,15 @@
 
 func f() (int, int) {
 	call += "f"
-	return 1,2
+	return 1, 2
 }
 
-func g() (float, float) {
+func g() (float64, float64) {
 	call += "g"
-	return 3,4
+	return 3, 4
 }
 
-func h(_ int, _ float) {
+func h(_ int, _ float64) {
 }
 
 func i() int {
@@ -55,43 +55,64 @@
 var _ = i()
 
 func main() {
-	if call != "i" {panic("init did not run")}
+	if call != "i" {
+		panic("init did not run")
+	}
 	call = ""
 	_, _ = f()
 	a, _ := f()
-	if a != 1 {panic(a)}
+	if a != 1 {
+		panic(a)
+	}
 	b, _ := g()
-	if b != 3 {panic(b)}
+	if b != 3 {
+		panic(b)
+	}
 	_, a = f()
-	if a != 2 {panic(a)}
+	if a != 2 {
+		panic(a)
+	}
 	_, b = g()
-	if b != 4 {panic(b)}
+	if b != 4 {
+		panic(b)
+	}
 	_ = i()
-	if call != "ffgfgi" {panic(call)}
-	if c4 != 4 {panic(c4)}
+	if call != "ffgfgi" {
+		panic(call)
+	}
+	if c4 != 4 {
+		panic(c4)
+	}
 
 	out := ""
 	for _, s := range ints {
 		out += s
 	}
-	if out != "123" {panic(out)}
+	if out != "123" {
+		panic(out)
+	}
 
 	sum := 0
 	for s := range ints {
 		sum += s
 	}
-	if sum != 3 {panic(sum)}
+	if sum != 3 {
+		panic(sum)
+	}
 
-	h(a,b)
+	h(a, b)
 }
 
 // useless but legal
 var _ int = 1
 var _ = 2
 var _, _ = 3, 4
+
 const _ = 3
 const _, _ = 4, 5
+
 type _ int
+
 func _() {
 	panic("oops")
 }
diff --git a/test/cmplx.go b/test/cmplx.go
index fad96c6..d5a77d6 100644
--- a/test/cmplx.go
+++ b/test/cmplx.go
@@ -7,26 +7,19 @@
 package main
 
 var (
-	f float
 	f32 float32
 	f64 float64
 
-	c complex
-	c64 complex64
+	c64  complex64
 	c128 complex128
 )
-	
+
 func main() {
 	// ok
-	c = cmplx(f, f)
-	c64 = cmplx(f32, f32)
-	c128 = cmplx(f64, f64)
+	c64 = complex(f32, f32)
+	c128 = complex(f64, f64)
 
-	_ = complex(0) // ok
-	_ = cmplx(f, f32)	// ERROR "cmplx"
-	_ = cmplx(f, f64)	// ERROR "cmplx"
-	_ = cmplx(f32, f)	// ERROR "cmplx"
-	_ = cmplx(f32, f64)	// ERROR "cmplx"
-	_ = cmplx(f64, f)	// ERROR "cmplx"
-	_ = cmplx(f64, f32)	// ERROR "cmplx"
+	_ = complex128(0)     // ok
+	_ = complex(f32, f64) // ERROR "complex"
+	_ = complex(f64, f32) // ERROR "complex"
 }
diff --git a/test/cmplxdivide.c b/test/cmplxdivide.c
index b3c6055..b340f04 100644
--- a/test/cmplxdivide.c
+++ b/test/cmplxdivide.c
@@ -72,7 +72,7 @@
 		if(iscnan(n) && d == 0)
 			q = (NAN+NAN*I) / zero;
 
-		printf("\tTest{cmplx(%s, %s), cmplx(%s, %s), cmplx(%s, %s)},\n",
+		printf("\tTest{complex(%s, %s), complex(%s, %s), complex(%s, %s)},\n",
 			fmt(creal(n)), fmt(cimag(n)),
 			fmt(creal(d)), fmt(cimag(d)),
 			fmt(creal(q)), fmt(cimag(q)));
diff --git a/test/cmplxdivide1.go b/test/cmplxdivide1.go
index 96ea704..6a1dee9 100644
--- a/test/cmplxdivide1.go
+++ b/test/cmplxdivide1.go
@@ -1,2407 +1,2406 @@
 // # generated by cmplxdivide.c
 
 package main
-
 var tests = []Test{
-	Test{cmplx(0, 0), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(0, 1), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(0, -1), cmplx(negzero, 0)},
-	Test{cmplx(0, 0), cmplx(0, 2), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(0, inf), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 0), cmplx(1, 0), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(1, 1), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(1, -1), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(1, 2), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(1, inf), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 0), cmplx(-1, 0), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(-1, 1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(-1, -1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(-1, 2), cmplx(0, negzero)},
-	Test{cmplx(0, 0), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(0, 0), cmplx(-1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(2, 0), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(2, 1), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(2, -1), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(2, 2), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(2, inf), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 0), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 0), cmplx(nan, inf), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(nan, -inf), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(0, 0), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(0, 0), cmplx(-inf, nan), cmplx(0, negzero)},
-	Test{cmplx(0, 0), cmplx(-inf, inf), cmplx(0, negzero)},
-	Test{cmplx(0, 0), cmplx(-inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 1), cmplx(0, 0), cmplx(nan, inf)},
-	Test{cmplx(0, 1), cmplx(0, 1), cmplx(1, 0)},
-	Test{cmplx(0, 1), cmplx(0, -1), cmplx(-1, 0)},
-	Test{cmplx(0, 1), cmplx(0, 2), cmplx(0.5, 0)},
-	Test{cmplx(0, 1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(0, inf), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 1), cmplx(1, 0), cmplx(0, 1)},
-	Test{cmplx(0, 1), cmplx(1, 1), cmplx(0.5, 0.5)},
-	Test{cmplx(0, 1), cmplx(1, -1), cmplx(-0.5, 0.5)},
-	Test{cmplx(0, 1), cmplx(1, 2), cmplx(0.4, 0.2)},
-	Test{cmplx(0, 1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(1, inf), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 1), cmplx(-1, 0), cmplx(negzero, -1)},
-	Test{cmplx(0, 1), cmplx(-1, 1), cmplx(0.5, -0.5)},
-	Test{cmplx(0, 1), cmplx(-1, -1), cmplx(-0.5, -0.5)},
-	Test{cmplx(0, 1), cmplx(-1, 2), cmplx(0.4, -0.2)},
-	Test{cmplx(0, 1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(0, 1), cmplx(-1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, 1), cmplx(2, 0), cmplx(0, 0.5)},
-	Test{cmplx(0, 1), cmplx(2, 1), cmplx(0.2, 0.4)},
-	Test{cmplx(0, 1), cmplx(2, -1), cmplx(-0.2, 0.4)},
-	Test{cmplx(0, 1), cmplx(2, 2), cmplx(0.25, 0.25)},
-	Test{cmplx(0, 1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(2, inf), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 1), cmplx(nan, inf), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(nan, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 1), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(0, 1), cmplx(inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 1), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(0, 1), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 1), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 1), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(0, 1), cmplx(-inf, nan), cmplx(0, negzero)},
-	Test{cmplx(0, 1), cmplx(-inf, inf), cmplx(0, negzero)},
-	Test{cmplx(0, 1), cmplx(-inf, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, -1), cmplx(0, 0), cmplx(nan, -inf)},
-	Test{cmplx(0, -1), cmplx(0, 1), cmplx(-1, negzero)},
-	Test{cmplx(0, -1), cmplx(0, -1), cmplx(1, negzero)},
-	Test{cmplx(0, -1), cmplx(0, 2), cmplx(-0.5, negzero)},
-	Test{cmplx(0, -1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(0, inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, -1), cmplx(0, -inf), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(1, 0), cmplx(0, -1)},
-	Test{cmplx(0, -1), cmplx(1, 1), cmplx(-0.5, -0.5)},
-	Test{cmplx(0, -1), cmplx(1, -1), cmplx(0.5, -0.5)},
-	Test{cmplx(0, -1), cmplx(1, 2), cmplx(-0.4, -0.2)},
-	Test{cmplx(0, -1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(1, inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, -1), cmplx(1, -inf), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(-1, 0), cmplx(negzero, 1)},
-	Test{cmplx(0, -1), cmplx(-1, 1), cmplx(-0.5, 0.5)},
-	Test{cmplx(0, -1), cmplx(-1, -1), cmplx(0.5, 0.5)},
-	Test{cmplx(0, -1), cmplx(-1, 2), cmplx(-0.4, 0.2)},
-	Test{cmplx(0, -1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(-1, inf), cmplx(negzero, 0)},
-	Test{cmplx(0, -1), cmplx(-1, -inf), cmplx(0, 0)},
-	Test{cmplx(0, -1), cmplx(2, 0), cmplx(0, -0.5)},
-	Test{cmplx(0, -1), cmplx(2, 1), cmplx(-0.2, -0.4)},
-	Test{cmplx(0, -1), cmplx(2, -1), cmplx(0.2, -0.4)},
-	Test{cmplx(0, -1), cmplx(2, 2), cmplx(-0.25, -0.25)},
-	Test{cmplx(0, -1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(2, inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, -1), cmplx(2, -inf), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -1), cmplx(nan, inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, -1), cmplx(nan, -inf), cmplx(0, 0)},
-	Test{cmplx(0, -1), cmplx(inf, 0), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(inf, 1), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(inf, -1), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(inf, 2), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(inf, nan), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(inf, inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, -1), cmplx(inf, -inf), cmplx(0, negzero)},
-	Test{cmplx(0, -1), cmplx(-inf, 0), cmplx(negzero, 0)},
-	Test{cmplx(0, -1), cmplx(-inf, 1), cmplx(negzero, 0)},
-	Test{cmplx(0, -1), cmplx(-inf, -1), cmplx(negzero, 0)},
-	Test{cmplx(0, -1), cmplx(-inf, 2), cmplx(negzero, 0)},
-	Test{cmplx(0, -1), cmplx(-inf, nan), cmplx(negzero, 0)},
-	Test{cmplx(0, -1), cmplx(-inf, inf), cmplx(negzero, 0)},
-	Test{cmplx(0, -1), cmplx(-inf, -inf), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(0, 0), cmplx(nan, inf)},
-	Test{cmplx(0, 2), cmplx(0, 1), cmplx(2, 0)},
-	Test{cmplx(0, 2), cmplx(0, -1), cmplx(-2, 0)},
-	Test{cmplx(0, 2), cmplx(0, 2), cmplx(1, 0)},
-	Test{cmplx(0, 2), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(0, inf), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 2), cmplx(1, 0), cmplx(0, 2)},
-	Test{cmplx(0, 2), cmplx(1, 1), cmplx(1, 1)},
-	Test{cmplx(0, 2), cmplx(1, -1), cmplx(-1, 1)},
-	Test{cmplx(0, 2), cmplx(1, 2), cmplx(0.8, 0.4)},
-	Test{cmplx(0, 2), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(1, inf), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 2), cmplx(-1, 0), cmplx(negzero, -2)},
-	Test{cmplx(0, 2), cmplx(-1, 1), cmplx(1, -1)},
-	Test{cmplx(0, 2), cmplx(-1, -1), cmplx(-1, -1)},
-	Test{cmplx(0, 2), cmplx(-1, 2), cmplx(0.8, -0.4)},
-	Test{cmplx(0, 2), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(0, 2), cmplx(-1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, 2), cmplx(2, 0), cmplx(0, 1)},
-	Test{cmplx(0, 2), cmplx(2, 1), cmplx(0.4, 0.8)},
-	Test{cmplx(0, 2), cmplx(2, -1), cmplx(-0.4, 0.8)},
-	Test{cmplx(0, 2), cmplx(2, 2), cmplx(0.5, 0.5)},
-	Test{cmplx(0, 2), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(2, inf), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 2), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(0, 2), cmplx(nan, inf), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(nan, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 2), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(0, 2), cmplx(inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(0, 2), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(0, 2), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 2), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(0, 2), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(0, 2), cmplx(-inf, nan), cmplx(0, negzero)},
-	Test{cmplx(0, 2), cmplx(-inf, inf), cmplx(0, negzero)},
-	Test{cmplx(0, 2), cmplx(-inf, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(0, nan), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(0, nan), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(0, 0), cmplx(nan, inf)},
-	Test{cmplx(0, inf), cmplx(0, 1), cmplx(inf, nan)},
-	Test{cmplx(0, inf), cmplx(0, -1), cmplx(-inf, nan)},
-	Test{cmplx(0, inf), cmplx(0, 2), cmplx(inf, nan)},
-	Test{cmplx(0, inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(1, 0), cmplx(nan, inf)},
-	Test{cmplx(0, inf), cmplx(1, 1), cmplx(inf, inf)},
-	Test{cmplx(0, inf), cmplx(1, -1), cmplx(-inf, inf)},
-	Test{cmplx(0, inf), cmplx(1, 2), cmplx(inf, inf)},
-	Test{cmplx(0, inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-1, 0), cmplx(nan, -inf)},
-	Test{cmplx(0, inf), cmplx(-1, 1), cmplx(inf, -inf)},
-	Test{cmplx(0, inf), cmplx(-1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(0, inf), cmplx(-1, 2), cmplx(inf, -inf)},
-	Test{cmplx(0, inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(2, 0), cmplx(nan, inf)},
-	Test{cmplx(0, inf), cmplx(2, 1), cmplx(inf, inf)},
-	Test{cmplx(0, inf), cmplx(2, -1), cmplx(-inf, inf)},
-	Test{cmplx(0, inf), cmplx(2, 2), cmplx(inf, inf)},
-	Test{cmplx(0, inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(0, inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(0, 0), cmplx(nan, -inf)},
-	Test{cmplx(0, -inf), cmplx(0, 1), cmplx(-inf, nan)},
-	Test{cmplx(0, -inf), cmplx(0, -1), cmplx(inf, nan)},
-	Test{cmplx(0, -inf), cmplx(0, 2), cmplx(-inf, nan)},
-	Test{cmplx(0, -inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(1, 0), cmplx(nan, -inf)},
-	Test{cmplx(0, -inf), cmplx(1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(0, -inf), cmplx(1, -1), cmplx(inf, -inf)},
-	Test{cmplx(0, -inf), cmplx(1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(0, -inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-1, 0), cmplx(nan, inf)},
-	Test{cmplx(0, -inf), cmplx(-1, 1), cmplx(-inf, inf)},
-	Test{cmplx(0, -inf), cmplx(-1, -1), cmplx(inf, inf)},
-	Test{cmplx(0, -inf), cmplx(-1, 2), cmplx(-inf, inf)},
-	Test{cmplx(0, -inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(2, 0), cmplx(nan, -inf)},
-	Test{cmplx(0, -inf), cmplx(2, 1), cmplx(-inf, -inf)},
-	Test{cmplx(0, -inf), cmplx(2, -1), cmplx(inf, -inf)},
-	Test{cmplx(0, -inf), cmplx(2, 2), cmplx(-inf, -inf)},
-	Test{cmplx(0, -inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(0, -inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(0, 0), cmplx(inf, nan)},
-	Test{cmplx(1, 0), cmplx(0, 1), cmplx(0, -1)},
-	Test{cmplx(1, 0), cmplx(0, -1), cmplx(negzero, 1)},
-	Test{cmplx(1, 0), cmplx(0, 2), cmplx(0, -0.5)},
-	Test{cmplx(1, 0), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(0, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 0), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 0), cmplx(1, 0), cmplx(1, 0)},
-	Test{cmplx(1, 0), cmplx(1, 1), cmplx(0.5, -0.5)},
-	Test{cmplx(1, 0), cmplx(1, -1), cmplx(0.5, 0.5)},
-	Test{cmplx(1, 0), cmplx(1, 2), cmplx(0.2, -0.4)},
-	Test{cmplx(1, 0), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(1, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 0), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 0), cmplx(-1, 0), cmplx(-1, negzero)},
-	Test{cmplx(1, 0), cmplx(-1, 1), cmplx(-0.5, -0.5)},
-	Test{cmplx(1, 0), cmplx(-1, -1), cmplx(-0.5, 0.5)},
-	Test{cmplx(1, 0), cmplx(-1, 2), cmplx(-0.2, -0.4)},
-	Test{cmplx(1, 0), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 0), cmplx(-1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 0), cmplx(2, 0), cmplx(0.5, 0)},
-	Test{cmplx(1, 0), cmplx(2, 1), cmplx(0.4, -0.2)},
-	Test{cmplx(1, 0), cmplx(2, -1), cmplx(0.4, 0.2)},
-	Test{cmplx(1, 0), cmplx(2, 2), cmplx(0.25, -0.25)},
-	Test{cmplx(1, 0), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(2, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 0), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 0), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 0), cmplx(nan, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 0), cmplx(nan, -inf), cmplx(0, 0)},
-	Test{cmplx(1, 0), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(1, 0), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(1, 0), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(1, 0), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(1, 0), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(1, 0), cmplx(inf, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 0), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(1, 0), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(1, 0), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(1, 0), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(1, 0), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(1, 0), cmplx(-inf, nan), cmplx(negzero, negzero)},
-	Test{cmplx(1, 0), cmplx(-inf, inf), cmplx(negzero, negzero)},
-	Test{cmplx(1, 0), cmplx(-inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 1), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(1, 1), cmplx(0, 1), cmplx(1, -1)},
-	Test{cmplx(1, 1), cmplx(0, -1), cmplx(-1, 1)},
-	Test{cmplx(1, 1), cmplx(0, 2), cmplx(0.5, -0.5)},
-	Test{cmplx(1, 1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(0, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 1), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 1), cmplx(1, 0), cmplx(1, 1)},
-	Test{cmplx(1, 1), cmplx(1, 1), cmplx(1, 0)},
-	Test{cmplx(1, 1), cmplx(1, -1), cmplx(0, 1)},
-	Test{cmplx(1, 1), cmplx(1, 2), cmplx(0.6, -0.2)},
-	Test{cmplx(1, 1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(1, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 1), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 1), cmplx(-1, 0), cmplx(-1, -1)},
-	Test{cmplx(1, 1), cmplx(-1, 1), cmplx(negzero, -1)},
-	Test{cmplx(1, 1), cmplx(-1, -1), cmplx(-1, negzero)},
-	Test{cmplx(1, 1), cmplx(-1, 2), cmplx(0.2, -0.6)},
-	Test{cmplx(1, 1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 1), cmplx(-1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 1), cmplx(2, 0), cmplx(0.5, 0.5)},
-	Test{cmplx(1, 1), cmplx(2, 1), cmplx(0.6, 0.2)},
-	Test{cmplx(1, 1), cmplx(2, -1), cmplx(0.2, 0.6)},
-	Test{cmplx(1, 1), cmplx(2, 2), cmplx(0.5, 0)},
-	Test{cmplx(1, 1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(2, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 1), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 1), cmplx(nan, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 1), cmplx(nan, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 1), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(1, 1), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(1, 1), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(1, 1), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(1, 1), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(1, 1), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(1, 1), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(1, 1), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(1, 1), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(1, 1), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(1, 1), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(1, 1), cmplx(-inf, nan), cmplx(negzero, negzero)},
-	Test{cmplx(1, 1), cmplx(-inf, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 1), cmplx(-inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, -1), cmplx(0, 0), cmplx(inf, -inf)},
-	Test{cmplx(1, -1), cmplx(0, 1), cmplx(-1, -1)},
-	Test{cmplx(1, -1), cmplx(0, -1), cmplx(1, 1)},
-	Test{cmplx(1, -1), cmplx(0, 2), cmplx(-0.5, -0.5)},
-	Test{cmplx(1, -1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(0, inf), cmplx(negzero, negzero)},
-	Test{cmplx(1, -1), cmplx(0, -inf), cmplx(0, 0)},
-	Test{cmplx(1, -1), cmplx(1, 0), cmplx(1, -1)},
-	Test{cmplx(1, -1), cmplx(1, 1), cmplx(0, -1)},
-	Test{cmplx(1, -1), cmplx(1, -1), cmplx(1, 0)},
-	Test{cmplx(1, -1), cmplx(1, 2), cmplx(-0.2, -0.6)},
-	Test{cmplx(1, -1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(1, inf), cmplx(negzero, negzero)},
-	Test{cmplx(1, -1), cmplx(1, -inf), cmplx(0, 0)},
-	Test{cmplx(1, -1), cmplx(-1, 0), cmplx(-1, 1)},
-	Test{cmplx(1, -1), cmplx(-1, 1), cmplx(-1, negzero)},
-	Test{cmplx(1, -1), cmplx(-1, -1), cmplx(negzero, 1)},
-	Test{cmplx(1, -1), cmplx(-1, 2), cmplx(-0.6, -0.2)},
-	Test{cmplx(1, -1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(-1, inf), cmplx(negzero, negzero)},
-	Test{cmplx(1, -1), cmplx(-1, -inf), cmplx(0, 0)},
-	Test{cmplx(1, -1), cmplx(2, 0), cmplx(0.5, -0.5)},
-	Test{cmplx(1, -1), cmplx(2, 1), cmplx(0.2, -0.6)},
-	Test{cmplx(1, -1), cmplx(2, -1), cmplx(0.6, -0.2)},
-	Test{cmplx(1, -1), cmplx(2, 2), cmplx(0, -0.5)},
-	Test{cmplx(1, -1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(2, inf), cmplx(negzero, negzero)},
-	Test{cmplx(1, -1), cmplx(2, -inf), cmplx(0, 0)},
-	Test{cmplx(1, -1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -1), cmplx(nan, inf), cmplx(negzero, negzero)},
-	Test{cmplx(1, -1), cmplx(nan, -inf), cmplx(0, 0)},
-	Test{cmplx(1, -1), cmplx(inf, 0), cmplx(0, negzero)},
-	Test{cmplx(1, -1), cmplx(inf, 1), cmplx(0, negzero)},
-	Test{cmplx(1, -1), cmplx(inf, -1), cmplx(0, negzero)},
-	Test{cmplx(1, -1), cmplx(inf, 2), cmplx(0, negzero)},
-	Test{cmplx(1, -1), cmplx(inf, nan), cmplx(0, negzero)},
-	Test{cmplx(1, -1), cmplx(inf, inf), cmplx(0, negzero)},
-	Test{cmplx(1, -1), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(1, -1), cmplx(-inf, 0), cmplx(negzero, 0)},
-	Test{cmplx(1, -1), cmplx(-inf, 1), cmplx(negzero, 0)},
-	Test{cmplx(1, -1), cmplx(-inf, -1), cmplx(negzero, 0)},
-	Test{cmplx(1, -1), cmplx(-inf, 2), cmplx(negzero, 0)},
-	Test{cmplx(1, -1), cmplx(-inf, nan), cmplx(negzero, 0)},
-	Test{cmplx(1, -1), cmplx(-inf, inf), cmplx(negzero, 0)},
-	Test{cmplx(1, -1), cmplx(-inf, -inf), cmplx(0, 0)},
-	Test{cmplx(1, 2), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(1, 2), cmplx(0, 1), cmplx(2, -1)},
-	Test{cmplx(1, 2), cmplx(0, -1), cmplx(-2, 1)},
-	Test{cmplx(1, 2), cmplx(0, 2), cmplx(1, -0.5)},
-	Test{cmplx(1, 2), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(0, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 2), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 2), cmplx(1, 0), cmplx(1, 2)},
-	Test{cmplx(1, 2), cmplx(1, 1), cmplx(1.5, 0.5)},
-	Test{cmplx(1, 2), cmplx(1, -1), cmplx(-0.5, 1.5)},
-	Test{cmplx(1, 2), cmplx(1, 2), cmplx(1, 0)},
-	Test{cmplx(1, 2), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(1, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 2), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 2), cmplx(-1, 0), cmplx(-1, -2)},
-	Test{cmplx(1, 2), cmplx(-1, 1), cmplx(0.5, -1.5)},
-	Test{cmplx(1, 2), cmplx(-1, -1), cmplx(-1.5, -0.5)},
-	Test{cmplx(1, 2), cmplx(-1, 2), cmplx(0.6, -0.8)},
-	Test{cmplx(1, 2), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 2), cmplx(-1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 2), cmplx(2, 0), cmplx(0.5, 1)},
-	Test{cmplx(1, 2), cmplx(2, 1), cmplx(0.8, 0.6)},
-	Test{cmplx(1, 2), cmplx(2, -1), cmplx(0, 1)},
-	Test{cmplx(1, 2), cmplx(2, 2), cmplx(0.75, 0.25)},
-	Test{cmplx(1, 2), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(2, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 2), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 2), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(1, 2), cmplx(nan, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 2), cmplx(nan, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 2), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(1, 2), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(1, 2), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(1, 2), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(1, 2), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(1, 2), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(1, 2), cmplx(inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(1, 2), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(1, 2), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(1, 2), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(1, 2), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(1, 2), cmplx(-inf, nan), cmplx(negzero, negzero)},
-	Test{cmplx(1, 2), cmplx(-inf, inf), cmplx(0, negzero)},
-	Test{cmplx(1, 2), cmplx(-inf, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(1, nan), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(1, nan), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(1, inf), cmplx(0, 1), cmplx(inf, nan)},
-	Test{cmplx(1, inf), cmplx(0, -1), cmplx(-inf, nan)},
-	Test{cmplx(1, inf), cmplx(0, 2), cmplx(inf, nan)},
-	Test{cmplx(1, inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(1, 0), cmplx(nan, inf)},
-	Test{cmplx(1, inf), cmplx(1, 1), cmplx(inf, inf)},
-	Test{cmplx(1, inf), cmplx(1, -1), cmplx(-inf, inf)},
-	Test{cmplx(1, inf), cmplx(1, 2), cmplx(inf, inf)},
-	Test{cmplx(1, inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-1, 0), cmplx(nan, -inf)},
-	Test{cmplx(1, inf), cmplx(-1, 1), cmplx(inf, -inf)},
-	Test{cmplx(1, inf), cmplx(-1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(1, inf), cmplx(-1, 2), cmplx(inf, -inf)},
-	Test{cmplx(1, inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(2, 0), cmplx(nan, inf)},
-	Test{cmplx(1, inf), cmplx(2, 1), cmplx(inf, inf)},
-	Test{cmplx(1, inf), cmplx(2, -1), cmplx(-inf, inf)},
-	Test{cmplx(1, inf), cmplx(2, 2), cmplx(inf, inf)},
-	Test{cmplx(1, inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(1, inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(0, 0), cmplx(inf, -inf)},
-	Test{cmplx(1, -inf), cmplx(0, 1), cmplx(-inf, nan)},
-	Test{cmplx(1, -inf), cmplx(0, -1), cmplx(inf, nan)},
-	Test{cmplx(1, -inf), cmplx(0, 2), cmplx(-inf, nan)},
-	Test{cmplx(1, -inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(1, 0), cmplx(nan, -inf)},
-	Test{cmplx(1, -inf), cmplx(1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(1, -inf), cmplx(1, -1), cmplx(inf, -inf)},
-	Test{cmplx(1, -inf), cmplx(1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(1, -inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-1, 0), cmplx(nan, inf)},
-	Test{cmplx(1, -inf), cmplx(-1, 1), cmplx(-inf, inf)},
-	Test{cmplx(1, -inf), cmplx(-1, -1), cmplx(inf, inf)},
-	Test{cmplx(1, -inf), cmplx(-1, 2), cmplx(-inf, inf)},
-	Test{cmplx(1, -inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(2, 0), cmplx(nan, -inf)},
-	Test{cmplx(1, -inf), cmplx(2, 1), cmplx(-inf, -inf)},
-	Test{cmplx(1, -inf), cmplx(2, -1), cmplx(inf, -inf)},
-	Test{cmplx(1, -inf), cmplx(2, 2), cmplx(-inf, -inf)},
-	Test{cmplx(1, -inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(1, -inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(0, 0), cmplx(-inf, nan)},
-	Test{cmplx(-1, 0), cmplx(0, 1), cmplx(0, 1)},
-	Test{cmplx(-1, 0), cmplx(0, -1), cmplx(negzero, -1)},
-	Test{cmplx(-1, 0), cmplx(0, 2), cmplx(0, 0.5)},
-	Test{cmplx(-1, 0), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(0, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 0), cmplx(0, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 0), cmplx(1, 0), cmplx(-1, 0)},
-	Test{cmplx(-1, 0), cmplx(1, 1), cmplx(-0.5, 0.5)},
-	Test{cmplx(-1, 0), cmplx(1, -1), cmplx(-0.5, -0.5)},
-	Test{cmplx(-1, 0), cmplx(1, 2), cmplx(-0.2, 0.4)},
-	Test{cmplx(-1, 0), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(1, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 0), cmplx(1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 0), cmplx(-1, 0), cmplx(1, negzero)},
-	Test{cmplx(-1, 0), cmplx(-1, 1), cmplx(0.5, 0.5)},
-	Test{cmplx(-1, 0), cmplx(-1, -1), cmplx(0.5, -0.5)},
-	Test{cmplx(-1, 0), cmplx(-1, 2), cmplx(0.2, 0.4)},
-	Test{cmplx(-1, 0), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(-1, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 0), cmplx(-1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 0), cmplx(2, 0), cmplx(-0.5, 0)},
-	Test{cmplx(-1, 0), cmplx(2, 1), cmplx(-0.4, 0.2)},
-	Test{cmplx(-1, 0), cmplx(2, -1), cmplx(-0.4, -0.2)},
-	Test{cmplx(-1, 0), cmplx(2, 2), cmplx(-0.25, 0.25)},
-	Test{cmplx(-1, 0), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(2, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 0), cmplx(2, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 0), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 0), cmplx(nan, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 0), cmplx(nan, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 0), cmplx(inf, 0), cmplx(negzero, 0)},
-	Test{cmplx(-1, 0), cmplx(inf, 1), cmplx(negzero, 0)},
-	Test{cmplx(-1, 0), cmplx(inf, -1), cmplx(negzero, 0)},
-	Test{cmplx(-1, 0), cmplx(inf, 2), cmplx(negzero, 0)},
-	Test{cmplx(-1, 0), cmplx(inf, nan), cmplx(negzero, 0)},
-	Test{cmplx(-1, 0), cmplx(inf, inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, 0), cmplx(inf, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 0), cmplx(-inf, 0), cmplx(0, negzero)},
-	Test{cmplx(-1, 0), cmplx(-inf, 1), cmplx(0, negzero)},
-	Test{cmplx(-1, 0), cmplx(-inf, -1), cmplx(0, negzero)},
-	Test{cmplx(-1, 0), cmplx(-inf, 2), cmplx(0, negzero)},
-	Test{cmplx(-1, 0), cmplx(-inf, nan), cmplx(0, 0)},
-	Test{cmplx(-1, 0), cmplx(-inf, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 0), cmplx(-inf, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, 1), cmplx(0, 0), cmplx(-inf, inf)},
-	Test{cmplx(-1, 1), cmplx(0, 1), cmplx(1, 1)},
-	Test{cmplx(-1, 1), cmplx(0, -1), cmplx(-1, -1)},
-	Test{cmplx(-1, 1), cmplx(0, 2), cmplx(0.5, 0.5)},
-	Test{cmplx(-1, 1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(0, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 1), cmplx(0, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 1), cmplx(1, 0), cmplx(-1, 1)},
-	Test{cmplx(-1, 1), cmplx(1, 1), cmplx(0, 1)},
-	Test{cmplx(-1, 1), cmplx(1, -1), cmplx(-1, 0)},
-	Test{cmplx(-1, 1), cmplx(1, 2), cmplx(0.2, 0.6)},
-	Test{cmplx(-1, 1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(1, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 1), cmplx(1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 1), cmplx(-1, 0), cmplx(1, -1)},
-	Test{cmplx(-1, 1), cmplx(-1, 1), cmplx(1, negzero)},
-	Test{cmplx(-1, 1), cmplx(-1, -1), cmplx(negzero, -1)},
-	Test{cmplx(-1, 1), cmplx(-1, 2), cmplx(0.6, 0.2)},
-	Test{cmplx(-1, 1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(-1, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 1), cmplx(-1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 1), cmplx(2, 0), cmplx(-0.5, 0.5)},
-	Test{cmplx(-1, 1), cmplx(2, 1), cmplx(-0.2, 0.6)},
-	Test{cmplx(-1, 1), cmplx(2, -1), cmplx(-0.6, 0.2)},
-	Test{cmplx(-1, 1), cmplx(2, 2), cmplx(0, 0.5)},
-	Test{cmplx(-1, 1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(2, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 1), cmplx(2, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 1), cmplx(nan, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 1), cmplx(nan, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 1), cmplx(inf, 0), cmplx(negzero, 0)},
-	Test{cmplx(-1, 1), cmplx(inf, 1), cmplx(negzero, 0)},
-	Test{cmplx(-1, 1), cmplx(inf, -1), cmplx(negzero, 0)},
-	Test{cmplx(-1, 1), cmplx(inf, 2), cmplx(negzero, 0)},
-	Test{cmplx(-1, 1), cmplx(inf, nan), cmplx(negzero, 0)},
-	Test{cmplx(-1, 1), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 1), cmplx(inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, 1), cmplx(-inf, 0), cmplx(0, negzero)},
-	Test{cmplx(-1, 1), cmplx(-inf, 1), cmplx(0, negzero)},
-	Test{cmplx(-1, 1), cmplx(-inf, -1), cmplx(0, negzero)},
-	Test{cmplx(-1, 1), cmplx(-inf, 2), cmplx(0, negzero)},
-	Test{cmplx(-1, 1), cmplx(-inf, nan), cmplx(0, negzero)},
-	Test{cmplx(-1, 1), cmplx(-inf, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 1), cmplx(-inf, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, -1), cmplx(0, 0), cmplx(-inf, -inf)},
-	Test{cmplx(-1, -1), cmplx(0, 1), cmplx(-1, 1)},
-	Test{cmplx(-1, -1), cmplx(0, -1), cmplx(1, -1)},
-	Test{cmplx(-1, -1), cmplx(0, 2), cmplx(-0.5, 0.5)},
-	Test{cmplx(-1, -1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(0, inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, -1), cmplx(0, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, -1), cmplx(1, 0), cmplx(-1, -1)},
-	Test{cmplx(-1, -1), cmplx(1, 1), cmplx(-1, 0)},
-	Test{cmplx(-1, -1), cmplx(1, -1), cmplx(0, -1)},
-	Test{cmplx(-1, -1), cmplx(1, 2), cmplx(-0.6, 0.2)},
-	Test{cmplx(-1, -1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(1, inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, -1), cmplx(1, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, -1), cmplx(-1, 0), cmplx(1, 1)},
-	Test{cmplx(-1, -1), cmplx(-1, 1), cmplx(negzero, 1)},
-	Test{cmplx(-1, -1), cmplx(-1, -1), cmplx(1, negzero)},
-	Test{cmplx(-1, -1), cmplx(-1, 2), cmplx(-0.2, 0.6)},
-	Test{cmplx(-1, -1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(-1, inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, -1), cmplx(-1, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, -1), cmplx(2, 0), cmplx(-0.5, -0.5)},
-	Test{cmplx(-1, -1), cmplx(2, 1), cmplx(-0.6, -0.2)},
-	Test{cmplx(-1, -1), cmplx(2, -1), cmplx(-0.2, -0.6)},
-	Test{cmplx(-1, -1), cmplx(2, 2), cmplx(-0.5, 0)},
-	Test{cmplx(-1, -1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(2, inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, -1), cmplx(2, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, -1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -1), cmplx(nan, inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, -1), cmplx(nan, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, -1), cmplx(inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(-1, -1), cmplx(inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(-1, -1), cmplx(inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(-1, -1), cmplx(inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(-1, -1), cmplx(inf, nan), cmplx(negzero, negzero)},
-	Test{cmplx(-1, -1), cmplx(inf, inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, -1), cmplx(inf, -inf), cmplx(0, negzero)},
-	Test{cmplx(-1, -1), cmplx(-inf, 0), cmplx(0, 0)},
-	Test{cmplx(-1, -1), cmplx(-inf, 1), cmplx(0, 0)},
-	Test{cmplx(-1, -1), cmplx(-inf, -1), cmplx(0, 0)},
-	Test{cmplx(-1, -1), cmplx(-inf, 2), cmplx(0, 0)},
-	Test{cmplx(-1, -1), cmplx(-inf, nan), cmplx(0, 0)},
-	Test{cmplx(-1, -1), cmplx(-inf, inf), cmplx(0, 0)},
-	Test{cmplx(-1, -1), cmplx(-inf, -inf), cmplx(0, 0)},
-	Test{cmplx(-1, 2), cmplx(0, 0), cmplx(-inf, inf)},
-	Test{cmplx(-1, 2), cmplx(0, 1), cmplx(2, 1)},
-	Test{cmplx(-1, 2), cmplx(0, -1), cmplx(-2, -1)},
-	Test{cmplx(-1, 2), cmplx(0, 2), cmplx(1, 0.5)},
-	Test{cmplx(-1, 2), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(0, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 2), cmplx(0, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 2), cmplx(1, 0), cmplx(-1, 2)},
-	Test{cmplx(-1, 2), cmplx(1, 1), cmplx(0.5, 1.5)},
-	Test{cmplx(-1, 2), cmplx(1, -1), cmplx(-1.5, 0.5)},
-	Test{cmplx(-1, 2), cmplx(1, 2), cmplx(0.6, 0.8)},
-	Test{cmplx(-1, 2), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(1, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 2), cmplx(1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 2), cmplx(-1, 0), cmplx(1, -2)},
-	Test{cmplx(-1, 2), cmplx(-1, 1), cmplx(1.5, -0.5)},
-	Test{cmplx(-1, 2), cmplx(-1, -1), cmplx(-0.5, -1.5)},
-	Test{cmplx(-1, 2), cmplx(-1, 2), cmplx(1, 0)},
-	Test{cmplx(-1, 2), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(-1, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 2), cmplx(-1, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 2), cmplx(2, 0), cmplx(-0.5, 1)},
-	Test{cmplx(-1, 2), cmplx(2, 1), cmplx(0, 1)},
-	Test{cmplx(-1, 2), cmplx(2, -1), cmplx(-0.8, 0.6)},
-	Test{cmplx(-1, 2), cmplx(2, 2), cmplx(0.25, 0.75)},
-	Test{cmplx(-1, 2), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(2, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 2), cmplx(2, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 2), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, 2), cmplx(nan, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 2), cmplx(nan, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, 2), cmplx(inf, 0), cmplx(negzero, 0)},
-	Test{cmplx(-1, 2), cmplx(inf, 1), cmplx(negzero, 0)},
-	Test{cmplx(-1, 2), cmplx(inf, -1), cmplx(negzero, 0)},
-	Test{cmplx(-1, 2), cmplx(inf, 2), cmplx(negzero, 0)},
-	Test{cmplx(-1, 2), cmplx(inf, nan), cmplx(negzero, 0)},
-	Test{cmplx(-1, 2), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(-1, 2), cmplx(inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(-1, 2), cmplx(-inf, 0), cmplx(0, negzero)},
-	Test{cmplx(-1, 2), cmplx(-inf, 1), cmplx(0, negzero)},
-	Test{cmplx(-1, 2), cmplx(-inf, -1), cmplx(0, negzero)},
-	Test{cmplx(-1, 2), cmplx(-inf, 2), cmplx(0, negzero)},
-	Test{cmplx(-1, 2), cmplx(-inf, nan), cmplx(0, negzero)},
-	Test{cmplx(-1, 2), cmplx(-inf, inf), cmplx(0, negzero)},
-	Test{cmplx(-1, 2), cmplx(-inf, -inf), cmplx(negzero, negzero)},
-	Test{cmplx(-1, nan), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, nan), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(0, 0), cmplx(-inf, inf)},
-	Test{cmplx(-1, inf), cmplx(0, 1), cmplx(inf, nan)},
-	Test{cmplx(-1, inf), cmplx(0, -1), cmplx(-inf, nan)},
-	Test{cmplx(-1, inf), cmplx(0, 2), cmplx(inf, nan)},
-	Test{cmplx(-1, inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(1, 0), cmplx(nan, inf)},
-	Test{cmplx(-1, inf), cmplx(1, 1), cmplx(inf, inf)},
-	Test{cmplx(-1, inf), cmplx(1, -1), cmplx(-inf, inf)},
-	Test{cmplx(-1, inf), cmplx(1, 2), cmplx(inf, inf)},
-	Test{cmplx(-1, inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-1, 0), cmplx(nan, -inf)},
-	Test{cmplx(-1, inf), cmplx(-1, 1), cmplx(inf, -inf)},
-	Test{cmplx(-1, inf), cmplx(-1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-1, inf), cmplx(-1, 2), cmplx(inf, -inf)},
-	Test{cmplx(-1, inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(2, 0), cmplx(nan, inf)},
-	Test{cmplx(-1, inf), cmplx(2, 1), cmplx(inf, inf)},
-	Test{cmplx(-1, inf), cmplx(2, -1), cmplx(-inf, inf)},
-	Test{cmplx(-1, inf), cmplx(2, 2), cmplx(inf, inf)},
-	Test{cmplx(-1, inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(0, 0), cmplx(-inf, -inf)},
-	Test{cmplx(-1, -inf), cmplx(0, 1), cmplx(-inf, nan)},
-	Test{cmplx(-1, -inf), cmplx(0, -1), cmplx(inf, nan)},
-	Test{cmplx(-1, -inf), cmplx(0, 2), cmplx(-inf, nan)},
-	Test{cmplx(-1, -inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(1, 0), cmplx(nan, -inf)},
-	Test{cmplx(-1, -inf), cmplx(1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(-1, -inf), cmplx(1, -1), cmplx(inf, -inf)},
-	Test{cmplx(-1, -inf), cmplx(1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(-1, -inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-1, 0), cmplx(nan, inf)},
-	Test{cmplx(-1, -inf), cmplx(-1, 1), cmplx(-inf, inf)},
-	Test{cmplx(-1, -inf), cmplx(-1, -1), cmplx(inf, inf)},
-	Test{cmplx(-1, -inf), cmplx(-1, 2), cmplx(-inf, inf)},
-	Test{cmplx(-1, -inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(2, 0), cmplx(nan, -inf)},
-	Test{cmplx(-1, -inf), cmplx(2, 1), cmplx(-inf, -inf)},
-	Test{cmplx(-1, -inf), cmplx(2, -1), cmplx(inf, -inf)},
-	Test{cmplx(-1, -inf), cmplx(2, 2), cmplx(-inf, -inf)},
-	Test{cmplx(-1, -inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-1, -inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(0, 0), cmplx(inf, nan)},
-	Test{cmplx(2, 0), cmplx(0, 1), cmplx(0, -2)},
-	Test{cmplx(2, 0), cmplx(0, -1), cmplx(negzero, 2)},
-	Test{cmplx(2, 0), cmplx(0, 2), cmplx(0, -1)},
-	Test{cmplx(2, 0), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(0, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 0), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 0), cmplx(1, 0), cmplx(2, 0)},
-	Test{cmplx(2, 0), cmplx(1, 1), cmplx(1, -1)},
-	Test{cmplx(2, 0), cmplx(1, -1), cmplx(1, 1)},
-	Test{cmplx(2, 0), cmplx(1, 2), cmplx(0.4, -0.8)},
-	Test{cmplx(2, 0), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(1, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 0), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 0), cmplx(-1, 0), cmplx(-2, negzero)},
-	Test{cmplx(2, 0), cmplx(-1, 1), cmplx(-1, -1)},
-	Test{cmplx(2, 0), cmplx(-1, -1), cmplx(-1, 1)},
-	Test{cmplx(2, 0), cmplx(-1, 2), cmplx(-0.4, -0.8)},
-	Test{cmplx(2, 0), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 0), cmplx(-1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 0), cmplx(2, 0), cmplx(1, 0)},
-	Test{cmplx(2, 0), cmplx(2, 1), cmplx(0.8, -0.4)},
-	Test{cmplx(2, 0), cmplx(2, -1), cmplx(0.8, 0.4)},
-	Test{cmplx(2, 0), cmplx(2, 2), cmplx(0.5, -0.5)},
-	Test{cmplx(2, 0), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(2, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 0), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 0), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 0), cmplx(nan, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 0), cmplx(nan, -inf), cmplx(0, 0)},
-	Test{cmplx(2, 0), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(2, 0), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(2, 0), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(2, 0), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(2, 0), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(2, 0), cmplx(inf, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 0), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(2, 0), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(2, 0), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(2, 0), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(2, 0), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(2, 0), cmplx(-inf, nan), cmplx(negzero, negzero)},
-	Test{cmplx(2, 0), cmplx(-inf, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, 0), cmplx(-inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 1), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(2, 1), cmplx(0, 1), cmplx(1, -2)},
-	Test{cmplx(2, 1), cmplx(0, -1), cmplx(-1, 2)},
-	Test{cmplx(2, 1), cmplx(0, 2), cmplx(0.5, -1)},
-	Test{cmplx(2, 1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(0, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 1), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 1), cmplx(1, 0), cmplx(2, 1)},
-	Test{cmplx(2, 1), cmplx(1, 1), cmplx(1.5, -0.5)},
-	Test{cmplx(2, 1), cmplx(1, -1), cmplx(0.5, 1.5)},
-	Test{cmplx(2, 1), cmplx(1, 2), cmplx(0.8, -0.6)},
-	Test{cmplx(2, 1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(1, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 1), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 1), cmplx(-1, 0), cmplx(-2, -1)},
-	Test{cmplx(2, 1), cmplx(-1, 1), cmplx(-0.5, -1.5)},
-	Test{cmplx(2, 1), cmplx(-1, -1), cmplx(-1.5, 0.5)},
-	Test{cmplx(2, 1), cmplx(-1, 2), cmplx(0, -1)},
-	Test{cmplx(2, 1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 1), cmplx(-1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 1), cmplx(2, 0), cmplx(1, 0.5)},
-	Test{cmplx(2, 1), cmplx(2, 1), cmplx(1, 0)},
-	Test{cmplx(2, 1), cmplx(2, -1), cmplx(0.6, 0.8)},
-	Test{cmplx(2, 1), cmplx(2, 2), cmplx(0.75, -0.25)},
-	Test{cmplx(2, 1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(2, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 1), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 1), cmplx(nan, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 1), cmplx(nan, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 1), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(2, 1), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(2, 1), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(2, 1), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(2, 1), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(2, 1), cmplx(inf, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 1), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(2, 1), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(2, 1), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(2, 1), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(2, 1), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(2, 1), cmplx(-inf, nan), cmplx(negzero, negzero)},
-	Test{cmplx(2, 1), cmplx(-inf, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, 1), cmplx(-inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, -1), cmplx(0, 0), cmplx(inf, -inf)},
-	Test{cmplx(2, -1), cmplx(0, 1), cmplx(-1, -2)},
-	Test{cmplx(2, -1), cmplx(0, -1), cmplx(1, 2)},
-	Test{cmplx(2, -1), cmplx(0, 2), cmplx(-0.5, -1)},
-	Test{cmplx(2, -1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(0, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, -1), cmplx(0, -inf), cmplx(0, 0)},
-	Test{cmplx(2, -1), cmplx(1, 0), cmplx(2, -1)},
-	Test{cmplx(2, -1), cmplx(1, 1), cmplx(0.5, -1.5)},
-	Test{cmplx(2, -1), cmplx(1, -1), cmplx(1.5, 0.5)},
-	Test{cmplx(2, -1), cmplx(1, 2), cmplx(0, -1)},
-	Test{cmplx(2, -1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(1, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, -1), cmplx(1, -inf), cmplx(0, 0)},
-	Test{cmplx(2, -1), cmplx(-1, 0), cmplx(-2, 1)},
-	Test{cmplx(2, -1), cmplx(-1, 1), cmplx(-1.5, -0.5)},
-	Test{cmplx(2, -1), cmplx(-1, -1), cmplx(-0.5, 1.5)},
-	Test{cmplx(2, -1), cmplx(-1, 2), cmplx(-0.8, -0.6)},
-	Test{cmplx(2, -1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(-1, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, -1), cmplx(-1, -inf), cmplx(0, 0)},
-	Test{cmplx(2, -1), cmplx(2, 0), cmplx(1, -0.5)},
-	Test{cmplx(2, -1), cmplx(2, 1), cmplx(0.6, -0.8)},
-	Test{cmplx(2, -1), cmplx(2, -1), cmplx(1, 0)},
-	Test{cmplx(2, -1), cmplx(2, 2), cmplx(0.25, -0.75)},
-	Test{cmplx(2, -1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(2, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, -1), cmplx(2, -inf), cmplx(0, 0)},
-	Test{cmplx(2, -1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -1), cmplx(nan, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, -1), cmplx(nan, -inf), cmplx(0, 0)},
-	Test{cmplx(2, -1), cmplx(inf, 0), cmplx(0, negzero)},
-	Test{cmplx(2, -1), cmplx(inf, 1), cmplx(0, negzero)},
-	Test{cmplx(2, -1), cmplx(inf, -1), cmplx(0, negzero)},
-	Test{cmplx(2, -1), cmplx(inf, 2), cmplx(0, negzero)},
-	Test{cmplx(2, -1), cmplx(inf, nan), cmplx(0, negzero)},
-	Test{cmplx(2, -1), cmplx(inf, inf), cmplx(0, negzero)},
-	Test{cmplx(2, -1), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(2, -1), cmplx(-inf, 0), cmplx(negzero, 0)},
-	Test{cmplx(2, -1), cmplx(-inf, 1), cmplx(negzero, 0)},
-	Test{cmplx(2, -1), cmplx(-inf, -1), cmplx(negzero, 0)},
-	Test{cmplx(2, -1), cmplx(-inf, 2), cmplx(negzero, 0)},
-	Test{cmplx(2, -1), cmplx(-inf, nan), cmplx(negzero, 0)},
-	Test{cmplx(2, -1), cmplx(-inf, inf), cmplx(negzero, negzero)},
-	Test{cmplx(2, -1), cmplx(-inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 2), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(2, 2), cmplx(0, 1), cmplx(2, -2)},
-	Test{cmplx(2, 2), cmplx(0, -1), cmplx(-2, 2)},
-	Test{cmplx(2, 2), cmplx(0, 2), cmplx(1, -1)},
-	Test{cmplx(2, 2), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(0, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 2), cmplx(0, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 2), cmplx(1, 0), cmplx(2, 2)},
-	Test{cmplx(2, 2), cmplx(1, 1), cmplx(2, 0)},
-	Test{cmplx(2, 2), cmplx(1, -1), cmplx(0, 2)},
-	Test{cmplx(2, 2), cmplx(1, 2), cmplx(1.2, -0.4)},
-	Test{cmplx(2, 2), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(1, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 2), cmplx(1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 2), cmplx(-1, 0), cmplx(-2, -2)},
-	Test{cmplx(2, 2), cmplx(-1, 1), cmplx(negzero, -2)},
-	Test{cmplx(2, 2), cmplx(-1, -1), cmplx(-2, negzero)},
-	Test{cmplx(2, 2), cmplx(-1, 2), cmplx(0.4, -1.2)},
-	Test{cmplx(2, 2), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(-1, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 2), cmplx(-1, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 2), cmplx(2, 0), cmplx(1, 1)},
-	Test{cmplx(2, 2), cmplx(2, 1), cmplx(1.2, 0.4)},
-	Test{cmplx(2, 2), cmplx(2, -1), cmplx(0.4, 1.2)},
-	Test{cmplx(2, 2), cmplx(2, 2), cmplx(1, 0)},
-	Test{cmplx(2, 2), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(2, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 2), cmplx(2, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 2), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(2, 2), cmplx(nan, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 2), cmplx(nan, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, 2), cmplx(inf, 0), cmplx(0, 0)},
-	Test{cmplx(2, 2), cmplx(inf, 1), cmplx(0, 0)},
-	Test{cmplx(2, 2), cmplx(inf, -1), cmplx(0, 0)},
-	Test{cmplx(2, 2), cmplx(inf, 2), cmplx(0, 0)},
-	Test{cmplx(2, 2), cmplx(inf, nan), cmplx(0, 0)},
-	Test{cmplx(2, 2), cmplx(inf, inf), cmplx(0, 0)},
-	Test{cmplx(2, 2), cmplx(inf, -inf), cmplx(0, 0)},
-	Test{cmplx(2, 2), cmplx(-inf, 0), cmplx(negzero, negzero)},
-	Test{cmplx(2, 2), cmplx(-inf, 1), cmplx(negzero, negzero)},
-	Test{cmplx(2, 2), cmplx(-inf, -1), cmplx(negzero, negzero)},
-	Test{cmplx(2, 2), cmplx(-inf, 2), cmplx(negzero, negzero)},
-	Test{cmplx(2, 2), cmplx(-inf, nan), cmplx(negzero, negzero)},
-	Test{cmplx(2, 2), cmplx(-inf, inf), cmplx(0, negzero)},
-	Test{cmplx(2, 2), cmplx(-inf, -inf), cmplx(negzero, 0)},
-	Test{cmplx(2, nan), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(2, nan), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(2, inf), cmplx(0, 1), cmplx(inf, nan)},
-	Test{cmplx(2, inf), cmplx(0, -1), cmplx(-inf, nan)},
-	Test{cmplx(2, inf), cmplx(0, 2), cmplx(inf, nan)},
-	Test{cmplx(2, inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(1, 0), cmplx(nan, inf)},
-	Test{cmplx(2, inf), cmplx(1, 1), cmplx(inf, inf)},
-	Test{cmplx(2, inf), cmplx(1, -1), cmplx(-inf, inf)},
-	Test{cmplx(2, inf), cmplx(1, 2), cmplx(inf, inf)},
-	Test{cmplx(2, inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-1, 0), cmplx(nan, -inf)},
-	Test{cmplx(2, inf), cmplx(-1, 1), cmplx(inf, -inf)},
-	Test{cmplx(2, inf), cmplx(-1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(2, inf), cmplx(-1, 2), cmplx(inf, -inf)},
-	Test{cmplx(2, inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(2, 0), cmplx(nan, inf)},
-	Test{cmplx(2, inf), cmplx(2, 1), cmplx(inf, inf)},
-	Test{cmplx(2, inf), cmplx(2, -1), cmplx(-inf, inf)},
-	Test{cmplx(2, inf), cmplx(2, 2), cmplx(inf, inf)},
-	Test{cmplx(2, inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(2, inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(0, 0), cmplx(inf, -inf)},
-	Test{cmplx(2, -inf), cmplx(0, 1), cmplx(-inf, nan)},
-	Test{cmplx(2, -inf), cmplx(0, -1), cmplx(inf, nan)},
-	Test{cmplx(2, -inf), cmplx(0, 2), cmplx(-inf, nan)},
-	Test{cmplx(2, -inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(1, 0), cmplx(nan, -inf)},
-	Test{cmplx(2, -inf), cmplx(1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(2, -inf), cmplx(1, -1), cmplx(inf, -inf)},
-	Test{cmplx(2, -inf), cmplx(1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(2, -inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-1, 0), cmplx(nan, inf)},
-	Test{cmplx(2, -inf), cmplx(-1, 1), cmplx(-inf, inf)},
-	Test{cmplx(2, -inf), cmplx(-1, -1), cmplx(inf, inf)},
-	Test{cmplx(2, -inf), cmplx(-1, 2), cmplx(-inf, inf)},
-	Test{cmplx(2, -inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(2, 0), cmplx(nan, -inf)},
-	Test{cmplx(2, -inf), cmplx(2, 1), cmplx(-inf, -inf)},
-	Test{cmplx(2, -inf), cmplx(2, -1), cmplx(inf, -inf)},
-	Test{cmplx(2, -inf), cmplx(2, 2), cmplx(-inf, -inf)},
-	Test{cmplx(2, -inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(2, -inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 0), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 1), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -1), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, 2), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(0, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(0, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(0, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(0, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-1, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-1, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-1, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-1, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(2, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(2, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(2, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(2, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, nan), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(0, 0), cmplx(nan, inf)},
-	Test{cmplx(nan, inf), cmplx(0, 1), cmplx(inf, nan)},
-	Test{cmplx(nan, inf), cmplx(0, -1), cmplx(-inf, nan)},
-	Test{cmplx(nan, inf), cmplx(0, 2), cmplx(inf, nan)},
-	Test{cmplx(nan, inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(1, 0), cmplx(nan, inf)},
-	Test{cmplx(nan, inf), cmplx(1, 1), cmplx(inf, inf)},
-	Test{cmplx(nan, inf), cmplx(1, -1), cmplx(-inf, inf)},
-	Test{cmplx(nan, inf), cmplx(1, 2), cmplx(inf, inf)},
-	Test{cmplx(nan, inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-1, 0), cmplx(nan, -inf)},
-	Test{cmplx(nan, inf), cmplx(-1, 1), cmplx(inf, -inf)},
-	Test{cmplx(nan, inf), cmplx(-1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(nan, inf), cmplx(-1, 2), cmplx(inf, -inf)},
-	Test{cmplx(nan, inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(2, 0), cmplx(nan, inf)},
-	Test{cmplx(nan, inf), cmplx(2, 1), cmplx(inf, inf)},
-	Test{cmplx(nan, inf), cmplx(2, -1), cmplx(-inf, inf)},
-	Test{cmplx(nan, inf), cmplx(2, 2), cmplx(inf, inf)},
-	Test{cmplx(nan, inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(0, 0), cmplx(nan, -inf)},
-	Test{cmplx(nan, -inf), cmplx(0, 1), cmplx(-inf, nan)},
-	Test{cmplx(nan, -inf), cmplx(0, -1), cmplx(inf, nan)},
-	Test{cmplx(nan, -inf), cmplx(0, 2), cmplx(-inf, nan)},
-	Test{cmplx(nan, -inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(1, 0), cmplx(nan, -inf)},
-	Test{cmplx(nan, -inf), cmplx(1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(nan, -inf), cmplx(1, -1), cmplx(inf, -inf)},
-	Test{cmplx(nan, -inf), cmplx(1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(nan, -inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-1, 0), cmplx(nan, inf)},
-	Test{cmplx(nan, -inf), cmplx(-1, 1), cmplx(-inf, inf)},
-	Test{cmplx(nan, -inf), cmplx(-1, -1), cmplx(inf, inf)},
-	Test{cmplx(nan, -inf), cmplx(-1, 2), cmplx(-inf, inf)},
-	Test{cmplx(nan, -inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(2, 0), cmplx(nan, -inf)},
-	Test{cmplx(nan, -inf), cmplx(2, 1), cmplx(-inf, -inf)},
-	Test{cmplx(nan, -inf), cmplx(2, -1), cmplx(inf, -inf)},
-	Test{cmplx(nan, -inf), cmplx(2, 2), cmplx(-inf, -inf)},
-	Test{cmplx(nan, -inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(nan, -inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(0, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, 0), cmplx(0, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, 0), cmplx(0, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, 0), cmplx(0, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, 0), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(1, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, 0), cmplx(1, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, 0), cmplx(1, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, 0), cmplx(1, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, 0), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-1, 0), cmplx(-inf, nan)},
-	Test{cmplx(inf, 0), cmplx(-1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(inf, 0), cmplx(-1, -1), cmplx(-inf, inf)},
-	Test{cmplx(inf, 0), cmplx(-1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(inf, 0), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(2, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, 0), cmplx(2, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, 0), cmplx(2, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, 0), cmplx(2, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, 0), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 0), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(inf, 1), cmplx(0, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, 1), cmplx(0, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, 1), cmplx(0, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, 1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(1, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, 1), cmplx(1, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, 1), cmplx(1, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, 1), cmplx(1, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, 1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-1, 0), cmplx(-inf, nan)},
-	Test{cmplx(inf, 1), cmplx(-1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(inf, 1), cmplx(-1, -1), cmplx(-inf, inf)},
-	Test{cmplx(inf, 1), cmplx(-1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(inf, 1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(2, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, 1), cmplx(2, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, 1), cmplx(2, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, 1), cmplx(2, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, 1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 1), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(0, 0), cmplx(inf, -inf)},
-	Test{cmplx(inf, -1), cmplx(0, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, -1), cmplx(0, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, -1), cmplx(0, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, -1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(1, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, -1), cmplx(1, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, -1), cmplx(1, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, -1), cmplx(1, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, -1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-1, 0), cmplx(-inf, nan)},
-	Test{cmplx(inf, -1), cmplx(-1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(inf, -1), cmplx(-1, -1), cmplx(-inf, inf)},
-	Test{cmplx(inf, -1), cmplx(-1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(inf, -1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(2, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, -1), cmplx(2, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, -1), cmplx(2, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, -1), cmplx(2, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, -1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -1), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(inf, 2), cmplx(0, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, 2), cmplx(0, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, 2), cmplx(0, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, 2), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(1, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, 2), cmplx(1, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, 2), cmplx(1, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, 2), cmplx(1, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, 2), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-1, 0), cmplx(-inf, nan)},
-	Test{cmplx(inf, 2), cmplx(-1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(inf, 2), cmplx(-1, -1), cmplx(-inf, inf)},
-	Test{cmplx(inf, 2), cmplx(-1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(inf, 2), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(2, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, 2), cmplx(2, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, 2), cmplx(2, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, 2), cmplx(2, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, 2), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, 2), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(0, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, nan), cmplx(0, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, nan), cmplx(0, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, nan), cmplx(0, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, nan), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(1, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, nan), cmplx(1, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, nan), cmplx(1, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, nan), cmplx(1, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, nan), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-1, 0), cmplx(-inf, nan)},
-	Test{cmplx(inf, nan), cmplx(-1, 1), cmplx(-inf, -inf)},
-	Test{cmplx(inf, nan), cmplx(-1, -1), cmplx(-inf, inf)},
-	Test{cmplx(inf, nan), cmplx(-1, 2), cmplx(-inf, -inf)},
-	Test{cmplx(inf, nan), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(2, 0), cmplx(inf, nan)},
-	Test{cmplx(inf, nan), cmplx(2, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, nan), cmplx(2, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, nan), cmplx(2, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, nan), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, nan), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(0, 0), cmplx(inf, inf)},
-	Test{cmplx(inf, inf), cmplx(0, 1), cmplx(inf, -inf)},
-	Test{cmplx(inf, inf), cmplx(0, -1), cmplx(-inf, inf)},
-	Test{cmplx(inf, inf), cmplx(0, 2), cmplx(inf, -inf)},
-	Test{cmplx(inf, inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(1, 0), cmplx(inf, inf)},
-	Test{cmplx(inf, inf), cmplx(1, 1), cmplx(inf, nan)},
-	Test{cmplx(inf, inf), cmplx(1, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, inf), cmplx(1, 2), cmplx(inf, nan)},
-	Test{cmplx(inf, inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-1, 0), cmplx(-inf, -inf)},
-	Test{cmplx(inf, inf), cmplx(-1, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, inf), cmplx(-1, -1), cmplx(-inf, nan)},
-	Test{cmplx(inf, inf), cmplx(-1, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(2, 0), cmplx(inf, inf)},
-	Test{cmplx(inf, inf), cmplx(2, 1), cmplx(inf, nan)},
-	Test{cmplx(inf, inf), cmplx(2, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, inf), cmplx(2, 2), cmplx(inf, nan)},
-	Test{cmplx(inf, inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(0, 0), cmplx(inf, -inf)},
-	Test{cmplx(inf, -inf), cmplx(0, 1), cmplx(-inf, -inf)},
-	Test{cmplx(inf, -inf), cmplx(0, -1), cmplx(inf, inf)},
-	Test{cmplx(inf, -inf), cmplx(0, 2), cmplx(-inf, -inf)},
-	Test{cmplx(inf, -inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(1, 0), cmplx(inf, -inf)},
-	Test{cmplx(inf, -inf), cmplx(1, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, -inf), cmplx(1, -1), cmplx(inf, nan)},
-	Test{cmplx(inf, -inf), cmplx(1, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, -inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-1, 0), cmplx(-inf, inf)},
-	Test{cmplx(inf, -inf), cmplx(-1, 1), cmplx(-inf, nan)},
-	Test{cmplx(inf, -inf), cmplx(-1, -1), cmplx(nan, inf)},
-	Test{cmplx(inf, -inf), cmplx(-1, 2), cmplx(-inf, nan)},
-	Test{cmplx(inf, -inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(2, 0), cmplx(inf, -inf)},
-	Test{cmplx(inf, -inf), cmplx(2, 1), cmplx(nan, -inf)},
-	Test{cmplx(inf, -inf), cmplx(2, -1), cmplx(inf, nan)},
-	Test{cmplx(inf, -inf), cmplx(2, 2), cmplx(nan, -inf)},
-	Test{cmplx(inf, -inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(inf, -inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(0, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, 0), cmplx(0, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, 0), cmplx(0, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, 0), cmplx(0, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, 0), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(1, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, 0), cmplx(1, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 0), cmplx(1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, 0), cmplx(1, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 0), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-1, 0), cmplx(inf, nan)},
-	Test{cmplx(-inf, 0), cmplx(-1, 1), cmplx(inf, inf)},
-	Test{cmplx(-inf, 0), cmplx(-1, -1), cmplx(inf, -inf)},
-	Test{cmplx(-inf, 0), cmplx(-1, 2), cmplx(inf, inf)},
-	Test{cmplx(-inf, 0), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(2, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, 0), cmplx(2, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 0), cmplx(2, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, 0), cmplx(2, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 0), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 0), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(0, 0), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 1), cmplx(0, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, 1), cmplx(0, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, 1), cmplx(0, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, 1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(1, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, 1), cmplx(1, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 1), cmplx(1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, 1), cmplx(1, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-1, 0), cmplx(inf, nan)},
-	Test{cmplx(-inf, 1), cmplx(-1, 1), cmplx(inf, inf)},
-	Test{cmplx(-inf, 1), cmplx(-1, -1), cmplx(inf, -inf)},
-	Test{cmplx(-inf, 1), cmplx(-1, 2), cmplx(inf, inf)},
-	Test{cmplx(-inf, 1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(2, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, 1), cmplx(2, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 1), cmplx(2, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, 1), cmplx(2, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 1), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(0, 0), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, -1), cmplx(0, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, -1), cmplx(0, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, -1), cmplx(0, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, -1), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(1, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, -1), cmplx(1, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, -1), cmplx(1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, -1), cmplx(1, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, -1), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-1, 0), cmplx(inf, nan)},
-	Test{cmplx(-inf, -1), cmplx(-1, 1), cmplx(inf, inf)},
-	Test{cmplx(-inf, -1), cmplx(-1, -1), cmplx(inf, -inf)},
-	Test{cmplx(-inf, -1), cmplx(-1, 2), cmplx(inf, inf)},
-	Test{cmplx(-inf, -1), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(2, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, -1), cmplx(2, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, -1), cmplx(2, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, -1), cmplx(2, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, -1), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -1), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(0, 0), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 2), cmplx(0, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, 2), cmplx(0, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, 2), cmplx(0, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, 2), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(1, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, 2), cmplx(1, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 2), cmplx(1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, 2), cmplx(1, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 2), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-1, 0), cmplx(inf, nan)},
-	Test{cmplx(-inf, 2), cmplx(-1, 1), cmplx(inf, inf)},
-	Test{cmplx(-inf, 2), cmplx(-1, -1), cmplx(inf, -inf)},
-	Test{cmplx(-inf, 2), cmplx(-1, 2), cmplx(inf, inf)},
-	Test{cmplx(-inf, 2), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(2, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, 2), cmplx(2, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 2), cmplx(2, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, 2), cmplx(2, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, 2), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, 2), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(0, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, nan), cmplx(0, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, nan), cmplx(0, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, nan), cmplx(0, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, nan), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(1, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, nan), cmplx(1, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, nan), cmplx(1, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, nan), cmplx(1, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, nan), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-1, 0), cmplx(inf, nan)},
-	Test{cmplx(-inf, nan), cmplx(-1, 1), cmplx(inf, inf)},
-	Test{cmplx(-inf, nan), cmplx(-1, -1), cmplx(inf, -inf)},
-	Test{cmplx(-inf, nan), cmplx(-1, 2), cmplx(inf, inf)},
-	Test{cmplx(-inf, nan), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(2, 0), cmplx(-inf, nan)},
-	Test{cmplx(-inf, nan), cmplx(2, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, nan), cmplx(2, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, nan), cmplx(2, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, nan), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, nan), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(0, 0), cmplx(-inf, inf)},
-	Test{cmplx(-inf, inf), cmplx(0, 1), cmplx(inf, inf)},
-	Test{cmplx(-inf, inf), cmplx(0, -1), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, inf), cmplx(0, 2), cmplx(inf, inf)},
-	Test{cmplx(-inf, inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(1, 0), cmplx(-inf, inf)},
-	Test{cmplx(-inf, inf), cmplx(1, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, inf), cmplx(1, -1), cmplx(-inf, nan)},
-	Test{cmplx(-inf, inf), cmplx(1, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-1, 0), cmplx(inf, -inf)},
-	Test{cmplx(-inf, inf), cmplx(-1, 1), cmplx(inf, nan)},
-	Test{cmplx(-inf, inf), cmplx(-1, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, inf), cmplx(-1, 2), cmplx(inf, nan)},
-	Test{cmplx(-inf, inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(2, 0), cmplx(-inf, inf)},
-	Test{cmplx(-inf, inf), cmplx(2, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, inf), cmplx(2, -1), cmplx(-inf, nan)},
-	Test{cmplx(-inf, inf), cmplx(2, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, inf), cmplx(-inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(0, 0), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, -inf), cmplx(0, 1), cmplx(-inf, inf)},
-	Test{cmplx(-inf, -inf), cmplx(0, -1), cmplx(inf, -inf)},
-	Test{cmplx(-inf, -inf), cmplx(0, 2), cmplx(-inf, inf)},
-	Test{cmplx(-inf, -inf), cmplx(0, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(0, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(0, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(1, 0), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, -inf), cmplx(1, 1), cmplx(-inf, nan)},
-	Test{cmplx(-inf, -inf), cmplx(1, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, -inf), cmplx(1, 2), cmplx(-inf, nan)},
-	Test{cmplx(-inf, -inf), cmplx(1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-1, 0), cmplx(inf, inf)},
-	Test{cmplx(-inf, -inf), cmplx(-1, 1), cmplx(nan, inf)},
-	Test{cmplx(-inf, -inf), cmplx(-1, -1), cmplx(inf, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-1, 2), cmplx(nan, inf)},
-	Test{cmplx(-inf, -inf), cmplx(-1, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-1, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-1, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(2, 0), cmplx(-inf, -inf)},
-	Test{cmplx(-inf, -inf), cmplx(2, 1), cmplx(-inf, nan)},
-	Test{cmplx(-inf, -inf), cmplx(2, -1), cmplx(nan, -inf)},
-	Test{cmplx(-inf, -inf), cmplx(2, 2), cmplx(-inf, nan)},
-	Test{cmplx(-inf, -inf), cmplx(2, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(2, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(2, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(nan, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(nan, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(nan, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(nan, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(nan, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(nan, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(nan, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(inf, -inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-inf, 0), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-inf, 1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-inf, -1), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-inf, 2), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-inf, nan), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-inf, inf), cmplx(nan, nan)},
-	Test{cmplx(-inf, -inf), cmplx(-inf, -inf), cmplx(nan, nan)},
+	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)},
 }
diff --git a/test/complit.go b/test/complit.go
index f3b7c9a..f5f7aca 100644
--- a/test/complit.go
+++ b/test/complit.go
@@ -6,9 +6,16 @@
 
 package main
 
-type T struct { i int; f float; s string; next *T }
+type T struct {
+	i    int
+	f    float64
+	s    string
+	next *T
+}
 
-type R struct { num int }
+type R struct {
+	num int
+}
 
 func itor(a int) *R {
 	r := new(R)
@@ -18,11 +25,16 @@
 
 func eq(a []*R) {
 	for i := 0; i < len(a); i++ {
-		if a[i].num != i { panic("bad") }
+		if a[i].num != i {
+			panic("bad")
+		}
 	}
 }
 
-type P struct { a, b int }
+type P struct {
+	a, b int
+}
+
 func NewP(a, b int) *P {
 	return &P{a, b}
 }
@@ -34,37 +46,57 @@
 	var tp *T
 	tp = &T{0, 7.2, "hi", &t}
 
-	a1 := []int{1,2,3}
-	if len(a1) != 3 { panic("a1") }
-	a2 := [10]int{1,2,3}
-	if len(a2) != 10 || cap(a2) != 10 { panic("a2") }
+	a1 := []int{1, 2, 3}
+	if len(a1) != 3 {
+		panic("a1")
+	}
+	a2 := [10]int{1, 2, 3}
+	if len(a2) != 10 || cap(a2) != 10 {
+		panic("a2")
+	}
 
-	a3 := [10]int{1,2,3,}
-	if len(a3) != 10 || a2[3] != 0 { panic("a3") }
+	a3 := [10]int{1, 2, 3}
+	if len(a3) != 10 || a2[3] != 0 {
+		panic("a3")
+	}
 
 	var oai []int
-	oai = []int{1,2,3}
-	if len(oai) != 3 { panic("oai") }
+	oai = []int{1, 2, 3}
+	if len(oai) != 3 {
+		panic("oai")
+	}
 
 	at := [...]*T{&t, tp, &t}
-	if len(at) != 3 { panic("at") }
+	if len(at) != 3 {
+		panic("at")
+	}
 
 	c := make(chan int)
 	ac := []chan int{c, c, c}
-	if len(ac) != 3 { panic("ac") }
+	if len(ac) != 3 {
+		panic("ac")
+	}
 
 	aat := [][len(at)]*T{at, at}
-	if len(aat) != 2 || len(aat[1]) != 3 { panic("aat") }
+	if len(aat) != 2 || len(aat[1]) != 3 {
+		panic("aat")
+	}
 
 	s := string([]byte{'h', 'e', 'l', 'l', 'o'})
-	if s != "hello" { panic("s") }
+	if s != "hello" {
+		panic("s")
+	}
 
-	m := map[string]float{"one":1.0, "two":2.0, "pi":22./7.}
-	if len(m) != 3 { panic("m") }
+	m := map[string]float64{"one": 1.0, "two": 2.0, "pi": 22. / 7.}
+	if len(m) != 3 {
+		panic("m")
+	}
 
 	eq([]*R{itor(0), itor(1), itor(2), itor(3), itor(4), itor(5)})
 
 	p1 := NewP(1, 2)
 	p2 := NewP(1, 2)
-	if p1 == p2 { panic("NewP") }
+	if p1 == p2 {
+		panic("NewP")
+	}
 }
diff --git a/test/const1.go b/test/const1.go
index cf07055..67f36e4 100644
--- a/test/const1.go
+++ b/test/const1.go
@@ -6,76 +6,77 @@
 
 package main
 
-type I interface {}
+type I interface{}
+
 const (
 	// assume all types behave similarly to int8/uint8
-	Int8 int8 = 101
-	Minus1 int8 = -1
-	Uint8 uint8 = 102
-	Const = 103
+	Int8   int8  = 101
+	Minus1 int8  = -1
+	Uint8  uint8 = 102
+	Const  = 103
 
-	Float32 float32 = 104.5
-	Float float = 105.5
+	Float32    float32 = 104.5
+	Float64    float64 = 105.5
 	ConstFloat = 106.5
-	Big float64 = 1e300
+	Big        float64 = 1e300
 
 	String = "abc"
-	Bool = true
+	Bool   = true
 )
 
 var (
-	a1 = Int8 * 100	// ERROR "overflow"
-	a2 = Int8 * -1	// OK
-	a3 = Int8 * 1000	// ERROR "overflow"
-	a4 = Int8 * int8(1000)	// ERROR "overflow"
-	a5 = int8(Int8 * 1000)	// ERROR "overflow"
-	a6 = int8(Int8 * int8(1000))	// ERROR "overflow"
-	a7 = Int8 - 2*Int8 - 2*Int8	// ERROR "overflow"
-	a8 = Int8 * Const / 100	// ERROR "overflow"
-	a9 = Int8 * (Const / 100)	// OK
+	a1 = Int8 * 100              // ERROR "overflow"
+	a2 = Int8 * -1               // OK
+	a3 = Int8 * 1000             // ERROR "overflow"
+	a4 = Int8 * int8(1000)       // ERROR "overflow"
+	a5 = int8(Int8 * 1000)       // ERROR "overflow"
+	a6 = int8(Int8 * int8(1000)) // ERROR "overflow"
+	a7 = Int8 - 2*Int8 - 2*Int8  // ERROR "overflow"
+	a8 = Int8 * Const / 100      // ERROR "overflow"
+	a9 = Int8 * (Const / 100)    // OK
 
-	b1 = Uint8 * Uint8	// ERROR "overflow"
-	b2 = Uint8 * -1	// ERROR "overflow"
-	b3 = Uint8 - Uint8	// OK
-	b4 = Uint8 - Uint8 - Uint8	// ERROR "overflow"
-	b5 = uint8(^0)	// ERROR "overflow"
-	b6 = ^uint8(0)	// OK
-	b7 = uint8(Minus1)	// ERROR "overflow"
-	b8 = uint8(int8(-1))	// ERROR "overflow"
-	b8a = uint8(-1)	// ERROR "overflow"
-	b9 byte = (1<<10) >> 8	// OK
-	b10 byte = (1<<10)	// ERROR "overflow"
-	b11 byte = (byte(1)<<10) >> 8	// ERROR "overflow"
-	b12 byte = 1000	// ERROR "overflow"
-	b13 byte = byte(1000)	// ERROR "overflow"
-	b14 byte = byte(100) * byte(100)	// ERROR "overflow"
-	b15 byte = byte(100) * 100	// ERROR "overflow"
-	b16 byte = byte(0) * 1000	// ERROR "overflow"
-	b16a byte = 0 * 1000	// OK
-	b17 byte = byte(0) * byte(1000)	// ERROR "overflow"
-	b18 byte = Uint8/0	// ERROR "division by zero"
+	b1   = Uint8 * Uint8                                 // ERROR "overflow"
+	b2   = Uint8 * -1                                    // ERROR "overflow"
+	b3   = Uint8 - Uint8                                 // OK
+	b4   = Uint8 - Uint8 - Uint8                         // ERROR "overflow"
+	b5   = uint8(^0)                                     // ERROR "overflow"
+	b6   = ^uint8(0)                                     // OK
+	b7   = uint8(Minus1)                                 // ERROR "overflow"
+	b8   = uint8(int8(-1))                               // ERROR "overflow"
+	b8a  = uint8(-1)                                     // ERROR "overflow"
+	b9   byte                    = (1 << 10) >> 8        // OK
+	b10  byte                    = (1 << 10)             // ERROR "overflow"
+	b11  byte                    = (byte(1) << 10) >> 8  // ERROR "overflow"
+	b12  byte                    = 1000                  // ERROR "overflow"
+	b13  byte                    = byte(1000)            // ERROR "overflow"
+	b14  byte                    = byte(100) * byte(100) // ERROR "overflow"
+	b15  byte                    = byte(100) * 100       // ERROR "overflow"
+	b16  byte                    = byte(0) * 1000        // ERROR "overflow"
+	b16a byte                    = 0 * 1000              // OK
+	b17  byte                    = byte(0) * byte(1000)  // ERROR "overflow"
+	b18  byte                    = Uint8 / 0             // ERROR "division by zero"
 
-	c1 float64 = Big
-	c2 float64 = Big*Big	// ERROR "overflow"
-	c3 float64 = float64(Big)*Big	// ERROR "overflow"
-	c4 = Big*Big	// ERROR "overflow"
-	c5 = Big/0	// ERROR "division by zero"
+	c1 float64     = Big
+	c2 float64     = Big * Big          // ERROR "overflow"
+	c3 float64     = float64(Big) * Big // ERROR "overflow"
+	c4 = Big * Big                      // ERROR "overflow"
+	c5 = Big / 0                        // ERROR "division by zero"
 )
 
 func f(int)
 
 func main() {
-	f(Int8)	// ERROR "convert|wrong type|cannot"
-	f(Minus1)	// ERROR "convert|wrong type|cannot"
-	f(Uint8)	// ERROR "convert|wrong type|cannot"
-	f(Const)	// OK
-	f(Float32)	// ERROR "convert|wrong type|cannot"
-	f(Float)	// ERROR "convert|wrong type|cannot"
-	f(ConstFloat)	// ERROR "truncate"
-	f(ConstFloat - 0.5)	// OK
-	f(Big)	// ERROR "convert|wrong type|cannot"
-	f(String)	// ERROR "convert|wrong type|cannot|incompatible"
-	f(Bool)	// ERROR "convert|wrong type|cannot|incompatible"
+	f(Int8)             // ERROR "convert|wrong type|cannot"
+	f(Minus1)           // ERROR "convert|wrong type|cannot"
+	f(Uint8)            // ERROR "convert|wrong type|cannot"
+	f(Const)            // OK
+	f(Float32)          // ERROR "convert|wrong type|cannot"
+	f(Float64)          // ERROR "convert|wrong type|cannot"
+	f(ConstFloat)       // ERROR "truncate"
+	f(ConstFloat - 0.5) // OK
+	f(Big)              // ERROR "convert|wrong type|cannot"
+	f(String)           // ERROR "convert|wrong type|cannot|incompatible"
+	f(Bool)             // ERROR "convert|wrong type|cannot|incompatible"
 }
 
-const ptr = nil  // ERROR "const.*nil"
+const ptr = nil // ERROR "const.*nil"
diff --git a/test/convlit.go b/test/convlit.go
index 94889d4..90ac549 100644
--- a/test/convlit.go
+++ b/test/convlit.go
@@ -11,54 +11,56 @@
 // the language spec says for now.
 var x1 = string(1)
 var x2 string = string(1)
-var x3 = int(1.5)	// ERROR "convert|truncate"
-var x4 int = int(1.5)	// ERROR "convert|truncate"
+var x3 = int(1.5)     // ERROR "convert|truncate"
+var x4 int = int(1.5) // ERROR "convert|truncate"
 var x5 = "a" + string(1)
-var x6 = int(1e100)	// ERROR "overflow"
-var x7 = float(1e1000)	// ERROR "overflow"
+var x6 = int(1e100)      // ERROR "overflow"
+var x7 = float32(1e1000) // ERROR "overflow"
 
 // implicit conversions merit scrutiny
 var s string
-var bad1 string = 1	// ERROR "conver|incompatible|invalid|cannot"
-var bad2 = s + 1		// ERROR "conver|incompatible|invalid"
-var bad3 = s + 'a'	// ERROR "conver|incompatible|invalid"
-var bad4 = "a" + 1	// ERROR "literals|incompatible|convert|invalid"
-var bad5 = "a" + 'a'	// ERROR "literals|incompatible|convert|invalid"
+var bad1 string = 1  // ERROR "conver|incompatible|invalid|cannot"
+var bad2 = s + 1     // ERROR "conver|incompatible|invalid"
+var bad3 = s + 'a'   // ERROR "conver|incompatible|invalid"
+var bad4 = "a" + 1   // ERROR "literals|incompatible|convert|invalid"
+var bad5 = "a" + 'a' // ERROR "literals|incompatible|convert|invalid"
 
-var bad6 int = 1.5	// ERROR "convert|truncate"
-var bad7 int = 1e100	// ERROR "overflow"
-var bad8 float32 = 1e200	// ERROR "overflow"
+var bad6 int = 1.5       // ERROR "convert|truncate"
+var bad7 int = 1e100     // ERROR "overflow"
+var bad8 float32 = 1e200 // ERROR "overflow"
 
 // but these implicit conversions are okay
 var good1 string = "a"
 var good2 int = 1.0
 var good3 int = 1e9
-var good4 float = 1e20
+var good4 float64 = 1e20
 
 // explicit conversion of string is okay
 var _ = []int("abc")
 var _ = []byte("abc")
 
 // implicit is not
-var _ []int = "abc"	// ERROR "cannot use|incompatible|invalid"
-var _ []byte = "abc"	// ERROR "cannot use|incompatible|invalid"
+var _ []int = "abc"  // ERROR "cannot use|incompatible|invalid"
+var _ []byte = "abc" // ERROR "cannot use|incompatible|invalid"
 
 // named string is okay
 type Tstring string
+
 var ss Tstring = "abc"
 var _ = []int(ss)
 var _ = []byte(ss)
 
 // implicit is still not
-var _ []int = ss	// ERROR "cannot use|incompatible|invalid"
-var _ []byte = ss	// ERROR "cannot use|incompatible|invalid"
+var _ []int = ss  // ERROR "cannot use|incompatible|invalid"
+var _ []byte = ss // ERROR "cannot use|incompatible|invalid"
 
 // named slice is not
 type Tint []int
 type Tbyte []byte
-var _ = Tint("abc")	// ERROR "convert|incompatible|invalid"
-var _ = Tbyte("abc")	// ERROR "convert|incompatible|invalid"
+
+var _ = Tint("abc")  // ERROR "convert|incompatible|invalid"
+var _ = Tbyte("abc") // ERROR "convert|incompatible|invalid"
 
 // implicit is still not
-var _ Tint = "abc"	// ERROR "cannot use|incompatible|invalid"
-var _ Tbyte = "abc"	// ERROR "cannot use|incompatible|invalid"
+var _ Tint = "abc"  // ERROR "cannot use|incompatible|invalid"
+var _ Tbyte = "abc" // ERROR "cannot use|incompatible|invalid"
diff --git a/test/decl.go b/test/decl.go
index c31082b..95b6346 100644
--- a/test/decl.go
+++ b/test/decl.go
@@ -8,26 +8,26 @@
 
 package main
 
-func f1() int { return 1 }
-func f2() (float, int) { return 1, 2 }
-func f3() (float, int, string) { return 1, 2, "3" }
+func f1() int                    { return 1 }
+func f2() (float32, int)         { return 1, 2 }
+func f3() (float32, int, string) { return 1, 2, "3" }
 
 func x() (s string) {
 	a, b, s := f3()
 	_, _ = a, b
-	return	// tests that result var is in scope for redeclaration
+	return // tests that result var is in scope for redeclaration
 }
 
 func main() {
 	i, f, s := f3()
-	j, f := f2()	// redeclare f
+	j, f := f2() // redeclare f
 	k := f1()
 	m, g, s := f3()
 	m, h, s := f3()
 	{
 		// new block should be ok.
 		i, f, s := f3()
-		j, f := f2()	// redeclare f
+		j, f := f2() // redeclare f
 		k := f1()
 		m, g, s := f3()
 		m, h, s := f3()
diff --git a/test/declbad.go b/test/declbad.go
index 269ebde..5e5e1450 100644
--- a/test/declbad.go
+++ b/test/declbad.go
@@ -8,51 +8,51 @@
 
 package main
 
-func f1() int { return 1 }
-func f2() (float, int) { return 1, 2 }
-func f3() (float, int, string) { return 1, 2, "3" }
+func f1() int                    { return 1 }
+func f2() (float32, int)         { return 1, 2 }
+func f3() (float32, int, string) { return 1, 2, "3" }
 
 func main() {
 	{
 		// simple redeclaration
 		i := f1()
-		i := f1()	// ERROR "redeclared|no new"
+		i := f1() // ERROR "redeclared|no new"
 		_ = i
 	}
 	{
 		// change of type for f
 		i, f, s := f3()
-		f, g, t := f3()	// ERROR "redeclared|cannot assign|incompatible"
+		f, g, t := f3() // ERROR "redeclared|cannot assign|incompatible"
 		_, _, _, _, _ = i, f, s, g, t
 	}
 	{
 		// change of type for i
 		i, f, s := f3()
-		j, i, t := f3()	// ERROR "redeclared|cannot assign|incompatible"
+		j, i, t := f3() // ERROR "redeclared|cannot assign|incompatible"
 		_, _, _, _, _ = i, f, s, j, t
 	}
 	{
 		// no new variables
 		i, f, s := f3()
-		i, f := f2()	// ERROR "redeclared|no new"
+		i, f := f2() // ERROR "redeclared|no new"
 		_, _, _ = i, f, s
 	}
 	{
 		// single redeclaration
 		i, f, s := f3()
-		i := f1()		// ERROR "redeclared|no new|incompatible"
+		i := f1() // ERROR "redeclared|no new|incompatible"
 		_, _, _ = i, f, s
 	}
-		// double redeclaration
+	// double redeclaration
 	{
 		i, f, s := f3()
-		i, f := f2()	// ERROR "redeclared|no new"
+		i, f := f2() // ERROR "redeclared|no new"
 		_, _, _ = i, f, s
 	}
 	{
 		// triple redeclaration
 		i, f, s := f3()
-		i, f, s := f3()	// ERROR "redeclared|no new"
+		i, f, s := f3() // ERROR "redeclared|no new"
 		_, _, _ = i, f, s
 	}
 }
diff --git a/test/fixedbugs/bug006.go b/test/fixedbugs/bug006.go
index e7694f9..43b5dfb 100644
--- a/test/fixedbugs/bug006.go
+++ b/test/fixedbugs/bug006.go
@@ -9,11 +9,16 @@
 import "os"
 
 const (
-	x float = iota;
-	g float = 4.5 * iota;
-);
+	x float64 = iota
+	g float64 = 4.5 * iota
+)
 
 func main() {
-	if g == 0.0 { print("zero\n");}
-	if g != 4.5 { print(" fail\n"); os.Exit(1); }
+	if g == 0.0 {
+		print("zero\n")
+	}
+	if g != 4.5 {
+		print(" fail\n")
+		os.Exit(1)
+	}
 }
diff --git a/test/fixedbugs/bug007.go b/test/fixedbugs/bug007.go
index bd970de..d65f6da 100644
--- a/test/fixedbugs/bug007.go
+++ b/test/fixedbugs/bug007.go
@@ -7,7 +7,9 @@
 package main
 
 type (
-	Point struct { x, y float };
+	Point struct {
+		x, y float64
+	}
 	Polar Point
 )
 
diff --git a/test/fixedbugs/bug010.go b/test/fixedbugs/bug010.go
index e71c4d7..7d96988 100644
--- a/test/fixedbugs/bug010.go
+++ b/test/fixedbugs/bug010.go
@@ -7,14 +7,14 @@
 package main
 
 
-func f(i int, f float) {
-	i = 8;
-	f = 8.0;
-	return;
+func f(i int, f float64) {
+	i = 8
+	f = 8.0
+	return
 }
 
 func main() {
-	f(3, float(5))
+	f(3, float64(5))
 }
 
 /*
diff --git a/test/fixedbugs/bug011.go b/test/fixedbugs/bug011.go
index 551adb7..ce62747 100644
--- a/test/fixedbugs/bug011.go
+++ b/test/fixedbugs/bug011.go
@@ -8,19 +8,19 @@
 
 
 type T struct {
-	x, y int;
+	x, y int
 }
 
-func (t *T) m(a int, b float) int {
-	return (t.x+a) * (t.y+int(b));
+func (t *T) m(a int, b float64) int {
+	return (t.x + a) * (t.y + int(b))
 }
 
 func main() {
-	var t *T = new(T);
-	t.x = 1;
-	t.y = 2;
-	r10 := t.m(1, 3.0);
-	_ = r10;
+	var t *T = new(T)
+	t.x = 1
+	t.y = 2
+	r10 := t.m(1, 3.0)
+	_ = r10
 }
 /*
 bug11.go:16: fatal error: walktype: switch 1 unknown op CALLMETH l(16) <int32>INT32
diff --git a/test/fixedbugs/bug035.go b/test/fixedbugs/bug035.go
index 461c0607..bd2a633 100644
--- a/test/fixedbugs/bug035.go
+++ b/test/fixedbugs/bug035.go
@@ -6,8 +6,8 @@
 
 package main
 
-func f9(a int) (i int, f float) {
-	i := 9;  // ERROR "redecl|no new"
-	f := float(9);  // ERROR "redecl|no new"
-	return i, f;
+func f9(a int) (i int, f float64) {
+	i := 9          // ERROR "redecl|no new"
+	f := float64(9) // ERROR "redecl|no new"
+	return i, f
 }
diff --git a/test/fixedbugs/bug047.go b/test/fixedbugs/bug047.go
index f3749e7..5a776ab 100644
--- a/test/fixedbugs/bug047.go
+++ b/test/fixedbugs/bug047.go
@@ -9,15 +9,15 @@
 func main() {
 
 	type T struct {
-		s string;
-		f float;
-	};
-	var s string = "hello";
-	var f float = 0.2;
-	t := T{s, f};
+		s string
+		f float64
+	}
+	var s string = "hello"
+	var f float64 = 0.2
+	t := T{s, f}
 
-	type M map[int] int;
-	m0 := M{7:8};
+	type M map[int]int
+	m0 := M{7: 8}
 
-	_, _ = t, m0;
+	_, _ = t, m0
 }
diff --git a/test/fixedbugs/bug080.go b/test/fixedbugs/bug080.go
index a5003d2..bae16cd 100644
--- a/test/fixedbugs/bug080.go
+++ b/test/fixedbugs/bug080.go
@@ -4,18 +4,18 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-package main	
- 	
-func f1() (x int, y float) {
-	return;
+package main
+
+func f1() (x int, y float64) {
+	return
 }
 
-func f2   (x int, y float) {
-	return;
+func f2(x int, y float64) {
+	return
 }
 
 func main() {
-	f2(f1());  // this should be a legal call
+	f2(f1()) // this should be a legal call
 }
 
 /*
diff --git a/test/fixedbugs/bug109.go b/test/fixedbugs/bug109.go
index c679771..7666577 100644
--- a/test/fixedbugs/bug109.go
+++ b/test/fixedbugs/bug109.go
@@ -5,10 +5,11 @@
 // license that can be found in the LICENSE file.
 
 package main
-func f(a float) float {
-	e := 1.0;
-	e = e * a;
-	return e;
+
+func f(a float64) float64 {
+	e := 1.0
+	e = e * a
+	return e
 }
 
 /*
diff --git a/test/fixedbugs/bug167.go b/test/fixedbugs/bug167.go
index 729299b..33eb3cb 100644
--- a/test/fixedbugs/bug167.go
+++ b/test/fixedbugs/bug167.go
@@ -7,20 +7,24 @@
 package main
 
 func f1() {
-	type T struct { x int }
+	type T struct {
+		x int
+	}
 }
 
 func f2() {
-	type T struct { x float }
+	type T struct {
+		x float64
+	}
 }
 
 func main() {
-	f1();
-	f2();
+	f1()
+	f2()
 }
 
 /*
 1606416576: conflicting definitions for main.T·bug167
 bug167.6:	type main.T·bug167 struct { x int }
-bug167.6:	type main.T·bug167 struct { x float }
+bug167.6:	type main.T·bug167 struct { x float64 }
 */
diff --git a/test/fixedbugs/bug193.go b/test/fixedbugs/bug193.go
index f6b03e1..5ef02b1 100644
--- a/test/fixedbugs/bug193.go
+++ b/test/fixedbugs/bug193.go
@@ -7,10 +7,10 @@
 package main
 
 func main() {
-	s := uint(10);
-	ss := 1<<s;
-	y1 := float(ss);
-	y2 := float(1<<s);  // ERROR "shift"
-	y3 := string(1<<s);  // ERROR "shift"
-	_, _, _, _, _ = s, ss, y1, y2, y3;
+	s := uint(10)
+	ss := 1 << s
+	y1 := float64(ss)
+	y2 := float64(1 << s) // ERROR "shift"
+	y3 := string(1 << s)  // ERROR "shift"
+	_, _, _, _, _ = s, ss, y1, y2, y3
 }
diff --git a/test/fixedbugs/bug220.go b/test/fixedbugs/bug220.go
index 3f8aaa4..ff027dd 100644
--- a/test/fixedbugs/bug220.go
+++ b/test/fixedbugs/bug220.go
@@ -7,8 +7,8 @@
 package main
 
 func main() {
-	m := make(map[int]map[uint]float);
-	
-	m[0] = make(map[uint]float), false;	// 6g used to reject this
-	m[1] = nil;
+	m := make(map[int]map[uint]float64)
+
+	m[0] = make(map[uint]float64), false // 6g used to reject this
+	m[1] = nil
 }
diff --git a/test/fixedbugs/bug230.go b/test/fixedbugs/bug230.go
index 81b256e..c7ad1a3 100644
--- a/test/fixedbugs/bug230.go
+++ b/test/fixedbugs/bug230.go
@@ -8,14 +8,17 @@
 
 type S string
 type I int
-type F float
+type F float64
 
 func (S) m() {}
 func (I) m() {}
 func (F) m() {}
 
 func main() {
-	c := make(chan interface { m() }, 10)
+	c := make(chan interface {
+		m()
+	},
+		10)
 	c <- I(0)
 	c <- F(1)
 	c <- S("hi")
diff --git a/test/fixedbugs/bug238.go b/test/fixedbugs/bug238.go
index 8b7c7ac..7e8660d 100644
--- a/test/fixedbugs/bug238.go
+++ b/test/fixedbugs/bug238.go
@@ -17,6 +17,6 @@
 const g interface{} = 7 // ERROR "constant|wrong|invalid"
 const h bool = false
 const i int = 2
-const j float = 5
+const j float64 = 5
 
 func main() { println(a, b, c, d, e, f, g) }
diff --git a/test/fixedbugs/bug248.dir/bug2.go b/test/fixedbugs/bug248.dir/bug2.go
index 68c0ce0..4ea187a 100644
--- a/test/fixedbugs/bug248.dir/bug2.go
+++ b/test/fixedbugs/bug248.dir/bug2.go
@@ -23,7 +23,7 @@
 
 func (t0) M(p0.T) {}
 
-type t1 float
+type t1 float64
 
 func (t1) M(p1.T) {}
 
diff --git a/test/fixedbugs/bug248.dir/bug3.go b/test/fixedbugs/bug248.dir/bug3.go
index c96bf16..e5a2449 100644
--- a/test/fixedbugs/bug248.dir/bug3.go
+++ b/test/fixedbugs/bug248.dir/bug3.go
@@ -26,7 +26,7 @@
 func (t0) M(p0.T) {}
 
 // t1 satisfies I1 and p1.I
-type t1 float
+type t1 float64
 
 func (t1) M(p1.T) {}
 
diff --git a/test/fixedbugs/bug299.go b/test/fixedbugs/bug299.go
index 4d73144..1c7adb5 100644
--- a/test/fixedbugs/bug299.go
+++ b/test/fixedbugs/bug299.go
@@ -11,9 +11,9 @@
 	x int
 	y (int)
 	int
-	*float
+	*float64
 	// not legal according to spec
-	(complex)  // ERROR "non-declaration|expected|parenthesize"
+	(complex128)  // ERROR "non-declaration|expected|parenthesize"
 	(*string)  // ERROR "non-declaration|expected|parenthesize"
 	*(bool)    // ERROR "non-declaration|expected|parenthesize"
 }
diff --git a/test/fixedbugs/bug307.go b/test/fixedbugs/bug307.go
index a1a30df..1b42c09 100644
--- a/test/fixedbugs/bug307.go
+++ b/test/fixedbugs/bug307.go
@@ -5,11 +5,11 @@
 // license that can be found in the LICENSE file.
 
 // Valid program, gccgo reported an error.
-// bug307.go:14:6: error: cmplx arguments must have identical types
+// bug307.go:14:6: error: complex arguments must have identical types
 
 package main
 
 func main() {
 	var f float64
-	_ = cmplx(1 / f, 0)
+	_ = complex(1/f, 0)
 }
diff --git a/test/fixedbugs/bug315.go b/test/fixedbugs/bug315.go
index 198bae77..c59ef29 100644
--- a/test/fixedbugs/bug315.go
+++ b/test/fixedbugs/bug315.go
@@ -9,7 +9,7 @@
 package main
 
 func main() {
-	a := cmplx(2, 2)
+	a := complex(2, 2)
 	a /= 2
 }
 
diff --git a/test/fixedbugs/bug316.go b/test/fixedbugs/bug316.go
index bd4d99e..2146408 100644
--- a/test/fixedbugs/bug316.go
+++ b/test/fixedbugs/bug316.go
@@ -9,7 +9,7 @@
 package main
 
 const (
-	c = cmplx(1, 2)
+	c = complex(1, 2)
 	r = real(c) // was: const initializer must be constant
 	i = imag(c) // was: const initializer must be constant
 )
diff --git a/test/func.go b/test/func.go
index 0c1a079..e8ed928 100644
--- a/test/func.go
+++ b/test/func.go
@@ -21,10 +21,10 @@
 }
 
 func f3(a, b int) int {
-	return a+b
+	return a + b
 }
 
-func f4(a, b int, c float) int {
+func f4(a, b int, c float32) int {
 	return (a+b)/2 + int(c)
 }
 
@@ -36,12 +36,12 @@
 	return 6
 }
 
-func f7(a int) (x int, y float) {
+func f7(a int) (x int, y float32) {
 	return 7, 7.0
 }
 
 
-func f8(a int) (x int, y float) {
+func f8(a int) (x int, y float32) {
 	return 8, 8.0
 }
 
@@ -49,12 +49,12 @@
 	x, y int
 }
 
-func (t *T) m10(a int, b float) int {
-	return (t.x+a) * (t.y+int(b))
+func (t *T) m10(a int, b float32) int {
+	return (t.x + a) * (t.y + int(b))
 }
 
 
-func f9(a int) (i int, f float) {
+func f9(a int) (i int, f float32) {
 	i = 9
 	f = 9.0
 	return
diff --git a/test/func1.go b/test/func1.go
index 56f4dfc..056ff98 100644
--- a/test/func1.go
+++ b/test/func1.go
@@ -8,11 +8,11 @@
 
 package main
 
-func f1(a int) (int, float) {  // BUG (not caught by compiler): multiple return values must have names
+func f1(a int) (int, float32) { // BUG (not caught by compiler): multiple return values must have names
 	return 7, 7.0
 }
 
 
-func f2(a int) (a int, b float) {  // ERROR "redeclared|definition"
+func f2(a int) (a int, b float32) { // ERROR "redeclared|definition"
 	return 8, 8.0
 }
diff --git a/test/golden.out b/test/golden.out
index 04c7132..83e8327 100644
--- a/test/golden.out
+++ b/test/golden.out
@@ -60,7 +60,6 @@
 =========== ken/cplx3.go
 (+1.292308e+000-1.384615e-001i)
 (+1.292308e+000-1.384615e-001i)
-64
 
 =========== ken/cplx4.go
 c = (-5.000000-6.000000i)
diff --git a/test/interface/explicit.go b/test/interface/explicit.go
index b952f8f..b6a582f 100644
--- a/test/interface/explicit.go
+++ b/test/interface/explicit.go
@@ -51,21 +51,25 @@
 	t = T(e) // ERROR "need explicit|need type assertion|incompatible"
 }
 
-type M interface { M() }
+type M interface {
+	M()
+}
+
 var m M
 
-var _ = m.(int)	// ERROR "impossible type assertion"
+var _ = m.(int) // ERROR "impossible type assertion"
 
 type Int int
-func (Int) M(float) {}
 
-var _ = m.(Int)	// ERROR "impossible type assertion"
+func (Int) M(float64) {}
+
+var _ = m.(Int) // ERROR "impossible type assertion"
 
 var ii int
 var jj Int
 
-var m1 M = ii	// ERROR "incompatible|missing"
-var m2 M = jj	// ERROR "incompatible|wrong type for M method"
+var m1 M = ii // ERROR "incompatible|missing"
+var m2 M = jj // ERROR "incompatible|wrong type for M method"
 
-var m3 = M(ii)	// ERROR "invalid|missing"
-var m4 = M(jj)	// ERROR "invalid|wrong type for M method"
+var m3 = M(ii) // ERROR "invalid|missing"
+var m4 = M(jj) // ERROR "invalid|wrong type for M method"
diff --git a/test/iota.go b/test/iota.go
index 20b77c6..c40ca1f 100644
--- a/test/iota.go
+++ b/test/iota.go
@@ -17,8 +17,8 @@
 	x int = iota
 	y = iota
 	z = 1 << iota
-	f float = 2 * iota
-	g float = 4.5 * float(iota)
+	f float32 = 2 * iota
+	g float32 = 4.5 * float32(iota)
 )
 
 const (
@@ -57,7 +57,7 @@
 )
 
 const (
-	p = float(iota)
+	p = float32(iota)
 	q
 	r
 )
@@ -68,9 +68,9 @@
 )
 
 const (
-	abit, amask = 1 << iota, 1 << iota - 1
-	bbit, bmask = 1 << iota, 1 << iota - 1
-	cbit, cmask = 1 << iota, 1 << iota - 1
+	abit, amask = 1 << iota, 1<<iota - 1
+	bbit, bmask = 1 << iota, 1<<iota - 1
+	cbit, cmask = 1 << iota, 1<<iota - 1
 )
 
 func main() {
diff --git a/test/ken/cplx0.go b/test/ken/cplx0.go
index 6e9bfd0..ba1fa19 100644
--- a/test/ken/cplx0.go
+++ b/test/ken/cplx0.go
@@ -13,7 +13,7 @@
 	C1 = R + I // ADD(5,6)
 )
 
-func doprint(c complex) { println(c) }
+func doprint(c complex128) { println(c) }
 
 func main() {
 
diff --git a/test/ken/cplx1.go b/test/ken/cplx1.go
index 26b1139..8ec7d40 100644
--- a/test/ken/cplx1.go
+++ b/test/ken/cplx1.go
@@ -48,7 +48,7 @@
 	booltest(6+9i, false)
 }
 
-func booltest(a complex, r bool) {
+func booltest(a complex64, r bool) {
 	var b bool
 
 	b = a == C1
diff --git a/test/ken/cplx2.go b/test/ken/cplx2.go
index 5a66dc9..b36e93e 100644
--- a/test/ken/cplx2.go
+++ b/test/ken/cplx2.go
@@ -28,13 +28,13 @@
 
 func main() {
 
-	r := 5 + 0i
+	var r complex64 = 5 + 0i
 	if r != R {
 		println("opcode 1", r, R)
 		panic("fail")
 	}
 
-	i := 6i
+	var i complex64 = 6i
 	if i != I {
 		println("opcode 2", i, I)
 		panic("fail")
diff --git a/test/ken/cplx3.go b/test/ken/cplx3.go
index 997894b..83acc15 100644
--- a/test/ken/cplx3.go
+++ b/test/ken/cplx3.go
@@ -16,24 +16,18 @@
 	C1 = R + I // ADD(5,6)
 )
 
-var complexBits = reflect.Typeof(complex(0i)).Size() * 8
-
 func main() {
 	c0 := C1
 	c0 = (c0 + c0 + c0) / (c0 + c0 + 3i)
 	println(c0)
 
-	c := *(*complex)(unsafe.Pointer(&c0))
+	c := *(*complex128)(unsafe.Pointer(&c0))
 	println(c)
 
-	println(complexBits)
-
 	var a interface{}
 	switch c := reflect.NewValue(a).(type) {
 	case *reflect.ComplexValue:
-		if complexBits == 64 {
-			v := c.Get()
-			_, _ = complex64(v), true
-		}
+		v := c.Get()
+		_, _ = complex128(v), true
 	}
 }
diff --git a/test/ken/cplx4.go b/test/ken/cplx4.go
index 3c6f1f6..8524e47 100644
--- a/test/ken/cplx4.go
+++ b/test/ken/cplx4.go
@@ -15,7 +15,7 @@
 	C1 = R + I // ADD(5,6)
 )
 
-func doprint(c complex) { fmt.Printf("c = %f\n", c) }
+func doprint(c complex128) { fmt.Printf("c = %f\n", c) }
 
 func main() {
 
@@ -32,12 +32,12 @@
 	c2 := complex128(C1)
 	fmt.Printf("c = %G\n", c2)
 
-	// real, imag, cmplx
-	c3 := cmplx(real(c2)+3, imag(c2)-5) + c2
+	// real, imag, complex
+	c3 := complex(real(c2)+3, imag(c2)-5) + c2
 	fmt.Printf("c = %G\n", c3)
 
 	// compiler used to crash on nested divide
-	c4 := cmplx(real(c3/2), imag(c3/2))
+	c4 := complex(real(c3/2), imag(c3/2))
 	if c4 != c3/2 {
 		fmt.Printf("BUG: c3 = %G != c4 = %G\n", c3, c4)
 	}
diff --git a/test/ken/cplx5.go b/test/ken/cplx5.go
index af2a1c5..d425a7c 100644
--- a/test/ken/cplx5.go
+++ b/test/ken/cplx5.go
@@ -6,49 +6,49 @@
 
 package main
 
-var a [12]complex
-var s []complex
-var c chan complex
+var a [12]complex128
+var s []complex128
+var c chan complex128
 var f struct {
-	c complex
+	c complex128
 }
-var m map[complex]complex
+var m map[complex128]complex128
 
 func main() {
-	// array of complex
+	// array of complex128
 	for i := 0; i < len(a); i++ {
-		a[i] = cmplx(float(i), float(-i))
+		a[i] = complex(float64(i), float64(-i))
 	}
 	println(a[5])
 
-	// slice of complex
-	s = make([]complex, len(a))
+	// slice of complex128
+	s = make([]complex128, len(a))
 	for i := 0; i < len(s); i++ {
 		s[i] = a[i]
 	}
 	println(s[5])
 
 	// chan
-	c = make(chan complex)
+	c = make(chan complex128)
 	go chantest(c)
 	println(<-c)
 
-	// pointer of complex
+	// pointer of complex128
 	v := a[5]
 	pv := &v
 	println(*pv)
 
-	// field of complex
+	// field of complex128
 	f.c = a[5]
 	println(f.c)
 
-	// map of complex
-	m = make(map[complex]complex)
+	// map of complex128
+	m = make(map[complex128]complex128)
 	for i := 0; i < len(s); i++ {
 		m[-a[i]] = a[i]
 	}
 	println(m[5i-5])
-	println(m[cmplx(-5, 5)])
+	println(m[complex(-5, 5)])
 }
 
-func chantest(c chan complex) { c <- a[5] }
+func chantest(c chan complex128) { c <- a[5] }
diff --git a/test/ken/robfunc.go b/test/ken/robfunc.go
index 12b4b6d7..6b3d4b2 100644
--- a/test/ken/robfunc.go
+++ b/test/ken/robfunc.go
@@ -8,8 +8,8 @@
 
 func assertequal(is, shouldbe int, msg string) {
 	if is != shouldbe {
-		print("assertion fail" + msg + "\n");
-		panic(1);
+		print("assertion fail" + msg + "\n")
+		panic(1)
 	}
 }
 
@@ -20,75 +20,75 @@
 }
 
 func f3(a, b int) int {
-	return a+b;
+	return a + b
 }
 
-func f4(a, b int, c float) int {
-	return (a+b)/2 + int(c);
+func f4(a, b int, c float64) int {
+	return (a+b)/2 + int(c)
 }
 
 func f5(a int) int {
-	return 5;
+	return 5
 }
 
 func f6(a int) (r int) {
-	return 6;
+	return 6
 }
 
-func f7(a int) (x int, y float) {
-	return 7, 7.0;
+func f7(a int) (x int, y float64) {
+	return 7, 7.0
 }
 
 
-func f8(a int) (x int, y float) {
-	return 8, 8.0;
+func f8(a int) (x int, y float64) {
+	return 8, 8.0
 }
 
 type T struct {
-	x, y int;
+	x, y int
 }
 
-func (t *T) m10(a int, b float) int {
-	return (t.x+a) * (t.y+int(b));
+func (t *T) m10(a int, b float64) int {
+	return (t.x + a) * (t.y + int(b))
 }
 
 
-func f9(a int) (in int, fl float) {
-	i := 9;
-	f := float(9);
-	return i, f;
+func f9(a int) (in int, fl float64) {
+	i := 9
+	f := float64(9)
+	return i, f
 }
 
 
 func main() {
-	f1();
-	f2(1);
-	r3 := f3(1, 2);
-	assertequal(r3, 3, "3");
-	r4 := f4(0, 2, 3.0);
-	assertequal(r4, 4, "4");
-	r5 := f5(1);
-	assertequal(r5, 5, "5");
-	r6 := f6(1);
-	assertequal(r6, 6, "6");
-	var r7 int;
-	var s7 float;
-	r7, s7 = f7(1);
-	assertequal(r7, 7, "r7");
-	assertequal(int(s7), 7, "s7");
-	var r8 int;
-	var s8 float;
-	r8, s8 = f8(1);
-	assertequal(r8, 8, "r8");
-	assertequal(int(s8), 8, "s8");
-	var r9 int;
-	var s9 float;
-	r9, s9 = f9(1);
-	assertequal(r9, 9, "r9");
-	assertequal(int(s9), 9, "s9");
-	var t *T = new(T);
-	t.x = 1;
-	t.y = 2;
-	r10 := t.m10(1, 3.0);
-	assertequal(r10, 10, "10");
+	f1()
+	f2(1)
+	r3 := f3(1, 2)
+	assertequal(r3, 3, "3")
+	r4 := f4(0, 2, 3.0)
+	assertequal(r4, 4, "4")
+	r5 := f5(1)
+	assertequal(r5, 5, "5")
+	r6 := f6(1)
+	assertequal(r6, 6, "6")
+	var r7 int
+	var s7 float64
+	r7, s7 = f7(1)
+	assertequal(r7, 7, "r7")
+	assertequal(int(s7), 7, "s7")
+	var r8 int
+	var s8 float64
+	r8, s8 = f8(1)
+	assertequal(r8, 8, "r8")
+	assertequal(int(s8), 8, "s8")
+	var r9 int
+	var s9 float64
+	r9, s9 = f9(1)
+	assertequal(r9, 9, "r9")
+	assertequal(int(s9), 9, "s9")
+	var t *T = new(T)
+	t.x = 1
+	t.y = 2
+	r10 := t.m10(1, 3.0)
+	assertequal(r10, 10, "10")
 }
diff --git a/test/ken/simpconv.go b/test/ken/simpconv.go
index cb443e3..feb85d2 100644
--- a/test/ken/simpconv.go
+++ b/test/ken/simpconv.go
@@ -6,20 +6,23 @@
 
 package main
 
-type vlong int64;
-type short int16;
+type vlong int64
+type short int16
 
-func
-main() {
-	s1 := vlong(0);
-	for i:=short(0); i<10; i=i+1 {
-		s1 = s1 + vlong(i);
+func main() {
+	s1 := vlong(0)
+	for i := short(0); i < 10; i = i + 1 {
+		s1 = s1 + vlong(i)
 	}
-	if s1 != 45 { panic(s1); }
+	if s1 != 45 {
+		panic(s1)
+	}
 
-	s2 := float(0);
-	for i:=0; i<10; i=i+1 {
-		s2 = s2 + float(i);
+	s2 := float64(0)
+	for i := 0; i < 10; i = i + 1 {
+		s2 = s2 + float64(i)
 	}
-	if s2 != 45 { panic(s2); }
+	if s2 != 45 {
+		panic(s2)
+	}
 }
diff --git a/test/ken/slicearray.go b/test/ken/slicearray.go
index 6e7088e..5c31270 100644
--- a/test/ken/slicearray.go
+++ b/test/ken/slicearray.go
@@ -8,8 +8,8 @@
 
 var bx [10]byte
 var by []byte
-var fx [10]float
-var fy []float
+var fx [10]float64
+var fy []float64
 var lb, hb int
 var t int
 
@@ -87,7 +87,7 @@
 	by = bx[2:8]
 	tstb()
 
-	// width 4 (float)
+	// width 4 (float64)
 	lb = 0
 	hb = 10
 	fy = fx[lb:hb]
@@ -204,7 +204,7 @@
 	by = nil
 
 	for i := 0; i < len(fx); i++ {
-		fx[i] = float(i + 20)
+		fx[i] = float64(i + 20)
 	}
 	fy = nil
 }
diff --git a/test/ken/sliceslice.go b/test/ken/sliceslice.go
index 5a35aca..6390421 100644
--- a/test/ken/sliceslice.go
+++ b/test/ken/sliceslice.go
@@ -8,8 +8,8 @@
 
 var bx []byte
 var by []byte
-var fx []float
-var fy []float
+var fx []float64
+var fy []float64
 var lb, hb int
 var t int
 
@@ -78,7 +78,7 @@
 	by = bx[2:8]
 	tstb()
 
-	// width 4 (float)
+	// width 4 (float64)
 	lb = 0
 	hb = 10
 	fy = fx[lb:hb]
@@ -195,9 +195,9 @@
 	}
 	by = nil
 
-	fx = make([]float, 10)
+	fx = make([]float64, 10)
 	for i := 0; i < len(fx); i++ {
-		fx[i] = float(i + 20)
+		fx[i] = float64(i + 20)
 	}
 	fy = nil
 }
diff --git a/test/literal.go b/test/literal.go
index 9bdbabc..bf05388 100644
--- a/test/literal.go
+++ b/test/literal.go
@@ -18,7 +18,7 @@
 	}
 }
 
-func equal(a, b float) bool {
+func equal(a, b float32) bool {
 	return a == b
 }
 
@@ -116,23 +116,23 @@
 	_, _, _, _ = u30, u31, u32, u33
 
 	// float
-	var f00 float = 3.14159
-	var f01 float = -3.14159
-	var f02 float = +3.14159
-	var f03 float = 0.0
-	var f04 float = .0
-	var f05 float = 0.
-	var f06 float = -0.0
-	var f07 float = 1e10
-	var f08 float = -1e10
-	var f09 float = 1e-10
-	var f10 float = 1e+10
-	var f11 float = 1.e-10
-	var f12 float = 1.e+10
-	var f13 float = .1e-10
-	var f14 float = .1e+10
-	var f15 float = 1.1e-10
-	var f16 float = 1.1e+10
+	var f00 float32 = 3.14159
+	var f01 float32 = -3.14159
+	var f02 float32 = +3.14159
+	var f03 float32 = 0.0
+	var f04 float32 = .0
+	var f05 float32 = 0.
+	var f06 float32 = -0.0
+	var f07 float32 = 1e10
+	var f08 float32 = -1e10
+	var f09 float32 = 1e-10
+	var f10 float32 = 1e+10
+	var f11 float32 = 1.e-10
+	var f12 float32 = 1.e+10
+	var f13 float32 = .1e-10
+	var f14 float32 = .1e+10
+	var f15 float32 = 1.1e-10
+	var f16 float32 = 1.1e+10
 	assert(f01 == -f00, "f01")
 	assert(f02 == -f01, "f02")
 	assert(f03 == f04, "f03")
diff --git a/test/map.go b/test/map.go
index ddff7c7..c396349 100644
--- a/test/map.go
+++ b/test/map.go
@@ -21,73 +21,73 @@
 		}
 		s += `"` + a[i] + `"`
 	}
-	s +="}"
+	s += "}"
 	return s
 }
 
 func main() {
 	// Test a map literal.
-	mlit := map[string] int { "0":0, "1":1, "2":2, "3":3, "4":4 }
+	mlit := map[string]int{"0": 0, "1": 1, "2": 2, "3": 3, "4": 4}
 	for i := 0; i < len(mlit); i++ {
-		s := string([]byte{byte(i)+'0'})
+		s := string([]byte{byte(i) + '0'})
 		if mlit[s] != i {
 			fmt.Printf("mlit[%s] = %d\n", s, mlit[s])
 		}
 	}
 
-	mib := make(map[int] bool)
-	mii := make(map[int] int)
-	mfi := make(map[float] int)
-	mif := make(map[int] float)
-	msi := make(map[string] int)
-	mis := make(map[int] string)
-	mss := make(map[string] string)
-	mspa := make(map[string] []string)
+	mib := make(map[int]bool)
+	mii := make(map[int]int)
+	mfi := make(map[float32]int)
+	mif := make(map[int]float32)
+	msi := make(map[string]int)
+	mis := make(map[int]string)
+	mss := make(map[string]string)
+	mspa := make(map[string][]string)
 	// BUG need an interface map both ways too
 
 	type T struct {
-		i int64	// can't use string here; struct values are only compared at the top level
-		f float
+		i int64 // can't use string here; struct values are only compared at the top level
+		f float32
 	}
-	mipT := make(map[int] *T)
-	mpTi := make(map[*T] int)
-	mit := make(map[int] T)
-//	mti := make(map[T] int)
+	mipT := make(map[int]*T)
+	mpTi := make(map[*T]int)
+	mit := make(map[int]T)
+	//	mti := make(map[T] int)
 
-	type M map[int] int
-	mipM := make(map[int] M)
+	type M map[int]int
+	mipM := make(map[int]M)
 
-	var apT [2*count]*T
+	var apT [2 * count]*T
 
 	for i := 0; i < count; i++ {
 		s := strconv.Itoa(i)
-		s10 := strconv.Itoa(i*10)
-		f := float(i)
-		t := T{int64(i),f}
+		s10 := strconv.Itoa(i * 10)
+		f := float32(i)
+		t := T{int64(i), f}
 		apT[i] = new(T)
 		apT[i].i = int64(i)
 		apT[i].f = f
-		apT[2*i] = new(T)	// need twice as many entries as we use, for the nonexistence check
+		apT[2*i] = new(T) // need twice as many entries as we use, for the nonexistence check
 		apT[2*i].i = int64(i)
 		apT[2*i].f = f
-		m := M{i: i+1}
+		m := M{i: i + 1}
 		mib[i] = (i != 0)
-		mii[i] = 10*i
-		mfi[float(i)] = 10*i
-		mif[i] = 10.0*f
+		mii[i] = 10 * i
+		mfi[float32(i)] = 10 * i
+		mif[i] = 10.0 * f
 		mis[i] = s
 		msi[s] = i
 		mss[s] = s10
 		mss[s] = s10
 		as := make([]string, 2)
-			as[0] = s10
-			as[1] = s10
+		as[0] = s10
+		as[1] = s10
 		mspa[s] = as
 		mipT[i] = apT[i]
 		mpTi[apT[i]] = i
 		mipM[i] = m
 		mit[i] = t
-	//	mti[t] = i
+		//	mti[t] = i
 	}
 
 	// test len
@@ -121,15 +121,15 @@
 	if len(mpTi) != count {
 		fmt.Printf("len(mpTi) = %d\n", len(mpTi))
 	}
-//	if len(mti) != count {
-//		fmt.Printf("len(mti) = %d\n", len(mti))
-//	}
+	//	if len(mti) != count {
+	//		fmt.Printf("len(mti) = %d\n", len(mti))
+	//	}
 	if len(mipM) != count {
 		fmt.Printf("len(mipM) = %d\n", len(mipM))
 	}
-//	if len(mti) != count {
-//		fmt.Printf("len(mti) = %d\n", len(mti))
-//	}
+	//	if len(mti) != count {
+	//		fmt.Printf("len(mti) = %d\n", len(mti))
+	//	}
 	if len(mit) != count {
 		fmt.Printf("len(mit) = %d\n", len(mit))
 	}
@@ -137,25 +137,25 @@
 	// test construction directly
 	for i := 0; i < count; i++ {
 		s := strconv.Itoa(i)
-		s10 := strconv.Itoa(i*10)
-		f := float(i)
+		s10 := strconv.Itoa(i * 10)
+		f := float32(i)
 		// BUG m := M(i, i+1)
 		if mib[i] != (i != 0) {
 			fmt.Printf("mib[%d] = %t\n", i, mib[i])
 		}
-		if(mii[i] != 10*i) {
+		if mii[i] != 10*i {
 			fmt.Printf("mii[%d] = %d\n", i, mii[i])
 		}
-		if(mfi[f] != 10*i) {
+		if mfi[f] != 10*i {
 			fmt.Printf("mfi[%d] = %d\n", i, mfi[f])
 		}
-		if(mif[i] != 10.0*f) {
+		if mif[i] != 10.0*f {
 			fmt.Printf("mif[%d] = %g\n", i, mif[i])
 		}
-		if(mis[i] != s) {
+		if mis[i] != s {
 			fmt.Printf("mis[%d] = %s\n", i, mis[i])
 		}
-		if(msi[s] != i) {
+		if msi[s] != i {
 			fmt.Printf("msi[%s] = %d\n", s, msi[s])
 		}
 		if mss[s] != s10 {
@@ -166,22 +166,22 @@
 				fmt.Printf("mspa[%s][%d] = %s\n", s, j, mspa[s][j])
 			}
 		}
-		if(mipT[i].i != int64(i) || mipT[i].f != f) {
+		if mipT[i].i != int64(i) || mipT[i].f != f {
 			fmt.Printf("mipT[%d] = %v\n", i, mipT[i])
 		}
-		if(mpTi[apT[i]] != i) {
+		if mpTi[apT[i]] != i {
 			fmt.Printf("mpTi[apT[%d]] = %d\n", i, mpTi[apT[i]])
 		}
-	//	if(mti[t] != i) {
-	//		fmt.Printf("mti[%s] = %s\n", s, mti[t])
-	//	}
-		if (mipM[i][i] != i + 1) {
+		//	if(mti[t] != i) {
+		//		fmt.Printf("mti[%s] = %s\n", s, mti[t])
+		//	}
+		if mipM[i][i] != i+1 {
 			fmt.Printf("mipM[%d][%d] = %d\n", i, i, mipM[i][i])
 		}
-	//	if(mti[t] != i) {
-	//		fmt.Printf("mti[%v] = %d\n", t, mti[t])
-	//	}
-		if(mit[i].i != int64(i) || mit[i].f != f) {
+		//	if(mti[t] != i) {
+		//		fmt.Printf("mti[%v] = %d\n", t, mti[t])
+		//	}
+		if mit[i].i != int64(i) || mit[i].f != f {
 			fmt.Printf("mit[%d] = {%d %g}\n", i, mit[i].i, mit[i].f)
 		}
 	}
@@ -190,7 +190,7 @@
 	// failed lookups yield a false value for the boolean.
 	for i := 0; i < count; i++ {
 		s := strconv.Itoa(i)
-		f := float(i)
+		f := float32(i)
 		{
 			_, b := mib[i]
 			if !b {
@@ -311,23 +311,23 @@
 				fmt.Printf("tuple existence assign: mit[%d]\n", i)
 			}
 		}
-//		{
-//			_, b := mti[t]
-//			if !b {
-//				fmt.Printf("tuple existence decl: mti[%d]\n", i)
-//			}
-//			_, b = mti[t]
-//			if !b {
-//				fmt.Printf("tuple existence assign: mti[%d]\n", i)
-//			}
-//		}
+		//		{
+		//			_, b := mti[t]
+		//			if !b {
+		//				fmt.Printf("tuple existence decl: mti[%d]\n", i)
+		//			}
+		//			_, b = mti[t]
+		//			if !b {
+		//				fmt.Printf("tuple existence assign: mti[%d]\n", i)
+		//			}
+		//		}
 	}
 
 	// test nonexistence with tuple check
 	// failed lookups yield a false value for the boolean.
 	for i := count; i < 2*count; i++ {
 		s := strconv.Itoa(i)
-		f := float(i)
+		f := float32(i)
 		{
 			_, b := mib[i]
 			if b {
@@ -438,16 +438,16 @@
 				fmt.Printf("tuple nonexistence assign: mipM[%d]", i)
 			}
 		}
-//		{
-//			_, b := mti[t]
-//			if b {
-//				fmt.Printf("tuple nonexistence decl: mti[%d]", i)
-//			}
-//			_, b = mti[t]
-//			if b {
-//				fmt.Printf("tuple nonexistence assign: mti[%d]", i)
-//			}
-//		}
+		//		{
+		//			_, b := mti[t]
+		//			if b {
+		//				fmt.Printf("tuple nonexistence decl: mti[%d]", i)
+		//			}
+		//			_, b = mti[t]
+		//			if b {
+		//				fmt.Printf("tuple nonexistence assign: mti[%d]", i)
+		//			}
+		//		}
 		{
 			_, b := mit[i]
 			if b {
@@ -460,32 +460,31 @@
 		}
 	}
 
-
 	// tests for structured map element updates
 	for i := 0; i < count; i++ {
 		s := strconv.Itoa(i)
-		mspa[s][i % 2] = "deleted"
-		if mspa[s][i % 2] != "deleted" {
-			fmt.Printf("update mspa[%s][%d] = %s\n", s, i %2, mspa[s][i % 2])
+		mspa[s][i%2] = "deleted"
+		if mspa[s][i%2] != "deleted" {
+			fmt.Printf("update mspa[%s][%d] = %s\n", s, i%2, mspa[s][i%2])
 		}
 
 		mipT[i].i += 1
 		if mipT[i].i != int64(i)+1 {
 			fmt.Printf("update mipT[%d].i = %d\n", i, mipT[i].i)
 		}
-		mipT[i].f = float(i + 1)
-		if (mipT[i].f != float(i + 1)) {
+		mipT[i].f = float32(i + 1)
+		if mipT[i].f != float32(i+1) {
 			fmt.Printf("update mipT[%d].f = %g\n", i, mipT[i].f)
 		}
 
 		mipM[i][i]++
-		if mipM[i][i] != (i + 1) + 1 {
+		if mipM[i][i] != (i+1)+1 {
 			fmt.Printf("update mipM[%d][%d] = %i\n", i, i, mipM[i][i])
 		}
 	}
 
 	// test range on nil map
-	var mnil map[string] int
+	var mnil map[string]int
 	for _, _ = range mnil {
 		panic("range mnil")
 	}
diff --git a/test/named.go b/test/named.go
index d2039ba..5b6bb81 100644
--- a/test/named.go
+++ b/test/named.go
@@ -12,7 +12,7 @@
 type Array [10]byte
 type Bool bool
 type Chan chan int
-type Float float
+type Float float32
 type Int int
 type Map map[int]byte
 type Slice []byte
diff --git a/test/nil.go b/test/nil.go
index 6a72b72..4f4c755 100644
--- a/test/nil.go
+++ b/test/nil.go
@@ -10,14 +10,13 @@
 	i int
 }
 
-type IN interface {
-}
+type IN interface{}
 
 func main() {
 	var i *int
-	var f *float
+	var f *float32
 	var s *string
-	var m map[float] *int
+	var m map[float32]*int
 	var c chan int
 	var t *T
 	var in IN
diff --git a/test/recover2.go b/test/recover2.go
index f33af44..9affe25 100644
--- a/test/recover2.go
+++ b/test/recover2.go
@@ -58,7 +58,7 @@
 func test4() {
 	defer mustRecover("interface")
 	var x interface{} = 1
-	println(x.(float))
+	println(x.(float32))
 }
 
 type T struct {
diff --git a/test/test0.go b/test/test0.go
index dd2033a..d8d86c4 100644
--- a/test/test0.go
+++ b/test/test0.go
@@ -6,12 +6,11 @@
 
 package main
 
-const
-	a_const = 0
+const a_const = 0
 
 const (
-	pi = /* the usual */ 3.14159265358979323
-	e = 2.718281828
+	pi    = /* the usual */ 3.14159265358979323
+	e     = 2.718281828
 	mask1 int = 1 << iota
 	mask2 = 1 << iota
 	mask3 = 1 << iota
@@ -19,7 +18,7 @@
 )
 
 type (
-	Empty interface {}
+	Empty interface{}
 	Point struct {
 		x, y int
 	}
@@ -32,19 +31,21 @@
 }
 
 func (p *Point) Distance() int {
-	return p.x * p.x + p.y * p.y
+	return p.x*p.x + p.y*p.y
 }
 
 var (
-	x1 int
-	x2 int
-	u, v, w float
+	x1      int
+	x2      int
+	u, v, w float32
 )
 
 func foo() {}
 
 func min(x, y int) int {
-	if x < y { return x; }
+	if x < y {
+		return x
+	}
 	return y
 }
 
@@ -57,24 +58,29 @@
 func control_structs() {
 	var p *Point = new(Point).Initialize(2, 3)
 	i := p.Distance()
-	var f float = 0.3
+	var f float32 = 0.3
 	_ = f
-	for {}
-	for {}
+	for {
+	}
+	for {
+	}
 	for j := 0; j < i; j++ {
 		if i == 0 {
-		} else i = 0
-		var x float
+		} else {
+			i = 0
+		}
+		var x float32
 		_ = x
 	}
-	foo:	// a label
+foo: // a label
 	var j int
 	switch y := 0; true {
 	case i < y:
 		fallthrough
 	case i < j:
 	case i == 0, i == 1, i == j:
-		i++; i++
+		i++
+		i++
 		goto foo
 	default:
 		i = -+-+i
diff --git a/test/typeswitch.go b/test/typeswitch.go
index 9e6d10e..83fb098 100644
--- a/test/typeswitch.go
+++ b/test/typeswitch.go
@@ -21,12 +21,15 @@
 	Last
 )
 
-type S struct { a int }
+type S struct {
+	a int
+}
+
 var s S = S{1234}
 
 var c = make(chan int)
 
-var a	= []int{0,1,2,3}
+var a = []int{0, 1, 2, 3}
 
 var m = make(map[string]int)
 
@@ -68,10 +71,10 @@
 			assert(x == true && i == Bool, "bool")
 		case int:
 			assert(x == 7 && i == Int, "int")
-		case float:
-			assert(x == 7.4 && i == Float, "float")
+		case float64:
+			assert(x == 7.4 && i == Float, "float64")
 		case string:
-			assert(x == "hello"&& i == String, "string")
+			assert(x == "hello" && i == String, "string")
 		case S:
 			assert(x.a == 1234 && i == Struct, "struct")
 		case chan int:
diff --git a/test/zerodivide.go b/test/zerodivide.go
index cd4f522..1948528 100644
--- a/test/zerodivide.go
+++ b/test/zerodivide.go
@@ -17,56 +17,90 @@
 }
 
 type ErrorTest struct {
-	name	string
-	fn	func()
-	err	string
+	name string
+	fn   func()
+	err  string
 }
 
 var (
-	i, j, k int = 0, 0, 1
-	i8, j8, k8 int8 = 0, 0, 1
+	i, j, k       int   = 0, 0, 1
+	i8, j8, k8    int8  = 0, 0, 1
 	i16, j16, k16 int16 = 0, 0, 1
 	i32, j32, k32 int32 = 0, 0, 1
 	i64, j64, k64 int64 = 0, 0, 1
 
-	u, v, w uint = 0, 0, 1
-	u8, v8, w8 uint8 = 0, 0, 1
-	u16, v16, w16 uint16 = 0, 0, 1
-	u32, v32, w32 uint32 = 0, 0, 1
-	u64, v64, w64 uint64 = 0, 0, 1
-	up, vp, wp uintptr = 0, 0, 1
+	u, v, w       uint    = 0, 0, 1
+	u8, v8, w8    uint8   = 0, 0, 1
+	u16, v16, w16 uint16  = 0, 0, 1
+	u32, v32, w32 uint32  = 0, 0, 1
+	u64, v64, w64 uint64  = 0, 0, 1
+	up, vp, wp    uintptr = 0, 0, 1
 
-	f, g, h float = 0, 0, 1
-	f32, g32, h32 float32 = 0, 0, 1
+	f, g, h                         float64 = 0, 0, 1
+	f32, g32, h32                   float32 = 0, 0, 1
 	f64, g64, h64, inf, negInf, nan float64 = 0, 0, 1, math.Inf(1), math.Inf(-1), math.NaN()
 
-	c, d, e complex = 0+0i, 0+0i, 1+1i
-	c64, d64, e64 complex64 = 0+0i, 0+0i, 1+1i
-	c128, d128, e128 complex128 = 0+0i, 0+0i, 1+1i
+	c, d, e          complex128 = 0 + 0i, 0 + 0i, 1 + 1i
+	c64, d64, e64    complex64  = 0 + 0i, 0 + 0i, 1 + 1i
+	c128, d128, e128 complex128 = 0 + 0i, 0 + 0i, 1 + 1i
 )
 
 // Fool gccgo into thinking that these variables can change.
 func NotCalled() {
-	i++; j++; k++
-	i8++; j8++; k8++
-	i16++; j16++; k16++
-	i32++; j32++; k32++
-	i64++; j64++; k64++
+	i++
+	j++
+	k++
+	i8++
+	j8++
+	k8++
+	i16++
+	j16++
+	k16++
+	i32++
+	j32++
+	k32++
+	i64++
+	j64++
+	k64++
 
-	u++; v++; w++
-	u8++; v8++; w8++
-	u16++; v16++; w16++
-	u32++; v32++; w32++
-	u64++; v64++; w64++
-	up++; vp++; wp++
+	u++
+	v++
+	w++
+	u8++
+	v8++
+	w8++
+	u16++
+	v16++
+	w16++
+	u32++
+	v32++
+	w32++
+	u64++
+	v64++
+	w64++
+	up++
+	vp++
+	wp++
 
-	f += 1; g += 1; h += 1
-	f32 += 1; g32 += 1; h32 += 1
-	f64 += 1; g64 += 1; h64 += 1
+	f += 1
+	g += 1
+	h += 1
+	f32 += 1
+	g32 += 1
+	h32 += 1
+	f64 += 1
+	g64 += 1
+	h64 += 1
 
-	c += 1+1i; d += 1+1i; e += 1+1i
-	c64 += 1+1i; d64 += 1+1i; e64 += 1+1i
-	c128 += 1+1i; d128 += 1+1i; e128 += 1+1i
+	c += 1 + 1i
+	d += 1 + 1i
+	e += 1 + 1i
+	c64 += 1 + 1i
+	d64 += 1 + 1i
+	e64 += 1 + 1i
+	c128 += 1 + 1i
+	d128 += 1 + 1i
+	e128 += 1 + 1i
 }
 
 var tmp interface{}
@@ -79,52 +113,52 @@
 // Verify error/no error for all types.
 var errorTests = []ErrorTest{
 	// All integer divide by zero should error.
-	ErrorTest{ "int 0/0", func() { use(i/j) }, "divide", },
-	ErrorTest{ "int8 0/0", func() { use(i8/j8) }, "divide", },
-	ErrorTest{ "int16 0/0", func() { use(i16/j16) }, "divide", },
-	ErrorTest{ "int32 0/0", func() { use(i32/j32) }, "divide", },
-	ErrorTest{ "int64 0/0", func() { use(i64/j64) }, "divide", },
+	ErrorTest{"int 0/0", func() { use(i / j) }, "divide"},
+	ErrorTest{"int8 0/0", func() { use(i8 / j8) }, "divide"},
+	ErrorTest{"int16 0/0", func() { use(i16 / j16) }, "divide"},
+	ErrorTest{"int32 0/0", func() { use(i32 / j32) }, "divide"},
+	ErrorTest{"int64 0/0", func() { use(i64 / j64) }, "divide"},
 
-	ErrorTest{ "int 1/0", func() { use(k/j) }, "divide", },
-	ErrorTest{ "int8 1/0", func() { use(k8/j8) }, "divide", },
-	ErrorTest{ "int16 1/0", func() { use(k16/j16) }, "divide", },
-	ErrorTest{ "int32 1/0", func() { use(k32/j32) }, "divide", },
-	ErrorTest{ "int64 1/0", func() { use(k64/j64) }, "divide", },
+	ErrorTest{"int 1/0", func() { use(k / j) }, "divide"},
+	ErrorTest{"int8 1/0", func() { use(k8 / j8) }, "divide"},
+	ErrorTest{"int16 1/0", func() { use(k16 / j16) }, "divide"},
+	ErrorTest{"int32 1/0", func() { use(k32 / j32) }, "divide"},
+	ErrorTest{"int64 1/0", func() { use(k64 / j64) }, "divide"},
 
-	ErrorTest{ "uint 0/0", func() { use(u/v) }, "divide", },
-	ErrorTest{ "uint8 0/0", func() { use(u8/v8) }, "divide", },
-	ErrorTest{ "uint16 0/0", func() { use(u16/v16) }, "divide", },
-	ErrorTest{ "uint32 0/0", func() { use(u32/v32) }, "divide", },
-	ErrorTest{ "uint64 0/0", func() { use(u64/v64) }, "divide", },
-	ErrorTest{ "uintptr 0/0", func() { use(up/vp) }, "divide", },
+	ErrorTest{"uint 0/0", func() { use(u / v) }, "divide"},
+	ErrorTest{"uint8 0/0", func() { use(u8 / v8) }, "divide"},
+	ErrorTest{"uint16 0/0", func() { use(u16 / v16) }, "divide"},
+	ErrorTest{"uint32 0/0", func() { use(u32 / v32) }, "divide"},
+	ErrorTest{"uint64 0/0", func() { use(u64 / v64) }, "divide"},
+	ErrorTest{"uintptr 0/0", func() { use(up / vp) }, "divide"},
 
-	ErrorTest{ "uint 1/0", func() { use(w/v) }, "divide", },
-	ErrorTest{ "uint8 1/0", func() { use(w8/v8) }, "divide", },
-	ErrorTest{ "uint16 1/0", func() { use(w16/v16) }, "divide", },
-	ErrorTest{ "uint32 1/0", func() { use(w32/v32) }, "divide", },
-	ErrorTest{ "uint64 1/0", func() { use(w64/v64) }, "divide", },
-	ErrorTest{ "uintptr 1/0", func() { use(wp/vp) }, "divide", },
+	ErrorTest{"uint 1/0", func() { use(w / v) }, "divide"},
+	ErrorTest{"uint8 1/0", func() { use(w8 / v8) }, "divide"},
+	ErrorTest{"uint16 1/0", func() { use(w16 / v16) }, "divide"},
+	ErrorTest{"uint32 1/0", func() { use(w32 / v32) }, "divide"},
+	ErrorTest{"uint64 1/0", func() { use(w64 / v64) }, "divide"},
+	ErrorTest{"uintptr 1/0", func() { use(wp / vp) }, "divide"},
 
-	// All floating divide by zero should not error.
-	ErrorTest{ "float 0/0", func() { use(f/g) }, "", },
-	ErrorTest{ "float32 0/0", func() { use(f32/g32) }, "", },
-	ErrorTest{ "float64 0/0", func() { use(f64/g64) }, "", },
+	// All float64ing divide by zero should not error.
+	ErrorTest{"float64 0/0", func() { use(f / g) }, ""},
+	ErrorTest{"float32 0/0", func() { use(f32 / g32) }, ""},
+	ErrorTest{"float64 0/0", func() { use(f64 / g64) }, ""},
 
-	ErrorTest{ "float 1/0", func() { use(h/g) }, "", },
-	ErrorTest{ "float32 1/0", func() { use(h32/g32) }, "", },
-	ErrorTest{ "float64 1/0", func() { use(h64/g64) }, "", },
-	ErrorTest{ "float64 inf/0", func() { use(inf/g64) }, "", },
-	ErrorTest{ "float64 -inf/0", func() { use(negInf/g64) }, "", },
-	ErrorTest{ "float64 nan/0", func() { use(nan/g64) }, "", },
+	ErrorTest{"float64 1/0", func() { use(h / g) }, ""},
+	ErrorTest{"float32 1/0", func() { use(h32 / g32) }, ""},
+	ErrorTest{"float64 1/0", func() { use(h64 / g64) }, ""},
+	ErrorTest{"float64 inf/0", func() { use(inf / g64) }, ""},
+	ErrorTest{"float64 -inf/0", func() { use(negInf / g64) }, ""},
+	ErrorTest{"float64 nan/0", func() { use(nan / g64) }, ""},
 
 	// All complex divide by zero should not error.
-	ErrorTest{ "complex 0/0", func() { use(c/d) }, "", },
-	ErrorTest{ "complex64 0/0", func() { use(c64/d64) }, "", },
-	ErrorTest{ "complex128 0/0", func() { use(c128/d128) }, "", },
+	ErrorTest{"complex 0/0", func() { use(c / d) }, ""},
+	ErrorTest{"complex64 0/0", func() { use(c64 / d64) }, ""},
+	ErrorTest{"complex128 0/0", func() { use(c128 / d128) }, ""},
 
-	ErrorTest{ "complex 1/0", func() { use(e/d) }, "", },
-	ErrorTest{ "complex64 1/0", func() { use(e64/d64) }, "", },
-	ErrorTest{ "complex128 1/0", func() { use(e128/d128) }, "", },
+	ErrorTest{"complex 1/0", func() { use(e / d) }, ""},
+	ErrorTest{"complex64 1/0", func() { use(e64 / d64) }, ""},
+	ErrorTest{"complex128 1/0", func() { use(e128 / d128) }, ""},
 }
 
 func error(fn func()) (error string) {
@@ -137,12 +171,12 @@
 	return ""
 }
 
-type FloatTest struct{
-	f, g	float64
-	out	float64
+type FloatTest struct {
+	f, g float64
+	out  float64
 }
 
-var floatTests = []FloatTest{
+var float64Tests = []FloatTest{
 	FloatTest{0, 0, nan},
 	FloatTest{nan, 0, nan},
 	FloatTest{inf, 0, inf},
@@ -194,8 +228,8 @@
 	}
 
 	// At this point we know we don't error on the values we're testing
-	for _, t := range floatTests {
-		x := t.f/t.g
+	for _, t := range float64Tests {
+		x := t.f / t.g
 		if !alike(x, t.out) {
 			if !bad {
 				bad = true