faer_evd/
hessenberg_cplx_evd.rs

1// adapted from <T>LAPACK implementation
2//
3// https://github.com/tlapack/tlapack
4// https://github.com/tlapack/tlapack/blob/master/include/tlapack/lapack/lahqr.hpp
5
6use crate::hessenberg::{make_hessenberg_in_place, make_hessenberg_in_place_req};
7use core::slice;
8use dyn_stack::{PodStack, SizeOverflow, StackReq};
9use faer_core::{
10    householder::{
11        apply_block_householder_sequence_on_the_right_in_place_req,
12        apply_block_householder_sequence_on_the_right_in_place_with_conj,
13        apply_block_householder_sequence_transpose_on_the_left_in_place_req,
14        apply_block_householder_sequence_transpose_on_the_left_in_place_with_conj,
15        make_householder_in_place_v2,
16    },
17    mul::matmul,
18    temp_mat_req, unzipped,
19    zip::Diag,
20    zipped, ComplexField, Conj, Entity, MatMut, MatRef, Parallelism, RealField, SimdCtx,
21};
22use faer_entity::*;
23use reborrow::*;
24
25fn max<T: PartialOrd>(a: T, b: T) -> T {
26    if a > b {
27        a
28    } else {
29        b
30    }
31}
32
33fn min<T: PartialOrd>(a: T, b: T) -> T {
34    if a < b {
35        a
36    } else {
37        b
38    }
39}
40
41fn abs1<E: ComplexField>(a: E) -> E::Real {
42    a.faer_real().faer_abs().faer_add(a.faer_imag().faer_abs())
43}
44
45fn lahqr_shiftcolumn<E: ComplexField>(h: MatRef<'_, E>, mut v: MatMut<'_, E>, s1: E, s2: E) {
46    let n = h.nrows();
47
48    if n == 2 {
49        let s = abs1(h.read(0, 0).faer_sub(s2)).faer_add(abs1(h.read(1, 0)));
50        if s == E::Real::faer_zero() {
51            v.write(0, 0, E::faer_zero());
52            v.write(1, 0, E::faer_zero());
53        } else {
54            let s_inv = s.faer_inv();
55            let h10s = h.read(1, 0).faer_scale_real(s_inv);
56            v.write(
57                0,
58                0,
59                (h10s.faer_mul(h.read(0, 1))).faer_add(
60                    h.read(0, 0)
61                        .faer_sub(s1)
62                        .faer_mul((h.read(0, 0).faer_sub(s2)).faer_scale_real(s_inv)),
63                ),
64            );
65            v.write(
66                1,
67                0,
68                h10s.faer_mul(
69                    h.read(0, 0)
70                        .faer_add(h.read(1, 1))
71                        .faer_sub(s1)
72                        .faer_sub(s2),
73                ),
74            );
75        }
76    } else {
77        let s = abs1(h.read(0, 0).faer_sub(s2))
78            .faer_add(abs1(h.read(1, 0)))
79            .faer_add(abs1(h.read(2, 0)));
80        if s == E::Real::faer_zero() {
81            v.write(0, 0, E::faer_zero());
82            v.write(1, 0, E::faer_zero());
83            v.write(2, 0, E::faer_zero());
84        } else {
85            let s_inv = s.faer_inv();
86            let h10s = h.read(1, 0).faer_scale_real(s_inv);
87            let h20s = h.read(2, 0).faer_scale_real(s_inv);
88            v.write(
89                0,
90                0,
91                ((h.read(0, 0).faer_sub(s1))
92                    .faer_mul((h.read(0, 0).faer_sub(s2)).faer_scale_real(s_inv)))
93                .faer_add(h.read(0, 1).faer_mul(h10s))
94                .faer_add(h.read(0, 2).faer_mul(h20s)),
95            );
96            v.write(
97                1,
98                0,
99                (h10s.faer_mul(
100                    h.read(0, 0)
101                        .faer_add(h.read(1, 1).faer_sub(s1).faer_sub(s2)),
102                ))
103                .faer_add(h.read(1, 2).faer_mul(h20s)),
104            );
105            v.write(
106                2,
107                0,
108                (h20s.faer_mul(
109                    h.read(0, 0)
110                        .faer_add(h.read(2, 2).faer_sub(s1).faer_sub(s2)),
111                ))
112                .faer_add(h10s.faer_mul(h.read(2, 1))),
113            );
114        }
115    }
116}
117
118// ret: (eig1_re eig1_im) (eig2_re eig2_im)
119fn lahqr_eig22<E: ComplexField>(mut a00: E, mut a01: E, mut a10: E, mut a11: E) -> (E, E) {
120    let zero = E::Real::faer_zero();
121    let half = E::Real::faer_from_f64(0.5);
122
123    let s = abs1(a00)
124        .faer_add(abs1(a01))
125        .faer_add(abs1(a10))
126        .faer_add(abs1(a11));
127    if s == zero {
128        return (E::faer_zero(), E::faer_zero());
129    }
130
131    let s_inv = s.faer_inv();
132
133    a00 = a00.faer_scale_real(s_inv);
134    a01 = a01.faer_scale_real(s_inv);
135    a10 = a10.faer_scale_real(s_inv);
136    a11 = a11.faer_scale_real(s_inv);
137
138    let tr = (a00.faer_add(a11)).faer_scale_power_of_two(half);
139    let det = ((a00.faer_sub(tr)).faer_mul(a00.faer_sub(tr))).faer_add(a01.faer_mul(a10));
140
141    let rtdisc = det.faer_sqrt();
142    (
143        (tr.faer_add(rtdisc)).faer_scale_real(s),
144        (tr.faer_sub(rtdisc)).faer_scale_real(s),
145    )
146}
147
148fn rotg<E: ComplexField>(a: E, b: E, epsilon: E::Real, zero_threshold: E::Real) -> (E::Real, E, E) {
149    let safmin = zero_threshold;
150    let safmax = zero_threshold.faer_inv();
151    let rtmin = zero_threshold.faer_div(epsilon).faer_sqrt();
152    let rtmax = rtmin.faer_inv();
153
154    // quick return
155    if b == E::faer_zero() {
156        return (E::Real::faer_one(), E::faer_zero(), E::faer_one());
157    }
158
159    let (c, s, r);
160    if a == E::faer_zero() {
161        c = E::Real::faer_zero();
162        let g1 = max(b.faer_real().faer_abs(), b.faer_imag().faer_abs());
163        if g1 > rtmin && g1 < rtmax {
164            // Use unscaled algorithm
165            let g2 = b
166                .faer_real()
167                .faer_abs2()
168                .faer_add(b.faer_imag().faer_abs2());
169            let d = g2.faer_sqrt();
170            s = b.faer_conj().faer_scale_real(d.faer_inv());
171            r = E::faer_from_real(d);
172        } else {
173            // Use scaled algorithm
174            let u = min(safmax, max(safmin, g1));
175            let uu = u.faer_inv();
176            let gs = b.faer_scale_real(uu);
177            let g2 = gs
178                .faer_real()
179                .faer_abs2()
180                .faer_add(gs.faer_imag().faer_abs2());
181            let d = g2.faer_sqrt();
182            s = gs.faer_conj().faer_scale_real(d.faer_inv());
183            r = E::faer_from_real(d.faer_mul(u));
184        }
185    } else {
186        let f1 = max(E::faer_real(a).faer_abs(), E::faer_imag(a).faer_abs());
187        let g1 = max(E::faer_real(b).faer_abs(), E::faer_imag(b).faer_abs());
188        if f1 > rtmin && f1 < rtmax && g1 > rtmin && g1 < rtmax {
189            // Use unscaled algorithm
190            let f2 = a
191                .faer_real()
192                .faer_abs2()
193                .faer_add(a.faer_imag().faer_abs2());
194            let g2 = b
195                .faer_real()
196                .faer_abs2()
197                .faer_add(b.faer_imag().faer_abs2());
198            let h2 = f2.faer_add(g2);
199            let d = if f2 > rtmin && h2 < rtmax {
200                f2.faer_mul(h2).faer_sqrt()
201            } else {
202                f2.faer_sqrt().faer_mul(h2.faer_sqrt())
203            };
204            let p = d.faer_inv();
205            c = f2.faer_scale_real(p);
206            s = b.faer_conj().faer_mul(a.faer_scale_real(p));
207
208            r = a.faer_scale_real(h2.faer_mul(p));
209        } else {
210            // Use scaled algorithm
211            let u = min(safmax, max(safmin, max(f1, g1)));
212            let uu = u.faer_inv();
213            let gs = b.faer_scale_real(uu);
214            let g2 = gs
215                .faer_real()
216                .faer_abs2()
217                .faer_add(gs.faer_imag().faer_abs2());
218            let (f2, h2, w);
219            let fs;
220            if f1.faer_scale_real(uu) < rtmin {
221                // a is not well-scaled when scaled by g1.
222                let v = min(safmax, max(safmin, f1));
223                let vv = v.faer_inv();
224                w = v.faer_mul(uu);
225                fs = a.faer_scale_real(vv);
226                f2 = fs
227                    .faer_real()
228                    .faer_abs2()
229                    .faer_add(fs.faer_imag().faer_abs2());
230                h2 = (f2.faer_mul(w).faer_mul(w)).faer_add(g2);
231            } else {
232                // Otherwise use the same scaling for a and b.
233                w = E::Real::faer_one();
234                fs = a.faer_scale_real(uu);
235                f2 = fs
236                    .faer_real()
237                    .faer_abs2()
238                    .faer_add(fs.faer_imag().faer_abs2());
239                h2 = f2.faer_add(g2);
240            }
241            let d = if f2 > rtmin && h2 < rtmax {
242                f2.faer_mul(h2).faer_sqrt()
243            } else {
244                f2.faer_sqrt().faer_mul(h2.faer_sqrt())
245            };
246            let p = d.faer_inv();
247            c = (f2.faer_mul(p)).faer_mul(w);
248            s = gs.faer_conj().faer_mul(fs.faer_scale_real(p));
249            r = (fs.faer_scale_real(h2.faer_scale_real(p))).faer_scale_real(u);
250        }
251    }
252
253    (c, s, r)
254}
255
256pub fn rot<E: ComplexField>(x: MatMut<'_, E>, y: MatMut<'_, E>, c: E::Real, s: E) {
257    let n = x.nrows();
258    if n == 0 || (c == E::Real::faer_one() && s == E::faer_zero()) {
259        return;
260    }
261
262    zipped!(x, y).for_each(|unzipped!(mut x, mut y)| {
263        let mut x_ = x.read();
264        let mut y_ = y.read();
265
266        (x_, y_) = (
267            (x_.faer_scale_real(c)).faer_add(y_.faer_mul(s)),
268            (y_.faer_scale_real(c)).faer_sub(x_.faer_mul(s.faer_conj())),
269        );
270
271        x.write(x_);
272        y.write(y_);
273    });
274}
275
276pub struct Rot<'a, E: ComplexField> {
277    ai: MatMut<'a, E>,
278    aj: MatMut<'a, E>,
279    c: E::Real,
280    s: E,
281}
282
283impl<E: ComplexField> pulp::WithSimd for Rot<'_, E> {
284    type Output = ();
285
286    #[inline(always)]
287    fn with_simd<S: pulp::Simd>(self, simd: S) -> Self::Output {
288        let Self { ai, aj, c, s } = self;
289        debug_assert!(ai.nrows() == aj.nrows());
290        debug_assert!(ai.ncols() == 1);
291        debug_assert!(aj.ncols() == 1);
292
293        let n = ai.nrows();
294        let ai = ai.as_ptr_mut();
295        let aj = aj.as_ptr_mut();
296
297        let ai = unsafe {
298            E::faer_map(
299                ai,
300                #[inline(always)]
301                |ptr| slice::from_raw_parts_mut(ptr, n),
302            )
303        };
304        let aj = unsafe {
305            E::faer_map(
306                aj,
307                #[inline(always)]
308                |ptr| slice::from_raw_parts_mut(ptr, n),
309            )
310        };
311
312        let (ai_head, ai_tail) = faer_core::simd::slice_as_mut_simd::<E, S>(ai);
313        let (aj_head, aj_tail) = faer_core::simd::slice_as_mut_simd::<E, S>(aj);
314
315        let c = E::Real::faer_simd_splat(simd, c);
316        let s = E::faer_simd_splat(simd, s);
317
318        for (ai, aj) in E::faer_into_iter(ai_head).zip(E::faer_into_iter(aj_head)) {
319            let mut ai_ = E::faer_deref(E::faer_rb(E::faer_as_ref(&ai)));
320            let mut aj_ = E::faer_deref(E::faer_rb(E::faer_as_ref(&aj)));
321
322            let tmp = E::faer_simd_conj_mul_adde(
323                simd,
324                s,
325                into_copy::<E, _>(E::faer_copy(&aj_)),
326                E::faer_simd_scale_real(simd, c, into_copy::<E, _>(E::faer_copy(&ai_))),
327            );
328
329            aj_ = from_copy::<E, _>(E::faer_simd_mul_adde(
330                simd,
331                E::faer_simd_neg(simd, s),
332                into_copy::<E, _>(ai_),
333                E::faer_simd_scale_real(simd, c, into_copy::<E, _>(aj_)),
334            ));
335            ai_ = from_copy::<E, _>(tmp);
336
337            E::faer_map(
338                E::faer_zip(ai, ai_),
339                #[inline(always)]
340                |(ai, ai_): (&mut _, _)| *ai = ai_,
341            );
342            E::faer_map(
343                E::faer_zip(aj, aj_),
344                #[inline(always)]
345                |(aj, aj_): (&mut _, _)| *aj = aj_,
346            );
347        }
348
349        let mut ai_ = E::faer_partial_load(simd, E::faer_rb(E::faer_as_ref(&ai_tail)));
350        let mut aj_ = E::faer_partial_load(simd, E::faer_rb(E::faer_as_ref(&aj_tail)));
351
352        let tmp = E::faer_simd_conj_mul_adde(simd, s, aj_, E::faer_simd_scale_real(simd, c, ai_));
353
354        aj_ = E::faer_simd_mul_adde(
355            simd,
356            E::faer_simd_neg(simd, s),
357            ai_,
358            E::faer_simd_scale_real(simd, c, aj_),
359        );
360        ai_ = tmp;
361
362        E::faer_partial_store(simd, ai_tail, ai_);
363        E::faer_partial_store(simd, aj_tail, aj_);
364    }
365}
366
367pub fn lahqr<E: ComplexField>(
368    want_t: bool,
369    a: MatMut<'_, E>,
370    z: Option<MatMut<'_, E>>,
371    w: MatMut<'_, E>,
372    ilo: usize,
373    ihi: usize,
374    epsilon: E::Real,
375    zero_threshold: E::Real,
376) -> isize {
377    assert!(a.nrows() == a.ncols());
378    assert!(ilo <= ihi);
379
380    let n = a.nrows();
381    let nh = ihi - ilo;
382
383    assert!(w.nrows() == n);
384    assert!(w.ncols() == 1);
385
386    if let Some(z) = z.rb() {
387        assert!(z.nrows() == n);
388        assert!(z.ncols() == n);
389    }
390
391    let mut a = a;
392    let mut z = z;
393    let mut w = w;
394
395    let zero = E::Real::faer_zero();
396    let eps = epsilon;
397    let small_num = zero_threshold.faer_div(eps);
398    let non_convergence_limit = 10;
399    let dat1 = E::Real::faer_from_f64(0.75);
400    let dat2 = E::Real::faer_from_f64(-0.4375);
401
402    if nh == 0 {
403        return 0;
404    }
405
406    if nh == 1 {
407        w.write(ilo, 0, a.read(ilo, ilo));
408    }
409
410    // itmax is the total number of QR iterations allowed.
411    // For most matrices, 3 shifts per eigenvalue is enough, so
412    // we set itmax to 30 times nh as a safe limit.
413    let itmax = 30 * Ord::max(10, nh);
414
415    // k_defl counts the number of iterations since a deflation
416    let mut k_defl = 0usize;
417
418    // istop is the end of the active subblock.
419    // As more and more eigenvalues converge, it eventually
420    // becomes ilo+1 and the loop ends.
421    let mut istop = ihi;
422
423    // istart is the start of the active subblock. Either
424    // istart = ilo, or H(istart, istart-1) = 0. This means
425    // that we can treat this subblock separately.
426    let mut istart = ilo;
427
428    let arch = E::Simd::default();
429    for iter in 0..itmax + 1 {
430        if iter == itmax {
431            return istop as isize;
432        }
433
434        if istart + 1 >= istop {
435            if istart + 1 == istop {
436                w.write(istart, 0, a.read(istart, istart));
437            }
438            // All eigenvalues have been found, exit and return 0.
439            break;
440        }
441
442        // Determine range to apply rotations
443        let istart_m;
444        let istop_m;
445        if !want_t {
446            istart_m = istart;
447            istop_m = istop;
448        } else {
449            istart_m = 0;
450            istop_m = n;
451        }
452
453        // Check if active subblock has split
454        for i in (istart + 1..istop).rev() {
455            if abs1(a.read(i, i - 1)) < small_num {
456                // A(i,i-1) is negligible, take i as new istart.
457                a.write(i, i - 1, E::faer_zero());
458                istart = i;
459                break;
460            }
461
462            let mut tst = abs1(a.read(i - 1, i - 1)).faer_add(abs1(a.read(i, i)));
463            if tst == zero {
464                if i >= ilo + 2 {
465                    tst = tst.faer_add(a.read(i - 1, i - 2).faer_abs());
466                }
467                if i + 1 < ihi {
468                    tst = tst.faer_add(a.read(i + 1, i).faer_abs());
469                }
470            }
471
472            if abs1(a.read(i, i - 1)) <= eps.faer_mul(tst) {
473                //
474                // The elementwise deflation test has passed
475                // The following performs second deflation test due
476                // to Ahues & Tisseur (LAWN 122, 1997). It has better
477                // mathematical foundation and improves accuracy in some
478                // examples.
479                //
480                // The test is |A(i,i-1)|*|A(i-1,i)| <=
481                // eps*|A(i,i)|*|A(i-1,i-1)| The multiplications might overflow
482                // so we do some scaling first.
483                //
484
485                let ab = max(abs1(a.read(i, i - 1)), abs1(a.read(i - 1, i)));
486                let ba = min(abs1(a.read(i, i - 1)), abs1(a.read(i - 1, i)));
487                let aa = max(
488                    abs1(a.read(i, i)),
489                    abs1(a.read(i, i).faer_sub(a.read(i - 1, i - 1))),
490                );
491                let bb = min(
492                    abs1(a.read(i, i)),
493                    abs1(a.read(i, i).faer_sub(a.read(i - 1, i - 1))),
494                );
495                let s = aa.faer_add(ab);
496                if ba.faer_mul(ab.faer_div(s))
497                    <= max(small_num, eps.faer_mul(bb.faer_mul(aa.faer_div(s))))
498                {
499                    // A(i,i-1) is negligible, take i as new istart.
500                    a.write(i, i - 1, E::faer_zero());
501                    istart = i;
502                    break;
503                }
504            }
505        }
506
507        if istart + 1 >= istop {
508            k_defl = 0;
509            w.write(istart, 0, a.read(istart, istart));
510            istop = istart;
511            istart = ilo;
512            continue;
513        }
514
515        // Determine shift
516        let (a00, a01, a10, a11);
517        k_defl += 1;
518
519        if k_defl % non_convergence_limit == 0 {
520            // Exceptional shift
521            let mut s = a.read(istop - 1, istop - 2).faer_abs();
522            if istop > ilo + 2 {
523                s = s.faer_add(a.read(istop - 2, istop - 3).faer_abs());
524            };
525            a00 = E::faer_from_real(dat1.faer_mul(s)).faer_add(a.read(istop - 1, istop - 1));
526            a01 = E::faer_from_real(dat2.faer_mul(s));
527            a10 = E::faer_from_real(s);
528            a11 = a00;
529        } else {
530            // Wilkinson shift
531            a00 = a.read(istop - 2, istop - 2);
532            a10 = a.read(istop - 1, istop - 2);
533            a01 = a.read(istop - 2, istop - 1);
534            a11 = a.read(istop - 1, istop - 1);
535        }
536
537        let (mut s1, s2) = lahqr_eig22(a00, a01, a10, a11);
538
539        if abs1(s1.faer_sub(a.read(istop - 1, istop - 1)))
540            > abs1(s2.faer_sub(a.read(istop - 1, istop - 1)))
541        {
542            s1 = s2;
543        }
544
545        // We have already checked whether the subblock has split.
546        // If it has split, we can introduce any shift at the top of the new
547        // subblock. Now that we know the specific shift, we can also check
548        // whether we can introduce that shift somewhere else in the subblock.
549        let mut istart2 = istart;
550        if istart + 2 < istop {
551            for i in (istart + 1..istop - 1).rev() {
552                let h00 = a.read(i, i).faer_sub(s1);
553                let h10 = a.read(i + 1, i);
554
555                let (_cs, sn, _r) = rotg(h00, h10, eps, zero_threshold);
556                if abs1(sn.faer_conj().faer_mul(a.read(i, i - 1)))
557                    <= eps.faer_mul(abs1(a.read(i, i - 1)).faer_add(abs1(a.read(i, i + 1))))
558                {
559                    istart2 = i;
560                    break;
561                }
562            }
563        }
564
565        for i in istart2..istop - 1 {
566            let (cs, sn, r);
567            if i == istart2 {
568                let h00 = a.read(i, i).faer_sub(s1);
569                let h10 = a.read(i + 1, i);
570                (cs, sn, _) = rotg(h00, h10, eps, zero_threshold);
571                if i > istart {
572                    a.write(i, i - 1, a.read(i, i - 1).faer_scale_real(cs));
573                }
574            } else {
575                (cs, sn, r) = rotg(a.read(i, i - 1), a.read(i + 1, i - 1), eps, zero_threshold);
576                a.write(i, i - 1, r);
577                a.write(i + 1, i - 1, E::faer_zero());
578            }
579
580            // Apply G from the left to A
581            let ai = unsafe {
582                a.rb()
583                    .row(i)
584                    .subcols(i, istop_m - i)
585                    .const_cast()
586                    .as_2d_mut()
587            };
588            let aip1 = unsafe {
589                a.rb()
590                    .row(i + 1)
591                    .subcols(i, istop_m - i)
592                    .const_cast()
593                    .as_2d_mut()
594            };
595
596            zipped!(ai, aip1).for_each(|unzipped!(mut ai, mut aip1)| {
597                let ai_ = ai.read();
598                let aip1_ = aip1.read();
599                let tmp = (ai_.faer_scale_real(cs)).faer_add(aip1_.faer_mul(sn));
600                aip1.write(
601                    (ai_.faer_mul(sn.faer_conj().faer_neg())).faer_add(aip1_.faer_scale_real(cs)),
602                );
603                ai.write(tmp);
604            });
605
606            // Apply G**H from the right to A
607            let nrows_ = Ord::min(i + 3, istop) - istart_m;
608            let ai = unsafe {
609                a.rb()
610                    .col(i)
611                    .subrows(istart_m, nrows_)
612                    .const_cast()
613                    .as_2d_mut()
614            };
615            let aip1 = unsafe {
616                a.rb()
617                    .col(i + 1)
618                    .subrows(istart_m, nrows_)
619                    .const_cast()
620                    .as_2d_mut()
621            };
622
623            if a.row_stride() == 1 {
624                arch.dispatch(Rot {
625                    ai,
626                    aj: aip1,
627                    c: cs,
628                    s: sn,
629                });
630            } else {
631                zipped!(ai, aip1).for_each(|unzipped!(mut ai, mut aip1)| {
632                    let ai_ = ai.read();
633                    let aip1_ = aip1.read();
634                    let tmp = (ai_.faer_scale_real(cs)).faer_add(aip1_.faer_mul(sn.faer_conj()));
635                    aip1.write((ai_.faer_mul(sn.faer_neg())).faer_add(aip1_.faer_scale_real(cs)));
636                    ai.write(tmp);
637                });
638            }
639            if let Some(z) = z.rb_mut() {
640                // Apply G**H to Z from the right
641                let zi = unsafe { z.rb().col(i).const_cast().as_2d_mut() };
642                let zip1 = unsafe { z.rb().col(i + 1).const_cast().as_2d_mut() };
643
644                if z.row_stride() == 1 {
645                    arch.dispatch(Rot {
646                        ai: zi,
647                        aj: zip1,
648                        c: cs,
649                        s: sn,
650                    });
651                } else {
652                    zipped!(zi, zip1).for_each(|unzipped!(mut zi, mut zip1)| {
653                        let zi_ = zi.read();
654                        let zip1_ = zip1.read();
655                        let tmp =
656                            (zi_.faer_scale_real(cs)).faer_add(zip1_.faer_mul(sn.faer_conj()));
657                        zip1.write(
658                            (zi_.faer_mul(sn.faer_neg())).faer_add(zip1_.faer_scale_real(cs)),
659                        );
660                        zi.write(tmp);
661                    });
662                }
663            }
664        }
665    }
666    0
667}
668
669#[derive(Default, Clone, Copy, Debug)]
670#[non_exhaustive]
671pub struct EvdParams {
672    /// Function that returns the number of shifts to use for a given matrix size
673    pub recommended_shift_count:
674        Option<fn(matrix_dimension: usize, active_block_dimension: usize) -> usize>,
675    /// Function that returns the deflation window to use for a given matrix size
676    pub recommended_deflation_window:
677        Option<fn(matrix_dimension: usize, active_block_dimension: usize) -> usize>,
678    /// Threshold to switch between blocked and unblocked code
679    pub blocking_threshold: Option<usize>,
680    /// Threshold of percent of aggressive-early-deflation window that must converge to skip a
681    /// sweep
682    pub nibble_threshold: Option<usize>,
683}
684
685pub fn default_recommended_shift_count(dim: usize, _active_block_dim: usize) -> usize {
686    let n = dim;
687    if n < 30 {
688        2
689    } else if n < 60 {
690        4
691    } else if n < 150 {
692        12
693    } else if n < 590 {
694        32
695    } else if n < 3000 {
696        64
697    } else if n < 6000 {
698        128
699    } else {
700        256
701    }
702}
703
704pub fn default_recommended_deflation_window(dim: usize, _active_block_dim: usize) -> usize {
705    let n = dim;
706    if n < 30 {
707        2
708    } else if n < 60 {
709        4
710    } else if n < 150 {
711        10
712    } else if n < 590 {
713        #[cfg(feature = "std")]
714        {
715            (n as f64 / (n as f64).log2()) as usize
716        }
717        #[cfg(not(feature = "std"))]
718        {
719            libm::log2(n as f64 / (n as f64)) as usize
720        }
721    } else if n < 3000 {
722        96
723    } else if n < 6000 {
724        192
725    } else {
726        384
727    }
728}
729
730pub fn default_blocking_threshold() -> usize {
731    75
732}
733
734pub fn default_nibble_threshold() -> usize {
735    50
736}
737
738fn aggressive_early_deflation<E: ComplexField>(
739    want_t: bool,
740    mut a: MatMut<'_, E>,
741    mut z: Option<MatMut<'_, E>>,
742    mut s: MatMut<'_, E>,
743    ilo: usize,
744    ihi: usize,
745    nw: usize,
746    epsilon: E::Real,
747    zero_threshold: E::Real,
748    parallelism: Parallelism,
749    mut stack: PodStack<'_>,
750    params: EvdParams,
751) -> (usize, usize) {
752    let n = a.nrows();
753
754    // Because we will use the lower triangular part of A as workspace,
755    // We have a maximum window size
756    let nw_max = (n - 3) / 3;
757    let eps = epsilon;
758    let small_num = zero_threshold
759        .faer_div(eps)
760        .faer_mul(E::Real::faer_from_f64(n as f64));
761
762    // Size of the deflation window
763    let jw = Ord::min(Ord::min(nw, ihi - ilo), nw_max);
764    // First row index in the deflation window
765    let kwtop = ihi - jw;
766
767    // s is the value just outside the window. It determines the spike
768    // together with the orthogonal schur factors.
769    let mut s_spike = if kwtop == ilo {
770        E::faer_zero()
771    } else {
772        a.read(kwtop, kwtop - 1)
773    };
774
775    if kwtop + 1 == ihi {
776        // 1x1 deflation window, not much to do
777        s.write(kwtop, 0, a.read(kwtop, kwtop));
778        let mut ns = 1;
779        let mut nd = 0;
780        if abs1(s_spike) <= max(small_num, eps.faer_mul(abs1(a.read(kwtop, kwtop)))) {
781            ns = 0;
782            nd = 1;
783            if kwtop > ilo {
784                a.write(kwtop, kwtop - 1, E::faer_zero());
785            }
786        }
787        return (ns, nd);
788    }
789
790    // Define workspace matrices
791    // We use the lower triangular part of A as workspace
792    // TW and WH overlap, but WH is only used after we no longer need
793    // TW so it is ok.
794    let mut v = unsafe { a.rb().submatrix(n - jw, 0, jw, jw).const_cast() };
795    let mut tw = unsafe { a.rb().submatrix(n - jw, jw, jw, jw).const_cast() };
796    let mut wh = unsafe {
797        a.rb()
798            .submatrix(n - jw, jw, jw, n - 2 * jw - 3)
799            .const_cast()
800    };
801    let mut wv = unsafe { a.rb().submatrix(jw + 3, 0, n - 2 * jw - 3, jw).const_cast() };
802    let mut a = unsafe { a.rb().const_cast() };
803
804    // Convert the window to spike-triangular form. i.e. calculate the
805    // Schur form of the deflation window.
806    // If the QR algorithm fails to convergence, it can still be
807    // partially in Schur form. In that case we continue on a smaller
808    // window (note the use of infqr later in the code).
809    let a_window = a.rb().submatrix(kwtop, kwtop, ihi - kwtop, ihi - kwtop);
810    let mut s_window = unsafe { s.rb().subrows(kwtop, ihi - kwtop).const_cast() };
811    zipped!(tw.rb_mut())
812        .for_each_triangular_lower(Diag::Include, |unzipped!(mut x)| x.write(E::faer_zero()));
813    for j in 0..jw {
814        for i in 0..Ord::min(j + 2, jw) {
815            tw.write(i, j, a_window.read(i, j));
816        }
817    }
818    v.fill_zero();
819    v.rb_mut()
820        .diagonal_mut()
821        .column_vector_mut()
822        .fill(E::faer_one());
823
824    let infqr = if jw
825        < params
826            .blocking_threshold
827            .unwrap_or(default_blocking_threshold())
828    {
829        lahqr(
830            true,
831            tw.rb_mut(),
832            Some(v.rb_mut()),
833            s_window.rb_mut(),
834            0,
835            jw,
836            epsilon,
837            zero_threshold,
838        )
839    } else {
840        let infqr = multishift_qr(
841            true,
842            tw.rb_mut(),
843            Some(v.rb_mut()),
844            s_window.rb_mut(),
845            0,
846            jw,
847            epsilon,
848            zero_threshold,
849            parallelism,
850            stack.rb_mut(),
851            params,
852        )
853        .0;
854        for j in 0..jw {
855            for i in j + 2..jw {
856                tw.write(i, j, E::faer_zero());
857            }
858        }
859        infqr
860    };
861    let infqr = infqr as usize;
862
863    // Deflation detection loop
864    // one eigenvalue block at a time, we will check if it is deflatable
865    // by checking the bottom spike element. If it is not deflatable,
866    // we move the block up. This moves other blocks down to check.
867    let mut ns = jw;
868    let nd;
869    let mut ilst = infqr;
870    while ilst < ns {
871        // 1x1 eigenvalue block
872        #[allow(clippy::disallowed_names)]
873        let mut foo = abs1(tw.read(ns - 1, ns - 1));
874        if foo == E::Real::faer_zero() {
875            foo = abs1(s_spike);
876        }
877        if abs1(s_spike).faer_mul(abs1(v.read(0, ns - 1))) <= max(small_num, eps.faer_mul(foo)) {
878            // Eigenvalue is deflatable
879            ns -= 1;
880        } else {
881            // Eigenvalue is not deflatable.
882            // Move it up out of the way.
883            let ifst = ns - 1;
884            schur_move(
885                tw.rb_mut(),
886                Some(v.rb_mut()),
887                ifst,
888                &mut ilst,
889                epsilon,
890                zero_threshold,
891            );
892            ilst += 1;
893        }
894    }
895
896    if ns == 0 {
897        s_spike = E::faer_zero();
898    }
899
900    if ns == jw {
901        // Agressive early deflation didn't deflate any eigenvalues
902        // We don't need to apply the update to the rest of the matrix
903        nd = jw - ns;
904        ns -= infqr;
905        return (ns, nd);
906    }
907
908    // sorting diagonal blocks of T improves accuracy for graded matrices.
909    // Bubble sort deals well with exchange failures.
910    let mut sorted = false;
911    // Window to be checked (other eigenvalue are sorted)
912    let mut sorting_window_size = jw;
913    while !sorted {
914        sorted = true;
915
916        // Index of last eigenvalue that was swapped
917        let mut ilst = 0;
918
919        // Index of the first block
920        let mut i1 = ns;
921
922        while i1 + 1 < sorting_window_size {
923            // Check if there is a next block
924            if i1 + 1 == jw {
925                ilst -= 1;
926                break;
927            }
928
929            // Index of the second block
930            let i2 = i1 + 1;
931
932            // Size of the second block
933
934            let ev1 = abs1(tw.read(i1, i1));
935            let ev2 = abs1(tw.read(i2, i2));
936
937            if ev1 > ev2 {
938                i1 = i2;
939            } else {
940                sorted = false;
941                let ierr = schur_swap(tw.rb_mut(), Some(v.rb_mut()), i1, epsilon, zero_threshold);
942                if ierr == 0 {
943                    i1 += 1;
944                } else {
945                    i1 = i2;
946                }
947                ilst = i1;
948            }
949        }
950        sorting_window_size = ilst;
951    }
952
953    // Recalculate the eigenvalues
954    let mut i = 0;
955    while i < jw {
956        s.write(kwtop + i, 0, tw.read(i, i));
957        i += 1;
958    }
959
960    // Reduce A back to Hessenberg form (if neccesary)
961    if s_spike != E::faer_zero() {
962        // Reflect spike back
963        {
964            let mut vv = wv.rb_mut().col_mut(0).subrows_mut(0, ns).as_2d_mut();
965            for i in 0..ns {
966                vv.write(i, 0, v.read(0, i).faer_conj());
967            }
968            let head = vv.read(0, 0);
969            let tail = vv.rb_mut().subrows_mut(1, ns - 1);
970            let tail_norm = tail.rb().norm_l2();
971            let (tau, beta) = make_householder_in_place_v2(Some(tail), head, tail_norm);
972            vv.write(0, 0, E::faer_one());
973            let tau = tau.faer_inv();
974
975            {
976                let mut tw_slice = tw.rb_mut().submatrix_mut(0, 0, ns, jw);
977                let tmp = vv.rb().adjoint() * tw_slice.rb();
978                matmul(
979                    tw_slice.rb_mut(),
980                    vv.rb(),
981                    tmp.as_ref(),
982                    Some(E::faer_one()),
983                    tau.faer_neg(),
984                    parallelism,
985                );
986            }
987
988            {
989                let mut tw_slice2 = tw.rb_mut().submatrix_mut(0, 0, jw, ns);
990                let tmp = tw_slice2.rb() * vv.rb();
991                matmul(
992                    tw_slice2.rb_mut(),
993                    tmp.as_ref(),
994                    vv.rb().adjoint(),
995                    Some(E::faer_one()),
996                    tau.faer_neg(),
997                    parallelism,
998                );
999            }
1000
1001            {
1002                let mut v_slice = v.rb_mut().submatrix_mut(0, 0, jw, ns);
1003                let tmp = v_slice.rb() * vv.rb();
1004                matmul(
1005                    v_slice.rb_mut(),
1006                    tmp.as_ref(),
1007                    vv.rb().adjoint(),
1008                    Some(E::faer_one()),
1009                    tau.faer_neg(),
1010                    parallelism,
1011                );
1012            }
1013            vv.write(0, 0, beta);
1014        }
1015
1016        // Hessenberg reduction
1017        {
1018            let mut householder = wv.rb_mut().col_mut(0).subrows_mut(0, ns - 1);
1019            make_hessenberg_in_place(
1020                tw.rb_mut().submatrix_mut(0, 0, ns, ns),
1021                householder.rb_mut().as_2d_mut(),
1022                parallelism,
1023                stack.rb_mut(),
1024            );
1025            apply_block_householder_sequence_transpose_on_the_left_in_place_with_conj(
1026                tw.rb().submatrix(1, 0, ns - 1, ns - 1),
1027                householder.rb().transpose().as_2d(),
1028                Conj::Yes,
1029                unsafe { tw.rb().submatrix(1, ns, ns - 1, jw - ns).const_cast() },
1030                parallelism,
1031                stack.rb_mut(),
1032            );
1033            apply_block_householder_sequence_on_the_right_in_place_with_conj(
1034                tw.rb().submatrix(1, 0, ns - 1, ns - 1),
1035                householder.rb().transpose().as_2d(),
1036                Conj::No,
1037                v.rb_mut().submatrix_mut(0, 1, jw, ns - 1),
1038                parallelism,
1039                stack.rb_mut(),
1040            );
1041        }
1042    }
1043
1044    // Copy the deflation window back into place
1045    if kwtop > 0 {
1046        a.write(kwtop, kwtop - 1, s_spike.faer_mul(v.read(0, 0).faer_conj()));
1047    }
1048    for j in 0..jw {
1049        for i in 0..Ord::min(j + 2, jw) {
1050            a.write(kwtop + i, kwtop + j, tw.read(i, j));
1051        }
1052    }
1053
1054    // Store number of deflated eigenvalues
1055    nd = jw - ns;
1056    ns -= infqr;
1057
1058    //
1059    // Update rest of the matrix using matrix matrix multiplication
1060    //
1061    let (istart_m, istop_m);
1062    if want_t {
1063        istart_m = 0;
1064        istop_m = n;
1065    } else {
1066        istart_m = ilo;
1067        istop_m = ihi;
1068    }
1069
1070    // Horizontal multiply
1071    if ihi < istop_m {
1072        let mut i = ihi;
1073        while i < istop_m {
1074            let iblock = Ord::min(istop_m - i, wh.ncols());
1075            let mut a_slice = a.rb_mut().submatrix_mut(kwtop, i, ihi - kwtop, iblock);
1076            let mut wh_slice = wh
1077                .rb_mut()
1078                .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
1079            matmul(
1080                wh_slice.rb_mut(),
1081                v.rb().adjoint(),
1082                a_slice.rb(),
1083                None,
1084                E::faer_one(),
1085                parallelism,
1086            );
1087            a_slice.copy_from(wh_slice.rb());
1088            i += iblock;
1089        }
1090    }
1091
1092    // Vertical multiply
1093    if istart_m < kwtop {
1094        let mut i = istart_m;
1095        while i < kwtop {
1096            let iblock = Ord::min(kwtop - i, wv.nrows());
1097            let mut a_slice = a.rb_mut().submatrix_mut(i, kwtop, iblock, ihi - kwtop);
1098            let mut wv_slice = wv
1099                .rb_mut()
1100                .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
1101            matmul(
1102                wv_slice.rb_mut(),
1103                a_slice.rb(),
1104                v.rb(),
1105                None,
1106                E::faer_one(),
1107                parallelism,
1108            );
1109            a_slice.copy_from(wv_slice.rb());
1110            i += iblock;
1111        }
1112    }
1113    // Update Z (also a vertical multiplication)
1114    if let Some(mut z) = z.rb_mut() {
1115        let mut i = 0;
1116        while i < n {
1117            let iblock = Ord::min(n - i, wv.nrows());
1118            let mut z_slice = z.rb_mut().submatrix_mut(i, kwtop, iblock, ihi - kwtop);
1119            let mut wv_slice = wv
1120                .rb_mut()
1121                .submatrix_mut(0, 0, z_slice.nrows(), z_slice.ncols());
1122            matmul(
1123                wv_slice.rb_mut(),
1124                z_slice.rb(),
1125                v.rb(),
1126                None,
1127                E::faer_one(),
1128                parallelism,
1129            );
1130            z_slice.copy_from(wv_slice.rb());
1131            i += iblock;
1132        }
1133    }
1134
1135    (ns, nd)
1136}
1137
1138fn schur_move<E: ComplexField>(
1139    mut a: MatMut<E>,
1140    mut q: Option<MatMut<E>>,
1141    ifst: usize,
1142    ilst: &mut usize,
1143    epsilon: E::Real,
1144    zero_threshold: E::Real,
1145) -> isize {
1146    let n = a.nrows();
1147
1148    // Quick return
1149    if n == 0 {
1150        return 0;
1151    }
1152
1153    let mut here = ifst;
1154    if ifst < *ilst {
1155        while here != *ilst {
1156            // Size of the next eigenvalue block
1157            let ierr = schur_swap(a.rb_mut(), q.rb_mut(), here, epsilon, zero_threshold);
1158            if ierr != 0 {
1159                // The swap failed, return with error
1160                *ilst = here;
1161                return 1;
1162            }
1163            here += 1;
1164        }
1165    } else {
1166        while here != *ilst {
1167            // Size of the next eigenvalue block
1168            let ierr = schur_swap(a.rb_mut(), q.rb_mut(), here - 1, epsilon, zero_threshold);
1169            if ierr != 0 {
1170                // The swap failed, return with error
1171                *ilst = here;
1172                return 1;
1173            }
1174            here -= 1;
1175        }
1176    }
1177
1178    0
1179}
1180
1181fn schur_swap<E: ComplexField>(
1182    mut a: MatMut<E>,
1183    q: Option<MatMut<E>>,
1184    j0: usize,
1185    epsilon: E::Real,
1186    zero_threshold: E::Real,
1187) -> isize {
1188    let n = a.nrows();
1189
1190    let j1 = j0 + 1;
1191    let j2 = j0 + 2;
1192
1193    //
1194    // In the complex case, there can only be 1x1 blocks to swap
1195    //
1196    let t00 = a.read(j0, j0);
1197    let t11 = a.read(j1, j1);
1198    //
1199    // Determine the transformation to perform the interchange
1200    //
1201    let (cs, sn, _) = rotg(a.read(j0, j1), t11.faer_sub(t00), epsilon, zero_threshold);
1202
1203    a.write(j1, j1, t00);
1204    a.write(j0, j0, t11);
1205
1206    // Apply transformation from the left
1207    if j2 < n {
1208        let row1 = unsafe {
1209            a.rb()
1210                .row(j0)
1211                .subcols(j2, n - j2)
1212                .transpose()
1213                .const_cast()
1214                .as_2d_mut()
1215        };
1216        let row2 = unsafe {
1217            a.rb()
1218                .row(j1)
1219                .subcols(j2, n - j2)
1220                .transpose()
1221                .const_cast()
1222                .as_2d_mut()
1223        };
1224        rot(row1.transpose_mut(), row2.transpose_mut(), cs, sn);
1225    }
1226    // Apply transformation from the right
1227    if j0 > 0 {
1228        let col1 = unsafe { a.rb().col(j0).subrows(0, j0).const_cast().as_2d_mut() };
1229        let col2 = unsafe { a.rb().col(j1).subrows(0, j0).const_cast().as_2d_mut() };
1230
1231        rot(col1, col2, cs, sn.faer_conj());
1232    }
1233    if let Some(q) = q {
1234        let col1 = unsafe { q.rb().col(j0).const_cast().as_2d_mut() };
1235        let col2 = unsafe { q.rb().col(j1).const_cast().as_2d_mut() };
1236        rot(col1, col2, cs, sn.faer_conj());
1237    }
1238
1239    0
1240}
1241
1242pub fn multishift_qr_req<E: Entity>(
1243    n: usize,
1244    nh: usize,
1245    want_t: bool,
1246    want_z: bool,
1247    parallelism: Parallelism,
1248    params: EvdParams,
1249) -> Result<StackReq, SizeOverflow> {
1250    let nsr = (params
1251        .recommended_shift_count
1252        .unwrap_or(default_recommended_shift_count))(n, nh);
1253
1254    let _ = want_t;
1255    let _ = want_z;
1256
1257    if n <= 3 {
1258        return Ok(StackReq::empty());
1259    }
1260
1261    let nw_max = (n - 3) / 3;
1262
1263    StackReq::try_any_of([
1264        make_hessenberg_in_place_req::<E>(nw_max, 1, parallelism)?,
1265        apply_block_householder_sequence_transpose_on_the_left_in_place_req::<E>(
1266            nw_max, nw_max, nw_max,
1267        )?,
1268        apply_block_householder_sequence_on_the_right_in_place_req::<E>(nw_max, nw_max, nw_max)?,
1269        temp_mat_req::<E>(3, nsr)?,
1270    ])
1271}
1272
1273/// returns err code, number of aggressive early deflations, number of qr sweeps
1274pub fn multishift_qr<E: ComplexField>(
1275    want_t: bool,
1276    a: MatMut<'_, E>,
1277    z: Option<MatMut<'_, E>>,
1278    w: MatMut<'_, E>,
1279    ilo: usize,
1280    ihi: usize,
1281    epsilon: E::Real,
1282    zero_threshold: E::Real,
1283    parallelism: Parallelism,
1284    stack: PodStack<'_>,
1285    params: EvdParams,
1286) -> (isize, usize, usize) {
1287    assert!(a.nrows() == a.ncols());
1288    assert!(ilo <= ihi);
1289
1290    let n = a.nrows();
1291    let nh = ihi - ilo;
1292
1293    assert!(w.nrows() == n);
1294    assert!(w.ncols() == 1);
1295
1296    if let Some(z) = z.rb() {
1297        assert!(z.nrows() == n);
1298        assert!(z.ncols() == n);
1299    }
1300
1301    let mut a = a;
1302    let mut z = z;
1303    let mut w = w;
1304    let mut stack = stack;
1305
1306    let non_convergence_limit_window = 5;
1307    let non_convergence_limit_shift = 6;
1308    let dat1 = E::Real::faer_from_f64(0.75);
1309    let dat2 = E::Real::faer_from_f64(-0.4375);
1310
1311    // This routine uses the space below the subdiagonal as workspace
1312    // For small matrices, this is not enough
1313    // if n < nmin, the matrix will be passed to lahqr
1314    let nmin = Ord::max(
1315        15,
1316        params
1317            .blocking_threshold
1318            .unwrap_or(default_blocking_threshold()),
1319    );
1320    let nibble = params
1321        .nibble_threshold
1322        .unwrap_or(default_nibble_threshold());
1323
1324    // Recommended number of shifts
1325    let nsr = (params
1326        .recommended_shift_count
1327        .unwrap_or(default_recommended_shift_count))(n, nh);
1328
1329    // Recommended deflation window size
1330    let nwr = (params
1331        .recommended_deflation_window
1332        .unwrap_or(default_recommended_deflation_window))(n, nh);
1333
1334    // Tiny matrices must use lahqr
1335    if n < nmin {
1336        let err = lahqr(want_t, a, z, w, ilo, ihi, epsilon, zero_threshold);
1337        return (err, 0, 0);
1338    }
1339    if nh == 0 {
1340        return (0, 0, 0);
1341    }
1342
1343    let nw_max = (n - 3) / 3;
1344
1345    // itmax is the total number of QR iterations allowed.
1346    // For most matrices, 3 shifts per eigenvalue is enough, so
1347    // we set itmax to 30 times nh as a safe limit.
1348    let itmax = 30 * Ord::max(10, nh);
1349
1350    // k_defl counts the number of iterations since a deflation
1351    let mut k_defl = 0;
1352
1353    // istop is the end of the active subblock.
1354    // As more and more eigenvalues converge, it eventually
1355    // becomes ilo+1 and the loop ends.
1356    let mut istop = ihi;
1357
1358    let mut info = 0;
1359    let mut nw = 0;
1360
1361    let mut count_aed = 0;
1362    let mut count_sweep = 0;
1363
1364    for iter in 0..itmax + 1 {
1365        if iter == itmax {
1366            // The QR algorithm failed to converge, return with error.
1367            info = istop as isize;
1368            break;
1369        }
1370
1371        if ilo + 1 >= istop {
1372            if ilo + 1 == istop {
1373                w.write(ilo, 0, a.read(ilo, ilo));
1374            }
1375            // All eigenvalues have been found, exit and return 0.
1376            break;
1377        }
1378
1379        // istart is the start of the active subblock. Either
1380        // istart = ilo, or H(istart, istart-1) = 0. This means
1381        // that we can treat this subblock separately.
1382        let mut istart = ilo;
1383
1384        // Find active block
1385        for i in (ilo + 1..istop).rev() {
1386            if a.read(i, i - 1) == E::faer_zero() {
1387                istart = i;
1388                break;
1389            }
1390        }
1391
1392        //
1393        // Agressive early deflation
1394        //
1395        let nh = istop - istart;
1396        let nwupbd = Ord::min(nh, nw_max);
1397        if k_defl < non_convergence_limit_window {
1398            nw = Ord::min(nwupbd, nwr);
1399        } else {
1400            // There have been no deflations in many iterations
1401            // Try to vary the deflation window size.
1402            nw = Ord::min(nwupbd, 2 * nw);
1403        }
1404        if nh <= 4 {
1405            // n >= nmin, so there is always enough space for a 4x4 window
1406            nw = nh;
1407        }
1408        if nw < nw_max {
1409            if nw + 1 >= nh {
1410                nw = nh
1411            };
1412            let kwtop = istop - nw;
1413            if (kwtop > istart + 2)
1414                && (abs1(a.read(kwtop, kwtop - 1)) > abs1(a.read(kwtop - 1, kwtop - 2)))
1415            {
1416                nw += 1;
1417            }
1418        }
1419
1420        let (ls, ld) = aggressive_early_deflation(
1421            want_t,
1422            a.rb_mut(),
1423            z.rb_mut(),
1424            w.rb_mut(),
1425            istart,
1426            istop,
1427            nw,
1428            epsilon,
1429            zero_threshold,
1430            parallelism,
1431            stack.rb_mut(),
1432            params,
1433        );
1434        count_aed += 1;
1435
1436        istop -= ld;
1437
1438        if ld > 0 {
1439            k_defl = 0;
1440        }
1441
1442        // Skip an expensive QR sweep if there is a (partly heuristic)
1443        // reason to expect that many eigenvalues will deflate without it.
1444        // Here, the QR sweep is skipped if many eigenvalues have just been
1445        // deflated or if the remaining active block is small.
1446        if ld > 0 && (100 * ld > nwr * nibble || (istop - istart) <= Ord::min(nmin, nw_max)) {
1447            continue;
1448        }
1449
1450        k_defl += 1;
1451        let mut ns = Ord::min(nh - 1, Ord::min(ls, nsr));
1452        let mut i_shifts = istop - ls;
1453
1454        if k_defl % non_convergence_limit_shift == 0 {
1455            ns = nsr;
1456            // TODO: compare with original fortran impl
1457            // unsure about this part
1458            for i in (i_shifts + 1..istop - 1).step_by(2) {
1459                let ss = abs1(a.read(i, i - 1)).faer_add(abs1(a.read(i - 1, i - 2)));
1460                let aa = E::faer_from_real(dat1.faer_mul(ss)).faer_add(a.read(i, i));
1461                let bb = E::faer_from_real(ss);
1462                let cc = E::faer_from_real(dat2.faer_mul(ss));
1463                let dd = aa;
1464                let (s1, s2) = lahqr_eig22(aa, bb, cc, dd);
1465                w.write(i, 0, s1);
1466                w.write(i + 1, 0, s2);
1467            }
1468        } else {
1469            if ls <= nsr / 2 {
1470                // Got nsr/2 or fewer shifts? Then use multi/double shift qr to
1471                // get more
1472                let mut temp = a.rb_mut().submatrix_mut(n - nsr, 0, nsr, nsr);
1473                let mut shifts = w.rb_mut().subrows_mut(istop - nsr, nsr);
1474                let ierr = lahqr(
1475                    false,
1476                    temp.rb_mut(),
1477                    None,
1478                    shifts.rb_mut(),
1479                    0,
1480                    nsr,
1481                    epsilon,
1482                    zero_threshold,
1483                ) as usize;
1484
1485                ns = nsr - ierr;
1486
1487                if ns < 2 {
1488                    // In case of a rare QR failure, use eigenvalues
1489                    // of the trailing 2x2 submatrix
1490                    let aa = a.read(istop - 2, istop - 2);
1491                    let bb = a.read(istop - 2, istop - 1);
1492                    let cc = a.read(istop - 1, istop - 2);
1493                    let dd = a.read(istop - 1, istop - 1);
1494                    let (s1, s2) = lahqr_eig22(aa, bb, cc, dd);
1495                    w.write(istop - 2, 0, s1);
1496                    w.write(istop - 1, 0, s2);
1497                    ns = 2;
1498                }
1499
1500                i_shifts = istop - ns;
1501            }
1502
1503            // Sort the shifts (helps a little)
1504            // Bubble sort keeps complex conjugate pairs together
1505            let mut sorted = false;
1506            let mut k = istop;
1507            while !sorted && k > i_shifts {
1508                sorted = true;
1509                for i in i_shifts..k - 1 {
1510                    if abs1(w.read(i, 0)) < abs1(w.read(i + 1, 0)) {
1511                        sorted = false;
1512                        let wi = w.read(i, 0);
1513                        let wip1 = w.read(i + 1, 0);
1514                        w.write(i, 0, wip1);
1515                        w.write(i + 1, 0, wi);
1516                    }
1517                }
1518                k -= 1;
1519            }
1520
1521            // Shuffle shifts into pairs of real shifts
1522            // and pairs of complex conjugate shifts
1523            // assuming complex conjugate shifts are
1524            // already adjacent to one another. (Yes,
1525            // they are.)
1526            for i in (i_shifts + 2..istop).rev().step_by(2) {
1527                if w.read(i, 0).faer_imag() != w.read(i - 1, 0).faer_imag().faer_neg() {
1528                    let tmp = w.read(i, 0);
1529                    w.write(i, 0, w.read(i - 1, 0));
1530                    w.write(i - 1, 0, w.read(i - 2, 0));
1531                    w.write(i - 2, 0, tmp);
1532                }
1533            }
1534
1535            // Since we shuffled the shifts, we will only drop
1536            // Real shifts
1537            if ns % 2 == 1 {
1538                ns -= 1;
1539            }
1540            i_shifts = istop - ns;
1541        }
1542
1543        let mut shifts = w.rb_mut().subrows_mut(i_shifts, ns);
1544        multishift_qr_sweep(
1545            want_t,
1546            a.rb_mut(),
1547            z.rb_mut(),
1548            shifts.rb_mut(),
1549            istart,
1550            istop,
1551            epsilon,
1552            zero_threshold,
1553            parallelism,
1554            stack.rb_mut(),
1555        );
1556        count_sweep += 1;
1557    }
1558
1559    (info, count_aed, count_sweep)
1560}
1561
1562fn move_bulge<E: ComplexField>(
1563    mut h: MatMut<'_, E>,
1564    mut v: MatMut<'_, E>,
1565    s1: E,
1566    s2: E,
1567    epsilon: E::Real,
1568) {
1569    // Perform delayed update of row below the bulge
1570    // Assumes the first two elements of the row are zero
1571    let v0 = v.read(0, 0).faer_real();
1572    let v1 = v.read(1, 0);
1573    let v2 = v.read(2, 0);
1574    let refsum = v2.faer_scale_real(v0).faer_mul(h.read(3, 2));
1575
1576    h.write(3, 0, refsum.faer_neg());
1577    h.write(3, 1, refsum.faer_neg().faer_mul(v1.faer_conj()));
1578    h.write(3, 2, h.read(3, 2).faer_sub(refsum.faer_mul(v2.faer_conj())));
1579
1580    // Generate reflector to move bulge down
1581    v.write(0, 0, h.read(1, 0));
1582    v.write(1, 0, h.read(2, 0));
1583    v.write(2, 0, h.read(3, 0));
1584
1585    let head = v.read(0, 0);
1586    let tail = v.rb_mut().subrows_mut(1, 2);
1587    let tail_norm = tail.rb().norm_l2();
1588    let (tau, beta) = make_householder_in_place_v2(Some(tail), head, tail_norm);
1589    v.write(0, 0, tau.faer_inv());
1590
1591    // Check for bulge collapse
1592    if h.read(3, 0) != E::faer_zero()
1593        || h.read(3, 1) != E::faer_zero()
1594        || h.read(3, 2) != E::faer_zero()
1595    {
1596        // The bulge hasn't collapsed, typical case
1597        h.write(1, 0, beta);
1598        h.write(2, 0, E::faer_zero());
1599        h.write(3, 0, E::faer_zero());
1600    } else {
1601        // The bulge has collapsed, attempt to reintroduce using
1602        // 2-small-subdiagonals trick
1603        let mut vt_storage = E::faer_map(E::faer_zero().faer_into_units(), |zero_unit| {
1604            [zero_unit, zero_unit, zero_unit]
1605        });
1606        let vt_ptr = E::faer_map(E::faer_as_mut(&mut vt_storage), |array| array.as_mut_ptr());
1607        let mut vt = unsafe { faer_core::mat::from_raw_parts_mut::<'_, E>(vt_ptr, 3, 1, 1, 3) };
1608
1609        let h2 = h.rb().submatrix(1, 1, 3, 3);
1610        lahqr_shiftcolumn(h2, vt.rb_mut(), s1, s2);
1611
1612        let head = vt.read(0, 0);
1613        let tail = vt.rb_mut().subrows_mut(1, 2);
1614        let tail_norm = tail.rb().norm_l2();
1615        let (tau, _) = make_householder_in_place_v2(Some(tail), head, tail_norm);
1616        vt.write(0, 0, tau.faer_inv());
1617        let vt0 = vt.read(0, 0);
1618        let vt1 = vt.read(1, 0);
1619        let vt2 = vt.read(2, 0);
1620
1621        let refsum = (vt0.faer_conj().faer_mul(h.read(1, 0)))
1622            .faer_add(vt1.faer_conj().faer_mul(h.read(2, 0)));
1623
1624        if abs1(h.read(2, 0).faer_sub(refsum.faer_mul(vt1))).faer_add(abs1(refsum.faer_mul(vt2)))
1625            > epsilon.faer_mul(
1626                abs1(h.read(0, 0))
1627                    .faer_add(abs1(h.read(1, 1)))
1628                    .faer_add(abs1(h.read(2, 2))),
1629            )
1630        {
1631            // Starting a new bulge here would create non-negligible fill. Use
1632            // the old one.
1633            h.write(1, 0, beta);
1634            h.write(2, 0, E::faer_zero());
1635            h.write(3, 0, E::faer_zero());
1636        } else {
1637            // Fill-in is negligible, use the new reflector.
1638            h.write(1, 0, h.read(1, 0).faer_sub(refsum));
1639            h.write(2, 0, E::faer_zero());
1640            h.write(3, 0, E::faer_zero());
1641            v.write(0, 0, vt.read(0, 0));
1642            v.write(1, 0, vt.read(1, 0));
1643            v.write(2, 0, vt.read(2, 0));
1644        }
1645    }
1646}
1647
1648fn multishift_qr_sweep<E: ComplexField>(
1649    want_t: bool,
1650    a: MatMut<E>,
1651    mut z: Option<MatMut<E>>,
1652    s: MatMut<E>,
1653    ilo: usize,
1654    ihi: usize,
1655    epsilon: E::Real,
1656    zero_threshold: E::Real,
1657    parallelism: Parallelism,
1658    stack: PodStack<'_>,
1659) {
1660    let n = a.nrows();
1661
1662    let eps = epsilon;
1663    let small_num = zero_threshold
1664        .faer_div(eps)
1665        .faer_mul(E::Real::faer_from_f64(n as f64));
1666    assert!(n >= 12);
1667
1668    let (mut v, _stack) = faer_core::temp_mat_zeroed::<E>(3, s.nrows() / 2, stack);
1669    let mut v = v.as_mut();
1670
1671    let n_block_max = (n - 3) / 3;
1672    let n_shifts_max = Ord::min(ihi - ilo - 1, Ord::max(2, 3 * (n_block_max / 4)));
1673
1674    let mut n_shifts = Ord::min(s.nrows(), n_shifts_max);
1675    if n_shifts % 2 == 1 {
1676        n_shifts -= 1;
1677    }
1678    let n_bulges = n_shifts / 2;
1679
1680    let n_block_desired = Ord::min(2 * n_shifts, n_block_max);
1681
1682    // Define workspace matrices
1683    // We use the lower triangular part of A as workspace
1684
1685    // U stores the orthogonal transformations
1686    let mut u = unsafe {
1687        a.rb()
1688            .submatrix(n - n_block_desired, 0, n_block_desired, n_block_desired)
1689            .const_cast()
1690    };
1691    // Workspace for horizontal multiplications
1692    let mut wh = unsafe {
1693        a.rb()
1694            .submatrix(
1695                n - n_block_desired,
1696                n_block_desired,
1697                n_block_desired,
1698                n - 2 * n_block_desired - 3,
1699            )
1700            .const_cast()
1701    };
1702    // Workspace for vertical multiplications
1703    let mut wv = unsafe {
1704        a.rb()
1705            .submatrix(
1706                n_block_desired + 3,
1707                0,
1708                n - 2 * n_block_desired - 3,
1709                n_block_desired,
1710            )
1711            .const_cast()
1712    };
1713    let mut a = unsafe { a.rb().const_cast() };
1714
1715    // i_pos_block points to the start of the block of bulges
1716    let mut i_pos_block;
1717
1718    //
1719    // The following code block introduces the bulges into the matrix
1720    //
1721    {
1722        // Near-the-diagonal bulge introduction
1723        // The calculations are initially limited to the window:
1724        // A(ilo:ilo+n_block,ilo:ilo+n_block) The rest is updated later via
1725        // level 3 BLAS
1726
1727        let n_block = Ord::min(n_block_desired, ihi - ilo);
1728        let mut istart_m = ilo;
1729        let mut istop_m = ilo + n_block;
1730        let mut u2 = u.rb_mut().submatrix_mut(0, 0, n_block, n_block);
1731        u2.fill_zero();
1732        u2.rb_mut()
1733            .diagonal_mut()
1734            .column_vector_mut()
1735            .fill(E::faer_one());
1736
1737        for i_pos_last in ilo..ilo + n_block - 2 {
1738            // The number of bulges that are in the pencil
1739            let n_active_bulges = Ord::min(n_bulges, ((i_pos_last - ilo) / 2) + 1);
1740
1741            for i_bulge in 0..n_active_bulges {
1742                let i_pos = i_pos_last - 2 * i_bulge;
1743                let mut v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
1744                if i_pos == ilo {
1745                    // Introduce bulge
1746                    let h = a.rb().submatrix(ilo, ilo, 3, 3);
1747
1748                    let s1 = s.read(s.nrows() - 1 - 2 * i_bulge, 0);
1749                    let s2 = s.read(s.nrows() - 1 - 2 * i_bulge - 1, 0);
1750                    lahqr_shiftcolumn(h, v.rb_mut(), s1, s2);
1751
1752                    debug_assert!(v.nrows() == 3);
1753                    let head = v.read(0, 0);
1754                    let tail = v.rb_mut().subrows_mut(1, 2);
1755                    let tail_norm = tail.rb().norm_l2();
1756                    let (tau, _) = make_householder_in_place_v2(Some(tail), head, tail_norm);
1757                    v.write(0, 0, tau.faer_inv());
1758                } else {
1759                    // Chase bulge down
1760                    let mut h = a.rb_mut().submatrix_mut(i_pos - 1, i_pos - 1, 4, 4);
1761                    let s1 = s.read(s.nrows() - 1 - 2 * i_bulge, 0);
1762                    let s2 = s.read(s.nrows() - 1 - 2 * i_bulge - 1, 0);
1763                    move_bulge(h.rb_mut(), v.rb_mut(), s1, s2, epsilon);
1764                }
1765
1766                // Apply the reflector we just calculated from the right
1767                // We leave the last row for later (it interferes with the
1768                // optimally packed bulges)
1769
1770                let v0 = v.read(0, 0).faer_real();
1771                let v1 = v.read(1, 0);
1772                let v2 = v.read(2, 0);
1773
1774                for j in istart_m..i_pos + 3 {
1775                    let sum = a
1776                        .read(j, i_pos)
1777                        .faer_add(v1.faer_mul(a.read(j, i_pos + 1)))
1778                        .faer_add(v2.faer_mul(a.read(j, i_pos + 2)));
1779                    a.write(j, i_pos, a.read(j, i_pos).faer_sub(sum.faer_scale_real(v0)));
1780                    a.write(
1781                        j,
1782                        i_pos + 1,
1783                        a.read(j, i_pos + 1)
1784                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1.faer_conj())),
1785                    );
1786                    a.write(
1787                        j,
1788                        i_pos + 2,
1789                        a.read(j, i_pos + 2)
1790                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2.faer_conj())),
1791                    );
1792                }
1793
1794                // Apply the reflector we just calculated from the left
1795                // We only update a single column, the rest is updated later
1796                let sum = a
1797                    .read(i_pos, i_pos)
1798                    .faer_add(v1.faer_conj().faer_mul(a.read(i_pos + 1, i_pos)))
1799                    .faer_add(v2.faer_conj().faer_mul(a.read(i_pos + 2, i_pos)));
1800                a.write(
1801                    i_pos,
1802                    i_pos,
1803                    a.read(i_pos, i_pos).faer_sub(sum.faer_scale_real(v0)),
1804                );
1805                a.write(
1806                    i_pos + 1,
1807                    i_pos,
1808                    a.read(i_pos + 1, i_pos)
1809                        .faer_sub(sum.faer_scale_real(v0).faer_mul(v1)),
1810                );
1811                a.write(
1812                    i_pos + 2,
1813                    i_pos,
1814                    a.read(i_pos + 2, i_pos)
1815                        .faer_sub(sum.faer_scale_real(v0).faer_mul(v2)),
1816                );
1817
1818                // Test for deflation.
1819                if (i_pos > ilo) && (a.read(i_pos, i_pos - 1) != E::faer_zero()) {
1820                    let mut tst1 =
1821                        abs1(a.read(i_pos - 1, i_pos - 1)).faer_add(abs1(a.read(i_pos, i_pos)));
1822                    if tst1 == E::Real::faer_zero() {
1823                        if i_pos > ilo + 1 {
1824                            tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 2)));
1825                        }
1826                        if i_pos > ilo + 2 {
1827                            tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 3)));
1828                        }
1829                        if i_pos > ilo + 3 {
1830                            tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 4)));
1831                        }
1832                        if i_pos < ihi - 1 {
1833                            tst1 = tst1.faer_add(abs1(a.read(i_pos + 1, i_pos)));
1834                        }
1835                        if i_pos < ihi - 2 {
1836                            tst1 = tst1.faer_add(abs1(a.read(i_pos + 2, i_pos)));
1837                        }
1838                        if i_pos < ihi - 3 {
1839                            tst1 = tst1.faer_add(abs1(a.read(i_pos + 3, i_pos)));
1840                        }
1841                    }
1842                    if abs1(a.read(i_pos, i_pos - 1)) < max(small_num, eps.faer_mul(tst1)) {
1843                        let ab = max(
1844                            abs1(a.read(i_pos, i_pos - 1)),
1845                            abs1(a.read(i_pos - 1, i_pos)),
1846                        );
1847                        let ba = min(
1848                            abs1(a.read(i_pos, i_pos - 1)),
1849                            abs1(a.read(i_pos - 1, i_pos)),
1850                        );
1851                        let aa = max(
1852                            abs1(a.read(i_pos, i_pos)),
1853                            abs1(a.read(i_pos, i_pos).faer_sub(a.read(i_pos - 1, i_pos - 1))),
1854                        );
1855                        let bb = min(
1856                            abs1(a.read(i_pos, i_pos)),
1857                            abs1(a.read(i_pos, i_pos).faer_sub(a.read(i_pos - 1, i_pos - 1))),
1858                        );
1859                        let s = aa.faer_add(ab);
1860                        if ba.faer_mul(ab.faer_div(s))
1861                            <= max(small_num, eps.faer_mul(bb.faer_mul(aa.faer_div(s))))
1862                        {
1863                            a.write(i_pos, i_pos - 1, E::faer_zero());
1864                        }
1865                    }
1866                }
1867            }
1868
1869            // Delayed update from the left
1870            for i_bulge in 0..n_active_bulges {
1871                let i_pos = i_pos_last - 2 * i_bulge;
1872                let v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
1873
1874                let v0 = v.read(0, 0).faer_real();
1875                let v1 = v.read(1, 0);
1876                let v2 = v.read(2, 0);
1877
1878                for j in i_pos + 1..istop_m {
1879                    let sum = a
1880                        .read(i_pos, j)
1881                        .faer_add(v1.faer_conj().faer_mul(a.read(i_pos + 1, j)))
1882                        .faer_add(v2.faer_conj().faer_mul(a.read(i_pos + 2, j)));
1883                    a.write(i_pos, j, a.read(i_pos, j).faer_sub(sum.faer_scale_real(v0)));
1884                    a.write(
1885                        i_pos + 1,
1886                        j,
1887                        a.read(i_pos + 1, j)
1888                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1)),
1889                    );
1890                    a.write(
1891                        i_pos + 2,
1892                        j,
1893                        a.read(i_pos + 2, j)
1894                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2)),
1895                    );
1896                }
1897            }
1898
1899            // Accumulate the reflectors into U
1900            for i_bulge in 0..n_active_bulges {
1901                let i_pos = i_pos_last - 2 * i_bulge;
1902                let v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
1903
1904                let v0 = v.read(0, 0).faer_real();
1905                let v1 = v.read(1, 0);
1906                let v2 = v.read(2, 0);
1907
1908                let i1 = 0;
1909                let i2 = Ord::min(u2.nrows(), (i_pos_last - ilo) + (i_pos_last - ilo) + 3);
1910
1911                for j in i1..i2 {
1912                    let sum = u2
1913                        .read(j, i_pos - ilo)
1914                        .faer_add(v1.faer_mul(u2.read(j, i_pos - ilo + 1)))
1915                        .faer_add(v2.faer_mul(u2.read(j, i_pos - ilo + 2)));
1916
1917                    u2.write(
1918                        j,
1919                        i_pos - ilo,
1920                        u2.read(j, i_pos - ilo).faer_sub(sum.faer_scale_real(v0)),
1921                    );
1922                    u2.write(
1923                        j,
1924                        i_pos - ilo + 1,
1925                        u2.read(j, i_pos - ilo + 1)
1926                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1.faer_conj())),
1927                    );
1928                    u2.write(
1929                        j,
1930                        i_pos - ilo + 2,
1931                        u2.read(j, i_pos - ilo + 2)
1932                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2.faer_conj())),
1933                    );
1934                }
1935            }
1936        }
1937
1938        // Update rest of the matrix
1939        if want_t {
1940            istart_m = 0;
1941            istop_m = n;
1942        } else {
1943            istart_m = ilo;
1944            istop_m = ihi;
1945        }
1946
1947        // Horizontal multiply
1948        if ilo + n_shifts + 1 < istop_m {
1949            let mut i = ilo + n_block;
1950            while i < istop_m {
1951                let iblock = Ord::min(istop_m - i, wh.ncols());
1952                let mut a_slice = a.rb_mut().submatrix_mut(ilo, i, n_block, iblock);
1953                let mut wh_slice =
1954                    wh.rb_mut()
1955                        .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
1956                matmul(
1957                    wh_slice.rb_mut(),
1958                    u2.rb().adjoint(),
1959                    a_slice.rb(),
1960                    None,
1961                    E::faer_one(),
1962                    parallelism,
1963                );
1964                a_slice.copy_from(wh_slice.rb());
1965                i += iblock;
1966            }
1967        }
1968        // Vertical multiply
1969        if istart_m < ilo {
1970            let mut i = istart_m;
1971            while i < ilo {
1972                let iblock = Ord::min(ilo - i, wv.nrows());
1973                let mut a_slice = a.rb_mut().submatrix_mut(i, ilo, iblock, n_block);
1974                let mut wv_slice =
1975                    wv.rb_mut()
1976                        .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
1977                matmul(
1978                    wv_slice.rb_mut(),
1979                    a_slice.rb(),
1980                    u2.rb(),
1981                    None,
1982                    E::faer_one(),
1983                    parallelism,
1984                );
1985                a_slice.copy_from(wv_slice.rb());
1986                i += iblock;
1987            }
1988        }
1989        // Update Z (also a vertical multiplication)
1990        if let Some(mut z) = z.rb_mut() {
1991            let mut i = 0;
1992            while i < n {
1993                let iblock = Ord::min(n - i, wv.nrows());
1994                let mut z_slice = z.rb_mut().submatrix_mut(i, ilo, iblock, n_block);
1995                let mut wv_slice =
1996                    wv.rb_mut()
1997                        .submatrix_mut(0, 0, z_slice.nrows(), z_slice.ncols());
1998                matmul(
1999                    wv_slice.rb_mut(),
2000                    z_slice.rb(),
2001                    u2.rb(),
2002                    None,
2003                    E::faer_one(),
2004                    parallelism,
2005                );
2006                z_slice.copy_from(wv_slice.rb());
2007                i += iblock;
2008            }
2009        }
2010
2011        i_pos_block = ilo + n_block - n_shifts;
2012    }
2013
2014    //
2015    // The following code block moves the bulges down untill they are low enough
2016    // to be removed
2017    //
2018    while i_pos_block + n_block_desired < ihi {
2019        // Number of positions each bulge will be moved down
2020        let n_pos = Ord::min(n_block_desired - n_shifts, ihi - n_shifts - 1 - i_pos_block);
2021        // Actual blocksize
2022        let n_block = n_shifts + n_pos;
2023
2024        let mut u2 = u.rb_mut().submatrix_mut(0, 0, n_block, n_block);
2025        u2.fill_zero();
2026        u2.rb_mut()
2027            .diagonal_mut()
2028            .column_vector_mut()
2029            .fill(E::faer_one());
2030
2031        // Near-the-diagonal bulge chase
2032        // The calculations are initially limited to the window:
2033        // A(i_pos_block-1:i_pos_block+n_block,i_pos_block:i_pos_block+n_block)
2034        // The rest is updated later via level 3 BLAS
2035        let mut istart_m = i_pos_block;
2036        let mut istop_m = i_pos_block + n_block;
2037
2038        for i_pos_last in i_pos_block + n_shifts - 2..i_pos_block + n_shifts - 2 + n_pos {
2039            for i_bulge in 0..n_bulges {
2040                let i_pos = i_pos_last - 2 * i_bulge;
2041                let mut v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
2042
2043                // Chase bulge down
2044                let mut h = a.rb_mut().submatrix_mut(i_pos - 1, i_pos - 1, 4, 4);
2045                let s1 = s.read(s.nrows() - 1 - 2 * i_bulge, 0);
2046                let s2 = s.read(s.nrows() - 1 - 2 * i_bulge - 1, 0);
2047                move_bulge(h.rb_mut(), v.rb_mut(), s1, s2, epsilon);
2048
2049                // Apply the reflector we just calculated from the right
2050                // We leave the last row for later (it interferes with the
2051                // optimally packed bulges)
2052
2053                let v0 = v.read(0, 0).faer_real();
2054                let v1 = v.read(1, 0);
2055                let v2 = v.read(2, 0);
2056
2057                for j in istart_m..i_pos + 3 {
2058                    let sum = a
2059                        .read(j, i_pos)
2060                        .faer_add(v1.faer_mul(a.read(j, i_pos + 1)))
2061                        .faer_add(v2.faer_mul(a.read(j, i_pos + 2)));
2062                    a.write(j, i_pos, a.read(j, i_pos).faer_sub(sum.faer_scale_real(v0)));
2063                    a.write(
2064                        j,
2065                        i_pos + 1,
2066                        a.read(j, i_pos + 1)
2067                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1.faer_conj())),
2068                    );
2069                    a.write(
2070                        j,
2071                        i_pos + 2,
2072                        a.read(j, i_pos + 2)
2073                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2.faer_conj())),
2074                    );
2075                }
2076
2077                // Apply the reflector we just calculated from the left
2078                // We only update a single column, the rest is updated later
2079                let sum = a
2080                    .read(i_pos, i_pos)
2081                    .faer_add(v1.faer_conj().faer_mul(a.read(i_pos + 1, i_pos)))
2082                    .faer_add(v2.faer_conj().faer_mul(a.read(i_pos + 2, i_pos)));
2083                a.write(
2084                    i_pos,
2085                    i_pos,
2086                    a.read(i_pos, i_pos).faer_sub(sum.faer_scale_real(v0)),
2087                );
2088                a.write(
2089                    i_pos + 1,
2090                    i_pos,
2091                    a.read(i_pos + 1, i_pos)
2092                        .faer_sub(sum.faer_scale_real(v0).faer_mul(v1)),
2093                );
2094                a.write(
2095                    i_pos + 2,
2096                    i_pos,
2097                    a.read(i_pos + 2, i_pos)
2098                        .faer_sub(sum.faer_scale_real(v0).faer_mul(v2)),
2099                );
2100
2101                // Test for deflation.
2102                if (i_pos > ilo) && (a.read(i_pos, i_pos - 1) != E::faer_zero()) {
2103                    let mut tst1 =
2104                        abs1(a.read(i_pos - 1, i_pos - 1)).faer_add(abs1(a.read(i_pos, i_pos)));
2105                    if tst1 == E::Real::faer_zero() {
2106                        if i_pos > ilo + 1 {
2107                            tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 2)));
2108                        }
2109                        if i_pos > ilo + 2 {
2110                            tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 3)));
2111                        }
2112                        if i_pos > ilo + 3 {
2113                            tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 4)));
2114                        }
2115                        if i_pos < ihi - 1 {
2116                            tst1 = tst1.faer_add(abs1(a.read(i_pos + 1, i_pos)));
2117                        }
2118                        if i_pos < ihi - 2 {
2119                            tst1 = tst1.faer_add(abs1(a.read(i_pos + 2, i_pos)));
2120                        }
2121                        if i_pos < ihi - 3 {
2122                            tst1 = tst1.faer_add(abs1(a.read(i_pos + 3, i_pos)));
2123                        }
2124                    }
2125                    if abs1(a.read(i_pos, i_pos - 1)) < max(small_num, eps.faer_mul(tst1)) {
2126                        let ab = max(
2127                            abs1(a.read(i_pos, i_pos - 1)),
2128                            abs1(a.read(i_pos - 1, i_pos)),
2129                        );
2130                        let ba = min(
2131                            abs1(a.read(i_pos, i_pos - 1)),
2132                            abs1(a.read(i_pos - 1, i_pos)),
2133                        );
2134                        let aa = max(
2135                            abs1(a.read(i_pos, i_pos)),
2136                            abs1(a.read(i_pos, i_pos).faer_sub(a.read(i_pos - 1, i_pos - 1))),
2137                        );
2138                        let bb = min(
2139                            abs1(a.read(i_pos, i_pos)),
2140                            abs1(a.read(i_pos, i_pos).faer_sub(a.read(i_pos - 1, i_pos - 1))),
2141                        );
2142                        let s = aa.faer_add(ab);
2143                        if ba.faer_mul(ab.faer_div(s))
2144                            <= max(small_num, eps.faer_mul(bb.faer_mul(aa.faer_div(s))))
2145                        {
2146                            a.write(i_pos, i_pos - 1, E::faer_zero());
2147                        }
2148                    }
2149                }
2150            }
2151
2152            // Delayed update from the left
2153            for i_bulge in 0..n_bulges {
2154                let i_pos = i_pos_last - 2 * i_bulge;
2155                let v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
2156
2157                let v0 = v.read(0, 0).faer_real();
2158                let v1 = v.read(1, 0);
2159                let v2 = v.read(2, 0);
2160
2161                for j in i_pos + 1..istop_m {
2162                    let sum = a
2163                        .read(i_pos, j)
2164                        .faer_add(v1.faer_conj().faer_mul(a.read(i_pos + 1, j)))
2165                        .faer_add(v2.faer_conj().faer_mul(a.read(i_pos + 2, j)));
2166                    a.write(i_pos, j, a.read(i_pos, j).faer_sub(sum.faer_scale_real(v0)));
2167                    a.write(
2168                        i_pos + 1,
2169                        j,
2170                        a.read(i_pos + 1, j)
2171                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1)),
2172                    );
2173                    a.write(
2174                        i_pos + 2,
2175                        j,
2176                        a.read(i_pos + 2, j)
2177                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2)),
2178                    );
2179                }
2180            }
2181
2182            // Accumulate the reflectors into U
2183            for i_bulge in 0..n_bulges {
2184                let i_pos = i_pos_last - 2 * i_bulge;
2185                let v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
2186
2187                let v0 = v.read(0, 0).faer_real();
2188                let v1 = v.read(1, 0);
2189                let v2 = v.read(2, 0);
2190
2191                let i1 = (i_pos - i_pos_block) - (i_pos_last + 2 - i_pos_block - n_shifts);
2192                let i2 = Ord::min(
2193                    u2.nrows(),
2194                    (i_pos_last - i_pos_block) + (i_pos_last + 2 - i_pos_block - n_shifts) + 3,
2195                );
2196
2197                for j in i1..i2 {
2198                    let sum = u2
2199                        .read(j, i_pos - i_pos_block)
2200                        .faer_add(v1.faer_mul(u2.read(j, i_pos - i_pos_block + 1)))
2201                        .faer_add(v2.faer_mul(u2.read(j, i_pos - i_pos_block + 2)));
2202
2203                    u2.write(
2204                        j,
2205                        i_pos - i_pos_block,
2206                        u2.read(j, i_pos - i_pos_block)
2207                            .faer_sub(sum.faer_scale_real(v0)),
2208                    );
2209                    u2.write(
2210                        j,
2211                        i_pos - i_pos_block + 1,
2212                        u2.read(j, i_pos - i_pos_block + 1)
2213                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1.faer_conj())),
2214                    );
2215                    u2.write(
2216                        j,
2217                        i_pos - i_pos_block + 2,
2218                        u2.read(j, i_pos - i_pos_block + 2)
2219                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2.faer_conj())),
2220                    );
2221                }
2222            }
2223        }
2224
2225        // Update rest of the matrix
2226        if want_t {
2227            istart_m = 0;
2228            istop_m = n;
2229        } else {
2230            istart_m = ilo;
2231            istop_m = ihi;
2232        }
2233
2234        // Horizontal multiply
2235        if i_pos_block + n_block < istop_m {
2236            let mut i = i_pos_block + n_block;
2237            while i < istop_m {
2238                let iblock = Ord::min(istop_m - i, wh.ncols());
2239                let mut a_slice = a.rb_mut().submatrix_mut(i_pos_block, i, n_block, iblock);
2240                let mut wh_slice =
2241                    wh.rb_mut()
2242                        .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
2243                matmul(
2244                    wh_slice.rb_mut(),
2245                    u2.rb().adjoint(),
2246                    a_slice.rb(),
2247                    None,
2248                    E::faer_one(),
2249                    parallelism,
2250                );
2251                a_slice.copy_from(wh_slice.rb());
2252                i += iblock;
2253            }
2254        }
2255
2256        // Vertical multiply
2257        if istart_m < i_pos_block {
2258            let mut i = istart_m;
2259            while i < i_pos_block {
2260                let iblock = Ord::min(i_pos_block - i, wv.nrows());
2261                let mut a_slice = a.rb_mut().submatrix_mut(i, i_pos_block, iblock, n_block);
2262                let mut wv_slice =
2263                    wv.rb_mut()
2264                        .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
2265                matmul(
2266                    wv_slice.rb_mut(),
2267                    a_slice.rb(),
2268                    u2.rb(),
2269                    None,
2270                    E::faer_one(),
2271                    parallelism,
2272                );
2273                a_slice.copy_from(wv_slice.rb());
2274                i += iblock;
2275            }
2276        }
2277        // Update Z (also a vertical multiplication)
2278        if let Some(mut z) = z.rb_mut() {
2279            let mut i = 0;
2280            while i < n {
2281                let iblock = Ord::min(n - i, wv.nrows());
2282                let mut z_slice = z.rb_mut().submatrix_mut(i, i_pos_block, iblock, n_block);
2283                let mut wv_slice =
2284                    wv.rb_mut()
2285                        .submatrix_mut(0, 0, z_slice.nrows(), z_slice.ncols());
2286                matmul(
2287                    wv_slice.rb_mut(),
2288                    z_slice.rb(),
2289                    u2.rb(),
2290                    None,
2291                    E::faer_one(),
2292                    parallelism,
2293                );
2294                z_slice.copy_from(wv_slice.rb());
2295                i += iblock;
2296            }
2297        }
2298
2299        i_pos_block += n_pos;
2300    }
2301
2302    //
2303    // The following code removes the bulges from the matrix
2304    //
2305    {
2306        let n_block = ihi - i_pos_block;
2307
2308        let mut u2 = u.rb_mut().submatrix_mut(0, 0, n_block, n_block);
2309        u2.fill_zero();
2310        u2.rb_mut()
2311            .diagonal_mut()
2312            .column_vector_mut()
2313            .fill(E::faer_one());
2314
2315        // Near-the-diagonal bulge chase
2316        // The calculations are initially limited to the window:
2317        // A(i_pos_block-1:ihi,i_pos_block:ihi) The rest is updated later via
2318        // level 3 BLAS
2319        let mut istart_m = i_pos_block;
2320        let mut istop_m = ihi;
2321
2322        for i_pos_last in i_pos_block + n_shifts - 2..ihi + n_shifts - 1 {
2323            let mut i_bulge_start = if i_pos_last + 3 > ihi {
2324                (i_pos_last + 3 - ihi) / 2
2325            } else {
2326                0
2327            };
2328
2329            for i_bulge in i_bulge_start..n_bulges {
2330                let i_pos = i_pos_last - 2 * i_bulge;
2331                if i_pos == ihi - 2 {
2332                    // Special case, the bulge is at the bottom, needs a smaller
2333                    // reflector (order 2)
2334                    let mut v = v.rb_mut().subrows_mut(0, 2).col_mut(i_bulge).as_2d_mut();
2335                    let mut h = a
2336                        .rb_mut()
2337                        .subrows_mut(i_pos, 2)
2338                        .col_mut(i_pos - 1)
2339                        .as_2d_mut();
2340                    let head = h.read(0, 0);
2341                    let tail = h.rb_mut().subrows_mut(1, 1);
2342                    let tail_norm = tail.rb().norm_l2();
2343                    let (tau, beta) = make_householder_in_place_v2(Some(tail), head, tail_norm);
2344                    v.write(0, 0, tau.faer_inv());
2345                    v.write(1, 0, h.read(1, 0));
2346                    h.write(0, 0, beta);
2347                    h.write(1, 0, E::faer_zero());
2348
2349                    let t0 = v.read(0, 0).faer_conj();
2350                    let v1 = v.read(1, 0);
2351                    let t1 = t0.faer_mul(v1);
2352                    // Apply the reflector we just calculated from the right
2353                    for j in istart_m..i_pos + 2 {
2354                        let sum = a.read(j, i_pos).faer_add(v1.faer_mul(a.read(j, i_pos + 1)));
2355                        a.write(
2356                            j,
2357                            i_pos,
2358                            a.read(j, i_pos).faer_sub(sum.faer_mul(t0.faer_conj())),
2359                        );
2360                        a.write(
2361                            j,
2362                            i_pos + 1,
2363                            a.read(j, i_pos + 1).faer_sub(sum.faer_mul(t1.faer_conj())),
2364                        );
2365                    }
2366                    // Apply the reflector we just calculated from the left
2367                    for j in i_pos..istop_m {
2368                        let sum = a
2369                            .read(i_pos, j)
2370                            .faer_add(v1.faer_conj().faer_mul(a.read(i_pos + 1, j)));
2371                        a.write(i_pos, j, a.read(i_pos, j).faer_sub(sum.faer_mul(t0)));
2372                        a.write(
2373                            i_pos + 1,
2374                            j,
2375                            a.read(i_pos + 1, j).faer_sub(sum.faer_mul(t1)),
2376                        );
2377                    }
2378                    // Accumulate the reflector into U
2379                    // The loop bounds should be changed to reflect the fact
2380                    // that U2 starts off as diagonal
2381                    for j in 0..u2.nrows() {
2382                        let sum = u2
2383                            .read(j, i_pos - i_pos_block)
2384                            .faer_add(v1.faer_mul(u2.read(j, i_pos - i_pos_block + 1)));
2385                        u2.write(
2386                            j,
2387                            i_pos - i_pos_block,
2388                            u2.read(j, i_pos - i_pos_block)
2389                                .faer_sub(sum.faer_mul(t0.faer_conj())),
2390                        );
2391                        u2.write(
2392                            j,
2393                            i_pos - i_pos_block + 1,
2394                            u2.read(j, i_pos - i_pos_block + 1)
2395                                .faer_sub(sum.faer_mul(t1.faer_conj())),
2396                        );
2397                    }
2398                } else {
2399                    let mut v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
2400                    let mut h = a.rb_mut().submatrix_mut(i_pos - 1, i_pos - 1, 4, 4);
2401                    let s1 = s.read(s.nrows() - 1 - 2 * i_bulge, 0);
2402                    let s2 = s.read(s.nrows() - 1 - 2 * i_bulge - 1, 0);
2403                    move_bulge(h.rb_mut(), v.rb_mut(), s1, s2, epsilon);
2404
2405                    {
2406                        let t0 = v.read(0, 0).faer_conj();
2407                        let v1 = v.read(1, 0);
2408                        let t1 = t0.faer_mul(v1);
2409                        let v2 = v.read(2, 0);
2410                        let t2 = t0.faer_mul(v2);
2411                        // Apply the reflector we just calculated from the right
2412                        // (but leave the last row for later)
2413                        for j in istart_m..i_pos + 3 {
2414                            let sum = a
2415                                .read(j, i_pos)
2416                                .faer_add(v1.faer_mul(a.read(j, i_pos + 1)))
2417                                .faer_add(v2.faer_mul(a.read(j, i_pos + 2)));
2418                            a.write(
2419                                j,
2420                                i_pos,
2421                                a.read(j, i_pos).faer_sub(sum.faer_mul(t0.faer_conj())),
2422                            );
2423                            a.write(
2424                                j,
2425                                i_pos + 1,
2426                                a.read(j, i_pos + 1).faer_sub(sum.faer_mul(t1.faer_conj())),
2427                            );
2428                            a.write(
2429                                j,
2430                                i_pos + 2,
2431                                a.read(j, i_pos + 2).faer_sub(sum.faer_mul(t2.faer_conj())),
2432                            );
2433                        }
2434                    }
2435
2436                    let v0 = v.read(0, 0).faer_real();
2437                    let v1 = v.read(1, 0);
2438                    let v2 = v.read(2, 0);
2439                    // Apply the reflector we just calculated from the left
2440                    // We only update a single column, the rest is updated later
2441                    let sum = a
2442                        .read(i_pos, i_pos)
2443                        .faer_add(v1.faer_conj().faer_mul(a.read(i_pos + 1, i_pos)))
2444                        .faer_add(v2.faer_conj().faer_mul(a.read(i_pos + 2, i_pos)));
2445                    a.write(
2446                        i_pos,
2447                        i_pos,
2448                        a.read(i_pos, i_pos).faer_sub(sum.faer_scale_real(v0)),
2449                    );
2450                    a.write(
2451                        i_pos + 1,
2452                        i_pos,
2453                        a.read(i_pos + 1, i_pos)
2454                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1)),
2455                    );
2456                    a.write(
2457                        i_pos + 2,
2458                        i_pos,
2459                        a.read(i_pos + 2, i_pos)
2460                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2)),
2461                    );
2462
2463                    // Test for deflation.
2464                    if (i_pos > ilo) && (a.read(i_pos, i_pos - 1) != E::faer_zero()) {
2465                        let mut tst1 =
2466                            abs1(a.read(i_pos - 1, i_pos - 1)).faer_add(abs1(a.read(i_pos, i_pos)));
2467                        if tst1 == E::Real::faer_zero() {
2468                            if i_pos > ilo + 1 {
2469                                tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 2)));
2470                            }
2471                            if i_pos > ilo + 2 {
2472                                tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 3)));
2473                            }
2474                            if i_pos > ilo + 3 {
2475                                tst1 = tst1.faer_add(abs1(a.read(i_pos - 1, i_pos - 4)));
2476                            }
2477                            if i_pos < ihi - 1 {
2478                                tst1 = tst1.faer_add(abs1(a.read(i_pos + 1, i_pos)));
2479                            }
2480                            if i_pos < ihi - 2 {
2481                                tst1 = tst1.faer_add(abs1(a.read(i_pos + 2, i_pos)));
2482                            }
2483                            if i_pos < ihi - 3 {
2484                                tst1 = tst1.faer_add(abs1(a.read(i_pos + 3, i_pos)));
2485                            }
2486                        }
2487                        if abs1(a.read(i_pos, i_pos - 1)) < max(small_num, eps.faer_mul(tst1)) {
2488                            let ab = max(
2489                                abs1(a.read(i_pos, i_pos - 1)),
2490                                abs1(a.read(i_pos - 1, i_pos)),
2491                            );
2492                            let ba = min(
2493                                abs1(a.read(i_pos, i_pos - 1)),
2494                                abs1(a.read(i_pos - 1, i_pos)),
2495                            );
2496                            let aa = max(
2497                                abs1(a.read(i_pos, i_pos)),
2498                                abs1(a.read(i_pos, i_pos).faer_sub(a.read(i_pos - 1, i_pos - 1))),
2499                            );
2500                            let bb = min(
2501                                abs1(a.read(i_pos, i_pos)),
2502                                abs1(a.read(i_pos, i_pos).faer_sub(a.read(i_pos - 1, i_pos - 1))),
2503                            );
2504                            let s = aa.faer_add(ab);
2505                            if ba.faer_mul(ab.faer_div(s))
2506                                <= max(small_num, eps.faer_mul(bb.faer_mul(aa.faer_div(s))))
2507                            {
2508                                a.write(i_pos, i_pos - 1, E::faer_zero());
2509                            }
2510                        }
2511                    }
2512                }
2513            }
2514
2515            i_bulge_start = if i_pos_last + 4 > ihi {
2516                (i_pos_last + 4 - ihi) / 2
2517            } else {
2518                0
2519            };
2520
2521            // Delayed update from the left
2522            for i_bulge in i_bulge_start..n_bulges {
2523                let i_pos = i_pos_last - 2 * i_bulge;
2524                let v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
2525
2526                let v0 = v.read(0, 0).faer_real();
2527                let v1 = v.read(1, 0);
2528                let v2 = v.read(2, 0);
2529
2530                for j in i_pos + 1..istop_m {
2531                    let sum = a
2532                        .read(i_pos, j)
2533                        .faer_add(v1.faer_conj().faer_mul(a.read(i_pos + 1, j)))
2534                        .faer_add(v2.faer_conj().faer_mul(a.read(i_pos + 2, j)));
2535                    a.write(i_pos, j, a.read(i_pos, j).faer_sub(sum.faer_scale_real(v0)));
2536                    a.write(
2537                        i_pos + 1,
2538                        j,
2539                        a.read(i_pos + 1, j)
2540                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1)),
2541                    );
2542                    a.write(
2543                        i_pos + 2,
2544                        j,
2545                        a.read(i_pos + 2, j)
2546                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2)),
2547                    );
2548                }
2549            }
2550
2551            // Accumulate the reflectors into U
2552            for i_bulge in i_bulge_start..n_bulges {
2553                let i_pos = i_pos_last - 2 * i_bulge;
2554                let v = v.rb_mut().col_mut(i_bulge).as_2d_mut();
2555
2556                let v0 = v.read(0, 0).faer_real();
2557                let v1 = v.read(1, 0);
2558                let v2 = v.read(2, 0);
2559
2560                let i1 = (i_pos - i_pos_block) - (i_pos_last + 2 - i_pos_block - n_shifts);
2561                let i2 = Ord::min(
2562                    u2.nrows(),
2563                    (i_pos_last - i_pos_block) + (i_pos_last + 2 - i_pos_block - n_shifts) + 3,
2564                );
2565
2566                for j in i1..i2 {
2567                    let sum = u2
2568                        .read(j, i_pos - i_pos_block)
2569                        .faer_add(v1.faer_mul(u2.read(j, i_pos - i_pos_block + 1)))
2570                        .faer_add(v2.faer_mul(u2.read(j, i_pos - i_pos_block + 2)));
2571
2572                    u2.write(
2573                        j,
2574                        i_pos - i_pos_block,
2575                        u2.read(j, i_pos - i_pos_block)
2576                            .faer_sub(sum.faer_scale_real(v0)),
2577                    );
2578                    u2.write(
2579                        j,
2580                        i_pos - i_pos_block + 1,
2581                        u2.read(j, i_pos - i_pos_block + 1)
2582                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v1.faer_conj())),
2583                    );
2584                    u2.write(
2585                        j,
2586                        i_pos - i_pos_block + 2,
2587                        u2.read(j, i_pos - i_pos_block + 2)
2588                            .faer_sub(sum.faer_scale_real(v0).faer_mul(v2.faer_conj())),
2589                    );
2590                }
2591            }
2592        }
2593
2594        // Update rest of the matrix
2595        if want_t {
2596            istart_m = 0;
2597            istop_m = n;
2598        } else {
2599            istart_m = ilo;
2600            istop_m = ihi;
2601        }
2602
2603        debug_assert!(i_pos_block + n_block == ihi);
2604
2605        // Horizontal multiply
2606        if ihi < istop_m {
2607            let mut i = ihi;
2608            while i < istop_m {
2609                let iblock = Ord::min(istop_m - i, wh.ncols());
2610                let mut a_slice = a.rb_mut().submatrix_mut(i_pos_block, i, n_block, iblock);
2611                let mut wh_slice =
2612                    wh.rb_mut()
2613                        .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
2614                matmul(
2615                    wh_slice.rb_mut(),
2616                    u2.rb().adjoint(),
2617                    a_slice.rb(),
2618                    None,
2619                    E::faer_one(),
2620                    parallelism,
2621                );
2622                a_slice.copy_from(wh_slice.rb());
2623                i += iblock;
2624            }
2625        }
2626
2627        // Vertical multiply
2628        if istart_m < i_pos_block {
2629            let mut i = istart_m;
2630            while i < i_pos_block {
2631                let iblock = Ord::min(i_pos_block - i, wv.nrows());
2632                let mut a_slice = a.rb_mut().submatrix_mut(i, i_pos_block, iblock, n_block);
2633                let mut wv_slice =
2634                    wv.rb_mut()
2635                        .submatrix_mut(0, 0, a_slice.nrows(), a_slice.ncols());
2636                matmul(
2637                    wv_slice.rb_mut(),
2638                    a_slice.rb(),
2639                    u2.rb(),
2640                    None,
2641                    E::faer_one(),
2642                    parallelism,
2643                );
2644                a_slice.copy_from(wv_slice.rb());
2645                i += iblock;
2646            }
2647        }
2648        // Update Z (also a vertical multiplication)
2649        if let Some(mut z) = z.rb_mut() {
2650            let mut i = 0;
2651            while i < n {
2652                let iblock = Ord::min(n - i, wv.nrows());
2653                let mut z_slice = z.rb_mut().submatrix_mut(i, i_pos_block, iblock, n_block);
2654                let mut wv_slice =
2655                    wv.rb_mut()
2656                        .submatrix_mut(0, 0, z_slice.nrows(), z_slice.ncols());
2657                matmul(
2658                    wv_slice.rb_mut(),
2659                    z_slice.rb(),
2660                    u2.rb(),
2661                    None,
2662                    E::faer_one(),
2663                    parallelism,
2664                );
2665                z_slice.copy_from(wv_slice.rb());
2666                i += iblock;
2667            }
2668        }
2669    }
2670}
2671
2672#[cfg(test)]
2673mod tests {
2674    use super::*;
2675    use assert_approx_eq::assert_approx_eq;
2676    use faer_core::{assert, c64, mat, Mat};
2677
2678    macro_rules! make_stack {
2679        ($req: expr $(,)?) => {
2680            ::dyn_stack::PodStack::new(&mut ::dyn_stack::GlobalPodBuffer::new($req.unwrap()))
2681        };
2682    }
2683
2684    #[test]
2685    fn test_3() {
2686        let n = 3;
2687        let h = mat![
2688            [
2689                c64::new(0.997386, 0.677592),
2690                c64::new(0.646064, 0.936948),
2691                c64::new(0.090948, 0.674011),
2692            ],
2693            [
2694                c64::new(0.212396, 0.976794),
2695                c64::new(0.460270, 0.926436),
2696                c64::new(0.494441, 0.888187),
2697            ],
2698            [
2699                c64::new(0.000000, 0.000000),
2700                c64::new(0.616652, 0.840012),
2701                c64::new(0.768245, 0.349193),
2702            ],
2703        ];
2704
2705        let mut q = Mat::from_fn(n, n, |i, j| {
2706            if i == j {
2707                c64::faer_one()
2708            } else {
2709                c64::faer_zero()
2710            }
2711        });
2712        let mut w = Mat::zeros(n, 1);
2713        let mut t = h.clone();
2714        lahqr(
2715            true,
2716            t.as_mut(),
2717            Some(q.as_mut()),
2718            w.as_mut(),
2719            0,
2720            n,
2721            f64::EPSILON,
2722            f64::MIN_POSITIVE,
2723        );
2724
2725        let h_reconstructed = &q * &t * q.adjoint();
2726
2727        for i in 0..n {
2728            for j in 0..n {
2729                assert_approx_eq!(h_reconstructed.read(i, j), h.read(i, j));
2730            }
2731        }
2732    }
2733
2734    #[test]
2735    fn test_n() {
2736        for n in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 32, 128] {
2737            for _ in 0..10 {
2738                let mut h = Mat::<c64>::zeros(n, n);
2739                for j in 0..n {
2740                    for i in 0..n {
2741                        if i <= j + 1 {
2742                            h.write(i, j, c64::new(rand::random(), rand::random()));
2743                        }
2744                    }
2745                }
2746
2747                let mut q = Mat::from_fn(n, n, |i, j| {
2748                    if i == j {
2749                        c64::faer_one()
2750                    } else {
2751                        c64::faer_zero()
2752                    }
2753                });
2754
2755                let mut w = Mat::zeros(n, 1);
2756
2757                let mut t = h.clone();
2758                lahqr(
2759                    true,
2760                    t.as_mut(),
2761                    Some(q.as_mut()),
2762                    w.as_mut(),
2763                    0,
2764                    n,
2765                    f64::EPSILON,
2766                    f64::MIN_POSITIVE,
2767                );
2768                dbgf::dbgf!("6.6?", &t, &h);
2769
2770                let h_reconstructed = &q * &t * q.adjoint();
2771
2772                for i in 0..n {
2773                    for j in 0..n {
2774                        assert_approx_eq!(h_reconstructed.read(i, j), h.read(i, j));
2775                    }
2776                }
2777            }
2778        }
2779    }
2780
2781    #[test]
2782    fn test_multi_n() {
2783        for n in [
2784            1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 32, 63, 64, 65, 128, 256,
2785        ] {
2786            for _ in 0..10 {
2787                let mut h = Mat::<c64>::zeros(n, n);
2788                for j in 0..n {
2789                    for i in 0..n {
2790                        if i <= j + 1 {
2791                            h.write(i, j, c64::new(rand::random(), rand::random()));
2792                        }
2793                    }
2794                }
2795
2796                let mut q = Mat::from_fn(n, n, |i, j| {
2797                    if i == j {
2798                        c64::faer_one()
2799                    } else {
2800                        c64::faer_zero()
2801                    }
2802                });
2803
2804                let mut w = Mat::zeros(n, 1);
2805
2806                let mut t = h.clone();
2807                let params = EvdParams {
2808                    recommended_shift_count: None,
2809                    recommended_deflation_window: None,
2810                    blocking_threshold: Some(15),
2811                    nibble_threshold: Some(14),
2812                };
2813                multishift_qr(
2814                    true,
2815                    t.as_mut(),
2816                    Some(q.as_mut()),
2817                    w.as_mut(),
2818                    0,
2819                    n,
2820                    f64::EPSILON,
2821                    f64::MIN_POSITIVE,
2822                    Parallelism::None,
2823                    make_stack!(multishift_qr_req::<c64>(
2824                        n,
2825                        n,
2826                        true,
2827                        true,
2828                        Parallelism::None,
2829                        params,
2830                    )),
2831                    params,
2832                );
2833                for j in 0..n {
2834                    for i in j + 1..n {
2835                        t.write(i, j, c64::faer_zero());
2836                    }
2837                }
2838                dbgf::dbgf!("6.6?", &t, &h);
2839
2840                let h_reconstructed = &q * &t * q.adjoint();
2841
2842                for i in 0..n {
2843                    for j in 0..n {
2844                        assert_approx_eq!(h_reconstructed.read(i, j), h.read(i, j));
2845                    }
2846                }
2847            }
2848        }
2849    }
2850
2851    #[test]
2852    fn test_multi_100() {
2853        let n = 100;
2854
2855        let h = [
2856            [
2857                c64::new(0.247362, 0.915457),
2858                c64::new(0.729822, 0.217719),
2859                c64::new(0.557421, 0.288464),
2860                c64::new(0.328797, 0.239523),
2861                c64::new(0.777550, 0.831544),
2862                c64::new(0.987836, 0.172338),
2863                c64::new(0.398255, 0.340496),
2864                c64::new(0.895207, 0.209341),
2865                c64::new(0.514276, 0.133539),
2866                c64::new(0.112494, 0.772690),
2867                c64::new(0.794636, 0.624804),
2868                c64::new(0.764424, 0.189969),
2869                c64::new(0.448585, 0.845465),
2870                c64::new(0.648511, 0.998682),
2871                c64::new(0.761988, 0.891177),
2872                c64::new(0.248977, 0.098031),
2873                c64::new(0.251652, 0.303864),
2874                c64::new(0.341391, 0.737074),
2875                c64::new(0.724391, 0.632790),
2876                c64::new(0.644896, 0.231057),
2877                c64::new(0.824051, 0.613854),
2878                c64::new(0.716392, 0.677729),
2879                c64::new(0.098836, 0.500676),
2880                c64::new(0.011666, 0.426799),
2881                c64::new(0.879832, 0.626437),
2882                c64::new(0.898294, 0.204360),
2883                c64::new(0.305867, 0.437079),
2884                c64::new(0.335694, 0.013785),
2885                c64::new(0.963588, 0.221925),
2886                c64::new(0.572279, 0.201790),
2887                c64::new(0.157022, 0.485770),
2888                c64::new(0.002149, 0.028072),
2889                c64::new(0.464055, 0.223266),
2890                c64::new(0.483257, 0.789599),
2891                c64::new(0.443072, 0.964070),
2892                c64::new(0.231826, 0.472352),
2893                c64::new(0.059165, 0.681934),
2894                c64::new(0.295935, 0.702026),
2895                c64::new(0.049729, 0.483953),
2896                c64::new(0.442269, 0.661843),
2897                c64::new(0.774934, 0.140070),
2898                c64::new(0.102210, 0.834111),
2899                c64::new(0.326798, 0.629013),
2900                c64::new(0.724024, 0.877097),
2901                c64::new(0.631407, 0.953489),
2902                c64::new(0.108545, 0.371405),
2903                c64::new(0.937458, 0.968946),
2904                c64::new(0.160439, 0.886438),
2905                c64::new(0.347411, 0.151744),
2906                c64::new(0.108679, 0.783657),
2907                c64::new(0.862349, 0.605088),
2908                c64::new(0.071644, 0.888313),
2909                c64::new(0.167642, 0.853602),
2910                c64::new(0.971924, 0.432988),
2911                c64::new(0.265114, 0.244212),
2912                c64::new(0.165003, 0.412567),
2913                c64::new(0.930197, 0.307039),
2914                c64::new(0.013761, 0.187137),
2915                c64::new(0.439960, 0.553093),
2916                c64::new(0.909387, 0.800205),
2917                c64::new(0.301502, 0.869243),
2918                c64::new(0.347811, 0.384708),
2919                c64::new(0.941104, 0.925138),
2920                c64::new(0.576176, 0.184279),
2921                c64::new(0.568036, 0.388525),
2922                c64::new(0.566769, 0.536556),
2923                c64::new(0.058159, 0.243945),
2924                c64::new(0.221479, 0.495539),
2925                c64::new(0.111847, 0.004560),
2926                c64::new(0.781100, 0.170008),
2927                c64::new(0.039433, 0.479257),
2928                c64::new(0.850582, 0.896525),
2929                c64::new(0.219405, 0.923765),
2930                c64::new(0.725664, 0.321608),
2931                c64::new(0.252339, 0.069854),
2932                c64::new(0.674924, 0.327177),
2933                c64::new(0.735469, 0.565386),
2934                c64::new(0.568203, 0.177555),
2935                c64::new(0.842474, 0.661287),
2936                c64::new(0.060288, 0.816681),
2937                c64::new(0.255325, 0.462335),
2938                c64::new(0.856666, 0.234204),
2939                c64::new(0.157914, 0.342594),
2940                c64::new(0.191756, 0.858922),
2941                c64::new(0.761656, 0.116901),
2942                c64::new(0.199292, 0.477377),
2943                c64::new(0.435394, 0.823778),
2944                c64::new(0.363253, 0.843141),
2945                c64::new(0.618471, 0.196208),
2946                c64::new(0.571452, 0.087156),
2947                c64::new(0.967526, 0.131176),
2948                c64::new(0.053565, 0.173195),
2949                c64::new(0.514817, 0.215551),
2950                c64::new(0.197349, 0.887501),
2951                c64::new(0.678657, 0.991695),
2952                c64::new(0.081140, 0.604964),
2953                c64::new(0.675069, 0.545161),
2954                c64::new(0.322368, 0.150800),
2955                c64::new(0.272257, 0.873348),
2956                c64::new(0.735019, 0.653493),
2957            ],
2958            [
2959                c64::new(0.315191, 0.478662),
2960                c64::new(0.833807, 0.697483),
2961                c64::new(0.310534, 0.396302),
2962                c64::new(0.839271, 0.949712),
2963                c64::new(0.325344, 0.235542),
2964                c64::new(0.693700, 0.247816),
2965                c64::new(0.759020, 0.118982),
2966                c64::new(0.160333, 0.765951),
2967                c64::new(0.631740, 0.843597),
2968                c64::new(0.554191, 0.633453),
2969                c64::new(0.742897, 0.788577),
2970                c64::new(0.840315, 0.054435),
2971                c64::new(0.089497, 0.589866),
2972                c64::new(0.563293, 0.695071),
2973                c64::new(0.916185, 0.138849),
2974                c64::new(0.067603, 0.481400),
2975                c64::new(0.906483, 0.980935),
2976                c64::new(0.715502, 0.313255),
2977                c64::new(0.738656, 0.268801),
2978                c64::new(0.839109, 0.956635),
2979                c64::new(0.690422, 0.335274),
2980                c64::new(0.488201, 0.501880),
2981                c64::new(0.328307, 0.260638),
2982                c64::new(0.291425, 0.432487),
2983                c64::new(0.638943, 0.328813),
2984                c64::new(0.984401, 0.711157),
2985                c64::new(0.806059, 0.405321),
2986                c64::new(0.599686, 0.547603),
2987                c64::new(0.381971, 0.484660),
2988                c64::new(0.992921, 0.606005),
2989                c64::new(0.961329, 0.893073),
2990                c64::new(0.694046, 0.744479),
2991                c64::new(0.517949, 0.141120),
2992                c64::new(0.666088, 0.116443),
2993                c64::new(0.590009, 0.707290),
2994                c64::new(0.397481, 0.500323),
2995                c64::new(0.027404, 0.757967),
2996                c64::new(0.624940, 0.042651),
2997                c64::new(0.632875, 0.116292),
2998                c64::new(0.224254, 0.776686),
2999                c64::new(0.910262, 0.616570),
3000                c64::new(0.277812, 0.737948),
3001                c64::new(0.057866, 0.784957),
3002                c64::new(0.152657, 0.911839),
3003                c64::new(0.674222, 0.041607),
3004                c64::new(0.511282, 0.147960),
3005                c64::new(0.494807, 0.331465),
3006                c64::new(0.228156, 0.943136),
3007                c64::new(0.439864, 0.301055),
3008                c64::new(0.272690, 0.238139),
3009                c64::new(0.893550, 0.363394),
3010                c64::new(0.272024, 0.665481),
3011                c64::new(0.051683, 0.055642),
3012                c64::new(0.059980, 0.933988),
3013                c64::new(0.312177, 0.931784),
3014                c64::new(0.692342, 0.669074),
3015                c64::new(0.708301, 0.746008),
3016                c64::new(0.654037, 0.048102),
3017                c64::new(0.805826, 0.440089),
3018                c64::new(0.269123, 0.844255),
3019                c64::new(0.189183, 0.907510),
3020                c64::new(0.422676, 0.220691),
3021                c64::new(0.730443, 0.605872),
3022                c64::new(0.922972, 0.193306),
3023                c64::new(0.932751, 0.640147),
3024                c64::new(0.415496, 0.541532),
3025                c64::new(0.284173, 0.456411),
3026                c64::new(0.112323, 0.847687),
3027                c64::new(0.906880, 0.909230),
3028                c64::new(0.629705, 0.631650),
3029                c64::new(0.022350, 0.197708),
3030                c64::new(0.716942, 0.390986),
3031                c64::new(0.945447, 0.269241),
3032                c64::new(0.745904, 0.211792),
3033                c64::new(0.818865, 0.295856),
3034                c64::new(0.657553, 0.479682),
3035                c64::new(0.824392, 0.485086),
3036                c64::new(0.506792, 0.486432),
3037                c64::new(0.048943, 0.563696),
3038                c64::new(0.917321, 0.741947),
3039                c64::new(0.011085, 0.625994),
3040                c64::new(0.511457, 0.815998),
3041                c64::new(0.618929, 0.165593),
3042                c64::new(0.200062, 0.607617),
3043                c64::new(0.335587, 0.993400),
3044                c64::new(0.088285, 0.474581),
3045                c64::new(0.977839, 0.850574),
3046                c64::new(0.080987, 0.751683),
3047                c64::new(0.488594, 0.731679),
3048                c64::new(0.489062, 0.434918),
3049                c64::new(0.147371, 0.659253),
3050                c64::new(0.585042, 0.742962),
3051                c64::new(0.914979, 0.911878),
3052                c64::new(0.938842, 0.912843),
3053                c64::new(0.685735, 0.695321),
3054                c64::new(0.335607, 0.733544),
3055                c64::new(0.835737, 0.400742),
3056                c64::new(0.250515, 0.714784),
3057                c64::new(0.877781, 0.755097),
3058                c64::new(0.446200, 0.130484),
3059            ],
3060            [
3061                c64::new(0.000000, 0.000000),
3062                c64::new(0.331657, 0.262359),
3063                c64::new(0.244727, 0.638396),
3064                c64::new(0.581313, 0.528013),
3065                c64::new(0.946119, 0.256675),
3066                c64::new(0.555156, 0.078901),
3067                c64::new(0.524032, 0.703333),
3068                c64::new(0.993889, 0.129179),
3069                c64::new(0.237493, 0.327509),
3070                c64::new(0.055600, 0.847578),
3071                c64::new(0.088908, 0.274087),
3072                c64::new(0.149218, 0.359951),
3073                c64::new(0.701262, 0.528096),
3074                c64::new(0.718525, 0.572322),
3075                c64::new(0.990188, 0.336295),
3076                c64::new(0.535049, 0.076191),
3077                c64::new(0.186912, 0.608159),
3078                c64::new(0.977768, 0.997542),
3079                c64::new(0.872098, 0.900481),
3080                c64::new(0.450666, 0.425147),
3081                c64::new(0.621391, 0.445795),
3082                c64::new(0.613905, 0.690011),
3083                c64::new(0.163519, 0.248689),
3084                c64::new(0.205288, 0.506597),
3085                c64::new(0.744933, 0.297656),
3086                c64::new(0.138310, 0.293064),
3087                c64::new(0.874282, 0.170779),
3088                c64::new(0.740816, 0.825517),
3089                c64::new(0.045324, 0.683082),
3090                c64::new(0.339080, 0.033500),
3091                c64::new(0.077581, 0.066504),
3092                c64::new(0.220183, 0.032719),
3093                c64::new(0.163831, 0.811177),
3094                c64::new(0.524874, 0.049641),
3095                c64::new(0.036958, 0.062986),
3096                c64::new(0.568491, 0.884327),
3097                c64::new(0.914892, 0.844849),
3098                c64::new(0.656459, 0.432534),
3099                c64::new(0.981313, 0.996293),
3100                c64::new(0.156926, 0.438136),
3101                c64::new(0.518909, 0.711744),
3102                c64::new(0.812142, 0.201055),
3103                c64::new(0.385009, 0.749246),
3104                c64::new(0.834279, 0.256328),
3105                c64::new(0.378963, 0.761068),
3106                c64::new(0.037043, 0.091670),
3107                c64::new(0.091428, 0.886068),
3108                c64::new(0.321316, 0.060991),
3109                c64::new(0.197774, 0.109478),
3110                c64::new(0.013886, 0.152236),
3111                c64::new(0.733118, 0.678769),
3112                c64::new(0.349739, 0.922512),
3113                c64::new(0.437076, 0.985890),
3114                c64::new(0.789399, 0.863788),
3115                c64::new(0.098481, 0.433876),
3116                c64::new(0.140539, 0.363167),
3117                c64::new(0.624408, 0.333908),
3118                c64::new(0.149382, 0.749237),
3119                c64::new(0.102141, 0.391356),
3120                c64::new(0.870619, 0.233448),
3121                c64::new(0.276125, 0.033807),
3122                c64::new(0.788045, 0.012740),
3123                c64::new(0.140971, 0.337287),
3124                c64::new(0.666063, 0.203683),
3125                c64::new(0.045933, 0.211809),
3126                c64::new(0.034878, 0.716547),
3127                c64::new(0.989171, 0.077564),
3128                c64::new(0.664159, 0.717327),
3129                c64::new(0.285891, 0.286707),
3130                c64::new(0.501182, 0.174097),
3131                c64::new(0.013578, 0.152712),
3132                c64::new(0.973179, 0.909657),
3133                c64::new(0.412261, 0.975651),
3134                c64::new(0.657502, 0.195360),
3135                c64::new(0.080765, 0.520424),
3136                c64::new(0.740716, 0.938439),
3137                c64::new(0.960119, 0.588442),
3138                c64::new(0.037048, 0.442824),
3139                c64::new(0.858198, 0.148410),
3140                c64::new(0.844994, 0.632135),
3141                c64::new(0.189434, 0.551046),
3142                c64::new(0.906756, 0.418544),
3143                c64::new(0.145521, 0.241500),
3144                c64::new(0.896957, 0.102364),
3145                c64::new(0.963494, 0.481932),
3146                c64::new(0.949465, 0.949494),
3147                c64::new(0.698473, 0.304047),
3148                c64::new(0.496960, 0.740081),
3149                c64::new(0.624386, 0.863860),
3150                c64::new(0.186898, 0.679316),
3151                c64::new(0.883993, 0.641905),
3152                c64::new(0.843153, 0.417276),
3153                c64::new(0.011741, 0.892577),
3154                c64::new(0.911255, 0.720138),
3155                c64::new(0.924570, 0.168352),
3156                c64::new(0.742747, 0.637457),
3157                c64::new(0.499916, 0.954243),
3158                c64::new(0.895616, 0.098343),
3159                c64::new(0.204341, 0.314443),
3160                c64::new(0.649155, 0.065885),
3161            ],
3162            [
3163                c64::new(0.000000, 0.000000),
3164                c64::new(0.000000, 0.000000),
3165                c64::new(0.279330, 0.200421),
3166                c64::new(0.656860, 0.846191),
3167                c64::new(0.078371, 0.908207),
3168                c64::new(0.118789, 0.598040),
3169                c64::new(0.886693, 0.984756),
3170                c64::new(0.289293, 0.632213),
3171                c64::new(0.326069, 0.667493),
3172                c64::new(0.243075, 0.405723),
3173                c64::new(0.681192, 0.365090),
3174                c64::new(0.456548, 0.942152),
3175                c64::new(0.117724, 0.254845),
3176                c64::new(0.812516, 0.102193),
3177                c64::new(0.298388, 0.097790),
3178                c64::new(0.109248, 0.641105),
3179                c64::new(0.247543, 0.655247),
3180                c64::new(0.504984, 0.259295),
3181                c64::new(0.256707, 0.472077),
3182                c64::new(0.958231, 0.153130),
3183                c64::new(0.564108, 0.333260),
3184                c64::new(0.112267, 0.546179),
3185                c64::new(0.495952, 0.773444),
3186                c64::new(0.883847, 0.653666),
3187                c64::new(0.873270, 0.196981),
3188                c64::new(0.605119, 0.587676),
3189                c64::new(0.876861, 0.514449),
3190                c64::new(0.155908, 0.881484),
3191                c64::new(0.010313, 0.234397),
3192                c64::new(0.613524, 0.210318),
3193                c64::new(0.030855, 0.530377),
3194                c64::new(0.244104, 0.266909),
3195                c64::new(0.672875, 0.549270),
3196                c64::new(0.967687, 0.385814),
3197                c64::new(0.900165, 0.647687),
3198                c64::new(0.647362, 0.854106),
3199                c64::new(0.990863, 0.388665),
3200                c64::new(0.918010, 0.833200),
3201                c64::new(0.847446, 0.274499),
3202                c64::new(0.505008, 0.219954),
3203                c64::new(0.980723, 0.813352),
3204                c64::new(0.184564, 0.191929),
3205                c64::new(0.915982, 0.669395),
3206                c64::new(0.383139, 0.251168),
3207                c64::new(0.968762, 0.283487),
3208                c64::new(0.136034, 0.468001),
3209                c64::new(0.366363, 0.938617),
3210                c64::new(0.141509, 0.305781),
3211                c64::new(0.138932, 0.223510),
3212                c64::new(0.899131, 0.970246),
3213                c64::new(0.623190, 0.972601),
3214                c64::new(0.349562, 0.841147),
3215                c64::new(0.652153, 0.166931),
3216                c64::new(0.059863, 0.071986),
3217                c64::new(0.352602, 0.831250),
3218                c64::new(0.142682, 0.133041),
3219                c64::new(0.779363, 0.792894),
3220                c64::new(0.939586, 0.146436),
3221                c64::new(0.260930, 0.196435),
3222                c64::new(0.317724, 0.443361),
3223                c64::new(0.494313, 0.275325),
3224                c64::new(0.785212, 0.941097),
3225                c64::new(0.731804, 0.996094),
3226                c64::new(0.288562, 0.574506),
3227                c64::new(0.779104, 0.312999),
3228                c64::new(0.128480, 0.230822),
3229                c64::new(0.783211, 0.157697),
3230                c64::new(0.273168, 0.139638),
3231                c64::new(0.224522, 0.779218),
3232                c64::new(0.173166, 0.909800),
3233                c64::new(0.552759, 0.029199),
3234                c64::new(0.771181, 0.145833),
3235                c64::new(0.027655, 0.256837),
3236                c64::new(0.867614, 0.251680),
3237                c64::new(0.386665, 0.315398),
3238                c64::new(0.360899, 0.573859),
3239                c64::new(0.668708, 0.526350),
3240                c64::new(0.689177, 0.334519),
3241                c64::new(0.025291, 0.307119),
3242                c64::new(0.345042, 0.019471),
3243                c64::new(0.789760, 0.719525),
3244                c64::new(0.793157, 0.421004),
3245                c64::new(0.776176, 0.044362),
3246                c64::new(0.564112, 0.295169),
3247                c64::new(0.516398, 0.071471),
3248                c64::new(0.551167, 0.817572),
3249                c64::new(0.609354, 0.816551),
3250                c64::new(0.608546, 0.325273),
3251                c64::new(0.095880, 0.876590),
3252                c64::new(0.469386, 0.723095),
3253                c64::new(0.807517, 0.460735),
3254                c64::new(0.040890, 0.258258),
3255                c64::new(0.373461, 0.525255),
3256                c64::new(0.803529, 0.278010),
3257                c64::new(0.938321, 0.507100),
3258                c64::new(0.750302, 0.795066),
3259                c64::new(0.383077, 0.660575),
3260                c64::new(0.851240, 0.537057),
3261                c64::new(0.922193, 0.088407),
3262                c64::new(0.132955, 0.896962),
3263            ],
3264            [
3265                c64::new(0.000000, 0.000000),
3266                c64::new(0.000000, 0.000000),
3267                c64::new(0.000000, 0.000000),
3268                c64::new(0.541176, 0.213800),
3269                c64::new(0.055289, 0.866253),
3270                c64::new(0.793814, 0.673114),
3271                c64::new(0.388335, 0.847877),
3272                c64::new(0.467342, 0.668064),
3273                c64::new(0.872978, 0.926393),
3274                c64::new(0.368032, 0.874631),
3275                c64::new(0.985142, 0.569661),
3276                c64::new(0.223288, 0.829772),
3277                c64::new(0.036679, 0.431764),
3278                c64::new(0.966409, 0.964462),
3279                c64::new(0.234639, 0.036226),
3280                c64::new(0.410713, 0.485268),
3281                c64::new(0.657409, 0.247961),
3282                c64::new(0.556006, 0.889590),
3283                c64::new(0.492743, 0.259281),
3284                c64::new(0.853356, 0.664594),
3285                c64::new(0.442558, 0.360879),
3286                c64::new(0.379378, 0.212513),
3287                c64::new(0.375497, 0.327946),
3288                c64::new(0.457485, 0.759649),
3289                c64::new(0.767964, 0.593202),
3290                c64::new(0.703972, 0.787452),
3291                c64::new(0.637206, 0.047649),
3292                c64::new(0.295419, 0.112890),
3293                c64::new(0.359455, 0.753014),
3294                c64::new(0.416821, 0.755433),
3295                c64::new(0.679133, 0.276088),
3296                c64::new(0.201199, 0.331420),
3297                c64::new(0.145993, 0.396517),
3298                c64::new(0.790180, 0.010070),
3299                c64::new(0.423530, 0.343241),
3300                c64::new(0.067135, 0.459603),
3301                c64::new(0.359921, 0.827177),
3302                c64::new(0.393071, 0.568616),
3303                c64::new(0.739557, 0.078482),
3304                c64::new(0.025703, 0.338871),
3305                c64::new(0.289627, 0.516078),
3306                c64::new(0.280563, 0.212957),
3307                c64::new(0.353660, 0.809065),
3308                c64::new(0.868511, 0.285249),
3309                c64::new(0.212131, 0.536091),
3310                c64::new(0.090353, 0.508409),
3311                c64::new(0.297210, 0.088947),
3312                c64::new(0.000443, 0.271580),
3313                c64::new(0.676747, 0.840645),
3314                c64::new(0.564976, 0.627044),
3315                c64::new(0.422724, 0.270323),
3316                c64::new(0.168837, 0.495277),
3317                c64::new(0.267089, 0.115740),
3318                c64::new(0.772203, 0.429281),
3319                c64::new(0.583360, 0.802402),
3320                c64::new(0.431460, 0.095637),
3321                c64::new(0.912250, 0.626725),
3322                c64::new(0.609026, 0.245385),
3323                c64::new(0.778113, 0.808350),
3324                c64::new(0.518982, 0.291490),
3325                c64::new(0.511992, 0.170120),
3326                c64::new(0.226763, 0.547021),
3327                c64::new(0.614790, 0.228372),
3328                c64::new(0.762392, 0.403270),
3329                c64::new(0.787686, 0.059468),
3330                c64::new(0.887644, 0.329107),
3331                c64::new(0.431230, 0.251256),
3332                c64::new(0.640605, 0.132503),
3333                c64::new(0.313584, 0.443068),
3334                c64::new(0.978586, 0.350226),
3335                c64::new(0.191324, 0.165691),
3336                c64::new(0.541977, 0.776232),
3337                c64::new(0.400233, 0.987371),
3338                c64::new(0.552699, 0.248859),
3339                c64::new(0.435885, 0.537325),
3340                c64::new(0.764246, 0.506262),
3341                c64::new(0.708169, 0.319242),
3342                c64::new(0.867256, 0.874209),
3343                c64::new(0.292619, 0.272509),
3344                c64::new(0.643935, 0.918770),
3345                c64::new(0.912011, 0.822607),
3346                c64::new(0.743979, 0.706268),
3347                c64::new(0.948011, 0.314097),
3348                c64::new(0.773267, 0.683963),
3349                c64::new(0.829798, 0.179651),
3350                c64::new(0.784784, 0.855000),
3351                c64::new(0.210917, 0.444375),
3352                c64::new(0.962698, 0.930504),
3353                c64::new(0.038745, 0.086622),
3354                c64::new(0.238235, 0.824315),
3355                c64::new(0.554350, 0.363664),
3356                c64::new(0.216626, 0.900797),
3357                c64::new(0.795121, 0.855483),
3358                c64::new(0.585897, 0.640472),
3359                c64::new(0.402094, 0.439532),
3360                c64::new(0.186325, 0.058003),
3361                c64::new(0.468742, 0.474751),
3362                c64::new(0.385064, 0.116919),
3363                c64::new(0.490516, 0.811192),
3364                c64::new(0.705007, 0.936418),
3365            ],
3366            [
3367                c64::new(0.000000, 0.000000),
3368                c64::new(0.000000, 0.000000),
3369                c64::new(0.000000, 0.000000),
3370                c64::new(0.000000, 0.000000),
3371                c64::new(0.504525, 0.275602),
3372                c64::new(0.581714, 0.923980),
3373                c64::new(0.784429, 0.517392),
3374                c64::new(0.694721, 0.918042),
3375                c64::new(0.736435, 0.451541),
3376                c64::new(0.478398, 0.458670),
3377                c64::new(0.917999, 0.681193),
3378                c64::new(0.924837, 0.649548),
3379                c64::new(0.789458, 0.972121),
3380                c64::new(0.478846, 0.104062),
3381                c64::new(0.592473, 0.333113),
3382                c64::new(0.831848, 0.191320),
3383                c64::new(0.796934, 0.352247),
3384                c64::new(0.646904, 0.005961),
3385                c64::new(0.842753, 0.826201),
3386                c64::new(0.199294, 0.490205),
3387                c64::new(0.769102, 0.438923),
3388                c64::new(0.446627, 0.964947),
3389                c64::new(0.745186, 0.958642),
3390                c64::new(0.860051, 0.508763),
3391                c64::new(0.252206, 0.550260),
3392                c64::new(0.135175, 0.280995),
3393                c64::new(0.768068, 0.897398),
3394                c64::new(0.939665, 0.869227),
3395                c64::new(0.578220, 0.867439),
3396                c64::new(0.725137, 0.232940),
3397                c64::new(0.450222, 0.126592),
3398                c64::new(0.908854, 0.760924),
3399                c64::new(0.796657, 0.647183),
3400                c64::new(0.783444, 0.801277),
3401                c64::new(0.996766, 0.844475),
3402                c64::new(0.377512, 0.744496),
3403                c64::new(0.002539, 0.885059),
3404                c64::new(0.967171, 0.156495),
3405                c64::new(0.295415, 0.282586),
3406                c64::new(0.340317, 0.373176),
3407                c64::new(0.837608, 0.723693),
3408                c64::new(0.870025, 0.318869),
3409                c64::new(0.505777, 0.190773),
3410                c64::new(0.964125, 0.705819),
3411                c64::new(0.817387, 0.016462),
3412                c64::new(0.569007, 0.820041),
3413                c64::new(0.109563, 0.607906),
3414                c64::new(0.937891, 0.696292),
3415                c64::new(0.453103, 0.014623),
3416                c64::new(0.508613, 0.509688),
3417                c64::new(0.075323, 0.758417),
3418                c64::new(0.529915, 0.527384),
3419                c64::new(0.917754, 0.536743),
3420                c64::new(0.043143, 0.769651),
3421                c64::new(0.019817, 0.689931),
3422                c64::new(0.398399, 0.149912),
3423                c64::new(0.564852, 0.510680),
3424                c64::new(0.470166, 0.940782),
3425                c64::new(0.215438, 0.794656),
3426                c64::new(0.020560, 0.209655),
3427                c64::new(0.430041, 0.923772),
3428                c64::new(0.967261, 0.173571),
3429                c64::new(0.952390, 0.661186),
3430                c64::new(0.941806, 0.394577),
3431                c64::new(0.187801, 0.378212),
3432                c64::new(0.739727, 0.010822),
3433                c64::new(0.484095, 0.645754),
3434                c64::new(0.363152, 0.019576),
3435                c64::new(0.177671, 0.306288),
3436                c64::new(0.229200, 0.200683),
3437                c64::new(0.590264, 0.771698),
3438                c64::new(0.275760, 0.962651),
3439                c64::new(0.954762, 0.762074),
3440                c64::new(0.793666, 0.941696),
3441                c64::new(0.820121, 0.218360),
3442                c64::new(0.201549, 0.948204),
3443                c64::new(0.837364, 0.291420),
3444                c64::new(0.840401, 0.058099),
3445                c64::new(0.424386, 0.511376),
3446                c64::new(0.006618, 0.460554),
3447                c64::new(0.948996, 0.476161),
3448                c64::new(0.716407, 0.014602),
3449                c64::new(0.637296, 0.096833),
3450                c64::new(0.553516, 0.776390),
3451                c64::new(0.045962, 0.394421),
3452                c64::new(0.373100, 0.260907),
3453                c64::new(0.147335, 0.875636),
3454                c64::new(0.433242, 0.945208),
3455                c64::new(0.619115, 0.117876),
3456                c64::new(0.470043, 0.215531),
3457                c64::new(0.192970, 0.943398),
3458                c64::new(0.141771, 0.458706),
3459                c64::new(0.361972, 0.984832),
3460                c64::new(0.732352, 0.408699),
3461                c64::new(0.723612, 0.322045),
3462                c64::new(0.662175, 0.938809),
3463                c64::new(0.332571, 0.676057),
3464                c64::new(0.909820, 0.215665),
3465                c64::new(0.925620, 0.022299),
3466                c64::new(0.424417, 0.558210),
3467            ],
3468            [
3469                c64::new(0.000000, 0.000000),
3470                c64::new(0.000000, 0.000000),
3471                c64::new(0.000000, 0.000000),
3472                c64::new(0.000000, 0.000000),
3473                c64::new(0.000000, 0.000000),
3474                c64::new(0.664100, 0.715876),
3475                c64::new(0.306003, 0.918067),
3476                c64::new(0.738031, 0.856596),
3477                c64::new(0.519573, 0.955956),
3478                c64::new(0.538104, 0.878495),
3479                c64::new(0.343654, 0.405434),
3480                c64::new(0.274486, 0.384978),
3481                c64::new(0.288923, 0.444287),
3482                c64::new(0.897896, 0.952822),
3483                c64::new(0.777598, 0.968945),
3484                c64::new(0.334201, 0.160386),
3485                c64::new(0.209868, 0.106069),
3486                c64::new(0.867320, 0.093870),
3487                c64::new(0.679453, 0.542672),
3488                c64::new(0.876689, 0.249522),
3489                c64::new(0.274410, 0.272696),
3490                c64::new(0.805269, 0.057745),
3491                c64::new(0.424354, 0.893543),
3492                c64::new(0.710866, 0.255001),
3493                c64::new(0.112813, 0.891013),
3494                c64::new(0.293643, 0.728290),
3495                c64::new(0.424476, 0.782843),
3496                c64::new(0.416680, 0.959461),
3497                c64::new(0.024328, 0.048543),
3498                c64::new(0.726901, 0.467630),
3499                c64::new(0.818641, 0.719145),
3500                c64::new(0.930312, 0.196630),
3501                c64::new(0.118224, 0.461610),
3502                c64::new(0.850370, 0.982100),
3503                c64::new(0.733812, 0.188636),
3504                c64::new(0.834908, 0.686902),
3505                c64::new(0.800755, 0.776162),
3506                c64::new(0.353491, 0.147317),
3507                c64::new(0.574225, 0.544286),
3508                c64::new(0.458991, 0.652634),
3509                c64::new(0.900823, 0.036654),
3510                c64::new(0.983832, 0.302139),
3511                c64::new(0.077913, 0.505631),
3512                c64::new(0.822623, 0.472645),
3513                c64::new(0.507072, 0.264395),
3514                c64::new(0.627892, 0.677008),
3515                c64::new(0.492069, 0.720020),
3516                c64::new(0.836802, 0.719225),
3517                c64::new(0.517493, 0.841356),
3518                c64::new(0.953892, 0.508602),
3519                c64::new(0.002379, 0.731934),
3520                c64::new(0.574351, 0.417829),
3521                c64::new(0.755134, 0.174647),
3522                c64::new(0.727789, 0.949780),
3523                c64::new(0.957562, 0.992268),
3524                c64::new(0.633580, 0.243574),
3525                c64::new(0.756835, 0.492746),
3526                c64::new(0.240099, 0.997078),
3527                c64::new(0.703756, 0.559459),
3528                c64::new(0.072492, 0.968219),
3529                c64::new(0.959788, 0.277995),
3530                c64::new(0.661461, 0.941819),
3531                c64::new(0.111737, 0.763205),
3532                c64::new(0.295152, 0.882562),
3533                c64::new(0.492568, 0.480833),
3534                c64::new(0.115088, 0.431051),
3535                c64::new(0.568129, 0.587202),
3536                c64::new(0.264254, 0.725769),
3537                c64::new(0.298884, 0.147189),
3538                c64::new(0.110293, 0.504983),
3539                c64::new(0.012780, 0.109612),
3540                c64::new(0.437704, 0.690835),
3541                c64::new(0.571051, 0.552427),
3542                c64::new(0.308212, 0.133583),
3543                c64::new(0.318483, 0.097583),
3544                c64::new(0.520854, 0.452190),
3545                c64::new(0.018061, 0.525337),
3546                c64::new(0.819254, 0.873038),
3547                c64::new(0.474728, 0.805593),
3548                c64::new(0.486643, 0.697993),
3549                c64::new(0.649597, 0.697582),
3550                c64::new(0.782052, 0.940335),
3551                c64::new(0.587743, 0.635511),
3552                c64::new(0.279865, 0.674201),
3553                c64::new(0.174687, 0.805640),
3554                c64::new(0.871215, 0.334582),
3555                c64::new(0.944343, 0.317877),
3556                c64::new(0.457410, 0.589672),
3557                c64::new(0.345857, 0.800753),
3558                c64::new(0.068360, 0.572089),
3559                c64::new(0.043464, 0.303757),
3560                c64::new(0.130664, 0.842130),
3561                c64::new(0.797796, 0.301784),
3562                c64::new(0.520515, 0.784033),
3563                c64::new(0.964881, 0.220223),
3564                c64::new(0.002487, 0.838886),
3565                c64::new(0.828365, 0.679851),
3566                c64::new(0.924351, 0.186967),
3567                c64::new(0.222602, 0.797951),
3568                c64::new(0.547503, 0.745845),
3569            ],
3570            [
3571                c64::new(0.000000, 0.000000),
3572                c64::new(0.000000, 0.000000),
3573                c64::new(0.000000, 0.000000),
3574                c64::new(0.000000, 0.000000),
3575                c64::new(0.000000, 0.000000),
3576                c64::new(0.000000, 0.000000),
3577                c64::new(0.761329, 0.474137),
3578                c64::new(0.057140, 0.021554),
3579                c64::new(0.341875, 0.030452),
3580                c64::new(0.454658, 0.195647),
3581                c64::new(0.108317, 0.305343),
3582                c64::new(0.482688, 0.024172),
3583                c64::new(0.110135, 0.606529),
3584                c64::new(0.872017, 0.832805),
3585                c64::new(0.210274, 0.058658),
3586                c64::new(0.546038, 0.781291),
3587                c64::new(0.784601, 0.228759),
3588                c64::new(0.822710, 0.819986),
3589                c64::new(0.415218, 0.292593),
3590                c64::new(0.982274, 0.258480),
3591                c64::new(0.629042, 0.821195),
3592                c64::new(0.406773, 0.549015),
3593                c64::new(0.995871, 0.778788),
3594                c64::new(0.039236, 0.899381),
3595                c64::new(0.368055, 0.090768),
3596                c64::new(0.691680, 0.570506),
3597                c64::new(0.511426, 0.769842),
3598                c64::new(0.386492, 0.077254),
3599                c64::new(0.913777, 0.999235),
3600                c64::new(0.154210, 0.038114),
3601                c64::new(0.363958, 0.490296),
3602                c64::new(0.423887, 0.404663),
3603                c64::new(0.134981, 0.171248),
3604                c64::new(0.944690, 0.857868),
3605                c64::new(0.069656, 0.436922),
3606                c64::new(0.568224, 0.060069),
3607                c64::new(0.847804, 0.872848),
3608                c64::new(0.663877, 0.141819),
3609                c64::new(0.474788, 0.158607),
3610                c64::new(0.002091, 0.393863),
3611                c64::new(0.077639, 0.893645),
3612                c64::new(0.504144, 0.324619),
3613                c64::new(0.763920, 0.787534),
3614                c64::new(0.980880, 0.593065),
3615                c64::new(0.616328, 0.025537),
3616                c64::new(0.944112, 0.244000),
3617                c64::new(0.010341, 0.924079),
3618                c64::new(0.671194, 0.453097),
3619                c64::new(0.104769, 0.007300),
3620                c64::new(0.506511, 0.578985),
3621                c64::new(0.216464, 0.030540),
3622                c64::new(0.034870, 0.981198),
3623                c64::new(0.601744, 0.846565),
3624                c64::new(0.053338, 0.648381),
3625                c64::new(0.450082, 0.240713),
3626                c64::new(0.321715, 0.996102),
3627                c64::new(0.240902, 0.755036),
3628                c64::new(0.687335, 0.907080),
3629                c64::new(0.442760, 0.608330),
3630                c64::new(0.402324, 0.986593),
3631                c64::new(0.348717, 0.219912),
3632                c64::new(0.424926, 0.766619),
3633                c64::new(0.795066, 0.263490),
3634                c64::new(0.785027, 0.276597),
3635                c64::new(0.456680, 0.848079),
3636                c64::new(0.196293, 0.095246),
3637                c64::new(0.751354, 0.249836),
3638                c64::new(0.429790, 0.180219),
3639                c64::new(0.267194, 0.440343),
3640                c64::new(0.566302, 0.481341),
3641                c64::new(0.557362, 0.015110),
3642                c64::new(0.623771, 0.689169),
3643                c64::new(0.190737, 0.984802),
3644                c64::new(0.172350, 0.900894),
3645                c64::new(0.251772, 0.633124),
3646                c64::new(0.513337, 0.444512),
3647                c64::new(0.753186, 0.930539),
3648                c64::new(0.964207, 0.410712),
3649                c64::new(0.180238, 0.113712),
3650                c64::new(0.731805, 0.732117),
3651                c64::new(0.100688, 0.376921),
3652                c64::new(0.615828, 0.734217),
3653                c64::new(0.749916, 0.497537),
3654                c64::new(0.002625, 0.591863),
3655                c64::new(0.644224, 0.882223),
3656                c64::new(0.690282, 0.190992),
3657                c64::new(0.893521, 0.928840),
3658                c64::new(0.466513, 0.312486),
3659                c64::new(0.140925, 0.221800),
3660                c64::new(0.259923, 0.144308),
3661                c64::new(0.725702, 0.223996),
3662                c64::new(0.305583, 0.808398),
3663                c64::new(0.817229, 0.205274),
3664                c64::new(0.288736, 0.620168),
3665                c64::new(0.253590, 0.779970),
3666                c64::new(0.438128, 0.662336),
3667                c64::new(0.255910, 0.969372),
3668                c64::new(0.539765, 0.703620),
3669                c64::new(0.379613, 0.338690),
3670                c64::new(0.130420, 0.870391),
3671            ],
3672            [
3673                c64::new(0.000000, 0.000000),
3674                c64::new(0.000000, 0.000000),
3675                c64::new(0.000000, 0.000000),
3676                c64::new(0.000000, 0.000000),
3677                c64::new(0.000000, 0.000000),
3678                c64::new(0.000000, 0.000000),
3679                c64::new(0.000000, 0.000000),
3680                c64::new(0.281250, 0.457196),
3681                c64::new(0.553758, 0.503325),
3682                c64::new(0.490258, 0.124320),
3683                c64::new(0.786502, 0.325276),
3684                c64::new(0.127180, 0.366602),
3685                c64::new(0.134249, 0.774897),
3686                c64::new(0.315897, 0.239912),
3687                c64::new(0.034332, 0.330397),
3688                c64::new(0.271820, 0.908755),
3689                c64::new(0.687357, 0.275991),
3690                c64::new(0.715441, 0.446821),
3691                c64::new(0.266875, 0.854911),
3692                c64::new(0.708890, 0.545354),
3693                c64::new(0.077122, 0.151865),
3694                c64::new(0.253644, 0.730437),
3695                c64::new(0.190611, 0.119619),
3696                c64::new(0.067786, 0.904203),
3697                c64::new(0.396297, 0.524168),
3698                c64::new(0.324399, 0.938615),
3699                c64::new(0.048354, 0.398907),
3700                c64::new(0.601310, 0.480633),
3701                c64::new(0.901911, 0.555953),
3702                c64::new(0.224240, 0.654160),
3703                c64::new(0.190490, 0.899168),
3704                c64::new(0.996899, 0.230060),
3705                c64::new(0.506326, 0.931737),
3706                c64::new(0.835350, 0.132773),
3707                c64::new(0.689645, 0.958794),
3708                c64::new(0.537812, 0.661072),
3709                c64::new(0.911060, 0.590255),
3710                c64::new(0.067496, 0.713671),
3711                c64::new(0.694958, 0.262810),
3712                c64::new(0.844676, 0.839687),
3713                c64::new(0.989296, 0.082079),
3714                c64::new(0.995364, 0.483861),
3715                c64::new(0.577952, 0.896696),
3716                c64::new(0.022898, 0.855596),
3717                c64::new(0.463523, 0.774210),
3718                c64::new(0.761949, 0.334033),
3719                c64::new(0.826583, 0.941408),
3720                c64::new(0.030058, 0.171974),
3721                c64::new(0.751235, 0.336407),
3722                c64::new(0.447569, 0.001303),
3723                c64::new(0.814994, 0.837680),
3724                c64::new(0.312454, 0.238153),
3725                c64::new(0.148646, 0.980932),
3726                c64::new(0.065710, 0.485325),
3727                c64::new(0.841912, 0.541389),
3728                c64::new(0.296602, 0.955343),
3729                c64::new(0.427599, 0.065198),
3730                c64::new(0.910705, 0.806317),
3731                c64::new(0.956512, 0.913340),
3732                c64::new(0.314531, 0.754588),
3733                c64::new(0.029930, 0.928508),
3734                c64::new(0.826030, 0.758061),
3735                c64::new(0.798540, 0.011416),
3736                c64::new(0.849948, 0.503950),
3737                c64::new(0.703862, 0.250694),
3738                c64::new(0.334658, 0.358087),
3739                c64::new(0.343169, 0.214128),
3740                c64::new(0.403816, 0.896222),
3741                c64::new(0.004652, 0.337637),
3742                c64::new(0.639194, 0.527597),
3743                c64::new(0.562645, 0.200108),
3744                c64::new(0.130442, 0.647892),
3745                c64::new(0.074370, 0.373034),
3746                c64::new(0.741777, 0.929961),
3747                c64::new(0.850655, 0.070431),
3748                c64::new(0.448984, 0.194008),
3749                c64::new(0.976091, 0.990299),
3750                c64::new(0.625688, 0.263407),
3751                c64::new(0.628268, 0.807432),
3752                c64::new(0.930037, 0.003414),
3753                c64::new(0.456355, 0.206976),
3754                c64::new(0.011826, 0.414906),
3755                c64::new(0.696273, 0.572816),
3756                c64::new(0.983242, 0.712490),
3757                c64::new(0.925181, 0.895583),
3758                c64::new(0.360160, 0.878410),
3759                c64::new(0.504108, 0.111352),
3760                c64::new(0.160686, 0.140605),
3761                c64::new(0.570738, 0.191626),
3762                c64::new(0.676459, 0.665012),
3763                c64::new(0.784552, 0.680081),
3764                c64::new(0.098649, 0.516121),
3765                c64::new(0.205273, 0.778610),
3766                c64::new(0.434327, 0.310256),
3767                c64::new(0.866206, 0.582293),
3768                c64::new(0.719858, 0.584182),
3769                c64::new(0.211123, 0.642164),
3770                c64::new(0.448459, 0.938724),
3771                c64::new(0.685214, 0.675736),
3772                c64::new(0.821699, 0.104142),
3773            ],
3774            [
3775                c64::new(0.000000, 0.000000),
3776                c64::new(0.000000, 0.000000),
3777                c64::new(0.000000, 0.000000),
3778                c64::new(0.000000, 0.000000),
3779                c64::new(0.000000, 0.000000),
3780                c64::new(0.000000, 0.000000),
3781                c64::new(0.000000, 0.000000),
3782                c64::new(0.000000, 0.000000),
3783                c64::new(0.762233, 0.254906),
3784                c64::new(0.282796, 0.821377),
3785                c64::new(0.230042, 0.121300),
3786                c64::new(0.814784, 0.653078),
3787                c64::new(0.773767, 0.078697),
3788                c64::new(0.571516, 0.766801),
3789                c64::new(0.755685, 0.938336),
3790                c64::new(0.269764, 0.992994),
3791                c64::new(0.598369, 0.670755),
3792                c64::new(0.040979, 0.219360),
3793                c64::new(0.960505, 0.980348),
3794                c64::new(0.793943, 0.728118),
3795                c64::new(0.583504, 0.425626),
3796                c64::new(0.314256, 0.965120),
3797                c64::new(0.927737, 0.557444),
3798                c64::new(0.536900, 0.329226),
3799                c64::new(0.173988, 0.289097),
3800                c64::new(0.785395, 0.759280),
3801                c64::new(0.645432, 0.698285),
3802                c64::new(0.026213, 0.015188),
3803                c64::new(0.137592, 0.438188),
3804                c64::new(0.894743, 0.738587),
3805                c64::new(0.005395, 0.229090),
3806                c64::new(0.960169, 0.807781),
3807                c64::new(0.253019, 0.104073),
3808                c64::new(0.951972, 0.148383),
3809                c64::new(0.655662, 0.937177),
3810                c64::new(0.221910, 0.362053),
3811                c64::new(0.492987, 0.050088),
3812                c64::new(0.363505, 0.347282),
3813                c64::new(0.584538, 0.947470),
3814                c64::new(0.507813, 0.848104),
3815                c64::new(0.766702, 0.274560),
3816                c64::new(0.458391, 0.266606),
3817                c64::new(0.189173, 0.949957),
3818                c64::new(0.253112, 0.984897),
3819                c64::new(0.571023, 0.622702),
3820                c64::new(0.827870, 0.970213),
3821                c64::new(0.280466, 0.714010),
3822                c64::new(0.933515, 0.539319),
3823                c64::new(0.951287, 0.664505),
3824                c64::new(0.221803, 0.846934),
3825                c64::new(0.681162, 0.828269),
3826                c64::new(0.241963, 0.516494),
3827                c64::new(0.197164, 0.194033),
3828                c64::new(0.051560, 0.547219),
3829                c64::new(0.078404, 0.830762),
3830                c64::new(0.845807, 0.508960),
3831                c64::new(0.370348, 0.845713),
3832                c64::new(0.143998, 0.835709),
3833                c64::new(0.183469, 0.332996),
3834                c64::new(0.095398, 0.488281),
3835                c64::new(0.981171, 0.233496),
3836                c64::new(0.939250, 0.533890),
3837                c64::new(0.599947, 0.383013),
3838                c64::new(0.888847, 0.016008),
3839                c64::new(0.281500, 0.849602),
3840                c64::new(0.263634, 0.727870),
3841                c64::new(0.318140, 0.910614),
3842                c64::new(0.545748, 0.076173),
3843                c64::new(0.668332, 0.206571),
3844                c64::new(0.388080, 0.347205),
3845                c64::new(0.611075, 0.114643),
3846                c64::new(0.694929, 0.146425),
3847                c64::new(0.975727, 0.368355),
3848                c64::new(0.747484, 0.416643),
3849                c64::new(0.340646, 0.883942),
3850                c64::new(0.300997, 0.366858),
3851                c64::new(0.523824, 0.453834),
3852                c64::new(0.025292, 0.232514),
3853                c64::new(0.780472, 0.027187),
3854                c64::new(0.388570, 0.768596),
3855                c64::new(0.439242, 0.783692),
3856                c64::new(0.584253, 0.547184),
3857                c64::new(0.447356, 0.450026),
3858                c64::new(0.604316, 0.604147),
3859                c64::new(0.269517, 0.226360),
3860                c64::new(0.350350, 0.532746),
3861                c64::new(0.031654, 0.993903),
3862                c64::new(0.938172, 0.983360),
3863                c64::new(0.859667, 0.724463),
3864                c64::new(0.517305, 0.595401),
3865                c64::new(0.507892, 0.282801),
3866                c64::new(0.093921, 0.939854),
3867                c64::new(0.864624, 0.789211),
3868                c64::new(0.460581, 0.505156),
3869                c64::new(0.948532, 0.232594),
3870                c64::new(0.330381, 0.713507),
3871                c64::new(0.866430, 0.158657),
3872                c64::new(0.251104, 0.265277),
3873                c64::new(0.821879, 0.790737),
3874                c64::new(0.504309, 0.638158),
3875            ],
3876            [
3877                c64::new(0.000000, 0.000000),
3878                c64::new(0.000000, 0.000000),
3879                c64::new(0.000000, 0.000000),
3880                c64::new(0.000000, 0.000000),
3881                c64::new(0.000000, 0.000000),
3882                c64::new(0.000000, 0.000000),
3883                c64::new(0.000000, 0.000000),
3884                c64::new(0.000000, 0.000000),
3885                c64::new(0.000000, 0.000000),
3886                c64::new(0.929779, 0.734148),
3887                c64::new(0.482822, 0.136545),
3888                c64::new(0.822025, 0.810775),
3889                c64::new(0.968682, 0.759398),
3890                c64::new(0.824234, 0.018718),
3891                c64::new(0.279519, 0.637786),
3892                c64::new(0.864062, 0.754173),
3893                c64::new(0.883063, 0.947834),
3894                c64::new(0.978932, 0.832647),
3895                c64::new(0.108744, 0.977103),
3896                c64::new(0.121843, 0.087693),
3897                c64::new(0.170359, 0.068747),
3898                c64::new(0.581379, 0.488896),
3899                c64::new(0.934925, 0.499277),
3900                c64::new(0.942417, 0.183928),
3901                c64::new(0.393964, 0.638999),
3902                c64::new(0.322281, 0.246808),
3903                c64::new(0.733407, 0.206246),
3904                c64::new(0.193888, 0.167587),
3905                c64::new(0.912600, 0.619939),
3906                c64::new(0.372085, 0.349843),
3907                c64::new(0.258421, 0.739553),
3908                c64::new(0.593035, 0.195997),
3909                c64::new(0.260812, 0.005966),
3910                c64::new(0.234602, 0.900769),
3911                c64::new(0.528731, 0.229335),
3912                c64::new(0.424740, 0.529025),
3913                c64::new(0.355056, 0.592621),
3914                c64::new(0.567516, 0.480549),
3915                c64::new(0.942477, 0.628082),
3916                c64::new(0.545550, 0.708920),
3917                c64::new(0.416123, 0.057100),
3918                c64::new(0.287489, 0.370781),
3919                c64::new(0.059555, 0.037338),
3920                c64::new(0.166931, 0.193747),
3921                c64::new(0.160329, 0.825578),
3922                c64::new(0.686360, 0.480028),
3923                c64::new(0.649297, 0.788636),
3924                c64::new(0.622213, 0.335760),
3925                c64::new(0.717951, 0.819263),
3926                c64::new(0.379302, 0.294782),
3927                c64::new(0.616378, 0.255408),
3928                c64::new(0.108894, 0.473673),
3929                c64::new(0.635840, 0.859348),
3930                c64::new(0.893123, 0.059023),
3931                c64::new(0.439904, 0.510039),
3932                c64::new(0.879963, 0.316777),
3933                c64::new(0.411363, 0.358371),
3934                c64::new(0.092588, 0.564482),
3935                c64::new(0.485318, 0.772833),
3936                c64::new(0.754468, 0.582057),
3937                c64::new(0.348919, 0.228684),
3938                c64::new(0.861125, 0.724930),
3939                c64::new(0.771415, 0.568626),
3940                c64::new(0.648784, 0.670444),
3941                c64::new(0.139906, 0.123516),
3942                c64::new(0.798978, 0.029723),
3943                c64::new(0.429955, 0.586904),
3944                c64::new(0.139709, 0.848911),
3945                c64::new(0.822904, 0.593750),
3946                c64::new(0.373495, 0.981987),
3947                c64::new(0.137763, 0.722706),
3948                c64::new(0.378900, 0.295119),
3949                c64::new(0.733349, 0.028802),
3950                c64::new(0.754157, 0.493659),
3951                c64::new(0.910687, 0.979098),
3952                c64::new(0.139389, 0.177713),
3953                c64::new(0.872771, 0.265941),
3954                c64::new(0.134669, 0.762190),
3955                c64::new(0.505089, 0.148699),
3956                c64::new(0.491902, 0.859694),
3957                c64::new(0.846171, 0.933060),
3958                c64::new(0.845493, 0.605066),
3959                c64::new(0.380912, 0.080237),
3960                c64::new(0.942480, 0.495345),
3961                c64::new(0.799450, 0.765162),
3962                c64::new(0.309441, 0.158130),
3963                c64::new(0.653779, 0.939343),
3964                c64::new(0.281960, 0.331618),
3965                c64::new(0.406322, 0.469164),
3966                c64::new(0.957345, 0.432556),
3967                c64::new(0.197621, 0.267563),
3968                c64::new(0.067700, 0.960559),
3969                c64::new(0.802247, 0.963885),
3970                c64::new(0.326979, 0.345922),
3971                c64::new(0.313192, 0.746932),
3972                c64::new(0.997904, 0.429886),
3973                c64::new(0.237066, 0.845585),
3974                c64::new(0.171762, 0.632153),
3975                c64::new(0.467327, 0.482712),
3976                c64::new(0.807306, 0.039551),
3977            ],
3978            [
3979                c64::new(0.000000, 0.000000),
3980                c64::new(0.000000, 0.000000),
3981                c64::new(0.000000, 0.000000),
3982                c64::new(0.000000, 0.000000),
3983                c64::new(0.000000, 0.000000),
3984                c64::new(0.000000, 0.000000),
3985                c64::new(0.000000, 0.000000),
3986                c64::new(0.000000, 0.000000),
3987                c64::new(0.000000, 0.000000),
3988                c64::new(0.000000, 0.000000),
3989                c64::new(0.039169, 0.055922),
3990                c64::new(0.590870, 0.793592),
3991                c64::new(0.748642, 0.363946),
3992                c64::new(0.768724, 0.280382),
3993                c64::new(0.164883, 0.027646),
3994                c64::new(0.598699, 0.267952),
3995                c64::new(0.945008, 0.743813),
3996                c64::new(0.721549, 0.238672),
3997                c64::new(0.900901, 0.455882),
3998                c64::new(0.152397, 0.400620),
3999                c64::new(0.478101, 0.225782),
4000                c64::new(0.486973, 0.438368),
4001                c64::new(0.022831, 0.775907),
4002                c64::new(0.178928, 0.792794),
4003                c64::new(0.878480, 0.403492),
4004                c64::new(0.733611, 0.536099),
4005                c64::new(0.146996, 0.059703),
4006                c64::new(0.152945, 0.958547),
4007                c64::new(0.169830, 0.260092),
4008                c64::new(0.612048, 0.646116),
4009                c64::new(0.411249, 0.379732),
4010                c64::new(0.621532, 0.628702),
4011                c64::new(0.396252, 0.283108),
4012                c64::new(0.737276, 0.512216),
4013                c64::new(0.394047, 0.355116),
4014                c64::new(0.407149, 0.168881),
4015                c64::new(0.833917, 0.637144),
4016                c64::new(0.544205, 0.092340),
4017                c64::new(0.564519, 0.106643),
4018                c64::new(0.745555, 0.865885),
4019                c64::new(0.800167, 0.206768),
4020                c64::new(0.825834, 0.207477),
4021                c64::new(0.539784, 0.053009),
4022                c64::new(0.151371, 0.605693),
4023                c64::new(0.932419, 0.888430),
4024                c64::new(0.829147, 0.689129),
4025                c64::new(0.548113, 0.651277),
4026                c64::new(0.606840, 0.125448),
4027                c64::new(0.673024, 0.573973),
4028                c64::new(0.009648, 0.574117),
4029                c64::new(0.199809, 0.257471),
4030                c64::new(0.076281, 0.766166),
4031                c64::new(0.191524, 0.039707),
4032                c64::new(0.351735, 0.275420),
4033                c64::new(0.750760, 0.933292),
4034                c64::new(0.125400, 0.303908),
4035                c64::new(0.829364, 0.512639),
4036                c64::new(0.509435, 0.242217),
4037                c64::new(0.076935, 0.365274),
4038                c64::new(0.992927, 0.465988),
4039                c64::new(0.721725, 0.524211),
4040                c64::new(0.353123, 0.659698),
4041                c64::new(0.234704, 0.223865),
4042                c64::new(0.747632, 0.558185),
4043                c64::new(0.199184, 0.547359),
4044                c64::new(0.680125, 0.579314),
4045                c64::new(0.292683, 0.150177),
4046                c64::new(0.520877, 0.665286),
4047                c64::new(0.181009, 0.200895),
4048                c64::new(0.300164, 0.774376),
4049                c64::new(0.801306, 0.423175),
4050                c64::new(0.311131, 0.263651),
4051                c64::new(0.070988, 0.432310),
4052                c64::new(0.385315, 0.684269),
4053                c64::new(0.578428, 0.318080),
4054                c64::new(0.990976, 0.648917),
4055                c64::new(0.055406, 0.141073),
4056                c64::new(0.019972, 0.754003),
4057                c64::new(0.294881, 0.208275),
4058                c64::new(0.123810, 0.455336),
4059                c64::new(0.099450, 0.194655),
4060                c64::new(0.444951, 0.332398),
4061                c64::new(0.420025, 0.209846),
4062                c64::new(0.339397, 0.849301),
4063                c64::new(0.706286, 0.070328),
4064                c64::new(0.552971, 0.400951),
4065                c64::new(0.382099, 0.483153),
4066                c64::new(0.132283, 0.988319),
4067                c64::new(0.884262, 0.065757),
4068                c64::new(0.798132, 0.658707),
4069                c64::new(0.113247, 0.857510),
4070                c64::new(0.406661, 0.685097),
4071                c64::new(0.631435, 0.935519),
4072                c64::new(0.119072, 0.097054),
4073                c64::new(0.197303, 0.492401),
4074                c64::new(0.527270, 0.929175),
4075                c64::new(0.236637, 0.528237),
4076                c64::new(0.152955, 0.498006),
4077                c64::new(0.162884, 0.625559),
4078                c64::new(0.907460, 0.018217),
4079            ],
4080            [
4081                c64::new(0.000000, 0.000000),
4082                c64::new(0.000000, 0.000000),
4083                c64::new(0.000000, 0.000000),
4084                c64::new(0.000000, 0.000000),
4085                c64::new(0.000000, 0.000000),
4086                c64::new(0.000000, 0.000000),
4087                c64::new(0.000000, 0.000000),
4088                c64::new(0.000000, 0.000000),
4089                c64::new(0.000000, 0.000000),
4090                c64::new(0.000000, 0.000000),
4091                c64::new(0.000000, 0.000000),
4092                c64::new(0.483965, 0.800964),
4093                c64::new(0.667206, 0.386462),
4094                c64::new(0.796224, 0.661389),
4095                c64::new(0.388711, 0.635504),
4096                c64::new(0.980319, 0.880237),
4097                c64::new(0.346505, 0.727447),
4098                c64::new(0.325753, 0.313542),
4099                c64::new(0.672522, 0.050786),
4100                c64::new(0.764330, 0.488853),
4101                c64::new(0.171476, 0.843934),
4102                c64::new(0.250870, 0.634494),
4103                c64::new(0.494856, 0.535428),
4104                c64::new(0.981350, 0.293585),
4105                c64::new(0.902472, 0.331473),
4106                c64::new(0.760460, 0.929733),
4107                c64::new(0.560599, 0.110265),
4108                c64::new(0.063759, 0.787113),
4109                c64::new(0.892287, 0.642687),
4110                c64::new(0.454077, 0.544921),
4111                c64::new(0.679872, 0.714917),
4112                c64::new(0.162272, 0.683906),
4113                c64::new(0.934624, 0.052388),
4114                c64::new(0.166343, 0.979865),
4115                c64::new(0.651687, 0.810362),
4116                c64::new(0.821362, 0.835319),
4117                c64::new(0.639555, 0.453515),
4118                c64::new(0.307161, 0.782103),
4119                c64::new(0.090268, 0.559933),
4120                c64::new(0.028995, 0.081449),
4121                c64::new(0.686509, 0.972855),
4122                c64::new(0.517467, 0.824392),
4123                c64::new(0.250160, 0.981315),
4124                c64::new(0.745133, 0.491498),
4125                c64::new(0.111877, 0.325447),
4126                c64::new(0.394458, 0.442360),
4127                c64::new(0.085827, 0.153762),
4128                c64::new(0.036105, 0.324350),
4129                c64::new(0.011247, 0.985951),
4130                c64::new(0.542966, 0.402390),
4131                c64::new(0.592787, 0.013654),
4132                c64::new(0.570449, 0.193372),
4133                c64::new(0.532274, 0.581500),
4134                c64::new(0.138512, 0.587447),
4135                c64::new(0.555635, 0.065408),
4136                c64::new(0.489196, 0.993022),
4137                c64::new(0.149267, 0.091271),
4138                c64::new(0.370291, 0.868358),
4139                c64::new(0.548562, 0.896719),
4140                c64::new(0.135477, 0.314728),
4141                c64::new(0.173887, 0.650567),
4142                c64::new(0.003519, 0.739062),
4143                c64::new(0.008450, 0.728390),
4144                c64::new(0.445266, 0.949088),
4145                c64::new(0.489544, 0.537289),
4146                c64::new(0.500328, 0.928926),
4147                c64::new(0.131734, 0.056522),
4148                c64::new(0.701701, 0.867558),
4149                c64::new(0.101820, 0.405368),
4150                c64::new(0.450557, 0.031509),
4151                c64::new(0.122419, 0.975564),
4152                c64::new(0.365257, 0.534415),
4153                c64::new(0.421144, 0.857562),
4154                c64::new(0.440903, 0.147258),
4155                c64::new(0.972227, 0.117599),
4156                c64::new(0.236920, 0.070007),
4157                c64::new(0.456752, 0.822350),
4158                c64::new(0.790688, 0.853018),
4159                c64::new(0.183244, 0.662004),
4160                c64::new(0.902872, 0.047397),
4161                c64::new(0.264838, 0.835089),
4162                c64::new(0.435313, 0.010885),
4163                c64::new(0.799335, 0.025390),
4164                c64::new(0.209371, 0.507826),
4165                c64::new(0.610896, 0.569685),
4166                c64::new(0.729988, 0.644768),
4167                c64::new(0.933647, 0.133526),
4168                c64::new(0.368506, 0.083344),
4169                c64::new(0.914414, 0.814043),
4170                c64::new(0.495673, 0.497073),
4171                c64::new(0.824076, 0.079490),
4172                c64::new(0.441706, 0.119901),
4173                c64::new(0.770456, 0.101977),
4174                c64::new(0.135753, 0.369606),
4175                c64::new(0.665904, 0.776744),
4176                c64::new(0.450603, 0.328408),
4177                c64::new(0.029306, 0.506737),
4178                c64::new(0.958892, 0.115982),
4179                c64::new(0.230828, 0.493861),
4180                c64::new(0.039050, 0.348988),
4181            ],
4182            [
4183                c64::new(0.000000, 0.000000),
4184                c64::new(0.000000, 0.000000),
4185                c64::new(0.000000, 0.000000),
4186                c64::new(0.000000, 0.000000),
4187                c64::new(0.000000, 0.000000),
4188                c64::new(0.000000, 0.000000),
4189                c64::new(0.000000, 0.000000),
4190                c64::new(0.000000, 0.000000),
4191                c64::new(0.000000, 0.000000),
4192                c64::new(0.000000, 0.000000),
4193                c64::new(0.000000, 0.000000),
4194                c64::new(0.000000, 0.000000),
4195                c64::new(0.563969, 0.215230),
4196                c64::new(0.200860, 0.558926),
4197                c64::new(0.017842, 0.386949),
4198                c64::new(0.501512, 0.783509),
4199                c64::new(0.004253, 0.267862),
4200                c64::new(0.304512, 0.787357),
4201                c64::new(0.593255, 0.854689),
4202                c64::new(0.914290, 0.554721),
4203                c64::new(0.684163, 0.138557),
4204                c64::new(0.172521, 0.132677),
4205                c64::new(0.480114, 0.605295),
4206                c64::new(0.275018, 0.552696),
4207                c64::new(0.516759, 0.012574),
4208                c64::new(0.514930, 0.721953),
4209                c64::new(0.855787, 0.878680),
4210                c64::new(0.477766, 0.750273),
4211                c64::new(0.619594, 0.269752),
4212                c64::new(0.767082, 0.848524),
4213                c64::new(0.480979, 0.334259),
4214                c64::new(0.864691, 0.584055),
4215                c64::new(0.630097, 0.186060),
4216                c64::new(0.265688, 0.300823),
4217                c64::new(0.660976, 0.281635),
4218                c64::new(0.501005, 0.734647),
4219                c64::new(0.623826, 0.608322),
4220                c64::new(0.110859, 0.601506),
4221                c64::new(0.698188, 0.758936),
4222                c64::new(0.835168, 0.029124),
4223                c64::new(0.004484, 0.381556),
4224                c64::new(0.343663, 0.607716),
4225                c64::new(0.720473, 0.103217),
4226                c64::new(0.383911, 0.149037),
4227                c64::new(0.018212, 0.580847),
4228                c64::new(0.533480, 0.231564),
4229                c64::new(0.430386, 0.586856),
4230                c64::new(0.419748, 0.841936),
4231                c64::new(0.113503, 0.172716),
4232                c64::new(0.716379, 0.093537),
4233                c64::new(0.659701, 0.775674),
4234                c64::new(0.452776, 0.982651),
4235                c64::new(0.997484, 0.275631),
4236                c64::new(0.368194, 0.567956),
4237                c64::new(0.587550, 0.672910),
4238                c64::new(0.730038, 0.369474),
4239                c64::new(0.221113, 0.635320),
4240                c64::new(0.319171, 0.096274),
4241                c64::new(0.705871, 0.129025),
4242                c64::new(0.873987, 0.382525),
4243                c64::new(0.098808, 0.639908),
4244                c64::new(0.984377, 0.470093),
4245                c64::new(0.844070, 0.918781),
4246                c64::new(0.346543, 0.426029),
4247                c64::new(0.661011, 0.562758),
4248                c64::new(0.044625, 0.467252),
4249                c64::new(0.009241, 0.515385),
4250                c64::new(0.565023, 0.136493),
4251                c64::new(0.051247, 0.140898),
4252                c64::new(0.197681, 0.736551),
4253                c64::new(0.699107, 0.516610),
4254                c64::new(0.299135, 0.938436),
4255                c64::new(0.489430, 0.804633),
4256                c64::new(0.046672, 0.074616),
4257                c64::new(0.225431, 0.157307),
4258                c64::new(0.281284, 0.665819),
4259                c64::new(0.758063, 0.371717),
4260                c64::new(0.339990, 0.229678),
4261                c64::new(0.111099, 0.021764),
4262                c64::new(0.300737, 0.363682),
4263                c64::new(0.127251, 0.471653),
4264                c64::new(0.420396, 0.493507),
4265                c64::new(0.799774, 0.039209),
4266                c64::new(0.498668, 0.250861),
4267                c64::new(0.119869, 0.934243),
4268                c64::new(0.728724, 0.995256),
4269                c64::new(0.055502, 0.932074),
4270                c64::new(0.321959, 0.314326),
4271                c64::new(0.426325, 0.522986),
4272                c64::new(0.016314, 0.209950),
4273                c64::new(0.445037, 0.057052),
4274                c64::new(0.214954, 0.670359),
4275                c64::new(0.062921, 0.893370),
4276                c64::new(0.310017, 0.443929),
4277                c64::new(0.033505, 0.215010),
4278                c64::new(0.433145, 0.836948),
4279                c64::new(0.321161, 0.434003),
4280                c64::new(0.335604, 0.753146),
4281                c64::new(0.232997, 0.051175),
4282                c64::new(0.449838, 0.822531),
4283            ],
4284            [
4285                c64::new(0.000000, 0.000000),
4286                c64::new(0.000000, 0.000000),
4287                c64::new(0.000000, 0.000000),
4288                c64::new(0.000000, 0.000000),
4289                c64::new(0.000000, 0.000000),
4290                c64::new(0.000000, 0.000000),
4291                c64::new(0.000000, 0.000000),
4292                c64::new(0.000000, 0.000000),
4293                c64::new(0.000000, 0.000000),
4294                c64::new(0.000000, 0.000000),
4295                c64::new(0.000000, 0.000000),
4296                c64::new(0.000000, 0.000000),
4297                c64::new(0.000000, 0.000000),
4298                c64::new(0.381605, 0.334681),
4299                c64::new(0.560213, 0.536739),
4300                c64::new(0.414463, 0.861030),
4301                c64::new(0.861617, 0.331007),
4302                c64::new(0.412024, 0.304047),
4303                c64::new(0.398990, 0.577441),
4304                c64::new(0.490449, 0.342271),
4305                c64::new(0.941907, 0.886512),
4306                c64::new(0.996036, 0.321067),
4307                c64::new(0.477521, 0.630002),
4308                c64::new(0.325834, 0.063338),
4309                c64::new(0.717430, 0.927620),
4310                c64::new(0.346095, 0.095020),
4311                c64::new(0.298347, 0.690078),
4312                c64::new(0.006054, 0.705601),
4313                c64::new(0.367199, 0.170317),
4314                c64::new(0.131273, 0.020678),
4315                c64::new(0.435624, 0.672278),
4316                c64::new(0.122184, 0.367257),
4317                c64::new(0.813396, 0.983972),
4318                c64::new(0.042951, 0.649093),
4319                c64::new(0.084975, 0.420433),
4320                c64::new(0.501455, 0.109287),
4321                c64::new(0.959981, 0.473198),
4322                c64::new(0.474251, 0.624029),
4323                c64::new(0.793972, 0.619738),
4324                c64::new(0.258283, 0.608500),
4325                c64::new(0.820788, 0.050570),
4326                c64::new(0.131801, 0.704912),
4327                c64::new(0.242098, 0.781407),
4328                c64::new(0.472412, 0.476462),
4329                c64::new(0.172876, 0.420547),
4330                c64::new(0.534554, 0.855458),
4331                c64::new(0.864444, 0.549792),
4332                c64::new(0.566688, 0.398758),
4333                c64::new(0.721648, 0.089724),
4334                c64::new(0.202547, 0.189317),
4335                c64::new(0.385434, 0.614045),
4336                c64::new(0.563256, 0.491295),
4337                c64::new(0.713063, 0.525299),
4338                c64::new(0.541740, 0.523136),
4339                c64::new(0.817027, 0.799198),
4340                c64::new(0.466757, 0.657703),
4341                c64::new(0.602946, 0.934538),
4342                c64::new(0.439136, 0.291484),
4343                c64::new(0.573826, 0.471973),
4344                c64::new(0.332450, 0.203145),
4345                c64::new(0.756586, 0.814000),
4346                c64::new(0.485232, 0.913642),
4347                c64::new(0.395099, 0.910118),
4348                c64::new(0.603470, 0.775366),
4349                c64::new(0.479518, 0.616871),
4350                c64::new(0.117789, 0.250279),
4351                c64::new(0.316659, 0.390211),
4352                c64::new(0.961454, 0.668674),
4353                c64::new(0.866251, 0.725367),
4354                c64::new(0.057382, 0.186860),
4355                c64::new(0.492004, 0.176278),
4356                c64::new(0.801255, 0.562411),
4357                c64::new(0.443016, 0.801791),
4358                c64::new(0.142786, 0.022347),
4359                c64::new(0.123558, 0.500740),
4360                c64::new(0.951937, 0.370175),
4361                c64::new(0.913617, 0.017096),
4362                c64::new(0.111700, 0.861513),
4363                c64::new(0.454589, 0.404850),
4364                c64::new(0.173981, 0.124860),
4365                c64::new(0.357380, 0.877563),
4366                c64::new(0.269623, 0.694489),
4367                c64::new(0.173250, 0.465384),
4368                c64::new(0.264800, 0.287655),
4369                c64::new(0.975610, 0.046665),
4370                c64::new(0.305468, 0.866713),
4371                c64::new(0.426472, 0.708351),
4372                c64::new(0.058702, 0.194481),
4373                c64::new(0.607929, 0.521343),
4374                c64::new(0.436087, 0.566151),
4375                c64::new(0.295087, 0.658905),
4376                c64::new(0.189262, 0.890021),
4377                c64::new(0.651342, 0.561763),
4378                c64::new(0.013591, 0.667646),
4379                c64::new(0.490111, 0.807117),
4380                c64::new(0.049202, 0.688385),
4381                c64::new(0.722299, 0.201393),
4382                c64::new(0.015583, 0.436442),
4383                c64::new(0.217194, 0.073205),
4384                c64::new(0.408862, 0.686188),
4385            ],
4386            [
4387                c64::new(0.000000, 0.000000),
4388                c64::new(0.000000, 0.000000),
4389                c64::new(0.000000, 0.000000),
4390                c64::new(0.000000, 0.000000),
4391                c64::new(0.000000, 0.000000),
4392                c64::new(0.000000, 0.000000),
4393                c64::new(0.000000, 0.000000),
4394                c64::new(0.000000, 0.000000),
4395                c64::new(0.000000, 0.000000),
4396                c64::new(0.000000, 0.000000),
4397                c64::new(0.000000, 0.000000),
4398                c64::new(0.000000, 0.000000),
4399                c64::new(0.000000, 0.000000),
4400                c64::new(0.000000, 0.000000),
4401                c64::new(0.573542, 0.388167),
4402                c64::new(0.933630, 0.351839),
4403                c64::new(0.703146, 0.847474),
4404                c64::new(0.248465, 0.132849),
4405                c64::new(0.076664, 0.553616),
4406                c64::new(0.289764, 0.851508),
4407                c64::new(0.694958, 0.277080),
4408                c64::new(0.512564, 0.025005),
4409                c64::new(0.015380, 0.550337),
4410                c64::new(0.396079, 0.363697),
4411                c64::new(0.004287, 0.784070),
4412                c64::new(0.689216, 0.873509),
4413                c64::new(0.542274, 0.879788),
4414                c64::new(0.973676, 0.441473),
4415                c64::new(0.096915, 0.098194),
4416                c64::new(0.623378, 0.162147),
4417                c64::new(0.584288, 0.757530),
4418                c64::new(0.093668, 0.549968),
4419                c64::new(0.415618, 0.994629),
4420                c64::new(0.677865, 0.598068),
4421                c64::new(0.568144, 0.288480),
4422                c64::new(0.321794, 0.382578),
4423                c64::new(0.587715, 0.840209),
4424                c64::new(0.860247, 0.164856),
4425                c64::new(0.514940, 0.919737),
4426                c64::new(0.782391, 0.834831),
4427                c64::new(0.646076, 0.948930),
4428                c64::new(0.747259, 0.306129),
4429                c64::new(0.599216, 0.640426),
4430                c64::new(0.296840, 0.422823),
4431                c64::new(0.311353, 0.756295),
4432                c64::new(0.777810, 0.758092),
4433                c64::new(0.815063, 0.461959),
4434                c64::new(0.684121, 0.263384),
4435                c64::new(0.184665, 0.990219),
4436                c64::new(0.002221, 0.454991),
4437                c64::new(0.801437, 0.995631),
4438                c64::new(0.671939, 0.318441),
4439                c64::new(0.969676, 0.772701),
4440                c64::new(0.430074, 0.540313),
4441                c64::new(0.891830, 0.507685),
4442                c64::new(0.167946, 0.406441),
4443                c64::new(0.682917, 0.055576),
4444                c64::new(0.445727, 0.590770),
4445                c64::new(0.891029, 0.523637),
4446                c64::new(0.635353, 0.664379),
4447                c64::new(0.163148, 0.127204),
4448                c64::new(0.803838, 0.957595),
4449                c64::new(0.235096, 0.623109),
4450                c64::new(0.768703, 0.694038),
4451                c64::new(0.379656, 0.317182),
4452                c64::new(0.637745, 0.389882),
4453                c64::new(0.516254, 0.426718),
4454                c64::new(0.314915, 0.771417),
4455                c64::new(0.500097, 0.104434),
4456                c64::new(0.647588, 0.223342),
4457                c64::new(0.774185, 0.184224),
4458                c64::new(0.960569, 0.062188),
4459                c64::new(0.453213, 0.008999),
4460                c64::new(0.709832, 0.812121),
4461                c64::new(0.682145, 0.462596),
4462                c64::new(0.083441, 0.795369),
4463                c64::new(0.159183, 0.982480),
4464                c64::new(0.426025, 0.760261),
4465                c64::new(0.148704, 0.293468),
4466                c64::new(0.832499, 0.765547),
4467                c64::new(0.228840, 0.472538),
4468                c64::new(0.059984, 0.390391),
4469                c64::new(0.482423, 0.957724),
4470                c64::new(0.842010, 0.987434),
4471                c64::new(0.385056, 0.052797),
4472                c64::new(0.977742, 0.422514),
4473                c64::new(0.102317, 0.434259),
4474                c64::new(0.255053, 0.538431),
4475                c64::new(0.926015, 0.508161),
4476                c64::new(0.898991, 0.845158),
4477                c64::new(0.588937, 0.823437),
4478                c64::new(0.487999, 0.869617),
4479                c64::new(0.154551, 0.400082),
4480                c64::new(0.010964, 0.004314),
4481                c64::new(0.734884, 0.272391),
4482                c64::new(0.272488, 0.328222),
4483                c64::new(0.179140, 0.871644),
4484                c64::new(0.690670, 0.929218),
4485                c64::new(0.345124, 0.628851),
4486                c64::new(0.202151, 0.822823),
4487            ],
4488            [
4489                c64::new(0.000000, 0.000000),
4490                c64::new(0.000000, 0.000000),
4491                c64::new(0.000000, 0.000000),
4492                c64::new(0.000000, 0.000000),
4493                c64::new(0.000000, 0.000000),
4494                c64::new(0.000000, 0.000000),
4495                c64::new(0.000000, 0.000000),
4496                c64::new(0.000000, 0.000000),
4497                c64::new(0.000000, 0.000000),
4498                c64::new(0.000000, 0.000000),
4499                c64::new(0.000000, 0.000000),
4500                c64::new(0.000000, 0.000000),
4501                c64::new(0.000000, 0.000000),
4502                c64::new(0.000000, 0.000000),
4503                c64::new(0.000000, 0.000000),
4504                c64::new(0.735244, 0.648389),
4505                c64::new(0.404006, 0.742885),
4506                c64::new(0.841040, 0.372941),
4507                c64::new(0.376585, 0.171119),
4508                c64::new(0.379345, 0.290793),
4509                c64::new(0.974902, 0.284359),
4510                c64::new(0.339845, 0.372387),
4511                c64::new(0.510283, 0.097024),
4512                c64::new(0.313688, 0.202658),
4513                c64::new(0.901789, 0.659984),
4514                c64::new(0.161707, 0.397154),
4515                c64::new(0.366609, 0.727116),
4516                c64::new(0.969650, 0.997864),
4517                c64::new(0.562091, 0.464392),
4518                c64::new(0.235726, 0.003537),
4519                c64::new(0.342560, 0.113092),
4520                c64::new(0.866232, 0.116060),
4521                c64::new(0.050457, 0.039689),
4522                c64::new(0.059197, 0.395785),
4523                c64::new(0.729158, 0.362577),
4524                c64::new(0.219059, 0.033233),
4525                c64::new(0.037553, 0.799813),
4526                c64::new(0.703727, 0.548888),
4527                c64::new(0.538787, 0.150539),
4528                c64::new(0.773617, 0.052906),
4529                c64::new(0.689023, 0.666266),
4530                c64::new(0.488228, 0.036400),
4531                c64::new(0.699439, 0.589869),
4532                c64::new(0.994067, 0.012801),
4533                c64::new(0.230714, 0.986099),
4534                c64::new(0.558274, 0.294239),
4535                c64::new(0.797241, 0.917226),
4536                c64::new(0.721611, 0.000435),
4537                c64::new(0.792361, 0.968039),
4538                c64::new(0.440256, 0.682418),
4539                c64::new(0.525702, 0.179734),
4540                c64::new(0.864027, 0.799144),
4541                c64::new(0.828210, 0.069105),
4542                c64::new(0.448220, 0.890020),
4543                c64::new(0.253954, 0.189809),
4544                c64::new(0.274033, 0.096953),
4545                c64::new(0.929008, 0.295046),
4546                c64::new(0.301024, 0.798143),
4547                c64::new(0.308140, 0.832541),
4548                c64::new(0.773130, 0.536980),
4549                c64::new(0.022837, 0.687518),
4550                c64::new(0.849632, 0.856421),
4551                c64::new(0.125587, 0.859170),
4552                c64::new(0.679994, 0.715336),
4553                c64::new(0.262491, 0.105062),
4554                c64::new(0.078057, 0.659324),
4555                c64::new(0.041488, 0.683008),
4556                c64::new(0.547994, 0.040802),
4557                c64::new(0.034698, 0.190690),
4558                c64::new(0.272914, 0.140549),
4559                c64::new(0.316603, 0.867679),
4560                c64::new(0.320706, 0.533576),
4561                c64::new(0.238152, 0.751955),
4562                c64::new(0.335698, 0.117406),
4563                c64::new(0.953892, 0.288300),
4564                c64::new(0.796714, 0.844719),
4565                c64::new(0.108367, 0.975809),
4566                c64::new(0.155480, 0.781712),
4567                c64::new(0.402051, 0.903873),
4568                c64::new(0.457915, 0.555736),
4569                c64::new(0.663592, 0.583719),
4570                c64::new(0.950692, 0.983393),
4571                c64::new(0.093302, 0.447040),
4572                c64::new(0.722098, 0.611867),
4573                c64::new(0.063848, 0.063716),
4574                c64::new(0.897905, 0.015183),
4575                c64::new(0.545538, 0.806946),
4576                c64::new(0.411816, 0.995557),
4577                c64::new(0.439471, 0.609904),
4578                c64::new(0.721325, 0.224354),
4579                c64::new(0.543109, 0.625237),
4580                c64::new(0.491476, 0.517450),
4581                c64::new(0.048539, 0.347591),
4582                c64::new(0.361001, 0.007827),
4583                c64::new(0.976649, 0.193139),
4584                c64::new(0.161901, 0.907522),
4585                c64::new(0.652200, 0.511186),
4586                c64::new(0.316799, 0.007711),
4587                c64::new(0.530285, 0.254500),
4588                c64::new(0.465437, 0.978259),
4589            ],
4590            [
4591                c64::new(0.000000, 0.000000),
4592                c64::new(0.000000, 0.000000),
4593                c64::new(0.000000, 0.000000),
4594                c64::new(0.000000, 0.000000),
4595                c64::new(0.000000, 0.000000),
4596                c64::new(0.000000, 0.000000),
4597                c64::new(0.000000, 0.000000),
4598                c64::new(0.000000, 0.000000),
4599                c64::new(0.000000, 0.000000),
4600                c64::new(0.000000, 0.000000),
4601                c64::new(0.000000, 0.000000),
4602                c64::new(0.000000, 0.000000),
4603                c64::new(0.000000, 0.000000),
4604                c64::new(0.000000, 0.000000),
4605                c64::new(0.000000, 0.000000),
4606                c64::new(0.000000, 0.000000),
4607                c64::new(0.740842, 0.783866),
4608                c64::new(0.033385, 0.042925),
4609                c64::new(0.575596, 0.812848),
4610                c64::new(0.904745, 0.508162),
4611                c64::new(0.472407, 0.052847),
4612                c64::new(0.122701, 0.368541),
4613                c64::new(0.251666, 0.743719),
4614                c64::new(0.462145, 0.980271),
4615                c64::new(0.583311, 0.242405),
4616                c64::new(0.320579, 0.455996),
4617                c64::new(0.085088, 0.882172),
4618                c64::new(0.884200, 0.597737),
4619                c64::new(0.709772, 0.860837),
4620                c64::new(0.882575, 0.229343),
4621                c64::new(0.785658, 0.435296),
4622                c64::new(0.010676, 0.618796),
4623                c64::new(0.549745, 0.331950),
4624                c64::new(0.195679, 0.631380),
4625                c64::new(0.984996, 0.975261),
4626                c64::new(0.248163, 0.459661),
4627                c64::new(0.152879, 0.480971),
4628                c64::new(0.336315, 0.540395),
4629                c64::new(0.300499, 0.432347),
4630                c64::new(0.383623, 0.785044),
4631                c64::new(0.316381, 0.691250),
4632                c64::new(0.877756, 0.115295),
4633                c64::new(0.357677, 0.445853),
4634                c64::new(0.657477, 0.809514),
4635                c64::new(0.939017, 0.197572),
4636                c64::new(0.679222, 0.413273),
4637                c64::new(0.678824, 0.530290),
4638                c64::new(0.238824, 0.971717),
4639                c64::new(0.701926, 0.760123),
4640                c64::new(0.539227, 0.158329),
4641                c64::new(0.309239, 0.022726),
4642                c64::new(0.251704, 0.546854),
4643                c64::new(0.271569, 0.411367),
4644                c64::new(0.227215, 0.526785),
4645                c64::new(0.919411, 0.734374),
4646                c64::new(0.718807, 0.683201),
4647                c64::new(0.780541, 0.135578),
4648                c64::new(0.770898, 0.642002),
4649                c64::new(0.612331, 0.702958),
4650                c64::new(0.598458, 0.310000),
4651                c64::new(0.949549, 0.513887),
4652                c64::new(0.470771, 0.856472),
4653                c64::new(0.797922, 0.502809),
4654                c64::new(0.912868, 0.474236),
4655                c64::new(0.838611, 0.095393),
4656                c64::new(0.992794, 0.425593),
4657                c64::new(0.037090, 0.691406),
4658                c64::new(0.052643, 0.667864),
4659                c64::new(0.982393, 0.692716),
4660                c64::new(0.529457, 0.603488),
4661                c64::new(0.670193, 0.336718),
4662                c64::new(0.556342, 0.271673),
4663                c64::new(0.469207, 0.272442),
4664                c64::new(0.974720, 0.329922),
4665                c64::new(0.594939, 0.340691),
4666                c64::new(0.278813, 0.306808),
4667                c64::new(0.861661, 0.850804),
4668                c64::new(0.041141, 0.953087),
4669                c64::new(0.196310, 0.962632),
4670                c64::new(0.080603, 0.641448),
4671                c64::new(0.492321, 0.754173),
4672                c64::new(0.716660, 0.205709),
4673                c64::new(0.961207, 0.561262),
4674                c64::new(0.317460, 0.921434),
4675                c64::new(0.399585, 0.280991),
4676                c64::new(0.222316, 0.465773),
4677                c64::new(0.879807, 0.317272),
4678                c64::new(0.829285, 0.625259),
4679                c64::new(0.418587, 0.176443),
4680                c64::new(0.217018, 0.340260),
4681                c64::new(0.607509, 0.352298),
4682                c64::new(0.142951, 0.054512),
4683                c64::new(0.130994, 0.346119),
4684                c64::new(0.623081, 0.658988),
4685                c64::new(0.387066, 0.909583),
4686                c64::new(0.614997, 0.503082),
4687                c64::new(0.022170, 0.969789),
4688                c64::new(0.309229, 0.064041),
4689                c64::new(0.526816, 0.491999),
4690                c64::new(0.399190, 0.940576),
4691            ],
4692            [
4693                c64::new(0.000000, 0.000000),
4694                c64::new(0.000000, 0.000000),
4695                c64::new(0.000000, 0.000000),
4696                c64::new(0.000000, 0.000000),
4697                c64::new(0.000000, 0.000000),
4698                c64::new(0.000000, 0.000000),
4699                c64::new(0.000000, 0.000000),
4700                c64::new(0.000000, 0.000000),
4701                c64::new(0.000000, 0.000000),
4702                c64::new(0.000000, 0.000000),
4703                c64::new(0.000000, 0.000000),
4704                c64::new(0.000000, 0.000000),
4705                c64::new(0.000000, 0.000000),
4706                c64::new(0.000000, 0.000000),
4707                c64::new(0.000000, 0.000000),
4708                c64::new(0.000000, 0.000000),
4709                c64::new(0.000000, 0.000000),
4710                c64::new(0.063767, 0.969424),
4711                c64::new(0.791789, 0.340409),
4712                c64::new(0.569635, 0.428131),
4713                c64::new(0.567881, 0.622286),
4714                c64::new(0.822358, 0.401580),
4715                c64::new(0.075380, 0.043813),
4716                c64::new(0.372989, 0.722281),
4717                c64::new(0.567670, 0.469555),
4718                c64::new(0.542539, 0.712902),
4719                c64::new(0.759956, 0.109597),
4720                c64::new(0.762471, 0.135956),
4721                c64::new(0.673440, 0.215577),
4722                c64::new(0.699551, 0.165429),
4723                c64::new(0.840807, 0.410416),
4724                c64::new(0.457256, 0.129448),
4725                c64::new(0.055652, 0.037775),
4726                c64::new(0.018296, 0.447113),
4727                c64::new(0.544935, 0.366760),
4728                c64::new(0.546950, 0.497241),
4729                c64::new(0.960863, 0.010089),
4730                c64::new(0.475636, 0.881121),
4731                c64::new(0.927500, 0.348824),
4732                c64::new(0.476186, 0.342071),
4733                c64::new(0.989443, 0.904209),
4734                c64::new(0.681820, 0.013746),
4735                c64::new(0.251894, 0.048605),
4736                c64::new(0.733044, 0.103096),
4737                c64::new(0.667786, 0.375581),
4738                c64::new(0.239180, 0.293539),
4739                c64::new(0.093310, 0.780990),
4740                c64::new(0.110455, 0.282434),
4741                c64::new(0.453472, 0.046739),
4742                c64::new(0.267683, 0.872115),
4743                c64::new(0.591873, 0.452040),
4744                c64::new(0.723499, 0.927522),
4745                c64::new(0.999531, 0.119166),
4746                c64::new(0.662849, 0.712324),
4747                c64::new(0.455840, 0.021098),
4748                c64::new(0.935933, 0.532738),
4749                c64::new(0.300185, 0.904884),
4750                c64::new(0.636084, 0.517001),
4751                c64::new(0.673406, 0.070859),
4752                c64::new(0.571675, 0.111066),
4753                c64::new(0.567300, 0.719249),
4754                c64::new(0.360746, 0.446870),
4755                c64::new(0.298526, 0.871757),
4756                c64::new(0.805616, 0.975627),
4757                c64::new(0.752524, 0.121227),
4758                c64::new(0.433470, 0.667452),
4759                c64::new(0.086683, 0.998162),
4760                c64::new(0.547694, 0.406948),
4761                c64::new(0.848343, 0.534504),
4762                c64::new(0.392504, 0.620580),
4763                c64::new(0.032446, 0.713862),
4764                c64::new(0.135602, 0.651080),
4765                c64::new(0.322579, 0.643641),
4766                c64::new(0.708088, 0.583642),
4767                c64::new(0.802348, 0.539662),
4768                c64::new(0.805814, 0.925074),
4769                c64::new(0.676603, 0.402843),
4770                c64::new(0.394300, 0.501153),
4771                c64::new(0.717314, 0.645844),
4772                c64::new(0.771667, 0.559784),
4773                c64::new(0.411441, 0.157799),
4774                c64::new(0.652021, 0.190861),
4775                c64::new(0.018805, 0.342677),
4776                c64::new(0.254884, 0.541318),
4777                c64::new(0.735083, 0.432794),
4778                c64::new(0.413014, 0.018520),
4779                c64::new(0.581146, 0.818187),
4780                c64::new(0.470701, 0.038610),
4781                c64::new(0.516790, 0.948117),
4782                c64::new(0.420665, 0.006452),
4783                c64::new(0.769275, 0.051267),
4784                c64::new(0.548390, 0.934181),
4785                c64::new(0.793766, 0.647510),
4786                c64::new(0.635297, 0.601192),
4787                c64::new(0.739021, 0.547473),
4788                c64::new(0.451937, 0.859916),
4789                c64::new(0.770549, 0.283643),
4790                c64::new(0.082991, 0.376299),
4791                c64::new(0.113400, 0.640015),
4792                c64::new(0.917996, 0.521593),
4793            ],
4794            [
4795                c64::new(0.000000, 0.000000),
4796                c64::new(0.000000, 0.000000),
4797                c64::new(0.000000, 0.000000),
4798                c64::new(0.000000, 0.000000),
4799                c64::new(0.000000, 0.000000),
4800                c64::new(0.000000, 0.000000),
4801                c64::new(0.000000, 0.000000),
4802                c64::new(0.000000, 0.000000),
4803                c64::new(0.000000, 0.000000),
4804                c64::new(0.000000, 0.000000),
4805                c64::new(0.000000, 0.000000),
4806                c64::new(0.000000, 0.000000),
4807                c64::new(0.000000, 0.000000),
4808                c64::new(0.000000, 0.000000),
4809                c64::new(0.000000, 0.000000),
4810                c64::new(0.000000, 0.000000),
4811                c64::new(0.000000, 0.000000),
4812                c64::new(0.000000, 0.000000),
4813                c64::new(0.163089, 0.273389),
4814                c64::new(0.811467, 0.633897),
4815                c64::new(0.237482, 0.157601),
4816                c64::new(0.876689, 0.419349),
4817                c64::new(0.377798, 0.350626),
4818                c64::new(0.398159, 0.260687),
4819                c64::new(0.168427, 0.267953),
4820                c64::new(0.617739, 0.621212),
4821                c64::new(0.474590, 0.457928),
4822                c64::new(0.589916, 0.095024),
4823                c64::new(0.560993, 0.042352),
4824                c64::new(0.243610, 0.399045),
4825                c64::new(0.104052, 0.822881),
4826                c64::new(0.600130, 0.714676),
4827                c64::new(0.228513, 0.791459),
4828                c64::new(0.112508, 0.591510),
4829                c64::new(0.530863, 0.351889),
4830                c64::new(0.281428, 0.139930),
4831                c64::new(0.533596, 0.437076),
4832                c64::new(0.479364, 0.294141),
4833                c64::new(0.689434, 0.192899),
4834                c64::new(0.957118, 0.600044),
4835                c64::new(0.888687, 0.262283),
4836                c64::new(0.751957, 0.362791),
4837                c64::new(0.465120, 0.534709),
4838                c64::new(0.245114, 0.408272),
4839                c64::new(0.110807, 0.079697),
4840                c64::new(0.902414, 0.237419),
4841                c64::new(0.137727, 0.858949),
4842                c64::new(0.648885, 0.874984),
4843                c64::new(0.776626, 0.657961),
4844                c64::new(0.003596, 0.388133),
4845                c64::new(0.414637, 0.883650),
4846                c64::new(0.864253, 0.306317),
4847                c64::new(0.974860, 0.163915),
4848                c64::new(0.133261, 0.134175),
4849                c64::new(0.106598, 0.639122),
4850                c64::new(0.983986, 0.236873),
4851                c64::new(0.988355, 0.949175),
4852                c64::new(0.473965, 0.287890),
4853                c64::new(0.014822, 0.112255),
4854                c64::new(0.319707, 0.598309),
4855                c64::new(0.695511, 0.720575),
4856                c64::new(0.892346, 0.174677),
4857                c64::new(0.333509, 0.767643),
4858                c64::new(0.877922, 0.811274),
4859                c64::new(0.177003, 0.725204),
4860                c64::new(0.562330, 0.927592),
4861                c64::new(0.677940, 0.473708),
4862                c64::new(0.931128, 0.769879),
4863                c64::new(0.705611, 0.743969),
4864                c64::new(0.940165, 0.029474),
4865                c64::new(0.624727, 0.146186),
4866                c64::new(0.884796, 0.728655),
4867                c64::new(0.270486, 0.631052),
4868                c64::new(0.238674, 0.530211),
4869                c64::new(0.380656, 0.118154),
4870                c64::new(0.320399, 0.615927),
4871                c64::new(0.775070, 0.067789),
4872                c64::new(0.617536, 0.188078),
4873                c64::new(0.423775, 0.974675),
4874                c64::new(0.995372, 0.984541),
4875                c64::new(0.195728, 0.500860),
4876                c64::new(0.488122, 0.174121),
4877                c64::new(0.995921, 0.874693),
4878                c64::new(0.822936, 0.576571),
4879                c64::new(0.221050, 0.729484),
4880                c64::new(0.621477, 0.962220),
4881                c64::new(0.435125, 0.614258),
4882                c64::new(0.197838, 0.553756),
4883                c64::new(0.806655, 0.700758),
4884                c64::new(0.271395, 0.119299),
4885                c64::new(0.116925, 0.143481),
4886                c64::new(0.706521, 0.121832),
4887                c64::new(0.402241, 0.227492),
4888                c64::new(0.629821, 0.534489),
4889                c64::new(0.107307, 0.514986),
4890                c64::new(0.741552, 0.516972),
4891                c64::new(0.320052, 0.096161),
4892                c64::new(0.600597, 0.605190),
4893                c64::new(0.045159, 0.975452),
4894                c64::new(0.727018, 0.293743),
4895            ],
4896            [
4897                c64::new(0.000000, 0.000000),
4898                c64::new(0.000000, 0.000000),
4899                c64::new(0.000000, 0.000000),
4900                c64::new(0.000000, 0.000000),
4901                c64::new(0.000000, 0.000000),
4902                c64::new(0.000000, 0.000000),
4903                c64::new(0.000000, 0.000000),
4904                c64::new(0.000000, 0.000000),
4905                c64::new(0.000000, 0.000000),
4906                c64::new(0.000000, 0.000000),
4907                c64::new(0.000000, 0.000000),
4908                c64::new(0.000000, 0.000000),
4909                c64::new(0.000000, 0.000000),
4910                c64::new(0.000000, 0.000000),
4911                c64::new(0.000000, 0.000000),
4912                c64::new(0.000000, 0.000000),
4913                c64::new(0.000000, 0.000000),
4914                c64::new(0.000000, 0.000000),
4915                c64::new(0.000000, 0.000000),
4916                c64::new(0.799229, 0.849440),
4917                c64::new(0.099408, 0.593789),
4918                c64::new(0.690383, 0.925689),
4919                c64::new(0.000777, 0.854768),
4920                c64::new(0.311094, 0.640667),
4921                c64::new(0.230836, 0.098775),
4922                c64::new(0.671578, 0.265600),
4923                c64::new(0.331314, 0.919857),
4924                c64::new(0.965351, 0.769148),
4925                c64::new(0.726478, 0.154061),
4926                c64::new(0.419581, 0.792037),
4927                c64::new(0.433292, 0.819654),
4928                c64::new(0.704997, 0.266928),
4929                c64::new(0.779640, 0.440752),
4930                c64::new(0.493419, 0.321085),
4931                c64::new(0.413336, 0.741590),
4932                c64::new(0.979612, 0.935775),
4933                c64::new(0.283523, 0.203253),
4934                c64::new(0.756698, 0.352677),
4935                c64::new(0.366930, 0.627752),
4936                c64::new(0.556794, 0.418028),
4937                c64::new(0.893619, 0.448382),
4938                c64::new(0.883760, 0.254408),
4939                c64::new(0.195357, 0.291014),
4940                c64::new(0.135402, 0.608488),
4941                c64::new(0.250140, 0.522668),
4942                c64::new(0.396578, 0.651867),
4943                c64::new(0.808536, 0.304212),
4944                c64::new(0.482107, 0.176170),
4945                c64::new(0.795186, 0.822652),
4946                c64::new(0.956763, 0.915771),
4947                c64::new(0.465354, 0.837144),
4948                c64::new(0.831110, 0.145040),
4949                c64::new(0.734009, 0.107015),
4950                c64::new(0.028545, 0.238481),
4951                c64::new(0.165469, 0.455555),
4952                c64::new(0.420377, 0.333274),
4953                c64::new(0.153989, 0.879627),
4954                c64::new(0.260940, 0.588463),
4955                c64::new(0.444215, 0.123470),
4956                c64::new(0.639518, 0.256302),
4957                c64::new(0.213616, 0.223893),
4958                c64::new(0.449585, 0.799953),
4959                c64::new(0.447798, 0.432008),
4960                c64::new(0.476905, 0.565120),
4961                c64::new(0.730520, 0.436029),
4962                c64::new(0.201089, 0.692167),
4963                c64::new(0.939982, 0.266081),
4964                c64::new(0.233604, 0.730289),
4965                c64::new(0.477286, 0.038042),
4966                c64::new(0.584854, 0.206653),
4967                c64::new(0.555491, 0.221860),
4968                c64::new(0.696481, 0.590005),
4969                c64::new(0.822097, 0.027754),
4970                c64::new(0.295132, 0.257796),
4971                c64::new(0.433091, 0.071554),
4972                c64::new(0.592868, 0.573857),
4973                c64::new(0.542998, 0.689213),
4974                c64::new(0.343058, 0.437967),
4975                c64::new(0.098596, 0.941911),
4976                c64::new(0.885031, 0.234322),
4977                c64::new(0.348074, 0.780896),
4978                c64::new(0.641003, 0.332914),
4979                c64::new(0.732398, 0.034702),
4980                c64::new(0.996535, 0.487708),
4981                c64::new(0.777322, 0.903445),
4982                c64::new(0.165493, 0.729339),
4983                c64::new(0.343228, 0.118311),
4984                c64::new(0.613768, 0.935661),
4985                c64::new(0.036355, 0.612588),
4986                c64::new(0.443394, 0.886640),
4987                c64::new(0.741300, 0.811158),
4988                c64::new(0.964496, 0.952623),
4989                c64::new(0.834799, 0.696315),
4990                c64::new(0.156811, 0.501020),
4991                c64::new(0.513243, 0.510997),
4992                c64::new(0.753263, 0.372360),
4993                c64::new(0.948367, 0.387329),
4994                c64::new(0.616189, 0.382091),
4995                c64::new(0.241661, 0.029919),
4996                c64::new(0.586426, 0.459524),
4997            ],
4998            [
4999                c64::new(0.000000, 0.000000),
5000                c64::new(0.000000, 0.000000),
5001                c64::new(0.000000, 0.000000),
5002                c64::new(0.000000, 0.000000),
5003                c64::new(0.000000, 0.000000),
5004                c64::new(0.000000, 0.000000),
5005                c64::new(0.000000, 0.000000),
5006                c64::new(0.000000, 0.000000),
5007                c64::new(0.000000, 0.000000),
5008                c64::new(0.000000, 0.000000),
5009                c64::new(0.000000, 0.000000),
5010                c64::new(0.000000, 0.000000),
5011                c64::new(0.000000, 0.000000),
5012                c64::new(0.000000, 0.000000),
5013                c64::new(0.000000, 0.000000),
5014                c64::new(0.000000, 0.000000),
5015                c64::new(0.000000, 0.000000),
5016                c64::new(0.000000, 0.000000),
5017                c64::new(0.000000, 0.000000),
5018                c64::new(0.000000, 0.000000),
5019                c64::new(0.672241, 0.016195),
5020                c64::new(0.223985, 0.694470),
5021                c64::new(0.762024, 0.430071),
5022                c64::new(0.379920, 0.586203),
5023                c64::new(0.062118, 0.232354),
5024                c64::new(0.183123, 0.842981),
5025                c64::new(0.231409, 0.122464),
5026                c64::new(0.676716, 0.365949),
5027                c64::new(0.710958, 0.965847),
5028                c64::new(0.524080, 0.983746),
5029                c64::new(0.310669, 0.917988),
5030                c64::new(0.981849, 0.818970),
5031                c64::new(0.165776, 0.398590),
5032                c64::new(0.949855, 0.684631),
5033                c64::new(0.225315, 0.871847),
5034                c64::new(0.627879, 0.857924),
5035                c64::new(0.823507, 0.494359),
5036                c64::new(0.602040, 0.628310),
5037                c64::new(0.436062, 0.418872),
5038                c64::new(0.593698, 0.762824),
5039                c64::new(0.309493, 0.307448),
5040                c64::new(0.305630, 0.978485),
5041                c64::new(0.519521, 0.164075),
5042                c64::new(0.130780, 0.355422),
5043                c64::new(0.931170, 0.955420),
5044                c64::new(0.639897, 0.783504),
5045                c64::new(0.975837, 0.798297),
5046                c64::new(0.728007, 0.961547),
5047                c64::new(0.905566, 0.368517),
5048                c64::new(0.502515, 0.820132),
5049                c64::new(0.254013, 0.605336),
5050                c64::new(0.667199, 0.329764),
5051                c64::new(0.402744, 0.539325),
5052                c64::new(0.204232, 0.516049),
5053                c64::new(0.307148, 0.723428),
5054                c64::new(0.327617, 0.892380),
5055                c64::new(0.621088, 0.756344),
5056                c64::new(0.607570, 0.875468),
5057                c64::new(0.326344, 0.441220),
5058                c64::new(0.840396, 0.816170),
5059                c64::new(0.837914, 0.284873),
5060                c64::new(0.333503, 0.896922),
5061                c64::new(0.294999, 0.097194),
5062                c64::new(0.453152, 0.354745),
5063                c64::new(0.795984, 0.320055),
5064                c64::new(0.532080, 0.975280),
5065                c64::new(0.914625, 0.894096),
5066                c64::new(0.303106, 0.159891),
5067                c64::new(0.455389, 0.364989),
5068                c64::new(0.775027, 0.873579),
5069                c64::new(0.823579, 0.973852),
5070                c64::new(0.745249, 0.238750),
5071                c64::new(0.055775, 0.462683),
5072                c64::new(0.601197, 0.949506),
5073                c64::new(0.413830, 0.503666),
5074                c64::new(0.922602, 0.762575),
5075                c64::new(0.908801, 0.618141),
5076                c64::new(0.617544, 0.759948),
5077                c64::new(0.903917, 0.909115),
5078                c64::new(0.211280, 0.466552),
5079                c64::new(0.753063, 0.448736),
5080                c64::new(0.842201, 0.192935),
5081                c64::new(0.158894, 0.373644),
5082                c64::new(0.919627, 0.968862),
5083                c64::new(0.825325, 0.659396),
5084                c64::new(0.789320, 0.508504),
5085                c64::new(0.373330, 0.844511),
5086                c64::new(0.618077, 0.165491),
5087                c64::new(0.106393, 0.792885),
5088                c64::new(0.779730, 0.614132),
5089                c64::new(0.069509, 0.054985),
5090                c64::new(0.255013, 0.866241),
5091                c64::new(0.347205, 0.127296),
5092                c64::new(0.821637, 0.346251),
5093                c64::new(0.377968, 0.148919),
5094                c64::new(0.327687, 0.247203),
5095                c64::new(0.992984, 0.799573),
5096                c64::new(0.108255, 0.788765),
5097                c64::new(0.514215, 0.731791),
5098                c64::new(0.580841, 0.514226),
5099            ],
5100            [
5101                c64::new(0.000000, 0.000000),
5102                c64::new(0.000000, 0.000000),
5103                c64::new(0.000000, 0.000000),
5104                c64::new(0.000000, 0.000000),
5105                c64::new(0.000000, 0.000000),
5106                c64::new(0.000000, 0.000000),
5107                c64::new(0.000000, 0.000000),
5108                c64::new(0.000000, 0.000000),
5109                c64::new(0.000000, 0.000000),
5110                c64::new(0.000000, 0.000000),
5111                c64::new(0.000000, 0.000000),
5112                c64::new(0.000000, 0.000000),
5113                c64::new(0.000000, 0.000000),
5114                c64::new(0.000000, 0.000000),
5115                c64::new(0.000000, 0.000000),
5116                c64::new(0.000000, 0.000000),
5117                c64::new(0.000000, 0.000000),
5118                c64::new(0.000000, 0.000000),
5119                c64::new(0.000000, 0.000000),
5120                c64::new(0.000000, 0.000000),
5121                c64::new(0.000000, 0.000000),
5122                c64::new(0.885363, 0.687837),
5123                c64::new(0.551166, 0.497917),
5124                c64::new(0.825376, 0.185158),
5125                c64::new(0.045191, 0.719457),
5126                c64::new(0.452973, 0.349091),
5127                c64::new(0.661357, 0.599048),
5128                c64::new(0.991222, 0.543534),
5129                c64::new(0.975168, 0.325773),
5130                c64::new(0.462447, 0.624167),
5131                c64::new(0.483536, 0.218702),
5132                c64::new(0.201990, 0.668881),
5133                c64::new(0.077028, 0.989315),
5134                c64::new(0.855804, 0.885904),
5135                c64::new(0.089533, 0.460653),
5136                c64::new(0.578667, 0.405857),
5137                c64::new(0.601327, 0.146957),
5138                c64::new(0.661265, 0.659130),
5139                c64::new(0.490284, 0.578846),
5140                c64::new(0.986696, 0.309514),
5141                c64::new(0.477208, 0.265428),
5142                c64::new(0.979748, 0.260254),
5143                c64::new(0.996741, 0.981340),
5144                c64::new(0.660590, 0.753325),
5145                c64::new(0.009068, 0.196276),
5146                c64::new(0.452666, 0.974502),
5147                c64::new(0.707275, 0.469765),
5148                c64::new(0.977787, 0.306894),
5149                c64::new(0.183545, 0.394689),
5150                c64::new(0.564566, 0.242242),
5151                c64::new(0.008744, 0.926465),
5152                c64::new(0.728964, 0.260786),
5153                c64::new(0.008644, 0.199844),
5154                c64::new(0.869522, 0.570320),
5155                c64::new(0.642926, 0.152818),
5156                c64::new(0.560739, 0.735914),
5157                c64::new(0.553056, 0.796059),
5158                c64::new(0.296222, 0.502716),
5159                c64::new(0.971138, 0.725463),
5160                c64::new(0.717370, 0.437528),
5161                c64::new(0.938721, 0.781635),
5162                c64::new(0.646146, 0.450928),
5163                c64::new(0.816899, 0.183706),
5164                c64::new(0.668215, 0.594327),
5165                c64::new(0.800453, 0.757989),
5166                c64::new(0.874637, 0.532485),
5167                c64::new(0.353945, 0.197614),
5168                c64::new(0.418672, 0.150726),
5169                c64::new(0.797229, 0.437803),
5170                c64::new(0.535866, 0.718961),
5171                c64::new(0.651383, 0.553907),
5172                c64::new(0.686525, 0.063237),
5173                c64::new(0.220896, 0.586850),
5174                c64::new(0.759162, 0.440712),
5175                c64::new(0.459859, 0.363337),
5176                c64::new(0.724872, 0.732944),
5177                c64::new(0.916895, 0.809516),
5178                c64::new(0.881414, 0.287903),
5179                c64::new(0.029766, 0.786832),
5180                c64::new(0.322803, 0.370826),
5181                c64::new(0.970439, 0.027472),
5182                c64::new(0.067497, 0.125748),
5183                c64::new(0.175802, 0.880536),
5184                c64::new(0.600612, 0.027345),
5185                c64::new(0.257356, 0.999831),
5186                c64::new(0.726091, 0.442390),
5187                c64::new(0.336480, 0.731606),
5188                c64::new(0.833272, 0.576771),
5189                c64::new(0.727876, 0.447540),
5190                c64::new(0.334698, 0.543269),
5191                c64::new(0.756506, 0.721196),
5192                c64::new(0.063982, 0.026329),
5193                c64::new(0.340649, 0.276816),
5194                c64::new(0.829566, 0.630828),
5195                c64::new(0.184451, 0.657306),
5196                c64::new(0.813606, 0.393297),
5197                c64::new(0.113836, 0.230948),
5198                c64::new(0.303218, 0.011066),
5199                c64::new(0.429184, 0.856271),
5200                c64::new(0.029322, 0.582039),
5201            ],
5202            [
5203                c64::new(0.000000, 0.000000),
5204                c64::new(0.000000, 0.000000),
5205                c64::new(0.000000, 0.000000),
5206                c64::new(0.000000, 0.000000),
5207                c64::new(0.000000, 0.000000),
5208                c64::new(0.000000, 0.000000),
5209                c64::new(0.000000, 0.000000),
5210                c64::new(0.000000, 0.000000),
5211                c64::new(0.000000, 0.000000),
5212                c64::new(0.000000, 0.000000),
5213                c64::new(0.000000, 0.000000),
5214                c64::new(0.000000, 0.000000),
5215                c64::new(0.000000, 0.000000),
5216                c64::new(0.000000, 0.000000),
5217                c64::new(0.000000, 0.000000),
5218                c64::new(0.000000, 0.000000),
5219                c64::new(0.000000, 0.000000),
5220                c64::new(0.000000, 0.000000),
5221                c64::new(0.000000, 0.000000),
5222                c64::new(0.000000, 0.000000),
5223                c64::new(0.000000, 0.000000),
5224                c64::new(0.000000, 0.000000),
5225                c64::new(0.051513, 0.173577),
5226                c64::new(0.012726, 0.804310),
5227                c64::new(0.487114, 0.268684),
5228                c64::new(0.556880, 0.368487),
5229                c64::new(0.019847, 0.348510),
5230                c64::new(0.287455, 0.112647),
5231                c64::new(0.783608, 0.193450),
5232                c64::new(0.427013, 0.790532),
5233                c64::new(0.920399, 0.585603),
5234                c64::new(0.808125, 0.645392),
5235                c64::new(0.556897, 0.343202),
5236                c64::new(0.029028, 0.123232),
5237                c64::new(0.585008, 0.217228),
5238                c64::new(0.796710, 0.248294),
5239                c64::new(0.530208, 0.972322),
5240                c64::new(0.615333, 0.740084),
5241                c64::new(0.614021, 0.452392),
5242                c64::new(0.386514, 0.033972),
5243                c64::new(0.585173, 0.707130),
5244                c64::new(0.381525, 0.189543),
5245                c64::new(0.134625, 0.217450),
5246                c64::new(0.826885, 0.260257),
5247                c64::new(0.855527, 0.988953),
5248                c64::new(0.297988, 0.560438),
5249                c64::new(0.248692, 0.642258),
5250                c64::new(0.362976, 0.026407),
5251                c64::new(0.211771, 0.805659),
5252                c64::new(0.332951, 0.431480),
5253                c64::new(0.286264, 0.597393),
5254                c64::new(0.012763, 0.772031),
5255                c64::new(0.256025, 0.593176),
5256                c64::new(0.610110, 0.690080),
5257                c64::new(0.818794, 0.155757),
5258                c64::new(0.280947, 0.253321),
5259                c64::new(0.921852, 0.983459),
5260                c64::new(0.864363, 0.596182),
5261                c64::new(0.110890, 0.061237),
5262                c64::new(0.225254, 0.975588),
5263                c64::new(0.132167, 0.137406),
5264                c64::new(0.637429, 0.975110),
5265                c64::new(0.754447, 0.606436),
5266                c64::new(0.930467, 0.965452),
5267                c64::new(0.599985, 0.607495),
5268                c64::new(0.525392, 0.916377),
5269                c64::new(0.676208, 0.452939),
5270                c64::new(0.791249, 0.716835),
5271                c64::new(0.012510, 0.441904),
5272                c64::new(0.359214, 0.832472),
5273                c64::new(0.961906, 0.090752),
5274                c64::new(0.421605, 0.118564),
5275                c64::new(0.675362, 0.081498),
5276                c64::new(0.051258, 0.162947),
5277                c64::new(0.445172, 0.175669),
5278                c64::new(0.365096, 0.747562),
5279                c64::new(0.043119, 0.642289),
5280                c64::new(0.984830, 0.221750),
5281                c64::new(0.927521, 0.232740),
5282                c64::new(0.581800, 0.055723),
5283                c64::new(0.207550, 0.288908),
5284                c64::new(0.199472, 0.404946),
5285                c64::new(0.720699, 0.082526),
5286                c64::new(0.473826, 0.097967),
5287                c64::new(0.365177, 0.745804),
5288                c64::new(0.292566, 0.809429),
5289                c64::new(0.616526, 0.809386),
5290                c64::new(0.989486, 0.939155),
5291                c64::new(0.542755, 0.588260),
5292                c64::new(0.738519, 0.314831),
5293                c64::new(0.900225, 0.235369),
5294                c64::new(0.938270, 0.358360),
5295                c64::new(0.287220, 0.197597),
5296                c64::new(0.709490, 0.615926),
5297                c64::new(0.484982, 0.431445),
5298                c64::new(0.601948, 0.793442),
5299                c64::new(0.442526, 0.099519),
5300                c64::new(0.601774, 0.606681),
5301                c64::new(0.628607, 0.555036),
5302                c64::new(0.625620, 0.996953),
5303            ],
5304            [
5305                c64::new(0.000000, 0.000000),
5306                c64::new(0.000000, 0.000000),
5307                c64::new(0.000000, 0.000000),
5308                c64::new(0.000000, 0.000000),
5309                c64::new(0.000000, 0.000000),
5310                c64::new(0.000000, 0.000000),
5311                c64::new(0.000000, 0.000000),
5312                c64::new(0.000000, 0.000000),
5313                c64::new(0.000000, 0.000000),
5314                c64::new(0.000000, 0.000000),
5315                c64::new(0.000000, 0.000000),
5316                c64::new(0.000000, 0.000000),
5317                c64::new(0.000000, 0.000000),
5318                c64::new(0.000000, 0.000000),
5319                c64::new(0.000000, 0.000000),
5320                c64::new(0.000000, 0.000000),
5321                c64::new(0.000000, 0.000000),
5322                c64::new(0.000000, 0.000000),
5323                c64::new(0.000000, 0.000000),
5324                c64::new(0.000000, 0.000000),
5325                c64::new(0.000000, 0.000000),
5326                c64::new(0.000000, 0.000000),
5327                c64::new(0.000000, 0.000000),
5328                c64::new(0.289155, 0.961740),
5329                c64::new(0.490163, 0.088500),
5330                c64::new(0.372419, 0.612549),
5331                c64::new(0.869340, 0.285781),
5332                c64::new(0.002317, 0.070976),
5333                c64::new(0.005120, 0.356129),
5334                c64::new(0.508412, 0.360240),
5335                c64::new(0.715763, 0.347053),
5336                c64::new(0.937713, 0.875848),
5337                c64::new(0.363204, 0.882866),
5338                c64::new(0.376593, 0.758217),
5339                c64::new(0.766621, 0.097073),
5340                c64::new(0.152066, 0.523066),
5341                c64::new(0.257496, 0.170583),
5342                c64::new(0.941468, 0.488247),
5343                c64::new(0.644193, 0.726258),
5344                c64::new(0.403752, 0.151882),
5345                c64::new(0.191348, 0.460387),
5346                c64::new(0.465699, 0.155976),
5347                c64::new(0.535878, 0.078421),
5348                c64::new(0.436712, 0.042002),
5349                c64::new(0.008183, 0.699912),
5350                c64::new(0.582933, 0.937441),
5351                c64::new(0.968276, 0.026208),
5352                c64::new(0.927708, 0.855369),
5353                c64::new(0.424361, 0.201965),
5354                c64::new(0.205309, 0.838301),
5355                c64::new(0.791709, 0.293998),
5356                c64::new(0.447689, 0.301747),
5357                c64::new(0.321360, 0.945269),
5358                c64::new(0.393706, 0.896704),
5359                c64::new(0.665387, 0.551242),
5360                c64::new(0.132991, 0.791550),
5361                c64::new(0.271829, 0.894138),
5362                c64::new(0.934476, 0.586796),
5363                c64::new(0.280712, 0.200650),
5364                c64::new(0.937166, 0.946780),
5365                c64::new(0.089695, 0.980144),
5366                c64::new(0.549917, 0.105686),
5367                c64::new(0.283430, 0.174846),
5368                c64::new(0.123791, 0.684295),
5369                c64::new(0.718919, 0.013677),
5370                c64::new(0.402465, 0.732890),
5371                c64::new(0.250679, 0.162083),
5372                c64::new(0.849216, 0.705755),
5373                c64::new(0.304303, 0.999280),
5374                c64::new(0.675160, 0.251512),
5375                c64::new(0.779423, 0.329941),
5376                c64::new(0.758445, 0.811183),
5377                c64::new(0.238767, 0.950807),
5378                c64::new(0.589344, 0.386455),
5379                c64::new(0.889184, 0.658848),
5380                c64::new(0.713055, 0.231224),
5381                c64::new(0.879370, 0.873876),
5382                c64::new(0.231817, 0.119096),
5383                c64::new(0.238865, 0.366560),
5384                c64::new(0.531642, 0.847822),
5385                c64::new(0.868093, 0.882441),
5386                c64::new(0.896504, 0.336205),
5387                c64::new(0.159768, 0.878179),
5388                c64::new(0.615317, 0.067198),
5389                c64::new(0.981414, 0.315545),
5390                c64::new(0.081170, 0.321401),
5391                c64::new(0.326565, 0.265870),
5392                c64::new(0.343486, 0.584561),
5393                c64::new(0.190563, 0.573878),
5394                c64::new(0.665755, 0.611720),
5395                c64::new(0.611632, 0.490041),
5396                c64::new(0.973960, 0.889928),
5397                c64::new(0.541750, 0.118986),
5398                c64::new(0.457407, 0.501023),
5399                c64::new(0.907357, 0.229604),
5400                c64::new(0.872756, 0.287523),
5401                c64::new(0.057295, 0.976400),
5402                c64::new(0.466542, 0.612046),
5403                c64::new(0.791288, 0.483691),
5404                c64::new(0.126724, 0.673544),
5405            ],
5406            [
5407                c64::new(0.000000, 0.000000),
5408                c64::new(0.000000, 0.000000),
5409                c64::new(0.000000, 0.000000),
5410                c64::new(0.000000, 0.000000),
5411                c64::new(0.000000, 0.000000),
5412                c64::new(0.000000, 0.000000),
5413                c64::new(0.000000, 0.000000),
5414                c64::new(0.000000, 0.000000),
5415                c64::new(0.000000, 0.000000),
5416                c64::new(0.000000, 0.000000),
5417                c64::new(0.000000, 0.000000),
5418                c64::new(0.000000, 0.000000),
5419                c64::new(0.000000, 0.000000),
5420                c64::new(0.000000, 0.000000),
5421                c64::new(0.000000, 0.000000),
5422                c64::new(0.000000, 0.000000),
5423                c64::new(0.000000, 0.000000),
5424                c64::new(0.000000, 0.000000),
5425                c64::new(0.000000, 0.000000),
5426                c64::new(0.000000, 0.000000),
5427                c64::new(0.000000, 0.000000),
5428                c64::new(0.000000, 0.000000),
5429                c64::new(0.000000, 0.000000),
5430                c64::new(0.000000, 0.000000),
5431                c64::new(0.847072, 0.082530),
5432                c64::new(0.183976, 0.432579),
5433                c64::new(0.037648, 0.047921),
5434                c64::new(0.510633, 0.086960),
5435                c64::new(0.245840, 0.448125),
5436                c64::new(0.934751, 0.032999),
5437                c64::new(0.469982, 0.188153),
5438                c64::new(0.040879, 0.717910),
5439                c64::new(0.402241, 0.370923),
5440                c64::new(0.529969, 0.942187),
5441                c64::new(0.450408, 0.533942),
5442                c64::new(0.657583, 0.093236),
5443                c64::new(0.154370, 0.981789),
5444                c64::new(0.636435, 0.253734),
5445                c64::new(0.940168, 0.372809),
5446                c64::new(0.908495, 0.928031),
5447                c64::new(0.460247, 0.293298),
5448                c64::new(0.980880, 0.388466),
5449                c64::new(0.527768, 0.141638),
5450                c64::new(0.866410, 0.752786),
5451                c64::new(0.597654, 0.265190),
5452                c64::new(0.626204, 0.650233),
5453                c64::new(0.062501, 0.080421),
5454                c64::new(0.838740, 0.788869),
5455                c64::new(0.745186, 0.801858),
5456                c64::new(0.239010, 0.532903),
5457                c64::new(0.645842, 0.829909),
5458                c64::new(0.395571, 0.600123),
5459                c64::new(0.409420, 0.502887),
5460                c64::new(0.083691, 0.975611),
5461                c64::new(0.922538, 0.904089),
5462                c64::new(0.569499, 0.793621),
5463                c64::new(0.379816, 0.098092),
5464                c64::new(0.958372, 0.986638),
5465                c64::new(0.749293, 0.545442),
5466                c64::new(0.478899, 0.059587),
5467                c64::new(0.379918, 0.404380),
5468                c64::new(0.606773, 0.643400),
5469                c64::new(0.194018, 0.385942),
5470                c64::new(0.813690, 0.041803),
5471                c64::new(0.349065, 0.282158),
5472                c64::new(0.942123, 0.460220),
5473                c64::new(0.996575, 0.819298),
5474                c64::new(0.158097, 0.152044),
5475                c64::new(0.550044, 0.914536),
5476                c64::new(0.441441, 0.587730),
5477                c64::new(0.541700, 0.265326),
5478                c64::new(0.846507, 0.885090),
5479                c64::new(0.014993, 0.503610),
5480                c64::new(0.310628, 0.935434),
5481                c64::new(0.125796, 0.258505),
5482                c64::new(0.298452, 0.274630),
5483                c64::new(0.719749, 0.816482),
5484                c64::new(0.513980, 0.792151),
5485                c64::new(0.491703, 0.166468),
5486                c64::new(0.042092, 0.379490),
5487                c64::new(0.583096, 0.090002),
5488                c64::new(0.201434, 0.389102),
5489                c64::new(0.964109, 0.840889),
5490                c64::new(0.901285, 0.438227),
5491                c64::new(0.613267, 0.987794),
5492                c64::new(0.003690, 0.311719),
5493                c64::new(0.680027, 0.823017),
5494                c64::new(0.809014, 0.344832),
5495                c64::new(0.482488, 0.192916),
5496                c64::new(0.600872, 0.221161),
5497                c64::new(0.954395, 0.816372),
5498                c64::new(0.231132, 0.813224),
5499                c64::new(0.887985, 0.686116),
5500                c64::new(0.367708, 0.928285),
5501                c64::new(0.029087, 0.585519),
5502                c64::new(0.050048, 0.752287),
5503                c64::new(0.246735, 0.830854),
5504                c64::new(0.439015, 0.088483),
5505                c64::new(0.571588, 0.233914),
5506                c64::new(0.761459, 0.042672),
5507            ],
5508            [
5509                c64::new(0.000000, 0.000000),
5510                c64::new(0.000000, 0.000000),
5511                c64::new(0.000000, 0.000000),
5512                c64::new(0.000000, 0.000000),
5513                c64::new(0.000000, 0.000000),
5514                c64::new(0.000000, 0.000000),
5515                c64::new(0.000000, 0.000000),
5516                c64::new(0.000000, 0.000000),
5517                c64::new(0.000000, 0.000000),
5518                c64::new(0.000000, 0.000000),
5519                c64::new(0.000000, 0.000000),
5520                c64::new(0.000000, 0.000000),
5521                c64::new(0.000000, 0.000000),
5522                c64::new(0.000000, 0.000000),
5523                c64::new(0.000000, 0.000000),
5524                c64::new(0.000000, 0.000000),
5525                c64::new(0.000000, 0.000000),
5526                c64::new(0.000000, 0.000000),
5527                c64::new(0.000000, 0.000000),
5528                c64::new(0.000000, 0.000000),
5529                c64::new(0.000000, 0.000000),
5530                c64::new(0.000000, 0.000000),
5531                c64::new(0.000000, 0.000000),
5532                c64::new(0.000000, 0.000000),
5533                c64::new(0.000000, 0.000000),
5534                c64::new(0.134721, 0.117495),
5535                c64::new(0.710757, 0.317919),
5536                c64::new(0.835706, 0.516099),
5537                c64::new(0.641673, 0.250428),
5538                c64::new(0.016463, 0.719739),
5539                c64::new(0.117612, 0.615379),
5540                c64::new(0.640435, 0.940191),
5541                c64::new(0.890575, 0.006322),
5542                c64::new(0.745815, 0.878253),
5543                c64::new(0.553585, 0.285384),
5544                c64::new(0.296112, 0.200575),
5545                c64::new(0.181999, 0.137015),
5546                c64::new(0.180876, 0.296113),
5547                c64::new(0.000414, 0.041770),
5548                c64::new(0.492262, 0.358157),
5549                c64::new(0.099339, 0.610093),
5550                c64::new(0.701999, 0.938898),
5551                c64::new(0.717859, 0.434411),
5552                c64::new(0.882205, 0.923658),
5553                c64::new(0.880753, 0.797947),
5554                c64::new(0.404337, 0.482164),
5555                c64::new(0.566132, 0.194229),
5556                c64::new(0.546535, 0.831949),
5557                c64::new(0.430047, 0.736391),
5558                c64::new(0.541614, 0.518207),
5559                c64::new(0.940717, 0.430477),
5560                c64::new(0.876921, 0.944464),
5561                c64::new(0.790170, 0.270346),
5562                c64::new(0.956553, 0.793296),
5563                c64::new(0.365244, 0.346208),
5564                c64::new(0.152071, 0.273308),
5565                c64::new(0.419713, 0.965446),
5566                c64::new(0.566255, 0.933235),
5567                c64::new(0.718807, 0.589764),
5568                c64::new(0.459619, 0.668015),
5569                c64::new(0.874463, 0.463188),
5570                c64::new(0.774406, 0.864261),
5571                c64::new(0.887313, 0.262216),
5572                c64::new(0.840591, 0.951061),
5573                c64::new(0.877501, 0.953548),
5574                c64::new(0.626295, 0.354906),
5575                c64::new(0.343095, 0.324552),
5576                c64::new(0.224416, 0.391491),
5577                c64::new(0.587904, 0.072234),
5578                c64::new(0.711380, 0.685617),
5579                c64::new(0.998138, 0.118515),
5580                c64::new(0.387209, 0.498534),
5581                c64::new(0.423211, 0.790793),
5582                c64::new(0.284595, 0.584091),
5583                c64::new(0.903383, 0.623149),
5584                c64::new(0.644151, 0.597755),
5585                c64::new(0.160947, 0.229379),
5586                c64::new(0.680522, 0.169160),
5587                c64::new(0.827088, 0.498378),
5588                c64::new(0.299603, 0.444109),
5589                c64::new(0.050926, 0.077077),
5590                c64::new(0.238776, 0.471601),
5591                c64::new(0.890046, 0.631329),
5592                c64::new(0.768302, 0.089965),
5593                c64::new(0.293780, 0.402001),
5594                c64::new(0.765867, 0.878908),
5595                c64::new(0.454987, 0.268004),
5596                c64::new(0.496033, 0.697280),
5597                c64::new(0.979176, 0.622676),
5598                c64::new(0.762197, 0.171706),
5599                c64::new(0.184477, 0.441072),
5600                c64::new(0.214003, 0.013070),
5601                c64::new(0.068075, 0.659970),
5602                c64::new(0.057238, 0.123197),
5603                c64::new(0.515342, 0.203352),
5604                c64::new(0.755313, 0.696643),
5605                c64::new(0.181033, 0.784380),
5606                c64::new(0.835228, 0.683653),
5607                c64::new(0.411146, 0.802499),
5608                c64::new(0.277201, 0.328529),
5609            ],
5610            [
5611                c64::new(0.000000, 0.000000),
5612                c64::new(0.000000, 0.000000),
5613                c64::new(0.000000, 0.000000),
5614                c64::new(0.000000, 0.000000),
5615                c64::new(0.000000, 0.000000),
5616                c64::new(0.000000, 0.000000),
5617                c64::new(0.000000, 0.000000),
5618                c64::new(0.000000, 0.000000),
5619                c64::new(0.000000, 0.000000),
5620                c64::new(0.000000, 0.000000),
5621                c64::new(0.000000, 0.000000),
5622                c64::new(0.000000, 0.000000),
5623                c64::new(0.000000, 0.000000),
5624                c64::new(0.000000, 0.000000),
5625                c64::new(0.000000, 0.000000),
5626                c64::new(0.000000, 0.000000),
5627                c64::new(0.000000, 0.000000),
5628                c64::new(0.000000, 0.000000),
5629                c64::new(0.000000, 0.000000),
5630                c64::new(0.000000, 0.000000),
5631                c64::new(0.000000, 0.000000),
5632                c64::new(0.000000, 0.000000),
5633                c64::new(0.000000, 0.000000),
5634                c64::new(0.000000, 0.000000),
5635                c64::new(0.000000, 0.000000),
5636                c64::new(0.000000, 0.000000),
5637                c64::new(0.702421, 0.765904),
5638                c64::new(0.839961, 0.999068),
5639                c64::new(0.017109, 0.780875),
5640                c64::new(0.756169, 0.251776),
5641                c64::new(0.532281, 0.590446),
5642                c64::new(0.803530, 0.821690),
5643                c64::new(0.748807, 0.832200),
5644                c64::new(0.782620, 0.540693),
5645                c64::new(0.427245, 0.848720),
5646                c64::new(0.922237, 0.388498),
5647                c64::new(0.451346, 0.374304),
5648                c64::new(0.794544, 0.959751),
5649                c64::new(0.834146, 0.927950),
5650                c64::new(0.028056, 0.686113),
5651                c64::new(0.514599, 0.160004),
5652                c64::new(0.996838, 0.326637),
5653                c64::new(0.892468, 0.988518),
5654                c64::new(0.775975, 0.432043),
5655                c64::new(0.550931, 0.503653),
5656                c64::new(0.614399, 0.845978),
5657                c64::new(0.821343, 0.810769),
5658                c64::new(0.022260, 0.603564),
5659                c64::new(0.425300, 0.887315),
5660                c64::new(0.942777, 0.947226),
5661                c64::new(0.880103, 0.765437),
5662                c64::new(0.515144, 0.344826),
5663                c64::new(0.086979, 0.704080),
5664                c64::new(0.381330, 0.923357),
5665                c64::new(0.325314, 0.883021),
5666                c64::new(0.366910, 0.949177),
5667                c64::new(0.688811, 0.436700),
5668                c64::new(0.983523, 0.061837),
5669                c64::new(0.566587, 0.008725),
5670                c64::new(0.369999, 0.833578),
5671                c64::new(0.937723, 0.538905),
5672                c64::new(0.718395, 0.459362),
5673                c64::new(0.199505, 0.478610),
5674                c64::new(0.796923, 0.844344),
5675                c64::new(0.006066, 0.367275),
5676                c64::new(0.089481, 0.877109),
5677                c64::new(0.582316, 0.045363),
5678                c64::new(0.253497, 0.419430),
5679                c64::new(0.400703, 0.367109),
5680                c64::new(0.625370, 0.261142),
5681                c64::new(0.419139, 0.031708),
5682                c64::new(0.449513, 0.107413),
5683                c64::new(0.049282, 0.406617),
5684                c64::new(0.152414, 0.191101),
5685                c64::new(0.364252, 0.321594),
5686                c64::new(0.494791, 0.706791),
5687                c64::new(0.281913, 0.125534),
5688                c64::new(0.683524, 0.775035),
5689                c64::new(0.867788, 0.694527),
5690                c64::new(0.423488, 0.931051),
5691                c64::new(0.788618, 0.122292),
5692                c64::new(0.902456, 0.971440),
5693                c64::new(0.422054, 0.782146),
5694                c64::new(0.845611, 0.481976),
5695                c64::new(0.570494, 0.151423),
5696                c64::new(0.725791, 0.506390),
5697                c64::new(0.329420, 0.792650),
5698                c64::new(0.650810, 0.325382),
5699                c64::new(0.466256, 0.864707),
5700                c64::new(0.202334, 0.072871),
5701                c64::new(0.033598, 0.554956),
5702                c64::new(0.949537, 0.014101),
5703                c64::new(0.076042, 0.536352),
5704                c64::new(0.127306, 0.706655),
5705                c64::new(0.981507, 0.998651),
5706                c64::new(0.953146, 0.311490),
5707                c64::new(0.435276, 0.463180),
5708                c64::new(0.377466, 0.019256),
5709                c64::new(0.750418, 0.156447),
5710                c64::new(0.402671, 0.417217),
5711            ],
5712            [
5713                c64::new(0.000000, 0.000000),
5714                c64::new(0.000000, 0.000000),
5715                c64::new(0.000000, 0.000000),
5716                c64::new(0.000000, 0.000000),
5717                c64::new(0.000000, 0.000000),
5718                c64::new(0.000000, 0.000000),
5719                c64::new(0.000000, 0.000000),
5720                c64::new(0.000000, 0.000000),
5721                c64::new(0.000000, 0.000000),
5722                c64::new(0.000000, 0.000000),
5723                c64::new(0.000000, 0.000000),
5724                c64::new(0.000000, 0.000000),
5725                c64::new(0.000000, 0.000000),
5726                c64::new(0.000000, 0.000000),
5727                c64::new(0.000000, 0.000000),
5728                c64::new(0.000000, 0.000000),
5729                c64::new(0.000000, 0.000000),
5730                c64::new(0.000000, 0.000000),
5731                c64::new(0.000000, 0.000000),
5732                c64::new(0.000000, 0.000000),
5733                c64::new(0.000000, 0.000000),
5734                c64::new(0.000000, 0.000000),
5735                c64::new(0.000000, 0.000000),
5736                c64::new(0.000000, 0.000000),
5737                c64::new(0.000000, 0.000000),
5738                c64::new(0.000000, 0.000000),
5739                c64::new(0.000000, 0.000000),
5740                c64::new(0.288354, 0.069300),
5741                c64::new(0.637948, 0.869916),
5742                c64::new(0.192646, 0.602937),
5743                c64::new(0.523864, 0.227529),
5744                c64::new(0.751533, 0.841225),
5745                c64::new(0.232521, 0.433072),
5746                c64::new(0.511121, 0.002728),
5747                c64::new(0.748941, 0.771176),
5748                c64::new(0.323678, 0.031203),
5749                c64::new(0.741931, 0.831453),
5750                c64::new(0.925469, 0.970031),
5751                c64::new(0.905204, 0.590407),
5752                c64::new(0.599409, 0.863042),
5753                c64::new(0.507210, 0.588771),
5754                c64::new(0.878830, 0.890152),
5755                c64::new(0.332500, 0.324549),
5756                c64::new(0.238287, 0.462902),
5757                c64::new(0.719274, 0.917094),
5758                c64::new(0.035883, 0.591034),
5759                c64::new(0.437419, 0.505450),
5760                c64::new(0.191261, 0.675281),
5761                c64::new(0.006677, 0.900233),
5762                c64::new(0.320398, 0.174150),
5763                c64::new(0.039423, 0.512047),
5764                c64::new(0.945177, 0.277938),
5765                c64::new(0.426195, 0.939573),
5766                c64::new(0.333030, 0.921074),
5767                c64::new(0.367822, 0.257916),
5768                c64::new(0.668833, 0.636193),
5769                c64::new(0.813007, 0.930248),
5770                c64::new(0.855751, 0.573301),
5771                c64::new(0.597131, 0.445240),
5772                c64::new(0.208038, 0.008813),
5773                c64::new(0.626267, 0.802330),
5774                c64::new(0.397644, 0.780801),
5775                c64::new(0.026732, 0.524766),
5776                c64::new(0.993118, 0.864911),
5777                c64::new(0.275436, 0.659924),
5778                c64::new(0.207874, 0.935148),
5779                c64::new(0.580159, 0.458235),
5780                c64::new(0.923498, 0.233373),
5781                c64::new(0.590309, 0.007575),
5782                c64::new(0.573844, 0.650567),
5783                c64::new(0.413193, 0.085211),
5784                c64::new(0.053832, 0.158010),
5785                c64::new(0.483921, 0.800576),
5786                c64::new(0.567822, 0.116363),
5787                c64::new(0.941227, 0.715853),
5788                c64::new(0.790322, 0.404079),
5789                c64::new(0.296792, 0.646534),
5790                c64::new(0.947274, 0.268211),
5791                c64::new(0.737550, 0.933737),
5792                c64::new(0.759094, 0.961509),
5793                c64::new(0.475370, 0.616588),
5794                c64::new(0.774080, 0.619592),
5795                c64::new(0.793377, 0.310516),
5796                c64::new(0.561490, 0.743030),
5797                c64::new(0.661350, 0.913628),
5798                c64::new(0.400355, 0.312450),
5799                c64::new(0.009455, 0.504541),
5800                c64::new(0.678427, 0.031561),
5801                c64::new(0.338970, 0.809862),
5802                c64::new(0.727223, 0.558381),
5803                c64::new(0.693748, 0.997720),
5804                c64::new(0.593051, 0.966409),
5805                c64::new(0.674978, 0.561222),
5806                c64::new(0.230805, 0.928958),
5807                c64::new(0.319079, 0.186830),
5808                c64::new(0.951224, 0.201895),
5809                c64::new(0.502603, 0.098175),
5810                c64::new(0.363395, 0.219970),
5811                c64::new(0.915262, 0.306267),
5812                c64::new(0.751837, 0.067867),
5813            ],
5814            [
5815                c64::new(0.000000, 0.000000),
5816                c64::new(0.000000, 0.000000),
5817                c64::new(0.000000, 0.000000),
5818                c64::new(0.000000, 0.000000),
5819                c64::new(0.000000, 0.000000),
5820                c64::new(0.000000, 0.000000),
5821                c64::new(0.000000, 0.000000),
5822                c64::new(0.000000, 0.000000),
5823                c64::new(0.000000, 0.000000),
5824                c64::new(0.000000, 0.000000),
5825                c64::new(0.000000, 0.000000),
5826                c64::new(0.000000, 0.000000),
5827                c64::new(0.000000, 0.000000),
5828                c64::new(0.000000, 0.000000),
5829                c64::new(0.000000, 0.000000),
5830                c64::new(0.000000, 0.000000),
5831                c64::new(0.000000, 0.000000),
5832                c64::new(0.000000, 0.000000),
5833                c64::new(0.000000, 0.000000),
5834                c64::new(0.000000, 0.000000),
5835                c64::new(0.000000, 0.000000),
5836                c64::new(0.000000, 0.000000),
5837                c64::new(0.000000, 0.000000),
5838                c64::new(0.000000, 0.000000),
5839                c64::new(0.000000, 0.000000),
5840                c64::new(0.000000, 0.000000),
5841                c64::new(0.000000, 0.000000),
5842                c64::new(0.000000, 0.000000),
5843                c64::new(0.928632, 0.014294),
5844                c64::new(0.623636, 0.733350),
5845                c64::new(0.719040, 0.705779),
5846                c64::new(0.150044, 0.107562),
5847                c64::new(0.424208, 0.397618),
5848                c64::new(0.006779, 0.524027),
5849                c64::new(0.777143, 0.455639),
5850                c64::new(0.179864, 0.836513),
5851                c64::new(0.145424, 0.154232),
5852                c64::new(0.998484, 0.316628),
5853                c64::new(0.668597, 0.515389),
5854                c64::new(0.656614, 0.401649),
5855                c64::new(0.204017, 0.061244),
5856                c64::new(0.208303, 0.683078),
5857                c64::new(0.810729, 0.445351),
5858                c64::new(0.060864, 0.446500),
5859                c64::new(0.249369, 0.216105),
5860                c64::new(0.081067, 0.975701),
5861                c64::new(0.970867, 0.414631),
5862                c64::new(0.771116, 0.123571),
5863                c64::new(0.939932, 0.975482),
5864                c64::new(0.133711, 0.801477),
5865                c64::new(0.314497, 0.378443),
5866                c64::new(0.960412, 0.449325),
5867                c64::new(0.171597, 0.313348),
5868                c64::new(0.075398, 0.000693),
5869                c64::new(0.165520, 0.185899),
5870                c64::new(0.595150, 0.578187),
5871                c64::new(0.630520, 0.771998),
5872                c64::new(0.401871, 0.943809),
5873                c64::new(0.264347, 0.604535),
5874                c64::new(0.200030, 0.561144),
5875                c64::new(0.881772, 0.681708),
5876                c64::new(0.556242, 0.686678),
5877                c64::new(0.960705, 0.817919),
5878                c64::new(0.229932, 0.262362),
5879                c64::new(0.242204, 0.701172),
5880                c64::new(0.188162, 0.300419),
5881                c64::new(0.522348, 0.574836),
5882                c64::new(0.470990, 0.671590),
5883                c64::new(0.926416, 0.969330),
5884                c64::new(0.103682, 0.210421),
5885                c64::new(0.756438, 0.649655),
5886                c64::new(0.073072, 0.096394),
5887                c64::new(0.533524, 0.877982),
5888                c64::new(0.776069, 0.355412),
5889                c64::new(0.984760, 0.487311),
5890                c64::new(0.046849, 0.964595),
5891                c64::new(0.207738, 0.756174),
5892                c64::new(0.201928, 0.954603),
5893                c64::new(0.929979, 0.866708),
5894                c64::new(0.978434, 0.450073),
5895                c64::new(0.054542, 0.494125),
5896                c64::new(0.587824, 0.223926),
5897                c64::new(0.128772, 0.423246),
5898                c64::new(0.895176, 0.886990),
5899                c64::new(0.588247, 0.501663),
5900                c64::new(0.537568, 0.454227),
5901                c64::new(0.948885, 0.074807),
5902                c64::new(0.909492, 0.256017),
5903                c64::new(0.643756, 0.629815),
5904                c64::new(0.081138, 0.922447),
5905                c64::new(0.694561, 0.211555),
5906                c64::new(0.336716, 0.757590),
5907                c64::new(0.128734, 0.672381),
5908                c64::new(0.922387, 0.892989),
5909                c64::new(0.075463, 0.271327),
5910                c64::new(0.791137, 0.376125),
5911                c64::new(0.518887, 0.029713),
5912                c64::new(0.476135, 0.434405),
5913                c64::new(0.766806, 0.522100),
5914                c64::new(0.090336, 0.500756),
5915            ],
5916            [
5917                c64::new(0.000000, 0.000000),
5918                c64::new(0.000000, 0.000000),
5919                c64::new(0.000000, 0.000000),
5920                c64::new(0.000000, 0.000000),
5921                c64::new(0.000000, 0.000000),
5922                c64::new(0.000000, 0.000000),
5923                c64::new(0.000000, 0.000000),
5924                c64::new(0.000000, 0.000000),
5925                c64::new(0.000000, 0.000000),
5926                c64::new(0.000000, 0.000000),
5927                c64::new(0.000000, 0.000000),
5928                c64::new(0.000000, 0.000000),
5929                c64::new(0.000000, 0.000000),
5930                c64::new(0.000000, 0.000000),
5931                c64::new(0.000000, 0.000000),
5932                c64::new(0.000000, 0.000000),
5933                c64::new(0.000000, 0.000000),
5934                c64::new(0.000000, 0.000000),
5935                c64::new(0.000000, 0.000000),
5936                c64::new(0.000000, 0.000000),
5937                c64::new(0.000000, 0.000000),
5938                c64::new(0.000000, 0.000000),
5939                c64::new(0.000000, 0.000000),
5940                c64::new(0.000000, 0.000000),
5941                c64::new(0.000000, 0.000000),
5942                c64::new(0.000000, 0.000000),
5943                c64::new(0.000000, 0.000000),
5944                c64::new(0.000000, 0.000000),
5945                c64::new(0.000000, 0.000000),
5946                c64::new(0.680779, 0.563839),
5947                c64::new(0.315215, 0.442118),
5948                c64::new(0.573534, 0.464481),
5949                c64::new(0.168558, 0.932330),
5950                c64::new(0.646310, 0.889925),
5951                c64::new(0.188574, 0.549096),
5952                c64::new(0.084223, 0.135694),
5953                c64::new(0.152856, 0.197392),
5954                c64::new(0.522790, 0.990399),
5955                c64::new(0.415518, 0.932995),
5956                c64::new(0.924193, 0.300508),
5957                c64::new(0.903897, 0.621065),
5958                c64::new(0.077679, 0.673859),
5959                c64::new(0.126101, 0.977766),
5960                c64::new(0.250092, 0.191678),
5961                c64::new(0.765216, 0.580964),
5962                c64::new(0.796742, 0.108554),
5963                c64::new(0.247215, 0.678409),
5964                c64::new(0.277292, 0.378846),
5965                c64::new(0.415253, 0.489091),
5966                c64::new(0.964074, 0.606494),
5967                c64::new(0.412454, 0.403663),
5968                c64::new(0.939715, 0.144333),
5969                c64::new(0.954734, 0.892460),
5970                c64::new(0.089493, 0.779992),
5971                c64::new(0.122855, 0.434266),
5972                c64::new(0.081651, 0.655056),
5973                c64::new(0.277337, 0.147456),
5974                c64::new(0.350739, 0.239010),
5975                c64::new(0.277188, 0.499880),
5976                c64::new(0.177255, 0.110972),
5977                c64::new(0.283030, 0.897528),
5978                c64::new(0.848949, 0.729184),
5979                c64::new(0.727881, 0.383386),
5980                c64::new(0.574032, 0.329352),
5981                c64::new(0.815679, 0.885693),
5982                c64::new(0.283870, 0.755946),
5983                c64::new(0.879925, 0.796970),
5984                c64::new(0.287090, 0.259367),
5985                c64::new(0.712576, 0.486397),
5986                c64::new(0.746372, 0.328527),
5987                c64::new(0.014562, 0.914873),
5988                c64::new(0.196638, 0.318923),
5989                c64::new(0.939782, 0.683047),
5990                c64::new(0.220371, 0.480508),
5991                c64::new(0.369133, 0.431275),
5992                c64::new(0.669206, 0.729253),
5993                c64::new(0.861328, 0.614278),
5994                c64::new(0.978438, 0.851836),
5995                c64::new(0.616812, 0.226828),
5996                c64::new(0.014539, 0.021849),
5997                c64::new(0.822437, 0.395025),
5998                c64::new(0.927630, 0.621066),
5999                c64::new(0.824863, 0.010540),
6000                c64::new(0.553708, 0.300130),
6001                c64::new(0.776251, 0.147879),
6002                c64::new(0.019079, 0.854687),
6003                c64::new(0.128524, 0.303232),
6004                c64::new(0.161871, 0.205345),
6005                c64::new(0.124224, 0.227913),
6006                c64::new(0.889258, 0.312434),
6007                c64::new(0.035476, 0.660393),
6008                c64::new(0.592208, 0.303752),
6009                c64::new(0.901217, 0.172900),
6010                c64::new(0.112475, 0.529248),
6011                c64::new(0.039528, 0.048004),
6012                c64::new(0.664706, 0.800502),
6013                c64::new(0.327749, 0.783531),
6014                c64::new(0.304708, 0.997066),
6015                c64::new(0.513420, 0.168063),
6016                c64::new(0.410556, 0.316992),
6017            ],
6018            [
6019                c64::new(0.000000, 0.000000),
6020                c64::new(0.000000, 0.000000),
6021                c64::new(0.000000, 0.000000),
6022                c64::new(0.000000, 0.000000),
6023                c64::new(0.000000, 0.000000),
6024                c64::new(0.000000, 0.000000),
6025                c64::new(0.000000, 0.000000),
6026                c64::new(0.000000, 0.000000),
6027                c64::new(0.000000, 0.000000),
6028                c64::new(0.000000, 0.000000),
6029                c64::new(0.000000, 0.000000),
6030                c64::new(0.000000, 0.000000),
6031                c64::new(0.000000, 0.000000),
6032                c64::new(0.000000, 0.000000),
6033                c64::new(0.000000, 0.000000),
6034                c64::new(0.000000, 0.000000),
6035                c64::new(0.000000, 0.000000),
6036                c64::new(0.000000, 0.000000),
6037                c64::new(0.000000, 0.000000),
6038                c64::new(0.000000, 0.000000),
6039                c64::new(0.000000, 0.000000),
6040                c64::new(0.000000, 0.000000),
6041                c64::new(0.000000, 0.000000),
6042                c64::new(0.000000, 0.000000),
6043                c64::new(0.000000, 0.000000),
6044                c64::new(0.000000, 0.000000),
6045                c64::new(0.000000, 0.000000),
6046                c64::new(0.000000, 0.000000),
6047                c64::new(0.000000, 0.000000),
6048                c64::new(0.000000, 0.000000),
6049                c64::new(0.787460, 0.030260),
6050                c64::new(0.801795, 0.627786),
6051                c64::new(0.285873, 0.686322),
6052                c64::new(0.775403, 0.687013),
6053                c64::new(0.094980, 0.264256),
6054                c64::new(0.079904, 0.162777),
6055                c64::new(0.072621, 0.754462),
6056                c64::new(0.990801, 0.572672),
6057                c64::new(0.831351, 0.710820),
6058                c64::new(0.858615, 0.377715),
6059                c64::new(0.027147, 0.665864),
6060                c64::new(0.217363, 0.866443),
6061                c64::new(0.707035, 0.821437),
6062                c64::new(0.345745, 0.969772),
6063                c64::new(0.235670, 0.079851),
6064                c64::new(0.568655, 0.400310),
6065                c64::new(0.649330, 0.916502),
6066                c64::new(0.042361, 0.773001),
6067                c64::new(0.313628, 0.904049),
6068                c64::new(0.615882, 0.800768),
6069                c64::new(0.875865, 0.374017),
6070                c64::new(0.431686, 0.335662),
6071                c64::new(0.948825, 0.759633),
6072                c64::new(0.881793, 0.023924),
6073                c64::new(0.274708, 0.589976),
6074                c64::new(0.482459, 0.362582),
6075                c64::new(0.966596, 0.006429),
6076                c64::new(0.999264, 0.059982),
6077                c64::new(0.752257, 0.934289),
6078                c64::new(0.591709, 0.597292),
6079                c64::new(0.231377, 0.146189),
6080                c64::new(0.241700, 0.960261),
6081                c64::new(0.448265, 0.522905),
6082                c64::new(0.581061, 0.329183),
6083                c64::new(0.460465, 0.933466),
6084                c64::new(0.229838, 0.866867),
6085                c64::new(0.689144, 0.692121),
6086                c64::new(0.486526, 0.578116),
6087                c64::new(0.891100, 0.969261),
6088                c64::new(0.702364, 0.198655),
6089                c64::new(0.327563, 0.945783),
6090                c64::new(0.411356, 0.033630),
6091                c64::new(0.489600, 0.976008),
6092                c64::new(0.116099, 0.740040),
6093                c64::new(0.488057, 0.313102),
6094                c64::new(0.863002, 0.190106),
6095                c64::new(0.625803, 0.133282),
6096                c64::new(0.686834, 0.937542),
6097                c64::new(0.257289, 0.801109),
6098                c64::new(0.378066, 0.190012),
6099                c64::new(0.558051, 0.715583),
6100                c64::new(0.000529, 0.004055),
6101                c64::new(0.424932, 0.457640),
6102                c64::new(0.017396, 0.744663),
6103                c64::new(0.800487, 0.419399),
6104                c64::new(0.087275, 0.801226),
6105                c64::new(0.237736, 0.527129),
6106                c64::new(0.822535, 0.777507),
6107                c64::new(0.820192, 0.525228),
6108                c64::new(0.209773, 0.617459),
6109                c64::new(0.053779, 0.949775),
6110                c64::new(0.115291, 0.855693),
6111                c64::new(0.567801, 0.888227),
6112                c64::new(0.271315, 0.092692),
6113                c64::new(0.493620, 0.911935),
6114                c64::new(0.037067, 0.477662),
6115                c64::new(0.159134, 0.931661),
6116                c64::new(0.997083, 0.439616),
6117                c64::new(0.117976, 0.646445),
6118                c64::new(0.154513, 0.504701),
6119            ],
6120            [
6121                c64::new(0.000000, 0.000000),
6122                c64::new(0.000000, 0.000000),
6123                c64::new(0.000000, 0.000000),
6124                c64::new(0.000000, 0.000000),
6125                c64::new(0.000000, 0.000000),
6126                c64::new(0.000000, 0.000000),
6127                c64::new(0.000000, 0.000000),
6128                c64::new(0.000000, 0.000000),
6129                c64::new(0.000000, 0.000000),
6130                c64::new(0.000000, 0.000000),
6131                c64::new(0.000000, 0.000000),
6132                c64::new(0.000000, 0.000000),
6133                c64::new(0.000000, 0.000000),
6134                c64::new(0.000000, 0.000000),
6135                c64::new(0.000000, 0.000000),
6136                c64::new(0.000000, 0.000000),
6137                c64::new(0.000000, 0.000000),
6138                c64::new(0.000000, 0.000000),
6139                c64::new(0.000000, 0.000000),
6140                c64::new(0.000000, 0.000000),
6141                c64::new(0.000000, 0.000000),
6142                c64::new(0.000000, 0.000000),
6143                c64::new(0.000000, 0.000000),
6144                c64::new(0.000000, 0.000000),
6145                c64::new(0.000000, 0.000000),
6146                c64::new(0.000000, 0.000000),
6147                c64::new(0.000000, 0.000000),
6148                c64::new(0.000000, 0.000000),
6149                c64::new(0.000000, 0.000000),
6150                c64::new(0.000000, 0.000000),
6151                c64::new(0.000000, 0.000000),
6152                c64::new(0.140138, 0.071674),
6153                c64::new(0.975502, 0.541554),
6154                c64::new(0.275948, 0.171194),
6155                c64::new(0.365138, 0.465518),
6156                c64::new(0.137805, 0.776210),
6157                c64::new(0.245550, 0.120454),
6158                c64::new(0.869530, 0.772682),
6159                c64::new(0.288553, 0.215842),
6160                c64::new(0.136829, 0.019483),
6161                c64::new(0.009384, 0.849946),
6162                c64::new(0.506560, 0.919152),
6163                c64::new(0.134280, 0.261640),
6164                c64::new(0.124997, 0.231915),
6165                c64::new(0.473885, 0.946449),
6166                c64::new(0.996759, 0.412659),
6167                c64::new(0.433863, 0.612710),
6168                c64::new(0.965073, 0.358656),
6169                c64::new(0.113152, 0.515233),
6170                c64::new(0.740752, 0.604666),
6171                c64::new(0.728119, 0.407021),
6172                c64::new(0.976962, 0.582090),
6173                c64::new(0.291462, 0.364608),
6174                c64::new(0.646786, 0.381119),
6175                c64::new(0.093932, 0.491290),
6176                c64::new(0.743225, 0.514136),
6177                c64::new(0.549217, 0.214169),
6178                c64::new(0.619430, 0.614920),
6179                c64::new(0.916178, 0.300604),
6180                c64::new(0.967381, 0.273828),
6181                c64::new(0.906354, 0.304740),
6182                c64::new(0.414396, 0.151451),
6183                c64::new(0.428243, 0.001305),
6184                c64::new(0.680172, 0.070404),
6185                c64::new(0.396098, 0.238335),
6186                c64::new(0.264861, 0.506710),
6187                c64::new(0.182229, 0.428885),
6188                c64::new(0.978060, 0.952945),
6189                c64::new(0.760246, 0.629492),
6190                c64::new(0.576727, 0.917568),
6191                c64::new(0.413628, 0.756818),
6192                c64::new(0.753249, 0.009970),
6193                c64::new(0.459267, 0.616996),
6194                c64::new(0.986139, 0.569455),
6195                c64::new(0.909302, 0.683984),
6196                c64::new(0.436890, 0.845689),
6197                c64::new(0.942748, 0.865839),
6198                c64::new(0.111274, 0.077348),
6199                c64::new(0.057448, 0.991013),
6200                c64::new(0.809427, 0.622816),
6201                c64::new(0.447975, 0.428509),
6202                c64::new(0.464079, 0.823557),
6203                c64::new(0.119724, 0.830360),
6204                c64::new(0.671749, 0.848045),
6205                c64::new(0.301023, 0.697826),
6206                c64::new(0.011135, 0.580421),
6207                c64::new(0.981546, 0.280422),
6208                c64::new(0.891786, 0.620942),
6209                c64::new(0.684455, 0.712140),
6210                c64::new(0.246158, 0.770796),
6211                c64::new(0.044686, 0.761402),
6212                c64::new(0.090128, 0.356289),
6213                c64::new(0.990248, 0.513372),
6214                c64::new(0.986424, 0.140793),
6215                c64::new(0.416767, 0.217947),
6216                c64::new(0.009809, 0.525178),
6217                c64::new(0.480546, 0.191721),
6218                c64::new(0.202437, 0.964897),
6219                c64::new(0.310777, 0.777483),
6220                c64::new(0.486027, 0.652922),
6221            ],
6222            [
6223                c64::new(0.000000, 0.000000),
6224                c64::new(0.000000, 0.000000),
6225                c64::new(0.000000, 0.000000),
6226                c64::new(0.000000, 0.000000),
6227                c64::new(0.000000, 0.000000),
6228                c64::new(0.000000, 0.000000),
6229                c64::new(0.000000, 0.000000),
6230                c64::new(0.000000, 0.000000),
6231                c64::new(0.000000, 0.000000),
6232                c64::new(0.000000, 0.000000),
6233                c64::new(0.000000, 0.000000),
6234                c64::new(0.000000, 0.000000),
6235                c64::new(0.000000, 0.000000),
6236                c64::new(0.000000, 0.000000),
6237                c64::new(0.000000, 0.000000),
6238                c64::new(0.000000, 0.000000),
6239                c64::new(0.000000, 0.000000),
6240                c64::new(0.000000, 0.000000),
6241                c64::new(0.000000, 0.000000),
6242                c64::new(0.000000, 0.000000),
6243                c64::new(0.000000, 0.000000),
6244                c64::new(0.000000, 0.000000),
6245                c64::new(0.000000, 0.000000),
6246                c64::new(0.000000, 0.000000),
6247                c64::new(0.000000, 0.000000),
6248                c64::new(0.000000, 0.000000),
6249                c64::new(0.000000, 0.000000),
6250                c64::new(0.000000, 0.000000),
6251                c64::new(0.000000, 0.000000),
6252                c64::new(0.000000, 0.000000),
6253                c64::new(0.000000, 0.000000),
6254                c64::new(0.000000, 0.000000),
6255                c64::new(0.857597, 0.311647),
6256                c64::new(0.260602, 0.377903),
6257                c64::new(0.626663, 0.902168),
6258                c64::new(0.788404, 0.686660),
6259                c64::new(0.639723, 0.737831),
6260                c64::new(0.246013, 0.560676),
6261                c64::new(0.092070, 0.708475),
6262                c64::new(0.027427, 0.596595),
6263                c64::new(0.128558, 0.388927),
6264                c64::new(0.485607, 0.399719),
6265                c64::new(0.136591, 0.933920),
6266                c64::new(0.034073, 0.884551),
6267                c64::new(0.239537, 0.980636),
6268                c64::new(0.889264, 0.401986),
6269                c64::new(0.130337, 0.149767),
6270                c64::new(0.767439, 0.522387),
6271                c64::new(0.766977, 0.450827),
6272                c64::new(0.671896, 0.048003),
6273                c64::new(0.013986, 0.403314),
6274                c64::new(0.021642, 0.951764),
6275                c64::new(0.016382, 0.731560),
6276                c64::new(0.310583, 0.922378),
6277                c64::new(0.553749, 0.223975),
6278                c64::new(0.310859, 0.555714),
6279                c64::new(0.809124, 0.940052),
6280                c64::new(0.816735, 0.769145),
6281                c64::new(0.058215, 0.350701),
6282                c64::new(0.345878, 0.654909),
6283                c64::new(0.639001, 0.319911),
6284                c64::new(0.899544, 0.479364),
6285                c64::new(0.197103, 0.954102),
6286                c64::new(0.492390, 0.207693),
6287                c64::new(0.898481, 0.668550),
6288                c64::new(0.122696, 0.378159),
6289                c64::new(0.330345, 0.475442),
6290                c64::new(0.583832, 0.646319),
6291                c64::new(0.895222, 0.259556),
6292                c64::new(0.242250, 0.164501),
6293                c64::new(0.138347, 0.904833),
6294                c64::new(0.217104, 0.409711),
6295                c64::new(0.852666, 0.811122),
6296                c64::new(0.413665, 0.745094),
6297                c64::new(0.719341, 0.269381),
6298                c64::new(0.329402, 0.404577),
6299                c64::new(0.347419, 0.616515),
6300                c64::new(0.816734, 0.574113),
6301                c64::new(0.761698, 0.186940),
6302                c64::new(0.817057, 0.761391),
6303                c64::new(0.111651, 0.687449),
6304                c64::new(0.277711, 0.665095),
6305                c64::new(0.340377, 0.617886),
6306                c64::new(0.399145, 0.101577),
6307                c64::new(0.822689, 0.945302),
6308                c64::new(0.460187, 0.208720),
6309                c64::new(0.631135, 0.261331),
6310                c64::new(0.962732, 0.816154),
6311                c64::new(0.560329, 0.338756),
6312                c64::new(0.221826, 0.553681),
6313                c64::new(0.708415, 0.301194),
6314                c64::new(0.618215, 0.606696),
6315                c64::new(0.074301, 0.029931),
6316                c64::new(0.489139, 0.515670),
6317                c64::new(0.602021, 0.417793),
6318                c64::new(0.153403, 0.066526),
6319                c64::new(0.983115, 0.264848),
6320                c64::new(0.096695, 0.520589),
6321                c64::new(0.758410, 0.209188),
6322                c64::new(0.682855, 0.246801),
6323            ],
6324            [
6325                c64::new(0.000000, 0.000000),
6326                c64::new(0.000000, 0.000000),
6327                c64::new(0.000000, 0.000000),
6328                c64::new(0.000000, 0.000000),
6329                c64::new(0.000000, 0.000000),
6330                c64::new(0.000000, 0.000000),
6331                c64::new(0.000000, 0.000000),
6332                c64::new(0.000000, 0.000000),
6333                c64::new(0.000000, 0.000000),
6334                c64::new(0.000000, 0.000000),
6335                c64::new(0.000000, 0.000000),
6336                c64::new(0.000000, 0.000000),
6337                c64::new(0.000000, 0.000000),
6338                c64::new(0.000000, 0.000000),
6339                c64::new(0.000000, 0.000000),
6340                c64::new(0.000000, 0.000000),
6341                c64::new(0.000000, 0.000000),
6342                c64::new(0.000000, 0.000000),
6343                c64::new(0.000000, 0.000000),
6344                c64::new(0.000000, 0.000000),
6345                c64::new(0.000000, 0.000000),
6346                c64::new(0.000000, 0.000000),
6347                c64::new(0.000000, 0.000000),
6348                c64::new(0.000000, 0.000000),
6349                c64::new(0.000000, 0.000000),
6350                c64::new(0.000000, 0.000000),
6351                c64::new(0.000000, 0.000000),
6352                c64::new(0.000000, 0.000000),
6353                c64::new(0.000000, 0.000000),
6354                c64::new(0.000000, 0.000000),
6355                c64::new(0.000000, 0.000000),
6356                c64::new(0.000000, 0.000000),
6357                c64::new(0.000000, 0.000000),
6358                c64::new(0.232805, 0.576305),
6359                c64::new(0.207400, 0.598511),
6360                c64::new(0.854243, 0.115204),
6361                c64::new(0.393042, 0.396782),
6362                c64::new(0.017042, 0.667761),
6363                c64::new(0.801282, 0.340346),
6364                c64::new(0.003711, 0.259986),
6365                c64::new(0.694978, 0.303832),
6366                c64::new(0.001762, 0.935495),
6367                c64::new(0.353230, 0.511647),
6368                c64::new(0.414766, 0.486634),
6369                c64::new(0.958218, 0.023350),
6370                c64::new(0.123091, 0.942666),
6371                c64::new(0.341048, 0.734574),
6372                c64::new(0.073752, 0.141648),
6373                c64::new(0.964084, 0.961285),
6374                c64::new(0.255540, 0.534859),
6375                c64::new(0.321547, 0.411187),
6376                c64::new(0.436190, 0.702827),
6377                c64::new(0.497867, 0.625002),
6378                c64::new(0.458156, 0.612110),
6379                c64::new(0.239477, 0.226563),
6380                c64::new(0.993340, 0.693538),
6381                c64::new(0.640763, 0.933537),
6382                c64::new(0.231692, 0.273402),
6383                c64::new(0.399929, 0.814692),
6384                c64::new(0.459467, 0.270334),
6385                c64::new(0.907065, 0.488429),
6386                c64::new(0.598465, 0.477257),
6387                c64::new(0.854214, 0.197979),
6388                c64::new(0.616104, 0.445388),
6389                c64::new(0.257036, 0.470692),
6390                c64::new(0.592040, 0.680530),
6391                c64::new(0.853276, 0.804195),
6392                c64::new(0.077291, 0.991949),
6393                c64::new(0.870280, 0.695300),
6394                c64::new(0.595863, 0.598614),
6395                c64::new(0.342565, 0.275554),
6396                c64::new(0.940165, 0.526830),
6397                c64::new(0.648304, 0.588100),
6398                c64::new(0.556404, 0.114495),
6399                c64::new(0.003300, 0.474866),
6400                c64::new(0.957053, 0.341193),
6401                c64::new(0.714953, 0.461662),
6402                c64::new(0.544661, 0.666366),
6403                c64::new(0.293557, 0.771761),
6404                c64::new(0.809628, 0.824242),
6405                c64::new(0.119130, 0.223361),
6406                c64::new(0.125331, 0.630057),
6407                c64::new(0.556906, 0.025803),
6408                c64::new(0.921313, 0.125813),
6409                c64::new(0.330347, 0.458814),
6410                c64::new(0.829348, 0.818831),
6411                c64::new(0.481705, 0.466419),
6412                c64::new(0.076885, 0.750243),
6413                c64::new(0.226752, 0.695141),
6414                c64::new(0.043138, 0.049178),
6415                c64::new(0.423535, 0.206036),
6416                c64::new(0.759752, 0.178571),
6417                c64::new(0.410225, 0.347630),
6418                c64::new(0.263708, 0.842497),
6419                c64::new(0.893796, 0.130713),
6420                c64::new(0.754144, 0.144180),
6421                c64::new(0.658781, 0.523402),
6422                c64::new(0.530868, 0.404838),
6423                c64::new(0.833528, 0.820693),
6424                c64::new(0.935554, 0.303123),
6425            ],
6426            [
6427                c64::new(0.000000, 0.000000),
6428                c64::new(0.000000, 0.000000),
6429                c64::new(0.000000, 0.000000),
6430                c64::new(0.000000, 0.000000),
6431                c64::new(0.000000, 0.000000),
6432                c64::new(0.000000, 0.000000),
6433                c64::new(0.000000, 0.000000),
6434                c64::new(0.000000, 0.000000),
6435                c64::new(0.000000, 0.000000),
6436                c64::new(0.000000, 0.000000),
6437                c64::new(0.000000, 0.000000),
6438                c64::new(0.000000, 0.000000),
6439                c64::new(0.000000, 0.000000),
6440                c64::new(0.000000, 0.000000),
6441                c64::new(0.000000, 0.000000),
6442                c64::new(0.000000, 0.000000),
6443                c64::new(0.000000, 0.000000),
6444                c64::new(0.000000, 0.000000),
6445                c64::new(0.000000, 0.000000),
6446                c64::new(0.000000, 0.000000),
6447                c64::new(0.000000, 0.000000),
6448                c64::new(0.000000, 0.000000),
6449                c64::new(0.000000, 0.000000),
6450                c64::new(0.000000, 0.000000),
6451                c64::new(0.000000, 0.000000),
6452                c64::new(0.000000, 0.000000),
6453                c64::new(0.000000, 0.000000),
6454                c64::new(0.000000, 0.000000),
6455                c64::new(0.000000, 0.000000),
6456                c64::new(0.000000, 0.000000),
6457                c64::new(0.000000, 0.000000),
6458                c64::new(0.000000, 0.000000),
6459                c64::new(0.000000, 0.000000),
6460                c64::new(0.000000, 0.000000),
6461                c64::new(0.098898, 0.291565),
6462                c64::new(0.127684, 0.203323),
6463                c64::new(0.309607, 0.314736),
6464                c64::new(0.060626, 0.221379),
6465                c64::new(0.483895, 0.672487),
6466                c64::new(0.243821, 0.178579),
6467                c64::new(0.577209, 0.346306),
6468                c64::new(0.216545, 0.776561),
6469                c64::new(0.175957, 0.854670),
6470                c64::new(0.574775, 0.331719),
6471                c64::new(0.526802, 0.140727),
6472                c64::new(0.100710, 0.254408),
6473                c64::new(0.381700, 0.913495),
6474                c64::new(0.704171, 0.914087),
6475                c64::new(0.419427, 0.971748),
6476                c64::new(0.349818, 0.313148),
6477                c64::new(0.290198, 0.429943),
6478                c64::new(0.047751, 0.094872),
6479                c64::new(0.811178, 0.506003),
6480                c64::new(0.873735, 0.158410),
6481                c64::new(0.757864, 0.425735),
6482                c64::new(0.177057, 0.136891),
6483                c64::new(0.364484, 0.095229),
6484                c64::new(0.558330, 0.241812),
6485                c64::new(0.655079, 0.872026),
6486                c64::new(0.459313, 0.585551),
6487                c64::new(0.754606, 0.685536),
6488                c64::new(0.036234, 0.451956),
6489                c64::new(0.922808, 0.030559),
6490                c64::new(0.734693, 0.009678),
6491                c64::new(0.708131, 0.084668),
6492                c64::new(0.931658, 0.948045),
6493                c64::new(0.700392, 0.408606),
6494                c64::new(0.398315, 0.514785),
6495                c64::new(0.081578, 0.966499),
6496                c64::new(0.864563, 0.668021),
6497                c64::new(0.976224, 0.798854),
6498                c64::new(0.042229, 0.924166),
6499                c64::new(0.221770, 0.557293),
6500                c64::new(0.380843, 0.584176),
6501                c64::new(0.661663, 0.208928),
6502                c64::new(0.694916, 0.407374),
6503                c64::new(0.653842, 0.863777),
6504                c64::new(0.898236, 0.534947),
6505                c64::new(0.915596, 0.495553),
6506                c64::new(0.555592, 0.842158),
6507                c64::new(0.265006, 0.420740),
6508                c64::new(0.873024, 0.533431),
6509                c64::new(0.864627, 0.829643),
6510                c64::new(0.478702, 0.376117),
6511                c64::new(0.384400, 0.347533),
6512                c64::new(0.214649, 0.773535),
6513                c64::new(0.350049, 0.561640),
6514                c64::new(0.499972, 0.843294),
6515                c64::new(0.152344, 0.856472),
6516                c64::new(0.928886, 0.008301),
6517                c64::new(0.271550, 0.011560),
6518                c64::new(0.150235, 0.899952),
6519                c64::new(0.109420, 0.823146),
6520                c64::new(0.892450, 0.938720),
6521                c64::new(0.637133, 0.448833),
6522                c64::new(0.253142, 0.767440),
6523                c64::new(0.867487, 0.621166),
6524                c64::new(0.063119, 0.847866),
6525                c64::new(0.689416, 0.759780),
6526                c64::new(0.773086, 0.765058),
6527            ],
6528            [
6529                c64::new(0.000000, 0.000000),
6530                c64::new(0.000000, 0.000000),
6531                c64::new(0.000000, 0.000000),
6532                c64::new(0.000000, 0.000000),
6533                c64::new(0.000000, 0.000000),
6534                c64::new(0.000000, 0.000000),
6535                c64::new(0.000000, 0.000000),
6536                c64::new(0.000000, 0.000000),
6537                c64::new(0.000000, 0.000000),
6538                c64::new(0.000000, 0.000000),
6539                c64::new(0.000000, 0.000000),
6540                c64::new(0.000000, 0.000000),
6541                c64::new(0.000000, 0.000000),
6542                c64::new(0.000000, 0.000000),
6543                c64::new(0.000000, 0.000000),
6544                c64::new(0.000000, 0.000000),
6545                c64::new(0.000000, 0.000000),
6546                c64::new(0.000000, 0.000000),
6547                c64::new(0.000000, 0.000000),
6548                c64::new(0.000000, 0.000000),
6549                c64::new(0.000000, 0.000000),
6550                c64::new(0.000000, 0.000000),
6551                c64::new(0.000000, 0.000000),
6552                c64::new(0.000000, 0.000000),
6553                c64::new(0.000000, 0.000000),
6554                c64::new(0.000000, 0.000000),
6555                c64::new(0.000000, 0.000000),
6556                c64::new(0.000000, 0.000000),
6557                c64::new(0.000000, 0.000000),
6558                c64::new(0.000000, 0.000000),
6559                c64::new(0.000000, 0.000000),
6560                c64::new(0.000000, 0.000000),
6561                c64::new(0.000000, 0.000000),
6562                c64::new(0.000000, 0.000000),
6563                c64::new(0.000000, 0.000000),
6564                c64::new(0.452458, 0.547820),
6565                c64::new(0.541054, 0.696215),
6566                c64::new(0.880126, 0.115864),
6567                c64::new(0.789370, 0.013493),
6568                c64::new(0.635422, 0.380481),
6569                c64::new(0.309871, 0.980499),
6570                c64::new(0.158249, 0.586149),
6571                c64::new(0.994911, 0.684472),
6572                c64::new(0.368954, 0.287684),
6573                c64::new(0.136307, 0.774540),
6574                c64::new(0.368455, 0.932371),
6575                c64::new(0.327801, 0.003596),
6576                c64::new(0.055909, 0.236207),
6577                c64::new(0.127678, 0.867030),
6578                c64::new(0.819601, 0.823852),
6579                c64::new(0.972461, 0.481220),
6580                c64::new(0.824719, 0.194951),
6581                c64::new(0.277140, 0.010203),
6582                c64::new(0.014613, 0.169351),
6583                c64::new(0.519789, 0.964528),
6584                c64::new(0.390106, 0.513682),
6585                c64::new(0.814322, 0.739923),
6586                c64::new(0.914908, 0.337673),
6587                c64::new(0.675706, 0.915563),
6588                c64::new(0.379254, 0.542954),
6589                c64::new(0.869223, 0.289050),
6590                c64::new(0.137291, 0.231450),
6591                c64::new(0.231773, 0.487907),
6592                c64::new(0.860038, 0.868516),
6593                c64::new(0.136004, 0.717899),
6594                c64::new(0.935145, 0.444900),
6595                c64::new(0.344244, 0.438961),
6596                c64::new(0.016063, 0.546069),
6597                c64::new(0.171182, 0.800204),
6598                c64::new(0.375901, 0.922508),
6599                c64::new(0.233871, 0.769126),
6600                c64::new(0.996215, 0.207428),
6601                c64::new(0.075000, 0.844190),
6602                c64::new(0.526818, 0.925333),
6603                c64::new(0.073576, 0.604256),
6604                c64::new(0.840102, 0.769539),
6605                c64::new(0.265159, 0.923164),
6606                c64::new(0.047443, 0.675284),
6607                c64::new(0.785721, 0.845011),
6608                c64::new(0.030684, 0.157244),
6609                c64::new(0.940729, 0.378728),
6610                c64::new(0.761030, 0.073452),
6611                c64::new(0.802376, 0.433708),
6612                c64::new(0.958386, 0.148966),
6613                c64::new(0.236726, 0.370927),
6614                c64::new(0.097915, 0.469611),
6615                c64::new(0.181766, 0.093282),
6616                c64::new(0.942272, 0.136644),
6617                c64::new(0.965049, 0.074911),
6618                c64::new(0.504028, 0.393909),
6619                c64::new(0.271465, 0.362212),
6620                c64::new(0.473880, 0.928421),
6621                c64::new(0.247273, 0.791944),
6622                c64::new(0.049183, 0.372903),
6623                c64::new(0.878568, 0.909872),
6624                c64::new(0.372199, 0.341723),
6625                c64::new(0.430157, 0.646008),
6626                c64::new(0.107023, 0.922188),
6627                c64::new(0.242081, 0.457675),
6628                c64::new(0.331362, 0.385730),
6629            ],
6630            [
6631                c64::new(0.000000, 0.000000),
6632                c64::new(0.000000, 0.000000),
6633                c64::new(0.000000, 0.000000),
6634                c64::new(0.000000, 0.000000),
6635                c64::new(0.000000, 0.000000),
6636                c64::new(0.000000, 0.000000),
6637                c64::new(0.000000, 0.000000),
6638                c64::new(0.000000, 0.000000),
6639                c64::new(0.000000, 0.000000),
6640                c64::new(0.000000, 0.000000),
6641                c64::new(0.000000, 0.000000),
6642                c64::new(0.000000, 0.000000),
6643                c64::new(0.000000, 0.000000),
6644                c64::new(0.000000, 0.000000),
6645                c64::new(0.000000, 0.000000),
6646                c64::new(0.000000, 0.000000),
6647                c64::new(0.000000, 0.000000),
6648                c64::new(0.000000, 0.000000),
6649                c64::new(0.000000, 0.000000),
6650                c64::new(0.000000, 0.000000),
6651                c64::new(0.000000, 0.000000),
6652                c64::new(0.000000, 0.000000),
6653                c64::new(0.000000, 0.000000),
6654                c64::new(0.000000, 0.000000),
6655                c64::new(0.000000, 0.000000),
6656                c64::new(0.000000, 0.000000),
6657                c64::new(0.000000, 0.000000),
6658                c64::new(0.000000, 0.000000),
6659                c64::new(0.000000, 0.000000),
6660                c64::new(0.000000, 0.000000),
6661                c64::new(0.000000, 0.000000),
6662                c64::new(0.000000, 0.000000),
6663                c64::new(0.000000, 0.000000),
6664                c64::new(0.000000, 0.000000),
6665                c64::new(0.000000, 0.000000),
6666                c64::new(0.000000, 0.000000),
6667                c64::new(0.386213, 0.380313),
6668                c64::new(0.383878, 0.674157),
6669                c64::new(0.550544, 0.781560),
6670                c64::new(0.463711, 0.366946),
6671                c64::new(0.208219, 0.928823),
6672                c64::new(0.841025, 0.849972),
6673                c64::new(0.461435, 0.813771),
6674                c64::new(0.794603, 0.830791),
6675                c64::new(0.705329, 0.868150),
6676                c64::new(0.563815, 0.172584),
6677                c64::new(0.747780, 0.904092),
6678                c64::new(0.617104, 0.393452),
6679                c64::new(0.288880, 0.952542),
6680                c64::new(0.848529, 0.620404),
6681                c64::new(0.117828, 0.478020),
6682                c64::new(0.758637, 0.081532),
6683                c64::new(0.474897, 0.117917),
6684                c64::new(0.663699, 0.987136),
6685                c64::new(0.235378, 0.047592),
6686                c64::new(0.120591, 0.675556),
6687                c64::new(0.170053, 0.636506),
6688                c64::new(0.891871, 0.908334),
6689                c64::new(0.885688, 0.775340),
6690                c64::new(0.750344, 0.982613),
6691                c64::new(0.048792, 0.306203),
6692                c64::new(0.903194, 0.990810),
6693                c64::new(0.518846, 0.276747),
6694                c64::new(0.812017, 0.107148),
6695                c64::new(0.219129, 0.880038),
6696                c64::new(0.514671, 0.191879),
6697                c64::new(0.771265, 0.000951),
6698                c64::new(0.971458, 0.472083),
6699                c64::new(0.017341, 0.537628),
6700                c64::new(0.011712, 0.845474),
6701                c64::new(0.971384, 0.904212),
6702                c64::new(0.587244, 0.493683),
6703                c64::new(0.873233, 0.799109),
6704                c64::new(0.184360, 0.942148),
6705                c64::new(0.008719, 0.190757),
6706                c64::new(0.680186, 0.095852),
6707                c64::new(0.252581, 0.428795),
6708                c64::new(0.273962, 0.458328),
6709                c64::new(0.127309, 0.207646),
6710                c64::new(0.559770, 0.031846),
6711                c64::new(0.734383, 0.367334),
6712                c64::new(0.055559, 0.288492),
6713                c64::new(0.254701, 0.074855),
6714                c64::new(0.678248, 0.257818),
6715                c64::new(0.014979, 0.218807),
6716                c64::new(0.456853, 0.485134),
6717                c64::new(0.801688, 0.040015),
6718                c64::new(0.475335, 0.016010),
6719                c64::new(0.811928, 0.989480),
6720                c64::new(0.410234, 0.138619),
6721                c64::new(0.618638, 0.136353),
6722                c64::new(0.705006, 0.847345),
6723                c64::new(0.399656, 0.560976),
6724                c64::new(0.353228, 0.538137),
6725                c64::new(0.732496, 0.418608),
6726                c64::new(0.413902, 0.495859),
6727                c64::new(0.875504, 0.480384),
6728                c64::new(0.076926, 0.415075),
6729                c64::new(0.438311, 0.213753),
6730                c64::new(0.817010, 0.407064),
6731            ],
6732            [
6733                c64::new(0.000000, 0.000000),
6734                c64::new(0.000000, 0.000000),
6735                c64::new(0.000000, 0.000000),
6736                c64::new(0.000000, 0.000000),
6737                c64::new(0.000000, 0.000000),
6738                c64::new(0.000000, 0.000000),
6739                c64::new(0.000000, 0.000000),
6740                c64::new(0.000000, 0.000000),
6741                c64::new(0.000000, 0.000000),
6742                c64::new(0.000000, 0.000000),
6743                c64::new(0.000000, 0.000000),
6744                c64::new(0.000000, 0.000000),
6745                c64::new(0.000000, 0.000000),
6746                c64::new(0.000000, 0.000000),
6747                c64::new(0.000000, 0.000000),
6748                c64::new(0.000000, 0.000000),
6749                c64::new(0.000000, 0.000000),
6750                c64::new(0.000000, 0.000000),
6751                c64::new(0.000000, 0.000000),
6752                c64::new(0.000000, 0.000000),
6753                c64::new(0.000000, 0.000000),
6754                c64::new(0.000000, 0.000000),
6755                c64::new(0.000000, 0.000000),
6756                c64::new(0.000000, 0.000000),
6757                c64::new(0.000000, 0.000000),
6758                c64::new(0.000000, 0.000000),
6759                c64::new(0.000000, 0.000000),
6760                c64::new(0.000000, 0.000000),
6761                c64::new(0.000000, 0.000000),
6762                c64::new(0.000000, 0.000000),
6763                c64::new(0.000000, 0.000000),
6764                c64::new(0.000000, 0.000000),
6765                c64::new(0.000000, 0.000000),
6766                c64::new(0.000000, 0.000000),
6767                c64::new(0.000000, 0.000000),
6768                c64::new(0.000000, 0.000000),
6769                c64::new(0.000000, 0.000000),
6770                c64::new(0.818807, 0.356581),
6771                c64::new(0.087022, 0.340993),
6772                c64::new(0.256544, 0.119007),
6773                c64::new(0.654615, 0.274354),
6774                c64::new(0.550146, 0.980704),
6775                c64::new(0.460586, 0.788776),
6776                c64::new(0.178380, 0.959158),
6777                c64::new(0.849689, 0.093853),
6778                c64::new(0.496622, 0.200960),
6779                c64::new(0.181062, 0.193027),
6780                c64::new(0.180593, 0.753521),
6781                c64::new(0.494335, 0.434076),
6782                c64::new(0.400492, 0.702027),
6783                c64::new(0.114057, 0.377841),
6784                c64::new(0.737800, 0.844015),
6785                c64::new(0.229027, 0.881637),
6786                c64::new(0.856988, 0.500834),
6787                c64::new(0.701550, 0.704984),
6788                c64::new(0.452745, 0.740888),
6789                c64::new(0.832512, 0.682428),
6790                c64::new(0.599581, 0.278271),
6791                c64::new(0.571865, 0.854290),
6792                c64::new(0.619819, 0.304887),
6793                c64::new(0.817864, 0.931829),
6794                c64::new(0.938161, 0.158445),
6795                c64::new(0.302613, 0.280865),
6796                c64::new(0.386840, 0.538870),
6797                c64::new(0.717666, 0.251018),
6798                c64::new(0.152778, 0.473429),
6799                c64::new(0.141575, 0.859729),
6800                c64::new(0.774090, 0.109539),
6801                c64::new(0.968625, 0.381673),
6802                c64::new(0.725729, 0.153549),
6803                c64::new(0.665831, 0.190365),
6804                c64::new(0.251885, 0.052860),
6805                c64::new(0.317803, 0.794153),
6806                c64::new(0.546734, 0.990296),
6807                c64::new(0.370426, 0.750447),
6808                c64::new(0.139265, 0.251563),
6809                c64::new(0.001849, 0.312077),
6810                c64::new(0.753600, 0.386599),
6811                c64::new(0.778721, 0.427982),
6812                c64::new(0.604517, 0.488052),
6813                c64::new(0.339569, 0.075269),
6814                c64::new(0.697206, 0.875211),
6815                c64::new(0.679898, 0.598174),
6816                c64::new(0.929893, 0.100704),
6817                c64::new(0.856897, 0.617276),
6818                c64::new(0.649747, 0.905103),
6819                c64::new(0.921305, 0.672133),
6820                c64::new(0.395744, 0.509464),
6821                c64::new(0.585934, 0.981896),
6822                c64::new(0.658867, 0.839548),
6823                c64::new(0.023311, 0.411135),
6824                c64::new(0.239438, 0.240733),
6825                c64::new(0.615399, 0.083178),
6826                c64::new(0.443822, 0.909183),
6827                c64::new(0.913556, 0.435211),
6828                c64::new(0.619827, 0.557358),
6829                c64::new(0.165276, 0.291985),
6830                c64::new(0.639731, 0.422752),
6831                c64::new(0.107090, 0.839078),
6832                c64::new(0.545747, 0.944014),
6833            ],
6834            [
6835                c64::new(0.000000, 0.000000),
6836                c64::new(0.000000, 0.000000),
6837                c64::new(0.000000, 0.000000),
6838                c64::new(0.000000, 0.000000),
6839                c64::new(0.000000, 0.000000),
6840                c64::new(0.000000, 0.000000),
6841                c64::new(0.000000, 0.000000),
6842                c64::new(0.000000, 0.000000),
6843                c64::new(0.000000, 0.000000),
6844                c64::new(0.000000, 0.000000),
6845                c64::new(0.000000, 0.000000),
6846                c64::new(0.000000, 0.000000),
6847                c64::new(0.000000, 0.000000),
6848                c64::new(0.000000, 0.000000),
6849                c64::new(0.000000, 0.000000),
6850                c64::new(0.000000, 0.000000),
6851                c64::new(0.000000, 0.000000),
6852                c64::new(0.000000, 0.000000),
6853                c64::new(0.000000, 0.000000),
6854                c64::new(0.000000, 0.000000),
6855                c64::new(0.000000, 0.000000),
6856                c64::new(0.000000, 0.000000),
6857                c64::new(0.000000, 0.000000),
6858                c64::new(0.000000, 0.000000),
6859                c64::new(0.000000, 0.000000),
6860                c64::new(0.000000, 0.000000),
6861                c64::new(0.000000, 0.000000),
6862                c64::new(0.000000, 0.000000),
6863                c64::new(0.000000, 0.000000),
6864                c64::new(0.000000, 0.000000),
6865                c64::new(0.000000, 0.000000),
6866                c64::new(0.000000, 0.000000),
6867                c64::new(0.000000, 0.000000),
6868                c64::new(0.000000, 0.000000),
6869                c64::new(0.000000, 0.000000),
6870                c64::new(0.000000, 0.000000),
6871                c64::new(0.000000, 0.000000),
6872                c64::new(0.000000, 0.000000),
6873                c64::new(0.160306, 0.434584),
6874                c64::new(0.888617, 0.582978),
6875                c64::new(0.645691, 0.138817),
6876                c64::new(0.820897, 0.220362),
6877                c64::new(0.442680, 0.417230),
6878                c64::new(0.260500, 0.877439),
6879                c64::new(0.472540, 0.379039),
6880                c64::new(0.028521, 0.665868),
6881                c64::new(0.201938, 0.184704),
6882                c64::new(0.370981, 0.904823),
6883                c64::new(0.673727, 0.511260),
6884                c64::new(0.740533, 0.124585),
6885                c64::new(0.853558, 0.528332),
6886                c64::new(0.237410, 0.702642),
6887                c64::new(0.706216, 0.815913),
6888                c64::new(0.285481, 0.999694),
6889                c64::new(0.540566, 0.924384),
6890                c64::new(0.588151, 0.271940),
6891                c64::new(0.177312, 0.995944),
6892                c64::new(0.831175, 0.107000),
6893                c64::new(0.108884, 0.983461),
6894                c64::new(0.801376, 0.665708),
6895                c64::new(0.264568, 0.389138),
6896                c64::new(0.499733, 0.301545),
6897                c64::new(0.948428, 0.800391),
6898                c64::new(0.362868, 0.130502),
6899                c64::new(0.924059, 0.901129),
6900                c64::new(0.249601, 0.041394),
6901                c64::new(0.697652, 0.486580),
6902                c64::new(0.913518, 0.502038),
6903                c64::new(0.767932, 0.539755),
6904                c64::new(0.630700, 0.050857),
6905                c64::new(0.900497, 0.356990),
6906                c64::new(0.772433, 0.705287),
6907                c64::new(0.942617, 0.180580),
6908                c64::new(0.910186, 0.373954),
6909                c64::new(0.613121, 0.151796),
6910                c64::new(0.232655, 0.426063),
6911                c64::new(0.614645, 0.122409),
6912                c64::new(0.954038, 0.815919),
6913                c64::new(0.202463, 0.378799),
6914                c64::new(0.111259, 0.338185),
6915                c64::new(0.286318, 0.750374),
6916                c64::new(0.302773, 0.022048),
6917                c64::new(0.615490, 0.878986),
6918                c64::new(0.349606, 0.276054),
6919                c64::new(0.065656, 0.134387),
6920                c64::new(0.923611, 0.794954),
6921                c64::new(0.297339, 0.438172),
6922                c64::new(0.758198, 0.501083),
6923                c64::new(0.788695, 0.638563),
6924                c64::new(0.672825, 0.987513),
6925                c64::new(0.625925, 0.232360),
6926                c64::new(0.346429, 0.289553),
6927                c64::new(0.182751, 0.484001),
6928                c64::new(0.262688, 0.973446),
6929                c64::new(0.963768, 0.387030),
6930                c64::new(0.893541, 0.115761),
6931                c64::new(0.219034, 0.293819),
6932                c64::new(0.188020, 0.598587),
6933                c64::new(0.594951, 0.471772),
6934                c64::new(0.680702, 0.833959),
6935            ],
6936            [
6937                c64::new(0.000000, 0.000000),
6938                c64::new(0.000000, 0.000000),
6939                c64::new(0.000000, 0.000000),
6940                c64::new(0.000000, 0.000000),
6941                c64::new(0.000000, 0.000000),
6942                c64::new(0.000000, 0.000000),
6943                c64::new(0.000000, 0.000000),
6944                c64::new(0.000000, 0.000000),
6945                c64::new(0.000000, 0.000000),
6946                c64::new(0.000000, 0.000000),
6947                c64::new(0.000000, 0.000000),
6948                c64::new(0.000000, 0.000000),
6949                c64::new(0.000000, 0.000000),
6950                c64::new(0.000000, 0.000000),
6951                c64::new(0.000000, 0.000000),
6952                c64::new(0.000000, 0.000000),
6953                c64::new(0.000000, 0.000000),
6954                c64::new(0.000000, 0.000000),
6955                c64::new(0.000000, 0.000000),
6956                c64::new(0.000000, 0.000000),
6957                c64::new(0.000000, 0.000000),
6958                c64::new(0.000000, 0.000000),
6959                c64::new(0.000000, 0.000000),
6960                c64::new(0.000000, 0.000000),
6961                c64::new(0.000000, 0.000000),
6962                c64::new(0.000000, 0.000000),
6963                c64::new(0.000000, 0.000000),
6964                c64::new(0.000000, 0.000000),
6965                c64::new(0.000000, 0.000000),
6966                c64::new(0.000000, 0.000000),
6967                c64::new(0.000000, 0.000000),
6968                c64::new(0.000000, 0.000000),
6969                c64::new(0.000000, 0.000000),
6970                c64::new(0.000000, 0.000000),
6971                c64::new(0.000000, 0.000000),
6972                c64::new(0.000000, 0.000000),
6973                c64::new(0.000000, 0.000000),
6974                c64::new(0.000000, 0.000000),
6975                c64::new(0.000000, 0.000000),
6976                c64::new(0.036841, 0.554012),
6977                c64::new(0.217267, 0.677886),
6978                c64::new(0.962421, 0.382163),
6979                c64::new(0.099152, 0.565319),
6980                c64::new(0.993354, 0.368700),
6981                c64::new(0.298927, 0.075455),
6982                c64::new(0.088639, 0.421599),
6983                c64::new(0.038452, 0.196264),
6984                c64::new(0.741094, 0.005035),
6985                c64::new(0.687882, 0.321568),
6986                c64::new(0.706083, 0.827760),
6987                c64::new(0.105706, 0.481707),
6988                c64::new(0.082563, 0.850696),
6989                c64::new(0.361732, 0.954073),
6990                c64::new(0.929661, 0.105852),
6991                c64::new(0.476897, 0.750140),
6992                c64::new(0.856464, 0.199840),
6993                c64::new(0.454634, 0.720243),
6994                c64::new(0.318633, 0.999263),
6995                c64::new(0.226113, 0.941395),
6996                c64::new(0.623938, 0.004206),
6997                c64::new(0.939712, 0.693339),
6998                c64::new(0.375879, 0.218080),
6999                c64::new(0.659926, 0.663282),
7000                c64::new(0.317313, 0.908174),
7001                c64::new(0.699430, 0.828173),
7002                c64::new(0.038317, 0.667422),
7003                c64::new(0.398214, 0.992886),
7004                c64::new(0.160185, 0.934842),
7005                c64::new(0.242165, 0.740390),
7006                c64::new(0.302362, 0.598836),
7007                c64::new(0.792431, 0.842984),
7008                c64::new(0.962403, 0.229432),
7009                c64::new(0.461789, 0.369810),
7010                c64::new(0.798361, 0.452351),
7011                c64::new(0.223391, 0.573898),
7012                c64::new(0.381721, 0.072942),
7013                c64::new(0.334315, 0.735502),
7014                c64::new(0.869569, 0.561063),
7015                c64::new(0.863645, 0.806858),
7016                c64::new(0.007327, 0.815685),
7017                c64::new(0.521895, 0.578075),
7018                c64::new(0.187019, 0.037893),
7019                c64::new(0.068689, 0.255155),
7020                c64::new(0.560574, 0.444974),
7021                c64::new(0.753656, 0.494791),
7022                c64::new(0.518580, 0.518634),
7023                c64::new(0.968574, 0.345391),
7024                c64::new(0.288120, 0.444614),
7025                c64::new(0.329465, 0.155058),
7026                c64::new(0.344177, 0.544982),
7027                c64::new(0.602684, 0.819607),
7028                c64::new(0.988476, 0.560660),
7029                c64::new(0.864427, 0.488691),
7030                c64::new(0.960909, 0.584091),
7031                c64::new(0.384697, 0.999073),
7032                c64::new(0.317082, 0.223471),
7033                c64::new(0.933574, 0.440688),
7034                c64::new(0.782907, 0.615256),
7035                c64::new(0.319008, 0.612252),
7036                c64::new(0.466377, 0.530760),
7037            ],
7038            [
7039                c64::new(0.000000, 0.000000),
7040                c64::new(0.000000, 0.000000),
7041                c64::new(0.000000, 0.000000),
7042                c64::new(0.000000, 0.000000),
7043                c64::new(0.000000, 0.000000),
7044                c64::new(0.000000, 0.000000),
7045                c64::new(0.000000, 0.000000),
7046                c64::new(0.000000, 0.000000),
7047                c64::new(0.000000, 0.000000),
7048                c64::new(0.000000, 0.000000),
7049                c64::new(0.000000, 0.000000),
7050                c64::new(0.000000, 0.000000),
7051                c64::new(0.000000, 0.000000),
7052                c64::new(0.000000, 0.000000),
7053                c64::new(0.000000, 0.000000),
7054                c64::new(0.000000, 0.000000),
7055                c64::new(0.000000, 0.000000),
7056                c64::new(0.000000, 0.000000),
7057                c64::new(0.000000, 0.000000),
7058                c64::new(0.000000, 0.000000),
7059                c64::new(0.000000, 0.000000),
7060                c64::new(0.000000, 0.000000),
7061                c64::new(0.000000, 0.000000),
7062                c64::new(0.000000, 0.000000),
7063                c64::new(0.000000, 0.000000),
7064                c64::new(0.000000, 0.000000),
7065                c64::new(0.000000, 0.000000),
7066                c64::new(0.000000, 0.000000),
7067                c64::new(0.000000, 0.000000),
7068                c64::new(0.000000, 0.000000),
7069                c64::new(0.000000, 0.000000),
7070                c64::new(0.000000, 0.000000),
7071                c64::new(0.000000, 0.000000),
7072                c64::new(0.000000, 0.000000),
7073                c64::new(0.000000, 0.000000),
7074                c64::new(0.000000, 0.000000),
7075                c64::new(0.000000, 0.000000),
7076                c64::new(0.000000, 0.000000),
7077                c64::new(0.000000, 0.000000),
7078                c64::new(0.000000, 0.000000),
7079                c64::new(0.790118, 0.840122),
7080                c64::new(0.074273, 0.080222),
7081                c64::new(0.592436, 0.456623),
7082                c64::new(0.729329, 0.305745),
7083                c64::new(0.048285, 0.166177),
7084                c64::new(0.010648, 0.930173),
7085                c64::new(0.662583, 0.007011),
7086                c64::new(0.839485, 0.771252),
7087                c64::new(0.356505, 0.806122),
7088                c64::new(0.575927, 0.447686),
7089                c64::new(0.188236, 0.562915),
7090                c64::new(0.667218, 0.200158),
7091                c64::new(0.543735, 0.908211),
7092                c64::new(0.155615, 0.782023),
7093                c64::new(0.970960, 0.497195),
7094                c64::new(0.821891, 0.593604),
7095                c64::new(0.170449, 0.451393),
7096                c64::new(0.544218, 0.854445),
7097                c64::new(0.987164, 0.704795),
7098                c64::new(0.364546, 0.789337),
7099                c64::new(0.332949, 0.648587),
7100                c64::new(0.492926, 0.098968),
7101                c64::new(0.081727, 0.788144),
7102                c64::new(0.474131, 0.631215),
7103                c64::new(0.283096, 0.184928),
7104                c64::new(0.560974, 0.594577),
7105                c64::new(0.005540, 0.439198),
7106                c64::new(0.353721, 0.250289),
7107                c64::new(0.871863, 0.401736),
7108                c64::new(0.375179, 0.596502),
7109                c64::new(0.078085, 0.450148),
7110                c64::new(0.499148, 0.928855),
7111                c64::new(0.604782, 0.890541),
7112                c64::new(0.943865, 0.103422),
7113                c64::new(0.677014, 0.570201),
7114                c64::new(0.355293, 0.304826),
7115                c64::new(0.106290, 0.845411),
7116                c64::new(0.779928, 0.658228),
7117                c64::new(0.167167, 0.443837),
7118                c64::new(0.791891, 0.755804),
7119                c64::new(0.357731, 0.144494),
7120                c64::new(0.221511, 0.909803),
7121                c64::new(0.908758, 0.482111),
7122                c64::new(0.350651, 0.714419),
7123                c64::new(0.979006, 0.536138),
7124                c64::new(0.305743, 0.946639),
7125                c64::new(0.062863, 0.563200),
7126                c64::new(0.541004, 0.233887),
7127                c64::new(0.995982, 0.792898),
7128                c64::new(0.823303, 0.841811),
7129                c64::new(0.086561, 0.241551),
7130                c64::new(0.340164, 0.403718),
7131                c64::new(0.171850, 0.813410),
7132                c64::new(0.463218, 0.376034),
7133                c64::new(0.712241, 0.615310),
7134                c64::new(0.809444, 0.167278),
7135                c64::new(0.762444, 0.374177),
7136                c64::new(0.914282, 0.615331),
7137                c64::new(0.143935, 0.454042),
7138                c64::new(0.296887, 0.393304),
7139            ],
7140            [
7141                c64::new(0.000000, 0.000000),
7142                c64::new(0.000000, 0.000000),
7143                c64::new(0.000000, 0.000000),
7144                c64::new(0.000000, 0.000000),
7145                c64::new(0.000000, 0.000000),
7146                c64::new(0.000000, 0.000000),
7147                c64::new(0.000000, 0.000000),
7148                c64::new(0.000000, 0.000000),
7149                c64::new(0.000000, 0.000000),
7150                c64::new(0.000000, 0.000000),
7151                c64::new(0.000000, 0.000000),
7152                c64::new(0.000000, 0.000000),
7153                c64::new(0.000000, 0.000000),
7154                c64::new(0.000000, 0.000000),
7155                c64::new(0.000000, 0.000000),
7156                c64::new(0.000000, 0.000000),
7157                c64::new(0.000000, 0.000000),
7158                c64::new(0.000000, 0.000000),
7159                c64::new(0.000000, 0.000000),
7160                c64::new(0.000000, 0.000000),
7161                c64::new(0.000000, 0.000000),
7162                c64::new(0.000000, 0.000000),
7163                c64::new(0.000000, 0.000000),
7164                c64::new(0.000000, 0.000000),
7165                c64::new(0.000000, 0.000000),
7166                c64::new(0.000000, 0.000000),
7167                c64::new(0.000000, 0.000000),
7168                c64::new(0.000000, 0.000000),
7169                c64::new(0.000000, 0.000000),
7170                c64::new(0.000000, 0.000000),
7171                c64::new(0.000000, 0.000000),
7172                c64::new(0.000000, 0.000000),
7173                c64::new(0.000000, 0.000000),
7174                c64::new(0.000000, 0.000000),
7175                c64::new(0.000000, 0.000000),
7176                c64::new(0.000000, 0.000000),
7177                c64::new(0.000000, 0.000000),
7178                c64::new(0.000000, 0.000000),
7179                c64::new(0.000000, 0.000000),
7180                c64::new(0.000000, 0.000000),
7181                c64::new(0.000000, 0.000000),
7182                c64::new(0.715274, 0.367237),
7183                c64::new(0.509709, 0.598164),
7184                c64::new(0.390999, 0.209680),
7185                c64::new(0.663001, 0.489987),
7186                c64::new(0.179933, 0.691761),
7187                c64::new(0.716592, 0.565920),
7188                c64::new(0.089595, 0.402018),
7189                c64::new(0.617964, 0.709612),
7190                c64::new(0.054911, 0.687305),
7191                c64::new(0.312831, 0.665747),
7192                c64::new(0.228305, 0.102253),
7193                c64::new(0.631583, 0.764260),
7194                c64::new(0.592907, 0.490800),
7195                c64::new(0.036438, 0.809528),
7196                c64::new(0.243750, 0.852269),
7197                c64::new(0.951810, 0.052494),
7198                c64::new(0.618893, 0.946484),
7199                c64::new(0.939660, 0.757697),
7200                c64::new(0.946228, 0.143086),
7201                c64::new(0.415961, 0.214238),
7202                c64::new(0.984906, 0.076734),
7203                c64::new(0.992232, 0.515563),
7204                c64::new(0.805721, 0.030894),
7205                c64::new(0.137336, 0.508217),
7206                c64::new(0.558797, 0.471115),
7207                c64::new(0.202788, 0.329763),
7208                c64::new(0.071424, 0.137316),
7209                c64::new(0.240207, 0.944668),
7210                c64::new(0.558816, 0.158790),
7211                c64::new(0.449376, 0.195025),
7212                c64::new(0.603549, 0.739477),
7213                c64::new(0.414329, 0.371159),
7214                c64::new(0.475775, 0.564285),
7215                c64::new(0.033610, 0.385572),
7216                c64::new(0.448648, 0.144425),
7217                c64::new(0.249027, 0.805371),
7218                c64::new(0.621390, 0.423475),
7219                c64::new(0.053593, 0.586188),
7220                c64::new(0.730849, 0.594146),
7221                c64::new(0.879174, 0.775135),
7222                c64::new(0.953319, 0.503720),
7223                c64::new(0.705713, 0.996021),
7224                c64::new(0.850167, 0.408298),
7225                c64::new(0.862667, 0.713061),
7226                c64::new(0.786574, 0.651448),
7227                c64::new(0.372438, 0.429324),
7228                c64::new(0.856125, 0.393425),
7229                c64::new(0.243611, 0.614022),
7230                c64::new(0.319956, 0.100039),
7231                c64::new(0.755913, 0.395980),
7232                c64::new(0.887310, 0.424228),
7233                c64::new(0.169630, 0.604425),
7234                c64::new(0.494511, 0.511823),
7235                c64::new(0.406940, 0.661718),
7236                c64::new(0.100812, 0.896214),
7237                c64::new(0.843168, 0.647253),
7238                c64::new(0.645970, 0.844043),
7239                c64::new(0.039139, 0.459093),
7240                c64::new(0.720323, 0.183381),
7241            ],
7242            [
7243                c64::new(0.000000, 0.000000),
7244                c64::new(0.000000, 0.000000),
7245                c64::new(0.000000, 0.000000),
7246                c64::new(0.000000, 0.000000),
7247                c64::new(0.000000, 0.000000),
7248                c64::new(0.000000, 0.000000),
7249                c64::new(0.000000, 0.000000),
7250                c64::new(0.000000, 0.000000),
7251                c64::new(0.000000, 0.000000),
7252                c64::new(0.000000, 0.000000),
7253                c64::new(0.000000, 0.000000),
7254                c64::new(0.000000, 0.000000),
7255                c64::new(0.000000, 0.000000),
7256                c64::new(0.000000, 0.000000),
7257                c64::new(0.000000, 0.000000),
7258                c64::new(0.000000, 0.000000),
7259                c64::new(0.000000, 0.000000),
7260                c64::new(0.000000, 0.000000),
7261                c64::new(0.000000, 0.000000),
7262                c64::new(0.000000, 0.000000),
7263                c64::new(0.000000, 0.000000),
7264                c64::new(0.000000, 0.000000),
7265                c64::new(0.000000, 0.000000),
7266                c64::new(0.000000, 0.000000),
7267                c64::new(0.000000, 0.000000),
7268                c64::new(0.000000, 0.000000),
7269                c64::new(0.000000, 0.000000),
7270                c64::new(0.000000, 0.000000),
7271                c64::new(0.000000, 0.000000),
7272                c64::new(0.000000, 0.000000),
7273                c64::new(0.000000, 0.000000),
7274                c64::new(0.000000, 0.000000),
7275                c64::new(0.000000, 0.000000),
7276                c64::new(0.000000, 0.000000),
7277                c64::new(0.000000, 0.000000),
7278                c64::new(0.000000, 0.000000),
7279                c64::new(0.000000, 0.000000),
7280                c64::new(0.000000, 0.000000),
7281                c64::new(0.000000, 0.000000),
7282                c64::new(0.000000, 0.000000),
7283                c64::new(0.000000, 0.000000),
7284                c64::new(0.000000, 0.000000),
7285                c64::new(0.425928, 0.107204),
7286                c64::new(0.800045, 0.099971),
7287                c64::new(0.070251, 0.151644),
7288                c64::new(0.371839, 0.662490),
7289                c64::new(0.738315, 0.351246),
7290                c64::new(0.432473, 0.729187),
7291                c64::new(0.419706, 0.995534),
7292                c64::new(0.362100, 0.552402),
7293                c64::new(0.460506, 0.763973),
7294                c64::new(0.820248, 0.185273),
7295                c64::new(0.543987, 0.960491),
7296                c64::new(0.146243, 0.996164),
7297                c64::new(0.319060, 0.749107),
7298                c64::new(0.765624, 0.873639),
7299                c64::new(0.733579, 0.813885),
7300                c64::new(0.810016, 0.844789),
7301                c64::new(0.960963, 0.062396),
7302                c64::new(0.985746, 0.784937),
7303                c64::new(0.920432, 0.570684),
7304                c64::new(0.821910, 0.376710),
7305                c64::new(0.163600, 0.281017),
7306                c64::new(0.305898, 0.418352),
7307                c64::new(0.066167, 0.793898),
7308                c64::new(0.060118, 0.498109),
7309                c64::new(0.200186, 0.687364),
7310                c64::new(0.025688, 0.953083),
7311                c64::new(0.321023, 0.687941),
7312                c64::new(0.339044, 0.964690),
7313                c64::new(0.119874, 0.658082),
7314                c64::new(0.122863, 0.713573),
7315                c64::new(0.363512, 0.545189),
7316                c64::new(0.118211, 0.086559),
7317                c64::new(0.463308, 0.968755),
7318                c64::new(0.941122, 0.359383),
7319                c64::new(0.665183, 0.556579),
7320                c64::new(0.680304, 0.405885),
7321                c64::new(0.831033, 0.924925),
7322                c64::new(0.966335, 0.707535),
7323                c64::new(0.169531, 0.414370),
7324                c64::new(0.944768, 0.391817),
7325                c64::new(0.109566, 0.792191),
7326                c64::new(0.900625, 0.485256),
7327                c64::new(0.684430, 0.350744),
7328                c64::new(0.823977, 0.056221),
7329                c64::new(0.280401, 0.008367),
7330                c64::new(0.501874, 0.720454),
7331                c64::new(0.217392, 0.517522),
7332                c64::new(0.840796, 0.398781),
7333                c64::new(0.986843, 0.905970),
7334                c64::new(0.014353, 0.173737),
7335                c64::new(0.490886, 0.185908),
7336                c64::new(0.628309, 0.192846),
7337                c64::new(0.811604, 0.933861),
7338                c64::new(0.535302, 0.027279),
7339                c64::new(0.931984, 0.482057),
7340                c64::new(0.038722, 0.441096),
7341                c64::new(0.137052, 0.307943),
7342                c64::new(0.612830, 0.617216),
7343            ],
7344            [
7345                c64::new(0.000000, 0.000000),
7346                c64::new(0.000000, 0.000000),
7347                c64::new(0.000000, 0.000000),
7348                c64::new(0.000000, 0.000000),
7349                c64::new(0.000000, 0.000000),
7350                c64::new(0.000000, 0.000000),
7351                c64::new(0.000000, 0.000000),
7352                c64::new(0.000000, 0.000000),
7353                c64::new(0.000000, 0.000000),
7354                c64::new(0.000000, 0.000000),
7355                c64::new(0.000000, 0.000000),
7356                c64::new(0.000000, 0.000000),
7357                c64::new(0.000000, 0.000000),
7358                c64::new(0.000000, 0.000000),
7359                c64::new(0.000000, 0.000000),
7360                c64::new(0.000000, 0.000000),
7361                c64::new(0.000000, 0.000000),
7362                c64::new(0.000000, 0.000000),
7363                c64::new(0.000000, 0.000000),
7364                c64::new(0.000000, 0.000000),
7365                c64::new(0.000000, 0.000000),
7366                c64::new(0.000000, 0.000000),
7367                c64::new(0.000000, 0.000000),
7368                c64::new(0.000000, 0.000000),
7369                c64::new(0.000000, 0.000000),
7370                c64::new(0.000000, 0.000000),
7371                c64::new(0.000000, 0.000000),
7372                c64::new(0.000000, 0.000000),
7373                c64::new(0.000000, 0.000000),
7374                c64::new(0.000000, 0.000000),
7375                c64::new(0.000000, 0.000000),
7376                c64::new(0.000000, 0.000000),
7377                c64::new(0.000000, 0.000000),
7378                c64::new(0.000000, 0.000000),
7379                c64::new(0.000000, 0.000000),
7380                c64::new(0.000000, 0.000000),
7381                c64::new(0.000000, 0.000000),
7382                c64::new(0.000000, 0.000000),
7383                c64::new(0.000000, 0.000000),
7384                c64::new(0.000000, 0.000000),
7385                c64::new(0.000000, 0.000000),
7386                c64::new(0.000000, 0.000000),
7387                c64::new(0.000000, 0.000000),
7388                c64::new(0.418849, 0.532531),
7389                c64::new(0.107083, 0.719746),
7390                c64::new(0.310694, 0.560926),
7391                c64::new(0.760125, 0.262740),
7392                c64::new(0.158550, 0.994097),
7393                c64::new(0.807434, 0.158468),
7394                c64::new(0.775618, 0.946512),
7395                c64::new(0.431907, 0.652202),
7396                c64::new(0.142663, 0.639367),
7397                c64::new(0.574674, 0.387925),
7398                c64::new(0.110711, 0.892480),
7399                c64::new(0.083943, 0.601967),
7400                c64::new(0.943322, 0.808827),
7401                c64::new(0.168371, 0.725480),
7402                c64::new(0.291024, 0.636374),
7403                c64::new(0.975400, 0.649293),
7404                c64::new(0.371338, 0.798654),
7405                c64::new(0.328305, 0.172540),
7406                c64::new(0.235682, 0.047897),
7407                c64::new(0.905067, 0.940245),
7408                c64::new(0.907505, 0.043832),
7409                c64::new(0.304953, 0.998240),
7410                c64::new(0.375923, 0.686134),
7411                c64::new(0.281803, 0.189080),
7412                c64::new(0.936808, 0.084883),
7413                c64::new(0.453281, 0.786526),
7414                c64::new(0.841850, 0.539031),
7415                c64::new(0.207174, 0.980019),
7416                c64::new(0.303841, 0.588644),
7417                c64::new(0.899236, 0.866050),
7418                c64::new(0.513926, 0.203281),
7419                c64::new(0.473419, 0.006041),
7420                c64::new(0.755681, 0.704911),
7421                c64::new(0.839672, 0.334013),
7422                c64::new(0.237145, 0.483412),
7423                c64::new(0.601244, 0.901770),
7424                c64::new(0.491642, 0.231243),
7425                c64::new(0.035101, 0.401534),
7426                c64::new(0.098882, 0.958966),
7427                c64::new(0.796004, 0.975521),
7428                c64::new(0.481170, 0.786754),
7429                c64::new(0.012739, 0.467880),
7430                c64::new(0.967237, 0.450599),
7431                c64::new(0.088282, 0.963175),
7432                c64::new(0.997335, 0.699526),
7433                c64::new(0.645252, 0.323436),
7434                c64::new(0.362289, 0.209948),
7435                c64::new(0.942874, 0.734774),
7436                c64::new(0.767611, 0.944060),
7437                c64::new(0.234817, 0.510999),
7438                c64::new(0.624267, 0.857866),
7439                c64::new(0.387731, 0.243747),
7440                c64::new(0.488888, 0.428010),
7441                c64::new(0.026640, 0.019524),
7442                c64::new(0.251537, 0.923842),
7443                c64::new(0.872278, 0.762427),
7444                c64::new(0.203000, 0.708612),
7445            ],
7446            [
7447                c64::new(0.000000, 0.000000),
7448                c64::new(0.000000, 0.000000),
7449                c64::new(0.000000, 0.000000),
7450                c64::new(0.000000, 0.000000),
7451                c64::new(0.000000, 0.000000),
7452                c64::new(0.000000, 0.000000),
7453                c64::new(0.000000, 0.000000),
7454                c64::new(0.000000, 0.000000),
7455                c64::new(0.000000, 0.000000),
7456                c64::new(0.000000, 0.000000),
7457                c64::new(0.000000, 0.000000),
7458                c64::new(0.000000, 0.000000),
7459                c64::new(0.000000, 0.000000),
7460                c64::new(0.000000, 0.000000),
7461                c64::new(0.000000, 0.000000),
7462                c64::new(0.000000, 0.000000),
7463                c64::new(0.000000, 0.000000),
7464                c64::new(0.000000, 0.000000),
7465                c64::new(0.000000, 0.000000),
7466                c64::new(0.000000, 0.000000),
7467                c64::new(0.000000, 0.000000),
7468                c64::new(0.000000, 0.000000),
7469                c64::new(0.000000, 0.000000),
7470                c64::new(0.000000, 0.000000),
7471                c64::new(0.000000, 0.000000),
7472                c64::new(0.000000, 0.000000),
7473                c64::new(0.000000, 0.000000),
7474                c64::new(0.000000, 0.000000),
7475                c64::new(0.000000, 0.000000),
7476                c64::new(0.000000, 0.000000),
7477                c64::new(0.000000, 0.000000),
7478                c64::new(0.000000, 0.000000),
7479                c64::new(0.000000, 0.000000),
7480                c64::new(0.000000, 0.000000),
7481                c64::new(0.000000, 0.000000),
7482                c64::new(0.000000, 0.000000),
7483                c64::new(0.000000, 0.000000),
7484                c64::new(0.000000, 0.000000),
7485                c64::new(0.000000, 0.000000),
7486                c64::new(0.000000, 0.000000),
7487                c64::new(0.000000, 0.000000),
7488                c64::new(0.000000, 0.000000),
7489                c64::new(0.000000, 0.000000),
7490                c64::new(0.000000, 0.000000),
7491                c64::new(0.536584, 0.723950),
7492                c64::new(0.677810, 0.609953),
7493                c64::new(0.202928, 0.830191),
7494                c64::new(0.721802, 0.030965),
7495                c64::new(0.590068, 0.041306),
7496                c64::new(0.593856, 0.529075),
7497                c64::new(0.864659, 0.754259),
7498                c64::new(0.163143, 0.760660),
7499                c64::new(0.872759, 0.574347),
7500                c64::new(0.433395, 0.507012),
7501                c64::new(0.522135, 0.805751),
7502                c64::new(0.923445, 0.361330),
7503                c64::new(0.868754, 0.732123),
7504                c64::new(0.098894, 0.636107),
7505                c64::new(0.735279, 0.680066),
7506                c64::new(0.647744, 0.099186),
7507                c64::new(0.520748, 0.423773),
7508                c64::new(0.612231, 0.988279),
7509                c64::new(0.175866, 0.795076),
7510                c64::new(0.999766, 0.165041),
7511                c64::new(0.889125, 0.431715),
7512                c64::new(0.184336, 0.297914),
7513                c64::new(0.727470, 0.172602),
7514                c64::new(0.420187, 0.559221),
7515                c64::new(0.208330, 0.268368),
7516                c64::new(0.252354, 0.730862),
7517                c64::new(0.304587, 0.614354),
7518                c64::new(0.110456, 0.195224),
7519                c64::new(0.303946, 0.388018),
7520                c64::new(0.726385, 0.653285),
7521                c64::new(0.593882, 0.084965),
7522                c64::new(0.360321, 0.858468),
7523                c64::new(0.893790, 0.437986),
7524                c64::new(0.991152, 0.093827),
7525                c64::new(0.328462, 0.800984),
7526                c64::new(0.226094, 0.243485),
7527                c64::new(0.456858, 0.556662),
7528                c64::new(0.265730, 0.445485),
7529                c64::new(0.103144, 0.465237),
7530                c64::new(0.828831, 0.995590),
7531                c64::new(0.510411, 0.153707),
7532                c64::new(0.216157, 0.682608),
7533                c64::new(0.782011, 0.058702),
7534                c64::new(0.071981, 0.734880),
7535                c64::new(0.571384, 0.968799),
7536                c64::new(0.920737, 0.914234),
7537                c64::new(0.018279, 0.976197),
7538                c64::new(0.966476, 0.679589),
7539                c64::new(0.156650, 0.477255),
7540                c64::new(0.957561, 0.010660),
7541                c64::new(0.657315, 0.771903),
7542                c64::new(0.715325, 0.317240),
7543                c64::new(0.948571, 0.413203),
7544                c64::new(0.012430, 0.437045),
7545                c64::new(0.916248, 0.017849),
7546                c64::new(0.409066, 0.902296),
7547            ],
7548            [
7549                c64::new(0.000000, 0.000000),
7550                c64::new(0.000000, 0.000000),
7551                c64::new(0.000000, 0.000000),
7552                c64::new(0.000000, 0.000000),
7553                c64::new(0.000000, 0.000000),
7554                c64::new(0.000000, 0.000000),
7555                c64::new(0.000000, 0.000000),
7556                c64::new(0.000000, 0.000000),
7557                c64::new(0.000000, 0.000000),
7558                c64::new(0.000000, 0.000000),
7559                c64::new(0.000000, 0.000000),
7560                c64::new(0.000000, 0.000000),
7561                c64::new(0.000000, 0.000000),
7562                c64::new(0.000000, 0.000000),
7563                c64::new(0.000000, 0.000000),
7564                c64::new(0.000000, 0.000000),
7565                c64::new(0.000000, 0.000000),
7566                c64::new(0.000000, 0.000000),
7567                c64::new(0.000000, 0.000000),
7568                c64::new(0.000000, 0.000000),
7569                c64::new(0.000000, 0.000000),
7570                c64::new(0.000000, 0.000000),
7571                c64::new(0.000000, 0.000000),
7572                c64::new(0.000000, 0.000000),
7573                c64::new(0.000000, 0.000000),
7574                c64::new(0.000000, 0.000000),
7575                c64::new(0.000000, 0.000000),
7576                c64::new(0.000000, 0.000000),
7577                c64::new(0.000000, 0.000000),
7578                c64::new(0.000000, 0.000000),
7579                c64::new(0.000000, 0.000000),
7580                c64::new(0.000000, 0.000000),
7581                c64::new(0.000000, 0.000000),
7582                c64::new(0.000000, 0.000000),
7583                c64::new(0.000000, 0.000000),
7584                c64::new(0.000000, 0.000000),
7585                c64::new(0.000000, 0.000000),
7586                c64::new(0.000000, 0.000000),
7587                c64::new(0.000000, 0.000000),
7588                c64::new(0.000000, 0.000000),
7589                c64::new(0.000000, 0.000000),
7590                c64::new(0.000000, 0.000000),
7591                c64::new(0.000000, 0.000000),
7592                c64::new(0.000000, 0.000000),
7593                c64::new(0.000000, 0.000000),
7594                c64::new(0.128966, 0.393048),
7595                c64::new(0.991382, 0.363649),
7596                c64::new(0.689582, 0.438939),
7597                c64::new(0.981972, 0.534930),
7598                c64::new(0.260193, 0.915763),
7599                c64::new(0.825290, 0.384255),
7600                c64::new(0.885266, 0.929639),
7601                c64::new(0.507663, 0.820205),
7602                c64::new(0.535147, 0.621162),
7603                c64::new(0.123445, 0.270132),
7604                c64::new(0.108129, 0.207833),
7605                c64::new(0.628728, 0.039248),
7606                c64::new(0.579917, 0.971678),
7607                c64::new(0.527193, 0.917437),
7608                c64::new(0.132248, 0.774570),
7609                c64::new(0.802700, 0.289729),
7610                c64::new(0.863688, 0.281852),
7611                c64::new(0.768497, 0.046592),
7612                c64::new(0.560227, 0.073644),
7613                c64::new(0.587867, 0.253124),
7614                c64::new(0.406094, 0.731975),
7615                c64::new(0.867507, 0.015642),
7616                c64::new(0.686177, 0.383130),
7617                c64::new(0.723251, 0.745997),
7618                c64::new(0.027504, 0.055766),
7619                c64::new(0.167852, 0.894087),
7620                c64::new(0.145940, 0.576829),
7621                c64::new(0.015916, 0.885107),
7622                c64::new(0.779099, 0.877844),
7623                c64::new(0.458668, 0.519214),
7624                c64::new(0.916154, 0.111284),
7625                c64::new(0.836685, 0.631290),
7626                c64::new(0.728151, 0.354445),
7627                c64::new(0.058543, 0.521122),
7628                c64::new(0.657684, 0.582414),
7629                c64::new(0.342108, 0.324812),
7630                c64::new(0.672241, 0.744105),
7631                c64::new(0.446364, 0.686208),
7632                c64::new(0.965206, 0.475126),
7633                c64::new(0.344798, 0.578364),
7634                c64::new(0.008011, 0.357516),
7635                c64::new(0.034041, 0.499454),
7636                c64::new(0.339018, 0.350601),
7637                c64::new(0.115104, 0.869680),
7638                c64::new(0.270346, 0.103482),
7639                c64::new(0.827058, 0.369253),
7640                c64::new(0.703335, 0.220370),
7641                c64::new(0.161436, 0.829609),
7642                c64::new(0.316228, 0.518901),
7643                c64::new(0.313521, 0.431155),
7644                c64::new(0.359681, 0.306954),
7645                c64::new(0.311050, 0.915704),
7646                c64::new(0.383658, 0.937352),
7647                c64::new(0.889989, 0.170452),
7648                c64::new(0.559301, 0.473358),
7649            ],
7650            [
7651                c64::new(0.000000, 0.000000),
7652                c64::new(0.000000, 0.000000),
7653                c64::new(0.000000, 0.000000),
7654                c64::new(0.000000, 0.000000),
7655                c64::new(0.000000, 0.000000),
7656                c64::new(0.000000, 0.000000),
7657                c64::new(0.000000, 0.000000),
7658                c64::new(0.000000, 0.000000),
7659                c64::new(0.000000, 0.000000),
7660                c64::new(0.000000, 0.000000),
7661                c64::new(0.000000, 0.000000),
7662                c64::new(0.000000, 0.000000),
7663                c64::new(0.000000, 0.000000),
7664                c64::new(0.000000, 0.000000),
7665                c64::new(0.000000, 0.000000),
7666                c64::new(0.000000, 0.000000),
7667                c64::new(0.000000, 0.000000),
7668                c64::new(0.000000, 0.000000),
7669                c64::new(0.000000, 0.000000),
7670                c64::new(0.000000, 0.000000),
7671                c64::new(0.000000, 0.000000),
7672                c64::new(0.000000, 0.000000),
7673                c64::new(0.000000, 0.000000),
7674                c64::new(0.000000, 0.000000),
7675                c64::new(0.000000, 0.000000),
7676                c64::new(0.000000, 0.000000),
7677                c64::new(0.000000, 0.000000),
7678                c64::new(0.000000, 0.000000),
7679                c64::new(0.000000, 0.000000),
7680                c64::new(0.000000, 0.000000),
7681                c64::new(0.000000, 0.000000),
7682                c64::new(0.000000, 0.000000),
7683                c64::new(0.000000, 0.000000),
7684                c64::new(0.000000, 0.000000),
7685                c64::new(0.000000, 0.000000),
7686                c64::new(0.000000, 0.000000),
7687                c64::new(0.000000, 0.000000),
7688                c64::new(0.000000, 0.000000),
7689                c64::new(0.000000, 0.000000),
7690                c64::new(0.000000, 0.000000),
7691                c64::new(0.000000, 0.000000),
7692                c64::new(0.000000, 0.000000),
7693                c64::new(0.000000, 0.000000),
7694                c64::new(0.000000, 0.000000),
7695                c64::new(0.000000, 0.000000),
7696                c64::new(0.000000, 0.000000),
7697                c64::new(0.050173, 0.552781),
7698                c64::new(0.415845, 0.512301),
7699                c64::new(0.054231, 0.213533),
7700                c64::new(0.737206, 0.779989),
7701                c64::new(0.089992, 0.536487),
7702                c64::new(0.779028, 0.284559),
7703                c64::new(0.238610, 0.061747),
7704                c64::new(0.710270, 0.238035),
7705                c64::new(0.032906, 0.671454),
7706                c64::new(0.009978, 0.729838),
7707                c64::new(0.671447, 0.882419),
7708                c64::new(0.396256, 0.133264),
7709                c64::new(0.677539, 0.002765),
7710                c64::new(0.632125, 0.426313),
7711                c64::new(0.502694, 0.924364),
7712                c64::new(0.618373, 0.958592),
7713                c64::new(0.180755, 0.279852),
7714                c64::new(0.566814, 0.919856),
7715                c64::new(0.161129, 0.863001),
7716                c64::new(0.749486, 0.733981),
7717                c64::new(0.420560, 0.782312),
7718                c64::new(0.397212, 0.425525),
7719                c64::new(0.336070, 0.659079),
7720                c64::new(0.367184, 0.042728),
7721                c64::new(0.409056, 0.739271),
7722                c64::new(0.834689, 0.561427),
7723                c64::new(0.036659, 0.930406),
7724                c64::new(0.522245, 0.395179),
7725                c64::new(0.565026, 0.421176),
7726                c64::new(0.098957, 0.841092),
7727                c64::new(0.212424, 0.469148),
7728                c64::new(0.591057, 0.499176),
7729                c64::new(0.702326, 0.081997),
7730                c64::new(0.384239, 0.647011),
7731                c64::new(0.881257, 0.591259),
7732                c64::new(0.180229, 0.193953),
7733                c64::new(0.242542, 0.346969),
7734                c64::new(0.669821, 0.154080),
7735                c64::new(0.034888, 0.206132),
7736                c64::new(0.308462, 0.284540),
7737                c64::new(0.567083, 0.263070),
7738                c64::new(0.892258, 0.312336),
7739                c64::new(0.952831, 0.188356),
7740                c64::new(0.546890, 0.653276),
7741                c64::new(0.982915, 0.846217),
7742                c64::new(0.351776, 0.003294),
7743                c64::new(0.024888, 0.215093),
7744                c64::new(0.600126, 0.519162),
7745                c64::new(0.825102, 0.063609),
7746                c64::new(0.546078, 0.764150),
7747                c64::new(0.874095, 0.952595),
7748                c64::new(0.810068, 0.070169),
7749                c64::new(0.902064, 0.710634),
7750                c64::new(0.444590, 0.180842),
7751            ],
7752            [
7753                c64::new(0.000000, 0.000000),
7754                c64::new(0.000000, 0.000000),
7755                c64::new(0.000000, 0.000000),
7756                c64::new(0.000000, 0.000000),
7757                c64::new(0.000000, 0.000000),
7758                c64::new(0.000000, 0.000000),
7759                c64::new(0.000000, 0.000000),
7760                c64::new(0.000000, 0.000000),
7761                c64::new(0.000000, 0.000000),
7762                c64::new(0.000000, 0.000000),
7763                c64::new(0.000000, 0.000000),
7764                c64::new(0.000000, 0.000000),
7765                c64::new(0.000000, 0.000000),
7766                c64::new(0.000000, 0.000000),
7767                c64::new(0.000000, 0.000000),
7768                c64::new(0.000000, 0.000000),
7769                c64::new(0.000000, 0.000000),
7770                c64::new(0.000000, 0.000000),
7771                c64::new(0.000000, 0.000000),
7772                c64::new(0.000000, 0.000000),
7773                c64::new(0.000000, 0.000000),
7774                c64::new(0.000000, 0.000000),
7775                c64::new(0.000000, 0.000000),
7776                c64::new(0.000000, 0.000000),
7777                c64::new(0.000000, 0.000000),
7778                c64::new(0.000000, 0.000000),
7779                c64::new(0.000000, 0.000000),
7780                c64::new(0.000000, 0.000000),
7781                c64::new(0.000000, 0.000000),
7782                c64::new(0.000000, 0.000000),
7783                c64::new(0.000000, 0.000000),
7784                c64::new(0.000000, 0.000000),
7785                c64::new(0.000000, 0.000000),
7786                c64::new(0.000000, 0.000000),
7787                c64::new(0.000000, 0.000000),
7788                c64::new(0.000000, 0.000000),
7789                c64::new(0.000000, 0.000000),
7790                c64::new(0.000000, 0.000000),
7791                c64::new(0.000000, 0.000000),
7792                c64::new(0.000000, 0.000000),
7793                c64::new(0.000000, 0.000000),
7794                c64::new(0.000000, 0.000000),
7795                c64::new(0.000000, 0.000000),
7796                c64::new(0.000000, 0.000000),
7797                c64::new(0.000000, 0.000000),
7798                c64::new(0.000000, 0.000000),
7799                c64::new(0.000000, 0.000000),
7800                c64::new(0.529818, 0.784003),
7801                c64::new(0.065876, 0.348303),
7802                c64::new(0.959784, 0.922829),
7803                c64::new(0.309259, 0.296683),
7804                c64::new(0.869259, 0.324780),
7805                c64::new(0.366862, 0.183642),
7806                c64::new(0.803000, 0.548745),
7807                c64::new(0.586937, 0.747447),
7808                c64::new(0.759521, 0.377407),
7809                c64::new(0.775176, 0.005084),
7810                c64::new(0.418544, 0.586202),
7811                c64::new(0.852882, 0.746814),
7812                c64::new(0.767252, 0.467046),
7813                c64::new(0.310193, 0.204264),
7814                c64::new(0.206111, 0.415933),
7815                c64::new(0.664510, 0.898087),
7816                c64::new(0.087468, 0.422819),
7817                c64::new(0.198767, 0.946357),
7818                c64::new(0.700252, 0.156549),
7819                c64::new(0.664096, 0.333602),
7820                c64::new(0.492962, 0.448198),
7821                c64::new(0.866852, 0.973557),
7822                c64::new(0.146269, 0.186005),
7823                c64::new(0.923646, 0.760607),
7824                c64::new(0.648200, 0.016135),
7825                c64::new(0.333844, 0.646075),
7826                c64::new(0.053782, 0.318661),
7827                c64::new(0.224892, 0.927456),
7828                c64::new(0.114737, 0.019274),
7829                c64::new(0.342666, 0.324201),
7830                c64::new(0.751898, 0.771154),
7831                c64::new(0.879673, 0.845538),
7832                c64::new(0.487731, 0.639117),
7833                c64::new(0.600249, 0.784276),
7834                c64::new(0.643879, 0.390951),
7835                c64::new(0.791309, 0.612263),
7836                c64::new(0.227421, 0.889436),
7837                c64::new(0.326243, 0.577876),
7838                c64::new(0.830689, 0.846874),
7839                c64::new(0.953776, 0.426577),
7840                c64::new(0.746185, 0.380683),
7841                c64::new(0.403674, 0.192418),
7842                c64::new(0.115260, 0.458896),
7843                c64::new(0.334320, 0.234912),
7844                c64::new(0.603312, 0.799253),
7845                c64::new(0.002358, 0.862354),
7846                c64::new(0.397216, 0.576467),
7847                c64::new(0.117960, 0.198585),
7848                c64::new(0.609190, 0.045098),
7849                c64::new(0.190081, 0.030743),
7850                c64::new(0.023431, 0.143244),
7851                c64::new(0.052493, 0.170783),
7852                c64::new(0.370181, 0.432948),
7853            ],
7854            [
7855                c64::new(0.000000, 0.000000),
7856                c64::new(0.000000, 0.000000),
7857                c64::new(0.000000, 0.000000),
7858                c64::new(0.000000, 0.000000),
7859                c64::new(0.000000, 0.000000),
7860                c64::new(0.000000, 0.000000),
7861                c64::new(0.000000, 0.000000),
7862                c64::new(0.000000, 0.000000),
7863                c64::new(0.000000, 0.000000),
7864                c64::new(0.000000, 0.000000),
7865                c64::new(0.000000, 0.000000),
7866                c64::new(0.000000, 0.000000),
7867                c64::new(0.000000, 0.000000),
7868                c64::new(0.000000, 0.000000),
7869                c64::new(0.000000, 0.000000),
7870                c64::new(0.000000, 0.000000),
7871                c64::new(0.000000, 0.000000),
7872                c64::new(0.000000, 0.000000),
7873                c64::new(0.000000, 0.000000),
7874                c64::new(0.000000, 0.000000),
7875                c64::new(0.000000, 0.000000),
7876                c64::new(0.000000, 0.000000),
7877                c64::new(0.000000, 0.000000),
7878                c64::new(0.000000, 0.000000),
7879                c64::new(0.000000, 0.000000),
7880                c64::new(0.000000, 0.000000),
7881                c64::new(0.000000, 0.000000),
7882                c64::new(0.000000, 0.000000),
7883                c64::new(0.000000, 0.000000),
7884                c64::new(0.000000, 0.000000),
7885                c64::new(0.000000, 0.000000),
7886                c64::new(0.000000, 0.000000),
7887                c64::new(0.000000, 0.000000),
7888                c64::new(0.000000, 0.000000),
7889                c64::new(0.000000, 0.000000),
7890                c64::new(0.000000, 0.000000),
7891                c64::new(0.000000, 0.000000),
7892                c64::new(0.000000, 0.000000),
7893                c64::new(0.000000, 0.000000),
7894                c64::new(0.000000, 0.000000),
7895                c64::new(0.000000, 0.000000),
7896                c64::new(0.000000, 0.000000),
7897                c64::new(0.000000, 0.000000),
7898                c64::new(0.000000, 0.000000),
7899                c64::new(0.000000, 0.000000),
7900                c64::new(0.000000, 0.000000),
7901                c64::new(0.000000, 0.000000),
7902                c64::new(0.000000, 0.000000),
7903                c64::new(0.692966, 0.106329),
7904                c64::new(0.107289, 0.819744),
7905                c64::new(0.269768, 0.861335),
7906                c64::new(0.008943, 0.833064),
7907                c64::new(0.883100, 0.120529),
7908                c64::new(0.505258, 0.452582),
7909                c64::new(0.499368, 0.426845),
7910                c64::new(0.857245, 0.065116),
7911                c64::new(0.036659, 0.496364),
7912                c64::new(0.843591, 0.155928),
7913                c64::new(0.000781, 0.990894),
7914                c64::new(0.853006, 0.816387),
7915                c64::new(0.071921, 0.902840),
7916                c64::new(0.854368, 0.134865),
7917                c64::new(0.209034, 0.605100),
7918                c64::new(0.445809, 0.439048),
7919                c64::new(0.923672, 0.697042),
7920                c64::new(0.488671, 0.859437),
7921                c64::new(0.110011, 0.989637),
7922                c64::new(0.489858, 0.856089),
7923                c64::new(0.603585, 0.952052),
7924                c64::new(0.256532, 0.621132),
7925                c64::new(0.324275, 0.178258),
7926                c64::new(0.204355, 0.972283),
7927                c64::new(0.118170, 0.201359),
7928                c64::new(0.167174, 0.705644),
7929                c64::new(0.850068, 0.243707),
7930                c64::new(0.948765, 0.928045),
7931                c64::new(0.887268, 0.380672),
7932                c64::new(0.599746, 0.801615),
7933                c64::new(0.757189, 0.659039),
7934                c64::new(0.483228, 0.252994),
7935                c64::new(0.114750, 0.712840),
7936                c64::new(0.184600, 0.021121),
7937                c64::new(0.800941, 0.484812),
7938                c64::new(0.494397, 0.435646),
7939                c64::new(0.896421, 0.310441),
7940                c64::new(0.308579, 0.421727),
7941                c64::new(0.523243, 0.851544),
7942                c64::new(0.223532, 0.770586),
7943                c64::new(0.331834, 0.492622),
7944                c64::new(0.383687, 0.727389),
7945                c64::new(0.478783, 0.741261),
7946                c64::new(0.422514, 0.470108),
7947                c64::new(0.345648, 0.733007),
7948                c64::new(0.621038, 0.540694),
7949                c64::new(0.060240, 0.192364),
7950                c64::new(0.108584, 0.429246),
7951                c64::new(0.272918, 0.501780),
7952                c64::new(0.856421, 0.933779),
7953                c64::new(0.383547, 0.565598),
7954                c64::new(0.205123, 0.471749),
7955            ],
7956            [
7957                c64::new(0.000000, 0.000000),
7958                c64::new(0.000000, 0.000000),
7959                c64::new(0.000000, 0.000000),
7960                c64::new(0.000000, 0.000000),
7961                c64::new(0.000000, 0.000000),
7962                c64::new(0.000000, 0.000000),
7963                c64::new(0.000000, 0.000000),
7964                c64::new(0.000000, 0.000000),
7965                c64::new(0.000000, 0.000000),
7966                c64::new(0.000000, 0.000000),
7967                c64::new(0.000000, 0.000000),
7968                c64::new(0.000000, 0.000000),
7969                c64::new(0.000000, 0.000000),
7970                c64::new(0.000000, 0.000000),
7971                c64::new(0.000000, 0.000000),
7972                c64::new(0.000000, 0.000000),
7973                c64::new(0.000000, 0.000000),
7974                c64::new(0.000000, 0.000000),
7975                c64::new(0.000000, 0.000000),
7976                c64::new(0.000000, 0.000000),
7977                c64::new(0.000000, 0.000000),
7978                c64::new(0.000000, 0.000000),
7979                c64::new(0.000000, 0.000000),
7980                c64::new(0.000000, 0.000000),
7981                c64::new(0.000000, 0.000000),
7982                c64::new(0.000000, 0.000000),
7983                c64::new(0.000000, 0.000000),
7984                c64::new(0.000000, 0.000000),
7985                c64::new(0.000000, 0.000000),
7986                c64::new(0.000000, 0.000000),
7987                c64::new(0.000000, 0.000000),
7988                c64::new(0.000000, 0.000000),
7989                c64::new(0.000000, 0.000000),
7990                c64::new(0.000000, 0.000000),
7991                c64::new(0.000000, 0.000000),
7992                c64::new(0.000000, 0.000000),
7993                c64::new(0.000000, 0.000000),
7994                c64::new(0.000000, 0.000000),
7995                c64::new(0.000000, 0.000000),
7996                c64::new(0.000000, 0.000000),
7997                c64::new(0.000000, 0.000000),
7998                c64::new(0.000000, 0.000000),
7999                c64::new(0.000000, 0.000000),
8000                c64::new(0.000000, 0.000000),
8001                c64::new(0.000000, 0.000000),
8002                c64::new(0.000000, 0.000000),
8003                c64::new(0.000000, 0.000000),
8004                c64::new(0.000000, 0.000000),
8005                c64::new(0.000000, 0.000000),
8006                c64::new(0.530644, 0.114391),
8007                c64::new(0.995212, 0.060741),
8008                c64::new(0.196191, 0.251464),
8009                c64::new(0.871896, 0.669238),
8010                c64::new(0.623634, 0.159381),
8011                c64::new(0.251083, 0.272553),
8012                c64::new(0.153685, 0.294151),
8013                c64::new(0.610836, 0.554587),
8014                c64::new(0.382380, 0.713336),
8015                c64::new(0.855581, 0.789283),
8016                c64::new(0.834056, 0.246915),
8017                c64::new(0.189225, 0.908385),
8018                c64::new(0.366736, 0.008198),
8019                c64::new(0.737318, 0.929174),
8020                c64::new(0.672374, 0.013510),
8021                c64::new(0.373511, 0.578757),
8022                c64::new(0.053234, 0.222877),
8023                c64::new(0.915233, 0.315481),
8024                c64::new(0.221711, 0.343100),
8025                c64::new(0.312995, 0.087510),
8026                c64::new(0.065323, 0.184284),
8027                c64::new(0.931357, 0.753462),
8028                c64::new(0.789698, 0.365413),
8029                c64::new(0.556487, 0.567628),
8030                c64::new(0.181109, 0.243681),
8031                c64::new(0.947106, 0.927725),
8032                c64::new(0.257872, 0.154825),
8033                c64::new(0.830974, 0.777344),
8034                c64::new(0.029995, 0.113224),
8035                c64::new(0.975448, 0.376700),
8036                c64::new(0.110346, 0.300270),
8037                c64::new(0.594238, 0.452685),
8038                c64::new(0.811570, 0.367539),
8039                c64::new(0.434646, 0.456926),
8040                c64::new(0.556643, 0.156577),
8041                c64::new(0.142664, 0.796419),
8042                c64::new(0.555489, 0.204816),
8043                c64::new(0.251996, 0.005737),
8044                c64::new(0.301605, 0.048812),
8045                c64::new(0.521452, 0.714892),
8046                c64::new(0.380390, 0.225937),
8047                c64::new(0.784832, 0.205877),
8048                c64::new(0.010905, 0.538770),
8049                c64::new(0.253868, 0.418586),
8050                c64::new(0.418340, 0.178341),
8051                c64::new(0.494828, 0.500012),
8052                c64::new(0.270986, 0.786761),
8053                c64::new(0.078481, 0.238570),
8054                c64::new(0.128007, 0.732474),
8055                c64::new(0.710010, 0.285319),
8056                c64::new(0.161119, 0.232155),
8057            ],
8058            [
8059                c64::new(0.000000, 0.000000),
8060                c64::new(0.000000, 0.000000),
8061                c64::new(0.000000, 0.000000),
8062                c64::new(0.000000, 0.000000),
8063                c64::new(0.000000, 0.000000),
8064                c64::new(0.000000, 0.000000),
8065                c64::new(0.000000, 0.000000),
8066                c64::new(0.000000, 0.000000),
8067                c64::new(0.000000, 0.000000),
8068                c64::new(0.000000, 0.000000),
8069                c64::new(0.000000, 0.000000),
8070                c64::new(0.000000, 0.000000),
8071                c64::new(0.000000, 0.000000),
8072                c64::new(0.000000, 0.000000),
8073                c64::new(0.000000, 0.000000),
8074                c64::new(0.000000, 0.000000),
8075                c64::new(0.000000, 0.000000),
8076                c64::new(0.000000, 0.000000),
8077                c64::new(0.000000, 0.000000),
8078                c64::new(0.000000, 0.000000),
8079                c64::new(0.000000, 0.000000),
8080                c64::new(0.000000, 0.000000),
8081                c64::new(0.000000, 0.000000),
8082                c64::new(0.000000, 0.000000),
8083                c64::new(0.000000, 0.000000),
8084                c64::new(0.000000, 0.000000),
8085                c64::new(0.000000, 0.000000),
8086                c64::new(0.000000, 0.000000),
8087                c64::new(0.000000, 0.000000),
8088                c64::new(0.000000, 0.000000),
8089                c64::new(0.000000, 0.000000),
8090                c64::new(0.000000, 0.000000),
8091                c64::new(0.000000, 0.000000),
8092                c64::new(0.000000, 0.000000),
8093                c64::new(0.000000, 0.000000),
8094                c64::new(0.000000, 0.000000),
8095                c64::new(0.000000, 0.000000),
8096                c64::new(0.000000, 0.000000),
8097                c64::new(0.000000, 0.000000),
8098                c64::new(0.000000, 0.000000),
8099                c64::new(0.000000, 0.000000),
8100                c64::new(0.000000, 0.000000),
8101                c64::new(0.000000, 0.000000),
8102                c64::new(0.000000, 0.000000),
8103                c64::new(0.000000, 0.000000),
8104                c64::new(0.000000, 0.000000),
8105                c64::new(0.000000, 0.000000),
8106                c64::new(0.000000, 0.000000),
8107                c64::new(0.000000, 0.000000),
8108                c64::new(0.000000, 0.000000),
8109                c64::new(0.615040, 0.169075),
8110                c64::new(0.479961, 0.196773),
8111                c64::new(0.626809, 0.671324),
8112                c64::new(0.015183, 0.675374),
8113                c64::new(0.853066, 0.383082),
8114                c64::new(0.634475, 0.732480),
8115                c64::new(0.737968, 0.785650),
8116                c64::new(0.055095, 0.243289),
8117                c64::new(0.302135, 0.523876),
8118                c64::new(0.273966, 0.611152),
8119                c64::new(0.519451, 0.925538),
8120                c64::new(0.121914, 0.443001),
8121                c64::new(0.338227, 0.173193),
8122                c64::new(0.143675, 0.081170),
8123                c64::new(0.361864, 0.192628),
8124                c64::new(0.574452, 0.358146),
8125                c64::new(0.254029, 0.992810),
8126                c64::new(0.312667, 0.147341),
8127                c64::new(0.163967, 0.337127),
8128                c64::new(0.067906, 0.463478),
8129                c64::new(0.862173, 0.326313),
8130                c64::new(0.020866, 0.777907),
8131                c64::new(0.294795, 0.218811),
8132                c64::new(0.779580, 0.448250),
8133                c64::new(0.151978, 0.118878),
8134                c64::new(0.105307, 0.522607),
8135                c64::new(0.044355, 0.477039),
8136                c64::new(0.553556, 0.243574),
8137                c64::new(0.517181, 0.966844),
8138                c64::new(0.176832, 0.781490),
8139                c64::new(0.103951, 0.213612),
8140                c64::new(0.809956, 0.089341),
8141                c64::new(0.135489, 0.114184),
8142                c64::new(0.582365, 0.160086),
8143                c64::new(0.049516, 0.273526),
8144                c64::new(0.468771, 0.332455),
8145                c64::new(0.547074, 0.848985),
8146                c64::new(0.148206, 0.045514),
8147                c64::new(0.760739, 0.938908),
8148                c64::new(0.855047, 0.228042),
8149                c64::new(0.340053, 0.992980),
8150                c64::new(0.386192, 0.931463),
8151                c64::new(0.925009, 0.163898),
8152                c64::new(0.735551, 0.987414),
8153                c64::new(0.858869, 0.133657),
8154                c64::new(0.635674, 0.330128),
8155                c64::new(0.591815, 0.259063),
8156                c64::new(0.199770, 0.216630),
8157                c64::new(0.270794, 0.038836),
8158                c64::new(0.917995, 0.710299),
8159            ],
8160            [
8161                c64::new(0.000000, 0.000000),
8162                c64::new(0.000000, 0.000000),
8163                c64::new(0.000000, 0.000000),
8164                c64::new(0.000000, 0.000000),
8165                c64::new(0.000000, 0.000000),
8166                c64::new(0.000000, 0.000000),
8167                c64::new(0.000000, 0.000000),
8168                c64::new(0.000000, 0.000000),
8169                c64::new(0.000000, 0.000000),
8170                c64::new(0.000000, 0.000000),
8171                c64::new(0.000000, 0.000000),
8172                c64::new(0.000000, 0.000000),
8173                c64::new(0.000000, 0.000000),
8174                c64::new(0.000000, 0.000000),
8175                c64::new(0.000000, 0.000000),
8176                c64::new(0.000000, 0.000000),
8177                c64::new(0.000000, 0.000000),
8178                c64::new(0.000000, 0.000000),
8179                c64::new(0.000000, 0.000000),
8180                c64::new(0.000000, 0.000000),
8181                c64::new(0.000000, 0.000000),
8182                c64::new(0.000000, 0.000000),
8183                c64::new(0.000000, 0.000000),
8184                c64::new(0.000000, 0.000000),
8185                c64::new(0.000000, 0.000000),
8186                c64::new(0.000000, 0.000000),
8187                c64::new(0.000000, 0.000000),
8188                c64::new(0.000000, 0.000000),
8189                c64::new(0.000000, 0.000000),
8190                c64::new(0.000000, 0.000000),
8191                c64::new(0.000000, 0.000000),
8192                c64::new(0.000000, 0.000000),
8193                c64::new(0.000000, 0.000000),
8194                c64::new(0.000000, 0.000000),
8195                c64::new(0.000000, 0.000000),
8196                c64::new(0.000000, 0.000000),
8197                c64::new(0.000000, 0.000000),
8198                c64::new(0.000000, 0.000000),
8199                c64::new(0.000000, 0.000000),
8200                c64::new(0.000000, 0.000000),
8201                c64::new(0.000000, 0.000000),
8202                c64::new(0.000000, 0.000000),
8203                c64::new(0.000000, 0.000000),
8204                c64::new(0.000000, 0.000000),
8205                c64::new(0.000000, 0.000000),
8206                c64::new(0.000000, 0.000000),
8207                c64::new(0.000000, 0.000000),
8208                c64::new(0.000000, 0.000000),
8209                c64::new(0.000000, 0.000000),
8210                c64::new(0.000000, 0.000000),
8211                c64::new(0.000000, 0.000000),
8212                c64::new(0.013206, 0.769226),
8213                c64::new(0.982724, 0.204332),
8214                c64::new(0.832015, 0.230369),
8215                c64::new(0.722229, 0.943239),
8216                c64::new(0.164207, 0.795466),
8217                c64::new(0.870445, 0.218724),
8218                c64::new(0.905161, 0.733672),
8219                c64::new(0.793996, 0.840568),
8220                c64::new(0.568141, 0.209436),
8221                c64::new(0.939912, 0.015546),
8222                c64::new(0.708153, 0.119672),
8223                c64::new(0.112656, 0.091892),
8224                c64::new(0.789936, 0.998927),
8225                c64::new(0.600303, 0.584520),
8226                c64::new(0.032633, 0.801800),
8227                c64::new(0.640685, 0.208122),
8228                c64::new(0.914674, 0.772388),
8229                c64::new(0.461943, 0.399845),
8230                c64::new(0.289375, 0.498549),
8231                c64::new(0.865014, 0.199500),
8232                c64::new(0.913698, 0.244386),
8233                c64::new(0.674337, 0.877634),
8234                c64::new(0.292650, 0.317611),
8235                c64::new(0.141600, 0.161414),
8236                c64::new(0.276631, 0.996088),
8237                c64::new(0.657545, 0.044637),
8238                c64::new(0.401320, 0.015300),
8239                c64::new(0.482133, 0.906061),
8240                c64::new(0.528246, 0.093756),
8241                c64::new(0.463702, 0.584531),
8242                c64::new(0.549211, 0.621718),
8243                c64::new(0.486438, 0.499984),
8244                c64::new(0.954552, 0.056841),
8245                c64::new(0.786101, 0.515876),
8246                c64::new(0.536461, 0.113695),
8247                c64::new(0.942868, 0.413480),
8248                c64::new(0.819429, 0.432666),
8249                c64::new(0.256145, 0.574643),
8250                c64::new(0.104054, 0.868428),
8251                c64::new(0.755437, 0.700219),
8252                c64::new(0.381512, 0.537619),
8253                c64::new(0.088226, 0.441106),
8254                c64::new(0.050314, 0.735001),
8255                c64::new(0.251476, 0.475054),
8256                c64::new(0.678935, 0.061407),
8257                c64::new(0.497039, 0.530531),
8258                c64::new(0.085386, 0.399800),
8259                c64::new(0.891555, 0.439290),
8260                c64::new(0.214637, 0.314174),
8261            ],
8262            [
8263                c64::new(0.000000, 0.000000),
8264                c64::new(0.000000, 0.000000),
8265                c64::new(0.000000, 0.000000),
8266                c64::new(0.000000, 0.000000),
8267                c64::new(0.000000, 0.000000),
8268                c64::new(0.000000, 0.000000),
8269                c64::new(0.000000, 0.000000),
8270                c64::new(0.000000, 0.000000),
8271                c64::new(0.000000, 0.000000),
8272                c64::new(0.000000, 0.000000),
8273                c64::new(0.000000, 0.000000),
8274                c64::new(0.000000, 0.000000),
8275                c64::new(0.000000, 0.000000),
8276                c64::new(0.000000, 0.000000),
8277                c64::new(0.000000, 0.000000),
8278                c64::new(0.000000, 0.000000),
8279                c64::new(0.000000, 0.000000),
8280                c64::new(0.000000, 0.000000),
8281                c64::new(0.000000, 0.000000),
8282                c64::new(0.000000, 0.000000),
8283                c64::new(0.000000, 0.000000),
8284                c64::new(0.000000, 0.000000),
8285                c64::new(0.000000, 0.000000),
8286                c64::new(0.000000, 0.000000),
8287                c64::new(0.000000, 0.000000),
8288                c64::new(0.000000, 0.000000),
8289                c64::new(0.000000, 0.000000),
8290                c64::new(0.000000, 0.000000),
8291                c64::new(0.000000, 0.000000),
8292                c64::new(0.000000, 0.000000),
8293                c64::new(0.000000, 0.000000),
8294                c64::new(0.000000, 0.000000),
8295                c64::new(0.000000, 0.000000),
8296                c64::new(0.000000, 0.000000),
8297                c64::new(0.000000, 0.000000),
8298                c64::new(0.000000, 0.000000),
8299                c64::new(0.000000, 0.000000),
8300                c64::new(0.000000, 0.000000),
8301                c64::new(0.000000, 0.000000),
8302                c64::new(0.000000, 0.000000),
8303                c64::new(0.000000, 0.000000),
8304                c64::new(0.000000, 0.000000),
8305                c64::new(0.000000, 0.000000),
8306                c64::new(0.000000, 0.000000),
8307                c64::new(0.000000, 0.000000),
8308                c64::new(0.000000, 0.000000),
8309                c64::new(0.000000, 0.000000),
8310                c64::new(0.000000, 0.000000),
8311                c64::new(0.000000, 0.000000),
8312                c64::new(0.000000, 0.000000),
8313                c64::new(0.000000, 0.000000),
8314                c64::new(0.000000, 0.000000),
8315                c64::new(0.735857, 0.240597),
8316                c64::new(0.356875, 0.454911),
8317                c64::new(0.677605, 0.062164),
8318                c64::new(0.458087, 0.091385),
8319                c64::new(0.848670, 0.956103),
8320                c64::new(0.509684, 0.719534),
8321                c64::new(0.559033, 0.496636),
8322                c64::new(0.634391, 0.077391),
8323                c64::new(0.144552, 0.615835),
8324                c64::new(0.382440, 0.428077),
8325                c64::new(0.329797, 0.592698),
8326                c64::new(0.259466, 0.861564),
8327                c64::new(0.814550, 0.639481),
8328                c64::new(0.681772, 0.188467),
8329                c64::new(0.542203, 0.230573),
8330                c64::new(0.723169, 0.296597),
8331                c64::new(0.502171, 0.601625),
8332                c64::new(0.108210, 0.574614),
8333                c64::new(0.950486, 0.662628),
8334                c64::new(0.134496, 0.121186),
8335                c64::new(0.945668, 0.980793),
8336                c64::new(0.279623, 0.809355),
8337                c64::new(0.289832, 0.629227),
8338                c64::new(0.264471, 0.791683),
8339                c64::new(0.809414, 0.203814),
8340                c64::new(0.923640, 0.753235),
8341                c64::new(0.024518, 0.882491),
8342                c64::new(0.529799, 0.719094),
8343                c64::new(0.209641, 0.486209),
8344                c64::new(0.881656, 0.619114),
8345                c64::new(0.125449, 0.139146),
8346                c64::new(0.421330, 0.931407),
8347                c64::new(0.165221, 0.504492),
8348                c64::new(0.745031, 0.116208),
8349                c64::new(0.825442, 0.313819),
8350                c64::new(0.717770, 0.345277),
8351                c64::new(0.717937, 0.471781),
8352                c64::new(0.259691, 0.525759),
8353                c64::new(0.538932, 0.059867),
8354                c64::new(0.308357, 0.922209),
8355                c64::new(0.553270, 0.775689),
8356                c64::new(0.244659, 0.475483),
8357                c64::new(0.754569, 0.513202),
8358                c64::new(0.233177, 0.433069),
8359                c64::new(0.393786, 0.264758),
8360                c64::new(0.395247, 0.607339),
8361                c64::new(0.782158, 0.362668),
8362                c64::new(0.466013, 0.676191),
8363            ],
8364            [
8365                c64::new(0.000000, 0.000000),
8366                c64::new(0.000000, 0.000000),
8367                c64::new(0.000000, 0.000000),
8368                c64::new(0.000000, 0.000000),
8369                c64::new(0.000000, 0.000000),
8370                c64::new(0.000000, 0.000000),
8371                c64::new(0.000000, 0.000000),
8372                c64::new(0.000000, 0.000000),
8373                c64::new(0.000000, 0.000000),
8374                c64::new(0.000000, 0.000000),
8375                c64::new(0.000000, 0.000000),
8376                c64::new(0.000000, 0.000000),
8377                c64::new(0.000000, 0.000000),
8378                c64::new(0.000000, 0.000000),
8379                c64::new(0.000000, 0.000000),
8380                c64::new(0.000000, 0.000000),
8381                c64::new(0.000000, 0.000000),
8382                c64::new(0.000000, 0.000000),
8383                c64::new(0.000000, 0.000000),
8384                c64::new(0.000000, 0.000000),
8385                c64::new(0.000000, 0.000000),
8386                c64::new(0.000000, 0.000000),
8387                c64::new(0.000000, 0.000000),
8388                c64::new(0.000000, 0.000000),
8389                c64::new(0.000000, 0.000000),
8390                c64::new(0.000000, 0.000000),
8391                c64::new(0.000000, 0.000000),
8392                c64::new(0.000000, 0.000000),
8393                c64::new(0.000000, 0.000000),
8394                c64::new(0.000000, 0.000000),
8395                c64::new(0.000000, 0.000000),
8396                c64::new(0.000000, 0.000000),
8397                c64::new(0.000000, 0.000000),
8398                c64::new(0.000000, 0.000000),
8399                c64::new(0.000000, 0.000000),
8400                c64::new(0.000000, 0.000000),
8401                c64::new(0.000000, 0.000000),
8402                c64::new(0.000000, 0.000000),
8403                c64::new(0.000000, 0.000000),
8404                c64::new(0.000000, 0.000000),
8405                c64::new(0.000000, 0.000000),
8406                c64::new(0.000000, 0.000000),
8407                c64::new(0.000000, 0.000000),
8408                c64::new(0.000000, 0.000000),
8409                c64::new(0.000000, 0.000000),
8410                c64::new(0.000000, 0.000000),
8411                c64::new(0.000000, 0.000000),
8412                c64::new(0.000000, 0.000000),
8413                c64::new(0.000000, 0.000000),
8414                c64::new(0.000000, 0.000000),
8415                c64::new(0.000000, 0.000000),
8416                c64::new(0.000000, 0.000000),
8417                c64::new(0.000000, 0.000000),
8418                c64::new(0.211153, 0.524206),
8419                c64::new(0.782684, 0.305200),
8420                c64::new(0.289794, 0.268442),
8421                c64::new(0.877141, 0.625267),
8422                c64::new(0.790307, 0.280562),
8423                c64::new(0.969690, 0.180761),
8424                c64::new(0.932455, 0.373890),
8425                c64::new(0.877947, 0.750656),
8426                c64::new(0.954191, 0.542275),
8427                c64::new(0.052056, 0.536181),
8428                c64::new(0.006876, 0.372513),
8429                c64::new(0.399839, 0.480845),
8430                c64::new(0.815459, 0.473374),
8431                c64::new(0.598484, 0.121254),
8432                c64::new(0.120161, 0.001846),
8433                c64::new(0.193432, 0.108058),
8434                c64::new(0.869470, 0.966034),
8435                c64::new(0.984019, 0.518268),
8436                c64::new(0.720083, 0.755748),
8437                c64::new(0.962629, 0.341934),
8438                c64::new(0.141994, 0.141350),
8439                c64::new(0.659665, 0.919693),
8440                c64::new(0.772235, 0.877017),
8441                c64::new(0.119477, 0.982275),
8442                c64::new(0.098820, 0.946571),
8443                c64::new(0.699791, 0.867417),
8444                c64::new(0.940846, 0.809407),
8445                c64::new(0.959413, 0.987842),
8446                c64::new(0.274393, 0.443179),
8447                c64::new(0.222700, 0.549738),
8448                c64::new(0.516315, 0.863630),
8449                c64::new(0.706504, 0.996410),
8450                c64::new(0.929674, 0.240881),
8451                c64::new(0.162427, 0.367135),
8452                c64::new(0.163174, 0.278608),
8453                c64::new(0.048447, 0.319252),
8454                c64::new(0.216889, 0.002103),
8455                c64::new(0.466778, 0.717206),
8456                c64::new(0.565258, 0.438017),
8457                c64::new(0.626099, 0.347652),
8458                c64::new(0.157418, 0.755288),
8459                c64::new(0.361151, 0.210734),
8460                c64::new(0.729458, 0.276126),
8461                c64::new(0.400067, 0.158686),
8462                c64::new(0.313482, 0.732345),
8463                c64::new(0.923399, 0.049118),
8464                c64::new(0.877780, 0.677202),
8465            ],
8466            [
8467                c64::new(0.000000, 0.000000),
8468                c64::new(0.000000, 0.000000),
8469                c64::new(0.000000, 0.000000),
8470                c64::new(0.000000, 0.000000),
8471                c64::new(0.000000, 0.000000),
8472                c64::new(0.000000, 0.000000),
8473                c64::new(0.000000, 0.000000),
8474                c64::new(0.000000, 0.000000),
8475                c64::new(0.000000, 0.000000),
8476                c64::new(0.000000, 0.000000),
8477                c64::new(0.000000, 0.000000),
8478                c64::new(0.000000, 0.000000),
8479                c64::new(0.000000, 0.000000),
8480                c64::new(0.000000, 0.000000),
8481                c64::new(0.000000, 0.000000),
8482                c64::new(0.000000, 0.000000),
8483                c64::new(0.000000, 0.000000),
8484                c64::new(0.000000, 0.000000),
8485                c64::new(0.000000, 0.000000),
8486                c64::new(0.000000, 0.000000),
8487                c64::new(0.000000, 0.000000),
8488                c64::new(0.000000, 0.000000),
8489                c64::new(0.000000, 0.000000),
8490                c64::new(0.000000, 0.000000),
8491                c64::new(0.000000, 0.000000),
8492                c64::new(0.000000, 0.000000),
8493                c64::new(0.000000, 0.000000),
8494                c64::new(0.000000, 0.000000),
8495                c64::new(0.000000, 0.000000),
8496                c64::new(0.000000, 0.000000),
8497                c64::new(0.000000, 0.000000),
8498                c64::new(0.000000, 0.000000),
8499                c64::new(0.000000, 0.000000),
8500                c64::new(0.000000, 0.000000),
8501                c64::new(0.000000, 0.000000),
8502                c64::new(0.000000, 0.000000),
8503                c64::new(0.000000, 0.000000),
8504                c64::new(0.000000, 0.000000),
8505                c64::new(0.000000, 0.000000),
8506                c64::new(0.000000, 0.000000),
8507                c64::new(0.000000, 0.000000),
8508                c64::new(0.000000, 0.000000),
8509                c64::new(0.000000, 0.000000),
8510                c64::new(0.000000, 0.000000),
8511                c64::new(0.000000, 0.000000),
8512                c64::new(0.000000, 0.000000),
8513                c64::new(0.000000, 0.000000),
8514                c64::new(0.000000, 0.000000),
8515                c64::new(0.000000, 0.000000),
8516                c64::new(0.000000, 0.000000),
8517                c64::new(0.000000, 0.000000),
8518                c64::new(0.000000, 0.000000),
8519                c64::new(0.000000, 0.000000),
8520                c64::new(0.000000, 0.000000),
8521                c64::new(0.489670, 0.014685),
8522                c64::new(0.954007, 0.386280),
8523                c64::new(0.508154, 0.083524),
8524                c64::new(0.102988, 0.822501),
8525                c64::new(0.914405, 0.376727),
8526                c64::new(0.629056, 0.889769),
8527                c64::new(0.755001, 0.312801),
8528                c64::new(0.842430, 0.072925),
8529                c64::new(0.178321, 0.332097),
8530                c64::new(0.597829, 0.044490),
8531                c64::new(0.330761, 0.450853),
8532                c64::new(0.622313, 0.877718),
8533                c64::new(0.800713, 0.276759),
8534                c64::new(0.241428, 0.832541),
8535                c64::new(0.697723, 0.989073),
8536                c64::new(0.730382, 0.635387),
8537                c64::new(0.553550, 0.538356),
8538                c64::new(0.474978, 0.556896),
8539                c64::new(0.821939, 0.844671),
8540                c64::new(0.528817, 0.795304),
8541                c64::new(0.573663, 0.943586),
8542                c64::new(0.128926, 0.236285),
8543                c64::new(0.606450, 0.158736),
8544                c64::new(0.154906, 0.231764),
8545                c64::new(0.029804, 0.707674),
8546                c64::new(0.946999, 0.522959),
8547                c64::new(0.103517, 0.674785),
8548                c64::new(0.142024, 0.702340),
8549                c64::new(0.900657, 0.824920),
8550                c64::new(0.675868, 0.941447),
8551                c64::new(0.838365, 0.916458),
8552                c64::new(0.004632, 0.576753),
8553                c64::new(0.547344, 0.124311),
8554                c64::new(0.454067, 0.579979),
8555                c64::new(0.702220, 0.513525),
8556                c64::new(0.412980, 0.564992),
8557                c64::new(0.126822, 0.088142),
8558                c64::new(0.186729, 0.766497),
8559                c64::new(0.070893, 0.077732),
8560                c64::new(0.668822, 0.563395),
8561                c64::new(0.599082, 0.662259),
8562                c64::new(0.016302, 0.611303),
8563                c64::new(0.819525, 0.216332),
8564                c64::new(0.879024, 0.973667),
8565                c64::new(0.953213, 0.414129),
8566                c64::new(0.199642, 0.400405),
8567            ],
8568            [
8569                c64::new(0.000000, 0.000000),
8570                c64::new(0.000000, 0.000000),
8571                c64::new(0.000000, 0.000000),
8572                c64::new(0.000000, 0.000000),
8573                c64::new(0.000000, 0.000000),
8574                c64::new(0.000000, 0.000000),
8575                c64::new(0.000000, 0.000000),
8576                c64::new(0.000000, 0.000000),
8577                c64::new(0.000000, 0.000000),
8578                c64::new(0.000000, 0.000000),
8579                c64::new(0.000000, 0.000000),
8580                c64::new(0.000000, 0.000000),
8581                c64::new(0.000000, 0.000000),
8582                c64::new(0.000000, 0.000000),
8583                c64::new(0.000000, 0.000000),
8584                c64::new(0.000000, 0.000000),
8585                c64::new(0.000000, 0.000000),
8586                c64::new(0.000000, 0.000000),
8587                c64::new(0.000000, 0.000000),
8588                c64::new(0.000000, 0.000000),
8589                c64::new(0.000000, 0.000000),
8590                c64::new(0.000000, 0.000000),
8591                c64::new(0.000000, 0.000000),
8592                c64::new(0.000000, 0.000000),
8593                c64::new(0.000000, 0.000000),
8594                c64::new(0.000000, 0.000000),
8595                c64::new(0.000000, 0.000000),
8596                c64::new(0.000000, 0.000000),
8597                c64::new(0.000000, 0.000000),
8598                c64::new(0.000000, 0.000000),
8599                c64::new(0.000000, 0.000000),
8600                c64::new(0.000000, 0.000000),
8601                c64::new(0.000000, 0.000000),
8602                c64::new(0.000000, 0.000000),
8603                c64::new(0.000000, 0.000000),
8604                c64::new(0.000000, 0.000000),
8605                c64::new(0.000000, 0.000000),
8606                c64::new(0.000000, 0.000000),
8607                c64::new(0.000000, 0.000000),
8608                c64::new(0.000000, 0.000000),
8609                c64::new(0.000000, 0.000000),
8610                c64::new(0.000000, 0.000000),
8611                c64::new(0.000000, 0.000000),
8612                c64::new(0.000000, 0.000000),
8613                c64::new(0.000000, 0.000000),
8614                c64::new(0.000000, 0.000000),
8615                c64::new(0.000000, 0.000000),
8616                c64::new(0.000000, 0.000000),
8617                c64::new(0.000000, 0.000000),
8618                c64::new(0.000000, 0.000000),
8619                c64::new(0.000000, 0.000000),
8620                c64::new(0.000000, 0.000000),
8621                c64::new(0.000000, 0.000000),
8622                c64::new(0.000000, 0.000000),
8623                c64::new(0.000000, 0.000000),
8624                c64::new(0.374217, 0.584874),
8625                c64::new(0.674097, 0.993344),
8626                c64::new(0.260273, 0.726468),
8627                c64::new(0.159321, 0.707261),
8628                c64::new(0.861934, 0.305156),
8629                c64::new(0.257695, 0.819030),
8630                c64::new(0.673227, 0.478773),
8631                c64::new(0.379518, 0.566754),
8632                c64::new(0.325058, 0.295923),
8633                c64::new(0.127626, 0.470031),
8634                c64::new(0.442566, 0.071991),
8635                c64::new(0.212180, 0.110231),
8636                c64::new(0.055312, 0.572069),
8637                c64::new(0.908728, 0.879889),
8638                c64::new(0.854632, 0.602182),
8639                c64::new(0.032382, 0.567270),
8640                c64::new(0.105613, 0.239383),
8641                c64::new(0.416218, 0.937289),
8642                c64::new(0.576225, 0.144356),
8643                c64::new(0.745276, 0.873887),
8644                c64::new(0.438998, 0.804666),
8645                c64::new(0.219396, 0.678971),
8646                c64::new(0.420545, 0.155666),
8647                c64::new(0.350061, 0.054623),
8648                c64::new(0.724278, 0.245731),
8649                c64::new(0.915217, 0.751912),
8650                c64::new(0.897378, 0.158476),
8651                c64::new(0.493065, 0.190242),
8652                c64::new(0.846690, 0.162171),
8653                c64::new(0.614193, 0.830638),
8654                c64::new(0.728447, 0.713174),
8655                c64::new(0.867831, 0.152079),
8656                c64::new(0.344324, 0.189384),
8657                c64::new(0.041797, 0.095245),
8658                c64::new(0.145474, 0.825597),
8659                c64::new(0.409952, 0.084094),
8660                c64::new(0.538063, 0.853134),
8661                c64::new(0.389526, 0.867265),
8662                c64::new(0.156201, 0.373831),
8663                c64::new(0.856444, 0.255195),
8664                c64::new(0.624446, 0.800430),
8665                c64::new(0.813866, 0.704184),
8666                c64::new(0.305135, 0.440342),
8667                c64::new(0.935756, 0.535515),
8668                c64::new(0.239918, 0.421123),
8669            ],
8670            [
8671                c64::new(0.000000, 0.000000),
8672                c64::new(0.000000, 0.000000),
8673                c64::new(0.000000, 0.000000),
8674                c64::new(0.000000, 0.000000),
8675                c64::new(0.000000, 0.000000),
8676                c64::new(0.000000, 0.000000),
8677                c64::new(0.000000, 0.000000),
8678                c64::new(0.000000, 0.000000),
8679                c64::new(0.000000, 0.000000),
8680                c64::new(0.000000, 0.000000),
8681                c64::new(0.000000, 0.000000),
8682                c64::new(0.000000, 0.000000),
8683                c64::new(0.000000, 0.000000),
8684                c64::new(0.000000, 0.000000),
8685                c64::new(0.000000, 0.000000),
8686                c64::new(0.000000, 0.000000),
8687                c64::new(0.000000, 0.000000),
8688                c64::new(0.000000, 0.000000),
8689                c64::new(0.000000, 0.000000),
8690                c64::new(0.000000, 0.000000),
8691                c64::new(0.000000, 0.000000),
8692                c64::new(0.000000, 0.000000),
8693                c64::new(0.000000, 0.000000),
8694                c64::new(0.000000, 0.000000),
8695                c64::new(0.000000, 0.000000),
8696                c64::new(0.000000, 0.000000),
8697                c64::new(0.000000, 0.000000),
8698                c64::new(0.000000, 0.000000),
8699                c64::new(0.000000, 0.000000),
8700                c64::new(0.000000, 0.000000),
8701                c64::new(0.000000, 0.000000),
8702                c64::new(0.000000, 0.000000),
8703                c64::new(0.000000, 0.000000),
8704                c64::new(0.000000, 0.000000),
8705                c64::new(0.000000, 0.000000),
8706                c64::new(0.000000, 0.000000),
8707                c64::new(0.000000, 0.000000),
8708                c64::new(0.000000, 0.000000),
8709                c64::new(0.000000, 0.000000),
8710                c64::new(0.000000, 0.000000),
8711                c64::new(0.000000, 0.000000),
8712                c64::new(0.000000, 0.000000),
8713                c64::new(0.000000, 0.000000),
8714                c64::new(0.000000, 0.000000),
8715                c64::new(0.000000, 0.000000),
8716                c64::new(0.000000, 0.000000),
8717                c64::new(0.000000, 0.000000),
8718                c64::new(0.000000, 0.000000),
8719                c64::new(0.000000, 0.000000),
8720                c64::new(0.000000, 0.000000),
8721                c64::new(0.000000, 0.000000),
8722                c64::new(0.000000, 0.000000),
8723                c64::new(0.000000, 0.000000),
8724                c64::new(0.000000, 0.000000),
8725                c64::new(0.000000, 0.000000),
8726                c64::new(0.000000, 0.000000),
8727                c64::new(0.443887, 0.096252),
8728                c64::new(0.048803, 0.497488),
8729                c64::new(0.471642, 0.661234),
8730                c64::new(0.672943, 0.569576),
8731                c64::new(0.126652, 0.077283),
8732                c64::new(0.929775, 0.760164),
8733                c64::new(0.209105, 0.921316),
8734                c64::new(0.730360, 0.098735),
8735                c64::new(0.837673, 0.384573),
8736                c64::new(0.793078, 0.778765),
8737                c64::new(0.075759, 0.204853),
8738                c64::new(0.067606, 0.310397),
8739                c64::new(0.990904, 0.653071),
8740                c64::new(0.671204, 0.829804),
8741                c64::new(0.039517, 0.702387),
8742                c64::new(0.770537, 0.087154),
8743                c64::new(0.285338, 0.629213),
8744                c64::new(0.350901, 0.274550),
8745                c64::new(0.986373, 0.895405),
8746                c64::new(0.671961, 0.764578),
8747                c64::new(0.094694, 0.090760),
8748                c64::new(0.693340, 0.616171),
8749                c64::new(0.647754, 0.612236),
8750                c64::new(0.139916, 0.646102),
8751                c64::new(0.511963, 0.592511),
8752                c64::new(0.046803, 0.376892),
8753                c64::new(0.726543, 0.342553),
8754                c64::new(0.497081, 0.218586),
8755                c64::new(0.924997, 0.975546),
8756                c64::new(0.130269, 0.391220),
8757                c64::new(0.252864, 0.062803),
8758                c64::new(0.792219, 0.181532),
8759                c64::new(0.543743, 0.851862),
8760                c64::new(0.857259, 0.746477),
8761                c64::new(0.880736, 0.652548),
8762                c64::new(0.980625, 0.937644),
8763                c64::new(0.966536, 0.923276),
8764                c64::new(0.041165, 0.146294),
8765                c64::new(0.011005, 0.103325),
8766                c64::new(0.341004, 0.665122),
8767                c64::new(0.671485, 0.370646),
8768                c64::new(0.413666, 0.898151),
8769                c64::new(0.647795, 0.946871),
8770                c64::new(0.634048, 0.264302),
8771            ],
8772            [
8773                c64::new(0.000000, 0.000000),
8774                c64::new(0.000000, 0.000000),
8775                c64::new(0.000000, 0.000000),
8776                c64::new(0.000000, 0.000000),
8777                c64::new(0.000000, 0.000000),
8778                c64::new(0.000000, 0.000000),
8779                c64::new(0.000000, 0.000000),
8780                c64::new(0.000000, 0.000000),
8781                c64::new(0.000000, 0.000000),
8782                c64::new(0.000000, 0.000000),
8783                c64::new(0.000000, 0.000000),
8784                c64::new(0.000000, 0.000000),
8785                c64::new(0.000000, 0.000000),
8786                c64::new(0.000000, 0.000000),
8787                c64::new(0.000000, 0.000000),
8788                c64::new(0.000000, 0.000000),
8789                c64::new(0.000000, 0.000000),
8790                c64::new(0.000000, 0.000000),
8791                c64::new(0.000000, 0.000000),
8792                c64::new(0.000000, 0.000000),
8793                c64::new(0.000000, 0.000000),
8794                c64::new(0.000000, 0.000000),
8795                c64::new(0.000000, 0.000000),
8796                c64::new(0.000000, 0.000000),
8797                c64::new(0.000000, 0.000000),
8798                c64::new(0.000000, 0.000000),
8799                c64::new(0.000000, 0.000000),
8800                c64::new(0.000000, 0.000000),
8801                c64::new(0.000000, 0.000000),
8802                c64::new(0.000000, 0.000000),
8803                c64::new(0.000000, 0.000000),
8804                c64::new(0.000000, 0.000000),
8805                c64::new(0.000000, 0.000000),
8806                c64::new(0.000000, 0.000000),
8807                c64::new(0.000000, 0.000000),
8808                c64::new(0.000000, 0.000000),
8809                c64::new(0.000000, 0.000000),
8810                c64::new(0.000000, 0.000000),
8811                c64::new(0.000000, 0.000000),
8812                c64::new(0.000000, 0.000000),
8813                c64::new(0.000000, 0.000000),
8814                c64::new(0.000000, 0.000000),
8815                c64::new(0.000000, 0.000000),
8816                c64::new(0.000000, 0.000000),
8817                c64::new(0.000000, 0.000000),
8818                c64::new(0.000000, 0.000000),
8819                c64::new(0.000000, 0.000000),
8820                c64::new(0.000000, 0.000000),
8821                c64::new(0.000000, 0.000000),
8822                c64::new(0.000000, 0.000000),
8823                c64::new(0.000000, 0.000000),
8824                c64::new(0.000000, 0.000000),
8825                c64::new(0.000000, 0.000000),
8826                c64::new(0.000000, 0.000000),
8827                c64::new(0.000000, 0.000000),
8828                c64::new(0.000000, 0.000000),
8829                c64::new(0.000000, 0.000000),
8830                c64::new(0.399760, 0.545531),
8831                c64::new(0.302525, 0.349635),
8832                c64::new(0.689429, 0.842495),
8833                c64::new(0.533322, 0.010064),
8834                c64::new(0.819166, 0.243282),
8835                c64::new(0.583474, 0.841934),
8836                c64::new(0.176796, 0.576558),
8837                c64::new(0.975096, 0.985660),
8838                c64::new(0.838062, 0.680148),
8839                c64::new(0.874235, 0.481368),
8840                c64::new(0.963365, 0.562827),
8841                c64::new(0.709004, 0.504630),
8842                c64::new(0.723597, 0.477495),
8843                c64::new(0.900440, 0.436930),
8844                c64::new(0.038598, 0.623360),
8845                c64::new(0.148142, 0.588271),
8846                c64::new(0.021614, 0.156331),
8847                c64::new(0.246216, 0.335143),
8848                c64::new(0.335856, 0.499071),
8849                c64::new(0.491294, 0.703764),
8850                c64::new(0.803089, 0.309034),
8851                c64::new(0.608218, 0.082254),
8852                c64::new(0.201717, 0.668288),
8853                c64::new(0.249120, 0.151090),
8854                c64::new(0.906595, 0.457076),
8855                c64::new(0.373574, 0.028683),
8856                c64::new(0.420152, 0.922571),
8857                c64::new(0.204873, 0.461974),
8858                c64::new(0.030222, 0.637080),
8859                c64::new(0.180576, 0.714499),
8860                c64::new(0.519789, 0.687641),
8861                c64::new(0.971125, 0.477576),
8862                c64::new(0.063517, 0.906057),
8863                c64::new(0.023328, 0.537450),
8864                c64::new(0.242376, 0.024823),
8865                c64::new(0.241058, 0.739243),
8866                c64::new(0.074309, 0.920669),
8867                c64::new(0.092918, 0.988590),
8868                c64::new(0.656460, 0.399125),
8869                c64::new(0.445855, 0.015304),
8870                c64::new(0.980544, 0.780683),
8871                c64::new(0.709660, 0.150207),
8872                c64::new(0.929180, 0.512614),
8873            ],
8874            [
8875                c64::new(0.000000, 0.000000),
8876                c64::new(0.000000, 0.000000),
8877                c64::new(0.000000, 0.000000),
8878                c64::new(0.000000, 0.000000),
8879                c64::new(0.000000, 0.000000),
8880                c64::new(0.000000, 0.000000),
8881                c64::new(0.000000, 0.000000),
8882                c64::new(0.000000, 0.000000),
8883                c64::new(0.000000, 0.000000),
8884                c64::new(0.000000, 0.000000),
8885                c64::new(0.000000, 0.000000),
8886                c64::new(0.000000, 0.000000),
8887                c64::new(0.000000, 0.000000),
8888                c64::new(0.000000, 0.000000),
8889                c64::new(0.000000, 0.000000),
8890                c64::new(0.000000, 0.000000),
8891                c64::new(0.000000, 0.000000),
8892                c64::new(0.000000, 0.000000),
8893                c64::new(0.000000, 0.000000),
8894                c64::new(0.000000, 0.000000),
8895                c64::new(0.000000, 0.000000),
8896                c64::new(0.000000, 0.000000),
8897                c64::new(0.000000, 0.000000),
8898                c64::new(0.000000, 0.000000),
8899                c64::new(0.000000, 0.000000),
8900                c64::new(0.000000, 0.000000),
8901                c64::new(0.000000, 0.000000),
8902                c64::new(0.000000, 0.000000),
8903                c64::new(0.000000, 0.000000),
8904                c64::new(0.000000, 0.000000),
8905                c64::new(0.000000, 0.000000),
8906                c64::new(0.000000, 0.000000),
8907                c64::new(0.000000, 0.000000),
8908                c64::new(0.000000, 0.000000),
8909                c64::new(0.000000, 0.000000),
8910                c64::new(0.000000, 0.000000),
8911                c64::new(0.000000, 0.000000),
8912                c64::new(0.000000, 0.000000),
8913                c64::new(0.000000, 0.000000),
8914                c64::new(0.000000, 0.000000),
8915                c64::new(0.000000, 0.000000),
8916                c64::new(0.000000, 0.000000),
8917                c64::new(0.000000, 0.000000),
8918                c64::new(0.000000, 0.000000),
8919                c64::new(0.000000, 0.000000),
8920                c64::new(0.000000, 0.000000),
8921                c64::new(0.000000, 0.000000),
8922                c64::new(0.000000, 0.000000),
8923                c64::new(0.000000, 0.000000),
8924                c64::new(0.000000, 0.000000),
8925                c64::new(0.000000, 0.000000),
8926                c64::new(0.000000, 0.000000),
8927                c64::new(0.000000, 0.000000),
8928                c64::new(0.000000, 0.000000),
8929                c64::new(0.000000, 0.000000),
8930                c64::new(0.000000, 0.000000),
8931                c64::new(0.000000, 0.000000),
8932                c64::new(0.000000, 0.000000),
8933                c64::new(0.183885, 0.640048),
8934                c64::new(0.912031, 0.634759),
8935                c64::new(0.236413, 0.295296),
8936                c64::new(0.802898, 0.509686),
8937                c64::new(0.465896, 0.991385),
8938                c64::new(0.215434, 0.858177),
8939                c64::new(0.213919, 0.535239),
8940                c64::new(0.516533, 0.693449),
8941                c64::new(0.192257, 0.140350),
8942                c64::new(0.033248, 0.426737),
8943                c64::new(0.594861, 0.553121),
8944                c64::new(0.629219, 0.815631),
8945                c64::new(0.738466, 0.478181),
8946                c64::new(0.284469, 0.636524),
8947                c64::new(0.941980, 0.963783),
8948                c64::new(0.076833, 0.344528),
8949                c64::new(0.305275, 0.382909),
8950                c64::new(0.455290, 0.409875),
8951                c64::new(0.515029, 0.551295),
8952                c64::new(0.107499, 0.231463),
8953                c64::new(0.763160, 0.003572),
8954                c64::new(0.985063, 0.544932),
8955                c64::new(0.951567, 0.386958),
8956                c64::new(0.980338, 0.350313),
8957                c64::new(0.016406, 0.726972),
8958                c64::new(0.449129, 0.641696),
8959                c64::new(0.672999, 0.756411),
8960                c64::new(0.623663, 0.983450),
8961                c64::new(0.321635, 0.378232),
8962                c64::new(0.794536, 0.654493),
8963                c64::new(0.081418, 0.747104),
8964                c64::new(0.562292, 0.238510),
8965                c64::new(0.633112, 0.758092),
8966                c64::new(0.368399, 0.113202),
8967                c64::new(0.209711, 0.536470),
8968                c64::new(0.424816, 0.634438),
8969                c64::new(0.651365, 0.955733),
8970                c64::new(0.777340, 0.979498),
8971                c64::new(0.250119, 0.763171),
8972                c64::new(0.893011, 0.506565),
8973                c64::new(0.453844, 0.276880),
8974                c64::new(0.958790, 0.279738),
8975            ],
8976            [
8977                c64::new(0.000000, 0.000000),
8978                c64::new(0.000000, 0.000000),
8979                c64::new(0.000000, 0.000000),
8980                c64::new(0.000000, 0.000000),
8981                c64::new(0.000000, 0.000000),
8982                c64::new(0.000000, 0.000000),
8983                c64::new(0.000000, 0.000000),
8984                c64::new(0.000000, 0.000000),
8985                c64::new(0.000000, 0.000000),
8986                c64::new(0.000000, 0.000000),
8987                c64::new(0.000000, 0.000000),
8988                c64::new(0.000000, 0.000000),
8989                c64::new(0.000000, 0.000000),
8990                c64::new(0.000000, 0.000000),
8991                c64::new(0.000000, 0.000000),
8992                c64::new(0.000000, 0.000000),
8993                c64::new(0.000000, 0.000000),
8994                c64::new(0.000000, 0.000000),
8995                c64::new(0.000000, 0.000000),
8996                c64::new(0.000000, 0.000000),
8997                c64::new(0.000000, 0.000000),
8998                c64::new(0.000000, 0.000000),
8999                c64::new(0.000000, 0.000000),
9000                c64::new(0.000000, 0.000000),
9001                c64::new(0.000000, 0.000000),
9002                c64::new(0.000000, 0.000000),
9003                c64::new(0.000000, 0.000000),
9004                c64::new(0.000000, 0.000000),
9005                c64::new(0.000000, 0.000000),
9006                c64::new(0.000000, 0.000000),
9007                c64::new(0.000000, 0.000000),
9008                c64::new(0.000000, 0.000000),
9009                c64::new(0.000000, 0.000000),
9010                c64::new(0.000000, 0.000000),
9011                c64::new(0.000000, 0.000000),
9012                c64::new(0.000000, 0.000000),
9013                c64::new(0.000000, 0.000000),
9014                c64::new(0.000000, 0.000000),
9015                c64::new(0.000000, 0.000000),
9016                c64::new(0.000000, 0.000000),
9017                c64::new(0.000000, 0.000000),
9018                c64::new(0.000000, 0.000000),
9019                c64::new(0.000000, 0.000000),
9020                c64::new(0.000000, 0.000000),
9021                c64::new(0.000000, 0.000000),
9022                c64::new(0.000000, 0.000000),
9023                c64::new(0.000000, 0.000000),
9024                c64::new(0.000000, 0.000000),
9025                c64::new(0.000000, 0.000000),
9026                c64::new(0.000000, 0.000000),
9027                c64::new(0.000000, 0.000000),
9028                c64::new(0.000000, 0.000000),
9029                c64::new(0.000000, 0.000000),
9030                c64::new(0.000000, 0.000000),
9031                c64::new(0.000000, 0.000000),
9032                c64::new(0.000000, 0.000000),
9033                c64::new(0.000000, 0.000000),
9034                c64::new(0.000000, 0.000000),
9035                c64::new(0.000000, 0.000000),
9036                c64::new(0.417238, 0.369492),
9037                c64::new(0.490593, 0.448243),
9038                c64::new(0.035815, 0.658906),
9039                c64::new(0.722830, 0.941547),
9040                c64::new(0.943861, 0.212606),
9041                c64::new(0.975218, 0.576794),
9042                c64::new(0.661743, 0.297687),
9043                c64::new(0.540861, 0.521144),
9044                c64::new(0.724745, 0.473121),
9045                c64::new(0.306702, 0.661744),
9046                c64::new(0.766205, 0.343116),
9047                c64::new(0.178149, 0.524040),
9048                c64::new(0.278347, 0.072409),
9049                c64::new(0.073853, 0.230312),
9050                c64::new(0.150297, 0.487793),
9051                c64::new(0.248672, 0.883212),
9052                c64::new(0.352977, 0.544588),
9053                c64::new(0.694336, 0.384960),
9054                c64::new(0.824341, 0.463108),
9055                c64::new(0.630856, 0.571479),
9056                c64::new(0.260298, 0.528532),
9057                c64::new(0.811217, 0.380165),
9058                c64::new(0.587356, 0.360909),
9059                c64::new(0.906302, 0.532543),
9060                c64::new(0.154833, 0.784205),
9061                c64::new(0.869951, 0.549785),
9062                c64::new(0.903254, 0.495039),
9063                c64::new(0.462508, 0.491829),
9064                c64::new(0.462055, 0.055157),
9065                c64::new(0.333980, 0.195511),
9066                c64::new(0.201547, 0.047648),
9067                c64::new(0.423427, 0.350561),
9068                c64::new(0.430907, 0.409929),
9069                c64::new(0.050620, 0.948940),
9070                c64::new(0.043502, 0.335449),
9071                c64::new(0.875777, 0.383892),
9072                c64::new(0.084340, 0.727528),
9073                c64::new(0.557758, 0.437854),
9074                c64::new(0.226960, 0.552549),
9075                c64::new(0.271554, 0.234268),
9076                c64::new(0.945420, 0.600483),
9077            ],
9078            [
9079                c64::new(0.000000, 0.000000),
9080                c64::new(0.000000, 0.000000),
9081                c64::new(0.000000, 0.000000),
9082                c64::new(0.000000, 0.000000),
9083                c64::new(0.000000, 0.000000),
9084                c64::new(0.000000, 0.000000),
9085                c64::new(0.000000, 0.000000),
9086                c64::new(0.000000, 0.000000),
9087                c64::new(0.000000, 0.000000),
9088                c64::new(0.000000, 0.000000),
9089                c64::new(0.000000, 0.000000),
9090                c64::new(0.000000, 0.000000),
9091                c64::new(0.000000, 0.000000),
9092                c64::new(0.000000, 0.000000),
9093                c64::new(0.000000, 0.000000),
9094                c64::new(0.000000, 0.000000),
9095                c64::new(0.000000, 0.000000),
9096                c64::new(0.000000, 0.000000),
9097                c64::new(0.000000, 0.000000),
9098                c64::new(0.000000, 0.000000),
9099                c64::new(0.000000, 0.000000),
9100                c64::new(0.000000, 0.000000),
9101                c64::new(0.000000, 0.000000),
9102                c64::new(0.000000, 0.000000),
9103                c64::new(0.000000, 0.000000),
9104                c64::new(0.000000, 0.000000),
9105                c64::new(0.000000, 0.000000),
9106                c64::new(0.000000, 0.000000),
9107                c64::new(0.000000, 0.000000),
9108                c64::new(0.000000, 0.000000),
9109                c64::new(0.000000, 0.000000),
9110                c64::new(0.000000, 0.000000),
9111                c64::new(0.000000, 0.000000),
9112                c64::new(0.000000, 0.000000),
9113                c64::new(0.000000, 0.000000),
9114                c64::new(0.000000, 0.000000),
9115                c64::new(0.000000, 0.000000),
9116                c64::new(0.000000, 0.000000),
9117                c64::new(0.000000, 0.000000),
9118                c64::new(0.000000, 0.000000),
9119                c64::new(0.000000, 0.000000),
9120                c64::new(0.000000, 0.000000),
9121                c64::new(0.000000, 0.000000),
9122                c64::new(0.000000, 0.000000),
9123                c64::new(0.000000, 0.000000),
9124                c64::new(0.000000, 0.000000),
9125                c64::new(0.000000, 0.000000),
9126                c64::new(0.000000, 0.000000),
9127                c64::new(0.000000, 0.000000),
9128                c64::new(0.000000, 0.000000),
9129                c64::new(0.000000, 0.000000),
9130                c64::new(0.000000, 0.000000),
9131                c64::new(0.000000, 0.000000),
9132                c64::new(0.000000, 0.000000),
9133                c64::new(0.000000, 0.000000),
9134                c64::new(0.000000, 0.000000),
9135                c64::new(0.000000, 0.000000),
9136                c64::new(0.000000, 0.000000),
9137                c64::new(0.000000, 0.000000),
9138                c64::new(0.000000, 0.000000),
9139                c64::new(0.505768, 0.657006),
9140                c64::new(0.317234, 0.834577),
9141                c64::new(0.256432, 0.284741),
9142                c64::new(0.546082, 0.830825),
9143                c64::new(0.563529, 0.064925),
9144                c64::new(0.449906, 0.731639),
9145                c64::new(0.215404, 0.615188),
9146                c64::new(0.262296, 0.981337),
9147                c64::new(0.603737, 0.561204),
9148                c64::new(0.537121, 0.982509),
9149                c64::new(0.210794, 0.680657),
9150                c64::new(0.204230, 0.075728),
9151                c64::new(0.256903, 0.771966),
9152                c64::new(0.785525, 0.818340),
9153                c64::new(0.195146, 0.225036),
9154                c64::new(0.098322, 0.031491),
9155                c64::new(0.468545, 0.601058),
9156                c64::new(0.175068, 0.323258),
9157                c64::new(0.744423, 0.888722),
9158                c64::new(0.355310, 0.442561),
9159                c64::new(0.825458, 0.854611),
9160                c64::new(0.265355, 0.372867),
9161                c64::new(0.574520, 0.213399),
9162                c64::new(0.358056, 0.333241),
9163                c64::new(0.181991, 0.071544),
9164                c64::new(0.479192, 0.159646),
9165                c64::new(0.314514, 0.137438),
9166                c64::new(0.434541, 0.705659),
9167                c64::new(0.177177, 0.880997),
9168                c64::new(0.532315, 0.194454),
9169                c64::new(0.663670, 0.527412),
9170                c64::new(0.807943, 0.019050),
9171                c64::new(0.193427, 0.231821),
9172                c64::new(0.634212, 0.356353),
9173                c64::new(0.069678, 0.726242),
9174                c64::new(0.176196, 0.066913),
9175                c64::new(0.499981, 0.104282),
9176                c64::new(0.451192, 0.411616),
9177                c64::new(0.624788, 0.879581),
9178                c64::new(0.338014, 0.138071),
9179            ],
9180            [
9181                c64::new(0.000000, 0.000000),
9182                c64::new(0.000000, 0.000000),
9183                c64::new(0.000000, 0.000000),
9184                c64::new(0.000000, 0.000000),
9185                c64::new(0.000000, 0.000000),
9186                c64::new(0.000000, 0.000000),
9187                c64::new(0.000000, 0.000000),
9188                c64::new(0.000000, 0.000000),
9189                c64::new(0.000000, 0.000000),
9190                c64::new(0.000000, 0.000000),
9191                c64::new(0.000000, 0.000000),
9192                c64::new(0.000000, 0.000000),
9193                c64::new(0.000000, 0.000000),
9194                c64::new(0.000000, 0.000000),
9195                c64::new(0.000000, 0.000000),
9196                c64::new(0.000000, 0.000000),
9197                c64::new(0.000000, 0.000000),
9198                c64::new(0.000000, 0.000000),
9199                c64::new(0.000000, 0.000000),
9200                c64::new(0.000000, 0.000000),
9201                c64::new(0.000000, 0.000000),
9202                c64::new(0.000000, 0.000000),
9203                c64::new(0.000000, 0.000000),
9204                c64::new(0.000000, 0.000000),
9205                c64::new(0.000000, 0.000000),
9206                c64::new(0.000000, 0.000000),
9207                c64::new(0.000000, 0.000000),
9208                c64::new(0.000000, 0.000000),
9209                c64::new(0.000000, 0.000000),
9210                c64::new(0.000000, 0.000000),
9211                c64::new(0.000000, 0.000000),
9212                c64::new(0.000000, 0.000000),
9213                c64::new(0.000000, 0.000000),
9214                c64::new(0.000000, 0.000000),
9215                c64::new(0.000000, 0.000000),
9216                c64::new(0.000000, 0.000000),
9217                c64::new(0.000000, 0.000000),
9218                c64::new(0.000000, 0.000000),
9219                c64::new(0.000000, 0.000000),
9220                c64::new(0.000000, 0.000000),
9221                c64::new(0.000000, 0.000000),
9222                c64::new(0.000000, 0.000000),
9223                c64::new(0.000000, 0.000000),
9224                c64::new(0.000000, 0.000000),
9225                c64::new(0.000000, 0.000000),
9226                c64::new(0.000000, 0.000000),
9227                c64::new(0.000000, 0.000000),
9228                c64::new(0.000000, 0.000000),
9229                c64::new(0.000000, 0.000000),
9230                c64::new(0.000000, 0.000000),
9231                c64::new(0.000000, 0.000000),
9232                c64::new(0.000000, 0.000000),
9233                c64::new(0.000000, 0.000000),
9234                c64::new(0.000000, 0.000000),
9235                c64::new(0.000000, 0.000000),
9236                c64::new(0.000000, 0.000000),
9237                c64::new(0.000000, 0.000000),
9238                c64::new(0.000000, 0.000000),
9239                c64::new(0.000000, 0.000000),
9240                c64::new(0.000000, 0.000000),
9241                c64::new(0.000000, 0.000000),
9242                c64::new(0.653213, 0.156558),
9243                c64::new(0.405071, 0.346611),
9244                c64::new(0.070587, 0.689220),
9245                c64::new(0.937365, 0.283641),
9246                c64::new(0.058099, 0.236126),
9247                c64::new(0.463782, 0.273806),
9248                c64::new(0.103982, 0.729582),
9249                c64::new(0.339173, 0.981693),
9250                c64::new(0.143861, 0.119670),
9251                c64::new(0.721600, 0.620586),
9252                c64::new(0.270474, 0.298087),
9253                c64::new(0.412060, 0.262356),
9254                c64::new(0.522878, 0.643121),
9255                c64::new(0.939208, 0.071407),
9256                c64::new(0.976928, 0.817970),
9257                c64::new(0.276530, 0.316723),
9258                c64::new(0.985798, 0.945611),
9259                c64::new(0.622870, 0.662908),
9260                c64::new(0.646896, 0.327989),
9261                c64::new(0.040252, 0.582125),
9262                c64::new(0.812273, 0.035676),
9263                c64::new(0.631451, 0.041672),
9264                c64::new(0.761114, 0.996644),
9265                c64::new(0.582146, 0.191825),
9266                c64::new(0.520360, 0.612590),
9267                c64::new(0.676146, 0.579723),
9268                c64::new(0.130856, 0.419919),
9269                c64::new(0.075372, 0.237200),
9270                c64::new(0.493157, 0.717249),
9271                c64::new(0.616828, 0.173934),
9272                c64::new(0.025733, 0.502773),
9273                c64::new(0.141155, 0.622883),
9274                c64::new(0.830478, 0.232179),
9275                c64::new(0.930286, 0.076636),
9276                c64::new(0.396307, 0.248675),
9277                c64::new(0.739178, 0.519687),
9278                c64::new(0.008844, 0.273440),
9279                c64::new(0.799089, 0.082913),
9280                c64::new(0.536671, 0.414616),
9281            ],
9282            [
9283                c64::new(0.000000, 0.000000),
9284                c64::new(0.000000, 0.000000),
9285                c64::new(0.000000, 0.000000),
9286                c64::new(0.000000, 0.000000),
9287                c64::new(0.000000, 0.000000),
9288                c64::new(0.000000, 0.000000),
9289                c64::new(0.000000, 0.000000),
9290                c64::new(0.000000, 0.000000),
9291                c64::new(0.000000, 0.000000),
9292                c64::new(0.000000, 0.000000),
9293                c64::new(0.000000, 0.000000),
9294                c64::new(0.000000, 0.000000),
9295                c64::new(0.000000, 0.000000),
9296                c64::new(0.000000, 0.000000),
9297                c64::new(0.000000, 0.000000),
9298                c64::new(0.000000, 0.000000),
9299                c64::new(0.000000, 0.000000),
9300                c64::new(0.000000, 0.000000),
9301                c64::new(0.000000, 0.000000),
9302                c64::new(0.000000, 0.000000),
9303                c64::new(0.000000, 0.000000),
9304                c64::new(0.000000, 0.000000),
9305                c64::new(0.000000, 0.000000),
9306                c64::new(0.000000, 0.000000),
9307                c64::new(0.000000, 0.000000),
9308                c64::new(0.000000, 0.000000),
9309                c64::new(0.000000, 0.000000),
9310                c64::new(0.000000, 0.000000),
9311                c64::new(0.000000, 0.000000),
9312                c64::new(0.000000, 0.000000),
9313                c64::new(0.000000, 0.000000),
9314                c64::new(0.000000, 0.000000),
9315                c64::new(0.000000, 0.000000),
9316                c64::new(0.000000, 0.000000),
9317                c64::new(0.000000, 0.000000),
9318                c64::new(0.000000, 0.000000),
9319                c64::new(0.000000, 0.000000),
9320                c64::new(0.000000, 0.000000),
9321                c64::new(0.000000, 0.000000),
9322                c64::new(0.000000, 0.000000),
9323                c64::new(0.000000, 0.000000),
9324                c64::new(0.000000, 0.000000),
9325                c64::new(0.000000, 0.000000),
9326                c64::new(0.000000, 0.000000),
9327                c64::new(0.000000, 0.000000),
9328                c64::new(0.000000, 0.000000),
9329                c64::new(0.000000, 0.000000),
9330                c64::new(0.000000, 0.000000),
9331                c64::new(0.000000, 0.000000),
9332                c64::new(0.000000, 0.000000),
9333                c64::new(0.000000, 0.000000),
9334                c64::new(0.000000, 0.000000),
9335                c64::new(0.000000, 0.000000),
9336                c64::new(0.000000, 0.000000),
9337                c64::new(0.000000, 0.000000),
9338                c64::new(0.000000, 0.000000),
9339                c64::new(0.000000, 0.000000),
9340                c64::new(0.000000, 0.000000),
9341                c64::new(0.000000, 0.000000),
9342                c64::new(0.000000, 0.000000),
9343                c64::new(0.000000, 0.000000),
9344                c64::new(0.000000, 0.000000),
9345                c64::new(0.521473, 0.493330),
9346                c64::new(0.974857, 0.834323),
9347                c64::new(0.924678, 0.781474),
9348                c64::new(0.799778, 0.908626),
9349                c64::new(0.759952, 0.735617),
9350                c64::new(0.929625, 0.196712),
9351                c64::new(0.725352, 0.183207),
9352                c64::new(0.582649, 0.239378),
9353                c64::new(0.476960, 0.676360),
9354                c64::new(0.756559, 0.692404),
9355                c64::new(0.526575, 0.913120),
9356                c64::new(0.645668, 0.746689),
9357                c64::new(0.103983, 0.623127),
9358                c64::new(0.368590, 0.229021),
9359                c64::new(0.161638, 0.698745),
9360                c64::new(0.807479, 0.517863),
9361                c64::new(0.286258, 0.121340),
9362                c64::new(0.816100, 0.079495),
9363                c64::new(0.885197, 0.415368),
9364                c64::new(0.570288, 0.925722),
9365                c64::new(0.185786, 0.450075),
9366                c64::new(0.048422, 0.071797),
9367                c64::new(0.868734, 0.965302),
9368                c64::new(0.042518, 0.027159),
9369                c64::new(0.243484, 0.185245),
9370                c64::new(0.353959, 0.626861),
9371                c64::new(0.158712, 0.200324),
9372                c64::new(0.655371, 0.960645),
9373                c64::new(0.762146, 0.335258),
9374                c64::new(0.608540, 0.724254),
9375                c64::new(0.695535, 0.085063),
9376                c64::new(0.443263, 0.240561),
9377                c64::new(0.800195, 0.579143),
9378                c64::new(0.532124, 0.120470),
9379                c64::new(0.763295, 0.438061),
9380                c64::new(0.862724, 0.170962),
9381                c64::new(0.043138, 0.998741),
9382                c64::new(0.198109, 0.350048),
9383            ],
9384            [
9385                c64::new(0.000000, 0.000000),
9386                c64::new(0.000000, 0.000000),
9387                c64::new(0.000000, 0.000000),
9388                c64::new(0.000000, 0.000000),
9389                c64::new(0.000000, 0.000000),
9390                c64::new(0.000000, 0.000000),
9391                c64::new(0.000000, 0.000000),
9392                c64::new(0.000000, 0.000000),
9393                c64::new(0.000000, 0.000000),
9394                c64::new(0.000000, 0.000000),
9395                c64::new(0.000000, 0.000000),
9396                c64::new(0.000000, 0.000000),
9397                c64::new(0.000000, 0.000000),
9398                c64::new(0.000000, 0.000000),
9399                c64::new(0.000000, 0.000000),
9400                c64::new(0.000000, 0.000000),
9401                c64::new(0.000000, 0.000000),
9402                c64::new(0.000000, 0.000000),
9403                c64::new(0.000000, 0.000000),
9404                c64::new(0.000000, 0.000000),
9405                c64::new(0.000000, 0.000000),
9406                c64::new(0.000000, 0.000000),
9407                c64::new(0.000000, 0.000000),
9408                c64::new(0.000000, 0.000000),
9409                c64::new(0.000000, 0.000000),
9410                c64::new(0.000000, 0.000000),
9411                c64::new(0.000000, 0.000000),
9412                c64::new(0.000000, 0.000000),
9413                c64::new(0.000000, 0.000000),
9414                c64::new(0.000000, 0.000000),
9415                c64::new(0.000000, 0.000000),
9416                c64::new(0.000000, 0.000000),
9417                c64::new(0.000000, 0.000000),
9418                c64::new(0.000000, 0.000000),
9419                c64::new(0.000000, 0.000000),
9420                c64::new(0.000000, 0.000000),
9421                c64::new(0.000000, 0.000000),
9422                c64::new(0.000000, 0.000000),
9423                c64::new(0.000000, 0.000000),
9424                c64::new(0.000000, 0.000000),
9425                c64::new(0.000000, 0.000000),
9426                c64::new(0.000000, 0.000000),
9427                c64::new(0.000000, 0.000000),
9428                c64::new(0.000000, 0.000000),
9429                c64::new(0.000000, 0.000000),
9430                c64::new(0.000000, 0.000000),
9431                c64::new(0.000000, 0.000000),
9432                c64::new(0.000000, 0.000000),
9433                c64::new(0.000000, 0.000000),
9434                c64::new(0.000000, 0.000000),
9435                c64::new(0.000000, 0.000000),
9436                c64::new(0.000000, 0.000000),
9437                c64::new(0.000000, 0.000000),
9438                c64::new(0.000000, 0.000000),
9439                c64::new(0.000000, 0.000000),
9440                c64::new(0.000000, 0.000000),
9441                c64::new(0.000000, 0.000000),
9442                c64::new(0.000000, 0.000000),
9443                c64::new(0.000000, 0.000000),
9444                c64::new(0.000000, 0.000000),
9445                c64::new(0.000000, 0.000000),
9446                c64::new(0.000000, 0.000000),
9447                c64::new(0.000000, 0.000000),
9448                c64::new(0.372571, 0.448722),
9449                c64::new(0.123640, 0.080367),
9450                c64::new(0.897636, 0.279573),
9451                c64::new(0.757336, 0.043046),
9452                c64::new(0.263985, 0.848332),
9453                c64::new(0.809271, 0.363908),
9454                c64::new(0.177042, 0.695124),
9455                c64::new(0.975649, 0.907473),
9456                c64::new(0.388029, 0.293192),
9457                c64::new(0.591198, 0.887654),
9458                c64::new(0.831064, 0.205380),
9459                c64::new(0.459905, 0.467796),
9460                c64::new(0.262950, 0.409071),
9461                c64::new(0.910862, 0.806174),
9462                c64::new(0.465802, 0.969445),
9463                c64::new(0.076946, 0.555695),
9464                c64::new(0.467504, 0.279660),
9465                c64::new(0.346030, 0.808167),
9466                c64::new(0.030150, 0.819514),
9467                c64::new(0.849011, 0.274073),
9468                c64::new(0.810242, 0.361799),
9469                c64::new(0.543533, 0.552200),
9470                c64::new(0.836596, 0.916915),
9471                c64::new(0.774134, 0.080999),
9472                c64::new(0.653268, 0.024501),
9473                c64::new(0.471965, 0.849630),
9474                c64::new(0.654975, 0.859705),
9475                c64::new(0.844660, 0.439487),
9476                c64::new(0.659301, 0.686872),
9477                c64::new(0.086476, 0.925477),
9478                c64::new(0.780236, 0.225463),
9479                c64::new(0.064931, 0.924466),
9480                c64::new(0.501670, 0.743015),
9481                c64::new(0.496195, 0.534468),
9482                c64::new(0.167837, 0.509298),
9483                c64::new(0.265500, 0.710958),
9484                c64::new(0.904978, 0.269971),
9485            ],
9486            [
9487                c64::new(0.000000, 0.000000),
9488                c64::new(0.000000, 0.000000),
9489                c64::new(0.000000, 0.000000),
9490                c64::new(0.000000, 0.000000),
9491                c64::new(0.000000, 0.000000),
9492                c64::new(0.000000, 0.000000),
9493                c64::new(0.000000, 0.000000),
9494                c64::new(0.000000, 0.000000),
9495                c64::new(0.000000, 0.000000),
9496                c64::new(0.000000, 0.000000),
9497                c64::new(0.000000, 0.000000),
9498                c64::new(0.000000, 0.000000),
9499                c64::new(0.000000, 0.000000),
9500                c64::new(0.000000, 0.000000),
9501                c64::new(0.000000, 0.000000),
9502                c64::new(0.000000, 0.000000),
9503                c64::new(0.000000, 0.000000),
9504                c64::new(0.000000, 0.000000),
9505                c64::new(0.000000, 0.000000),
9506                c64::new(0.000000, 0.000000),
9507                c64::new(0.000000, 0.000000),
9508                c64::new(0.000000, 0.000000),
9509                c64::new(0.000000, 0.000000),
9510                c64::new(0.000000, 0.000000),
9511                c64::new(0.000000, 0.000000),
9512                c64::new(0.000000, 0.000000),
9513                c64::new(0.000000, 0.000000),
9514                c64::new(0.000000, 0.000000),
9515                c64::new(0.000000, 0.000000),
9516                c64::new(0.000000, 0.000000),
9517                c64::new(0.000000, 0.000000),
9518                c64::new(0.000000, 0.000000),
9519                c64::new(0.000000, 0.000000),
9520                c64::new(0.000000, 0.000000),
9521                c64::new(0.000000, 0.000000),
9522                c64::new(0.000000, 0.000000),
9523                c64::new(0.000000, 0.000000),
9524                c64::new(0.000000, 0.000000),
9525                c64::new(0.000000, 0.000000),
9526                c64::new(0.000000, 0.000000),
9527                c64::new(0.000000, 0.000000),
9528                c64::new(0.000000, 0.000000),
9529                c64::new(0.000000, 0.000000),
9530                c64::new(0.000000, 0.000000),
9531                c64::new(0.000000, 0.000000),
9532                c64::new(0.000000, 0.000000),
9533                c64::new(0.000000, 0.000000),
9534                c64::new(0.000000, 0.000000),
9535                c64::new(0.000000, 0.000000),
9536                c64::new(0.000000, 0.000000),
9537                c64::new(0.000000, 0.000000),
9538                c64::new(0.000000, 0.000000),
9539                c64::new(0.000000, 0.000000),
9540                c64::new(0.000000, 0.000000),
9541                c64::new(0.000000, 0.000000),
9542                c64::new(0.000000, 0.000000),
9543                c64::new(0.000000, 0.000000),
9544                c64::new(0.000000, 0.000000),
9545                c64::new(0.000000, 0.000000),
9546                c64::new(0.000000, 0.000000),
9547                c64::new(0.000000, 0.000000),
9548                c64::new(0.000000, 0.000000),
9549                c64::new(0.000000, 0.000000),
9550                c64::new(0.000000, 0.000000),
9551                c64::new(0.294044, 0.101433),
9552                c64::new(0.840744, 0.482138),
9553                c64::new(0.321340, 0.661387),
9554                c64::new(0.046925, 0.019995),
9555                c64::new(0.058222, 0.774151),
9556                c64::new(0.689841, 0.479795),
9557                c64::new(0.028144, 0.590773),
9558                c64::new(0.418230, 0.534886),
9559                c64::new(0.010664, 0.859802),
9560                c64::new(0.978053, 0.420512),
9561                c64::new(0.515001, 0.569142),
9562                c64::new(0.938735, 0.728374),
9563                c64::new(0.705333, 0.138013),
9564                c64::new(0.256271, 0.780427),
9565                c64::new(0.055680, 0.333958),
9566                c64::new(0.049076, 0.837780),
9567                c64::new(0.475005, 0.018740),
9568                c64::new(0.087773, 0.551546),
9569                c64::new(0.199519, 0.008091),
9570                c64::new(0.375711, 0.472807),
9571                c64::new(0.384777, 0.245652),
9572                c64::new(0.656408, 0.886297),
9573                c64::new(0.832098, 0.919534),
9574                c64::new(0.720171, 0.042488),
9575                c64::new(0.357659, 0.101234),
9576                c64::new(0.987358, 0.402306),
9577                c64::new(0.002892, 0.123673),
9578                c64::new(0.381156, 0.815712),
9579                c64::new(0.536368, 0.073339),
9580                c64::new(0.980000, 0.743241),
9581                c64::new(0.624982, 0.876012),
9582                c64::new(0.743195, 0.256734),
9583                c64::new(0.923790, 0.803760),
9584                c64::new(0.020420, 0.823294),
9585                c64::new(0.913883, 0.149200),
9586                c64::new(0.167479, 0.037469),
9587            ],
9588            [
9589                c64::new(0.000000, 0.000000),
9590                c64::new(0.000000, 0.000000),
9591                c64::new(0.000000, 0.000000),
9592                c64::new(0.000000, 0.000000),
9593                c64::new(0.000000, 0.000000),
9594                c64::new(0.000000, 0.000000),
9595                c64::new(0.000000, 0.000000),
9596                c64::new(0.000000, 0.000000),
9597                c64::new(0.000000, 0.000000),
9598                c64::new(0.000000, 0.000000),
9599                c64::new(0.000000, 0.000000),
9600                c64::new(0.000000, 0.000000),
9601                c64::new(0.000000, 0.000000),
9602                c64::new(0.000000, 0.000000),
9603                c64::new(0.000000, 0.000000),
9604                c64::new(0.000000, 0.000000),
9605                c64::new(0.000000, 0.000000),
9606                c64::new(0.000000, 0.000000),
9607                c64::new(0.000000, 0.000000),
9608                c64::new(0.000000, 0.000000),
9609                c64::new(0.000000, 0.000000),
9610                c64::new(0.000000, 0.000000),
9611                c64::new(0.000000, 0.000000),
9612                c64::new(0.000000, 0.000000),
9613                c64::new(0.000000, 0.000000),
9614                c64::new(0.000000, 0.000000),
9615                c64::new(0.000000, 0.000000),
9616                c64::new(0.000000, 0.000000),
9617                c64::new(0.000000, 0.000000),
9618                c64::new(0.000000, 0.000000),
9619                c64::new(0.000000, 0.000000),
9620                c64::new(0.000000, 0.000000),
9621                c64::new(0.000000, 0.000000),
9622                c64::new(0.000000, 0.000000),
9623                c64::new(0.000000, 0.000000),
9624                c64::new(0.000000, 0.000000),
9625                c64::new(0.000000, 0.000000),
9626                c64::new(0.000000, 0.000000),
9627                c64::new(0.000000, 0.000000),
9628                c64::new(0.000000, 0.000000),
9629                c64::new(0.000000, 0.000000),
9630                c64::new(0.000000, 0.000000),
9631                c64::new(0.000000, 0.000000),
9632                c64::new(0.000000, 0.000000),
9633                c64::new(0.000000, 0.000000),
9634                c64::new(0.000000, 0.000000),
9635                c64::new(0.000000, 0.000000),
9636                c64::new(0.000000, 0.000000),
9637                c64::new(0.000000, 0.000000),
9638                c64::new(0.000000, 0.000000),
9639                c64::new(0.000000, 0.000000),
9640                c64::new(0.000000, 0.000000),
9641                c64::new(0.000000, 0.000000),
9642                c64::new(0.000000, 0.000000),
9643                c64::new(0.000000, 0.000000),
9644                c64::new(0.000000, 0.000000),
9645                c64::new(0.000000, 0.000000),
9646                c64::new(0.000000, 0.000000),
9647                c64::new(0.000000, 0.000000),
9648                c64::new(0.000000, 0.000000),
9649                c64::new(0.000000, 0.000000),
9650                c64::new(0.000000, 0.000000),
9651                c64::new(0.000000, 0.000000),
9652                c64::new(0.000000, 0.000000),
9653                c64::new(0.000000, 0.000000),
9654                c64::new(0.931888, 0.521996),
9655                c64::new(0.246849, 0.937940),
9656                c64::new(0.080709, 0.083121),
9657                c64::new(0.077108, 0.339871),
9658                c64::new(0.276430, 0.281028),
9659                c64::new(0.454198, 0.533949),
9660                c64::new(0.369664, 0.349490),
9661                c64::new(0.790596, 0.358850),
9662                c64::new(0.076970, 0.707554),
9663                c64::new(0.186630, 0.325488),
9664                c64::new(0.269162, 0.577607),
9665                c64::new(0.165001, 0.303532),
9666                c64::new(0.728556, 0.680016),
9667                c64::new(0.474250, 0.810420),
9668                c64::new(0.641103, 0.614717),
9669                c64::new(0.739550, 0.804100),
9670                c64::new(0.597237, 0.894850),
9671                c64::new(0.203832, 0.346580),
9672                c64::new(0.083933, 0.550873),
9673                c64::new(0.576164, 0.485114),
9674                c64::new(0.468030, 0.107698),
9675                c64::new(0.222727, 0.027713),
9676                c64::new(0.203053, 0.185396),
9677                c64::new(0.726388, 0.493627),
9678                c64::new(0.856492, 0.591528),
9679                c64::new(0.429702, 0.856186),
9680                c64::new(0.860735, 0.736582),
9681                c64::new(0.404977, 0.549614),
9682                c64::new(0.059981, 0.827863),
9683                c64::new(0.190986, 0.085409),
9684                c64::new(0.683270, 0.611813),
9685                c64::new(0.921823, 0.885776),
9686                c64::new(0.935917, 0.163498),
9687                c64::new(0.930860, 0.881363),
9688                c64::new(0.500434, 0.651832),
9689            ],
9690            [
9691                c64::new(0.000000, 0.000000),
9692                c64::new(0.000000, 0.000000),
9693                c64::new(0.000000, 0.000000),
9694                c64::new(0.000000, 0.000000),
9695                c64::new(0.000000, 0.000000),
9696                c64::new(0.000000, 0.000000),
9697                c64::new(0.000000, 0.000000),
9698                c64::new(0.000000, 0.000000),
9699                c64::new(0.000000, 0.000000),
9700                c64::new(0.000000, 0.000000),
9701                c64::new(0.000000, 0.000000),
9702                c64::new(0.000000, 0.000000),
9703                c64::new(0.000000, 0.000000),
9704                c64::new(0.000000, 0.000000),
9705                c64::new(0.000000, 0.000000),
9706                c64::new(0.000000, 0.000000),
9707                c64::new(0.000000, 0.000000),
9708                c64::new(0.000000, 0.000000),
9709                c64::new(0.000000, 0.000000),
9710                c64::new(0.000000, 0.000000),
9711                c64::new(0.000000, 0.000000),
9712                c64::new(0.000000, 0.000000),
9713                c64::new(0.000000, 0.000000),
9714                c64::new(0.000000, 0.000000),
9715                c64::new(0.000000, 0.000000),
9716                c64::new(0.000000, 0.000000),
9717                c64::new(0.000000, 0.000000),
9718                c64::new(0.000000, 0.000000),
9719                c64::new(0.000000, 0.000000),
9720                c64::new(0.000000, 0.000000),
9721                c64::new(0.000000, 0.000000),
9722                c64::new(0.000000, 0.000000),
9723                c64::new(0.000000, 0.000000),
9724                c64::new(0.000000, 0.000000),
9725                c64::new(0.000000, 0.000000),
9726                c64::new(0.000000, 0.000000),
9727                c64::new(0.000000, 0.000000),
9728                c64::new(0.000000, 0.000000),
9729                c64::new(0.000000, 0.000000),
9730                c64::new(0.000000, 0.000000),
9731                c64::new(0.000000, 0.000000),
9732                c64::new(0.000000, 0.000000),
9733                c64::new(0.000000, 0.000000),
9734                c64::new(0.000000, 0.000000),
9735                c64::new(0.000000, 0.000000),
9736                c64::new(0.000000, 0.000000),
9737                c64::new(0.000000, 0.000000),
9738                c64::new(0.000000, 0.000000),
9739                c64::new(0.000000, 0.000000),
9740                c64::new(0.000000, 0.000000),
9741                c64::new(0.000000, 0.000000),
9742                c64::new(0.000000, 0.000000),
9743                c64::new(0.000000, 0.000000),
9744                c64::new(0.000000, 0.000000),
9745                c64::new(0.000000, 0.000000),
9746                c64::new(0.000000, 0.000000),
9747                c64::new(0.000000, 0.000000),
9748                c64::new(0.000000, 0.000000),
9749                c64::new(0.000000, 0.000000),
9750                c64::new(0.000000, 0.000000),
9751                c64::new(0.000000, 0.000000),
9752                c64::new(0.000000, 0.000000),
9753                c64::new(0.000000, 0.000000),
9754                c64::new(0.000000, 0.000000),
9755                c64::new(0.000000, 0.000000),
9756                c64::new(0.000000, 0.000000),
9757                c64::new(0.477213, 0.816390),
9758                c64::new(0.696142, 0.274229),
9759                c64::new(0.473900, 0.191473),
9760                c64::new(0.756113, 0.893784),
9761                c64::new(0.228119, 0.215071),
9762                c64::new(0.178401, 0.847046),
9763                c64::new(0.368154, 0.431101),
9764                c64::new(0.931433, 0.444458),
9765                c64::new(0.392626, 0.443108),
9766                c64::new(0.802455, 0.827599),
9767                c64::new(0.504839, 0.435489),
9768                c64::new(0.911301, 0.019647),
9769                c64::new(0.528954, 0.184097),
9770                c64::new(0.374212, 0.419425),
9771                c64::new(0.318845, 0.853139),
9772                c64::new(0.761209, 0.699405),
9773                c64::new(0.822795, 0.816995),
9774                c64::new(0.906917, 0.330352),
9775                c64::new(0.397829, 0.673311),
9776                c64::new(0.325090, 0.795162),
9777                c64::new(0.523321, 0.803657),
9778                c64::new(0.063926, 0.901238),
9779                c64::new(0.702656, 0.551506),
9780                c64::new(0.775445, 0.396521),
9781                c64::new(0.345684, 0.683411),
9782                c64::new(0.832613, 0.422860),
9783                c64::new(0.949785, 0.716163),
9784                c64::new(0.122076, 0.036800),
9785                c64::new(0.376389, 0.026402),
9786                c64::new(0.784089, 0.449161),
9787                c64::new(0.546165, 0.199809),
9788                c64::new(0.201773, 0.853562),
9789                c64::new(0.817945, 0.246961),
9790                c64::new(0.766789, 0.364150),
9791            ],
9792            [
9793                c64::new(0.000000, 0.000000),
9794                c64::new(0.000000, 0.000000),
9795                c64::new(0.000000, 0.000000),
9796                c64::new(0.000000, 0.000000),
9797                c64::new(0.000000, 0.000000),
9798                c64::new(0.000000, 0.000000),
9799                c64::new(0.000000, 0.000000),
9800                c64::new(0.000000, 0.000000),
9801                c64::new(0.000000, 0.000000),
9802                c64::new(0.000000, 0.000000),
9803                c64::new(0.000000, 0.000000),
9804                c64::new(0.000000, 0.000000),
9805                c64::new(0.000000, 0.000000),
9806                c64::new(0.000000, 0.000000),
9807                c64::new(0.000000, 0.000000),
9808                c64::new(0.000000, 0.000000),
9809                c64::new(0.000000, 0.000000),
9810                c64::new(0.000000, 0.000000),
9811                c64::new(0.000000, 0.000000),
9812                c64::new(0.000000, 0.000000),
9813                c64::new(0.000000, 0.000000),
9814                c64::new(0.000000, 0.000000),
9815                c64::new(0.000000, 0.000000),
9816                c64::new(0.000000, 0.000000),
9817                c64::new(0.000000, 0.000000),
9818                c64::new(0.000000, 0.000000),
9819                c64::new(0.000000, 0.000000),
9820                c64::new(0.000000, 0.000000),
9821                c64::new(0.000000, 0.000000),
9822                c64::new(0.000000, 0.000000),
9823                c64::new(0.000000, 0.000000),
9824                c64::new(0.000000, 0.000000),
9825                c64::new(0.000000, 0.000000),
9826                c64::new(0.000000, 0.000000),
9827                c64::new(0.000000, 0.000000),
9828                c64::new(0.000000, 0.000000),
9829                c64::new(0.000000, 0.000000),
9830                c64::new(0.000000, 0.000000),
9831                c64::new(0.000000, 0.000000),
9832                c64::new(0.000000, 0.000000),
9833                c64::new(0.000000, 0.000000),
9834                c64::new(0.000000, 0.000000),
9835                c64::new(0.000000, 0.000000),
9836                c64::new(0.000000, 0.000000),
9837                c64::new(0.000000, 0.000000),
9838                c64::new(0.000000, 0.000000),
9839                c64::new(0.000000, 0.000000),
9840                c64::new(0.000000, 0.000000),
9841                c64::new(0.000000, 0.000000),
9842                c64::new(0.000000, 0.000000),
9843                c64::new(0.000000, 0.000000),
9844                c64::new(0.000000, 0.000000),
9845                c64::new(0.000000, 0.000000),
9846                c64::new(0.000000, 0.000000),
9847                c64::new(0.000000, 0.000000),
9848                c64::new(0.000000, 0.000000),
9849                c64::new(0.000000, 0.000000),
9850                c64::new(0.000000, 0.000000),
9851                c64::new(0.000000, 0.000000),
9852                c64::new(0.000000, 0.000000),
9853                c64::new(0.000000, 0.000000),
9854                c64::new(0.000000, 0.000000),
9855                c64::new(0.000000, 0.000000),
9856                c64::new(0.000000, 0.000000),
9857                c64::new(0.000000, 0.000000),
9858                c64::new(0.000000, 0.000000),
9859                c64::new(0.000000, 0.000000),
9860                c64::new(0.988552, 0.024220),
9861                c64::new(0.668978, 0.166909),
9862                c64::new(0.373566, 0.492455),
9863                c64::new(0.156334, 0.944764),
9864                c64::new(0.893443, 0.529912),
9865                c64::new(0.223432, 0.142919),
9866                c64::new(0.117640, 0.754037),
9867                c64::new(0.767211, 0.962383),
9868                c64::new(0.430687, 0.997779),
9869                c64::new(0.350008, 0.634207),
9870                c64::new(0.745317, 0.877145),
9871                c64::new(0.610312, 0.693158),
9872                c64::new(0.497559, 0.079633),
9873                c64::new(0.067073, 0.633330),
9874                c64::new(0.385002, 0.742704),
9875                c64::new(0.183908, 0.159583),
9876                c64::new(0.665184, 0.612644),
9877                c64::new(0.507063, 0.543285),
9878                c64::new(0.487266, 0.071591),
9879                c64::new(0.564632, 0.461084),
9880                c64::new(0.068025, 0.676927),
9881                c64::new(0.964044, 0.428076),
9882                c64::new(0.375566, 0.537645),
9883                c64::new(0.142064, 0.145362),
9884                c64::new(0.905332, 0.407875),
9885                c64::new(0.605614, 0.063398),
9886                c64::new(0.348924, 0.544658),
9887                c64::new(0.399783, 0.790985),
9888                c64::new(0.034866, 0.395968),
9889                c64::new(0.325829, 0.392267),
9890                c64::new(0.141683, 0.167293),
9891                c64::new(0.064855, 0.841444),
9892                c64::new(0.862007, 0.736700),
9893            ],
9894            [
9895                c64::new(0.000000, 0.000000),
9896                c64::new(0.000000, 0.000000),
9897                c64::new(0.000000, 0.000000),
9898                c64::new(0.000000, 0.000000),
9899                c64::new(0.000000, 0.000000),
9900                c64::new(0.000000, 0.000000),
9901                c64::new(0.000000, 0.000000),
9902                c64::new(0.000000, 0.000000),
9903                c64::new(0.000000, 0.000000),
9904                c64::new(0.000000, 0.000000),
9905                c64::new(0.000000, 0.000000),
9906                c64::new(0.000000, 0.000000),
9907                c64::new(0.000000, 0.000000),
9908                c64::new(0.000000, 0.000000),
9909                c64::new(0.000000, 0.000000),
9910                c64::new(0.000000, 0.000000),
9911                c64::new(0.000000, 0.000000),
9912                c64::new(0.000000, 0.000000),
9913                c64::new(0.000000, 0.000000),
9914                c64::new(0.000000, 0.000000),
9915                c64::new(0.000000, 0.000000),
9916                c64::new(0.000000, 0.000000),
9917                c64::new(0.000000, 0.000000),
9918                c64::new(0.000000, 0.000000),
9919                c64::new(0.000000, 0.000000),
9920                c64::new(0.000000, 0.000000),
9921                c64::new(0.000000, 0.000000),
9922                c64::new(0.000000, 0.000000),
9923                c64::new(0.000000, 0.000000),
9924                c64::new(0.000000, 0.000000),
9925                c64::new(0.000000, 0.000000),
9926                c64::new(0.000000, 0.000000),
9927                c64::new(0.000000, 0.000000),
9928                c64::new(0.000000, 0.000000),
9929                c64::new(0.000000, 0.000000),
9930                c64::new(0.000000, 0.000000),
9931                c64::new(0.000000, 0.000000),
9932                c64::new(0.000000, 0.000000),
9933                c64::new(0.000000, 0.000000),
9934                c64::new(0.000000, 0.000000),
9935                c64::new(0.000000, 0.000000),
9936                c64::new(0.000000, 0.000000),
9937                c64::new(0.000000, 0.000000),
9938                c64::new(0.000000, 0.000000),
9939                c64::new(0.000000, 0.000000),
9940                c64::new(0.000000, 0.000000),
9941                c64::new(0.000000, 0.000000),
9942                c64::new(0.000000, 0.000000),
9943                c64::new(0.000000, 0.000000),
9944                c64::new(0.000000, 0.000000),
9945                c64::new(0.000000, 0.000000),
9946                c64::new(0.000000, 0.000000),
9947                c64::new(0.000000, 0.000000),
9948                c64::new(0.000000, 0.000000),
9949                c64::new(0.000000, 0.000000),
9950                c64::new(0.000000, 0.000000),
9951                c64::new(0.000000, 0.000000),
9952                c64::new(0.000000, 0.000000),
9953                c64::new(0.000000, 0.000000),
9954                c64::new(0.000000, 0.000000),
9955                c64::new(0.000000, 0.000000),
9956                c64::new(0.000000, 0.000000),
9957                c64::new(0.000000, 0.000000),
9958                c64::new(0.000000, 0.000000),
9959                c64::new(0.000000, 0.000000),
9960                c64::new(0.000000, 0.000000),
9961                c64::new(0.000000, 0.000000),
9962                c64::new(0.000000, 0.000000),
9963                c64::new(0.465233, 0.974480),
9964                c64::new(0.496830, 0.202256),
9965                c64::new(0.444633, 0.227591),
9966                c64::new(0.872616, 0.765372),
9967                c64::new(0.029040, 0.596321),
9968                c64::new(0.208196, 0.153195),
9969                c64::new(0.966768, 0.664515),
9970                c64::new(0.270849, 0.965266),
9971                c64::new(0.657596, 0.651827),
9972                c64::new(0.417418, 0.040728),
9973                c64::new(0.911620, 0.922430),
9974                c64::new(0.497233, 0.783682),
9975                c64::new(0.155848, 0.253251),
9976                c64::new(0.882663, 0.585815),
9977                c64::new(0.546980, 0.888237),
9978                c64::new(0.911277, 0.180439),
9979                c64::new(0.722533, 0.429635),
9980                c64::new(0.535996, 0.922361),
9981                c64::new(0.858176, 0.564687),
9982                c64::new(0.036813, 0.047624),
9983                c64::new(0.031473, 0.141138),
9984                c64::new(0.553480, 0.077788),
9985                c64::new(0.745701, 0.221420),
9986                c64::new(0.419971, 0.219457),
9987                c64::new(0.297862, 0.798811),
9988                c64::new(0.528767, 0.539170),
9989                c64::new(0.845049, 0.851757),
9990                c64::new(0.597357, 0.812396),
9991                c64::new(0.257300, 0.769656),
9992                c64::new(0.997910, 0.161835),
9993                c64::new(0.928603, 0.151185),
9994                c64::new(0.410534, 0.170216),
9995            ],
9996            [
9997                c64::new(0.000000, 0.000000),
9998                c64::new(0.000000, 0.000000),
9999                c64::new(0.000000, 0.000000),
10000                c64::new(0.000000, 0.000000),
10001                c64::new(0.000000, 0.000000),
10002                c64::new(0.000000, 0.000000),
10003                c64::new(0.000000, 0.000000),
10004                c64::new(0.000000, 0.000000),
10005                c64::new(0.000000, 0.000000),
10006                c64::new(0.000000, 0.000000),
10007                c64::new(0.000000, 0.000000),
10008                c64::new(0.000000, 0.000000),
10009                c64::new(0.000000, 0.000000),
10010                c64::new(0.000000, 0.000000),
10011                c64::new(0.000000, 0.000000),
10012                c64::new(0.000000, 0.000000),
10013                c64::new(0.000000, 0.000000),
10014                c64::new(0.000000, 0.000000),
10015                c64::new(0.000000, 0.000000),
10016                c64::new(0.000000, 0.000000),
10017                c64::new(0.000000, 0.000000),
10018                c64::new(0.000000, 0.000000),
10019                c64::new(0.000000, 0.000000),
10020                c64::new(0.000000, 0.000000),
10021                c64::new(0.000000, 0.000000),
10022                c64::new(0.000000, 0.000000),
10023                c64::new(0.000000, 0.000000),
10024                c64::new(0.000000, 0.000000),
10025                c64::new(0.000000, 0.000000),
10026                c64::new(0.000000, 0.000000),
10027                c64::new(0.000000, 0.000000),
10028                c64::new(0.000000, 0.000000),
10029                c64::new(0.000000, 0.000000),
10030                c64::new(0.000000, 0.000000),
10031                c64::new(0.000000, 0.000000),
10032                c64::new(0.000000, 0.000000),
10033                c64::new(0.000000, 0.000000),
10034                c64::new(0.000000, 0.000000),
10035                c64::new(0.000000, 0.000000),
10036                c64::new(0.000000, 0.000000),
10037                c64::new(0.000000, 0.000000),
10038                c64::new(0.000000, 0.000000),
10039                c64::new(0.000000, 0.000000),
10040                c64::new(0.000000, 0.000000),
10041                c64::new(0.000000, 0.000000),
10042                c64::new(0.000000, 0.000000),
10043                c64::new(0.000000, 0.000000),
10044                c64::new(0.000000, 0.000000),
10045                c64::new(0.000000, 0.000000),
10046                c64::new(0.000000, 0.000000),
10047                c64::new(0.000000, 0.000000),
10048                c64::new(0.000000, 0.000000),
10049                c64::new(0.000000, 0.000000),
10050                c64::new(0.000000, 0.000000),
10051                c64::new(0.000000, 0.000000),
10052                c64::new(0.000000, 0.000000),
10053                c64::new(0.000000, 0.000000),
10054                c64::new(0.000000, 0.000000),
10055                c64::new(0.000000, 0.000000),
10056                c64::new(0.000000, 0.000000),
10057                c64::new(0.000000, 0.000000),
10058                c64::new(0.000000, 0.000000),
10059                c64::new(0.000000, 0.000000),
10060                c64::new(0.000000, 0.000000),
10061                c64::new(0.000000, 0.000000),
10062                c64::new(0.000000, 0.000000),
10063                c64::new(0.000000, 0.000000),
10064                c64::new(0.000000, 0.000000),
10065                c64::new(0.000000, 0.000000),
10066                c64::new(0.263740, 0.070841),
10067                c64::new(0.085195, 0.953737),
10068                c64::new(0.935889, 0.492878),
10069                c64::new(0.325004, 0.323936),
10070                c64::new(0.673089, 0.950248),
10071                c64::new(0.241384, 0.187216),
10072                c64::new(0.380081, 0.918274),
10073                c64::new(0.113941, 0.375945),
10074                c64::new(0.127950, 0.031666),
10075                c64::new(0.236561, 0.511949),
10076                c64::new(0.858776, 0.686316),
10077                c64::new(0.407311, 0.411411),
10078                c64::new(0.862216, 0.678282),
10079                c64::new(0.071830, 0.117966),
10080                c64::new(0.908264, 0.931949),
10081                c64::new(0.451725, 0.418887),
10082                c64::new(0.474883, 0.286795),
10083                c64::new(0.419337, 0.317515),
10084                c64::new(0.833829, 0.188620),
10085                c64::new(0.290675, 0.763958),
10086                c64::new(0.916789, 0.929790),
10087                c64::new(0.918379, 0.966845),
10088                c64::new(0.604291, 0.183526),
10089                c64::new(0.660053, 0.360011),
10090                c64::new(0.467357, 0.581639),
10091                c64::new(0.822700, 0.719627),
10092                c64::new(0.402778, 0.989676),
10093                c64::new(0.831058, 0.695419),
10094                c64::new(0.412800, 0.110401),
10095                c64::new(0.711937, 0.124685),
10096                c64::new(0.731400, 0.651739),
10097            ],
10098            [
10099                c64::new(0.000000, 0.000000),
10100                c64::new(0.000000, 0.000000),
10101                c64::new(0.000000, 0.000000),
10102                c64::new(0.000000, 0.000000),
10103                c64::new(0.000000, 0.000000),
10104                c64::new(0.000000, 0.000000),
10105                c64::new(0.000000, 0.000000),
10106                c64::new(0.000000, 0.000000),
10107                c64::new(0.000000, 0.000000),
10108                c64::new(0.000000, 0.000000),
10109                c64::new(0.000000, 0.000000),
10110                c64::new(0.000000, 0.000000),
10111                c64::new(0.000000, 0.000000),
10112                c64::new(0.000000, 0.000000),
10113                c64::new(0.000000, 0.000000),
10114                c64::new(0.000000, 0.000000),
10115                c64::new(0.000000, 0.000000),
10116                c64::new(0.000000, 0.000000),
10117                c64::new(0.000000, 0.000000),
10118                c64::new(0.000000, 0.000000),
10119                c64::new(0.000000, 0.000000),
10120                c64::new(0.000000, 0.000000),
10121                c64::new(0.000000, 0.000000),
10122                c64::new(0.000000, 0.000000),
10123                c64::new(0.000000, 0.000000),
10124                c64::new(0.000000, 0.000000),
10125                c64::new(0.000000, 0.000000),
10126                c64::new(0.000000, 0.000000),
10127                c64::new(0.000000, 0.000000),
10128                c64::new(0.000000, 0.000000),
10129                c64::new(0.000000, 0.000000),
10130                c64::new(0.000000, 0.000000),
10131                c64::new(0.000000, 0.000000),
10132                c64::new(0.000000, 0.000000),
10133                c64::new(0.000000, 0.000000),
10134                c64::new(0.000000, 0.000000),
10135                c64::new(0.000000, 0.000000),
10136                c64::new(0.000000, 0.000000),
10137                c64::new(0.000000, 0.000000),
10138                c64::new(0.000000, 0.000000),
10139                c64::new(0.000000, 0.000000),
10140                c64::new(0.000000, 0.000000),
10141                c64::new(0.000000, 0.000000),
10142                c64::new(0.000000, 0.000000),
10143                c64::new(0.000000, 0.000000),
10144                c64::new(0.000000, 0.000000),
10145                c64::new(0.000000, 0.000000),
10146                c64::new(0.000000, 0.000000),
10147                c64::new(0.000000, 0.000000),
10148                c64::new(0.000000, 0.000000),
10149                c64::new(0.000000, 0.000000),
10150                c64::new(0.000000, 0.000000),
10151                c64::new(0.000000, 0.000000),
10152                c64::new(0.000000, 0.000000),
10153                c64::new(0.000000, 0.000000),
10154                c64::new(0.000000, 0.000000),
10155                c64::new(0.000000, 0.000000),
10156                c64::new(0.000000, 0.000000),
10157                c64::new(0.000000, 0.000000),
10158                c64::new(0.000000, 0.000000),
10159                c64::new(0.000000, 0.000000),
10160                c64::new(0.000000, 0.000000),
10161                c64::new(0.000000, 0.000000),
10162                c64::new(0.000000, 0.000000),
10163                c64::new(0.000000, 0.000000),
10164                c64::new(0.000000, 0.000000),
10165                c64::new(0.000000, 0.000000),
10166                c64::new(0.000000, 0.000000),
10167                c64::new(0.000000, 0.000000),
10168                c64::new(0.000000, 0.000000),
10169                c64::new(0.201815, 0.339267),
10170                c64::new(0.478435, 0.266306),
10171                c64::new(0.603137, 0.031932),
10172                c64::new(0.035291, 0.886259),
10173                c64::new(0.909158, 0.856333),
10174                c64::new(0.578671, 0.536461),
10175                c64::new(0.240898, 0.234194),
10176                c64::new(0.277868, 0.206047),
10177                c64::new(0.937686, 0.079509),
10178                c64::new(0.454081, 0.556229),
10179                c64::new(0.326920, 0.457140),
10180                c64::new(0.990671, 0.229664),
10181                c64::new(0.564838, 0.185324),
10182                c64::new(0.692371, 0.597092),
10183                c64::new(0.083861, 0.742127),
10184                c64::new(0.702010, 0.440175),
10185                c64::new(0.526973, 0.242738),
10186                c64::new(0.563775, 0.475515),
10187                c64::new(0.719758, 0.068025),
10188                c64::new(0.167863, 0.362157),
10189                c64::new(0.388790, 0.946578),
10190                c64::new(0.565807, 0.230416),
10191                c64::new(0.144110, 0.755131),
10192                c64::new(0.829153, 0.275558),
10193                c64::new(0.664987, 0.108553),
10194                c64::new(0.481917, 0.162064),
10195                c64::new(0.765184, 0.050974),
10196                c64::new(0.724045, 0.763459),
10197                c64::new(0.084706, 0.313820),
10198                c64::new(0.478119, 0.482271),
10199            ],
10200            [
10201                c64::new(0.000000, 0.000000),
10202                c64::new(0.000000, 0.000000),
10203                c64::new(0.000000, 0.000000),
10204                c64::new(0.000000, 0.000000),
10205                c64::new(0.000000, 0.000000),
10206                c64::new(0.000000, 0.000000),
10207                c64::new(0.000000, 0.000000),
10208                c64::new(0.000000, 0.000000),
10209                c64::new(0.000000, 0.000000),
10210                c64::new(0.000000, 0.000000),
10211                c64::new(0.000000, 0.000000),
10212                c64::new(0.000000, 0.000000),
10213                c64::new(0.000000, 0.000000),
10214                c64::new(0.000000, 0.000000),
10215                c64::new(0.000000, 0.000000),
10216                c64::new(0.000000, 0.000000),
10217                c64::new(0.000000, 0.000000),
10218                c64::new(0.000000, 0.000000),
10219                c64::new(0.000000, 0.000000),
10220                c64::new(0.000000, 0.000000),
10221                c64::new(0.000000, 0.000000),
10222                c64::new(0.000000, 0.000000),
10223                c64::new(0.000000, 0.000000),
10224                c64::new(0.000000, 0.000000),
10225                c64::new(0.000000, 0.000000),
10226                c64::new(0.000000, 0.000000),
10227                c64::new(0.000000, 0.000000),
10228                c64::new(0.000000, 0.000000),
10229                c64::new(0.000000, 0.000000),
10230                c64::new(0.000000, 0.000000),
10231                c64::new(0.000000, 0.000000),
10232                c64::new(0.000000, 0.000000),
10233                c64::new(0.000000, 0.000000),
10234                c64::new(0.000000, 0.000000),
10235                c64::new(0.000000, 0.000000),
10236                c64::new(0.000000, 0.000000),
10237                c64::new(0.000000, 0.000000),
10238                c64::new(0.000000, 0.000000),
10239                c64::new(0.000000, 0.000000),
10240                c64::new(0.000000, 0.000000),
10241                c64::new(0.000000, 0.000000),
10242                c64::new(0.000000, 0.000000),
10243                c64::new(0.000000, 0.000000),
10244                c64::new(0.000000, 0.000000),
10245                c64::new(0.000000, 0.000000),
10246                c64::new(0.000000, 0.000000),
10247                c64::new(0.000000, 0.000000),
10248                c64::new(0.000000, 0.000000),
10249                c64::new(0.000000, 0.000000),
10250                c64::new(0.000000, 0.000000),
10251                c64::new(0.000000, 0.000000),
10252                c64::new(0.000000, 0.000000),
10253                c64::new(0.000000, 0.000000),
10254                c64::new(0.000000, 0.000000),
10255                c64::new(0.000000, 0.000000),
10256                c64::new(0.000000, 0.000000),
10257                c64::new(0.000000, 0.000000),
10258                c64::new(0.000000, 0.000000),
10259                c64::new(0.000000, 0.000000),
10260                c64::new(0.000000, 0.000000),
10261                c64::new(0.000000, 0.000000),
10262                c64::new(0.000000, 0.000000),
10263                c64::new(0.000000, 0.000000),
10264                c64::new(0.000000, 0.000000),
10265                c64::new(0.000000, 0.000000),
10266                c64::new(0.000000, 0.000000),
10267                c64::new(0.000000, 0.000000),
10268                c64::new(0.000000, 0.000000),
10269                c64::new(0.000000, 0.000000),
10270                c64::new(0.000000, 0.000000),
10271                c64::new(0.000000, 0.000000),
10272                c64::new(0.337319, 0.468942),
10273                c64::new(0.425542, 0.357882),
10274                c64::new(0.579661, 0.886450),
10275                c64::new(0.994428, 0.585313),
10276                c64::new(0.247265, 0.136053),
10277                c64::new(0.028711, 0.626514),
10278                c64::new(0.035833, 0.624124),
10279                c64::new(0.135771, 0.052620),
10280                c64::new(0.453788, 0.946800),
10281                c64::new(0.925700, 0.031319),
10282                c64::new(0.973821, 0.517315),
10283                c64::new(0.861117, 0.164880),
10284                c64::new(0.654902, 0.177966),
10285                c64::new(0.313864, 0.381645),
10286                c64::new(0.836102, 0.233840),
10287                c64::new(0.192123, 0.283378),
10288                c64::new(0.631308, 0.823393),
10289                c64::new(0.179937, 0.815756),
10290                c64::new(0.169099, 0.676691),
10291                c64::new(0.517739, 0.527136),
10292                c64::new(0.268164, 0.920537),
10293                c64::new(0.743914, 0.010564),
10294                c64::new(0.004083, 0.109453),
10295                c64::new(0.936432, 0.207108),
10296                c64::new(0.710014, 0.983777),
10297                c64::new(0.868031, 0.151155),
10298                c64::new(0.208938, 0.154368),
10299                c64::new(0.351507, 0.910477),
10300                c64::new(0.310524, 0.349058),
10301            ],
10302            [
10303                c64::new(0.000000, 0.000000),
10304                c64::new(0.000000, 0.000000),
10305                c64::new(0.000000, 0.000000),
10306                c64::new(0.000000, 0.000000),
10307                c64::new(0.000000, 0.000000),
10308                c64::new(0.000000, 0.000000),
10309                c64::new(0.000000, 0.000000),
10310                c64::new(0.000000, 0.000000),
10311                c64::new(0.000000, 0.000000),
10312                c64::new(0.000000, 0.000000),
10313                c64::new(0.000000, 0.000000),
10314                c64::new(0.000000, 0.000000),
10315                c64::new(0.000000, 0.000000),
10316                c64::new(0.000000, 0.000000),
10317                c64::new(0.000000, 0.000000),
10318                c64::new(0.000000, 0.000000),
10319                c64::new(0.000000, 0.000000),
10320                c64::new(0.000000, 0.000000),
10321                c64::new(0.000000, 0.000000),
10322                c64::new(0.000000, 0.000000),
10323                c64::new(0.000000, 0.000000),
10324                c64::new(0.000000, 0.000000),
10325                c64::new(0.000000, 0.000000),
10326                c64::new(0.000000, 0.000000),
10327                c64::new(0.000000, 0.000000),
10328                c64::new(0.000000, 0.000000),
10329                c64::new(0.000000, 0.000000),
10330                c64::new(0.000000, 0.000000),
10331                c64::new(0.000000, 0.000000),
10332                c64::new(0.000000, 0.000000),
10333                c64::new(0.000000, 0.000000),
10334                c64::new(0.000000, 0.000000),
10335                c64::new(0.000000, 0.000000),
10336                c64::new(0.000000, 0.000000),
10337                c64::new(0.000000, 0.000000),
10338                c64::new(0.000000, 0.000000),
10339                c64::new(0.000000, 0.000000),
10340                c64::new(0.000000, 0.000000),
10341                c64::new(0.000000, 0.000000),
10342                c64::new(0.000000, 0.000000),
10343                c64::new(0.000000, 0.000000),
10344                c64::new(0.000000, 0.000000),
10345                c64::new(0.000000, 0.000000),
10346                c64::new(0.000000, 0.000000),
10347                c64::new(0.000000, 0.000000),
10348                c64::new(0.000000, 0.000000),
10349                c64::new(0.000000, 0.000000),
10350                c64::new(0.000000, 0.000000),
10351                c64::new(0.000000, 0.000000),
10352                c64::new(0.000000, 0.000000),
10353                c64::new(0.000000, 0.000000),
10354                c64::new(0.000000, 0.000000),
10355                c64::new(0.000000, 0.000000),
10356                c64::new(0.000000, 0.000000),
10357                c64::new(0.000000, 0.000000),
10358                c64::new(0.000000, 0.000000),
10359                c64::new(0.000000, 0.000000),
10360                c64::new(0.000000, 0.000000),
10361                c64::new(0.000000, 0.000000),
10362                c64::new(0.000000, 0.000000),
10363                c64::new(0.000000, 0.000000),
10364                c64::new(0.000000, 0.000000),
10365                c64::new(0.000000, 0.000000),
10366                c64::new(0.000000, 0.000000),
10367                c64::new(0.000000, 0.000000),
10368                c64::new(0.000000, 0.000000),
10369                c64::new(0.000000, 0.000000),
10370                c64::new(0.000000, 0.000000),
10371                c64::new(0.000000, 0.000000),
10372                c64::new(0.000000, 0.000000),
10373                c64::new(0.000000, 0.000000),
10374                c64::new(0.000000, 0.000000),
10375                c64::new(0.089359, 0.592571),
10376                c64::new(0.025927, 0.993073),
10377                c64::new(0.266887, 0.011920),
10378                c64::new(0.311563, 0.746637),
10379                c64::new(0.285068, 0.913357),
10380                c64::new(0.312499, 0.722821),
10381                c64::new(0.717670, 0.149793),
10382                c64::new(0.465951, 0.844516),
10383                c64::new(0.939096, 0.976909),
10384                c64::new(0.239914, 0.766679),
10385                c64::new(0.664594, 0.398251),
10386                c64::new(0.083727, 0.254150),
10387                c64::new(0.143020, 0.115627),
10388                c64::new(0.696803, 0.086359),
10389                c64::new(0.947894, 0.981045),
10390                c64::new(0.879589, 0.719811),
10391                c64::new(0.038965, 0.666100),
10392                c64::new(0.153779, 0.348154),
10393                c64::new(0.358095, 0.464243),
10394                c64::new(0.403023, 0.060618),
10395                c64::new(0.312094, 0.472284),
10396                c64::new(0.685940, 0.427614),
10397                c64::new(0.859723, 0.232919),
10398                c64::new(0.731689, 0.421356),
10399                c64::new(0.164438, 0.873587),
10400                c64::new(0.536389, 0.688468),
10401                c64::new(0.626736, 0.791729),
10402                c64::new(0.435494, 0.213942),
10403            ],
10404            [
10405                c64::new(0.000000, 0.000000),
10406                c64::new(0.000000, 0.000000),
10407                c64::new(0.000000, 0.000000),
10408                c64::new(0.000000, 0.000000),
10409                c64::new(0.000000, 0.000000),
10410                c64::new(0.000000, 0.000000),
10411                c64::new(0.000000, 0.000000),
10412                c64::new(0.000000, 0.000000),
10413                c64::new(0.000000, 0.000000),
10414                c64::new(0.000000, 0.000000),
10415                c64::new(0.000000, 0.000000),
10416                c64::new(0.000000, 0.000000),
10417                c64::new(0.000000, 0.000000),
10418                c64::new(0.000000, 0.000000),
10419                c64::new(0.000000, 0.000000),
10420                c64::new(0.000000, 0.000000),
10421                c64::new(0.000000, 0.000000),
10422                c64::new(0.000000, 0.000000),
10423                c64::new(0.000000, 0.000000),
10424                c64::new(0.000000, 0.000000),
10425                c64::new(0.000000, 0.000000),
10426                c64::new(0.000000, 0.000000),
10427                c64::new(0.000000, 0.000000),
10428                c64::new(0.000000, 0.000000),
10429                c64::new(0.000000, 0.000000),
10430                c64::new(0.000000, 0.000000),
10431                c64::new(0.000000, 0.000000),
10432                c64::new(0.000000, 0.000000),
10433                c64::new(0.000000, 0.000000),
10434                c64::new(0.000000, 0.000000),
10435                c64::new(0.000000, 0.000000),
10436                c64::new(0.000000, 0.000000),
10437                c64::new(0.000000, 0.000000),
10438                c64::new(0.000000, 0.000000),
10439                c64::new(0.000000, 0.000000),
10440                c64::new(0.000000, 0.000000),
10441                c64::new(0.000000, 0.000000),
10442                c64::new(0.000000, 0.000000),
10443                c64::new(0.000000, 0.000000),
10444                c64::new(0.000000, 0.000000),
10445                c64::new(0.000000, 0.000000),
10446                c64::new(0.000000, 0.000000),
10447                c64::new(0.000000, 0.000000),
10448                c64::new(0.000000, 0.000000),
10449                c64::new(0.000000, 0.000000),
10450                c64::new(0.000000, 0.000000),
10451                c64::new(0.000000, 0.000000),
10452                c64::new(0.000000, 0.000000),
10453                c64::new(0.000000, 0.000000),
10454                c64::new(0.000000, 0.000000),
10455                c64::new(0.000000, 0.000000),
10456                c64::new(0.000000, 0.000000),
10457                c64::new(0.000000, 0.000000),
10458                c64::new(0.000000, 0.000000),
10459                c64::new(0.000000, 0.000000),
10460                c64::new(0.000000, 0.000000),
10461                c64::new(0.000000, 0.000000),
10462                c64::new(0.000000, 0.000000),
10463                c64::new(0.000000, 0.000000),
10464                c64::new(0.000000, 0.000000),
10465                c64::new(0.000000, 0.000000),
10466                c64::new(0.000000, 0.000000),
10467                c64::new(0.000000, 0.000000),
10468                c64::new(0.000000, 0.000000),
10469                c64::new(0.000000, 0.000000),
10470                c64::new(0.000000, 0.000000),
10471                c64::new(0.000000, 0.000000),
10472                c64::new(0.000000, 0.000000),
10473                c64::new(0.000000, 0.000000),
10474                c64::new(0.000000, 0.000000),
10475                c64::new(0.000000, 0.000000),
10476                c64::new(0.000000, 0.000000),
10477                c64::new(0.000000, 0.000000),
10478                c64::new(0.537652, 0.589619),
10479                c64::new(0.946855, 0.048099),
10480                c64::new(0.580112, 0.166462),
10481                c64::new(0.324205, 0.280354),
10482                c64::new(0.475494, 0.465311),
10483                c64::new(0.548022, 0.889453),
10484                c64::new(0.033595, 0.663259),
10485                c64::new(0.136410, 0.589449),
10486                c64::new(0.714292, 0.650982),
10487                c64::new(0.163666, 0.817209),
10488                c64::new(0.861672, 0.232646),
10489                c64::new(0.285274, 0.941984),
10490                c64::new(0.851216, 0.255581),
10491                c64::new(0.893365, 0.689433),
10492                c64::new(0.266747, 0.828572),
10493                c64::new(0.655859, 0.429806),
10494                c64::new(0.040382, 0.524036),
10495                c64::new(0.370495, 0.301692),
10496                c64::new(0.934222, 0.267697),
10497                c64::new(0.377701, 0.314634),
10498                c64::new(0.647210, 0.642849),
10499                c64::new(0.502407, 0.527397),
10500                c64::new(0.971237, 0.574455),
10501                c64::new(0.194412, 0.939835),
10502                c64::new(0.428054, 0.878591),
10503                c64::new(0.338179, 0.673912),
10504                c64::new(0.039063, 0.198542),
10505            ],
10506            [
10507                c64::new(0.000000, 0.000000),
10508                c64::new(0.000000, 0.000000),
10509                c64::new(0.000000, 0.000000),
10510                c64::new(0.000000, 0.000000),
10511                c64::new(0.000000, 0.000000),
10512                c64::new(0.000000, 0.000000),
10513                c64::new(0.000000, 0.000000),
10514                c64::new(0.000000, 0.000000),
10515                c64::new(0.000000, 0.000000),
10516                c64::new(0.000000, 0.000000),
10517                c64::new(0.000000, 0.000000),
10518                c64::new(0.000000, 0.000000),
10519                c64::new(0.000000, 0.000000),
10520                c64::new(0.000000, 0.000000),
10521                c64::new(0.000000, 0.000000),
10522                c64::new(0.000000, 0.000000),
10523                c64::new(0.000000, 0.000000),
10524                c64::new(0.000000, 0.000000),
10525                c64::new(0.000000, 0.000000),
10526                c64::new(0.000000, 0.000000),
10527                c64::new(0.000000, 0.000000),
10528                c64::new(0.000000, 0.000000),
10529                c64::new(0.000000, 0.000000),
10530                c64::new(0.000000, 0.000000),
10531                c64::new(0.000000, 0.000000),
10532                c64::new(0.000000, 0.000000),
10533                c64::new(0.000000, 0.000000),
10534                c64::new(0.000000, 0.000000),
10535                c64::new(0.000000, 0.000000),
10536                c64::new(0.000000, 0.000000),
10537                c64::new(0.000000, 0.000000),
10538                c64::new(0.000000, 0.000000),
10539                c64::new(0.000000, 0.000000),
10540                c64::new(0.000000, 0.000000),
10541                c64::new(0.000000, 0.000000),
10542                c64::new(0.000000, 0.000000),
10543                c64::new(0.000000, 0.000000),
10544                c64::new(0.000000, 0.000000),
10545                c64::new(0.000000, 0.000000),
10546                c64::new(0.000000, 0.000000),
10547                c64::new(0.000000, 0.000000),
10548                c64::new(0.000000, 0.000000),
10549                c64::new(0.000000, 0.000000),
10550                c64::new(0.000000, 0.000000),
10551                c64::new(0.000000, 0.000000),
10552                c64::new(0.000000, 0.000000),
10553                c64::new(0.000000, 0.000000),
10554                c64::new(0.000000, 0.000000),
10555                c64::new(0.000000, 0.000000),
10556                c64::new(0.000000, 0.000000),
10557                c64::new(0.000000, 0.000000),
10558                c64::new(0.000000, 0.000000),
10559                c64::new(0.000000, 0.000000),
10560                c64::new(0.000000, 0.000000),
10561                c64::new(0.000000, 0.000000),
10562                c64::new(0.000000, 0.000000),
10563                c64::new(0.000000, 0.000000),
10564                c64::new(0.000000, 0.000000),
10565                c64::new(0.000000, 0.000000),
10566                c64::new(0.000000, 0.000000),
10567                c64::new(0.000000, 0.000000),
10568                c64::new(0.000000, 0.000000),
10569                c64::new(0.000000, 0.000000),
10570                c64::new(0.000000, 0.000000),
10571                c64::new(0.000000, 0.000000),
10572                c64::new(0.000000, 0.000000),
10573                c64::new(0.000000, 0.000000),
10574                c64::new(0.000000, 0.000000),
10575                c64::new(0.000000, 0.000000),
10576                c64::new(0.000000, 0.000000),
10577                c64::new(0.000000, 0.000000),
10578                c64::new(0.000000, 0.000000),
10579                c64::new(0.000000, 0.000000),
10580                c64::new(0.000000, 0.000000),
10581                c64::new(0.221777, 0.400528),
10582                c64::new(0.837110, 0.936972),
10583                c64::new(0.498637, 0.234044),
10584                c64::new(0.170315, 0.993655),
10585                c64::new(0.990653, 0.999184),
10586                c64::new(0.059078, 0.674922),
10587                c64::new(0.943839, 0.841376),
10588                c64::new(0.463733, 0.536914),
10589                c64::new(0.822575, 0.587461),
10590                c64::new(0.088258, 0.756803),
10591                c64::new(0.421873, 0.634243),
10592                c64::new(0.377358, 0.203371),
10593                c64::new(0.752734, 0.602778),
10594                c64::new(0.499969, 0.712709),
10595                c64::new(0.837253, 0.231370),
10596                c64::new(0.116668, 0.310818),
10597                c64::new(0.173397, 0.374433),
10598                c64::new(0.060857, 0.977007),
10599                c64::new(0.819561, 0.641144),
10600                c64::new(0.822887, 0.030252),
10601                c64::new(0.838394, 0.649523),
10602                c64::new(0.916121, 0.489410),
10603                c64::new(0.620829, 0.545052),
10604                c64::new(0.751841, 0.947253),
10605                c64::new(0.807363, 0.828453),
10606                c64::new(0.450859, 0.154589),
10607            ],
10608            [
10609                c64::new(0.000000, 0.000000),
10610                c64::new(0.000000, 0.000000),
10611                c64::new(0.000000, 0.000000),
10612                c64::new(0.000000, 0.000000),
10613                c64::new(0.000000, 0.000000),
10614                c64::new(0.000000, 0.000000),
10615                c64::new(0.000000, 0.000000),
10616                c64::new(0.000000, 0.000000),
10617                c64::new(0.000000, 0.000000),
10618                c64::new(0.000000, 0.000000),
10619                c64::new(0.000000, 0.000000),
10620                c64::new(0.000000, 0.000000),
10621                c64::new(0.000000, 0.000000),
10622                c64::new(0.000000, 0.000000),
10623                c64::new(0.000000, 0.000000),
10624                c64::new(0.000000, 0.000000),
10625                c64::new(0.000000, 0.000000),
10626                c64::new(0.000000, 0.000000),
10627                c64::new(0.000000, 0.000000),
10628                c64::new(0.000000, 0.000000),
10629                c64::new(0.000000, 0.000000),
10630                c64::new(0.000000, 0.000000),
10631                c64::new(0.000000, 0.000000),
10632                c64::new(0.000000, 0.000000),
10633                c64::new(0.000000, 0.000000),
10634                c64::new(0.000000, 0.000000),
10635                c64::new(0.000000, 0.000000),
10636                c64::new(0.000000, 0.000000),
10637                c64::new(0.000000, 0.000000),
10638                c64::new(0.000000, 0.000000),
10639                c64::new(0.000000, 0.000000),
10640                c64::new(0.000000, 0.000000),
10641                c64::new(0.000000, 0.000000),
10642                c64::new(0.000000, 0.000000),
10643                c64::new(0.000000, 0.000000),
10644                c64::new(0.000000, 0.000000),
10645                c64::new(0.000000, 0.000000),
10646                c64::new(0.000000, 0.000000),
10647                c64::new(0.000000, 0.000000),
10648                c64::new(0.000000, 0.000000),
10649                c64::new(0.000000, 0.000000),
10650                c64::new(0.000000, 0.000000),
10651                c64::new(0.000000, 0.000000),
10652                c64::new(0.000000, 0.000000),
10653                c64::new(0.000000, 0.000000),
10654                c64::new(0.000000, 0.000000),
10655                c64::new(0.000000, 0.000000),
10656                c64::new(0.000000, 0.000000),
10657                c64::new(0.000000, 0.000000),
10658                c64::new(0.000000, 0.000000),
10659                c64::new(0.000000, 0.000000),
10660                c64::new(0.000000, 0.000000),
10661                c64::new(0.000000, 0.000000),
10662                c64::new(0.000000, 0.000000),
10663                c64::new(0.000000, 0.000000),
10664                c64::new(0.000000, 0.000000),
10665                c64::new(0.000000, 0.000000),
10666                c64::new(0.000000, 0.000000),
10667                c64::new(0.000000, 0.000000),
10668                c64::new(0.000000, 0.000000),
10669                c64::new(0.000000, 0.000000),
10670                c64::new(0.000000, 0.000000),
10671                c64::new(0.000000, 0.000000),
10672                c64::new(0.000000, 0.000000),
10673                c64::new(0.000000, 0.000000),
10674                c64::new(0.000000, 0.000000),
10675                c64::new(0.000000, 0.000000),
10676                c64::new(0.000000, 0.000000),
10677                c64::new(0.000000, 0.000000),
10678                c64::new(0.000000, 0.000000),
10679                c64::new(0.000000, 0.000000),
10680                c64::new(0.000000, 0.000000),
10681                c64::new(0.000000, 0.000000),
10682                c64::new(0.000000, 0.000000),
10683                c64::new(0.000000, 0.000000),
10684                c64::new(0.699100, 0.951363),
10685                c64::new(0.563549, 0.047178),
10686                c64::new(0.759856, 0.504205),
10687                c64::new(0.950519, 0.603581),
10688                c64::new(0.720274, 0.838028),
10689                c64::new(0.039368, 0.103535),
10690                c64::new(0.954781, 0.972311),
10691                c64::new(0.385626, 0.187801),
10692                c64::new(0.206112, 0.539507),
10693                c64::new(0.115542, 0.211145),
10694                c64::new(0.386164, 0.517787),
10695                c64::new(0.580916, 0.060254),
10696                c64::new(0.184256, 0.719706),
10697                c64::new(0.540605, 0.878884),
10698                c64::new(0.405216, 0.081987),
10699                c64::new(0.602953, 0.948485),
10700                c64::new(0.114403, 0.903891),
10701                c64::new(0.018613, 0.258778),
10702                c64::new(0.124654, 0.055391),
10703                c64::new(0.510379, 0.779819),
10704                c64::new(0.535666, 0.465172),
10705                c64::new(0.657444, 0.325994),
10706                c64::new(0.629904, 0.934739),
10707                c64::new(0.985249, 0.928895),
10708                c64::new(0.190160, 0.401857),
10709            ],
10710            [
10711                c64::new(0.000000, 0.000000),
10712                c64::new(0.000000, 0.000000),
10713                c64::new(0.000000, 0.000000),
10714                c64::new(0.000000, 0.000000),
10715                c64::new(0.000000, 0.000000),
10716                c64::new(0.000000, 0.000000),
10717                c64::new(0.000000, 0.000000),
10718                c64::new(0.000000, 0.000000),
10719                c64::new(0.000000, 0.000000),
10720                c64::new(0.000000, 0.000000),
10721                c64::new(0.000000, 0.000000),
10722                c64::new(0.000000, 0.000000),
10723                c64::new(0.000000, 0.000000),
10724                c64::new(0.000000, 0.000000),
10725                c64::new(0.000000, 0.000000),
10726                c64::new(0.000000, 0.000000),
10727                c64::new(0.000000, 0.000000),
10728                c64::new(0.000000, 0.000000),
10729                c64::new(0.000000, 0.000000),
10730                c64::new(0.000000, 0.000000),
10731                c64::new(0.000000, 0.000000),
10732                c64::new(0.000000, 0.000000),
10733                c64::new(0.000000, 0.000000),
10734                c64::new(0.000000, 0.000000),
10735                c64::new(0.000000, 0.000000),
10736                c64::new(0.000000, 0.000000),
10737                c64::new(0.000000, 0.000000),
10738                c64::new(0.000000, 0.000000),
10739                c64::new(0.000000, 0.000000),
10740                c64::new(0.000000, 0.000000),
10741                c64::new(0.000000, 0.000000),
10742                c64::new(0.000000, 0.000000),
10743                c64::new(0.000000, 0.000000),
10744                c64::new(0.000000, 0.000000),
10745                c64::new(0.000000, 0.000000),
10746                c64::new(0.000000, 0.000000),
10747                c64::new(0.000000, 0.000000),
10748                c64::new(0.000000, 0.000000),
10749                c64::new(0.000000, 0.000000),
10750                c64::new(0.000000, 0.000000),
10751                c64::new(0.000000, 0.000000),
10752                c64::new(0.000000, 0.000000),
10753                c64::new(0.000000, 0.000000),
10754                c64::new(0.000000, 0.000000),
10755                c64::new(0.000000, 0.000000),
10756                c64::new(0.000000, 0.000000),
10757                c64::new(0.000000, 0.000000),
10758                c64::new(0.000000, 0.000000),
10759                c64::new(0.000000, 0.000000),
10760                c64::new(0.000000, 0.000000),
10761                c64::new(0.000000, 0.000000),
10762                c64::new(0.000000, 0.000000),
10763                c64::new(0.000000, 0.000000),
10764                c64::new(0.000000, 0.000000),
10765                c64::new(0.000000, 0.000000),
10766                c64::new(0.000000, 0.000000),
10767                c64::new(0.000000, 0.000000),
10768                c64::new(0.000000, 0.000000),
10769                c64::new(0.000000, 0.000000),
10770                c64::new(0.000000, 0.000000),
10771                c64::new(0.000000, 0.000000),
10772                c64::new(0.000000, 0.000000),
10773                c64::new(0.000000, 0.000000),
10774                c64::new(0.000000, 0.000000),
10775                c64::new(0.000000, 0.000000),
10776                c64::new(0.000000, 0.000000),
10777                c64::new(0.000000, 0.000000),
10778                c64::new(0.000000, 0.000000),
10779                c64::new(0.000000, 0.000000),
10780                c64::new(0.000000, 0.000000),
10781                c64::new(0.000000, 0.000000),
10782                c64::new(0.000000, 0.000000),
10783                c64::new(0.000000, 0.000000),
10784                c64::new(0.000000, 0.000000),
10785                c64::new(0.000000, 0.000000),
10786                c64::new(0.000000, 0.000000),
10787                c64::new(0.604496, 0.439327),
10788                c64::new(0.914930, 0.024786),
10789                c64::new(0.276434, 0.677078),
10790                c64::new(0.986048, 0.643022),
10791                c64::new(0.571138, 0.208059),
10792                c64::new(0.295947, 0.313493),
10793                c64::new(0.441540, 0.176906),
10794                c64::new(0.707673, 0.677433),
10795                c64::new(0.375721, 0.861414),
10796                c64::new(0.844488, 0.139881),
10797                c64::new(0.756368, 0.717143),
10798                c64::new(0.948742, 0.985242),
10799                c64::new(0.502844, 0.515428),
10800                c64::new(0.718708, 0.372507),
10801                c64::new(0.010345, 0.423695),
10802                c64::new(0.356272, 0.181515),
10803                c64::new(0.494079, 0.209055),
10804                c64::new(0.658812, 0.253919),
10805                c64::new(0.687930, 0.599062),
10806                c64::new(0.638538, 0.420199),
10807                c64::new(0.746242, 0.007273),
10808                c64::new(0.148347, 0.856613),
10809                c64::new(0.257613, 0.961503),
10810                c64::new(0.528096, 0.539232),
10811            ],
10812            [
10813                c64::new(0.000000, 0.000000),
10814                c64::new(0.000000, 0.000000),
10815                c64::new(0.000000, 0.000000),
10816                c64::new(0.000000, 0.000000),
10817                c64::new(0.000000, 0.000000),
10818                c64::new(0.000000, 0.000000),
10819                c64::new(0.000000, 0.000000),
10820                c64::new(0.000000, 0.000000),
10821                c64::new(0.000000, 0.000000),
10822                c64::new(0.000000, 0.000000),
10823                c64::new(0.000000, 0.000000),
10824                c64::new(0.000000, 0.000000),
10825                c64::new(0.000000, 0.000000),
10826                c64::new(0.000000, 0.000000),
10827                c64::new(0.000000, 0.000000),
10828                c64::new(0.000000, 0.000000),
10829                c64::new(0.000000, 0.000000),
10830                c64::new(0.000000, 0.000000),
10831                c64::new(0.000000, 0.000000),
10832                c64::new(0.000000, 0.000000),
10833                c64::new(0.000000, 0.000000),
10834                c64::new(0.000000, 0.000000),
10835                c64::new(0.000000, 0.000000),
10836                c64::new(0.000000, 0.000000),
10837                c64::new(0.000000, 0.000000),
10838                c64::new(0.000000, 0.000000),
10839                c64::new(0.000000, 0.000000),
10840                c64::new(0.000000, 0.000000),
10841                c64::new(0.000000, 0.000000),
10842                c64::new(0.000000, 0.000000),
10843                c64::new(0.000000, 0.000000),
10844                c64::new(0.000000, 0.000000),
10845                c64::new(0.000000, 0.000000),
10846                c64::new(0.000000, 0.000000),
10847                c64::new(0.000000, 0.000000),
10848                c64::new(0.000000, 0.000000),
10849                c64::new(0.000000, 0.000000),
10850                c64::new(0.000000, 0.000000),
10851                c64::new(0.000000, 0.000000),
10852                c64::new(0.000000, 0.000000),
10853                c64::new(0.000000, 0.000000),
10854                c64::new(0.000000, 0.000000),
10855                c64::new(0.000000, 0.000000),
10856                c64::new(0.000000, 0.000000),
10857                c64::new(0.000000, 0.000000),
10858                c64::new(0.000000, 0.000000),
10859                c64::new(0.000000, 0.000000),
10860                c64::new(0.000000, 0.000000),
10861                c64::new(0.000000, 0.000000),
10862                c64::new(0.000000, 0.000000),
10863                c64::new(0.000000, 0.000000),
10864                c64::new(0.000000, 0.000000),
10865                c64::new(0.000000, 0.000000),
10866                c64::new(0.000000, 0.000000),
10867                c64::new(0.000000, 0.000000),
10868                c64::new(0.000000, 0.000000),
10869                c64::new(0.000000, 0.000000),
10870                c64::new(0.000000, 0.000000),
10871                c64::new(0.000000, 0.000000),
10872                c64::new(0.000000, 0.000000),
10873                c64::new(0.000000, 0.000000),
10874                c64::new(0.000000, 0.000000),
10875                c64::new(0.000000, 0.000000),
10876                c64::new(0.000000, 0.000000),
10877                c64::new(0.000000, 0.000000),
10878                c64::new(0.000000, 0.000000),
10879                c64::new(0.000000, 0.000000),
10880                c64::new(0.000000, 0.000000),
10881                c64::new(0.000000, 0.000000),
10882                c64::new(0.000000, 0.000000),
10883                c64::new(0.000000, 0.000000),
10884                c64::new(0.000000, 0.000000),
10885                c64::new(0.000000, 0.000000),
10886                c64::new(0.000000, 0.000000),
10887                c64::new(0.000000, 0.000000),
10888                c64::new(0.000000, 0.000000),
10889                c64::new(0.000000, 0.000000),
10890                c64::new(0.070610, 0.603847),
10891                c64::new(0.002458, 0.280009),
10892                c64::new(0.119855, 0.567809),
10893                c64::new(0.785196, 0.108852),
10894                c64::new(0.164837, 0.592943),
10895                c64::new(0.326320, 0.748832),
10896                c64::new(0.099473, 0.163483),
10897                c64::new(0.855275, 0.184303),
10898                c64::new(0.463606, 0.582601),
10899                c64::new(0.814641, 0.027090),
10900                c64::new(0.007846, 0.811801),
10901                c64::new(0.479140, 0.018916),
10902                c64::new(0.461830, 0.068934),
10903                c64::new(0.848401, 0.995212),
10904                c64::new(0.129596, 0.807371),
10905                c64::new(0.690149, 0.497024),
10906                c64::new(0.412093, 0.620214),
10907                c64::new(0.780180, 0.749085),
10908                c64::new(0.821760, 0.123452),
10909                c64::new(0.766459, 0.213236),
10910                c64::new(0.588871, 0.233157),
10911                c64::new(0.366032, 0.772210),
10912                c64::new(0.528094, 0.468377),
10913            ],
10914            [
10915                c64::new(0.000000, 0.000000),
10916                c64::new(0.000000, 0.000000),
10917                c64::new(0.000000, 0.000000),
10918                c64::new(0.000000, 0.000000),
10919                c64::new(0.000000, 0.000000),
10920                c64::new(0.000000, 0.000000),
10921                c64::new(0.000000, 0.000000),
10922                c64::new(0.000000, 0.000000),
10923                c64::new(0.000000, 0.000000),
10924                c64::new(0.000000, 0.000000),
10925                c64::new(0.000000, 0.000000),
10926                c64::new(0.000000, 0.000000),
10927                c64::new(0.000000, 0.000000),
10928                c64::new(0.000000, 0.000000),
10929                c64::new(0.000000, 0.000000),
10930                c64::new(0.000000, 0.000000),
10931                c64::new(0.000000, 0.000000),
10932                c64::new(0.000000, 0.000000),
10933                c64::new(0.000000, 0.000000),
10934                c64::new(0.000000, 0.000000),
10935                c64::new(0.000000, 0.000000),
10936                c64::new(0.000000, 0.000000),
10937                c64::new(0.000000, 0.000000),
10938                c64::new(0.000000, 0.000000),
10939                c64::new(0.000000, 0.000000),
10940                c64::new(0.000000, 0.000000),
10941                c64::new(0.000000, 0.000000),
10942                c64::new(0.000000, 0.000000),
10943                c64::new(0.000000, 0.000000),
10944                c64::new(0.000000, 0.000000),
10945                c64::new(0.000000, 0.000000),
10946                c64::new(0.000000, 0.000000),
10947                c64::new(0.000000, 0.000000),
10948                c64::new(0.000000, 0.000000),
10949                c64::new(0.000000, 0.000000),
10950                c64::new(0.000000, 0.000000),
10951                c64::new(0.000000, 0.000000),
10952                c64::new(0.000000, 0.000000),
10953                c64::new(0.000000, 0.000000),
10954                c64::new(0.000000, 0.000000),
10955                c64::new(0.000000, 0.000000),
10956                c64::new(0.000000, 0.000000),
10957                c64::new(0.000000, 0.000000),
10958                c64::new(0.000000, 0.000000),
10959                c64::new(0.000000, 0.000000),
10960                c64::new(0.000000, 0.000000),
10961                c64::new(0.000000, 0.000000),
10962                c64::new(0.000000, 0.000000),
10963                c64::new(0.000000, 0.000000),
10964                c64::new(0.000000, 0.000000),
10965                c64::new(0.000000, 0.000000),
10966                c64::new(0.000000, 0.000000),
10967                c64::new(0.000000, 0.000000),
10968                c64::new(0.000000, 0.000000),
10969                c64::new(0.000000, 0.000000),
10970                c64::new(0.000000, 0.000000),
10971                c64::new(0.000000, 0.000000),
10972                c64::new(0.000000, 0.000000),
10973                c64::new(0.000000, 0.000000),
10974                c64::new(0.000000, 0.000000),
10975                c64::new(0.000000, 0.000000),
10976                c64::new(0.000000, 0.000000),
10977                c64::new(0.000000, 0.000000),
10978                c64::new(0.000000, 0.000000),
10979                c64::new(0.000000, 0.000000),
10980                c64::new(0.000000, 0.000000),
10981                c64::new(0.000000, 0.000000),
10982                c64::new(0.000000, 0.000000),
10983                c64::new(0.000000, 0.000000),
10984                c64::new(0.000000, 0.000000),
10985                c64::new(0.000000, 0.000000),
10986                c64::new(0.000000, 0.000000),
10987                c64::new(0.000000, 0.000000),
10988                c64::new(0.000000, 0.000000),
10989                c64::new(0.000000, 0.000000),
10990                c64::new(0.000000, 0.000000),
10991                c64::new(0.000000, 0.000000),
10992                c64::new(0.000000, 0.000000),
10993                c64::new(0.998811, 0.151823),
10994                c64::new(0.153496, 0.173089),
10995                c64::new(0.777784, 0.561901),
10996                c64::new(0.196152, 0.291610),
10997                c64::new(0.815561, 0.186349),
10998                c64::new(0.362361, 0.617128),
10999                c64::new(0.611270, 0.096765),
11000                c64::new(0.106938, 0.385818),
11001                c64::new(0.199039, 0.383701),
11002                c64::new(0.148565, 0.310793),
11003                c64::new(0.951014, 0.944885),
11004                c64::new(0.897417, 0.373009),
11005                c64::new(0.198774, 0.744056),
11006                c64::new(0.544202, 0.295716),
11007                c64::new(0.743012, 0.458318),
11008                c64::new(0.544675, 0.605523),
11009                c64::new(0.907680, 0.298343),
11010                c64::new(0.322987, 0.639377),
11011                c64::new(0.910781, 0.274136),
11012                c64::new(0.185915, 0.744621),
11013                c64::new(0.838579, 0.264727),
11014                c64::new(0.731056, 0.417156),
11015            ],
11016            [
11017                c64::new(0.000000, 0.000000),
11018                c64::new(0.000000, 0.000000),
11019                c64::new(0.000000, 0.000000),
11020                c64::new(0.000000, 0.000000),
11021                c64::new(0.000000, 0.000000),
11022                c64::new(0.000000, 0.000000),
11023                c64::new(0.000000, 0.000000),
11024                c64::new(0.000000, 0.000000),
11025                c64::new(0.000000, 0.000000),
11026                c64::new(0.000000, 0.000000),
11027                c64::new(0.000000, 0.000000),
11028                c64::new(0.000000, 0.000000),
11029                c64::new(0.000000, 0.000000),
11030                c64::new(0.000000, 0.000000),
11031                c64::new(0.000000, 0.000000),
11032                c64::new(0.000000, 0.000000),
11033                c64::new(0.000000, 0.000000),
11034                c64::new(0.000000, 0.000000),
11035                c64::new(0.000000, 0.000000),
11036                c64::new(0.000000, 0.000000),
11037                c64::new(0.000000, 0.000000),
11038                c64::new(0.000000, 0.000000),
11039                c64::new(0.000000, 0.000000),
11040                c64::new(0.000000, 0.000000),
11041                c64::new(0.000000, 0.000000),
11042                c64::new(0.000000, 0.000000),
11043                c64::new(0.000000, 0.000000),
11044                c64::new(0.000000, 0.000000),
11045                c64::new(0.000000, 0.000000),
11046                c64::new(0.000000, 0.000000),
11047                c64::new(0.000000, 0.000000),
11048                c64::new(0.000000, 0.000000),
11049                c64::new(0.000000, 0.000000),
11050                c64::new(0.000000, 0.000000),
11051                c64::new(0.000000, 0.000000),
11052                c64::new(0.000000, 0.000000),
11053                c64::new(0.000000, 0.000000),
11054                c64::new(0.000000, 0.000000),
11055                c64::new(0.000000, 0.000000),
11056                c64::new(0.000000, 0.000000),
11057                c64::new(0.000000, 0.000000),
11058                c64::new(0.000000, 0.000000),
11059                c64::new(0.000000, 0.000000),
11060                c64::new(0.000000, 0.000000),
11061                c64::new(0.000000, 0.000000),
11062                c64::new(0.000000, 0.000000),
11063                c64::new(0.000000, 0.000000),
11064                c64::new(0.000000, 0.000000),
11065                c64::new(0.000000, 0.000000),
11066                c64::new(0.000000, 0.000000),
11067                c64::new(0.000000, 0.000000),
11068                c64::new(0.000000, 0.000000),
11069                c64::new(0.000000, 0.000000),
11070                c64::new(0.000000, 0.000000),
11071                c64::new(0.000000, 0.000000),
11072                c64::new(0.000000, 0.000000),
11073                c64::new(0.000000, 0.000000),
11074                c64::new(0.000000, 0.000000),
11075                c64::new(0.000000, 0.000000),
11076                c64::new(0.000000, 0.000000),
11077                c64::new(0.000000, 0.000000),
11078                c64::new(0.000000, 0.000000),
11079                c64::new(0.000000, 0.000000),
11080                c64::new(0.000000, 0.000000),
11081                c64::new(0.000000, 0.000000),
11082                c64::new(0.000000, 0.000000),
11083                c64::new(0.000000, 0.000000),
11084                c64::new(0.000000, 0.000000),
11085                c64::new(0.000000, 0.000000),
11086                c64::new(0.000000, 0.000000),
11087                c64::new(0.000000, 0.000000),
11088                c64::new(0.000000, 0.000000),
11089                c64::new(0.000000, 0.000000),
11090                c64::new(0.000000, 0.000000),
11091                c64::new(0.000000, 0.000000),
11092                c64::new(0.000000, 0.000000),
11093                c64::new(0.000000, 0.000000),
11094                c64::new(0.000000, 0.000000),
11095                c64::new(0.000000, 0.000000),
11096                c64::new(0.530267, 0.197380),
11097                c64::new(0.226052, 0.296029),
11098                c64::new(0.284460, 0.375842),
11099                c64::new(0.367103, 0.924426),
11100                c64::new(0.822326, 0.700994),
11101                c64::new(0.108366, 0.549252),
11102                c64::new(0.447332, 0.034698),
11103                c64::new(0.700999, 0.579940),
11104                c64::new(0.891061, 0.931660),
11105                c64::new(0.290266, 0.383912),
11106                c64::new(0.577130, 0.740764),
11107                c64::new(0.499824, 0.060088),
11108                c64::new(0.495415, 0.891506),
11109                c64::new(0.451586, 0.209770),
11110                c64::new(0.023542, 0.315256),
11111                c64::new(0.833144, 0.394419),
11112                c64::new(0.764398, 0.649331),
11113                c64::new(0.224859, 0.445504),
11114                c64::new(0.571073, 0.019700),
11115                c64::new(0.310973, 0.096345),
11116                c64::new(0.268852, 0.996233),
11117            ],
11118            [
11119                c64::new(0.000000, 0.000000),
11120                c64::new(0.000000, 0.000000),
11121                c64::new(0.000000, 0.000000),
11122                c64::new(0.000000, 0.000000),
11123                c64::new(0.000000, 0.000000),
11124                c64::new(0.000000, 0.000000),
11125                c64::new(0.000000, 0.000000),
11126                c64::new(0.000000, 0.000000),
11127                c64::new(0.000000, 0.000000),
11128                c64::new(0.000000, 0.000000),
11129                c64::new(0.000000, 0.000000),
11130                c64::new(0.000000, 0.000000),
11131                c64::new(0.000000, 0.000000),
11132                c64::new(0.000000, 0.000000),
11133                c64::new(0.000000, 0.000000),
11134                c64::new(0.000000, 0.000000),
11135                c64::new(0.000000, 0.000000),
11136                c64::new(0.000000, 0.000000),
11137                c64::new(0.000000, 0.000000),
11138                c64::new(0.000000, 0.000000),
11139                c64::new(0.000000, 0.000000),
11140                c64::new(0.000000, 0.000000),
11141                c64::new(0.000000, 0.000000),
11142                c64::new(0.000000, 0.000000),
11143                c64::new(0.000000, 0.000000),
11144                c64::new(0.000000, 0.000000),
11145                c64::new(0.000000, 0.000000),
11146                c64::new(0.000000, 0.000000),
11147                c64::new(0.000000, 0.000000),
11148                c64::new(0.000000, 0.000000),
11149                c64::new(0.000000, 0.000000),
11150                c64::new(0.000000, 0.000000),
11151                c64::new(0.000000, 0.000000),
11152                c64::new(0.000000, 0.000000),
11153                c64::new(0.000000, 0.000000),
11154                c64::new(0.000000, 0.000000),
11155                c64::new(0.000000, 0.000000),
11156                c64::new(0.000000, 0.000000),
11157                c64::new(0.000000, 0.000000),
11158                c64::new(0.000000, 0.000000),
11159                c64::new(0.000000, 0.000000),
11160                c64::new(0.000000, 0.000000),
11161                c64::new(0.000000, 0.000000),
11162                c64::new(0.000000, 0.000000),
11163                c64::new(0.000000, 0.000000),
11164                c64::new(0.000000, 0.000000),
11165                c64::new(0.000000, 0.000000),
11166                c64::new(0.000000, 0.000000),
11167                c64::new(0.000000, 0.000000),
11168                c64::new(0.000000, 0.000000),
11169                c64::new(0.000000, 0.000000),
11170                c64::new(0.000000, 0.000000),
11171                c64::new(0.000000, 0.000000),
11172                c64::new(0.000000, 0.000000),
11173                c64::new(0.000000, 0.000000),
11174                c64::new(0.000000, 0.000000),
11175                c64::new(0.000000, 0.000000),
11176                c64::new(0.000000, 0.000000),
11177                c64::new(0.000000, 0.000000),
11178                c64::new(0.000000, 0.000000),
11179                c64::new(0.000000, 0.000000),
11180                c64::new(0.000000, 0.000000),
11181                c64::new(0.000000, 0.000000),
11182                c64::new(0.000000, 0.000000),
11183                c64::new(0.000000, 0.000000),
11184                c64::new(0.000000, 0.000000),
11185                c64::new(0.000000, 0.000000),
11186                c64::new(0.000000, 0.000000),
11187                c64::new(0.000000, 0.000000),
11188                c64::new(0.000000, 0.000000),
11189                c64::new(0.000000, 0.000000),
11190                c64::new(0.000000, 0.000000),
11191                c64::new(0.000000, 0.000000),
11192                c64::new(0.000000, 0.000000),
11193                c64::new(0.000000, 0.000000),
11194                c64::new(0.000000, 0.000000),
11195                c64::new(0.000000, 0.000000),
11196                c64::new(0.000000, 0.000000),
11197                c64::new(0.000000, 0.000000),
11198                c64::new(0.000000, 0.000000),
11199                c64::new(0.644001, 0.182244),
11200                c64::new(0.647874, 0.832067),
11201                c64::new(0.569676, 0.516088),
11202                c64::new(0.389917, 0.694640),
11203                c64::new(0.973880, 0.100981),
11204                c64::new(0.121832, 0.899526),
11205                c64::new(0.981247, 0.591717),
11206                c64::new(0.881897, 0.798091),
11207                c64::new(0.639378, 0.327739),
11208                c64::new(0.600453, 0.097110),
11209                c64::new(0.646777, 0.252624),
11210                c64::new(0.123707, 0.116175),
11211                c64::new(0.146758, 0.177720),
11212                c64::new(0.857192, 0.146874),
11213                c64::new(0.097650, 0.161668),
11214                c64::new(0.448814, 0.135467),
11215                c64::new(0.393067, 0.884283),
11216                c64::new(0.914110, 0.846350),
11217                c64::new(0.759353, 0.071437),
11218                c64::new(0.996620, 0.055950),
11219            ],
11220            [
11221                c64::new(0.000000, 0.000000),
11222                c64::new(0.000000, 0.000000),
11223                c64::new(0.000000, 0.000000),
11224                c64::new(0.000000, 0.000000),
11225                c64::new(0.000000, 0.000000),
11226                c64::new(0.000000, 0.000000),
11227                c64::new(0.000000, 0.000000),
11228                c64::new(0.000000, 0.000000),
11229                c64::new(0.000000, 0.000000),
11230                c64::new(0.000000, 0.000000),
11231                c64::new(0.000000, 0.000000),
11232                c64::new(0.000000, 0.000000),
11233                c64::new(0.000000, 0.000000),
11234                c64::new(0.000000, 0.000000),
11235                c64::new(0.000000, 0.000000),
11236                c64::new(0.000000, 0.000000),
11237                c64::new(0.000000, 0.000000),
11238                c64::new(0.000000, 0.000000),
11239                c64::new(0.000000, 0.000000),
11240                c64::new(0.000000, 0.000000),
11241                c64::new(0.000000, 0.000000),
11242                c64::new(0.000000, 0.000000),
11243                c64::new(0.000000, 0.000000),
11244                c64::new(0.000000, 0.000000),
11245                c64::new(0.000000, 0.000000),
11246                c64::new(0.000000, 0.000000),
11247                c64::new(0.000000, 0.000000),
11248                c64::new(0.000000, 0.000000),
11249                c64::new(0.000000, 0.000000),
11250                c64::new(0.000000, 0.000000),
11251                c64::new(0.000000, 0.000000),
11252                c64::new(0.000000, 0.000000),
11253                c64::new(0.000000, 0.000000),
11254                c64::new(0.000000, 0.000000),
11255                c64::new(0.000000, 0.000000),
11256                c64::new(0.000000, 0.000000),
11257                c64::new(0.000000, 0.000000),
11258                c64::new(0.000000, 0.000000),
11259                c64::new(0.000000, 0.000000),
11260                c64::new(0.000000, 0.000000),
11261                c64::new(0.000000, 0.000000),
11262                c64::new(0.000000, 0.000000),
11263                c64::new(0.000000, 0.000000),
11264                c64::new(0.000000, 0.000000),
11265                c64::new(0.000000, 0.000000),
11266                c64::new(0.000000, 0.000000),
11267                c64::new(0.000000, 0.000000),
11268                c64::new(0.000000, 0.000000),
11269                c64::new(0.000000, 0.000000),
11270                c64::new(0.000000, 0.000000),
11271                c64::new(0.000000, 0.000000),
11272                c64::new(0.000000, 0.000000),
11273                c64::new(0.000000, 0.000000),
11274                c64::new(0.000000, 0.000000),
11275                c64::new(0.000000, 0.000000),
11276                c64::new(0.000000, 0.000000),
11277                c64::new(0.000000, 0.000000),
11278                c64::new(0.000000, 0.000000),
11279                c64::new(0.000000, 0.000000),
11280                c64::new(0.000000, 0.000000),
11281                c64::new(0.000000, 0.000000),
11282                c64::new(0.000000, 0.000000),
11283                c64::new(0.000000, 0.000000),
11284                c64::new(0.000000, 0.000000),
11285                c64::new(0.000000, 0.000000),
11286                c64::new(0.000000, 0.000000),
11287                c64::new(0.000000, 0.000000),
11288                c64::new(0.000000, 0.000000),
11289                c64::new(0.000000, 0.000000),
11290                c64::new(0.000000, 0.000000),
11291                c64::new(0.000000, 0.000000),
11292                c64::new(0.000000, 0.000000),
11293                c64::new(0.000000, 0.000000),
11294                c64::new(0.000000, 0.000000),
11295                c64::new(0.000000, 0.000000),
11296                c64::new(0.000000, 0.000000),
11297                c64::new(0.000000, 0.000000),
11298                c64::new(0.000000, 0.000000),
11299                c64::new(0.000000, 0.000000),
11300                c64::new(0.000000, 0.000000),
11301                c64::new(0.000000, 0.000000),
11302                c64::new(0.728995, 0.845020),
11303                c64::new(0.990701, 0.252026),
11304                c64::new(0.824465, 0.361300),
11305                c64::new(0.763808, 0.469939),
11306                c64::new(0.894858, 0.255854),
11307                c64::new(0.653015, 0.661021),
11308                c64::new(0.056561, 0.598045),
11309                c64::new(0.175273, 0.986933),
11310                c64::new(0.192212, 0.578786),
11311                c64::new(0.591390, 0.136326),
11312                c64::new(0.162523, 0.633553),
11313                c64::new(0.657352, 0.979075),
11314                c64::new(0.701467, 0.306737),
11315                c64::new(0.372409, 0.698891),
11316                c64::new(0.937645, 0.634370),
11317                c64::new(0.919380, 0.416858),
11318                c64::new(0.372741, 0.475970),
11319                c64::new(0.260335, 0.404998),
11320                c64::new(0.180611, 0.112005),
11321            ],
11322            [
11323                c64::new(0.000000, 0.000000),
11324                c64::new(0.000000, 0.000000),
11325                c64::new(0.000000, 0.000000),
11326                c64::new(0.000000, 0.000000),
11327                c64::new(0.000000, 0.000000),
11328                c64::new(0.000000, 0.000000),
11329                c64::new(0.000000, 0.000000),
11330                c64::new(0.000000, 0.000000),
11331                c64::new(0.000000, 0.000000),
11332                c64::new(0.000000, 0.000000),
11333                c64::new(0.000000, 0.000000),
11334                c64::new(0.000000, 0.000000),
11335                c64::new(0.000000, 0.000000),
11336                c64::new(0.000000, 0.000000),
11337                c64::new(0.000000, 0.000000),
11338                c64::new(0.000000, 0.000000),
11339                c64::new(0.000000, 0.000000),
11340                c64::new(0.000000, 0.000000),
11341                c64::new(0.000000, 0.000000),
11342                c64::new(0.000000, 0.000000),
11343                c64::new(0.000000, 0.000000),
11344                c64::new(0.000000, 0.000000),
11345                c64::new(0.000000, 0.000000),
11346                c64::new(0.000000, 0.000000),
11347                c64::new(0.000000, 0.000000),
11348                c64::new(0.000000, 0.000000),
11349                c64::new(0.000000, 0.000000),
11350                c64::new(0.000000, 0.000000),
11351                c64::new(0.000000, 0.000000),
11352                c64::new(0.000000, 0.000000),
11353                c64::new(0.000000, 0.000000),
11354                c64::new(0.000000, 0.000000),
11355                c64::new(0.000000, 0.000000),
11356                c64::new(0.000000, 0.000000),
11357                c64::new(0.000000, 0.000000),
11358                c64::new(0.000000, 0.000000),
11359                c64::new(0.000000, 0.000000),
11360                c64::new(0.000000, 0.000000),
11361                c64::new(0.000000, 0.000000),
11362                c64::new(0.000000, 0.000000),
11363                c64::new(0.000000, 0.000000),
11364                c64::new(0.000000, 0.000000),
11365                c64::new(0.000000, 0.000000),
11366                c64::new(0.000000, 0.000000),
11367                c64::new(0.000000, 0.000000),
11368                c64::new(0.000000, 0.000000),
11369                c64::new(0.000000, 0.000000),
11370                c64::new(0.000000, 0.000000),
11371                c64::new(0.000000, 0.000000),
11372                c64::new(0.000000, 0.000000),
11373                c64::new(0.000000, 0.000000),
11374                c64::new(0.000000, 0.000000),
11375                c64::new(0.000000, 0.000000),
11376                c64::new(0.000000, 0.000000),
11377                c64::new(0.000000, 0.000000),
11378                c64::new(0.000000, 0.000000),
11379                c64::new(0.000000, 0.000000),
11380                c64::new(0.000000, 0.000000),
11381                c64::new(0.000000, 0.000000),
11382                c64::new(0.000000, 0.000000),
11383                c64::new(0.000000, 0.000000),
11384                c64::new(0.000000, 0.000000),
11385                c64::new(0.000000, 0.000000),
11386                c64::new(0.000000, 0.000000),
11387                c64::new(0.000000, 0.000000),
11388                c64::new(0.000000, 0.000000),
11389                c64::new(0.000000, 0.000000),
11390                c64::new(0.000000, 0.000000),
11391                c64::new(0.000000, 0.000000),
11392                c64::new(0.000000, 0.000000),
11393                c64::new(0.000000, 0.000000),
11394                c64::new(0.000000, 0.000000),
11395                c64::new(0.000000, 0.000000),
11396                c64::new(0.000000, 0.000000),
11397                c64::new(0.000000, 0.000000),
11398                c64::new(0.000000, 0.000000),
11399                c64::new(0.000000, 0.000000),
11400                c64::new(0.000000, 0.000000),
11401                c64::new(0.000000, 0.000000),
11402                c64::new(0.000000, 0.000000),
11403                c64::new(0.000000, 0.000000),
11404                c64::new(0.000000, 0.000000),
11405                c64::new(0.814781, 0.486892),
11406                c64::new(0.070927, 0.526587),
11407                c64::new(0.520279, 0.069979),
11408                c64::new(0.712456, 0.411117),
11409                c64::new(0.796706, 0.210675),
11410                c64::new(0.137444, 0.320210),
11411                c64::new(0.610915, 0.173164),
11412                c64::new(0.939402, 0.725923),
11413                c64::new(0.253125, 0.909806),
11414                c64::new(0.652449, 0.191755),
11415                c64::new(0.131386, 0.765295),
11416                c64::new(0.707202, 0.876745),
11417                c64::new(0.707284, 0.233998),
11418                c64::new(0.639369, 0.749559),
11419                c64::new(0.840714, 0.309042),
11420                c64::new(0.604209, 0.017491),
11421                c64::new(0.325224, 0.878176),
11422                c64::new(0.261566, 0.500890),
11423            ],
11424            [
11425                c64::new(0.000000, 0.000000),
11426                c64::new(0.000000, 0.000000),
11427                c64::new(0.000000, 0.000000),
11428                c64::new(0.000000, 0.000000),
11429                c64::new(0.000000, 0.000000),
11430                c64::new(0.000000, 0.000000),
11431                c64::new(0.000000, 0.000000),
11432                c64::new(0.000000, 0.000000),
11433                c64::new(0.000000, 0.000000),
11434                c64::new(0.000000, 0.000000),
11435                c64::new(0.000000, 0.000000),
11436                c64::new(0.000000, 0.000000),
11437                c64::new(0.000000, 0.000000),
11438                c64::new(0.000000, 0.000000),
11439                c64::new(0.000000, 0.000000),
11440                c64::new(0.000000, 0.000000),
11441                c64::new(0.000000, 0.000000),
11442                c64::new(0.000000, 0.000000),
11443                c64::new(0.000000, 0.000000),
11444                c64::new(0.000000, 0.000000),
11445                c64::new(0.000000, 0.000000),
11446                c64::new(0.000000, 0.000000),
11447                c64::new(0.000000, 0.000000),
11448                c64::new(0.000000, 0.000000),
11449                c64::new(0.000000, 0.000000),
11450                c64::new(0.000000, 0.000000),
11451                c64::new(0.000000, 0.000000),
11452                c64::new(0.000000, 0.000000),
11453                c64::new(0.000000, 0.000000),
11454                c64::new(0.000000, 0.000000),
11455                c64::new(0.000000, 0.000000),
11456                c64::new(0.000000, 0.000000),
11457                c64::new(0.000000, 0.000000),
11458                c64::new(0.000000, 0.000000),
11459                c64::new(0.000000, 0.000000),
11460                c64::new(0.000000, 0.000000),
11461                c64::new(0.000000, 0.000000),
11462                c64::new(0.000000, 0.000000),
11463                c64::new(0.000000, 0.000000),
11464                c64::new(0.000000, 0.000000),
11465                c64::new(0.000000, 0.000000),
11466                c64::new(0.000000, 0.000000),
11467                c64::new(0.000000, 0.000000),
11468                c64::new(0.000000, 0.000000),
11469                c64::new(0.000000, 0.000000),
11470                c64::new(0.000000, 0.000000),
11471                c64::new(0.000000, 0.000000),
11472                c64::new(0.000000, 0.000000),
11473                c64::new(0.000000, 0.000000),
11474                c64::new(0.000000, 0.000000),
11475                c64::new(0.000000, 0.000000),
11476                c64::new(0.000000, 0.000000),
11477                c64::new(0.000000, 0.000000),
11478                c64::new(0.000000, 0.000000),
11479                c64::new(0.000000, 0.000000),
11480                c64::new(0.000000, 0.000000),
11481                c64::new(0.000000, 0.000000),
11482                c64::new(0.000000, 0.000000),
11483                c64::new(0.000000, 0.000000),
11484                c64::new(0.000000, 0.000000),
11485                c64::new(0.000000, 0.000000),
11486                c64::new(0.000000, 0.000000),
11487                c64::new(0.000000, 0.000000),
11488                c64::new(0.000000, 0.000000),
11489                c64::new(0.000000, 0.000000),
11490                c64::new(0.000000, 0.000000),
11491                c64::new(0.000000, 0.000000),
11492                c64::new(0.000000, 0.000000),
11493                c64::new(0.000000, 0.000000),
11494                c64::new(0.000000, 0.000000),
11495                c64::new(0.000000, 0.000000),
11496                c64::new(0.000000, 0.000000),
11497                c64::new(0.000000, 0.000000),
11498                c64::new(0.000000, 0.000000),
11499                c64::new(0.000000, 0.000000),
11500                c64::new(0.000000, 0.000000),
11501                c64::new(0.000000, 0.000000),
11502                c64::new(0.000000, 0.000000),
11503                c64::new(0.000000, 0.000000),
11504                c64::new(0.000000, 0.000000),
11505                c64::new(0.000000, 0.000000),
11506                c64::new(0.000000, 0.000000),
11507                c64::new(0.000000, 0.000000),
11508                c64::new(0.919724, 0.062919),
11509                c64::new(0.176956, 0.340665),
11510                c64::new(0.923453, 0.173053),
11511                c64::new(0.212610, 0.959185),
11512                c64::new(0.995610, 0.609521),
11513                c64::new(0.713215, 0.873191),
11514                c64::new(0.566007, 0.690059),
11515                c64::new(0.010516, 0.637544),
11516                c64::new(0.659578, 0.089076),
11517                c64::new(0.715069, 0.630759),
11518                c64::new(0.543477, 0.085693),
11519                c64::new(0.673411, 0.034171),
11520                c64::new(0.604034, 0.193489),
11521                c64::new(0.283909, 0.240958),
11522                c64::new(0.684924, 0.883630),
11523                c64::new(0.030740, 0.530821),
11524                c64::new(0.864281, 0.164948),
11525            ],
11526            [
11527                c64::new(0.000000, 0.000000),
11528                c64::new(0.000000, 0.000000),
11529                c64::new(0.000000, 0.000000),
11530                c64::new(0.000000, 0.000000),
11531                c64::new(0.000000, 0.000000),
11532                c64::new(0.000000, 0.000000),
11533                c64::new(0.000000, 0.000000),
11534                c64::new(0.000000, 0.000000),
11535                c64::new(0.000000, 0.000000),
11536                c64::new(0.000000, 0.000000),
11537                c64::new(0.000000, 0.000000),
11538                c64::new(0.000000, 0.000000),
11539                c64::new(0.000000, 0.000000),
11540                c64::new(0.000000, 0.000000),
11541                c64::new(0.000000, 0.000000),
11542                c64::new(0.000000, 0.000000),
11543                c64::new(0.000000, 0.000000),
11544                c64::new(0.000000, 0.000000),
11545                c64::new(0.000000, 0.000000),
11546                c64::new(0.000000, 0.000000),
11547                c64::new(0.000000, 0.000000),
11548                c64::new(0.000000, 0.000000),
11549                c64::new(0.000000, 0.000000),
11550                c64::new(0.000000, 0.000000),
11551                c64::new(0.000000, 0.000000),
11552                c64::new(0.000000, 0.000000),
11553                c64::new(0.000000, 0.000000),
11554                c64::new(0.000000, 0.000000),
11555                c64::new(0.000000, 0.000000),
11556                c64::new(0.000000, 0.000000),
11557                c64::new(0.000000, 0.000000),
11558                c64::new(0.000000, 0.000000),
11559                c64::new(0.000000, 0.000000),
11560                c64::new(0.000000, 0.000000),
11561                c64::new(0.000000, 0.000000),
11562                c64::new(0.000000, 0.000000),
11563                c64::new(0.000000, 0.000000),
11564                c64::new(0.000000, 0.000000),
11565                c64::new(0.000000, 0.000000),
11566                c64::new(0.000000, 0.000000),
11567                c64::new(0.000000, 0.000000),
11568                c64::new(0.000000, 0.000000),
11569                c64::new(0.000000, 0.000000),
11570                c64::new(0.000000, 0.000000),
11571                c64::new(0.000000, 0.000000),
11572                c64::new(0.000000, 0.000000),
11573                c64::new(0.000000, 0.000000),
11574                c64::new(0.000000, 0.000000),
11575                c64::new(0.000000, 0.000000),
11576                c64::new(0.000000, 0.000000),
11577                c64::new(0.000000, 0.000000),
11578                c64::new(0.000000, 0.000000),
11579                c64::new(0.000000, 0.000000),
11580                c64::new(0.000000, 0.000000),
11581                c64::new(0.000000, 0.000000),
11582                c64::new(0.000000, 0.000000),
11583                c64::new(0.000000, 0.000000),
11584                c64::new(0.000000, 0.000000),
11585                c64::new(0.000000, 0.000000),
11586                c64::new(0.000000, 0.000000),
11587                c64::new(0.000000, 0.000000),
11588                c64::new(0.000000, 0.000000),
11589                c64::new(0.000000, 0.000000),
11590                c64::new(0.000000, 0.000000),
11591                c64::new(0.000000, 0.000000),
11592                c64::new(0.000000, 0.000000),
11593                c64::new(0.000000, 0.000000),
11594                c64::new(0.000000, 0.000000),
11595                c64::new(0.000000, 0.000000),
11596                c64::new(0.000000, 0.000000),
11597                c64::new(0.000000, 0.000000),
11598                c64::new(0.000000, 0.000000),
11599                c64::new(0.000000, 0.000000),
11600                c64::new(0.000000, 0.000000),
11601                c64::new(0.000000, 0.000000),
11602                c64::new(0.000000, 0.000000),
11603                c64::new(0.000000, 0.000000),
11604                c64::new(0.000000, 0.000000),
11605                c64::new(0.000000, 0.000000),
11606                c64::new(0.000000, 0.000000),
11607                c64::new(0.000000, 0.000000),
11608                c64::new(0.000000, 0.000000),
11609                c64::new(0.000000, 0.000000),
11610                c64::new(0.000000, 0.000000),
11611                c64::new(0.057777, 0.371621),
11612                c64::new(0.276834, 0.604932),
11613                c64::new(0.321289, 0.795083),
11614                c64::new(0.863373, 0.691706),
11615                c64::new(0.819117, 0.439222),
11616                c64::new(0.607592, 0.118105),
11617                c64::new(0.019902, 0.698416),
11618                c64::new(0.946729, 0.362846),
11619                c64::new(0.856545, 0.546844),
11620                c64::new(0.369417, 0.790704),
11621                c64::new(0.443440, 0.589923),
11622                c64::new(0.662327, 0.754029),
11623                c64::new(0.619686, 0.457036),
11624                c64::new(0.288752, 0.565755),
11625                c64::new(0.827299, 0.904174),
11626                c64::new(0.869594, 0.402969),
11627            ],
11628            [
11629                c64::new(0.000000, 0.000000),
11630                c64::new(0.000000, 0.000000),
11631                c64::new(0.000000, 0.000000),
11632                c64::new(0.000000, 0.000000),
11633                c64::new(0.000000, 0.000000),
11634                c64::new(0.000000, 0.000000),
11635                c64::new(0.000000, 0.000000),
11636                c64::new(0.000000, 0.000000),
11637                c64::new(0.000000, 0.000000),
11638                c64::new(0.000000, 0.000000),
11639                c64::new(0.000000, 0.000000),
11640                c64::new(0.000000, 0.000000),
11641                c64::new(0.000000, 0.000000),
11642                c64::new(0.000000, 0.000000),
11643                c64::new(0.000000, 0.000000),
11644                c64::new(0.000000, 0.000000),
11645                c64::new(0.000000, 0.000000),
11646                c64::new(0.000000, 0.000000),
11647                c64::new(0.000000, 0.000000),
11648                c64::new(0.000000, 0.000000),
11649                c64::new(0.000000, 0.000000),
11650                c64::new(0.000000, 0.000000),
11651                c64::new(0.000000, 0.000000),
11652                c64::new(0.000000, 0.000000),
11653                c64::new(0.000000, 0.000000),
11654                c64::new(0.000000, 0.000000),
11655                c64::new(0.000000, 0.000000),
11656                c64::new(0.000000, 0.000000),
11657                c64::new(0.000000, 0.000000),
11658                c64::new(0.000000, 0.000000),
11659                c64::new(0.000000, 0.000000),
11660                c64::new(0.000000, 0.000000),
11661                c64::new(0.000000, 0.000000),
11662                c64::new(0.000000, 0.000000),
11663                c64::new(0.000000, 0.000000),
11664                c64::new(0.000000, 0.000000),
11665                c64::new(0.000000, 0.000000),
11666                c64::new(0.000000, 0.000000),
11667                c64::new(0.000000, 0.000000),
11668                c64::new(0.000000, 0.000000),
11669                c64::new(0.000000, 0.000000),
11670                c64::new(0.000000, 0.000000),
11671                c64::new(0.000000, 0.000000),
11672                c64::new(0.000000, 0.000000),
11673                c64::new(0.000000, 0.000000),
11674                c64::new(0.000000, 0.000000),
11675                c64::new(0.000000, 0.000000),
11676                c64::new(0.000000, 0.000000),
11677                c64::new(0.000000, 0.000000),
11678                c64::new(0.000000, 0.000000),
11679                c64::new(0.000000, 0.000000),
11680                c64::new(0.000000, 0.000000),
11681                c64::new(0.000000, 0.000000),
11682                c64::new(0.000000, 0.000000),
11683                c64::new(0.000000, 0.000000),
11684                c64::new(0.000000, 0.000000),
11685                c64::new(0.000000, 0.000000),
11686                c64::new(0.000000, 0.000000),
11687                c64::new(0.000000, 0.000000),
11688                c64::new(0.000000, 0.000000),
11689                c64::new(0.000000, 0.000000),
11690                c64::new(0.000000, 0.000000),
11691                c64::new(0.000000, 0.000000),
11692                c64::new(0.000000, 0.000000),
11693                c64::new(0.000000, 0.000000),
11694                c64::new(0.000000, 0.000000),
11695                c64::new(0.000000, 0.000000),
11696                c64::new(0.000000, 0.000000),
11697                c64::new(0.000000, 0.000000),
11698                c64::new(0.000000, 0.000000),
11699                c64::new(0.000000, 0.000000),
11700                c64::new(0.000000, 0.000000),
11701                c64::new(0.000000, 0.000000),
11702                c64::new(0.000000, 0.000000),
11703                c64::new(0.000000, 0.000000),
11704                c64::new(0.000000, 0.000000),
11705                c64::new(0.000000, 0.000000),
11706                c64::new(0.000000, 0.000000),
11707                c64::new(0.000000, 0.000000),
11708                c64::new(0.000000, 0.000000),
11709                c64::new(0.000000, 0.000000),
11710                c64::new(0.000000, 0.000000),
11711                c64::new(0.000000, 0.000000),
11712                c64::new(0.000000, 0.000000),
11713                c64::new(0.000000, 0.000000),
11714                c64::new(0.139517, 0.676169),
11715                c64::new(0.504913, 0.135384),
11716                c64::new(0.298331, 0.180278),
11717                c64::new(0.483749, 0.285515),
11718                c64::new(0.438249, 0.339124),
11719                c64::new(0.342086, 0.835658),
11720                c64::new(0.975726, 0.808771),
11721                c64::new(0.910044, 0.239789),
11722                c64::new(0.242144, 0.853117),
11723                c64::new(0.891421, 0.339500),
11724                c64::new(0.616380, 0.450252),
11725                c64::new(0.210675, 0.446397),
11726                c64::new(0.074969, 0.837579),
11727                c64::new(0.217164, 0.400573),
11728                c64::new(0.777591, 0.348604),
11729            ],
11730            [
11731                c64::new(0.000000, 0.000000),
11732                c64::new(0.000000, 0.000000),
11733                c64::new(0.000000, 0.000000),
11734                c64::new(0.000000, 0.000000),
11735                c64::new(0.000000, 0.000000),
11736                c64::new(0.000000, 0.000000),
11737                c64::new(0.000000, 0.000000),
11738                c64::new(0.000000, 0.000000),
11739                c64::new(0.000000, 0.000000),
11740                c64::new(0.000000, 0.000000),
11741                c64::new(0.000000, 0.000000),
11742                c64::new(0.000000, 0.000000),
11743                c64::new(0.000000, 0.000000),
11744                c64::new(0.000000, 0.000000),
11745                c64::new(0.000000, 0.000000),
11746                c64::new(0.000000, 0.000000),
11747                c64::new(0.000000, 0.000000),
11748                c64::new(0.000000, 0.000000),
11749                c64::new(0.000000, 0.000000),
11750                c64::new(0.000000, 0.000000),
11751                c64::new(0.000000, 0.000000),
11752                c64::new(0.000000, 0.000000),
11753                c64::new(0.000000, 0.000000),
11754                c64::new(0.000000, 0.000000),
11755                c64::new(0.000000, 0.000000),
11756                c64::new(0.000000, 0.000000),
11757                c64::new(0.000000, 0.000000),
11758                c64::new(0.000000, 0.000000),
11759                c64::new(0.000000, 0.000000),
11760                c64::new(0.000000, 0.000000),
11761                c64::new(0.000000, 0.000000),
11762                c64::new(0.000000, 0.000000),
11763                c64::new(0.000000, 0.000000),
11764                c64::new(0.000000, 0.000000),
11765                c64::new(0.000000, 0.000000),
11766                c64::new(0.000000, 0.000000),
11767                c64::new(0.000000, 0.000000),
11768                c64::new(0.000000, 0.000000),
11769                c64::new(0.000000, 0.000000),
11770                c64::new(0.000000, 0.000000),
11771                c64::new(0.000000, 0.000000),
11772                c64::new(0.000000, 0.000000),
11773                c64::new(0.000000, 0.000000),
11774                c64::new(0.000000, 0.000000),
11775                c64::new(0.000000, 0.000000),
11776                c64::new(0.000000, 0.000000),
11777                c64::new(0.000000, 0.000000),
11778                c64::new(0.000000, 0.000000),
11779                c64::new(0.000000, 0.000000),
11780                c64::new(0.000000, 0.000000),
11781                c64::new(0.000000, 0.000000),
11782                c64::new(0.000000, 0.000000),
11783                c64::new(0.000000, 0.000000),
11784                c64::new(0.000000, 0.000000),
11785                c64::new(0.000000, 0.000000),
11786                c64::new(0.000000, 0.000000),
11787                c64::new(0.000000, 0.000000),
11788                c64::new(0.000000, 0.000000),
11789                c64::new(0.000000, 0.000000),
11790                c64::new(0.000000, 0.000000),
11791                c64::new(0.000000, 0.000000),
11792                c64::new(0.000000, 0.000000),
11793                c64::new(0.000000, 0.000000),
11794                c64::new(0.000000, 0.000000),
11795                c64::new(0.000000, 0.000000),
11796                c64::new(0.000000, 0.000000),
11797                c64::new(0.000000, 0.000000),
11798                c64::new(0.000000, 0.000000),
11799                c64::new(0.000000, 0.000000),
11800                c64::new(0.000000, 0.000000),
11801                c64::new(0.000000, 0.000000),
11802                c64::new(0.000000, 0.000000),
11803                c64::new(0.000000, 0.000000),
11804                c64::new(0.000000, 0.000000),
11805                c64::new(0.000000, 0.000000),
11806                c64::new(0.000000, 0.000000),
11807                c64::new(0.000000, 0.000000),
11808                c64::new(0.000000, 0.000000),
11809                c64::new(0.000000, 0.000000),
11810                c64::new(0.000000, 0.000000),
11811                c64::new(0.000000, 0.000000),
11812                c64::new(0.000000, 0.000000),
11813                c64::new(0.000000, 0.000000),
11814                c64::new(0.000000, 0.000000),
11815                c64::new(0.000000, 0.000000),
11816                c64::new(0.000000, 0.000000),
11817                c64::new(0.495632, 0.077062),
11818                c64::new(0.974407, 0.459050),
11819                c64::new(0.517030, 0.835661),
11820                c64::new(0.596032, 0.961335),
11821                c64::new(0.675459, 0.847674),
11822                c64::new(0.749591, 0.027275),
11823                c64::new(0.129578, 0.819247),
11824                c64::new(0.794775, 0.701672),
11825                c64::new(0.021770, 0.332271),
11826                c64::new(0.100434, 0.809707),
11827                c64::new(0.953545, 0.514408),
11828                c64::new(0.862212, 0.847182),
11829                c64::new(0.216898, 0.855612),
11830                c64::new(0.891567, 0.243043),
11831            ],
11832            [
11833                c64::new(0.000000, 0.000000),
11834                c64::new(0.000000, 0.000000),
11835                c64::new(0.000000, 0.000000),
11836                c64::new(0.000000, 0.000000),
11837                c64::new(0.000000, 0.000000),
11838                c64::new(0.000000, 0.000000),
11839                c64::new(0.000000, 0.000000),
11840                c64::new(0.000000, 0.000000),
11841                c64::new(0.000000, 0.000000),
11842                c64::new(0.000000, 0.000000),
11843                c64::new(0.000000, 0.000000),
11844                c64::new(0.000000, 0.000000),
11845                c64::new(0.000000, 0.000000),
11846                c64::new(0.000000, 0.000000),
11847                c64::new(0.000000, 0.000000),
11848                c64::new(0.000000, 0.000000),
11849                c64::new(0.000000, 0.000000),
11850                c64::new(0.000000, 0.000000),
11851                c64::new(0.000000, 0.000000),
11852                c64::new(0.000000, 0.000000),
11853                c64::new(0.000000, 0.000000),
11854                c64::new(0.000000, 0.000000),
11855                c64::new(0.000000, 0.000000),
11856                c64::new(0.000000, 0.000000),
11857                c64::new(0.000000, 0.000000),
11858                c64::new(0.000000, 0.000000),
11859                c64::new(0.000000, 0.000000),
11860                c64::new(0.000000, 0.000000),
11861                c64::new(0.000000, 0.000000),
11862                c64::new(0.000000, 0.000000),
11863                c64::new(0.000000, 0.000000),
11864                c64::new(0.000000, 0.000000),
11865                c64::new(0.000000, 0.000000),
11866                c64::new(0.000000, 0.000000),
11867                c64::new(0.000000, 0.000000),
11868                c64::new(0.000000, 0.000000),
11869                c64::new(0.000000, 0.000000),
11870                c64::new(0.000000, 0.000000),
11871                c64::new(0.000000, 0.000000),
11872                c64::new(0.000000, 0.000000),
11873                c64::new(0.000000, 0.000000),
11874                c64::new(0.000000, 0.000000),
11875                c64::new(0.000000, 0.000000),
11876                c64::new(0.000000, 0.000000),
11877                c64::new(0.000000, 0.000000),
11878                c64::new(0.000000, 0.000000),
11879                c64::new(0.000000, 0.000000),
11880                c64::new(0.000000, 0.000000),
11881                c64::new(0.000000, 0.000000),
11882                c64::new(0.000000, 0.000000),
11883                c64::new(0.000000, 0.000000),
11884                c64::new(0.000000, 0.000000),
11885                c64::new(0.000000, 0.000000),
11886                c64::new(0.000000, 0.000000),
11887                c64::new(0.000000, 0.000000),
11888                c64::new(0.000000, 0.000000),
11889                c64::new(0.000000, 0.000000),
11890                c64::new(0.000000, 0.000000),
11891                c64::new(0.000000, 0.000000),
11892                c64::new(0.000000, 0.000000),
11893                c64::new(0.000000, 0.000000),
11894                c64::new(0.000000, 0.000000),
11895                c64::new(0.000000, 0.000000),
11896                c64::new(0.000000, 0.000000),
11897                c64::new(0.000000, 0.000000),
11898                c64::new(0.000000, 0.000000),
11899                c64::new(0.000000, 0.000000),
11900                c64::new(0.000000, 0.000000),
11901                c64::new(0.000000, 0.000000),
11902                c64::new(0.000000, 0.000000),
11903                c64::new(0.000000, 0.000000),
11904                c64::new(0.000000, 0.000000),
11905                c64::new(0.000000, 0.000000),
11906                c64::new(0.000000, 0.000000),
11907                c64::new(0.000000, 0.000000),
11908                c64::new(0.000000, 0.000000),
11909                c64::new(0.000000, 0.000000),
11910                c64::new(0.000000, 0.000000),
11911                c64::new(0.000000, 0.000000),
11912                c64::new(0.000000, 0.000000),
11913                c64::new(0.000000, 0.000000),
11914                c64::new(0.000000, 0.000000),
11915                c64::new(0.000000, 0.000000),
11916                c64::new(0.000000, 0.000000),
11917                c64::new(0.000000, 0.000000),
11918                c64::new(0.000000, 0.000000),
11919                c64::new(0.000000, 0.000000),
11920                c64::new(0.441988, 0.999107),
11921                c64::new(0.832639, 0.884452),
11922                c64::new(0.320947, 0.780186),
11923                c64::new(0.810076, 0.236526),
11924                c64::new(0.537672, 0.740795),
11925                c64::new(0.680193, 0.066289),
11926                c64::new(0.874927, 0.227058),
11927                c64::new(0.694998, 0.999270),
11928                c64::new(0.884695, 0.089978),
11929                c64::new(0.459663, 0.511654),
11930                c64::new(0.613541, 0.367113),
11931                c64::new(0.729744, 0.552765),
11932                c64::new(0.566712, 0.090803),
11933            ],
11934            [
11935                c64::new(0.000000, 0.000000),
11936                c64::new(0.000000, 0.000000),
11937                c64::new(0.000000, 0.000000),
11938                c64::new(0.000000, 0.000000),
11939                c64::new(0.000000, 0.000000),
11940                c64::new(0.000000, 0.000000),
11941                c64::new(0.000000, 0.000000),
11942                c64::new(0.000000, 0.000000),
11943                c64::new(0.000000, 0.000000),
11944                c64::new(0.000000, 0.000000),
11945                c64::new(0.000000, 0.000000),
11946                c64::new(0.000000, 0.000000),
11947                c64::new(0.000000, 0.000000),
11948                c64::new(0.000000, 0.000000),
11949                c64::new(0.000000, 0.000000),
11950                c64::new(0.000000, 0.000000),
11951                c64::new(0.000000, 0.000000),
11952                c64::new(0.000000, 0.000000),
11953                c64::new(0.000000, 0.000000),
11954                c64::new(0.000000, 0.000000),
11955                c64::new(0.000000, 0.000000),
11956                c64::new(0.000000, 0.000000),
11957                c64::new(0.000000, 0.000000),
11958                c64::new(0.000000, 0.000000),
11959                c64::new(0.000000, 0.000000),
11960                c64::new(0.000000, 0.000000),
11961                c64::new(0.000000, 0.000000),
11962                c64::new(0.000000, 0.000000),
11963                c64::new(0.000000, 0.000000),
11964                c64::new(0.000000, 0.000000),
11965                c64::new(0.000000, 0.000000),
11966                c64::new(0.000000, 0.000000),
11967                c64::new(0.000000, 0.000000),
11968                c64::new(0.000000, 0.000000),
11969                c64::new(0.000000, 0.000000),
11970                c64::new(0.000000, 0.000000),
11971                c64::new(0.000000, 0.000000),
11972                c64::new(0.000000, 0.000000),
11973                c64::new(0.000000, 0.000000),
11974                c64::new(0.000000, 0.000000),
11975                c64::new(0.000000, 0.000000),
11976                c64::new(0.000000, 0.000000),
11977                c64::new(0.000000, 0.000000),
11978                c64::new(0.000000, 0.000000),
11979                c64::new(0.000000, 0.000000),
11980                c64::new(0.000000, 0.000000),
11981                c64::new(0.000000, 0.000000),
11982                c64::new(0.000000, 0.000000),
11983                c64::new(0.000000, 0.000000),
11984                c64::new(0.000000, 0.000000),
11985                c64::new(0.000000, 0.000000),
11986                c64::new(0.000000, 0.000000),
11987                c64::new(0.000000, 0.000000),
11988                c64::new(0.000000, 0.000000),
11989                c64::new(0.000000, 0.000000),
11990                c64::new(0.000000, 0.000000),
11991                c64::new(0.000000, 0.000000),
11992                c64::new(0.000000, 0.000000),
11993                c64::new(0.000000, 0.000000),
11994                c64::new(0.000000, 0.000000),
11995                c64::new(0.000000, 0.000000),
11996                c64::new(0.000000, 0.000000),
11997                c64::new(0.000000, 0.000000),
11998                c64::new(0.000000, 0.000000),
11999                c64::new(0.000000, 0.000000),
12000                c64::new(0.000000, 0.000000),
12001                c64::new(0.000000, 0.000000),
12002                c64::new(0.000000, 0.000000),
12003                c64::new(0.000000, 0.000000),
12004                c64::new(0.000000, 0.000000),
12005                c64::new(0.000000, 0.000000),
12006                c64::new(0.000000, 0.000000),
12007                c64::new(0.000000, 0.000000),
12008                c64::new(0.000000, 0.000000),
12009                c64::new(0.000000, 0.000000),
12010                c64::new(0.000000, 0.000000),
12011                c64::new(0.000000, 0.000000),
12012                c64::new(0.000000, 0.000000),
12013                c64::new(0.000000, 0.000000),
12014                c64::new(0.000000, 0.000000),
12015                c64::new(0.000000, 0.000000),
12016                c64::new(0.000000, 0.000000),
12017                c64::new(0.000000, 0.000000),
12018                c64::new(0.000000, 0.000000),
12019                c64::new(0.000000, 0.000000),
12020                c64::new(0.000000, 0.000000),
12021                c64::new(0.000000, 0.000000),
12022                c64::new(0.000000, 0.000000),
12023                c64::new(0.202611, 0.195663),
12024                c64::new(0.711010, 0.367417),
12025                c64::new(0.922125, 0.424018),
12026                c64::new(0.525708, 0.552767),
12027                c64::new(0.401893, 0.721927),
12028                c64::new(0.809928, 0.540102),
12029                c64::new(0.112140, 0.010517),
12030                c64::new(0.623596, 0.889269),
12031                c64::new(0.137125, 0.282061),
12032                c64::new(0.268159, 0.548416),
12033                c64::new(0.829648, 0.013244),
12034                c64::new(0.277403, 0.997901),
12035            ],
12036            [
12037                c64::new(0.000000, 0.000000),
12038                c64::new(0.000000, 0.000000),
12039                c64::new(0.000000, 0.000000),
12040                c64::new(0.000000, 0.000000),
12041                c64::new(0.000000, 0.000000),
12042                c64::new(0.000000, 0.000000),
12043                c64::new(0.000000, 0.000000),
12044                c64::new(0.000000, 0.000000),
12045                c64::new(0.000000, 0.000000),
12046                c64::new(0.000000, 0.000000),
12047                c64::new(0.000000, 0.000000),
12048                c64::new(0.000000, 0.000000),
12049                c64::new(0.000000, 0.000000),
12050                c64::new(0.000000, 0.000000),
12051                c64::new(0.000000, 0.000000),
12052                c64::new(0.000000, 0.000000),
12053                c64::new(0.000000, 0.000000),
12054                c64::new(0.000000, 0.000000),
12055                c64::new(0.000000, 0.000000),
12056                c64::new(0.000000, 0.000000),
12057                c64::new(0.000000, 0.000000),
12058                c64::new(0.000000, 0.000000),
12059                c64::new(0.000000, 0.000000),
12060                c64::new(0.000000, 0.000000),
12061                c64::new(0.000000, 0.000000),
12062                c64::new(0.000000, 0.000000),
12063                c64::new(0.000000, 0.000000),
12064                c64::new(0.000000, 0.000000),
12065                c64::new(0.000000, 0.000000),
12066                c64::new(0.000000, 0.000000),
12067                c64::new(0.000000, 0.000000),
12068                c64::new(0.000000, 0.000000),
12069                c64::new(0.000000, 0.000000),
12070                c64::new(0.000000, 0.000000),
12071                c64::new(0.000000, 0.000000),
12072                c64::new(0.000000, 0.000000),
12073                c64::new(0.000000, 0.000000),
12074                c64::new(0.000000, 0.000000),
12075                c64::new(0.000000, 0.000000),
12076                c64::new(0.000000, 0.000000),
12077                c64::new(0.000000, 0.000000),
12078                c64::new(0.000000, 0.000000),
12079                c64::new(0.000000, 0.000000),
12080                c64::new(0.000000, 0.000000),
12081                c64::new(0.000000, 0.000000),
12082                c64::new(0.000000, 0.000000),
12083                c64::new(0.000000, 0.000000),
12084                c64::new(0.000000, 0.000000),
12085                c64::new(0.000000, 0.000000),
12086                c64::new(0.000000, 0.000000),
12087                c64::new(0.000000, 0.000000),
12088                c64::new(0.000000, 0.000000),
12089                c64::new(0.000000, 0.000000),
12090                c64::new(0.000000, 0.000000),
12091                c64::new(0.000000, 0.000000),
12092                c64::new(0.000000, 0.000000),
12093                c64::new(0.000000, 0.000000),
12094                c64::new(0.000000, 0.000000),
12095                c64::new(0.000000, 0.000000),
12096                c64::new(0.000000, 0.000000),
12097                c64::new(0.000000, 0.000000),
12098                c64::new(0.000000, 0.000000),
12099                c64::new(0.000000, 0.000000),
12100                c64::new(0.000000, 0.000000),
12101                c64::new(0.000000, 0.000000),
12102                c64::new(0.000000, 0.000000),
12103                c64::new(0.000000, 0.000000),
12104                c64::new(0.000000, 0.000000),
12105                c64::new(0.000000, 0.000000),
12106                c64::new(0.000000, 0.000000),
12107                c64::new(0.000000, 0.000000),
12108                c64::new(0.000000, 0.000000),
12109                c64::new(0.000000, 0.000000),
12110                c64::new(0.000000, 0.000000),
12111                c64::new(0.000000, 0.000000),
12112                c64::new(0.000000, 0.000000),
12113                c64::new(0.000000, 0.000000),
12114                c64::new(0.000000, 0.000000),
12115                c64::new(0.000000, 0.000000),
12116                c64::new(0.000000, 0.000000),
12117                c64::new(0.000000, 0.000000),
12118                c64::new(0.000000, 0.000000),
12119                c64::new(0.000000, 0.000000),
12120                c64::new(0.000000, 0.000000),
12121                c64::new(0.000000, 0.000000),
12122                c64::new(0.000000, 0.000000),
12123                c64::new(0.000000, 0.000000),
12124                c64::new(0.000000, 0.000000),
12125                c64::new(0.000000, 0.000000),
12126                c64::new(0.059393, 0.220650),
12127                c64::new(0.267126, 0.022048),
12128                c64::new(0.627902, 0.176709),
12129                c64::new(0.074405, 0.525112),
12130                c64::new(0.420115, 0.146938),
12131                c64::new(0.393349, 0.066754),
12132                c64::new(0.463582, 0.148698),
12133                c64::new(0.283088, 0.992110),
12134                c64::new(0.238601, 0.012526),
12135                c64::new(0.065825, 0.877910),
12136                c64::new(0.473864, 0.323552),
12137            ],
12138            [
12139                c64::new(0.000000, 0.000000),
12140                c64::new(0.000000, 0.000000),
12141                c64::new(0.000000, 0.000000),
12142                c64::new(0.000000, 0.000000),
12143                c64::new(0.000000, 0.000000),
12144                c64::new(0.000000, 0.000000),
12145                c64::new(0.000000, 0.000000),
12146                c64::new(0.000000, 0.000000),
12147                c64::new(0.000000, 0.000000),
12148                c64::new(0.000000, 0.000000),
12149                c64::new(0.000000, 0.000000),
12150                c64::new(0.000000, 0.000000),
12151                c64::new(0.000000, 0.000000),
12152                c64::new(0.000000, 0.000000),
12153                c64::new(0.000000, 0.000000),
12154                c64::new(0.000000, 0.000000),
12155                c64::new(0.000000, 0.000000),
12156                c64::new(0.000000, 0.000000),
12157                c64::new(0.000000, 0.000000),
12158                c64::new(0.000000, 0.000000),
12159                c64::new(0.000000, 0.000000),
12160                c64::new(0.000000, 0.000000),
12161                c64::new(0.000000, 0.000000),
12162                c64::new(0.000000, 0.000000),
12163                c64::new(0.000000, 0.000000),
12164                c64::new(0.000000, 0.000000),
12165                c64::new(0.000000, 0.000000),
12166                c64::new(0.000000, 0.000000),
12167                c64::new(0.000000, 0.000000),
12168                c64::new(0.000000, 0.000000),
12169                c64::new(0.000000, 0.000000),
12170                c64::new(0.000000, 0.000000),
12171                c64::new(0.000000, 0.000000),
12172                c64::new(0.000000, 0.000000),
12173                c64::new(0.000000, 0.000000),
12174                c64::new(0.000000, 0.000000),
12175                c64::new(0.000000, 0.000000),
12176                c64::new(0.000000, 0.000000),
12177                c64::new(0.000000, 0.000000),
12178                c64::new(0.000000, 0.000000),
12179                c64::new(0.000000, 0.000000),
12180                c64::new(0.000000, 0.000000),
12181                c64::new(0.000000, 0.000000),
12182                c64::new(0.000000, 0.000000),
12183                c64::new(0.000000, 0.000000),
12184                c64::new(0.000000, 0.000000),
12185                c64::new(0.000000, 0.000000),
12186                c64::new(0.000000, 0.000000),
12187                c64::new(0.000000, 0.000000),
12188                c64::new(0.000000, 0.000000),
12189                c64::new(0.000000, 0.000000),
12190                c64::new(0.000000, 0.000000),
12191                c64::new(0.000000, 0.000000),
12192                c64::new(0.000000, 0.000000),
12193                c64::new(0.000000, 0.000000),
12194                c64::new(0.000000, 0.000000),
12195                c64::new(0.000000, 0.000000),
12196                c64::new(0.000000, 0.000000),
12197                c64::new(0.000000, 0.000000),
12198                c64::new(0.000000, 0.000000),
12199                c64::new(0.000000, 0.000000),
12200                c64::new(0.000000, 0.000000),
12201                c64::new(0.000000, 0.000000),
12202                c64::new(0.000000, 0.000000),
12203                c64::new(0.000000, 0.000000),
12204                c64::new(0.000000, 0.000000),
12205                c64::new(0.000000, 0.000000),
12206                c64::new(0.000000, 0.000000),
12207                c64::new(0.000000, 0.000000),
12208                c64::new(0.000000, 0.000000),
12209                c64::new(0.000000, 0.000000),
12210                c64::new(0.000000, 0.000000),
12211                c64::new(0.000000, 0.000000),
12212                c64::new(0.000000, 0.000000),
12213                c64::new(0.000000, 0.000000),
12214                c64::new(0.000000, 0.000000),
12215                c64::new(0.000000, 0.000000),
12216                c64::new(0.000000, 0.000000),
12217                c64::new(0.000000, 0.000000),
12218                c64::new(0.000000, 0.000000),
12219                c64::new(0.000000, 0.000000),
12220                c64::new(0.000000, 0.000000),
12221                c64::new(0.000000, 0.000000),
12222                c64::new(0.000000, 0.000000),
12223                c64::new(0.000000, 0.000000),
12224                c64::new(0.000000, 0.000000),
12225                c64::new(0.000000, 0.000000),
12226                c64::new(0.000000, 0.000000),
12227                c64::new(0.000000, 0.000000),
12228                c64::new(0.000000, 0.000000),
12229                c64::new(0.553993, 0.740662),
12230                c64::new(0.403079, 0.881710),
12231                c64::new(0.004518, 0.735658),
12232                c64::new(0.788280, 0.594436),
12233                c64::new(0.315087, 0.244893),
12234                c64::new(0.928472, 0.704937),
12235                c64::new(0.661671, 0.093359),
12236                c64::new(0.990800, 0.340999),
12237                c64::new(0.379550, 0.092898),
12238                c64::new(0.200277, 0.267814),
12239            ],
12240            [
12241                c64::new(0.000000, 0.000000),
12242                c64::new(0.000000, 0.000000),
12243                c64::new(0.000000, 0.000000),
12244                c64::new(0.000000, 0.000000),
12245                c64::new(0.000000, 0.000000),
12246                c64::new(0.000000, 0.000000),
12247                c64::new(0.000000, 0.000000),
12248                c64::new(0.000000, 0.000000),
12249                c64::new(0.000000, 0.000000),
12250                c64::new(0.000000, 0.000000),
12251                c64::new(0.000000, 0.000000),
12252                c64::new(0.000000, 0.000000),
12253                c64::new(0.000000, 0.000000),
12254                c64::new(0.000000, 0.000000),
12255                c64::new(0.000000, 0.000000),
12256                c64::new(0.000000, 0.000000),
12257                c64::new(0.000000, 0.000000),
12258                c64::new(0.000000, 0.000000),
12259                c64::new(0.000000, 0.000000),
12260                c64::new(0.000000, 0.000000),
12261                c64::new(0.000000, 0.000000),
12262                c64::new(0.000000, 0.000000),
12263                c64::new(0.000000, 0.000000),
12264                c64::new(0.000000, 0.000000),
12265                c64::new(0.000000, 0.000000),
12266                c64::new(0.000000, 0.000000),
12267                c64::new(0.000000, 0.000000),
12268                c64::new(0.000000, 0.000000),
12269                c64::new(0.000000, 0.000000),
12270                c64::new(0.000000, 0.000000),
12271                c64::new(0.000000, 0.000000),
12272                c64::new(0.000000, 0.000000),
12273                c64::new(0.000000, 0.000000),
12274                c64::new(0.000000, 0.000000),
12275                c64::new(0.000000, 0.000000),
12276                c64::new(0.000000, 0.000000),
12277                c64::new(0.000000, 0.000000),
12278                c64::new(0.000000, 0.000000),
12279                c64::new(0.000000, 0.000000),
12280                c64::new(0.000000, 0.000000),
12281                c64::new(0.000000, 0.000000),
12282                c64::new(0.000000, 0.000000),
12283                c64::new(0.000000, 0.000000),
12284                c64::new(0.000000, 0.000000),
12285                c64::new(0.000000, 0.000000),
12286                c64::new(0.000000, 0.000000),
12287                c64::new(0.000000, 0.000000),
12288                c64::new(0.000000, 0.000000),
12289                c64::new(0.000000, 0.000000),
12290                c64::new(0.000000, 0.000000),
12291                c64::new(0.000000, 0.000000),
12292                c64::new(0.000000, 0.000000),
12293                c64::new(0.000000, 0.000000),
12294                c64::new(0.000000, 0.000000),
12295                c64::new(0.000000, 0.000000),
12296                c64::new(0.000000, 0.000000),
12297                c64::new(0.000000, 0.000000),
12298                c64::new(0.000000, 0.000000),
12299                c64::new(0.000000, 0.000000),
12300                c64::new(0.000000, 0.000000),
12301                c64::new(0.000000, 0.000000),
12302                c64::new(0.000000, 0.000000),
12303                c64::new(0.000000, 0.000000),
12304                c64::new(0.000000, 0.000000),
12305                c64::new(0.000000, 0.000000),
12306                c64::new(0.000000, 0.000000),
12307                c64::new(0.000000, 0.000000),
12308                c64::new(0.000000, 0.000000),
12309                c64::new(0.000000, 0.000000),
12310                c64::new(0.000000, 0.000000),
12311                c64::new(0.000000, 0.000000),
12312                c64::new(0.000000, 0.000000),
12313                c64::new(0.000000, 0.000000),
12314                c64::new(0.000000, 0.000000),
12315                c64::new(0.000000, 0.000000),
12316                c64::new(0.000000, 0.000000),
12317                c64::new(0.000000, 0.000000),
12318                c64::new(0.000000, 0.000000),
12319                c64::new(0.000000, 0.000000),
12320                c64::new(0.000000, 0.000000),
12321                c64::new(0.000000, 0.000000),
12322                c64::new(0.000000, 0.000000),
12323                c64::new(0.000000, 0.000000),
12324                c64::new(0.000000, 0.000000),
12325                c64::new(0.000000, 0.000000),
12326                c64::new(0.000000, 0.000000),
12327                c64::new(0.000000, 0.000000),
12328                c64::new(0.000000, 0.000000),
12329                c64::new(0.000000, 0.000000),
12330                c64::new(0.000000, 0.000000),
12331                c64::new(0.000000, 0.000000),
12332                c64::new(0.070966, 0.101361),
12333                c64::new(0.025529, 0.604415),
12334                c64::new(0.419968, 0.636520),
12335                c64::new(0.186913, 0.557707),
12336                c64::new(0.825992, 0.520800),
12337                c64::new(0.583048, 0.054066),
12338                c64::new(0.496266, 0.328172),
12339                c64::new(0.173648, 0.966839),
12340                c64::new(0.558996, 0.879698),
12341            ],
12342            [
12343                c64::new(0.000000, 0.000000),
12344                c64::new(0.000000, 0.000000),
12345                c64::new(0.000000, 0.000000),
12346                c64::new(0.000000, 0.000000),
12347                c64::new(0.000000, 0.000000),
12348                c64::new(0.000000, 0.000000),
12349                c64::new(0.000000, 0.000000),
12350                c64::new(0.000000, 0.000000),
12351                c64::new(0.000000, 0.000000),
12352                c64::new(0.000000, 0.000000),
12353                c64::new(0.000000, 0.000000),
12354                c64::new(0.000000, 0.000000),
12355                c64::new(0.000000, 0.000000),
12356                c64::new(0.000000, 0.000000),
12357                c64::new(0.000000, 0.000000),
12358                c64::new(0.000000, 0.000000),
12359                c64::new(0.000000, 0.000000),
12360                c64::new(0.000000, 0.000000),
12361                c64::new(0.000000, 0.000000),
12362                c64::new(0.000000, 0.000000),
12363                c64::new(0.000000, 0.000000),
12364                c64::new(0.000000, 0.000000),
12365                c64::new(0.000000, 0.000000),
12366                c64::new(0.000000, 0.000000),
12367                c64::new(0.000000, 0.000000),
12368                c64::new(0.000000, 0.000000),
12369                c64::new(0.000000, 0.000000),
12370                c64::new(0.000000, 0.000000),
12371                c64::new(0.000000, 0.000000),
12372                c64::new(0.000000, 0.000000),
12373                c64::new(0.000000, 0.000000),
12374                c64::new(0.000000, 0.000000),
12375                c64::new(0.000000, 0.000000),
12376                c64::new(0.000000, 0.000000),
12377                c64::new(0.000000, 0.000000),
12378                c64::new(0.000000, 0.000000),
12379                c64::new(0.000000, 0.000000),
12380                c64::new(0.000000, 0.000000),
12381                c64::new(0.000000, 0.000000),
12382                c64::new(0.000000, 0.000000),
12383                c64::new(0.000000, 0.000000),
12384                c64::new(0.000000, 0.000000),
12385                c64::new(0.000000, 0.000000),
12386                c64::new(0.000000, 0.000000),
12387                c64::new(0.000000, 0.000000),
12388                c64::new(0.000000, 0.000000),
12389                c64::new(0.000000, 0.000000),
12390                c64::new(0.000000, 0.000000),
12391                c64::new(0.000000, 0.000000),
12392                c64::new(0.000000, 0.000000),
12393                c64::new(0.000000, 0.000000),
12394                c64::new(0.000000, 0.000000),
12395                c64::new(0.000000, 0.000000),
12396                c64::new(0.000000, 0.000000),
12397                c64::new(0.000000, 0.000000),
12398                c64::new(0.000000, 0.000000),
12399                c64::new(0.000000, 0.000000),
12400                c64::new(0.000000, 0.000000),
12401                c64::new(0.000000, 0.000000),
12402                c64::new(0.000000, 0.000000),
12403                c64::new(0.000000, 0.000000),
12404                c64::new(0.000000, 0.000000),
12405                c64::new(0.000000, 0.000000),
12406                c64::new(0.000000, 0.000000),
12407                c64::new(0.000000, 0.000000),
12408                c64::new(0.000000, 0.000000),
12409                c64::new(0.000000, 0.000000),
12410                c64::new(0.000000, 0.000000),
12411                c64::new(0.000000, 0.000000),
12412                c64::new(0.000000, 0.000000),
12413                c64::new(0.000000, 0.000000),
12414                c64::new(0.000000, 0.000000),
12415                c64::new(0.000000, 0.000000),
12416                c64::new(0.000000, 0.000000),
12417                c64::new(0.000000, 0.000000),
12418                c64::new(0.000000, 0.000000),
12419                c64::new(0.000000, 0.000000),
12420                c64::new(0.000000, 0.000000),
12421                c64::new(0.000000, 0.000000),
12422                c64::new(0.000000, 0.000000),
12423                c64::new(0.000000, 0.000000),
12424                c64::new(0.000000, 0.000000),
12425                c64::new(0.000000, 0.000000),
12426                c64::new(0.000000, 0.000000),
12427                c64::new(0.000000, 0.000000),
12428                c64::new(0.000000, 0.000000),
12429                c64::new(0.000000, 0.000000),
12430                c64::new(0.000000, 0.000000),
12431                c64::new(0.000000, 0.000000),
12432                c64::new(0.000000, 0.000000),
12433                c64::new(0.000000, 0.000000),
12434                c64::new(0.000000, 0.000000),
12435                c64::new(0.972306, 0.356104),
12436                c64::new(0.036298, 0.759947),
12437                c64::new(0.922970, 0.971384),
12438                c64::new(0.731822, 0.457290),
12439                c64::new(0.880327, 0.811134),
12440                c64::new(0.451752, 0.046667),
12441                c64::new(0.561549, 0.995209),
12442                c64::new(0.069626, 0.012071),
12443            ],
12444            [
12445                c64::new(0.000000, 0.000000),
12446                c64::new(0.000000, 0.000000),
12447                c64::new(0.000000, 0.000000),
12448                c64::new(0.000000, 0.000000),
12449                c64::new(0.000000, 0.000000),
12450                c64::new(0.000000, 0.000000),
12451                c64::new(0.000000, 0.000000),
12452                c64::new(0.000000, 0.000000),
12453                c64::new(0.000000, 0.000000),
12454                c64::new(0.000000, 0.000000),
12455                c64::new(0.000000, 0.000000),
12456                c64::new(0.000000, 0.000000),
12457                c64::new(0.000000, 0.000000),
12458                c64::new(0.000000, 0.000000),
12459                c64::new(0.000000, 0.000000),
12460                c64::new(0.000000, 0.000000),
12461                c64::new(0.000000, 0.000000),
12462                c64::new(0.000000, 0.000000),
12463                c64::new(0.000000, 0.000000),
12464                c64::new(0.000000, 0.000000),
12465                c64::new(0.000000, 0.000000),
12466                c64::new(0.000000, 0.000000),
12467                c64::new(0.000000, 0.000000),
12468                c64::new(0.000000, 0.000000),
12469                c64::new(0.000000, 0.000000),
12470                c64::new(0.000000, 0.000000),
12471                c64::new(0.000000, 0.000000),
12472                c64::new(0.000000, 0.000000),
12473                c64::new(0.000000, 0.000000),
12474                c64::new(0.000000, 0.000000),
12475                c64::new(0.000000, 0.000000),
12476                c64::new(0.000000, 0.000000),
12477                c64::new(0.000000, 0.000000),
12478                c64::new(0.000000, 0.000000),
12479                c64::new(0.000000, 0.000000),
12480                c64::new(0.000000, 0.000000),
12481                c64::new(0.000000, 0.000000),
12482                c64::new(0.000000, 0.000000),
12483                c64::new(0.000000, 0.000000),
12484                c64::new(0.000000, 0.000000),
12485                c64::new(0.000000, 0.000000),
12486                c64::new(0.000000, 0.000000),
12487                c64::new(0.000000, 0.000000),
12488                c64::new(0.000000, 0.000000),
12489                c64::new(0.000000, 0.000000),
12490                c64::new(0.000000, 0.000000),
12491                c64::new(0.000000, 0.000000),
12492                c64::new(0.000000, 0.000000),
12493                c64::new(0.000000, 0.000000),
12494                c64::new(0.000000, 0.000000),
12495                c64::new(0.000000, 0.000000),
12496                c64::new(0.000000, 0.000000),
12497                c64::new(0.000000, 0.000000),
12498                c64::new(0.000000, 0.000000),
12499                c64::new(0.000000, 0.000000),
12500                c64::new(0.000000, 0.000000),
12501                c64::new(0.000000, 0.000000),
12502                c64::new(0.000000, 0.000000),
12503                c64::new(0.000000, 0.000000),
12504                c64::new(0.000000, 0.000000),
12505                c64::new(0.000000, 0.000000),
12506                c64::new(0.000000, 0.000000),
12507                c64::new(0.000000, 0.000000),
12508                c64::new(0.000000, 0.000000),
12509                c64::new(0.000000, 0.000000),
12510                c64::new(0.000000, 0.000000),
12511                c64::new(0.000000, 0.000000),
12512                c64::new(0.000000, 0.000000),
12513                c64::new(0.000000, 0.000000),
12514                c64::new(0.000000, 0.000000),
12515                c64::new(0.000000, 0.000000),
12516                c64::new(0.000000, 0.000000),
12517                c64::new(0.000000, 0.000000),
12518                c64::new(0.000000, 0.000000),
12519                c64::new(0.000000, 0.000000),
12520                c64::new(0.000000, 0.000000),
12521                c64::new(0.000000, 0.000000),
12522                c64::new(0.000000, 0.000000),
12523                c64::new(0.000000, 0.000000),
12524                c64::new(0.000000, 0.000000),
12525                c64::new(0.000000, 0.000000),
12526                c64::new(0.000000, 0.000000),
12527                c64::new(0.000000, 0.000000),
12528                c64::new(0.000000, 0.000000),
12529                c64::new(0.000000, 0.000000),
12530                c64::new(0.000000, 0.000000),
12531                c64::new(0.000000, 0.000000),
12532                c64::new(0.000000, 0.000000),
12533                c64::new(0.000000, 0.000000),
12534                c64::new(0.000000, 0.000000),
12535                c64::new(0.000000, 0.000000),
12536                c64::new(0.000000, 0.000000),
12537                c64::new(0.000000, 0.000000),
12538                c64::new(0.402153, 0.778096),
12539                c64::new(0.702851, 0.824055),
12540                c64::new(0.446759, 0.551222),
12541                c64::new(0.001990, 0.298375),
12542                c64::new(0.688905, 0.630581),
12543                c64::new(0.255168, 0.560828),
12544                c64::new(0.939632, 0.289745),
12545            ],
12546            [
12547                c64::new(0.000000, 0.000000),
12548                c64::new(0.000000, 0.000000),
12549                c64::new(0.000000, 0.000000),
12550                c64::new(0.000000, 0.000000),
12551                c64::new(0.000000, 0.000000),
12552                c64::new(0.000000, 0.000000),
12553                c64::new(0.000000, 0.000000),
12554                c64::new(0.000000, 0.000000),
12555                c64::new(0.000000, 0.000000),
12556                c64::new(0.000000, 0.000000),
12557                c64::new(0.000000, 0.000000),
12558                c64::new(0.000000, 0.000000),
12559                c64::new(0.000000, 0.000000),
12560                c64::new(0.000000, 0.000000),
12561                c64::new(0.000000, 0.000000),
12562                c64::new(0.000000, 0.000000),
12563                c64::new(0.000000, 0.000000),
12564                c64::new(0.000000, 0.000000),
12565                c64::new(0.000000, 0.000000),
12566                c64::new(0.000000, 0.000000),
12567                c64::new(0.000000, 0.000000),
12568                c64::new(0.000000, 0.000000),
12569                c64::new(0.000000, 0.000000),
12570                c64::new(0.000000, 0.000000),
12571                c64::new(0.000000, 0.000000),
12572                c64::new(0.000000, 0.000000),
12573                c64::new(0.000000, 0.000000),
12574                c64::new(0.000000, 0.000000),
12575                c64::new(0.000000, 0.000000),
12576                c64::new(0.000000, 0.000000),
12577                c64::new(0.000000, 0.000000),
12578                c64::new(0.000000, 0.000000),
12579                c64::new(0.000000, 0.000000),
12580                c64::new(0.000000, 0.000000),
12581                c64::new(0.000000, 0.000000),
12582                c64::new(0.000000, 0.000000),
12583                c64::new(0.000000, 0.000000),
12584                c64::new(0.000000, 0.000000),
12585                c64::new(0.000000, 0.000000),
12586                c64::new(0.000000, 0.000000),
12587                c64::new(0.000000, 0.000000),
12588                c64::new(0.000000, 0.000000),
12589                c64::new(0.000000, 0.000000),
12590                c64::new(0.000000, 0.000000),
12591                c64::new(0.000000, 0.000000),
12592                c64::new(0.000000, 0.000000),
12593                c64::new(0.000000, 0.000000),
12594                c64::new(0.000000, 0.000000),
12595                c64::new(0.000000, 0.000000),
12596                c64::new(0.000000, 0.000000),
12597                c64::new(0.000000, 0.000000),
12598                c64::new(0.000000, 0.000000),
12599                c64::new(0.000000, 0.000000),
12600                c64::new(0.000000, 0.000000),
12601                c64::new(0.000000, 0.000000),
12602                c64::new(0.000000, 0.000000),
12603                c64::new(0.000000, 0.000000),
12604                c64::new(0.000000, 0.000000),
12605                c64::new(0.000000, 0.000000),
12606                c64::new(0.000000, 0.000000),
12607                c64::new(0.000000, 0.000000),
12608                c64::new(0.000000, 0.000000),
12609                c64::new(0.000000, 0.000000),
12610                c64::new(0.000000, 0.000000),
12611                c64::new(0.000000, 0.000000),
12612                c64::new(0.000000, 0.000000),
12613                c64::new(0.000000, 0.000000),
12614                c64::new(0.000000, 0.000000),
12615                c64::new(0.000000, 0.000000),
12616                c64::new(0.000000, 0.000000),
12617                c64::new(0.000000, 0.000000),
12618                c64::new(0.000000, 0.000000),
12619                c64::new(0.000000, 0.000000),
12620                c64::new(0.000000, 0.000000),
12621                c64::new(0.000000, 0.000000),
12622                c64::new(0.000000, 0.000000),
12623                c64::new(0.000000, 0.000000),
12624                c64::new(0.000000, 0.000000),
12625                c64::new(0.000000, 0.000000),
12626                c64::new(0.000000, 0.000000),
12627                c64::new(0.000000, 0.000000),
12628                c64::new(0.000000, 0.000000),
12629                c64::new(0.000000, 0.000000),
12630                c64::new(0.000000, 0.000000),
12631                c64::new(0.000000, 0.000000),
12632                c64::new(0.000000, 0.000000),
12633                c64::new(0.000000, 0.000000),
12634                c64::new(0.000000, 0.000000),
12635                c64::new(0.000000, 0.000000),
12636                c64::new(0.000000, 0.000000),
12637                c64::new(0.000000, 0.000000),
12638                c64::new(0.000000, 0.000000),
12639                c64::new(0.000000, 0.000000),
12640                c64::new(0.000000, 0.000000),
12641                c64::new(0.731109, 0.623374),
12642                c64::new(0.508514, 0.160079),
12643                c64::new(0.583604, 0.710679),
12644                c64::new(0.201480, 0.233400),
12645                c64::new(0.868764, 0.920140),
12646                c64::new(0.295113, 0.366947),
12647            ],
12648            [
12649                c64::new(0.000000, 0.000000),
12650                c64::new(0.000000, 0.000000),
12651                c64::new(0.000000, 0.000000),
12652                c64::new(0.000000, 0.000000),
12653                c64::new(0.000000, 0.000000),
12654                c64::new(0.000000, 0.000000),
12655                c64::new(0.000000, 0.000000),
12656                c64::new(0.000000, 0.000000),
12657                c64::new(0.000000, 0.000000),
12658                c64::new(0.000000, 0.000000),
12659                c64::new(0.000000, 0.000000),
12660                c64::new(0.000000, 0.000000),
12661                c64::new(0.000000, 0.000000),
12662                c64::new(0.000000, 0.000000),
12663                c64::new(0.000000, 0.000000),
12664                c64::new(0.000000, 0.000000),
12665                c64::new(0.000000, 0.000000),
12666                c64::new(0.000000, 0.000000),
12667                c64::new(0.000000, 0.000000),
12668                c64::new(0.000000, 0.000000),
12669                c64::new(0.000000, 0.000000),
12670                c64::new(0.000000, 0.000000),
12671                c64::new(0.000000, 0.000000),
12672                c64::new(0.000000, 0.000000),
12673                c64::new(0.000000, 0.000000),
12674                c64::new(0.000000, 0.000000),
12675                c64::new(0.000000, 0.000000),
12676                c64::new(0.000000, 0.000000),
12677                c64::new(0.000000, 0.000000),
12678                c64::new(0.000000, 0.000000),
12679                c64::new(0.000000, 0.000000),
12680                c64::new(0.000000, 0.000000),
12681                c64::new(0.000000, 0.000000),
12682                c64::new(0.000000, 0.000000),
12683                c64::new(0.000000, 0.000000),
12684                c64::new(0.000000, 0.000000),
12685                c64::new(0.000000, 0.000000),
12686                c64::new(0.000000, 0.000000),
12687                c64::new(0.000000, 0.000000),
12688                c64::new(0.000000, 0.000000),
12689                c64::new(0.000000, 0.000000),
12690                c64::new(0.000000, 0.000000),
12691                c64::new(0.000000, 0.000000),
12692                c64::new(0.000000, 0.000000),
12693                c64::new(0.000000, 0.000000),
12694                c64::new(0.000000, 0.000000),
12695                c64::new(0.000000, 0.000000),
12696                c64::new(0.000000, 0.000000),
12697                c64::new(0.000000, 0.000000),
12698                c64::new(0.000000, 0.000000),
12699                c64::new(0.000000, 0.000000),
12700                c64::new(0.000000, 0.000000),
12701                c64::new(0.000000, 0.000000),
12702                c64::new(0.000000, 0.000000),
12703                c64::new(0.000000, 0.000000),
12704                c64::new(0.000000, 0.000000),
12705                c64::new(0.000000, 0.000000),
12706                c64::new(0.000000, 0.000000),
12707                c64::new(0.000000, 0.000000),
12708                c64::new(0.000000, 0.000000),
12709                c64::new(0.000000, 0.000000),
12710                c64::new(0.000000, 0.000000),
12711                c64::new(0.000000, 0.000000),
12712                c64::new(0.000000, 0.000000),
12713                c64::new(0.000000, 0.000000),
12714                c64::new(0.000000, 0.000000),
12715                c64::new(0.000000, 0.000000),
12716                c64::new(0.000000, 0.000000),
12717                c64::new(0.000000, 0.000000),
12718                c64::new(0.000000, 0.000000),
12719                c64::new(0.000000, 0.000000),
12720                c64::new(0.000000, 0.000000),
12721                c64::new(0.000000, 0.000000),
12722                c64::new(0.000000, 0.000000),
12723                c64::new(0.000000, 0.000000),
12724                c64::new(0.000000, 0.000000),
12725                c64::new(0.000000, 0.000000),
12726                c64::new(0.000000, 0.000000),
12727                c64::new(0.000000, 0.000000),
12728                c64::new(0.000000, 0.000000),
12729                c64::new(0.000000, 0.000000),
12730                c64::new(0.000000, 0.000000),
12731                c64::new(0.000000, 0.000000),
12732                c64::new(0.000000, 0.000000),
12733                c64::new(0.000000, 0.000000),
12734                c64::new(0.000000, 0.000000),
12735                c64::new(0.000000, 0.000000),
12736                c64::new(0.000000, 0.000000),
12737                c64::new(0.000000, 0.000000),
12738                c64::new(0.000000, 0.000000),
12739                c64::new(0.000000, 0.000000),
12740                c64::new(0.000000, 0.000000),
12741                c64::new(0.000000, 0.000000),
12742                c64::new(0.000000, 0.000000),
12743                c64::new(0.000000, 0.000000),
12744                c64::new(0.606475, 0.104967),
12745                c64::new(0.264909, 0.750597),
12746                c64::new(0.591990, 0.000629),
12747                c64::new(0.004423, 0.995822),
12748                c64::new(0.890303, 0.247400),
12749            ],
12750            [
12751                c64::new(0.000000, 0.000000),
12752                c64::new(0.000000, 0.000000),
12753                c64::new(0.000000, 0.000000),
12754                c64::new(0.000000, 0.000000),
12755                c64::new(0.000000, 0.000000),
12756                c64::new(0.000000, 0.000000),
12757                c64::new(0.000000, 0.000000),
12758                c64::new(0.000000, 0.000000),
12759                c64::new(0.000000, 0.000000),
12760                c64::new(0.000000, 0.000000),
12761                c64::new(0.000000, 0.000000),
12762                c64::new(0.000000, 0.000000),
12763                c64::new(0.000000, 0.000000),
12764                c64::new(0.000000, 0.000000),
12765                c64::new(0.000000, 0.000000),
12766                c64::new(0.000000, 0.000000),
12767                c64::new(0.000000, 0.000000),
12768                c64::new(0.000000, 0.000000),
12769                c64::new(0.000000, 0.000000),
12770                c64::new(0.000000, 0.000000),
12771                c64::new(0.000000, 0.000000),
12772                c64::new(0.000000, 0.000000),
12773                c64::new(0.000000, 0.000000),
12774                c64::new(0.000000, 0.000000),
12775                c64::new(0.000000, 0.000000),
12776                c64::new(0.000000, 0.000000),
12777                c64::new(0.000000, 0.000000),
12778                c64::new(0.000000, 0.000000),
12779                c64::new(0.000000, 0.000000),
12780                c64::new(0.000000, 0.000000),
12781                c64::new(0.000000, 0.000000),
12782                c64::new(0.000000, 0.000000),
12783                c64::new(0.000000, 0.000000),
12784                c64::new(0.000000, 0.000000),
12785                c64::new(0.000000, 0.000000),
12786                c64::new(0.000000, 0.000000),
12787                c64::new(0.000000, 0.000000),
12788                c64::new(0.000000, 0.000000),
12789                c64::new(0.000000, 0.000000),
12790                c64::new(0.000000, 0.000000),
12791                c64::new(0.000000, 0.000000),
12792                c64::new(0.000000, 0.000000),
12793                c64::new(0.000000, 0.000000),
12794                c64::new(0.000000, 0.000000),
12795                c64::new(0.000000, 0.000000),
12796                c64::new(0.000000, 0.000000),
12797                c64::new(0.000000, 0.000000),
12798                c64::new(0.000000, 0.000000),
12799                c64::new(0.000000, 0.000000),
12800                c64::new(0.000000, 0.000000),
12801                c64::new(0.000000, 0.000000),
12802                c64::new(0.000000, 0.000000),
12803                c64::new(0.000000, 0.000000),
12804                c64::new(0.000000, 0.000000),
12805                c64::new(0.000000, 0.000000),
12806                c64::new(0.000000, 0.000000),
12807                c64::new(0.000000, 0.000000),
12808                c64::new(0.000000, 0.000000),
12809                c64::new(0.000000, 0.000000),
12810                c64::new(0.000000, 0.000000),
12811                c64::new(0.000000, 0.000000),
12812                c64::new(0.000000, 0.000000),
12813                c64::new(0.000000, 0.000000),
12814                c64::new(0.000000, 0.000000),
12815                c64::new(0.000000, 0.000000),
12816                c64::new(0.000000, 0.000000),
12817                c64::new(0.000000, 0.000000),
12818                c64::new(0.000000, 0.000000),
12819                c64::new(0.000000, 0.000000),
12820                c64::new(0.000000, 0.000000),
12821                c64::new(0.000000, 0.000000),
12822                c64::new(0.000000, 0.000000),
12823                c64::new(0.000000, 0.000000),
12824                c64::new(0.000000, 0.000000),
12825                c64::new(0.000000, 0.000000),
12826                c64::new(0.000000, 0.000000),
12827                c64::new(0.000000, 0.000000),
12828                c64::new(0.000000, 0.000000),
12829                c64::new(0.000000, 0.000000),
12830                c64::new(0.000000, 0.000000),
12831                c64::new(0.000000, 0.000000),
12832                c64::new(0.000000, 0.000000),
12833                c64::new(0.000000, 0.000000),
12834                c64::new(0.000000, 0.000000),
12835                c64::new(0.000000, 0.000000),
12836                c64::new(0.000000, 0.000000),
12837                c64::new(0.000000, 0.000000),
12838                c64::new(0.000000, 0.000000),
12839                c64::new(0.000000, 0.000000),
12840                c64::new(0.000000, 0.000000),
12841                c64::new(0.000000, 0.000000),
12842                c64::new(0.000000, 0.000000),
12843                c64::new(0.000000, 0.000000),
12844                c64::new(0.000000, 0.000000),
12845                c64::new(0.000000, 0.000000),
12846                c64::new(0.000000, 0.000000),
12847                c64::new(0.554399, 0.010273),
12848                c64::new(0.543164, 0.208611),
12849                c64::new(0.977420, 0.224906),
12850                c64::new(0.467072, 0.164433),
12851            ],
12852            [
12853                c64::new(0.000000, 0.000000),
12854                c64::new(0.000000, 0.000000),
12855                c64::new(0.000000, 0.000000),
12856                c64::new(0.000000, 0.000000),
12857                c64::new(0.000000, 0.000000),
12858                c64::new(0.000000, 0.000000),
12859                c64::new(0.000000, 0.000000),
12860                c64::new(0.000000, 0.000000),
12861                c64::new(0.000000, 0.000000),
12862                c64::new(0.000000, 0.000000),
12863                c64::new(0.000000, 0.000000),
12864                c64::new(0.000000, 0.000000),
12865                c64::new(0.000000, 0.000000),
12866                c64::new(0.000000, 0.000000),
12867                c64::new(0.000000, 0.000000),
12868                c64::new(0.000000, 0.000000),
12869                c64::new(0.000000, 0.000000),
12870                c64::new(0.000000, 0.000000),
12871                c64::new(0.000000, 0.000000),
12872                c64::new(0.000000, 0.000000),
12873                c64::new(0.000000, 0.000000),
12874                c64::new(0.000000, 0.000000),
12875                c64::new(0.000000, 0.000000),
12876                c64::new(0.000000, 0.000000),
12877                c64::new(0.000000, 0.000000),
12878                c64::new(0.000000, 0.000000),
12879                c64::new(0.000000, 0.000000),
12880                c64::new(0.000000, 0.000000),
12881                c64::new(0.000000, 0.000000),
12882                c64::new(0.000000, 0.000000),
12883                c64::new(0.000000, 0.000000),
12884                c64::new(0.000000, 0.000000),
12885                c64::new(0.000000, 0.000000),
12886                c64::new(0.000000, 0.000000),
12887                c64::new(0.000000, 0.000000),
12888                c64::new(0.000000, 0.000000),
12889                c64::new(0.000000, 0.000000),
12890                c64::new(0.000000, 0.000000),
12891                c64::new(0.000000, 0.000000),
12892                c64::new(0.000000, 0.000000),
12893                c64::new(0.000000, 0.000000),
12894                c64::new(0.000000, 0.000000),
12895                c64::new(0.000000, 0.000000),
12896                c64::new(0.000000, 0.000000),
12897                c64::new(0.000000, 0.000000),
12898                c64::new(0.000000, 0.000000),
12899                c64::new(0.000000, 0.000000),
12900                c64::new(0.000000, 0.000000),
12901                c64::new(0.000000, 0.000000),
12902                c64::new(0.000000, 0.000000),
12903                c64::new(0.000000, 0.000000),
12904                c64::new(0.000000, 0.000000),
12905                c64::new(0.000000, 0.000000),
12906                c64::new(0.000000, 0.000000),
12907                c64::new(0.000000, 0.000000),
12908                c64::new(0.000000, 0.000000),
12909                c64::new(0.000000, 0.000000),
12910                c64::new(0.000000, 0.000000),
12911                c64::new(0.000000, 0.000000),
12912                c64::new(0.000000, 0.000000),
12913                c64::new(0.000000, 0.000000),
12914                c64::new(0.000000, 0.000000),
12915                c64::new(0.000000, 0.000000),
12916                c64::new(0.000000, 0.000000),
12917                c64::new(0.000000, 0.000000),
12918                c64::new(0.000000, 0.000000),
12919                c64::new(0.000000, 0.000000),
12920                c64::new(0.000000, 0.000000),
12921                c64::new(0.000000, 0.000000),
12922                c64::new(0.000000, 0.000000),
12923                c64::new(0.000000, 0.000000),
12924                c64::new(0.000000, 0.000000),
12925                c64::new(0.000000, 0.000000),
12926                c64::new(0.000000, 0.000000),
12927                c64::new(0.000000, 0.000000),
12928                c64::new(0.000000, 0.000000),
12929                c64::new(0.000000, 0.000000),
12930                c64::new(0.000000, 0.000000),
12931                c64::new(0.000000, 0.000000),
12932                c64::new(0.000000, 0.000000),
12933                c64::new(0.000000, 0.000000),
12934                c64::new(0.000000, 0.000000),
12935                c64::new(0.000000, 0.000000),
12936                c64::new(0.000000, 0.000000),
12937                c64::new(0.000000, 0.000000),
12938                c64::new(0.000000, 0.000000),
12939                c64::new(0.000000, 0.000000),
12940                c64::new(0.000000, 0.000000),
12941                c64::new(0.000000, 0.000000),
12942                c64::new(0.000000, 0.000000),
12943                c64::new(0.000000, 0.000000),
12944                c64::new(0.000000, 0.000000),
12945                c64::new(0.000000, 0.000000),
12946                c64::new(0.000000, 0.000000),
12947                c64::new(0.000000, 0.000000),
12948                c64::new(0.000000, 0.000000),
12949                c64::new(0.000000, 0.000000),
12950                c64::new(0.282165, 0.831008),
12951                c64::new(0.050223, 0.674817),
12952                c64::new(0.944237, 0.737266),
12953            ],
12954            [
12955                c64::new(0.000000, 0.000000),
12956                c64::new(0.000000, 0.000000),
12957                c64::new(0.000000, 0.000000),
12958                c64::new(0.000000, 0.000000),
12959                c64::new(0.000000, 0.000000),
12960                c64::new(0.000000, 0.000000),
12961                c64::new(0.000000, 0.000000),
12962                c64::new(0.000000, 0.000000),
12963                c64::new(0.000000, 0.000000),
12964                c64::new(0.000000, 0.000000),
12965                c64::new(0.000000, 0.000000),
12966                c64::new(0.000000, 0.000000),
12967                c64::new(0.000000, 0.000000),
12968                c64::new(0.000000, 0.000000),
12969                c64::new(0.000000, 0.000000),
12970                c64::new(0.000000, 0.000000),
12971                c64::new(0.000000, 0.000000),
12972                c64::new(0.000000, 0.000000),
12973                c64::new(0.000000, 0.000000),
12974                c64::new(0.000000, 0.000000),
12975                c64::new(0.000000, 0.000000),
12976                c64::new(0.000000, 0.000000),
12977                c64::new(0.000000, 0.000000),
12978                c64::new(0.000000, 0.000000),
12979                c64::new(0.000000, 0.000000),
12980                c64::new(0.000000, 0.000000),
12981                c64::new(0.000000, 0.000000),
12982                c64::new(0.000000, 0.000000),
12983                c64::new(0.000000, 0.000000),
12984                c64::new(0.000000, 0.000000),
12985                c64::new(0.000000, 0.000000),
12986                c64::new(0.000000, 0.000000),
12987                c64::new(0.000000, 0.000000),
12988                c64::new(0.000000, 0.000000),
12989                c64::new(0.000000, 0.000000),
12990                c64::new(0.000000, 0.000000),
12991                c64::new(0.000000, 0.000000),
12992                c64::new(0.000000, 0.000000),
12993                c64::new(0.000000, 0.000000),
12994                c64::new(0.000000, 0.000000),
12995                c64::new(0.000000, 0.000000),
12996                c64::new(0.000000, 0.000000),
12997                c64::new(0.000000, 0.000000),
12998                c64::new(0.000000, 0.000000),
12999                c64::new(0.000000, 0.000000),
13000                c64::new(0.000000, 0.000000),
13001                c64::new(0.000000, 0.000000),
13002                c64::new(0.000000, 0.000000),
13003                c64::new(0.000000, 0.000000),
13004                c64::new(0.000000, 0.000000),
13005                c64::new(0.000000, 0.000000),
13006                c64::new(0.000000, 0.000000),
13007                c64::new(0.000000, 0.000000),
13008                c64::new(0.000000, 0.000000),
13009                c64::new(0.000000, 0.000000),
13010                c64::new(0.000000, 0.000000),
13011                c64::new(0.000000, 0.000000),
13012                c64::new(0.000000, 0.000000),
13013                c64::new(0.000000, 0.000000),
13014                c64::new(0.000000, 0.000000),
13015                c64::new(0.000000, 0.000000),
13016                c64::new(0.000000, 0.000000),
13017                c64::new(0.000000, 0.000000),
13018                c64::new(0.000000, 0.000000),
13019                c64::new(0.000000, 0.000000),
13020                c64::new(0.000000, 0.000000),
13021                c64::new(0.000000, 0.000000),
13022                c64::new(0.000000, 0.000000),
13023                c64::new(0.000000, 0.000000),
13024                c64::new(0.000000, 0.000000),
13025                c64::new(0.000000, 0.000000),
13026                c64::new(0.000000, 0.000000),
13027                c64::new(0.000000, 0.000000),
13028                c64::new(0.000000, 0.000000),
13029                c64::new(0.000000, 0.000000),
13030                c64::new(0.000000, 0.000000),
13031                c64::new(0.000000, 0.000000),
13032                c64::new(0.000000, 0.000000),
13033                c64::new(0.000000, 0.000000),
13034                c64::new(0.000000, 0.000000),
13035                c64::new(0.000000, 0.000000),
13036                c64::new(0.000000, 0.000000),
13037                c64::new(0.000000, 0.000000),
13038                c64::new(0.000000, 0.000000),
13039                c64::new(0.000000, 0.000000),
13040                c64::new(0.000000, 0.000000),
13041                c64::new(0.000000, 0.000000),
13042                c64::new(0.000000, 0.000000),
13043                c64::new(0.000000, 0.000000),
13044                c64::new(0.000000, 0.000000),
13045                c64::new(0.000000, 0.000000),
13046                c64::new(0.000000, 0.000000),
13047                c64::new(0.000000, 0.000000),
13048                c64::new(0.000000, 0.000000),
13049                c64::new(0.000000, 0.000000),
13050                c64::new(0.000000, 0.000000),
13051                c64::new(0.000000, 0.000000),
13052                c64::new(0.000000, 0.000000),
13053                c64::new(0.329299, 0.333973),
13054                c64::new(0.626537, 0.651087),
13055            ],
13056        ];
13057        let h = Mat::from_fn(n, n, |i, j| h[i][j]);
13058
13059        let mut q = Mat::from_fn(n, n, |i, j| {
13060            if i == j {
13061                c64::faer_one()
13062            } else {
13063                c64::faer_zero()
13064            }
13065        });
13066        let mut w = Mat::zeros(n, 1);
13067        let mut t = h.clone();
13068        let params = EvdParams {
13069            recommended_shift_count: None,
13070            recommended_deflation_window: None,
13071            blocking_threshold: Some(15),
13072            nibble_threshold: Some(14),
13073        };
13074        let (_, n_aed, n_sweep) = multishift_qr(
13075            true,
13076            t.as_mut(),
13077            Some(q.as_mut()),
13078            w.as_mut(),
13079            0,
13080            n,
13081            f64::EPSILON,
13082            f64::MIN_POSITIVE,
13083            Parallelism::None,
13084            make_stack!(multishift_qr_req::<c64>(
13085                n,
13086                n,
13087                true,
13088                true,
13089                Parallelism::None,
13090                params,
13091            )),
13092            params,
13093        );
13094        // asserts to ensure that we don't mess up the shift computation and slow down convergence
13095        assert!(n_aed <= 50);
13096        assert!(n_sweep <= 25);
13097
13098        for j in 0..n {
13099            for i in j + 1..n {
13100                t.write(i, j, c64::faer_zero());
13101            }
13102        }
13103
13104        let h_reconstructed = &q * &t * q.adjoint();
13105
13106        for i in 0..n {
13107            for j in 0..n {
13108                assert_approx_eq!(h_reconstructed.read(i, j), h.read(i, j));
13109            }
13110        }
13111    }
13112
13113    #[test]
13114    fn test_gh_84_cplx_20x20() {
13115        let a = mat![
13116            [
13117                0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
13118                0.0, 0.0, 0.0, 0.0,
13119            ],
13120            [
13121                -1.0,
13122                0.0,
13123                1.414213562373095,
13124                0.0,
13125                4.2913523532056946e-17,
13126                0.0,
13127                -1.044653549357173e-17,
13128                0.0,
13129                -3.1114138757927777e-18,
13130                0.0,
13131                -1.7041915655062705e-17,
13132                0.0,
13133                -1.5407439555097887e-33,
13134                0.0,
13135                0.0,
13136                0.0,
13137                0.0,
13138                0.0,
13139                0.0,
13140                0.0,
13141            ],
13142            [
13143                0.0,
13144                1.4142135623730951,
13145                0.0,
13146                1.8708286933869704,
13147                0.0,
13148                5.584290580070408e-17,
13149                0.0,
13150                4.247123568135012e-17,
13151                0.0,
13152                3.383773620463798e-17,
13153                0.0,
13154                -7.996931848726948e-17,
13155                0.0,
13156                2.137243672031505e-16,
13157                -2.1697413347872967e-16,
13158                2.1669070851885488e-16,
13159                8.793731080691344e-17,
13160                -6.366867306877532e-17,
13161                -2.166907085188549e-16,
13162                -1.5209416587779695e-16,
13163            ],
13164            [
13165                0.0,
13166                0.0,
13167                1.8708286933869707,
13168                0.0,
13169                0.8864052604279185,
13170                0.0,
13171                -5.4482028175548746e-18,
13172                0.0,
13173                -1.6227019814468362e-18,
13174                0.0,
13175                -8.887904793467559e-18,
13176                0.0,
13177                -1.5407439555097887e-33,
13178                0.0,
13179                0.0,
13180                0.0,
13181                0.0,
13182                0.0,
13183                0.0,
13184                0.0,
13185            ],
13186            [
13187                0.0,
13188                0.0,
13189                0.0,
13190                0.8864052604279183,
13191                0.0,
13192                -1.780121110720045,
13193                0.0,
13194                2.4905953568839346e-17,
13195                0.0,
13196                1.9539297406873977e-17,
13197                0.0,
13198                -4.520412950660578e-17,
13199                0.0,
13200                7.136040597386633e-17,
13201                -3.3287408030765184e-17,
13202                3.9021417760079386e-17,
13203                2.050611271670174e-18,
13204                8.594289573868776e-17,
13205                -3.9021417760079386e-17,
13206                -2.225425376396652e-17,
13207            ],
13208            [
13209                0.0,
13210                0.0,
13211                0.0,
13212                0.0,
13213                -1.7801211107200454,
13214                0.0,
13215                -0.27971669721424774,
13216                0.0,
13217                1.3907420351599062e-17,
13218                0.0,
13219                7.617407843277181e-17,
13220                0.0,
13221                6.162975822039155e-33,
13222                2.413689799097554e-35,
13223                0.0,
13224                7.173100169147405e-36,
13225                2.1640125834190973e-35,
13226                1.746648713648135e-36,
13227                -7.173100169147405e-36,
13228                -2.3028287065724625e-36,
13229            ],
13230            [
13231                0.0,
13232                0.0,
13233                0.0,
13234                0.0,
13235                0.0,
13236                -0.27971669721424774,
13237                0.0,
13238                2.08179724791363,
13239                0.0,
13240                3.128025644367276e-17,
13241                0.0,
13242                1.4857837468143015e-17,
13243                3.0814879110195774e-33,
13244                -4.353679358901167e-17,
13245                1.575970043415495e-17,
13246                3.371331087010223e-17,
13247                -3.158189568582724e-17,
13248                3.363028106986343e-17,
13249                -3.371331087010223e-17,
13250                1.0436797917561959e-16,
13251            ],
13252            [
13253                0.0,
13254                0.0,
13255                0.0,
13256                0.0,
13257                0.0,
13258                0.0,
13259                2.08179724791363,
13260                0.0,
13261                -0.591353947688746,
13262                0.0,
13263                -1.6942472264780397e-16,
13264                0.0,
13265                0.0,
13266                0.0,
13267                0.0,
13268                0.0,
13269                0.0,
13270                0.0,
13271                0.0,
13272                0.0,
13273            ],
13274            [
13275                0.0,
13276                0.0,
13277                0.0,
13278                0.0,
13279                0.0,
13280                0.0,
13281                0.0,
13282                -0.5913539476887459,
13283                0.0,
13284                1.382991720854028,
13285                0.0,
13286                2.9339388813743063e-16,
13287                0.0,
13288                -2.5386000785908e-17,
13289                4.58003519909708e-17,
13290                -3.248053804275205e-17,
13291                -1.7259032483343233e-17,
13292                -6.634605605063898e-17,
13293                3.248053804275205e-17,
13294                6.644449342304512e-17,
13295            ],
13296            [
13297                0.0,
13298                0.0,
13299                0.0,
13300                0.0,
13301                0.0,
13302                0.0,
13303                0.0,
13304                0.0,
13305                1.3829917208540286,
13306                0.0,
13307                0.5110217026036908,
13308                0.0,
13309                4.2381199337456166e-17,
13310                0.0,
13311                0.0,
13312                0.0,
13313                0.0,
13314                0.0,
13315                0.0,
13316                0.0,
13317            ],
13318            [
13319                0.0,
13320                0.0,
13321                0.0,
13322                0.0,
13323                0.0,
13324                0.0,
13325                0.0,
13326                0.0,
13327                0.0,
13328                0.5110217026036906,
13329                0.0,
13330                -1.2687886196697642,
13331                0.0,
13332                -1.9866208356455852e-17,
13333                6.074934010535109e-17,
13334                -7.39350135280486e-17,
13335                1.5423322066319723e-17,
13336                -9.775009908321562e-17,
13337                7.39350135280486e-17,
13338                2.485877967834109e-16,
13339            ],
13340            [
13341                0.0,
13342                0.0,
13343                0.0,
13344                0.0,
13345                0.0,
13346                0.0,
13347                0.0,
13348                0.0,
13349                0.0,
13350                0.0,
13351                -1.2687886196697646,
13352                0.0,
13353                -1.1161328626787337e-16,
13354                0.0,
13355                0.0,
13356                0.0,
13357                0.0,
13358                0.0,
13359                0.0,
13360                0.0,
13361            ],
13362            [
13363                0.0,
13364                0.0,
13365                0.0,
13366                0.0,
13367                0.0,
13368                0.0,
13369                0.0,
13370                0.0,
13371                0.0,
13372                0.0,
13373                0.0,
13374                -4.319252649148509e-17,
13375                0.0,
13376                2.095595710655279e-17,
13377                1.2259068349524595e-18,
13378                1.2354010708239072e-17,
13379                -6.000254847480346e-18,
13380                -7.043660603033051e-18,
13381                -1.2354010708239072e-17,
13382                2.8117846829535463e-17,
13383            ],
13384            [
13385                0.0,
13386                0.0,
13387                0.0,
13388                0.0,
13389                0.0,
13390                0.0,
13391                0.0,
13392                0.0,
13393                0.0,
13394                0.0,
13395                0.0,
13396                0.0,
13397                -3.3963911681598194e-17,
13398                0.0,
13399                0.0,
13400                0.0,
13401                0.0,
13402                0.0,
13403                0.0,
13404                0.0,
13405            ],
13406            [
13407                0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
13408                0.0, 0.0, 0.0, 0.0,
13409            ],
13410            [
13411                0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
13412                0.0, 0.0, 0.0, 0.0,
13413            ],
13414            [
13415                0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
13416                0.0, 0.0, 0.0, 0.0,
13417            ],
13418            [
13419                0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
13420                0.0, 0.0, 0.0, 0.0,
13421            ],
13422            [
13423                0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
13424                0.0, 0.0, 0.0, 0.0,
13425            ],
13426            [
13427                0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
13428                0.0, 0.0, 0.0, 0.0,
13429            ],
13430        ];
13431        let mut a = zipped!(a.as_ref()).map(|unzipped!(x)| c64::new(x.read(), 0.0));
13432
13433        let mut w = Mat::zeros(20, 1);
13434        lahqr(
13435            false,
13436            a.as_mut(),
13437            None,
13438            w.as_mut(),
13439            0,
13440            20,
13441            f64::EPSILON,
13442            f64::MIN_POSITIVE,
13443        );
13444    }
13445}