diff options
author | Ian Lance Taylor <iant@golang.org> | 2020-12-01 18:59:18 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2020-12-03 08:21:02 -0800 |
commit | cd34d5f2c40f3c65407f4b0bee0b49fc84e4a4ab (patch) | |
tree | 843df1c1321bbc66e1bee850fa8513c54dd25dc8 /gcc | |
parent | 65af6bc9f87bc6b329fb7a16e3f736dd0a042bf5 (diff) | |
download | gcc-cd34d5f2c40f3c65407f4b0bee0b49fc84e4a4ab.zip gcc-cd34d5f2c40f3c65407f4b0bee0b49fc84e4a4ab.tar.gz gcc-cd34d5f2c40f3c65407f4b0bee0b49fc84e4a4ab.tar.bz2 |
compiler: defer to middle-end for complex division
Go used to use slightly different semantics than C99 for complex division,
so we used runtime routines to handle the different. The gc compiler
has changes its behavior to match C99, so changes ours as well.
For golang/go#14644
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/274213
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 21 | ||||
-rw-r--r-- | gcc/go/gofrontend/runtime.def | 6 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/cmplxdivide.c | 87 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/cmplxdivide.go | 27 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/cmplxdivide1.go | 6511 |
6 files changed, 4171 insertions, 2483 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 183e5ca..f55daf7 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -6b01f8cdc11d86bd98165c91d6ae101bcf6b9e1a +5364d15082de77d2759a01f254208d4cb4f579e3 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 23caf61..50574c2 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -6979,27 +6979,6 @@ Binary_expression::do_get_backend(Translate_context* context) // been converted to a String_concat_expression in do_lower. go_assert(!left_type->is_string_type()); - // For complex division Go might want slightly different results than the - // backend implementation provides, so we have our own runtime routine. - if (this->op_ == OPERATOR_DIV && this->left_->type()->complex_type() != NULL) - { - Runtime::Function complex_code; - switch (this->left_->type()->complex_type()->bits()) - { - case 64: - complex_code = Runtime::COMPLEX64_DIV; - break; - case 128: - complex_code = Runtime::COMPLEX128_DIV; - break; - default: - go_unreachable(); - } - Expression* complex_div = - Runtime::make_call(complex_code, loc, 2, this->left_, this->right_); - return complex_div->get_backend(context); - } - Bexpression* left = this->left_->get_backend(context); Bexpression* right = this->right_->get_backend(context); diff --git a/gcc/go/gofrontend/runtime.def b/gcc/go/gofrontend/runtime.def index 9a3c680..4b606a6 100644 --- a/gcc/go/gofrontend/runtime.def +++ b/gcc/go/gofrontend/runtime.def @@ -62,12 +62,6 @@ DEF_GO_RUNTIME(STRINGTOSLICERUNE, "runtime.stringtoslicerune", P2(POINTER, STRING), R1(SLICE)) -// Complex division. -DEF_GO_RUNTIME(COMPLEX64_DIV, "__go_complex64_div", - P2(COMPLEX64, COMPLEX64), R1(COMPLEX64)) -DEF_GO_RUNTIME(COMPLEX128_DIV, "__go_complex128_div", - P2(COMPLEX128, COMPLEX128), R1(COMPLEX128)) - // Make a slice. DEF_GO_RUNTIME(MAKESLICE, "runtime.makeslice", P3(TYPE, INT, INT), R1(POINTER)) diff --git a/gcc/testsuite/go.test/test/cmplxdivide.c b/gcc/testsuite/go.test/test/cmplxdivide.c index 12dc4f1..89a2868 100644 --- a/gcc/testsuite/go.test/test/cmplxdivide.c +++ b/gcc/testsuite/go.test/test/cmplxdivide.c @@ -1,8 +1,19 @@ -// Copyright 2010 The Go Authors. All rights reserved. +// Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// gcc '-std=c99' cmplxdivide.c && a.out >cmplxdivide1.go +// This C program generates the file cmplxdivide1.go. It uses the +// output of the operations by C99 as the reference to check +// the implementation of complex numbers in Go. +// The generated file, cmplxdivide1.go, is compiled along +// with the driver cmplxdivide.go (the names are confusing +// and unimaginative) to run the actual test. This is done by +// the usual test runner. +// +// The file cmplxdivide1.go is checked in to the repository, but +// if it needs to be regenerated, compile and run this C program +// like this: +// gcc '-std=c99' cmplxdivide.c && a.out >cmplxdivide1.go #include <complex.h> #include <math.h> @@ -12,50 +23,63 @@ #define nelem(x) (sizeof(x)/sizeof((x)[0])) double f[] = { - 0, - 1, - -1, - 2, + 0.0, + -0.0, + 1.0, + -1.0, + 2.0, NAN, INFINITY, -INFINITY, }; -char* -fmt(double g) -{ +char* fmt(double g) { static char buf[10][30]; static int n; char *p; - + p = buf[n++]; - if(n == 10) + if(n == 10) { n = 0; + } + sprintf(p, "%g", g); - if(strcmp(p, "-0") == 0) - strcpy(p, "negzero"); - return p; -} -int -iscnan(double complex d) -{ - return !isinf(creal(d)) && !isinf(cimag(d)) && (isnan(creal(d)) || isnan(cimag(d))); -} + if(strcmp(p, "0") == 0) { + strcpy(p, "zero"); + return p; + } + + if(strcmp(p, "-0") == 0) { + strcpy(p, "-zero"); + return p; + } -double complex zero; // attempt to hide zero division from gcc + return p; +} -int -main(void) -{ +int main(void) { int i, j, k, l; double complex n, d, q; - + printf("// skip\n"); printf("// # generated by cmplxdivide.c\n"); printf("\n"); printf("package main\n"); - printf("var tests = []Test{\n"); + printf("\n"); + printf("import \"math\"\n"); + printf("\n"); + printf("var (\n"); + printf("\tnan = math.NaN()\n"); + printf("\tinf = math.Inf(1)\n"); + printf("\tzero = 0.0\n"); + printf(")\n"); + printf("\n"); + printf("var tests = []struct {\n"); + printf("\tf, g complex128\n"); + printf("\tout complex128\n"); + printf("}{\n"); + for(i=0; i<nelem(f); i++) for(j=0; j<nelem(f); j++) for(k=0; k<nelem(f); k++) @@ -63,17 +87,8 @@ main(void) n = f[i] + f[j]*I; d = f[k] + f[l]*I; q = n/d; - - // BUG FIX. - // Gcc gets the wrong answer for NaN/0 unless both sides are NaN. - // That is, it treats (NaN+NaN*I)/0 = NaN+NaN*I (a complex NaN) - // but it then computes (1+NaN*I)/0 = Inf+NaN*I (a complex infinity). - // Since both numerators are complex NaNs, it seems that the - // results should agree in kind. Override the gcc computation in this case. - if(iscnan(n) && d == 0) - q = (NAN+NAN*I) / zero; - printf("\tTest{complex(%s, %s), complex(%s, %s), complex(%s, %s)},\n", + printf("\t{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/gcc/testsuite/go.test/test/cmplxdivide.go b/gcc/testsuite/go.test/test/cmplxdivide.go index 40c8448..49cd5bf 100644 --- a/gcc/testsuite/go.test/test/cmplxdivide.go +++ b/gcc/testsuite/go.test/test/cmplxdivide.go @@ -1,36 +1,29 @@ // run cmplxdivide1.go -// Copyright 2010 The Go Authors. All rights reserved. +// Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Driver for complex division table defined in cmplxdivide1.go +// For details, see the comment at the top of cmplxdivide.c. package main import ( "fmt" "math" - "math/cmplx" ) -type Test struct { - f, g complex128 - out complex128 -} - -var nan = math.NaN() -var inf = math.Inf(1) -var negzero = math.Copysign(0, -1) - func calike(a, b complex128) bool { - switch { - case cmplx.IsInf(a) && cmplx.IsInf(b): - return true - case cmplx.IsNaN(a) && cmplx.IsNaN(b): - return true + if imag(a) != imag(b) && !(math.IsNaN(imag(a)) && math.IsNaN(imag(b))) { + return false } - return a == b + + if real(a) != real(b) && !(math.IsNaN(real(a)) && math.IsNaN(real(b))) { + return false + } + + return true } func main() { diff --git a/gcc/testsuite/go.test/test/cmplxdivide1.go b/gcc/testsuite/go.test/test/cmplxdivide1.go index e9031dd..a52fb6f 100644 --- a/gcc/testsuite/go.test/test/cmplxdivide1.go +++ b/gcc/testsuite/go.test/test/cmplxdivide1.go @@ -2,2406 +2,4113 @@ // # generated by cmplxdivide.c package main -var tests = []Test{ - Test{complex(0, 0), complex(0, 0), complex(-nan, -nan)}, - Test{complex(0, 0), complex(0, 1), complex(0, 0)}, - Test{complex(0, 0), complex(0, -1), complex(negzero, 0)}, - Test{complex(0, 0), complex(0, 2), complex(0, 0)}, - Test{complex(0, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 0), complex(1, 0), complex(0, 0)}, - Test{complex(0, 0), complex(1, 1), complex(0, 0)}, - Test{complex(0, 0), complex(1, -1), complex(0, 0)}, - Test{complex(0, 0), complex(1, 2), complex(0, 0)}, - Test{complex(0, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 0), complex(-1, 0), complex(negzero, negzero)}, - Test{complex(0, 0), complex(-1, 1), complex(negzero, negzero)}, - Test{complex(0, 0), complex(-1, -1), complex(negzero, negzero)}, - Test{complex(0, 0), complex(-1, 2), complex(0, negzero)}, - Test{complex(0, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 0), complex(2, 0), complex(0, 0)}, - Test{complex(0, 0), complex(2, 1), complex(0, 0)}, - Test{complex(0, 0), complex(2, -1), complex(0, 0)}, - Test{complex(0, 0), complex(2, 2), complex(0, 0)}, - Test{complex(0, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 0), complex(nan, 0), complex(nan, nan)}, - Test{complex(0, 0), complex(nan, 1), complex(nan, nan)}, - Test{complex(0, 0), complex(nan, -1), complex(nan, nan)}, - Test{complex(0, 0), complex(nan, 2), complex(nan, nan)}, - Test{complex(0, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 0), complex(inf, 0), complex(0, 0)}, - Test{complex(0, 0), complex(inf, 1), complex(0, 0)}, - Test{complex(0, 0), complex(inf, -1), complex(0, 0)}, - Test{complex(0, 0), complex(inf, 2), complex(0, 0)}, - Test{complex(0, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 0), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(0, 0), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(0, 0), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(0, 0), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(0, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 1), complex(0, 0), complex(-nan, inf)}, - Test{complex(0, 1), complex(0, 1), complex(1, 0)}, - Test{complex(0, 1), complex(0, -1), complex(-1, 0)}, - Test{complex(0, 1), complex(0, 2), complex(0.5, 0)}, - Test{complex(0, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 1), complex(1, 0), complex(0, 1)}, - Test{complex(0, 1), complex(1, 1), complex(0.5, 0.5)}, - Test{complex(0, 1), complex(1, -1), complex(-0.5, 0.5)}, - Test{complex(0, 1), complex(1, 2), complex(0.4, 0.2)}, - Test{complex(0, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 1), complex(-1, 0), complex(negzero, -1)}, - Test{complex(0, 1), complex(-1, 1), complex(0.5, -0.5)}, - Test{complex(0, 1), complex(-1, -1), complex(-0.5, -0.5)}, - Test{complex(0, 1), complex(-1, 2), complex(0.4, -0.2)}, - Test{complex(0, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 1), complex(2, 0), complex(0, 0.5)}, - Test{complex(0, 1), complex(2, 1), complex(0.2, 0.4)}, - Test{complex(0, 1), complex(2, -1), complex(-0.2, 0.4)}, - Test{complex(0, 1), complex(2, 2), complex(0.25, 0.25)}, - Test{complex(0, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 1), complex(nan, 0), complex(nan, nan)}, - Test{complex(0, 1), complex(nan, 1), complex(nan, nan)}, - Test{complex(0, 1), complex(nan, -1), complex(nan, nan)}, - Test{complex(0, 1), complex(nan, 2), complex(nan, nan)}, - Test{complex(0, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 1), complex(inf, 0), complex(0, 0)}, - Test{complex(0, 1), complex(inf, 1), complex(0, 0)}, - Test{complex(0, 1), complex(inf, -1), complex(0, 0)}, - Test{complex(0, 1), complex(inf, 2), complex(0, 0)}, - Test{complex(0, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 1), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(0, 1), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(0, 1), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(0, 1), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(0, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(0, 0), complex(-nan, -inf)}, - Test{complex(0, -1), complex(0, 1), complex(-1, negzero)}, - Test{complex(0, -1), complex(0, -1), complex(1, negzero)}, - Test{complex(0, -1), complex(0, 2), complex(-0.5, negzero)}, - Test{complex(0, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(0, -1), complex(1, 0), complex(0, -1)}, - Test{complex(0, -1), complex(1, 1), complex(-0.5, -0.5)}, - Test{complex(0, -1), complex(1, -1), complex(0.5, -0.5)}, - Test{complex(0, -1), complex(1, 2), complex(-0.4, -0.2)}, - Test{complex(0, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(0, -1), complex(-1, 0), complex(negzero, 1)}, - Test{complex(0, -1), complex(-1, 1), complex(-0.5, 0.5)}, - Test{complex(0, -1), complex(-1, -1), complex(0.5, 0.5)}, - Test{complex(0, -1), complex(-1, 2), complex(-0.4, 0.2)}, - Test{complex(0, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(0, -1), complex(2, 0), complex(0, -0.5)}, - Test{complex(0, -1), complex(2, 1), complex(-0.2, -0.4)}, - Test{complex(0, -1), complex(2, -1), complex(0.2, -0.4)}, - Test{complex(0, -1), complex(2, 2), complex(-0.25, -0.25)}, - Test{complex(0, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(0, -1), complex(nan, 0), complex(nan, nan)}, - Test{complex(0, -1), complex(nan, 1), complex(nan, nan)}, - Test{complex(0, -1), complex(nan, -1), complex(nan, nan)}, - Test{complex(0, -1), complex(nan, 2), complex(nan, nan)}, - Test{complex(0, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(0, -1), complex(inf, 0), complex(0, negzero)}, - Test{complex(0, -1), complex(inf, 1), complex(0, negzero)}, - Test{complex(0, -1), complex(inf, -1), complex(0, negzero)}, - Test{complex(0, -1), complex(inf, 2), complex(0, negzero)}, - Test{complex(0, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(0, -1), complex(-inf, 0), complex(negzero, 0)}, - Test{complex(0, -1), complex(-inf, 1), complex(negzero, 0)}, - Test{complex(0, -1), complex(-inf, -1), complex(negzero, 0)}, - Test{complex(0, -1), complex(-inf, 2), complex(negzero, 0)}, - Test{complex(0, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(0, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(0, 2), complex(0, 0), complex(-nan, inf)}, - Test{complex(0, 2), complex(0, 1), complex(2, 0)}, - Test{complex(0, 2), complex(0, -1), complex(-2, 0)}, - Test{complex(0, 2), complex(0, 2), complex(1, 0)}, - Test{complex(0, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 2), complex(1, 0), complex(0, 2)}, - Test{complex(0, 2), complex(1, 1), complex(1, 1)}, - Test{complex(0, 2), complex(1, -1), complex(-1, 1)}, - Test{complex(0, 2), complex(1, 2), complex(0.8, 0.4)}, - Test{complex(0, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 2), complex(-1, 0), complex(negzero, -2)}, - Test{complex(0, 2), complex(-1, 1), complex(1, -1)}, - Test{complex(0, 2), complex(-1, -1), complex(-1, -1)}, - Test{complex(0, 2), complex(-1, 2), complex(0.8, -0.4)}, - Test{complex(0, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 2), complex(2, 0), complex(0, 1)}, - Test{complex(0, 2), complex(2, 1), complex(0.4, 0.8)}, - Test{complex(0, 2), complex(2, -1), complex(-0.4, 0.8)}, - Test{complex(0, 2), complex(2, 2), complex(0.5, 0.5)}, - Test{complex(0, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 2), complex(nan, 0), complex(nan, nan)}, - Test{complex(0, 2), complex(nan, 1), complex(nan, nan)}, - Test{complex(0, 2), complex(nan, -1), complex(nan, nan)}, - Test{complex(0, 2), complex(nan, 2), complex(nan, nan)}, - Test{complex(0, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 2), complex(inf, 0), complex(0, 0)}, - Test{complex(0, 2), complex(inf, 1), complex(0, 0)}, - Test{complex(0, 2), complex(inf, -1), complex(0, 0)}, - Test{complex(0, 2), complex(inf, 2), complex(0, 0)}, - Test{complex(0, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(0, 2), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(0, 2), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(0, 2), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(0, 2), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(0, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(0, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(0, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(nan, nan), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)}, - Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)}, - Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)}, - Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)}, - Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)}, - Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)}, - Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(1, 0), complex(0, 0), complex(inf, -nan)}, - Test{complex(1, 0), complex(0, 1), complex(0, -1)}, - Test{complex(1, 0), complex(0, -1), complex(negzero, 1)}, - Test{complex(1, 0), complex(0, 2), complex(0, -0.5)}, - Test{complex(1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 0), complex(1, 0), complex(1, 0)}, - Test{complex(1, 0), complex(1, 1), complex(0.5, -0.5)}, - Test{complex(1, 0), complex(1, -1), complex(0.5, 0.5)}, - Test{complex(1, 0), complex(1, 2), complex(0.2, -0.4)}, - Test{complex(1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 0), complex(-1, 0), complex(-1, negzero)}, - Test{complex(1, 0), complex(-1, 1), complex(-0.5, -0.5)}, - Test{complex(1, 0), complex(-1, -1), complex(-0.5, 0.5)}, - Test{complex(1, 0), complex(-1, 2), complex(-0.2, -0.4)}, - Test{complex(1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 0), complex(2, 0), complex(0.5, 0)}, - Test{complex(1, 0), complex(2, 1), complex(0.4, -0.2)}, - Test{complex(1, 0), complex(2, -1), complex(0.4, 0.2)}, - Test{complex(1, 0), complex(2, 2), complex(0.25, -0.25)}, - Test{complex(1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 0), complex(nan, 0), complex(nan, nan)}, - Test{complex(1, 0), complex(nan, 1), complex(nan, nan)}, - Test{complex(1, 0), complex(nan, -1), complex(nan, nan)}, - Test{complex(1, 0), complex(nan, 2), complex(nan, nan)}, - Test{complex(1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 0), complex(inf, 0), complex(0, 0)}, - Test{complex(1, 0), complex(inf, 1), complex(0, 0)}, - Test{complex(1, 0), complex(inf, -1), complex(0, 0)}, - Test{complex(1, 0), complex(inf, 2), complex(0, 0)}, - Test{complex(1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 0), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(1, 0), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(1, 0), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(1, 0), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 1), complex(0, 0), complex(inf, inf)}, - Test{complex(1, 1), complex(0, 1), complex(1, -1)}, - Test{complex(1, 1), complex(0, -1), complex(-1, 1)}, - Test{complex(1, 1), complex(0, 2), complex(0.5, -0.5)}, - Test{complex(1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 1), complex(1, 0), complex(1, 1)}, - Test{complex(1, 1), complex(1, 1), complex(1, 0)}, - Test{complex(1, 1), complex(1, -1), complex(0, 1)}, - Test{complex(1, 1), complex(1, 2), complex(0.6, -0.2)}, - Test{complex(1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 1), complex(-1, 0), complex(-1, -1)}, - Test{complex(1, 1), complex(-1, 1), complex(negzero, -1)}, - Test{complex(1, 1), complex(-1, -1), complex(-1, negzero)}, - Test{complex(1, 1), complex(-1, 2), complex(0.2, -0.6)}, - Test{complex(1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 1), complex(2, 0), complex(0.5, 0.5)}, - Test{complex(1, 1), complex(2, 1), complex(0.6, 0.2)}, - Test{complex(1, 1), complex(2, -1), complex(0.2, 0.6)}, - Test{complex(1, 1), complex(2, 2), complex(0.5, 0)}, - Test{complex(1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 1), complex(nan, 0), complex(nan, nan)}, - Test{complex(1, 1), complex(nan, 1), complex(nan, nan)}, - Test{complex(1, 1), complex(nan, -1), complex(nan, nan)}, - Test{complex(1, 1), complex(nan, 2), complex(nan, nan)}, - Test{complex(1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 1), complex(inf, 0), complex(0, 0)}, - Test{complex(1, 1), complex(inf, 1), complex(0, 0)}, - Test{complex(1, 1), complex(inf, -1), complex(0, 0)}, - Test{complex(1, 1), complex(inf, 2), complex(0, 0)}, - Test{complex(1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 1), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(1, 1), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(1, 1), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(1, 1), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, -1), complex(0, 0), complex(inf, -inf)}, - Test{complex(1, -1), complex(0, 1), complex(-1, -1)}, - Test{complex(1, -1), complex(0, -1), complex(1, 1)}, - Test{complex(1, -1), complex(0, 2), complex(-0.5, -0.5)}, - Test{complex(1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(1, -1), complex(1, 0), complex(1, -1)}, - Test{complex(1, -1), complex(1, 1), complex(0, -1)}, - Test{complex(1, -1), complex(1, -1), complex(1, 0)}, - Test{complex(1, -1), complex(1, 2), complex(-0.2, -0.6)}, - Test{complex(1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(1, -1), complex(-1, 0), complex(-1, 1)}, - Test{complex(1, -1), complex(-1, 1), complex(-1, negzero)}, - Test{complex(1, -1), complex(-1, -1), complex(negzero, 1)}, - Test{complex(1, -1), complex(-1, 2), complex(-0.6, -0.2)}, - Test{complex(1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(1, -1), complex(2, 0), complex(0.5, -0.5)}, - Test{complex(1, -1), complex(2, 1), complex(0.2, -0.6)}, - Test{complex(1, -1), complex(2, -1), complex(0.6, -0.2)}, - Test{complex(1, -1), complex(2, 2), complex(0, -0.5)}, - Test{complex(1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(1, -1), complex(nan, 0), complex(nan, nan)}, - Test{complex(1, -1), complex(nan, 1), complex(nan, nan)}, - Test{complex(1, -1), complex(nan, -1), complex(nan, nan)}, - Test{complex(1, -1), complex(nan, 2), complex(nan, nan)}, - Test{complex(1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(1, -1), complex(inf, 0), complex(0, negzero)}, - Test{complex(1, -1), complex(inf, 1), complex(0, negzero)}, - Test{complex(1, -1), complex(inf, -1), complex(0, negzero)}, - Test{complex(1, -1), complex(inf, 2), complex(0, negzero)}, - Test{complex(1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(1, -1), complex(-inf, 0), complex(negzero, 0)}, - Test{complex(1, -1), complex(-inf, 1), complex(negzero, 0)}, - Test{complex(1, -1), complex(-inf, -1), complex(negzero, 0)}, - Test{complex(1, -1), complex(-inf, 2), complex(negzero, 0)}, - Test{complex(1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(1, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(1, 2), complex(0, 0), complex(inf, inf)}, - Test{complex(1, 2), complex(0, 1), complex(2, -1)}, - Test{complex(1, 2), complex(0, -1), complex(-2, 1)}, - Test{complex(1, 2), complex(0, 2), complex(1, -0.5)}, - Test{complex(1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 2), complex(1, 0), complex(1, 2)}, - Test{complex(1, 2), complex(1, 1), complex(1.5, 0.5)}, - Test{complex(1, 2), complex(1, -1), complex(-0.5, 1.5)}, - Test{complex(1, 2), complex(1, 2), complex(1, 0)}, - Test{complex(1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 2), complex(-1, 0), complex(-1, -2)}, - Test{complex(1, 2), complex(-1, 1), complex(0.5, -1.5)}, - Test{complex(1, 2), complex(-1, -1), complex(-1.5, -0.5)}, - Test{complex(1, 2), complex(-1, 2), complex(0.6, -0.8)}, - Test{complex(1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 2), complex(2, 0), complex(0.5, 1)}, - Test{complex(1, 2), complex(2, 1), complex(0.8, 0.6)}, - Test{complex(1, 2), complex(2, -1), complex(0, 1)}, - Test{complex(1, 2), complex(2, 2), complex(0.75, 0.25)}, - Test{complex(1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 2), complex(nan, 0), complex(nan, nan)}, - Test{complex(1, 2), complex(nan, 1), complex(nan, nan)}, - Test{complex(1, 2), complex(nan, -1), complex(nan, nan)}, - Test{complex(1, 2), complex(nan, 2), complex(nan, nan)}, - Test{complex(1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 2), complex(inf, 0), complex(0, 0)}, - Test{complex(1, 2), complex(inf, 1), complex(0, 0)}, - Test{complex(1, 2), complex(inf, -1), complex(0, 0)}, - Test{complex(1, 2), complex(inf, 2), complex(0, 0)}, - Test{complex(1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(1, 2), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(1, 2), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(1, 2), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(1, 2), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(1, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(1, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(nan, nan), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)}, - Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)}, - Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)}, - Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)}, - Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)}, - Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)}, - Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-1, 0), complex(0, 0), complex(-inf, -nan)}, - Test{complex(-1, 0), complex(0, 1), complex(0, 1)}, - Test{complex(-1, 0), complex(0, -1), complex(negzero, -1)}, - Test{complex(-1, 0), complex(0, 2), complex(0, 0.5)}, - Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 0), complex(1, 0), complex(-1, 0)}, - Test{complex(-1, 0), complex(1, 1), complex(-0.5, 0.5)}, - Test{complex(-1, 0), complex(1, -1), complex(-0.5, -0.5)}, - Test{complex(-1, 0), complex(1, 2), complex(-0.2, 0.4)}, - Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 0), complex(-1, 0), complex(1, negzero)}, - Test{complex(-1, 0), complex(-1, 1), complex(0.5, 0.5)}, - Test{complex(-1, 0), complex(-1, -1), complex(0.5, -0.5)}, - Test{complex(-1, 0), complex(-1, 2), complex(0.2, 0.4)}, - Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 0), complex(2, 0), complex(-0.5, 0)}, - Test{complex(-1, 0), complex(2, 1), complex(-0.4, 0.2)}, - Test{complex(-1, 0), complex(2, -1), complex(-0.4, -0.2)}, - Test{complex(-1, 0), complex(2, 2), complex(-0.25, 0.25)}, - Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 0), complex(nan, 0), complex(nan, nan)}, - Test{complex(-1, 0), complex(nan, 1), complex(nan, nan)}, - Test{complex(-1, 0), complex(nan, -1), complex(nan, nan)}, - Test{complex(-1, 0), complex(nan, 2), complex(nan, nan)}, - Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 0), complex(inf, 0), complex(negzero, 0)}, - Test{complex(-1, 0), complex(inf, 1), complex(negzero, 0)}, - Test{complex(-1, 0), complex(inf, -1), complex(negzero, 0)}, - Test{complex(-1, 0), complex(inf, 2), complex(negzero, 0)}, - Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 0), complex(-inf, 0), complex(0, negzero)}, - Test{complex(-1, 0), complex(-inf, 1), complex(0, negzero)}, - Test{complex(-1, 0), complex(-inf, -1), complex(0, negzero)}, - Test{complex(-1, 0), complex(-inf, 2), complex(0, negzero)}, - Test{complex(-1, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 0), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 0), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 1), complex(0, 0), complex(-inf, inf)}, - Test{complex(-1, 1), complex(0, 1), complex(1, 1)}, - Test{complex(-1, 1), complex(0, -1), complex(-1, -1)}, - Test{complex(-1, 1), complex(0, 2), complex(0.5, 0.5)}, - Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 1), complex(1, 0), complex(-1, 1)}, - Test{complex(-1, 1), complex(1, 1), complex(0, 1)}, - Test{complex(-1, 1), complex(1, -1), complex(-1, 0)}, - Test{complex(-1, 1), complex(1, 2), complex(0.2, 0.6)}, - Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 1), complex(-1, 0), complex(1, -1)}, - Test{complex(-1, 1), complex(-1, 1), complex(1, negzero)}, - Test{complex(-1, 1), complex(-1, -1), complex(negzero, -1)}, - Test{complex(-1, 1), complex(-1, 2), complex(0.6, 0.2)}, - Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 1), complex(2, 0), complex(-0.5, 0.5)}, - Test{complex(-1, 1), complex(2, 1), complex(-0.2, 0.6)}, - Test{complex(-1, 1), complex(2, -1), complex(-0.6, 0.2)}, - Test{complex(-1, 1), complex(2, 2), complex(0, 0.5)}, - Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 1), complex(nan, 0), complex(nan, nan)}, - Test{complex(-1, 1), complex(nan, 1), complex(nan, nan)}, - Test{complex(-1, 1), complex(nan, -1), complex(nan, nan)}, - Test{complex(-1, 1), complex(nan, 2), complex(nan, nan)}, - Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 1), complex(inf, 0), complex(negzero, 0)}, - Test{complex(-1, 1), complex(inf, 1), complex(negzero, 0)}, - Test{complex(-1, 1), complex(inf, -1), complex(negzero, 0)}, - Test{complex(-1, 1), complex(inf, 2), complex(negzero, 0)}, - Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 1), complex(-inf, 0), complex(0, negzero)}, - Test{complex(-1, 1), complex(-inf, 1), complex(0, negzero)}, - Test{complex(-1, 1), complex(-inf, -1), complex(0, negzero)}, - Test{complex(-1, 1), complex(-inf, 2), complex(0, negzero)}, - Test{complex(-1, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 1), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 1), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, -1), complex(0, 0), complex(-inf, -inf)}, - Test{complex(-1, -1), complex(0, 1), complex(-1, 1)}, - Test{complex(-1, -1), complex(0, -1), complex(1, -1)}, - Test{complex(-1, -1), complex(0, 2), complex(-0.5, 0.5)}, - Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, -1), complex(1, 0), complex(-1, -1)}, - Test{complex(-1, -1), complex(1, 1), complex(-1, 0)}, - Test{complex(-1, -1), complex(1, -1), complex(0, -1)}, - Test{complex(-1, -1), complex(1, 2), complex(-0.6, 0.2)}, - Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, -1), complex(-1, 0), complex(1, 1)}, - Test{complex(-1, -1), complex(-1, 1), complex(negzero, 1)}, - Test{complex(-1, -1), complex(-1, -1), complex(1, negzero)}, - Test{complex(-1, -1), complex(-1, 2), complex(-0.2, 0.6)}, - Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, -1), complex(2, 0), complex(-0.5, -0.5)}, - Test{complex(-1, -1), complex(2, 1), complex(-0.6, -0.2)}, - Test{complex(-1, -1), complex(2, -1), complex(-0.2, -0.6)}, - Test{complex(-1, -1), complex(2, 2), complex(-0.5, 0)}, - Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, -1), complex(nan, 0), complex(nan, nan)}, - Test{complex(-1, -1), complex(nan, 1), complex(nan, nan)}, - Test{complex(-1, -1), complex(nan, -1), complex(nan, nan)}, - Test{complex(-1, -1), complex(nan, 2), complex(nan, nan)}, - Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, -1), complex(inf, 0), complex(negzero, negzero)}, - Test{complex(-1, -1), complex(inf, 1), complex(negzero, negzero)}, - Test{complex(-1, -1), complex(inf, -1), complex(negzero, negzero)}, - Test{complex(-1, -1), complex(inf, 2), complex(negzero, negzero)}, - Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, -1), complex(-inf, 0), complex(0, 0)}, - Test{complex(-1, -1), complex(-inf, 1), complex(0, 0)}, - Test{complex(-1, -1), complex(-inf, -1), complex(0, 0)}, - Test{complex(-1, -1), complex(-inf, 2), complex(0, 0)}, - Test{complex(-1, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, -1), complex(-nan, inf), complex(negzero, 0)}, - Test{complex(-1, -1), complex(-nan, -inf), complex(0, negzero)}, - Test{complex(-1, 2), complex(0, 0), complex(-inf, inf)}, - Test{complex(-1, 2), complex(0, 1), complex(2, 1)}, - Test{complex(-1, 2), complex(0, -1), complex(-2, -1)}, - Test{complex(-1, 2), complex(0, 2), complex(1, 0.5)}, - Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 2), complex(1, 0), complex(-1, 2)}, - Test{complex(-1, 2), complex(1, 1), complex(0.5, 1.5)}, - Test{complex(-1, 2), complex(1, -1), complex(-1.5, 0.5)}, - Test{complex(-1, 2), complex(1, 2), complex(0.6, 0.8)}, - Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 2), complex(-1, 0), complex(1, -2)}, - Test{complex(-1, 2), complex(-1, 1), complex(1.5, -0.5)}, - Test{complex(-1, 2), complex(-1, -1), complex(-0.5, -1.5)}, - Test{complex(-1, 2), complex(-1, 2), complex(1, 0)}, - Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 2), complex(2, 0), complex(-0.5, 1)}, - Test{complex(-1, 2), complex(2, 1), complex(0, 1)}, - Test{complex(-1, 2), complex(2, -1), complex(-0.8, 0.6)}, - Test{complex(-1, 2), complex(2, 2), complex(0.25, 0.75)}, - Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 2), complex(nan, 0), complex(nan, nan)}, - Test{complex(-1, 2), complex(nan, 1), complex(nan, nan)}, - Test{complex(-1, 2), complex(nan, -1), complex(nan, nan)}, - Test{complex(-1, 2), complex(nan, 2), complex(nan, nan)}, - Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 2), complex(inf, 0), complex(negzero, 0)}, - Test{complex(-1, 2), complex(inf, 1), complex(negzero, 0)}, - Test{complex(-1, 2), complex(inf, -1), complex(negzero, 0)}, - Test{complex(-1, 2), complex(inf, 2), complex(negzero, 0)}, - Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(-1, 2), complex(-inf, 0), complex(0, negzero)}, - Test{complex(-1, 2), complex(-inf, 1), complex(0, negzero)}, - Test{complex(-1, 2), complex(-inf, -1), complex(0, negzero)}, - Test{complex(-1, 2), complex(-inf, 2), complex(0, negzero)}, - Test{complex(-1, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-1, 2), complex(-nan, inf), complex(0, 0)}, - Test{complex(-1, 2), complex(-nan, -inf), complex(negzero, negzero)}, - Test{complex(nan, nan), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)}, - Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)}, - Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)}, - Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)}, - Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)}, - Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)}, - Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(2, 0), complex(0, 0), complex(inf, -nan)}, - Test{complex(2, 0), complex(0, 1), complex(0, -2)}, - Test{complex(2, 0), complex(0, -1), complex(negzero, 2)}, - Test{complex(2, 0), complex(0, 2), complex(0, -1)}, - Test{complex(2, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 0), complex(1, 0), complex(2, 0)}, - Test{complex(2, 0), complex(1, 1), complex(1, -1)}, - Test{complex(2, 0), complex(1, -1), complex(1, 1)}, - Test{complex(2, 0), complex(1, 2), complex(0.4, -0.8)}, - Test{complex(2, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 0), complex(-1, 0), complex(-2, negzero)}, - Test{complex(2, 0), complex(-1, 1), complex(-1, -1)}, - Test{complex(2, 0), complex(-1, -1), complex(-1, 1)}, - Test{complex(2, 0), complex(-1, 2), complex(-0.4, -0.8)}, - Test{complex(2, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 0), complex(2, 0), complex(1, 0)}, - Test{complex(2, 0), complex(2, 1), complex(0.8, -0.4)}, - Test{complex(2, 0), complex(2, -1), complex(0.8, 0.4)}, - Test{complex(2, 0), complex(2, 2), complex(0.5, -0.5)}, - Test{complex(2, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 0), complex(nan, 0), complex(nan, nan)}, - Test{complex(2, 0), complex(nan, 1), complex(nan, nan)}, - Test{complex(2, 0), complex(nan, -1), complex(nan, nan)}, - Test{complex(2, 0), complex(nan, 2), complex(nan, nan)}, - Test{complex(2, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 0), complex(inf, 0), complex(0, 0)}, - Test{complex(2, 0), complex(inf, 1), complex(0, 0)}, - Test{complex(2, 0), complex(inf, -1), complex(0, 0)}, - Test{complex(2, 0), complex(inf, 2), complex(0, 0)}, - Test{complex(2, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 0), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(2, 0), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(2, 0), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(2, 0), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(2, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 0), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 0), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 1), complex(0, 0), complex(inf, inf)}, - Test{complex(2, 1), complex(0, 1), complex(1, -2)}, - Test{complex(2, 1), complex(0, -1), complex(-1, 2)}, - Test{complex(2, 1), complex(0, 2), complex(0.5, -1)}, - Test{complex(2, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 1), complex(1, 0), complex(2, 1)}, - Test{complex(2, 1), complex(1, 1), complex(1.5, -0.5)}, - Test{complex(2, 1), complex(1, -1), complex(0.5, 1.5)}, - Test{complex(2, 1), complex(1, 2), complex(0.8, -0.6)}, - Test{complex(2, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 1), complex(-1, 0), complex(-2, -1)}, - Test{complex(2, 1), complex(-1, 1), complex(-0.5, -1.5)}, - Test{complex(2, 1), complex(-1, -1), complex(-1.5, 0.5)}, - Test{complex(2, 1), complex(-1, 2), complex(0, -1)}, - Test{complex(2, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 1), complex(2, 0), complex(1, 0.5)}, - Test{complex(2, 1), complex(2, 1), complex(1, 0)}, - Test{complex(2, 1), complex(2, -1), complex(0.6, 0.8)}, - Test{complex(2, 1), complex(2, 2), complex(0.75, -0.25)}, - Test{complex(2, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 1), complex(nan, 0), complex(nan, nan)}, - Test{complex(2, 1), complex(nan, 1), complex(nan, nan)}, - Test{complex(2, 1), complex(nan, -1), complex(nan, nan)}, - Test{complex(2, 1), complex(nan, 2), complex(nan, nan)}, - Test{complex(2, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 1), complex(inf, 0), complex(0, 0)}, - Test{complex(2, 1), complex(inf, 1), complex(0, 0)}, - Test{complex(2, 1), complex(inf, -1), complex(0, 0)}, - Test{complex(2, 1), complex(inf, 2), complex(0, 0)}, - Test{complex(2, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 1), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(2, 1), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(2, 1), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(2, 1), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(2, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 1), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 1), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, -1), complex(0, 0), complex(inf, -inf)}, - Test{complex(2, -1), complex(0, 1), complex(-1, -2)}, - Test{complex(2, -1), complex(0, -1), complex(1, 2)}, - Test{complex(2, -1), complex(0, 2), complex(-0.5, -1)}, - Test{complex(2, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(2, -1), complex(1, 0), complex(2, -1)}, - Test{complex(2, -1), complex(1, 1), complex(0.5, -1.5)}, - Test{complex(2, -1), complex(1, -1), complex(1.5, 0.5)}, - Test{complex(2, -1), complex(1, 2), complex(0, -1)}, - Test{complex(2, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(2, -1), complex(-1, 0), complex(-2, 1)}, - Test{complex(2, -1), complex(-1, 1), complex(-1.5, -0.5)}, - Test{complex(2, -1), complex(-1, -1), complex(-0.5, 1.5)}, - Test{complex(2, -1), complex(-1, 2), complex(-0.8, -0.6)}, - Test{complex(2, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(2, -1), complex(2, 0), complex(1, -0.5)}, - Test{complex(2, -1), complex(2, 1), complex(0.6, -0.8)}, - Test{complex(2, -1), complex(2, -1), complex(1, 0)}, - Test{complex(2, -1), complex(2, 2), complex(0.25, -0.75)}, - Test{complex(2, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(2, -1), complex(nan, 0), complex(nan, nan)}, - Test{complex(2, -1), complex(nan, 1), complex(nan, nan)}, - Test{complex(2, -1), complex(nan, -1), complex(nan, nan)}, - Test{complex(2, -1), complex(nan, 2), complex(nan, nan)}, - Test{complex(2, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(2, -1), complex(inf, 0), complex(0, negzero)}, - Test{complex(2, -1), complex(inf, 1), complex(0, negzero)}, - Test{complex(2, -1), complex(inf, -1), complex(0, negzero)}, - Test{complex(2, -1), complex(inf, 2), complex(0, negzero)}, - Test{complex(2, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(2, -1), complex(-inf, 0), complex(negzero, 0)}, - Test{complex(2, -1), complex(-inf, 1), complex(negzero, 0)}, - Test{complex(2, -1), complex(-inf, -1), complex(negzero, 0)}, - Test{complex(2, -1), complex(-inf, 2), complex(negzero, 0)}, - Test{complex(2, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, -1), complex(-nan, inf), complex(negzero, negzero)}, - Test{complex(2, -1), complex(-nan, -inf), complex(0, 0)}, - Test{complex(2, 2), complex(0, 0), complex(inf, inf)}, - Test{complex(2, 2), complex(0, 1), complex(2, -2)}, - Test{complex(2, 2), complex(0, -1), complex(-2, 2)}, - Test{complex(2, 2), complex(0, 2), complex(1, -1)}, - Test{complex(2, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 2), complex(1, 0), complex(2, 2)}, - Test{complex(2, 2), complex(1, 1), complex(2, 0)}, - Test{complex(2, 2), complex(1, -1), complex(0, 2)}, - Test{complex(2, 2), complex(1, 2), complex(1.2, -0.4)}, - Test{complex(2, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 2), complex(-1, 0), complex(-2, -2)}, - Test{complex(2, 2), complex(-1, 1), complex(negzero, -2)}, - Test{complex(2, 2), complex(-1, -1), complex(-2, negzero)}, - Test{complex(2, 2), complex(-1, 2), complex(0.4, -1.2)}, - Test{complex(2, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 2), complex(2, 0), complex(1, 1)}, - Test{complex(2, 2), complex(2, 1), complex(1.2, 0.4)}, - Test{complex(2, 2), complex(2, -1), complex(0.4, 1.2)}, - Test{complex(2, 2), complex(2, 2), complex(1, 0)}, - Test{complex(2, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 2), complex(nan, 0), complex(nan, nan)}, - Test{complex(2, 2), complex(nan, 1), complex(nan, nan)}, - Test{complex(2, 2), complex(nan, -1), complex(nan, nan)}, - Test{complex(2, 2), complex(nan, 2), complex(nan, nan)}, - Test{complex(2, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 2), complex(inf, 0), complex(0, 0)}, - Test{complex(2, 2), complex(inf, 1), complex(0, 0)}, - Test{complex(2, 2), complex(inf, -1), complex(0, 0)}, - Test{complex(2, 2), complex(inf, 2), complex(0, 0)}, - Test{complex(2, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(2, 2), complex(-inf, 0), complex(negzero, negzero)}, - Test{complex(2, 2), complex(-inf, 1), complex(negzero, negzero)}, - Test{complex(2, 2), complex(-inf, -1), complex(negzero, negzero)}, - Test{complex(2, 2), complex(-inf, 2), complex(negzero, negzero)}, - Test{complex(2, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(2, 2), complex(-nan, inf), complex(0, negzero)}, - Test{complex(2, 2), complex(-nan, -inf), complex(negzero, 0)}, - Test{complex(nan, nan), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)}, - Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)}, - Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)}, - Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)}, - Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)}, - Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)}, - Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, 0), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, 0), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, 0), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, 0), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, 0), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, 0), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, 0), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, 0), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, 0), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, 0), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, 0), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, 0), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, 0), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, 0), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, 0), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, 0), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, 0), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, 0), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, 1), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, 1), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, 1), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, 1), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, 1), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, 1), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, 1), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, 1), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, 1), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, 1), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, 1), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, 1), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, 1), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, 1), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, 1), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, 1), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, 1), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, 1), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, -1), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, -1), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, -1), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, -1), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, -1), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, -1), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, -1), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, -1), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, -1), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, -1), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, -1), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, -1), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, -1), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, -1), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, -1), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, -1), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, -1), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, -1), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, 2), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, 2), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, 2), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, 2), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, 2), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, 2), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, 2), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, 2), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, 2), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, 2), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, 2), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, 2), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, 2), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, 2), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, 2), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, 2), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, 2), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, 2), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(nan, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, nan), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)}, - Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)}, - Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)}, - Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)}, - Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)}, - Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)}, - Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(0, 0), complex(inf, -nan)}, - Test{complex(inf, 0), complex(0, 1), complex(-nan, -inf)}, - Test{complex(inf, 0), complex(0, -1), complex(-nan, inf)}, - Test{complex(inf, 0), complex(0, 2), complex(-nan, -inf)}, - Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(1, 0), complex(inf, -nan)}, - Test{complex(inf, 0), complex(1, 1), complex(inf, -inf)}, - Test{complex(inf, 0), complex(1, -1), complex(inf, inf)}, - Test{complex(inf, 0), complex(1, 2), complex(inf, -inf)}, - Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-1, 0), complex(-inf, -nan)}, - Test{complex(inf, 0), complex(-1, 1), complex(-inf, -inf)}, - Test{complex(inf, 0), complex(-1, -1), complex(-inf, inf)}, - Test{complex(inf, 0), complex(-1, 2), complex(-inf, -inf)}, - Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(2, 0), complex(inf, -nan)}, - Test{complex(inf, 0), complex(2, 1), complex(inf, -inf)}, - Test{complex(inf, 0), complex(2, -1), complex(inf, inf)}, - Test{complex(inf, 0), complex(2, 2), complex(inf, -inf)}, - Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(nan, 0), complex(nan, nan)}, - Test{complex(inf, 0), complex(nan, 1), complex(nan, nan)}, - Test{complex(inf, 0), complex(nan, -1), complex(nan, nan)}, - Test{complex(inf, 0), complex(nan, 2), complex(nan, nan)}, - Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(0, 0), complex(inf, inf)}, - Test{complex(inf, 1), complex(0, 1), complex(-nan, -inf)}, - Test{complex(inf, 1), complex(0, -1), complex(-nan, inf)}, - Test{complex(inf, 1), complex(0, 2), complex(-nan, -inf)}, - Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(1, 0), complex(inf, -nan)}, - Test{complex(inf, 1), complex(1, 1), complex(inf, -inf)}, - Test{complex(inf, 1), complex(1, -1), complex(inf, inf)}, - Test{complex(inf, 1), complex(1, 2), complex(inf, -inf)}, - Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-1, 0), complex(-inf, -nan)}, - Test{complex(inf, 1), complex(-1, 1), complex(-inf, -inf)}, - Test{complex(inf, 1), complex(-1, -1), complex(-inf, inf)}, - Test{complex(inf, 1), complex(-1, 2), complex(-inf, -inf)}, - Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(2, 0), complex(inf, -nan)}, - Test{complex(inf, 1), complex(2, 1), complex(inf, -inf)}, - Test{complex(inf, 1), complex(2, -1), complex(inf, inf)}, - Test{complex(inf, 1), complex(2, 2), complex(inf, -inf)}, - Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(nan, 0), complex(nan, nan)}, - Test{complex(inf, 1), complex(nan, 1), complex(nan, nan)}, - Test{complex(inf, 1), complex(nan, -1), complex(nan, nan)}, - Test{complex(inf, 1), complex(nan, 2), complex(nan, nan)}, - Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(0, 0), complex(inf, -inf)}, - Test{complex(inf, -1), complex(0, 1), complex(-nan, -inf)}, - Test{complex(inf, -1), complex(0, -1), complex(-nan, inf)}, - Test{complex(inf, -1), complex(0, 2), complex(-nan, -inf)}, - Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(1, 0), complex(inf, -nan)}, - Test{complex(inf, -1), complex(1, 1), complex(inf, -inf)}, - Test{complex(inf, -1), complex(1, -1), complex(inf, inf)}, - Test{complex(inf, -1), complex(1, 2), complex(inf, -inf)}, - Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-1, 0), complex(-inf, -nan)}, - Test{complex(inf, -1), complex(-1, 1), complex(-inf, -inf)}, - Test{complex(inf, -1), complex(-1, -1), complex(-inf, inf)}, - Test{complex(inf, -1), complex(-1, 2), complex(-inf, -inf)}, - Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(2, 0), complex(inf, -nan)}, - Test{complex(inf, -1), complex(2, 1), complex(inf, -inf)}, - Test{complex(inf, -1), complex(2, -1), complex(inf, inf)}, - Test{complex(inf, -1), complex(2, 2), complex(inf, -inf)}, - Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(nan, 0), complex(nan, nan)}, - Test{complex(inf, -1), complex(nan, 1), complex(nan, nan)}, - Test{complex(inf, -1), complex(nan, -1), complex(nan, nan)}, - Test{complex(inf, -1), complex(nan, 2), complex(nan, nan)}, - Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(0, 0), complex(inf, inf)}, - Test{complex(inf, 2), complex(0, 1), complex(-nan, -inf)}, - Test{complex(inf, 2), complex(0, -1), complex(-nan, inf)}, - Test{complex(inf, 2), complex(0, 2), complex(-nan, -inf)}, - Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(1, 0), complex(inf, -nan)}, - Test{complex(inf, 2), complex(1, 1), complex(inf, -inf)}, - Test{complex(inf, 2), complex(1, -1), complex(inf, inf)}, - Test{complex(inf, 2), complex(1, 2), complex(inf, -inf)}, - Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-1, 0), complex(-inf, -nan)}, - Test{complex(inf, 2), complex(-1, 1), complex(-inf, -inf)}, - Test{complex(inf, 2), complex(-1, -1), complex(-inf, inf)}, - Test{complex(inf, 2), complex(-1, 2), complex(-inf, -inf)}, - Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(2, 0), complex(inf, -nan)}, - Test{complex(inf, 2), complex(2, 1), complex(inf, -inf)}, - Test{complex(inf, 2), complex(2, -1), complex(inf, inf)}, - Test{complex(inf, 2), complex(2, 2), complex(inf, -inf)}, - Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(nan, 0), complex(nan, nan)}, - Test{complex(inf, 2), complex(nan, 1), complex(nan, nan)}, - Test{complex(inf, 2), complex(nan, -1), complex(nan, nan)}, - Test{complex(inf, 2), complex(nan, 2), complex(nan, nan)}, - Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, nan), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)}, - Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)}, - Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)}, - Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)}, - Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)}, - Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)}, - Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(0, 0), complex(-inf, -nan)}, - Test{complex(-inf, 0), complex(0, 1), complex(-nan, inf)}, - Test{complex(-inf, 0), complex(0, -1), complex(-nan, -inf)}, - Test{complex(-inf, 0), complex(0, 2), complex(-nan, inf)}, - Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(1, 0), complex(-inf, -nan)}, - Test{complex(-inf, 0), complex(1, 1), complex(-inf, inf)}, - Test{complex(-inf, 0), complex(1, -1), complex(-inf, -inf)}, - Test{complex(-inf, 0), complex(1, 2), complex(-inf, inf)}, - Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-1, 0), complex(inf, -nan)}, - Test{complex(-inf, 0), complex(-1, 1), complex(inf, inf)}, - Test{complex(-inf, 0), complex(-1, -1), complex(inf, -inf)}, - Test{complex(-inf, 0), complex(-1, 2), complex(inf, inf)}, - Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(2, 0), complex(-inf, -nan)}, - Test{complex(-inf, 0), complex(2, 1), complex(-inf, inf)}, - Test{complex(-inf, 0), complex(2, -1), complex(-inf, -inf)}, - Test{complex(-inf, 0), complex(2, 2), complex(-inf, inf)}, - Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(nan, 0), complex(nan, nan)}, - Test{complex(-inf, 0), complex(nan, 1), complex(nan, nan)}, - Test{complex(-inf, 0), complex(nan, -1), complex(nan, nan)}, - Test{complex(-inf, 0), complex(nan, 2), complex(nan, nan)}, - Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 0), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 0), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(0, 0), complex(-inf, inf)}, - Test{complex(-inf, 1), complex(0, 1), complex(-nan, inf)}, - Test{complex(-inf, 1), complex(0, -1), complex(-nan, -inf)}, - Test{complex(-inf, 1), complex(0, 2), complex(-nan, inf)}, - Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(1, 0), complex(-inf, -nan)}, - Test{complex(-inf, 1), complex(1, 1), complex(-inf, inf)}, - Test{complex(-inf, 1), complex(1, -1), complex(-inf, -inf)}, - Test{complex(-inf, 1), complex(1, 2), complex(-inf, inf)}, - Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-1, 0), complex(inf, -nan)}, - Test{complex(-inf, 1), complex(-1, 1), complex(inf, inf)}, - Test{complex(-inf, 1), complex(-1, -1), complex(inf, -inf)}, - Test{complex(-inf, 1), complex(-1, 2), complex(inf, inf)}, - Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(2, 0), complex(-inf, -nan)}, - Test{complex(-inf, 1), complex(2, 1), complex(-inf, inf)}, - Test{complex(-inf, 1), complex(2, -1), complex(-inf, -inf)}, - Test{complex(-inf, 1), complex(2, 2), complex(-inf, inf)}, - Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(nan, 0), complex(nan, nan)}, - Test{complex(-inf, 1), complex(nan, 1), complex(nan, nan)}, - Test{complex(-inf, 1), complex(nan, -1), complex(nan, nan)}, - Test{complex(-inf, 1), complex(nan, 2), complex(nan, nan)}, - Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(0, 0), complex(-inf, -inf)}, - Test{complex(-inf, -1), complex(0, 1), complex(-nan, inf)}, - Test{complex(-inf, -1), complex(0, -1), complex(-nan, -inf)}, - Test{complex(-inf, -1), complex(0, 2), complex(-nan, inf)}, - Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(1, 0), complex(-inf, -nan)}, - Test{complex(-inf, -1), complex(1, 1), complex(-inf, inf)}, - Test{complex(-inf, -1), complex(1, -1), complex(-inf, -inf)}, - Test{complex(-inf, -1), complex(1, 2), complex(-inf, inf)}, - Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-1, 0), complex(inf, -nan)}, - Test{complex(-inf, -1), complex(-1, 1), complex(inf, inf)}, - Test{complex(-inf, -1), complex(-1, -1), complex(inf, -inf)}, - Test{complex(-inf, -1), complex(-1, 2), complex(inf, inf)}, - Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(2, 0), complex(-inf, -nan)}, - Test{complex(-inf, -1), complex(2, 1), complex(-inf, inf)}, - Test{complex(-inf, -1), complex(2, -1), complex(-inf, -inf)}, - Test{complex(-inf, -1), complex(2, 2), complex(-inf, inf)}, - Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(nan, 0), complex(nan, nan)}, - Test{complex(-inf, -1), complex(nan, 1), complex(nan, nan)}, - Test{complex(-inf, -1), complex(nan, -1), complex(nan, nan)}, - Test{complex(-inf, -1), complex(nan, 2), complex(nan, nan)}, - Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, -1), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, -1), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(0, 0), complex(-inf, inf)}, - Test{complex(-inf, 2), complex(0, 1), complex(-nan, inf)}, - Test{complex(-inf, 2), complex(0, -1), complex(-nan, -inf)}, - Test{complex(-inf, 2), complex(0, 2), complex(-nan, inf)}, - Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(1, 0), complex(-inf, -nan)}, - Test{complex(-inf, 2), complex(1, 1), complex(-inf, inf)}, - Test{complex(-inf, 2), complex(1, -1), complex(-inf, -inf)}, - Test{complex(-inf, 2), complex(1, 2), complex(-inf, inf)}, - Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-1, 0), complex(inf, -nan)}, - Test{complex(-inf, 2), complex(-1, 1), complex(inf, inf)}, - Test{complex(-inf, 2), complex(-1, -1), complex(inf, -inf)}, - Test{complex(-inf, 2), complex(-1, 2), complex(inf, inf)}, - Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(2, 0), complex(-inf, -nan)}, - Test{complex(-inf, 2), complex(2, 1), complex(-inf, inf)}, - Test{complex(-inf, 2), complex(2, -1), complex(-inf, -inf)}, - Test{complex(-inf, 2), complex(2, 2), complex(-inf, inf)}, - Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(nan, 0), complex(nan, nan)}, - Test{complex(-inf, 2), complex(nan, 1), complex(nan, nan)}, - Test{complex(-inf, 2), complex(nan, -1), complex(nan, nan)}, - Test{complex(-inf, 2), complex(nan, 2), complex(nan, nan)}, - Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, - Test{complex(-inf, 2), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-inf, 2), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(nan, nan), complex(0, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(0, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-1, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(2, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 0), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, - Test{complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, - Test{complex(nan, nan), complex(nan, nan), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, inf), complex(nan, nan)}, - Test{complex(nan, nan), complex(-nan, -inf), complex(nan, nan)}, - Test{complex(-nan, inf), complex(0, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(0, 1), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(0, -1), complex(-inf, -nan)}, - Test{complex(-nan, inf), complex(0, 2), complex(inf, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(1, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(1, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(1, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(1, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-1, 0), complex(-nan, -inf)}, - Test{complex(-nan, inf), complex(-1, 1), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(-1, -1), complex(-inf, -inf)}, - Test{complex(-nan, inf), complex(-1, 2), complex(inf, -inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(2, 0), complex(-nan, inf)}, - Test{complex(-nan, inf), complex(2, 1), complex(inf, inf)}, - Test{complex(-nan, inf), complex(2, -1), complex(-inf, inf)}, - Test{complex(-nan, inf), complex(2, 2), complex(inf, inf)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(0, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(0, 1), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(0, -1), complex(inf, -nan)}, - Test{complex(-nan, -inf), complex(0, 2), complex(-inf, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(1, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(1, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(1, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(1, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-1, 0), complex(-nan, inf)}, - Test{complex(-nan, -inf), complex(-1, 1), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(-1, -1), complex(inf, inf)}, - Test{complex(-nan, -inf), complex(-1, 2), complex(-inf, inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(2, 0), complex(-nan, -inf)}, - Test{complex(-nan, -inf), complex(2, 1), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(2, -1), complex(inf, -inf)}, - Test{complex(-nan, -inf), complex(2, 2), complex(-inf, -inf)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, 0), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, -1), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, 2), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 0), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, -1), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-inf, 2), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(nan, nan), complex(nan, nan)}, - Test{complex(-nan, -inf), complex(-nan, inf), complex(-nan, -nan)}, - Test{complex(-nan, -inf), complex(-nan, -inf), complex(-nan, -nan)}, + +import "math" + +var ( + nan = math.NaN() + inf = math.Inf(1) + zero = 0.0 +) + +var tests = []struct { + f, g complex128 + out complex128 +}{ + {complex(zero, zero), complex(zero, zero), complex(nan, nan)}, + {complex(zero, zero), complex(zero, -zero), complex(nan, nan)}, + {complex(zero, zero), complex(zero, 1), complex(zero, zero)}, + {complex(zero, zero), complex(zero, -1), complex(-zero, zero)}, + {complex(zero, zero), complex(zero, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(zero, zero), complex(nan, nan)}, + {complex(zero, zero), complex(-zero, -zero), complex(nan, nan)}, + {complex(zero, zero), complex(zero, 1), complex(zero, zero)}, + {complex(zero, zero), complex(-zero, -1), complex(-zero, -zero)}, + {complex(zero, zero), complex(zero, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(1, zero), complex(zero, zero)}, + {complex(zero, zero), complex(1, -zero), complex(zero, zero)}, + {complex(zero, zero), complex(1, 1), complex(zero, zero)}, + {complex(zero, zero), complex(1, -1), complex(zero, zero)}, + {complex(zero, zero), complex(1, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(-1, zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, -zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, 1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, -1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, 2), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(2, zero), complex(zero, zero)}, + {complex(zero, zero), complex(2, -zero), complex(zero, zero)}, + {complex(zero, zero), complex(2, 1), complex(zero, zero)}, + {complex(zero, zero), complex(2, -1), complex(zero, zero)}, + {complex(zero, zero), complex(2, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(nan, zero), complex(nan, nan)}, + {complex(zero, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, zero), complex(nan, 1), complex(nan, nan)}, + {complex(zero, zero), complex(nan, -1), complex(nan, nan)}, + {complex(zero, zero), complex(nan, 2), complex(nan, nan)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(inf, zero), complex(zero, zero)}, + {complex(zero, zero), complex(inf, -zero), complex(zero, zero)}, + {complex(zero, zero), complex(inf, 1), complex(zero, zero)}, + {complex(zero, zero), complex(inf, -1), complex(zero, zero)}, + {complex(zero, zero), complex(inf, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(-inf, zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, 1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, -1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, 2), complex(-zero, -zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(zero, zero), complex(nan, nan)}, + {complex(zero, -zero), complex(zero, -zero), complex(nan, nan)}, + {complex(zero, -zero), complex(zero, 1), complex(zero, -zero)}, + {complex(zero, -zero), complex(zero, -1), complex(zero, -zero)}, + {complex(zero, -zero), complex(zero, 2), complex(zero, -zero)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -zero), complex(zero, zero), complex(nan, nan)}, + {complex(zero, -zero), complex(-zero, -zero), complex(nan, nan)}, + {complex(zero, -zero), complex(zero, 1), complex(zero, -zero)}, + {complex(zero, -zero), complex(-zero, -1), complex(-zero, zero)}, + {complex(zero, -zero), complex(zero, 2), complex(zero, -zero)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -zero), complex(1, zero), complex(zero, -zero)}, + {complex(zero, -zero), complex(1, -zero), complex(zero, zero)}, + {complex(zero, -zero), complex(1, 1), complex(zero, -zero)}, + {complex(zero, -zero), complex(1, -1), complex(zero, zero)}, + {complex(zero, -zero), complex(1, 2), complex(zero, -zero)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -zero), complex(-1, zero), complex(-zero, -zero)}, + {complex(zero, -zero), complex(-1, -zero), complex(-zero, zero)}, + {complex(zero, -zero), complex(-1, 1), complex(-zero, -zero)}, + {complex(zero, -zero), complex(-1, -1), complex(-zero, zero)}, + {complex(zero, -zero), complex(-1, 2), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -zero), complex(2, zero), complex(zero, -zero)}, + {complex(zero, -zero), complex(2, -zero), complex(zero, zero)}, + {complex(zero, -zero), complex(2, 1), complex(zero, -zero)}, + {complex(zero, -zero), complex(2, -1), complex(zero, zero)}, + {complex(zero, -zero), complex(2, 2), complex(zero, -zero)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -zero), complex(inf, zero), complex(zero, -zero)}, + {complex(zero, -zero), complex(inf, -zero), complex(zero, zero)}, + {complex(zero, -zero), complex(inf, 1), complex(zero, -zero)}, + {complex(zero, -zero), complex(inf, -1), complex(zero, zero)}, + {complex(zero, -zero), complex(inf, 2), complex(zero, -zero)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -zero), complex(-inf, zero), complex(-zero, -zero)}, + {complex(zero, -zero), complex(-inf, -zero), complex(-zero, zero)}, + {complex(zero, -zero), complex(-inf, 1), complex(-zero, -zero)}, + {complex(zero, -zero), complex(-inf, -1), complex(-zero, zero)}, + {complex(zero, -zero), complex(-inf, 2), complex(-zero, -zero)}, + {complex(zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -zero), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, 1), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 1), complex(zero, -zero), complex(nan, inf)}, + {complex(zero, 1), complex(zero, 1), complex(1, zero)}, + {complex(zero, 1), complex(zero, -1), complex(-1, zero)}, + {complex(zero, 1), complex(zero, 2), complex(0.5, zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 1), complex(-zero, -zero), complex(nan, -inf)}, + {complex(zero, 1), complex(zero, 1), complex(1, zero)}, + {complex(zero, 1), complex(-zero, -1), complex(-1, -zero)}, + {complex(zero, 1), complex(zero, 2), complex(0.5, zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(1, zero), complex(zero, 1)}, + {complex(zero, 1), complex(1, -zero), complex(zero, 1)}, + {complex(zero, 1), complex(1, 1), complex(0.5, 0.5)}, + {complex(zero, 1), complex(1, -1), complex(-0.5, 0.5)}, + {complex(zero, 1), complex(1, 2), complex(0.4, 0.2)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(-1, zero), complex(-zero, -1)}, + {complex(zero, 1), complex(-1, -zero), complex(-zero, -1)}, + {complex(zero, 1), complex(-1, 1), complex(0.5, -0.5)}, + {complex(zero, 1), complex(-1, -1), complex(-0.5, -0.5)}, + {complex(zero, 1), complex(-1, 2), complex(0.4, -0.2)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(2, zero), complex(zero, 0.5)}, + {complex(zero, 1), complex(2, -zero), complex(zero, 0.5)}, + {complex(zero, 1), complex(2, 1), complex(0.2, 0.4)}, + {complex(zero, 1), complex(2, -1), complex(-0.2, 0.4)}, + {complex(zero, 1), complex(2, 2), complex(0.25, 0.25)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(nan, zero), complex(nan, nan)}, + {complex(zero, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, 1), complex(nan, 1), complex(nan, nan)}, + {complex(zero, 1), complex(nan, -1), complex(nan, nan)}, + {complex(zero, 1), complex(nan, 2), complex(nan, nan)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(inf, zero), complex(zero, zero)}, + {complex(zero, 1), complex(inf, -zero), complex(zero, zero)}, + {complex(zero, 1), complex(inf, 1), complex(zero, zero)}, + {complex(zero, 1), complex(inf, -1), complex(zero, zero)}, + {complex(zero, 1), complex(inf, 2), complex(zero, zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(-inf, zero), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, 1), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, -1), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, 2), complex(-zero, -zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, -1), complex(zero, zero), complex(nan, -inf)}, + {complex(zero, -1), complex(zero, -zero), complex(nan, -inf)}, + {complex(zero, -1), complex(zero, 1), complex(-1, -zero)}, + {complex(zero, -1), complex(zero, -1), complex(1, -zero)}, + {complex(zero, -1), complex(zero, 2), complex(-0.5, -zero)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -1), complex(zero, zero), complex(nan, -inf)}, + {complex(zero, -1), complex(-zero, -zero), complex(nan, inf)}, + {complex(zero, -1), complex(zero, 1), complex(-1, -zero)}, + {complex(zero, -1), complex(-zero, -1), complex(1, zero)}, + {complex(zero, -1), complex(zero, 2), complex(-0.5, -zero)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -1), complex(1, zero), complex(zero, -1)}, + {complex(zero, -1), complex(1, -zero), complex(zero, -1)}, + {complex(zero, -1), complex(1, 1), complex(-0.5, -0.5)}, + {complex(zero, -1), complex(1, -1), complex(0.5, -0.5)}, + {complex(zero, -1), complex(1, 2), complex(-0.4, -0.2)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -1), complex(-1, zero), complex(-zero, 1)}, + {complex(zero, -1), complex(-1, -zero), complex(-zero, 1)}, + {complex(zero, -1), complex(-1, 1), complex(-0.5, 0.5)}, + {complex(zero, -1), complex(-1, -1), complex(0.5, 0.5)}, + {complex(zero, -1), complex(-1, 2), complex(-0.4, 0.2)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -1), complex(2, zero), complex(zero, -0.5)}, + {complex(zero, -1), complex(2, -zero), complex(zero, -0.5)}, + {complex(zero, -1), complex(2, 1), complex(-0.2, -0.4)}, + {complex(zero, -1), complex(2, -1), complex(0.2, -0.4)}, + {complex(zero, -1), complex(2, 2), complex(-0.25, -0.25)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -1), complex(nan, zero), complex(nan, nan)}, + {complex(zero, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, -1), complex(nan, 1), complex(nan, nan)}, + {complex(zero, -1), complex(nan, -1), complex(nan, nan)}, + {complex(zero, -1), complex(nan, 2), complex(nan, nan)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -1), complex(inf, zero), complex(zero, -zero)}, + {complex(zero, -1), complex(inf, -zero), complex(zero, -zero)}, + {complex(zero, -1), complex(inf, 1), complex(zero, -zero)}, + {complex(zero, -1), complex(inf, -1), complex(zero, -zero)}, + {complex(zero, -1), complex(inf, 2), complex(zero, -zero)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, -1), complex(-inf, zero), complex(-zero, zero)}, + {complex(zero, -1), complex(-inf, -zero), complex(-zero, zero)}, + {complex(zero, -1), complex(-inf, 1), complex(-zero, zero)}, + {complex(zero, -1), complex(-inf, -1), complex(-zero, zero)}, + {complex(zero, -1), complex(-inf, 2), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, 2), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 2), complex(zero, -zero), complex(nan, inf)}, + {complex(zero, 2), complex(zero, 1), complex(2, zero)}, + {complex(zero, 2), complex(zero, -1), complex(-2, zero)}, + {complex(zero, 2), complex(zero, 2), complex(1, zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 2), complex(-zero, -zero), complex(nan, -inf)}, + {complex(zero, 2), complex(zero, 1), complex(2, zero)}, + {complex(zero, 2), complex(-zero, -1), complex(-2, -zero)}, + {complex(zero, 2), complex(zero, 2), complex(1, zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(1, zero), complex(zero, 2)}, + {complex(zero, 2), complex(1, -zero), complex(zero, 2)}, + {complex(zero, 2), complex(1, 1), complex(1, 1)}, + {complex(zero, 2), complex(1, -1), complex(-1, 1)}, + {complex(zero, 2), complex(1, 2), complex(0.8, 0.4)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(-1, zero), complex(-zero, -2)}, + {complex(zero, 2), complex(-1, -zero), complex(-zero, -2)}, + {complex(zero, 2), complex(-1, 1), complex(1, -1)}, + {complex(zero, 2), complex(-1, -1), complex(-1, -1)}, + {complex(zero, 2), complex(-1, 2), complex(0.8, -0.4)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(2, zero), complex(zero, 1)}, + {complex(zero, 2), complex(2, -zero), complex(zero, 1)}, + {complex(zero, 2), complex(2, 1), complex(0.4, 0.8)}, + {complex(zero, 2), complex(2, -1), complex(-0.4, 0.8)}, + {complex(zero, 2), complex(2, 2), complex(0.5, 0.5)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(nan, zero), complex(nan, nan)}, + {complex(zero, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, 2), complex(nan, 1), complex(nan, nan)}, + {complex(zero, 2), complex(nan, -1), complex(nan, nan)}, + {complex(zero, 2), complex(nan, 2), complex(nan, nan)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(inf, zero), complex(zero, zero)}, + {complex(zero, 2), complex(inf, -zero), complex(zero, zero)}, + {complex(zero, 2), complex(inf, 1), complex(zero, zero)}, + {complex(zero, 2), complex(inf, -1), complex(zero, zero)}, + {complex(zero, 2), complex(inf, 2), complex(zero, zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(-inf, zero), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, 1), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, -1), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, 2), complex(-zero, -zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(zero, zero), complex(zero, zero), complex(nan, nan)}, + {complex(zero, zero), complex(zero, -zero), complex(nan, nan)}, + {complex(zero, zero), complex(zero, 1), complex(zero, zero)}, + {complex(zero, zero), complex(zero, -1), complex(-zero, zero)}, + {complex(zero, zero), complex(zero, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(zero, zero), complex(nan, nan)}, + {complex(zero, zero), complex(-zero, -zero), complex(nan, nan)}, + {complex(zero, zero), complex(zero, 1), complex(zero, zero)}, + {complex(zero, zero), complex(-zero, -1), complex(-zero, -zero)}, + {complex(zero, zero), complex(zero, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(1, zero), complex(zero, zero)}, + {complex(zero, zero), complex(1, -zero), complex(zero, zero)}, + {complex(zero, zero), complex(1, 1), complex(zero, zero)}, + {complex(zero, zero), complex(1, -1), complex(zero, zero)}, + {complex(zero, zero), complex(1, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(-1, zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, -zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, 1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, -1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-1, 2), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(2, zero), complex(zero, zero)}, + {complex(zero, zero), complex(2, -zero), complex(zero, zero)}, + {complex(zero, zero), complex(2, 1), complex(zero, zero)}, + {complex(zero, zero), complex(2, -1), complex(zero, zero)}, + {complex(zero, zero), complex(2, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(nan, zero), complex(nan, nan)}, + {complex(zero, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, zero), complex(nan, 1), complex(nan, nan)}, + {complex(zero, zero), complex(nan, -1), complex(nan, nan)}, + {complex(zero, zero), complex(nan, 2), complex(nan, nan)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(inf, zero), complex(zero, zero)}, + {complex(zero, zero), complex(inf, -zero), complex(zero, zero)}, + {complex(zero, zero), complex(inf, 1), complex(zero, zero)}, + {complex(zero, zero), complex(inf, -1), complex(zero, zero)}, + {complex(zero, zero), complex(inf, 2), complex(zero, zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, zero), complex(-inf, zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, 1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, -1), complex(-zero, -zero)}, + {complex(zero, zero), complex(-inf, 2), complex(-zero, -zero)}, + {complex(zero, zero), complex(nan, nan), complex(nan, nan)}, + {complex(zero, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(-zero, -zero), complex(zero, zero), complex(nan, nan)}, + {complex(-zero, -zero), complex(zero, -zero), complex(nan, nan)}, + {complex(-zero, -zero), complex(zero, 1), complex(-zero, zero)}, + {complex(-zero, -zero), complex(zero, -1), complex(-zero, -zero)}, + {complex(-zero, -zero), complex(zero, 2), complex(-zero, zero)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(zero, zero), complex(nan, nan)}, + {complex(-zero, -zero), complex(-zero, -zero), complex(nan, nan)}, + {complex(-zero, -zero), complex(zero, 1), complex(-zero, zero)}, + {complex(-zero, -zero), complex(-zero, -1), complex(zero, -zero)}, + {complex(-zero, -zero), complex(zero, 2), complex(-zero, zero)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(1, zero), complex(-zero, zero)}, + {complex(-zero, -zero), complex(1, -zero), complex(zero, -zero)}, + {complex(-zero, -zero), complex(1, 1), complex(-zero, zero)}, + {complex(-zero, -zero), complex(1, -1), complex(zero, -zero)}, + {complex(-zero, -zero), complex(1, 2), complex(-zero, zero)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(-1, zero), complex(-zero, zero)}, + {complex(-zero, -zero), complex(-1, -zero), complex(zero, -zero)}, + {complex(-zero, -zero), complex(-1, 1), complex(-zero, zero)}, + {complex(-zero, -zero), complex(-1, -1), complex(zero, -zero)}, + {complex(-zero, -zero), complex(-1, 2), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(2, zero), complex(-zero, zero)}, + {complex(-zero, -zero), complex(2, -zero), complex(zero, -zero)}, + {complex(-zero, -zero), complex(2, 1), complex(-zero, zero)}, + {complex(-zero, -zero), complex(2, -1), complex(zero, -zero)}, + {complex(-zero, -zero), complex(2, 2), complex(-zero, zero)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(inf, zero), complex(-zero, zero)}, + {complex(-zero, -zero), complex(inf, -zero), complex(zero, -zero)}, + {complex(-zero, -zero), complex(inf, 1), complex(-zero, zero)}, + {complex(-zero, -zero), complex(inf, -1), complex(zero, -zero)}, + {complex(-zero, -zero), complex(inf, 2), complex(-zero, zero)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(-inf, zero), complex(-zero, zero)}, + {complex(-zero, -zero), complex(-inf, -zero), complex(zero, -zero)}, + {complex(-zero, -zero), complex(-inf, 1), complex(-zero, zero)}, + {complex(-zero, -zero), complex(-inf, -1), complex(zero, -zero)}, + {complex(-zero, -zero), complex(-inf, 2), complex(-zero, zero)}, + {complex(-zero, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-zero, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, 1), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 1), complex(zero, -zero), complex(nan, inf)}, + {complex(zero, 1), complex(zero, 1), complex(1, zero)}, + {complex(zero, 1), complex(zero, -1), complex(-1, zero)}, + {complex(zero, 1), complex(zero, 2), complex(0.5, zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 1), complex(-zero, -zero), complex(nan, -inf)}, + {complex(zero, 1), complex(zero, 1), complex(1, zero)}, + {complex(zero, 1), complex(-zero, -1), complex(-1, -zero)}, + {complex(zero, 1), complex(zero, 2), complex(0.5, zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(1, zero), complex(zero, 1)}, + {complex(zero, 1), complex(1, -zero), complex(zero, 1)}, + {complex(zero, 1), complex(1, 1), complex(0.5, 0.5)}, + {complex(zero, 1), complex(1, -1), complex(-0.5, 0.5)}, + {complex(zero, 1), complex(1, 2), complex(0.4, 0.2)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(-1, zero), complex(-zero, -1)}, + {complex(zero, 1), complex(-1, -zero), complex(-zero, -1)}, + {complex(zero, 1), complex(-1, 1), complex(0.5, -0.5)}, + {complex(zero, 1), complex(-1, -1), complex(-0.5, -0.5)}, + {complex(zero, 1), complex(-1, 2), complex(0.4, -0.2)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(2, zero), complex(zero, 0.5)}, + {complex(zero, 1), complex(2, -zero), complex(zero, 0.5)}, + {complex(zero, 1), complex(2, 1), complex(0.2, 0.4)}, + {complex(zero, 1), complex(2, -1), complex(-0.2, 0.4)}, + {complex(zero, 1), complex(2, 2), complex(0.25, 0.25)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(nan, zero), complex(nan, nan)}, + {complex(zero, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, 1), complex(nan, 1), complex(nan, nan)}, + {complex(zero, 1), complex(nan, -1), complex(nan, nan)}, + {complex(zero, 1), complex(nan, 2), complex(nan, nan)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(inf, zero), complex(zero, zero)}, + {complex(zero, 1), complex(inf, -zero), complex(zero, zero)}, + {complex(zero, 1), complex(inf, 1), complex(zero, zero)}, + {complex(zero, 1), complex(inf, -1), complex(zero, zero)}, + {complex(zero, 1), complex(inf, 2), complex(zero, zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 1), complex(-inf, zero), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, 1), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, -1), complex(-zero, -zero)}, + {complex(zero, 1), complex(-inf, 2), complex(-zero, -zero)}, + {complex(zero, 1), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(zero, zero), complex(nan, -inf)}, + {complex(-zero, -1), complex(zero, -zero), complex(nan, -inf)}, + {complex(-zero, -1), complex(zero, 1), complex(-1, zero)}, + {complex(-zero, -1), complex(zero, -1), complex(1, -zero)}, + {complex(-zero, -1), complex(zero, 2), complex(-0.5, zero)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -1), complex(zero, zero), complex(nan, -inf)}, + {complex(-zero, -1), complex(-zero, -zero), complex(nan, inf)}, + {complex(-zero, -1), complex(zero, 1), complex(-1, zero)}, + {complex(-zero, -1), complex(-zero, -1), complex(1, -zero)}, + {complex(-zero, -1), complex(zero, 2), complex(-0.5, zero)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -1), complex(1, zero), complex(-zero, -1)}, + {complex(-zero, -1), complex(1, -zero), complex(zero, -1)}, + {complex(-zero, -1), complex(1, 1), complex(-0.5, -0.5)}, + {complex(-zero, -1), complex(1, -1), complex(0.5, -0.5)}, + {complex(-zero, -1), complex(1, 2), complex(-0.4, -0.2)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -1), complex(-1, zero), complex(-zero, 1)}, + {complex(-zero, -1), complex(-1, -zero), complex(zero, 1)}, + {complex(-zero, -1), complex(-1, 1), complex(-0.5, 0.5)}, + {complex(-zero, -1), complex(-1, -1), complex(0.5, 0.5)}, + {complex(-zero, -1), complex(-1, 2), complex(-0.4, 0.2)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -1), complex(2, zero), complex(-zero, -0.5)}, + {complex(-zero, -1), complex(2, -zero), complex(zero, -0.5)}, + {complex(-zero, -1), complex(2, 1), complex(-0.2, -0.4)}, + {complex(-zero, -1), complex(2, -1), complex(0.2, -0.4)}, + {complex(-zero, -1), complex(2, 2), complex(-0.25, -0.25)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -1), complex(nan, zero), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, 1), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, -1), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, 2), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -1), complex(inf, zero), complex(-zero, -zero)}, + {complex(-zero, -1), complex(inf, -zero), complex(zero, -zero)}, + {complex(-zero, -1), complex(inf, 1), complex(-zero, -zero)}, + {complex(-zero, -1), complex(inf, -1), complex(zero, -zero)}, + {complex(-zero, -1), complex(inf, 2), complex(-zero, -zero)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(-zero, -1), complex(-inf, zero), complex(-zero, zero)}, + {complex(-zero, -1), complex(-inf, -zero), complex(zero, zero)}, + {complex(-zero, -1), complex(-inf, 1), complex(-zero, zero)}, + {complex(-zero, -1), complex(-inf, -1), complex(zero, zero)}, + {complex(-zero, -1), complex(-inf, 2), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-zero, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-zero, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(zero, 2), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 2), complex(zero, -zero), complex(nan, inf)}, + {complex(zero, 2), complex(zero, 1), complex(2, zero)}, + {complex(zero, 2), complex(zero, -1), complex(-2, zero)}, + {complex(zero, 2), complex(zero, 2), complex(1, zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(zero, zero), complex(nan, inf)}, + {complex(zero, 2), complex(-zero, -zero), complex(nan, -inf)}, + {complex(zero, 2), complex(zero, 1), complex(2, zero)}, + {complex(zero, 2), complex(-zero, -1), complex(-2, -zero)}, + {complex(zero, 2), complex(zero, 2), complex(1, zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(1, zero), complex(zero, 2)}, + {complex(zero, 2), complex(1, -zero), complex(zero, 2)}, + {complex(zero, 2), complex(1, 1), complex(1, 1)}, + {complex(zero, 2), complex(1, -1), complex(-1, 1)}, + {complex(zero, 2), complex(1, 2), complex(0.8, 0.4)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(-1, zero), complex(-zero, -2)}, + {complex(zero, 2), complex(-1, -zero), complex(-zero, -2)}, + {complex(zero, 2), complex(-1, 1), complex(1, -1)}, + {complex(zero, 2), complex(-1, -1), complex(-1, -1)}, + {complex(zero, 2), complex(-1, 2), complex(0.8, -0.4)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(2, zero), complex(zero, 1)}, + {complex(zero, 2), complex(2, -zero), complex(zero, 1)}, + {complex(zero, 2), complex(2, 1), complex(0.4, 0.8)}, + {complex(zero, 2), complex(2, -1), complex(-0.4, 0.8)}, + {complex(zero, 2), complex(2, 2), complex(0.5, 0.5)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(nan, zero), complex(nan, nan)}, + {complex(zero, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(zero, 2), complex(nan, 1), complex(nan, nan)}, + {complex(zero, 2), complex(nan, -1), complex(nan, nan)}, + {complex(zero, 2), complex(nan, 2), complex(nan, nan)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(inf, zero), complex(zero, zero)}, + {complex(zero, 2), complex(inf, -zero), complex(zero, zero)}, + {complex(zero, 2), complex(inf, 1), complex(zero, zero)}, + {complex(zero, 2), complex(inf, -1), complex(zero, zero)}, + {complex(zero, 2), complex(inf, 2), complex(zero, zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(zero, 2), complex(-inf, zero), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, 1), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, -1), complex(-zero, -zero)}, + {complex(zero, 2), complex(-inf, 2), complex(-zero, -zero)}, + {complex(zero, 2), complex(nan, nan), complex(nan, nan)}, + {complex(zero, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(zero, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(1, zero), complex(zero, zero), complex(inf, nan)}, + {complex(1, zero), complex(zero, -zero), complex(inf, nan)}, + {complex(1, zero), complex(zero, 1), complex(zero, -1)}, + {complex(1, zero), complex(zero, -1), complex(-zero, 1)}, + {complex(1, zero), complex(zero, 2), complex(zero, -0.5)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, zero), complex(zero, zero), complex(inf, nan)}, + {complex(1, zero), complex(-zero, -zero), complex(-inf, nan)}, + {complex(1, zero), complex(zero, 1), complex(zero, -1)}, + {complex(1, zero), complex(-zero, -1), complex(-zero, 1)}, + {complex(1, zero), complex(zero, 2), complex(zero, -0.5)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, zero), complex(1, zero), complex(1, zero)}, + {complex(1, zero), complex(1, -zero), complex(1, zero)}, + {complex(1, zero), complex(1, 1), complex(0.5, -0.5)}, + {complex(1, zero), complex(1, -1), complex(0.5, 0.5)}, + {complex(1, zero), complex(1, 2), complex(0.2, -0.4)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, zero), complex(-1, zero), complex(-1, -zero)}, + {complex(1, zero), complex(-1, -zero), complex(-1, -zero)}, + {complex(1, zero), complex(-1, 1), complex(-0.5, -0.5)}, + {complex(1, zero), complex(-1, -1), complex(-0.5, 0.5)}, + {complex(1, zero), complex(-1, 2), complex(-0.2, -0.4)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, zero), complex(2, zero), complex(0.5, zero)}, + {complex(1, zero), complex(2, -zero), complex(0.5, zero)}, + {complex(1, zero), complex(2, 1), complex(0.4, -0.2)}, + {complex(1, zero), complex(2, -1), complex(0.4, 0.2)}, + {complex(1, zero), complex(2, 2), complex(0.25, -0.25)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, zero), complex(nan, zero), complex(nan, nan)}, + {complex(1, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(1, zero), complex(nan, 1), complex(nan, nan)}, + {complex(1, zero), complex(nan, -1), complex(nan, nan)}, + {complex(1, zero), complex(nan, 2), complex(nan, nan)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, zero), complex(inf, zero), complex(zero, zero)}, + {complex(1, zero), complex(inf, -zero), complex(zero, zero)}, + {complex(1, zero), complex(inf, 1), complex(zero, zero)}, + {complex(1, zero), complex(inf, -1), complex(zero, zero)}, + {complex(1, zero), complex(inf, 2), complex(zero, zero)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, zero), complex(-inf, zero), complex(-zero, -zero)}, + {complex(1, zero), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(1, zero), complex(-inf, 1), complex(-zero, -zero)}, + {complex(1, zero), complex(-inf, -1), complex(-zero, -zero)}, + {complex(1, zero), complex(-inf, 2), complex(-zero, -zero)}, + {complex(1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(1, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, -zero), complex(zero, zero), complex(inf, nan)}, + {complex(1, -zero), complex(zero, -zero), complex(inf, nan)}, + {complex(1, -zero), complex(zero, 1), complex(zero, -1)}, + {complex(1, -zero), complex(zero, -1), complex(zero, 1)}, + {complex(1, -zero), complex(zero, 2), complex(zero, -0.5)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -zero), complex(zero, zero), complex(inf, nan)}, + {complex(1, -zero), complex(-zero, -zero), complex(-inf, nan)}, + {complex(1, -zero), complex(zero, 1), complex(zero, -1)}, + {complex(1, -zero), complex(-zero, -1), complex(-zero, 1)}, + {complex(1, -zero), complex(zero, 2), complex(zero, -0.5)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -zero), complex(1, zero), complex(1, -zero)}, + {complex(1, -zero), complex(1, -zero), complex(1, zero)}, + {complex(1, -zero), complex(1, 1), complex(0.5, -0.5)}, + {complex(1, -zero), complex(1, -1), complex(0.5, 0.5)}, + {complex(1, -zero), complex(1, 2), complex(0.2, -0.4)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -zero), complex(-1, zero), complex(-1, -zero)}, + {complex(1, -zero), complex(-1, -zero), complex(-1, zero)}, + {complex(1, -zero), complex(-1, 1), complex(-0.5, -0.5)}, + {complex(1, -zero), complex(-1, -1), complex(-0.5, 0.5)}, + {complex(1, -zero), complex(-1, 2), complex(-0.2, -0.4)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -zero), complex(2, zero), complex(0.5, -zero)}, + {complex(1, -zero), complex(2, -zero), complex(0.5, zero)}, + {complex(1, -zero), complex(2, 1), complex(0.4, -0.2)}, + {complex(1, -zero), complex(2, -1), complex(0.4, 0.2)}, + {complex(1, -zero), complex(2, 2), complex(0.25, -0.25)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(1, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(1, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(1, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(1, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -zero), complex(inf, zero), complex(zero, -zero)}, + {complex(1, -zero), complex(inf, -zero), complex(zero, zero)}, + {complex(1, -zero), complex(inf, 1), complex(zero, -zero)}, + {complex(1, -zero), complex(inf, -1), complex(zero, zero)}, + {complex(1, -zero), complex(inf, 2), complex(zero, -zero)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -zero), complex(-inf, zero), complex(-zero, -zero)}, + {complex(1, -zero), complex(-inf, -zero), complex(-zero, zero)}, + {complex(1, -zero), complex(-inf, 1), complex(-zero, -zero)}, + {complex(1, -zero), complex(-inf, -1), complex(-zero, zero)}, + {complex(1, -zero), complex(-inf, 2), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(1, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(1, 1), complex(zero, zero), complex(inf, inf)}, + {complex(1, 1), complex(zero, -zero), complex(inf, inf)}, + {complex(1, 1), complex(zero, 1), complex(1, -1)}, + {complex(1, 1), complex(zero, -1), complex(-1, 1)}, + {complex(1, 1), complex(zero, 2), complex(0.5, -0.5)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 1), complex(zero, zero), complex(inf, inf)}, + {complex(1, 1), complex(-zero, -zero), complex(-inf, -inf)}, + {complex(1, 1), complex(zero, 1), complex(1, -1)}, + {complex(1, 1), complex(-zero, -1), complex(-1, 1)}, + {complex(1, 1), complex(zero, 2), complex(0.5, -0.5)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 1), complex(1, zero), complex(1, 1)}, + {complex(1, 1), complex(1, -zero), complex(1, 1)}, + {complex(1, 1), complex(1, 1), complex(1, zero)}, + {complex(1, 1), complex(1, -1), complex(zero, 1)}, + {complex(1, 1), complex(1, 2), complex(0.6, -0.2)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 1), complex(-1, zero), complex(-1, -1)}, + {complex(1, 1), complex(-1, -zero), complex(-1, -1)}, + {complex(1, 1), complex(-1, 1), complex(-zero, -1)}, + {complex(1, 1), complex(-1, -1), complex(-1, -zero)}, + {complex(1, 1), complex(-1, 2), complex(0.2, -0.6)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 1), complex(2, zero), complex(0.5, 0.5)}, + {complex(1, 1), complex(2, -zero), complex(0.5, 0.5)}, + {complex(1, 1), complex(2, 1), complex(0.6, 0.2)}, + {complex(1, 1), complex(2, -1), complex(0.2, 0.6)}, + {complex(1, 1), complex(2, 2), complex(0.5, zero)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 1), complex(nan, zero), complex(nan, nan)}, + {complex(1, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(1, 1), complex(nan, 1), complex(nan, nan)}, + {complex(1, 1), complex(nan, -1), complex(nan, nan)}, + {complex(1, 1), complex(nan, 2), complex(nan, nan)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 1), complex(inf, zero), complex(zero, zero)}, + {complex(1, 1), complex(inf, -zero), complex(zero, zero)}, + {complex(1, 1), complex(inf, 1), complex(zero, zero)}, + {complex(1, 1), complex(inf, -1), complex(zero, zero)}, + {complex(1, 1), complex(inf, 2), complex(zero, zero)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 1), complex(-inf, zero), complex(-zero, -zero)}, + {complex(1, 1), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(1, 1), complex(-inf, 1), complex(-zero, -zero)}, + {complex(1, 1), complex(-inf, -1), complex(-zero, -zero)}, + {complex(1, 1), complex(-inf, 2), complex(-zero, -zero)}, + {complex(1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(1, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, -1), complex(zero, zero), complex(inf, -inf)}, + {complex(1, -1), complex(zero, -zero), complex(inf, -inf)}, + {complex(1, -1), complex(zero, 1), complex(-1, -1)}, + {complex(1, -1), complex(zero, -1), complex(1, 1)}, + {complex(1, -1), complex(zero, 2), complex(-0.5, -0.5)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -1), complex(zero, zero), complex(inf, -inf)}, + {complex(1, -1), complex(-zero, -zero), complex(-inf, inf)}, + {complex(1, -1), complex(zero, 1), complex(-1, -1)}, + {complex(1, -1), complex(-zero, -1), complex(1, 1)}, + {complex(1, -1), complex(zero, 2), complex(-0.5, -0.5)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -1), complex(1, zero), complex(1, -1)}, + {complex(1, -1), complex(1, -zero), complex(1, -1)}, + {complex(1, -1), complex(1, 1), complex(zero, -1)}, + {complex(1, -1), complex(1, -1), complex(1, zero)}, + {complex(1, -1), complex(1, 2), complex(-0.2, -0.6)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -1), complex(-1, zero), complex(-1, 1)}, + {complex(1, -1), complex(-1, -zero), complex(-1, 1)}, + {complex(1, -1), complex(-1, 1), complex(-1, -zero)}, + {complex(1, -1), complex(-1, -1), complex(-zero, 1)}, + {complex(1, -1), complex(-1, 2), complex(-0.6, -0.2)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -1), complex(2, zero), complex(0.5, -0.5)}, + {complex(1, -1), complex(2, -zero), complex(0.5, -0.5)}, + {complex(1, -1), complex(2, 1), complex(0.2, -0.6)}, + {complex(1, -1), complex(2, -1), complex(0.6, -0.2)}, + {complex(1, -1), complex(2, 2), complex(zero, -0.5)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -1), complex(nan, zero), complex(nan, nan)}, + {complex(1, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(1, -1), complex(nan, 1), complex(nan, nan)}, + {complex(1, -1), complex(nan, -1), complex(nan, nan)}, + {complex(1, -1), complex(nan, 2), complex(nan, nan)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -1), complex(inf, zero), complex(zero, -zero)}, + {complex(1, -1), complex(inf, -zero), complex(zero, -zero)}, + {complex(1, -1), complex(inf, 1), complex(zero, -zero)}, + {complex(1, -1), complex(inf, -1), complex(zero, -zero)}, + {complex(1, -1), complex(inf, 2), complex(zero, -zero)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, -1), complex(-inf, zero), complex(-zero, zero)}, + {complex(1, -1), complex(-inf, -zero), complex(-zero, zero)}, + {complex(1, -1), complex(-inf, 1), complex(-zero, zero)}, + {complex(1, -1), complex(-inf, -1), complex(-zero, zero)}, + {complex(1, -1), complex(-inf, 2), complex(-zero, zero)}, + {complex(1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(1, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(1, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(1, 2), complex(zero, zero), complex(inf, inf)}, + {complex(1, 2), complex(zero, -zero), complex(inf, inf)}, + {complex(1, 2), complex(zero, 1), complex(2, -1)}, + {complex(1, 2), complex(zero, -1), complex(-2, 1)}, + {complex(1, 2), complex(zero, 2), complex(1, -0.5)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 2), complex(zero, zero), complex(inf, inf)}, + {complex(1, 2), complex(-zero, -zero), complex(-inf, -inf)}, + {complex(1, 2), complex(zero, 1), complex(2, -1)}, + {complex(1, 2), complex(-zero, -1), complex(-2, 1)}, + {complex(1, 2), complex(zero, 2), complex(1, -0.5)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 2), complex(1, zero), complex(1, 2)}, + {complex(1, 2), complex(1, -zero), complex(1, 2)}, + {complex(1, 2), complex(1, 1), complex(1.5, 0.5)}, + {complex(1, 2), complex(1, -1), complex(-0.5, 1.5)}, + {complex(1, 2), complex(1, 2), complex(1, zero)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 2), complex(-1, zero), complex(-1, -2)}, + {complex(1, 2), complex(-1, -zero), complex(-1, -2)}, + {complex(1, 2), complex(-1, 1), complex(0.5, -1.5)}, + {complex(1, 2), complex(-1, -1), complex(-1.5, -0.5)}, + {complex(1, 2), complex(-1, 2), complex(0.6, -0.8)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 2), complex(2, zero), complex(0.5, 1)}, + {complex(1, 2), complex(2, -zero), complex(0.5, 1)}, + {complex(1, 2), complex(2, 1), complex(0.8, 0.6)}, + {complex(1, 2), complex(2, -1), complex(zero, 1)}, + {complex(1, 2), complex(2, 2), complex(0.75, 0.25)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 2), complex(nan, zero), complex(nan, nan)}, + {complex(1, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(1, 2), complex(nan, 1), complex(nan, nan)}, + {complex(1, 2), complex(nan, -1), complex(nan, nan)}, + {complex(1, 2), complex(nan, 2), complex(nan, nan)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 2), complex(inf, zero), complex(zero, zero)}, + {complex(1, 2), complex(inf, -zero), complex(zero, zero)}, + {complex(1, 2), complex(inf, 1), complex(zero, zero)}, + {complex(1, 2), complex(inf, -1), complex(zero, zero)}, + {complex(1, 2), complex(inf, 2), complex(zero, zero)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(1, 2), complex(-inf, zero), complex(-zero, -zero)}, + {complex(1, 2), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(1, 2), complex(-inf, 1), complex(-zero, -zero)}, + {complex(1, 2), complex(-inf, -1), complex(-zero, -zero)}, + {complex(1, 2), complex(-inf, 2), complex(-zero, -zero)}, + {complex(1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(1, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(1, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(-1, zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-1, zero), complex(zero, -zero), complex(-inf, nan)}, + {complex(-1, zero), complex(zero, 1), complex(zero, 1)}, + {complex(-1, zero), complex(zero, -1), complex(-zero, -1)}, + {complex(-1, zero), complex(zero, 2), complex(zero, 0.5)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-1, zero), complex(-zero, -zero), complex(inf, nan)}, + {complex(-1, zero), complex(zero, 1), complex(zero, 1)}, + {complex(-1, zero), complex(-zero, -1), complex(-zero, -1)}, + {complex(-1, zero), complex(zero, 2), complex(zero, 0.5)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, zero), complex(1, zero), complex(-1, zero)}, + {complex(-1, zero), complex(1, -zero), complex(-1, zero)}, + {complex(-1, zero), complex(1, 1), complex(-0.5, 0.5)}, + {complex(-1, zero), complex(1, -1), complex(-0.5, -0.5)}, + {complex(-1, zero), complex(1, 2), complex(-0.2, 0.4)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, zero), complex(-1, zero), complex(1, -zero)}, + {complex(-1, zero), complex(-1, -zero), complex(1, -zero)}, + {complex(-1, zero), complex(-1, 1), complex(0.5, 0.5)}, + {complex(-1, zero), complex(-1, -1), complex(0.5, -0.5)}, + {complex(-1, zero), complex(-1, 2), complex(0.2, 0.4)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, zero), complex(2, zero), complex(-0.5, zero)}, + {complex(-1, zero), complex(2, -zero), complex(-0.5, zero)}, + {complex(-1, zero), complex(2, 1), complex(-0.4, 0.2)}, + {complex(-1, zero), complex(2, -1), complex(-0.4, -0.2)}, + {complex(-1, zero), complex(2, 2), complex(-0.25, 0.25)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, zero), complex(nan, zero), complex(nan, nan)}, + {complex(-1, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(-1, zero), complex(nan, 1), complex(nan, nan)}, + {complex(-1, zero), complex(nan, -1), complex(nan, nan)}, + {complex(-1, zero), complex(nan, 2), complex(nan, nan)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, zero), complex(inf, zero), complex(-zero, zero)}, + {complex(-1, zero), complex(inf, -zero), complex(-zero, zero)}, + {complex(-1, zero), complex(inf, 1), complex(-zero, zero)}, + {complex(-1, zero), complex(inf, -1), complex(-zero, zero)}, + {complex(-1, zero), complex(inf, 2), complex(-zero, zero)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, zero), complex(-inf, zero), complex(zero, -zero)}, + {complex(-1, zero), complex(-inf, -zero), complex(zero, -zero)}, + {complex(-1, zero), complex(-inf, 1), complex(zero, -zero)}, + {complex(-1, zero), complex(-inf, -1), complex(zero, -zero)}, + {complex(-1, zero), complex(-inf, 2), complex(zero, -zero)}, + {complex(-1, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-1, -zero), complex(zero, -zero), complex(-inf, nan)}, + {complex(-1, -zero), complex(zero, 1), complex(-zero, 1)}, + {complex(-1, -zero), complex(zero, -1), complex(-zero, -1)}, + {complex(-1, -zero), complex(zero, 2), complex(-zero, 0.5)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-1, -zero), complex(-zero, -zero), complex(inf, nan)}, + {complex(-1, -zero), complex(zero, 1), complex(-zero, 1)}, + {complex(-1, -zero), complex(-zero, -1), complex(zero, -1)}, + {complex(-1, -zero), complex(zero, 2), complex(-zero, 0.5)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(1, zero), complex(-1, zero)}, + {complex(-1, -zero), complex(1, -zero), complex(-1, -zero)}, + {complex(-1, -zero), complex(1, 1), complex(-0.5, 0.5)}, + {complex(-1, -zero), complex(1, -1), complex(-0.5, -0.5)}, + {complex(-1, -zero), complex(1, 2), complex(-0.2, 0.4)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(-1, zero), complex(1, zero)}, + {complex(-1, -zero), complex(-1, -zero), complex(1, -zero)}, + {complex(-1, -zero), complex(-1, 1), complex(0.5, 0.5)}, + {complex(-1, -zero), complex(-1, -1), complex(0.5, -0.5)}, + {complex(-1, -zero), complex(-1, 2), complex(0.2, 0.4)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(2, zero), complex(-0.5, zero)}, + {complex(-1, -zero), complex(2, -zero), complex(-0.5, -zero)}, + {complex(-1, -zero), complex(2, 1), complex(-0.4, 0.2)}, + {complex(-1, -zero), complex(2, -1), complex(-0.4, -0.2)}, + {complex(-1, -zero), complex(2, 2), complex(-0.25, 0.25)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(inf, zero), complex(-zero, zero)}, + {complex(-1, -zero), complex(inf, -zero), complex(-zero, -zero)}, + {complex(-1, -zero), complex(inf, 1), complex(-zero, zero)}, + {complex(-1, -zero), complex(inf, -1), complex(-zero, -zero)}, + {complex(-1, -zero), complex(inf, 2), complex(-zero, zero)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -zero), complex(-inf, zero), complex(zero, zero)}, + {complex(-1, -zero), complex(-inf, -zero), complex(zero, -zero)}, + {complex(-1, -zero), complex(-inf, 1), complex(zero, zero)}, + {complex(-1, -zero), complex(-inf, -1), complex(zero, -zero)}, + {complex(-1, -zero), complex(-inf, 2), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -zero), complex(nan, inf), complex(zero, zero)}, + {complex(-1, -zero), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, 1), complex(zero, zero), complex(-inf, inf)}, + {complex(-1, 1), complex(zero, -zero), complex(-inf, inf)}, + {complex(-1, 1), complex(zero, 1), complex(1, 1)}, + {complex(-1, 1), complex(zero, -1), complex(-1, -1)}, + {complex(-1, 1), complex(zero, 2), complex(0.5, 0.5)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 1), complex(zero, zero), complex(-inf, inf)}, + {complex(-1, 1), complex(-zero, -zero), complex(inf, -inf)}, + {complex(-1, 1), complex(zero, 1), complex(1, 1)}, + {complex(-1, 1), complex(-zero, -1), complex(-1, -1)}, + {complex(-1, 1), complex(zero, 2), complex(0.5, 0.5)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 1), complex(1, zero), complex(-1, 1)}, + {complex(-1, 1), complex(1, -zero), complex(-1, 1)}, + {complex(-1, 1), complex(1, 1), complex(zero, 1)}, + {complex(-1, 1), complex(1, -1), complex(-1, zero)}, + {complex(-1, 1), complex(1, 2), complex(0.2, 0.6)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 1), complex(-1, zero), complex(1, -1)}, + {complex(-1, 1), complex(-1, -zero), complex(1, -1)}, + {complex(-1, 1), complex(-1, 1), complex(1, -zero)}, + {complex(-1, 1), complex(-1, -1), complex(-zero, -1)}, + {complex(-1, 1), complex(-1, 2), complex(0.6, 0.2)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 1), complex(2, zero), complex(-0.5, 0.5)}, + {complex(-1, 1), complex(2, -zero), complex(-0.5, 0.5)}, + {complex(-1, 1), complex(2, 1), complex(-0.2, 0.6)}, + {complex(-1, 1), complex(2, -1), complex(-0.6, 0.2)}, + {complex(-1, 1), complex(2, 2), complex(zero, 0.5)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 1), complex(nan, zero), complex(nan, nan)}, + {complex(-1, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(-1, 1), complex(nan, 1), complex(nan, nan)}, + {complex(-1, 1), complex(nan, -1), complex(nan, nan)}, + {complex(-1, 1), complex(nan, 2), complex(nan, nan)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 1), complex(inf, zero), complex(-zero, zero)}, + {complex(-1, 1), complex(inf, -zero), complex(-zero, zero)}, + {complex(-1, 1), complex(inf, 1), complex(-zero, zero)}, + {complex(-1, 1), complex(inf, -1), complex(-zero, zero)}, + {complex(-1, 1), complex(inf, 2), complex(-zero, zero)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 1), complex(-inf, zero), complex(zero, -zero)}, + {complex(-1, 1), complex(-inf, -zero), complex(zero, -zero)}, + {complex(-1, 1), complex(-inf, 1), complex(zero, -zero)}, + {complex(-1, 1), complex(-inf, -1), complex(zero, -zero)}, + {complex(-1, 1), complex(-inf, 2), complex(zero, -zero)}, + {complex(-1, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 1), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 1), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, -1), complex(zero, zero), complex(-inf, -inf)}, + {complex(-1, -1), complex(zero, -zero), complex(-inf, -inf)}, + {complex(-1, -1), complex(zero, 1), complex(-1, 1)}, + {complex(-1, -1), complex(zero, -1), complex(1, -1)}, + {complex(-1, -1), complex(zero, 2), complex(-0.5, 0.5)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -1), complex(zero, zero), complex(-inf, -inf)}, + {complex(-1, -1), complex(-zero, -zero), complex(inf, inf)}, + {complex(-1, -1), complex(zero, 1), complex(-1, 1)}, + {complex(-1, -1), complex(-zero, -1), complex(1, -1)}, + {complex(-1, -1), complex(zero, 2), complex(-0.5, 0.5)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -1), complex(1, zero), complex(-1, -1)}, + {complex(-1, -1), complex(1, -zero), complex(-1, -1)}, + {complex(-1, -1), complex(1, 1), complex(-1, zero)}, + {complex(-1, -1), complex(1, -1), complex(zero, -1)}, + {complex(-1, -1), complex(1, 2), complex(-0.6, 0.2)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -1), complex(-1, zero), complex(1, 1)}, + {complex(-1, -1), complex(-1, -zero), complex(1, 1)}, + {complex(-1, -1), complex(-1, 1), complex(-zero, 1)}, + {complex(-1, -1), complex(-1, -1), complex(1, -zero)}, + {complex(-1, -1), complex(-1, 2), complex(-0.2, 0.6)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -1), complex(2, zero), complex(-0.5, -0.5)}, + {complex(-1, -1), complex(2, -zero), complex(-0.5, -0.5)}, + {complex(-1, -1), complex(2, 1), complex(-0.6, -0.2)}, + {complex(-1, -1), complex(2, -1), complex(-0.2, -0.6)}, + {complex(-1, -1), complex(2, 2), complex(-0.5, zero)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -1), complex(nan, zero), complex(nan, nan)}, + {complex(-1, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(-1, -1), complex(nan, 1), complex(nan, nan)}, + {complex(-1, -1), complex(nan, -1), complex(nan, nan)}, + {complex(-1, -1), complex(nan, 2), complex(nan, nan)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -1), complex(inf, zero), complex(-zero, -zero)}, + {complex(-1, -1), complex(inf, -zero), complex(-zero, -zero)}, + {complex(-1, -1), complex(inf, 1), complex(-zero, -zero)}, + {complex(-1, -1), complex(inf, -1), complex(-zero, -zero)}, + {complex(-1, -1), complex(inf, 2), complex(-zero, -zero)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, -1), complex(-inf, zero), complex(zero, zero)}, + {complex(-1, -1), complex(-inf, -zero), complex(zero, zero)}, + {complex(-1, -1), complex(-inf, 1), complex(zero, zero)}, + {complex(-1, -1), complex(-inf, -1), complex(zero, zero)}, + {complex(-1, -1), complex(-inf, 2), complex(zero, zero)}, + {complex(-1, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-1, -1), complex(nan, inf), complex(-zero, zero)}, + {complex(-1, -1), complex(nan, -inf), complex(zero, -zero)}, + {complex(-1, 2), complex(zero, zero), complex(-inf, inf)}, + {complex(-1, 2), complex(zero, -zero), complex(-inf, inf)}, + {complex(-1, 2), complex(zero, 1), complex(2, 1)}, + {complex(-1, 2), complex(zero, -1), complex(-2, -1)}, + {complex(-1, 2), complex(zero, 2), complex(1, 0.5)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 2), complex(zero, zero), complex(-inf, inf)}, + {complex(-1, 2), complex(-zero, -zero), complex(inf, -inf)}, + {complex(-1, 2), complex(zero, 1), complex(2, 1)}, + {complex(-1, 2), complex(-zero, -1), complex(-2, -1)}, + {complex(-1, 2), complex(zero, 2), complex(1, 0.5)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 2), complex(1, zero), complex(-1, 2)}, + {complex(-1, 2), complex(1, -zero), complex(-1, 2)}, + {complex(-1, 2), complex(1, 1), complex(0.5, 1.5)}, + {complex(-1, 2), complex(1, -1), complex(-1.5, 0.5)}, + {complex(-1, 2), complex(1, 2), complex(0.6, 0.8)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 2), complex(-1, zero), complex(1, -2)}, + {complex(-1, 2), complex(-1, -zero), complex(1, -2)}, + {complex(-1, 2), complex(-1, 1), complex(1.5, -0.5)}, + {complex(-1, 2), complex(-1, -1), complex(-0.5, -1.5)}, + {complex(-1, 2), complex(-1, 2), complex(1, zero)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 2), complex(2, zero), complex(-0.5, 1)}, + {complex(-1, 2), complex(2, -zero), complex(-0.5, 1)}, + {complex(-1, 2), complex(2, 1), complex(zero, 1)}, + {complex(-1, 2), complex(2, -1), complex(-0.8, 0.6)}, + {complex(-1, 2), complex(2, 2), complex(0.25, 0.75)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 2), complex(nan, zero), complex(nan, nan)}, + {complex(-1, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(-1, 2), complex(nan, 1), complex(nan, nan)}, + {complex(-1, 2), complex(nan, -1), complex(nan, nan)}, + {complex(-1, 2), complex(nan, 2), complex(nan, nan)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 2), complex(inf, zero), complex(-zero, zero)}, + {complex(-1, 2), complex(inf, -zero), complex(-zero, zero)}, + {complex(-1, 2), complex(inf, 1), complex(-zero, zero)}, + {complex(-1, 2), complex(inf, -1), complex(-zero, zero)}, + {complex(-1, 2), complex(inf, 2), complex(-zero, zero)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(-1, 2), complex(-inf, zero), complex(zero, -zero)}, + {complex(-1, 2), complex(-inf, -zero), complex(zero, -zero)}, + {complex(-1, 2), complex(-inf, 1), complex(zero, -zero)}, + {complex(-1, 2), complex(-inf, -1), complex(zero, -zero)}, + {complex(-1, 2), complex(-inf, 2), complex(zero, -zero)}, + {complex(-1, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-1, 2), complex(nan, inf), complex(zero, zero)}, + {complex(-1, 2), complex(nan, -inf), complex(-zero, -zero)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(2, zero), complex(zero, zero), complex(inf, nan)}, + {complex(2, zero), complex(zero, -zero), complex(inf, nan)}, + {complex(2, zero), complex(zero, 1), complex(zero, -2)}, + {complex(2, zero), complex(zero, -1), complex(-zero, 2)}, + {complex(2, zero), complex(zero, 2), complex(zero, -1)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, zero), complex(zero, zero), complex(inf, nan)}, + {complex(2, zero), complex(-zero, -zero), complex(-inf, nan)}, + {complex(2, zero), complex(zero, 1), complex(zero, -2)}, + {complex(2, zero), complex(-zero, -1), complex(-zero, 2)}, + {complex(2, zero), complex(zero, 2), complex(zero, -1)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, zero), complex(1, zero), complex(2, zero)}, + {complex(2, zero), complex(1, -zero), complex(2, zero)}, + {complex(2, zero), complex(1, 1), complex(1, -1)}, + {complex(2, zero), complex(1, -1), complex(1, 1)}, + {complex(2, zero), complex(1, 2), complex(0.4, -0.8)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, zero), complex(-1, zero), complex(-2, -zero)}, + {complex(2, zero), complex(-1, -zero), complex(-2, -zero)}, + {complex(2, zero), complex(-1, 1), complex(-1, -1)}, + {complex(2, zero), complex(-1, -1), complex(-1, 1)}, + {complex(2, zero), complex(-1, 2), complex(-0.4, -0.8)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, zero), complex(2, zero), complex(1, zero)}, + {complex(2, zero), complex(2, -zero), complex(1, zero)}, + {complex(2, zero), complex(2, 1), complex(0.8, -0.4)}, + {complex(2, zero), complex(2, -1), complex(0.8, 0.4)}, + {complex(2, zero), complex(2, 2), complex(0.5, -0.5)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, zero), complex(nan, zero), complex(nan, nan)}, + {complex(2, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(2, zero), complex(nan, 1), complex(nan, nan)}, + {complex(2, zero), complex(nan, -1), complex(nan, nan)}, + {complex(2, zero), complex(nan, 2), complex(nan, nan)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, zero), complex(inf, zero), complex(zero, zero)}, + {complex(2, zero), complex(inf, -zero), complex(zero, zero)}, + {complex(2, zero), complex(inf, 1), complex(zero, zero)}, + {complex(2, zero), complex(inf, -1), complex(zero, zero)}, + {complex(2, zero), complex(inf, 2), complex(zero, zero)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, zero), complex(-inf, zero), complex(-zero, -zero)}, + {complex(2, zero), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(2, zero), complex(-inf, 1), complex(-zero, -zero)}, + {complex(2, zero), complex(-inf, -1), complex(-zero, -zero)}, + {complex(2, zero), complex(-inf, 2), complex(-zero, -zero)}, + {complex(2, zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, zero), complex(nan, inf), complex(zero, -zero)}, + {complex(2, zero), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, -zero), complex(zero, zero), complex(inf, nan)}, + {complex(2, -zero), complex(zero, -zero), complex(inf, nan)}, + {complex(2, -zero), complex(zero, 1), complex(zero, -2)}, + {complex(2, -zero), complex(zero, -1), complex(zero, 2)}, + {complex(2, -zero), complex(zero, 2), complex(zero, -1)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -zero), complex(zero, zero), complex(inf, nan)}, + {complex(2, -zero), complex(-zero, -zero), complex(-inf, nan)}, + {complex(2, -zero), complex(zero, 1), complex(zero, -2)}, + {complex(2, -zero), complex(-zero, -1), complex(-zero, 2)}, + {complex(2, -zero), complex(zero, 2), complex(zero, -1)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -zero), complex(1, zero), complex(2, -zero)}, + {complex(2, -zero), complex(1, -zero), complex(2, zero)}, + {complex(2, -zero), complex(1, 1), complex(1, -1)}, + {complex(2, -zero), complex(1, -1), complex(1, 1)}, + {complex(2, -zero), complex(1, 2), complex(0.4, -0.8)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -zero), complex(-1, zero), complex(-2, -zero)}, + {complex(2, -zero), complex(-1, -zero), complex(-2, zero)}, + {complex(2, -zero), complex(-1, 1), complex(-1, -1)}, + {complex(2, -zero), complex(-1, -1), complex(-1, 1)}, + {complex(2, -zero), complex(-1, 2), complex(-0.4, -0.8)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -zero), complex(2, zero), complex(1, -zero)}, + {complex(2, -zero), complex(2, -zero), complex(1, zero)}, + {complex(2, -zero), complex(2, 1), complex(0.8, -0.4)}, + {complex(2, -zero), complex(2, -1), complex(0.8, 0.4)}, + {complex(2, -zero), complex(2, 2), complex(0.5, -0.5)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(2, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(2, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(2, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(2, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -zero), complex(inf, zero), complex(zero, -zero)}, + {complex(2, -zero), complex(inf, -zero), complex(zero, zero)}, + {complex(2, -zero), complex(inf, 1), complex(zero, -zero)}, + {complex(2, -zero), complex(inf, -1), complex(zero, zero)}, + {complex(2, -zero), complex(inf, 2), complex(zero, -zero)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -zero), complex(-inf, zero), complex(-zero, -zero)}, + {complex(2, -zero), complex(-inf, -zero), complex(-zero, zero)}, + {complex(2, -zero), complex(-inf, 1), complex(-zero, -zero)}, + {complex(2, -zero), complex(-inf, -1), complex(-zero, zero)}, + {complex(2, -zero), complex(-inf, 2), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(2, -zero), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -zero), complex(nan, -inf), complex(zero, zero)}, + {complex(2, 1), complex(zero, zero), complex(inf, inf)}, + {complex(2, 1), complex(zero, -zero), complex(inf, inf)}, + {complex(2, 1), complex(zero, 1), complex(1, -2)}, + {complex(2, 1), complex(zero, -1), complex(-1, 2)}, + {complex(2, 1), complex(zero, 2), complex(0.5, -1)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 1), complex(zero, zero), complex(inf, inf)}, + {complex(2, 1), complex(-zero, -zero), complex(-inf, -inf)}, + {complex(2, 1), complex(zero, 1), complex(1, -2)}, + {complex(2, 1), complex(-zero, -1), complex(-1, 2)}, + {complex(2, 1), complex(zero, 2), complex(0.5, -1)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 1), complex(1, zero), complex(2, 1)}, + {complex(2, 1), complex(1, -zero), complex(2, 1)}, + {complex(2, 1), complex(1, 1), complex(1.5, -0.5)}, + {complex(2, 1), complex(1, -1), complex(0.5, 1.5)}, + {complex(2, 1), complex(1, 2), complex(0.8, -0.6)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 1), complex(-1, zero), complex(-2, -1)}, + {complex(2, 1), complex(-1, -zero), complex(-2, -1)}, + {complex(2, 1), complex(-1, 1), complex(-0.5, -1.5)}, + {complex(2, 1), complex(-1, -1), complex(-1.5, 0.5)}, + {complex(2, 1), complex(-1, 2), complex(zero, -1)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 1), complex(2, zero), complex(1, 0.5)}, + {complex(2, 1), complex(2, -zero), complex(1, 0.5)}, + {complex(2, 1), complex(2, 1), complex(1, zero)}, + {complex(2, 1), complex(2, -1), complex(0.6, 0.8)}, + {complex(2, 1), complex(2, 2), complex(0.75, -0.25)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 1), complex(nan, zero), complex(nan, nan)}, + {complex(2, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(2, 1), complex(nan, 1), complex(nan, nan)}, + {complex(2, 1), complex(nan, -1), complex(nan, nan)}, + {complex(2, 1), complex(nan, 2), complex(nan, nan)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 1), complex(inf, zero), complex(zero, zero)}, + {complex(2, 1), complex(inf, -zero), complex(zero, zero)}, + {complex(2, 1), complex(inf, 1), complex(zero, zero)}, + {complex(2, 1), complex(inf, -1), complex(zero, zero)}, + {complex(2, 1), complex(inf, 2), complex(zero, zero)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 1), complex(-inf, zero), complex(-zero, -zero)}, + {complex(2, 1), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(2, 1), complex(-inf, 1), complex(-zero, -zero)}, + {complex(2, 1), complex(-inf, -1), complex(-zero, -zero)}, + {complex(2, 1), complex(-inf, 2), complex(-zero, -zero)}, + {complex(2, 1), complex(nan, nan), complex(nan, nan)}, + {complex(2, 1), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 1), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, -1), complex(zero, zero), complex(inf, -inf)}, + {complex(2, -1), complex(zero, -zero), complex(inf, -inf)}, + {complex(2, -1), complex(zero, 1), complex(-1, -2)}, + {complex(2, -1), complex(zero, -1), complex(1, 2)}, + {complex(2, -1), complex(zero, 2), complex(-0.5, -1)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -1), complex(zero, zero), complex(inf, -inf)}, + {complex(2, -1), complex(-zero, -zero), complex(-inf, inf)}, + {complex(2, -1), complex(zero, 1), complex(-1, -2)}, + {complex(2, -1), complex(-zero, -1), complex(1, 2)}, + {complex(2, -1), complex(zero, 2), complex(-0.5, -1)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -1), complex(1, zero), complex(2, -1)}, + {complex(2, -1), complex(1, -zero), complex(2, -1)}, + {complex(2, -1), complex(1, 1), complex(0.5, -1.5)}, + {complex(2, -1), complex(1, -1), complex(1.5, 0.5)}, + {complex(2, -1), complex(1, 2), complex(zero, -1)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -1), complex(-1, zero), complex(-2, 1)}, + {complex(2, -1), complex(-1, -zero), complex(-2, 1)}, + {complex(2, -1), complex(-1, 1), complex(-1.5, -0.5)}, + {complex(2, -1), complex(-1, -1), complex(-0.5, 1.5)}, + {complex(2, -1), complex(-1, 2), complex(-0.8, -0.6)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -1), complex(2, zero), complex(1, -0.5)}, + {complex(2, -1), complex(2, -zero), complex(1, -0.5)}, + {complex(2, -1), complex(2, 1), complex(0.6, -0.8)}, + {complex(2, -1), complex(2, -1), complex(1, zero)}, + {complex(2, -1), complex(2, 2), complex(0.25, -0.75)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -1), complex(nan, zero), complex(nan, nan)}, + {complex(2, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(2, -1), complex(nan, 1), complex(nan, nan)}, + {complex(2, -1), complex(nan, -1), complex(nan, nan)}, + {complex(2, -1), complex(nan, 2), complex(nan, nan)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -1), complex(inf, zero), complex(zero, -zero)}, + {complex(2, -1), complex(inf, -zero), complex(zero, -zero)}, + {complex(2, -1), complex(inf, 1), complex(zero, -zero)}, + {complex(2, -1), complex(inf, -1), complex(zero, -zero)}, + {complex(2, -1), complex(inf, 2), complex(zero, -zero)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, -1), complex(-inf, zero), complex(-zero, zero)}, + {complex(2, -1), complex(-inf, -zero), complex(-zero, zero)}, + {complex(2, -1), complex(-inf, 1), complex(-zero, zero)}, + {complex(2, -1), complex(-inf, -1), complex(-zero, zero)}, + {complex(2, -1), complex(-inf, 2), complex(-zero, zero)}, + {complex(2, -1), complex(nan, nan), complex(nan, nan)}, + {complex(2, -1), complex(nan, inf), complex(-zero, -zero)}, + {complex(2, -1), complex(nan, -inf), complex(zero, zero)}, + {complex(2, 2), complex(zero, zero), complex(inf, inf)}, + {complex(2, 2), complex(zero, -zero), complex(inf, inf)}, + {complex(2, 2), complex(zero, 1), complex(2, -2)}, + {complex(2, 2), complex(zero, -1), complex(-2, 2)}, + {complex(2, 2), complex(zero, 2), complex(1, -1)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 2), complex(zero, zero), complex(inf, inf)}, + {complex(2, 2), complex(-zero, -zero), complex(-inf, -inf)}, + {complex(2, 2), complex(zero, 1), complex(2, -2)}, + {complex(2, 2), complex(-zero, -1), complex(-2, 2)}, + {complex(2, 2), complex(zero, 2), complex(1, -1)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 2), complex(1, zero), complex(2, 2)}, + {complex(2, 2), complex(1, -zero), complex(2, 2)}, + {complex(2, 2), complex(1, 1), complex(2, zero)}, + {complex(2, 2), complex(1, -1), complex(zero, 2)}, + {complex(2, 2), complex(1, 2), complex(1.2, -0.4)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 2), complex(-1, zero), complex(-2, -2)}, + {complex(2, 2), complex(-1, -zero), complex(-2, -2)}, + {complex(2, 2), complex(-1, 1), complex(-zero, -2)}, + {complex(2, 2), complex(-1, -1), complex(-2, -zero)}, + {complex(2, 2), complex(-1, 2), complex(0.4, -1.2)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 2), complex(2, zero), complex(1, 1)}, + {complex(2, 2), complex(2, -zero), complex(1, 1)}, + {complex(2, 2), complex(2, 1), complex(1.2, 0.4)}, + {complex(2, 2), complex(2, -1), complex(0.4, 1.2)}, + {complex(2, 2), complex(2, 2), complex(1, zero)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 2), complex(nan, zero), complex(nan, nan)}, + {complex(2, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(2, 2), complex(nan, 1), complex(nan, nan)}, + {complex(2, 2), complex(nan, -1), complex(nan, nan)}, + {complex(2, 2), complex(nan, 2), complex(nan, nan)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 2), complex(inf, zero), complex(zero, zero)}, + {complex(2, 2), complex(inf, -zero), complex(zero, zero)}, + {complex(2, 2), complex(inf, 1), complex(zero, zero)}, + {complex(2, 2), complex(inf, -1), complex(zero, zero)}, + {complex(2, 2), complex(inf, 2), complex(zero, zero)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(2, 2), complex(-inf, zero), complex(-zero, -zero)}, + {complex(2, 2), complex(-inf, -zero), complex(-zero, -zero)}, + {complex(2, 2), complex(-inf, 1), complex(-zero, -zero)}, + {complex(2, 2), complex(-inf, -1), complex(-zero, -zero)}, + {complex(2, 2), complex(-inf, 2), complex(-zero, -zero)}, + {complex(2, 2), complex(nan, nan), complex(nan, nan)}, + {complex(2, 2), complex(nan, inf), complex(zero, -zero)}, + {complex(2, 2), complex(nan, -inf), complex(-zero, zero)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(zero, zero), complex(nan, nan)}, + {complex(nan, zero), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(zero, 1), complex(nan, nan)}, + {complex(nan, zero), complex(zero, -1), complex(nan, nan)}, + {complex(nan, zero), complex(zero, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(zero, zero), complex(nan, nan)}, + {complex(nan, zero), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(zero, 1), complex(nan, nan)}, + {complex(nan, zero), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, zero), complex(zero, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(1, zero), complex(nan, nan)}, + {complex(nan, zero), complex(1, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(1, 1), complex(nan, nan)}, + {complex(nan, zero), complex(1, -1), complex(nan, nan)}, + {complex(nan, zero), complex(1, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(-1, zero), complex(nan, nan)}, + {complex(nan, zero), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(-1, 1), complex(nan, nan)}, + {complex(nan, zero), complex(-1, -1), complex(nan, nan)}, + {complex(nan, zero), complex(-1, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(2, zero), complex(nan, nan)}, + {complex(nan, zero), complex(2, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(2, 1), complex(nan, nan)}, + {complex(nan, zero), complex(2, -1), complex(nan, nan)}, + {complex(nan, zero), complex(2, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, zero), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(nan, 1), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -1), complex(nan, nan)}, + {complex(nan, zero), complex(nan, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(inf, zero), complex(nan, nan)}, + {complex(nan, zero), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(inf, 1), complex(nan, nan)}, + {complex(nan, zero), complex(inf, -1), complex(nan, nan)}, + {complex(nan, zero), complex(inf, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, zero), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, zero), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, zero), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, zero), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, zero), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(zero, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(1, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(1, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(1, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(1, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(1, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(-1, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(-1, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(-1, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(-1, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(2, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(2, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(2, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(2, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(2, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -zero), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -zero), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -zero), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -zero), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -zero), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(zero, zero), complex(nan, inf)}, + {complex(nan, 1), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, 1), complex(zero, 1), complex(nan, nan)}, + {complex(nan, 1), complex(zero, -1), complex(nan, nan)}, + {complex(nan, 1), complex(zero, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(zero, zero), complex(nan, inf)}, + {complex(nan, 1), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, 1), complex(zero, 1), complex(nan, nan)}, + {complex(nan, 1), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, 1), complex(zero, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(1, zero), complex(nan, nan)}, + {complex(nan, 1), complex(1, -zero), complex(nan, nan)}, + {complex(nan, 1), complex(1, 1), complex(nan, nan)}, + {complex(nan, 1), complex(1, -1), complex(nan, nan)}, + {complex(nan, 1), complex(1, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(-1, zero), complex(nan, nan)}, + {complex(nan, 1), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, 1), complex(-1, 1), complex(nan, nan)}, + {complex(nan, 1), complex(-1, -1), complex(nan, nan)}, + {complex(nan, 1), complex(-1, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(2, zero), complex(nan, nan)}, + {complex(nan, 1), complex(2, -zero), complex(nan, nan)}, + {complex(nan, 1), complex(2, 1), complex(nan, nan)}, + {complex(nan, 1), complex(2, -1), complex(nan, nan)}, + {complex(nan, 1), complex(2, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, zero), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, 1), complex(nan, 1), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -1), complex(nan, nan)}, + {complex(nan, 1), complex(nan, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(inf, zero), complex(nan, nan)}, + {complex(nan, 1), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, 1), complex(inf, 1), complex(nan, nan)}, + {complex(nan, 1), complex(inf, -1), complex(nan, nan)}, + {complex(nan, 1), complex(inf, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 1), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, 1), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, 1), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, 1), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, 1), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, 1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -1), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -1), complex(zero, 1), complex(nan, nan)}, + {complex(nan, -1), complex(zero, -1), complex(nan, nan)}, + {complex(nan, -1), complex(zero, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -1), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -1), complex(zero, 1), complex(nan, nan)}, + {complex(nan, -1), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, -1), complex(zero, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(1, zero), complex(nan, nan)}, + {complex(nan, -1), complex(1, -zero), complex(nan, nan)}, + {complex(nan, -1), complex(1, 1), complex(nan, nan)}, + {complex(nan, -1), complex(1, -1), complex(nan, nan)}, + {complex(nan, -1), complex(1, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(-1, zero), complex(nan, nan)}, + {complex(nan, -1), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, -1), complex(-1, 1), complex(nan, nan)}, + {complex(nan, -1), complex(-1, -1), complex(nan, nan)}, + {complex(nan, -1), complex(-1, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(2, zero), complex(nan, nan)}, + {complex(nan, -1), complex(2, -zero), complex(nan, nan)}, + {complex(nan, -1), complex(2, 1), complex(nan, nan)}, + {complex(nan, -1), complex(2, -1), complex(nan, nan)}, + {complex(nan, -1), complex(2, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -1), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -1), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -1), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -1), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -1), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -1), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -1), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -1), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -1), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -1), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -1), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -1), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -1), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(zero, zero), complex(nan, inf)}, + {complex(nan, 2), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, 2), complex(zero, 1), complex(nan, nan)}, + {complex(nan, 2), complex(zero, -1), complex(nan, nan)}, + {complex(nan, 2), complex(zero, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(zero, zero), complex(nan, inf)}, + {complex(nan, 2), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, 2), complex(zero, 1), complex(nan, nan)}, + {complex(nan, 2), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, 2), complex(zero, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(1, zero), complex(nan, nan)}, + {complex(nan, 2), complex(1, -zero), complex(nan, nan)}, + {complex(nan, 2), complex(1, 1), complex(nan, nan)}, + {complex(nan, 2), complex(1, -1), complex(nan, nan)}, + {complex(nan, 2), complex(1, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(-1, zero), complex(nan, nan)}, + {complex(nan, 2), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, 2), complex(-1, 1), complex(nan, nan)}, + {complex(nan, 2), complex(-1, -1), complex(nan, nan)}, + {complex(nan, 2), complex(-1, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(2, zero), complex(nan, nan)}, + {complex(nan, 2), complex(2, -zero), complex(nan, nan)}, + {complex(nan, 2), complex(2, 1), complex(nan, nan)}, + {complex(nan, 2), complex(2, -1), complex(nan, nan)}, + {complex(nan, 2), complex(2, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, zero), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, 2), complex(nan, 1), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -1), complex(nan, nan)}, + {complex(nan, 2), complex(nan, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(inf, zero), complex(nan, nan)}, + {complex(nan, 2), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, 2), complex(inf, 1), complex(nan, nan)}, + {complex(nan, 2), complex(inf, -1), complex(nan, nan)}, + {complex(nan, 2), complex(inf, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, 2), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, 2), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, 2), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, 2), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, 2), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, 2), complex(nan, nan), complex(nan, nan)}, + {complex(nan, 2), complex(nan, inf), complex(nan, nan)}, + {complex(nan, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(zero, zero), complex(inf, nan)}, + {complex(inf, zero), complex(zero, -zero), complex(inf, nan)}, + {complex(inf, zero), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, zero), complex(zero, -1), complex(nan, inf)}, + {complex(inf, zero), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(zero, zero), complex(inf, nan)}, + {complex(inf, zero), complex(-zero, -zero), complex(-inf, nan)}, + {complex(inf, zero), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, zero), complex(-zero, -1), complex(nan, inf)}, + {complex(inf, zero), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(1, zero), complex(inf, nan)}, + {complex(inf, zero), complex(1, -zero), complex(inf, nan)}, + {complex(inf, zero), complex(1, 1), complex(inf, -inf)}, + {complex(inf, zero), complex(1, -1), complex(inf, inf)}, + {complex(inf, zero), complex(1, 2), complex(inf, -inf)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(-1, zero), complex(-inf, nan)}, + {complex(inf, zero), complex(-1, -zero), complex(-inf, nan)}, + {complex(inf, zero), complex(-1, 1), complex(-inf, -inf)}, + {complex(inf, zero), complex(-1, -1), complex(-inf, inf)}, + {complex(inf, zero), complex(-1, 2), complex(-inf, -inf)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(2, zero), complex(inf, nan)}, + {complex(inf, zero), complex(2, -zero), complex(inf, nan)}, + {complex(inf, zero), complex(2, 1), complex(inf, -inf)}, + {complex(inf, zero), complex(2, -1), complex(inf, inf)}, + {complex(inf, zero), complex(2, 2), complex(inf, -inf)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, zero), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(inf, zero), complex(nan, 1), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -1), complex(nan, nan)}, + {complex(inf, zero), complex(nan, 2), complex(nan, nan)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(inf, zero), complex(nan, nan)}, + {complex(inf, zero), complex(inf, -zero), complex(nan, nan)}, + {complex(inf, zero), complex(inf, 1), complex(nan, nan)}, + {complex(inf, zero), complex(inf, -1), complex(nan, nan)}, + {complex(inf, zero), complex(inf, 2), complex(nan, nan)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, zero), complex(-inf, zero), complex(nan, nan)}, + {complex(inf, zero), complex(-inf, -zero), complex(nan, nan)}, + {complex(inf, zero), complex(-inf, 1), complex(nan, nan)}, + {complex(inf, zero), complex(-inf, -1), complex(nan, nan)}, + {complex(inf, zero), complex(-inf, 2), complex(nan, nan)}, + {complex(inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(zero, zero), complex(inf, nan)}, + {complex(inf, -zero), complex(zero, -zero), complex(inf, nan)}, + {complex(inf, -zero), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, -zero), complex(zero, -1), complex(nan, inf)}, + {complex(inf, -zero), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(zero, zero), complex(inf, nan)}, + {complex(inf, -zero), complex(-zero, -zero), complex(-inf, nan)}, + {complex(inf, -zero), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, -zero), complex(-zero, -1), complex(nan, inf)}, + {complex(inf, -zero), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(1, zero), complex(inf, nan)}, + {complex(inf, -zero), complex(1, -zero), complex(inf, nan)}, + {complex(inf, -zero), complex(1, 1), complex(inf, -inf)}, + {complex(inf, -zero), complex(1, -1), complex(inf, inf)}, + {complex(inf, -zero), complex(1, 2), complex(inf, -inf)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(-1, zero), complex(-inf, nan)}, + {complex(inf, -zero), complex(-1, -zero), complex(-inf, nan)}, + {complex(inf, -zero), complex(-1, 1), complex(-inf, -inf)}, + {complex(inf, -zero), complex(-1, -1), complex(-inf, inf)}, + {complex(inf, -zero), complex(-1, 2), complex(-inf, -inf)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(2, zero), complex(inf, nan)}, + {complex(inf, -zero), complex(2, -zero), complex(inf, nan)}, + {complex(inf, -zero), complex(2, 1), complex(inf, -inf)}, + {complex(inf, -zero), complex(2, -1), complex(inf, inf)}, + {complex(inf, -zero), complex(2, 2), complex(inf, -inf)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(inf, zero), complex(nan, nan)}, + {complex(inf, -zero), complex(inf, -zero), complex(nan, nan)}, + {complex(inf, -zero), complex(inf, 1), complex(nan, nan)}, + {complex(inf, -zero), complex(inf, -1), complex(nan, nan)}, + {complex(inf, -zero), complex(inf, 2), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -zero), complex(-inf, zero), complex(nan, nan)}, + {complex(inf, -zero), complex(-inf, -zero), complex(nan, nan)}, + {complex(inf, -zero), complex(-inf, 1), complex(nan, nan)}, + {complex(inf, -zero), complex(-inf, -1), complex(nan, nan)}, + {complex(inf, -zero), complex(-inf, 2), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(zero, zero), complex(inf, inf)}, + {complex(inf, 1), complex(zero, -zero), complex(inf, inf)}, + {complex(inf, 1), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, 1), complex(zero, -1), complex(nan, inf)}, + {complex(inf, 1), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(zero, zero), complex(inf, inf)}, + {complex(inf, 1), complex(-zero, -zero), complex(-inf, -inf)}, + {complex(inf, 1), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, 1), complex(-zero, -1), complex(nan, inf)}, + {complex(inf, 1), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(1, zero), complex(inf, nan)}, + {complex(inf, 1), complex(1, -zero), complex(inf, nan)}, + {complex(inf, 1), complex(1, 1), complex(inf, -inf)}, + {complex(inf, 1), complex(1, -1), complex(inf, inf)}, + {complex(inf, 1), complex(1, 2), complex(inf, -inf)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(-1, zero), complex(-inf, nan)}, + {complex(inf, 1), complex(-1, -zero), complex(-inf, nan)}, + {complex(inf, 1), complex(-1, 1), complex(-inf, -inf)}, + {complex(inf, 1), complex(-1, -1), complex(-inf, inf)}, + {complex(inf, 1), complex(-1, 2), complex(-inf, -inf)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(2, zero), complex(inf, nan)}, + {complex(inf, 1), complex(2, -zero), complex(inf, nan)}, + {complex(inf, 1), complex(2, 1), complex(inf, -inf)}, + {complex(inf, 1), complex(2, -1), complex(inf, inf)}, + {complex(inf, 1), complex(2, 2), complex(inf, -inf)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, zero), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(inf, 1), complex(nan, 1), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -1), complex(nan, nan)}, + {complex(inf, 1), complex(nan, 2), complex(nan, nan)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(inf, zero), complex(nan, nan)}, + {complex(inf, 1), complex(inf, -zero), complex(nan, nan)}, + {complex(inf, 1), complex(inf, 1), complex(nan, nan)}, + {complex(inf, 1), complex(inf, -1), complex(nan, nan)}, + {complex(inf, 1), complex(inf, 2), complex(nan, nan)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 1), complex(-inf, zero), complex(nan, nan)}, + {complex(inf, 1), complex(-inf, -zero), complex(nan, nan)}, + {complex(inf, 1), complex(-inf, 1), complex(nan, nan)}, + {complex(inf, 1), complex(-inf, -1), complex(nan, nan)}, + {complex(inf, 1), complex(-inf, 2), complex(nan, nan)}, + {complex(inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(zero, zero), complex(inf, -inf)}, + {complex(inf, -1), complex(zero, -zero), complex(inf, -inf)}, + {complex(inf, -1), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, -1), complex(zero, -1), complex(nan, inf)}, + {complex(inf, -1), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(zero, zero), complex(inf, -inf)}, + {complex(inf, -1), complex(-zero, -zero), complex(-inf, inf)}, + {complex(inf, -1), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, -1), complex(-zero, -1), complex(nan, inf)}, + {complex(inf, -1), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(1, zero), complex(inf, nan)}, + {complex(inf, -1), complex(1, -zero), complex(inf, nan)}, + {complex(inf, -1), complex(1, 1), complex(inf, -inf)}, + {complex(inf, -1), complex(1, -1), complex(inf, inf)}, + {complex(inf, -1), complex(1, 2), complex(inf, -inf)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(-1, zero), complex(-inf, nan)}, + {complex(inf, -1), complex(-1, -zero), complex(-inf, nan)}, + {complex(inf, -1), complex(-1, 1), complex(-inf, -inf)}, + {complex(inf, -1), complex(-1, -1), complex(-inf, inf)}, + {complex(inf, -1), complex(-1, 2), complex(-inf, -inf)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(2, zero), complex(inf, nan)}, + {complex(inf, -1), complex(2, -zero), complex(inf, nan)}, + {complex(inf, -1), complex(2, 1), complex(inf, -inf)}, + {complex(inf, -1), complex(2, -1), complex(inf, inf)}, + {complex(inf, -1), complex(2, 2), complex(inf, -inf)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, zero), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(inf, -1), complex(nan, 1), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -1), complex(nan, nan)}, + {complex(inf, -1), complex(nan, 2), complex(nan, nan)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(inf, zero), complex(nan, nan)}, + {complex(inf, -1), complex(inf, -zero), complex(nan, nan)}, + {complex(inf, -1), complex(inf, 1), complex(nan, nan)}, + {complex(inf, -1), complex(inf, -1), complex(nan, nan)}, + {complex(inf, -1), complex(inf, 2), complex(nan, nan)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, -1), complex(-inf, zero), complex(nan, nan)}, + {complex(inf, -1), complex(-inf, -zero), complex(nan, nan)}, + {complex(inf, -1), complex(-inf, 1), complex(nan, nan)}, + {complex(inf, -1), complex(-inf, -1), complex(nan, nan)}, + {complex(inf, -1), complex(-inf, 2), complex(nan, nan)}, + {complex(inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(zero, zero), complex(inf, inf)}, + {complex(inf, 2), complex(zero, -zero), complex(inf, inf)}, + {complex(inf, 2), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, 2), complex(zero, -1), complex(nan, inf)}, + {complex(inf, 2), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(zero, zero), complex(inf, inf)}, + {complex(inf, 2), complex(-zero, -zero), complex(-inf, -inf)}, + {complex(inf, 2), complex(zero, 1), complex(nan, -inf)}, + {complex(inf, 2), complex(-zero, -1), complex(nan, inf)}, + {complex(inf, 2), complex(zero, 2), complex(nan, -inf)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(1, zero), complex(inf, nan)}, + {complex(inf, 2), complex(1, -zero), complex(inf, nan)}, + {complex(inf, 2), complex(1, 1), complex(inf, -inf)}, + {complex(inf, 2), complex(1, -1), complex(inf, inf)}, + {complex(inf, 2), complex(1, 2), complex(inf, -inf)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(-1, zero), complex(-inf, nan)}, + {complex(inf, 2), complex(-1, -zero), complex(-inf, nan)}, + {complex(inf, 2), complex(-1, 1), complex(-inf, -inf)}, + {complex(inf, 2), complex(-1, -1), complex(-inf, inf)}, + {complex(inf, 2), complex(-1, 2), complex(-inf, -inf)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(2, zero), complex(inf, nan)}, + {complex(inf, 2), complex(2, -zero), complex(inf, nan)}, + {complex(inf, 2), complex(2, 1), complex(inf, -inf)}, + {complex(inf, 2), complex(2, -1), complex(inf, inf)}, + {complex(inf, 2), complex(2, 2), complex(inf, -inf)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, zero), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(inf, 2), complex(nan, 1), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -1), complex(nan, nan)}, + {complex(inf, 2), complex(nan, 2), complex(nan, nan)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(inf, zero), complex(nan, nan)}, + {complex(inf, 2), complex(inf, -zero), complex(nan, nan)}, + {complex(inf, 2), complex(inf, 1), complex(nan, nan)}, + {complex(inf, 2), complex(inf, -1), complex(nan, nan)}, + {complex(inf, 2), complex(inf, 2), complex(nan, nan)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(inf, 2), complex(-inf, zero), complex(nan, nan)}, + {complex(inf, 2), complex(-inf, -zero), complex(nan, nan)}, + {complex(inf, 2), complex(-inf, 1), complex(nan, nan)}, + {complex(inf, 2), complex(-inf, -1), complex(nan, nan)}, + {complex(inf, 2), complex(-inf, 2), complex(nan, nan)}, + {complex(inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-inf, zero), complex(zero, -zero), complex(-inf, nan)}, + {complex(-inf, zero), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, zero), complex(zero, -1), complex(nan, -inf)}, + {complex(-inf, zero), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-inf, zero), complex(-zero, -zero), complex(inf, nan)}, + {complex(-inf, zero), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, zero), complex(-zero, -1), complex(nan, -inf)}, + {complex(-inf, zero), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(1, zero), complex(-inf, nan)}, + {complex(-inf, zero), complex(1, -zero), complex(-inf, nan)}, + {complex(-inf, zero), complex(1, 1), complex(-inf, inf)}, + {complex(-inf, zero), complex(1, -1), complex(-inf, -inf)}, + {complex(-inf, zero), complex(1, 2), complex(-inf, inf)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(-1, zero), complex(inf, nan)}, + {complex(-inf, zero), complex(-1, -zero), complex(inf, nan)}, + {complex(-inf, zero), complex(-1, 1), complex(inf, inf)}, + {complex(-inf, zero), complex(-1, -1), complex(inf, -inf)}, + {complex(-inf, zero), complex(-1, 2), complex(inf, inf)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(2, zero), complex(-inf, nan)}, + {complex(-inf, zero), complex(2, -zero), complex(-inf, nan)}, + {complex(-inf, zero), complex(2, 1), complex(-inf, inf)}, + {complex(-inf, zero), complex(2, -1), complex(-inf, -inf)}, + {complex(-inf, zero), complex(2, 2), complex(-inf, inf)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, zero), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -zero), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, 1), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -1), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, 2), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(inf, zero), complex(nan, nan)}, + {complex(-inf, zero), complex(inf, -zero), complex(nan, nan)}, + {complex(-inf, zero), complex(inf, 1), complex(nan, nan)}, + {complex(-inf, zero), complex(inf, -1), complex(nan, nan)}, + {complex(-inf, zero), complex(inf, 2), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, zero), complex(-inf, zero), complex(nan, nan)}, + {complex(-inf, zero), complex(-inf, -zero), complex(nan, nan)}, + {complex(-inf, zero), complex(-inf, 1), complex(nan, nan)}, + {complex(-inf, zero), complex(-inf, -1), complex(nan, nan)}, + {complex(-inf, zero), complex(-inf, 2), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-inf, -zero), complex(zero, -zero), complex(-inf, nan)}, + {complex(-inf, -zero), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, -zero), complex(zero, -1), complex(nan, -inf)}, + {complex(-inf, -zero), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(zero, zero), complex(-inf, nan)}, + {complex(-inf, -zero), complex(-zero, -zero), complex(inf, nan)}, + {complex(-inf, -zero), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, -zero), complex(-zero, -1), complex(nan, -inf)}, + {complex(-inf, -zero), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(1, zero), complex(-inf, nan)}, + {complex(-inf, -zero), complex(1, -zero), complex(-inf, nan)}, + {complex(-inf, -zero), complex(1, 1), complex(-inf, inf)}, + {complex(-inf, -zero), complex(1, -1), complex(-inf, -inf)}, + {complex(-inf, -zero), complex(1, 2), complex(-inf, inf)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(-1, zero), complex(inf, nan)}, + {complex(-inf, -zero), complex(-1, -zero), complex(inf, nan)}, + {complex(-inf, -zero), complex(-1, 1), complex(inf, inf)}, + {complex(-inf, -zero), complex(-1, -1), complex(inf, -inf)}, + {complex(-inf, -zero), complex(-1, 2), complex(inf, inf)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(2, zero), complex(-inf, nan)}, + {complex(-inf, -zero), complex(2, -zero), complex(-inf, nan)}, + {complex(-inf, -zero), complex(2, 1), complex(-inf, inf)}, + {complex(-inf, -zero), complex(2, -1), complex(-inf, -inf)}, + {complex(-inf, -zero), complex(2, 2), complex(-inf, inf)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, zero), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -zero), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, 1), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -1), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, 2), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(inf, zero), complex(nan, nan)}, + {complex(-inf, -zero), complex(inf, -zero), complex(nan, nan)}, + {complex(-inf, -zero), complex(inf, 1), complex(nan, nan)}, + {complex(-inf, -zero), complex(inf, -1), complex(nan, nan)}, + {complex(-inf, -zero), complex(inf, 2), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(-inf, zero), complex(nan, nan)}, + {complex(-inf, -zero), complex(-inf, -zero), complex(nan, nan)}, + {complex(-inf, -zero), complex(-inf, 1), complex(nan, nan)}, + {complex(-inf, -zero), complex(-inf, -1), complex(nan, nan)}, + {complex(-inf, -zero), complex(-inf, 2), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -zero), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(zero, zero), complex(-inf, inf)}, + {complex(-inf, 1), complex(zero, -zero), complex(-inf, inf)}, + {complex(-inf, 1), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, 1), complex(zero, -1), complex(nan, -inf)}, + {complex(-inf, 1), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(zero, zero), complex(-inf, inf)}, + {complex(-inf, 1), complex(-zero, -zero), complex(inf, -inf)}, + {complex(-inf, 1), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, 1), complex(-zero, -1), complex(nan, -inf)}, + {complex(-inf, 1), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(1, zero), complex(-inf, nan)}, + {complex(-inf, 1), complex(1, -zero), complex(-inf, nan)}, + {complex(-inf, 1), complex(1, 1), complex(-inf, inf)}, + {complex(-inf, 1), complex(1, -1), complex(-inf, -inf)}, + {complex(-inf, 1), complex(1, 2), complex(-inf, inf)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(-1, zero), complex(inf, nan)}, + {complex(-inf, 1), complex(-1, -zero), complex(inf, nan)}, + {complex(-inf, 1), complex(-1, 1), complex(inf, inf)}, + {complex(-inf, 1), complex(-1, -1), complex(inf, -inf)}, + {complex(-inf, 1), complex(-1, 2), complex(inf, inf)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(2, zero), complex(-inf, nan)}, + {complex(-inf, 1), complex(2, -zero), complex(-inf, nan)}, + {complex(-inf, 1), complex(2, 1), complex(-inf, inf)}, + {complex(-inf, 1), complex(2, -1), complex(-inf, -inf)}, + {complex(-inf, 1), complex(2, 2), complex(-inf, inf)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, zero), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -zero), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, 1), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -1), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, 2), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(inf, zero), complex(nan, nan)}, + {complex(-inf, 1), complex(inf, -zero), complex(nan, nan)}, + {complex(-inf, 1), complex(inf, 1), complex(nan, nan)}, + {complex(-inf, 1), complex(inf, -1), complex(nan, nan)}, + {complex(-inf, 1), complex(inf, 2), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 1), complex(-inf, zero), complex(nan, nan)}, + {complex(-inf, 1), complex(-inf, -zero), complex(nan, nan)}, + {complex(-inf, 1), complex(-inf, 1), complex(nan, nan)}, + {complex(-inf, 1), complex(-inf, -1), complex(nan, nan)}, + {complex(-inf, 1), complex(-inf, 2), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(zero, zero), complex(-inf, -inf)}, + {complex(-inf, -1), complex(zero, -zero), complex(-inf, -inf)}, + {complex(-inf, -1), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, -1), complex(zero, -1), complex(nan, -inf)}, + {complex(-inf, -1), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(zero, zero), complex(-inf, -inf)}, + {complex(-inf, -1), complex(-zero, -zero), complex(inf, inf)}, + {complex(-inf, -1), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, -1), complex(-zero, -1), complex(nan, -inf)}, + {complex(-inf, -1), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(1, zero), complex(-inf, nan)}, + {complex(-inf, -1), complex(1, -zero), complex(-inf, nan)}, + {complex(-inf, -1), complex(1, 1), complex(-inf, inf)}, + {complex(-inf, -1), complex(1, -1), complex(-inf, -inf)}, + {complex(-inf, -1), complex(1, 2), complex(-inf, inf)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(-1, zero), complex(inf, nan)}, + {complex(-inf, -1), complex(-1, -zero), complex(inf, nan)}, + {complex(-inf, -1), complex(-1, 1), complex(inf, inf)}, + {complex(-inf, -1), complex(-1, -1), complex(inf, -inf)}, + {complex(-inf, -1), complex(-1, 2), complex(inf, inf)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(2, zero), complex(-inf, nan)}, + {complex(-inf, -1), complex(2, -zero), complex(-inf, nan)}, + {complex(-inf, -1), complex(2, 1), complex(-inf, inf)}, + {complex(-inf, -1), complex(2, -1), complex(-inf, -inf)}, + {complex(-inf, -1), complex(2, 2), complex(-inf, inf)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, zero), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -zero), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, 1), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -1), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, 2), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(inf, zero), complex(nan, nan)}, + {complex(-inf, -1), complex(inf, -zero), complex(nan, nan)}, + {complex(-inf, -1), complex(inf, 1), complex(nan, nan)}, + {complex(-inf, -1), complex(inf, -1), complex(nan, nan)}, + {complex(-inf, -1), complex(inf, 2), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, -1), complex(-inf, zero), complex(nan, nan)}, + {complex(-inf, -1), complex(-inf, -zero), complex(nan, nan)}, + {complex(-inf, -1), complex(-inf, 1), complex(nan, nan)}, + {complex(-inf, -1), complex(-inf, -1), complex(nan, nan)}, + {complex(-inf, -1), complex(-inf, 2), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, -1), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(zero, zero), complex(-inf, inf)}, + {complex(-inf, 2), complex(zero, -zero), complex(-inf, inf)}, + {complex(-inf, 2), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, 2), complex(zero, -1), complex(nan, -inf)}, + {complex(-inf, 2), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(zero, zero), complex(-inf, inf)}, + {complex(-inf, 2), complex(-zero, -zero), complex(inf, -inf)}, + {complex(-inf, 2), complex(zero, 1), complex(nan, inf)}, + {complex(-inf, 2), complex(-zero, -1), complex(nan, -inf)}, + {complex(-inf, 2), complex(zero, 2), complex(nan, inf)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(1, zero), complex(-inf, nan)}, + {complex(-inf, 2), complex(1, -zero), complex(-inf, nan)}, + {complex(-inf, 2), complex(1, 1), complex(-inf, inf)}, + {complex(-inf, 2), complex(1, -1), complex(-inf, -inf)}, + {complex(-inf, 2), complex(1, 2), complex(-inf, inf)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(-1, zero), complex(inf, nan)}, + {complex(-inf, 2), complex(-1, -zero), complex(inf, nan)}, + {complex(-inf, 2), complex(-1, 1), complex(inf, inf)}, + {complex(-inf, 2), complex(-1, -1), complex(inf, -inf)}, + {complex(-inf, 2), complex(-1, 2), complex(inf, inf)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(2, zero), complex(-inf, nan)}, + {complex(-inf, 2), complex(2, -zero), complex(-inf, nan)}, + {complex(-inf, 2), complex(2, 1), complex(-inf, inf)}, + {complex(-inf, 2), complex(2, -1), complex(-inf, -inf)}, + {complex(-inf, 2), complex(2, 2), complex(-inf, inf)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, zero), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -zero), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, 1), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -1), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, 2), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(inf, zero), complex(nan, nan)}, + {complex(-inf, 2), complex(inf, -zero), complex(nan, nan)}, + {complex(-inf, 2), complex(inf, 1), complex(nan, nan)}, + {complex(-inf, 2), complex(inf, -1), complex(nan, nan)}, + {complex(-inf, 2), complex(inf, 2), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(-inf, 2), complex(-inf, zero), complex(nan, nan)}, + {complex(-inf, 2), complex(-inf, -zero), complex(nan, nan)}, + {complex(-inf, 2), complex(-inf, 1), complex(nan, nan)}, + {complex(-inf, 2), complex(-inf, -1), complex(nan, nan)}, + {complex(-inf, 2), complex(-inf, 2), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, nan), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, inf), complex(nan, nan)}, + {complex(-inf, 2), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(zero, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-zero, -1), complex(nan, nan)}, + {complex(nan, nan), complex(zero, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-1, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-1, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(2, zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(2, 1), complex(nan, nan)}, + {complex(nan, nan), complex(2, -1), complex(nan, nan)}, + {complex(nan, nan), complex(2, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -1), complex(nan, nan)}, + {complex(nan, nan), complex(nan, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, nan), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, nan), complex(nan, nan), complex(nan, nan)}, + {complex(nan, nan), complex(nan, inf), complex(nan, nan)}, + {complex(nan, nan), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(zero, zero), complex(nan, inf)}, + {complex(nan, inf), complex(-zero, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(zero, 1), complex(inf, nan)}, + {complex(nan, inf), complex(-zero, -1), complex(-inf, nan)}, + {complex(nan, inf), complex(zero, 2), complex(inf, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(1, zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(1, 1), complex(inf, inf)}, + {complex(nan, inf), complex(1, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(1, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-1, zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, -zero), complex(nan, -inf)}, + {complex(nan, inf), complex(-1, 1), complex(inf, -inf)}, + {complex(nan, inf), complex(-1, -1), complex(-inf, -inf)}, + {complex(nan, inf), complex(-1, 2), complex(inf, -inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(2, zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, -zero), complex(nan, inf)}, + {complex(nan, inf), complex(2, 1), complex(inf, inf)}, + {complex(nan, inf), complex(2, -1), complex(-inf, inf)}, + {complex(nan, inf), complex(2, 2), complex(inf, inf)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(zero, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(-zero, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(zero, 1), complex(-inf, nan)}, + {complex(nan, -inf), complex(-zero, -1), complex(inf, nan)}, + {complex(nan, -inf), complex(zero, 2), complex(-inf, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(1, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(1, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(1, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(1, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-1, zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, -zero), complex(nan, inf)}, + {complex(nan, -inf), complex(-1, 1), complex(-inf, inf)}, + {complex(nan, -inf), complex(-1, -1), complex(inf, inf)}, + {complex(nan, -inf), complex(-1, 2), complex(-inf, inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(2, zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, -zero), complex(nan, -inf)}, + {complex(nan, -inf), complex(2, 1), complex(-inf, -inf)}, + {complex(nan, -inf), complex(2, -1), complex(inf, -inf)}, + {complex(nan, -inf), complex(2, 2), complex(-inf, -inf)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -zero), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, -1), complex(nan, nan)}, + {complex(nan, -inf), complex(-inf, 2), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, nan), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, inf), complex(nan, nan)}, + {complex(nan, -inf), complex(nan, -inf), complex(nan, nan)}, } |