Skip to main content

tfhe_fft/
unordered.rs

1//! Unordered FFT module.
2//!
3//! This module computes the forward or inverse FFT in a similar fashion to the ordered module,
4//! with two crucial differences.
5//! Given an FFT plan, the forward transform takes its inputs in standard order, and outputs the
6//! forward FFT terms in an unspecified order. And the backward transform takes its inputs in the
7//! aforementioned order, and outputs the inverse FFT in the standard order.
8
9use crate::{
10    c64,
11    dif2::{split_2, split_mut_2},
12    dif4::split_mut_4,
13    dif8::split_mut_8,
14    fft_simd::{init_wt, sincospi64, FftSimd, FftSimdExt, Pod},
15    ordered::FftAlgo,
16};
17use aligned_vec::{avec, ABox, CACHELINE_ALIGN};
18#[cfg(feature = "std")]
19use core::time::Duration;
20#[cfg(feature = "std")]
21use dyn_stack::PodBuffer;
22use dyn_stack::{PodStack, StackReq};
23
24#[inline(always)]
25fn fwd_butterfly_x2<c64xN: Pod>(
26    simd: impl FftSimd<c64xN>,
27    z0: c64xN,
28    z1: c64xN,
29    w1: c64xN,
30) -> (c64xN, c64xN) {
31    (simd.add(z0, z1), simd.mul(w1, simd.sub(z0, z1)))
32}
33
34#[inline(always)]
35fn inv_butterfly_x2<c64xN: Pod>(
36    simd: impl FftSimd<c64xN>,
37    z0: c64xN,
38    z1: c64xN,
39    w1: c64xN,
40) -> (c64xN, c64xN) {
41    let z1 = simd.mul(w1, z1);
42    (simd.add(z0, z1), simd.sub(z0, z1))
43}
44
45#[inline(always)]
46fn fwd_butterfly_x4<c64xN: Pod>(
47    simd: impl FftSimd<c64xN>,
48    z0: c64xN,
49    z1: c64xN,
50    z2: c64xN,
51    z3: c64xN,
52    w1: c64xN,
53    w2: c64xN,
54    w3: c64xN,
55) -> (c64xN, c64xN, c64xN, c64xN) {
56    let z0p2 = simd.add(z0, z2);
57    let z0m2 = simd.sub(z0, z2);
58    let z1p3 = simd.add(z1, z3);
59    let jz1m3 = simd.mul_j(true, simd.sub(z1, z3));
60
61    (
62        simd.add(z0p2, z1p3),
63        simd.mul(w1, simd.sub(z0m2, jz1m3)),
64        simd.mul(w2, simd.sub(z0p2, z1p3)),
65        simd.mul(w3, simd.add(z0m2, jz1m3)),
66    )
67}
68
69#[inline(always)]
70fn inv_butterfly_x4<c64xN: Pod>(
71    simd: impl FftSimd<c64xN>,
72    z0: c64xN,
73    z1: c64xN,
74    z2: c64xN,
75    z3: c64xN,
76    w1: c64xN,
77    w2: c64xN,
78    w3: c64xN,
79) -> (c64xN, c64xN, c64xN, c64xN) {
80    let z1 = simd.mul(w1, z1);
81    let z2 = simd.mul(w2, z2);
82    let z3 = simd.mul(w3, z3);
83
84    let z0p2 = simd.add(z0, z2);
85    let z0m2 = simd.sub(z0, z2);
86    let z1p3 = simd.add(z1, z3);
87    let jz1m3 = simd.mul_j(false, simd.sub(z1, z3));
88
89    (
90        simd.add(z0p2, z1p3),
91        simd.sub(z0m2, jz1m3),
92        simd.sub(z0p2, z1p3),
93        simd.add(z0m2, jz1m3),
94    )
95}
96
97#[inline(always)]
98fn fwd_butterfly_x8<c64xN: Pod>(
99    simd: impl FftSimd<c64xN>,
100    z0: c64xN,
101    z1: c64xN,
102    z2: c64xN,
103    z3: c64xN,
104    z4: c64xN,
105    z5: c64xN,
106    z6: c64xN,
107    z7: c64xN,
108    w1: c64xN,
109    w2: c64xN,
110    w3: c64xN,
111    w4: c64xN,
112    w5: c64xN,
113    w6: c64xN,
114    w7: c64xN,
115) -> (c64xN, c64xN, c64xN, c64xN, c64xN, c64xN, c64xN, c64xN) {
116    let z0p4 = simd.add(z0, z4);
117    let z0m4 = simd.sub(z0, z4);
118    let z2p6 = simd.add(z2, z6);
119    let jz2m6 = simd.mul_j(true, simd.sub(z2, z6));
120
121    let z1p5 = simd.add(z1, z5);
122    let z1m5 = simd.sub(z1, z5);
123    let z3p7 = simd.add(z3, z7);
124    let jz3m7 = simd.mul_j(true, simd.sub(z3, z7));
125
126    // z0 + z2 + z4 + z6
127    let t0 = simd.add(z0p4, z2p6);
128    // z1 + z3 + z5 + z7
129    let t1 = simd.add(z1p5, z3p7);
130    // z0 + w4z2 + z4 + w4z6
131    let t2 = simd.sub(z0p4, z2p6);
132    // w2z1 + w6z3 + w2z5 + w6z7
133    let t3 = simd.mul_j(true, simd.sub(z1p5, z3p7));
134    // z0 + w2z2 + z4 + w6z6
135    let t4 = simd.sub(z0m4, jz2m6);
136    // w1z1 + w3z3 + w5z5 + w7z7
137    let t5 = simd.mul_exp_neg_pi_over_8(true, simd.sub(z1m5, jz3m7));
138    // z0 + w2z2 + w4z4 + w6z6
139    let t6 = simd.add(z0m4, jz2m6);
140    // w7z1 + w1z3 + w3z5 + w5z7
141    let t7 = simd.mul_exp_pi_over_8(true, simd.add(z1m5, jz3m7));
142
143    (
144        simd.add(t0, t1),
145        simd.mul(w1, simd.add(t4, t5)),
146        simd.mul(w2, simd.sub(t2, t3)),
147        simd.mul(w3, simd.sub(t6, t7)),
148        simd.mul(w4, simd.sub(t0, t1)),
149        simd.mul(w5, simd.sub(t4, t5)),
150        simd.mul(w6, simd.add(t2, t3)),
151        simd.mul(w7, simd.add(t6, t7)),
152    )
153}
154
155#[inline(always)]
156fn inv_butterfly_x8<c64xN: Pod>(
157    simd: impl FftSimd<c64xN>,
158    z0: c64xN,
159    z1: c64xN,
160    z2: c64xN,
161    z3: c64xN,
162    z4: c64xN,
163    z5: c64xN,
164    z6: c64xN,
165    z7: c64xN,
166    w1: c64xN,
167    w2: c64xN,
168    w3: c64xN,
169    w4: c64xN,
170    w5: c64xN,
171    w6: c64xN,
172    w7: c64xN,
173) -> (c64xN, c64xN, c64xN, c64xN, c64xN, c64xN, c64xN, c64xN) {
174    let z1 = simd.mul(w1, z1);
175    let z2 = simd.mul(w2, z2);
176    let z3 = simd.mul(w3, z3);
177    let z4 = simd.mul(w4, z4);
178    let z5 = simd.mul(w5, z5);
179    let z6 = simd.mul(w6, z6);
180    let z7 = simd.mul(w7, z7);
181
182    let z0p4 = simd.add(z0, z4);
183    let z0m4 = simd.sub(z0, z4);
184    let z2p6 = simd.add(z2, z6);
185    let jz2m6 = simd.mul_j(false, simd.sub(z2, z6));
186
187    let z1p5 = simd.add(z1, z5);
188    let z1m5 = simd.sub(z1, z5);
189    let z3p7 = simd.add(z3, z7);
190    let jz3m7 = simd.mul_j(false, simd.sub(z3, z7));
191
192    // z0 + z2 + z4 + z6
193    let t0 = simd.add(z0p4, z2p6);
194    // z1 + z3 + z5 + z7
195    let t1 = simd.add(z1p5, z3p7);
196    // z0 + w4z2 + z4 + w4z6
197    let t2 = simd.sub(z0p4, z2p6);
198    // w2z1 + w6z3 + w2z5 + w6z7
199    let t3 = simd.mul_j(false, simd.sub(z1p5, z3p7));
200    // z0 + w2z2 + z4 + w6z6
201    let t4 = simd.sub(z0m4, jz2m6);
202    // w1z1 + w3z3 + w5z5 + w7z7
203    let t5 = simd.mul_exp_neg_pi_over_8(false, simd.sub(z1m5, jz3m7));
204    // z0 + w2z2 + w4z4 + w6z6
205    let t6 = simd.add(z0m4, jz2m6);
206    // w7z1 + w1z3 + w3z5 + w5z7
207    let t7 = simd.mul_exp_pi_over_8(false, simd.add(z1m5, jz3m7));
208
209    (
210        simd.add(t0, t1),
211        simd.add(t4, t5),
212        simd.sub(t2, t3),
213        simd.sub(t6, t7),
214        simd.sub(t0, t1),
215        simd.sub(t4, t5),
216        simd.add(t2, t3),
217        simd.add(t6, t7),
218    )
219}
220
221#[inline(always)]
222fn fwd_process_x2<c64xN: Pod>(simd: impl FftSimd<c64xN>, z: &mut [c64], w: &[c64]) {
223    let z: &mut [c64xN] = bytemuck::cast_slice_mut(z);
224    let w: &[[c64xN; 1]] = bytemuck::cast_slice(w);
225    let (z0, z1) = split_mut_2(z);
226
227    for (z0, z1, &[w1]) in izip!(z0, z1, w) {
228        (*z0, *z1) = fwd_butterfly_x2(simd, *z0, *z1, w1);
229    }
230}
231
232#[inline(always)]
233fn inv_process_x2<c64xN: Pod>(simd: impl FftSimd<c64xN>, z: &mut [c64], w: &[c64]) {
234    let z: &mut [c64xN] = bytemuck::cast_slice_mut(z);
235    let w: &[[c64xN; 1]] = bytemuck::cast_slice(w);
236    let (z0, z1) = split_mut_2(z);
237
238    for (z0, z1, &[w1]) in izip!(z0, z1, w) {
239        (*z0, *z1) = inv_butterfly_x2(simd, *z0, *z1, w1);
240    }
241}
242
243#[inline(always)]
244fn fwd_process_x4<c64xN: Pod>(simd: impl FftSimd<c64xN>, z: &mut [c64], w: &[c64]) {
245    let z: &mut [c64xN] = bytemuck::cast_slice_mut(z);
246    let w: &[[c64xN; 3]] = bytemuck::cast_slice(w);
247    let (z0, z1, z2, z3) = split_mut_4(z);
248
249    for (z0, z1, z2, z3, &[w1, w2, w3]) in izip!(z0, z1, z2, z3, w) {
250        (*z0, *z2, *z1, *z3) = fwd_butterfly_x4(simd, *z0, *z1, *z2, *z3, w1, w2, w3);
251    }
252}
253
254#[inline(always)]
255fn inv_process_x4<c64xN: Pod>(simd: impl FftSimd<c64xN>, z: &mut [c64], w: &[c64]) {
256    let z: &mut [c64xN] = bytemuck::cast_slice_mut(z);
257    let w: &[[c64xN; 3]] = bytemuck::cast_slice(w);
258    let (z0, z1, z2, z3) = split_mut_4(z);
259
260    for (z0, z1, z2, z3, &[w1, w2, w3]) in izip!(z0, z1, z2, z3, w) {
261        (*z0, *z1, *z2, *z3) = inv_butterfly_x4(simd, *z0, *z2, *z1, *z3, w1, w2, w3);
262    }
263}
264
265#[inline(always)]
266fn fwd_process_x8<c64xN: Pod>(simd: impl FftSimd<c64xN>, z: &mut [c64], w: &[c64]) {
267    let z: &mut [c64xN] = bytemuck::cast_slice_mut(z);
268    let w: &[[c64xN; 7]] = bytemuck::cast_slice(w);
269    let (z0, z1, z2, z3, z4, z5, z6, z7) = split_mut_8(z);
270
271    for (z0, z1, z2, z3, z4, z5, z6, z7, &[w1, w2, w3, w4, w5, w6, w7]) in
272        izip!(z0, z1, z2, z3, z4, z5, z6, z7, w)
273    {
274        (*z0, *z4, *z2, *z6, *z1, *z5, *z3, *z7) = fwd_butterfly_x8(
275            simd, *z0, *z1, *z2, *z3, *z4, *z5, *z6, *z7, w1, w2, w3, w4, w5, w6, w7,
276        );
277    }
278}
279
280#[inline(always)]
281fn inv_process_x8<c64xN: Pod>(simd: impl FftSimd<c64xN>, z: &mut [c64], w: &[c64]) {
282    let z: &mut [c64xN] = bytemuck::cast_slice_mut(z);
283    let w: &[[c64xN; 7]] = bytemuck::cast_slice(w);
284    let (z0, z1, z2, z3, z4, z5, z6, z7) = split_mut_8(z);
285
286    for (z0, z1, z2, z3, z4, z5, z6, z7, &[w1, w2, w3, w4, w5, w6, w7]) in
287        izip!(z0, z1, z2, z3, z4, z5, z6, z7, w)
288    {
289        (*z0, *z1, *z2, *z3, *z4, *z5, *z6, *z7) = inv_butterfly_x8(
290            simd, *z0, *z4, *z2, *z6, *z1, *z5, *z3, *z7, w1, w2, w3, w4, w5, w6, w7,
291        );
292    }
293}
294
295macro_rules! dispatcher {
296    ($name: ident, $impl: ident) => {
297        fn $name() -> fn(&mut [c64], &[c64]) {
298            #[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
299            {
300                #[cfg(feature = "avx512")]
301                if pulp::x86::V4::try_new().is_some() {
302                    return |z, w| {
303                        let simd = pulp::x86::V4::try_new().unwrap();
304                        simd.vectorize(
305                            #[inline(always)]
306                            || $impl(simd, z, w),
307                        );
308                    };
309                }
310
311                if pulp::x86::V3::try_new().is_some() {
312                    return |z, w| {
313                        let simd = pulp::x86::V3::try_new().unwrap();
314                        simd.vectorize(
315                            #[inline(always)]
316                            || $impl(simd, z, w),
317                        );
318                    };
319                }
320            }
321
322            |z, w| $impl(crate::fft_simd::Scalar, z, w)
323        }
324    };
325}
326
327dispatcher!(get_fwd_process_x2, fwd_process_x2);
328dispatcher!(get_fwd_process_x4, fwd_process_x4);
329dispatcher!(get_fwd_process_x8, fwd_process_x8);
330
331dispatcher!(get_inv_process_x2, inv_process_x2);
332dispatcher!(get_inv_process_x4, inv_process_x4);
333dispatcher!(get_inv_process_x8, inv_process_x8);
334
335fn get_complex_per_reg() -> usize {
336    #[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
337    {
338        #[cfg(feature = "avx512")]
339        if let Some(simd) = pulp::x86::V4::try_new() {
340            return simd.lane_count();
341        }
342        if let Some(simd) = pulp::x86::V3::try_new() {
343            return simd.lane_count();
344        }
345    }
346    crate::fft_simd::Scalar.lane_count()
347}
348
349fn init_twiddles(
350    n: usize,
351    complex_per_reg: usize,
352    base_n: usize,
353    base_r: usize,
354    w: &mut [c64],
355    w_inv: &mut [c64],
356) {
357    let theta = 2.0 / n as f64;
358    if n <= base_n {
359        init_wt(base_r, n, w, w_inv);
360    } else {
361        let r = if n == 2 * base_n {
362            2
363        } else if n == 4 * base_n {
364            4
365        } else {
366            8
367        };
368
369        let m = n / r;
370        let (w, w_next) = w.split_at_mut((r - 1) * m);
371        let (w_inv_next, w_inv) = w_inv.split_at_mut(w_inv.len() - (r - 1) * m);
372
373        let mut p = 0;
374        while p < m {
375            for i in 0..complex_per_reg {
376                for k in 1..r {
377                    let (sk, ck) = sincospi64(theta * (k * (p + i)) as f64);
378                    let idx = (r - 1) * p + (k - 1) * complex_per_reg + i;
379                    w[idx] = c64 { re: ck, im: -sk };
380                    w_inv[idx] = c64 { re: ck, im: sk };
381                }
382            }
383
384            p += complex_per_reg;
385        }
386
387        init_twiddles(n / r, complex_per_reg, base_n, base_r, w_next, w_inv_next);
388    }
389}
390
391#[inline(never)]
392fn fwd_depth(
393    z: &mut [c64],
394    w: &[c64],
395    base_fn: fn(&mut [c64], &mut [c64], &[c64], &[c64]),
396    base_n: usize,
397    base_scratch: &mut [c64],
398    fwd_process_x2: fn(&mut [c64], &[c64]),
399    fwd_process_x4: fn(&mut [c64], &[c64]),
400    fwd_process_x8: fn(&mut [c64], &[c64]),
401) {
402    let n = z.len();
403    if n == base_n {
404        let (w_init, w) = split_2(w);
405        base_fn(z, base_scratch, w_init, w);
406    } else {
407        let r = if n == 2 * base_n {
408            2
409        } else if n == 4 * base_n {
410            4
411        } else {
412            8
413        };
414
415        let m = n / r;
416        let (w_head, w_tail) = w.split_at((r - 1) * m);
417
418        if n == 2 * base_n {
419            fwd_process_x2(z, w_head);
420        } else if n == 4 * base_n {
421            fwd_process_x4(z, w_head);
422        } else {
423            fwd_process_x8(z, w_head);
424        }
425
426        for z in z.chunks_exact_mut(m) {
427            fwd_depth(
428                z,
429                w_tail,
430                base_fn,
431                base_n,
432                base_scratch,
433                fwd_process_x2,
434                fwd_process_x4,
435                fwd_process_x8,
436            );
437        }
438    }
439}
440
441#[inline(never)]
442fn inv_depth(
443    z: &mut [c64],
444    w: &[c64],
445    base_fn: fn(&mut [c64], &mut [c64], &[c64], &[c64]),
446    base_n: usize,
447    base_scratch: &mut [c64],
448    inv_process_x2: fn(&mut [c64], &[c64]),
449    inv_process_x4: fn(&mut [c64], &[c64]),
450    inv_process_x8: fn(&mut [c64], &[c64]),
451) {
452    let n = z.len();
453
454    if n == base_n {
455        let (w_init, w) = split_2(w);
456        base_fn(z, base_scratch, w_init, w);
457    } else {
458        let r = if n == 2 * base_n {
459            2
460        } else if n == 4 * base_n {
461            4
462        } else {
463            8
464        };
465
466        let m = n / r;
467        let (w_head, w_tail) = w.split_at(w.len() - (r - 1) * m);
468        for z in z.chunks_exact_mut(m) {
469            inv_depth(
470                z,
471                w_head,
472                base_fn,
473                base_n,
474                base_scratch,
475                inv_process_x2,
476                inv_process_x4,
477                inv_process_x8,
478            );
479        }
480
481        if r == 2 {
482            inv_process_x2(z, w_tail);
483        } else if r == 4 {
484            inv_process_x4(z, w_tail);
485        } else {
486            inv_process_x8(z, w_tail);
487        }
488    }
489}
490
491/// Unordered FFT plan.
492///
493/// This type holds a forward and inverse FFT plan and twiddling factors for a specific size.
494/// The size must be a power of two.
495#[derive(Clone)]
496pub struct Plan {
497    monomial_twiddles: ABox<[c64]>,
498    indices: ABox<[usize]>,
499    twiddles: ABox<[c64]>,
500    twiddles_inv: ABox<[c64]>,
501    fwd_process_x2: fn(&mut [c64], &[c64]),
502    fwd_process_x4: fn(&mut [c64], &[c64]),
503    fwd_process_x8: fn(&mut [c64], &[c64]),
504    inv_process_x2: fn(&mut [c64], &[c64]),
505    inv_process_x4: fn(&mut [c64], &[c64]),
506    inv_process_x8: fn(&mut [c64], &[c64]),
507    base_n: usize,
508    base_fn_fwd: fn(&mut [c64], &mut [c64], &[c64], &[c64]),
509    base_fn_inv: fn(&mut [c64], &mut [c64], &[c64], &[c64]),
510    base_algo: FftAlgo,
511    n: usize,
512}
513
514impl core::fmt::Debug for Plan {
515    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
516        f.debug_struct("Plan")
517            .field("base_algo", &self.base_algo)
518            .field("base_size", &self.base_n)
519            .field("fft_size", &self.fft_size())
520            .finish()
521    }
522}
523
524/// Method for selecting the unordered FFT plan.
525#[derive(Clone, Copy, Debug)]
526pub enum Method {
527    /// Select the FFT plan by manually providing the underlying algorithm.
528    /// The unordered FFT works by using an internal ordered FFT plan, whose size and algorithm can
529    /// be specified by the user.
530    UserProvided { base_algo: FftAlgo, base_n: usize },
531    /// Select the FFT plan by measuring the running time of all the possible plans and selecting
532    /// the fastest one. The provided duration specifies how long the benchmark of each plan should
533    /// last.
534    #[cfg(feature = "std")]
535    #[cfg_attr(docsrs, doc(cfg(feature = "std")))]
536    Measure(Duration),
537}
538
539#[cfg(feature = "std")]
540fn measure_fastest_scratch(n: usize) -> StackReq {
541    if n <= 512 {
542        crate::ordered::measure_fastest_scratch(n)
543    } else {
544        let base_n = 4096;
545        crate::ordered::measure_fastest_scratch(base_n)
546            .and(StackReq::new_aligned::<c64>(n + base_n, CACHELINE_ALIGN)) // twiddles
547            .and(StackReq::new_aligned::<c64>(n, CACHELINE_ALIGN)) // buf
548            .and(StackReq::new_aligned::<c64>(base_n, CACHELINE_ALIGN)) // scratch
549    }
550}
551
552#[cfg(feature = "std")]
553fn measure_fastest(
554    mut min_bench_duration_per_algo: Duration,
555    n: usize,
556    stack: &mut PodStack,
557) -> (FftAlgo, usize, Duration) {
558    const MIN_DURATION: Duration = Duration::from_millis(1);
559    min_bench_duration_per_algo = min_bench_duration_per_algo.max(MIN_DURATION);
560
561    if n <= 256 {
562        let (algo, duration) =
563            crate::ordered::measure_fastest(min_bench_duration_per_algo, n, stack);
564        (algo, n, duration)
565    } else {
566        // bench
567
568        let bases = [512, 1024];
569        let mut algos: [Option<FftAlgo>; 4] = [None; 4];
570        let mut avg_durations: [Option<Duration>; 4] = [None; 4];
571        let fwd_process_x2 = get_fwd_process_x2();
572        let fwd_process_x4 = get_fwd_process_x4();
573        let fwd_process_x8 = get_fwd_process_x8();
574
575        let mut n_algos = 0;
576        for (i, base_n) in bases.into_iter().enumerate() {
577            if n < base_n {
578                break;
579            }
580
581            n_algos += 1;
582
583            // we'll measure the corresponding plan
584            let (base_algo, duration) =
585                crate::ordered::measure_fastest(min_bench_duration_per_algo, base_n, stack);
586
587            algos[i] = Some(base_algo);
588
589            if n == base_n {
590                avg_durations[i] = Some(duration);
591                continue;
592            }
593
594            // get the forward base algo
595            let base_fn = crate::ordered::get_fn_ptr(base_algo, base_n)[0];
596
597            let f = |_| c64 { re: 0.0, im: 0.0 };
598            let align = CACHELINE_ALIGN;
599            let (w, stack) = stack.make_aligned_with::<c64>(n + base_n, align, f);
600            let (scratch, stack) = stack.make_aligned_with::<c64>(base_n, align, f);
601            let (z, _) = stack.make_aligned_with::<c64>(n, align, f);
602
603            let n_runs = min_bench_duration_per_algo.as_secs_f64()
604                / (duration.as_secs_f64() * (n / base_n) as f64);
605
606            let n_runs = n_runs.ceil() as u32;
607
608            // For wasm we have a dedicated implementation going through js-sys
609            use crate::time::Instant;
610            let now = Instant::now();
611            for _ in 0..n_runs {
612                fwd_depth(
613                    z,
614                    w,
615                    base_fn,
616                    base_n,
617                    scratch,
618                    fwd_process_x2,
619                    fwd_process_x4,
620                    fwd_process_x8,
621                );
622            }
623            let duration = now.elapsed();
624            avg_durations[i] = Some(duration / n_runs);
625        }
626
627        let best_time = avg_durations[..n_algos].iter().min().unwrap().unwrap();
628        let best_index = avg_durations[..n_algos]
629            .iter()
630            .position(|elem| elem.unwrap() == best_time)
631            .unwrap();
632
633        (algos[best_index].unwrap(), bases[best_index], best_time)
634    }
635}
636
637impl Plan {
638    /// Returns a new FFT plan for the given vector size, selected by the provided method.
639    ///
640    /// # Panics
641    ///
642    /// - Panics if `n` is not a power of two.
643    /// - If the method is user-provided, panics if `n` is not equal to the base ordered FFT size,
644    /// and the base FFT size is less than `32`.
645    ///
646    /// # Example
647    #[cfg_attr(feature = "std", doc = " ```")]
648    #[cfg_attr(not(feature = "std"), doc = " ```ignore")]
649    /// use tfhe_fft::unordered::{Method, Plan};
650    /// use core::time::Duration;
651    ///
652    /// let plan = Plan::new(4, Method::Measure(Duration::from_millis(10)));
653    /// ```
654    pub fn new(n: usize, method: Method) -> Self {
655        assert!(n.is_power_of_two());
656
657        let (base_algo, base_n) = match method {
658            Method::UserProvided { base_algo, base_n } => {
659                assert!(base_n.is_power_of_two());
660                assert!(base_n <= n);
661                if base_n != n {
662                    assert!(base_n >= 32);
663                }
664                assert!(base_n.trailing_zeros() <= 10);
665                (base_algo, base_n)
666            }
667
668            #[cfg(feature = "std")]
669            Method::Measure(duration) => {
670                let mut buf = PodBuffer::try_new(measure_fastest_scratch(n)).unwrap();
671                let (algo, base_n, _) = measure_fastest(duration, n, PodStack::new(&mut buf));
672                (algo, base_n)
673            }
674        };
675
676        let [base_fn_fwd, base_fn_inv] = crate::ordered::get_fn_ptr(base_algo, base_n);
677
678        let nan = c64 {
679            re: f64::NAN,
680            im: f64::NAN,
681        };
682        let mut twiddles = avec![nan; n + base_n].into_boxed_slice();
683        let mut twiddles_inv = avec![nan; n + base_n].into_boxed_slice();
684
685        use crate::ordered::FftAlgo::*;
686        let base_r = match base_algo {
687            Dif2 | Dit2 => 2,
688            Dif4 | Dit4 => 4,
689            Dif8 | Dit8 => 8,
690            Dif16 | Dit16 => 16,
691        };
692
693        init_twiddles(
694            n,
695            get_complex_per_reg(),
696            base_n,
697            base_r,
698            &mut twiddles,
699            &mut twiddles_inv,
700        );
701
702        let nan = c64 {
703            re: f64::NAN,
704            im: f64::NAN,
705        };
706        let mut monomial_twiddles = avec![nan; n].into_boxed_slice();
707
708        let theta = -2.0 / n as f64;
709        for (i, twid) in monomial_twiddles.iter_mut().enumerate() {
710            let (s, c) = sincospi64(theta * i as f64);
711            *twid = c64 { re: c, im: s };
712        }
713        let mut indices = avec![0usize; n].into_boxed_slice();
714
715        let nbits = n.trailing_zeros();
716        let base_nbits = base_n.trailing_zeros();
717
718        for (i, idx) in indices.iter_mut().enumerate() {
719            *idx = bit_rev_twice_inv(nbits, base_nbits, i);
720        }
721
722        Self {
723            twiddles,
724            twiddles_inv,
725            fwd_process_x2: get_fwd_process_x2(),
726            fwd_process_x4: get_fwd_process_x4(),
727            fwd_process_x8: get_fwd_process_x8(),
728            inv_process_x2: get_inv_process_x2(),
729            inv_process_x4: get_inv_process_x4(),
730            inv_process_x8: get_inv_process_x8(),
731            base_n,
732            base_fn_fwd,
733            base_fn_inv,
734            n,
735            base_algo,
736            monomial_twiddles,
737            indices,
738        }
739    }
740
741    /// Returns the vector size of the FFT.
742    ///
743    /// # Example
744    #[cfg_attr(feature = "std", doc = " ```")]
745    #[cfg_attr(not(feature = "std"), doc = " ```ignore")]
746    /// use tfhe_fft::unordered::{Method, Plan};
747    /// use core::time::Duration;
748    ///
749    /// let plan = Plan::new(4, Method::Measure(Duration::from_millis(10)));
750    /// assert_eq!(plan.fft_size(), 4);
751    /// ```
752    pub fn fft_size(&self) -> usize {
753        self.n
754    }
755
756    /// Returns the algorithm and size of the internal ordered FFT plan.
757    ///
758    /// # Example
759    ///
760    /// ```
761    /// use tfhe_fft::{
762    ///     ordered::FftAlgo,
763    ///     unordered::{Method, Plan},
764    /// };
765    ///
766    /// let plan = Plan::new(
767    ///     4,
768    ///     Method::UserProvided {
769    ///         base_algo: FftAlgo::Dif2,
770    ///         base_n: 4,
771    ///     },
772    /// );
773    /// assert_eq!(plan.algo(), (FftAlgo::Dif2, 4));
774    /// ```
775    pub fn algo(&self) -> (FftAlgo, usize) {
776        (self.base_algo, self.base_n)
777    }
778
779    /// Returns the size and alignment of the scratch memory needed to perform an FFT.
780    ///
781    /// # Example
782    #[cfg_attr(feature = "std", doc = " ```")]
783    #[cfg_attr(not(feature = "std"), doc = " ```ignore")]
784    /// use tfhe_fft::unordered::{Method, Plan};
785    /// use core::time::Duration;
786    ///
787    /// let plan = Plan::new(4, Method::Measure(Duration::from_millis(10)));
788    /// let scratch = plan.fft_scratch();
789    /// ```
790    pub fn fft_scratch(&self) -> StackReq {
791        StackReq::new_aligned::<c64>(self.algo().1, CACHELINE_ALIGN)
792    }
793
794    /// Performs a forward FFT in place, using the provided stack as scratch space.
795    ///
796    /// # Note
797    ///
798    /// The values in `buf` must be in standard order prior to calling this function.
799    /// When this function returns, the values in `buf` will contain the terms of the forward
800    /// transform in permuted order.
801    ///
802    /// # Example
803    #[cfg_attr(feature = "std", doc = " ```")]
804    #[cfg_attr(not(feature = "std"), doc = " ```ignore")]
805    /// use tfhe_fft::c64;
806    /// use tfhe_fft::unordered::{Method, Plan};
807    /// use dyn_stack::{PodStack, PodBuffer};
808    /// use core::time::Duration;
809    ///
810    /// let plan = Plan::new(4, Method::Measure(Duration::from_millis(10)));
811    ///
812    /// let mut memory = PodBuffer::try_new(plan.fft_scratch()).unwrap();
813    /// let stack = PodStack::new(&mut memory);
814    ///
815    /// let mut buf = [c64::default(); 4];
816    /// plan.fwd(&mut buf, stack);
817    /// ```
818    pub fn fwd(&self, buf: &mut [c64], stack: &mut PodStack) {
819        assert_eq!(self.fft_size(), buf.len());
820        let (scratch, _) = stack.make_aligned_raw::<c64>(self.algo().1, CACHELINE_ALIGN);
821        fwd_depth(
822            buf,
823            &self.twiddles,
824            self.base_fn_fwd,
825            self.base_n,
826            scratch,
827            self.fwd_process_x2,
828            self.fwd_process_x4,
829            self.fwd_process_x8,
830        );
831    }
832
833    /// Performs a forward FFT on the implicit polynomial `X^degree`, storing the result in `buf`.
834    /// The coefficients are permuted so that they're compatible with other FFTs produced by the
835    /// same plan.
836    pub fn fwd_monomial(&self, degree: usize, buf: &mut [c64]) {
837        struct Impl<'a> {
838            this: &'a Plan,
839            degree: usize,
840            buf: &'a mut [c64],
841        }
842
843        impl pulp::WithSimd for Impl<'_> {
844            type Output = ();
845
846            #[inline(always)]
847            fn with_simd<S: pulp::Simd>(self, simd: S) -> Self::Output {
848                let Self { this, degree, buf } = self;
849                let _ = simd;
850                assert_eq!(this.fft_size(), buf.len());
851                assert!(degree < this.fft_size());
852
853                let twiddles = &*this.monomial_twiddles;
854                let indices = &*this.indices;
855
856                let n = this.fft_size();
857                let base_n = this.base_n;
858                let n_mask = n - 1;
859
860                assert!(n.is_power_of_two());
861                assert_eq!(twiddles.len(), n);
862
863                match n / base_n {
864                    1 => {
865                        // n == base_n
866                        for (i, z) in buf.iter_mut().enumerate() {
867                            *z = twiddles[(i * degree) & n_mask];
868                        }
869                    }
870                    2 => {
871                        // n == 2 * base_n
872                        let (z0, z1) = buf.split_at_mut(n / 2);
873                        for (i, (z0, z1)) in izip!(z0, z1).enumerate() {
874                            *z0 = twiddles[((2 * i) * degree) & n_mask];
875                            *z1 = twiddles[((2 * i + 1) * degree) & n_mask];
876                        }
877                    }
878                    _ => {
879                        for (z, &idx) in buf.iter_mut().zip(indices.iter()) {
880                            *z = twiddles[(idx * degree) & n_mask];
881                        }
882                    }
883                }
884            }
885        }
886
887        pulp::Arch::new().dispatch(Impl {
888            this: self,
889            degree,
890            buf,
891        })
892    }
893
894    /// Performs an inverse FFT in place, using the provided stack as scratch space.
895    ///
896    /// # Note
897    ///
898    /// The values in `buf` must be in permuted order prior to calling this function.
899    /// When this function returns, the values in `buf` will contain the terms of the forward
900    /// transform in standard order.
901    ///
902    /// # Example
903    #[cfg_attr(feature = "std", doc = " ```")]
904    #[cfg_attr(not(feature = "std"), doc = " ```ignore")]
905    /// use tfhe_fft::c64;
906    /// use tfhe_fft::unordered::{Method, Plan};
907    /// use dyn_stack::{PodStack, PodBuffer};
908    /// use core::time::Duration;
909    ///
910    /// let plan = Plan::new(4, Method::Measure(Duration::from_millis(10)));
911    ///
912    /// let mut memory = PodBuffer::try_new(plan.fft_scratch()).unwrap();
913    /// let stack = PodStack::new(&mut memory);
914    ///
915    /// let mut buf = [c64::default(); 4];
916    /// plan.fwd(&mut buf, stack);
917    /// plan.inv(&mut buf, stack);
918    /// ```
919    pub fn inv(&self, buf: &mut [c64], stack: &mut PodStack) {
920        assert_eq!(self.fft_size(), buf.len());
921        let (scratch, _) = stack.make_aligned_raw::<c64>(self.algo().1, CACHELINE_ALIGN);
922        inv_depth(
923            buf,
924            &self.twiddles_inv,
925            self.base_fn_inv,
926            self.base_n,
927            scratch,
928            self.inv_process_x2,
929            self.inv_process_x4,
930            self.inv_process_x8,
931        );
932    }
933
934    /// Serialize a buffer containing data in the Fourier domain that is stored in the
935    /// plan-specific permuted order, and store the result with the serializer in the standard
936    /// order.
937    ///
938    /// # Panics
939    ///
940    /// - Panics if the length of `buf` is not equal to the FFT size.
941    #[cfg(feature = "serde")]
942    #[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
943    pub fn serialize_fourier_buffer<S: serde::Serializer>(
944        &self,
945        serializer: S,
946        buf: &[c64],
947    ) -> Result<S::Ok, S::Error> {
948        use serde::ser::SerializeSeq;
949
950        let n = self.n;
951        let base_n = self.base_n;
952        assert_eq!(n, buf.len());
953
954        let mut seq = serializer.serialize_seq(Some(n))?;
955
956        let nbits = n.trailing_zeros();
957        let base_nbits = base_n.trailing_zeros();
958
959        for i in 0..n {
960            seq.serialize_element(&buf[bit_rev_twice(nbits, base_nbits, i)])?;
961        }
962
963        seq.end()
964    }
965
966    /// Deserialize data in the Fourier domain that is produced by the deserializer in the standard
967    /// order into a buffer so that it will contain the data in the plan-specific permuted order
968    ///
969    /// # Panics
970    ///
971    /// - Panics if the length of `buf` is not equal to the FFT size.
972    #[cfg(feature = "serde")]
973    #[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
974    pub fn deserialize_fourier_buffer<'de, D: serde::Deserializer<'de>>(
975        &self,
976        deserializer: D,
977        buf: &mut [c64],
978    ) -> Result<(), D::Error> {
979        use serde::de::{SeqAccess, Visitor};
980
981        let n = self.n;
982        let base_n = self.base_n;
983        assert_eq!(n, buf.len());
984
985        struct SeqVisitor<'a> {
986            buf: &'a mut [c64],
987            base_n: usize,
988        }
989
990        impl<'de> Visitor<'de> for SeqVisitor<'_> {
991            type Value = ();
992
993            fn expecting(&self, formatter: &mut core::fmt::Formatter) -> core::fmt::Result {
994                write!(
995                    formatter,
996                    "a sequence of {} 64-bit complex numbers",
997                    self.buf.len()
998                )
999            }
1000
1001            fn visit_seq<S>(self, mut seq: S) -> Result<Self::Value, S::Error>
1002            where
1003                S: SeqAccess<'de>,
1004            {
1005                let n = self.buf.len();
1006                let nbits = n.trailing_zeros();
1007                let base_nbits = self.base_n.trailing_zeros();
1008
1009                let mut i = 0;
1010
1011                while let Some(value) = seq.next_element::<c64>()? {
1012                    if i < n {
1013                        self.buf[bit_rev_twice(nbits, base_nbits, i)] = value;
1014                    }
1015
1016                    i += 1;
1017                }
1018
1019                if i != n {
1020                    Err(serde::de::Error::invalid_length(i, &self))
1021                } else {
1022                    Ok(())
1023                }
1024            }
1025        }
1026
1027        deserializer.deserialize_seq(SeqVisitor { buf, base_n })
1028    }
1029}
1030
1031#[inline]
1032fn bit_rev(nbits: u32, i: usize) -> usize {
1033    i.reverse_bits() >> (usize::BITS - nbits)
1034}
1035
1036#[cfg(any(test, feature = "serde"))]
1037#[inline]
1038fn bit_rev_twice(nbits: u32, base_nbits: u32, i: usize) -> usize {
1039    let i_rev = bit_rev(nbits, i);
1040    let bottom_mask = (1 << base_nbits) - 1;
1041    let bottom_bits = bit_rev(base_nbits, i_rev);
1042    (i_rev & !bottom_mask) | bottom_bits
1043}
1044
1045#[inline]
1046fn bit_rev_twice_inv(nbits: u32, base_nbits: u32, i: usize) -> usize {
1047    let bottom_mask = (1 << base_nbits) - 1;
1048    let bottom_bits = bit_rev(base_nbits, i);
1049    let i_rev = (i & !bottom_mask) | bottom_bits;
1050    bit_rev(nbits, i_rev)
1051}
1052
1053#[cfg(test)]
1054mod tests {
1055    use super::*;
1056    use alloc::vec;
1057    use dyn_stack::PodBuffer;
1058    use num_complex::ComplexFloat;
1059    use rand::random;
1060
1061    extern crate alloc;
1062
1063    #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1064    #[test]
1065    fn test_fwd() {
1066        for n in [128, 256, 512, 1024] {
1067            let mut z = vec![c64::default(); n];
1068
1069            for z in &mut z {
1070                z.re = random();
1071                z.im = random();
1072            }
1073
1074            let mut z_target = z.clone();
1075            let mut planner = rustfft::FftPlanner::new();
1076            let fwd = planner.plan_fft_forward(n);
1077            fwd.process(&mut z_target);
1078
1079            let plan = Plan::new(
1080                n,
1081                Method::UserProvided {
1082                    base_algo: FftAlgo::Dif4,
1083                    base_n: 32,
1084                },
1085            );
1086            let base_n = plan.algo().1;
1087            let mut mem = PodBuffer::try_new(plan.fft_scratch()).unwrap();
1088            let stack = PodStack::new(&mut mem);
1089            plan.fwd(&mut z, stack);
1090
1091            for (i, z_target) in z_target.iter().enumerate() {
1092                let idx = bit_rev_twice(n.trailing_zeros(), base_n.trailing_zeros(), i);
1093                assert!((z[idx] - z_target).abs() < 1e-12);
1094            }
1095        }
1096    }
1097
1098    #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1099    #[test]
1100    fn test_fwd_monomial() {
1101        for n in [256, 512, 1024] {
1102            for base_n in [32, n, n / 2, n / 4, n / 8] {
1103                for _ in 0..10 {
1104                    let mut z = vec![c64::default(); n];
1105                    let degree = random::<usize>() % n;
1106                    z[degree] = c64 { re: 1.0, im: 0.0 };
1107
1108                    let plan = Plan::new(
1109                        n,
1110                        Method::UserProvided {
1111                            base_algo: FftAlgo::Dif4,
1112                            base_n,
1113                        },
1114                    );
1115                    let mut mem = PodBuffer::try_new(plan.fft_scratch()).unwrap();
1116                    let stack = PodStack::new(&mut mem);
1117
1118                    let mut z_target = z.clone();
1119                    plan.fwd(&mut z_target, stack);
1120
1121                    plan.fwd_monomial(degree, &mut z);
1122
1123                    for (z, z_target) in z.iter().zip(z_target.iter()) {
1124                        assert!((z - z_target).abs() < 1e-12);
1125                    }
1126                }
1127            }
1128        }
1129    }
1130
1131    #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1132    #[test]
1133    fn test_roundtrip() {
1134        for n in [32, 64, 256, 512, 1024] {
1135            let mut z = vec![c64::default(); n];
1136
1137            for z in &mut z {
1138                z.re = random();
1139                z.im = random();
1140            }
1141
1142            let orig = z.clone();
1143
1144            let plan = Plan::new(
1145                n,
1146                Method::UserProvided {
1147                    base_algo: FftAlgo::Dif4,
1148                    base_n: 32,
1149                },
1150            );
1151            let mut mem = PodBuffer::try_new(plan.fft_scratch()).unwrap();
1152            let stack = PodStack::new(&mut mem);
1153            plan.fwd(&mut z, stack);
1154            plan.inv(&mut z, stack);
1155
1156            for z in &mut z {
1157                *z /= n as f64;
1158            }
1159
1160            for (z_actual, z_expected) in z.iter().zip(&orig) {
1161                assert!((z_actual - z_expected).abs() < 1e-12);
1162            }
1163        }
1164    }
1165
1166    #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1167    #[test]
1168    fn test_equivalency() {
1169        use num_complex::Complex;
1170        use rand::{Rng, SeedableRng};
1171
1172        let mut rng = rand::rngs::StdRng::seed_from_u64(0);
1173
1174        let n = 2048;
1175        let mut z = vec![c64::default(); n];
1176
1177        for z in &mut z {
1178            z.re = rng.gen_range(0.0..1.0);
1179            z.im = rng.gen_range(0.0..1.0);
1180        }
1181
1182        let plan = Plan::new(
1183            n,
1184            Method::UserProvided {
1185                base_algo: FftAlgo::Dif4,
1186                base_n: 32,
1187            },
1188        );
1189        let mut mem = PodBuffer::try_new(plan.fft_scratch()).unwrap();
1190        let stack = PodStack::new(&mut mem);
1191        plan.fwd(&mut z, stack);
1192
1193        let target: [Complex<f64>; 2048] = [
1194            Complex {
1195                re: 1028.0259662650005,
1196                im: 1018.8306666971462,
1197            },
1198            Complex {
1199                re: -1.6117693610211064,
1200                im: -15.013711192807873,
1201            },
1202            Complex {
1203                re: 1.3112674293911724,
1204                im: 1.2251429785920784,
1205            },
1206            Complex {
1207                re: -20.28528463346552,
1208                im: 7.110672678227614,
1209            },
1210            Complex {
1211                re: 9.486891728598781,
1212                im: 2.911901435501745,
1213            },
1214            Complex {
1215                re: 12.25008872714404,
1216                im: 5.963396048157125,
1217            },
1218            Complex {
1219                re: -2.5962764345333165,
1220                im: -12.831877293461819,
1221            },
1222            Complex {
1223                re: 2.782043447688152,
1224                im: -2.2254088385521733,
1225            },
1226            Complex {
1227                re: 15.025822460761447,
1228                im: -6.901562095005431,
1229            },
1230            Complex {
1231                re: -7.7320015638941175,
1232                im: -16.668149825543075,
1233            },
1234            Complex {
1235                re: -5.952552151230277,
1236                im: -4.236714632923816,
1237            },
1238            Complex {
1239                re: -10.32976710102734,
1240                im: 9.37939095519813,
1241            },
1242            Complex {
1243                re: -10.749671593352927,
1244                im: 26.65904438791769,
1245            },
1246            Complex {
1247                re: -5.495747841263954,
1248                im: -16.484718062584925,
1249            },
1250            Complex {
1251                re: 8.045029058598553,
1252                im: 3.8950963050069536,
1253            },
1254            Complex {
1255                re: -9.212441503840381,
1256                im: -1.7096057638193103,
1257            },
1258            Complex {
1259                re: 19.613036175931143,
1260                im: 8.632734765942075,
1261            },
1262            Complex {
1263                re: 0.8871336107056365,
1264                im: -12.430422527338864,
1265            },
1266            Complex {
1267                re: -18.33721373243693,
1268                im: 9.667933777622913,
1269            },
1270            Complex {
1271                re: -9.129128861942249,
1272                im: 6.792851918959798,
1273            },
1274            Complex {
1275                re: -17.691345686451033,
1276                im: 20.462809228552956,
1277            },
1278            Complex {
1279                re: 0.8196471635013776,
1280                im: 13.903538212651679,
1281            },
1282            Complex {
1283                re: -14.612927131721474,
1284                im: 26.28646522826971,
1285            },
1286            Complex {
1287                re: -1.9266345213265765,
1288                im: -18.5116444369889,
1289            },
1290            Complex {
1291                re: -23.22135429999605,
1292                im: -3.695931488535109,
1293            },
1294            Complex {
1295                re: 14.035565672187667,
1296                im: 2.060372212125138,
1297            },
1298            Complex {
1299                re: -6.652169508447743,
1300                im: 7.876956812328883,
1301            },
1302            Complex {
1303                re: -10.637574685713666,
1304                im: 10.856497724586053,
1305            },
1306            Complex {
1307                re: -5.4394388959817395,
1308                im: 11.425732577484197,
1309            },
1310            Complex {
1311                re: 2.8126657769443963,
1312                im: 2.897746766280224,
1313            },
1314            Complex {
1315                re: -30.84383177107336,
1316                im: -16.693174572395996,
1317            },
1318            Complex {
1319                re: 1.26359411816019,
1320                im: -5.2266421995563555,
1321            },
1322            Complex {
1323                re: 30.788282562891066,
1324                im: -4.42682448758667,
1325            },
1326            Complex {
1327                re: -10.881145178981333,
1328                im: -4.886861935606913,
1329            },
1330            Complex {
1331                re: 11.909004404395587,
1332                im: -8.972956450555657,
1333            },
1334            Complex {
1335                re: 7.457364703957756,
1336                im: 6.050797558455422,
1337            },
1338            Complex {
1339                re: 2.6166154221759808,
1340                im: -3.764953521219243,
1341            },
1342            Complex {
1343                re: -8.241160876585377,
1344                im: 11.317153896914625,
1345            },
1346            Complex {
1347                re: 2.539579436009626,
1348                im: 9.66852195630992,
1349            },
1350            Complex {
1351                re: 11.988516710433085,
1352                im: 9.288431313060022,
1353            },
1354            Complex {
1355                re: -5.235275716786529,
1356                im: -0.060624486914479414,
1357            },
1358            Complex {
1359                re: 4.834178886045402,
1360                im: 7.989895672073488,
1361            },
1362            Complex {
1363                re: 22.47620086739977,
1364                im: 0.3093510534923656,
1365            },
1366            Complex {
1367                re: 5.535096119344459,
1368                im: 12.365184657835606,
1369            },
1370            Complex {
1371                re: -12.102199148517418,
1372                im: -29.00935811610653,
1373            },
1374            Complex {
1375                re: -2.4358159100396235,
1376                im: -9.003944212814954,
1377            },
1378            Complex {
1379                re: 25.920524886714876,
1380                im: 17.729715744732047,
1381            },
1382            Complex {
1383                re: 9.909927367822194,
1384                im: -10.123939499496494,
1385            },
1386            Complex {
1387                re: 13.59538132312677,
1388                im: 13.426396519419585,
1389            },
1390            Complex {
1391                re: -29.99375200993027,
1392                im: 13.59043160119673,
1393            },
1394            Complex {
1395                re: 12.91948274129384,
1396                im: 11.187993117012375,
1397            },
1398            Complex {
1399                re: -16.52473440881338,
1400                im: 5.737525274042028,
1401            },
1402            Complex {
1403                re: -2.088229278873378,
1404                im: -18.192539096325365,
1405            },
1406            Complex {
1407                re: 17.373519163452514,
1408                im: 4.100544520805514,
1409            },
1410            Complex {
1411                re: 3.1067670187257073,
1412                im: -10.320319488898004,
1413            },
1414            Complex {
1415                re: 15.023282840430767,
1416                im: -1.3107168940158433,
1417            },
1418            Complex {
1419                re: 2.12032305068377,
1420                im: 2.7153895462920072,
1421            },
1422            Complex {
1423                re: -14.499997469600016,
1424                im: 6.9620892254787465,
1425            },
1426            Complex {
1427                re: 6.313774244993018,
1428                im: 14.095880872892534,
1429            },
1430            Complex {
1431                re: -0.7351930216807379,
1432                im: -7.121045869688501,
1433            },
1434            Complex {
1435                re: -4.709227004773897,
1436                im: -20.718198404219155,
1437            },
1438            Complex {
1439                re: -7.790227219313385,
1440                im: 14.19504310843211,
1441            },
1442            Complex {
1443                re: 19.961995300660842,
1444                im: -25.492654225774103,
1445            },
1446            Complex {
1447                re: -12.886075251513232,
1448                im: 13.576214170135668,
1449            },
1450            Complex {
1451                re: -12.70206371312696,
1452                im: 24.39257797384933,
1453            },
1454            Complex {
1455                re: 25.4640391469203,
1456                im: -14.232324132421372,
1457            },
1458            Complex {
1459                re: -4.49845947621799,
1460                im: 11.952299090504125,
1461            },
1462            Complex {
1463                re: 4.120845475491185,
1464                im: -8.458601221813485,
1465            },
1466            Complex {
1467                re: -16.845625883172914,
1468                im: -10.115639893749465,
1469            },
1470            Complex {
1471                re: 2.0146482585195313,
1472                im: 2.9022477054857854,
1473            },
1474            Complex {
1475                re: -2.0434027910696297,
1476                im: -16.95230202898982,
1477            },
1478            Complex {
1479                re: -12.727204500271226,
1480                im: -1.5112216094891089,
1481            },
1482            Complex {
1483                re: 4.460715577516242,
1484                im: 7.298053055963965,
1485            },
1486            Complex {
1487                re: -15.201004425621546,
1488                im: -3.643352597958192,
1489            },
1490            Complex {
1491                re: -17.178938829448526,
1492                im: -7.269222810804612,
1493            },
1494            Complex {
1495                re: 3.6995889143984115,
1496                im: 11.32353159052323,
1497            },
1498            Complex {
1499                re: 9.856606656588676,
1500                im: -0.15708229250553885,
1501            },
1502            Complex {
1503                re: 1.002011947771364,
1504                im: -23.026577810296068,
1505            },
1506            Complex {
1507                re: 19.316616688515552,
1508                im: -26.987237511377522,
1509            },
1510            Complex {
1511                re: -12.87339624457927,
1512                im: 15.263034715141025,
1513            },
1514            Complex {
1515                re: 17.206045321300998,
1516                im: -5.753212499841329,
1517            },
1518            Complex {
1519                re: 16.75998043798385,
1520                im: 10.02889526325729,
1521            },
1522            Complex {
1523                re: 24.86147190691085,
1524                im: 14.845425680213081,
1525            },
1526            Complex {
1527                re: 21.770804109643883,
1528                im: 5.472761990483826,
1529            },
1530            Complex {
1531                re: 6.173861818983644,
1532                im: 2.779263857593321,
1533            },
1534            Complex {
1535                re: -3.306292845835979,
1536                im: 1.2514510183654073,
1537            },
1538            Complex {
1539                re: -10.589776586213551,
1540                im: 10.835415489493093,
1541            },
1542            Complex {
1543                re: 21.354773869607456,
1544                im: 25.677462496219444,
1545            },
1546            Complex {
1547                re: 19.009171740520543,
1548                im: 7.327229335843681,
1549            },
1550            Complex {
1551                re: 9.540606241741107,
1552                im: -7.641250440487708,
1553            },
1554            Complex {
1555                re: 23.857348431649974,
1556                im: -2.6133071272040365,
1557            },
1558            Complex {
1559                re: 5.378906999079025,
1560                im: 4.612209829044062,
1561            },
1562            Complex {
1563                re: -12.425164741725483,
1564                im: 19.79323386897317,
1565            },
1566            Complex {
1567                re: 5.344349257495103,
1568                im: -10.75488071248251,
1569            },
1570            Complex {
1571                re: -21.378831513449022,
1572                im: -6.7124414913580726,
1573            },
1574            Complex {
1575                re: -10.723422531336306,
1576                im: 1.599743887554859,
1577            },
1578            Complex {
1579                re: 19.94580091986104,
1580                im: 13.752274049039102,
1581            },
1582            Complex {
1583                re: 1.9766889123082088,
1584                im: -13.203864577133283,
1585            },
1586            Complex {
1587                re: -3.870810047648199,
1588                im: -18.929842412819653,
1589            },
1590            Complex {
1591                re: -11.46489452314677,
1592                im: 3.1978078586164953,
1593            },
1594            Complex {
1595                re: 25.41501249455765,
1596                im: 5.89359024870779,
1597            },
1598            Complex {
1599                re: 19.541363810041915,
1600                im: -0.33577677224777935,
1601            },
1602            Complex {
1603                re: 10.02778029220173,
1604                im: -35.85876300996001,
1605            },
1606            Complex {
1607                re: 9.772825909300176,
1608                im: 4.894850565902111,
1609            },
1610            Complex {
1611                re: -22.92962789502502,
1612                im: -4.698482122931518,
1613            },
1614            Complex {
1615                re: -5.760276468264342,
1616                im: 1.5193740271503797,
1617            },
1618            Complex {
1619                re: -14.172295323882778,
1620                im: 0.7035668707669265,
1621            },
1622            Complex {
1623                re: -16.931595611586815,
1624                im: -0.22314620849418887,
1625            },
1626            Complex {
1627                re: 15.107856668297106,
1628                im: -6.871811984082004,
1629            },
1630            Complex {
1631                re: 10.411914616224461,
1632                im: -0.983439047957614,
1633            },
1634            Complex {
1635                re: 11.642769650643567,
1636                im: 7.634013193704006,
1637            },
1638            Complex {
1639                re: 23.74299706849616,
1640                im: -14.947527880743275,
1641            },
1642            Complex {
1643                re: -9.631494310991457,
1644                im: -0.4034703132980937,
1645            },
1646            Complex {
1647                re: 38.84690684971271,
1648                im: -7.819020662094461,
1649            },
1650            Complex {
1651                re: 5.480236629930408,
1652                im: 20.439521278247817,
1653            },
1654            Complex {
1655                re: -6.194972765742682,
1656                im: -11.879099549949284,
1657            },
1658            Complex {
1659                re: -15.44018327569065,
1660                im: -18.645077292737405,
1661            },
1662            Complex {
1663                re: -17.0107273832313,
1664                im: 3.5400876795121787,
1665            },
1666            Complex {
1667                re: 16.48465271915904,
1668                im: -12.952312210723413,
1669            },
1670            Complex {
1671                re: 14.668687998777747,
1672                im: 5.788777788405749,
1673            },
1674            Complex {
1675                re: -4.738328900633055,
1676                im: -24.12471447899992,
1677            },
1678            Complex {
1679                re: 7.9533618468179,
1680                im: 6.646345495132278,
1681            },
1682            Complex {
1683                re: 12.82191985043,
1684                im: -13.87832186104814,
1685            },
1686            Complex {
1687                re: 28.97611656990535,
1688                im: -18.719246951384473,
1689            },
1690            Complex {
1691                re: -7.0879258155532945,
1692                im: -0.7155883041959576,
1693            },
1694            Complex {
1695                re: -16.321381653625966,
1696                im: 6.044742784125379,
1697            },
1698            Complex {
1699                re: -4.596160725511149,
1700                im: 0.14589972137458762,
1701            },
1702            Complex {
1703                re: -18.06457295366512,
1704                im: 27.007491079308288,
1705            },
1706            Complex {
1707                re: 20.634964311519106,
1708                im: 17.00202447958753,
1709            },
1710            Complex {
1711                re: 5.225277241606747,
1712                im: 2.423084994662922,
1713            },
1714            Complex {
1715                re: -0.1933989830891445,
1716                im: -6.451546431462679,
1717            },
1718            Complex {
1719                re: -2.2859227763753163,
1720                im: 15.419675393141016,
1721            },
1722            Complex {
1723                re: 2.5047060233798346,
1724                im: -5.608157004608893,
1725            },
1726            Complex {
1727                re: 19.925767902765056,
1728                im: 24.304173508269848,
1729            },
1730            Complex {
1731                re: -3.876320999628123,
1732                im: 18.364492538423693,
1733            },
1734            Complex {
1735                re: -38.69717789689757,
1736                im: -11.514610046238788,
1737            },
1738            Complex {
1739                re: -11.28378950414232,
1740                im: 1.7963755029815651,
1741            },
1742            Complex {
1743                re: 19.098020322932356,
1744                im: 13.069725495131152,
1745            },
1746            Complex {
1747                re: 16.05193649072467,
1748                im: -19.777951315776292,
1749            },
1750            Complex {
1751                re: 2.98914356244319,
1752                im: 19.968601941027522,
1753            },
1754            Complex {
1755                re: -0.7412565632291299,
1756                im: -11.001096412387769,
1757            },
1758            Complex {
1759                re: 11.2673615646571,
1760                im: -7.77060018748361,
1761            },
1762            Complex {
1763                re: -24.467646487505505,
1764                im: -4.15547168693216,
1765            },
1766            Complex {
1767                re: 2.7533683500515,
1768                im: 3.8549089212854124,
1769            },
1770            Complex {
1771                re: 10.52124618617088,
1772                im: 3.495770734790426,
1773            },
1774            Complex {
1775                re: 5.332664773675603,
1776                im: -4.706461063969051,
1777            },
1778            Complex {
1779                re: 22.670870017379485,
1780                im: -24.438628190075065,
1781            },
1782            Complex {
1783                re: 11.456461814641866,
1784                im: 6.661606897393465,
1785            },
1786            Complex {
1787                re: 17.170446787152134,
1788                im: 6.8416307108608105,
1789            },
1790            Complex {
1791                re: -17.690393533541442,
1792                im: 7.201025953583903,
1793            },
1794            Complex {
1795                re: -13.476138882188746,
1796                im: 5.744820930127671,
1797            },
1798            Complex {
1799                re: -0.9380347199726202,
1800                im: -4.0547585742805925,
1801            },
1802            Complex {
1803                re: 12.610705976806198,
1804                im: -12.316127836749505,
1805            },
1806            Complex {
1807                re: 5.369389284463962,
1808                im: 29.435802305040397,
1809            },
1810            Complex {
1811                re: 0.4423204979596127,
1812                im: -1.1670561194519316,
1813            },
1814            Complex {
1815                re: -10.24692823183144,
1816                im: -33.891676276395906,
1817            },
1818            Complex {
1819                re: 11.196890710431063,
1820                im: -9.881600457765012,
1821            },
1822            Complex {
1823                re: -14.615127173515138,
1824                im: -10.50635363525803,
1825            },
1826            Complex {
1827                re: -8.899354725016671,
1828                im: 9.117790310544017,
1829            },
1830            Complex {
1831                re: 8.874888716808623,
1832                im: 10.957548192856832,
1833            },
1834            Complex {
1835                re: 16.19558877138588,
1836                im: 1.833578218960076,
1837            },
1838            Complex {
1839                re: -18.135010828987618,
1840                im: -13.518213015468703,
1841            },
1842            Complex {
1843                re: -18.907073795839235,
1844                im: -3.4672498159881044,
1845            },
1846            Complex {
1847                re: -10.429245580900592,
1848                im: 11.43165463273113,
1849            },
1850            Complex {
1851                re: -2.959367702958237,
1852                im: 29.83330172841742,
1853            },
1854            Complex {
1855                re: 6.656024776125527,
1856                im: -14.517624586261366,
1857            },
1858            Complex {
1859                re: -6.113768162304773,
1860                im: 8.605066056031395,
1861            },
1862            Complex {
1863                re: 11.491699567451217,
1864                im: -0.8675856180933366,
1865            },
1866            Complex {
1867                re: 11.107044188390658,
1868                im: -11.148729472170343,
1869            },
1870            Complex {
1871                re: -2.480038165090889,
1872                im: -13.96096667827495,
1873            },
1874            Complex {
1875                re: -6.133175716656055,
1876                im: 7.285624374527638,
1877            },
1878            Complex {
1879                re: 2.8161502658425133,
1880                im: 8.54463896598238,
1881            },
1882            Complex {
1883                re: -22.333129778307278,
1884                im: -6.138306382828617,
1885            },
1886            Complex {
1887                re: -14.091587480057466,
1888                im: 3.35257307275866,
1889            },
1890            Complex {
1891                re: 6.502552489401501,
1892                im: 5.139508248996664,
1893            },
1894            Complex {
1895                re: -20.616717548434636,
1896                im: 9.647606887692353,
1897            },
1898            Complex {
1899                re: 20.397319096483564,
1900                im: -3.2651063863010616,
1901            },
1902            Complex {
1903                re: 16.06494152863663,
1904                im: 0.8327611067130958,
1905            },
1906            Complex {
1907                re: -9.788620431086375,
1908                im: 1.266790137316554,
1909            },
1910            Complex {
1911                re: -0.4512121282574535,
1912                im: 15.070648963781712,
1913            },
1914            Complex {
1915                re: -10.836830612627377,
1916                im: -0.9031037127332944,
1917            },
1918            Complex {
1919                re: 3.0843274737055477,
1920                im: -21.271391610833295,
1921            },
1922            Complex {
1923                re: -10.252311484313498,
1924                im: 0.2552896280508712,
1925            },
1926            Complex {
1927                re: -11.089055369488932,
1928                im: 9.291676225210107,
1929            },
1930            Complex {
1931                re: 6.904128558250919,
1932                im: -18.551765065644695,
1933            },
1934            Complex {
1935                re: -10.35376500370079,
1936                im: 3.1076515876348774,
1937            },
1938            Complex {
1939                re: -21.53897166610131,
1940                im: -7.002158613136196,
1941            },
1942            Complex {
1943                re: -8.808235010541223,
1944                im: 2.72807054421241,
1945            },
1946            Complex {
1947                re: -22.397737519797065,
1948                im: 2.404393168334403,
1949            },
1950            Complex {
1951                re: 22.048213502114866,
1952                im: 14.369224020865154,
1953            },
1954            Complex {
1955                re: -5.2172926484039435,
1956                im: -5.936396737619827,
1957            },
1958            Complex {
1959                re: 2.6209350681696595,
1960                im: -9.702223353631124,
1961            },
1962            Complex {
1963                re: -30.120890813643555,
1964                im: 22.646616500437176,
1965            },
1966            Complex {
1967                re: 9.912526477969623,
1968                im: 14.231259307000471,
1969            },
1970            Complex {
1971                re: 14.958866995272867,
1972                im: 16.153570845426813,
1973            },
1974            Complex {
1975                re: -6.290442446646532,
1976                im: 16.241406107667228,
1977            },
1978            Complex {
1979                re: -4.509161534980114,
1980                im: 20.339711865683718,
1981            },
1982            Complex {
1983                re: -20.29062121382213,
1984                im: -3.1510963194146138,
1985            },
1986            Complex {
1987                re: 2.5880542541477976,
1988                im: -5.5031160537354005,
1989            },
1990            Complex {
1991                re: -0.4614802642036162,
1992                im: 4.034906018595789,
1993            },
1994            Complex {
1995                re: 10.005534411295322,
1996                im: -12.175662303050059,
1997            },
1998            Complex {
1999                re: 3.09757376532731,
2000                im: -21.476272605040897,
2001            },
2002            Complex {
2003                re: 9.357605769017665,
2004                im: 34.79439922904942,
2005            },
2006            Complex {
2007                re: -12.281421340409803,
2008                im: 0.7098777991460139,
2009            },
2010            Complex {
2011                re: -16.638938245295932,
2012                im: 10.141216211909143,
2013            },
2014            Complex {
2015                re: 15.314649224968631,
2016                im: -1.5438556603467062,
2017            },
2018            Complex {
2019                re: -21.75173842809958,
2020                im: 17.057561506943387,
2021            },
2022            Complex {
2023                re: 5.024679794368951,
2024                im: 22.852689051359008,
2025            },
2026            Complex {
2027                re: 4.694228815656034,
2028                im: -18.62939106970076,
2029            },
2030            Complex {
2031                re: 1.344592363293474,
2032                im: -2.734812908361836,
2033            },
2034            Complex {
2035                re: 9.773243511407248,
2036                im: 3.6510945352484345,
2037            },
2038            Complex {
2039                re: 16.114668949587326,
2040                im: 9.102746197458327,
2041            },
2042            Complex {
2043                re: -26.680126156444516,
2044                im: -6.393746232168626,
2045            },
2046            Complex {
2047                re: -2.745839039372761,
2048                im: 11.902629570720514,
2049            },
2050            Complex {
2051                re: 32.937127873927295,
2052                im: 6.076865159827808,
2053            },
2054            Complex {
2055                re: 10.297155933797253,
2056                im: 0.9684239177581708,
2057            },
2058            Complex {
2059                re: -6.230425300247173,
2060                im: -5.582421032945627,
2061            },
2062            Complex {
2063                re: 6.743270478536752,
2064                im: -7.374887500817593,
2065            },
2066            Complex {
2067                re: 1.1796640683643336,
2068                im: 12.165142361285053,
2069            },
2070            Complex {
2071                re: -5.165445037280208,
2072                im: 18.763969685843016,
2073            },
2074            Complex {
2075                re: 7.651015396487168,
2076                im: -20.223348393872826,
2077            },
2078            Complex {
2079                re: 12.628445104490153,
2080                im: 2.02828317513875,
2081            },
2082            Complex {
2083                re: -17.80609922034911,
2084                im: -7.668233095353999,
2085            },
2086            Complex {
2087                re: -15.007641588363668,
2088                im: -9.70687199757384,
2089            },
2090            Complex {
2091                re: 4.950863807243907,
2092                im: -6.454790273473089,
2093            },
2094            Complex {
2095                re: -5.704768754301221,
2096                im: -20.638908478964417,
2097            },
2098            Complex {
2099                re: 2.0949921604679975,
2100                im: -5.969193394621694,
2101            },
2102            Complex {
2103                re: -14.015836215299426,
2104                im: -6.008029354183316,
2105            },
2106            Complex {
2107                re: 11.764815998604206,
2108                im: -7.9639077105934994,
2109            },
2110            Complex {
2111                re: 0.7987633936023337,
2112                im: 6.60478700813403,
2113            },
2114            Complex {
2115                re: 7.372246783433016,
2116                im: 8.753106246685634,
2117            },
2118            Complex {
2119                re: 2.8237943213215786,
2120                im: 2.478693805042268,
2121            },
2122            Complex {
2123                re: 9.83715804021296,
2124                im: 6.211757067671594,
2125            },
2126            Complex {
2127                re: 8.323519576441065,
2128                im: 19.748947189947508,
2129            },
2130            Complex {
2131                re: -7.29300701733631,
2132                im: 13.332503360894544,
2133            },
2134            Complex {
2135                re: -11.454902205563783,
2136                im: 15.534425150530947,
2137            },
2138            Complex {
2139                re: 14.761037874272274,
2140                im: 12.482815327575214,
2141            },
2142            Complex {
2143                re: -3.9052030989193582,
2144                im: -8.745483333422666,
2145            },
2146            Complex {
2147                re: -10.29658543928155,
2148                im: -17.85390477602305,
2149            },
2150            Complex {
2151                re: -3.454253132821332,
2152                im: -4.242877559090589,
2153            },
2154            Complex {
2155                re: -6.801078893425469,
2156                im: 29.256364180576526,
2157            },
2158            Complex {
2159                re: -12.892149544792623,
2160                im: -6.273592485813063,
2161            },
2162            Complex {
2163                re: 20.927189146277293,
2164                im: 0.5643124615863386,
2165            },
2166            Complex {
2167                re: -5.554468897753606,
2168                im: -4.659590634296643,
2169            },
2170            Complex {
2171                re: 0.4773254908450424,
2172                im: -15.559807472454843,
2173            },
2174            Complex {
2175                re: 1.3980372069727396,
2176                im: 5.750438547112767,
2177            },
2178            Complex {
2179                re: 0.23066291674739325,
2180                im: -3.0132785466514433,
2181            },
2182            Complex {
2183                re: -19.3799594759589,
2184                im: -6.260450700431114,
2185            },
2186            Complex {
2187                re: -6.958710493680245,
2188                im: -6.688689148992693,
2189            },
2190            Complex {
2191                re: 18.714513003395673,
2192                im: -12.139964055868633,
2193            },
2194            Complex {
2195                re: 14.932676464690271,
2196                im: -2.8093523584452686,
2197            },
2198            Complex {
2199                re: 11.20013499194657,
2200                im: 9.50123202580238,
2201            },
2202            Complex {
2203                re: -13.816063162566936,
2204                im: 1.498822177641208,
2205            },
2206            Complex {
2207                re: 7.563080840552125,
2208                im: 28.625398382799023,
2209            },
2210            Complex {
2211                re: -9.28289135745532,
2212                im: 3.0991621800194853,
2213            },
2214            Complex {
2215                re: -1.180887166345881,
2216                im: 0.7247014303386714,
2217            },
2218            Complex {
2219                re: -14.535438260202586,
2220                im: 20.066507098199047,
2221            },
2222            Complex {
2223                re: 2.324418939447421,
2224                im: 8.779981890745457,
2225            },
2226            Complex {
2227                re: 11.058519865155263,
2228                im: 24.88021839980392,
2229            },
2230            Complex {
2231                re: 2.3325813624488525,
2232                im: 11.954950423671335,
2233            },
2234            Complex {
2235                re: 3.4576035174351833,
2236                im: -12.507157770615486,
2237            },
2238            Complex {
2239                re: -3.9894121115304335,
2240                im: 13.864022402635332,
2241            },
2242            Complex {
2243                re: -6.902035012590352,
2244                im: 11.78720852988728,
2245            },
2246            Complex {
2247                re: 0.9987229131308424,
2248                im: 3.00142381974446,
2249            },
2250            Complex {
2251                re: 13.86900577624618,
2252                im: 0.9370807398649976,
2253            },
2254            Complex {
2255                re: -20.737262138693843,
2256                im: 11.017176793695622,
2257            },
2258            Complex {
2259                re: -10.145380208044468,
2260                im: -10.489063712899554,
2261            },
2262            Complex {
2263                re: 14.983780940343895,
2264                im: 33.21030103345157,
2265            },
2266            Complex {
2267                re: -12.168526296965837,
2268                im: -5.9132515754374815,
2269            },
2270            Complex {
2271                re: -23.536931134167684,
2272                im: -0.5384059362843396,
2273            },
2274            Complex {
2275                re: -6.744678899812265,
2276                im: -19.98216673123754,
2277            },
2278            Complex {
2279                re: 19.028684386772316,
2280                im: -15.932711522469017,
2281            },
2282            Complex {
2283                re: 2.755468299263806,
2284                im: 11.351583779471477,
2285            },
2286            Complex {
2287                re: -13.338948011071624,
2288                im: 28.404018847750397,
2289            },
2290            Complex {
2291                re: 0.7823031348196228,
2292                im: -15.594387674398757,
2293            },
2294            Complex {
2295                re: -20.961805618830038,
2296                im: 15.601578963787507,
2297            },
2298            Complex {
2299                re: 18.10402291539686,
2300                im: 3.9563757086108033,
2301            },
2302            Complex {
2303                re: -11.49166858022786,
2304                im: 5.483631483223635,
2305            },
2306            Complex {
2307                re: 2.2026010664388984,
2308                im: -0.5227129237213992,
2309            },
2310            Complex {
2311                re: -5.520566986458462,
2312                im: 12.100931681165843,
2313            },
2314            Complex {
2315                re: 14.439664721952479,
2316                im: -16.31757007954623,
2317            },
2318            Complex {
2319                re: 16.242893540064316,
2320                im: -17.884366952484918,
2321            },
2322            Complex {
2323                re: 18.977269990131557,
2324                im: 17.693114622762803,
2325            },
2326            Complex {
2327                re: -7.8645813304810614,
2328                im: -1.4494772403540335,
2329            },
2330            Complex {
2331                re: 1.4879596773412915,
2332                im: -0.5341117653260015,
2333            },
2334            Complex {
2335                re: 0.17792881057955512,
2336                im: -2.892799655310421,
2337            },
2338            Complex {
2339                re: -21.361207055172812,
2340                im: 2.480083991984145,
2341            },
2342            Complex {
2343                re: -6.0495557652475105,
2344                im: -17.37892895506268,
2345            },
2346            Complex {
2347                re: 16.48266794221194,
2348                im: 26.073891524657675,
2349            },
2350            Complex {
2351                re: -2.6381274583925585,
2352                im: 9.741020554255797,
2353            },
2354            Complex {
2355                re: -1.6227088059276502,
2356                im: 20.551426420155448,
2357            },
2358            Complex {
2359                re: -8.904014616929338,
2360                im: -11.459371308574124,
2361            },
2362            Complex {
2363                re: 0.08205547143563141,
2364                im: 20.081003696467338,
2365            },
2366            Complex {
2367                re: -0.9692577709049344,
2368                im: 0.46227861486215005,
2369            },
2370            Complex {
2371                re: -9.502562699326788,
2372                im: -10.206659958510762,
2373            },
2374            Complex {
2375                re: -12.830658115539924,
2376                im: -14.071642658906828,
2377            },
2378            Complex {
2379                re: 11.971937883634082,
2380                im: 11.955764894307235,
2381            },
2382            Complex {
2383                re: 7.060288176310949,
2384                im: 4.719417145703684,
2385            },
2386            Complex {
2387                re: 1.1866048321225025,
2388                im: -10.205809208787048,
2389            },
2390            Complex {
2391                re: 8.306897412146556,
2392                im: 3.209027899760823,
2393            },
2394            Complex {
2395                re: 15.316784783243335,
2396                im: -13.947053430079272,
2397            },
2398            Complex {
2399                re: 3.5243908601416747,
2400                im: -2.9549895394107266,
2401            },
2402            Complex {
2403                re: 7.228034256385309,
2404                im: 15.459194337247341,
2405            },
2406            Complex {
2407                re: 5.22380976262591,
2408                im: 2.2275338240085087,
2409            },
2410            Complex {
2411                re: -6.758063594330443,
2412                im: 19.99160744305187,
2413            },
2414            Complex {
2415                re: 9.055412556778949,
2416                im: 0.10535584444193002,
2417            },
2418            Complex {
2419                re: -0.5212199148345373,
2420                im: -1.1532476387551363,
2421            },
2422            Complex {
2423                re: -6.699760020299823,
2424                im: -20.06704927841285,
2425            },
2426            Complex {
2427                re: 1.5528828042634482,
2428                im: -16.149281661810893,
2429            },
2430            Complex {
2431                re: 10.735818307554947,
2432                im: -15.581284702993699,
2433            },
2434            Complex {
2435                re: 3.536463611266538,
2436                im: -9.406904243310137,
2437            },
2438            Complex {
2439                re: 15.335892608274102,
2440                im: 21.8805011998269,
2441            },
2442            Complex {
2443                re: 3.944110757690334,
2444                im: -25.94398669047233,
2445            },
2446            Complex {
2447                re: -2.771747024243134,
2448                im: 20.409979227841948,
2449            },
2450            Complex {
2451                re: -12.078324850596498,
2452                im: -4.565776955178567,
2453            },
2454            Complex {
2455                re: -15.567746339791517,
2456                im: 11.920347993565644,
2457            },
2458            Complex {
2459                re: -28.942814971945552,
2460                im: 20.105718190425833,
2461            },
2462            Complex {
2463                re: 7.398683291266836,
2464                im: -3.965654180594908,
2465            },
2466            Complex {
2467                re: 14.261125812277674,
2468                im: -3.811487796094804,
2469            },
2470            Complex {
2471                re: -7.307915799147931,
2472                im: -3.4168682424746377,
2473            },
2474            Complex {
2475                re: 13.37870232405555,
2476                im: 4.822433182349451,
2477            },
2478            Complex {
2479                re: 1.5028816275729557,
2480                im: 22.58628303567199,
2481            },
2482            Complex {
2483                re: 0.1467317655076723,
2484                im: 23.48775087363032,
2485            },
2486            Complex {
2487                re: -5.558656769331895,
2488                im: 2.180396728461207,
2489            },
2490            Complex {
2491                re: 6.2444039530251665,
2492                im: -1.0063973640488664,
2493            },
2494            Complex {
2495                re: 17.33473330862097,
2496                im: -16.344679491123678,
2497            },
2498            Complex {
2499                re: -15.705851865952555,
2500                im: 23.303240396554536,
2501            },
2502            Complex {
2503                re: 14.804138868916171,
2504                im: -13.860465602767729,
2505            },
2506            Complex {
2507                re: 6.711568020982279,
2508                im: 9.213315542417792,
2509            },
2510            Complex {
2511                re: -6.418382347623902,
2512                im: 10.801664695347121,
2513            },
2514            Complex {
2515                re: 13.810050162330523,
2516                im: 27.504493573447775,
2517            },
2518            Complex {
2519                re: -8.721044283612805,
2520                im: -7.4148470834499935,
2521            },
2522            Complex {
2523                re: -9.15029430271592,
2524                im: -8.516060855762515,
2525            },
2526            Complex {
2527                re: 2.0867044361135036,
2528                im: -18.751351578912796,
2529            },
2530            Complex {
2531                re: 0.20923399264974307,
2532                im: -23.446798586420986,
2533            },
2534            Complex {
2535                re: 14.48900852100177,
2536                im: 1.923271877039749,
2537            },
2538            Complex {
2539                re: 2.1916279752667833,
2540                im: 19.819111364942707,
2541            },
2542            Complex {
2543                re: 17.706425710454525,
2544                im: 7.299408451723826,
2545            },
2546            Complex {
2547                re: 27.917544061503833,
2548                im: 0.11882846442544981,
2549            },
2550            Complex {
2551                re: -13.137812499919749,
2552                im: 2.3215838573980774,
2553            },
2554            Complex {
2555                re: 33.76326789846986,
2556                im: -12.362336221902638,
2557            },
2558            Complex {
2559                re: 19.859439054345437,
2560                im: -7.111101380205134,
2561            },
2562            Complex {
2563                re: 17.273538621556085,
2564                im: 0.09258115329589778,
2565            },
2566            Complex {
2567                re: 11.495643067698774,
2568                im: 5.71124511293366,
2569            },
2570            Complex {
2571                re: -1.744494972459508,
2572                im: 4.0098929648844255,
2573            },
2574            Complex {
2575                re: -26.10838593587146,
2576                im: -10.683295483814579,
2577            },
2578            Complex {
2579                re: 0.9104167354817667,
2580                im: 1.0593561350905905,
2581            },
2582            Complex {
2583                re: 12.541302912478649,
2584                im: -23.23077547657512,
2585            },
2586            Complex {
2587                re: 36.66479360803275,
2588                im: 9.04325950206973,
2589            },
2590            Complex {
2591                re: 13.372138096990676,
2592                im: -4.025968425098549,
2593            },
2594            Complex {
2595                re: -12.46266080807398,
2596                im: 10.251616419357202,
2597            },
2598            Complex {
2599                re: -2.3235798598766184,
2600                im: 24.758059214349327,
2601            },
2602            Complex {
2603                re: -8.944529560249066,
2604                im: 7.675461987198305,
2605            },
2606            Complex {
2607                re: 16.186043137692913,
2608                im: 4.264344679338463,
2609            },
2610            Complex {
2611                re: -3.5661002112401317,
2612                im: -18.380578696584227,
2613            },
2614            Complex {
2615                re: 11.639938694239113,
2616                im: -12.537579557666735,
2617            },
2618            Complex {
2619                re: 10.096558064482776,
2620                im: -7.571413466369111,
2621            },
2622            Complex {
2623                re: -10.953542122393284,
2624                im: 2.0682673232536217,
2625            },
2626            Complex {
2627                re: 7.151115065893588,
2628                im: 5.628202765879623,
2629            },
2630            Complex {
2631                re: 23.137628160524134,
2632                im: -12.87296022083679,
2633            },
2634            Complex {
2635                re: -2.144292755972402,
2636                im: -13.087386362235657,
2637            },
2638            Complex {
2639                re: 17.35563123117715,
2640                im: 17.10264650655507,
2641            },
2642            Complex {
2643                re: 10.759062075568739,
2644                im: -21.991116256631308,
2645            },
2646            Complex {
2647                re: -6.3427844995375455,
2648                im: -2.7796229809665856,
2649            },
2650            Complex {
2651                re: 18.32418480776461,
2652                im: -3.4594998752187633,
2653            },
2654            Complex {
2655                re: -14.993701327268674,
2656                im: 8.593848887950143,
2657            },
2658            Complex {
2659                re: -1.209480045255809,
2660                im: 15.912797088677213,
2661            },
2662            Complex {
2663                re: 8.007773722902012,
2664                im: 8.328660046320394,
2665            },
2666            Complex {
2667                re: 3.635574626080345,
2668                im: 12.01395912712238,
2669            },
2670            Complex {
2671                re: -3.9763500923648163,
2672                im: -7.351874223790097,
2673            },
2674            Complex {
2675                re: 9.348051847622775,
2676                im: -1.7765126779945497,
2677            },
2678            Complex {
2679                re: 8.220535587384067,
2680                im: -8.152820491587537,
2681            },
2682            Complex {
2683                re: -19.342749187628492,
2684                im: -4.451858196974698,
2685            },
2686            Complex {
2687                re: 15.108292435793285,
2688                im: -31.93018546717763,
2689            },
2690            Complex {
2691                re: -18.281986616627588,
2692                im: -34.53243499403097,
2693            },
2694            Complex {
2695                re: -11.687896173233344,
2696                im: -0.2816800196564717,
2697            },
2698            Complex {
2699                re: -2.0049039506507667,
2700                im: 18.203969833915636,
2701            },
2702            Complex {
2703                re: 15.58876638139823,
2704                im: -18.674309905114054,
2705            },
2706            Complex {
2707                re: -11.131684421279143,
2708                im: 4.662392085212824,
2709            },
2710            Complex {
2711                re: -21.244642595085303,
2712                im: 8.186561009317305,
2713            },
2714            Complex {
2715                re: 17.79207156026142,
2716                im: 11.115122183680096,
2717            },
2718            Complex {
2719                re: -5.581605352148693,
2720                im: 12.931708150567191,
2721            },
2722            Complex {
2723                re: 23.422100821982283,
2724                im: -4.09576924226451,
2725            },
2726            Complex {
2727                re: 5.14249115485588,
2728                im: 17.1296806868889,
2729            },
2730            Complex {
2731                re: 10.301487498377277,
2732                im: 26.34082307377158,
2733            },
2734            Complex {
2735                re: 9.276913759088401,
2736                im: -8.586416864422413,
2737            },
2738            Complex {
2739                re: -12.829714142422432,
2740                im: 3.8430493654785276,
2741            },
2742            Complex {
2743                re: 2.479235901836338,
2744                im: 0.015092691513818757,
2745            },
2746            Complex {
2747                re: -0.45278241584203904,
2748                im: -2.1840502066765426,
2749            },
2750            Complex {
2751                re: 9.287187432871125,
2752                im: -10.222163641928184,
2753            },
2754            Complex {
2755                re: -6.6046661761858925,
2756                im: 1.1538521791020315,
2757            },
2758            Complex {
2759                re: 28.571759406096373,
2760                im: -1.1854066205190819,
2761            },
2762            Complex {
2763                re: -23.54186629194379,
2764                im: -2.171612088313559,
2765            },
2766            Complex {
2767                re: -23.658394951901823,
2768                im: 14.48063824756328,
2769            },
2770            Complex {
2771                re: 12.2184736122543,
2772                im: -10.531508905911693,
2773            },
2774            Complex {
2775                re: 24.932479923014167,
2776                im: -13.97341561416677,
2777            },
2778            Complex {
2779                re: 0.09744138417804826,
2780                im: 15.052543260547965,
2781            },
2782            Complex {
2783                re: 4.739156671152596,
2784                im: 10.613013592944448,
2785            },
2786            Complex {
2787                re: 0.93921240356529,
2788                im: -12.550392781166604,
2789            },
2790            Complex {
2791                re: 0.9783225554901662,
2792                im: -19.682570957304634,
2793            },
2794            Complex {
2795                re: -15.320365204076388,
2796                im: -5.249895251029107,
2797            },
2798            Complex {
2799                re: -12.288435410480528,
2800                im: 14.930344624501485,
2801            },
2802            Complex {
2803                re: 1.564945771845454,
2804                im: -4.642581407325782,
2805            },
2806            Complex {
2807                re: 3.286035332455361,
2808                im: 0.9620812108268835,
2809            },
2810            Complex {
2811                re: 21.01137727645643,
2812                im: -11.03705116939122,
2813            },
2814            Complex {
2815                re: -22.507955074305954,
2816                im: -0.31085274058539003,
2817            },
2818            Complex {
2819                re: 14.846109226254553,
2820                im: -15.375913024066172,
2821            },
2822            Complex {
2823                re: -5.20655121565105,
2824                im: 1.6180259427525883,
2825            },
2826            Complex {
2827                re: 2.2514663124711287,
2828                im: 7.730658210536141,
2829            },
2830            Complex {
2831                re: -0.889340088234615,
2832                im: 2.1333212709729494,
2833            },
2834            Complex {
2835                re: -4.2931731383071146,
2836                im: 23.874463236126452,
2837            },
2838            Complex {
2839                re: 10.486891674328565,
2840                im: 15.160469268974444,
2841            },
2842            Complex {
2843                re: -1.72262439899239,
2844                im: -6.0516229528100265,
2845            },
2846            Complex {
2847                re: 5.035129007803812,
2848                im: -1.87984916029927,
2849            },
2850            Complex {
2851                re: -3.2388301858472612,
2852                im: 0.350689149221588,
2853            },
2854            Complex {
2855                re: -9.828412242577492,
2856                im: -21.302786132600303,
2857            },
2858            Complex {
2859                re: -18.45884912317817,
2860                im: 9.213740932843459,
2861            },
2862            Complex {
2863                re: -9.764277248364746,
2864                im: -1.1129730696565332,
2865            },
2866            Complex {
2867                re: 0.2385543935502335,
2868                im: 0.9956274053015145,
2869            },
2870            Complex {
2871                re: -30.99881144221836,
2872                im: 3.9592403189555743,
2873            },
2874            Complex {
2875                re: 16.374236237226334,
2876                im: 18.234665458480734,
2877            },
2878            Complex {
2879                re: 26.95047110381829,
2880                im: 7.477889838048215,
2881            },
2882            Complex {
2883                re: -11.579158339694912,
2884                im: -13.899683783325397,
2885            },
2886            Complex {
2887                re: -24.52974282481005,
2888                im: 4.752970154631453,
2889            },
2890            Complex {
2891                re: 3.62399029499804,
2892                im: 8.579354111019262,
2893            },
2894            Complex {
2895                re: -17.009223748729447,
2896                im: 2.5991826558544,
2897            },
2898            Complex {
2899                re: 0.45703486319698783,
2900                im: 5.839827908139467,
2901            },
2902            Complex {
2903                re: 21.96016906593818,
2904                im: -8.562944491493823,
2905            },
2906            Complex {
2907                re: 3.1279975430064715,
2908                im: -11.890170396938231,
2909            },
2910            Complex {
2911                re: 9.06265471120285,
2912                im: 25.188767015377994,
2913            },
2914            Complex {
2915                re: 1.2481376155726913,
2916                im: -5.727503236161135,
2917            },
2918            Complex {
2919                re: -5.80643080017345,
2920                im: 4.765257159799247,
2921            },
2922            Complex {
2923                re: -8.54514782172761,
2924                im: -6.694265582591102,
2925            },
2926            Complex {
2927                re: -6.7304756395905345,
2928                im: 3.0700157243055557,
2929            },
2930            Complex {
2931                re: -0.6250266233106596,
2932                im: 0.2878287002775485,
2933            },
2934            Complex {
2935                re: 7.564171275767544,
2936                im: 16.501757153298847,
2937            },
2938            Complex {
2939                re: -25.46754294197423,
2940                im: -15.325729534124335,
2941            },
2942            Complex {
2943                re: 24.52358050630964,
2944                im: -1.8399026904579436,
2945            },
2946            Complex {
2947                re: -12.785037328755225,
2948                im: 3.7187309807469333,
2949            },
2950            Complex {
2951                re: 1.533739925653606,
2952                im: 6.542482856645107,
2953            },
2954            Complex {
2955                re: 3.569728802371198,
2956                im: 10.709594471101768,
2957            },
2958            Complex {
2959                re: 18.675040752064426,
2960                im: 16.366197714311788,
2961            },
2962            Complex {
2963                re: -1.569262799440664,
2964                im: -26.061704335939183,
2965            },
2966            Complex {
2967                re: 0.838492009542863,
2968                im: -0.7724505137130704,
2969            },
2970            Complex {
2971                re: -11.643369587451822,
2972                im: -18.635570632797567,
2973            },
2974            Complex {
2975                re: 9.167738142319752,
2976                im: 3.0495310339069697,
2977            },
2978            Complex {
2979                re: -19.570962602026444,
2980                im: -7.3201060665416255,
2981            },
2982            Complex {
2983                re: -2.019724355464452,
2984                im: 2.3255722185532024,
2985            },
2986            Complex {
2987                re: -5.24648925559689,
2988                im: 25.30673373308118,
2989            },
2990            Complex {
2991                re: -14.480921139636285,
2992                im: -0.5885946402633557,
2993            },
2994            Complex {
2995                re: 3.787149262662025,
2996                im: 11.094943846990017,
2997            },
2998            Complex {
2999                re: 36.00345927671544,
3000                im: -22.701647849725532,
3001            },
3002            Complex {
3003                re: -0.3265103932563713,
3004                im: 19.32674627102231,
3005            },
3006            Complex {
3007                re: 7.224658447152217,
3008                im: -17.02874505020464,
3009            },
3010            Complex {
3011                re: -13.554614775182833,
3012                im: -35.820335133406914,
3013            },
3014            Complex {
3015                re: 8.602832241808656,
3016                im: 6.254752706544378,
3017            },
3018            Complex {
3019                re: 1.6380081248073495,
3020                im: 18.645561240028698,
3021            },
3022            Complex {
3023                re: -23.87032576831573,
3024                im: -16.299522862120895,
3025            },
3026            Complex {
3027                re: 11.570522471213117,
3028                im: -12.03029765960833,
3029            },
3030            Complex {
3031                re: -12.347805060045932,
3032                im: -9.334292535215566,
3033            },
3034            Complex {
3035                re: 6.6129533876516895,
3036                im: -21.4859042498319,
3037            },
3038            Complex {
3039                re: 14.790056324109663,
3040                im: -1.2367759245072971,
3041            },
3042            Complex {
3043                re: -13.101909087788247,
3044                im: -21.674257004775125,
3045            },
3046            Complex {
3047                re: -8.261638891409046,
3048                im: -5.895890830974685,
3049            },
3050            Complex {
3051                re: 0.6326528482646157,
3052                im: -0.17996415937667187,
3053            },
3054            Complex {
3055                re: -14.37933104527806,
3056                im: 4.152135275428236,
3057            },
3058            Complex {
3059                re: 5.942758182846271,
3060                im: 3.9606005198168948,
3061            },
3062            Complex {
3063                re: -18.002919633093683,
3064                im: -0.5469732120249269,
3065            },
3066            Complex {
3067                re: 9.222029741721943,
3068                im: 21.04500256690426,
3069            },
3070            Complex {
3071                re: 13.208817249848051,
3072                im: 25.72226812750418,
3073            },
3074            Complex {
3075                re: -9.952929334934064,
3076                im: -4.42266466581323,
3077            },
3078            Complex {
3079                re: 19.90283918026901,
3080                im: 0.013995323785304326,
3081            },
3082            Complex {
3083                re: 7.407518851194528,
3084                im: 5.123535823155135,
3085            },
3086            Complex {
3087                re: -2.4516700711433135,
3088                im: 3.183704216689785,
3089            },
3090            Complex {
3091                re: 12.09109676185664,
3092                im: 6.621653270076545,
3093            },
3094            Complex {
3095                re: 10.41773190378413,
3096                im: -11.124521703962719,
3097            },
3098            Complex {
3099                re: 17.35254437208373,
3100                im: 9.275406344086882,
3101            },
3102            Complex {
3103                re: -8.01768958077906,
3104                im: 7.907619361035268,
3105            },
3106            Complex {
3107                re: 13.520099238726978,
3108                im: 12.07865619353596,
3109            },
3110            Complex {
3111                re: -4.039168796695833,
3112                im: -15.054764198528268,
3113            },
3114            Complex {
3115                re: 17.59887158876547,
3116                im: -12.233371075833128,
3117            },
3118            Complex {
3119                re: -0.8035780018780541,
3120                im: -2.1879777893826766,
3121            },
3122            Complex {
3123                re: 10.178385448207278,
3124                im: 16.31576948839421,
3125            },
3126            Complex {
3127                re: 23.29895547895184,
3128                im: -10.111472510362624,
3129            },
3130            Complex {
3131                re: -1.2493965592164213,
3132                im: -14.105933201667671,
3133            },
3134            Complex {
3135                re: -5.339389587044726,
3136                im: 21.667493383764583,
3137            },
3138            Complex {
3139                re: -9.792315793004128,
3140                im: 30.461539236438394,
3141            },
3142            Complex {
3143                re: -4.051877910193845,
3144                im: 4.846016962675711,
3145            },
3146            Complex {
3147                re: -26.62094089769998,
3148                im: -1.9920757484537401,
3149            },
3150            Complex {
3151                re: -20.4565160052507,
3152                im: 8.038524516498482,
3153            },
3154            Complex {
3155                re: 20.155008335896078,
3156                im: 15.89222842850166,
3157            },
3158            Complex {
3159                re: -9.093782003922598,
3160                im: -12.071186190135009,
3161            },
3162            Complex {
3163                re: -9.012513711930803,
3164                im: 21.308423448776836,
3165            },
3166            Complex {
3167                re: -5.728850708305036,
3168                im: -11.920083248144788,
3169            },
3170            Complex {
3171                re: 0.8819479298901438,
3172                im: -7.161702067951728,
3173            },
3174            Complex {
3175                re: 1.6700420010532349,
3176                im: -2.6003302661530876,
3177            },
3178            Complex {
3179                re: 12.414251802198963,
3180                im: 5.1825599603861985,
3181            },
3182            Complex {
3183                re: -15.323676489408065,
3184                im: -14.183983367961913,
3185            },
3186            Complex {
3187                re: 16.17931847343062,
3188                im: 1.3773647118965053,
3189            },
3190            Complex {
3191                re: 5.739334653268656,
3192                im: -9.295340427692558,
3193            },
3194            Complex {
3195                re: 1.7595215662121422,
3196                im: -0.062434241923361,
3197            },
3198            Complex {
3199                re: 17.156920169912397,
3200                im: 14.06639237098653,
3201            },
3202            Complex {
3203                re: 12.846729982055088,
3204                im: -0.8614801963981016,
3205            },
3206            Complex {
3207                re: 11.323056757801531,
3208                im: 8.032803553061555,
3209            },
3210            Complex {
3211                re: 11.608938207402353,
3212                im: 7.38182579110228,
3213            },
3214            Complex {
3215                re: 7.4949488093300705,
3216                im: 9.310337032908526,
3217            },
3218            Complex {
3219                re: -20.875530533628343,
3220                im: 13.009431038590833,
3221            },
3222            Complex {
3223                re: 7.258942355977196,
3224                im: 7.498661558561772,
3225            },
3226            Complex {
3227                re: 22.78031766679476,
3228                im: -24.139433396289775,
3229            },
3230            Complex {
3231                re: -7.840927146312576,
3232                im: -1.8384623836207723,
3233            },
3234            Complex {
3235                re: 9.539488343699805,
3236                im: 17.985129987868348,
3237            },
3238            Complex {
3239                re: -4.829002114607199,
3240                im: -4.154905564363294,
3241            },
3242            Complex {
3243                re: -0.6132329906573579,
3244                im: 11.015864924724715,
3245            },
3246            Complex {
3247                re: 11.953433218628984,
3248                im: 19.807986789971082,
3249            },
3250            Complex {
3251                re: 7.596374989049833,
3252                im: -8.728185371057059,
3253            },
3254            Complex {
3255                re: 17.006292859732937,
3256                im: 6.061949337514421,
3257            },
3258            Complex {
3259                re: 15.848844864459785,
3260                im: 3.8474155893496382,
3261            },
3262            Complex {
3263                re: 16.95185805697109,
3264                im: -6.086236361050718,
3265            },
3266            Complex {
3267                re: 2.905722655893861,
3268                im: -6.892445426229574,
3269            },
3270            Complex {
3271                re: 17.796076512729808,
3272                im: -4.6103873474952195,
3273            },
3274            Complex {
3275                re: 7.5781984285379975,
3276                im: 6.808782282254889,
3277            },
3278            Complex {
3279                re: -19.82034690171866,
3280                im: -5.844319451999288,
3281            },
3282            Complex {
3283                re: 7.928715686974101,
3284                im: -8.77069490663079,
3285            },
3286            Complex {
3287                re: -4.021511858300244,
3288                im: -10.818256132479563,
3289            },
3290            Complex {
3291                re: 3.9816887204042852,
3292                im: 8.363299527931252,
3293            },
3294            Complex {
3295                re: 22.596823041393687,
3296                im: -11.2073051458925,
3297            },
3298            Complex {
3299                re: 10.923270315321414,
3300                im: -20.160908804152,
3301            },
3302            Complex {
3303                re: -10.888188252521802,
3304                im: 3.2850920669322594,
3305            },
3306            Complex {
3307                re: -14.947207915033442,
3308                im: -30.666505229255485,
3309            },
3310            Complex {
3311                re: 21.102845868254324,
3312                im: 2.3175884324984803,
3313            },
3314            Complex {
3315                re: -2.933963356496125,
3316                im: -13.57308399451193,
3317            },
3318            Complex {
3319                re: -7.14169211848375,
3320                im: -9.596336796121513,
3321            },
3322            Complex {
3323                re: 6.857425784332723,
3324                im: 0.5087278403910955,
3325            },
3326            Complex {
3327                re: -15.332204118455374,
3328                im: 11.645237532414688,
3329            },
3330            Complex {
3331                re: 19.642295422250577,
3332                im: 11.881757478681365,
3333            },
3334            Complex {
3335                re: -11.867661469634722,
3336                im: 2.972642945278531,
3337            },
3338            Complex {
3339                re: -5.894172926171458,
3340                im: 4.228356502753517,
3341            },
3342            Complex {
3343                re: -16.525768791071815,
3344                im: -15.362910261084869,
3345            },
3346            Complex {
3347                re: 3.00338946255431,
3348                im: -12.32677638116985,
3349            },
3350            Complex {
3351                re: -4.089457034557412,
3352                im: 6.9701078285030835,
3353            },
3354            Complex {
3355                re: -3.6397445515223654,
3356                im: -11.289710408847077,
3357            },
3358            Complex {
3359                re: 16.9490182195718,
3360                im: 10.520553026633424,
3361            },
3362            Complex {
3363                re: -11.972818953490048,
3364                im: -7.546930330428587,
3365            },
3366            Complex {
3367                re: 14.103118632159022,
3368                im: 22.813881296932706,
3369            },
3370            Complex {
3371                re: 1.419337343927472,
3372                im: 2.8532414359337994,
3373            },
3374            Complex {
3375                re: -3.745912044472835,
3376                im: 8.23418046383562,
3377            },
3378            Complex {
3379                re: 0.7576141414975934,
3380                im: 0.46159776549204246,
3381            },
3382            Complex {
3383                re: 8.560210834997154,
3384                im: 7.762746011732926,
3385            },
3386            Complex {
3387                re: 5.561934805177291,
3388                im: -11.778331146748487,
3389            },
3390            Complex {
3391                re: 3.6914691250000757,
3392                im: 17.32878298973776,
3393            },
3394            Complex {
3395                re: -11.908498895994786,
3396                im: -12.772959685492228,
3397            },
3398            Complex {
3399                re: 0.33429522751582663,
3400                im: -5.916837217392783,
3401            },
3402            Complex {
3403                re: -14.083173987600812,
3404                im: -9.229858610953713,
3405            },
3406            Complex {
3407                re: -35.81809790383742,
3408                im: -7.247401843414047,
3409            },
3410            Complex {
3411                re: -3.179163543694573,
3412                im: -12.673451732757076,
3413            },
3414            Complex {
3415                re: 15.287888093934558,
3416                im: 9.403954220621884,
3417            },
3418            Complex {
3419                re: -5.409894259425638,
3420                im: -8.320676155385472,
3421            },
3422            Complex {
3423                re: -4.1729934023316835,
3424                im: -1.551367438081924,
3425            },
3426            Complex {
3427                re: -13.614611545941951,
3428                im: 11.677690329288858,
3429            },
3430            Complex {
3431                re: -16.60123564079211,
3432                im: -7.437508661009771,
3433            },
3434            Complex {
3435                re: -11.094979764846544,
3436                im: 0.7233275685920879,
3437            },
3438            Complex {
3439                re: 13.735644699413761,
3440                im: 2.277319820165805,
3441            },
3442            Complex {
3443                re: 8.477201316604098,
3444                im: -9.158895501829743,
3445            },
3446            Complex {
3447                re: -8.818315166064043,
3448                im: 10.114913597890418,
3449            },
3450            Complex {
3451                re: 9.211392800434169,
3452                im: -13.123823213087773,
3453            },
3454            Complex {
3455                re: 12.837141274126733,
3456                im: 5.58472688022622,
3457            },
3458            Complex {
3459                re: 1.9448078191168792,
3460                im: -8.497269496599511,
3461            },
3462            Complex {
3463                re: -12.520424186372153,
3464                im: -3.555398860552507,
3465            },
3466            Complex {
3467                re: 12.101500125759603,
3468                im: 15.655411947329249,
3469            },
3470            Complex {
3471                re: 8.057374233664211,
3472                im: 5.325546497716675,
3473            },
3474            Complex {
3475                re: 17.742464118514654,
3476                im: 11.181572700268543,
3477            },
3478            Complex {
3479                re: 1.042500166261835,
3480                im: -2.7927071937110903,
3481            },
3482            Complex {
3483                re: 3.917410524452299,
3484                im: 14.124352686538769,
3485            },
3486            Complex {
3487                re: 11.48567453661705,
3488                im: 1.307017857399551,
3489            },
3490            Complex {
3491                re: 2.199721450292288,
3492                im: -35.343078404863626,
3493            },
3494            Complex {
3495                re: -12.18019881448965,
3496                im: 18.841639918237533,
3497            },
3498            Complex {
3499                re: -15.029231240335779,
3500                im: -0.18741617432278357,
3501            },
3502            Complex {
3503                re: 7.91056781703674,
3504                im: 10.50747330791755,
3505            },
3506            Complex {
3507                re: 8.553657336293998,
3508                im: 6.916043398125792,
3509            },
3510            Complex {
3511                re: -14.977436835980592,
3512                im: -4.2520198855989975,
3513            },
3514            Complex {
3515                re: 7.294461356943452,
3516                im: -4.995112461808724,
3517            },
3518            Complex {
3519                re: 0.8905825100294673,
3520                im: 6.964051265779461,
3521            },
3522            Complex {
3523                re: -8.260339089999988,
3524                im: -19.757896363768044,
3525            },
3526            Complex {
3527                re: 18.4025421382188,
3528                im: -1.3243441417072734,
3529            },
3530            Complex {
3531                re: -13.922348741740645,
3532                im: 9.515035619762752,
3533            },
3534            Complex {
3535                re: -23.000644226322635,
3536                im: 29.76235959240597,
3537            },
3538            Complex {
3539                re: 22.89072024246816,
3540                im: -7.911324468331986,
3541            },
3542            Complex {
3543                re: -36.372214914564616,
3544                im: -1.9342417519548718,
3545            },
3546            Complex {
3547                re: 3.1066703854379316,
3548                im: -20.047764076009752,
3549            },
3550            Complex {
3551                re: -11.533844713883816,
3552                im: 2.6997417357259863,
3553            },
3554            Complex {
3555                re: 24.072273560955367,
3556                im: -11.326860558065514,
3557            },
3558            Complex {
3559                re: -14.797612547572715,
3560                im: 6.0055783847261575,
3561            },
3562            Complex {
3563                re: -20.865479153335432,
3564                im: 14.203053480056692,
3565            },
3566            Complex {
3567                re: 12.567077253572496,
3568                im: 0.15086884726077532,
3569            },
3570            Complex {
3571                re: 10.517215705505205,
3572                im: 27.019591282991698,
3573            },
3574            Complex {
3575                re: -16.24787797616591,
3576                im: -0.8954907212287146,
3577            },
3578            Complex {
3579                re: -16.130855130465964,
3580                im: 15.310508909107519,
3581            },
3582            Complex {
3583                re: -4.241793512032968,
3584                im: 6.756925616187872,
3585            },
3586            Complex {
3587                re: -2.654088302042653,
3588                im: -13.560323192174225,
3589            },
3590            Complex {
3591                re: -8.295919299533336,
3592                im: 14.356303897350752,
3593            },
3594            Complex {
3595                re: 26.62725793569047,
3596                im: -11.07220445983889,
3597            },
3598            Complex {
3599                re: 25.93443599596089,
3600                im: 11.605255488779477,
3601            },
3602            Complex {
3603                re: -14.715433373485855,
3604                im: -3.2407089008652976,
3605            },
3606            Complex {
3607                re: -20.156476034208623,
3608                im: -26.315873827002076,
3609            },
3610            Complex {
3611                re: -8.567845410995329,
3612                im: 0.8842117127701918,
3613            },
3614            Complex {
3615                re: 3.418817838625171,
3616                im: -11.0735781131217,
3617            },
3618            Complex {
3619                re: -3.9803819375937195,
3620                im: -4.20503817869988,
3621            },
3622            Complex {
3623                re: 8.829091493196305,
3624                im: 9.850007073377045,
3625            },
3626            Complex {
3627                re: 9.30028212795435,
3628                im: 16.247225172007106,
3629            },
3630            Complex {
3631                re: 3.145363301533669,
3632                im: 6.885036701747389,
3633            },
3634            Complex {
3635                re: 4.476717772890202,
3636                im: -18.749083005942254,
3637            },
3638            Complex {
3639                re: 18.924073692185623,
3640                im: -12.688994419883889,
3641            },
3642            Complex {
3643                re: -4.3578956547199095,
3644                im: 6.646860929608399,
3645            },
3646            Complex {
3647                re: 21.433616741752683,
3648                im: 14.664386188909688,
3649            },
3650            Complex {
3651                re: 18.386968512789604,
3652                im: 7.990937733249016,
3653            },
3654            Complex {
3655                re: -16.854574072763214,
3656                im: -5.597022216281496,
3657            },
3658            Complex {
3659                re: -1.082792938910849,
3660                im: -0.507252834006239,
3661            },
3662            Complex {
3663                re: 6.42210998338753,
3664                im: 14.041172265222881,
3665            },
3666            Complex {
3667                re: -2.0102504213951295,
3668                im: -9.916700396908539,
3669            },
3670            Complex {
3671                re: -11.403953749196647,
3672                im: 15.233674866180031,
3673            },
3674            Complex {
3675                re: -2.026414691146724,
3676                im: 20.730364000616134,
3677            },
3678            Complex {
3679                re: 6.403120201563759,
3680                im: -16.71796096109781,
3681            },
3682            Complex {
3683                re: -15.330142808464194,
3684                im: -9.908302696590997,
3685            },
3686            Complex {
3687                re: 4.175055397113709,
3688                im: 25.630576454538875,
3689            },
3690            Complex {
3691                re: -16.87206161584738,
3692                im: -0.2879112228343317,
3693            },
3694            Complex {
3695                re: -8.92691117587019,
3696                im: 2.4912815909769086,
3697            },
3698            Complex {
3699                re: -11.33762784790602,
3700                im: -12.163218988413234,
3701            },
3702            Complex {
3703                re: -7.280989745215731,
3704                im: 6.297667123780089,
3705            },
3706            Complex {
3707                re: -10.954018909366477,
3708                im: 4.8775303271552595,
3709            },
3710            Complex {
3711                re: 26.297490436951794,
3712                im: 12.123165249663739,
3713            },
3714            Complex {
3715                re: 42.05151867540354,
3716                im: -24.249261819757184,
3717            },
3718            Complex {
3719                re: -0.9807544146123472,
3720                im: -6.600570061650941,
3721            },
3722            Complex {
3723                re: 18.59065004060976,
3724                im: 8.140966194668943,
3725            },
3726            Complex {
3727                re: -2.299087292246986,
3728                im: 8.152566008623682,
3729            },
3730            Complex {
3731                re: 4.962004253573276,
3732                im: -0.321192252054046,
3733            },
3734            Complex {
3735                re: -15.678233133171128,
3736                im: -12.61619489521458,
3737            },
3738            Complex {
3739                re: -12.456047869818043,
3740                im: -4.53086430594861,
3741            },
3742            Complex {
3743                re: -6.240774073762967,
3744                im: -14.733241931143883,
3745            },
3746            Complex {
3747                re: -15.703443906392325,
3748                im: 26.91460832015491,
3749            },
3750            Complex {
3751                re: -17.22602140604675,
3752                im: -9.135525191308679,
3753            },
3754            Complex {
3755                re: 23.58713237648665,
3756                im: -15.161388167587472,
3757            },
3758            Complex {
3759                re: 18.427591863037755,
3760                im: 14.114807991861522,
3761            },
3762            Complex {
3763                re: -2.1129445309072734,
3764                im: -3.0754638470100772,
3765            },
3766            Complex {
3767                re: 2.6892066470071434,
3768                im: 7.006136031174257,
3769            },
3770            Complex {
3771                re: 5.609435422593936,
3772                im: -17.295596399214052,
3773            },
3774            Complex {
3775                re: 27.64407367783039,
3776                im: 6.069293026161215,
3777            },
3778            Complex {
3779                re: 2.8031474235241554,
3780                im: 10.319981743791185,
3781            },
3782            Complex {
3783                re: -7.60373181082705,
3784                im: 27.419091620669686,
3785            },
3786            Complex {
3787                re: -10.260540105465331,
3788                im: -14.169850084079734,
3789            },
3790            Complex {
3791                re: 12.293943262551142,
3792                im: 9.294279148147245,
3793            },
3794            Complex {
3795                re: 14.928979765808208,
3796                im: 2.3696734866860343,
3797            },
3798            Complex {
3799                re: 6.438216577717645,
3800                im: 5.573709934873667,
3801            },
3802            Complex {
3803                re: 16.560316800439534,
3804                im: 14.13743675989354,
3805            },
3806            Complex {
3807                re: -8.000631850337644,
3808                im: 5.009263144375194,
3809            },
3810            Complex {
3811                re: -8.31769167476375,
3812                im: 24.613668530313234,
3813            },
3814            Complex {
3815                re: 16.069234000531814,
3816                im: 22.449050574673343,
3817            },
3818            Complex {
3819                re: -6.951916687039786,
3820                im: 6.039575096529692,
3821            },
3822            Complex {
3823                re: 14.913899980622832,
3824                im: -1.4703649172893387,
3825            },
3826            Complex {
3827                re: 5.755769468242623,
3828                im: 8.797096421180843,
3829            },
3830            Complex {
3831                re: 7.827342796051067,
3832                im: -13.05693103844332,
3833            },
3834            Complex {
3835                re: -15.921266386387867,
3836                im: -12.88382928440214,
3837            },
3838            Complex {
3839                re: 9.010654660263718,
3840                im: 6.492992467440838,
3841            },
3842            Complex {
3843                re: -29.90717940675159,
3844                im: 9.367336533839858,
3845            },
3846            Complex {
3847                re: 2.0875882732250948,
3848                im: -1.6263359084168592,
3849            },
3850            Complex {
3851                re: -7.592577009854719,
3852                im: -5.915380586077681,
3853            },
3854            Complex {
3855                re: -4.541179139920156,
3856                im: -5.981800982658909,
3857            },
3858            Complex {
3859                re: -4.386369676261697,
3860                im: -19.452604887463124,
3861            },
3862            Complex {
3863                re: -11.33167870976195,
3864                im: 21.181077824703962,
3865            },
3866            Complex {
3867                re: 3.2037298711829623,
3868                im: 7.6212884412390345,
3869            },
3870            Complex {
3871                re: -4.592636779613006,
3872                im: -8.077623381084361,
3873            },
3874            Complex {
3875                re: 10.603110549444935,
3876                im: 12.762691781276759,
3877            },
3878            Complex {
3879                re: -6.533116056239498,
3880                im: -10.485967855732987,
3881            },
3882            Complex {
3883                re: 4.377155865047593,
3884                im: 23.455078347683905,
3885            },
3886            Complex {
3887                re: -15.915592755842708,
3888                im: 5.608790602985215,
3889            },
3890            Complex {
3891                re: 3.6393718918579125,
3892                im: 13.58174703550222,
3893            },
3894            Complex {
3895                re: -2.995724703408409,
3896                im: -18.357614779558805,
3897            },
3898            Complex {
3899                re: -39.23755073667651,
3900                im: -13.138857556903066,
3901            },
3902            Complex {
3903                re: 7.26719578608663,
3904                im: -3.8110477195223726,
3905            },
3906            Complex {
3907                re: 26.479892499941958,
3908                im: 4.33388775293214,
3909            },
3910            Complex {
3911                re: 3.018689487672842,
3912                im: 11.600672768248556,
3913            },
3914            Complex {
3915                re: -0.7667005235898348,
3916                im: 17.072759393674154,
3917            },
3918            Complex {
3919                re: -11.484077932980401,
3920                im: -4.407517216413414,
3921            },
3922            Complex {
3923                re: -17.055148123052636,
3924                im: -8.261014991744105,
3925            },
3926            Complex {
3927                re: 23.049423647653946,
3928                im: 19.040447777183104,
3929            },
3930            Complex {
3931                re: -12.209578119944785,
3932                im: -9.505835117642146,
3933            },
3934            Complex {
3935                re: 4.480672223281408,
3936                im: 11.387274202816112,
3937            },
3938            Complex {
3939                re: 19.31291799982691,
3940                im: 5.161433914765398,
3941            },
3942            Complex {
3943                re: -21.102992441924254,
3944                im: -9.614956514445508,
3945            },
3946            Complex {
3947                re: -15.628447885695623,
3948                im: 3.1755218180196003,
3949            },
3950            Complex {
3951                re: 3.715185982346979,
3952                im: 25.612415682051775,
3953            },
3954            Complex {
3955                re: 0.5285263532308679,
3956                im: 21.123777965530756,
3957            },
3958            Complex {
3959                re: 12.209726311114306,
3960                im: 14.277632030696001,
3961            },
3962            Complex {
3963                re: 10.210162618831559,
3964                im: 13.72727614728857,
3965            },
3966            Complex {
3967                re: -6.549254372853877,
3968                im: 1.4391492660120813,
3969            },
3970            Complex {
3971                re: -6.368727700653185,
3972                im: -10.218177137501893,
3973            },
3974            Complex {
3975                re: 9.960556461671388,
3976                im: 13.04704641721253,
3977            },
3978            Complex {
3979                re: -18.30367902435369,
3980                im: -4.92067002895139,
3981            },
3982            Complex {
3983                re: -5.741718387613791,
3984                im: -19.575865047943104,
3985            },
3986            Complex {
3987                re: 7.711814965409347,
3988                im: 3.1054668724163665,
3989            },
3990            Complex {
3991                re: 1.4200753964995414,
3992                im: 12.386074858968364,
3993            },
3994            Complex {
3995                re: -26.455396959491345,
3996                im: -11.872050529307824,
3997            },
3998            Complex {
3999                re: 10.684318933841451,
4000                im: 0.01596900962821035,
4001            },
4002            Complex {
4003                re: 9.809368467015116,
4004                im: 13.61634828398048,
4005            },
4006            Complex {
4007                re: -2.174044572270148,
4008                im: 19.69421823807732,
4009            },
4010            Complex {
4011                re: 4.055926861813366,
4012                im: -1.5112195500316759,
4013            },
4014            Complex {
4015                re: -16.069169321571017,
4016                im: 5.963444577049006,
4017            },
4018            Complex {
4019                re: 1.9415907292868297,
4020                im: 13.316559260975428,
4021            },
4022            Complex {
4023                re: -11.121415102656094,
4024                im: -8.274310751341392,
4025            },
4026            Complex {
4027                re: 8.117010176328293,
4028                im: -13.10015913768985,
4029            },
4030            Complex {
4031                re: -16.860991336765686,
4032                im: 0.8628627618680036,
4033            },
4034            Complex {
4035                re: 11.572833682306797,
4036                im: -17.277153882679364,
4037            },
4038            Complex {
4039                re: -1.2785760006356908,
4040                im: 5.970002884768071,
4041            },
4042            Complex {
4043                re: 12.703507623114232,
4044                im: 0.6351663467350761,
4045            },
4046            Complex {
4047                re: 11.042802275422272,
4048                im: -3.3971241916022814,
4049            },
4050            Complex {
4051                re: -6.36000283633641,
4052                im: 3.722634236277652,
4053            },
4054            Complex {
4055                re: -5.467348955440871,
4056                im: 2.7323609762716545,
4057            },
4058            Complex {
4059                re: -3.165865556452656,
4060                im: -6.55051812710666,
4061            },
4062            Complex {
4063                re: -25.06238314538698,
4064                im: -6.0852365642136625,
4065            },
4066            Complex {
4067                re: -30.245332537718802,
4068                im: -13.948779896109226,
4069            },
4070            Complex {
4071                re: 11.157461537726812,
4072                im: -5.992026920649378,
4073            },
4074            Complex {
4075                re: -3.8578007257714644,
4076                im: -1.2725501365946208,
4077            },
4078            Complex {
4079                re: 3.826236712722059,
4080                im: 8.169271311972125,
4081            },
4082            Complex {
4083                re: 30.374712845187517,
4084                im: 4.692232489440425,
4085            },
4086            Complex {
4087                re: 3.854477525551415,
4088                im: -2.544958960459998,
4089            },
4090            Complex {
4091                re: 2.742873047532915,
4092                im: -5.90125833426189,
4093            },
4094            Complex {
4095                re: -4.749088401379869,
4096                im: 6.978424225425753,
4097            },
4098            Complex {
4099                re: -1.8911742575641393,
4100                im: 1.2725033140408115,
4101            },
4102            Complex {
4103                re: 10.255429841972777,
4104                im: 0.8048476109415699,
4105            },
4106            Complex {
4107                re: -8.28427919368095,
4108                im: -13.356610115834755,
4109            },
4110            Complex {
4111                re: -2.72698126258146,
4112                im: -8.408564250911393,
4113            },
4114            Complex {
4115                re: -6.287280743145965,
4116                im: 1.0212088073104075,
4117            },
4118            Complex {
4119                re: 3.3825599340248793,
4120                im: 6.215833982166582,
4121            },
4122            Complex {
4123                re: -10.64448963122655,
4124                im: -4.406030067575616,
4125            },
4126            Complex {
4127                re: -5.994853684263722,
4128                im: 28.235107733150034,
4129            },
4130            Complex {
4131                re: 11.761898702005205,
4132                im: 12.102879685348416,
4133            },
4134            Complex {
4135                re: -1.0689741530496946,
4136                im: 6.25793612887723,
4137            },
4138            Complex {
4139                re: -7.682836845111964,
4140                im: -19.37759979764929,
4141            },
4142            Complex {
4143                re: -21.511882138462013,
4144                im: 14.61810822642105,
4145            },
4146            Complex {
4147                re: 12.550186065221157,
4148                im: -21.552701630593972,
4149            },
4150            Complex {
4151                re: 3.8560489046282687,
4152                im: 35.533429181611375,
4153            },
4154            Complex {
4155                re: 20.62798863910714,
4156                im: 1.3602835755393112,
4157            },
4158            Complex {
4159                re: 2.7022395532117245,
4160                im: 5.081215320430115,
4161            },
4162            Complex {
4163                re: 4.711614201227228,
4164                im: -7.588658338167244,
4165            },
4166            Complex {
4167                re: -15.95304610942188,
4168                im: -10.38296689535735,
4169            },
4170            Complex {
4171                re: 3.2038504439593893,
4172                im: -8.60277010835144,
4173            },
4174            Complex {
4175                re: 7.058259638920978,
4176                im: -4.804788432764228,
4177            },
4178            Complex {
4179                re: -1.5749473671299645,
4180                im: -9.920446741683248,
4181            },
4182            Complex {
4183                re: -9.226948124705018,
4184                im: 8.71967934679002,
4185            },
4186            Complex {
4187                re: 12.109778334137618,
4188                im: 6.209330309094593,
4189            },
4190            Complex {
4191                re: 6.14920541628799,
4192                im: 1.3184532025314413,
4193            },
4194            Complex {
4195                re: -4.830505849024606,
4196                im: -1.8163522426587138,
4197            },
4198            Complex {
4199                re: -38.81085958561469,
4200                im: 0.6887780941914894,
4201            },
4202            Complex {
4203                re: -15.346423595097743,
4204                im: 2.583863297839196,
4205            },
4206            Complex {
4207                re: -2.6546245457525526,
4208                im: 12.126690458879771,
4209            },
4210            Complex {
4211                re: -8.786600389096941,
4212                im: 5.601893852441095,
4213            },
4214            Complex {
4215                re: -2.597452409439314,
4216                im: -14.267887834028443,
4217            },
4218            Complex {
4219                re: -4.313692369005295,
4220                im: 11.082654835844105,
4221            },
4222            Complex {
4223                re: 1.201707014306613,
4224                im: -19.617531686163808,
4225            },
4226            Complex {
4227                re: 3.011038284481966,
4228                im: -6.700208871898555,
4229            },
4230            Complex {
4231                re: 4.0537375409724845,
4232                im: -26.81927740707893,
4233            },
4234            Complex {
4235                re: 17.761615817565445,
4236                im: 4.934303753511828,
4237            },
4238            Complex {
4239                re: -19.69165281128152,
4240                im: -2.332929663980895,
4241            },
4242            Complex {
4243                re: 13.126037286864289,
4244                im: 3.657049015132735,
4245            },
4246            Complex {
4247                re: -2.12884095231788,
4248                im: -3.0016413934070565,
4249            },
4250            Complex {
4251                re: -27.834492707716556,
4252                im: -5.516630193477832,
4253            },
4254            Complex {
4255                re: 8.458269237440566,
4256                im: -3.341367949856302,
4257            },
4258            Complex {
4259                re: 16.22922437834491,
4260                im: -8.548044334420009,
4261            },
4262            Complex {
4263                re: 17.335808252855756,
4264                im: 25.859040846749792,
4265            },
4266            Complex {
4267                re: 7.644920368732074,
4268                im: 16.66917258339536,
4269            },
4270            Complex {
4271                re: 2.1223779085400722,
4272                im: -2.4658770090452755,
4273            },
4274            Complex {
4275                re: -3.80853355515948,
4276                im: -13.906944826224175,
4277            },
4278            Complex {
4279                re: -4.986630771171738,
4280                im: 16.46318037695779,
4281            },
4282            Complex {
4283                re: 7.381614532665513,
4284                im: 13.001496914432721,
4285            },
4286            Complex {
4287                re: 9.612147095085364,
4288                im: 4.531711335346824,
4289            },
4290            Complex {
4291                re: 8.145512029279173,
4292                im: -4.937451993120042,
4293            },
4294            Complex {
4295                re: 12.645768562388744,
4296                im: 7.042732562575678,
4297            },
4298            Complex {
4299                re: 4.26025398630798,
4300                im: -3.653944917675622,
4301            },
4302            Complex {
4303                re: -5.658246245746236,
4304                im: 21.74901290447518,
4305            },
4306            Complex {
4307                re: 30.965986145870552,
4308                im: -7.9911203090434455,
4309            },
4310            Complex {
4311                re: 4.103253695010379,
4312                im: 1.196335278931454,
4313            },
4314            Complex {
4315                re: 13.540131655978787,
4316                im: 16.91557114804047,
4317            },
4318            Complex {
4319                re: 3.5015380750430616,
4320                im: 6.146906778343098,
4321            },
4322            Complex {
4323                re: -1.1187879340852298,
4324                im: -12.778093927229616,
4325            },
4326            Complex {
4327                re: -2.9861248017797064,
4328                im: -8.886737258373083,
4329            },
4330            Complex {
4331                re: -13.156134408379973,
4332                im: 9.140987495111546,
4333            },
4334            Complex {
4335                re: 2.260149813010156,
4336                im: -6.009768060059912,
4337            },
4338            Complex {
4339                re: -19.78431988758574,
4340                im: -0.4694728955676819,
4341            },
4342            Complex {
4343                re: 5.737262572824283,
4344                im: 8.48021069173669,
4345            },
4346            Complex {
4347                re: 19.19208583450884,
4348                im: -28.204173015851033,
4349            },
4350            Complex {
4351                re: 11.872650269147348,
4352                im: 23.10987669770487,
4353            },
4354            Complex {
4355                re: 5.705005769676062,
4356                im: -7.837272471135287,
4357            },
4358            Complex {
4359                re: -10.77887801928246,
4360                im: 4.6365281936774725,
4361            },
4362            Complex {
4363                re: -2.8345454201693077,
4364                im: 20.635554885825897,
4365            },
4366            Complex {
4367                re: -5.707940696998806,
4368                im: -9.625418098590819,
4369            },
4370            Complex {
4371                re: -6.9707303564570555,
4372                im: -14.201300182306287,
4373            },
4374            Complex {
4375                re: -13.684227910975062,
4376                im: 5.0421722646548455,
4377            },
4378            Complex {
4379                re: 4.3901080221944495,
4380                im: -16.21645196613673,
4381            },
4382            Complex {
4383                re: -12.263562705227844,
4384                im: -12.034193601827198,
4385            },
4386            Complex {
4387                re: -9.551074335304286,
4388                im: 23.711647766754194,
4389            },
4390            Complex {
4391                re: -8.489600737453816,
4392                im: -2.5806790802215023,
4393            },
4394            Complex {
4395                re: 13.164645635718685,
4396                im: 9.836666240124085,
4397            },
4398            Complex {
4399                re: 17.471332045082526,
4400                im: 12.438064043307795,
4401            },
4402            Complex {
4403                re: -5.510678720159192,
4404                im: -6.189378542607947,
4405            },
4406            Complex {
4407                re: 17.640990920219124,
4408                im: 10.723871204069859,
4409            },
4410            Complex {
4411                re: -24.63242400305045,
4412                im: 19.506474233885957,
4413            },
4414            Complex {
4415                re: -8.228486482671354,
4416                im: 16.421079871272873,
4417            },
4418            Complex {
4419                re: 0.7805996556358863,
4420                im: 11.238074059094135,
4421            },
4422            Complex {
4423                re: -4.1948874986833165,
4424                im: 3.4090884176334013,
4425            },
4426            Complex {
4427                re: 0.8326035690871221,
4428                im: 3.3603099066931335,
4429            },
4430            Complex {
4431                re: -10.198487634663358,
4432                im: -10.65748277681271,
4433            },
4434            Complex {
4435                re: -13.606550369289208,
4436                im: 18.615788809982927,
4437            },
4438            Complex {
4439                re: -11.053643475486972,
4440                im: -2.6994105067768714,
4441            },
4442            Complex {
4443                re: 10.752145421974562,
4444                im: 16.325575960132117,
4445            },
4446            Complex {
4447                re: -13.848759246886658,
4448                im: 1.7960312503317741,
4449            },
4450            Complex {
4451                re: -20.0466870062832,
4452                im: 24.540491386174025,
4453            },
4454            Complex {
4455                re: 18.717319608145093,
4456                im: -1.9995160502807252,
4457            },
4458            Complex {
4459                re: 11.045627001925844,
4460                im: -6.122798878938731,
4461            },
4462            Complex {
4463                re: -6.397687826958159,
4464                im: -6.469895723603274,
4465            },
4466            Complex {
4467                re: 5.126769926896805,
4468                im: 9.160332018861535,
4469            },
4470            Complex {
4471                re: 8.776295349366311,
4472                im: 0.05223269349528348,
4473            },
4474            Complex {
4475                re: -20.51067356916887,
4476                im: 13.927471135330785,
4477            },
4478            Complex {
4479                re: -18.605654615777336,
4480                im: 25.01030294809027,
4481            },
4482            Complex {
4483                re: -0.20325865017149586,
4484                im: -2.0994330891917166,
4485            },
4486            Complex {
4487                re: -1.3461630569168113,
4488                im: 0.7892436123345741,
4489            },
4490            Complex {
4491                re: -1.302531334359899,
4492                im: 6.680651405284232,
4493            },
4494            Complex {
4495                re: 15.443686816835282,
4496                im: -16.446767792224804,
4497            },
4498            Complex {
4499                re: -3.173906564719852,
4500                im: 7.804197310160529,
4501            },
4502            Complex {
4503                re: -14.52314906201335,
4504                im: -22.35865261180171,
4505            },
4506            Complex {
4507                re: 6.6416145893372,
4508                im: 17.504370980859786,
4509            },
4510            Complex {
4511                re: 4.068487753457497,
4512                im: -18.297929082845982,
4513            },
4514            Complex {
4515                re: 20.848024059146134,
4516                im: -24.98959454583469,
4517            },
4518            Complex {
4519                re: -6.1433351862734495,
4520                im: -10.318410765948219,
4521            },
4522            Complex {
4523                re: -14.978653369696001,
4524                im: -6.955104233308481,
4525            },
4526            Complex {
4527                re: 0.865342693790204,
4528                im: 6.573736040651352,
4529            },
4530            Complex {
4531                re: 9.217201019612869,
4532                im: -3.8844769523014886,
4533            },
4534            Complex {
4535                re: -0.766249679887923,
4536                im: 1.6488301863669923,
4537            },
4538            Complex {
4539                re: 1.0685859538001234,
4540                im: -24.99162381552571,
4541            },
4542            Complex {
4543                re: -2.757316366838827,
4544                im: -14.15121704596666,
4545            },
4546            Complex {
4547                re: -15.257691258355141,
4548                im: 12.37303360804286,
4549            },
4550            Complex {
4551                re: 14.507676675795336,
4552                im: -8.948865571311488,
4553            },
4554            Complex {
4555                re: 12.198265603435264,
4556                im: 6.722497575651578,
4557            },
4558            Complex {
4559                re: -13.218325018169551,
4560                im: 6.538509973308958,
4561            },
4562            Complex {
4563                re: -15.978772719767209,
4564                im: 3.7454399030652556,
4565            },
4566            Complex {
4567                re: 3.5050524519147874,
4568                im: 11.038299049232213,
4569            },
4570            Complex {
4571                re: 20.41424701358951,
4572                im: -8.161417636912713,
4573            },
4574            Complex {
4575                re: 1.2478265159241992,
4576                im: 5.267003053678193,
4577            },
4578            Complex {
4579                re: 16.99016600112104,
4580                im: 11.995731717148477,
4581            },
4582            Complex {
4583                re: 17.030026960362804,
4584                im: -11.690850709100493,
4585            },
4586            Complex {
4587                re: 21.427941036877062,
4588                im: 11.22616551402438,
4589            },
4590            Complex {
4591                re: 4.899248073630557,
4592                im: -9.295363152449259,
4593            },
4594            Complex {
4595                re: -2.425357630196171,
4596                im: 8.504534944890816,
4597            },
4598            Complex {
4599                re: -0.5501120969280597,
4600                im: 12.94592078230703,
4601            },
4602            Complex {
4603                re: 6.672376445741033,
4604                im: -11.975217399979176,
4605            },
4606            Complex {
4607                re: 10.093256480908213,
4608                im: 2.0044680512255306,
4609            },
4610            Complex {
4611                re: 1.9099955696231534,
4612                im: -5.288800977604185,
4613            },
4614            Complex {
4615                re: -28.89528675937086,
4616                im: -1.4705993543988076,
4617            },
4618            Complex {
4619                re: 10.283368247136547,
4620                im: -8.965573910432646,
4621            },
4622            Complex {
4623                re: -2.654580695043413,
4624                im: 12.219851400262627,
4625            },
4626            Complex {
4627                re: 8.666894162652552,
4628                im: 12.74585234907248,
4629            },
4630            Complex {
4631                re: 10.987998193367613,
4632                im: -13.849087320571963,
4633            },
4634            Complex {
4635                re: 19.89893022764705,
4636                im: -0.7077227962216974,
4637            },
4638            Complex {
4639                re: 23.70997074850015,
4640                im: -0.03793354031304119,
4641            },
4642            Complex {
4643                re: 2.233761901952521,
4644                im: 0.2630978735070837,
4645            },
4646            Complex {
4647                re: 9.30781926441566,
4648                im: -6.952592314573268,
4649            },
4650            Complex {
4651                re: 1.5805449565792564,
4652                im: 8.894969134726072,
4653            },
4654            Complex {
4655                re: -21.601262489318643,
4656                im: 0.7965624700190403,
4657            },
4658            Complex {
4659                re: -11.137093016561757,
4660                im: 0.09974786146183678,
4661            },
4662            Complex {
4663                re: -16.890210416177595,
4664                im: 7.791150338769183,
4665            },
4666            Complex {
4667                re: -22.632603887986967,
4668                im: -4.113981038536977,
4669            },
4670            Complex {
4671                re: -7.461226644424132,
4672                im: -14.183739751421083,
4673            },
4674            Complex {
4675                re: -2.1506951111484565,
4676                im: 6.943001794579617,
4677            },
4678            Complex {
4679                re: -21.445111314637206,
4680                im: 2.0275542087971345,
4681            },
4682            Complex {
4683                re: -0.7548634418211386,
4684                im: 2.657897731253551,
4685            },
4686            Complex {
4687                re: -1.3641778512516733,
4688                im: 2.022119090399185,
4689            },
4690            Complex {
4691                re: 18.853632498463533,
4692                im: -9.772505187164587,
4693            },
4694            Complex {
4695                re: 6.4455937146906646,
4696                im: 9.413108397436023,
4697            },
4698            Complex {
4699                re: 4.337210745213864,
4700                im: 9.41239480351584,
4701            },
4702            Complex {
4703                re: -20.38334233779129,
4704                im: -0.7136675109534991,
4705            },
4706            Complex {
4707                re: -10.128176448916157,
4708                im: -6.510218851042784,
4709            },
4710            Complex {
4711                re: 1.2734348021642112,
4712                im: -24.56318130774961,
4713            },
4714            Complex {
4715                re: -16.252156966983723,
4716                im: -1.114818896499067,
4717            },
4718            Complex {
4719                re: -3.688785322645707,
4720                im: 3.55471906207627,
4721            },
4722            Complex {
4723                re: -21.087329322850188,
4724                im: -7.803058959918249,
4725            },
4726            Complex {
4727                re: -9.915794266146754,
4728                im: 16.60079680218079,
4729            },
4730            Complex {
4731                re: 9.635603592548925,
4732                im: -38.22226891796744,
4733            },
4734            Complex {
4735                re: 4.357674888961437,
4736                im: 6.135521203346115,
4737            },
4738            Complex {
4739                re: 18.943240946675033,
4740                im: 37.04385385061936,
4741            },
4742            Complex {
4743                re: -20.16878388839174,
4744                im: 18.8807790228959,
4745            },
4746            Complex {
4747                re: 0.29831093715601886,
4748                im: 7.261235907752636,
4749            },
4750            Complex {
4751                re: 5.887290626952598,
4752                im: 3.913775792433553,
4753            },
4754            Complex {
4755                re: 4.90850303800763,
4756                im: -1.5807037807163713,
4757            },
4758            Complex {
4759                re: 5.963075498827047,
4760                im: 6.140154157703807,
4761            },
4762            Complex {
4763                re: 6.012269379226285,
4764                im: 5.55183337510466,
4765            },
4766            Complex {
4767                re: 8.19990603938331,
4768                im: 24.128040396455987,
4769            },
4770            Complex {
4771                re: -19.935819877625786,
4772                im: -7.80894157480068,
4773            },
4774            Complex {
4775                re: -1.285744257444663,
4776                im: -4.209886601786094,
4777            },
4778            Complex {
4779                re: 2.7844275744774722,
4780                im: 24.857731485121537,
4781            },
4782            Complex {
4783                re: 3.9630730386705135,
4784                im: -21.80290579795563,
4785            },
4786            Complex {
4787                re: -2.085967427204219,
4788                im: -15.438458950071304,
4789            },
4790            Complex {
4791                re: 16.702592667396903,
4792                im: -0.7581617793671374,
4793            },
4794            Complex {
4795                re: 2.653191893685653,
4796                im: -3.17224883043358,
4797            },
4798            Complex {
4799                re: 4.925497759886728,
4800                im: -23.687260759414592,
4801            },
4802            Complex {
4803                re: 12.569142284151308,
4804                im: 4.9871690700248035,
4805            },
4806            Complex {
4807                re: 23.08865936577273,
4808                im: -10.334614586515611,
4809            },
4810            Complex {
4811                re: 12.122034547826036,
4812                im: 1.8967203644697128,
4813            },
4814            Complex {
4815                re: 1.7155218503145768,
4816                im: -7.69628879008227,
4817            },
4818            Complex {
4819                re: 26.45525173685907,
4820                im: -1.037770012403855,
4821            },
4822            Complex {
4823                re: -28.063656007877444,
4824                im: 9.688202264777933,
4825            },
4826            Complex {
4827                re: -6.263280942452175,
4828                im: -4.625626824662526,
4829            },
4830            Complex {
4831                re: -33.72107967090071,
4832                im: 15.169108971987473,
4833            },
4834            Complex {
4835                re: 1.863690325729796,
4836                im: -20.58666810627081,
4837            },
4838            Complex {
4839                re: 0.08867882477908928,
4840                im: 25.243480908725232,
4841            },
4842            Complex {
4843                re: 4.9454585045453126,
4844                im: -21.898563733746823,
4845            },
4846            Complex {
4847                re: 7.531503542232132,
4848                im: -0.4902914930487743,
4849            },
4850            Complex {
4851                re: 12.11351191869345,
4852                im: -8.53094416295561,
4853            },
4854            Complex {
4855                re: -27.699186734149986,
4856                im: -8.928313799708443,
4857            },
4858            Complex {
4859                re: 6.277146801982811,
4860                im: -8.450720350933587,
4861            },
4862            Complex {
4863                re: -2.1354336657828763,
4864                im: 4.3767805942924785,
4865            },
4866            Complex {
4867                re: 13.861741151393637,
4868                im: -1.024297830897845,
4869            },
4870            Complex {
4871                re: -13.10331736259246,
4872                im: 2.737218714464033,
4873            },
4874            Complex {
4875                re: -2.806877108582376,
4876                im: 2.7041222236150806,
4877            },
4878            Complex {
4879                re: 3.3036095629397373,
4880                im: 5.202548055643125,
4881            },
4882            Complex {
4883                re: -7.629252591829536,
4884                im: 4.14660012425563,
4885            },
4886            Complex {
4887                re: -13.224956790869715,
4888                im: 0.9934734530354614,
4889            },
4890            Complex {
4891                re: 2.5982929169465905,
4892                im: -3.9222547072220246,
4893            },
4894            Complex {
4895                re: -10.22057106591322,
4896                im: -18.181325171163383,
4897            },
4898            Complex {
4899                re: 2.1466606371304477,
4900                im: 9.504385888076929,
4901            },
4902            Complex {
4903                re: 10.379795640336512,
4904                im: 5.479861452829001,
4905            },
4906            Complex {
4907                re: -0.040422523642726915,
4908                im: -17.657096286764528,
4909            },
4910            Complex {
4911                re: 6.1394809760322895,
4912                im: -18.12845613068456,
4913            },
4914            Complex {
4915                re: -5.613279132012324,
4916                im: -7.179406593293189,
4917            },
4918            Complex {
4919                re: 8.338772028298557,
4920                im: 8.824795673929334,
4921            },
4922            Complex {
4923                re: -23.886670310672272,
4924                im: 28.42299798021065,
4925            },
4926            Complex {
4927                re: -14.274259968592098,
4928                im: -0.42302038587160684,
4929            },
4930            Complex {
4931                re: 4.8556103648423194,
4932                im: 16.51337528280246,
4933            },
4934            Complex {
4935                re: -19.635308418841085,
4936                im: -14.364692706980259,
4937            },
4938            Complex {
4939                re: 20.552886348326428,
4940                im: -34.364546998911365,
4941            },
4942            Complex {
4943                re: 17.300392898602237,
4944                im: 10.50595384234611,
4945            },
4946            Complex {
4947                re: 7.657301067419826,
4948                im: 6.456228145912306,
4949            },
4950            Complex {
4951                re: -7.030445868022754,
4952                im: 25.679217173112633,
4953            },
4954            Complex {
4955                re: -1.380332411671732,
4956                im: -9.071969950212555,
4957            },
4958            Complex {
4959                re: -17.277852242815193,
4960                im: -0.4913788457719388,
4961            },
4962            Complex {
4963                re: 8.074428475555653,
4964                im: -23.964953369333656,
4965            },
4966            Complex {
4967                re: 0.5555561956672372,
4968                im: -16.54008040150928,
4969            },
4970            Complex {
4971                re: 19.1409263517605,
4972                im: 22.526442050567674,
4973            },
4974            Complex {
4975                re: 13.509475753439574,
4976                im: -1.8474317966143587,
4977            },
4978            Complex {
4979                re: -4.83910219158668,
4980                im: -6.068220665111351,
4981            },
4982            Complex {
4983                re: 12.948913688960161,
4984                im: 19.424353991831037,
4985            },
4986            Complex {
4987                re: 19.750054402945977,
4988                im: -10.234818694324016,
4989            },
4990            Complex {
4991                re: 13.353511079115943,
4992                im: 3.497520456231807,
4993            },
4994            Complex {
4995                re: -18.873714463103994,
4996                im: -12.256381143431803,
4997            },
4998            Complex {
4999                re: 16.055438926873705,
5000                im: -0.8820144018353364,
5001            },
5002            Complex {
5003                re: 14.704895104985251,
5004                im: -6.567748202755816,
5005            },
5006            Complex {
5007                re: 11.625988807490398,
5008                im: -11.910746453550644,
5009            },
5010            Complex {
5011                re: -10.295304447609919,
5012                im: 0.7117833776706899,
5013            },
5014            Complex {
5015                re: -25.07238637132678,
5016                im: -8.671909472222943,
5017            },
5018            Complex {
5019                re: -2.0645335400627087,
5020                im: 0.4802595393731304,
5021            },
5022            Complex {
5023                re: -6.014819409329901,
5024                im: 9.95770028219696,
5025            },
5026            Complex {
5027                re: 1.0720343679377367,
5028                im: 20.110617878408213,
5029            },
5030            Complex {
5031                re: 8.5864727118142,
5032                im: 6.04343341249621,
5033            },
5034            Complex {
5035                re: 29.239583675166223,
5036                im: 13.019122186021121,
5037            },
5038            Complex {
5039                re: 6.355078337868386,
5040                im: 16.112458548992755,
5041            },
5042            Complex {
5043                re: 5.758300920144382,
5044                im: -4.544934789806314,
5045            },
5046            Complex {
5047                re: -7.992790760125365,
5048                im: 21.373516239861452,
5049            },
5050            Complex {
5051                re: 6.788067999569731,
5052                im: 4.4552734151794775,
5053            },
5054            Complex {
5055                re: -16.64144826897763,
5056                im: -3.1616553647056187,
5057            },
5058            Complex {
5059                re: 13.685780272757452,
5060                im: 5.084254724240919,
5061            },
5062            Complex {
5063                re: -11.90470909055906,
5064                im: 8.238912930322947,
5065            },
5066            Complex {
5067                re: -13.76733757602555,
5068                im: 0.6243288446742241,
5069            },
5070            Complex {
5071                re: 31.692184987454652,
5072                im: -7.669081223517979,
5073            },
5074            Complex {
5075                re: 9.056463331409178,
5076                im: 16.489220517074425,
5077            },
5078            Complex {
5079                re: 0.8114729975310464,
5080                im: 15.385408719952716,
5081            },
5082            Complex {
5083                re: -13.457228234383454,
5084                im: 0.7688731204765826,
5085            },
5086            Complex {
5087                re: 13.548365612375015,
5088                im: 2.4990230071232378,
5089            },
5090            Complex {
5091                re: 27.930368740093538,
5092                im: -22.720192389451718,
5093            },
5094            Complex {
5095                re: -10.041590589569513,
5096                im: -27.836592666687736,
5097            },
5098            Complex {
5099                re: 16.02424420930638,
5100                im: 7.743195135273027,
5101            },
5102            Complex {
5103                re: 20.507846968522387,
5104                im: -7.716171277736806,
5105            },
5106            Complex {
5107                re: -8.630339171632091,
5108                im: 6.326655471135256,
5109            },
5110            Complex {
5111                re: -5.667371729033773,
5112                im: -0.45280089159090764,
5113            },
5114            Complex {
5115                re: -8.149774885012409,
5116                im: -14.17127603893541,
5117            },
5118            Complex {
5119                re: 8.255162335328407,
5120                im: 4.1271782916110595,
5121            },
5122            Complex {
5123                re: -5.793780449413255,
5124                im: 11.432136770076815,
5125            },
5126            Complex {
5127                re: -12.669091096448405,
5128                im: 2.9672250975891115,
5129            },
5130            Complex {
5131                re: 2.813377945515576,
5132                im: -0.28141660587904305,
5133            },
5134            Complex {
5135                re: 19.020435379195924,
5136                im: 20.583685839401593,
5137            },
5138            Complex {
5139                re: -5.817420340547317,
5140                im: -3.9295260357849218,
5141            },
5142            Complex {
5143                re: -6.575602524769308,
5144                im: 8.07306732428419,
5145            },
5146            Complex {
5147                re: -18.204732137554327,
5148                im: 19.172551031026366,
5149            },
5150            Complex {
5151                re: -25.907333575858516,
5152                im: 8.733025464859743,
5153            },
5154            Complex {
5155                re: 15.919117271075795,
5156                im: 3.7076013191092905,
5157            },
5158            Complex {
5159                re: 7.413192969250581,
5160                im: 4.524626488002864,
5161            },
5162            Complex {
5163                re: 19.01764208420903,
5164                im: -13.148443157873494,
5165            },
5166            Complex {
5167                re: 26.62212886530355,
5168                im: -0.23131358374527755,
5169            },
5170            Complex {
5171                re: 20.533486865990334,
5172                im: -12.395509330331848,
5173            },
5174            Complex {
5175                re: -1.9861434947034797,
5176                im: -28.523563297227426,
5177            },
5178            Complex {
5179                re: 11.948603321994556,
5180                im: -10.292622499343349,
5181            },
5182            Complex {
5183                re: 5.977895602129645,
5184                im: 3.784450035559372,
5185            },
5186            Complex {
5187                re: -11.182969558175254,
5188                im: -4.157843249923827,
5189            },
5190            Complex {
5191                re: 9.511964102444386,
5192                im: 10.982820894121378,
5193            },
5194            Complex {
5195                re: 7.993443758640279,
5196                im: 15.004507485605073,
5197            },
5198            Complex {
5199                re: -16.689464060402663,
5200                im: 9.104399008327393,
5201            },
5202            Complex {
5203                re: -4.856092994739772,
5204                im: -19.241480584055957,
5205            },
5206            Complex {
5207                re: 9.906016472254601,
5208                im: 12.522335751580453,
5209            },
5210            Complex {
5211                re: -8.270817762117948,
5212                im: -5.521370293863713,
5213            },
5214            Complex {
5215                re: -14.174295043887895,
5216                im: 3.743307720659229,
5217            },
5218            Complex {
5219                re: -12.500840596862416,
5220                im: 14.610524916669641,
5221            },
5222            Complex {
5223                re: 5.463729100435873,
5224                im: -5.088084582580779,
5225            },
5226            Complex {
5227                re: -16.72700730846004,
5228                im: -7.875766566620062,
5229            },
5230            Complex {
5231                re: -4.780667016098363,
5232                im: 4.812363869451216,
5233            },
5234            Complex {
5235                re: -15.95056426162195,
5236                im: -18.61261749528998,
5237            },
5238            Complex {
5239                re: 7.004284339078248,
5240                im: 5.444089268412133,
5241            },
5242            Complex {
5243                re: 4.728244287040498,
5244                im: 0.21476727918997085,
5245            },
5246            Complex {
5247                re: -6.457640746555039,
5248                im: -24.069982664702522,
5249            },
5250            Complex {
5251                re: -12.697824121365839,
5252                im: 31.182871414821683,
5253            },
5254            Complex {
5255                re: 7.704879635916081,
5256                im: 26.996494384444272,
5257            },
5258            Complex {
5259                re: 11.510077272362107,
5260                im: -3.2519459341272867,
5261            },
5262            Complex {
5263                re: 6.044969818942092,
5264                im: -11.508230213825433,
5265            },
5266            Complex {
5267                re: 16.77925234500462,
5268                im: 1.094915489271557,
5269            },
5270            Complex {
5271                re: -23.18387628276119,
5272                im: -5.898889801314535,
5273            },
5274            Complex {
5275                re: 14.212761522610789,
5276                im: 4.531305384217196,
5277            },
5278            Complex {
5279                re: 17.36674460828989,
5280                im: -5.056530504519205,
5281            },
5282            Complex {
5283                re: -0.22058326619869462,
5284                im: -20.85688450115707,
5285            },
5286            Complex {
5287                re: -5.748347752503165,
5288                im: -6.004638654649867,
5289            },
5290            Complex {
5291                re: 3.028941506360471,
5292                im: -19.525732616600493,
5293            },
5294            Complex {
5295                re: -4.291028794067875,
5296                im: -5.016452729533919,
5297            },
5298            Complex {
5299                re: -9.197965971237775,
5300                im: -4.540963930912733,
5301            },
5302            Complex {
5303                re: 10.40145336926523,
5304                im: -8.227199679139858,
5305            },
5306            Complex {
5307                re: 7.885208381696089,
5308                im: -1.001738881758517,
5309            },
5310            Complex {
5311                re: -6.747495317199423,
5312                im: 1.742777295051337,
5313            },
5314            Complex {
5315                re: -10.401036820219325,
5316                im: 2.913782929792254,
5317            },
5318            Complex {
5319                re: 0.31824964763834984,
5320                im: 4.188060547863891,
5321            },
5322            Complex {
5323                re: 1.9889481190615217,
5324                im: 2.4924448616649366,
5325            },
5326            Complex {
5327                re: 1.9297606267377936,
5328                im: -21.53830556482338,
5329            },
5330            Complex {
5331                re: -8.52257006400053,
5332                im: 10.105327798475244,
5333            },
5334            Complex {
5335                re: 6.901684171972502,
5336                im: 6.799709191975279,
5337            },
5338            Complex {
5339                re: 2.803214257096143,
5340                im: 8.587101532694035,
5341            },
5342            Complex {
5343                re: -16.28558680507465,
5344                im: 9.537385663574106,
5345            },
5346            Complex {
5347                re: -7.153690276095013,
5348                im: -18.41574097765385,
5349            },
5350            Complex {
5351                re: -22.74814917956514,
5352                im: -9.554582125155875,
5353            },
5354            Complex {
5355                re: -2.6839229724961275,
5356                im: -0.7319896178839471,
5357            },
5358            Complex {
5359                re: -18.82180719098583,
5360                im: 12.333615737301413,
5361            },
5362            Complex {
5363                re: 0.9850585925927122,
5364                im: -10.963400476282125,
5365            },
5366            Complex {
5367                re: -12.620779217176732,
5368                im: -22.736309889370006,
5369            },
5370            Complex {
5371                re: 7.88880403803434,
5372                im: 1.7571446121950804,
5373            },
5374            Complex {
5375                re: 9.082187783381823,
5376                im: -7.669448749698359,
5377            },
5378            Complex {
5379                re: 9.847560035559074,
5380                im: 2.4532497814463516,
5381            },
5382            Complex {
5383                re: 9.499436266806768,
5384                im: 3.022414732555866,
5385            },
5386            Complex {
5387                re: 5.713955037396536,
5388                im: -0.4351189234666186,
5389            },
5390            Complex {
5391                re: 3.674562738229558,
5392                im: 15.263306362293545,
5393            },
5394            Complex {
5395                re: 9.694515181554863,
5396                im: -5.299766761801526,
5397            },
5398            Complex {
5399                re: -5.260258037797985,
5400                im: -0.8237307947421817,
5401            },
5402            Complex {
5403                re: 0.34613272294211206,
5404                im: 7.304989853937762,
5405            },
5406            Complex {
5407                re: 3.7519382485475674,
5408                im: 10.094541666047618,
5409            },
5410            Complex {
5411                re: 8.423690497502989,
5412                im: -3.8840338824357055,
5413            },
5414            Complex {
5415                re: 2.7095383837705747,
5416                im: -2.8908912502857658,
5417            },
5418            Complex {
5419                re: 2.3736846790060335,
5420                im: -0.5669863559232322,
5421            },
5422            Complex {
5423                re: 18.498298857927992,
5424                im: 3.2075289924376964,
5425            },
5426            Complex {
5427                re: -3.005530071350078,
5428                im: -12.30122727210356,
5429            },
5430            Complex {
5431                re: 4.109323513886008,
5432                im: 7.23244533374687,
5433            },
5434            Complex {
5435                re: -17.61884138386103,
5436                im: -7.834000063654185,
5437            },
5438            Complex {
5439                re: -6.089018807997786,
5440                im: 26.339632155062443,
5441            },
5442            Complex {
5443                re: -7.0859745330670245,
5444                im: -6.768933837145216,
5445            },
5446            Complex {
5447                re: -11.317011106951139,
5448                im: 3.1396836714356877,
5449            },
5450            Complex {
5451                re: 27.6498916981475,
5452                im: -32.89426702947082,
5453            },
5454            Complex {
5455                re: 17.058822364862465,
5456                im: 7.999623493518664,
5457            },
5458            Complex {
5459                re: 15.368280668226655,
5460                im: 7.441348476195676,
5461            },
5462            Complex {
5463                re: 12.245143637309642,
5464                im: -1.0454585932888119,
5465            },
5466            Complex {
5467                re: 8.877265602373324,
5468                im: -0.3851750189367851,
5469            },
5470            Complex {
5471                re: 17.52609855173253,
5472                im: -3.3181189483080153,
5473            },
5474            Complex {
5475                re: -4.315303953261579,
5476                im: 4.347473880310279,
5477            },
5478            Complex {
5479                re: 1.8582196866714216,
5480                im: 17.795888213117856,
5481            },
5482            Complex {
5483                re: 4.253961855151641,
5484                im: -9.281334343956376,
5485            },
5486            Complex {
5487                re: 2.4731507649675475,
5488                im: 8.599080349141902,
5489            },
5490            Complex {
5491                re: 20.77231589127016,
5492                im: 10.40333372042403,
5493            },
5494            Complex {
5495                re: -7.107332702856286,
5496                im: -9.232269173634077,
5497            },
5498            Complex {
5499                re: 12.284347672696201,
5500                im: -20.007777016406738,
5501            },
5502            Complex {
5503                re: 17.787486794718507,
5504                im: 13.025912228865312,
5505            },
5506            Complex {
5507                re: 11.745984741518274,
5508                im: -1.477437308777517,
5509            },
5510            Complex {
5511                re: 6.400041540590201,
5512                im: 2.387380079962638,
5513            },
5514            Complex {
5515                re: 3.7147444942376655,
5516                im: -12.345636448699489,
5517            },
5518            Complex {
5519                re: -3.1239064869352635,
5520                im: 10.675430411909753,
5521            },
5522            Complex {
5523                re: 17.946267210706395,
5524                im: -4.815019253883419,
5525            },
5526            Complex {
5527                re: -4.16034788605916,
5528                im: -21.418297945243246,
5529            },
5530            Complex {
5531                re: -5.080844079416224,
5532                im: 2.785237650426783,
5533            },
5534            Complex {
5535                re: 5.766942309697372,
5536                im: 35.34672522603995,
5537            },
5538            Complex {
5539                re: -17.339289278766064,
5540                im: -11.125020358075012,
5541            },
5542            Complex {
5543                re: -2.3875372072669516,
5544                im: 0.023625864058749002,
5545            },
5546            Complex {
5547                re: -0.4686844992063577,
5548                im: 11.163310476672013,
5549            },
5550            Complex {
5551                re: -7.0070916166154005,
5552                im: -0.49121524407012096,
5553            },
5554            Complex {
5555                re: -6.985340813431913,
5556                im: 11.386007410442915,
5557            },
5558            Complex {
5559                re: -11.919640393892456,
5560                im: 15.33564379901729,
5561            },
5562            Complex {
5563                re: -12.912901895031606,
5564                im: -12.50245755926507,
5565            },
5566            Complex {
5567                re: 7.8970981822411215,
5568                im: -16.611985132691625,
5569            },
5570            Complex {
5571                re: 18.666469703243525,
5572                im: -4.456473407578569,
5573            },
5574            Complex {
5575                re: -8.609804363785052,
5576                im: -10.730148064420547,
5577            },
5578            Complex {
5579                re: -0.6007718010330674,
5580                im: -4.484190438083157,
5581            },
5582            Complex {
5583                re: -4.619896781503612,
5584                im: 14.245123176781117,
5585            },
5586            Complex {
5587                re: 14.658926498021135,
5588                im: -0.9052427199104809,
5589            },
5590            Complex {
5591                re: 16.938971515641928,
5592                im: 11.048825124717084,
5593            },
5594            Complex {
5595                re: 3.0229957918732095,
5596                im: 19.652150720479597,
5597            },
5598            Complex {
5599                re: -7.31084622082583,
5600                im: 20.866059373608714,
5601            },
5602            Complex {
5603                re: 8.03326784619792,
5604                im: -24.266372800325268,
5605            },
5606            Complex {
5607                re: 5.031203504702198,
5608                im: 8.982743666494935,
5609            },
5610            Complex {
5611                re: 16.125261346189124,
5612                im: -9.418735675388405,
5613            },
5614            Complex {
5615                re: -1.2733942084891128,
5616                im: 18.075944107917948,
5617            },
5618            Complex {
5619                re: 6.468747942972154,
5620                im: 4.616006544836633,
5621            },
5622            Complex {
5623                re: 10.65276519872385,
5624                im: 18.631003374953735,
5625            },
5626            Complex {
5627                re: 7.9424943204531715,
5628                im: -16.29601773717587,
5629            },
5630            Complex {
5631                re: -29.38196961155061,
5632                im: -19.477291831465134,
5633            },
5634            Complex {
5635                re: -8.856705670467903,
5636                im: 2.8623412898891245,
5637            },
5638            Complex {
5639                re: 16.398989279719256,
5640                im: -6.87851102229234,
5641            },
5642            Complex {
5643                re: -21.610566014107782,
5644                im: 24.866845080515485,
5645            },
5646            Complex {
5647                re: -6.3307136702926465,
5648                im: -4.284301897348901,
5649            },
5650            Complex {
5651                re: -7.076345422453177,
5652                im: -25.17309618475514,
5653            },
5654            Complex {
5655                re: -8.31260939216217,
5656                im: -9.24281557988013,
5657            },
5658            Complex {
5659                re: -11.45110217381113,
5660                im: -4.798309383711727,
5661            },
5662            Complex {
5663                re: -10.396126589991969,
5664                im: 9.23483926918439,
5665            },
5666            Complex {
5667                re: -10.926818763657511,
5668                im: -0.4122676641952481,
5669            },
5670            Complex {
5671                re: 10.708250628437728,
5672                im: -14.241951111227612,
5673            },
5674            Complex {
5675                re: 4.234752198864121,
5676                im: -11.593293549342338,
5677            },
5678            Complex {
5679                re: -10.215988944921131,
5680                im: 11.724914851726595,
5681            },
5682            Complex {
5683                re: -4.264491022095115,
5684                im: -16.091478675551443,
5685            },
5686            Complex {
5687                re: -15.09111238233286,
5688                im: -2.7153055636207126,
5689            },
5690            Complex {
5691                re: 8.401962159263594,
5692                im: 4.277146067035055,
5693            },
5694            Complex {
5695                re: 15.95338090913826,
5696                im: -3.247453401184262,
5697            },
5698            Complex {
5699                re: -2.1165430873224667,
5700                im: 5.683391653144622,
5701            },
5702            Complex {
5703                re: 17.511062420611328,
5704                im: -10.220976035589786,
5705            },
5706            Complex {
5707                re: -0.030926260501177083,
5708                im: 4.94141308744213,
5709            },
5710            Complex {
5711                re: -22.3012792095272,
5712                im: -23.358716491404927,
5713            },
5714            Complex {
5715                re: 0.7893858162648115,
5716                im: -11.498507317179364,
5717            },
5718            Complex {
5719                re: -1.2511335236764332,
5720                im: -0.8241039145082354,
5721            },
5722            Complex {
5723                re: 0.006003993795387075,
5724                im: 11.911130306703896,
5725            },
5726            Complex {
5727                re: -4.112342698794271,
5728                im: 2.4151684830645763,
5729            },
5730            Complex {
5731                re: 20.86412671518926,
5732                im: 0.6190325040099323,
5733            },
5734            Complex {
5735                re: -14.449279354983343,
5736                im: 21.178881577637977,
5737            },
5738            Complex {
5739                re: -2.25629516483676,
5740                im: 2.2730612901699594,
5741            },
5742            Complex {
5743                re: 5.951062389532792,
5744                im: -13.783607467924611,
5745            },
5746            Complex {
5747                re: 4.940691505822118,
5748                im: 17.426527156988286,
5749            },
5750            Complex {
5751                re: -11.28249550572123,
5752                im: -14.895723979283595,
5753            },
5754            Complex {
5755                re: -3.7049059663515918,
5756                im: -4.049546741133053,
5757            },
5758            Complex {
5759                re: -9.994972124206576,
5760                im: -15.266987660786857,
5761            },
5762            Complex {
5763                re: -16.35904675455085,
5764                im: 6.438576332025133,
5765            },
5766            Complex {
5767                re: 9.160628178789619,
5768                im: -2.7636964332234215,
5769            },
5770            Complex {
5771                re: -29.34375385092801,
5772                im: 0.9509884640374857,
5773            },
5774            Complex {
5775                re: 10.601291017720488,
5776                im: 1.7452471557704996,
5777            },
5778            Complex {
5779                re: 12.19949860914809,
5780                im: -4.682105203113405,
5781            },
5782            Complex {
5783                re: -19.48165700469612,
5784                im: -10.0078808589477,
5785            },
5786            Complex {
5787                re: 2.20903564185086,
5788                im: -1.5780724881005135,
5789            },
5790            Complex {
5791                re: 18.778094176491077,
5792                im: 5.280292809227996,
5793            },
5794            Complex {
5795                re: -6.635309389048036,
5796                im: 11.47997470742768,
5797            },
5798            Complex {
5799                re: 11.76866385314553,
5800                im: 0.25994172034871,
5801            },
5802            Complex {
5803                re: -9.415073275114754,
5804                im: -6.7872778121116175,
5805            },
5806            Complex {
5807                re: -18.823644977597667,
5808                im: -9.738522818073264,
5809            },
5810            Complex {
5811                re: 2.390754851323047,
5812                im: -4.939204547808517,
5813            },
5814            Complex {
5815                re: -17.908649332249013,
5816                im: -5.285735467980636,
5817            },
5818            Complex {
5819                re: -4.4901313452241745,
5820                im: 3.506868598354072,
5821            },
5822            Complex {
5823                re: -6.15026915933057,
5824                im: -10.135617115212721,
5825            },
5826            Complex {
5827                re: -28.93955057713877,
5828                im: 13.795822343670693,
5829            },
5830            Complex {
5831                re: -3.2751089978426333,
5832                im: 20.4091932159973,
5833            },
5834            Complex {
5835                re: -3.480366146553842,
5836                im: -24.438850798270224,
5837            },
5838            Complex {
5839                re: -10.929149484095037,
5840                im: 11.106172689267359,
5841            },
5842            Complex {
5843                re: -11.179141545729676,
5844                im: -3.3683525900619675,
5845            },
5846            Complex {
5847                re: 13.856455534281611,
5848                im: -28.34837538803404,
5849            },
5850            Complex {
5851                re: 2.6225852035759356,
5852                im: 6.932727510723776,
5853            },
5854            Complex {
5855                re: 12.165561515783198,
5856                im: -16.078508195433503,
5857            },
5858            Complex {
5859                re: 12.245294253674382,
5860                im: -7.158446287398121,
5861            },
5862            Complex {
5863                re: -17.814933397608243,
5864                im: -2.2552589768514366,
5865            },
5866            Complex {
5867                re: -14.122511317229307,
5868                im: -4.2006386915824665,
5869            },
5870            Complex {
5871                re: -8.860800396603324,
5872                im: -4.317200643478168,
5873            },
5874            Complex {
5875                re: -3.6352288745392443,
5876                im: -9.64229007423607,
5877            },
5878            Complex {
5879                re: -0.40317812774472905,
5880                im: 2.789524338121744,
5881            },
5882            Complex {
5883                re: 19.9472342158657,
5884                im: -6.300707804611787,
5885            },
5886            Complex {
5887                re: -12.399363447207868,
5888                im: -7.582098130744138,
5889            },
5890            Complex {
5891                re: -14.75022568543383,
5892                im: -26.195152238910097,
5893            },
5894            Complex {
5895                re: -3.6002887155384484,
5896                im: -4.676112127044274,
5897            },
5898            Complex {
5899                re: -11.33416688250685,
5900                im: 3.702564803788688,
5901            },
5902            Complex {
5903                re: -0.4508893423929674,
5904                im: 2.2450542033943712,
5905            },
5906            Complex {
5907                re: -6.665375411472505,
5908                im: 3.914959036074085,
5909            },
5910            Complex {
5911                re: 5.443514999854095,
5912                im: 14.08462811393849,
5913            },
5914            Complex {
5915                re: -3.3143167330819328,
5916                im: 13.209905914390188,
5917            },
5918            Complex {
5919                re: 15.332990970448007,
5920                im: -13.243458967578318,
5921            },
5922            Complex {
5923                re: 16.494289003879715,
5924                im: -24.74930204929008,
5925            },
5926            Complex {
5927                re: -6.630260952302833,
5928                im: -23.85843219413842,
5929            },
5930            Complex {
5931                re: 17.72076460179183,
5932                im: 4.060676181315637,
5933            },
5934            Complex {
5935                re: 5.72624214611591,
5936                im: -1.8304438356119732,
5937            },
5938            Complex {
5939                re: 9.685597367994664,
5940                im: -10.525855378034933,
5941            },
5942            Complex {
5943                re: -11.483167956989831,
5944                im: -0.2816403115558477,
5945            },
5946            Complex {
5947                re: 4.524221212972851,
5948                im: -1.9004279193657716,
5949            },
5950            Complex {
5951                re: -18.310095985707466,
5952                im: 9.775849835198432,
5953            },
5954            Complex {
5955                re: -4.379428152706627,
5956                im: 2.065542737014151,
5957            },
5958            Complex {
5959                re: 29.173177548299268,
5960                im: -0.43779767807905023,
5961            },
5962            Complex {
5963                re: -2.5984940248284047,
5964                im: 1.1085521590266438,
5965            },
5966            Complex {
5967                re: -6.346391186522915,
5968                im: 11.205212008750218,
5969            },
5970            Complex {
5971                re: -5.521307683583492,
5972                im: 2.667645169150215,
5973            },
5974            Complex {
5975                re: -30.235278357650614,
5976                im: -1.834301543799847,
5977            },
5978            Complex {
5979                re: 9.854008893496303,
5980                im: 6.200169376233236,
5981            },
5982            Complex {
5983                re: -7.124887062342451,
5984                im: 8.34201226874872,
5985            },
5986            Complex {
5987                re: 2.3377368558843603,
5988                im: 13.994680702517918,
5989            },
5990            Complex {
5991                re: -15.957625700779513,
5992                im: -7.342277297514187,
5993            },
5994            Complex {
5995                re: -2.0200057835319285,
5996                im: 8.329000709645372,
5997            },
5998            Complex {
5999                re: -6.091592692601475,
6000                im: -7.646957149050456,
6001            },
6002            Complex {
6003                re: 10.001593482758082,
6004                im: -4.459578320511661,
6005            },
6006            Complex {
6007                re: 15.747546079886632,
6008                im: 2.2932397378305622,
6009            },
6010            Complex {
6011                re: 6.286687860903498,
6012                im: 9.020375522355286,
6013            },
6014            Complex {
6015                re: -2.0108969947029784,
6016                im: -18.22620381870767,
6017            },
6018            Complex {
6019                re: 0.862905347447644,
6020                im: -7.006598633743745,
6021            },
6022            Complex {
6023                re: -1.4591096918398243,
6024                im: 2.383153936325451,
6025            },
6026            Complex {
6027                re: -9.615881468661481,
6028                im: 38.339331662113125,
6029            },
6030            Complex {
6031                re: -4.264093553430381,
6032                im: 6.235998669271195,
6033            },
6034            Complex {
6035                re: -4.163606328861517,
6036                im: -10.724957724335198,
6037            },
6038            Complex {
6039                re: 0.2866220458929263,
6040                im: -9.106924688007833,
6041            },
6042            Complex {
6043                re: 1.8907497599806256,
6044                im: -9.989776400322782,
6045            },
6046            Complex {
6047                re: 10.002639641103023,
6048                im: -9.215319594515277,
6049            },
6050            Complex {
6051                re: -17.11563551574956,
6052                im: -14.321257732473406,
6053            },
6054            Complex {
6055                re: -5.291885800079906,
6056                im: -0.2565159384472442,
6057            },
6058            Complex {
6059                re: 0.05390065636715935,
6060                im: -5.25015048537726,
6061            },
6062            Complex {
6063                re: -5.093968324262189,
6064                im: 21.00047164621477,
6065            },
6066            Complex {
6067                re: 1.8924815161932589,
6068                im: -6.495695556597933,
6069            },
6070            Complex {
6071                re: -11.889406762665548,
6072                im: 2.8358970233278664,
6073            },
6074            Complex {
6075                re: 6.755884012163659,
6076                im: 2.5775328020928905,
6077            },
6078            Complex {
6079                re: 0.8830342755345022,
6080                im: 8.430524784796898,
6081            },
6082            Complex {
6083                re: 2.4968026597845974,
6084                im: 10.092727498545063,
6085            },
6086            Complex {
6087                re: 4.134508625182141,
6088                im: -24.19984694342367,
6089            },
6090            Complex {
6091                re: -18.650344013044737,
6092                im: -18.40941934456824,
6093            },
6094            Complex {
6095                re: -8.051282312303798,
6096                im: 18.21434589965462,
6097            },
6098            Complex {
6099                re: -0.45191920416581155,
6100                im: 9.104356986347344,
6101            },
6102            Complex {
6103                re: 4.493094431287341,
6104                im: 22.59885688706809,
6105            },
6106            Complex {
6107                re: 4.560267522170824,
6108                im: -4.95374459406239,
6109            },
6110            Complex {
6111                re: -3.3641169338464296,
6112                im: 16.532830326519896,
6113            },
6114            Complex {
6115                re: 19.321429794013397,
6116                im: -5.004262195036349,
6117            },
6118            Complex {
6119                re: -10.04719407482197,
6120                im: 12.351843840899212,
6121            },
6122            Complex {
6123                re: -6.1702272307986155,
6124                im: -1.0114288043557789,
6125            },
6126            Complex {
6127                re: 29.637156576681743,
6128                im: -3.539480733603284,
6129            },
6130            Complex {
6131                re: -10.408829384235188,
6132                im: 11.540584426369051,
6133            },
6134            Complex {
6135                re: 3.399791173494858,
6136                im: -2.5881572587929322,
6137            },
6138            Complex {
6139                re: -6.086392547093525,
6140                im: 1.3894028174023323,
6141            },
6142            Complex {
6143                re: 24.07546256055904,
6144                im: 14.703006514352555,
6145            },
6146            Complex {
6147                re: 14.26263758477461,
6148                im: -0.5747597228544743,
6149            },
6150            Complex {
6151                re: 10.646873569929342,
6152                im: 7.324894592837662,
6153            },
6154            Complex {
6155                re: -2.3024130614468508,
6156                im: -5.661095776694957,
6157            },
6158            Complex {
6159                re: -18.831295255550828,
6160                im: -25.46483141126365,
6161            },
6162            Complex {
6163                re: 14.220423457216146,
6164                im: -5.2924304648686435,
6165            },
6166            Complex {
6167                re: 10.532011938028765,
6168                im: 15.365949609672068,
6169            },
6170            Complex {
6171                re: -3.6412972530043364,
6172                im: 4.2882175131094415,
6173            },
6174            Complex {
6175                re: -18.19683705332141,
6176                im: -1.8697007754053088,
6177            },
6178            Complex {
6179                re: -7.12762468616333,
6180                im: 9.868801155454413,
6181            },
6182            Complex {
6183                re: -0.7090756323656215,
6184                im: 5.734189538295341,
6185            },
6186            Complex {
6187                re: -6.3061762577049585,
6188                im: 19.230325824810947,
6189            },
6190            Complex {
6191                re: 9.15314598700527,
6192                im: -10.506785197446568,
6193            },
6194            Complex {
6195                re: -9.637066789208394,
6196                im: -18.63333397745755,
6197            },
6198            Complex {
6199                re: -11.249737889891856,
6200                im: -15.252059393032571,
6201            },
6202            Complex {
6203                re: -8.480806755686665,
6204                im: 11.502466758122962,
6205            },
6206            Complex {
6207                re: -10.730593018284104,
6208                im: -24.42048953104958,
6209            },
6210            Complex {
6211                re: 15.229719865374841,
6212                im: 18.54678188393069,
6213            },
6214            Complex {
6215                re: -13.667228961067421,
6216                im: 6.064222242699724,
6217            },
6218            Complex {
6219                re: 12.038133917292438,
6220                im: -8.038187299524647,
6221            },
6222            Complex {
6223                re: 13.555835316553365,
6224                im: 5.30625822143206,
6225            },
6226            Complex {
6227                re: 10.067933976962605,
6228                im: 22.014744733233638,
6229            },
6230            Complex {
6231                re: 1.7943975933705323,
6232                im: -4.478088451260621,
6233            },
6234            Complex {
6235                re: -7.3943145199180025,
6236                im: -15.621559116251568,
6237            },
6238            Complex {
6239                re: 23.641087615439908,
6240                im: 37.02303924493386,
6241            },
6242            Complex {
6243                re: -6.698754341287253,
6244                im: 6.527205379182851,
6245            },
6246            Complex {
6247                re: 4.093983988941094,
6248                im: -1.0049398700512575,
6249            },
6250            Complex {
6251                re: -9.642924206031205,
6252                im: 21.014860035143656,
6253            },
6254            Complex {
6255                re: -6.092600051583098,
6256                im: -7.138872979789937,
6257            },
6258            Complex {
6259                re: -21.53537915359774,
6260                im: 15.747187342107967,
6261            },
6262            Complex {
6263                re: 24.360609498548193,
6264                im: 4.010823696982267,
6265            },
6266            Complex {
6267                re: -20.118316186998964,
6268                im: 2.9734394993838507,
6269            },
6270            Complex {
6271                re: -4.12814289240822,
6272                im: -2.555626668005605,
6273            },
6274            Complex {
6275                re: 2.3539175561186436,
6276                im: 2.5637545725472366,
6277            },
6278            Complex {
6279                re: 8.079945239255137,
6280                im: -5.5245353362149565,
6281            },
6282            Complex {
6283                re: -2.3493405640883056,
6284                im: -3.6510812655650198,
6285            },
6286            Complex {
6287                re: 27.696520118411634,
6288                im: 13.463093996336667,
6289            },
6290            Complex {
6291                re: 6.984613471652674,
6292                im: 35.17077286930748,
6293            },
6294            Complex {
6295                re: -11.008127490839303,
6296                im: -22.685435329620308,
6297            },
6298            Complex {
6299                re: -5.862816053488834,
6300                im: 26.186822968253807,
6301            },
6302            Complex {
6303                re: -0.40395393666928747,
6304                im: 15.191429872573032,
6305            },
6306            Complex {
6307                re: -16.5553618005105,
6308                im: -32.76794084785999,
6309            },
6310            Complex {
6311                re: -4.416269102130208,
6312                im: -0.4178948589506563,
6313            },
6314            Complex {
6315                re: -6.721067008449467,
6316                im: 8.23414686336547,
6317            },
6318            Complex {
6319                re: 5.700643954282141,
6320                im: -19.77726450555056,
6321            },
6322            Complex {
6323                re: -8.853044642808364,
6324                im: 14.762158627491385,
6325            },
6326            Complex {
6327                re: 4.262813053079238,
6328                im: -1.228229517506597,
6329            },
6330            Complex {
6331                re: 4.9897147543933755,
6332                im: 24.574036945944364,
6333            },
6334            Complex {
6335                re: -2.683654861777958,
6336                im: 13.830587547974735,
6337            },
6338            Complex {
6339                re: 3.30829666017771,
6340                im: -0.7889739359871477,
6341            },
6342            Complex {
6343                re: 21.827519997022815,
6344                im: 33.978018133897216,
6345            },
6346            Complex {
6347                re: -10.123135577788313,
6348                im: 4.136347213838592,
6349            },
6350            Complex {
6351                re: -5.307077746023433,
6352                im: 22.272540601554127,
6353            },
6354            Complex {
6355                re: -13.904201577665894,
6356                im: 20.07811112734162,
6357            },
6358            Complex {
6359                re: 0.2653457644292221,
6360                im: 1.7780312877159532,
6361            },
6362            Complex {
6363                re: 3.859311225130728,
6364                im: -22.97862708360943,
6365            },
6366            Complex {
6367                re: 5.803374200598698,
6368                im: 18.863376698995236,
6369            },
6370            Complex {
6371                re: -6.122701473669709,
6372                im: 6.263954489277401,
6373            },
6374            Complex {
6375                re: 2.5844814191615626,
6376                im: 20.531981588629,
6377            },
6378            Complex {
6379                re: -11.803305944440663,
6380                im: 2.7150438602454026,
6381            },
6382            Complex {
6383                re: 3.030286734820462,
6384                im: -10.81683487676447,
6385            },
6386            Complex {
6387                re: -0.3859633951080115,
6388                im: 0.08066366641761835,
6389            },
6390            Complex {
6391                re: 10.958547568422999,
6392                im: -2.094670315663642,
6393            },
6394            Complex {
6395                re: -0.023814876733285306,
6396                im: -0.6215944848294548,
6397            },
6398            Complex {
6399                re: -5.36851085740903,
6400                im: -28.485524216586107,
6401            },
6402            Complex {
6403                re: -18.471127855414824,
6404                im: -22.680947004222137,
6405            },
6406            Complex {
6407                re: -4.054060098829879,
6408                im: 7.7633954836448,
6409            },
6410            Complex {
6411                re: 0.9888070679524201,
6412                im: -22.586735840296967,
6413            },
6414            Complex {
6415                re: 4.872137232384343,
6416                im: 7.361297278039238,
6417            },
6418            Complex {
6419                re: -0.5827820162112536,
6420                im: -9.00181929206203,
6421            },
6422            Complex {
6423                re: 2.5265740087284065,
6424                im: -1.172903072712209,
6425            },
6426            Complex {
6427                re: -10.676542459985429,
6428                im: 4.856206564032922,
6429            },
6430            Complex {
6431                re: -5.813032041581691,
6432                im: 8.564504844180867,
6433            },
6434            Complex {
6435                re: 12.766072438057046,
6436                im: -6.20111656531064,
6437            },
6438            Complex {
6439                re: -19.997851155072713,
6440                im: 9.637477174211767,
6441            },
6442            Complex {
6443                re: -28.865422143612392,
6444                im: 18.30497711528949,
6445            },
6446            Complex {
6447                re: 14.253495911900778,
6448                im: -11.213029215069698,
6449            },
6450            Complex {
6451                re: -4.701938518413279,
6452                im: 15.00293153472111,
6453            },
6454            Complex {
6455                re: -11.585752094205603,
6456                im: -6.91310191727001,
6457            },
6458            Complex {
6459                re: 4.181248155106237,
6460                im: 7.482576127928644,
6461            },
6462            Complex {
6463                re: 2.532754269325025,
6464                im: -18.63962280938757,
6465            },
6466            Complex {
6467                re: 32.74907172947182,
6468                im: 15.057563976780994,
6469            },
6470            Complex {
6471                re: -14.454904225493763,
6472                im: 5.60051728192248,
6473            },
6474            Complex {
6475                re: 4.211690012262294,
6476                im: -4.611905097494152,
6477            },
6478            Complex {
6479                re: 36.44194062820918,
6480                im: 9.12986120358238,
6481            },
6482            Complex {
6483                re: 2.2198832207372705,
6484                im: -6.722418173820192,
6485            },
6486            Complex {
6487                re: -11.15884221820299,
6488                im: -21.68665282338131,
6489            },
6490            Complex {
6491                re: 1.3438050367030208,
6492                im: 2.0006471022567194,
6493            },
6494            Complex {
6495                re: 1.0316939463699382,
6496                im: -26.68677282470535,
6497            },
6498            Complex {
6499                re: 15.244415841027413,
6500                im: 4.833327940701537,
6501            },
6502            Complex {
6503                re: -0.13251643884861697,
6504                im: 39.54865235672784,
6505            },
6506            Complex {
6507                re: 32.38326953860222,
6508                im: -17.82825760155793,
6509            },
6510            Complex {
6511                re: 5.3948234024699175,
6512                im: -13.72257753353932,
6513            },
6514            Complex {
6515                re: 16.081539618004832,
6516                im: -23.06690088659948,
6517            },
6518            Complex {
6519                re: -24.677772290055884,
6520                im: -23.25772908725949,
6521            },
6522            Complex {
6523                re: 25.32266440084222,
6524                im: 2.10464011970806,
6525            },
6526            Complex {
6527                re: 8.678157597370209,
6528                im: 29.130299908084023,
6529            },
6530            Complex {
6531                re: 5.254301469882794,
6532                im: 17.09983242271655,
6533            },
6534            Complex {
6535                re: 21.433576052554116,
6536                im: -9.51580787963645,
6537            },
6538            Complex {
6539                re: 9.170274806209235,
6540                im: -5.247853417809527,
6541            },
6542            Complex {
6543                re: 14.832751570104735,
6544                im: -22.129701367999488,
6545            },
6546            Complex {
6547                re: -9.138093128438147,
6548                im: 0.3004366504358922,
6549            },
6550            Complex {
6551                re: 11.937805830809408,
6552                im: -1.8740208238286726,
6553            },
6554            Complex {
6555                re: 17.06653745387504,
6556                im: 23.813129367122635,
6557            },
6558            Complex {
6559                re: -3.310310802657838,
6560                im: -3.8927459102369024,
6561            },
6562            Complex {
6563                re: -9.849026771357602,
6564                im: 0.16346392583089964,
6565            },
6566            Complex {
6567                re: -1.9115236282774006,
6568                im: -5.986548463955227,
6569            },
6570            Complex {
6571                re: -9.83293052434437,
6572                im: -18.40712654700187,
6573            },
6574            Complex {
6575                re: -2.565203259673842,
6576                im: 1.3166638106305335,
6577            },
6578            Complex {
6579                re: 7.329984244961188,
6580                im: 21.18144104555535,
6581            },
6582            Complex {
6583                re: 0.5322982756330088,
6584                im: -12.878098273001982,
6585            },
6586            Complex {
6587                re: 16.92659245223865,
6588                im: 15.454594054305831,
6589            },
6590            Complex {
6591                re: 5.619384601167851,
6592                im: 4.586982392760097,
6593            },
6594            Complex {
6595                re: -12.991062746569824,
6596                im: -10.327164781919192,
6597            },
6598            Complex {
6599                re: -13.087100471197797,
6600                im: -6.004705575821339,
6601            },
6602            Complex {
6603                re: 0.2936897811090997,
6604                im: 1.1164258529899813,
6605            },
6606            Complex {
6607                re: 9.347291348872638,
6608                im: -1.7990276922067423,
6609            },
6610            Complex {
6611                re: -8.7674358200819,
6612                im: -11.450588532820056,
6613            },
6614            Complex {
6615                re: -21.55748095938172,
6616                im: 3.1048893580558747,
6617            },
6618            Complex {
6619                re: 29.45815259929552,
6620                im: -0.33326988090358967,
6621            },
6622            Complex {
6623                re: -9.335597966495865,
6624                im: -0.42560930315608303,
6625            },
6626            Complex {
6627                re: 10.07756980650306,
6628                im: -15.09918540298154,
6629            },
6630            Complex {
6631                re: -23.793163206934523,
6632                im: -16.623807817267245,
6633            },
6634            Complex {
6635                re: -2.955325834834804,
6636                im: 3.477708625932954,
6637            },
6638            Complex {
6639                re: -25.66285516207745,
6640                im: 14.70466376867078,
6641            },
6642            Complex {
6643                re: -17.1790818753678,
6644                im: -1.2557142402897519,
6645            },
6646            Complex {
6647                re: 2.01497103906358,
6648                im: -9.11911820413873,
6649            },
6650            Complex {
6651                re: -4.483728636087804,
6652                im: 19.89809738808738,
6653            },
6654            Complex {
6655                re: 6.2694355491755624,
6656                im: 10.14370255952367,
6657            },
6658            Complex {
6659                re: -22.314156955541193,
6660                im: -20.332642645390358,
6661            },
6662            Complex {
6663                re: 3.7204594687825505,
6664                im: 25.744748765550497,
6665            },
6666            Complex {
6667                re: 22.606266595559312,
6668                im: -1.074865427399808,
6669            },
6670            Complex {
6671                re: -5.826461570718632,
6672                im: 2.9801705153139313,
6673            },
6674            Complex {
6675                re: 18.631133902863873,
6676                im: -21.1652359664781,
6677            },
6678            Complex {
6679                re: -4.452742460819701,
6680                im: -28.361117807381046,
6681            },
6682            Complex {
6683                re: 15.145452010417866,
6684                im: 2.131935229875893,
6685            },
6686            Complex {
6687                re: -6.369976305907954,
6688                im: 18.833322088074663,
6689            },
6690            Complex {
6691                re: -9.782989343103676,
6692                im: -27.740350786143154,
6693            },
6694            Complex {
6695                re: 8.788568109640975,
6696                im: -18.149503977459478,
6697            },
6698            Complex {
6699                re: 13.791338081097098,
6700                im: 14.152748328113887,
6701            },
6702            Complex {
6703                re: 20.803837419928367,
6704                im: -10.234554496493239,
6705            },
6706            Complex {
6707                re: 10.140158141949128,
6708                im: -12.569396516850187,
6709            },
6710            Complex {
6711                re: -2.642086895638294,
6712                im: -5.9062269137527075,
6713            },
6714            Complex {
6715                re: -1.145026640498831,
6716                im: 1.6310353351347153,
6717            },
6718            Complex {
6719                re: -4.2789978163617945,
6720                im: -1.2941754262700211,
6721            },
6722            Complex {
6723                re: -1.5433014546799266,
6724                im: -1.3799970597185398,
6725            },
6726            Complex {
6727                re: -1.5265813464591282,
6728                im: -19.2598847775402,
6729            },
6730            Complex {
6731                re: -13.630711276810953,
6732                im: -11.606595075337083,
6733            },
6734            Complex {
6735                re: 7.075233823929619,
6736                im: -0.1986070522898764,
6737            },
6738            Complex {
6739                re: -5.631026230445633,
6740                im: 2.8103782828601807,
6741            },
6742            Complex {
6743                re: -4.190652882374069,
6744                im: -9.026353166959302,
6745            },
6746            Complex {
6747                re: 7.26410762472239,
6748                im: -4.1111233501265545,
6749            },
6750            Complex {
6751                re: 3.7857875593588393,
6752                im: 1.2218328630930655,
6753            },
6754            Complex {
6755                re: -6.950617423742591,
6756                im: 0.18386867903676074,
6757            },
6758            Complex {
6759                re: -2.806924281767941,
6760                im: -2.749574758006813,
6761            },
6762            Complex {
6763                re: 1.9048248054572872,
6764                im: -7.894113873339095,
6765            },
6766            Complex {
6767                re: 10.28484405624057,
6768                im: 11.089378580773584,
6769            },
6770            Complex {
6771                re: -1.9841319909677395,
6772                im: -5.082205843064897,
6773            },
6774            Complex {
6775                re: 5.112242435768352,
6776                im: 5.767416268788445,
6777            },
6778            Complex {
6779                re: 5.4453836708882015,
6780                im: -5.003111933174893,
6781            },
6782            Complex {
6783                re: -2.8948611911745816,
6784                im: -23.27277161470719,
6785            },
6786            Complex {
6787                re: -9.36949823790812,
6788                im: -9.90527358415774,
6789            },
6790            Complex {
6791                re: 40.977405504915936,
6792                im: 1.5369220197484115,
6793            },
6794            Complex {
6795                re: -2.4050330251270076,
6796                im: 11.456375124717663,
6797            },
6798            Complex {
6799                re: 0.7840233403898256,
6800                im: -2.019640252705555,
6801            },
6802            Complex {
6803                re: -12.039545780705234,
6804                im: 12.374190288668174,
6805            },
6806            Complex {
6807                re: 15.685346800378726,
6808                im: -7.943898485349346,
6809            },
6810            Complex {
6811                re: 5.068916455326681,
6812                im: 3.305664630916768,
6813            },
6814            Complex {
6815                re: -12.035430156214124,
6816                im: -12.462578586791121,
6817            },
6818            Complex {
6819                re: 10.872028000674023,
6820                im: 3.609082256762213,
6821            },
6822            Complex {
6823                re: -7.434371755671336,
6824                im: -4.605693450449347,
6825            },
6826            Complex {
6827                re: -17.259053381319507,
6828                im: 3.4156951118443444,
6829            },
6830            Complex {
6831                re: -12.518375695112473,
6832                im: 20.76840842846059,
6833            },
6834            Complex {
6835                re: -7.499875469569252,
6836                im: 4.241432641142718,
6837            },
6838            Complex {
6839                re: 19.49938631575975,
6840                im: -12.370578728305967,
6841            },
6842            Complex {
6843                re: -28.30096421705197,
6844                im: 11.447267247766817,
6845            },
6846            Complex {
6847                re: -4.145830634446797,
6848                im: 0.6020129627407727,
6849            },
6850            Complex {
6851                re: -4.077793902135664,
6852                im: -23.668819504783322,
6853            },
6854            Complex {
6855                re: -2.8699708935783006,
6856                im: -5.941539607161145,
6857            },
6858            Complex {
6859                re: 22.97038009091443,
6860                im: -13.317466470094887,
6861            },
6862            Complex {
6863                re: -21.700409494708744,
6864                im: -4.276081531151522,
6865            },
6866            Complex {
6867                re: -15.73511295904233,
6868                im: -4.839248578708322,
6869            },
6870            Complex {
6871                re: 11.174794165812811,
6872                im: -5.02632042712437,
6873            },
6874            Complex {
6875                re: 17.930268775771935,
6876                im: -15.41627727832335,
6877            },
6878            Complex {
6879                re: -9.115393378862883,
6880                im: -1.748199745844719,
6881            },
6882            Complex {
6883                re: -9.526049177325175,
6884                im: -5.880473666604645,
6885            },
6886            Complex {
6887                re: -0.5454460085564792,
6888                im: 5.421170228769679,
6889            },
6890            Complex {
6891                re: 31.612733868237907,
6892                im: 10.597984966470468,
6893            },
6894            Complex {
6895                re: -4.115611150280513,
6896                im: -12.376933434327286,
6897            },
6898            Complex {
6899                re: 21.6977161516156,
6900                im: -15.297420113265403,
6901            },
6902            Complex {
6903                re: -3.1422028609957415,
6904                im: 1.1717373035299605,
6905            },
6906            Complex {
6907                re: 1.9505185342589346,
6908                im: -12.017345007623085,
6909            },
6910            Complex {
6911                re: 1.3770142817981155,
6912                im: -11.83569940317366,
6913            },
6914            Complex {
6915                re: 7.517368770592359,
6916                im: 3.0991961840361437,
6917            },
6918            Complex {
6919                re: -3.7168932793378087,
6920                im: 18.66602326725325,
6921            },
6922            Complex {
6923                re: 12.60412532784608,
6924                im: 13.069997113203295,
6925            },
6926            Complex {
6927                re: -6.565281644336703,
6928                im: -2.0519705257334477,
6929            },
6930            Complex {
6931                re: 1.6806810206084446,
6932                im: -31.360528652953484,
6933            },
6934            Complex {
6935                re: 25.554572908170798,
6936                im: -5.386439408681861,
6937            },
6938            Complex {
6939                re: -5.511270690898389,
6940                im: 7.198921572701657,
6941            },
6942            Complex {
6943                re: -22.852558519658192,
6944                im: -14.199054274681647,
6945            },
6946            Complex {
6947                re: -2.471576951494411,
6948                im: 20.983968125300233,
6949            },
6950            Complex {
6951                re: -6.619505574087517,
6952                im: -2.7811962565655466,
6953            },
6954            Complex {
6955                re: -5.159254577189047,
6956                im: -6.020500264809318,
6957            },
6958            Complex {
6959                re: 0.8053706479263374,
6960                im: -4.360747328469012,
6961            },
6962            Complex {
6963                re: -7.597590672610702,
6964                im: -3.0246871976603673,
6965            },
6966            Complex {
6967                re: 2.1482255792866702,
6968                im: 13.19408570196779,
6969            },
6970            Complex {
6971                re: -12.074300397899075,
6972                im: 10.159406365043047,
6973            },
6974            Complex {
6975                re: 14.368309810336687,
6976                im: 5.6974436376814666,
6977            },
6978            Complex {
6979                re: -12.17296661127092,
6980                im: 27.699942506768167,
6981            },
6982            Complex {
6983                re: -22.375915622116676,
6984                im: 5.595687113973403,
6985            },
6986            Complex {
6987                re: 4.293995247162689,
6988                im: -1.2640761793929887,
6989            },
6990            Complex {
6991                re: -3.9298573858489956,
6992                im: 6.488741309397988,
6993            },
6994            Complex {
6995                re: 8.633544343905895,
6996                im: 12.508537843586149,
6997            },
6998            Complex {
6999                re: -1.5807540481880604,
7000                im: 15.368931214877623,
7001            },
7002            Complex {
7003                re: 10.64961734598725,
7004                im: 16.167469307130176,
7005            },
7006            Complex {
7007                re: 6.099627252338821,
7008                im: 7.142136802926487,
7009            },
7010            Complex {
7011                re: 8.149305380788414,
7012                im: 15.634187352919923,
7013            },
7014            Complex {
7015                re: -10.434649376836466,
7016                im: -0.6933687155073369,
7017            },
7018            Complex {
7019                re: 3.417109663323253,
7020                im: -13.602735122519455,
7021            },
7022            Complex {
7023                re: 1.0760683206415829,
7024                im: -27.470988953013183,
7025            },
7026            Complex {
7027                re: 2.6115829405457003,
7028                im: -1.9099612386263167,
7029            },
7030            Complex {
7031                re: -17.97900525143622,
7032                im: -0.9052208155217123,
7033            },
7034            Complex {
7035                re: 5.173457983640089,
7036                im: 22.595097638647708,
7037            },
7038            Complex {
7039                re: 18.42195319600197,
7040                im: 0.40089160251192935,
7041            },
7042            Complex {
7043                re: 10.143079431237622,
7044                im: 3.6973690078255146,
7045            },
7046            Complex {
7047                re: 12.503690123355977,
7048                im: 1.4663730876949628,
7049            },
7050            Complex {
7051                re: 5.86239970092462,
7052                im: -19.811896515764793,
7053            },
7054            Complex {
7055                re: 8.035047475667222,
7056                im: 14.762470907603944,
7057            },
7058            Complex {
7059                re: 3.892671760628078,
7060                im: 4.237445227989204,
7061            },
7062            Complex {
7063                re: -13.014866092112817,
7064                im: -8.916117933353192,
7065            },
7066            Complex {
7067                re: -8.46164614239492,
7068                im: -10.756557314073653,
7069            },
7070            Complex {
7071                re: 2.5550352095220523,
7072                im: 43.34966160954228,
7073            },
7074            Complex {
7075                re: -8.941205772648656,
7076                im: -0.42706765753681974,
7077            },
7078            Complex {
7079                re: 8.197619422797091,
7080                im: -8.282859203621687,
7081            },
7082            Complex {
7083                re: -15.918035470289473,
7084                im: 12.747474653452528,
7085            },
7086            Complex {
7087                re: 21.292596560389327,
7088                im: 0.5998741521349564,
7089            },
7090            Complex {
7091                re: 4.404997164617046,
7092                im: 20.00081457612402,
7093            },
7094            Complex {
7095                re: -9.125769110325601,
7096                im: -14.867590192666931,
7097            },
7098            Complex {
7099                re: 24.450083760095985,
7100                im: -4.190528953973889,
7101            },
7102            Complex {
7103                re: 24.161911993674273,
7104                im: 4.132734086773654,
7105            },
7106            Complex {
7107                re: -5.411497876219621,
7108                im: -5.769566809816823,
7109            },
7110            Complex {
7111                re: 27.79496108489705,
7112                im: -2.069462516212746,
7113            },
7114            Complex {
7115                re: -23.82671667339708,
7116                im: -2.9990555788934428,
7117            },
7118            Complex {
7119                re: -11.920079151733166,
7120                im: -18.445485239162362,
7121            },
7122            Complex {
7123                re: 11.392943089828563,
7124                im: 11.828650852173267,
7125            },
7126            Complex {
7127                re: 1.2889101291477258,
7128                im: -2.990291495837166,
7129            },
7130            Complex {
7131                re: 21.74743727641311,
7132                im: -28.310020424132546,
7133            },
7134            Complex {
7135                re: -17.960902491329144,
7136                im: -18.0431062612551,
7137            },
7138            Complex {
7139                re: -9.476007324212722,
7140                im: -19.96560237334372,
7141            },
7142            Complex {
7143                re: -4.401274137289729,
7144                im: -3.851069702832584,
7145            },
7146            Complex {
7147                re: 12.56414471937658,
7148                im: -9.875003528805912,
7149            },
7150            Complex {
7151                re: 6.534039681771295,
7152                im: -2.892434414406248,
7153            },
7154            Complex {
7155                re: -0.04506841685463048,
7156                im: -2.6120455405039973,
7157            },
7158            Complex {
7159                re: -6.325116934790534,
7160                im: -9.955476167441791,
7161            },
7162            Complex {
7163                re: 14.01336246749955,
7164                im: -15.80691990286801,
7165            },
7166            Complex {
7167                re: 24.421659836878966,
7168                im: 3.9105168299004753,
7169            },
7170            Complex {
7171                re: -19.17685351082366,
7172                im: 7.8290521441686955,
7173            },
7174            Complex {
7175                re: -1.5715776579515932,
7176                im: -8.516219662836011,
7177            },
7178            Complex {
7179                re: -2.7678350845278157,
7180                im: -18.260974508152376,
7181            },
7182            Complex {
7183                re: -19.672510846573164,
7184                im: 18.042911518310493,
7185            },
7186            Complex {
7187                re: 0.7597985025759204,
7188                im: -7.3071407753190005,
7189            },
7190            Complex {
7191                re: 13.86325732889225,
7192                im: 16.291283787747226,
7193            },
7194            Complex {
7195                re: -3.460180251549126,
7196                im: -2.021695360221633,
7197            },
7198            Complex {
7199                re: 5.154886863805563,
7200                im: 9.390732216420421,
7201            },
7202            Complex {
7203                re: 14.323761594922958,
7204                im: 11.280175357030723,
7205            },
7206            Complex {
7207                re: 16.562505608913973,
7208                im: 13.45003169212834,
7209            },
7210            Complex {
7211                re: -21.71503072681655,
7212                im: 4.055868967552855,
7213            },
7214            Complex {
7215                re: -25.185915100156983,
7216                im: -16.16228589381319,
7217            },
7218            Complex {
7219                re: -24.68431805923367,
7220                im: -1.9018586098109047,
7221            },
7222            Complex {
7223                re: -13.972175125421028,
7224                im: -7.67576866815792,
7225            },
7226            Complex {
7227                re: -2.2560173460933997,
7228                im: 0.2984886448102557,
7229            },
7230            Complex {
7231                re: 5.149398949653667,
7232                im: -19.05305567894343,
7233            },
7234            Complex {
7235                re: -19.78038714950273,
7236                im: 30.466719775791844,
7237            },
7238            Complex {
7239                re: -9.508838854092964,
7240                im: -7.831638431504114,
7241            },
7242            Complex {
7243                re: 13.79170907928065,
7244                im: -0.03436604905208718,
7245            },
7246            Complex {
7247                re: 4.5839709506518105,
7248                im: 8.453976794635356,
7249            },
7250            Complex {
7251                re: -3.3796693755735063,
7252                im: 1.668803386583246,
7253            },
7254            Complex {
7255                re: 9.762441301388858,
7256                im: 8.546519150641789,
7257            },
7258            Complex {
7259                re: -13.749612504281867,
7260                im: -4.38368818986492,
7261            },
7262            Complex {
7263                re: 6.108730652832888,
7264                im: 8.20357371161023,
7265            },
7266            Complex {
7267                re: 0.09033781304262867,
7268                im: -24.954105821764866,
7269            },
7270            Complex {
7271                re: -6.704549700609635,
7272                im: -5.7498663969176915,
7273            },
7274            Complex {
7275                re: 3.5669604473825203,
7276                im: -5.033988435088559,
7277            },
7278            Complex {
7279                re: -2.4686639380015354,
7280                im: -3.301836706777941,
7281            },
7282            Complex {
7283                re: 1.813421838432756,
7284                im: -28.606052173148665,
7285            },
7286            Complex {
7287                re: 16.92403629000961,
7288                im: -12.542815245588441,
7289            },
7290            Complex {
7291                re: 5.342950497610023,
7292                im: -34.99300448657549,
7293            },
7294            Complex {
7295                re: 32.16545029254558,
7296                im: 8.66835151445916,
7297            },
7298            Complex {
7299                re: 21.378002454413647,
7300                im: 3.528089799223478,
7301            },
7302            Complex {
7303                re: -12.072641678374065,
7304                im: -12.735052620354718,
7305            },
7306            Complex {
7307                re: 44.60593402335257,
7308                im: 15.784653779607648,
7309            },
7310            Complex {
7311                re: 2.1588013073184738,
7312                im: -24.209470279914324,
7313            },
7314            Complex {
7315                re: -27.76203590515962,
7316                im: -0.8058729403005298,
7317            },
7318            Complex {
7319                re: 18.242415904170066,
7320                im: 16.72734262954434,
7321            },
7322            Complex {
7323                re: 4.97927440491753,
7324                im: -16.7552797525941,
7325            },
7326            Complex {
7327                re: -19.914188543297932,
7328                im: -10.490681658767022,
7329            },
7330            Complex {
7331                re: -20.970799132169418,
7332                im: -17.79478612361888,
7333            },
7334            Complex {
7335                re: 4.486259964912683,
7336                im: -15.64928068695593,
7337            },
7338            Complex {
7339                re: 6.3363164847979405,
7340                im: 3.650139456719308,
7341            },
7342            Complex {
7343                re: -18.09290093983951,
7344                im: 24.674889857691454,
7345            },
7346            Complex {
7347                re: -9.771014219156715,
7348                im: 14.38481998757101,
7349            },
7350            Complex {
7351                re: 8.058387856004328,
7352                im: -3.8825260274896047,
7353            },
7354            Complex {
7355                re: -23.816371409816036,
7356                im: 0.6326722479571067,
7357            },
7358            Complex {
7359                re: -8.988646934235662,
7360                im: 8.251931624632547,
7361            },
7362            Complex {
7363                re: 3.3276044752750673,
7364                im: 1.578800371193037,
7365            },
7366            Complex {
7367                re: -7.59831408527478,
7368                im: 9.824275987162718,
7369            },
7370            Complex {
7371                re: 7.701954991332694,
7372                im: 5.574813420701819,
7373            },
7374            Complex {
7375                re: -13.096072762573833,
7376                im: -10.584406297697049,
7377            },
7378            Complex {
7379                re: -5.981237988912614,
7380                im: -0.7179184369947649,
7381            },
7382            Complex {
7383                re: 29.12188306626394,
7384                im: -0.11339961154260081,
7385            },
7386            Complex {
7387                re: -14.17813488515293,
7388                im: -9.896470910762574,
7389            },
7390            Complex {
7391                re: 3.651380388735177,
7392                im: -3.6231280753219206,
7393            },
7394            Complex {
7395                re: -20.178661433531673,
7396                im: 8.01737134403267,
7397            },
7398            Complex {
7399                re: -15.064937063022182,
7400                im: 13.0421050255239,
7401            },
7402            Complex {
7403                re: 22.625490107894286,
7404                im: 8.631679725995816,
7405            },
7406            Complex {
7407                re: -10.551924804262066,
7408                im: 6.630068457475332,
7409            },
7410            Complex {
7411                re: 6.618272164062223,
7412                im: -1.267615524096672,
7413            },
7414            Complex {
7415                re: -10.961986207638942,
7416                im: -13.628747589180467,
7417            },
7418            Complex {
7419                re: -3.704853043648937,
7420                im: -18.49849998091574,
7421            },
7422            Complex {
7423                re: -36.66996712435405,
7424                im: -20.064616794229384,
7425            },
7426            Complex {
7427                re: -5.040096653761515,
7428                im: 3.302796273836224,
7429            },
7430            Complex {
7431                re: 5.949514251165351,
7432                im: 6.31556205079038,
7433            },
7434            Complex {
7435                re: 6.259257072428331,
7436                im: 25.049631792859632,
7437            },
7438            Complex {
7439                re: -2.1478240354262557,
7440                im: -13.89160300527538,
7441            },
7442            Complex {
7443                re: -6.685417337892513,
7444                im: 32.43530631573292,
7445            },
7446            Complex {
7447                re: -4.8431546410234905,
7448                im: 20.01056947706563,
7449            },
7450            Complex {
7451                re: 6.1550189409627105,
7452                im: -5.540159919884599,
7453            },
7454            Complex {
7455                re: -8.561440810240946,
7456                im: -28.670947208338156,
7457            },
7458            Complex {
7459                re: -0.1599078053023515,
7460                im: 3.1427477662284584,
7461            },
7462            Complex {
7463                re: -20.387630031851632,
7464                im: -27.19639844333117,
7465            },
7466            Complex {
7467                re: -15.748984127611331,
7468                im: -6.595292511204785,
7469            },
7470            Complex {
7471                re: 13.922954298261622,
7472                im: -11.7685982799245,
7473            },
7474            Complex {
7475                re: 14.3718479140724,
7476                im: -8.961556502767952,
7477            },
7478            Complex {
7479                re: 18.768500376470623,
7480                im: -21.926783142233123,
7481            },
7482            Complex {
7483                re: 10.308401022077192,
7484                im: -2.5718611739154245,
7485            },
7486            Complex {
7487                re: -5.468302878711819,
7488                im: -5.973343799304773,
7489            },
7490            Complex {
7491                re: 10.612830821329203,
7492                im: 0.6786134447767536,
7493            },
7494            Complex {
7495                re: 6.497302644160499,
7496                im: 6.78258639363428,
7497            },
7498            Complex {
7499                re: -13.79961506739579,
7500                im: 11.192976127787624,
7501            },
7502            Complex {
7503                re: 15.218658496757945,
7504                im: -17.948542609819228,
7505            },
7506            Complex {
7507                re: 28.14281570297498,
7508                im: 2.529767061449946,
7509            },
7510            Complex {
7511                re: 9.070944766747917,
7512                im: -2.268590798151294,
7513            },
7514            Complex {
7515                re: 1.6989952351822577,
7516                im: -9.13938097900829,
7517            },
7518            Complex {
7519                re: 0.6136480239769262,
7520                im: 0.7626163386562848,
7521            },
7522            Complex {
7523                re: -5.91386912996015,
7524                im: 8.433723012938596,
7525            },
7526            Complex {
7527                re: 34.87080043276313,
7528                im: 14.200097074434353,
7529            },
7530            Complex {
7531                re: -9.584577347214948,
7532                im: 12.321976878866163,
7533            },
7534            Complex {
7535                re: -6.117794882332338,
7536                im: -2.092751601283502,
7537            },
7538            Complex {
7539                re: 20.954350678148632,
7540                im: 8.150582401646542,
7541            },
7542            Complex {
7543                re: -31.6570928782108,
7544                im: -13.594031506117812,
7545            },
7546            Complex {
7547                re: -2.3735757071415824,
7548                im: -14.23718881448296,
7549            },
7550            Complex {
7551                re: -20.410443296982372,
7552                im: 15.609557167030067,
7553            },
7554            Complex {
7555                re: -32.69630397292776,
7556                im: -13.290432066202772,
7557            },
7558            Complex {
7559                re: -11.333546417960257,
7560                im: -14.08858429872268,
7561            },
7562            Complex {
7563                re: 31.25997322981408,
7564                im: -25.97434145090049,
7565            },
7566            Complex {
7567                re: 12.914318168935894,
7568                im: -0.08510432645777577,
7569            },
7570            Complex {
7571                re: -7.24060484885468,
7572                im: 13.853874200797058,
7573            },
7574            Complex {
7575                re: -13.938003799969113,
7576                im: 20.23819566615476,
7577            },
7578            Complex {
7579                re: -15.817460619971603,
7580                im: -12.174708432209403,
7581            },
7582            Complex {
7583                re: -0.08917108916746086,
7584                im: -14.552275572303726,
7585            },
7586            Complex {
7587                re: -15.953993369581447,
7588                im: 7.525976155951566,
7589            },
7590            Complex {
7591                re: -24.45480403858061,
7592                im: -3.7643007587787904,
7593            },
7594            Complex {
7595                re: 11.783860304513315,
7596                im: 16.86480190410658,
7597            },
7598            Complex {
7599                re: 10.123816034759955,
7600                im: -10.400582740931885,
7601            },
7602            Complex {
7603                re: 6.857464433121257,
7604                im: 34.26659162638774,
7605            },
7606            Complex {
7607                re: -27.245104215975257,
7608                im: -12.473896310484585,
7609            },
7610            Complex {
7611                re: 3.6936539154803394,
7612                im: 6.73147650304003,
7613            },
7614            Complex {
7615                re: 2.4396547259682175,
7616                im: -14.779653189252755,
7617            },
7618            Complex {
7619                re: 3.875181621260447,
7620                im: 13.342409722264879,
7621            },
7622            Complex {
7623                re: -11.338079344459477,
7624                im: 1.8641393709797576,
7625            },
7626            Complex {
7627                re: -2.5721078209531867,
7628                im: 6.933160363693035,
7629            },
7630            Complex {
7631                re: 4.318197301098163,
7632                im: -2.7745217568884826,
7633            },
7634            Complex {
7635                re: 8.156920540856985,
7636                im: -12.03307762044313,
7637            },
7638            Complex {
7639                re: -1.8067593524925254,
7640                im: 6.432903775337436,
7641            },
7642            Complex {
7643                re: 6.0450725032282655,
7644                im: -7.178243358917859,
7645            },
7646            Complex {
7647                re: -16.85768380816865,
7648                im: -1.4367980606548412,
7649            },
7650            Complex {
7651                re: 11.858044192318662,
7652                im: -12.199155314045411,
7653            },
7654            Complex {
7655                re: -25.818554878784038,
7656                im: -1.501440396850077,
7657            },
7658            Complex {
7659                re: 8.665860120322122,
7660                im: 6.983037391605539,
7661            },
7662            Complex {
7663                re: -10.685624068669775,
7664                im: -4.5607844065002805,
7665            },
7666            Complex {
7667                re: -12.756608136721983,
7668                im: -16.691071666944374,
7669            },
7670            Complex {
7671                re: -20.168998599529406,
7672                im: 4.316169324168188,
7673            },
7674            Complex {
7675                re: 8.491280206624612,
7676                im: -0.08914251035122644,
7677            },
7678            Complex {
7679                re: 10.285954756265745,
7680                im: 8.567168626619559,
7681            },
7682            Complex {
7683                re: 2.088652359730742,
7684                im: -20.00284913911074,
7685            },
7686            Complex {
7687                re: 11.03643917832094,
7688                im: -0.6761292951512521,
7689            },
7690            Complex {
7691                re: 8.234666892640858,
7692                im: 0.20693920921305864,
7693            },
7694            Complex {
7695                re: 7.236901440342585,
7696                im: -26.08672433230018,
7697            },
7698            Complex {
7699                re: -9.415746828909166,
7700                im: 2.3860102129705005,
7701            },
7702            Complex {
7703                re: -22.519429043405587,
7704                im: 10.87534645755105,
7705            },
7706            Complex {
7707                re: -14.047146936076647,
7708                im: 3.5845508614455563,
7709            },
7710            Complex {
7711                re: -10.765337504369578,
7712                im: -3.2952401776654194,
7713            },
7714            Complex {
7715                re: 2.580617467952071,
7716                im: -26.173982434010064,
7717            },
7718            Complex {
7719                re: 1.352252447942778,
7720                im: 17.614786974670977,
7721            },
7722            Complex {
7723                re: -5.364800334058605,
7724                im: -8.594547096480294,
7725            },
7726            Complex {
7727                re: 9.556680472998009,
7728                im: -13.132788201676803,
7729            },
7730            Complex {
7731                re: 3.079134959000806,
7732                im: -11.84718471648354,
7733            },
7734            Complex {
7735                re: 17.204639479326165,
7736                im: 20.82430505901594,
7737            },
7738            Complex {
7739                re: 10.665158303441402,
7740                im: -16.354040736243935,
7741            },
7742            Complex {
7743                re: 20.104382779448414,
7744                im: -19.12727157878553,
7745            },
7746            Complex {
7747                re: 6.59730868619312,
7748                im: -8.206884235801109,
7749            },
7750            Complex {
7751                re: 16.817074806490993,
7752                im: 3.8859641378972913,
7753            },
7754            Complex {
7755                re: 6.333534267343904,
7756                im: 18.267281032436767,
7757            },
7758            Complex {
7759                re: 15.912816404219571,
7760                im: 6.757132319703812,
7761            },
7762            Complex {
7763                re: -34.46989546715765,
7764                im: 3.2605832902075806,
7765            },
7766            Complex {
7767                re: -10.699879998875637,
7768                im: 13.87515586871546,
7769            },
7770            Complex {
7771                re: 8.174910214213048,
7772                im: -6.6333398979234754,
7773            },
7774            Complex {
7775                re: -10.017787198175343,
7776                im: -1.038585281876312,
7777            },
7778            Complex {
7779                re: -11.005950721046212,
7780                im: 20.48459605510572,
7781            },
7782            Complex {
7783                re: -2.7610267752857647,
7784                im: 12.692628939918755,
7785            },
7786            Complex {
7787                re: 9.624482391739697,
7788                im: 5.2309056589697605,
7789            },
7790            Complex {
7791                re: -13.473427100363805,
7792                im: 0.14070791194926446,
7793            },
7794            Complex {
7795                re: -1.9003740963434006,
7796                im: -12.80488962049461,
7797            },
7798            Complex {
7799                re: 3.76510896565188,
7800                im: -23.098775615412315,
7801            },
7802            Complex {
7803                re: -1.8534055988123548,
7804                im: -17.84710060219776,
7805            },
7806            Complex {
7807                re: 24.246715935556963,
7808                im: -22.526193417941958,
7809            },
7810            Complex {
7811                re: 19.302212018393544,
7812                im: -5.171202532787905,
7813            },
7814            Complex {
7815                re: 0.8832550851739578,
7816                im: 18.520316755377877,
7817            },
7818            Complex {
7819                re: -9.216475972485448,
7820                im: -9.685712617741082,
7821            },
7822            Complex {
7823                re: -8.970432844135159,
7824                im: 15.63016103380543,
7825            },
7826            Complex {
7827                re: -29.765869313274457,
7828                im: -4.45875409993473,
7829            },
7830            Complex {
7831                re: -13.069613983231179,
7832                im: 12.547674593551012,
7833            },
7834            Complex {
7835                re: -16.387095383344366,
7836                im: -29.424885631252927,
7837            },
7838            Complex {
7839                re: 24.12216060035886,
7840                im: -21.129137345685667,
7841            },
7842            Complex {
7843                re: -12.59307920634992,
7844                im: -12.66653021003397,
7845            },
7846            Complex {
7847                re: -13.422376836695513,
7848                im: 2.7704821356865894,
7849            },
7850            Complex {
7851                re: -16.94214076762204,
7852                im: 10.41407721530965,
7853            },
7854            Complex {
7855                re: -11.98303326971262,
7856                im: -7.1083126094792455,
7857            },
7858            Complex {
7859                re: -4.264974264704817,
7860                im: -12.097025578083628,
7861            },
7862            Complex {
7863                re: -6.019891524067809,
7864                im: 9.089476569248419,
7865            },
7866            Complex {
7867                re: 6.530200822981083,
7868                im: -14.465947211986197,
7869            },
7870            Complex {
7871                re: 0.4696293743706019,
7872                im: -5.904357549116605,
7873            },
7874            Complex {
7875                re: -1.6296619938468426,
7876                im: 18.09459947276371,
7877            },
7878            Complex {
7879                re: 32.62418638856332,
7880                im: 26.799719152727413,
7881            },
7882            Complex {
7883                re: -16.23892649943583,
7884                im: 20.374421547984717,
7885            },
7886            Complex {
7887                re: 5.255608364336785,
7888                im: -11.17898589033269,
7889            },
7890            Complex {
7891                re: 4.045549074437985,
7892                im: -29.184667619198983,
7893            },
7894            Complex {
7895                re: -4.303860152779596,
7896                im: -2.1353933166292816,
7897            },
7898            Complex {
7899                re: 12.75401114653914,
7900                im: 39.77558556877867,
7901            },
7902            Complex {
7903                re: 11.88927292758147,
7904                im: 6.030890233197537,
7905            },
7906            Complex {
7907                re: 7.753474330678147,
7908                im: -11.441124380416127,
7909            },
7910            Complex {
7911                re: -9.712695075353578,
7912                im: -7.795524248055251,
7913            },
7914            Complex {
7915                re: 6.682859147406952,
7916                im: -3.748519420498191,
7917            },
7918            Complex {
7919                re: -3.948100379774706,
7920                im: -18.262314878057357,
7921            },
7922            Complex {
7923                re: 3.5646057770794077,
7924                im: 0.8445791340914388,
7925            },
7926            Complex {
7927                re: -32.67342781128047,
7928                im: -4.189590793510979,
7929            },
7930            Complex {
7931                re: -20.037103380457133,
7932                im: 7.006495465644139,
7933            },
7934            Complex {
7935                re: -6.273850156137668,
7936                im: -7.033139773291185,
7937            },
7938            Complex {
7939                re: -0.5364612361310197,
7940                im: 17.193012361542024,
7941            },
7942            Complex {
7943                re: 33.539479336735624,
7944                im: -2.688906799522515,
7945            },
7946            Complex {
7947                re: 7.020818353886631,
7948                im: 8.410833631176974,
7949            },
7950            Complex {
7951                re: -16.438325264562017,
7952                im: 13.195574498387721,
7953            },
7954            Complex {
7955                re: 9.562532187458888,
7956                im: -0.3833078484288617,
7957            },
7958            Complex {
7959                re: -3.0556802730114567,
7960                im: 4.898127170061912,
7961            },
7962            Complex {
7963                re: 10.757424651167595,
7964                im: 3.0151115873027337,
7965            },
7966            Complex {
7967                re: 3.760276258974277,
7968                im: 12.358744278102035,
7969            },
7970            Complex {
7971                re: -8.558404281501966,
7972                im: 0.40995171101075645,
7973            },
7974            Complex {
7975                re: -7.97867277684624,
7976                im: 2.256071050237697,
7977            },
7978            Complex {
7979                re: -4.853522974654981,
7980                im: 17.321151696718534,
7981            },
7982            Complex {
7983                re: 19.964180239620866,
7984                im: -34.0436830458125,
7985            },
7986            Complex {
7987                re: 5.208177377932033,
7988                im: 18.426048410198923,
7989            },
7990            Complex {
7991                re: -7.470380871163232,
7992                im: -6.304803624870738,
7993            },
7994            Complex {
7995                re: -6.213820082726382,
7996                im: -7.142076699722933,
7997            },
7998            Complex {
7999                re: -4.570376737779419,
8000                im: 11.264846255814303,
8001            },
8002            Complex {
8003                re: -19.427815633893744,
8004                im: -1.0660475154348434,
8005            },
8006            Complex {
8007                re: -6.318121544620231,
8008                im: -8.089753028876956,
8009            },
8010            Complex {
8011                re: -12.218167528690046,
8012                im: -12.807339298181603,
8013            },
8014            Complex {
8015                re: -0.020250190641862176,
8016                im: 20.861933693043838,
8017            },
8018            Complex {
8019                re: 10.552895822770806,
8020                im: -33.12410316053875,
8021            },
8022            Complex {
8023                re: -17.268697610656304,
8024                im: -1.9075715137041938,
8025            },
8026            Complex {
8027                re: 5.813028743845772,
8028                im: 13.028665573980355,
8029            },
8030            Complex {
8031                re: 0.8609114622862175,
8032                im: -34.742683496592676,
8033            },
8034            Complex {
8035                re: 11.521349817037727,
8036                im: 21.278265862671404,
8037            },
8038            Complex {
8039                re: -3.194595529224424,
8040                im: 24.005162754572755,
8041            },
8042            Complex {
8043                re: 3.29198816271046,
8044                im: -2.9180564940722364,
8045            },
8046            Complex {
8047                re: 20.694289627976822,
8048                im: 2.892306893066383,
8049            },
8050            Complex {
8051                re: -3.3116243684128595,
8052                im: 2.121340306105017,
8053            },
8054            Complex {
8055                re: -10.339634688554309,
8056                im: -6.094247030336335,
8057            },
8058            Complex {
8059                re: 9.453015283775729,
8060                im: 1.5927113997062552,
8061            },
8062            Complex {
8063                re: 5.226719781656833,
8064                im: -18.54989214598973,
8065            },
8066            Complex {
8067                re: 13.40637610425334,
8068                im: -3.3592842175527684,
8069            },
8070            Complex {
8071                re: 0.8397875960796144,
8072                im: 20.600712147795782,
8073            },
8074            Complex {
8075                re: -6.607587443806032,
8076                im: 0.40231500518111396,
8077            },
8078            Complex {
8079                re: -3.0469368263370757,
8080                im: -6.992825726009068,
8081            },
8082            Complex {
8083                re: 8.931555204898254,
8084                im: -0.24339965839042677,
8085            },
8086            Complex {
8087                re: 1.8265930942548527,
8088                im: -0.36446357493462234,
8089            },
8090            Complex {
8091                re: 8.956326036418973,
8092                im: -21.821358767704055,
8093            },
8094            Complex {
8095                re: -2.30085957607973,
8096                im: 0.09942470668130454,
8097            },
8098            Complex {
8099                re: 8.93428021617235,
8100                im: 0.4677745989235298,
8101            },
8102            Complex {
8103                re: 23.835704431369145,
8104                im: -39.524778262859456,
8105            },
8106            Complex {
8107                re: 4.789679051973552,
8108                im: 7.249481818565202,
8109            },
8110            Complex {
8111                re: -4.901947697443352,
8112                im: -4.437926582974358,
8113            },
8114            Complex {
8115                re: -16.143691334064535,
8116                im: 7.359320100540037,
8117            },
8118            Complex {
8119                re: -18.44416457430058,
8120                im: -9.085030492957555,
8121            },
8122            Complex {
8123                re: -7.489731294797418,
8124                im: -13.588485321580343,
8125            },
8126            Complex {
8127                re: -2.3401594665792795,
8128                im: 14.073415381086896,
8129            },
8130            Complex {
8131                re: 7.313691919780059,
8132                im: 29.001578308013105,
8133            },
8134            Complex {
8135                re: -8.154073046730757,
8136                im: -18.029148701167394,
8137            },
8138            Complex {
8139                re: 0.10728621040188457,
8140                im: -8.09097540003227,
8141            },
8142            Complex {
8143                re: 4.127336951848779,
8144                im: 2.649805935883597,
8145            },
8146            Complex {
8147                re: -10.112654036730337,
8148                im: 32.45001251443141,
8149            },
8150            Complex {
8151                re: 20.730807196773316,
8152                im: 4.929622876660426,
8153            },
8154            Complex {
8155                re: 19.112699597047847,
8156                im: -12.13724121332104,
8157            },
8158            Complex {
8159                re: 24.16351926422062,
8160                im: -1.5174674075280397,
8161            },
8162            Complex {
8163                re: 21.40341233972251,
8164                im: -21.76113165910897,
8165            },
8166            Complex {
8167                re: -11.437116262611365,
8168                im: 18.821181487584962,
8169            },
8170            Complex {
8171                re: 11.416925853184656,
8172                im: -11.731081395750977,
8173            },
8174            Complex {
8175                re: 4.092312425744262,
8176                im: -15.27095965200755,
8177            },
8178            Complex {
8179                re: 18.320929018136823,
8180                im: -0.7020252665844038,
8181            },
8182            Complex {
8183                re: 22.43169484793321,
8184                im: 17.75816467002693,
8185            },
8186            Complex {
8187                re: 14.932635929640622,
8188                im: 7.668368734237499,
8189            },
8190            Complex {
8191                re: 3.4387485339675616,
8192                im: -2.7197214881961598,
8193            },
8194            Complex {
8195                re: 18.683032436228807,
8196                im: 1.9520651113651546,
8197            },
8198            Complex {
8199                re: -13.554013429740072,
8200                im: 5.530472728594148,
8201            },
8202            Complex {
8203                re: 1.2927338613309463,
8204                im: -0.871577179547304,
8205            },
8206            Complex {
8207                re: 1.0265595855879277,
8208                im: -13.436496716515018,
8209            },
8210            Complex {
8211                re: -7.218212232061874,
8212                im: -35.93457874109659,
8213            },
8214            Complex {
8215                re: 10.915654678249894,
8216                im: 1.7877574580305855,
8217            },
8218            Complex {
8219                re: -16.096448385635302,
8220                im: 4.151987980139023,
8221            },
8222            Complex {
8223                re: 9.88830027146236,
8224                im: 20.8755779587038,
8225            },
8226            Complex {
8227                re: 20.515360983508362,
8228                im: 8.582851993541103,
8229            },
8230            Complex {
8231                re: 10.447358870666434,
8232                im: -10.525598314368505,
8233            },
8234            Complex {
8235                re: -1.6360678615533786,
8236                im: 7.250358321619364,
8237            },
8238            Complex {
8239                re: 7.883173735122365,
8240                im: 5.759915503780947,
8241            },
8242            Complex {
8243                re: 9.906493555531476,
8244                im: 8.167073590185241,
8245            },
8246            Complex {
8247                re: -24.393948162236526,
8248                im: 11.265927522144594,
8249            },
8250            Complex {
8251                re: 22.279039731785808,
8252                im: 11.19572884393088,
8253            },
8254            Complex {
8255                re: -2.468417129368195,
8256                im: -8.032512798632592,
8257            },
8258            Complex {
8259                re: -8.387478527839724,
8260                im: -1.7211595267785098,
8261            },
8262            Complex {
8263                re: -7.50787922240011,
8264                im: 1.5883952662110516,
8265            },
8266            Complex {
8267                re: 12.779181146648016,
8268                im: -24.42401486522038,
8269            },
8270            Complex {
8271                re: -5.32947391462315,
8272                im: -22.679529413902966,
8273            },
8274            Complex {
8275                re: 6.865883373324738,
8276                im: 6.697998421752681,
8277            },
8278            Complex {
8279                re: -16.452070341519395,
8280                im: 1.7793550755453449,
8281            },
8282            Complex {
8283                re: 7.378889282051623,
8284                im: -4.822330681431286,
8285            },
8286            Complex {
8287                re: -3.181524581611681,
8288                im: 20.113107321130194,
8289            },
8290            Complex {
8291                re: 21.588035236751008,
8292                im: 18.903730029734472,
8293            },
8294            Complex {
8295                re: -4.712048652397783,
8296                im: 1.091343977364577,
8297            },
8298            Complex {
8299                re: 21.40840081352153,
8300                im: 17.62196608534864,
8301            },
8302            Complex {
8303                re: -7.271761008105426,
8304                im: -6.800475469369344,
8305            },
8306            Complex {
8307                re: 6.884941557031489,
8308                im: -1.9630136161524638,
8309            },
8310            Complex {
8311                re: -19.365514383917592,
8312                im: -26.09771709100059,
8313            },
8314            Complex {
8315                re: 0.03124250409133289,
8316                im: -21.111216364865378,
8317            },
8318            Complex {
8319                re: 3.5197109516024803,
8320                im: 4.211735197822403,
8321            },
8322            Complex {
8323                re: 6.694557850031641,
8324                im: 16.580327917977986,
8325            },
8326            Complex {
8327                re: -10.625674303912131,
8328                im: -15.098535123866625,
8329            },
8330            Complex {
8331                re: 7.632503535197641,
8332                im: -13.496552671137913,
8333            },
8334            Complex {
8335                re: 6.666570604893374,
8336                im: -22.632893585097666,
8337            },
8338            Complex {
8339                re: 29.145972983851596,
8340                im: -0.8536495350355571,
8341            },
8342            Complex {
8343                re: 0.9067224217164398,
8344                im: -27.699802136818,
8345            },
8346            Complex {
8347                re: -7.576905654415817,
8348                im: -1.1455385765250885,
8349            },
8350            Complex {
8351                re: 15.052385197274083,
8352                im: 18.229692487971043,
8353            },
8354            Complex {
8355                re: 6.069332330883644,
8356                im: -4.2928863996131374,
8357            },
8358            Complex {
8359                re: -6.355401052480392,
8360                im: -24.76740313934717,
8361            },
8362            Complex {
8363                re: 7.831633490089889,
8364                im: 16.966375049774904,
8365            },
8366            Complex {
8367                re: -5.913610066884166,
8368                im: -10.281223606587622,
8369            },
8370            Complex {
8371                re: -20.173608761620233,
8372                im: -9.757240636163429,
8373            },
8374            Complex {
8375                re: 4.895181714281126,
8376                im: 9.526537645058433,
8377            },
8378            Complex {
8379                re: 10.803124004645198,
8380                im: -8.350028627906413,
8381            },
8382            Complex {
8383                re: -27.18547055676217,
8384                im: 14.082242470336512,
8385            },
8386            Complex {
8387                re: 5.6237579114346685,
8388                im: -5.791789191848009,
8389            },
8390            Complex {
8391                re: 7.273473206398575,
8392                im: -2.8127717625208994,
8393            },
8394            Complex {
8395                re: -8.39303416352648,
8396                im: -24.268316163560513,
8397            },
8398            Complex {
8399                re: -1.5429127747670837,
8400                im: -1.2280791030286409,
8401            },
8402            Complex {
8403                re: 5.9728644096379915,
8404                im: -0.933548218192918,
8405            },
8406            Complex {
8407                re: 1.3970800698663988,
8408                im: -27.976725082838605,
8409            },
8410            Complex {
8411                re: -2.4403283796622004,
8412                im: 3.1778344134879974,
8413            },
8414            Complex {
8415                re: -3.352367586639299,
8416                im: -9.913664407371627,
8417            },
8418            Complex {
8419                re: 2.082423140203958,
8420                im: -4.925201296192659,
8421            },
8422            Complex {
8423                re: -12.975036605200348,
8424                im: -2.0758739423518704,
8425            },
8426            Complex {
8427                re: 12.307239650139405,
8428                im: 9.521031534454856,
8429            },
8430            Complex {
8431                re: -9.681326186042455,
8432                im: -4.63540786736651,
8433            },
8434            Complex {
8435                re: -3.953727767630223,
8436                im: -26.316503773503513,
8437            },
8438            Complex {
8439                re: -4.000729686969219,
8440                im: -3.3865021532012625,
8441            },
8442            Complex {
8443                re: -3.5846549415151028,
8444                im: -25.931030982872826,
8445            },
8446            Complex {
8447                re: -4.583378822880908,
8448                im: 34.47368839374613,
8449            },
8450            Complex {
8451                re: -14.466274756748824,
8452                im: -13.597172093084078,
8453            },
8454            Complex {
8455                re: -1.2538988317214708,
8456                im: 14.137013500127729,
8457            },
8458            Complex {
8459                re: -16.35024984201194,
8460                im: -6.991647870738452,
8461            },
8462            Complex {
8463                re: -6.0548730446071595,
8464                im: 12.637500610781641,
8465            },
8466            Complex {
8467                re: -11.030106297458207,
8468                im: 20.9486641001171,
8469            },
8470            Complex {
8471                re: -12.186092689262018,
8472                im: -17.90258162743261,
8473            },
8474            Complex {
8475                re: 8.042718901622504,
8476                im: 13.462715086518344,
8477            },
8478            Complex {
8479                re: 19.29119190608053,
8480                im: -0.6280691467420034,
8481            },
8482            Complex {
8483                re: 13.410805124842312,
8484                im: 7.81483905609603,
8485            },
8486            Complex {
8487                re: -12.398582012797174,
8488                im: 5.637676180206061,
8489            },
8490            Complex {
8491                re: 13.63080022648324,
8492                im: -11.529333732777864,
8493            },
8494            Complex {
8495                re: -3.1135121204425555,
8496                im: 5.275693881502347,
8497            },
8498            Complex {
8499                re: 5.541815771295165,
8500                im: -2.589107627203119,
8501            },
8502            Complex {
8503                re: -19.16256900996271,
8504                im: -10.632106629807346,
8505            },
8506            Complex {
8507                re: -19.272775453133477,
8508                im: 18.46635844624998,
8509            },
8510            Complex {
8511                re: 0.8350597228718639,
8512                im: -12.053024201527187,
8513            },
8514            Complex {
8515                re: 12.16971556870166,
8516                im: 10.202116247487377,
8517            },
8518            Complex {
8519                re: -4.135928628469216,
8520                im: 14.90505270952766,
8521            },
8522            Complex {
8523                re: 29.84713314660266,
8524                im: -10.07501142259072,
8525            },
8526            Complex {
8527                re: -4.653724947235952,
8528                im: -2.7290478450233326,
8529            },
8530            Complex {
8531                re: -12.88757561739201,
8532                im: 13.546366081888436,
8533            },
8534            Complex {
8535                re: -8.393421829489057,
8536                im: 11.758860937500588,
8537            },
8538            Complex {
8539                re: -13.604932384502023,
8540                im: -0.1783753372945318,
8541            },
8542            Complex {
8543                re: -9.916144322769801,
8544                im: -15.001550402816077,
8545            },
8546            Complex {
8547                re: -16.1677560071056,
8548                im: 15.813093042905333,
8549            },
8550            Complex {
8551                re: -0.1537638426176029,
8552                im: -4.452188963049495,
8553            },
8554            Complex {
8555                re: 10.332039817251923,
8556                im: 9.594508294375494,
8557            },
8558            Complex {
8559                re: 11.850671702588672,
8560                im: -9.400176084724182,
8561            },
8562            Complex {
8563                re: -14.263876443510647,
8564                im: 4.742826119092702,
8565            },
8566            Complex {
8567                re: -1.4875205763015629,
8568                im: 11.245249608603785,
8569            },
8570            Complex {
8571                re: 2.306702541112209,
8572                im: -6.531798665694801,
8573            },
8574            Complex {
8575                re: -6.970594125789383,
8576                im: 17.30283942462678,
8577            },
8578            Complex {
8579                re: 4.443477016308156,
8580                im: 7.85318998559781,
8581            },
8582            Complex {
8583                re: 1.983824884988087,
8584                im: -1.5733628594331366,
8585            },
8586            Complex {
8587                re: 11.799985204352502,
8588                im: 29.794704040364294,
8589            },
8590            Complex {
8591                re: 11.054898195854348,
8592                im: 23.355153230708225,
8593            },
8594            Complex {
8595                re: 6.249049053528303,
8596                im: -10.334724654169467,
8597            },
8598            Complex {
8599                re: 0.04650986364704757,
8600                im: 8.799498275791867,
8601            },
8602            Complex {
8603                re: -2.250133147845606,
8604                im: -15.867604454180857,
8605            },
8606            Complex {
8607                re: -6.887261134810052,
8608                im: 1.7111833034703938,
8609            },
8610            Complex {
8611                re: -8.84978733991143,
8612                im: 3.4845142276558585,
8613            },
8614            Complex {
8615                re: -10.465403850737271,
8616                im: 13.748393744379658,
8617            },
8618            Complex {
8619                re: 13.680123911139628,
8620                im: 1.2014882257826525,
8621            },
8622            Complex {
8623                re: -10.693286296036788,
8624                im: 16.304900109046535,
8625            },
8626            Complex {
8627                re: 8.47018291913661,
8628                im: 18.986586495678868,
8629            },
8630            Complex {
8631                re: -1.036234396228234,
8632                im: -3.8005707084694897,
8633            },
8634            Complex {
8635                re: 4.8062820419980765,
8636                im: 12.94382728933951,
8637            },
8638            Complex {
8639                re: 5.9234803821178925,
8640                im: -28.138192747112985,
8641            },
8642            Complex {
8643                re: 1.1529885348577746,
8644                im: -11.495558020222578,
8645            },
8646            Complex {
8647                re: 4.960206436761174,
8648                im: 3.5403352146724183,
8649            },
8650            Complex {
8651                re: 10.893774495566218,
8652                im: 12.570003128580044,
8653            },
8654            Complex {
8655                re: 9.550722142711798,
8656                im: 9.160757007116201,
8657            },
8658            Complex {
8659                re: -14.100147022138044,
8660                im: 17.844397052587787,
8661            },
8662            Complex {
8663                re: -20.312128642253317,
8664                im: -0.7927575892086889,
8665            },
8666            Complex {
8667                re: 11.188067480060223,
8668                im: 18.29684548559172,
8669            },
8670            Complex {
8671                re: -0.3799977028000989,
8672                im: 20.467277042912386,
8673            },
8674            Complex {
8675                re: -13.112844266093933,
8676                im: -2.1929492140645745,
8677            },
8678            Complex {
8679                re: -10.431590518414508,
8680                im: -4.747891566569974,
8681            },
8682            Complex {
8683                re: -27.587296916919097,
8684                im: 30.747679677229605,
8685            },
8686            Complex {
8687                re: 5.823207085873912,
8688                im: -43.093629296375795,
8689            },
8690            Complex {
8691                re: -2.5759756007902403,
8692                im: -10.00965930461534,
8693            },
8694            Complex {
8695                re: 2.797012061142158,
8696                im: -14.030641254332501,
8697            },
8698            Complex {
8699                re: -4.561267077397079,
8700                im: -4.899762870927911,
8701            },
8702            Complex {
8703                re: 1.1934202675456702,
8704                im: -6.935570639037028,
8705            },
8706            Complex {
8707                re: -22.94899271662821,
8708                im: -1.793524869805407,
8709            },
8710            Complex {
8711                re: 2.4905939030292314,
8712                im: 12.279279967448119,
8713            },
8714            Complex {
8715                re: 14.859187684578062,
8716                im: 13.343557301855196,
8717            },
8718            Complex {
8719                re: 9.007631332873103,
8720                im: -19.120789537544944,
8721            },
8722            Complex {
8723                re: -9.879331820151323,
8724                im: -5.202248895455606,
8725            },
8726            Complex {
8727                re: 1.2499461007641592,
8728                im: -9.955118443389003,
8729            },
8730            Complex {
8731                re: -27.610256180311534,
8732                im: -29.080694928332665,
8733            },
8734            Complex {
8735                re: 7.893725913626362,
8736                im: -8.573267047548804,
8737            },
8738            Complex {
8739                re: 10.62496448730797,
8740                im: 15.934186812276616,
8741            },
8742            Complex {
8743                re: -10.782103674407631,
8744                im: 21.24125925246104,
8745            },
8746            Complex {
8747                re: -19.39137002328502,
8748                im: 14.962916991036288,
8749            },
8750            Complex {
8751                re: 11.30349217647764,
8752                im: 20.512873463618703,
8753            },
8754            Complex {
8755                re: -20.94035143358808,
8756                im: 8.841301938919859,
8757            },
8758            Complex {
8759                re: -13.538762086547173,
8760                im: 1.481545651071472,
8761            },
8762            Complex {
8763                re: 9.951267440923097,
8764                im: -3.9254349738582075,
8765            },
8766            Complex {
8767                re: -6.146020680530084,
8768                im: -1.3226961010392895,
8769            },
8770            Complex {
8771                re: -17.032483030849704,
8772                im: 2.4834777364519773,
8773            },
8774            Complex {
8775                re: 0.3687381806246286,
8776                im: 3.0557936987205725,
8777            },
8778            Complex {
8779                re: 7.322736576260196,
8780                im: -1.6038683935482796,
8781            },
8782            Complex {
8783                re: -2.4504356436416552,
8784                im: 8.944766816385574,
8785            },
8786            Complex {
8787                re: -15.771232393747207,
8788                im: 15.685931257212044,
8789            },
8790            Complex {
8791                re: 15.734003517171056,
8792                im: -15.067092667200217,
8793            },
8794            Complex {
8795                re: 5.773145349633559,
8796                im: -6.073146585986499,
8797            },
8798            Complex {
8799                re: 19.49532275496003,
8800                im: -17.223393290938308,
8801            },
8802            Complex {
8803                re: 6.243222781225395,
8804                im: 17.159859616136284,
8805            },
8806            Complex {
8807                re: 10.358620424075227,
8808                im: 21.78322654143226,
8809            },
8810            Complex {
8811                re: 8.464225148207312,
8812                im: -36.12090409615447,
8813            },
8814            Complex {
8815                re: -11.689926282260966,
8816                im: -5.624640426578853,
8817            },
8818            Complex {
8819                re: -25.146649197359064,
8820                im: -15.076644872281367,
8821            },
8822            Complex {
8823                re: 12.87475784420009,
8824                im: 9.666392868790268,
8825            },
8826            Complex {
8827                re: 10.056349087226078,
8828                im: -10.847677615803933,
8829            },
8830            Complex {
8831                re: 1.0255032858590707,
8832                im: 18.67815354014246,
8833            },
8834            Complex {
8835                re: 11.04606455852754,
8836                im: -5.941996551055421,
8837            },
8838            Complex {
8839                re: 19.993810309061647,
8840                im: -5.0150184321296685,
8841            },
8842            Complex {
8843                re: 14.12975790494121,
8844                im: -10.715819404192704,
8845            },
8846            Complex {
8847                re: -8.482916178176747,
8848                im: 19.0388719582385,
8849            },
8850            Complex {
8851                re: 0.9531572119748031,
8852                im: -5.854165842078675,
8853            },
8854            Complex {
8855                re: 9.35119060662994,
8856                im: 2.6360003146573847,
8857            },
8858            Complex {
8859                re: 6.659666726559724,
8860                im: -5.398854782403736,
8861            },
8862            Complex {
8863                re: 7.24215778531781,
8864                im: 4.659170761076703,
8865            },
8866            Complex {
8867                re: 15.420377615964707,
8868                im: -16.246945101440165,
8869            },
8870            Complex {
8871                re: 14.019516500296163,
8872                im: 7.918188891389749,
8873            },
8874            Complex {
8875                re: 2.7524917674984994,
8876                im: 1.5106638675198254,
8877            },
8878            Complex {
8879                re: -7.864847196859198,
8880                im: 0.7463409842651485,
8881            },
8882            Complex {
8883                re: -12.864138930864552,
8884                im: 6.527812738241186,
8885            },
8886            Complex {
8887                re: 7.614500611237879,
8888                im: -3.544164616310395,
8889            },
8890            Complex {
8891                re: -1.7574806243226133,
8892                im: 32.1347618329694,
8893            },
8894            Complex {
8895                re: -3.1516760649817464,
8896                im: -3.903686371304752,
8897            },
8898            Complex {
8899                re: -8.990818127927088,
8900                im: -21.64707886009647,
8901            },
8902            Complex {
8903                re: 3.165457366788538,
8904                im: -6.629990124713149,
8905            },
8906            Complex {
8907                re: 17.151038935822356,
8908                im: 0.16554862377543733,
8909            },
8910            Complex {
8911                re: 3.421783266516517,
8912                im: 1.450746887194355,
8913            },
8914            Complex {
8915                re: -0.806535241790657,
8916                im: -16.04828893352648,
8917            },
8918            Complex {
8919                re: 10.221335152066509,
8920                im: 0.8713025508588852,
8921            },
8922            Complex {
8923                re: -12.072748808982393,
8924                im: -4.452054167144542,
8925            },
8926            Complex {
8927                re: -4.129206663370214,
8928                im: -1.9996251869081503,
8929            },
8930            Complex {
8931                re: 8.067143491083288,
8932                im: 9.991568088994544,
8933            },
8934            Complex {
8935                re: 0.6156923692637917,
8936                im: 8.36233649059898,
8937            },
8938            Complex {
8939                re: -18.14292954721735,
8940                im: -6.427197019455781,
8941            },
8942            Complex {
8943                re: 13.416472108107875,
8944                im: 10.576892352363,
8945            },
8946            Complex {
8947                re: -15.186390745232934,
8948                im: -6.526605274431221,
8949            },
8950            Complex {
8951                re: 3.0831738255964867,
8952                im: -0.009753318544627243,
8953            },
8954            Complex {
8955                re: -17.547767969519366,
8956                im: -16.507769913080683,
8957            },
8958            Complex {
8959                re: -5.802628533899133,
8960                im: -1.6259896965300884,
8961            },
8962            Complex {
8963                re: -7.3662785468693555,
8964                im: 8.654940447294752,
8965            },
8966            Complex {
8967                re: 13.207039900296806,
8968                im: 17.19326875444186,
8969            },
8970            Complex {
8971                re: 10.024177306091625,
8972                im: -2.120161622380467,
8973            },
8974            Complex {
8975                re: 9.083729121535526,
8976                im: -9.854194344065103,
8977            },
8978            Complex {
8979                re: 9.592093464448636,
8980                im: -10.20819701513267,
8981            },
8982            Complex {
8983                re: -21.00368866785323,
8984                im: 0.48169547033184834,
8985            },
8986            Complex {
8987                re: 3.9356726633225394,
8988                im: 7.203710027003137,
8989            },
8990            Complex {
8991                re: 2.838567025399292,
8992                im: -0.08913442364922697,
8993            },
8994            Complex {
8995                re: -9.317401326003493,
8996                im: 2.1053269601086027,
8997            },
8998            Complex {
8999                re: -5.284411746439661,
9000                im: -10.23762324138835,
9001            },
9002            Complex {
9003                re: 11.266247393326449,
9004                im: 8.452813937073484,
9005            },
9006            Complex {
9007                re: 18.076915743085372,
9008                im: -25.65354365209486,
9009            },
9010            Complex {
9011                re: -18.98354435563568,
9012                im: -18.13560321006387,
9013            },
9014            Complex {
9015                re: 3.9635782283911025,
9016                im: 11.408439632795268,
9017            },
9018            Complex {
9019                re: 2.620308322740067,
9020                im: 1.959298504822606,
9021            },
9022            Complex {
9023                re: 8.571596458957936,
9024                im: 9.6521900463296,
9025            },
9026            Complex {
9027                re: -16.840121469626723,
9028                im: -1.0727088800809526,
9029            },
9030            Complex {
9031                re: 19.920405822601616,
9032                im: -8.053498791344435,
9033            },
9034            Complex {
9035                re: 7.322350031155238,
9036                im: 3.554339270382064,
9037            },
9038            Complex {
9039                re: -12.317489650735094,
9040                im: 12.871269234122167,
9041            },
9042            Complex {
9043                re: 1.3632118849816823,
9044                im: 19.098853727653996,
9045            },
9046            Complex {
9047                re: -15.748168456795069,
9048                im: 24.44943013903609,
9049            },
9050            Complex {
9051                re: -5.297250697069679,
9052                im: -14.10210244916562,
9053            },
9054            Complex {
9055                re: -0.3545329247520357,
9056                im: 10.704798391477315,
9057            },
9058            Complex {
9059                re: 20.20281612632003,
9060                im: 22.386990527005274,
9061            },
9062            Complex {
9063                re: 15.045982891267654,
9064                im: 19.65871324331252,
9065            },
9066            Complex {
9067                re: -43.77817084948016,
9068                im: -19.54716940117796,
9069            },
9070            Complex {
9071                re: 3.679828173848965,
9072                im: -6.394855101472423,
9073            },
9074            Complex {
9075                re: -4.135041668481105,
9076                im: 8.458969117645156,
9077            },
9078            Complex {
9079                re: -6.5082392663977595,
9080                im: 32.71277534826032,
9081            },
9082            Complex {
9083                re: -13.214903111043403,
9084                im: -6.017350221546563,
9085            },
9086            Complex {
9087                re: -25.86894813523783,
9088                im: 17.962152718672264,
9089            },
9090            Complex {
9091                re: -9.024424764734368,
9092                im: 18.881692299107037,
9093            },
9094            Complex {
9095                re: -3.183228249050037,
9096                im: -18.381101362431654,
9097            },
9098            Complex {
9099                re: 5.110985914802613,
9100                im: 16.479456074918915,
9101            },
9102            Complex {
9103                re: -24.15437255371251,
9104                im: 3.9619539846309086,
9105            },
9106            Complex {
9107                re: 5.692778215200827,
9108                im: 7.18490127857089,
9109            },
9110            Complex {
9111                re: -6.49300268236337,
9112                im: 12.64578327223557,
9113            },
9114            Complex {
9115                re: -3.8973239004438893,
9116                im: 8.075602369856615,
9117            },
9118            Complex {
9119                re: -27.629630327163685,
9120                im: 0.034142480144491394,
9121            },
9122            Complex {
9123                re: -6.45554783861701,
9124                im: 29.965325810175642,
9125            },
9126            Complex {
9127                re: 9.272182503097378,
9128                im: 24.331648458363816,
9129            },
9130            Complex {
9131                re: -27.303324311113716,
9132                im: -9.80032200100784,
9133            },
9134            Complex {
9135                re: -21.609716107753904,
9136                im: 5.916296017408097,
9137            },
9138            Complex {
9139                re: 13.975998424641078,
9140                im: 18.091142816335726,
9141            },
9142            Complex {
9143                re: -9.060440991480899,
9144                im: 13.234022111974184,
9145            },
9146            Complex {
9147                re: -8.684150681103233,
9148                im: -7.769960834658668,
9149            },
9150            Complex {
9151                re: -6.401609639154691,
9152                im: 13.711059954662861,
9153            },
9154            Complex {
9155                re: 14.299799472064159,
9156                im: 29.25861199933605,
9157            },
9158            Complex {
9159                re: 6.052921658479621,
9160                im: 6.3776226102634155,
9161            },
9162            Complex {
9163                re: 6.043063504433965,
9164                im: -23.375723169737253,
9165            },
9166            Complex {
9167                re: 12.272125151662634,
9168                im: 12.985328546950473,
9169            },
9170            Complex {
9171                re: 3.015001717194856,
9172                im: 12.173062064155227,
9173            },
9174            Complex {
9175                re: -15.086823216632707,
9176                im: 16.357803958445956,
9177            },
9178            Complex {
9179                re: -10.938695140568846,
9180                im: 2.1926436011504298,
9181            },
9182            Complex {
9183                re: -6.187399666113853,
9184                im: -5.930666827114669,
9185            },
9186            Complex {
9187                re: -13.729935571414352,
9188                im: 9.704846377748915,
9189            },
9190            Complex {
9191                re: -5.921419126697401,
9192                im: 1.5464923039838478,
9193            },
9194            Complex {
9195                re: -19.80459669557133,
9196                im: 1.5953542358558526,
9197            },
9198            Complex {
9199                re: -3.756573466469277,
9200                im: 9.855043325012058,
9201            },
9202            Complex {
9203                re: 11.849049483350184,
9204                im: 1.5962123632002747,
9205            },
9206            Complex {
9207                re: 14.57020762610259,
9208                im: -23.874838420316337,
9209            },
9210            Complex {
9211                re: -3.3173283929421453,
9212                im: -7.903529461648982,
9213            },
9214            Complex {
9215                re: -1.9515492844021,
9216                im: -8.361494069226321,
9217            },
9218            Complex {
9219                re: 19.58638248268339,
9220                im: -13.07259782832524,
9221            },
9222            Complex {
9223                re: -8.969744921214973,
9224                im: 12.95569527560939,
9225            },
9226            Complex {
9227                re: 2.6404335480265693,
9228                im: 4.378231645813241,
9229            },
9230            Complex {
9231                re: 1.5423010150244245,
9232                im: 5.100478630232149,
9233            },
9234            Complex {
9235                re: -7.242079283872142,
9236                im: -22.535224561038127,
9237            },
9238            Complex {
9239                re: -11.637888092165854,
9240                im: -18.722914993865793,
9241            },
9242            Complex {
9243                re: 15.830585090949636,
9244                im: 0.9681462965510241,
9245            },
9246            Complex {
9247                re: 10.946053128915858,
9248                im: -1.3843370784855416,
9249            },
9250            Complex {
9251                re: 12.942254942561021,
9252                im: -7.750253610471707,
9253            },
9254            Complex {
9255                re: 7.857445209947002,
9256                im: -0.36309476167924726,
9257            },
9258            Complex {
9259                re: 9.551211044958842,
9260                im: -4.762412895022921,
9261            },
9262            Complex {
9263                re: 8.887078449629572,
9264                im: 0.49614226350355306,
9265            },
9266            Complex {
9267                re: 5.085392442507693,
9268                im: 16.95560486074702,
9269            },
9270            Complex {
9271                re: 3.7226440493272364,
9272                im: 0.005809249173158282,
9273            },
9274            Complex {
9275                re: 21.54255167915923,
9276                im: 11.912338265692508,
9277            },
9278            Complex {
9279                re: 0.9422934664923845,
9280                im: 2.0401519267528148,
9281            },
9282            Complex {
9283                re: 16.16668703308904,
9284                im: 11.66754979063105,
9285            },
9286            Complex {
9287                re: -11.322480873695074,
9288                im: -1.3390401032076675,
9289            },
9290            Complex {
9291                re: 4.12329171198059,
9292                im: -10.549346259168296,
9293            },
9294            Complex {
9295                re: -26.47010562089414,
9296                im: -1.0749366294511482,
9297            },
9298            Complex {
9299                re: -5.1347006744067,
9300                im: -24.278090761426363,
9301            },
9302            Complex {
9303                re: -3.412977072562116,
9304                im: -5.068294546807142,
9305            },
9306            Complex {
9307                re: 6.400426352941281,
9308                im: 2.872254733372519,
9309            },
9310            Complex {
9311                re: -4.75539027264518,
9312                im: -2.792784606713925,
9313            },
9314            Complex {
9315                re: 18.17263035403434,
9316                im: 7.264845317890765,
9317            },
9318            Complex {
9319                re: 3.5396466120172327,
9320                im: 14.532351692099752,
9321            },
9322            Complex {
9323                re: 19.700750027454767,
9324                im: 4.756829235235843,
9325            },
9326            Complex {
9327                re: -8.244259480097133,
9328                im: 11.175327008721602,
9329            },
9330            Complex {
9331                re: 7.845539381428518,
9332                im: 9.027580495461425,
9333            },
9334            Complex {
9335                re: -29.027794967698455,
9336                im: 4.417636526951849,
9337            },
9338            Complex {
9339                re: 3.2447931348162324,
9340                im: -13.473354404380615,
9341            },
9342            Complex {
9343                re: -5.82552214007912,
9344                im: -10.380392331210176,
9345            },
9346            Complex {
9347                re: -5.452969122358773,
9348                im: 16.493199402744274,
9349            },
9350            Complex {
9351                re: 14.074530551816753,
9352                im: 0.08218901387785182,
9353            },
9354            Complex {
9355                re: -12.04178549661909,
9356                im: 1.2350191387282061,
9357            },
9358            Complex {
9359                re: -2.3992329602951443,
9360                im: 13.54377331639,
9361            },
9362            Complex {
9363                re: -1.944098057276975,
9364                im: 0.3571354175794852,
9365            },
9366            Complex {
9367                re: -14.209154703180536,
9368                im: -9.629410470405713,
9369            },
9370            Complex {
9371                re: -8.058238401951499,
9372                im: 15.07687625826167,
9373            },
9374            Complex {
9375                re: -1.563003487810021,
9376                im: -9.059099296321579,
9377            },
9378            Complex {
9379                re: -13.87950575140036,
9380                im: -0.7606750137420191,
9381            },
9382            Complex {
9383                re: -5.118367702077299,
9384                im: 3.7400069426366747,
9385            },
9386        ];
9387        assert_eq!(target.as_slice(), z.as_slice());
9388    }
9389}
9390
9391#[cfg(all(test, feature = "serde"))]
9392mod tests_serde {
9393    use super::*;
9394    use alloc::{vec, vec::Vec};
9395    use dyn_stack::PodBuffer;
9396    use num_complex::ComplexFloat;
9397    use rand::random;
9398
9399    extern crate alloc;
9400
9401    #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
9402    #[test]
9403    fn test_serde() {
9404        for n in [64, 128, 256, 512, 1024] {
9405            let mut z = vec![c64::default(); n];
9406
9407            for z in &mut z {
9408                z.re = random();
9409                z.im = random();
9410            }
9411
9412            let orig = z.clone();
9413
9414            let plan1 = Plan::new(
9415                n,
9416                Method::UserProvided {
9417                    base_algo: FftAlgo::Dif4,
9418                    base_n: 32,
9419                },
9420            );
9421            let plan2 = Plan::new(
9422                n,
9423                Method::UserProvided {
9424                    base_algo: FftAlgo::Dif4,
9425                    base_n: 64,
9426                },
9427            );
9428
9429            let mut mem = PodBuffer::try_new(plan1.fft_scratch().or(plan2.fft_scratch())).unwrap();
9430            let stack = PodStack::new(&mut mem);
9431
9432            plan1.fwd(&mut z, stack);
9433
9434            let mut buf = Vec::<u8>::new();
9435            let mut serializer = bincode::Serializer::new(&mut buf, bincode::options());
9436            plan1.serialize_fourier_buffer(&mut serializer, &z).unwrap();
9437
9438            let mut deserializer = bincode::de::Deserializer::from_slice(&buf, bincode::options());
9439            plan2
9440                .deserialize_fourier_buffer(&mut deserializer, &mut z)
9441                .unwrap();
9442
9443            plan2.inv(&mut z, stack);
9444
9445            for z in &mut z {
9446                *z /= n as f64;
9447            }
9448
9449            for (z_actual, z_expected) in z.iter().zip(&orig) {
9450                assert!((z_actual - z_expected).abs() < 1e-12);
9451            }
9452        }
9453    }
9454}