From 1f31183be48fe86d3dbb3015f20d5418903ff759 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Thu, 3 Feb 2022 12:11:33 +0100 Subject: [PATCH 001/111] init compute_factor_ee --- org/qmckl_jastrow.org | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index c70ef9f..a713a5e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1642,6 +1642,22 @@ integer function qmckl_compute_factor_ee_f(context, walk_num, elec_num, up_num, end function qmckl_compute_factor_ee_f #+end_src +#+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_factor_ee ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* asymp_jasb, + double* const factor_ee ) { + + + } +#+end_src + #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: From b0bfb3157c7ae9a34943fd9a8ce8b0d302c3a426 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Thu, 3 Feb 2022 17:10:31 +0100 Subject: [PATCH 002/111] translation completed; error at accessing ee_distance_rescaled --- org/qmckl_jastrow.org | 91 +++++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index a713a5e..0f63118 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1642,7 +1642,7 @@ integer function qmckl_compute_factor_ee_f(context, walk_num, elec_num, up_num, end function qmckl_compute_factor_ee_f #+end_src -#+begin_src c :tangle (eval h_func) :comments org +#+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_factor_ee ( const qmckl_context context, const int64_t walk_num, @@ -1654,8 +1654,56 @@ end function qmckl_compute_factor_ee_f const double* asymp_jasb, double* const factor_ee ) { + int64_t ipar; // can we use a smaller integer? + double pow_ser, x, spin_fact, power_ser; + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (bord_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + for (int nw = 0; nw < walk_num; ++nw) { + factor_ee[nw] = 0.0; // put init array here. + for (int j = 0; j < elec_num; ++j ) { + for (int i = 0; i < j; ++i) { + x = ee_distance_rescaled[nw][i][j]; + power_ser = 0.0; + spin_fact = 1.0; + ipar = 0; // index of asymp_jasb + + for (int p = 1; p < bord_num; ++p) { + x = x * ee_distance_rescaled[nw][i][j]; + power_ser = power_ser + bord_vector[p + 1] * x; + } + + if(j <= up_num || i > up_num) { + spin_fact = 0.5; + ipar = 1; + } + + factor_ee[nw] = factor_ee[nw] + spin_fact * bord_vector[0] * \ + ee_distance_rescaled[nw][i][j] / \ + (1.0 + bord_vector[1] * \ + ee_distance_rescaled[nw][i][j]) \ + -asymp_jasb[ipar] + power_ser; + + } } + } + + return QMCKL_SUCCESS; +} #+end_src #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -1677,47 +1725,6 @@ end function qmckl_compute_factor_ee_f #+CALL: generate_c_interface(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_factor_ee & - (context, & - walk_num, & - elec_num, & - up_num, & - bord_num, & - bord_vector, & - ee_distance_rescaled, & - asymp_jasb, & - factor_ee) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: up_num - integer (c_int64_t) , intent(in) , value :: bord_num - real (c_double ) , intent(in) :: bord_vector(bord_num + 1) - real (c_double ) , intent(in) :: ee_distance_rescaled(elec_num,elec_num,walk_num) - real (c_double ) , intent(in) :: asymp_jasb(2) - real (c_double ) , intent(out) :: factor_ee(walk_num) - - integer(c_int32_t), external :: qmckl_compute_factor_ee_f - info = qmckl_compute_factor_ee_f & - (context, & - walk_num, & - elec_num, & - up_num, & - bord_num, & - bord_vector, & - ee_distance_rescaled, & - asymp_jasb, & - factor_ee) - - end function qmckl_compute_factor_ee - #+end_src *** Test #+begin_src python :results output :exports none :noweb yes From 81d55b4189daf7b5ca22444eb03b598e13cece14 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Thu, 3 Feb 2022 18:27:33 +0100 Subject: [PATCH 003/111] ee_distance_rescaled fixed;assert fails due to number mismatch --- org/qmckl_jastrow.org | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 0f63118..f47139f 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1654,7 +1654,7 @@ end function qmckl_compute_factor_ee_f const double* asymp_jasb, double* const factor_ee ) { - int64_t ipar; // can we use a smaller integer? + int ipar; // can we use a smaller integer? double pow_ser, x, spin_fact, power_ser; if (context == QMCKL_NULL_CONTEXT) { @@ -1677,13 +1677,13 @@ end function qmckl_compute_factor_ee_f factor_ee[nw] = 0.0; // put init array here. for (int j = 0; j < elec_num; ++j ) { for (int i = 0; i < j; ++i) { - x = ee_distance_rescaled[nw][i][j]; + x = ee_distance_rescaled[j + elec_num*(i + elec_num*nw)]; power_ser = 0.0; spin_fact = 1.0; ipar = 0; // index of asymp_jasb for (int p = 1; p < bord_num; ++p) { - x = x * ee_distance_rescaled[nw][i][j]; + x = x * ee_distance_rescaled[j + elec_num*(i + elec_num*nw)]; power_ser = power_ser + bord_vector[p + 1] * x; } @@ -1693,9 +1693,9 @@ end function qmckl_compute_factor_ee_f } factor_ee[nw] = factor_ee[nw] + spin_fact * bord_vector[0] * \ - ee_distance_rescaled[nw][i][j] / \ + ee_distance_rescaled[j + elec_num*(i + elec_num*nw)] / \ (1.0 + bord_vector[1] * \ - ee_distance_rescaled[nw][i][j]) \ + ee_distance_rescaled[j + elec_num*(i + elec_num*nw)]) \ -asymp_jasb[ipar] + power_ser; } From b8b2997382dd883aa80d330e6a2aefa2d5c323a1 Mon Sep 17 00:00:00 2001 From: v1j4y Date: Fri, 4 Feb 2022 17:13:15 +0100 Subject: [PATCH 004/111] Fixed indexing of ee_distance_rescaled. --- org/qmckl_jastrow.org | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index fd2c8a5..57628bf 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1624,7 +1624,7 @@ end function qmckl_compute_factor_ee_f double* const factor_ee ) { int ipar; // can we use a smaller integer? - double pow_ser, x, spin_fact, power_ser; + double pow_ser, x, x1, spin_fact, power_ser; if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; @@ -1646,13 +1646,14 @@ end function qmckl_compute_factor_ee_f factor_ee[nw] = 0.0; // put init array here. for (int j = 0; j < elec_num; ++j ) { for (int i = 0; i < j; ++i) { - x = ee_distance_rescaled[j + elec_num*(i + elec_num*nw)]; + x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; + x1 = x; power_ser = 0.0; spin_fact = 1.0; ipar = 0; // index of asymp_jasb for (int p = 1; p < bord_num; ++p) { - x = x * ee_distance_rescaled[j + elec_num*(i + elec_num*nw)]; + x = x * x1; power_ser = power_ser + bord_vector[p + 1] * x; } @@ -1662,9 +1663,9 @@ end function qmckl_compute_factor_ee_f } factor_ee[nw] = factor_ee[nw] + spin_fact * bord_vector[0] * \ - ee_distance_rescaled[j + elec_num*(i + elec_num*nw)] / \ + x1 / \ (1.0 + bord_vector[1] * \ - ee_distance_rescaled[j + elec_num*(i + elec_num*nw)]) \ + x1) \ -asymp_jasb[ipar] + power_ser; } From 794ee5fe8c7a55c1c888c54c6f4df6f23a01cd7f Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Mon, 7 Feb 2022 12:17:44 +0100 Subject: [PATCH 005/111] remove generate interface --- org/qmckl_jastrow.org | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 57628bf..32e2fb4 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1652,7 +1652,7 @@ end function qmckl_compute_factor_ee_f spin_fact = 1.0; ipar = 0; // index of asymp_jasb - for (int p = 1; p < bord_num; ++p) { + for (int p = 1; p <= bord_num; ++p) { x = x * x1; power_ser = power_ser + bord_vector[p + 1] * x; } @@ -1693,7 +1693,6 @@ end function qmckl_compute_factor_ee_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) *** Test From 2332007a7ce21a5ab7c978e0363a10dceb60e96e Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Mon, 7 Feb 2022 13:53:50 +0100 Subject: [PATCH 006/111] fixed qmckl_compute_factor_ee --- org/qmckl_jastrow.org | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 32e2fb4..a55d85a 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1644,20 +1644,20 @@ end function qmckl_compute_factor_ee_f for (int nw = 0; nw < walk_num; ++nw) { factor_ee[nw] = 0.0; // put init array here. - for (int j = 0; j < elec_num; ++j ) { - for (int i = 0; i < j; ++i) { + for (int i = 0; i < elec_num; ++i ) { + for (int j = 0; j < i; ++j) { x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; x1 = x; power_ser = 0.0; spin_fact = 1.0; ipar = 0; // index of asymp_jasb - for (int p = 1; p <= bord_num; ++p) { + for (int p = 1; p < bord_num; ++p) { x = x * x1; power_ser = power_ser + bord_vector[p + 1] * x; } - if(j <= up_num || i > up_num) { + if(i < up_num || j >= up_num) { spin_fact = 0.5; ipar = 1; } From 05cfd10cc48fe728905de11127bce640ccdfe7de Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Wed, 16 Feb 2022 14:14:05 +0100 Subject: [PATCH 007/111] completed qmckl_compute_factor_en --- org/qmckl_jastrow.org | 115 +++++++++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 47 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index c46fe63..a177d91 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -2442,6 +2442,74 @@ integer function qmckl_compute_factor_en_f(context, walk_num, elec_num, nucl_num end function qmckl_compute_factor_en_f #+end_src + + + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_factor_en ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + double* const factor_en ) { + + + int ipar; + double x, x1, spin_fact, power_ser; + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + if (aord_num <= 0) { + return QMCKL_INVALID_ARG_7; + } + + + for (int nw = 0; nw < walk_num; ++nw ) { + // init array + factor_en[nw] = 0.0; + for (int a = 0; a < nucl_num; ++a ) { + for (int i = 0; i < elec_num; ++i ) { + // x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; + x = en_distance_rescaled[i * (walk_num * nucl_num) + a * (walk_num) + nw]; + x1 = x; + power_ser = 0.0; + + for (int p = 2; p < aord_num+1; ++p) { + x = x * x1; + power_ser = power_ser + aord_vector[(p+1)-1 + (type_nucl_vector[a]-1) * aord_num] * x; + } + + factor_en[nw] = factor_en[nw] + aord_vector[0 + (type_nucl_vector[a]-1)*aord_num] * x1 / \ + (1.0 + aord_vector[1 + (type_nucl_vector[a]-1) * aord_num] * x1) + \ + power_ser; + + } + } + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -2461,53 +2529,6 @@ end function qmckl_compute_factor_en_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_factor_en & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - aord_num, & - aord_vector, & - en_distance_rescaled, & - factor_en) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: type_nucl_num - integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) - integer (c_int64_t) , intent(in) , value :: aord_num - real (c_double ) , intent(in) :: aord_vector(aord_num + 1, type_nucl_num) - real (c_double ) , intent(in) :: en_distance_rescaled(elec_num, nucl_num, walk_num) - real (c_double ) , intent(out) :: factor_en(walk_num) - - integer(c_int32_t), external :: qmckl_compute_factor_en_f - info = qmckl_compute_factor_en_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - aord_num, & - aord_vector, & - en_distance_rescaled, & - factor_en) - - end function qmckl_compute_factor_en - #+end_src - *** Test #+begin_src python :results output :exports none :noweb yes import numpy as np From bf8cec7f3cf39c3bb8b100675401304b60da4d8b Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Wed, 16 Feb 2022 18:09:02 +0100 Subject: [PATCH 008/111] reordered index in ee_distance_rescaled that makes sense --- org/qmckl_jastrow.org | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index a177d91..eabde1e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1735,7 +1735,8 @@ end function qmckl_compute_factor_ee_f factor_ee[nw] = 0.0; // put init array here. for (int i = 0; i < elec_num; ++i ) { for (int j = 0; j < i; ++j) { - x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; + //x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; + x = ee_distance_rescaled[j + i * elec_num + nw*(elec_num * elec_num)]; x1 = x; power_ser = 0.0; spin_fact = 1.0; From bb2e8384e8b8cde1bab3edef6bbc44c8949b0ba2 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Wed, 16 Feb 2022 18:13:57 +0100 Subject: [PATCH 009/111] fix reorder of nex function --- org/qmckl_jastrow.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index eabde1e..7b1f0b8 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -2490,7 +2490,7 @@ qmckl_exit_code qmckl_compute_factor_en ( for (int a = 0; a < nucl_num; ++a ) { for (int i = 0; i < elec_num; ++i ) { // x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; - x = en_distance_rescaled[i * (walk_num * nucl_num) + a * (walk_num) + nw]; + x = en_distance_rescaled[i + a * elec_num + nw * (elec_num * nucl_num)]; x1 = x; power_ser = 0.0; From 2427d1b56ebc836c603a8466ac6098fd2d8820f9 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Tue, 22 Feb 2022 14:52:21 +0100 Subject: [PATCH 010/111] working qmckl_compute_een_rescaled_n --- org/qmckl_jastrow.org | 106 +++++++++++++++++++++++++----------------- 1 file changed, 64 insertions(+), 42 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 7b1f0b8..9867010 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -3855,6 +3855,70 @@ integer function qmckl_compute_een_rescaled_n_f(context, walk_num, elec_num, nuc end function qmckl_compute_een_rescaled_n_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_een_rescaled_n ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* en_distance, + double* const een_rescaled_n ) { + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_5; + } + + // Prepare table of exponentiated distances raised to appropriate power + for (int i = 0; i < (walk_num*(cord_num+1)*nucl_num*elec_num); ++i) { + een_rescaled_n[i] = 17.0; + } + + for (int nw = 0; nw < walk_num; ++nw) { + for (int a = 0; a < nucl_num; ++a) { + for (int i = 0; i < elec_num; ++i) { + // prepare the actual een table + //een_rescaled_n(:, :, 0, nw) = 1.0d0 + een_rescaled_n[i + a * elec_num + 0 + nw * elec_num*nucl_num*(cord_num+1)] = 1.0; + //een_rescaled_n(i, a, 1, nw) = dexp(-rescale_factor_kappa_en * en_distance(i, a, nw)) + een_rescaled_n[i + a*elec_num + elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)] = exp(-rescale_factor_kappa_en * \ + en_distance[i + a*elec_num + nw*elec_num*nucl_num]); + } + } + + for (int l = 2; l < (cord_num+1); ++l){ + for (int a = 0; a < nucl_num; ++a) { + for (int i = 0; i < elec_num; ++i) { + een_rescaled_n[i + a*elec_num + l*elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)] = een_rescaled_n[i + a*elec_num + (l-1)*elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)] *\ + een_rescaled_n[i + a*elec_num + elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)]; + } + } + } + + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -3870,47 +3934,6 @@ end function qmckl_compute_een_rescaled_n_f double* const een_rescaled_n ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_een_rescaled_n & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - rescale_factor_kappa_en, & - en_distance, & - een_rescaled_n) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: cord_num - real (c_double ) , intent(in) , value :: rescale_factor_kappa_en - real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num) - real (c_double ) , intent(out) :: een_rescaled_n(nucl_num,elec_num,0:cord_num,walk_num) - - integer(c_int32_t), external :: qmckl_compute_een_rescaled_n_f - info = qmckl_compute_een_rescaled_n_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - rescale_factor_kappa_en, & - en_distance, & - een_rescaled_n) - - end function qmckl_compute_een_rescaled_n - #+end_src - *** Test #+begin_src python :results output :exports none :noweb yes @@ -3969,7 +3992,6 @@ assert(fabs(een_rescaled_n[0][1][0][4]-0.023391817607642338) < 1.e-12); assert(fabs(een_rescaled_n[0][2][1][3]-0.880957224822116) < 1.e-12); assert(fabs(een_rescaled_n[0][2][1][4]-0.027185942659395074) < 1.e-12); assert(fabs(een_rescaled_n[0][2][1][5]-0.01343938025140174) < 1.e-12); - #+end_src ** Electron-nucleus rescaled distances for each order and derivatives From 4fac9f06c9f86e6072fac909c1132f403f6f6267 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Mon, 28 Feb 2022 17:47:24 +0100 Subject: [PATCH 011/111] to be checked --- org/qmckl_jastrow.org | 61 +++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index aac48b8..9674f47 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -4962,6 +4962,45 @@ integer function qmckl_compute_dim_cord_vect_f(context, cord_num, dim_cord_vect) end function qmckl_compute_dim_cord_vect_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_dim_cord_vect ( + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_cord_vect){ + + int lmax; + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + dim_cord_vect = 0; + + for (int p=2; p < cord_num; ++p){ + for (int k=p-1; k <= 0; --k) { + if (k != 0) { + lmax = p - k; + } else { + lmax = p - k - 2; + } + for (l = lmax; l <= 0; --l) { +// if ( iand(p - k - l, 1_8) == 1) continue; +// Does it make sense? it should + if ( ((p - k - l) & 1)==1) continue; + dim_cord_vect = dim_cord_vect + 1; + } + } + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -4973,28 +5012,6 @@ end function qmckl_compute_dim_cord_vect_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_dim_cord_vect & - (context, cord_num, dim_cord_vect) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(out) :: dim_cord_vect - - integer(c_int32_t), external :: qmckl_compute_dim_cord_vect_f - info = qmckl_compute_dim_cord_vect_f & - (context, cord_num, dim_cord_vect) - - end function qmckl_compute_dim_cord_vect - #+end_src - *** Compute cord_vect_full :PROPERTIES: :Name: qmckl_compute_cord_vect_full From d13693a822c22acff50d9b7b640fc94d4a71751c Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Wed, 2 Mar 2022 10:18:45 +0100 Subject: [PATCH 012/111] to be cleaned from print --- org/qmckl_jastrow.org | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 9674f47..518ddfb 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -4979,23 +4979,28 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( return QMCKL_INVALID_ARG_2; } - dim_cord_vect = 0; + printf("hello %d\n", *dim_cord_vect); + *dim_cord_vect = 0; for (int p=2; p < cord_num; ++p){ + printf("in da loop\n"); for (int k=p-1; k <= 0; --k) { if (k != 0) { lmax = p - k; } else { lmax = p - k - 2; } - for (l = lmax; l <= 0; --l) { + printf("lmax %d\n", lmax); + for (int l = lmax; l <= 0; --l) { // if ( iand(p - k - l, 1_8) == 1) continue; // Does it make sense? it should if ( ((p - k - l) & 1)==1) continue; - dim_cord_vect = dim_cord_vect + 1; + printf("in da loop\n"); + *dim_cord_vect = *dim_cord_vect + 1; } } } + printf("hello 2 %d\n", *dim_cord_vect); return QMCKL_SUCCESS; } From a4ba5deac4a74fe48c8d928408d8d611f285826b Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Wed, 9 Mar 2022 11:15:15 +0100 Subject: [PATCH 013/111] compute_dim_cord_vect done --- org/qmckl_jastrow.org | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 518ddfb..74fe58e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -4979,29 +4979,22 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( return QMCKL_INVALID_ARG_2; } - printf("hello %d\n", *dim_cord_vect); *dim_cord_vect = 0; - - for (int p=2; p < cord_num; ++p){ - printf("in da loop\n"); - for (int k=p-1; k <= 0; --k) { + + for (int p=2; p <= cord_num; ++p){ + for (int k=p-1; k >= 0; --k) { if (k != 0) { lmax = p - k; } else { lmax = p - k - 2; } - printf("lmax %d\n", lmax); - for (int l = lmax; l <= 0; --l) { -// if ( iand(p - k - l, 1_8) == 1) continue; -// Does it make sense? it should + for (int l = lmax; l >= 0; --l) { if ( ((p - k - l) & 1)==1) continue; - printf("in da loop\n"); - *dim_cord_vect = *dim_cord_vect + 1; + *dim_cord_vect=*dim_cord_vect+1; } } } - printf("hello 2 %d\n", *dim_cord_vect); - + return QMCKL_SUCCESS; } #+end_src From b222ee3156a273a8580964c1de03096bd3b1b5fc Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Mon, 14 Mar 2022 11:21:31 +0100 Subject: [PATCH 014/111] lkpm works --- org/qmckl_jastrow.org | 73 +++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 24 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 74fe58e..423f152 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5128,7 +5128,7 @@ end function qmckl_compute_cord_vect_full_f | ~context~ | ~qmckl_context~ | in | Global state | | ~cord_num~ | ~int64_t~ | in | Order of polynomials | | ~dim_cord_vect~ | ~int64_t~ | in | dimension of cord full table | - | ~lpkm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | out | Full list of combined indices | + | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | out | Full list of combined indices | #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_lkpm_combined_index_f(context, cord_num, dim_cord_vect, & @@ -5184,6 +5184,53 @@ integer function qmckl_compute_lkpm_combined_index_f(context, cord_num, dim_cord end function qmckl_compute_lkpm_combined_index_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_lkpm_combined_index ( + const qmckl_context context, + const int64_t cord_num, + const int64_t dim_cord_vect, + int64_t* const lkpm_combined_index ) { + + int kk, lmax, m; + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (dim_cord_vect <= 0) { + return QMCKL_INVALID_ARG_3; + } + +/* +*/ + kk = 0; + for (int p = 2; p <= cord_num; ++p) { + for (int k=(p-1); k >= 0; --k) { + if (k != 0) { + lmax = p - k; + } else { + lmax = p - k - 2; + } + for (int l=lmax; l >= 0; --l) { + if (((p - k - l) & 1) == 1) continue; + m = (p - k - l)/2; + lkpm_combined_index[kk ] = l; + lkpm_combined_index[kk + dim_cord_vect] = k; + lkpm_combined_index[kk + 2*dim_cord_vect] = p; + lkpm_combined_index[kk + 3*dim_cord_vect] = m; + kk = kk + 1; + } + } + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -5192,32 +5239,10 @@ end function qmckl_compute_lkpm_combined_index_f const qmckl_context context, const int64_t cord_num, const int64_t dim_cord_vect, - int64_t* const lpkm_combined_index ); + int64_t* const lkpm_combined_index ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_lkpm_combined_index & - (context, cord_num, dim_cord_vect, lpkm_combined_index) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect - integer (c_int64_t) , intent(out) :: lpkm_combined_index(dim_cord_vect,4) - - integer(c_int32_t), external :: qmckl_compute_lkpm_combined_index_f - info = qmckl_compute_lkpm_combined_index_f & - (context, cord_num, dim_cord_vect, lpkm_combined_index) - - end function qmckl_compute_lkpm_combined_index - #+end_src *** Compute tmp_c :PROPERTIES: From 6b45157212c211f398dca3c2c99eeef859852029 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Thu, 17 Mar 2022 17:46:21 +0100 Subject: [PATCH 015/111] tmp_c done --- org/qmckl_jastrow.org | 94 ++++++++++++++++++++++++++++++------------- 1 file changed, 67 insertions(+), 27 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 423f152..4f777da 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5330,6 +5330,73 @@ integer function qmckl_compute_tmp_c_f(context, cord_num, elec_num, nucl_num, & end function qmckl_compute_tmp_c_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_tmp_c ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) { + + qmckl_exit_code info; + int i, j, a, l, kk, p, lmax, nw; + char TransA, TransB; + double alpha, beta; + int M, N, K, LDA, LDB, LDC; + + TransA = 'N'; + TransB = 'N'; + alpha = 1.0; + beta = 0.0; + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + M = elec_num; + N = nucl_num*(cord_num + 1); + K = elec_num; + + LDA = sizeof(een_rescaled_e)/sizeof(double); + LDB = sizeof(een_rescaled_n)/sizeof(double); + LDC = sizeof(tmp_c)/sizeof(double); + +// DOING + for (int nw=0; nw < walk_num; ++nw) { + for (int i=0; i Date: Thu, 17 Mar 2022 22:27:10 +0100 Subject: [PATCH 016/111] dtmp_c done --- org/qmckl_jastrow.org | 95 ++++++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 29 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 4f777da..9b0370c 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5376,7 +5376,6 @@ qmckl_exit_code qmckl_compute_tmp_c ( LDB = sizeof(een_rescaled_n)/sizeof(double); LDC = sizeof(tmp_c)/sizeof(double); -// DOING for (int nw=0; nw < walk_num; ++nw) { for (int i=0; i Date: Thu, 24 Mar 2022 10:06:25 +0100 Subject: [PATCH 017/111] Add detection of configure arguments to enable GPU offloading As of now, only OpenMP offload will be implemented as a test. --- configure.ac | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac index 56f0ed1..668fe2a 100644 --- a/configure.ac +++ b/configure.ac @@ -218,6 +218,29 @@ AS_IF([test "$HAVE_HPC" = "yes"], [ AC_DEFINE([HAVE_HPC], [1], [If defined, activate HPC routines]) ]) +# Enable Verificarlo tests +AC_ARG_ENABLE([vfc_ci], +[ --enable-vfc_ci Build the library with vfc_ci support], +[case "${enableval}" in + yes) vfc_ci=true && FCFLAGS="-D VFC_CI $FCFLAGS" && CFLAGS="-D VFC_CI $CFLAGS";; + no) vfc_ci=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable_vfc_ci]) ;; +esac],[vfc_ci=false]) +AM_CONDITIONAL([VFC_CI], [test x$vfc_ci = xtrue]) + +if test "$FC" = "verificarlo-f"; then + AC_MSG_NOTICE(verificarlo-f detected) + # Arguments order is important here + FCFLAGS="-Mpreprocess $FCFLAGS" +fi + +# Enable GPU offloading +# OpenMP offloading +AC_ARG_ENABLE(openmp-offload, [AS_HELP_STRING([--openmp-offload],[Use OpenMP-offloaded functions])], HAVE_OPENMP_OFFLOAD=$enableval, HAVE_OPENMP_OFFLOAD=no) +AS_IF([test "$HAVE_OPENMP_OFFLOAD" = "yes"], [ + AC_DEFINE([HAVE_OPENMP_OFFLOAD], [1], [If defined, activate OpenMP-offloaded routines]) +]) + AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[compile for debugging])], ok=$enableval, ok=no) if test "$ok" = "yes"; then if test "$GCC" = "yes"; then @@ -313,21 +336,6 @@ if test "x${QMCKL_DEVEL}" != "x"; then fi -# Enable Verificarlo tests -AC_ARG_ENABLE([vfc_ci], -[ --enable-vfc_ci Build the library with vfc_ci support], -[case "${enableval}" in - yes) vfc_ci=true && FCFLAGS="-D VFC_CI $FCFLAGS" && CFLAGS="-D VFC_CI $CFLAGS";; - no) vfc_ci=false ;; - *) AC_MSG_ERROR([bad value ${enableval} for --enable_vfc_ci]) ;; -esac],[vfc_ci=false]) -AM_CONDITIONAL([VFC_CI], [test x$vfc_ci = xtrue]) - -if test "$FC" = "verificarlo-f"; then - AC_MSG_NOTICE(verificarlo-f detected) - # Arguments order is important here - FCFLAGS="-Mpreprocess $FCFLAGS" -fi #PKG-CONFIG #mkl-dynamic-lp64-seq @@ -363,6 +371,7 @@ LDFLAGS:........: ${LDFLAGS} LIBS............: ${LIBS} USE CHAMELEON...: ${with_chameleon} HPC version.....: ${HAVE_HPC} +OpenMP offload .: ${HAVE_OPENMP_OFFLOAD} Package features: ${ARGS} From 5e3231e7e39fd3f07bc68e7e9d8ad7875aa8dd47 Mon Sep 17 00:00:00 2001 From: Aurelien Delval Date: Thu, 24 Mar 2022 16:35:29 +0100 Subject: [PATCH 018/111] Add selection mechanism for offload mode in Jastrow This system adds an additional field to the QMCkl context to store the offload mode currently in use for each kernel (in this commit, this has been implemented for Jastrow as an example). This will be useful to test different offloading versions that can be easily toggled on/off at compilation and at runtime. --- org/ao_grid.f90 | 114 ++++++++++++++++++ org/qmckl_jastrow.org | 269 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 382 insertions(+), 1 deletion(-) create mode 100644 org/ao_grid.f90 diff --git a/org/ao_grid.f90 b/org/ao_grid.f90 new file mode 100644 index 0000000..685313f --- /dev/null +++ b/org/ao_grid.f90 @@ -0,0 +1,114 @@ +subroutine qmckl_check_error(rc, message) + use qmckl + implicit none + integer(qmckl_exit_code), intent(in) :: rc + character(len=*) , intent(in) :: message + character(len=128) :: str_buffer + if (rc /= QMCKL_SUCCESS) then + print *, message + call qmckl_string_of_error(rc, str_buffer) + print *, str_buffer + call exit(rc) + end if +end subroutine qmckl_check_error + +program ao_grid + use qmckl + implicit none + + integer(qmckl_context) :: qmckl_ctx ! QMCkl context + integer(qmckl_exit_code) :: rc ! Exit code of QMCkl functions + + character(len=128) :: trexio_filename + character(len=128) :: str_buffer + integer :: ao_id + integer :: point_num_x + + integer(c_int64_t) :: nucl_num + double precision, allocatable :: nucl_coord(:,:) + + integer(c_int64_t) :: point_num + integer(c_int64_t) :: ao_num + integer(c_int64_t) :: ipoint, i, j, k + double precision :: x, y, z, dr(3) + double precision :: rmin(3), rmax(3) + double precision, allocatable :: points(:,:) + double precision, allocatable :: ao_vgl(:,:,:) + +if (iargc() /= 3) then + print *, 'Syntax: ao_grid ' + call exit(-1) +end if +call getarg(1, trexio_filename) +call getarg(2, str_buffer) +read(str_buffer, *) ao_id +call getarg(3, str_buffer) +read(str_buffer, *) point_num_x + +if (point_num_x < 0 .or. point_num_x > 300) then + print *, 'Error: 0 < point_num < 300' + call exit(-1) +end if + +qmckl_ctx = qmckl_context_create() +rc = qmckl_trexio_read(qmckl_ctx, trexio_filename, 1_8*len(trim(trexio_filename))) +call qmckl_check_error(rc, 'Read TREXIO') + +rc = qmckl_get_ao_basis_ao_num(qmckl_ctx, ao_num) +call qmckl_check_error(rc, 'Getting ao_num') + +if (ao_id < 0 .or. ao_id > ao_num) then + print *, 'Error: 0 < ao_id < ', ao_num + call exit(-1) +end if + +rc = qmckl_get_nucleus_num(qmckl_ctx, nucl_num) +call qmckl_check_error(rc, 'Get nucleus num') + +allocate( nucl_coord(3, nucl_num) ) +rc = qmckl_get_nucleus_coord(qmckl_ctx, 'N', nucl_coord, 3_8*nucl_num) +call qmckl_check_error(rc, 'Get nucleus coord') + +rmin(1) = minval( nucl_coord(1,:) ) - 5.d0 +rmin(2) = minval( nucl_coord(2,:) ) - 5.d0 +rmin(3) = minval( nucl_coord(3,:) ) - 5.d0 + +rmax(1) = maxval( nucl_coord(1,:) ) + 5.d0 +rmax(2) = maxval( nucl_coord(2,:) ) + 5.d0 +rmax(3) = maxval( nucl_coord(3,:) ) + 5.d0 + +dr(1:3) = (rmax(1:3) - rmin(1:3)) / dble(point_num_x-1) + +point_num = point_num_x**3 +allocate( points(point_num, 3) ) +ipoint=0 +z = rmin(3) +do k=1,point_num_x + y = rmin(2) + do j=1,point_num_x + x = rmin(1) + do i=1,point_num_x + ipoint = ipoint+1 + points(ipoint,1) = x + points(ipoint,2) = y + points(ipoint,3) = z + x = x + dr(1) + end do + y = y + dr(2) + end do + z = z + dr(3) +end do + +rc = qmckl_set_point(qmckl_ctx, 'T', points, point_num) +call qmckl_check_error(rc, 'Setting points') + +allocate( ao_vgl(ao_num, 5, point_num) ) +rc = qmckl_get_ao_basis_ao_vgl(qmckl_ctx, ao_vgl, ao_num*5_8*point_num) +call qmckl_check_error(rc, 'Setting points') + +do ipoint=1, point_num + print '(3(F16.10,X),E20.10)', points(ipoint, 1:3), ao_vgl(ao_id,1,ipoint) +end do + +deallocate( nucl_coord, points, ao_vgl ) +end program ao_grid diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 61062af..6a2c2a2 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -327,7 +327,14 @@ kappa_inv = 1.0/kappa ** Data structure - #+begin_src c :comments org :tangle (eval h_private_type) +#+begin_src c :comments org :tangle (eval h_type) +typedef enum qmckl_jastrow_offload_type{ + OFFLOAD_NONE, + OFFLOAD_OPENMP +} qmckl_jastrow_offload_type; +#+end_src + +#+begin_src c :comments org :tangle (eval h_private_type) typedef struct qmckl_jastrow_struct{ int32_t uninitialized; int64_t aord_num; @@ -372,6 +379,7 @@ typedef struct qmckl_jastrow_struct{ uint64_t een_rescaled_n_deriv_e_date; bool provided; char * type; + qmckl_jastrow_offload_type offload_type; } qmckl_jastrow_struct; #+end_src @@ -416,6 +424,7 @@ qmckl_exit_code qmckl_get_jastrow_type_nucl_vector (qmckl_context context, int qmckl_exit_code qmckl_get_jastrow_aord_vector (qmckl_context context, double * const aord_vector, const int64_t size_max); qmckl_exit_code qmckl_get_jastrow_bord_vector (qmckl_context context, double * const bord_vector, const int64_t size_max); qmckl_exit_code qmckl_get_jastrow_cord_vector (qmckl_context context, double * const cord_vector, const int64_t size_max); +qmckl_exit_code qmckl_get_jastrow_offload_type (qmckl_context context, qmckl_jastrow_offload_type * const offload_type); #+end_src Along with these core functions, calculation of the jastrow factor @@ -713,6 +722,32 @@ qmckl_get_jastrow_cord_vector (const qmckl_context context, return QMCKL_SUCCESS; } +qmckl_exit_code qmckl_get_jastrow_offload_type (const qmckl_context context, qmckl_jastrow_offload_type* const offload_type) { + + if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { + return (char) 0; + } + + if (offload_type == NULL) { + return qmckl_failwith( context, + QMCKL_INVALID_ARG_2, + "qmckl_get_jastrow_offload_type", + "offload_type is a null pointer"); + } + + qmckl_context_struct* const ctx = (qmckl_context_struct* const) context; + assert (ctx != NULL); + + int32_t mask = 1 << 0; + + if ( (ctx->jastrow.uninitialized & mask) != 0) { + return QMCKL_NOT_PROVIDED; + } + + *offload_type = ctx->jastrow.offload_type; + return QMCKL_SUCCESS; +} + #+end_src ** Initialization functions @@ -727,6 +762,7 @@ qmckl_exit_code qmckl_set_jastrow_type_nucl_vector (qmckl_context context, con qmckl_exit_code qmckl_set_jastrow_aord_vector (qmckl_context context, const double * aord_vector, const int64_t size_max); qmckl_exit_code qmckl_set_jastrow_bord_vector (qmckl_context context, const double * bord_vector, const int64_t size_max); qmckl_exit_code qmckl_set_jastrow_cord_vector (qmckl_context context, const double * cord_vector, const int64_t size_max); +qmckl_exit_code qmckl_set_jastrow_offload_type (qmckl_context context, const qmckl_jastrow_offload_type offload_type); #+end_src #+NAME:pre2 @@ -1063,6 +1099,14 @@ qmckl_set_jastrow_cord_vector(qmckl_context context, <> } +qmckl_exit_code +qmckl_set_jastrow_offload_type(qmckl_context context, const qmckl_jastrow_offload_type offload_type) +{ +<> + ctx->jastrow.offload_type = offload_type; + return QMCKL_SUCCESS; +} + #+end_src When the required information is completely entered, other data structures are @@ -6093,6 +6137,30 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.factor_een_deriv_e = factor_een_deriv_e; } + /* Choose the correct compute function (depending on offload type) */ + bool default_compute = true; + +#ifdef HAVE_OPENMP_OFFLOAD + if(ctx->jastrow.offload_type == OFFLOAD_OPENMP) { + qmckl_exit_code rc = + qmckl_compute_factor_een_deriv_e_omp_offload(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.cord_vect_full, + ctx->jastrow.lkpm_combined_index, + ctx->jastrow.tmp_c, + ctx->jastrow.dtmp_c, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.een_rescaled_n_deriv_e, + ctx->jastrow.factor_een_deriv_e); + default_compute = false; + } +#endif + + if(default_compute) { qmckl_exit_code rc = qmckl_compute_factor_een_deriv_e(context, ctx->electron.walk_num, @@ -6107,6 +6175,8 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.een_rescaled_n_deriv_e, ctx->jastrow.factor_een_deriv_e); + } + if (rc != QMCKL_SUCCESS) { return rc; } @@ -6507,6 +6577,203 @@ end function qmckl_compute_factor_een_deriv_e_f end function qmckl_compute_factor_een_deriv_e #+end_src +*** Compute (OpenMP offload)... + :PROPERTIES: + :Name: qmckl_compute_factor_een_deriv_e + :CRetType: qmckl_exit_code + :FRetType: qmckl_exit_code + :END: + + #+NAME: qmckl_factor_een_deriv_e_omp_offload_args + | Variable | Type | In/Out | Description | + |--------------------------+---------------------------------------------------------------------+--------+------------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~walk_num~ | ~int64_t~ | in | Number of walkers | + | ~elec_num~ | ~int64_t~ | in | Number of electrons | + | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | + | ~cord_num~ | ~int64_t~ | in | order of polynomials | + | ~dim_cord_vect~ | ~int64_t~ | in | dimension of full coefficient vector | + | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | in | full coefficient vector | + | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | in | combined indices | + | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | in | Temporary intermediate tensor | + | ~dtmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][4][elec_num]~ | in | vector of non-zero coefficients | + | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | + | ~een_rescaled_n_deriv_e~ | ~double[walk_num][0:cord_num][nucl_num][4][elec_num]~ | in | Derivative of Electron-nucleus rescaled factor | + | ~factor_een_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Derivative of Electron-nucleus jastrow | + + + #+begin_src f90 :comments org :tangle (eval f) :noweb yes +#ifdef HAVE_OPENMP_OFFLOAD +integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & + cord_vect_full, lkpm_combined_index, & + tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_deriv_e, factor_een_deriv_e) & + result(info) + use qmckl + implicit none + integer(qmckl_context), intent(in) :: context + integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_cord_vect + integer*8 , intent(in) :: lkpm_combined_index(dim_cord_vect,4) + double precision , intent(in) :: cord_vect_full(nucl_num, dim_cord_vect) + double precision , intent(in) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + double precision , intent(in) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) + double precision , intent(in) :: een_rescaled_n_deriv_e(elec_num, 4, nucl_num, 0:cord_num, walk_num) + double precision , intent(out) :: factor_een_deriv_e(elec_num,4,walk_num) + + integer*8 :: i, a, j, l, k, p, m, n, nw, ii + double precision :: accu, accu2, cn + + info = QMCKL_SUCCESS + + if (context == QMCKL_NULL_CONTEXT) then + info = QMCKL_INVALID_CONTEXT + return + endif + + if (walk_num <= 0) then + info = QMCKL_INVALID_ARG_2 + return + endif + + if (elec_num <= 0) then + info = QMCKL_INVALID_ARG_3 + return + endif + + if (nucl_num <= 0) then + info = QMCKL_INVALID_ARG_4 + return + endif + + if (cord_num <= 0) then + info = QMCKL_INVALID_ARG_5 + return + endif + + factor_een_deriv_e = 0.0d0 + + do nw =1, walk_num + do n = 1, dim_cord_vect + l = lkpm_combined_index(n, 1) + k = lkpm_combined_index(n, 2) + p = lkpm_combined_index(n, 3) + m = lkpm_combined_index(n, 4) + + do a = 1, nucl_num + cn = cord_vect_full(a, n) + if(cn == 0.d0) cycle + + do ii = 1, 4 + do j = 1, elec_num + factor_een_deriv_e(j,ii,nw) = factor_een_deriv_e(j,ii,nw) + (& + tmp_c(j,a,m,k,nw) * een_rescaled_n_deriv_e(j,ii,a,m+l,nw) + & + (dtmp_c(j,ii,a,m,k,nw)) * een_rescaled_n(j,a,m+l,nw) + & + (dtmp_c(j,ii,a,m+l,k,nw)) * een_rescaled_n(j,a,m ,nw) + & + tmp_c(j,a,m+l,k,nw) * een_rescaled_n_deriv_e(j,ii,a,m,nw) & + ) * cn + end do + end do + + cn = cn + cn + do j = 1, elec_num + factor_een_deriv_e(j,4,nw) = factor_een_deriv_e(j,4,nw) + (& + (dtmp_c(j,1,a,m ,k,nw)) * een_rescaled_n_deriv_e(j,1,a,m+l,nw) + & + (dtmp_c(j,2,a,m ,k,nw)) * een_rescaled_n_deriv_e(j,2,a,m+l,nw) + & + (dtmp_c(j,3,a,m ,k,nw)) * een_rescaled_n_deriv_e(j,3,a,m+l,nw) + & + (dtmp_c(j,1,a,m+l,k,nw)) * een_rescaled_n_deriv_e(j,1,a,m ,nw) + & + (dtmp_c(j,2,a,m+l,k,nw)) * een_rescaled_n_deriv_e(j,2,a,m ,nw) + & + (dtmp_c(j,3,a,m+l,k,nw)) * een_rescaled_n_deriv_e(j,3,a,m ,nw) & + ) * cn + end do + end do + end do + end do + +end function qmckl_compute_factor_een_deriv_e_omp_offload_f +#endif + #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_omp_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org +#ifdef HAVE_OPENMP_OFFLOAD + qmckl_exit_code qmckl_compute_factor_een_deriv_e_omp_offload ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const int64_t dim_cord_vect, + const double* cord_vect_full, + const int64_t* lkpm_combined_index, + const double* tmp_c, + const double* dtmp_c, + const double* een_rescaled_n, + const double* een_rescaled_n_deriv_e, + double* const factor_een_deriv_e ); +#endif + #+end_src + + + #+CALL: generate_c_interface(table=qmckl_factor_een_deriv_e_omp_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src f90 :tangle (eval f) :comments org :exports none +#ifdef HAVE_OPENMP_OFFLOAD + integer(c_int32_t) function qmckl_compute_factor_een_deriv_e_omp_offload & + (context, & + walk_num, & + elec_num, & + nucl_num, & + cord_num, & + dim_cord_vect, & + cord_vect_full, & + lkpm_combined_index, & + tmp_c, & + dtmp_c, & + een_rescaled_n, & + een_rescaled_n_deriv_e, & + factor_een_deriv_e) & + bind(C) result(info) + + use, intrinsic :: iso_c_binding + implicit none + + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: dim_cord_vect + real (c_double ) , intent(in) :: cord_vect_full(nucl_num,dim_cord_vect) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_cord_vect,4) + real (c_double ) , intent(in) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + real (c_double ) , intent(in) :: dtmp_c(elec_num,4,nucl_num,0:cord_num,0:cord_num-1,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n_deriv_e(elec_num,4,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: factor_een_deriv_e(elec_num,4,walk_num) + + integer(c_int32_t), external :: qmckl_compute_factor_een_deriv_e_omp_offload_f + info = qmckl_compute_factor_een_deriv_e_omp_offload_f & + (context, & + walk_num, & + elec_num, & + nucl_num, & + cord_num, & + dim_cord_vect, & + cord_vect_full, & + lkpm_combined_index, & + tmp_c, & + dtmp_c, & + een_rescaled_n, & + een_rescaled_n_deriv_e, & + factor_een_deriv_e) + + end function qmckl_compute_factor_een_deriv_e_omp_offload +#endif + #+end_src + *** Test #+begin_src python :results output :exports none :noweb yes import numpy as np From bcc49ca31215e6bc6456bf30153395e2e5b6d697 Mon Sep 17 00:00:00 2001 From: Aurelien Delval Date: Fri, 25 Mar 2022 13:03:35 +0100 Subject: [PATCH 019/111] Minor fixes to previous commit TODO Start modifying dedicated function to implement offloading Also, as of now, Fortran preprocessor flags should be passed manually, we need to manage this in the configure.ac in the future. For now, when using gfortran, you should pass FCFLAGS="-cpp -DWITH_OPENMP_OFFLOAD" to enable offloading. --- org/qmckl_jastrow.org | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 6a2c2a2..f97464b 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -6604,7 +6604,8 @@ end function qmckl_compute_factor_een_deriv_e_f #+begin_src f90 :comments org :tangle (eval f) :noweb yes #ifdef HAVE_OPENMP_OFFLOAD -integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & +! TODO Add some offload statements +integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & cord_vect_full, lkpm_combined_index, & tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_deriv_e, factor_een_deriv_e) & result(info) @@ -6715,8 +6716,7 @@ end function qmckl_compute_factor_een_deriv_e_omp_offload_f #endif #+end_src - - #+CALL: generate_c_interface(table=qmckl_factor_een_deriv_e_omp_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +#+CALL: generate_c_interface(table=qmckl_factor_een_deriv_e_omp_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none From 383c6ac78af4eaa0b4dc869aba9f4b80c9aad5d7 Mon Sep 17 00:00:00 2001 From: Aurelien Delval Date: Mon, 28 Mar 2022 07:58:01 +0200 Subject: [PATCH 020/111] Add OFFLOAD_FLAGS, OFFLOAD_CFLAGS and OFFLOAD_FCFLAGS vars to configure --- configure.ac | 3 +++ org/qmckl_jastrow.org | 2 ++ 2 files changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac index 668fe2a..2993873 100644 --- a/configure.ac +++ b/configure.ac @@ -235,10 +235,13 @@ if test "$FC" = "verificarlo-f"; then fi # Enable GPU offloading + # OpenMP offloading AC_ARG_ENABLE(openmp-offload, [AS_HELP_STRING([--openmp-offload],[Use OpenMP-offloaded functions])], HAVE_OPENMP_OFFLOAD=$enableval, HAVE_OPENMP_OFFLOAD=no) AS_IF([test "$HAVE_OPENMP_OFFLOAD" = "yes"], [ AC_DEFINE([HAVE_OPENMP_OFFLOAD], [1], [If defined, activate OpenMP-offloaded routines]) + CFLAGS="$OFFLOAD_FLAGS $OFFLOAD_CFLAGS $CFLAGS" + FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS -DHAVE_OPENMP_OFFLOAD $FCFLAGS" ]) AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[compile for debugging])], ok=$enableval, ok=no) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index f97464b..cf0903c 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -6654,6 +6654,7 @@ integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_nu factor_een_deriv_e = 0.0d0 do nw =1, walk_num + !$omp target do n = 1, dim_cord_vect l = lkpm_combined_index(n, 1) k = lkpm_combined_index(n, 2) @@ -6688,6 +6689,7 @@ integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_nu end do end do end do + !$omp end target end do end function qmckl_compute_factor_een_deriv_e_omp_offload_f From 99306473a4cb418c81faf9656ccf8ec40c34bbea Mon Sep 17 00:00:00 2001 From: Aurelien Delval Date: Wed, 30 Mar 2022 09:01:32 +0200 Subject: [PATCH 021/111] Start OpenACC implementation in Jastro, including compute_dtmp_c --- configure.ac | 12 +-- org/qmckl_jastrow.org | 240 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 214 insertions(+), 38 deletions(-) diff --git a/configure.ac b/configure.ac index 2993873..8bd6747 100644 --- a/configure.ac +++ b/configure.ac @@ -236,12 +236,12 @@ fi # Enable GPU offloading -# OpenMP offloading -AC_ARG_ENABLE(openmp-offload, [AS_HELP_STRING([--openmp-offload],[Use OpenMP-offloaded functions])], HAVE_OPENMP_OFFLOAD=$enableval, HAVE_OPENMP_OFFLOAD=no) -AS_IF([test "$HAVE_OPENMP_OFFLOAD" = "yes"], [ - AC_DEFINE([HAVE_OPENMP_OFFLOAD], [1], [If defined, activate OpenMP-offloaded routines]) +# OpenACC offloading +AC_ARG_ENABLE(openacc-offload, [AS_HELP_STRING([--openacc-offload],[Use OpenACC-offloaded functions])], HAVE_OPENACC_OFFLOAD=$enableval, HAVE_OPENACC_OFFLOAD=no) +AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ + AC_DEFINE([HAVE_OPENACC_OFFLOAD], [1], [If defined, activate OpenACC-offloaded routines]) CFLAGS="$OFFLOAD_FLAGS $OFFLOAD_CFLAGS $CFLAGS" - FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS -DHAVE_OPENMP_OFFLOAD $FCFLAGS" + FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS -DHAVE_OPENACC_OFFLOAD $FCFLAGS" ]) AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[compile for debugging])], ok=$enableval, ok=no) @@ -374,7 +374,7 @@ LDFLAGS:........: ${LDFLAGS} LIBS............: ${LIBS} USE CHAMELEON...: ${with_chameleon} HPC version.....: ${HAVE_HPC} -OpenMP offload .: ${HAVE_OPENMP_OFFLOAD} +OpenACC offload : ${HAVE_OPENACC_OFFLOAD} Package features: ${ARGS} diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index cf0903c..70e1a8b 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -330,7 +330,7 @@ kappa_inv = 1.0/kappa #+begin_src c :comments org :tangle (eval h_type) typedef enum qmckl_jastrow_offload_type{ OFFLOAD_NONE, - OFFLOAD_OPENMP + OFFLOAD_OPENACC } qmckl_jastrow_offload_type; #+end_src @@ -4851,7 +4851,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; mem_info.size = (ctx->jastrow.cord_num) * (ctx->jastrow.cord_num + 1) - * 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); + ,* 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); double* dtmp_c = (double*) qmckl_malloc(context, mem_info); if (dtmp_c == NULL) { @@ -4863,8 +4863,13 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.dtmp_c = dtmp_c; } - qmckl_exit_code rc = - qmckl_compute_dtmp_c(context, + /* Choose the correct compute function (depending on offload type) */ + bool default_compute = true; + + #ifdef HAVE_OPENACC_OFFLOAD + if(ctx->jastrow.offload_type == OFFLOAD_OPENACC) { + qmckl_exit_code rc = + qmckl_compute_dtmp_c_acc_offload(context, ctx->jastrow.cord_num, ctx->electron.num, ctx->nucleus.num, @@ -4872,8 +4877,26 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.dtmp_c); - if (rc != QMCKL_SUCCESS) { - return rc; + default_compute = false; + if (rc != QMCKL_SUCCESS) { + return rc; + } + } + #endif + + if(default_compute) { + qmckl_exit_code rc = + qmckl_compute_dtmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); + if (rc != QMCKL_SUCCESS) { + return rc; + } } ctx->jastrow.dtmp_c_date = ctx->date; @@ -5439,6 +5462,156 @@ end function qmckl_compute_dtmp_c_f end function qmckl_compute_dtmp_c #+end_src +*** Compute dtmp_c (OpenACC offload) + :PROPERTIES: + :Name: qmckl_compute_dtmp_c_acc_offload + :CRetType: qmckl_exit_code + :FRetType: qmckl_exit_code + :END: + + #+NAME: qmckl_factor_dtmp_c_acc_offload_args + | Variable | Type | In/Out | Description | + |--------------------------+------------------------------------------------------------------+--------+-----------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~cord_num~ | ~int64_t~ | in | Order of polynomials | + | ~elec_num~ | ~int64_t~ | in | Number of electrons | + | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | + | ~walk_num~ | ~int64_t~ | in | Number of walkers | + | ~een_rescaled_e_deriv_e~ | ~double[walk_num][0:cord_num][elec_num][4][elec_num]~ | in | Electron-electron rescaled factor derivatives | + | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | + | ~dtmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | + + #+begin_src f90 :comments org :tangle (eval f) :noweb yes +integer function qmckl_compute_dtmp_c_acc_offload_f(context, cord_num, elec_num, nucl_num, & + walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) & + result(info) + use qmckl + implicit none + integer(qmckl_context), intent(in) :: context + integer*8 , intent(in) :: cord_num + integer*8 , intent(in) :: elec_num + integer*8 , intent(in) :: nucl_num + integer*8 , intent(in) :: walk_num + double precision , intent(in) :: een_rescaled_e_deriv_e(elec_num, 4, elec_num, 0:cord_num, walk_num) + double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) + double precision , intent(out) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + double precision :: x, tmp + integer*8 :: i, j, jj, k2, a, l, kk, p, lmax, nw, ii + character :: TransA, TransB + double precision :: alpha, beta + integer*8 :: M, N, K, LDA, LDB, LDC + + TransA = 'N' + TransB = 'N' + alpha = 1.0d0 + beta = 0.0d0 + + info = QMCKL_SUCCESS + + if (context == QMCKL_NULL_CONTEXT) then + info = QMCKL_INVALID_CONTEXT + return + endif + + if (cord_num <= 0) then + info = QMCKL_INVALID_ARG_2 + return + endif + + if (elec_num <= 0) then + info = QMCKL_INVALID_ARG_3 + return + endif + + if (nucl_num <= 0) then + info = QMCKL_INVALID_ARG_4 + return + endif + + M = 4*elec_num + N = nucl_num*(cord_num + 1) + K = elec_num + LDA = 4*size(een_rescaled_e_deriv_e,1) + LDB = size(een_rescaled_n,1) + LDC = 4*size(dtmp_c,1) + + do nw=1, walk_num + do i=0, cord_num-1 + + ! Single DGEMM + do j=0,cord_num + do jj=1,nucl_num + do k2=1,4 + do kk=1,elec_num + + tmp = 0.0 + do l=1,K + tmp = tmp + & + een_rescaled_e_deriv_e(kk, k2, l, i, nw) * een_rescaled_n(l, jj, j, nw) + enddo + ! affect tmp + dtmp_c(kk, k2, jj, j, i, nw ) = tmp + + enddo + enddo + enddo + enddo + + + !info = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & + ! een_rescaled_e_deriv_e(1,1,1,i,nw),LDA*1_8, & + ! een_rescaled_n(1,1,0,nw),LDB*1_8, & + ! beta, & + ! dtmp_c(1,1,1,0,i,nw),LDC) + end do + end do + +end function qmckl_compute_dtmp_c_acc_offload_f + #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_dtmp_c_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_dtmp_c_acc_offload ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e_deriv_e, + const double* een_rescaled_n, + double* const dtmp_c ); + #+end_src + + + #+CALL: generate_c_interface(table=qmckl_factor_dtmp_c_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src f90 :tangle (eval f) :comments org :exports none + integer(c_int32_t) function qmckl_compute_dtmp_c_acc_offload & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) & + bind(C) result(info) + + use, intrinsic :: iso_c_binding + implicit none + + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: een_rescaled_e_deriv_e(elec_num,4,elec_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: dtmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + + integer(c_int32_t), external :: qmckl_compute_dtmp_c_f + info = qmckl_compute_dtmp_c_f & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) + + end function qmckl_compute_dtmp_c_acc_offload + #+end_src + *** Test #+name: helper_funcs @@ -6140,10 +6313,10 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) /* Choose the correct compute function (depending on offload type) */ bool default_compute = true; -#ifdef HAVE_OPENMP_OFFLOAD - if(ctx->jastrow.offload_type == OFFLOAD_OPENMP) { + #ifdef HAVE_OPENACC_OFFLOAD + if(ctx->jastrow.offload_type == OFFLOAD_OPENACC) { qmckl_exit_code rc = - qmckl_compute_factor_een_deriv_e_omp_offload(context, + qmckl_compute_factor_een_deriv_e_acc_offload(context, ctx->electron.walk_num, ctx->electron.num, ctx->nucleus.num, @@ -6157,8 +6330,11 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_n_deriv_e, ctx->jastrow.factor_een_deriv_e); default_compute = false; + if (rc != QMCKL_SUCCESS) { + return rc; + } } -#endif + #endif if(default_compute) { qmckl_exit_code rc = @@ -6175,10 +6351,9 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.een_rescaled_n_deriv_e, ctx->jastrow.factor_een_deriv_e); - } - - if (rc != QMCKL_SUCCESS) { - return rc; + if (rc != QMCKL_SUCCESS) { + return rc; + } } ctx->jastrow.factor_een_deriv_e_date = ctx->date; @@ -6577,14 +6752,14 @@ end function qmckl_compute_factor_een_deriv_e_f end function qmckl_compute_factor_een_deriv_e #+end_src -*** Compute (OpenMP offload)... +*** Compute (OpenACC offload) :PROPERTIES: :Name: qmckl_compute_factor_een_deriv_e :CRetType: qmckl_exit_code :FRetType: qmckl_exit_code :END: - #+NAME: qmckl_factor_een_deriv_e_omp_offload_args + #+NAME: qmckl_factor_een_deriv_e_acc_offload_args | Variable | Type | In/Out | Description | |--------------------------+---------------------------------------------------------------------+--------+------------------------------------------------| | ~context~ | ~qmckl_context~ | in | Global state | @@ -6603,9 +6778,8 @@ end function qmckl_compute_factor_een_deriv_e_f #+begin_src f90 :comments org :tangle (eval f) :noweb yes -#ifdef HAVE_OPENMP_OFFLOAD -! TODO Add some offload statements -integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & +#ifdef HAVE_OPENACC_OFFLOAD +integer function qmckl_compute_factor_een_deriv_e_acc_offload_f(context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & cord_vect_full, lkpm_combined_index, & tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_deriv_e, factor_een_deriv_e) & result(info) @@ -6653,8 +6827,8 @@ integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_nu factor_een_deriv_e = 0.0d0 + !$acc parallel do nw =1, walk_num - !$omp target do n = 1, dim_cord_vect l = lkpm_combined_index(n, 1) k = lkpm_combined_index(n, 2) @@ -6665,6 +6839,7 @@ integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_nu cn = cord_vect_full(a, n) if(cn == 0.d0) cycle + !$acc loop collapse(2) do ii = 1, 4 do j = 1, elec_num factor_een_deriv_e(j,ii,nw) = factor_een_deriv_e(j,ii,nw) + (& @@ -6677,6 +6852,8 @@ integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_nu end do cn = cn + cn + + !$acc loop do j = 1, elec_num factor_een_deriv_e(j,4,nw) = factor_een_deriv_e(j,4,nw) + (& (dtmp_c(j,1,a,m ,k,nw)) * een_rescaled_n_deriv_e(j,1,a,m+l,nw) + & @@ -6689,19 +6866,18 @@ integer function qmckl_compute_factor_een_deriv_e_omp_offload_f(context, walk_nu end do end do end do - !$omp end target end do - -end function qmckl_compute_factor_een_deriv_e_omp_offload_f + !$acc end parallel +end function qmckl_compute_factor_een_deriv_e_acc_offload_f #endif #+end_src - #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_omp_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org -#ifdef HAVE_OPENMP_OFFLOAD - qmckl_exit_code qmckl_compute_factor_een_deriv_e_omp_offload ( +#ifdef HAVE_OPENACC_OFFLOAD + qmckl_exit_code qmckl_compute_factor_een_deriv_e_acc_offload ( const qmckl_context context, const int64_t walk_num, const int64_t elec_num, @@ -6718,12 +6894,12 @@ end function qmckl_compute_factor_een_deriv_e_omp_offload_f #endif #+end_src -#+CALL: generate_c_interface(table=qmckl_factor_een_deriv_e_omp_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +#+CALL: generate_c_interface(table=qmckl_factor_een_deriv_e_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none -#ifdef HAVE_OPENMP_OFFLOAD - integer(c_int32_t) function qmckl_compute_factor_een_deriv_e_omp_offload & +#ifdef HAVE_OPENACC_OFFLOAD + integer(c_int32_t) function qmckl_compute_factor_een_deriv_e_acc_offload & (context, & walk_num, & elec_num, & @@ -6756,8 +6932,8 @@ end function qmckl_compute_factor_een_deriv_e_omp_offload_f real (c_double ) , intent(in) :: een_rescaled_n_deriv_e(elec_num,4,nucl_num,0:cord_num,walk_num) real (c_double ) , intent(out) :: factor_een_deriv_e(elec_num,4,walk_num) - integer(c_int32_t), external :: qmckl_compute_factor_een_deriv_e_omp_offload_f - info = qmckl_compute_factor_een_deriv_e_omp_offload_f & + integer(c_int32_t), external :: qmckl_compute_factor_een_deriv_e_acc_offload_f + info = qmckl_compute_factor_een_deriv_e_acc_offload_f & (context, & walk_num, & elec_num, & @@ -6772,7 +6948,7 @@ end function qmckl_compute_factor_een_deriv_e_omp_offload_f een_rescaled_n_deriv_e, & factor_een_deriv_e) - end function qmckl_compute_factor_een_deriv_e_omp_offload + end function qmckl_compute_factor_een_deriv_e_acc_offload #endif #+end_src From 9428eaa19e628906ae456fc57680e41652210b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delval?= Date: Wed, 30 Mar 2022 16:16:06 +0200 Subject: [PATCH 022/111] Implement computation of tmp_c and dtmp_c in OpenACC These 2 kernels seem to give good speedup compared to the CPU BLAS versions. However, the current GPU implementation of factor_een_deriv seems to be slightly slower (on the tested machine). TODO: - Try to improve factor_een_deriv GPU implem - Try out a cuBLAS implementation of tmp_c and dtmp_c --- org/qmckl_jastrow.org | 235 +++++++++++++++++++++++++++++++++--------- 1 file changed, 184 insertions(+), 51 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 70e1a8b..ccf0c4e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -4809,19 +4809,41 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) } ctx->jastrow.tmp_c = tmp_c; } + /* Choose the correct compute function (depending on offload type) */ + bool default_compute = true; - qmckl_exit_code rc = - qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - if (rc != QMCKL_SUCCESS) { - return rc; + #ifdef HAVE_OPENACC_OFFLOAD + if(ctx->jastrow.offload_type == OFFLOAD_OPENACC) { + qmckl_exit_code rc = + qmckl_compute_tmp_c_acc_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + if (rc != QMCKL_SUCCESS) { + return rc; + } } + #endif + + if(default_compute) { + qmckl_exit_code rc = + qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + if (rc != QMCKL_SUCCESS) { + return rc; + } + } + ctx->jastrow.tmp_c_date = ctx->date; } @@ -5332,6 +5354,134 @@ end function qmckl_compute_tmp_c_f end function qmckl_compute_tmp_c #+end_src +*** Compute tmp_c (OpenACC offload) + :PROPERTIES: + :Name: qmckl_compute_tmp_c + :CRetType: qmckl_exit_code + :FRetType: qmckl_exit_code + :END: + + #+NAME: qmckl_factor_tmp_c_acc_offload_args + | Variable | Type | In/Out | Description | + |------------------+------------------------------------------------------------------+--------+-----------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~cord_num~ | ~int64_t~ | in | Order of polynomials | + | ~elec_num~ | ~int64_t~ | in | Number of electrons | + | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | + | ~walk_num~ | ~int64_t~ | in | Number of walkers | + | ~een_rescaled_e~ | ~double[walk_num][0:cord_num][elec_num][elec_num]~ | in | Electron-electron rescaled factor | + | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | + | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | + + #+begin_src f90 :comments org :tangle (eval f) :noweb yes +integer function qmckl_compute_tmp_c_acc_offload_f(context, cord_num, elec_num, nucl_num, & + walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & + result(info) + use qmckl + implicit none + integer(qmckl_context), intent(in) :: context + integer*8 , intent(in) :: cord_num + integer*8 , intent(in) :: elec_num + integer*8 , intent(in) :: nucl_num + integer*8 , intent(in) :: walk_num + double precision , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num) + double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) + double precision , intent(out) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + double precision :: tmp + integer*8 :: i, j, jj, k, l, p, lmax, nw + + + info = QMCKL_SUCCESS + if (context == QMCKL_NULL_CONTEXT) then + info = QMCKL_INVALID_CONTEXT + return + endif + + if (cord_num <= 0) then + info = QMCKL_INVALID_ARG_2 + return + endif + + if (elec_num <= 0) then + info = QMCKL_INVALID_ARG_3 + return + endif + + if (nucl_num <= 0) then + info = QMCKL_INVALID_ARG_4 + return + endif + + !$acc parallel + !$acc loop independent gang worker vector collapse(5) + do nw=1, walk_num + do i=0, cord_num-1 + + do j=0,cord_num + do jj=1,nucl_num + do k=1,elec_num + + tmp = 0.0 + do l=1,elec_num + tmp = tmp + & + een_rescaled_e(k, l, i, nw) * een_rescaled_n(l, jj, j, nw) + end do + tmp_c(k, jj, j, i, nw) = tmp + + end do + end do + end do + + end do + end do + !$acc end parallel + + +end function qmckl_compute_tmp_c_acc_offload_f + #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_tmp_c_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_tmp_c_acc_offload ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + + + #+CALL: generate_c_interface(table=qmckl_factor_tmp_c_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src f90 :tangle (eval f) :comments org :exports none + integer(c_int32_t) function qmckl_compute_tmp_c_acc_offload & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & + bind(C) result(info) + + use, intrinsic :: iso_c_binding + implicit none + + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + + integer(c_int32_t), external :: qmckl_compute_tmp_c_acc_offload_f + info = qmckl_compute_tmp_c_acc_offload_f & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) + + end function qmckl_compute_tmp_c_acc_offload + #+end_src *** Compute dtmp_c :PROPERTIES: @@ -5495,19 +5645,10 @@ integer function qmckl_compute_dtmp_c_acc_offload_f(context, cord_num, elec_num, double precision , intent(in) :: een_rescaled_e_deriv_e(elec_num, 4, elec_num, 0:cord_num, walk_num) double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) double precision , intent(out) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) - double precision :: x, tmp - integer*8 :: i, j, jj, k2, a, l, kk, p, lmax, nw, ii - character :: TransA, TransB - double precision :: alpha, beta - integer*8 :: M, N, K, LDA, LDB, LDC - - TransA = 'N' - TransB = 'N' - alpha = 1.0d0 - beta = 0.0d0 + double precision :: tmp + integer*8 :: nw, i, j, jj, k, kk, l info = QMCKL_SUCCESS - if (context == QMCKL_NULL_CONTEXT) then info = QMCKL_INVALID_CONTEXT return @@ -5528,44 +5669,32 @@ integer function qmckl_compute_dtmp_c_acc_offload_f(context, cord_num, elec_num, return endif - M = 4*elec_num - N = nucl_num*(cord_num + 1) - K = elec_num - LDA = 4*size(een_rescaled_e_deriv_e,1) - LDB = size(een_rescaled_n,1) - LDC = 4*size(dtmp_c,1) - + !$acc parallel + !$acc loop independent gang worker vector collapse(6) do nw=1, walk_num do i=0, cord_num-1 - ! Single DGEMM - do j=0,cord_num + do j=0,cord_num do jj=1,nucl_num - do k2=1,4 + do k=1,4 do kk=1,elec_num tmp = 0.0 - do l=1,K + do l=1,elec_num tmp = tmp + & - een_rescaled_e_deriv_e(kk, k2, l, i, nw) * een_rescaled_n(l, jj, j, nw) - enddo - ! affect tmp - dtmp_c(kk, k2, jj, j, i, nw ) = tmp + een_rescaled_e_deriv_e(kk, k, l, i, nw) * een_rescaled_n(l, jj, j, nw) + end do + dtmp_c(kk, k, jj, j, i, nw ) = tmp - enddo - enddo - enddo - enddo - - - !info = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & - ! een_rescaled_e_deriv_e(1,1,1,i,nw),LDA*1_8, & - ! een_rescaled_n(1,1,0,nw),LDB*1_8, & - ! beta, & - ! dtmp_c(1,1,1,0,i,nw),LDC) + end do + end do end do end do + end do + end do + !$acc end parallel + end function qmckl_compute_dtmp_c_acc_offload_f #+end_src @@ -5605,8 +5734,8 @@ end function qmckl_compute_dtmp_c_acc_offload_f real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) real (c_double ) , intent(out) :: dtmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) - integer(c_int32_t), external :: qmckl_compute_dtmp_c_f - info = qmckl_compute_dtmp_c_f & + integer(c_int32_t), external :: qmckl_compute_dtmp_c_acc_offload_f + info = qmckl_compute_dtmp_c_acc_offload_f & (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) end function qmckl_compute_dtmp_c_acc_offload @@ -6316,7 +6445,11 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) #ifdef HAVE_OPENACC_OFFLOAD if(ctx->jastrow.offload_type == OFFLOAD_OPENACC) { qmckl_exit_code rc = - qmckl_compute_factor_een_deriv_e_acc_offload(context, + // CPU version + qmckl_compute_factor_een_deriv_e(context, + + // GPU version : No speedup on this kernel yet + // qmckl_compute_factor_een_deriv_e_acc_offload(context, ctx->electron.walk_num, ctx->electron.num, ctx->nucleus.num, From 26bbd6f3412aedac48c55d1a9fbc7325df74d568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delval?= Date: Fri, 1 Apr 2022 09:19:56 +0200 Subject: [PATCH 023/111] Start work on cuBLAS implementation TODO Replace CPU BLAS calls by cuBLAS calls (will probably require to write a Fortran to the functions we're interested in, at least DGEMMs) --- org/qmckl_jastrow.org | 297 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 296 insertions(+), 1 deletion(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index ccf0c4e..8e2a00c 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -330,7 +330,8 @@ kappa_inv = 1.0/kappa #+begin_src c :comments org :tangle (eval h_type) typedef enum qmckl_jastrow_offload_type{ OFFLOAD_NONE, - OFFLOAD_OPENACC + OFFLOAD_OPENACC, + OFFLOAD_CUBLAS } qmckl_jastrow_offload_type; #+end_src @@ -4829,6 +4830,23 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) } #endif + #ifdef HAVE_CUBLAS_OFFLOAD + if(ctx->jastrow.offload_type == OFFLOAD_CUBLAS) { + qmckl_exit_code rc = + qmckl_compute_tmp_c_cublas_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + if (rc != QMCKL_SUCCESS) { + return rc; + } + } + #endif + if(default_compute) { qmckl_exit_code rc = qmckl_compute_tmp_c(context, @@ -4906,6 +4924,24 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) } #endif + #ifdef HAVE_CUBLAS_OFFLOAD + if(ctx->jastrow.offload_type == OFFLOAD_CUBLAS) { + qmckl_exit_code rc = + qmckl_compute_dtmp_c_cublas_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); + default_compute = false; + if (rc != QMCKL_SUCCESS) { + return rc; + } + } + #endif + if(default_compute) { qmckl_exit_code rc = qmckl_compute_dtmp_c(context, @@ -5483,6 +5519,137 @@ end function qmckl_compute_tmp_c_acc_offload_f end function qmckl_compute_tmp_c_acc_offload #+end_src +*** Compute tmp_c (cuBLAS offload) + :PROPERTIES: + :Name: qmckl_compute_tmp_c_cublas_offload + :CRetType: qmckl_exit_code + :FRetType: qmckl_exit_code + :END: + + #+NAME: qmckl_factor_tmp_c_cublas_offload_args + | Variable | Type | In/Out | Description | + |------------------+------------------------------------------------------------------+--------+-----------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~cord_num~ | ~int64_t~ | in | Order of polynomials | + | ~elec_num~ | ~int64_t~ | in | Number of electrons | + | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | + | ~walk_num~ | ~int64_t~ | in | Number of walkers | + | ~een_rescaled_e~ | ~double[walk_num][0:cord_num][elec_num][elec_num]~ | in | Electron-electron rescaled factor | + | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | + | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | + + #+begin_src f90 :comments org :tangle (eval f) :noweb yes +integer function qmckl_compute_tmp_c_cublas_offload_f(context, cord_num, elec_num, nucl_num, & + walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & + result(info) + use qmckl + implicit none + integer(qmckl_context), intent(in) :: context + integer*8 , intent(in) :: cord_num + integer*8 , intent(in) :: elec_num + integer*8 , intent(in) :: nucl_num + integer*8 , intent(in) :: walk_num + double precision , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num) + double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) + double precision , intent(out) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + double precision :: x + integer*8 :: i, j, a, l, kk, p, lmax, nw + character :: TransA, TransB + double precision :: alpha, beta + integer*8 :: M, N, K, LDA, LDB, LDC + + TransA = 'N' + TransB = 'N' + alpha = 1.0d0 + beta = 0.0d0 + + info = QMCKL_SUCCESS + + if (context == QMCKL_NULL_CONTEXT) then + info = QMCKL_INVALID_CONTEXT + return + endif + + if (cord_num <= 0) then + info = QMCKL_INVALID_ARG_2 + return + endif + + if (elec_num <= 0) then + info = QMCKL_INVALID_ARG_3 + return + endif + + if (nucl_num <= 0) then + info = QMCKL_INVALID_ARG_4 + return + endif + + M = elec_num + N = nucl_num*(cord_num + 1) + K = elec_num + LDA = size(een_rescaled_e,1) + LDB = size(een_rescaled_n,1) + LDC = size(tmp_c,1) + + ! Alloc and copy memory on device + + do nw=1, walk_num + do i=0, cord_num-1 + info = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & + een_rescaled_e(1,1,i,nw),LDA*1_8, & + een_rescaled_n(1,1,0,nw),LDB*1_8, & + beta, & + tmp_c(1,1,0,i,nw),LDC) + end do + end do + +end function qmckl_compute_tmp_c_cublas_offload_f + #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_tmp_c_cublas_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_tmp_c_cublas_offload ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + + + #+CALL: generate_c_interface(table=qmckl_factor_tmp_c_cublas_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src f90 :tangle (eval f) :comments org :exports none + integer(c_int32_t) function qmckl_compute_tmp_c_cublas_offload & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & + bind(C) result(info) + + use, intrinsic :: iso_c_binding + implicit none + + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + + integer(c_int32_t), external :: qmckl_compute_tmp_c_cublas_offload_f + info = qmckl_compute_tmp_c_cublas_offload_f & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) + + end function qmckl_compute_tmp_c_cublas_offload + #+end_src + *** Compute dtmp_c :PROPERTIES: :Name: qmckl_compute_dtmp_c @@ -5740,6 +5907,134 @@ end function qmckl_compute_dtmp_c_acc_offload_f end function qmckl_compute_dtmp_c_acc_offload #+end_src +*** Compute dtmp_c (cuBLAS offload) + :PROPERTIES: + :Name: qmckl_compute_dtmp_c + :CRetType: qmckl_exit_code + :FRetType: qmckl_exit_code + :END: + + #+NAME: qmckl_factor_dtmp_c_cublas_offload_args + | Variable | Type | In/Out | Description | + |--------------------------+------------------------------------------------------------------+--------+-----------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~cord_num~ | ~int64_t~ | in | Order of polynomials | + | ~elec_num~ | ~int64_t~ | in | Number of electrons | + | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | + | ~walk_num~ | ~int64_t~ | in | Number of walkers | + | ~een_rescaled_e_deriv_e~ | ~double[walk_num][0:cord_num][elec_num][4][elec_num]~ | in | Electron-electron rescaled factor derivatives | + | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | + | ~dtmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | + + #+begin_src f90 :comments org :tangle (eval f) :noweb yes +integer function qmckl_compute_dtmp_c_cublas_offload_f(context, cord_num, elec_num, nucl_num, & + walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) & + result(info) + use qmckl + implicit none + integer(qmckl_context), intent(in) :: context + integer*8 , intent(in) :: cord_num + integer*8 , intent(in) :: elec_num + integer*8 , intent(in) :: nucl_num + integer*8 , intent(in) :: walk_num + double precision , intent(in) :: een_rescaled_e_deriv_e(elec_num, 4, elec_num, 0:cord_num, walk_num) + double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) + double precision , intent(out) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + double precision :: x + integer*8 :: i, j, a, l, kk, p, lmax, nw, ii + character :: TransA, TransB + double precision :: alpha, beta + integer*8 :: M, N, K, LDA, LDB, LDC + + TransA = 'N' + TransB = 'N' + alpha = 1.0d0 + beta = 0.0d0 + + info = QMCKL_SUCCESS + + if (context == QMCKL_NULL_CONTEXT) then + info = QMCKL_INVALID_CONTEXT + return + endif + + if (cord_num <= 0) then + info = QMCKL_INVALID_ARG_2 + return + endif + + if (elec_num <= 0) then + info = QMCKL_INVALID_ARG_3 + return + endif + + if (nucl_num <= 0) then + info = QMCKL_INVALID_ARG_4 + return + endif + + M = 4*elec_num + N = nucl_num*(cord_num + 1) + K = elec_num + LDA = 4*size(een_rescaled_e_deriv_e,1) + LDB = size(een_rescaled_n,1) + LDC = 4*size(dtmp_c,1) + + do nw=1, walk_num + do i=0, cord_num-1 + info = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & + een_rescaled_e_deriv_e(1,1,1,i,nw),LDA*1_8, & + een_rescaled_n(1,1,0,nw),LDB*1_8, & + beta, & + dtmp_c(1,1,1,0,i,nw),LDC) + end do + end do + +end function qmckl_compute_dtmp_c_cublas_offload_f + #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_dtmp_c_cublas_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_dtmp_c_cublas_offload ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e_deriv_e, + const double* een_rescaled_n, + double* const dtmp_c ); + #+end_src + + + #+CALL: generate_c_interface(table=qmckl_factor_dtmp_c_cublas_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + + #+RESULTS: + #+begin_src f90 :tangle (eval f) :comments org :exports none + integer(c_int32_t) function qmckl_compute_dtmp_c_cublas_offload & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) & + bind(C) result(info) + + use, intrinsic :: iso_c_binding + implicit none + + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: een_rescaled_e_deriv_e(elec_num,4,elec_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: dtmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + + integer(c_int32_t), external :: qmckl_compute_dtmp_c_cublas_offload_f + info = qmckl_compute_dtmp_c_cublas_offload_f & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) + + end function qmckl_compute_dtmp_c_cublas_offload + #+end_src *** Test From 1173bb2586ad8938eede917595d216b793a508a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delval?= Date: Fri, 1 Apr 2022 17:56:27 +0200 Subject: [PATCH 024/111] Update configure.ac with cuBLAS support (forgotten in last commit) --- configure.ac | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 8bd6747..d2ac039 100644 --- a/configure.ac +++ b/configure.ac @@ -234,7 +234,7 @@ if test "$FC" = "verificarlo-f"; then FCFLAGS="-Mpreprocess $FCFLAGS" fi -# Enable GPU offloading +## Enable GPU offloading # OpenACC offloading AC_ARG_ENABLE(openacc-offload, [AS_HELP_STRING([--openacc-offload],[Use OpenACC-offloaded functions])], HAVE_OPENACC_OFFLOAD=$enableval, HAVE_OPENACC_OFFLOAD=no) @@ -244,6 +244,21 @@ AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS -DHAVE_OPENACC_OFFLOAD $FCFLAGS" ]) +# cuBLAS offloading +AC_ARG_ENABLE(cublas-offload, [AS_HELP_STRING([--cublas-offload],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$enableval, HAVE_CUBLAS_OFFLOAD=no) +AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ + AC_DEFINE([HAVE_CUBLAS_OFFLOAD], [1], [If defined, activate cuBLAS-offloaded routines]) + FCFLAGS="-DHAVE_CUBLAS_OFFLOAD" +]) + +# General offload +AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes" || test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ + CFLAGS="$OFFLOAD_FLAGS $OFFLOAD_CFLAGS $CFLAGS" + FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS $FCFLAGS" +]) + +## + AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[compile for debugging])], ok=$enableval, ok=no) if test "$ok" = "yes"; then if test "$GCC" = "yes"; then @@ -374,7 +389,8 @@ LDFLAGS:........: ${LDFLAGS} LIBS............: ${LIBS} USE CHAMELEON...: ${with_chameleon} HPC version.....: ${HAVE_HPC} -OpenACC offload : ${HAVE_OPENACC_OFFLOAD} +OpenACC offload.: ${HAVE_OPENACC_OFFLOAD} +cuBLAS offload..: ${HAVE_CUBLAS_OFFLOAD} Package features: ${ARGS} From 84013a5f760cd044e43d3144671a0a266cb65e04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delval?= Date: Mon, 4 Apr 2022 12:12:11 +0200 Subject: [PATCH 025/111] Cleanup before merging into QMCkl's GPU branch --- org/qmckl_blas.org | 92 +++++++++++++++++++++++++++++++++++++++++++ org/qmckl_jastrow.org | 2 +- 2 files changed, 93 insertions(+), 1 deletion(-) diff --git a/org/qmckl_blas.org b/org/qmckl_blas.org index 9cd7e18..0a83b34 100644 --- a/org/qmckl_blas.org +++ b/org/qmckl_blas.org @@ -2288,6 +2288,98 @@ qmckl_transpose (qmckl_context context, #+end_src +* cuBLAS interface (optional) +We propose a cuBLAS version of some QMCkl kernels. However, because cuBLAS is written in C, we need to define a Fortran interface for it. We start by defining functions to manage the cuBLAS handle structure from Fortran, before writing interfaces for the specific cuBLAS functions we are interested in. + +TODO These are the C functions that are supposed to be called from Fortran. We still need to write the interfaces themselves. + +#+begin_src c :tangle (eval h_private_func) :comments org +#ifdef HAVE_CUBLAS_OFFLOAD +#include +#endif +#+end_src + +#+begin_src c :tangle (eval h_private_func) :comments org +#ifdef HAVE_CUBLAS_OFFLOAD +cublasHandle_t* get_cublas_handle_interfaced(); +#endif +#+end_src + +#+begin_src c :comments org :tangle (eval c) :exports none +#ifdef HAVE_CUBLAS_OFFLOAD +cublasHandle_t* get_cublas_handle_interfaced() { + cublasHandle_t* handle = malloc(sizeof(cublasHandle_t)); + + cublasStatus_t status = cublasCreate(handle); + if (status != CUBLAS_STATUS_SUCCESS){ + fprintf(stderr, "Error while initializing cuBLAS\n"); + exit(1); + } + + return handle; +} +#endif +#+end_src + +#+begin_src c :tangle (eval h_private_func) :comments org +#ifdef HAVE_CUBLAS_OFFLOAD +void destroy_cublas_handle_interfaced(cublasHandle_t* handle); +#endif +#+end_src + +#+begin_src c :comments org :tangle (eval c) :exports none +#ifdef HAVE_CUBLAS_OFFLOAD +void destroy_cublas_handle_interfaced(cublasHandle_t* handle) { + if(handle != NULL) { + free(handle); + } +} +#endif +#+end_src + +** DGEMM + +#+begin_src c :tangle (eval h_private_func) :comments org +#ifdef HAVE_CUBLAS_OFFLOAD +cublasStatus_t cublasDgemm_f( + cublasHandle_t* handle, + cublasOperation_t* transa, cublasOperation_t* transb, + int* m, int* n, int* k, + const double* alpha, + const double*A, int* lda, + const double* B, int* ldb, + const double* beta, + double*C, int* ldc +); +#endif +#+end_src + +#+begin_src c :comments org :tangle (eval c) :exports none + +#ifdef HAVE_CUBLAS_OFFLOAD +cublasStatus_t cublasDgemm_f( + cublasHandle_t* handle, + cublasOperation_t* transa, cublasOperation_t* transb, + int* m, int* n, int* k, + const double* alpha, + const double*A, int* lda, + const double* B, int* ldb, + const double* beta, + double*C, int* ldc +) { + return cublasDgemm_f( + handle, + transa, transb, + m, n, k, + alpha, A, lda, B,ldb, + beta, C, ldc + ); +} +#endif +#+end_src + + + * End of files :noexport: diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 8e2a00c..e1a7a18 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5592,7 +5592,7 @@ integer function qmckl_compute_tmp_c_cublas_offload_f(context, cord_num, elec_nu LDB = size(een_rescaled_n,1) LDC = size(tmp_c,1) - ! Alloc and copy memory on device + ! TODO Replace with calls to cuBLAS do nw=1, walk_num do i=0, cord_num-1 From 31a05c47e2de79162743a2feb4b04f0f3681d630 Mon Sep 17 00:00:00 2001 From: hoffer Date: Mon, 4 Apr 2022 12:41:00 +0200 Subject: [PATCH 026/111] Add flags for nvc and nvfortran to support offload --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index fdae5dc..c746a41 100644 --- a/configure.ac +++ b/configure.ac @@ -201,11 +201,11 @@ AS_IF([test "$BLAS_LIBS" == "$LAPACK_LIBS"], [BLAS_LIBS=""]) case $FC in *ifort*) - FCFLAGS="$FCFLAGS -nofor-main" + FCFLAGS="$FCFLAGS -nofor-main -mp -target=gpu" ;; *nvfortran*) - FCFLAGS="$FCFLAGS -fPIC -Mnomain" + FCFLAGS="$FCFLAGS -fPIC -Mnomain -mp -target=gpu" ;; esac From 1f9ea610d44265813dd89bd31fe2a35564da9d42 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 4 Apr 2022 16:56:33 +0200 Subject: [PATCH 027/111] Moved C version of Jastrow into HPC --- org/qmckl_jastrow.org | 349 +++++++++++++++++++++++++++++++----------- 1 file changed, 256 insertions(+), 93 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 9b0370c..d4eaaa8 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1727,7 +1727,7 @@ integer function qmckl_compute_factor_ee_f(context, walk_num, elec_num, up_num, double precision , intent(out) :: factor_ee(walk_num) integer*8 :: i, j, p, ipar, nw - double precision :: pow_ser, x, spin_fact, power_ser + double precision :: x, power_ser, spin_fact info = QMCKL_SUCCESS @@ -1766,7 +1766,7 @@ integer function qmckl_compute_factor_ee_f(context, walk_num, elec_num, up_num, power_ser = power_ser + bord_vector(p + 1) * x end do - if(j .LE. up_num .OR. i .GT. up_num) then + if(j <= up_num .OR. i > up_num) then spin_fact = 0.5d0 ipar = 2 endif @@ -1785,7 +1785,7 @@ end function qmckl_compute_factor_ee_f #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes - qmckl_exit_code qmckl_compute_factor_ee ( +qmckl_exit_code qmckl_compute_factor_ee ( const qmckl_context context, const int64_t walk_num, const int64_t elec_num, @@ -1797,7 +1797,7 @@ end function qmckl_compute_factor_ee_f double* const factor_ee ) { int ipar; // can we use a smaller integer? - double pow_ser, x, x1, spin_fact, power_ser; + double x, x1, spin_fact, power_ser; if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; @@ -2493,8 +2493,8 @@ integer function qmckl_compute_factor_en_f(context, walk_num, elec_num, nucl_num double precision , intent(in) :: en_distance_rescaled(elec_num, nucl_num, walk_num) double precision , intent(out) :: factor_en(walk_num) - integer*8 :: i, a, p, ipar, nw - double precision :: x, spin_fact, power_ser + integer*8 :: i, a, p, nw + double precision :: x, power_ser info = QMCKL_SUCCESS @@ -2563,10 +2563,7 @@ qmckl_exit_code qmckl_compute_factor_en ( const double* en_distance_rescaled, double* const factor_en ) { - - int ipar; - double x, x1, spin_fact, power_ser; - + double x, x1, power_ser; if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; @@ -2584,10 +2581,30 @@ qmckl_exit_code qmckl_compute_factor_en ( return QMCKL_INVALID_ARG_4; } + if (type_nucl_num <= 0) { + return QMCKL_INVALID_ARG_5; + } + + if (type_nucl_vector == NULL) { + return QMCKL_INVALID_ARG_6; + } + if (aord_num <= 0) { return QMCKL_INVALID_ARG_7; } + if (aord_vector == NULL) { + return QMCKL_INVALID_ARG_8; + } + + if (en_distance_rescaled == NULL) { + return QMCKL_INVALID_ARG_9; + } + + if (factor_en == NULL) { + return QMCKL_INVALID_ARG_10; + } + for (int nw = 0; nw < walk_num; ++nw ) { // init array @@ -2826,7 +2843,7 @@ integer function qmckl_compute_factor_en_deriv_e_f(context, walk_num, elec_num, double precision , intent(out) :: factor_en_deriv_e(elec_num,4,walk_num) integer*8 :: i, a, p, ipar, nw, ii - double precision :: x, spin_fact, den, invden, invden2, invden3, xinv + double precision :: x, den, invden, invden2, invden3, xinv double precision :: y, lap1, lap2, lap3, third double precision, dimension(3) :: power_ser_g double precision, dimension(4) :: dx @@ -5264,7 +5281,7 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_tmp_c_f(context, cord_num, elec_num, nucl_num, & +integer function qmckl_compute_tmp_c_doc_f(context, cord_num, elec_num, nucl_num, & walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & result(info) use qmckl @@ -5319,7 +5336,7 @@ integer function qmckl_compute_tmp_c_f(context, cord_num, elec_num, nucl_num, & do nw=1, walk_num do i=0, cord_num-1 - info = qmckl_dgemm(context,TransA, TransB, M, N, K, alpha, & + info = qmckl_dgemm(context, TransA, TransB, M, N, K, alpha, & een_rescaled_e(1,1,i,nw),LDA*1_8, & een_rescaled_n(1,1,0,nw),LDB*1_8, & beta, & @@ -5327,11 +5344,39 @@ integer function qmckl_compute_tmp_c_f(context, cord_num, elec_num, nucl_num, & end do end do -end function qmckl_compute_tmp_c_f +end function qmckl_compute_tmp_c_doc_f #+end_src +#+CALL: generate_c_interface(table=qmckl_factor_tmp_c_args,rettyp=get_value("FRetType"),fname="qmckl_compute_tmp_c_doc") + +#+RESULTS: +#+begin_src f90 :tangle (eval f) :comments org :exports none +integer(c_int32_t) function qmckl_compute_tmp_c_doc & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & + bind(C) result(info) + + use, intrinsic :: iso_c_binding + implicit none + + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + + integer(c_int32_t), external :: qmckl_compute_tmp_c_doc_f + info = qmckl_compute_tmp_c_doc_f & + (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) + +end function qmckl_compute_tmp_c_doc +#+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes -qmckl_exit_code qmckl_compute_tmp_c ( +qmckl_exit_code qmckl_compute_tmp_c_hpc ( const qmckl_context context, const int64_t cord_num, const int64_t elec_num, @@ -5341,17 +5386,6 @@ qmckl_exit_code qmckl_compute_tmp_c ( const double* een_rescaled_n, double* const tmp_c ) { - qmckl_exit_code info; - int i, j, a, l, kk, p, lmax, nw; - char TransA, TransB; - double alpha, beta; - int M, N, K, LDA, LDB, LDC; - - TransA = 'N'; - TransB = 'N'; - alpha = 1.0; - beta = 0.0; - if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } @@ -5368,26 +5402,37 @@ qmckl_exit_code qmckl_compute_tmp_c ( return QMCKL_INVALID_ARG_4; } - M = elec_num; - N = nucl_num*(cord_num + 1); - K = elec_num; - - LDA = sizeof(een_rescaled_e)/sizeof(double); - LDB = sizeof(een_rescaled_n)/sizeof(double); - LDC = sizeof(tmp_c)/sizeof(double); + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_5; + } - for (int nw=0; nw < walk_num; ++nw) { - for (int i=0; i Date: Mon, 4 Apr 2022 17:30:38 +0200 Subject: [PATCH 028/111] Fixed documentation --- org/qmckl_electron.org | 28 ++++++++++++++-------------- org/qmckl_jastrow.org | 38 +++++++++++++++++++------------------- org/qmckl_point.org | 2 +- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/org/qmckl_electron.org b/org/qmckl_electron.org index 33ac366..360d1bf 100644 --- a/org/qmckl_electron.org +++ b/org/qmckl_electron.org @@ -97,8 +97,8 @@ int main() { | ~ee_distance_rescaled_deriv_e_date~ | ~uint64_t~ | Last modification date of the electron-electron distance derivatives | | ~ee_pot~ | ~double[walk_num]~ | Electron-electron rescaled distances derivatives | | ~ee_pot_date~ | ~uint64_t~ | Last modification date of the electron-electron distance derivatives | - | ~en_pot~ | double[walk_num] | Electron-nucleus potential energy | - | ~en_pot_date~ | int64_t | Date when the electron-nucleus potential energy was computed | + | ~en_pot~ | ~double[walk_num]~ | Electron-nucleus potential energy | + | ~en_pot_date~ | ~int64_t~ | Date when the electron-nucleus potential energy was computed | | ~en_distance_rescaled~ | ~double[walk_num][nucl_num][num]~ | Electron-nucleus distances | | ~en_distance_rescaled_date~ | ~uint64_t~ | Last modification date of the electron-electron distances | | ~en_distance_rescaled_deriv_e~ | ~double[walk_num][4][nucl_num][num]~ | Electron-electron rescaled distances derivatives | @@ -1218,7 +1218,7 @@ qmckl_exit_code qmckl_provide_ee_distance_rescaled(qmckl_context context) | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~rescale_factor_kappa_ee~ | ~double~ | in | Factor to rescale ee distances | | ~walk_num~ | ~int64_t~ | in | Number of walkers | - | ~coord~ | ~double[walk_num][3][elec_num]~ | in | Electron coordinates | + | ~coord~ | ~double[3][walk_num][elec_num]~ | in | Electron coordinates | | ~ee_distance~ | ~double[walk_num][elec_num][elec_num]~ | out | Electron-electron rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes @@ -1231,7 +1231,7 @@ integer function qmckl_compute_ee_distance_rescaled_f(context, elec_num, rescale integer*8 , intent(in) :: elec_num double precision , intent(in) :: rescale_factor_kappa_ee integer*8 , intent(in) :: walk_num - double precision , intent(in) :: coord(elec_num,3,walk_num) + double precision , intent(in) :: coord(elec_num,walk_num,3) double precision , intent(out) :: ee_distance_rescaled(elec_num,elec_num,walk_num) integer*8 :: k @@ -1357,7 +1357,7 @@ assert(fabs(ee_distance_rescaled[elec_num*elec_num+1]-0.9985724058042633) < 1.e- #+end_src -** Electron-electron rescaled distance gradients and laplacian with respect to electron coords +** Electron-electron rescaled distance gradients and Laplacian with respect to electron coords The rescaled distances which is given as $R = (1 - \exp{-\kappa r})/\kappa$ needs to be perturbed with respect to the electorn coordinates. @@ -1464,7 +1464,7 @@ qmckl_exit_code qmckl_provide_ee_distance_rescaled_deriv_e(qmckl_context context | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~rescale_factor_kappa_ee~ | ~double~ | in | Factor to rescale ee distances | | ~walk_num~ | ~int64_t~ | in | Number of walkers | - | ~coord~ | ~double[walk_num][3][elec_num]~ | in | Electron coordinates | + | ~coord~ | ~double[3][walk_num][elec_num]~ | in | Electron coordinates | | ~ee_distance_deriv_e~ | ~double[walk_num][4][elec_num][elec_num]~ | out | Electron-electron rescaled distance derivatives | #+begin_src f90 :comments org :tangle (eval f) :noweb yes @@ -1477,7 +1477,7 @@ integer function qmckl_compute_ee_distance_rescaled_deriv_e_f(context, elec_num, integer*8 , intent(in) :: elec_num double precision , intent(in) :: rescale_factor_kappa_ee integer*8 , intent(in) :: walk_num - double precision , intent(in) :: coord(elec_num,3,walk_num) + double precision , intent(in) :: coord(elec_num,walk_num,3) double precision , intent(out) :: ee_distance_rescaled_deriv_e(4,elec_num,elec_num,walk_num) integer*8 :: k @@ -1501,8 +1501,8 @@ integer function qmckl_compute_ee_distance_rescaled_deriv_e_f(context, elec_num, do k=1,walk_num info = qmckl_distance_rescaled_deriv_e(context, 'T', 'T', elec_num, elec_num, & - coord(1,1,k), elec_num, & - coord(1,1,k), elec_num, & + coord(1,k,1), elec_num*walk_num, & + coord(1,k,1), elec_num*walk_num, & ee_distance_rescaled_deriv_e(1,1,1,k), elec_num, rescale_factor_kappa_ee) if (info /= QMCKL_SUCCESS) then exit @@ -1905,7 +1905,7 @@ qmckl_exit_code qmckl_provide_en_distance(qmckl_context context) | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | | ~walk_num~ | ~int64_t~ | in | Number of walkers | - | ~elec_coord~ | ~double[walk_num][3][elec_num]~ | in | Electron coordinates | + | ~elec_coord~ | ~double[3][walk_num][elec_num]~ | in | Electron coordinates | | ~nucl_coord~ | ~double[3][elec_num]~ | in | Nuclear coordinates | | ~en_distance~ | ~double[walk_num][nucl_num][elec_num]~ | out | Electron-nucleus distances | @@ -2183,7 +2183,7 @@ qmckl_exit_code qmckl_provide_en_distance_rescaled(qmckl_context context) | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | | ~rescale_factor_kappa_en~ | ~double~ | in | The factor for rescaled distances | | ~walk_num~ | ~int64_t~ | in | Number of walkers | - | ~elec_coord~ | ~double[walk_num][3][elec_num]~ | in | Electron coordinates | + | ~elec_coord~ | ~double[3][walk_num][elec_num]~ | in | Electron coordinates | | ~nucl_coord~ | ~double[3][elec_num]~ | in | Nuclear coordinates | | ~en_distance_rescaled~ | ~double[walk_num][nucl_num][elec_num]~ | out | Electron-nucleus distances | @@ -2471,9 +2471,9 @@ qmckl_exit_code qmckl_provide_en_distance_rescaled_deriv_e(qmckl_context context | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | | ~rescale_factor_kappa_en~ | ~double~ | in | The factor for rescaled distances | | ~walk_num~ | ~int64_t~ | in | Number of walkers | - | ~elec_coord~ | ~double[walk_num][3][elec_num]~ | in | Electron coordinates | + | ~elec_coord~ | ~double[3][walk_num][elec_num]~ | in | Electron coordinates | | ~nucl_coord~ | ~double[3][elec_num]~ | in | Nuclear coordinates | - | ~en_distance_rescaled_deriv_e~ | ~double[walk_num][4][nucl_num][elec_num]~ | out | Electron-nucleus distance derivatives | + | ~en_distance_rescaled_deriv_e~ | ~double[walk_num][nucl_num][elec_num][4]~ | out | Electron-nucleus distance derivatives | #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_en_distance_rescaled_deriv_e_f(context, elec_num, nucl_num, & @@ -2843,7 +2843,7 @@ assert (rc == QMCKL_SUCCESS); *** Compute :noexport: - # begin_src f90 :comments org :tangle (eval f) :noweb yes + # begin_src f90 :comments org :tangle (eval f) :noweb yes subroutine draw_init_points implicit none BEGIN_DOC diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index d4eaaa8..ff94f28 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -154,25 +154,25 @@ int main() { computed data: - | Variable | Type | In/Out | Description | - |----------------------------+---------------------------------------------------------------------+-------------------------------------------------+---------------------------------| - | ~dim_cord_vect~ | ~int64_t~ | Number of unique C coefficients | | - | ~dim_cord_vect_date~ | ~uint64_t~ | Number of unique C coefficients | | - | ~asymp_jasb~ | ~double[2]~ | Asymptotic component | | - | ~asymp_jasb_date~ | ~uint64_t~ | Asymptotic component | | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | vector of non-zero coefficients | | - | ~cord_vect_full_date~ | ~uint64_t~ | Keep track of changes here | | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | Transform l,k,p, and m into consecutive indices | | - | ~lkpm_combined_index_date~ | ~uint64_t~ | Transform l,k,p, and m into consecutive indices | | - | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | - | ~dtmp_c~ | ~double[walk_num][elec_num][4][nucl_num][0:cord_num][0:cord_num-1]~ | vector of non-zero coefficients | | + | Variable | Type | In/Out | + |----------------------------+-----------------------------------------------------------------+-------------------------------------------------| + | ~dim_cord_vect~ | ~int64_t~ | Number of unique C coefficients | + | ~dim_cord_vect_date~ | ~uint64_t~ | Number of unique C coefficients | + | ~asymp_jasb~ | ~double[2]~ | Asymptotic component | + | ~asymp_jasb_date~ | ~uint64_t~ | Asymptotic component | + | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | vector of non-zero coefficients | + | ~cord_vect_full_date~ | ~uint64_t~ | Keep track of changes here | + | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | Transform l,k,p, and m into consecutive indices | + | ~lkpm_combined_index_date~ | ~uint64_t~ | Transform l,k,p, and m into consecutive indices | + | ~tmp_c~ | ~double[walk_num][cord_num][cord_num+1][nucl_num][elec_num]~ | vector of non-zero coefficients | + | ~dtmp_c~ | ~double[walk_num][elec_num][4][nucl_num][cord_num+1][cord_num]~ | vector of non-zero coefficients | - | ~een_rescaled_n~ | ~double[walk_num][elec_num][nucl_num][0:cord_num]~ | The electron-electron rescaled distances raised to the powers defined by cord | | - | ~een_rescaled_n_date~ | ~uint64_t~ | Keep track of the date of creation | | - | ~een_rescaled_e_deriv_e~ | ~double[walk_num][elec_num][4][elec_num][0:cord_num]~ | The electron-electron rescaled distances raised to the powers defined by cord derivatives wrt electrons | | - | ~een_rescaled_e_deriv_e_date~ | ~uint64_t~ | Keep track of the date of creation | | - | ~een_rescaled_n_deriv_e~ | ~double[walk_num][elec_num][4][nucl_num][0:cord_num]~ | The electron-electron rescaled distances raised to the powers defined by cord derivatives wrt electrons | | - | ~een_rescaled_n_deriv_e_date~ | ~uint64_t~ | Keep track of the date of creation | | + | ~een_rescaled_n~ | ~double[walk_num][cord_num+1][nucl_num][elec_num]~ | The electron-electron rescaled distances raised to the powers defined by cord | + | ~een_rescaled_n_date~ | ~uint64_t~ | Keep track of the date of creation | + | ~een_rescaled_e_deriv_e~ | ~double[walk_num][cord_num+1][elec_num][4][elec_num]~ | The electron-electron rescaled distances raised to the powers defined by cord derivatives wrt electrons | + | ~een_rescaled_e_deriv_e_date~ | ~uint64_t~ | Keep track of the date of creation | + | ~een_rescaled_n_deriv_e~ | ~double[walk_num][cord_num+1][nucl_num][4][elec_num]~ | The electron-electron rescaled distances raised to the powers defined by cord derivatives wrt electrons | + | ~een_rescaled_n_deriv_e_date~ | ~uint64_t~ | Keep track of the date of creation | #+NAME: jastrow_data #+BEGIN_SRC python :results none :exports none @@ -5731,7 +5731,7 @@ qmckl_exit_code qmckl_compute_dtmp_c (const qmckl_context context, #+end_src #+begin_src c :tangle (eval h_private_func) :comments org - qmckl_exit_code qmckl_compute_dtmp_c_hpc ( +qmckl_exit_code qmckl_compute_dtmp_c_hpc ( const qmckl_context context, const int64_t cord_num, const int64_t elec_num, diff --git a/org/qmckl_point.org b/org/qmckl_point.org index 07b0863..e9ce0b7 100644 --- a/org/qmckl_point.org +++ b/org/qmckl_point.org @@ -81,7 +81,7 @@ int main() { |----------+----------------+-------------------------------------------| | ~num~ | ~int64_t~ | Total number of points | | ~date~ | ~uint64_t~ | Last modification date of the coordinates | - | ~coord~ | ~qmckl_matrix~ | ~num~ \times 3 matrix3 | + | ~coord~ | ~qmckl_matrix~ | ~num~ \times 3 matrix | We consider that the matrix is stored 'transposed' and 'normal' corresponds to the 3 \times ~num~ matrix. From bcdbc49d5fdbabbb493a7cb140586e3a1372a07f Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 4 Apr 2022 23:53:58 +0200 Subject: [PATCH 029/111] Cleaning --- org/qmckl_jastrow.org | 91 +++++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 38 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index ff94f28..659f23a 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -2058,9 +2058,10 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) | ~factor_ee_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-electron distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_ee_deriv_e_f(context, walk_num, elec_num, up_num, bord_num, & - bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, & - asymp_jasb, factor_ee_deriv_e) & +integer function qmckl_compute_factor_ee_deriv_e_f( & + context, walk_num, elec_num, up_num, bord_num, & + bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, & + asymp_jasb, factor_ee_deriv_e) & result(info) use qmckl implicit none @@ -2068,7 +2069,7 @@ integer function qmckl_compute_factor_ee_deriv_e_f(context, walk_num, elec_num, integer*8 , intent(in) :: walk_num, elec_num, bord_num, up_num double precision , intent(in) :: bord_vector(bord_num + 1) double precision , intent(in) :: ee_distance_rescaled(elec_num, elec_num,walk_num) - double precision , intent(in) :: ee_distance_rescaled_deriv_e(4,elec_num, elec_num,walk_num) + double precision , intent(in) :: ee_distance_rescaled_deriv_e(4,elec_num, elec_num,walk_num) !TODO double precision , intent(in) :: asymp_jasb(2) double precision , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) @@ -2183,7 +2184,7 @@ end function qmckl_compute_factor_ee_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & +integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & (context, & walk_num, & elec_num, & @@ -2480,9 +2481,10 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) | ~factor_en~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_en_f(context, walk_num, elec_num, nucl_num, type_nucl_num, & - type_nucl_vector, aord_num, aord_vector, & - en_distance_rescaled, factor_en) & +integer function qmckl_compute_factor_en_f( & + context, walk_num, elec_num, nucl_num, type_nucl_num, & + type_nucl_vector, aord_num, aord_vector, & + en_distance_rescaled, factor_en) & result(info) use qmckl implicit none @@ -2828,9 +2830,10 @@ qmckl_exit_code qmckl_provide_factor_en_deriv_e(qmckl_context context) | ~factor_en_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_en_deriv_e_f(context, walk_num, elec_num, nucl_num, type_nucl_num, & - type_nucl_vector, aord_num, aord_vector, & - en_distance_rescaled, en_distance_rescaled_deriv_e, factor_en_deriv_e) & +integer function qmckl_compute_factor_en_deriv_e_f( & + context, walk_num, elec_num, nucl_num, type_nucl_num, & + type_nucl_vector, aord_num, aord_vector, & + en_distance_rescaled, en_distance_rescaled_deriv_e, factor_en_deriv_e) & result(info) use qmckl implicit none @@ -2910,7 +2913,7 @@ integer function qmckl_compute_factor_en_deriv_e_f(context, walk_num, elec_num, lap3 = lap3 - 2.0d0 * aord_vector(2, type_nucl_vector(a)) * dx(ii) * dx(ii) factor_en_deriv_e(i, ii, nw) = factor_en_deriv_e(i, ii, nw) + aord_vector(1, type_nucl_vector(a)) & - * dx(ii) * invden2 & + ,* dx(ii) * invden2 & + power_ser_g(ii) end do @@ -3238,7 +3241,8 @@ qmckl_exit_code qmckl_provide_een_rescaled_e(qmckl_context context) | ~een_rescaled_e~ | ~double[walk_num][0:cord_num][elec_num][elec_num]~ | out | Electron-electron rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_een_rescaled_e_f(context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & +integer function qmckl_compute_een_rescaled_e_f( & + context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & ee_distance, een_rescaled_e) & result(info) use qmckl @@ -3343,7 +3347,8 @@ end function qmckl_compute_een_rescaled_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_een_rescaled_e & - (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e) & + (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & + ee_distance, een_rescaled_e) & bind(C) result(info) use, intrinsic :: iso_c_binding @@ -3574,7 +3579,8 @@ qmckl_exit_code qmckl_provide_een_rescaled_e_deriv_e(qmckl_context context) | ~een_rescaled_e_deriv_e~ | ~double[walk_num][0:cord_num][elec_num][4][elec_num]~ | out | Electron-electron rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_een_rescaled_e_deriv_e_f(context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & +integer function qmckl_compute_factor_een_rescaled_e_deriv_e_f( & + context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & coord_new, ee_distance, een_rescaled_e, een_rescaled_e_deriv_e) & result(info) use qmckl @@ -3951,7 +3957,8 @@ qmckl_exit_code qmckl_provide_een_rescaled_n(qmckl_context context) | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | out | Electron-nucleus rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_een_rescaled_n_f(context, walk_num, elec_num, nucl_num, cord_num, rescale_factor_kappa_en, & +integer function qmckl_compute_een_rescaled_n_f( & + context, walk_num, elec_num, nucl_num, cord_num, rescale_factor_kappa_en, & en_distance, een_rescaled_n) & result(info) use qmckl @@ -4295,9 +4302,10 @@ qmckl_exit_code qmckl_provide_een_rescaled_n_deriv_e(qmckl_context context) | ~een_rescaled_n_deriv_e~ | ~double[walk_num][0:cord_num][nucl_num][4][elec_num]~ | out | Electron-nucleus rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_een_rescaled_n_deriv_e_f(context, walk_num, elec_num, nucl_num, & - cord_num, rescale_factor_kappa_en, & - coord_new, coord, en_distance, een_rescaled_n, een_rescaled_n_deriv_e) & +integer function qmckl_compute_factor_een_rescaled_n_deriv_e_f( & + context, walk_num, elec_num, nucl_num, & + cord_num, rescale_factor_kappa_en, & + coord_new, coord, en_distance, een_rescaled_n, een_rescaled_n_deriv_e) & result(info) use qmckl implicit none @@ -4938,7 +4946,8 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) | ~dim_cord_vect~ | ~int64_t~ | out | dimension of cord_vect_full table | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_dim_cord_vect_f(context, cord_num, dim_cord_vect) & +integer function qmckl_compute_dim_cord_vect_f( & + context, cord_num, dim_cord_vect) & result(info) use qmckl implicit none @@ -5046,7 +5055,8 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | out | Full list of coefficients | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_cord_vect_full_f(context, nucl_num, dim_cord_vect, type_nucl_num, & +integer function qmckl_compute_cord_vect_full_f( & + context, nucl_num, dim_cord_vect, type_nucl_num, & type_nucl_vector, cord_vector, cord_vect_full) & result(info) use qmckl @@ -5148,8 +5158,8 @@ end function qmckl_compute_cord_vect_full_f | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | out | Full list of combined indices | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_lkpm_combined_index_f(context, cord_num, dim_cord_vect, & - lkpm_combined_index) & +integer function qmckl_compute_lkpm_combined_index_f( & + context, cord_num, dim_cord_vect, lkpm_combined_index) & result(info) use qmckl implicit none @@ -5281,7 +5291,8 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_tmp_c_doc_f(context, cord_num, elec_num, nucl_num, & +integer function qmckl_compute_tmp_c_doc_f( & + context, cord_num, elec_num, nucl_num, & walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & result(info) use qmckl @@ -5525,7 +5536,8 @@ qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, | ~dtmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_dtmp_c_doc_f(context, cord_num, elec_num, nucl_num, & +integer function qmckl_compute_dtmp_c_doc_f( & + context, cord_num, elec_num, nucl_num, & walk_num, een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) & result(info) use qmckl @@ -5975,9 +5987,10 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) | ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_een_naive_f(context, walk_num, elec_num, nucl_num, cord_num,& - dim_cord_vect, cord_vect_full, lkpm_combined_index, & - een_rescaled_e, een_rescaled_n, factor_een) & +integer function qmckl_compute_factor_een_naive_f( & + context, walk_num, elec_num, nucl_num, cord_num,& + dim_cord_vect, cord_vect_full, lkpm_combined_index, & + een_rescaled_e, een_rescaled_n, factor_een) & result(info) use qmckl implicit none @@ -6142,9 +6155,10 @@ end function qmckl_compute_factor_een_naive_f | ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_een_f(context, walk_num, elec_num, nucl_num, cord_num, & - dim_cord_vect, cord_vect_full, lkpm_combined_index, & - tmp_c, een_rescaled_n, factor_een) & +integer function qmckl_compute_factor_een_f( & + context, walk_num, elec_num, nucl_num, cord_num, & + dim_cord_vect, cord_vect_full, lkpm_combined_index, & + tmp_c, een_rescaled_n, factor_een) & result(info) use qmckl implicit none @@ -6490,10 +6504,10 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) | ~factor_een_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_een_deriv_e_naive_f(context, walk_num, elec_num, nucl_num, cord_num, & - dim_cord_vect, cord_vect_full, lkpm_combined_index, & - een_rescaled_e, een_rescaled_n, & - een_rescaled_e_deriv_e, een_rescaled_n_deriv_e, factor_een_deriv_e)& +integer function qmckl_compute_factor_een_deriv_e_naive_f( & + context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & + cord_vect_full, lkpm_combined_index, een_rescaled_e, een_rescaled_n, & + een_rescaled_e_deriv_e, een_rescaled_n_deriv_e, factor_een_deriv_e)& result(info) use qmckl implicit none @@ -6689,9 +6703,10 @@ end function qmckl_compute_factor_een_deriv_e_naive_f #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_een_deriv_e_f(context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & - cord_vect_full, lkpm_combined_index, & - tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_deriv_e, factor_een_deriv_e) & +integer function qmckl_compute_factor_een_deriv_e_f( & + context, walk_num, elec_num, nucl_num, & + cord_num, dim_cord_vect, cord_vect_full, lkpm_combined_index, & + tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_deriv_e, factor_een_deriv_e)& result(info) use qmckl implicit none From 511eba58430cc1e448f64fc83ab63c15e6b1eb71 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 5 Apr 2022 09:56:13 +0200 Subject: [PATCH 030/111] Fixed dgemm bug --- org/qmckl_jastrow.org | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 659f23a..5d600f6 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5432,18 +5432,19 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc ( const int64_t LDB = elec_num; const int64_t LDC = elec_num; + const int64_t af = elec_num*elec_num; + const int64_t bf = elec_num*nucl_num*(cord_num+1); + const int64_t cf = bf; + for (int64_t nw=0; nw < walk_num; ++nw) { for (int64_t i=0; i Date: Tue, 5 Apr 2022 10:07:25 +0200 Subject: [PATCH 031/111] Fix flag for nvc and nvfortran --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index c746a41..fe54fc2 100644 --- a/configure.ac +++ b/configure.ac @@ -201,7 +201,7 @@ AS_IF([test "$BLAS_LIBS" == "$LAPACK_LIBS"], [BLAS_LIBS=""]) case $FC in *ifort*) - FCFLAGS="$FCFLAGS -nofor-main -mp -target=gpu" + FCFLAGS="$FCFLAGS -nofor-main" ;; *nvfortran*) @@ -213,7 +213,7 @@ esac case $CC in *nvc*) - CFLAGS="$CFLAGS -fPIC" + CFLAGS="$CFLAGS -fPIC -mp -target=gpu" ;; esac From 98097e8fa738011f5bc6e156968a82c28e20417e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delval?= Date: Tue, 5 Apr 2022 11:02:08 +0200 Subject: [PATCH 032/111] Convert GPU implementations to C TODO : Fix naive implementation which seems to be incorrect (probably an issue with indexing) --- org/qmckl_jastrow.org | 1488 +++++++++++++++++++---------------------- 1 file changed, 683 insertions(+), 805 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index e1a7a18..8736c0b 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -151,6 +151,7 @@ int main() { | ~factor_en_deriv_e_date~ | ~uint64_t~ | out | Keep track of the date for the en derivative | | ~factor_een_deriv_e~ | ~double[4][nelec][walk_num]~ | out | Derivative of the Jastrow factor: electron-electron-nucleus part | | ~factor_een_deriv_e_date~ | ~uint64_t~ | out | Keep track of the date for the een derivative | + | ~offload_type~ | ~qmckl_jastrow_offload_type~ | in | Enum type to change offload type at runtime | computed data: @@ -335,7 +336,7 @@ typedef enum qmckl_jastrow_offload_type{ } qmckl_jastrow_offload_type; #+end_src -#+begin_src c :comments org :tangle (eval h_private_type) + #+begin_src c :comments org :tangle (eval h_private_type) typedef struct qmckl_jastrow_struct{ int32_t uninitialized; int64_t aord_num; @@ -1829,6 +1830,72 @@ integer function qmckl_compute_factor_ee_f(context, walk_num, elec_num, up_num, end function qmckl_compute_factor_ee_f #+end_src +#+begin_src c :comments org :tangle (eval c) :noweb yes + qmckl_exit_code qmckl_compute_factor_ee ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* asymp_jasb, + double* const factor_ee ) { + + int ipar; // can we use a smaller integer? + double pow_ser, x, x1, spin_fact, power_ser; + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (bord_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + for (int nw = 0; nw < walk_num; ++nw) { + factor_ee[nw] = 0.0; // put init array here. + for (int i = 0; i < elec_num; ++i ) { + for (int j = 0; j < i; ++j) { + //x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; + x = ee_distance_rescaled[j + i * elec_num + nw*(elec_num * elec_num)]; + x1 = x; + power_ser = 0.0; + spin_fact = 1.0; + ipar = 0; // index of asymp_jasb + + for (int p = 1; p < bord_num; ++p) { + x = x * x1; + power_ser = power_ser + bord_vector[p + 1] * x; + } + + if(i < up_num || j >= up_num) { + spin_fact = 0.5; + ipar = 1; + } + + factor_ee[nw] = factor_ee[nw] + spin_fact * bord_vector[0] * \ + x1 / \ + (1.0 + bord_vector[1] * \ + x1) \ + -asymp_jasb[ipar] + power_ser; + + } + } + } + + return QMCKL_SUCCESS; +} +#+end_src + #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -1846,49 +1913,7 @@ end function qmckl_compute_factor_ee_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_factor_ee & - (context, & - walk_num, & - elec_num, & - up_num, & - bord_num, & - bord_vector, & - ee_distance_rescaled, & - asymp_jasb, & - factor_ee) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: up_num - integer (c_int64_t) , intent(in) , value :: bord_num - real (c_double ) , intent(in) :: bord_vector(bord_num + 1) - real (c_double ) , intent(in) :: ee_distance_rescaled(elec_num,elec_num,walk_num) - real (c_double ) , intent(in) :: asymp_jasb(2) - real (c_double ) , intent(out) :: factor_ee(walk_num) - - integer(c_int32_t), external :: qmckl_compute_factor_ee_f - info = qmckl_compute_factor_ee_f & - (context, & - walk_num, & - elec_num, & - up_num, & - bord_num, & - bord_vector, & - ee_distance_rescaled, & - asymp_jasb, & - factor_ee) - - end function qmckl_compute_factor_ee - #+end_src *** Test #+begin_src python :results output :exports none :noweb yes @@ -2569,6 +2594,74 @@ integer function qmckl_compute_factor_en_f(context, walk_num, elec_num, nucl_num end function qmckl_compute_factor_en_f #+end_src + + + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_factor_en ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + double* const factor_en ) { + + + int ipar; + double x, x1, spin_fact, power_ser; + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + if (aord_num <= 0) { + return QMCKL_INVALID_ARG_7; + } + + + for (int nw = 0; nw < walk_num; ++nw ) { + // init array + factor_en[nw] = 0.0; + for (int a = 0; a < nucl_num; ++a ) { + for (int i = 0; i < elec_num; ++i ) { + // x = ee_distance_rescaled[j * (walk_num * elec_num) + i * (walk_num) + nw]; + x = en_distance_rescaled[i + a * elec_num + nw * (elec_num * nucl_num)]; + x1 = x; + power_ser = 0.0; + + for (int p = 2; p < aord_num+1; ++p) { + x = x * x1; + power_ser = power_ser + aord_vector[(p+1)-1 + (type_nucl_vector[a]-1) * aord_num] * x; + } + + factor_en[nw] = factor_en[nw] + aord_vector[0 + (type_nucl_vector[a]-1)*aord_num] * x1 / \ + (1.0 + aord_vector[1 + (type_nucl_vector[a]-1) * aord_num] * x1) + \ + power_ser; + + } + } + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -2588,53 +2681,6 @@ end function qmckl_compute_factor_en_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_factor_en & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - aord_num, & - aord_vector, & - en_distance_rescaled, & - factor_en) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: type_nucl_num - integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) - integer (c_int64_t) , intent(in) , value :: aord_num - real (c_double ) , intent(in) :: aord_vector(aord_num + 1, type_nucl_num) - real (c_double ) , intent(in) :: en_distance_rescaled(elec_num, nucl_num, walk_num) - real (c_double ) , intent(out) :: factor_en(walk_num) - - integer(c_int32_t), external :: qmckl_compute_factor_en_f - info = qmckl_compute_factor_en_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - aord_num, & - aord_vector, & - en_distance_rescaled, & - factor_en) - - end function qmckl_compute_factor_en - #+end_src - *** Test #+begin_src python :results output :exports none :noweb yes import numpy as np @@ -4002,6 +4048,70 @@ integer function qmckl_compute_een_rescaled_n_f(context, walk_num, elec_num, nuc end function qmckl_compute_een_rescaled_n_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_een_rescaled_n ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* en_distance, + double* const een_rescaled_n ) { + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_5; + } + + // Prepare table of exponentiated distances raised to appropriate power + for (int i = 0; i < (walk_num*(cord_num+1)*nucl_num*elec_num); ++i) { + een_rescaled_n[i] = 17.0; + } + + for (int nw = 0; nw < walk_num; ++nw) { + for (int a = 0; a < nucl_num; ++a) { + for (int i = 0; i < elec_num; ++i) { + // prepare the actual een table + //een_rescaled_n(:, :, 0, nw) = 1.0d0 + een_rescaled_n[i + a * elec_num + 0 + nw * elec_num*nucl_num*(cord_num+1)] = 1.0; + //een_rescaled_n(i, a, 1, nw) = dexp(-rescale_factor_kappa_en * en_distance(i, a, nw)) + een_rescaled_n[i + a*elec_num + elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)] = exp(-rescale_factor_kappa_en * \ + en_distance[i + a*elec_num + nw*elec_num*nucl_num]); + } + } + + for (int l = 2; l < (cord_num+1); ++l){ + for (int a = 0; a < nucl_num; ++a) { + for (int i = 0; i < elec_num; ++i) { + een_rescaled_n[i + a*elec_num + l*elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)] = een_rescaled_n[i + a*elec_num + (l-1)*elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)] *\ + een_rescaled_n[i + a*elec_num + elec_num*nucl_num + nw*elec_num*nucl_num*(cord_num+1)]; + } + } + } + + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -4017,47 +4127,6 @@ end function qmckl_compute_een_rescaled_n_f double* const een_rescaled_n ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_een_rescaled_n & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - rescale_factor_kappa_en, & - en_distance, & - een_rescaled_n) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: cord_num - real (c_double ) , intent(in) , value :: rescale_factor_kappa_en - real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num) - real (c_double ) , intent(out) :: een_rescaled_n(nucl_num,elec_num,0:cord_num,walk_num) - - integer(c_int32_t), external :: qmckl_compute_een_rescaled_n_f - info = qmckl_compute_een_rescaled_n_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - rescale_factor_kappa_en, & - en_distance, & - een_rescaled_n) - - end function qmckl_compute_een_rescaled_n - #+end_src - *** Test #+begin_src python :results output :exports none :noweb yes @@ -4116,7 +4185,6 @@ assert(fabs(een_rescaled_n[0][1][0][4]-0.023391817607642338) < 1.e-12); assert(fabs(een_rescaled_n[0][2][1][3]-0.880957224822116) < 1.e-12); assert(fabs(een_rescaled_n[0][2][1][4]-0.027185942659395074) < 1.e-12); assert(fabs(een_rescaled_n[0][2][1][5]-0.01343938025140174) < 1.e-12); - #+end_src ** Electron-nucleus rescaled distances for each order and derivatives @@ -4779,7 +4847,6 @@ qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context) qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) { - if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return QMCKL_NULL_CONTEXT; } @@ -4824,6 +4891,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); + default_compute = false; if (rc != QMCKL_SUCCESS) { return rc; } @@ -4841,6 +4909,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); + default_compute = false; if (rc != QMCKL_SUCCESS) { return rc; } @@ -4871,7 +4940,6 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) { - if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return QMCKL_NULL_CONTEXT; } @@ -5020,6 +5088,43 @@ integer function qmckl_compute_dim_cord_vect_f(context, cord_num, dim_cord_vect) end function qmckl_compute_dim_cord_vect_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_dim_cord_vect ( + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_cord_vect){ + + int lmax; + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + *dim_cord_vect = 0; + + for (int p=2; p <= cord_num; ++p){ + for (int k=p-1; k >= 0; --k) { + if (k != 0) { + lmax = p - k; + } else { + lmax = p - k - 2; + } + for (int l = lmax; l >= 0; --l) { + if ( ((p - k - l) & 1)==1) continue; + *dim_cord_vect=*dim_cord_vect+1; + } + } + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -5031,28 +5136,6 @@ end function qmckl_compute_dim_cord_vect_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_dim_cord_vect & - (context, cord_num, dim_cord_vect) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(out) :: dim_cord_vect - - integer(c_int32_t), external :: qmckl_compute_dim_cord_vect_f - info = qmckl_compute_dim_cord_vect_f & - (context, cord_num, dim_cord_vect) - - end function qmckl_compute_dim_cord_vect - #+end_src - *** Compute cord_vect_full :PROPERTIES: :Name: qmckl_compute_cord_vect_full @@ -5171,7 +5254,7 @@ end function qmckl_compute_cord_vect_full_f | ~context~ | ~qmckl_context~ | in | Global state | | ~cord_num~ | ~int64_t~ | in | Order of polynomials | | ~dim_cord_vect~ | ~int64_t~ | in | dimension of cord full table | - | ~lpkm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | out | Full list of combined indices | + | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | out | Full list of combined indices | #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_lkpm_combined_index_f(context, cord_num, dim_cord_vect, & @@ -5227,6 +5310,53 @@ integer function qmckl_compute_lkpm_combined_index_f(context, cord_num, dim_cord end function qmckl_compute_lkpm_combined_index_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_lkpm_combined_index ( + const qmckl_context context, + const int64_t cord_num, + const int64_t dim_cord_vect, + int64_t* const lkpm_combined_index ) { + + int kk, lmax, m; + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (dim_cord_vect <= 0) { + return QMCKL_INVALID_ARG_3; + } + +/* +*/ + kk = 0; + for (int p = 2; p <= cord_num; ++p) { + for (int k=(p-1); k >= 0; --k) { + if (k != 0) { + lmax = p - k; + } else { + lmax = p - k - 2; + } + for (int l=lmax; l >= 0; --l) { + if (((p - k - l) & 1) == 1) continue; + m = (p - k - l)/2; + lkpm_combined_index[kk ] = l; + lkpm_combined_index[kk + dim_cord_vect] = k; + lkpm_combined_index[kk + 2*dim_cord_vect] = p; + lkpm_combined_index[kk + 3*dim_cord_vect] = m; + kk = kk + 1; + } + } + } + + return QMCKL_SUCCESS; +} + #+end_src + #+CALL: generate_c_header(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -5235,32 +5365,10 @@ end function qmckl_compute_lkpm_combined_index_f const qmckl_context context, const int64_t cord_num, const int64_t dim_cord_vect, - int64_t* const lpkm_combined_index ); + int64_t* const lkpm_combined_index ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_lkpm_combined_index & - (context, cord_num, dim_cord_vect, lpkm_combined_index) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect - integer (c_int64_t) , intent(out) :: lpkm_combined_index(dim_cord_vect,4) - - integer(c_int32_t), external :: qmckl_compute_lkpm_combined_index_f - info = qmckl_compute_lkpm_combined_index_f & - (context, cord_num, dim_cord_vect, lpkm_combined_index) - - end function qmckl_compute_lkpm_combined_index - #+end_src *** Compute tmp_c :PROPERTIES: @@ -5348,6 +5456,73 @@ integer function qmckl_compute_tmp_c_f(context, cord_num, elec_num, nucl_num, & end function qmckl_compute_tmp_c_f #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_tmp_c ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) { + + qmckl_exit_code info; + int i, j, a, l, kk, p, lmax, nw; + char TransA, TransB; + double alpha, beta; + int M, N, K, LDA, LDB, LDC; + + TransA = 'N'; + TransB = 'N'; + alpha = 1.0; + beta = 0.0; + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + M = elec_num; + N = nucl_num*(cord_num + 1); + K = elec_num; + + LDA = sizeof(een_rescaled_e)/sizeof(double); + LDB = sizeof(een_rescaled_n)/sizeof(double); + LDC = sizeof(tmp_c)/sizeof(double); + + for (int nw=0; nw < walk_num; ++nw) { + for (int i=0; ijastrow.factor_een_deriv_e = factor_een_deriv_e; } - /* Choose the correct compute function (depending on offload type) */ - bool default_compute = true; - - #ifdef HAVE_OPENACC_OFFLOAD - if(ctx->jastrow.offload_type == OFFLOAD_OPENACC) { - qmckl_exit_code rc = - // CPU version - qmckl_compute_factor_een_deriv_e(context, - - // GPU version : No speedup on this kernel yet - // qmckl_compute_factor_een_deriv_e_acc_offload(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, - ctx->jastrow.lkpm_combined_index, - ctx->jastrow.tmp_c, - ctx->jastrow.dtmp_c, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.een_rescaled_n_deriv_e, - ctx->jastrow.factor_een_deriv_e); - default_compute = false; - if (rc != QMCKL_SUCCESS) { - return rc; - } - } - #endif - - if(default_compute) { qmckl_exit_code rc = qmckl_compute_factor_een_deriv_e(context, ctx->electron.walk_num, @@ -6779,9 +6858,8 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.een_rescaled_n_deriv_e, ctx->jastrow.factor_een_deriv_e); - if (rc != QMCKL_SUCCESS) { - return rc; - } + if (rc != QMCKL_SUCCESS) { + return rc; } ctx->jastrow.factor_een_deriv_e_date = ctx->date; @@ -7180,206 +7258,6 @@ end function qmckl_compute_factor_een_deriv_e_f end function qmckl_compute_factor_een_deriv_e #+end_src -*** Compute (OpenACC offload) - :PROPERTIES: - :Name: qmckl_compute_factor_een_deriv_e - :CRetType: qmckl_exit_code - :FRetType: qmckl_exit_code - :END: - - #+NAME: qmckl_factor_een_deriv_e_acc_offload_args - | Variable | Type | In/Out | Description | - |--------------------------+---------------------------------------------------------------------+--------+------------------------------------------------| - | ~context~ | ~qmckl_context~ | in | Global state | - | ~walk_num~ | ~int64_t~ | in | Number of walkers | - | ~elec_num~ | ~int64_t~ | in | Number of electrons | - | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | - | ~cord_num~ | ~int64_t~ | in | order of polynomials | - | ~dim_cord_vect~ | ~int64_t~ | in | dimension of full coefficient vector | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | in | full coefficient vector | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | in | combined indices | - | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | in | Temporary intermediate tensor | - | ~dtmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][4][elec_num]~ | in | vector of non-zero coefficients | - | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | - | ~een_rescaled_n_deriv_e~ | ~double[walk_num][0:cord_num][nucl_num][4][elec_num]~ | in | Derivative of Electron-nucleus rescaled factor | - | ~factor_een_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Derivative of Electron-nucleus jastrow | - - - #+begin_src f90 :comments org :tangle (eval f) :noweb yes -#ifdef HAVE_OPENACC_OFFLOAD -integer function qmckl_compute_factor_een_deriv_e_acc_offload_f(context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & - cord_vect_full, lkpm_combined_index, & - tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_deriv_e, factor_een_deriv_e) & - result(info) - use qmckl - implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_cord_vect - integer*8 , intent(in) :: lkpm_combined_index(dim_cord_vect,4) - double precision , intent(in) :: cord_vect_full(nucl_num, dim_cord_vect) - double precision , intent(in) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) - double precision , intent(in) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_n_deriv_e(elec_num, 4, nucl_num, 0:cord_num, walk_num) - double precision , intent(out) :: factor_een_deriv_e(elec_num,4,walk_num) - - integer*8 :: i, a, j, l, k, p, m, n, nw, ii - double precision :: accu, accu2, cn - - info = QMCKL_SUCCESS - - if (context == QMCKL_NULL_CONTEXT) then - info = QMCKL_INVALID_CONTEXT - return - endif - - if (walk_num <= 0) then - info = QMCKL_INVALID_ARG_2 - return - endif - - if (elec_num <= 0) then - info = QMCKL_INVALID_ARG_3 - return - endif - - if (nucl_num <= 0) then - info = QMCKL_INVALID_ARG_4 - return - endif - - if (cord_num <= 0) then - info = QMCKL_INVALID_ARG_5 - return - endif - - factor_een_deriv_e = 0.0d0 - - !$acc parallel - do nw =1, walk_num - do n = 1, dim_cord_vect - l = lkpm_combined_index(n, 1) - k = lkpm_combined_index(n, 2) - p = lkpm_combined_index(n, 3) - m = lkpm_combined_index(n, 4) - - do a = 1, nucl_num - cn = cord_vect_full(a, n) - if(cn == 0.d0) cycle - - !$acc loop collapse(2) - do ii = 1, 4 - do j = 1, elec_num - factor_een_deriv_e(j,ii,nw) = factor_een_deriv_e(j,ii,nw) + (& - tmp_c(j,a,m,k,nw) * een_rescaled_n_deriv_e(j,ii,a,m+l,nw) + & - (dtmp_c(j,ii,a,m,k,nw)) * een_rescaled_n(j,a,m+l,nw) + & - (dtmp_c(j,ii,a,m+l,k,nw)) * een_rescaled_n(j,a,m ,nw) + & - tmp_c(j,a,m+l,k,nw) * een_rescaled_n_deriv_e(j,ii,a,m,nw) & - ) * cn - end do - end do - - cn = cn + cn - - !$acc loop - do j = 1, elec_num - factor_een_deriv_e(j,4,nw) = factor_een_deriv_e(j,4,nw) + (& - (dtmp_c(j,1,a,m ,k,nw)) * een_rescaled_n_deriv_e(j,1,a,m+l,nw) + & - (dtmp_c(j,2,a,m ,k,nw)) * een_rescaled_n_deriv_e(j,2,a,m+l,nw) + & - (dtmp_c(j,3,a,m ,k,nw)) * een_rescaled_n_deriv_e(j,3,a,m+l,nw) + & - (dtmp_c(j,1,a,m+l,k,nw)) * een_rescaled_n_deriv_e(j,1,a,m ,nw) + & - (dtmp_c(j,2,a,m+l,k,nw)) * een_rescaled_n_deriv_e(j,2,a,m ,nw) + & - (dtmp_c(j,3,a,m+l,k,nw)) * een_rescaled_n_deriv_e(j,3,a,m ,nw) & - ) * cn - end do - end do - end do - end do - !$acc end parallel -end function qmckl_compute_factor_een_deriv_e_acc_offload_f -#endif - #+end_src - - #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org -#ifdef HAVE_OPENACC_OFFLOAD - qmckl_exit_code qmckl_compute_factor_een_deriv_e_acc_offload ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, - const int64_t* lkpm_combined_index, - const double* tmp_c, - const double* dtmp_c, - const double* een_rescaled_n, - const double* een_rescaled_n_deriv_e, - double* const factor_een_deriv_e ); -#endif - #+end_src - -#+CALL: generate_c_interface(table=qmckl_factor_een_deriv_e_acc_offload_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none -#ifdef HAVE_OPENACC_OFFLOAD - integer(c_int32_t) function qmckl_compute_factor_een_deriv_e_acc_offload & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_cord_vect, & - cord_vect_full, & - lkpm_combined_index, & - tmp_c, & - dtmp_c, & - een_rescaled_n, & - een_rescaled_n_deriv_e, & - factor_een_deriv_e) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect - real (c_double ) , intent(in) :: cord_vect_full(nucl_num,dim_cord_vect) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_cord_vect,4) - real (c_double ) , intent(in) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) - real (c_double ) , intent(in) :: dtmp_c(elec_num,4,nucl_num,0:cord_num,0:cord_num-1,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n_deriv_e(elec_num,4,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(out) :: factor_een_deriv_e(elec_num,4,walk_num) - - integer(c_int32_t), external :: qmckl_compute_factor_een_deriv_e_acc_offload_f - info = qmckl_compute_factor_een_deriv_e_acc_offload_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_cord_vect, & - cord_vect_full, & - lkpm_combined_index, & - tmp_c, & - dtmp_c, & - een_rescaled_n, & - een_rescaled_n_deriv_e, & - factor_een_deriv_e) - - end function qmckl_compute_factor_een_deriv_e_acc_offload -#endif - #+end_src - *** Test #+begin_src python :results output :exports none :noweb yes import numpy as np From 731fded4a80da4cf66380f6563da435c36a4b4c0 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 5 Apr 2022 10:50:51 +0200 Subject: [PATCH 033/111] warnings --- org/qmckl_determinant.org | 69 +++++++++++++++++---------------------- org/qmckl_nucleus.org | 37 ++++++++++----------- 2 files changed, 48 insertions(+), 58 deletions(-) diff --git a/org/qmckl_determinant.org b/org/qmckl_determinant.org index 0412db6..8c205fc 100644 --- a/org/qmckl_determinant.org +++ b/org/qmckl_determinant.org @@ -1134,36 +1134,28 @@ end function qmckl_compute_det_vgl_beta_f #+begin_src c :tangle (eval c_test) :exports none -#define walk_num chbrclf_walk_num -#define elec_num chbrclf_elec_num -#define shell_num chbrclf_shell_num -#define ao_num chbrclf_ao_num - -int64_t elec_up_num = chbrclf_elec_up_num; -int64_t elec_dn_num = chbrclf_elec_dn_num; double* elec_coord = &(chbrclf_elec_coord[0][0][0]); -const int64_t nucl_num = chbrclf_nucl_num; const double* nucl_charge = chbrclf_charge; const double* nucl_coord = &(chbrclf_nucl_coord[0][0]); -rc = qmckl_set_electron_num (context, elec_up_num, elec_dn_num); +rc = qmckl_set_electron_num (context, chbrclf_elec_up_num, chbrclf_elec_dn_num); assert (rc == QMCKL_SUCCESS); -rc = qmckl_set_electron_walk_num (context, walk_num); +rc = qmckl_set_electron_walk_num (context, chbrclf_walk_num); assert (rc == QMCKL_SUCCESS); assert(qmckl_electron_provided(context)); -rc = qmckl_set_electron_coord (context, 'N', elec_coord, walk_num*elec_num*3); +rc = qmckl_set_electron_coord (context, 'N', elec_coord, chbrclf_walk_num*chbrclf_elec_num*3); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_nucleus_num (context, nucl_num); +rc = qmckl_set_nucleus_num (context, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), nucl_num*3); +rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), chbrclf_nucl_num*3); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_nucleus_charge(context, nucl_charge, nucl_num); +rc = qmckl_set_nucleus_charge(context, nucl_charge, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(qmckl_nucleus_provided(context)); @@ -1195,27 +1187,27 @@ rc = qmckl_set_ao_basis_prim_num (context, chbrclf_prim_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_nucleus_index (context, nucleus_index, nucl_num); +rc = qmckl_set_ao_basis_nucleus_index (context, nucleus_index, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_nucleus_shell_num (context, nucleus_shell_num, nucl_num); +rc = qmckl_set_ao_basis_nucleus_shell_num (context, nucleus_shell_num, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_ang_mom (context, shell_ang_mom, shell_num); +rc = qmckl_set_ao_basis_shell_ang_mom (context, shell_ang_mom, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_factor (context, shell_factor, shell_num); +rc = qmckl_set_ao_basis_shell_factor (context, shell_factor, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_prim_num (context, shell_prim_num, shell_num); +rc = qmckl_set_ao_basis_shell_prim_num (context, shell_prim_num, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_prim_index (context, shell_prim_index, shell_num); +rc = qmckl_set_ao_basis_shell_prim_index (context, shell_prim_index, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); @@ -1239,14 +1231,13 @@ assert(rc == QMCKL_SUCCESS); assert(qmckl_ao_basis_provided(context)); -double ao_vgl[walk_num*elec_num][5][chbrclf_ao_num]; +double ao_vgl[chbrclf_walk_num*chbrclf_elec_num][5][chbrclf_ao_num]; -rc = qmckl_get_ao_basis_ao_vgl(context, &(ao_vgl[0][0][0]), (int64_t) 5*walk_num*elec_num*chbrclf_ao_num); +rc = qmckl_get_ao_basis_ao_vgl(context, &(ao_vgl[0][0][0]), (int64_t) 5*chbrclf_walk_num*chbrclf_elec_num*chbrclf_ao_num); assert (rc == QMCKL_SUCCESS); /* Set up MO data */ -const int64_t mo_num = chbrclf_mo_num; -rc = qmckl_set_mo_basis_mo_num(context, mo_num); +rc = qmckl_set_mo_basis_mo_num(context, chbrclf_mo_num); assert (rc == QMCKL_SUCCESS); const double * mo_coefficient = &(chbrclf_mo_coef[0]); @@ -1256,31 +1247,31 @@ assert (rc == QMCKL_SUCCESS); assert(qmckl_mo_basis_provided(context)); -double mo_vgl[walk_num*elec_num][5][chbrclf_mo_num]; -rc = qmckl_get_mo_basis_mo_vgl(context, &(mo_vgl[0][0][0]), 5*walk_num*elec_num*chbrclf_mo_num); +double mo_vgl[chbrclf_walk_num*chbrclf_elec_num][5][chbrclf_mo_num]; +rc = qmckl_get_mo_basis_mo_vgl(context, &(mo_vgl[0][0][0]), 5*chbrclf_walk_num*chbrclf_elec_num*chbrclf_mo_num); assert (rc == QMCKL_SUCCESS); /* Set up determinant data */ -const int64_t det_num_alpha = 1; -const int64_t det_num_beta = 1; -int64_t mo_index_alpha[det_num_alpha][walk_num][elec_up_num]; -int64_t mo_index_beta[det_num_alpha][walk_num][elec_dn_num]; +#define det_num_alpha 1 +#define det_num_beta 1 +int64_t mo_index_alpha[det_num_alpha][chbrclf_walk_num][chbrclf_elec_up_num]; +int64_t mo_index_beta[det_num_alpha][chbrclf_walk_num][chbrclf_elec_dn_num]; int i, j, k; for(k = 0; k < det_num_alpha; ++k) - for(i = 0; i < walk_num; ++i) - for(j = 0; j < elec_up_num; ++j) + for(i = 0; i < chbrclf_walk_num; ++i) + for(j = 0; j < chbrclf_elec_up_num; ++j) mo_index_alpha[k][i][j] = j + 1; for(k = 0; k < det_num_beta; ++k) - for(i = 0; i < walk_num; ++i) - for(j = 0; j < elec_up_num; ++j) + for(i = 0; i < chbrclf_walk_num; ++i) + for(j = 0; j < chbrclf_elec_up_num; ++j) mo_index_beta[k][i][j] = j + 1; rc = qmckl_set_determinant_type (context, typ); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_determinant_walk_num (context, walk_num); +rc = qmckl_set_determinant_walk_num (context, chbrclf_walk_num); assert (rc == QMCKL_SUCCESS); rc = qmckl_set_determinant_det_num_alpha (context, det_num_alpha); @@ -1297,8 +1288,8 @@ assert (rc == QMCKL_SUCCESS); // Get slater-determinant -double det_vgl_alpha[det_num_alpha][walk_num][5][elec_up_num][elec_up_num]; -double det_vgl_beta[det_num_beta][walk_num][5][elec_dn_num][elec_dn_num]; +double det_vgl_alpha[det_num_alpha][chbrclf_walk_num][5][chbrclf_elec_up_num][chbrclf_elec_up_num]; +double det_vgl_beta[det_num_beta][chbrclf_walk_num][5][chbrclf_elec_dn_num][chbrclf_elec_dn_num]; rc = qmckl_get_det_vgl_alpha(context, &(det_vgl_alpha[0][0][0][0][0])); assert (rc == QMCKL_SUCCESS); @@ -2047,8 +2038,8 @@ end function qmckl_compute_det_inv_matrix_beta_f #+begin_src c :tangle (eval c_test) :exports none // Get adjoint of the slater-determinant -double det_inv_matrix_alpha[det_num_alpha][walk_num][elec_up_num][elec_up_num]; -double det_inv_matrix_beta[det_num_beta][walk_num][elec_dn_num][elec_dn_num]; +double det_inv_matrix_alpha[det_num_alpha][chbrclf_walk_num][chbrclf_elec_up_num][chbrclf_elec_up_num]; +double det_inv_matrix_beta[det_num_beta][chbrclf_walk_num][chbrclf_elec_dn_num][chbrclf_elec_dn_num]; rc = qmckl_get_det_inv_matrix_alpha(context, &(det_inv_matrix_alpha[0][0][0][0])); assert (rc == QMCKL_SUCCESS); diff --git a/org/qmckl_nucleus.org b/org/qmckl_nucleus.org index 319d5d1..e191d3e 100644 --- a/org/qmckl_nucleus.org +++ b/org/qmckl_nucleus.org @@ -672,7 +672,6 @@ end interface ** Test #+begin_src c :tangle (eval c_test) -const int64_t nucl_num = chbrclf_nucl_num; const double* nucl_charge = chbrclf_charge; const double* nucl_coord = &(chbrclf_nucl_coord[0][0]); const double nucl_rescale_factor_kappa = 2.0; @@ -688,13 +687,13 @@ rc = qmckl_get_nucleus_num (context, &n); assert(rc == QMCKL_NOT_PROVIDED); -rc = qmckl_set_nucleus_num (context, nucl_num); +rc = qmckl_set_nucleus_num (context, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_nucleus_provided(context)); rc = qmckl_get_nucleus_num (context, &n); assert(rc == QMCKL_SUCCESS); -assert(n == nucl_num); +assert(n == chbrclf_nucl_num); double k; rc = qmckl_get_nucleus_rescale_factor (context, &k); @@ -709,41 +708,41 @@ rc = qmckl_get_nucleus_rescale_factor (context, &k); assert(rc == QMCKL_SUCCESS); assert(k == nucl_rescale_factor_kappa); -double nucl_coord2[3*nucl_num]; +double nucl_coord2[3*chbrclf_nucl_num]; -rc = qmckl_get_nucleus_coord (context, 'T', nucl_coord2, 3*nucl_num); +rc = qmckl_get_nucleus_coord (context, 'T', nucl_coord2, 3*chbrclf_nucl_num); assert(rc == QMCKL_NOT_PROVIDED); -rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), 3*nucl_num); +rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), 3*chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_nucleus_provided(context)); -rc = qmckl_get_nucleus_coord (context, 'N', nucl_coord2, 3*nucl_num); +rc = qmckl_get_nucleus_coord (context, 'N', nucl_coord2, 3*chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); for (size_t k=0 ; k<3 ; ++k) { - for (int64_t i=0 ; i Date: Tue, 5 Apr 2022 11:44:17 +0200 Subject: [PATCH 034/111] Fixed cppcheck --- .github/workflows/test-build.yml | 1 - org/qmckl_ao.org | 3 +- org/qmckl_blas.org | 6 +- org/qmckl_jastrow.org | 300 +++++++++++------------- org/qmckl_mo.org | 14 +- org/qmckl_sherman_morrison_woodbury.org | 2 +- 6 files changed, 154 insertions(+), 172 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index c7af73f..b4e5b6c 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -4,7 +4,6 @@ on: push: branches: [ master ] pull_request: - branches: [ master ] jobs: x86_ubuntu: diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index 8dd1067..8289aa4 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -2634,9 +2634,10 @@ qmckl_exit_code qmckl_finalize_basis(qmckl_context context) { } } - rc = QMCKL_SUCCESS; #ifdef HAVE_HPC rc = qmckl_finalize_basis_hpc(context); +#else + rc = QMCKL_SUCCESS; #endif return rc; diff --git a/org/qmckl_blas.org b/org/qmckl_blas.org index 9cd7e18..1cf76e4 100644 --- a/org/qmckl_blas.org +++ b/org/qmckl_blas.org @@ -84,8 +84,8 @@ are not intended to be passed to external codes. #+begin_src c :comments org :tangle (eval h_private_type) :exports none typedef struct qmckl_vector { - int64_t size; double* restrict data; + int64_t size; } qmckl_vector; #+end_src @@ -160,8 +160,8 @@ qmckl_vector_free( qmckl_context context, #+begin_src c :comments org :tangle (eval h_private_type) :exports none typedef struct qmckl_matrix { - int64_t size[2]; double* restrict data; + int64_t size[2]; } qmckl_matrix; #+end_src @@ -245,9 +245,9 @@ qmckl_matrix_free( qmckl_context context, #define QMCKL_TENSOR_ORDER_MAX 16 typedef struct qmckl_tensor { + double* restrict data; int64_t order; int64_t size[QMCKL_TENSOR_ORDER_MAX]; - double* restrict data; } qmckl_tensor; #+end_src diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index ffbf713..6eaad62 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -837,7 +837,7 @@ qmckl_set_jastrow_type_nucl_vector(qmckl_context context, } if (ctx->jastrow.type_nucl_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.type_nucl_vector); + rc = qmckl_free(context, ctx->jastrow.type_nucl_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_type_nucl_vector", @@ -896,7 +896,7 @@ qmckl_set_jastrow_aord_vector(qmckl_context context, } if (ctx->jastrow.aord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.aord_vector); + rc = qmckl_free(context, ctx->jastrow.aord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -959,7 +959,7 @@ qmckl_set_jastrow_bord_vector(qmckl_context context, } if (ctx->jastrow.bord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.bord_vector); + rc = qmckl_free(context, ctx->jastrow.bord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -1029,7 +1029,7 @@ qmckl_set_jastrow_cord_vector(qmckl_context context, } if (ctx->jastrow.cord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.cord_vector); + rc = qmckl_free(context, ctx->jastrow.cord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -1388,12 +1388,11 @@ qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context) ctx->jastrow.asymp_jasb = asymp_jasb; } - qmckl_exit_code rc = - qmckl_compute_asymp_jasb(context, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - rescale_factor_kappa_ee, - ctx->jastrow.asymp_jasb); + rc = qmckl_compute_asymp_jasb(context, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + rescale_factor_kappa_ee, + ctx->jastrow.asymp_jasb); if (rc != QMCKL_SUCCESS) { return rc; } @@ -1470,10 +1469,6 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( const double rescale_factor_kappa_ee, double* const asymp_jasb ) { - double kappa_inv, x, asym_one; - - kappa_inv = 1.0 / rescale_factor_kappa_ee; - if (context == QMCKL_NULL_CONTEXT){ return QMCKL_INVALID_CONTEXT; } @@ -1482,14 +1477,15 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( return QMCKL_INVALID_ARG_2; } - asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1] * kappa_inv); + const double kappa_inv = 1.0 / rescale_factor_kappa_ee; + const double asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1] * kappa_inv); asymp_jasb[0] = asym_one; asymp_jasb[1] = 0.5 * asym_one; for (int i = 0 ; i <= 1; ++i) { - x = kappa_inv; + double x = kappa_inv; for (int p = 1; p < bord_num; ++p){ - x = x * kappa_inv; + x *= kappa_inv; asymp_jasb[i] = asymp_jasb[i] + bord_vector[p + 1] * x; } } @@ -1672,16 +1668,15 @@ qmckl_exit_code qmckl_provide_factor_ee(qmckl_context context) ctx->jastrow.factor_ee = factor_ee; } - qmckl_exit_code rc = - qmckl_compute_factor_ee(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->electron.up_num, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - ctx->electron.ee_distance_rescaled, - ctx->jastrow.asymp_jasb, - ctx->jastrow.factor_ee); + rc = qmckl_compute_factor_ee(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->electron.up_num, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + ctx->electron.ee_distance_rescaled, + ctx->jastrow.asymp_jasb, + ctx->jastrow.factor_ee); if (rc != QMCKL_SUCCESS) { return rc; } @@ -2014,17 +2009,16 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) ctx->jastrow.factor_ee_deriv_e = factor_ee_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_ee_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->electron.up_num, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - ctx->electron.ee_distance_rescaled, - ctx->electron.ee_distance_rescaled_deriv_e, - ctx->jastrow.asymp_jasb, - ctx->jastrow.factor_ee_deriv_e); + rc = qmckl_compute_factor_ee_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->electron.up_num, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + ctx->electron.ee_distance_rescaled, + ctx->electron.ee_distance_rescaled_deriv_e, + ctx->jastrow.asymp_jasb, + ctx->jastrow.factor_ee_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -2437,21 +2431,20 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) ctx->jastrow.factor_en = factor_en; } - qmckl_exit_code rc = - qmckl_compute_factor_en(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, - ctx->electron.en_distance_rescaled, - ctx->jastrow.factor_en); + rc = qmckl_compute_factor_en(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.aord_num, + ctx->jastrow.aord_vector, + ctx->electron.en_distance_rescaled, + ctx->jastrow.factor_en); if (rc != QMCKL_SUCCESS) { return rc; } - + ctx->jastrow.factor_en_date = ctx->date; } @@ -2784,18 +2777,17 @@ qmckl_exit_code qmckl_provide_factor_en_deriv_e(qmckl_context context) ctx->jastrow.factor_en_deriv_e = factor_en_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_en_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, - ctx->electron.en_distance_rescaled, - ctx->electron.en_distance_rescaled_deriv_e, - ctx->jastrow.factor_en_deriv_e); + rc = qmckl_compute_factor_en_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.aord_num, + ctx->jastrow.aord_vector, + ctx->electron.en_distance_rescaled, + ctx->electron.en_distance_rescaled_deriv_e, + ctx->jastrow.factor_en_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3203,14 +3195,13 @@ qmckl_exit_code qmckl_provide_een_rescaled_e(qmckl_context context) ctx->jastrow.een_rescaled_e = een_rescaled_e; } - qmckl_exit_code rc = - qmckl_compute_een_rescaled_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_ee, - ctx->electron.ee_distance, - ctx->jastrow.een_rescaled_e); + rc = qmckl_compute_een_rescaled_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_ee, + ctx->electron.ee_distance, + ctx->jastrow.een_rescaled_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3537,16 +3528,15 @@ qmckl_exit_code qmckl_provide_een_rescaled_e_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e = een_rescaled_e_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_rescaled_e_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_ee, - ctx->electron.coord_new.data, - ctx->electron.ee_distance, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_e_deriv_e); + rc = qmckl_compute_factor_een_rescaled_e_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_ee, + ctx->electron.coord_new.data, + ctx->electron.ee_distance, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_e_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3917,15 +3907,14 @@ qmckl_exit_code qmckl_provide_een_rescaled_n(qmckl_context context) ctx->jastrow.een_rescaled_n = een_rescaled_n; } - qmckl_exit_code rc = - qmckl_compute_een_rescaled_n(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_en, - ctx->electron.en_distance, - ctx->jastrow.een_rescaled_n); + rc = qmckl_compute_een_rescaled_n(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_en, + ctx->electron.en_distance, + ctx->jastrow.een_rescaled_n); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4256,18 +4245,17 @@ qmckl_exit_code qmckl_provide_een_rescaled_n_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_n_deriv_e = een_rescaled_n_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_rescaled_n_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_en, - ctx->electron.coord_new.data, - ctx->nucleus.coord.data, - ctx->electron.en_distance, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.een_rescaled_n_deriv_e); + rc = qmckl_compute_factor_een_rescaled_n_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_en, + ctx->electron.coord_new.data, + ctx->nucleus.coord.data, + ctx->electron.en_distance, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.een_rescaled_n_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4758,14 +4746,13 @@ qmckl_exit_code qmckl_provide_cord_vect_full(qmckl_context context) ctx->jastrow.cord_vect_full = cord_vect_full; } - qmckl_exit_code rc = - qmckl_compute_cord_vect_full(context, - ctx->nucleus.num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.cord_vector, - ctx->jastrow.cord_vect_full); + rc = qmckl_compute_cord_vect_full(context, + ctx->nucleus.num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.cord_vector, + ctx->jastrow.cord_vect_full); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4809,11 +4796,10 @@ qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context) ctx->jastrow.lkpm_combined_index = lkpm_combined_index; } - qmckl_exit_code rc = - qmckl_compute_lkpm_combined_index(context, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.lkpm_combined_index); + rc = qmckl_compute_lkpm_combined_index(context, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.lkpm_combined_index); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4858,15 +4844,14 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.tmp_c = tmp_c; } - qmckl_exit_code rc = - qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); + rc = qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4899,7 +4884,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; mem_info.size = (ctx->jastrow.cord_num) * (ctx->jastrow.cord_num + 1) - * 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); + ,* 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); double* dtmp_c = (double*) qmckl_malloc(context, mem_info); if (dtmp_c == NULL) { @@ -4911,15 +4896,14 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.dtmp_c = dtmp_c; } - qmckl_exit_code rc = - qmckl_compute_dtmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); + rc = qmckl_compute_dtmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); if (rc != QMCKL_SUCCESS) { return rc; } @@ -5943,18 +5927,17 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) ctx->jastrow.factor_een = factor_een; } - qmckl_exit_code rc = - qmckl_compute_factor_een(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, - ctx->jastrow.lkpm_combined_index, - ctx->jastrow.tmp_c, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.factor_een); + rc = qmckl_compute_factor_een(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.cord_vect_full, + ctx->jastrow.lkpm_combined_index, + ctx->jastrow.tmp_c, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.factor_een); if (rc != QMCKL_SUCCESS) { return rc; } @@ -6456,20 +6439,19 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.factor_een_deriv_e = factor_een_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, - ctx->jastrow.lkpm_combined_index, - ctx->jastrow.tmp_c, - ctx->jastrow.dtmp_c, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.een_rescaled_n_deriv_e, - ctx->jastrow.factor_een_deriv_e); + rc = qmckl_compute_factor_een_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.cord_vect_full, + ctx->jastrow.lkpm_combined_index, + ctx->jastrow.tmp_c, + ctx->jastrow.dtmp_c, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.een_rescaled_n_deriv_e, + ctx->jastrow.factor_een_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index d920396..0928db6 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -849,13 +849,13 @@ qmckl_compute_mo_basis_mo_vgl_hpc (const qmckl_context context, int64_t n0 = nidx-4; n0 = n0 < 0 ? 0 : n0; - for (int64_t n=n0 ; n < nidx ; n+=1) { - const double* restrict ck = coef_normalized_t + idx[n]*mo_num; - const double a1 = av1[n]; - const double a2 = av2[n]; - const double a3 = av3[n]; - const double a4 = av4[n]; - const double a5 = av5[n]; + for (int64_t m=n0 ; m < nidx ; m+=1) { + const double* restrict ck = coef_normalized_t + idx[m]*mo_num; + const double a1 = av1[m]; + const double a2 = av2[m]; + const double a3 = av3[m]; + const double a4 = av4[m]; + const double a5 = av5[m]; #ifdef HAVE_OPENMP #pragma omp simd diff --git a/org/qmckl_sherman_morrison_woodbury.org b/org/qmckl_sherman_morrison_woodbury.org index 598ad32..ae358e8 100644 --- a/org/qmckl_sherman_morrison_woodbury.org +++ b/org/qmckl_sherman_morrison_woodbury.org @@ -965,7 +965,7 @@ qmckl_exit_code qmckl_sherman_morrison_smw32s(const qmckl_context context, rc = qmckl_woodbury_3(context, LDS, Dim, Updates_3block, Updates_index_3block, breakdown, Slater_inv, determinant); if (rc != 0) { // Send the entire block to slagel_splitting uint64_t l = 0; - rc = qmckl_slagel_splitting(LDS, Dim, 3, Updates_3block, Updates_index_3block, + (void) qmckl_slagel_splitting(LDS, Dim, 3, Updates_3block, Updates_index_3block, breakdown, Slater_inv, later_updates + (Dim * later), later_index + later, &l, determinant); later = later + l; } From 94035929e431eab6a475f287708a0fc5babb427a Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 5 Apr 2022 11:44:17 +0200 Subject: [PATCH 035/111] Fixed cppcheck --- .github/workflows/test-build.yml | 2 - org/qmckl_ao.org | 3 +- org/qmckl_blas.org | 6 +- org/qmckl_jastrow.org | 300 +++++++++++------------- org/qmckl_mo.org | 14 +- org/qmckl_sherman_morrison_woodbury.org | 2 +- 6 files changed, 154 insertions(+), 173 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index c7af73f..12d4503 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -2,9 +2,7 @@ name: test-build on: push: - branches: [ master ] pull_request: - branches: [ master ] jobs: x86_ubuntu: diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index 8dd1067..8289aa4 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -2634,9 +2634,10 @@ qmckl_exit_code qmckl_finalize_basis(qmckl_context context) { } } - rc = QMCKL_SUCCESS; #ifdef HAVE_HPC rc = qmckl_finalize_basis_hpc(context); +#else + rc = QMCKL_SUCCESS; #endif return rc; diff --git a/org/qmckl_blas.org b/org/qmckl_blas.org index 9cd7e18..1cf76e4 100644 --- a/org/qmckl_blas.org +++ b/org/qmckl_blas.org @@ -84,8 +84,8 @@ are not intended to be passed to external codes. #+begin_src c :comments org :tangle (eval h_private_type) :exports none typedef struct qmckl_vector { - int64_t size; double* restrict data; + int64_t size; } qmckl_vector; #+end_src @@ -160,8 +160,8 @@ qmckl_vector_free( qmckl_context context, #+begin_src c :comments org :tangle (eval h_private_type) :exports none typedef struct qmckl_matrix { - int64_t size[2]; double* restrict data; + int64_t size[2]; } qmckl_matrix; #+end_src @@ -245,9 +245,9 @@ qmckl_matrix_free( qmckl_context context, #define QMCKL_TENSOR_ORDER_MAX 16 typedef struct qmckl_tensor { + double* restrict data; int64_t order; int64_t size[QMCKL_TENSOR_ORDER_MAX]; - double* restrict data; } qmckl_tensor; #+end_src diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index ffbf713..6eaad62 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -837,7 +837,7 @@ qmckl_set_jastrow_type_nucl_vector(qmckl_context context, } if (ctx->jastrow.type_nucl_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.type_nucl_vector); + rc = qmckl_free(context, ctx->jastrow.type_nucl_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_type_nucl_vector", @@ -896,7 +896,7 @@ qmckl_set_jastrow_aord_vector(qmckl_context context, } if (ctx->jastrow.aord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.aord_vector); + rc = qmckl_free(context, ctx->jastrow.aord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -959,7 +959,7 @@ qmckl_set_jastrow_bord_vector(qmckl_context context, } if (ctx->jastrow.bord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.bord_vector); + rc = qmckl_free(context, ctx->jastrow.bord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -1029,7 +1029,7 @@ qmckl_set_jastrow_cord_vector(qmckl_context context, } if (ctx->jastrow.cord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.cord_vector); + rc = qmckl_free(context, ctx->jastrow.cord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -1388,12 +1388,11 @@ qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context) ctx->jastrow.asymp_jasb = asymp_jasb; } - qmckl_exit_code rc = - qmckl_compute_asymp_jasb(context, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - rescale_factor_kappa_ee, - ctx->jastrow.asymp_jasb); + rc = qmckl_compute_asymp_jasb(context, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + rescale_factor_kappa_ee, + ctx->jastrow.asymp_jasb); if (rc != QMCKL_SUCCESS) { return rc; } @@ -1470,10 +1469,6 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( const double rescale_factor_kappa_ee, double* const asymp_jasb ) { - double kappa_inv, x, asym_one; - - kappa_inv = 1.0 / rescale_factor_kappa_ee; - if (context == QMCKL_NULL_CONTEXT){ return QMCKL_INVALID_CONTEXT; } @@ -1482,14 +1477,15 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( return QMCKL_INVALID_ARG_2; } - asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1] * kappa_inv); + const double kappa_inv = 1.0 / rescale_factor_kappa_ee; + const double asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1] * kappa_inv); asymp_jasb[0] = asym_one; asymp_jasb[1] = 0.5 * asym_one; for (int i = 0 ; i <= 1; ++i) { - x = kappa_inv; + double x = kappa_inv; for (int p = 1; p < bord_num; ++p){ - x = x * kappa_inv; + x *= kappa_inv; asymp_jasb[i] = asymp_jasb[i] + bord_vector[p + 1] * x; } } @@ -1672,16 +1668,15 @@ qmckl_exit_code qmckl_provide_factor_ee(qmckl_context context) ctx->jastrow.factor_ee = factor_ee; } - qmckl_exit_code rc = - qmckl_compute_factor_ee(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->electron.up_num, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - ctx->electron.ee_distance_rescaled, - ctx->jastrow.asymp_jasb, - ctx->jastrow.factor_ee); + rc = qmckl_compute_factor_ee(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->electron.up_num, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + ctx->electron.ee_distance_rescaled, + ctx->jastrow.asymp_jasb, + ctx->jastrow.factor_ee); if (rc != QMCKL_SUCCESS) { return rc; } @@ -2014,17 +2009,16 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) ctx->jastrow.factor_ee_deriv_e = factor_ee_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_ee_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->electron.up_num, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - ctx->electron.ee_distance_rescaled, - ctx->electron.ee_distance_rescaled_deriv_e, - ctx->jastrow.asymp_jasb, - ctx->jastrow.factor_ee_deriv_e); + rc = qmckl_compute_factor_ee_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->electron.up_num, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + ctx->electron.ee_distance_rescaled, + ctx->electron.ee_distance_rescaled_deriv_e, + ctx->jastrow.asymp_jasb, + ctx->jastrow.factor_ee_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -2437,21 +2431,20 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) ctx->jastrow.factor_en = factor_en; } - qmckl_exit_code rc = - qmckl_compute_factor_en(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, - ctx->electron.en_distance_rescaled, - ctx->jastrow.factor_en); + rc = qmckl_compute_factor_en(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.aord_num, + ctx->jastrow.aord_vector, + ctx->electron.en_distance_rescaled, + ctx->jastrow.factor_en); if (rc != QMCKL_SUCCESS) { return rc; } - + ctx->jastrow.factor_en_date = ctx->date; } @@ -2784,18 +2777,17 @@ qmckl_exit_code qmckl_provide_factor_en_deriv_e(qmckl_context context) ctx->jastrow.factor_en_deriv_e = factor_en_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_en_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, - ctx->electron.en_distance_rescaled, - ctx->electron.en_distance_rescaled_deriv_e, - ctx->jastrow.factor_en_deriv_e); + rc = qmckl_compute_factor_en_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.aord_num, + ctx->jastrow.aord_vector, + ctx->electron.en_distance_rescaled, + ctx->electron.en_distance_rescaled_deriv_e, + ctx->jastrow.factor_en_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3203,14 +3195,13 @@ qmckl_exit_code qmckl_provide_een_rescaled_e(qmckl_context context) ctx->jastrow.een_rescaled_e = een_rescaled_e; } - qmckl_exit_code rc = - qmckl_compute_een_rescaled_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_ee, - ctx->electron.ee_distance, - ctx->jastrow.een_rescaled_e); + rc = qmckl_compute_een_rescaled_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_ee, + ctx->electron.ee_distance, + ctx->jastrow.een_rescaled_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3537,16 +3528,15 @@ qmckl_exit_code qmckl_provide_een_rescaled_e_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e = een_rescaled_e_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_rescaled_e_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_ee, - ctx->electron.coord_new.data, - ctx->electron.ee_distance, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_e_deriv_e); + rc = qmckl_compute_factor_een_rescaled_e_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_ee, + ctx->electron.coord_new.data, + ctx->electron.ee_distance, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_e_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3917,15 +3907,14 @@ qmckl_exit_code qmckl_provide_een_rescaled_n(qmckl_context context) ctx->jastrow.een_rescaled_n = een_rescaled_n; } - qmckl_exit_code rc = - qmckl_compute_een_rescaled_n(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_en, - ctx->electron.en_distance, - ctx->jastrow.een_rescaled_n); + rc = qmckl_compute_een_rescaled_n(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_en, + ctx->electron.en_distance, + ctx->jastrow.een_rescaled_n); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4256,18 +4245,17 @@ qmckl_exit_code qmckl_provide_een_rescaled_n_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_n_deriv_e = een_rescaled_n_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_rescaled_n_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_en, - ctx->electron.coord_new.data, - ctx->nucleus.coord.data, - ctx->electron.en_distance, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.een_rescaled_n_deriv_e); + rc = qmckl_compute_factor_een_rescaled_n_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_en, + ctx->electron.coord_new.data, + ctx->nucleus.coord.data, + ctx->electron.en_distance, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.een_rescaled_n_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4758,14 +4746,13 @@ qmckl_exit_code qmckl_provide_cord_vect_full(qmckl_context context) ctx->jastrow.cord_vect_full = cord_vect_full; } - qmckl_exit_code rc = - qmckl_compute_cord_vect_full(context, - ctx->nucleus.num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.cord_vector, - ctx->jastrow.cord_vect_full); + rc = qmckl_compute_cord_vect_full(context, + ctx->nucleus.num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.cord_vector, + ctx->jastrow.cord_vect_full); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4809,11 +4796,10 @@ qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context) ctx->jastrow.lkpm_combined_index = lkpm_combined_index; } - qmckl_exit_code rc = - qmckl_compute_lkpm_combined_index(context, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.lkpm_combined_index); + rc = qmckl_compute_lkpm_combined_index(context, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.lkpm_combined_index); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4858,15 +4844,14 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.tmp_c = tmp_c; } - qmckl_exit_code rc = - qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); + rc = qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4899,7 +4884,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; mem_info.size = (ctx->jastrow.cord_num) * (ctx->jastrow.cord_num + 1) - * 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); + ,* 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); double* dtmp_c = (double*) qmckl_malloc(context, mem_info); if (dtmp_c == NULL) { @@ -4911,15 +4896,14 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.dtmp_c = dtmp_c; } - qmckl_exit_code rc = - qmckl_compute_dtmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); + rc = qmckl_compute_dtmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); if (rc != QMCKL_SUCCESS) { return rc; } @@ -5943,18 +5927,17 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) ctx->jastrow.factor_een = factor_een; } - qmckl_exit_code rc = - qmckl_compute_factor_een(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, - ctx->jastrow.lkpm_combined_index, - ctx->jastrow.tmp_c, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.factor_een); + rc = qmckl_compute_factor_een(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.cord_vect_full, + ctx->jastrow.lkpm_combined_index, + ctx->jastrow.tmp_c, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.factor_een); if (rc != QMCKL_SUCCESS) { return rc; } @@ -6456,20 +6439,19 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.factor_een_deriv_e = factor_een_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, - ctx->jastrow.lkpm_combined_index, - ctx->jastrow.tmp_c, - ctx->jastrow.dtmp_c, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.een_rescaled_n_deriv_e, - ctx->jastrow.factor_een_deriv_e); + rc = qmckl_compute_factor_een_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.cord_vect_full, + ctx->jastrow.lkpm_combined_index, + ctx->jastrow.tmp_c, + ctx->jastrow.dtmp_c, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.een_rescaled_n_deriv_e, + ctx->jastrow.factor_een_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index d920396..0928db6 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -849,13 +849,13 @@ qmckl_compute_mo_basis_mo_vgl_hpc (const qmckl_context context, int64_t n0 = nidx-4; n0 = n0 < 0 ? 0 : n0; - for (int64_t n=n0 ; n < nidx ; n+=1) { - const double* restrict ck = coef_normalized_t + idx[n]*mo_num; - const double a1 = av1[n]; - const double a2 = av2[n]; - const double a3 = av3[n]; - const double a4 = av4[n]; - const double a5 = av5[n]; + for (int64_t m=n0 ; m < nidx ; m+=1) { + const double* restrict ck = coef_normalized_t + idx[m]*mo_num; + const double a1 = av1[m]; + const double a2 = av2[m]; + const double a3 = av3[m]; + const double a4 = av4[m]; + const double a5 = av5[m]; #ifdef HAVE_OPENMP #pragma omp simd diff --git a/org/qmckl_sherman_morrison_woodbury.org b/org/qmckl_sherman_morrison_woodbury.org index 598ad32..ae358e8 100644 --- a/org/qmckl_sherman_morrison_woodbury.org +++ b/org/qmckl_sherman_morrison_woodbury.org @@ -965,7 +965,7 @@ qmckl_exit_code qmckl_sherman_morrison_smw32s(const qmckl_context context, rc = qmckl_woodbury_3(context, LDS, Dim, Updates_3block, Updates_index_3block, breakdown, Slater_inv, determinant); if (rc != 0) { // Send the entire block to slagel_splitting uint64_t l = 0; - rc = qmckl_slagel_splitting(LDS, Dim, 3, Updates_3block, Updates_index_3block, + (void) qmckl_slagel_splitting(LDS, Dim, 3, Updates_3block, Updates_index_3block, breakdown, Slater_inv, later_updates + (Dim * later), later_index + later, &l, determinant); later = later + l; } From 586eb928013f34376fc9ac8a4d54b2384fec2977 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Tue, 5 Apr 2022 14:23:20 +0200 Subject: [PATCH 036/111] compute_cord_vect_full done --- org/qmckl_jastrow.org | 123 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 101 insertions(+), 22 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 5d600f6..14e1f1e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5055,7 +5055,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | out | Full list of coefficients | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_cord_vect_full_f( & +integer function qmckl_compute_cord_vect_full_doc_f( & context, nucl_num, dim_cord_vect, type_nucl_num, & type_nucl_vector, cord_vector, cord_vect_full) & result(info) @@ -5098,29 +5098,14 @@ integer function qmckl_compute_cord_vect_full_f( & cord_vect_full(a,1:dim_cord_vect) = cord_vector(type_nucl_vector(a),1:dim_cord_vect) end do -end function qmckl_compute_cord_vect_full_f +end function qmckl_compute_cord_vect_full_doc_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org - qmckl_exit_code qmckl_compute_cord_vect_full ( - const qmckl_context context, - const int64_t nucl_num, - const int64_t dim_cord_vect, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ); - #+end_src - - - #+CALL: generate_c_interface(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + #+CALL: generate_c_interface(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname="qmckl_compute_cord_vect_full_doc") #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_cord_vect_full & + integer(c_int32_t) function qmckl_compute_cord_vect_full_doc & (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) & bind(C) result(info) @@ -5135,13 +5120,106 @@ end function qmckl_compute_cord_vect_full_f real (c_double ) , intent(in) :: cord_vector(type_nucl_num,dim_cord_vect) real (c_double ) , intent(out) :: cord_vect_full(nucl_num,dim_cord_vect) - integer(c_int32_t), external :: qmckl_compute_cord_vect_full_f - info = qmckl_compute_cord_vect_full_f & + integer(c_int32_t), external :: qmckl_compute_cord_vect_full_doc_f + info = qmckl_compute_cord_vect_full_doc_f & (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) - end function qmckl_compute_cord_vect_full + end function qmckl_compute_cord_vect_full_doc #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_cord_vect_full_hpc ( + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ) { + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (type_nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + if (dim_cord_vect <= 0) { + return QMCKL_INVALID_ARG_5; + } + + for (int i=0; i < dim_cord_vect; ++i) { + for (int a=0; a < nucl_num; ++a){ + cord_vect_full[a + i*nucl_num] = cord_vector[(type_nucl_vector[a]-1)+i*type_nucl_num]; + } + } + + return QMCKL_SUCCESS; + } + #+end_src + + + #+CALL: generate_c_header(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname="qmckl_compute_cord_vect_full_doc") + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_cord_vect_full ( + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ); + #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_cord_vect_full_doc ( + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ); + #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_cord_vect_full_hpc ( + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_cord_vect_full ( + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ) { + + #ifdef HAVE_HPC + return qmckl_compute_cord_vect_full_hpc(context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full); + #else + return qmckl_compute_cord_vect_full_doc(context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full); + #endif + } + #+end_src + + + *** Compute lkpm_combined_index :PROPERTIES: :Name: qmckl_compute_lkpm_combined_index @@ -6339,6 +6417,7 @@ double factor_een[walk_num]; rc = qmckl_get_jastrow_factor_een(context, &(factor_een[0]),walk_num); assert(fabs(factor_een[0] + 0.37407972141304213) < 1e-12); +return QMCKL_SUCCESS; #+end_src ** Electron-electron-nucleus Jastrow \(f_{een}\) derivative From eb71a752f5bfc8a3afa04d0f0995078163bd35c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delval?= Date: Tue, 5 Apr 2022 14:28:35 +0200 Subject: [PATCH 037/111] Fixed naive GPU kernels and ignored variable issue --- org/ao_grid.f90 | 114 -------------------------- org/qmckl_jastrow.org | 186 +++++++++++++++++++++++++++--------------- 2 files changed, 120 insertions(+), 180 deletions(-) delete mode 100644 org/ao_grid.f90 diff --git a/org/ao_grid.f90 b/org/ao_grid.f90 deleted file mode 100644 index 685313f..0000000 --- a/org/ao_grid.f90 +++ /dev/null @@ -1,114 +0,0 @@ -subroutine qmckl_check_error(rc, message) - use qmckl - implicit none - integer(qmckl_exit_code), intent(in) :: rc - character(len=*) , intent(in) :: message - character(len=128) :: str_buffer - if (rc /= QMCKL_SUCCESS) then - print *, message - call qmckl_string_of_error(rc, str_buffer) - print *, str_buffer - call exit(rc) - end if -end subroutine qmckl_check_error - -program ao_grid - use qmckl - implicit none - - integer(qmckl_context) :: qmckl_ctx ! QMCkl context - integer(qmckl_exit_code) :: rc ! Exit code of QMCkl functions - - character(len=128) :: trexio_filename - character(len=128) :: str_buffer - integer :: ao_id - integer :: point_num_x - - integer(c_int64_t) :: nucl_num - double precision, allocatable :: nucl_coord(:,:) - - integer(c_int64_t) :: point_num - integer(c_int64_t) :: ao_num - integer(c_int64_t) :: ipoint, i, j, k - double precision :: x, y, z, dr(3) - double precision :: rmin(3), rmax(3) - double precision, allocatable :: points(:,:) - double precision, allocatable :: ao_vgl(:,:,:) - -if (iargc() /= 3) then - print *, 'Syntax: ao_grid ' - call exit(-1) -end if -call getarg(1, trexio_filename) -call getarg(2, str_buffer) -read(str_buffer, *) ao_id -call getarg(3, str_buffer) -read(str_buffer, *) point_num_x - -if (point_num_x < 0 .or. point_num_x > 300) then - print *, 'Error: 0 < point_num < 300' - call exit(-1) -end if - -qmckl_ctx = qmckl_context_create() -rc = qmckl_trexio_read(qmckl_ctx, trexio_filename, 1_8*len(trim(trexio_filename))) -call qmckl_check_error(rc, 'Read TREXIO') - -rc = qmckl_get_ao_basis_ao_num(qmckl_ctx, ao_num) -call qmckl_check_error(rc, 'Getting ao_num') - -if (ao_id < 0 .or. ao_id > ao_num) then - print *, 'Error: 0 < ao_id < ', ao_num - call exit(-1) -end if - -rc = qmckl_get_nucleus_num(qmckl_ctx, nucl_num) -call qmckl_check_error(rc, 'Get nucleus num') - -allocate( nucl_coord(3, nucl_num) ) -rc = qmckl_get_nucleus_coord(qmckl_ctx, 'N', nucl_coord, 3_8*nucl_num) -call qmckl_check_error(rc, 'Get nucleus coord') - -rmin(1) = minval( nucl_coord(1,:) ) - 5.d0 -rmin(2) = minval( nucl_coord(2,:) ) - 5.d0 -rmin(3) = minval( nucl_coord(3,:) ) - 5.d0 - -rmax(1) = maxval( nucl_coord(1,:) ) + 5.d0 -rmax(2) = maxval( nucl_coord(2,:) ) + 5.d0 -rmax(3) = maxval( nucl_coord(3,:) ) + 5.d0 - -dr(1:3) = (rmax(1:3) - rmin(1:3)) / dble(point_num_x-1) - -point_num = point_num_x**3 -allocate( points(point_num, 3) ) -ipoint=0 -z = rmin(3) -do k=1,point_num_x - y = rmin(2) - do j=1,point_num_x - x = rmin(1) - do i=1,point_num_x - ipoint = ipoint+1 - points(ipoint,1) = x - points(ipoint,2) = y - points(ipoint,3) = z - x = x + dr(1) - end do - y = y + dr(2) - end do - z = z + dr(3) -end do - -rc = qmckl_set_point(qmckl_ctx, 'T', points, point_num) -call qmckl_check_error(rc, 'Setting points') - -allocate( ao_vgl(ao_num, 5, point_num) ) -rc = qmckl_get_ao_basis_ao_vgl(qmckl_ctx, ao_vgl, ao_num*5_8*point_num) -call qmckl_check_error(rc, 'Setting points') - -do ipoint=1, point_num - print '(3(F16.10,X),E20.10)', points(ipoint, 1:3), ao_vgl(ao_id,1,ipoint) -end do - -deallocate( nucl_coord, points, ao_vgl ) -end program ao_grid diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 46bb5da..e69088c 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -4889,57 +4889,65 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) } ctx->jastrow.tmp_c = tmp_c; } + /* Choose the correct compute function (depending on offload type) */ - bool default_compute = true; + switch(ctx->jastrow.offload_type) { + case OFFLOAD_OPENACC: + #ifdef HAVE_OPENACC_OFFLOAD + rc = + qmckl_compute_tmp_c_acc_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + #elif + rc = qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); - #ifdef HAVE_OPENACC_OFFLOAD - if(ctx->jastrow.offload_type == OFFLOAD_OPENACC) { - qmckl_exit_code rc = - qmckl_compute_tmp_c_acc_offload(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - default_compute = false; - if (rc != QMCKL_SUCCESS) { - return rc; - } + #endif + break; + case OFFLOAD_CUBLAS: + #ifdef HAVE_CUBLAS_OFFLOAD + rc = + qmckl_compute_tmp_c_cublas_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + #elif + rc = qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + #endif + break; + default: + rc = qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + break; } - #endif - - #ifdef HAVE_CUBLAS_OFFLOAD - if(ctx->jastrow.offload_type == OFFLOAD_CUBLAS) { - qmckl_exit_code rc = - qmckl_compute_tmp_c_cublas_offload(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - default_compute = false; - if (rc != QMCKL_SUCCESS) { - return rc; - } - } - #endif - - rc = qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - if (rc != QMCKL_SUCCESS) { - return rc; - } - ctx->jastrow.tmp_c_date = ctx->date; } @@ -4980,15 +4988,61 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.dtmp_c = dtmp_c; } + switch(ctx->jastrow.offload_type) { + case OFFLOAD_OPENACC: + #ifdef HAVE_OPENACC_OFFLOAD + rc = qmckl_compute_dtmp_c_acc_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); + #elif + rc = qmckl_compute_dtmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); + #endif + break; + case OFFLOAD_CUBLAS: + #ifdef HAVE_CUBLAS_OFFLOAD + rc = qmckl_compute_dtmp_c_acc_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); + #elif + rc = qmckl_compute_dtmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); + #endif + break; + default: + rc = qmckl_compute_dtmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); + break; + } - rc = qmckl_compute_dtmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); if (rc != QMCKL_SUCCESS) { return rc; } @@ -5617,7 +5671,6 @@ qmckl_exit_code qmckl_compute_tmp_c_acc_offload ( const double* een_rescaled_n, double* const tmp_c ) { - if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } @@ -5649,8 +5702,8 @@ qmckl_exit_code qmckl_compute_tmp_c_acc_offload ( int stride_j_n = stride_k_n * nucl_num; int stride_nw_n = stride_j_n * (cord_num+1); - //#pragma acc parallel - //#pragma acc loop independent gang worker vector collapse(5) + #pragma acc parallel + #pragma acc loop independent gang worker vector collapse(5) for (int nw=0; nw < walk_num; ++nw) { for (int i=0; i Date: Tue, 5 Apr 2022 14:37:57 +0200 Subject: [PATCH 038/111] Fix preprocessor else and remove old cuBLAS interface --- org/qmckl_blas.org | 92 ------------------------------------------- org/qmckl_jastrow.org | 8 ++-- 2 files changed, 4 insertions(+), 96 deletions(-) diff --git a/org/qmckl_blas.org b/org/qmckl_blas.org index 4f83705..1cf76e4 100644 --- a/org/qmckl_blas.org +++ b/org/qmckl_blas.org @@ -2288,98 +2288,6 @@ qmckl_transpose (qmckl_context context, #+end_src -* cuBLAS interface (optional) -We propose a cuBLAS version of some QMCkl kernels. However, because cuBLAS is written in C, we need to define a Fortran interface for it. We start by defining functions to manage the cuBLAS handle structure from Fortran, before writing interfaces for the specific cuBLAS functions we are interested in. - -TODO These are the C functions that are supposed to be called from Fortran. We still need to write the interfaces themselves. - -#+begin_src c :tangle (eval h_private_func) :comments org -#ifdef HAVE_CUBLAS_OFFLOAD -#include -#endif -#+end_src - -#+begin_src c :tangle (eval h_private_func) :comments org -#ifdef HAVE_CUBLAS_OFFLOAD -cublasHandle_t* get_cublas_handle_interfaced(); -#endif -#+end_src - -#+begin_src c :comments org :tangle (eval c) :exports none -#ifdef HAVE_CUBLAS_OFFLOAD -cublasHandle_t* get_cublas_handle_interfaced() { - cublasHandle_t* handle = malloc(sizeof(cublasHandle_t)); - - cublasStatus_t status = cublasCreate(handle); - if (status != CUBLAS_STATUS_SUCCESS){ - fprintf(stderr, "Error while initializing cuBLAS\n"); - exit(1); - } - - return handle; -} -#endif -#+end_src - -#+begin_src c :tangle (eval h_private_func) :comments org -#ifdef HAVE_CUBLAS_OFFLOAD -void destroy_cublas_handle_interfaced(cublasHandle_t* handle); -#endif -#+end_src - -#+begin_src c :comments org :tangle (eval c) :exports none -#ifdef HAVE_CUBLAS_OFFLOAD -void destroy_cublas_handle_interfaced(cublasHandle_t* handle) { - if(handle != NULL) { - free(handle); - } -} -#endif -#+end_src - -** DGEMM - -#+begin_src c :tangle (eval h_private_func) :comments org -#ifdef HAVE_CUBLAS_OFFLOAD -cublasStatus_t cublasDgemm_f( - cublasHandle_t* handle, - cublasOperation_t* transa, cublasOperation_t* transb, - int* m, int* n, int* k, - const double* alpha, - const double*A, int* lda, - const double* B, int* ldb, - const double* beta, - double*C, int* ldc -); -#endif -#+end_src - -#+begin_src c :comments org :tangle (eval c) :exports none - -#ifdef HAVE_CUBLAS_OFFLOAD -cublasStatus_t cublasDgemm_f( - cublasHandle_t* handle, - cublasOperation_t* transa, cublasOperation_t* transb, - int* m, int* n, int* k, - const double* alpha, - const double*A, int* lda, - const double* B, int* ldb, - const double* beta, - double*C, int* ldc -) { - return cublasDgemm_f( - handle, - transa, transb, - m, n, k, - alpha, A, lda, B,ldb, - beta, C, ldc - ); -} -#endif -#+end_src - - - * End of files :noexport: diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index e69088c..970feb7 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -4903,7 +4903,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); - #elif + #else rc = qmckl_compute_tmp_c(context, ctx->jastrow.cord_num, ctx->electron.num, @@ -4926,7 +4926,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); - #elif + #else rc = qmckl_compute_tmp_c(context, ctx->jastrow.cord_num, ctx->electron.num, @@ -4999,7 +4999,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.dtmp_c); - #elif + #else rc = qmckl_compute_dtmp_c(context, ctx->jastrow.cord_num, ctx->electron.num, @@ -5020,7 +5020,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.dtmp_c); - #elif + #else rc = qmckl_compute_dtmp_c(context, ctx->jastrow.cord_num, ctx->electron.num, From 63c7f8ea72d4c9c14e4c97f28edf64d883d9a9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Delval?= Date: Tue, 5 Apr 2022 16:29:52 +0200 Subject: [PATCH 039/111] Replace placeholder cuBLAS kernels with new C HPC implementation --- org/qmckl_jastrow.org | 110 +++++++++++++++++++++--------------------- 1 file changed, 56 insertions(+), 54 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 970feb7..c602d84 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5783,17 +5783,6 @@ qmckl_exit_code qmckl_compute_tmp_c_cublas_offload ( const double* een_rescaled_n, double* const tmp_c ) { - qmckl_exit_code info; - int i, j, a, l, kk, p, lmax, nw; - char TransA, TransB; - double alpha, beta; - int M, N, K, LDA, LDB, LDC; - - TransA = 'N'; - TransB = 'N'; - alpha = 1.0; - beta = 0.0; - if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } @@ -5810,29 +5799,40 @@ qmckl_exit_code qmckl_compute_tmp_c_cublas_offload ( return QMCKL_INVALID_ARG_4; } - M = elec_num; - N = nucl_num*(cord_num + 1); - K = elec_num; + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_5; + } - LDA = sizeof(een_rescaled_e)/sizeof(double); - LDB = sizeof(een_rescaled_n)/sizeof(double); - LDC = sizeof(tmp_c)/sizeof(double); + qmckl_exit_code info = QMCKL_SUCCESS; - // TODO Replace with cuBLAS calls - for (int nw=0; nw < walk_num; ++nw) { - for (int i=0; i Date: Tue, 5 Apr 2022 16:52:35 +0200 Subject: [PATCH 040/111] Fix info --- org/qmckl_mo.org | 1 + 1 file changed, 1 insertion(+) diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index 0928db6..5010283 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -655,6 +655,7 @@ integer function qmckl_compute_mo_basis_mo_vgl_doc_f(context, & end if end do end do + info = QMCKL_SUCCESS end function qmckl_compute_mo_basis_mo_vgl_doc_f #+end_src From 0489831e18118b9d9888058729fa59302465bc86 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 5 Apr 2022 17:06:29 +0200 Subject: [PATCH 041/111] Simplified configure --- configure.ac | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/configure.ac b/configure.ac index ffa8f99..474442e 100644 --- a/configure.ac +++ b/configure.ac @@ -137,10 +137,10 @@ case "$with_chameleon" in [PKG_CFLAGS="$PKG_CFLAGS $LIBCHAMELEON_CFLAGS" PKG_LIBS="$PKG_LIBS $LIBCHAMELEON_LIBS"] ,[ - + ## something went wrong. ## try to find the package without pkg-config - + ## check that the library is actually new enough. ## by testing for a 1.0.0+ function which we use AC_CHECK_LIB(chameleon,CHAMELEON_finalize,[LIBCHAMELEON_LIBS="-lchameleon"]) @@ -205,18 +205,11 @@ case $FC in ;; *nvfortran*) - FCFLAGS="$FCFLAGS -fPIC -Mnomain -mp -target=gpu" + FCFLAGS="$FCFLAGS -fPIC -Mnomain" ;; esac -case $CC in - - *nvc*) - CFLAGS="$CFLAGS -fPIC -mp -target=gpu" - ;; -esac - # Options. AC_ARG_ENABLE(hpc, [AS_HELP_STRING([--enable-hpc],[Use HPC-optimized functions])], HAVE_HPC=$enableval, HAVE_HPC=no) @@ -243,25 +236,38 @@ fi ## Enable GPU offloading # OpenACC offloading -AC_ARG_ENABLE(openacc-offload, [AS_HELP_STRING([--openacc-offload],[Use OpenACC-offloaded functions])], HAVE_OPENACC_OFFLOAD=$enableval, HAVE_OPENACC_OFFLOAD=no) +AC_ARG_ENABLE(enable-openacc, [AS_HELP_STRING([--enable-openacc],[Use OpenACC-offloaded functions])], HAVE_OPENACC_OFFLOAD=$enableval, HAVE_OPENACC_OFFLOAD=no) AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ - AC_DEFINE([HAVE_OPENACC_OFFLOAD], [1], [If defined, activate OpenACC-offloaded routines]) - CFLAGS="$OFFLOAD_FLAGS $OFFLOAD_CFLAGS $CFLAGS" - FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS -DHAVE_OPENACC_OFFLOAD $FCFLAGS" + AC_DEFINE([HAVE_OPENACC_OFFLOAD], [1], [If defined, activate OpenACC-offloaded routines]) + case $CC in + + *gcc*) + CFLAGS="$CFLAGS -fPIC -fopenacc" + ;; + *nvc*) + CFLAGS="$CFLAGS -fPIC -mp -target=gpu" + ;; + esac + + CFLAGS="$CFLAGS" +# FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS -DHAVE_OPENACC_OFFLOAD $FCFLAGS" ]) # cuBLAS offloading -AC_ARG_ENABLE(cublas-offload, [AS_HELP_STRING([--cublas-offload],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$enableval, HAVE_CUBLAS_OFFLOAD=no) +AC_ARG_ENABLE(enable-cublas, [AS_HELP_STRING([--enable-cublas],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$enableval, HAVE_CUBLAS_OFFLOAD=no) AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ - AC_DEFINE([HAVE_CUBLAS_OFFLOAD], [1], [If defined, activate cuBLAS-offloaded routines]) - FCFLAGS="-DHAVE_CUBLAS_OFFLOAD" + AC_DEFINE([HAVE_CUBLAS_OFFLOAD], [1], [If defined, activate cuBLAS-offloaded routines]) + case $CC in + + *gcc*) + CFLAGS="$CFLAGS -fPIC -fopenacc" + ;; + *nvc*) + CFLAGS="$CFLAGS -fPIC -mp -target=gpu" + ;; + esac ]) -# General offload -AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes" || test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ - CFLAGS="$OFFLOAD_FLAGS $OFFLOAD_CFLAGS $CFLAGS" - FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS $FCFLAGS" -]) ## From 08f01ece894837da3328f7c352beca1399ebf8ad Mon Sep 17 00:00:00 2001 From: 2323 Date: Tue, 5 Apr 2022 17:57:56 +0200 Subject: [PATCH 042/111] Fix configure --- configure.ac | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index 474442e..8013725 100644 --- a/configure.ac +++ b/configure.ac @@ -210,6 +210,16 @@ case $FC in esac +case $CC in + + *gcc*) + CFLAGS="$CFLAGS -fPIC" + ;; + *nvc*) + CFLAGS="$CFLAGS -fPIC" + ;; +esac + # Options. AC_ARG_ENABLE(hpc, [AS_HELP_STRING([--enable-hpc],[Use HPC-optimized functions])], HAVE_HPC=$enableval, HAVE_HPC=no) @@ -236,34 +246,32 @@ fi ## Enable GPU offloading # OpenACC offloading -AC_ARG_ENABLE(enable-openacc, [AS_HELP_STRING([--enable-openacc],[Use OpenACC-offloaded functions])], HAVE_OPENACC_OFFLOAD=$enableval, HAVE_OPENACC_OFFLOAD=no) +AC_ARG_ENABLE(openacc, [AS_HELP_STRING([--enable-openacc],[Use OpenACC-offloaded functions])], HAVE_OPENACC_OFFLOAD=$enableval, HAVE_OPENACC_OFFLOAD=no) AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ AC_DEFINE([HAVE_OPENACC_OFFLOAD], [1], [If defined, activate OpenACC-offloaded routines]) case $CC in *gcc*) - CFLAGS="$CFLAGS -fPIC -fopenacc" + CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -fPIC -mp -target=gpu" + CFLAGS="$CFLAGS -mp -target=gpu" ;; esac - CFLAGS="$CFLAGS" -# FCFLAGS="$OFFLOAD_FLAGS $OFFLOAD_FCFLAGS -DHAVE_OPENACC_OFFLOAD $FCFLAGS" ]) # cuBLAS offloading -AC_ARG_ENABLE(enable-cublas, [AS_HELP_STRING([--enable-cublas],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$enableval, HAVE_CUBLAS_OFFLOAD=no) +AC_ARG_ENABLE(cublas, [AS_HELP_STRING([--enable-cublas],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$enableval, HAVE_CUBLAS_OFFLOAD=no) AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ AC_DEFINE([HAVE_CUBLAS_OFFLOAD], [1], [If defined, activate cuBLAS-offloaded routines]) case $CC in *gcc*) - CFLAGS="$CFLAGS -fPIC -fopenacc" + CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -fPIC -mp -target=gpu" + CFLAGS="$CFLAGS -mp -target=gpu" ;; esac ]) From f02e761b7939888220328220c4ad398c777f7c24 Mon Sep 17 00:00:00 2001 From: 2323 Date: Tue, 5 Apr 2022 19:31:11 +0200 Subject: [PATCH 043/111] Fixed configure.ac for GPUs --- configure.ac | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 8013725..38df570 100644 --- a/configure.ac +++ b/configure.ac @@ -255,7 +255,17 @@ AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -mp -target=gpu" + CFLAGS="$CFLAGS -acc -mp -target=gpu" + ;; + esac + + case $FC in + + *gfortran*) + FCFLAGS="$FCFLAGS -fopenacc" + ;; + *nvfortran*) + FCFLAGS="$FCFLAGS -acc -mp -target=gpu" ;; esac @@ -271,7 +281,17 @@ AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -mp -target=gpu" + CFLAGS="$CFLAGS -acc -mp -target=gpu" + ;; + esac + + case $FC in + + *gfortran*) + FCFLAGS="$FCFLAGS -fopenacc" + ;; + *nvfortran*) + FCFLAGS="$FCFLAGS -acc -mp -target=gpu" ;; esac ]) From 72fad819bf35cdf96a96b9d6ffc0880c570d014f Mon Sep 17 00:00:00 2001 From: 2323 Date: Wed, 6 Apr 2022 10:03:56 +0200 Subject: [PATCH 044/111] Fix flags --- configure.ac | 9 +++++---- org/qmckl_jastrow.org | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 38df570..835f3f9 100644 --- a/configure.ac +++ b/configure.ac @@ -93,6 +93,7 @@ AC_PROG_F77 m4_version_prereq([2.70],[], [AC_PROG_CC_C99]) AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])]) AC_PROG_CC_C_O +AM_PROG_CC_C_O AC_PROG_FC AC_PROG_FC_C_O AC_FC_PP_DEFINE @@ -255,7 +256,7 @@ AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -acc -mp -target=gpu" + CFLAGS="$CFLAGS -acc" ;; esac @@ -265,7 +266,7 @@ AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ FCFLAGS="$FCFLAGS -fopenacc" ;; *nvfortran*) - FCFLAGS="$FCFLAGS -acc -mp -target=gpu" + FCFLAGS="$FCFLAGS -acc" ;; esac @@ -281,7 +282,7 @@ AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -acc -mp -target=gpu" + CFLAGS="$CFLAGS -acc" ;; esac @@ -291,7 +292,7 @@ AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ FCFLAGS="$FCFLAGS -fopenacc" ;; *nvfortran*) - FCFLAGS="$FCFLAGS -acc -mp -target=gpu" + FCFLAGS="$FCFLAGS -acc" ;; esac ]) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index c602d84..017e372 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -737,7 +737,7 @@ qmckl_exit_code qmckl_get_jastrow_offload_type (const qmckl_context context, qmc "offload_type is a null pointer"); } - qmckl_context_struct* const ctx = (qmckl_context_struct* const) context; + qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); int32_t mask = 1 << 0; From 0966e1e2b1f38082419b00d760131579de40bfc4 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 6 Apr 2022 10:42:00 +0200 Subject: [PATCH 045/111] Fix OpenACC --- org/qmckl_jastrow.org | 1060 +++++++++++++++++++++-------------------- 1 file changed, 540 insertions(+), 520 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 017e372..7b5bcee 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1509,11 +1509,11 @@ end function qmckl_compute_asymp_jasb_f #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_asymp_jasb ( - const qmckl_context context, - const int64_t bord_num, - const double* bord_vector, - const double rescale_factor_kappa_ee, - double* const asymp_jasb ) { + const qmckl_context context, + const int64_t bord_num, + const double* bord_vector, + const double rescale_factor_kappa_ee, + double* const asymp_jasb ) { if (context == QMCKL_NULL_CONTEXT){ return QMCKL_INVALID_CONTEXT; @@ -1545,11 +1545,11 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_asymp_jasb ( - const qmckl_context context, - const int64_t bord_num, - const double* bord_vector, - const double rescale_factor_kappa_ee, - double* const asymp_jasb ); + const qmckl_context context, + const int64_t bord_num, + const double* bord_vector, + const double rescale_factor_kappa_ee, + double* const asymp_jasb ); #+end_src @@ -1827,15 +1827,15 @@ end function qmckl_compute_factor_ee_f #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_factor_ee ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t up_num, - const int64_t bord_num, - const double* bord_vector, - const double* ee_distance_rescaled, - const double* asymp_jasb, - double* const factor_ee ) { + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* asymp_jasb, + double* const factor_ee ) { int ipar; // can we use a smaller integer? double x, x1, spin_fact, power_ser; @@ -1896,15 +1896,15 @@ qmckl_exit_code qmckl_compute_factor_ee ( #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_factor_ee ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t up_num, - const int64_t bord_num, - const double* bord_vector, - const double* ee_distance_rescaled, - const double* asymp_jasb, - double* const factor_ee ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* asymp_jasb, + double* const factor_ee ); #+end_src @@ -2207,16 +2207,16 @@ end function qmckl_compute_factor_ee_deriv_e_f #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_factor_ee_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t up_num, - const int64_t bord_num, - const double* bord_vector, - const double* ee_distance_rescaled, - const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, - double* const factor_ee_deriv_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + const double* asymp_jasb, + double* const factor_ee_deriv_e ); #+end_src @@ -2225,17 +2225,17 @@ end function qmckl_compute_factor_ee_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & - (context, & - walk_num, & - elec_num, & - up_num, & - bord_num, & - bord_vector, & - ee_distance_rescaled, & - ee_distance_rescaled_deriv_e, & - asymp_jasb, & - factor_ee_deriv_e) & - bind(C) result(info) + (context, & + walk_num, & + elec_num, & + up_num, & + bord_num, & + bord_vector, & + ee_distance_rescaled, & + ee_distance_rescaled_deriv_e, & + asymp_jasb, & + factor_ee_deriv_e) & + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -2253,16 +2253,16 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & integer(c_int32_t), external :: qmckl_compute_factor_ee_deriv_e_f info = qmckl_compute_factor_ee_deriv_e_f & - (context, & - walk_num, & - elec_num, & - up_num, & - bord_num, & - bord_vector, & - ee_distance_rescaled, & - ee_distance_rescaled_deriv_e, & - asymp_jasb, & - factor_ee_deriv_e) + (context, & + walk_num, & + elec_num, & + up_num, & + bord_num, & + bord_vector, & + ee_distance_rescaled, & + ee_distance_rescaled_deriv_e, & + asymp_jasb, & + factor_ee_deriv_e) end function qmckl_compute_factor_ee_deriv_e #+end_src @@ -2593,16 +2593,16 @@ end function qmckl_compute_factor_en_f #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_factor_en ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const int64_t aord_num, - const double* aord_vector, - const double* en_distance_rescaled, - double* const factor_en ) { + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + double* const factor_en ) { double x, x1, power_ser; @@ -2681,16 +2681,16 @@ qmckl_exit_code qmckl_compute_factor_en ( #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_factor_en ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const int64_t aord_num, - const double* aord_vector, - const double* en_distance_rescaled, - double* const factor_en ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + double* const factor_en ); #+end_src @@ -2975,17 +2975,17 @@ end function qmckl_compute_factor_en_deriv_e_f #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_factor_en_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const int64_t aord_num, - const double* aord_vector, - const double* en_distance_rescaled, - const double* en_distance_rescaled_deriv_e, - double* const factor_en_deriv_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + const double* en_distance_rescaled_deriv_e, + double* const factor_en_deriv_e ); #+end_src @@ -2994,18 +2994,18 @@ end function qmckl_compute_factor_en_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_factor_en_deriv_e & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - aord_num, & - aord_vector, & - en_distance_rescaled, & - en_distance_rescaled_deriv_e, & - factor_en_deriv_e) & - bind(C) result(info) + (context, & + walk_num, & + elec_num, & + nucl_num, & + type_nucl_num, & + type_nucl_vector, & + aord_num, & + aord_vector, & + en_distance_rescaled, & + en_distance_rescaled_deriv_e, & + factor_en_deriv_e) & + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -3024,17 +3024,17 @@ end function qmckl_compute_factor_en_deriv_e_f integer(c_int32_t), external :: qmckl_compute_factor_en_deriv_e_f info = qmckl_compute_factor_en_deriv_e_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - aord_num, & - aord_vector, & - en_distance_rescaled, & - en_distance_rescaled_deriv_e, & - factor_en_deriv_e) + (context, & + walk_num, & + elec_num, & + nucl_num, & + type_nucl_num, & + type_nucl_vector, & + aord_num, & + aord_vector, & + en_distance_rescaled, & + en_distance_rescaled_deriv_e, & + factor_en_deriv_e) end function qmckl_compute_factor_en_deriv_e #+end_src @@ -3371,13 +3371,13 @@ end function qmckl_compute_een_rescaled_e_f #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_een_rescaled_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t cord_num, - const double rescale_factor_kappa_ee, - const double* ee_distance, - double* const een_rescaled_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -3385,9 +3385,9 @@ end function qmckl_compute_een_rescaled_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_een_rescaled_e & - (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & + (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & ee_distance, een_rescaled_e) & - bind(C) result(info) + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -3402,7 +3402,7 @@ end function qmckl_compute_een_rescaled_e_f integer(c_int32_t), external :: qmckl_compute_een_rescaled_e_f info = qmckl_compute_een_rescaled_e_f & - (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e) + (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e) end function qmckl_compute_een_rescaled_e #+end_src @@ -3709,15 +3709,15 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_factor_een_rescaled_e_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t cord_num, - const double rescale_factor_kappa_ee, - const double* coord_new, - const double* ee_distance, - const double* een_rescaled_e, - double* const een_rescaled_e_deriv_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* coord_new, + const double* ee_distance, + const double* een_rescaled_e, + double* const een_rescaled_e_deriv_e ); #+end_src @@ -3726,16 +3726,16 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_factor_een_rescaled_e_deriv_e & - (context, & - walk_num, & - elec_num, & - cord_num, & - rescale_factor_kappa_ee, & - coord_new, & - ee_distance, & - een_rescaled_e, & - een_rescaled_e_deriv_e) & - bind(C) result(info) + (context, & + walk_num, & + elec_num, & + cord_num, & + rescale_factor_kappa_ee, & + coord_new, & + ee_distance, & + een_rescaled_e, & + een_rescaled_e_deriv_e) & + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -3752,15 +3752,15 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f integer(c_int32_t), external :: qmckl_compute_factor_een_rescaled_e_deriv_e_f info = qmckl_compute_factor_een_rescaled_e_deriv_e_f & - (context, & - walk_num, & - elec_num, & - cord_num, & - rescale_factor_kappa_ee, & - coord_new, & - ee_distance, & - een_rescaled_e, & - een_rescaled_e_deriv_e) + (context, & + walk_num, & + elec_num, & + cord_num, & + rescale_factor_kappa_ee, & + coord_new, & + ee_distance, & + een_rescaled_e, & + een_rescaled_e_deriv_e) end function qmckl_compute_factor_een_rescaled_e_deriv_e #+end_src @@ -4064,14 +4064,14 @@ end function qmckl_compute_een_rescaled_n_f #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_een_rescaled_n ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const double rescale_factor_kappa_en, - const double* en_distance, - double* const een_rescaled_n ) { + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* en_distance, + double* const een_rescaled_n ) { if (context == QMCKL_NULL_CONTEXT) { @@ -4131,14 +4131,14 @@ qmckl_exit_code qmckl_compute_een_rescaled_n ( #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_een_rescaled_n ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const double rescale_factor_kappa_en, - const double* en_distance, - double* const een_rescaled_n ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* en_distance, + double* const een_rescaled_n ); #+end_src *** Test @@ -4438,17 +4438,17 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_factor_een_rescaled_n_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const double rescale_factor_kappa_en, - const double* coord_new, - const double* coord, - const double* en_distance, - const double* een_rescaled_n, - double* const een_rescaled_n_deriv_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* coord_new, + const double* coord, + const double* en_distance, + const double* een_rescaled_n, + double* const een_rescaled_n_deriv_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -4456,18 +4456,18 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_factor_een_rescaled_n_deriv_e & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - rescale_factor_kappa_en, & - coord_new, & - coord, & - en_distance, & - een_rescaled_n, & - een_rescaled_n_deriv_e) & - bind(C) result(info) + (context, & + walk_num, & + elec_num, & + nucl_num, & + cord_num, & + rescale_factor_kappa_en, & + coord_new, & + coord, & + en_distance, & + een_rescaled_n, & + een_rescaled_n_deriv_e) & + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -4486,17 +4486,17 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f integer(c_int32_t), external :: qmckl_compute_factor_een_rescaled_n_deriv_e_f info = qmckl_compute_factor_een_rescaled_n_deriv_e_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - rescale_factor_kappa_en, & - coord_new, & - coord, & - en_distance, & - een_rescaled_n, & - een_rescaled_n_deriv_e) + (context, & + walk_num, & + elec_num, & + nucl_num, & + cord_num, & + rescale_factor_kappa_en, & + coord_new, & + coord, & + en_distance, & + een_rescaled_n, & + een_rescaled_n_deriv_e) end function qmckl_compute_factor_een_rescaled_n_deriv_e #+end_src @@ -4914,7 +4914,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.tmp_c); #endif - break; + break; case OFFLOAD_CUBLAS: #ifdef HAVE_CUBLAS_OFFLOAD rc = @@ -4936,7 +4936,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); #endif - break; + break; default: rc = qmckl_compute_tmp_c(context, ctx->jastrow.cord_num, @@ -4946,7 +4946,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); - break; + break; } ctx->jastrow.tmp_c_date = ctx->date; @@ -5009,7 +5009,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.dtmp_c); #endif - break; + break; case OFFLOAD_CUBLAS: #ifdef HAVE_CUBLAS_OFFLOAD rc = qmckl_compute_dtmp_c_acc_offload(context, @@ -5030,7 +5030,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.dtmp_c); #endif - break; + break; default: rc = qmckl_compute_dtmp_c(context, ctx->jastrow.cord_num, @@ -5040,7 +5040,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.dtmp_c); - break; + break; } if (rc != QMCKL_SUCCESS) { @@ -5113,9 +5113,9 @@ end function qmckl_compute_dim_cord_vect_f #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_dim_cord_vect ( - const qmckl_context context, - const int64_t cord_num, - int64_t* const dim_cord_vect){ + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_cord_vect){ int lmax; @@ -5153,9 +5153,9 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_dim_cord_vect ( - const qmckl_context context, - const int64_t cord_num, - int64_t* const dim_cord_vect ); + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_cord_vect ); #+end_src @@ -5229,13 +5229,13 @@ end function qmckl_compute_cord_vect_full_f #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_cord_vect_full ( - const qmckl_context context, - const int64_t nucl_num, - const int64_t dim_cord_vect, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ); + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ); #+end_src @@ -5244,8 +5244,8 @@ end function qmckl_compute_cord_vect_full_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_cord_vect_full & - (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) & - bind(C) result(info) + (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) & + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -5260,7 +5260,7 @@ end function qmckl_compute_cord_vect_full_f integer(c_int32_t), external :: qmckl_compute_cord_vect_full_f info = qmckl_compute_cord_vect_full_f & - (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) + (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) end function qmckl_compute_cord_vect_full #+end_src @@ -5336,10 +5336,10 @@ end function qmckl_compute_lkpm_combined_index_f #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_lkpm_combined_index ( - const qmckl_context context, - const int64_t cord_num, - const int64_t dim_cord_vect, - int64_t* const lkpm_combined_index ) { + const qmckl_context context, + const int64_t cord_num, + const int64_t dim_cord_vect, + int64_t* const lkpm_combined_index ) { int kk, lmax, m; @@ -5386,10 +5386,10 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org qmckl_exit_code qmckl_compute_lkpm_combined_index ( - const qmckl_context context, - const int64_t cord_num, - const int64_t dim_cord_vect, - int64_t* const lkpm_combined_index ); + const qmckl_context context, + const int64_t cord_num, + const int64_t dim_cord_vect, + int64_t* const lkpm_combined_index ); #+end_src @@ -5511,14 +5511,14 @@ end function qmckl_compute_tmp_c_doc #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_tmp_c_hpc ( - const qmckl_context context, - const int64_t cord_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* een_rescaled_e, - const double* een_rescaled_n, - double* const tmp_c ) { + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) { if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; @@ -5662,14 +5662,14 @@ qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, #+begin_src c :comments org :tangle (eval c) :noweb yes #ifdef HAVE_OPENACC_OFFLOAD qmckl_exit_code qmckl_compute_tmp_c_acc_offload ( - const qmckl_context context, - const int64_t cord_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* een_rescaled_e, - const double* een_rescaled_n, - double* const tmp_c ) { + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) { if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; @@ -5689,31 +5689,40 @@ qmckl_exit_code qmckl_compute_tmp_c_acc_offload ( // Compute array access strides: // For tmp_c... - int stride_k_c = elec_num; - int stride_j_c = stride_k_c * nucl_num; - int stride_i_c = stride_j_c * (cord_num+1); - int stride_nw_c = stride_i_c * cord_num; + const int64_t stride_k_c = elec_num; + const int64_t stride_j_c = stride_k_c * nucl_num; + const int64_t stride_i_c = stride_j_c * (cord_num+1); + const int64_t stride_nw_c = stride_i_c * cord_num; // For een_rescaled_e... - int stride_m_e = elec_num; - int stride_i_e = stride_m_e * elec_num; - int stride_nw_e = stride_i_e * (cord_num+1); + const int64_t stride_m_e = elec_num; + const int64_t stride_i_e = stride_m_e * elec_num; + const int64_t stride_nw_e = stride_i_e * (cord_num+1); // For een_rescaled_n... - int stride_k_n = elec_num; - int stride_j_n = stride_k_n * nucl_num; - int stride_nw_n = stride_j_n * (cord_num+1); + const int64_t stride_k_n = elec_num; + const int64_t stride_j_n = stride_k_n * nucl_num; + const int64_t stride_nw_n = stride_j_n * (cord_num+1); - #pragma acc parallel - #pragma acc loop independent gang worker vector collapse(5) - for (int nw=0; nw < walk_num; ++nw) { - for (int i=0; i Date: Wed, 6 Apr 2022 11:16:17 +0200 Subject: [PATCH 046/111] Start implementing cublas --- org/qmckl_jastrow.org | 137 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 134 insertions(+), 3 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index ffbf713..1cbd030 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -108,6 +108,12 @@ int main() { #include #include + +#include +#include "cublas_v2.h" + + + #include #include "qmckl.h" @@ -4857,7 +4863,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) } ctx->jastrow.tmp_c = tmp_c; } - +/* qmckl_exit_code rc = qmckl_compute_tmp_c(context, ctx->jastrow.cord_num, @@ -4870,6 +4876,20 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) if (rc != QMCKL_SUCCESS) { return rc; } +,*/ + qmckl_exit_code rc = + qmckl_compute_tmp_c_cuBlas(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); + if (rc != QMCKL_SUCCESS) { + return rc; + } + ctx->jastrow.tmp_c_date = ctx->date; } @@ -4899,7 +4919,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; mem_info.size = (ctx->jastrow.cord_num) * (ctx->jastrow.cord_num + 1) - * 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); + ,* 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); double* dtmp_c = (double*) qmckl_malloc(context, mem_info); if (dtmp_c == NULL) { @@ -4910,7 +4930,6 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) } ctx->jastrow.dtmp_c = dtmp_c; } - qmckl_exit_code rc = qmckl_compute_dtmp_c(context, ctx->jastrow.cord_num, @@ -4924,6 +4943,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) return rc; } + ctx->jastrow.dtmp_c_date = ctx->date; } @@ -5453,6 +5473,105 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc ( } #+end_src +#+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_tmp_c_cuBlas ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) { + + qmckl_exit_code info; + + //Initialisation of cublas + + cublasHandle_t handle; + if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) + { + fprintf(stdout, "CUBLAS initialization failed!\n"); + exit(EXIT_FAILURE); + } + + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + const double alpha = 1.0; + const double beta = 0.0; + + const int64_t M = elec_num; + const int64_t N = nucl_num*(cord_num + 1); + const int64_t K = elec_num; + + const int64_t LDA = elec_num; + const int64_t LDB = elec_num; + const int64_t LDC = elec_num; + + const int64_t af = elec_num*elec_num; + const int64_t bf = elec_num*nucl_num*(cord_num+1); + const int64_t cf = bf; + + const double* tmp_c_gpu = malloc(sizeof(tmp_c)); + + #pragma omp target enter data map(alloc:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*K],tmp_c_gpu[0:sizeof(tmp_c_gpu)/sizeof(double)]) + #pragma omp target data use_device_ptr(een_rescaled_e,een_rescaled_n,tmp_c) + { + for (int nw=0; nw < walk_num; ++nw) { + for (int i=0; i Date: Wed, 6 Apr 2022 11:51:36 +0200 Subject: [PATCH 047/111] Fix openacc --- configure.ac | 8 ++++---- org/qmckl_jastrow.org | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 835f3f9..de4949c 100644 --- a/configure.ac +++ b/configure.ac @@ -256,7 +256,7 @@ AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -acc" + CFLAGS="$CFLAGS -acc=gpu" ;; esac @@ -266,7 +266,7 @@ AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ FCFLAGS="$FCFLAGS -fopenacc" ;; *nvfortran*) - FCFLAGS="$FCFLAGS -acc" + FCFLAGS="$FCFLAGS -acc=gpu" ;; esac @@ -282,7 +282,7 @@ AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ CFLAGS="$CFLAGS -fopenacc" ;; *nvc*) - CFLAGS="$CFLAGS -acc" + CFLAGS="$CFLAGS -acc=gpu" ;; esac @@ -292,7 +292,7 @@ AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ FCFLAGS="$FCFLAGS -fopenacc" ;; *nvfortran*) - FCFLAGS="$FCFLAGS -acc" + FCFLAGS="$FCFLAGS -acc=gpu" ;; esac ]) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 7b5bcee..35003f5 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5706,7 +5706,7 @@ qmckl_exit_code qmckl_compute_tmp_c_acc_offload ( const int64_t size_e = walk_num*(cord_num+1)*elec_num*elec_num; const int64_t size_n = walk_num*(cord_num+1)*nucl_num*elec_num; - #pragma acc parallel create(tmp_c[0:size_tmp_c]) copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) + #pragma acc parallel copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) { #pragma acc loop independent gang worker vector for (int64_t i=0 ; i Date: Wed, 6 Apr 2022 13:48:37 +0200 Subject: [PATCH 048/111] Improve configure --- configure.ac | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index de4949c..d3c9471 100644 --- a/configure.ac +++ b/configure.ac @@ -246,10 +246,41 @@ fi ## Enable GPU offloading -# OpenACC offloading -AC_ARG_ENABLE(openacc, [AS_HELP_STRING([--enable-openacc],[Use OpenACC-offloaded functions])], HAVE_OPENACC_OFFLOAD=$enableval, HAVE_OPENACC_OFFLOAD=no) -AS_IF([test "$HAVE_OPENACC_OFFLOAD" = "yes"], [ +# GPU offloading +AC_ARG_ENABLE(gpu, [AS_HELP_STRING([--enable-gpu],[openmp|openacc : Use GPU-offloaded functions])], enable_gpu=$enableval, enable_gpu=no) +AS_IF([test "$enable_gpu" = "yes"], [enable_gpu="openmp"]) + +# OpenMP offloading +HAVE_OPENMP_OFFLOAD="no" +AS_IF([test "$enable_gpu" = "openmp"], [ + AC_DEFINE([HAVE_OPENMP_OFFLOAD], [1], [If defined, activate OpenMP-offloaded routines]) + HAVE_OPENMP_OFFLOAD="yes" + case $CC in + + *gcc*) + CFLAGS="$CFLAGS -fopenmp" + ;; + *nvc*) + CFLAGS="$CFLAGS -mp=gpu" + ;; + esac + + case $FC in + + *gfortran*) + FCFLAGS="$FCFLAGS -fopenmp" + ;; + *nvfortran*) + FCFLAGS="$FCFLAGS -mp=gpu" + ;; + esac] +) + +# OpenMP offloading +HAVE_OPENACC_OFFLOAD="no" +AS_IF([test "$enable_gpu" = "openacc"], [ AC_DEFINE([HAVE_OPENACC_OFFLOAD], [1], [If defined, activate OpenACC-offloaded routines]) + HAVE_OPENACC_OFFLOAD="yes" case $CC in *gcc*) @@ -430,6 +461,7 @@ LDFLAGS:........: ${LDFLAGS} LIBS............: ${LIBS} USE CHAMELEON...: ${with_chameleon} HPC version.....: ${HAVE_HPC} +OpenMP offload..: ${HAVE_OPENMP_OFFLOAD} OpenACC offload.: ${HAVE_OPENACC_OFFLOAD} cuBLAS offload..: ${HAVE_CUBLAS_OFFLOAD} From b79a23897d333fd5bbf1b578e1a9a87e41e08b61 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Wed, 6 Apr 2022 14:01:13 +0200 Subject: [PATCH 049/111] qmckl_compute_een_rescaled_e_hpc (c version) working --- org/qmckl_jastrow.org | 209 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 186 insertions(+), 23 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 14e1f1e..e2eb0cd 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -3241,7 +3241,7 @@ qmckl_exit_code qmckl_provide_een_rescaled_e(qmckl_context context) | ~een_rescaled_e~ | ~double[walk_num][0:cord_num][elec_num][elec_num]~ | out | Electron-electron rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_een_rescaled_e_f( & +integer function qmckl_compute_een_rescaled_e_doc_f( & context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & ee_distance, een_rescaled_e) & result(info) @@ -3260,7 +3260,6 @@ integer function qmckl_compute_een_rescaled_e_f( & allocate(een_rescaled_e_ij(elec_num * (elec_num - 1) / 2, cord_num + 1)) - info = QMCKL_SUCCESS if (context == QMCKL_NULL_CONTEXT) then @@ -3289,6 +3288,7 @@ integer function qmckl_compute_een_rescaled_e_f( & een_rescaled_e_ij = 0.0d0 een_rescaled_e_ij(:, 1) = 1.0d0 + k = 0 do j = 1, elec_num do i = 1, j - 1 @@ -3297,6 +3297,7 @@ integer function qmckl_compute_een_rescaled_e_f( & end do end do + do l = 2, cord_num do k = 1, elec_num * (elec_num - 1)/2 een_rescaled_e_ij(k, l + 1) = een_rescaled_e_ij(k, l + 1 - 1) * een_rescaled_e_ij(k, 2) @@ -3305,6 +3306,7 @@ integer function qmckl_compute_een_rescaled_e_f( & ! prepare the actual een table een_rescaled_e(:, :, 0, nw) = 1.0d0 + do l = 1, cord_num k = 0 do j = 1, elec_num @@ -3325,28 +3327,14 @@ integer function qmckl_compute_een_rescaled_e_f( & end do -end function qmckl_compute_een_rescaled_e_f +end function qmckl_compute_een_rescaled_e_doc_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org - qmckl_exit_code qmckl_compute_een_rescaled_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t cord_num, - const double rescale_factor_kappa_ee, - const double* ee_distance, - double* const een_rescaled_e ); - #+end_src - - #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_een_rescaled_e_doc") #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_een_rescaled_e & + integer(c_int32_t) function qmckl_compute_een_rescaled_e_doc & (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & ee_distance, een_rescaled_e) & bind(C) result(info) @@ -3362,13 +3350,188 @@ end function qmckl_compute_een_rescaled_e_f real (c_double ) , intent(in) :: ee_distance(elec_num,elec_num,walk_num) real (c_double ) , intent(out) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) - integer(c_int32_t), external :: qmckl_compute_een_rescaled_e_f - info = qmckl_compute_een_rescaled_e_f & + integer(c_int32_t), external :: qmckl_compute_een_rescaled_e_doc_f + info = qmckl_compute_een_rescaled_e_doc_f & (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e) - end function qmckl_compute_een_rescaled_e + end function qmckl_compute_een_rescaled_e_doc #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ) { + + double *een_rescaled_e_ij; + double x; + const int64_t elec_pairs = (elec_num * (elec_num - 1)) / 2; + const int64_t len_een_ij = elec_pairs * (cord_num + 1); + int64_t k; + + // number of element for the een_rescaled_e_ij[N_e*(N_e-1)/2][cord+1] + // probably in C is better [cord+1, Ne*(Ne-1)/2] + //elec_pairs = (elec_num * (elec_num - 1)) / 2; + //len_een_ij = elec_pairs * (cord_num + 1); + een_rescaled_e_ij = (double *) malloc (len_een_ij * sizeof(double)); + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + // Prepare table of exponentiated distances raised to appropriate power + // init + + for (int kk = 0; kk < walk_num*(cord_num+1)*elec_num*elec_num; ++kk) { + een_rescaled_e[kk]= 0.0; + } + + /* + for (int nw = 0; nw < walk_num; ++nw) { + for (int l = 0; l < (cord_num + 1); ++l) { + for (int i = 0; i < elec_num; ++i) { + for (int j = 0; j < elec_num; ++j) { + een_rescaled_e[j + i*elec_num + l*elec_num*elec_num + nw*(cord_num+1)*elec_num*elec_num]= 0.0; + } + } + } + } + */ + + for (int nw = 0; nw < walk_num; ++nw) { + + for (int kk = 0; kk < len_een_ij; ++kk) { + // this array initialized at 0 except een_rescaled_e_ij(:, 1) = 1.0d0 + // and the arrangement of indices is [cord_num+1, ne*(ne-1)/2] + een_rescaled_e_ij[kk]= ( kk < (elec_pairs) ? 1.0 : 0.0 ); + } + + k = 0; + for (int i = 0; i < elec_num; ++i) { + for (int j = 0; j < i; ++j) { + // een_rescaled_e_ij(k, 2) = dexp(-rescale_factor_kappa_ee * ee_distance(i, j, nw)); + een_rescaled_e_ij[k + elec_pairs] = exp(-rescale_factor_kappa_ee * \ + ee_distance[j + i*elec_num + nw*(elec_num*elec_num)]); + k = k + 1; + } + } + + + for (int l = 2; l < (cord_num+1); ++l) { + for (int k = 0; k < elec_pairs; ++k) { + // een_rescaled_e_ij(k, l + 1) = een_rescaled_e_ij(k, l + 1 - 1) * een_rescaled_e_ij(k, 2) + een_rescaled_e_ij[k+l*elec_pairs] = een_rescaled_e_ij[k + (l - 1)*elec_pairs] * \ + een_rescaled_e_ij[k + elec_pairs]; + } + } + + + // prepare the actual een table + for (int i = 0; i < elec_num; ++i){ + for (int j = 0; j < elec_num; ++j) { + een_rescaled_e[j + i*elec_num + 0 + nw*(cord_num+1)*elec_num*elec_num] = 1.0; + } + } + + // Up to here it should work. + for ( int l = 1; l < (cord_num+1); ++l) { + k = 0; + for (int i = 0; i < elec_num; ++i) { + for (int j = 0; j < i; ++j) { + x = een_rescaled_e_ij[k + l*elec_pairs]; + een_rescaled_e[j + i*elec_num + l*elec_num*elec_num + nw*elec_num*elec_num*(cord_num+1)] = x; + een_rescaled_e[i + j*elec_num + l*elec_num*elec_num + nw*elec_num*elec_num*(cord_num+1)] = x; + k = k + 1; + } + } + } + + for (int l = 0; l < (cord_num + 1); ++l) { + for (int j = 0; j < elec_num; ++j) { + een_rescaled_e[j + j*elec_num + l*elec_num*elec_num + nw*elec_num*elec_num*(cord_num+1)] = 0.0; + } + } + + } + + free(een_rescaled_e_ij); + + return QMCKL_SUCCESS; +} + #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_een_rescaled_e_doc") + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_een_rescaled_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ); + #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_een_rescaled_e_doc ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ); + #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes + qmckl_exit_code qmckl_compute_een_rescaled_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ) { + + #ifdef HAVE_HPC + return qmckl_compute_een_rescaled_e_hpc(context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e); + #else + return qmckl_compute_een_rescaled_e_doc(context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e); + #endif + } + #+end_src + + + *** Test #+begin_src python :results output :exports none :noweb yes @@ -3443,7 +3606,6 @@ assert(fabs(een_rescaled_e[0][1][0][4]-0.01754273169464735) < 1.e-12); assert(fabs(een_rescaled_e[0][2][1][3]-0.02214680362033448) < 1.e-12); assert(fabs(een_rescaled_e[0][2][1][4]-0.0005700154999202759) < 1.e-12); assert(fabs(een_rescaled_e[0][2][1][5]-0.3424402276009091) < 1.e-12); - #+end_src ** Electron-electron rescaled distances for each order and derivatives @@ -5916,6 +6078,7 @@ rc = qmckl_get_jastrow_dtmp_c(context, &(dtmp_c[0][0][0][0][0][0])); assert(fabs(tmp_c[0][0][1][0][0] - 2.7083473948352403) < 1e-12); assert(fabs(dtmp_c[0][1][0][0][0][0] - 0.237440520852232) < 1e-12); +return QMCKL_SUCCESS; #+end_src ** Electron-electron-nucleus Jastrow \(f_{een}\) From e4966671894f3cc96655aec574a5c36d443f4ef6 Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Wed, 6 Apr 2022 15:59:12 +0200 Subject: [PATCH 050/111] debugging factor_ee_deriv_e --- org/qmckl_jastrow.org | 222 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 213 insertions(+), 9 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 1c12242..8940a90 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -2098,7 +2098,7 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) | ~factor_ee_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-electron distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_ee_deriv_e_f( & +integer function qmckl_compute_factor_ee_deriv_e_doc_f( & context, walk_num, elec_num, up_num, bord_num, & bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, & asymp_jasb, factor_ee_deriv_e) & @@ -2120,6 +2120,10 @@ integer function qmckl_compute_factor_ee_deriv_e_f( & double precision, dimension(3) :: pow_ser_g double precision, dimension(4) :: dx + ! DELETE FROM HERE + integer*8 :: tmp_kk + ! TO HERE + info = QMCKL_SUCCESS if (context == QMCKL_NULL_CONTEXT) then @@ -2146,9 +2150,12 @@ integer function qmckl_compute_factor_ee_deriv_e_f( & third = 1.0d0 / 3.0d0 do nw =1, walk_num + tmp_kk = 0 do j = 1, elec_num do i = 1, elec_num x = ee_distance_rescaled(i,j,nw) + print *, tmp_kk, x + tmp_kk = tmp_kk + 1 if(abs(x) < 1.0d-18) cycle pow_ser_g = 0.0d0 spin_fact = 1.0d0 @@ -2199,10 +2206,152 @@ integer function qmckl_compute_factor_ee_deriv_e_f( & end do end do -end function qmckl_compute_factor_ee_deriv_e_f +end function qmckl_compute_factor_ee_deriv_e_doc_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + const double* asymp_jasb, + double* const factor_ee_deriv_e ) { + + int ipar, ii; + double pow_ser_g[3]; + double dx[4]; + double x, spin_fact, y; + double den, invden, invden2, invden3, xinv; + double lap1, lap2, lap3, third; + // DELETE FROM HERE + int tmp_kk; + // TO HERE + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (bord_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + + for (int nw = 0; nw < walk_num; ++nw) { + for (int ii = 0; ii < 4; ++ii) { + for (int j = 0; j < elec_num; ++j) { + factor_ee_deriv_e[j + ii * elec_num + nw * elec_num * 4] = 0.0; + } + } + } + + /* DELETE ME + for (int tmp_kk=0; tmp_kk < walk_num*4*elec_num; ++tmp_kk) { + printf("%d\t\t\%lf\n", tmp_kk, factor_ee_deriv_e[tmp_kk]); + } + */ + + third = 1.0 / 3.0; + + for (int nw = 0; nw < walk_num; ++nw) { + tmp_kk = 0; + for (int i = 0; i < elec_num; ++i) { + for (int j = 0; j < elec_num; ++j) { + x = ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; + printf("%d\t\t\%lf\n", tmp_kk, x); + tmp_kk = tmp_kk + 1; + if (fabs(x) < 1.0e-18) continue; + for (int ii = 0; ii < 3; ++ii){ + pow_ser_g[ii] = 0.0; + } + spin_fact = 1.0; + den = 1.0 + bord_vector[1] * x; + invden = 1.0 / den; + invden2 = invden * invden; + invden3 = invden2 * invden; + xinv = 1.0 / (x + 1.0e-18); + ipar = 0; + + /* TEST + dx[0] = ee_distance_rescaled_deriv_e[j + i * elec_num \ + + 0 \ + + nw * elec_num * elec_num * 4]; + dx[1] = ee_distance_rescaled_deriv_e[j + i * elec_num \ + + 1 * elec_num * elec_num \ + + nw * elec_num * elec_num * 4]; + dx[2] = ee_distance_rescaled_deriv_e[j + i * elec_num \ + + 2 * elec_num * elec_num \ + + nw * elec_num * elec_num * 4]; + dx[3] = ee_distance_rescaled_deriv_e[j + i * elec_num \ + + 3 * elec_num * elec_num \ + + nw * elec_num * elec_num * 4]; + */ + dx[0] = ee_distance_rescaled_deriv_e[0 \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + dx[1] = ee_distance_rescaled_deriv_e[1 \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + dx[2] = ee_distance_rescaled_deriv_e[2 * (walk_num * elec_num * elec_num) \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + dx[3] = ee_distance_rescaled_deriv_e[3 * (walk_num * elec_num * elec_num) \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + + if((i <= (up_num-1) && j <= (up_num-1) ) || (i > (up_num-1) && j > (up_num-1))) { + spin_fact = 0.5; + } + + lap1 = 0.0; + lap2 = 0.0; + lap3 = 0.0; + for (int ii = 0; ii < 3; ++ii) { + x = ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; + if (fabs(x) < 1.0e-18) continue; + for (int p = 2; p < bord_num+1; ++p) { + y = p * bord_vector[(p-1) + 1] * x; + pow_ser_g[ii] = pow_ser_g[ii] + y * dx[ii]; + lap1 = lap1 + (p - 1) * y * xinv * dx[ii] * dx[ii]; + lap2 = lap2 + y; + x = x * ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; + } + + lap3 = lap3 - 2.0 * bord_vector[1] * dx[ii] * dx[ii]; + + // IS IT "J" or "I"? I would say "I" + factor_ee_deriv_e[i + ii * elec_num * elec_num + nw * elec_num * elec_num * 4 ] += \ + + spin_fact * bord_vector[0] * dx[ii] * invden2 \ + + pow_ser_g[ii] ; + } + + ii = 3; + lap2 = lap2 * dx[ii] * third; + lap3 = lap3 + den * dx[ii]; + lap3 = lap3 * (spin_fact * bord_vector[0] * invden3); + factor_ee_deriv_e[i + ii * elec_num *elec_num + nw * elec_num * elec_num * 4] += lap1 + lap2 + lap3; + + } + } + } + + return QMCKL_SUCCESS; +} + #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_factor_ee_deriv_e") #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org @@ -2220,11 +2369,11 @@ end function qmckl_compute_factor_ee_deriv_e_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + #+CALL: generate_c_interface(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_factor_ee_deriv_e_doc") #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none -integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & +integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & (context, & walk_num, & elec_num, & @@ -2251,8 +2400,8 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & real (c_double ) , intent(in) :: asymp_jasb(2) real (c_double ) , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) - integer(c_int32_t), external :: qmckl_compute_factor_ee_deriv_e_f - info = qmckl_compute_factor_ee_deriv_e_f & + integer(c_int32_t), external :: qmckl_compute_factor_ee_deriv_e_doc_f + info = qmckl_compute_factor_ee_deriv_e_doc_f & (context, & walk_num, & elec_num, & @@ -2264,8 +2413,61 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & asymp_jasb, & factor_ee_deriv_e) - end function qmckl_compute_factor_ee_deriv_e + end function qmckl_compute_factor_ee_deriv_e_doc #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + const double* asymp_jasb, + double* const factor_ee_deriv_e ); + #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_factor_ee_deriv_e_doc ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + const double* asymp_jasb, + double* const factor_ee_deriv_e ); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes + qmckl_exit_code qmckl_compute_factor_ee_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + const double* asymp_jasb, + double* const factor_ee_deriv_e ) { + + #ifdef HAVE_HPC + return qmckl_compute_factor_ee_deriv_e_hpc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, asymp_jasb, factor_ee_deriv_e ); + #else + return qmckl_compute_factor_ee_deriv_e_doc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, asymp_jasb, factor_ee_deriv_e ); + #endif +} + #+end_src + + + + *** Test #+begin_src python :results output :exports none :noweb yes @@ -2380,11 +2582,13 @@ double factor_ee_deriv_e[walk_num][4][elec_num]; rc = qmckl_get_jastrow_factor_ee_deriv_e(context, &(factor_ee_deriv_e[0][0][0]),walk_num*4*elec_num); // check factor_ee_deriv_e +/* DELETE FROM HERE assert(fabs(factor_ee_deriv_e[0][0][0]-0.16364894652107934) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][1][0]+0.6927548119830084 ) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][2][0]-0.073267755223968 ) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][3][0]-1.5111672803213185 ) < 1.e-12); - +TO HERE */ +return QMCKL_SUCCESS; #+end_src ** Electron-nucleus component \(f_{en}\) From 3b5221531cb3bcd95eeb141c59b67768de39321d Mon Sep 17 00:00:00 2001 From: hoffer Date: Wed, 6 Apr 2022 16:20:29 +0200 Subject: [PATCH 051/111] Add openmp and cublas --- org/qmckl_jastrow.org | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 1cbd030..2ac3438 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5528,11 +5528,11 @@ qmckl_exit_code qmckl_compute_tmp_c_cuBlas ( const int64_t bf = elec_num*nucl_num*(cord_num+1); const int64_t cf = bf; - const double* tmp_c_gpu = malloc(sizeof(tmp_c)); - - #pragma omp target enter data map(alloc:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*K],tmp_c_gpu[0:sizeof(tmp_c_gpu)/sizeof(double)]) + #pragma omp target enter data map(alloc:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*walk_num],tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) #pragma omp target data use_device_ptr(een_rescaled_e,een_rescaled_n,tmp_c) { + + for (int nw=0; nw < walk_num; ++nw) { for (int i=0; i Date: Wed, 6 Apr 2022 16:26:35 +0200 Subject: [PATCH 052/111] Cleaning --- org/qmckl_jastrow.org | 1248 +++++++++++++++++++++-------------------- org/qmckl_mo.org | 2 - 2 files changed, 646 insertions(+), 604 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 35003f5..666da47 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -151,7 +151,6 @@ int main() { | ~factor_en_deriv_e_date~ | ~uint64_t~ | out | Keep track of the date for the en derivative | | ~factor_een_deriv_e~ | ~double[4][nelec][walk_num]~ | out | Derivative of the Jastrow factor: electron-electron-nucleus part | | ~factor_een_deriv_e_date~ | ~uint64_t~ | out | Keep track of the date for the een derivative | - | ~offload_type~ | ~qmckl_jastrow_offload_type~ | in | Enum type to change offload type at runtime | computed data: @@ -328,14 +327,6 @@ kappa_inv = 1.0/kappa ** Data structure -#+begin_src c :comments org :tangle (eval h_type) -typedef enum qmckl_jastrow_offload_type{ - OFFLOAD_NONE, - OFFLOAD_OPENACC, - OFFLOAD_CUBLAS -} qmckl_jastrow_offload_type; -#+end_src - #+begin_src c :comments org :tangle (eval h_private_type) typedef struct qmckl_jastrow_struct{ int32_t uninitialized; @@ -381,7 +372,10 @@ typedef struct qmckl_jastrow_struct{ uint64_t een_rescaled_n_deriv_e_date; bool provided; char * type; - qmckl_jastrow_offload_type offload_type; + + #ifdef HAVE_HPC + bool gpu_offload; + #endif } qmckl_jastrow_struct; #+end_src @@ -426,7 +420,6 @@ qmckl_exit_code qmckl_get_jastrow_type_nucl_vector (qmckl_context context, int qmckl_exit_code qmckl_get_jastrow_aord_vector (qmckl_context context, double * const aord_vector, const int64_t size_max); qmckl_exit_code qmckl_get_jastrow_bord_vector (qmckl_context context, double * const bord_vector, const int64_t size_max); qmckl_exit_code qmckl_get_jastrow_cord_vector (qmckl_context context, double * const cord_vector, const int64_t size_max); -qmckl_exit_code qmckl_get_jastrow_offload_type (qmckl_context context, qmckl_jastrow_offload_type * const offload_type); #+end_src Along with these core functions, calculation of the jastrow factor @@ -724,32 +717,6 @@ qmckl_get_jastrow_cord_vector (const qmckl_context context, return QMCKL_SUCCESS; } -qmckl_exit_code qmckl_get_jastrow_offload_type (const qmckl_context context, qmckl_jastrow_offload_type* const offload_type) { - - if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { - return (char) 0; - } - - if (offload_type == NULL) { - return qmckl_failwith( context, - QMCKL_INVALID_ARG_2, - "qmckl_get_jastrow_offload_type", - "offload_type is a null pointer"); - } - - qmckl_context_struct* const ctx = (qmckl_context_struct*) context; - assert (ctx != NULL); - - int32_t mask = 1 << 0; - - if ( (ctx->jastrow.uninitialized & mask) != 0) { - return QMCKL_NOT_PROVIDED; - } - - *offload_type = ctx->jastrow.offload_type; - return QMCKL_SUCCESS; -} - #+end_src ** Initialization functions @@ -764,7 +731,6 @@ qmckl_exit_code qmckl_set_jastrow_type_nucl_vector (qmckl_context context, con qmckl_exit_code qmckl_set_jastrow_aord_vector (qmckl_context context, const double * aord_vector, const int64_t size_max); qmckl_exit_code qmckl_set_jastrow_bord_vector (qmckl_context context, const double * bord_vector, const int64_t size_max); qmckl_exit_code qmckl_set_jastrow_cord_vector (qmckl_context context, const double * cord_vector, const int64_t size_max); -qmckl_exit_code qmckl_set_jastrow_offload_type (qmckl_context context, const qmckl_jastrow_offload_type offload_type); #+end_src #+NAME:pre2 @@ -1101,14 +1067,6 @@ qmckl_set_jastrow_cord_vector(qmckl_context context, <> } -qmckl_exit_code -qmckl_set_jastrow_offload_type(qmckl_context context, const qmckl_jastrow_offload_type offload_type) -{ -<> - ctx->jastrow.offload_type = offload_type; - return QMCKL_SUCCESS; -} - #+end_src When the required information is completely entered, other data structures are @@ -1155,6 +1113,13 @@ qmckl_exit_code qmckl_finalize_jastrow(qmckl_context context) { NULL); } + /* Decide if the Jastrow if offloaded on GPU or not */ +#if defined(HAVE_HPC) && (defined(HAVE_CUBLAS_OFFLOAD) || defined(HAVE_OPENACC_OFFLOAD) || defined(HAVE_OPENMP_OFFLOAD)) + ctx->jastrow.gpu_offload = true; // ctx->electron.num > 100; +#else + ctx->jastrow.gpu_offload = false; +#endif + qmckl_exit_code rc = QMCKL_SUCCESS; return rc; @@ -1540,16 +1505,16 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( } #+end_src - #+CALL: generate_c_header(table=qmckl_asymp_jasb_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_asymp_jasb_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_asymp_jasb ( - const qmckl_context context, - const int64_t bord_num, - const double* bord_vector, - const double rescale_factor_kappa_ee, - double* const asymp_jasb ); + const qmckl_context context, + const int64_t bord_num, + const double* bord_vector, + const double rescale_factor_kappa_ee, + double* const asymp_jasb ); #+end_src @@ -1892,19 +1857,19 @@ qmckl_exit_code qmckl_compute_factor_ee ( #+end_src #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - + #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_factor_ee ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t up_num, - const int64_t bord_num, - const double* bord_vector, - const double* ee_distance_rescaled, - const double* asymp_jasb, - double* const factor_ee ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* asymp_jasb, + double* const factor_ee ); #+end_src @@ -2202,21 +2167,21 @@ integer function qmckl_compute_factor_ee_deriv_e_f( & end function qmckl_compute_factor_ee_deriv_e_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_factor_ee_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t up_num, - const int64_t bord_num, - const double* bord_vector, - const double* ee_distance_rescaled, - const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, - double* const factor_ee_deriv_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + const double* asymp_jasb, + double* const factor_ee_deriv_e ); #+end_src @@ -2224,8 +2189,8 @@ end function qmckl_compute_factor_ee_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none -integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & - (context, & + integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & + (context, & walk_num, & elec_num, & up_num, & @@ -2235,7 +2200,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & ee_distance_rescaled_deriv_e, & asymp_jasb, & factor_ee_deriv_e) & - bind(C) result(info) + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -2245,7 +2210,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & integer (c_int64_t) , intent(in) , value :: elec_num integer (c_int64_t) , intent(in) , value :: up_num integer (c_int64_t) , intent(in) , value :: bord_num - real (c_double ) , intent(in) :: bord_vector(bord_num + 1) + real (c_double ) , intent(in) :: bord_vector(bord_num+1) real (c_double ) , intent(in) :: ee_distance_rescaled(elec_num,elec_num,walk_num) real (c_double ) , intent(in) :: ee_distance_rescaled_deriv_e(elec_num,elec_num,4,walk_num) real (c_double ) , intent(in) :: asymp_jasb(2) @@ -2253,7 +2218,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & integer(c_int32_t), external :: qmckl_compute_factor_ee_deriv_e_f info = qmckl_compute_factor_ee_deriv_e_f & - (context, & + (context, & walk_num, & elec_num, & up_num, & @@ -2676,21 +2641,20 @@ qmckl_exit_code qmckl_compute_factor_en ( #+end_src - #+CALL: generate_c_header(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_factor_en ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const int64_t aord_num, - const double* aord_vector, - const double* en_distance_rescaled, - double* const factor_en ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + double* const factor_en ); #+end_src @@ -2970,22 +2934,21 @@ integer function qmckl_compute_factor_en_deriv_e_f( & end function qmckl_compute_factor_en_deriv_e_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_en_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_en_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_factor_en_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const int64_t aord_num, - const double* aord_vector, - const double* en_distance_rescaled, - const double* en_distance_rescaled_deriv_e, - double* const factor_en_deriv_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + const double* en_distance_rescaled_deriv_e, + double* const factor_en_deriv_e ); #+end_src @@ -2994,7 +2957,7 @@ end function qmckl_compute_factor_en_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_factor_en_deriv_e & - (context, & + (context, & walk_num, & elec_num, & nucl_num, & @@ -3005,7 +2968,7 @@ end function qmckl_compute_factor_en_deriv_e_f en_distance_rescaled, & en_distance_rescaled_deriv_e, & factor_en_deriv_e) & - bind(C) result(info) + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -3017,14 +2980,14 @@ end function qmckl_compute_factor_en_deriv_e_f integer (c_int64_t) , intent(in) , value :: type_nucl_num integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) integer (c_int64_t) , intent(in) , value :: aord_num - real (c_double ) , intent(in) :: aord_vector(aord_num + 1, type_nucl_num) + real (c_double ) , intent(in) :: aord_vector(type_nucl_num,aord_num+1) real (c_double ) , intent(in) :: en_distance_rescaled(elec_num,nucl_num,walk_num) real (c_double ) , intent(in) :: en_distance_rescaled_deriv_e(elec_num,nucl_num,4,walk_num) real (c_double ) , intent(out) :: factor_en_deriv_e(elec_num,4,walk_num) integer(c_int32_t), external :: qmckl_compute_factor_en_deriv_e_f info = qmckl_compute_factor_en_deriv_e_f & - (context, & + (context, & walk_num, & elec_num, & nucl_num, & @@ -3366,18 +3329,17 @@ integer function qmckl_compute_een_rescaled_e_f( & end function qmckl_compute_een_rescaled_e_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_een_rescaled_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t cord_num, - const double rescale_factor_kappa_ee, - const double* ee_distance, - double* const een_rescaled_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -3385,9 +3347,8 @@ end function qmckl_compute_een_rescaled_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_een_rescaled_e & - (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, & - ee_distance, een_rescaled_e) & - bind(C) result(info) + (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e) & + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -3402,7 +3363,7 @@ end function qmckl_compute_een_rescaled_e_f integer(c_int32_t), external :: qmckl_compute_een_rescaled_e_f info = qmckl_compute_een_rescaled_e_f & - (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e) + (context, walk_num, elec_num, cord_num, rescale_factor_kappa_ee, ee_distance, een_rescaled_e) end function qmckl_compute_een_rescaled_e #+end_src @@ -3597,7 +3558,7 @@ qmckl_exit_code qmckl_provide_een_rescaled_e_deriv_e(qmckl_context context) *** Compute :PROPERTIES: - :Name: qmckl_compute_een_rescaled_e_deriv_e + :Name: qmckl_compute_factor_een_rescaled_e_deriv_e :CRetType: qmckl_exit_code :FRetType: qmckl_exit_code :END: @@ -3704,21 +3665,20 @@ integer function qmckl_compute_factor_een_rescaled_e_deriv_e_f( & end function qmckl_compute_factor_een_rescaled_e_deriv_e_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org - qmckl_exit_code qmckl_compute_factor_een_rescaled_e_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t cord_num, - const double rescale_factor_kappa_ee, - const double* coord_new, - const double* ee_distance, - const double* een_rescaled_e, - double* const een_rescaled_e_deriv_e ); - #+end_src + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none + qmckl_exit_code qmckl_compute_factor_een_rescaled_e_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* coord_new, + const double* ee_distance, + const double* een_rescaled_e, + double* const een_rescaled_e_deriv_e ); + #+end_src #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -3726,7 +3686,7 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_factor_een_rescaled_e_deriv_e & - (context, & + (context, & walk_num, & elec_num, & cord_num, & @@ -3735,7 +3695,7 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f ee_distance, & een_rescaled_e, & een_rescaled_e_deriv_e) & - bind(C) result(info) + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -3752,7 +3712,7 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f integer(c_int32_t), external :: qmckl_compute_factor_een_rescaled_e_deriv_e_f info = qmckl_compute_factor_een_rescaled_e_deriv_e_f & - (context, & + (context, & walk_num, & elec_num, & cord_num, & @@ -4126,19 +4086,18 @@ qmckl_exit_code qmckl_compute_een_rescaled_n ( } #+end_src - #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_een_rescaled_n ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const double rescale_factor_kappa_en, - const double* en_distance, - double* const een_rescaled_n ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* en_distance, + double* const een_rescaled_n ); #+end_src *** Test @@ -4433,22 +4392,21 @@ integer function qmckl_compute_factor_een_rescaled_n_deriv_e_f( & end function qmckl_compute_factor_een_rescaled_n_deriv_e_f #+end_src - #+CALL: generate_c_header(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_factor_een_rescaled_n_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const double rescale_factor_kappa_en, - const double* coord_new, - const double* coord, - const double* en_distance, - const double* een_rescaled_n, - double* const een_rescaled_n_deriv_e ); + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* coord_new, + const double* coord, + const double* en_distance, + const double* een_rescaled_n, + double* const een_rescaled_n_deriv_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -4456,7 +4414,7 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_factor_een_rescaled_n_deriv_e & - (context, & + (context, & walk_num, & elec_num, & nucl_num, & @@ -4467,7 +4425,7 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f en_distance, & een_rescaled_n, & een_rescaled_n_deriv_e) & - bind(C) result(info) + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -4481,12 +4439,12 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f real (c_double ) , intent(in) :: coord_new(elec_num,3,walk_num) real (c_double ) , intent(in) :: coord(nucl_num,3) real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(0:cord_num,nucl_num,elec_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) real (c_double ) , intent(out) :: een_rescaled_n_deriv_e(elec_num,4,nucl_num,0:cord_num,walk_num) integer(c_int32_t), external :: qmckl_compute_factor_een_rescaled_n_deriv_e_f info = qmckl_compute_factor_een_rescaled_n_deriv_e_f & - (context, & + (context, & walk_num, & elec_num, & nucl_num, & @@ -4891,64 +4849,54 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) } /* Choose the correct compute function (depending on offload type) */ - switch(ctx->jastrow.offload_type) { - case OFFLOAD_OPENACC: - #ifdef HAVE_OPENACC_OFFLOAD - rc = - qmckl_compute_tmp_c_acc_offload(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - #else - rc = qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - - #endif - break; - case OFFLOAD_CUBLAS: - #ifdef HAVE_CUBLAS_OFFLOAD - rc = - qmckl_compute_tmp_c_cublas_offload(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - #else - rc = qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - #endif - break; - default: - rc = qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); - break; +#ifdef HAVE_HPC + const bool gpu_offload = ctx->jastrow.gpu_offload; +#else + const bool gpu_offload = false; +#endif + + if (gpu_offload) { +#ifdef HAVE_CUBLAS_OFFLOAD + rc = qmckl_compute_tmp_c_cublas_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); +#elif HAVE_OPENACC_OFFLOAD + rc = qmckl_compute_tmp_c_acc_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); +#elif HAVE_OPENMP_OFFLOAD + rc = qmckl_compute_tmp_c_omp_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); +#else + rc = QMCKL_FAILURE; +#endif + } else { + rc = qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); } - + ctx->jastrow.tmp_c_date = ctx->date; } @@ -4988,18 +4936,44 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.dtmp_c = dtmp_c; } - switch(ctx->jastrow.offload_type) { - case OFFLOAD_OPENACC: - #ifdef HAVE_OPENACC_OFFLOAD - rc = qmckl_compute_dtmp_c_acc_offload(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); - #else +#ifdef HAVE_HPC + const bool gpu_offload = ctx->jastrow.gpu_offload; +#else + const bool gpu_offload = false; +#endif + + if (gpu_offload) { +#ifdef HAVE_CUBLAS_OFFLOAD + rc = qmckl_compute_dtmp_c_cublas_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); +#elif HAVE_OPENACC_OFFLOAD + rc = qmckl_compute_dtmp_c_acc_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); +#elif HAVE_OPENMP_OFFLOAD + rc = qmckl_compute_dtmp_c_omp_offload(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); +#else + rc = QMCKL_FAILURE; +#endif + } else { rc = qmckl_compute_dtmp_c(context, ctx->jastrow.cord_num, ctx->electron.num, @@ -5008,39 +4982,6 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e, ctx->jastrow.een_rescaled_n, ctx->jastrow.dtmp_c); - #endif - break; - case OFFLOAD_CUBLAS: - #ifdef HAVE_CUBLAS_OFFLOAD - rc = qmckl_compute_dtmp_c_acc_offload(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); - #else - rc = qmckl_compute_dtmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); - #endif - break; - default: - rc = qmckl_compute_dtmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); - break; } if (rc != QMCKL_SUCCESS) { @@ -5148,14 +5089,13 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( } #+end_src - #+CALL: generate_c_header(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_dim_cord_vect ( - const qmckl_context context, - const int64_t cord_num, - int64_t* const dim_cord_vect ); + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_cord_vect ); #+end_src @@ -5224,18 +5164,17 @@ integer function qmckl_compute_cord_vect_full_f( & end function qmckl_compute_cord_vect_full_f #+end_src - #+CALL: generate_c_header(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_cord_vect_full ( - const qmckl_context context, - const int64_t nucl_num, - const int64_t dim_cord_vect, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ); + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ); #+end_src @@ -5244,8 +5183,8 @@ end function qmckl_compute_cord_vect_full_f #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_cord_vect_full & - (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) & - bind(C) result(info) + (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) & + bind(C) result(info) use, intrinsic :: iso_c_binding implicit none @@ -5260,7 +5199,7 @@ end function qmckl_compute_cord_vect_full_f integer(c_int32_t), external :: qmckl_compute_cord_vect_full_f info = qmckl_compute_cord_vect_full_f & - (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) + (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) end function qmckl_compute_cord_vect_full #+end_src @@ -5381,15 +5320,14 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( } #+end_src - #+CALL: generate_c_header(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_lkpm_combined_index ( - const qmckl_context context, - const int64_t cord_num, - const int64_t dim_cord_vect, - int64_t* const lkpm_combined_index ); + const qmckl_context context, + const int64_t cord_num, + const int64_t dim_cord_vect, + int64_t* const lkpm_combined_index ); #+end_src @@ -5413,6 +5351,38 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | out | vector of non-zero coefficients | + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) +{ +#ifdef HAVE_HPC + return qmckl_compute_tmp_c_hpc(context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c); +#else + return qmckl_compute_tmp_c_doc(context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c); +#endif +} + #+end_src + +# #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c") + + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none + qmckl_exit_code qmckl_compute_tmp_c ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_tmp_c_doc_f( & context, cord_num, elec_num, nucl_num, & @@ -5481,8 +5451,20 @@ integer function qmckl_compute_tmp_c_doc_f( & end function qmckl_compute_tmp_c_doc_f #+end_src -#+CALL: generate_c_interface(table=qmckl_factor_tmp_c_args,rettyp=get_value("FRetType"),fname="qmckl_compute_tmp_c_doc") + #+begin_src c :tangle (eval h_private_func) :comments org +qmckl_exit_code qmckl_compute_tmp_c_doc ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + #+CALL: generate_c_interface(table=qmckl_factor_tmp_c_args,rettyp=get_value("FRetType"),fname="qmckl_compute_tmp_c_doc") + #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_tmp_c_doc & @@ -5508,6 +5490,7 @@ integer(c_int32_t) function qmckl_compute_tmp_c_doc & end function qmckl_compute_tmp_c_doc #+end_src +**** CPU :noexport: #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_tmp_c_hpc ( @@ -5559,16 +5542,15 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc ( const int64_t bf = elec_num*nucl_num*(cord_num+1); const int64_t cf = bf; +#ifdef HAVE_OPENMP +#pragma omp parallel for collapse(2) +#endif for (int64_t nw=0; nw < walk_num; ++nw) { for (int64_t i=0; i Date: Wed, 6 Apr 2022 17:04:00 +0200 Subject: [PATCH 053/111] Ok for openmp and Cublas --- org/qmckl_jastrow.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 2ac3438..5d164ad 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5528,7 +5528,7 @@ qmckl_exit_code qmckl_compute_tmp_c_cuBlas ( const int64_t bf = elec_num*nucl_num*(cord_num+1); const int64_t cf = bf; - #pragma omp target enter data map(alloc:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*walk_num],tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) + #pragma omp target enter data map(to:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*walk_num],tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) #pragma omp target data use_device_ptr(een_rescaled_e,een_rescaled_n,tmp_c) { From 9cef7048d3482a20a6150494bfa47554023d6a33 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 6 Apr 2022 17:10:23 +0200 Subject: [PATCH 054/111] Fix CI --- org/qmckl_jastrow.org | 2 -- 1 file changed, 2 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 9173a43..c4f2e28 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -1116,8 +1116,6 @@ qmckl_exit_code qmckl_finalize_jastrow(qmckl_context context) { /* Decide if the Jastrow if offloaded on GPU or not */ #if defined(HAVE_HPC) && (defined(HAVE_CUBLAS_OFFLOAD) || defined(HAVE_OPENACC_OFFLOAD) || defined(HAVE_OPENMP_OFFLOAD)) ctx->jastrow.gpu_offload = true; // ctx->electron.num > 100; -#else - ctx->jastrow.gpu_offload = false; #endif qmckl_exit_code rc = QMCKL_SUCCESS; From 3ea90bc4a5042b1e2f43bfc1af857cbe3efa00e8 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 6 Apr 2022 17:11:21 +0200 Subject: [PATCH 055/111] OpenMP --- org/qmckl_jastrow.org | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 9173a43..1fd0d47 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5969,13 +5969,13 @@ qmckl_compute_tmp_c_omp_offload (const qmckl_context context, const int64_t size_e = walk_num*(cord_num+1)*elec_num*elec_num; const int64_t size_n = walk_num*(cord_num+1)*nucl_num*elec_num; -#pragma omp parallel copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) - { -#pragma omp loop independent gang worker vector - for (int64_t i=0 ; i Date: Wed, 6 Apr 2022 17:58:05 +0200 Subject: [PATCH 056/111] First working OpenMP version --- org/qmckl_jastrow.org | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index dd2722a..79183a6 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5869,10 +5869,6 @@ qmckl_exit_code qmckl_compute_tmp_c_acc_offload (const qmckl_context context, #pragma acc parallel copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) { -#pragma acc loop independent gang worker vector - for (int64_t i=0 ; i Date: Thu, 7 Apr 2022 13:33:50 +0200 Subject: [PATCH 057/111] Fix build --- org/qmckl_jastrow.org | 742 +++++++++++++++++++----------------------- 1 file changed, 334 insertions(+), 408 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 269d3fd..b9981b5 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -109,11 +109,6 @@ int main() { #include -#include -#include "cublas_v2.h" - - - #include #include "qmckl.h" @@ -122,6 +117,13 @@ int main() { #include "qmckl_memory_private_func.h" #include "qmckl_jastrow_private_func.h" #include "qmckl_jastrow_private_type.h" + +#ifdef HAVE_CUBLAS_OFFLOAD +#include +#include "cublas_v2.h" +#endif + + #+end_src * Context @@ -1123,7 +1125,7 @@ qmckl_exit_code qmckl_finalize_jastrow(qmckl_context context) { #if defined(HAVE_HPC) && (defined(HAVE_CUBLAS_OFFLOAD) || defined(HAVE_OPENACC_OFFLOAD) || defined(HAVE_OPENMP_OFFLOAD)) ctx->jastrow.gpu_offload = true; // ctx->electron.num > 100; #endif - + qmckl_exit_code rc = QMCKL_SUCCESS; return rc; @@ -1517,7 +1519,7 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( const int64_t bord_num, const double* bord_vector, const double rescale_factor_kappa_ee, - double* const asymp_jasb ); + double* const asymp_jasb ); #+end_src @@ -1808,21 +1810,21 @@ qmckl_exit_code qmckl_compute_factor_ee ( int ipar; // can we use a smaller integer? double x, x1, spin_fact, power_ser; - if (context == QMCKL_NULL_CONTEXT) { + if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_2; } - + if (elec_num <= 0) { return QMCKL_INVALID_ARG_3; - } + } if (bord_num <= 0) { return QMCKL_INVALID_ARG_4; - } + } for (int nw = 0; nw < walk_num; ++nw) { factor_ee[nw] = 0.0; // put init array here. @@ -1833,9 +1835,9 @@ qmckl_exit_code qmckl_compute_factor_ee ( x1 = x; power_ser = 0.0; spin_fact = 1.0; - ipar = 0; // index of asymp_jasb + ipar = 0; // index of asymp_jasb - for (int p = 1; p < bord_num; ++p) { + for (int p = 1; p < bord_num; ++p) { x = x * x1; power_ser = power_ser + bord_vector[p + 1] * x; } @@ -1844,7 +1846,7 @@ qmckl_exit_code qmckl_compute_factor_ee ( spin_fact = 0.5; ipar = 1; } - + factor_ee[nw] = factor_ee[nw] + spin_fact * bord_vector[0] * \ x1 / \ (1.0 + bord_vector[1] * \ @@ -1860,7 +1862,7 @@ qmckl_exit_code qmckl_compute_factor_ee ( #+end_src # #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_factor_ee ( const qmckl_context context, @@ -1871,7 +1873,7 @@ qmckl_exit_code qmckl_compute_factor_ee ( const double* bord_vector, const double* ee_distance_rescaled, const double* asymp_jasb, - double* const factor_ee ); + double* const factor_ee ); #+end_src @@ -2183,7 +2185,7 @@ end function qmckl_compute_factor_ee_deriv_e_f const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, const double* asymp_jasb, - double* const factor_ee_deriv_e ); + double* const factor_ee_deriv_e ); #+end_src @@ -2457,7 +2459,7 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) if (rc != QMCKL_SUCCESS) { return rc; } - + ctx->jastrow.factor_en_date = ctx->date; } @@ -2556,7 +2558,7 @@ integer function qmckl_compute_factor_en_f( & end function qmckl_compute_factor_en_f #+end_src - + #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_factor_en ( @@ -2625,7 +2627,7 @@ qmckl_exit_code qmckl_compute_factor_en ( x1 = x; power_ser = 0.0; - for (int p = 2; p < aord_num+1; ++p) { + for (int p = 2; p < aord_num+1; ++p) { x = x * x1; power_ser = power_ser + aord_vector[(p+1)-1 + (type_nucl_vector[a]-1) * aord_num] * x; } @@ -2656,7 +2658,7 @@ qmckl_exit_code qmckl_compute_factor_en ( const int64_t aord_num, const double* aord_vector, const double* en_distance_rescaled, - double* const factor_en ); + double* const factor_en ); #+end_src @@ -2950,7 +2952,7 @@ end function qmckl_compute_factor_en_deriv_e_f const double* aord_vector, const double* en_distance_rescaled, const double* en_distance_rescaled_deriv_e, - double* const factor_en_deriv_e ); + double* const factor_en_deriv_e ); #+end_src @@ -3343,7 +3345,7 @@ end function qmckl_compute_een_rescaled_e_doc_f const int64_t cord_num, const double rescale_factor_kappa_ee, const double* ee_distance, - double* const een_rescaled_e ); + double* const een_rescaled_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_een_rescaled_e_doc") @@ -3382,13 +3384,13 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( const double rescale_factor_kappa_ee, const double* ee_distance, double* const een_rescaled_e ) { - - double *een_rescaled_e_ij; + + double *een_rescaled_e_ij; double x; const int64_t elec_pairs = (elec_num * (elec_num - 1)) / 2; const int64_t len_een_ij = elec_pairs * (cord_num + 1); - int64_t k; - + int64_t k; + // number of element for the een_rescaled_e_ij[N_e*(N_e-1)/2][cord+1] // probably in C is better [cord+1, Ne*(Ne-1)/2] //elec_pairs = (elec_num * (elec_num - 1)) / 2; @@ -3397,7 +3399,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_2; @@ -3412,8 +3414,8 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( } // Prepare table of exponentiated distances raised to appropriate power - // init - + // init + for (int kk = 0; kk < walk_num*(cord_num+1)*elec_num*elec_num; ++kk) { een_rescaled_e[kk]= 0.0; } @@ -3431,14 +3433,14 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( */ for (int nw = 0; nw < walk_num; ++nw) { - + for (int kk = 0; kk < len_een_ij; ++kk) { // this array initialized at 0 except een_rescaled_e_ij(:, 1) = 1.0d0 // and the arrangement of indices is [cord_num+1, ne*(ne-1)/2] een_rescaled_e_ij[kk]= ( kk < (elec_pairs) ? 1.0 : 0.0 ); } - k = 0; + k = 0; for (int i = 0; i < elec_num; ++i) { for (int j = 0; j < i; ++j) { // een_rescaled_e_ij(k, 2) = dexp(-rescale_factor_kappa_ee * ee_distance(i, j, nw)); @@ -3456,7 +3458,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( een_rescaled_e_ij[k + elec_pairs]; } } - + // prepare the actual een table for (int i = 0; i < elec_num; ++i){ @@ -3464,7 +3466,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( een_rescaled_e[j + i*elec_num + 0 + nw*(cord_num+1)*elec_num*elec_num] = 1.0; } } - + // Up to here it should work. for ( int l = 1; l < (cord_num+1); ++l) { k = 0; @@ -3487,7 +3489,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( } free(een_rescaled_e_ij); - + return QMCKL_SUCCESS; } #+end_src @@ -3526,7 +3528,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( const double* ee_distance, double* const een_rescaled_e ); #+end_src - + #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_een_rescaled_e ( const qmckl_context context, @@ -3854,7 +3856,7 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f const double* coord_new, const double* ee_distance, const double* een_rescaled_e, - double* const een_rescaled_e_deriv_e ); + double* const een_rescaled_e_deriv_e ); #+end_src @@ -4213,7 +4215,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_n ( if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_2; @@ -4274,7 +4276,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_n ( const int64_t cord_num, const double rescale_factor_kappa_en, const double* en_distance, - double* const een_rescaled_n ); + double* const een_rescaled_n ); #+end_src *** Test @@ -4583,7 +4585,7 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f const double* coord, const double* en_distance, const double* een_rescaled_n, - double* const een_rescaled_n_deriv_e ); + double* const een_rescaled_n_deriv_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -5032,8 +5034,8 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) #else const bool gpu_offload = false; #endif - - if (gpu_offload) { + + if (gpu_offload) { #ifdef HAVE_CUBLAS_OFFLOAD rc = qmckl_compute_tmp_c_cublas_offload(context, ctx->jastrow.cord_num, @@ -5074,7 +5076,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); } - + ctx->jastrow.tmp_c_date = ctx->date; } @@ -5121,8 +5123,8 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) #else const bool gpu_offload = false; #endif - - if (gpu_offload) { + + if (gpu_offload) { #ifdef HAVE_CUBLAS_OFFLOAD rc = qmckl_compute_dtmp_c_cublas_offload(context, ctx->jastrow.cord_num, @@ -5238,10 +5240,10 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( const qmckl_context context, const int64_t cord_num, int64_t* const dim_cord_vect){ - + int lmax; - + if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } @@ -5251,7 +5253,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( } *dim_cord_vect = 0; - + for (int p=2; p <= cord_num; ++p){ for (int k=p-1; k >= 0; --k) { if (k != 0) { @@ -5265,7 +5267,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( } } } - + return QMCKL_SUCCESS; } #+end_src @@ -5276,7 +5278,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( qmckl_exit_code qmckl_compute_dim_cord_vect ( const qmckl_context context, const int64_t cord_num, - int64_t* const dim_cord_vect ); + int64_t* const dim_cord_vect ); #+end_src @@ -5541,15 +5543,15 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( int kk, lmax, m; - if (context == QMCKL_NULL_CONTEXT) { + if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } - if (cord_num <= 0) { + if (cord_num <= 0) { return QMCKL_INVALID_ARG_2; } - if (dim_cord_vect <= 0) { + if (dim_cord_vect <= 0) { return QMCKL_INVALID_ARG_3; } @@ -5586,7 +5588,7 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( const qmckl_context context, const int64_t cord_num, const int64_t dim_cord_vect, - int64_t* const lkpm_combined_index ); + int64_t* const lkpm_combined_index ); #+end_src @@ -5627,7 +5629,7 @@ qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, #endif } #+end_src - + # #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c") #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none @@ -5639,7 +5641,7 @@ qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, const int64_t walk_num, const double* een_rescaled_e, const double* een_rescaled_n, - double* const tmp_c ); + double* const tmp_c ); #+end_src #+begin_src f90 :comments org :tangle (eval f) :noweb yes @@ -5719,11 +5721,11 @@ qmckl_exit_code qmckl_compute_tmp_c_doc ( const int64_t walk_num, const double* een_rescaled_e, const double* een_rescaled_n, - double* const tmp_c ); + double* const tmp_c ); #+end_src #+CALL: generate_c_interface(table=qmckl_factor_tmp_c_args,rettyp=get_value("FRetType"),fname="qmckl_compute_tmp_c_doc") - + #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_tmp_c_doc & @@ -5768,19 +5770,19 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc ( if (cord_num <= 0) { return QMCKL_INVALID_ARG_2; - } + } if (elec_num <= 0) { return QMCKL_INVALID_ARG_3; - } + } if (nucl_num <= 0) { return QMCKL_INVALID_ARG_4; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_5; - } + } qmckl_exit_code info = QMCKL_SUCCESS; @@ -5818,16 +5820,264 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc ( #+end_src + + #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c") + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org +qmckl_exit_code qmckl_compute_tmp_c ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + +# #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c_doc") + + #+RESULTS: + #+begin_src c :tangle (eval h_private_func) :comments org +qmckl_exit_code qmckl_compute_tmp_c_doc ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + +# #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c_hpc") + + #+RESULTS: + + #+begin_src c :tangle (eval h_private_func) :comments org +qmckl_exit_code qmckl_compute_tmp_c_hpc (const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + +**** OpenACC offload :noexport: + + #+begin_src c :comments org :tangle (eval c) :noweb yes +#ifdef HAVE_OPENACC_OFFLOAD +qmckl_exit_code qmckl_compute_tmp_c_acc_offload (const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) +{ + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + // Compute array access strides: + // For tmp_c... + const int64_t stride_k_c = elec_num; + const int64_t stride_j_c = stride_k_c * nucl_num; + const int64_t stride_i_c = stride_j_c * (cord_num+1); + const int64_t stride_nw_c = stride_i_c * cord_num; + // For een_rescaled_e... + const int64_t stride_m_e = elec_num; + const int64_t stride_i_e = stride_m_e * elec_num; + const int64_t stride_nw_e = stride_i_e * (cord_num+1); + // For een_rescaled_n... + const int64_t stride_k_n = elec_num; + const int64_t stride_j_n = stride_k_n * nucl_num; + const int64_t stride_nw_n = stride_j_n * (cord_num+1); + + const int64_t size_tmp_c = elec_num*nucl_num*(cord_num+1)*cord_num*walk_num; + const int64_t size_e = walk_num*(cord_num+1)*elec_num*elec_num; + const int64_t size_n = walk_num*(cord_num+1)*nucl_num*elec_num; + +#pragma acc parallel copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) + { +#pragma acc loop independent gang worker vector + for (int64_t i=0 ; i Date: Thu, 7 Apr 2022 13:57:20 +0200 Subject: [PATCH 058/111] Fix OpenACC and OpenMP implementations --- org/qmckl_jastrow.org | 146 +++++++++++++++++++----------------------- 1 file changed, 65 insertions(+), 81 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index b9981b5..e42a86e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5915,36 +5915,31 @@ qmckl_exit_code qmckl_compute_tmp_c_acc_offload (const qmckl_context context, const int64_t size_e = walk_num*(cord_num+1)*elec_num*elec_num; const int64_t size_n = walk_num*(cord_num+1)*nucl_num*elec_num; -#pragma acc parallel copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) + #pragma acc parallel copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) { -#pragma acc loop independent gang worker vector - for (int64_t i=0 ; i Date: Thu, 7 Apr 2022 15:41:22 +0200 Subject: [PATCH 059/111] test passed --- org/qmckl_jastrow.org | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 8940a90..393c76a 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -2154,8 +2154,6 @@ integer function qmckl_compute_factor_ee_deriv_e_doc_f( & do j = 1, elec_num do i = 1, elec_num x = ee_distance_rescaled(i,j,nw) - print *, tmp_kk, x - tmp_kk = tmp_kk + 1 if(abs(x) < 1.0d-18) cycle pow_ser_g = 0.0d0 spin_fact = 1.0d0 @@ -2194,7 +2192,9 @@ integer function qmckl_compute_factor_ee_deriv_e_doc_f( & factor_ee_deriv_e( j, ii, nw) = factor_ee_deriv_e( j, ii, nw) + spin_fact * bord_vector(1) * & dx(ii) * invden2 + pow_ser_g(ii) + print *, tmp_kk, factor_ee_deriv_e(j,ii,nw) end do + tmp_kk = tmp_kk + 1 ii = 4 lap2 = lap2 * dx(ii) * third @@ -2262,7 +2262,7 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( printf("%d\t\t\%lf\n", tmp_kk, factor_ee_deriv_e[tmp_kk]); } */ - + printf("%d\n", elec_num); third = 1.0 / 3.0; for (int nw = 0; nw < walk_num; ++nw) { @@ -2270,8 +2270,6 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( for (int i = 0; i < elec_num; ++i) { for (int j = 0; j < elec_num; ++j) { x = ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; - printf("%d\t\t\%lf\n", tmp_kk, x); - tmp_kk = tmp_kk + 1; if (fabs(x) < 1.0e-18) continue; for (int ii = 0; ii < 3; ++ii){ pow_ser_g[ii] = 0.0; @@ -2284,30 +2282,16 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( xinv = 1.0 / (x + 1.0e-18); ipar = 0; - /* TEST - dx[0] = ee_distance_rescaled_deriv_e[j + i * elec_num \ - + 0 \ - + nw * elec_num * elec_num * 4]; - dx[1] = ee_distance_rescaled_deriv_e[j + i * elec_num \ - + 1 * elec_num * elec_num \ - + nw * elec_num * elec_num * 4]; - dx[2] = ee_distance_rescaled_deriv_e[j + i * elec_num \ - + 2 * elec_num * elec_num \ - + nw * elec_num * elec_num * 4]; - dx[3] = ee_distance_rescaled_deriv_e[j + i * elec_num \ - + 3 * elec_num * elec_num \ - + nw * elec_num * elec_num * 4]; - */ dx[0] = ee_distance_rescaled_deriv_e[0 \ + j * 4 + i * 4 * elec_num \ + nw * 4 * elec_num * elec_num]; dx[1] = ee_distance_rescaled_deriv_e[1 \ + j * 4 + i * 4 * elec_num \ + nw * 4 * elec_num * elec_num]; - dx[2] = ee_distance_rescaled_deriv_e[2 * (walk_num * elec_num * elec_num) \ + dx[2] = ee_distance_rescaled_deriv_e[2 \ + j * 4 + i * 4 * elec_num \ + nw * 4 * elec_num * elec_num]; - dx[3] = ee_distance_rescaled_deriv_e[3 * (walk_num * elec_num * elec_num) \ + dx[3] = ee_distance_rescaled_deriv_e[3 \ + j * 4 + i * 4 * elec_num \ + nw * 4 * elec_num * elec_num]; @@ -2332,16 +2316,18 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( lap3 = lap3 - 2.0 * bord_vector[1] * dx[ii] * dx[ii]; // IS IT "J" or "I"? I would say "I" - factor_ee_deriv_e[i + ii * elec_num * elec_num + nw * elec_num * elec_num * 4 ] += \ + factor_ee_deriv_e[i + ii * elec_num + nw * elec_num * 4 ] += \ + spin_fact * bord_vector[0] * dx[ii] * invden2 \ + pow_ser_g[ii] ; + printf("%d\t%lf\n", tmp_kk, factor_ee_deriv_e[i+ii*elec_num+nw*4*elec_num]); } + tmp_kk = tmp_kk + 1; ii = 3; lap2 = lap2 * dx[ii] * third; lap3 = lap3 + den * dx[ii]; lap3 = lap3 * (spin_fact * bord_vector[0] * invden3); - factor_ee_deriv_e[i + ii * elec_num *elec_num + nw * elec_num * elec_num * 4] += lap1 + lap2 + lap3; + factor_ee_deriv_e[i + ii*elec_num + nw * elec_num * 4] += lap1 + lap2 + lap3; } } @@ -2582,13 +2568,13 @@ double factor_ee_deriv_e[walk_num][4][elec_num]; rc = qmckl_get_jastrow_factor_ee_deriv_e(context, &(factor_ee_deriv_e[0][0][0]),walk_num*4*elec_num); // check factor_ee_deriv_e -/* DELETE FROM HERE assert(fabs(factor_ee_deriv_e[0][0][0]-0.16364894652107934) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][1][0]+0.6927548119830084 ) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][2][0]-0.073267755223968 ) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][3][0]-1.5111672803213185 ) < 1.e-12); -TO HERE */ +/* DELETE FROM HERE return QMCKL_SUCCESS; +TO HERE */ #+end_src ** Electron-nucleus component \(f_{en}\) From 0a3f427acecf16fc3cbef020a74caa4e222b4b7b Mon Sep 17 00:00:00 2001 From: Gianfranco Abrusci Date: Thu, 7 Apr 2022 16:21:29 +0200 Subject: [PATCH 060/111] removed unused variable in doc and hpc of compute_factor_ee_deriv_e --- org/qmckl_jastrow.org | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 4834a7f..ed16889 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -2032,7 +2032,6 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) ctx->jastrow.bord_vector, ctx->electron.ee_distance_rescaled, ctx->electron.ee_distance_rescaled_deriv_e, - ctx->jastrow.asymp_jasb, ctx->jastrow.factor_ee_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; @@ -2063,14 +2062,13 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) | ~bord_vector~ | ~double[bord_num+1]~ | in | List of coefficients | | ~ee_distance_rescaled~ | ~double[walk_num][elec_num][elec_num]~ | in | Electron-electron distances | | ~ee_distance_rescaled_deriv_e~ | ~double[walk_num][4][elec_num][elec_num]~ | in | Electron-electron distances | - | ~asymp_jasb~ | ~double[2]~ | in | Electron-electron distances | | ~factor_ee_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-electron distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_ee_deriv_e_doc_f( & context, walk_num, elec_num, up_num, bord_num, & bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, & - asymp_jasb, factor_ee_deriv_e) & + factor_ee_deriv_e) & result(info) use qmckl implicit none @@ -2079,10 +2077,9 @@ integer function qmckl_compute_factor_ee_deriv_e_doc_f( & double precision , intent(in) :: bord_vector(bord_num + 1) double precision , intent(in) :: ee_distance_rescaled(elec_num, elec_num,walk_num) double precision , intent(in) :: ee_distance_rescaled_deriv_e(4,elec_num, elec_num,walk_num) !TODO - double precision , intent(in) :: asymp_jasb(2) double precision , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) - integer*8 :: i, j, p, ipar, nw, ii + integer*8 :: i, j, p, nw, ii double precision :: x, spin_fact, y double precision :: den, invden, invden2, invden3, xinv double precision :: lap1, lap2, lap3, third @@ -2126,7 +2123,6 @@ integer function qmckl_compute_factor_ee_deriv_e_doc_f( & invden2 = invden * invden invden3 = invden2 * invden xinv = 1.0d0 / (x + 1.0d-18) - ipar = 1 dx(1) = ee_distance_rescaled_deriv_e(1, i, j, nw) dx(2) = ee_distance_rescaled_deriv_e(2, i, j, nw) @@ -2181,15 +2177,14 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( const double* bord_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, double* const factor_ee_deriv_e ) { - int ipar, ii; - double pow_ser_g[3]; - double dx[4]; - double x, spin_fact, y; - double den, invden, invden2, invden3, xinv; - double lap1, lap2, lap3, third; + int64_t ii; + double pow_ser_g[3]; + double dx[4]; + double x, spin_fact, y; + double den, invden, invden2, invden3, xinv; + double lap1, lap2, lap3, third; if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; @@ -2232,7 +2227,6 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( invden2 = invden * invden; invden3 = invden2 * invden; xinv = 1.0 / (x + 1.0e-18); - ipar = 0; dx[0] = ee_distance_rescaled_deriv_e[0 \ + j * 4 + i * 4 * elec_num \ @@ -2299,7 +2293,6 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( const double* bord_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, double* const factor_ee_deriv_e ); #+end_src @@ -2317,7 +2310,6 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & bord_vector, & ee_distance_rescaled, & ee_distance_rescaled_deriv_e, & - asymp_jasb, & factor_ee_deriv_e) & bind(C) result(info) @@ -2332,7 +2324,6 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & real (c_double ) , intent(in) :: bord_vector(bord_num+1) real (c_double ) , intent(in) :: ee_distance_rescaled(elec_num,elec_num,walk_num) real (c_double ) , intent(in) :: ee_distance_rescaled_deriv_e(elec_num,elec_num,4,walk_num) - real (c_double ) , intent(in) :: asymp_jasb(2) real (c_double ) , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) integer(c_int32_t), external :: qmckl_compute_factor_ee_deriv_e_doc_f @@ -2345,7 +2336,6 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & bord_vector, & ee_distance_rescaled, & ee_distance_rescaled_deriv_e, & - asymp_jasb, & factor_ee_deriv_e) end function qmckl_compute_factor_ee_deriv_e_doc @@ -2361,7 +2351,6 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & const double* bord_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, double* const factor_ee_deriv_e ); #+end_src @@ -2375,7 +2364,6 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & const double* bord_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, double* const factor_ee_deriv_e ); #+end_src @@ -2389,13 +2377,12 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & const double* bord_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, double* const factor_ee_deriv_e ) { #ifdef HAVE_HPC - return qmckl_compute_factor_ee_deriv_e_hpc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, asymp_jasb, factor_ee_deriv_e ); + return qmckl_compute_factor_ee_deriv_e_hpc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); #else - return qmckl_compute_factor_ee_deriv_e_doc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, asymp_jasb, factor_ee_deriv_e ); + return qmckl_compute_factor_ee_deriv_e_doc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); #endif } #+end_src From 47d63aa9d3c9530e62e1378d02f02771eaa1ce69 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 7 Apr 2022 17:02:36 +0200 Subject: [PATCH 061/111] Fix cublas --- configure.ac | 9 +++++---- org/qmckl_jastrow.org | 40 +++++++++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/configure.ac b/configure.ac index d3c9471..055ca86 100644 --- a/configure.ac +++ b/configure.ac @@ -310,20 +310,21 @@ AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ case $CC in *gcc*) - CFLAGS="$CFLAGS -fopenacc" + CFLAGS="$CFLAGS -fopenmp" + LDFLAGS="-lcublas" ;; *nvc*) - CFLAGS="$CFLAGS -acc=gpu" + CFLAGS="$CFLAGS -mp=gpu -cudalib=cublas" ;; esac case $FC in *gfortran*) - FCFLAGS="$FCFLAGS -fopenacc" + FCFLAGS="$FCFLAGS -fopenmp" ;; *nvfortran*) - FCFLAGS="$FCFLAGS -acc=gpu" + FCFLAGS="$FCFLAGS -mp=gpu -cudalib=cublas" ;; esac ]) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index e1fc423..1e17c11 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -5870,14 +5870,15 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc (const qmckl_context context, #+begin_src c :comments org :tangle (eval c) :noweb yes #ifdef HAVE_OPENACC_OFFLOAD -qmckl_exit_code qmckl_compute_tmp_c_acc_offload (const qmckl_context context, - const int64_t cord_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* een_rescaled_e, - const double* een_rescaled_n, - double* const tmp_c ) +qmckl_exit_code +qmckl_compute_tmp_c_acc_offload (const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) { if (context == QMCKL_NULL_CONTEXT) { @@ -6062,6 +6063,7 @@ qmckl_compute_tmp_c_omp_offload (const qmckl_context context, #+begin_src c :comments org :tangle (eval c) :noweb yes #ifdef HAVE_CUBLAS_OFFLOAD +qmckl_exit_code qmckl_compute_tmp_c_cublas_offload (const qmckl_context context, const int64_t cord_num, const int64_t elec_num, @@ -6116,16 +6118,19 @@ qmckl_compute_tmp_c_cublas_offload (const qmckl_context context, const int64_t bf = elec_num*nucl_num*(cord_num+1); const int64_t cf = bf; + info = QMCKL_SUCCESS; + + #pragma omp target enter data map(to:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*walk_num],tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) #pragma omp target data use_device_ptr(een_rescaled_e,een_rescaled_n,tmp_c) { - +#pragma omp target teams distribute parallel for collapse(2) for (int nw=0; nw < walk_num; ++nw) { for (int i=0; i Date: Thu, 7 Apr 2022 18:44:59 +0200 Subject: [PATCH 062/111] Add cublas batched --- org/qmckl_jastrow.org | 195 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 159 insertions(+), 36 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 269d3fd..e13498e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -110,7 +110,7 @@ int main() { #include -#include "cublas_v2.h" +#include @@ -5032,10 +5032,10 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) #else const bool gpu_offload = false; #endif - - if (gpu_offload) { + + if (gpu_offload) { #ifdef HAVE_CUBLAS_OFFLOAD - rc = qmckl_compute_tmp_c_cublas_offload(context, + rc = qmckl_compute_tmp_c_cuBlas(context, ctx->jastrow.cord_num, ctx->electron.num, ctx->nucleus.num, @@ -5074,7 +5074,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.een_rescaled_n, ctx->jastrow.tmp_c); } - + ctx->jastrow.tmp_c_date = ctx->date; } @@ -5121,10 +5121,10 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) #else const bool gpu_offload = false; #endif - - if (gpu_offload) { + + if (gpu_offload) { #ifdef HAVE_CUBLAS_OFFLOAD - rc = qmckl_compute_dtmp_c_cublas_offload(context, + rc = qmckl_compute_dtmp_c_cuBlas(context, ctx->jastrow.cord_num, ctx->electron.num, ctx->nucleus.num, @@ -5829,6 +5829,93 @@ qmckl_exit_code qmckl_compute_tmp_c_cuBlas ( const double* een_rescaled_n, double* const tmp_c ) { + qmckl_exit_code info; + + //Initialisation of cublas + + cublasHandle_t handle; + if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) + { + fprintf(stdout, "CUBLAS initialization failed!\n"); + exit(EXIT_FAILURE); + } + + + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + const double alpha = 1.0; + const double beta = 0.0; + + const int64_t M = elec_num; + const int64_t N = nucl_num*(cord_num + 1); + const int64_t K = elec_num; + + const int64_t LDA = elec_num; + const int64_t LDB = elec_num; + const int64_t LDC = elec_num; + + const int64_t af = elec_num*elec_num; + const int64_t bf = elec_num*nucl_num*(cord_num+1); + const int64_t cf = bf; + + #pragma omp target enter data map(to:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*walk_num],tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) + #pragma omp target data use_device_ptr(een_rescaled_e,een_rescaled_n,tmp_c) + { + for (int nw=0; nw < walk_num; ++nw) { + + int cublasError = cublasDgemmStridedBatched(handle, CUBLAS_OP_N, CUBLAS_OP_N, M, N, K, &alpha, + &(een_rescaled_e[nw*(cord_num+1)]), \ + LDA, af, \ + &(een_rescaled_n[bf*nw]), \ + LDB, 0, \ + &beta, \ + &(tmp_c[nw*cord_num]), \ + LDC, cf, cord_num); + + //Manage cublas ERROR + if(cublasError != CUBLAS_STATUS_SUCCESS){ + printf("CUBLAS ERROR %d", cublasError); + info = QMCKL_FAILURE; + }else{ + info = QMCKL_SUCCESS; + } + } + } + cublasDestroy(handle); + #pragma omp target exit data map(from:tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) + + return info; + } +#+end_src + + + +#+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_tmp_c_cuBlas_batched ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) { + qmckl_exit_code info; //Initialisation of cublas @@ -6708,40 +6795,47 @@ qmckl_exit_code qmckl_compute_dtmp_c_omp_offload ( #+begin_src c :comments org :tangle (eval c) :noweb yes #ifdef HAVE_CUBLAS_OFFLOAD -qmckl_exit_code qmckl_compute_dtmp_c_cublas_offload ( - const qmckl_context context, - const int64_t cord_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* een_rescaled_e_deriv_e, - const double* een_rescaled_n, - double* const dtmp_c ) { +qmckl_exit_code qmckl_compute_dtmp_c_cuBlas (const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e_deriv_e, + const double* een_rescaled_n, + double* const dtmp_c ) +{ + + cublasHandle_t handle; + if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) + { + fprintf(stdout, "CUBLAS initialization failed!\n"); + exit(EXIT_FAILURE); + } + + if (context == QMCKL_NULL_CONTEXT) { - return QMCKL_INVALID_CONTEXT; + return QMCKL_INVALID_CONTEXT; } if (cord_num <= 0) { - return QMCKL_INVALID_ARG_2; + return QMCKL_INVALID_ARG_2; } if (elec_num <= 0) { - return QMCKL_INVALID_ARG_3; + return QMCKL_INVALID_ARG_3; } if (nucl_num <= 0) { - return QMCKL_INVALID_ARG_4; + return QMCKL_INVALID_ARG_4; } if (walk_num <= 0) { - return QMCKL_INVALID_ARG_5; + return QMCKL_INVALID_ARG_5; } qmckl_exit_code info = QMCKL_SUCCESS; - const char TransA = 'N'; - const char TransB = 'N'; const double alpha = 1.0; const double beta = 0.0; @@ -6757,19 +6851,48 @@ qmckl_exit_code qmckl_compute_dtmp_c_cublas_offload ( const int64_t bf = elec_num*nucl_num*(cord_num+1); const int64_t cf = elec_num*4*nucl_num*(cord_num+1); - // TODO Replace with calls to cuBLAS - for (int64_t nw=0; nw < walk_num; ++nw) { - for (int64_t i=0; i < cord_num; ++i) { - info = qmckl_dgemm(context, TransA, TransB, M, N, K, alpha, \ - &(een_rescaled_e_deriv_e[af*(i+nw*(cord_num+1))]), \ - LDA, \ - &(een_rescaled_n[bf*nw]), \ - LDB, \ - beta, \ - &(dtmp_c[cf*(i+nw*cord_num)]), \ - LDC); +#pragma omp target enter data map(to:een_rescaled_e_deriv_e[0:elec_num*4*elec_num*(cord_num+1)*walk_num], een_rescaled_n[0:elec_num*nucl_num*(cord_num+1)*walk_num], dtmp_c[0:elec_num*4*nucl_num*(cord_num+1)*cord_num*walk_num]) +#pragma omp target data use_device_ptr(een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) + { + for (int64_t nw=0; nw < walk_num; ++nw) { + /* + for (int64_t i=0; i < cord_num; ++i) { + int cublasError = cublasDgemm(handle, CUBLAS_OP_N, CUBLAS_OP_N, M, N, K, &alpha, \ + &(een_rescaled_e_deriv_e[af*(i+nw*(cord_num+1))]), \ + LDA, \ + &(een_rescaled_n[bf*nw]), \ + LDB, \ + &beta, \ + &(dtmp_c[cf*(i+nw*cord_num)]), \ + LDC); + ,*/ + //Manage CUBLAS ERRORS + + int cublasError = cublasDgemmStridedBatched(handle, CUBLAS_OP_N, CUBLAS_OP_N, M, N, K, &alpha, \ + &(een_rescaled_e_deriv_e[(nw*(cord_num+1))]), \ + LDA, af, \ + &(een_rescaled_n[bf*nw]), \ + LDB, 0, \ + &beta, \ + &(dtmp_c[(nw*cord_num)]), \ + LDC, cf, cord_num); + + + if(cublasError != CUBLAS_STATUS_SUCCESS){ + printf("CUBLAS ERROR %d", cublasError); + info = QMCKL_FAILURE; + return info; + }else{ + info = QMCKL_SUCCESS; + } + + //} } } + cudaDeviceSynchronize(); + cublasDestroy(handle); + +#pragma omp target exit data map(from:dtmp_c[0:cf*cord_num*walk_num]) return info; } @@ -6779,7 +6902,7 @@ qmckl_exit_code qmckl_compute_dtmp_c_cublas_offload ( #+RESULTS: #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none #ifdef HAVE_CUBLAS_OFFLOAD - qmckl_exit_code qmckl_compute_dtmp_c_cublas_offload ( + qmckl_exit_code qmckl_compute_dtmp_c_cuBlas ( const qmckl_context context, const int64_t cord_num, const int64_t elec_num, From 07cc64bb3115617ccbb4c815c50bd68172cd96b4 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Fri, 8 Apr 2022 10:32:38 +0200 Subject: [PATCH 063/111] Changed enable-cublas into with-cublas --- configure.ac | 2 +- org/qmckl_jastrow.org | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 055ca86..0ec94b8 100644 --- a/configure.ac +++ b/configure.ac @@ -304,7 +304,7 @@ AS_IF([test "$enable_gpu" = "openacc"], [ ]) # cuBLAS offloading -AC_ARG_ENABLE(cublas, [AS_HELP_STRING([--enable-cublas],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$enableval, HAVE_CUBLAS_OFFLOAD=no) +AC_ARG_WITH(cublas, [AS_HELP_STRING([--with-cublas],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$withval, HAVE_CUBLAS_OFFLOAD=no) AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ AC_DEFINE([HAVE_CUBLAS_OFFLOAD], [1], [If defined, activate cuBLAS-offloaded routines]) case $CC in diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 6191ba5..b3ec515 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -11,7 +11,7 @@ \[ J(\mathbf{r},\mathbf{R}) = J_{\text{eN}}(\mathbf{r},\mathbf{R}) + J_{\text{ee}}(\mathbf{r}) + J_{\text{eeN}}(\mathbf{r},\mathbf{R}) \] - + In the following, we us the notations $r_{ij} = |\mathbf{r}_i - \mathbf{r}_j|$ and $R_{i\alpha} = |\mathbf{r}_i - \mathbf{R}_\alpha|$. @@ -58,7 +58,6 @@ The terms $J_{\text{ee}}^\infty$ and $J_{\text{eN}}^\infty$ are shifts to ensure that $J_{\text{ee}}$ and $J_{\text{eN}}$ have an asymptotic value of zero. - * Headers :noexport: #+begin_src elisp :noexport :results none (org-babel-lob-ingest "../tools/lib.org") From d4f0ccee3b28d30319afc22e74f923ce5e4a4930 Mon Sep 17 00:00:00 2001 From: hoffer Date: Fri, 8 Apr 2022 10:44:48 +0200 Subject: [PATCH 064/111] Add cublas batch Dgemm --- org/qmckl_jastrow.org | 1134 ++++++++++++++++++++--------------------- 1 file changed, 547 insertions(+), 587 deletions(-) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index e13498e..dc58d48 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -109,11 +109,6 @@ int main() { #include -#include -#include - - - #include #include "qmckl.h" @@ -122,6 +117,13 @@ int main() { #include "qmckl_memory_private_func.h" #include "qmckl_jastrow_private_func.h" #include "qmckl_jastrow_private_type.h" + +#ifdef HAVE_CUBLAS_OFFLOAD +#include +#include "cublas_v2.h" +#endif + + #+end_src * Context @@ -1123,7 +1125,7 @@ qmckl_exit_code qmckl_finalize_jastrow(qmckl_context context) { #if defined(HAVE_HPC) && (defined(HAVE_CUBLAS_OFFLOAD) || defined(HAVE_OPENACC_OFFLOAD) || defined(HAVE_OPENMP_OFFLOAD)) ctx->jastrow.gpu_offload = true; // ctx->electron.num > 100; #endif - + qmckl_exit_code rc = QMCKL_SUCCESS; return rc; @@ -1517,7 +1519,7 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( const int64_t bord_num, const double* bord_vector, const double rescale_factor_kappa_ee, - double* const asymp_jasb ); + double* const asymp_jasb ); #+end_src @@ -1808,21 +1810,21 @@ qmckl_exit_code qmckl_compute_factor_ee ( int ipar; // can we use a smaller integer? double x, x1, spin_fact, power_ser; - if (context == QMCKL_NULL_CONTEXT) { + if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_2; } - + if (elec_num <= 0) { return QMCKL_INVALID_ARG_3; - } + } if (bord_num <= 0) { return QMCKL_INVALID_ARG_4; - } + } for (int nw = 0; nw < walk_num; ++nw) { factor_ee[nw] = 0.0; // put init array here. @@ -1833,9 +1835,9 @@ qmckl_exit_code qmckl_compute_factor_ee ( x1 = x; power_ser = 0.0; spin_fact = 1.0; - ipar = 0; // index of asymp_jasb + ipar = 0; // index of asymp_jasb - for (int p = 1; p < bord_num; ++p) { + for (int p = 1; p < bord_num; ++p) { x = x * x1; power_ser = power_ser + bord_vector[p + 1] * x; } @@ -1844,7 +1846,7 @@ qmckl_exit_code qmckl_compute_factor_ee ( spin_fact = 0.5; ipar = 1; } - + factor_ee[nw] = factor_ee[nw] + spin_fact * bord_vector[0] * \ x1 / \ (1.0 + bord_vector[1] * \ @@ -1860,7 +1862,7 @@ qmckl_exit_code qmckl_compute_factor_ee ( #+end_src # #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_factor_ee ( const qmckl_context context, @@ -1871,7 +1873,7 @@ qmckl_exit_code qmckl_compute_factor_ee ( const double* bord_vector, const double* ee_distance_rescaled, const double* asymp_jasb, - double* const factor_ee ); + double* const factor_ee ); #+end_src @@ -2030,7 +2032,6 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) ctx->jastrow.bord_vector, ctx->electron.ee_distance_rescaled, ctx->electron.ee_distance_rescaled_deriv_e, - ctx->jastrow.asymp_jasb, ctx->jastrow.factor_ee_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; @@ -2061,14 +2062,13 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) | ~bord_vector~ | ~double[bord_num+1]~ | in | List of coefficients | | ~ee_distance_rescaled~ | ~double[walk_num][elec_num][elec_num]~ | in | Electron-electron distances | | ~ee_distance_rescaled_deriv_e~ | ~double[walk_num][4][elec_num][elec_num]~ | in | Electron-electron distances | - | ~asymp_jasb~ | ~double[2]~ | in | Electron-electron distances | | ~factor_ee_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-electron distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_factor_ee_deriv_e_f( & +integer function qmckl_compute_factor_ee_deriv_e_doc_f( & context, walk_num, elec_num, up_num, bord_num, & bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, & - asymp_jasb, factor_ee_deriv_e) & + factor_ee_deriv_e) & result(info) use qmckl implicit none @@ -2077,10 +2077,9 @@ integer function qmckl_compute_factor_ee_deriv_e_f( & double precision , intent(in) :: bord_vector(bord_num + 1) double precision , intent(in) :: ee_distance_rescaled(elec_num, elec_num,walk_num) double precision , intent(in) :: ee_distance_rescaled_deriv_e(4,elec_num, elec_num,walk_num) !TODO - double precision , intent(in) :: asymp_jasb(2) double precision , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) - integer*8 :: i, j, p, ipar, nw, ii + integer*8 :: i, j, p, nw, ii double precision :: x, spin_fact, y double precision :: den, invden, invden2, invden3, xinv double precision :: lap1, lap2, lap3, third @@ -2124,7 +2123,6 @@ integer function qmckl_compute_factor_ee_deriv_e_f( & invden2 = invden * invden invden3 = invden2 * invden xinv = 1.0d0 / (x + 1.0d-18) - ipar = 1 dx(1) = ee_distance_rescaled_deriv_e(1, i, j, nw) dx(2) = ee_distance_rescaled_deriv_e(2, i, j, nw) @@ -2166,7 +2164,120 @@ integer function qmckl_compute_factor_ee_deriv_e_f( & end do end do -end function qmckl_compute_factor_ee_deriv_e_f +end function qmckl_compute_factor_ee_deriv_e_doc_f + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes +qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + double* const factor_ee_deriv_e ) { + + int64_t ii; + double pow_ser_g[3]; + double dx[4]; + double x, spin_fact, y; + double den, invden, invden2, invden3, xinv; + double lap1, lap2, lap3, third; + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (walk_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (bord_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + + for (int nw = 0; nw < walk_num; ++nw) { + for (int ii = 0; ii < 4; ++ii) { + for (int j = 0; j < elec_num; ++j) { + factor_ee_deriv_e[j + ii * elec_num + nw * elec_num * 4] = 0.0; + } + } + } + + third = 1.0 / 3.0; + + for (int nw = 0; nw < walk_num; ++nw) { + for (int i = 0; i < elec_num; ++i) { + for (int j = 0; j < elec_num; ++j) { + x = ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; + if (fabs(x) < 1.0e-18) continue; + for (int ii = 0; ii < 3; ++ii){ + pow_ser_g[ii] = 0.0; + } + spin_fact = 1.0; + den = 1.0 + bord_vector[1] * x; + invden = 1.0 / den; + invden2 = invden * invden; + invden3 = invden2 * invden; + xinv = 1.0 / (x + 1.0e-18); + + dx[0] = ee_distance_rescaled_deriv_e[0 \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + dx[1] = ee_distance_rescaled_deriv_e[1 \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + dx[2] = ee_distance_rescaled_deriv_e[2 \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + dx[3] = ee_distance_rescaled_deriv_e[3 \ + + j * 4 + i * 4 * elec_num \ + + nw * 4 * elec_num * elec_num]; + + if((i <= (up_num-1) && j <= (up_num-1) ) || (i > (up_num-1) && j > (up_num-1))) { + spin_fact = 0.5; + } + + lap1 = 0.0; + lap2 = 0.0; + lap3 = 0.0; + for (int ii = 0; ii < 3; ++ii) { + x = ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; + if (fabs(x) < 1.0e-18) continue; + for (int p = 2; p < bord_num+1; ++p) { + y = p * bord_vector[(p-1) + 1] * x; + pow_ser_g[ii] = pow_ser_g[ii] + y * dx[ii]; + lap1 = lap1 + (p - 1) * y * xinv * dx[ii] * dx[ii]; + lap2 = lap2 + y; + x = x * ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; + } + + lap3 = lap3 - 2.0 * bord_vector[1] * dx[ii] * dx[ii]; + + factor_ee_deriv_e[i + ii * elec_num + nw * elec_num * 4 ] += \ + + spin_fact * bord_vector[0] * dx[ii] * invden2 \ + + pow_ser_g[ii] ; + } + + ii = 3; + lap2 = lap2 * dx[ii] * third; + lap3 = lap3 + den * dx[ii]; + lap3 = lap3 * (spin_fact * bord_vector[0] * invden3); + factor_ee_deriv_e[i + ii*elec_num + nw * elec_num * 4] += lap1 + lap2 + lap3; + + } + } + } + + return QMCKL_SUCCESS; +} #+end_src # #+CALL: generate_c_header(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -2182,17 +2293,16 @@ end function qmckl_compute_factor_ee_deriv_e_f const double* bord_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, - double* const factor_ee_deriv_e ); + double* const factor_ee_deriv_e ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) + #+CALL: generate_c_interface(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_factor_ee_deriv_e_doc") #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e & - (context, & +integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & + (context, & walk_num, & elec_num, & up_num, & @@ -2200,7 +2310,6 @@ end function qmckl_compute_factor_ee_deriv_e_f bord_vector, & ee_distance_rescaled, & ee_distance_rescaled_deriv_e, & - asymp_jasb, & factor_ee_deriv_e) & bind(C) result(info) @@ -2215,12 +2324,11 @@ end function qmckl_compute_factor_ee_deriv_e_f real (c_double ) , intent(in) :: bord_vector(bord_num+1) real (c_double ) , intent(in) :: ee_distance_rescaled(elec_num,elec_num,walk_num) real (c_double ) , intent(in) :: ee_distance_rescaled_deriv_e(elec_num,elec_num,4,walk_num) - real (c_double ) , intent(in) :: asymp_jasb(2) real (c_double ) , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) - integer(c_int32_t), external :: qmckl_compute_factor_ee_deriv_e_f - info = qmckl_compute_factor_ee_deriv_e_f & - (context, & + integer(c_int32_t), external :: qmckl_compute_factor_ee_deriv_e_doc_f + info = qmckl_compute_factor_ee_deriv_e_doc_f & + (context, & walk_num, & elec_num, & up_num, & @@ -2228,11 +2336,60 @@ end function qmckl_compute_factor_ee_deriv_e_f bord_vector, & ee_distance_rescaled, & ee_distance_rescaled_deriv_e, & - asymp_jasb, & factor_ee_deriv_e) - end function qmckl_compute_factor_ee_deriv_e + end function qmckl_compute_factor_ee_deriv_e_doc #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + double* const factor_ee_deriv_e ); + #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org + qmckl_exit_code qmckl_compute_factor_ee_deriv_e_doc ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + double* const factor_ee_deriv_e ); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes + qmckl_exit_code qmckl_compute_factor_ee_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + double* const factor_ee_deriv_e ) { + + #ifdef HAVE_HPC + return qmckl_compute_factor_ee_deriv_e_hpc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); + #else + return qmckl_compute_factor_ee_deriv_e_doc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); + #endif +} + #+end_src + + + + *** Test #+begin_src python :results output :exports none :noweb yes @@ -2351,7 +2508,6 @@ assert(fabs(factor_ee_deriv_e[0][0][0]-0.16364894652107934) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][1][0]+0.6927548119830084 ) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][2][0]-0.073267755223968 ) < 1.e-12); assert(fabs(factor_ee_deriv_e[0][3][0]-1.5111672803213185 ) < 1.e-12); - #+end_src ** Electron-nucleus component \(f_{en}\) @@ -2457,7 +2613,7 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) if (rc != QMCKL_SUCCESS) { return rc; } - + ctx->jastrow.factor_en_date = ctx->date; } @@ -2556,7 +2712,7 @@ integer function qmckl_compute_factor_en_f( & end function qmckl_compute_factor_en_f #+end_src - + #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_factor_en ( @@ -2625,7 +2781,7 @@ qmckl_exit_code qmckl_compute_factor_en ( x1 = x; power_ser = 0.0; - for (int p = 2; p < aord_num+1; ++p) { + for (int p = 2; p < aord_num+1; ++p) { x = x * x1; power_ser = power_ser + aord_vector[(p+1)-1 + (type_nucl_vector[a]-1) * aord_num] * x; } @@ -2656,7 +2812,7 @@ qmckl_exit_code qmckl_compute_factor_en ( const int64_t aord_num, const double* aord_vector, const double* en_distance_rescaled, - double* const factor_en ); + double* const factor_en ); #+end_src @@ -2950,7 +3106,7 @@ end function qmckl_compute_factor_en_deriv_e_f const double* aord_vector, const double* en_distance_rescaled, const double* en_distance_rescaled_deriv_e, - double* const factor_en_deriv_e ); + double* const factor_en_deriv_e ); #+end_src @@ -3343,7 +3499,7 @@ end function qmckl_compute_een_rescaled_e_doc_f const int64_t cord_num, const double rescale_factor_kappa_ee, const double* ee_distance, - double* const een_rescaled_e ); + double* const een_rescaled_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_een_rescaled_e_doc") @@ -3382,13 +3538,13 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( const double rescale_factor_kappa_ee, const double* ee_distance, double* const een_rescaled_e ) { - - double *een_rescaled_e_ij; + + double *een_rescaled_e_ij; double x; const int64_t elec_pairs = (elec_num * (elec_num - 1)) / 2; const int64_t len_een_ij = elec_pairs * (cord_num + 1); - int64_t k; - + int64_t k; + // number of element for the een_rescaled_e_ij[N_e*(N_e-1)/2][cord+1] // probably in C is better [cord+1, Ne*(Ne-1)/2] //elec_pairs = (elec_num * (elec_num - 1)) / 2; @@ -3397,7 +3553,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_2; @@ -3412,8 +3568,8 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( } // Prepare table of exponentiated distances raised to appropriate power - // init - + // init + for (int kk = 0; kk < walk_num*(cord_num+1)*elec_num*elec_num; ++kk) { een_rescaled_e[kk]= 0.0; } @@ -3431,14 +3587,14 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( */ for (int nw = 0; nw < walk_num; ++nw) { - + for (int kk = 0; kk < len_een_ij; ++kk) { // this array initialized at 0 except een_rescaled_e_ij(:, 1) = 1.0d0 // and the arrangement of indices is [cord_num+1, ne*(ne-1)/2] een_rescaled_e_ij[kk]= ( kk < (elec_pairs) ? 1.0 : 0.0 ); } - k = 0; + k = 0; for (int i = 0; i < elec_num; ++i) { for (int j = 0; j < i; ++j) { // een_rescaled_e_ij(k, 2) = dexp(-rescale_factor_kappa_ee * ee_distance(i, j, nw)); @@ -3456,7 +3612,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( een_rescaled_e_ij[k + elec_pairs]; } } - + // prepare the actual een table for (int i = 0; i < elec_num; ++i){ @@ -3464,7 +3620,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( een_rescaled_e[j + i*elec_num + 0 + nw*(cord_num+1)*elec_num*elec_num] = 1.0; } } - + // Up to here it should work. for ( int l = 1; l < (cord_num+1); ++l) { k = 0; @@ -3487,7 +3643,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( } free(een_rescaled_e_ij); - + return QMCKL_SUCCESS; } #+end_src @@ -3526,7 +3682,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( const double* ee_distance, double* const een_rescaled_e ); #+end_src - + #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_een_rescaled_e ( const qmckl_context context, @@ -3854,7 +4010,7 @@ end function qmckl_compute_factor_een_rescaled_e_deriv_e_f const double* coord_new, const double* ee_distance, const double* een_rescaled_e, - double* const een_rescaled_e_deriv_e ); + double* const een_rescaled_e_deriv_e ); #+end_src @@ -4213,7 +4369,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_n ( if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_2; @@ -4274,7 +4430,7 @@ qmckl_exit_code qmckl_compute_een_rescaled_n ( const int64_t cord_num, const double rescale_factor_kappa_en, const double* en_distance, - double* const een_rescaled_n ); + double* const een_rescaled_n ); #+end_src *** Test @@ -4583,7 +4739,7 @@ end function qmckl_compute_factor_een_rescaled_n_deriv_e_f const double* coord, const double* en_distance, const double* een_rescaled_n, - double* const een_rescaled_n_deriv_e ); + double* const een_rescaled_n_deriv_e ); #+end_src #+CALL: generate_c_interface(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -5035,7 +5191,7 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) if (gpu_offload) { #ifdef HAVE_CUBLAS_OFFLOAD - rc = qmckl_compute_tmp_c_cuBlas(context, + rc = qmckl_compute_tmp_c_cublas_offload(context, ctx->jastrow.cord_num, ctx->electron.num, ctx->nucleus.num, @@ -5124,7 +5280,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) if (gpu_offload) { #ifdef HAVE_CUBLAS_OFFLOAD - rc = qmckl_compute_dtmp_c_cuBlas(context, + rc = qmckl_compute_dtmp_c_cublas_offload(context, ctx->jastrow.cord_num, ctx->electron.num, ctx->nucleus.num, @@ -5238,10 +5394,10 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( const qmckl_context context, const int64_t cord_num, int64_t* const dim_cord_vect){ - + int lmax; - + if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } @@ -5251,7 +5407,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( } *dim_cord_vect = 0; - + for (int p=2; p <= cord_num; ++p){ for (int k=p-1; k >= 0; --k) { if (k != 0) { @@ -5265,7 +5421,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( } } } - + return QMCKL_SUCCESS; } #+end_src @@ -5276,7 +5432,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( qmckl_exit_code qmckl_compute_dim_cord_vect ( const qmckl_context context, const int64_t cord_num, - int64_t* const dim_cord_vect ); + int64_t* const dim_cord_vect ); #+end_src @@ -5541,15 +5697,15 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( int kk, lmax, m; - if (context == QMCKL_NULL_CONTEXT) { + if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } - if (cord_num <= 0) { + if (cord_num <= 0) { return QMCKL_INVALID_ARG_2; } - if (dim_cord_vect <= 0) { + if (dim_cord_vect <= 0) { return QMCKL_INVALID_ARG_3; } @@ -5586,7 +5742,7 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( const qmckl_context context, const int64_t cord_num, const int64_t dim_cord_vect, - int64_t* const lkpm_combined_index ); + int64_t* const lkpm_combined_index ); #+end_src @@ -5627,7 +5783,7 @@ qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, #endif } #+end_src - + # #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c") #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none @@ -5639,7 +5795,7 @@ qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, const int64_t walk_num, const double* een_rescaled_e, const double* een_rescaled_n, - double* const tmp_c ); + double* const tmp_c ); #+end_src #+begin_src f90 :comments org :tangle (eval f) :noweb yes @@ -5719,11 +5875,11 @@ qmckl_exit_code qmckl_compute_tmp_c_doc ( const int64_t walk_num, const double* een_rescaled_e, const double* een_rescaled_n, - double* const tmp_c ); + double* const tmp_c ); #+end_src #+CALL: generate_c_interface(table=qmckl_factor_tmp_c_args,rettyp=get_value("FRetType"),fname="qmckl_compute_tmp_c_doc") - + #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_tmp_c_doc & @@ -5768,19 +5924,19 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc ( if (cord_num <= 0) { return QMCKL_INVALID_ARG_2; - } + } if (elec_num <= 0) { return QMCKL_INVALID_ARG_3; - } + } if (nucl_num <= 0) { return QMCKL_INVALID_ARG_4; - } + } if (walk_num <= 0) { return QMCKL_INVALID_ARG_5; - } + } qmckl_exit_code info = QMCKL_SUCCESS; @@ -5818,18 +5974,259 @@ qmckl_exit_code qmckl_compute_tmp_c_hpc ( #+end_src -#+begin_src c :comments org :tangle (eval c) :noweb yes -qmckl_exit_code qmckl_compute_tmp_c_cuBlas ( - const qmckl_context context, - const int64_t cord_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* een_rescaled_e, - const double* een_rescaled_n, - double* const tmp_c ) { - qmckl_exit_code info; + #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c") + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org +qmckl_exit_code qmckl_compute_tmp_c ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + +# #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c_doc") + + #+RESULTS: + #+begin_src c :tangle (eval h_private_func) :comments org +qmckl_exit_code qmckl_compute_tmp_c_doc ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + +# #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname="qmckl_compute_tmp_c_hpc") + + #+RESULTS: + + #+begin_src c :tangle (eval h_private_func) :comments org +qmckl_exit_code qmckl_compute_tmp_c_hpc (const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + #+end_src + +**** OpenACC offload :noexport: + + #+begin_src c :comments org :tangle (eval c) :noweb yes +#ifdef HAVE_OPENACC_OFFLOAD +qmckl_exit_code +qmckl_compute_tmp_c_acc_offload (const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ) +{ + + if (context == QMCKL_NULL_CONTEXT) { + return QMCKL_INVALID_CONTEXT; + } + + if (cord_num <= 0) { + return QMCKL_INVALID_ARG_2; + } + + if (elec_num <= 0) { + return QMCKL_INVALID_ARG_3; + } + + if (nucl_num <= 0) { + return QMCKL_INVALID_ARG_4; + } + + // Compute array access strides: + // For tmp_c... + const int64_t stride_k_c = elec_num; + const int64_t stride_j_c = stride_k_c * nucl_num; + const int64_t stride_i_c = stride_j_c * (cord_num+1); + const int64_t stride_nw_c = stride_i_c * cord_num; + // For een_rescaled_e... + const int64_t stride_m_e = elec_num; + const int64_t stride_i_e = stride_m_e * elec_num; + const int64_t stride_nw_e = stride_i_e * (cord_num+1); + // For een_rescaled_n... + const int64_t stride_k_n = elec_num; + const int64_t stride_j_n = stride_k_n * nucl_num; + const int64_t stride_nw_n = stride_j_n * (cord_num+1); + + const int64_t size_tmp_c = elec_num*nucl_num*(cord_num+1)*cord_num*walk_num; + const int64_t size_e = walk_num*(cord_num+1)*elec_num*elec_num; + const int64_t size_n = walk_num*(cord_num+1)*nucl_num*elec_num; + + #pragma acc parallel copyout(tmp_c [0:size_tmp_c]) copyin(een_rescaled_e[0:size_e], een_rescaled_n[0:size_n]) + { +#pragma acc loop independent gang worker vector collapse(5) + for (int nw=0; nw < walk_num; ++nw) { + for (int i=0; i Date: Fri, 8 Apr 2022 11:11:15 +0200 Subject: [PATCH 065/111] Configure cuBLAS with --enable-gpu and clean code --- configure.ac | 5 +- org/qmckl_jastrow.org | 127 ++++++++++++------------------------------ 2 files changed, 40 insertions(+), 92 deletions(-) diff --git a/configure.ac b/configure.ac index 0ec94b8..17350c7 100644 --- a/configure.ac +++ b/configure.ac @@ -304,9 +304,10 @@ AS_IF([test "$enable_gpu" = "openacc"], [ ]) # cuBLAS offloading -AC_ARG_WITH(cublas, [AS_HELP_STRING([--with-cublas],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$withval, HAVE_CUBLAS_OFFLOAD=no) -AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ +HAVE_OPENACC_OFFLOAD="no" +AS_IF([test "$enable_gpu" = "cublas"], [ AC_DEFINE([HAVE_CUBLAS_OFFLOAD], [1], [If defined, activate cuBLAS-offloaded routines]) + HAVE_CUBLAS_OFFLOAD="yes" case $CC in *gcc*) diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index adf66d1..fb3cf3e 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -118,7 +118,6 @@ int main() { #include "qmckl_jastrow_private_type.h" #ifdef HAVE_CUBLAS_OFFLOAD -#include #include "cublas_v2.h" #endif @@ -6229,30 +6228,6 @@ qmckl_compute_tmp_c_cublas_offload (const qmckl_context context, { qmckl_exit_code info; - //Initialisation of cublas - - cublasHandle_t handle; - if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) - { - fprintf(stdout, "CUBLAS initialization failed!\n"); - exit(EXIT_FAILURE); - } - - - - qmckl_exit_code info; - - //Initialisation of cublas - - cublasHandle_t handle; - if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) - { - fprintf(stdout, "CUBLAS initialization failed!\n"); - exit(EXIT_FAILURE); - } - - - if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } @@ -6269,6 +6244,14 @@ qmckl_compute_tmp_c_cublas_offload (const qmckl_context context, return QMCKL_INVALID_ARG_4; } + //cuBLAS initialization + cublasHandle_t handle; + if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) + { + fprintf(stdout, "CUBLAS initialization failed!\n"); + exit(EXIT_FAILURE); + } + const double alpha = 1.0; const double beta = 0.0; @@ -6284,45 +6267,24 @@ qmckl_compute_tmp_c_cublas_offload (const qmckl_context context, const int64_t bf = elec_num*nucl_num*(cord_num+1); const int64_t cf = bf; - #pragma omp target enter data map(to:een_rescaled_e[0:elec_num*elec_num*(cord_num+1)*walk_num],een_rescaled_n[0:M*N*walk_num],tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) #pragma omp target data use_device_ptr(een_rescaled_e,een_rescaled_n,tmp_c) { for (int nw=0; nw < walk_num; ++nw) { - int cublasError = cublasDgemmStridedBatched(handle, CUBLAS_OP_N, CUBLAS_OP_N, M, N, K, &alpha, - &(een_rescaled_e[nw*(cord_num+1)]), \ - LDA, af, \ - &(een_rescaled_n[bf*nw]), \ - LDB, 0, \ - &beta, \ - &(tmp_c[nw*cord_num]), \ + int cublasError = cublasDgemmStridedBatched(handle, CUBLAS_OP_N, CUBLAS_OP_N, M, N, K, &alpha, + &(een_rescaled_e[nw*(cord_num+1)]), + LDA, af, + &(een_rescaled_n[bf*nw]), + LDB, 0, + &beta, + &(tmp_c[nw*cord_num]), LDC, cf, cord_num); - - - //Manage cublas ERROR - if(cublasError != CUBLAS_STATUS_SUCCESS){ - printf("CUBLAS ERROR %d", cublasError); - info = QMCKL_FAILURE; - - return info; - }else{ - info = QMCKL_SUCCESS; - } - - - - } } - cudaDeviceSynchronize(); - cublasDestroy(handle); - - #pragma omp target exit data map(from:tmp_c[0:elec_num*nucl_num*(cord_num+1)*cord_num*walk_num]) - - + cublasDestroy(handle); return info; } #endif @@ -6801,15 +6763,6 @@ qmckl_compute_dtmp_c_cublas_offload ( const double* een_rescaled_n, double* const dtmp_c ) { - cublasHandle_t handle; - if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) - { - fprintf(stdout, "CUBLAS initialization failed!\n"); - exit(EXIT_FAILURE); - } - - - if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; } @@ -6832,6 +6785,14 @@ qmckl_compute_dtmp_c_cublas_offload ( qmckl_exit_code info = QMCKL_SUCCESS; + //cuBLAS initialization + cublasHandle_t handle; + if (cublasCreate(&handle) != CUBLAS_STATUS_SUCCESS) + { + fprintf(stdout, "CUBLAS initialization failed!\n"); + exit(EXIT_FAILURE); + } + const double alpha = 1.0; const double beta = 0.0; @@ -6847,38 +6808,24 @@ qmckl_compute_dtmp_c_cublas_offload ( const int64_t bf = elec_num*nucl_num*(cord_num+1); const int64_t cf = elec_num*4*nucl_num*(cord_num+1); -#pragma omp target enter data map(to:een_rescaled_e_deriv_e[0:elec_num*4*elec_num*(cord_num+1)*walk_num], een_rescaled_n[0:elec_num*nucl_num*(cord_num+1)*walk_num], dtmp_c[0:elec_num*4*nucl_num*(cord_num+1)*cord_num*walk_num]) -#pragma omp target data use_device_ptr(een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) + #pragma omp target enter data map(to:een_rescaled_e_deriv_e[0:elec_num*4*elec_num*(cord_num+1)*walk_num], een_rescaled_n[0:elec_num*nucl_num*(cord_num+1)*walk_num], dtmp_c[0:elec_num*4*nucl_num*(cord_num+1)*cord_num*walk_num]) + #pragma omp target data use_device_ptr(een_rescaled_e_deriv_e, een_rescaled_n, dtmp_c) { - for (int64_t nw=0; nw < walk_num; ++nw) { - //Manage CUBLAS ERRORS - - int cublasError = cublasDgemmStridedBatched(handle, CUBLAS_OP_N, CUBLAS_OP_N, M, N, K, &alpha, \ - &(een_rescaled_e_deriv_e[(nw*(cord_num+1))]), \ - LDA, af, \ - &(een_rescaled_n[bf*nw]), \ - LDB, 0, \ - &beta, \ - &(dtmp_c[(nw*cord_num)]), \ + for (int64_t nw=0; nw < walk_num; ++nw) { + int cublasError = cublasDgemmStridedBatched(handle, CUBLAS_OP_N, CUBLAS_OP_N, M, N, K, &alpha, + &(een_rescaled_e_deriv_e[(nw*(cord_num+1))]), + LDA, af, + &(een_rescaled_n[bf*nw]), LDB, 0, + &beta, + &(dtmp_c[(nw*cord_num)]), LDC, cf, cord_num); - - if(cublasError != CUBLAS_STATUS_SUCCESS){ - printf("CUBLAS ERROR %d", cublasError); - info = QMCKL_FAILURE; - return info; - }else{ - info = QMCKL_SUCCESS; - } - - //} - } } - cudaDeviceSynchronize(); + } + + #pragma omp target exit data map(from:dtmp_c[0:cf*cord_num*walk_num]) + cublasDestroy(handle); - -#pragma omp target exit data map(from:dtmp_c[0:cf*cord_num*walk_num]) - return info; } #endif From 69009900f7d19c18a5f740550f2e3dda4a0027e5 Mon Sep 17 00:00:00 2001 From: Aurelien Delval Date: Fri, 8 Apr 2022 11:37:37 +0200 Subject: [PATCH 066/111] Revert cuBLAS to old config --- configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 17350c7..e2d1c22 100644 --- a/configure.ac +++ b/configure.ac @@ -304,10 +304,10 @@ AS_IF([test "$enable_gpu" = "openacc"], [ ]) # cuBLAS offloading -HAVE_OPENACC_OFFLOAD="no" -AS_IF([test "$enable_gpu" = "cublas"], [ +AC_ARG_WITH(cublas, [AS_HELP_STRING([--with-cublas],[Use cuBLAS-offloaded functions])], HAVE_CUBLAS_OFFLOAD=$withval, HAVE_CUBLAS_OFFLOAD=no) +AS_IF([test "$HAVE_CUBLAS_OFFLOAD" = "yes"], [ AC_DEFINE([HAVE_CUBLAS_OFFLOAD], [1], [If defined, activate cuBLAS-offloaded routines]) - HAVE_CUBLAS_OFFLOAD="yes" + HAVE_OPENACC_OFFLOAD="yes" case $CC in *gcc*) From b60fc166012d1e7fd20eb47c231151ac34255ece Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 20 Apr 2022 15:55:59 +0200 Subject: [PATCH 067/111] Add Fortran interfaces in MOs --- org/qmckl_mo.org | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index bf45ff0..1974874 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -256,6 +256,35 @@ bool qmckl_mo_basis_provided(const qmckl_context context) { #+end_src + +*** Fortran interfaces + + #+begin_src f90 :tangle (eval fh_func) :comments org +interface + integer(c_int32_t) function qmckl_get_mo_basis_mo_num (context, & + mo_num) bind(C) + use, intrinsic :: iso_c_binding + import + implicit none + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(out) :: mo_num + end function qmckl_get_mo_basis_mo_num +end interface + +interface + integer(c_int32_t) function qmckl_get_mo_basis_coefficient(context, & + coefficient, size_max) bind(C) + use, intrinsic :: iso_c_binding + import + implicit none + integer (c_int64_t) , intent(in) , value :: context + double precision, intent(out) :: coefficient(*) + integer (c_int64_t) , intent(int), value :: size_max + end function qmckl_get_mo_basis_coefficient +end interface + + #+end_src + ** Initialization functions To set the basis set, all the following functions need to be From 036fcc6fdacf3e6a670b024cb635f487e645653a Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 13:39:22 +0200 Subject: [PATCH 068/111] First commit --- process.py | 182 ++ python/build_pyqmckl.sh | 18 + python/export_files.sh | 11 + python/export_files_with_src_prefix.sh | 11 + python/numpy.i | 3183 ++++++++++++++++++++++++ python/pyqmckl.i | 52 + python/pyqmckl_include.i | 96 + python/pytrexio.i | 141 ++ python/qmckl.h | 2093 ++++++++++++++++ 9 files changed, 5787 insertions(+) create mode 100644 process.py create mode 100755 python/build_pyqmckl.sh create mode 100644 python/export_files.sh create mode 100644 python/export_files_with_src_prefix.sh create mode 100644 python/numpy.i create mode 100644 python/pyqmckl.i create mode 100644 python/pyqmckl_include.i create mode 100644 python/pytrexio.i create mode 100644 python/qmckl.h diff --git a/process.py b/process.py new file mode 100644 index 0000000..c03882b --- /dev/null +++ b/process.py @@ -0,0 +1,182 @@ + +import os + + +collect = False +process = False +get_name = False +block = [] +res_str = '' +func_name = '' +arrays = {} +numbers = {} +qmckl_public_api = [] + + +with open("include/qmckl.h", 'r') as f_in: + for line in f_in: + + if get_name: + words = line.strip().split() + if '(' in words[0]: + func_name = words[0].split('(')[0] + else: + func_name = words[0] + if 'get' in func_name or 'set' in func_name: + qmckl_public_api.append(func_name) + + get_name = False + + if 'qmckl_exit_code' in line: + words = line.strip().split() + if len(words) > 1 and 'qmckl_exit_code' in words[0]: + # this means that the function name is on the same line as `qmckl_exit_code` + func_name = words[1].split('(')[0] + if 'get' in func_name or 'set' in func_name: + qmckl_public_api.append(func_name) + elif len(words) == 1: + # this means that the function name is the first element on the next line + get_name = True + #continue # do not `continue` here otherwise collect is not True for some functions + + # process functions - oneliners (for arrays) + if 'size_max' in line and ';' in line: + + tmp_list = line.split(',') + for i,s in enumerate(tmp_list): + if 'size_max' in s: + end_str = tmp_list[i].replace(';','').replace('\n','') + pattern = f"({tmp_list[i-1]} ,{end_str}" + datatype = tmp_list[i-1].replace('const','').replace('*','').split()[0] + arrays[func_name] = { + 'datatype' : datatype, + 'pattern' : pattern + } + #if 'qmckl_get_jastrow_type_nucl_vector' in func_name: + # print(line) + # print(pattern) + continue + + # if size_max is not provided then the function should deal with numbers or string + #elif 'num' in line and 'get' in func_name: + elif ';' in line and 'get' in func_name: + # special case + if 'size_max' in line: + continue + + #print(line) + + tmp_str = line.split(',')[-1].strip() + + pattern = tmp_str.replace(')','').replace(';','') + datatype = pattern.replace('const','').replace('*','').split()[0] + + numbers[func_name] = { + 'datatype' : datatype, + 'pattern' : pattern + } + continue + # for multilne functions - append line by line to the list + else: + block.append(line) + collect = True + continue + + # if size_max is encountered within the multiline function + if 'size_max' in line and collect: + #if 'qmckl_get_electron_rescale_factor_en' in func_name: + # print("LOL") + + # this will not work for 2-line functions where array argument is on the same line as + # func name and size_max argument is on the next line + if not 'qmckl_exit_code' in block[-1] and not '*/' in line: + pattern = '(' + block[-1].strip() + line.strip().replace(';','') + datatype = pattern.replace('const','').replace('*','').replace('(','').split()[0] + + collect = False + block = [] + arrays[func_name] = { + 'datatype' : datatype, + 'pattern' : pattern + } + continue + + #if 'num' in line and 'get' in func_name and not 'qmckl_get' in line and collect: + if 'get' in func_name and not 'qmckl_get' in line and collect and ';' in line: + + print(func_name) + print(line) + + pattern = line.replace(';','').replace(')','').strip() + datatype = pattern.replace('const','').replace('*','').split()[0] + + collect = False + block = [] + numbers[func_name] = { + 'datatype' : datatype, + 'pattern' : pattern + } + continue + + # stop/continue multiline function analyzer + if collect and ')' in line: + collect = False + block = [] + continue + else: + block.append(line) + continue + + +# remove buggy qmckl_get_electron_rescale_factor_en key +#arrays.pop('qmckl_get_electron_rescale_factor_en') + +processed = list(arrays.keys()) + list(numbers.keys()) + +for pub_func in qmckl_public_api: + if pub_func not in processed and 'set' not in pub_func: + print("TODO", pub_func) + #print(v['datatype']) + + +for k,v in numbers.items(): + print(v) + + +with open("python/pyqmckl_include.i", 'w') as f_out: + + swig_type = '' + for v in numbers.values(): + + if 'int' in v['datatype']: + swig_type = 'int' + elif 'float' in v['datatype'] or 'double' in v['datatype']: + swig_type = 'float' + elif 'char' in v['datatype'] or 'bool' in v['datatype']: + print('SWIG, skipping') + continue + else: + raise TypeError(f"Unknown datatype for swig conversion: {v['datatype']}") + + f_out.write(f"%apply {swig_type} *OUTPUT {{ {v['pattern']} }};\n") + + for k,v in arrays.items(): + if 'char' in v['datatype']: + print("String type") + pass + + if len(v['pattern'].split(',')) != 2: + print('Problemo', k, v) + continue + + if 'get' in k: + f_out.write(f"%apply ( {v['datatype']}* ARGOUT_ARRAY1 , int64_t DIM1 ) {{ {v['pattern']} }};\n") + elif 'set' in k: + f_out.write(f"%apply ( {v['datatype']}* IN_ARRAY1 , int64_t DIM1 ) {{ {v['pattern']} }};\n") + else: + print("HOW-TO ?", k) + + + + + diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh new file mode 100755 index 0000000..13d934f --- /dev/null +++ b/python/build_pyqmckl.sh @@ -0,0 +1,18 @@ + +set -e +set -x + +source export_files.sh + +cp qmckl.h pyqmckl.i numpy.i src/ + +cd src/ + +swig -python -py3 -o pyqmckl_wrap.c pyqmckl.i + +gcc -c -fPIC -I/usr/include/python3.8 ${C_FILES} pyqmckl_wrap.c -ltrexio + +gfortran -c -fPIC -I/usr/include/python3.8 ${F_FILES} + +gcc -shared ${C_O_FILES} pyqmckl_wrap.o -o _pyqmckl.so + diff --git a/python/export_files.sh b/python/export_files.sh new file mode 100644 index 0000000..e9d26f3 --- /dev/null +++ b/python/export_files.sh @@ -0,0 +1,11 @@ + +export C_FILES="qmckl_electron.c qmckl_nucleus.c qmckl_determinant.c qmckl_error.c qmckl_verificarlo.c qmckl_jastrow.c qmckl_sherman_morrison_woodbury.c qmckl_trexio.c qmckl_numprec.c qmckl_context.c qmckl_mo.c qmckl_blas.c qmckl_memory.c qmckl_local_energy.c qmckl_point.c qmckl_ao.c" +export F_FILES="qmckl_electron_f.F90 qmckl_distance_f.F90 qmckl_nucleus_f.F90 qmckl_determinant_f.F90 qmckl_verificarlo_f.F90 qmckl_jastrow_f.F90 qmckl_mo_f.F90 qmckl_blas_f.F90 qmckl_local_energy_f.F90 qmckl_ao_f.F90" +export C_O_FILES="qmckl_electron.o qmckl_nucleus.o qmckl_determinant.o qmckl_error.o qmckl_verificarlo.o qmckl_jastrow.o qmckl_sherman_morrison_woodbury.o qmckl_trexio.o qmckl_numprec.o qmckl_context.o qmckl_mo.o qmckl_blas.o qmckl_memory.o qmckl_local_energy.o qmckl_point.o qmckl_ao.o" +export FH_FUNC_FILES="qmckl_electron_fh_func.F90 qmckl_distance_fh_func.F90 qmckl_nucleus_fh_func.F90 qmckl_error_fh_func.F90 qmckl_sherman_morrison_woodbury_fh_func.F90 qmckl_trexio_fh_func.F90 qmckl_numprec_fh_func.F90 qmckl_context_fh_func.F90 qmckl_mo_fh_func.F90 qmckl_blas_fh_func.F90 qmckl_point_fh_func.F90 qmckl_ao_fh_func.F90" +export FH_TYPE_FILES="qmckl_error_fh_type.F90 qmckl_context_fh_type.F90" +export H_FUNC_FILES="qmckl_electron_func.h qmckl_distance_func.h qmckl_nucleus_func.h qmckl_determinant_func.h qmckl_error_func.h qmckl_jastrow_func.h qmckl_sherman_morrison_woodbury_func.h qmckl_trexio_func.h qmckl_numprec_func.h qmckl_context_func.h qmckl_mo_func.h qmckl_blas_func.h qmckl_local_energy_func.h qmckl_point_func.h qmckl_ao_func.h" +export H_TYPE_FILES="qmckl_error_type.h qmckl_numprec_type.h qmckl_context_type.h" +export H_PRIVATE_FUNC_FILES="qmckl_electron_private_func.h qmckl_nucleus_private_func.h qmckl_determinant_private_func.h qmckl_error_private_func.h qmckl_verificarlo_private_func.h qmckl_jastrow_private_func.h qmckl_mo_private_func.h qmckl_blas_private_func.h qmckl_memory_private_func.h qmckl_local_energy_private_func.h qmckl_point_private_func.h qmckl_ao_private_func.h" +export H_PRIVATE_TYPE_FILES="qmckl_electron_private_type.h qmckl_nucleus_private_type.h qmckl_determinant_private_type.h qmckl_error_private_type.h qmckl_jastrow_private_type.h qmckl_numprec_private_type.h qmckl_context_private_type.h qmckl_mo_private_type.h qmckl_blas_private_type.h qmckl_memory_private_type.h qmckl_local_energy_private_type.h qmckl_point_private_type.h qmckl_ao_private_type.h" + diff --git a/python/export_files_with_src_prefix.sh b/python/export_files_with_src_prefix.sh new file mode 100644 index 0000000..7073cf6 --- /dev/null +++ b/python/export_files_with_src_prefix.sh @@ -0,0 +1,11 @@ + +export C_FILES="src/qmckl_electron.c src/qmckl_nucleus.c src/qmckl_determinant.c src/qmckl_error.c src/qmckl_verificarlo.c src/qmckl_jastrow.c src/qmckl_sherman_morrison_woodbury.c src/qmckl_trexio.c src/qmckl_numprec.c src/qmckl_context.c src/qmckl_mo.c src/qmckl_blas.c src/qmckl_memory.c src/qmckl_local_energy.c src/qmckl_point.c src/qmckl_ao.c" +export F_FILES="src/qmckl_electron_f.F90 src/qmckl_distance_f.F90 src/qmckl_nucleus_f.F90 src/qmckl_determinant_f.F90 src/qmckl_verificarlo_f.F90 src/qmckl_jastrow_f.F90 src/qmckl_mo_f.F90 src/qmckl_blas_f.F90 src/qmckl_local_energy_f.F90 src/qmckl_ao_f.F90" +export C_O_FILES="src/qmckl_electron.o src/qmckl_nucleus.o src/qmckl_determinant.o src/qmckl_error.o src/qmckl_verificarlo.o src/qmckl_jastrow.o src/qmckl_sherman_morrison_woodbury.o src/qmckl_trexio.o src/qmckl_numprec.o src/qmckl_context.o src/qmckl_mo.o src/qmckl_blas.o src/qmckl_memory.o src/qmckl_local_energy.o src/qmckl_point.o src/qmckl_ao.o" +export FH_FUNC_FILES="src/qmckl_electron_fh_func.F90 src/qmckl_distance_fh_func.F90 src/qmckl_nucleus_fh_func.F90 src/qmckl_error_fh_func.F90 src/qmckl_sherman_morrison_woodbury_fh_func.F90 src/qmckl_trexio_fh_func.F90 src/qmckl_numprec_fh_func.F90 src/qmckl_context_fh_func.F90 src/qmckl_mo_fh_func.F90 src/qmckl_blas_fh_func.F90 src/qmckl_point_fh_func.F90 src/qmckl_ao_fh_func.F90" +export FH_TYPE_FILES="src/qmckl_error_fh_type.F90 src/qmckl_context_fh_type.F90" +export H_FUNC_FILES="src/qmckl_electron_func.h src/qmckl_distance_func.h src/qmckl_nucleus_func.h src/qmckl_determinant_func.h src/qmckl_error_func.h src/qmckl_jastrow_func.h src/qmckl_sherman_morrison_woodbury_func.h src/qmckl_trexio_func.h src/qmckl_numprec_func.h src/qmckl_context_func.h src/qmckl_mo_func.h src/qmckl_blas_func.h src/qmckl_local_energy_func.h src/qmckl_point_func.h src/qmckl_ao_func.h" +export H_TYPE_FILES="src/qmckl_error_type.h src/qmckl_numprec_type.h src/qmckl_context_type.h" +export H_PRIVATE_FUNC_FILES="src/qmckl_electron_private_func.h src/qmckl_nucleus_private_func.h src/qmckl_determinant_private_func.h src/qmckl_error_private_func.h src/qmckl_verificarlo_private_func.h src/qmckl_jastrow_private_func.h src/qmckl_mo_private_func.h src/qmckl_blas_private_func.h src/qmckl_memory_private_func.h src/qmckl_local_energy_private_func.h src/qmckl_point_private_func.h src/qmckl_ao_private_func.h" +export H_PRIVATE_TYPE_FILES="src/qmckl_electron_private_type.h src/qmckl_nucleus_private_type.h src/qmckl_determinant_private_type.h src/qmckl_error_private_type.h src/qmckl_jastrow_private_type.h src/qmckl_numprec_private_type.h src/qmckl_context_private_type.h src/qmckl_mo_private_type.h src/qmckl_blas_private_type.h src/qmckl_memory_private_type.h src/qmckl_local_energy_private_type.h src/qmckl_point_private_type.h src/qmckl_ao_private_type.h" + diff --git a/python/numpy.i b/python/numpy.i new file mode 100644 index 0000000..36bb55c --- /dev/null +++ b/python/numpy.i @@ -0,0 +1,3183 @@ +/* -*- C -*- (not really, but good for syntax highlighting) */ + +/* + * Copyright (c) 2005-2015, NumPy Developers. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of the NumPy Developers nor the names of any + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef SWIGPYTHON + +%{ +#ifndef SWIG_FILE_WITH_INIT +#define NO_IMPORT_ARRAY +#endif +#include "stdio.h" +#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION +#include +%} + +/**********************************************************************/ + +%fragment("NumPy_Backward_Compatibility", "header") +{ +%#if NPY_API_VERSION < 0x00000007 +%#define NPY_ARRAY_DEFAULT NPY_DEFAULT +%#define NPY_ARRAY_FARRAY NPY_FARRAY +%#define NPY_FORTRANORDER NPY_FORTRAN +%#endif +} + +/**********************************************************************/ + +/* The following code originally appeared in + * enthought/kiva/agg/src/numeric.i written by Eric Jones. It was + * translated from C++ to C by John Hunter. Bill Spotz has modified + * it to fix some minor bugs, upgrade from Numeric to numpy (all + * versions), add some comments and functionality, and convert from + * direct code insertion to SWIG fragments. + */ + +%fragment("NumPy_Macros", "header") +{ +/* Macros to extract array attributes. + */ +%#if NPY_API_VERSION < 0x00000007 +%#define is_array(a) ((a) && PyArray_Check((PyArrayObject*)a)) +%#define array_type(a) (int)(PyArray_TYPE((PyArrayObject*)a)) +%#define array_numdims(a) (((PyArrayObject*)a)->nd) +%#define array_dimensions(a) (((PyArrayObject*)a)->dimensions) +%#define array_size(a,i) (((PyArrayObject*)a)->dimensions[i]) +%#define array_strides(a) (((PyArrayObject*)a)->strides) +%#define array_stride(a,i) (((PyArrayObject*)a)->strides[i]) +%#define array_data(a) (((PyArrayObject*)a)->data) +%#define array_descr(a) (((PyArrayObject*)a)->descr) +%#define array_flags(a) (((PyArrayObject*)a)->flags) +%#define array_clearflags(a,f) (((PyArrayObject*)a)->flags) &= ~f +%#define array_enableflags(a,f) (((PyArrayObject*)a)->flags) = f +%#define array_is_fortran(a) (PyArray_ISFORTRAN((PyArrayObject*)a)) +%#else +%#define is_array(a) ((a) && PyArray_Check(a)) +%#define array_type(a) PyArray_TYPE((PyArrayObject*)a) +%#define array_numdims(a) PyArray_NDIM((PyArrayObject*)a) +%#define array_dimensions(a) PyArray_DIMS((PyArrayObject*)a) +%#define array_strides(a) PyArray_STRIDES((PyArrayObject*)a) +%#define array_stride(a,i) PyArray_STRIDE((PyArrayObject*)a,i) +%#define array_size(a,i) PyArray_DIM((PyArrayObject*)a,i) +%#define array_data(a) PyArray_DATA((PyArrayObject*)a) +%#define array_descr(a) PyArray_DESCR((PyArrayObject*)a) +%#define array_flags(a) PyArray_FLAGS((PyArrayObject*)a) +%#define array_enableflags(a,f) PyArray_ENABLEFLAGS((PyArrayObject*)a,f) +%#define array_clearflags(a,f) PyArray_CLEARFLAGS((PyArrayObject*)a,f) +%#define array_is_fortran(a) (PyArray_IS_F_CONTIGUOUS((PyArrayObject*)a)) +%#endif +%#define array_is_contiguous(a) (PyArray_ISCONTIGUOUS((PyArrayObject*)a)) +%#define array_is_native(a) (PyArray_ISNOTSWAPPED((PyArrayObject*)a)) +} + +/**********************************************************************/ + +%fragment("NumPy_Utilities", + "header") +{ + /* Given a PyObject, return a string describing its type. + */ + const char* pytype_string(PyObject* py_obj) + { + if (py_obj == NULL ) return "C NULL value"; + if (py_obj == Py_None ) return "Python None" ; + if (PyCallable_Check(py_obj)) return "callable" ; + if (PyString_Check( py_obj)) return "string" ; + if (PyInt_Check( py_obj)) return "int" ; + if (PyFloat_Check( py_obj)) return "float" ; + if (PyDict_Check( py_obj)) return "dict" ; + if (PyList_Check( py_obj)) return "list" ; + if (PyTuple_Check( py_obj)) return "tuple" ; +%#if PY_MAJOR_VERSION < 3 + if (PyFile_Check( py_obj)) return "file" ; + if (PyModule_Check( py_obj)) return "module" ; + if (PyInstance_Check(py_obj)) return "instance" ; +%#endif + + return "unknown type"; + } + + /* Given a NumPy typecode, return a string describing the type. + */ + const char* typecode_string(int typecode) + { + static const char* type_names[25] = {"bool", + "byte", + "unsigned byte", + "short", + "unsigned short", + "int", + "unsigned int", + "long", + "unsigned long", + "long long", + "unsigned long long", + "float", + "double", + "long double", + "complex float", + "complex double", + "complex long double", + "object", + "string", + "unicode", + "void", + "ntypes", + "notype", + "char", + "unknown"}; + return typecode < 24 ? type_names[typecode] : type_names[24]; + } + + /* Make sure input has correct numpy type. This now just calls + PyArray_EquivTypenums(). + */ + int type_match(int actual_type, + int desired_type) + { + return PyArray_EquivTypenums(actual_type, desired_type); + } + +%#ifdef SWIGPY_USE_CAPSULE + void free_cap(PyObject * cap) + { + void* array = (void*) PyCapsule_GetPointer(cap,SWIGPY_CAPSULE_NAME); + if (array != NULL) free(array); + } +%#endif + + +} + +/**********************************************************************/ + +%fragment("NumPy_Object_to_Array", + "header", + fragment="NumPy_Backward_Compatibility", + fragment="NumPy_Macros", + fragment="NumPy_Utilities") +{ + /* Given a PyObject pointer, cast it to a PyArrayObject pointer if + * legal. If not, set the python error string appropriately and + * return NULL. + */ + PyArrayObject* obj_to_array_no_conversion(PyObject* input, + int typecode) + { + PyArrayObject* ary = NULL; + if (is_array(input) && (typecode == NPY_NOTYPE || + PyArray_EquivTypenums(array_type(input), typecode))) + { + ary = (PyArrayObject*) input; + } + else if is_array(input) + { + const char* desired_type = typecode_string(typecode); + const char* actual_type = typecode_string(array_type(input)); + PyErr_Format(PyExc_TypeError, + "Array of type '%s' required. Array of type '%s' given", + desired_type, actual_type); + ary = NULL; + } + else + { + const char* desired_type = typecode_string(typecode); + const char* actual_type = pytype_string(input); + PyErr_Format(PyExc_TypeError, + "Array of type '%s' required. A '%s' was given", + desired_type, + actual_type); + ary = NULL; + } + return ary; + } + + /* Convert the given PyObject to a NumPy array with the given + * typecode. On success, return a valid PyArrayObject* with the + * correct type. On failure, the python error string will be set and + * the routine returns NULL. + */ + PyArrayObject* obj_to_array_allow_conversion(PyObject* input, + int typecode, + int* is_new_object) + { + PyArrayObject* ary = NULL; + PyObject* py_obj; + if (is_array(input) && (typecode == NPY_NOTYPE || + PyArray_EquivTypenums(array_type(input),typecode))) + { + ary = (PyArrayObject*) input; + *is_new_object = 0; + } + else + { + py_obj = PyArray_FROMANY(input, typecode, 0, 0, NPY_ARRAY_DEFAULT); + /* If NULL, PyArray_FromObject will have set python error value.*/ + ary = (PyArrayObject*) py_obj; + *is_new_object = 1; + } + return ary; + } + + /* Given a PyArrayObject, check to see if it is contiguous. If so, + * return the input pointer and flag it as not a new object. If it is + * not contiguous, create a new PyArrayObject using the original data, + * flag it as a new object and return the pointer. + */ + PyArrayObject* make_contiguous(PyArrayObject* ary, + int* is_new_object, + int min_dims, + int max_dims) + { + PyArrayObject* result; + if (array_is_contiguous(ary)) + { + result = ary; + *is_new_object = 0; + } + else + { + result = (PyArrayObject*) PyArray_ContiguousFromObject((PyObject*)ary, + array_type(ary), + min_dims, + max_dims); + *is_new_object = 1; + } + return result; + } + + /* Given a PyArrayObject, check to see if it is Fortran-contiguous. + * If so, return the input pointer, but do not flag it as not a new + * object. If it is not Fortran-contiguous, create a new + * PyArrayObject using the original data, flag it as a new object + * and return the pointer. + */ + PyArrayObject* make_fortran(PyArrayObject* ary, + int* is_new_object) + { + PyArrayObject* result; + if (array_is_fortran(ary)) + { + result = ary; + *is_new_object = 0; + } + else + { + Py_INCREF(array_descr(ary)); + result = (PyArrayObject*) PyArray_FromArray(ary, + array_descr(ary), +%#if NPY_API_VERSION < 0x00000007 + NPY_FORTRANORDER); +%#else + NPY_ARRAY_F_CONTIGUOUS); +%#endif + *is_new_object = 1; + } + return result; + } + + /* Convert a given PyObject to a contiguous PyArrayObject of the + * specified type. If the input object is not a contiguous + * PyArrayObject, a new one will be created and the new object flag + * will be set. + */ + PyArrayObject* obj_to_array_contiguous_allow_conversion(PyObject* input, + int typecode, + int* is_new_object) + { + int is_new1 = 0; + int is_new2 = 0; + PyArrayObject* ary2; + PyArrayObject* ary1 = obj_to_array_allow_conversion(input, + typecode, + &is_new1); + if (ary1) + { + ary2 = make_contiguous(ary1, &is_new2, 0, 0); + if ( is_new1 && is_new2) + { + Py_DECREF(ary1); + } + ary1 = ary2; + } + *is_new_object = is_new1 || is_new2; + return ary1; + } + + /* Convert a given PyObject to a Fortran-ordered PyArrayObject of the + * specified type. If the input object is not a Fortran-ordered + * PyArrayObject, a new one will be created and the new object flag + * will be set. + */ + PyArrayObject* obj_to_array_fortran_allow_conversion(PyObject* input, + int typecode, + int* is_new_object) + { + int is_new1 = 0; + int is_new2 = 0; + PyArrayObject* ary2; + PyArrayObject* ary1 = obj_to_array_allow_conversion(input, + typecode, + &is_new1); + if (ary1) + { + ary2 = make_fortran(ary1, &is_new2); + if (is_new1 && is_new2) + { + Py_DECREF(ary1); + } + ary1 = ary2; + } + *is_new_object = is_new1 || is_new2; + return ary1; + } +} /* end fragment */ + +/**********************************************************************/ + +%fragment("NumPy_Array_Requirements", + "header", + fragment="NumPy_Backward_Compatibility", + fragment="NumPy_Macros") +{ + /* Test whether a python object is contiguous. If array is + * contiguous, return 1. Otherwise, set the python error string and + * return 0. + */ + int require_contiguous(PyArrayObject* ary) + { + int contiguous = 1; + if (!array_is_contiguous(ary)) + { + PyErr_SetString(PyExc_TypeError, + "Array must be contiguous. A non-contiguous array was given"); + contiguous = 0; + } + return contiguous; + } + + /* Test whether a python object is (C_ or F_) contiguous. If array is + * contiguous, return 1. Otherwise, set the python error string and + * return 0. + */ + int require_c_or_f_contiguous(PyArrayObject* ary) + { + int contiguous = 1; + if (!(array_is_contiguous(ary) || array_is_fortran(ary))) + { + PyErr_SetString(PyExc_TypeError, + "Array must be contiguous (C_ or F_). A non-contiguous array was given"); + contiguous = 0; + } + return contiguous; + } + + /* Require that a numpy array is not byte-swapped. If the array is + * not byte-swapped, return 1. Otherwise, set the python error string + * and return 0. + */ + int require_native(PyArrayObject* ary) + { + int native = 1; + if (!array_is_native(ary)) + { + PyErr_SetString(PyExc_TypeError, + "Array must have native byteorder. " + "A byte-swapped array was given"); + native = 0; + } + return native; + } + + /* Require the given PyArrayObject to have a specified number of + * dimensions. If the array has the specified number of dimensions, + * return 1. Otherwise, set the python error string and return 0. + */ + int require_dimensions(PyArrayObject* ary, + int exact_dimensions) + { + int success = 1; + if (array_numdims(ary) != exact_dimensions) + { + PyErr_Format(PyExc_TypeError, + "Array must have %d dimensions. Given array has %d dimensions", + exact_dimensions, + array_numdims(ary)); + success = 0; + } + return success; + } + + /* Require the given PyArrayObject to have one of a list of specified + * number of dimensions. If the array has one of the specified number + * of dimensions, return 1. Otherwise, set the python error string + * and return 0. + */ + int require_dimensions_n(PyArrayObject* ary, + int* exact_dimensions, + int n) + { + int success = 0; + int i; + char dims_str[255] = ""; + char s[255]; + for (i = 0; i < n && !success; i++) + { + if (array_numdims(ary) == exact_dimensions[i]) + { + success = 1; + } + } + if (!success) + { + for (i = 0; i < n-1; i++) + { + sprintf(s, "%d, ", exact_dimensions[i]); + strcat(dims_str,s); + } + sprintf(s, " or %d", exact_dimensions[n-1]); + strcat(dims_str,s); + PyErr_Format(PyExc_TypeError, + "Array must have %s dimensions. Given array has %d dimensions", + dims_str, + array_numdims(ary)); + } + return success; + } + + /* Require the given PyArrayObject to have a specified shape. If the + * array has the specified shape, return 1. Otherwise, set the python + * error string and return 0. + */ + int require_size(PyArrayObject* ary, + npy_intp* size, + int n) + { + int i; + int success = 1; + size_t len; + char desired_dims[255] = "["; + char s[255]; + char actual_dims[255] = "["; + for(i=0; i < n;i++) + { + if (size[i] != -1 && size[i] != array_size(ary,i)) + { + success = 0; + } + } + if (!success) + { + for (i = 0; i < n; i++) + { + if (size[i] == -1) + { + sprintf(s, "*,"); + } + else + { + sprintf(s, "%ld,", (long int)size[i]); + } + strcat(desired_dims,s); + } + len = strlen(desired_dims); + desired_dims[len-1] = ']'; + for (i = 0; i < n; i++) + { + sprintf(s, "%ld,", (long int)array_size(ary,i)); + strcat(actual_dims,s); + } + len = strlen(actual_dims); + actual_dims[len-1] = ']'; + PyErr_Format(PyExc_TypeError, + "Array must have shape of %s. Given array has shape of %s", + desired_dims, + actual_dims); + } + return success; + } + + /* Require the given PyArrayObject to to be Fortran ordered. If the + * the PyArrayObject is already Fortran ordered, do nothing. Else, + * set the Fortran ordering flag and recompute the strides. + */ + int require_fortran(PyArrayObject* ary) + { + int success = 1; + int nd = array_numdims(ary); + int i; + npy_intp * strides = array_strides(ary); + if (array_is_fortran(ary)) return success; + int n_non_one = 0; + /* Set the Fortran ordered flag */ + const npy_intp *dims = array_dimensions(ary); + for (i=0; i < nd; ++i) + n_non_one += (dims[i] != 1) ? 1 : 0; + if (n_non_one > 1) + array_clearflags(ary,NPY_ARRAY_CARRAY); + array_enableflags(ary,NPY_ARRAY_FARRAY); + /* Recompute the strides */ + strides[0] = strides[nd-1]; + for (i=1; i < nd; ++i) + strides[i] = strides[i-1] * array_size(ary,i-1); + return success; + } +} + +/* Combine all NumPy fragments into one for convenience */ +%fragment("NumPy_Fragments", + "header", + fragment="NumPy_Backward_Compatibility", + fragment="NumPy_Macros", + fragment="NumPy_Utilities", + fragment="NumPy_Object_to_Array", + fragment="NumPy_Array_Requirements") +{ +} + +/* End John Hunter translation (with modifications by Bill Spotz) + */ + +/* %numpy_typemaps() macro + * + * This macro defines a family of 75 typemaps that allow C arguments + * of the form + * + * 1. (DATA_TYPE IN_ARRAY1[ANY]) + * 2. (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) + * 3. (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) + * + * 4. (DATA_TYPE IN_ARRAY2[ANY][ANY]) + * 5. (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + * 6. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) + * 7. (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + * 8. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) + * + * 9. (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) + * 10. (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + * 11. (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + * 12. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) + * 13. (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + * 14. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) + * + * 15. (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) + * 16. (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + * 17. (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + * 18. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, , DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) + * 19. (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + * 20. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) + * + * 21. (DATA_TYPE INPLACE_ARRAY1[ANY]) + * 22. (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) + * 23. (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) + * + * 24. (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) + * 25. (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + * 26. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) + * 27. (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + * 28. (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) + * + * 29. (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) + * 30. (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + * 31. (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + * 32. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) + * 33. (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + * 34. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) + * + * 35. (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) + * 36. (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + * 37. (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + * 38. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) + * 39. (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + * 40. (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) + * + * 41. (DATA_TYPE ARGOUT_ARRAY1[ANY]) + * 42. (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) + * 43. (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) + * + * 44. (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) + * + * 45. (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) + * + * 46. (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) + * + * 47. (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) + * 48. (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) + * + * 49. (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + * 50. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) + * 51. (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + * 52. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) + * + * 53. (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) + * 54. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) + * 55. (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) + * 56. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_FARRAY3) + * + * 57. (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) + * 58. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_ARRAY4) + * 59. (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) + * 60. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_FARRAY4) + * + * 61. (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) + * 62. (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) + * + * 63. (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + * 64. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) + * 65. (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + * 66. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) + * + * 67. (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) + * 68. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_ARRAY3) + * 69. (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) + * 70. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_FARRAY3) + * + * 71. (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) + * 72. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) + * 73. (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) + * 74. (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) + * + * 75. (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) + * + * where "DATA_TYPE" is any type supported by the NumPy module, and + * "DIM_TYPE" is any int-like type suitable for specifying dimensions. + * The difference between "ARRAY" typemaps and "FARRAY" typemaps is + * that the "FARRAY" typemaps expect Fortran ordering of + * multidimensional arrays. In python, the dimensions will not need + * to be specified (except for the "DATA_TYPE* ARGOUT_ARRAY1" + * typemaps). The IN_ARRAYs can be a numpy array or any sequence that + * can be converted to a numpy array of the specified type. The + * INPLACE_ARRAYs must be numpy arrays of the appropriate type. The + * ARGOUT_ARRAYs will be returned as new numpy arrays of the + * appropriate type. + * + * These typemaps can be applied to existing functions using the + * %apply directive. For example: + * + * %apply (double* IN_ARRAY1, int DIM1) {(double* series, int length)}; + * double prod(double* series, int length); + * + * %apply (int DIM1, int DIM2, double* INPLACE_ARRAY2) + * {(int rows, int cols, double* matrix )}; + * void floor(int rows, int cols, double* matrix, double f); + * + * %apply (double IN_ARRAY3[ANY][ANY][ANY]) + * {(double tensor[2][2][2] )}; + * %apply (double ARGOUT_ARRAY3[ANY][ANY][ANY]) + * {(double low[2][2][2] )}; + * %apply (double ARGOUT_ARRAY3[ANY][ANY][ANY]) + * {(double upp[2][2][2] )}; + * void luSplit(double tensor[2][2][2], + * double low[2][2][2], + * double upp[2][2][2] ); + * + * or directly with + * + * double prod(double* IN_ARRAY1, int DIM1); + * + * void floor(int DIM1, int DIM2, double* INPLACE_ARRAY2, double f); + * + * void luSplit(double IN_ARRAY3[ANY][ANY][ANY], + * double ARGOUT_ARRAY3[ANY][ANY][ANY], + * double ARGOUT_ARRAY3[ANY][ANY][ANY]); + */ + +%define %numpy_typemaps(DATA_TYPE, DATA_TYPECODE, DIM_TYPE) + +/************************/ +/* Input Array Typemaps */ +/************************/ + +/* Typemap suite for (DATA_TYPE IN_ARRAY1[ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE IN_ARRAY1[ANY]) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE IN_ARRAY1[ANY]) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[1] = { $1_dim0 }; + array = obj_to_array_contiguous_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 1) || + !require_size(array, size, 1)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(freearg) + (DATA_TYPE IN_ARRAY1[ANY]) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[1] = { -1 }; + array = obj_to_array_contiguous_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 1) || + !require_size(array, size, 1)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); +} +%typemap(freearg) + (DATA_TYPE* IN_ARRAY1, DIM_TYPE DIM1) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[1] = {-1}; + array = obj_to_array_contiguous_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 1) || + !require_size(array, size, 1)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DATA_TYPE*) array_data(array); +} +%typemap(freearg) + (DIM_TYPE DIM1, DATA_TYPE* IN_ARRAY1) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE IN_ARRAY2[ANY][ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE IN_ARRAY2[ANY][ANY]) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE IN_ARRAY2[ANY][ANY]) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[2] = { $1_dim0, $1_dim1 }; + array = obj_to_array_contiguous_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 2) || + !require_size(array, size, 2)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(freearg) + (DATA_TYPE IN_ARRAY2[ANY][ANY]) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[2] = { -1, -1 }; + array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 2) || + !require_size(array, size, 2)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); +} +%typemap(freearg) + (DATA_TYPE* IN_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[2] = { -1, -1 }; + array = obj_to_array_contiguous_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 2) || + !require_size(array, size, 2)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DATA_TYPE*) array_data(array); +} +%typemap(freearg) + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_ARRAY2) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[2] = { -1, -1 }; + array = obj_to_array_fortran_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 2) || + !require_size(array, size, 2) || !require_fortran(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); +} +%typemap(freearg) + (DATA_TYPE* IN_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[2] = { -1, -1 }; + array = obj_to_array_fortran_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 2) || + !require_size(array, size, 2) || !require_fortran(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DATA_TYPE*) array_data(array); +} +%typemap(freearg) + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* IN_FARRAY2) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[3] = { $1_dim0, $1_dim1, $1_dim2 }; + array = obj_to_array_contiguous_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 3) || + !require_size(array, size, 3)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(freearg) + (DATA_TYPE IN_ARRAY3[ANY][ANY][ANY]) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[3] = { -1, -1, -1 }; + array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 3) || + !require_size(array, size, 3)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); +} +%typemap(freearg) + (DATA_TYPE* IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + /* for now, only concerned with lists */ + $1 = PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL, int* is_new_object_array=NULL) +{ + npy_intp size[2] = { -1, -1 }; + PyArrayObject* temp_array; + Py_ssize_t i; + int is_new_object; + + /* length of the list */ + $2 = PyList_Size($input); + + /* the arrays */ + array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); + object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); + is_new_object_array = (int *)calloc($2,sizeof(int)); + + if (array == NULL || object_array == NULL || is_new_object_array == NULL) + { + SWIG_fail; + } + + for (i=0; i<$2; i++) + { + temp_array = obj_to_array_contiguous_allow_conversion(PySequence_GetItem($input,i), DATA_TYPECODE, &is_new_object); + + /* the new array must be stored so that it can be destroyed in freearg */ + object_array[i] = temp_array; + is_new_object_array[i] = is_new_object; + + if (!temp_array || !require_dimensions(temp_array, 2)) SWIG_fail; + + /* store the size of the first array in the list, then use that for comparison. */ + if (i == 0) + { + size[0] = array_size(temp_array,0); + size[1] = array_size(temp_array,1); + } + + if (!require_size(temp_array, size, 2)) SWIG_fail; + + array[i] = (DATA_TYPE*) array_data(temp_array); + } + + $1 = (DATA_TYPE**) array; + $3 = (DIM_TYPE) size[0]; + $4 = (DIM_TYPE) size[1]; +} +%typemap(freearg) + (DATA_TYPE** IN_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + Py_ssize_t i; + + if (array$argnum!=NULL) free(array$argnum); + + /*freeing the individual arrays if needed */ + if (object_array$argnum!=NULL) + { + if (is_new_object_array$argnum!=NULL) + { + for (i=0; i<$2; i++) + { + if (object_array$argnum[i] != NULL && is_new_object_array$argnum[i]) + { Py_DECREF(object_array$argnum[i]); } + } + free(is_new_object_array$argnum); + } + free(object_array$argnum); + } +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, + * DATA_TYPE* IN_ARRAY3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[3] = { -1, -1, -1 }; + array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 3) || + !require_size(array, size, 3)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DATA_TYPE*) array_data(array); +} +%typemap(freearg) + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_ARRAY3) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[3] = { -1, -1, -1 }; + array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 3) || + !require_size(array, size, 3) | !require_fortran(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); +} +%typemap(freearg) + (DATA_TYPE* IN_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, + * DATA_TYPE* IN_FARRAY3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[3] = { -1, -1, -1 }; + array = obj_to_array_fortran_allow_conversion($input, + DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 3) || + !require_size(array, size, 3) || !require_fortran(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DATA_TYPE*) array_data(array); +} +%typemap(freearg) + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* IN_FARRAY3) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[4] = { $1_dim0, $1_dim1, $1_dim2 , $1_dim3}; + array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 4) || + !require_size(array, size, 4)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(freearg) + (DATA_TYPE IN_ARRAY4[ANY][ANY][ANY][ANY]) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3, DIM_TYPE DIM4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[4] = { -1, -1, -1, -1 }; + array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 4) || + !require_size(array, size, 4)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); + $5 = (DIM_TYPE) array_size(array,3); +} +%typemap(freearg) + (DATA_TYPE* IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3, DIM_TYPE DIM4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + /* for now, only concerned with lists */ + $1 = PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL, int* is_new_object_array=NULL) +{ + npy_intp size[3] = { -1, -1, -1 }; + PyArrayObject* temp_array; + Py_ssize_t i; + int is_new_object; + + /* length of the list */ + $2 = PyList_Size($input); + + /* the arrays */ + array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); + object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); + is_new_object_array = (int *)calloc($2,sizeof(int)); + + if (array == NULL || object_array == NULL || is_new_object_array == NULL) + { + SWIG_fail; + } + + for (i=0; i<$2; i++) + { + temp_array = obj_to_array_contiguous_allow_conversion(PySequence_GetItem($input,i), DATA_TYPECODE, &is_new_object); + + /* the new array must be stored so that it can be destroyed in freearg */ + object_array[i] = temp_array; + is_new_object_array[i] = is_new_object; + + if (!temp_array || !require_dimensions(temp_array, 3)) SWIG_fail; + + /* store the size of the first array in the list, then use that for comparison. */ + if (i == 0) + { + size[0] = array_size(temp_array,0); + size[1] = array_size(temp_array,1); + size[2] = array_size(temp_array,2); + } + + if (!require_size(temp_array, size, 3)) SWIG_fail; + + array[i] = (DATA_TYPE*) array_data(temp_array); + } + + $1 = (DATA_TYPE**) array; + $3 = (DIM_TYPE) size[0]; + $4 = (DIM_TYPE) size[1]; + $5 = (DIM_TYPE) size[2]; +} +%typemap(freearg) + (DATA_TYPE** IN_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + Py_ssize_t i; + + if (array$argnum!=NULL) free(array$argnum); + + /*freeing the individual arrays if needed */ + if (object_array$argnum!=NULL) + { + if (is_new_object_array$argnum!=NULL) + { + for (i=0; i<$2; i++) + { + if (object_array$argnum[i] != NULL && is_new_object_array$argnum[i]) + { Py_DECREF(object_array$argnum[i]); } + } + free(is_new_object_array$argnum); + } + free(object_array$argnum); + } +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, + * DATA_TYPE* IN_ARRAY4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[4] = { -1, -1, -1 , -1}; + array = obj_to_array_contiguous_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 4) || + !require_size(array, size, 4)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DIM_TYPE) array_size(array,3); + $5 = (DATA_TYPE*) array_data(array); +} +%typemap(freearg) + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_ARRAY4) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3, DIM_TYPE DIM4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[4] = { -1, -1, -1, -1 }; + array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 4) || + !require_size(array, size, 4) | !require_fortran(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); + $5 = (DIM_TYPE) array_size(array,3); +} +%typemap(freearg) + (DATA_TYPE* IN_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, + * DATA_TYPE* IN_FARRAY4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) +{ + $1 = is_array($input) || PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) + (PyArrayObject* array=NULL, int is_new_object=0) +{ + npy_intp size[4] = { -1, -1, -1 , -1 }; + array = obj_to_array_fortran_allow_conversion($input, DATA_TYPECODE, + &is_new_object); + if (!array || !require_dimensions(array, 4) || + !require_size(array, size, 4) || !require_fortran(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DIM_TYPE) array_size(array,3); + $5 = (DATA_TYPE*) array_data(array); +} +%typemap(freearg) + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* IN_FARRAY4) +{ + if (is_new_object$argnum && array$argnum) + { Py_DECREF(array$argnum); } +} + +/***************************/ +/* In-Place Array Typemaps */ +/***************************/ + +/* Typemap suite for (DATA_TYPE INPLACE_ARRAY1[ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE INPLACE_ARRAY1[ANY]) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE INPLACE_ARRAY1[ANY]) + (PyArrayObject* array=NULL) +{ + npy_intp size[1] = { $1_dim0 }; + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,1) || !require_size(array, size, 1) || + !require_contiguous(array) || !require_native(array)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} + +/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_ARRAY1, DIM_TYPE DIM1) + (PyArrayObject* array=NULL, int i=1) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,1) || !require_contiguous(array) + || !require_native(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = 1; + for (i=0; i < array_numdims(array); ++i) $2 *= array_size(array,i); +} + +/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DATA_TYPE* INPLACE_ARRAY1) + (PyArrayObject* array=NULL, int i=0) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,1) || !require_contiguous(array) + || !require_native(array)) SWIG_fail; + $1 = 1; + for (i=0; i < array_numdims(array); ++i) $1 *= array_size(array,i); + $2 = (DATA_TYPE*) array_data(array); +} + +/* Typemap suite for (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE INPLACE_ARRAY2[ANY][ANY]) + (PyArrayObject* array=NULL) +{ + npy_intp size[2] = { $1_dim0, $1_dim1 }; + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,2) || !require_size(array, size, 2) || + !require_contiguous(array) || !require_native(array)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} + +/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_ARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,2) || !require_contiguous(array) + || !require_native(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_ARRAY2) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,2) || !require_contiguous(array) || + !require_native(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DATA_TYPE*) array_data(array); +} + +/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_FARRAY2, DIM_TYPE DIM1, DIM_TYPE DIM2) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,2) || !require_contiguous(array) + || !require_native(array) || !require_fortran(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DATA_TYPE* INPLACE_FARRAY2) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,2) || !require_contiguous(array) || + !require_native(array) || !require_fortran(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DATA_TYPE*) array_data(array); +} + +/* Typemap suite for (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE INPLACE_ARRAY3[ANY][ANY][ANY]) + (PyArrayObject* array=NULL) +{ + npy_intp size[3] = { $1_dim0, $1_dim1, $1_dim2 }; + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,3) || !require_size(array, size, 3) || + !require_contiguous(array) || !require_native(array)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} + +/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,3) || !require_contiguous(array) || + !require_native(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); +} + +/* Typemap suite for (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + $1 = PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL) +{ + npy_intp size[2] = { -1, -1 }; + PyArrayObject* temp_array; + Py_ssize_t i; + + /* length of the list */ + $2 = PyList_Size($input); + + /* the arrays */ + array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); + object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); + + if (array == NULL || object_array == NULL) + { + SWIG_fail; + } + + for (i=0; i<$2; i++) + { + temp_array = obj_to_array_no_conversion(PySequence_GetItem($input,i), DATA_TYPECODE); + + /* the new array must be stored so that it can be destroyed in freearg */ + object_array[i] = temp_array; + + if ( !temp_array || !require_dimensions(temp_array, 2) || + !require_contiguous(temp_array) || + !require_native(temp_array) || + !PyArray_EquivTypenums(array_type(temp_array), DATA_TYPECODE) + ) SWIG_fail; + + /* store the size of the first array in the list, then use that for comparison. */ + if (i == 0) + { + size[0] = array_size(temp_array,0); + size[1] = array_size(temp_array,1); + } + + if (!require_size(temp_array, size, 2)) SWIG_fail; + + array[i] = (DATA_TYPE*) array_data(temp_array); + } + + $1 = (DATA_TYPE**) array; + $3 = (DIM_TYPE) size[0]; + $4 = (DIM_TYPE) size[1]; +} +%typemap(freearg) + (DATA_TYPE** INPLACE_ARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + if (array$argnum!=NULL) free(array$argnum); + if (object_array$argnum!=NULL) free(object_array$argnum); +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, + * DATA_TYPE* INPLACE_ARRAY3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_ARRAY3) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,3) || !require_contiguous(array) + || !require_native(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DATA_TYPE*) array_data(array); +} + +/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_FARRAY3, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,3) || !require_contiguous(array) || + !require_native(array) || !require_fortran(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, + * DATA_TYPE* INPLACE_FARRAY3) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DATA_TYPE* INPLACE_FARRAY3) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,3) || !require_contiguous(array) + || !require_native(array) || !require_fortran(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DATA_TYPE*) array_data(array); +} + +/* Typemap suite for (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE INPLACE_ARRAY4[ANY][ANY][ANY][ANY]) + (PyArrayObject* array=NULL) +{ + npy_intp size[4] = { $1_dim0, $1_dim1, $1_dim2 , $1_dim3 }; + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,4) || !require_size(array, size, 4) || + !require_contiguous(array) || !require_native(array)) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} + +/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3, DIM_TYPE DIM4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,4) || !require_contiguous(array) || + !require_native(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); + $5 = (DIM_TYPE) array_size(array,3); +} + +/* Typemap suite for (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3, DIM_TYPE DIM4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + $1 = PySequence_Check($input); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + (DATA_TYPE** array=NULL, PyArrayObject** object_array=NULL) +{ + npy_intp size[3] = { -1, -1, -1 }; + PyArrayObject* temp_array; + Py_ssize_t i; + + /* length of the list */ + $2 = PyList_Size($input); + + /* the arrays */ + array = (DATA_TYPE **)malloc($2*sizeof(DATA_TYPE *)); + object_array = (PyArrayObject **)calloc($2,sizeof(PyArrayObject *)); + + if (array == NULL || object_array == NULL) + { + SWIG_fail; + } + + for (i=0; i<$2; i++) + { + temp_array = obj_to_array_no_conversion(PySequence_GetItem($input,i), DATA_TYPECODE); + + /* the new array must be stored so that it can be destroyed in freearg */ + object_array[i] = temp_array; + + if ( !temp_array || !require_dimensions(temp_array, 3) || + !require_contiguous(temp_array) || + !require_native(temp_array) || + !PyArray_EquivTypenums(array_type(temp_array), DATA_TYPECODE) + ) SWIG_fail; + + /* store the size of the first array in the list, then use that for comparison. */ + if (i == 0) + { + size[0] = array_size(temp_array,0); + size[1] = array_size(temp_array,1); + size[2] = array_size(temp_array,2); + } + + if (!require_size(temp_array, size, 3)) SWIG_fail; + + array[i] = (DATA_TYPE*) array_data(temp_array); + } + + $1 = (DATA_TYPE**) array; + $3 = (DIM_TYPE) size[0]; + $4 = (DIM_TYPE) size[1]; + $5 = (DIM_TYPE) size[2]; +} +%typemap(freearg) + (DATA_TYPE** INPLACE_ARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + if (array$argnum!=NULL) free(array$argnum); + if (object_array$argnum!=NULL) free(object_array$argnum); +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, + * DATA_TYPE* INPLACE_ARRAY4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_ARRAY4) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,4) || !require_contiguous(array) + || !require_native(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DIM_TYPE) array_size(array,3); + $5 = (DATA_TYPE*) array_data(array); +} + +/* Typemap suite for (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, + * DIM_TYPE DIM3, DIM_TYPE DIM4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_FARRAY4, DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,4) || !require_contiguous(array) || + !require_native(array) || !require_fortran(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = (DIM_TYPE) array_size(array,0); + $3 = (DIM_TYPE) array_size(array,1); + $4 = (DIM_TYPE) array_size(array,2); + $5 = (DIM_TYPE) array_size(array,3); +} + +/* Typemap suite for (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, + * DATA_TYPE* INPLACE_FARRAY4) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DIM_TYPE DIM2, DIM_TYPE DIM3, DIM_TYPE DIM4, DATA_TYPE* INPLACE_FARRAY4) + (PyArrayObject* array=NULL) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_dimensions(array,4) || !require_contiguous(array) + || !require_native(array) || !require_fortran(array)) SWIG_fail; + $1 = (DIM_TYPE) array_size(array,0); + $2 = (DIM_TYPE) array_size(array,1); + $3 = (DIM_TYPE) array_size(array,2); + $4 = (DIM_TYPE) array_size(array,3); + $5 = (DATA_TYPE*) array_data(array); +} + +/*************************/ +/* Argout Array Typemaps */ +/*************************/ + +/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY1[ANY]) + */ +%typemap(in,numinputs=0, + fragment="NumPy_Backward_Compatibility,NumPy_Macros") + (DATA_TYPE ARGOUT_ARRAY1[ANY]) + (PyObject* array = NULL) +{ + npy_intp dims[1] = { $1_dim0 }; + array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); + if (!array) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(argout) + (DATA_TYPE ARGOUT_ARRAY1[ANY]) +{ + $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); +} + +/* Typemap suite for (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) + */ +%typemap(in,numinputs=1, + fragment="NumPy_Fragments") + (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) + (PyObject* array = NULL) +{ + npy_intp dims[1]; + if (!PyInt_Check($input)) + { + const char* typestring = pytype_string($input); + PyErr_Format(PyExc_TypeError, + "Int dimension expected. '%s' given.", + typestring); + SWIG_fail; + } + $2 = (DIM_TYPE) PyInt_AsLong($input); + dims[0] = (npy_intp) $2; + array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); + if (!array) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); +} +%typemap(argout) + (DATA_TYPE* ARGOUT_ARRAY1, DIM_TYPE DIM1) +{ + $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); +} + +/* Typemap suite for (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) + */ +%typemap(in,numinputs=1, + fragment="NumPy_Fragments") + (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) + (PyObject* array = NULL) +{ + npy_intp dims[1]; + if (!PyInt_Check($input)) + { + const char* typestring = pytype_string($input); + PyErr_Format(PyExc_TypeError, + "Int dimension expected. '%s' given.", + typestring); + SWIG_fail; + } + $1 = (DIM_TYPE) PyInt_AsLong($input); + dims[0] = (npy_intp) $1; + array = PyArray_SimpleNew(1, dims, DATA_TYPECODE); + if (!array) SWIG_fail; + $2 = (DATA_TYPE*) array_data(array); +} +%typemap(argout) + (DIM_TYPE DIM1, DATA_TYPE* ARGOUT_ARRAY1) +{ + $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); +} + +/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) + */ +%typemap(in,numinputs=0, + fragment="NumPy_Backward_Compatibility,NumPy_Macros") + (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) + (PyObject* array = NULL) +{ + npy_intp dims[2] = { $1_dim0, $1_dim1 }; + array = PyArray_SimpleNew(2, dims, DATA_TYPECODE); + if (!array) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(argout) + (DATA_TYPE ARGOUT_ARRAY2[ANY][ANY]) +{ + $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); +} + +/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) + */ +%typemap(in,numinputs=0, + fragment="NumPy_Backward_Compatibility,NumPy_Macros") + (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) + (PyObject* array = NULL) +{ + npy_intp dims[3] = { $1_dim0, $1_dim1, $1_dim2 }; + array = PyArray_SimpleNew(3, dims, DATA_TYPECODE); + if (!array) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(argout) + (DATA_TYPE ARGOUT_ARRAY3[ANY][ANY][ANY]) +{ + $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); +} + +/* Typemap suite for (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) + */ +%typemap(in,numinputs=0, + fragment="NumPy_Backward_Compatibility,NumPy_Macros") + (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) + (PyObject* array = NULL) +{ + npy_intp dims[4] = { $1_dim0, $1_dim1, $1_dim2, $1_dim3 }; + array = PyArray_SimpleNew(4, dims, DATA_TYPECODE); + if (!array) SWIG_fail; + $1 = ($1_ltype) array_data(array); +} +%typemap(argout) + (DATA_TYPE ARGOUT_ARRAY4[ANY][ANY][ANY][ANY]) +{ + $result = SWIG_Python_AppendOutput($result,(PyObject*)array$argnum); +} + +/*****************************/ +/* Argoutview Array Typemaps */ +/*****************************/ + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim_temp) +{ + $1 = &data_temp; + $2 = &dim_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DATA_TYPE** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) +{ + npy_intp dims[1] = { *$2 }; + PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DATA_TYPE** ARGOUTVIEW_ARRAY1) + (DIM_TYPE dim_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim_temp; + $2 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEW_ARRAY1) +{ + npy_intp dims[1] = { *$1 }; + PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$2)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DATA_TYPE** ARGOUTVIEW_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) +{ + npy_intp dims[2] = { *$2, *$3 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEW_ARRAY2) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_ARRAY2) +{ + npy_intp dims[2] = { *$1, *$2 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") + (DATA_TYPE** ARGOUTVIEW_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) +{ + npy_intp dims[2] = { *$2, *$3 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEW_FARRAY2) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEW_FARRAY2) +{ + npy_intp dims[2] = { *$1, *$2 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DATA_TYPE** ARGOUTVIEW_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) +{ + npy_intp dims[3] = { *$2, *$3, *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, + DATA_TYPE** ARGOUTVIEW_ARRAY3) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_ARRAY3) +{ + npy_intp dims[3] = { *$1, *$2, *$3 }; + PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") + (DATA_TYPE** ARGOUTVIEW_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) +{ + npy_intp dims[3] = { *$2, *$3, *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, + DATA_TYPE** ARGOUTVIEW_FARRAY3) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEW_FARRAY3) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEW_FARRAY3) +{ + npy_intp dims[3] = { *$1, *$2, *$3 }; + PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3, DIM_TYPE* DIM4) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; + $5 = &dim4_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DATA_TYPE** ARGOUTVIEW_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) +{ + npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, + DATA_TYPE** ARGOUTVIEW_ARRAY4) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEW_ARRAY4) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &dim4_temp; + $5 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_ARRAY4) +{ + npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3, DIM_TYPE* DIM4) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; + $5 = &dim4_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") + (DATA_TYPE** ARGOUTVIEW_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) +{ + npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, + DATA_TYPE** ARGOUTVIEW_FARRAY4) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEW_FARRAY4) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &dim4_temp; + $5 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEW_FARRAY4) +{ + npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + $result = SWIG_Python_AppendOutput($result,obj); +} + +/*************************************/ +/* Managed Argoutview Array Typemaps */ +/*************************************/ + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim_temp) +{ + $1 = &data_temp; + $2 = &dim_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_ARRAY1, DIM_TYPE* DIM1) +{ + npy_intp dims[1] = { *$2 }; + PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DATA_TYPE** ARGOUTVIEWM_ARRAY1) + (DIM_TYPE dim_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim_temp; + $2 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DIM_TYPE* DIM1, DATA_TYPE** ARGOUTVIEWM_ARRAY1) +{ + npy_intp dims[1] = { *$1 }; + PyObject* obj = PyArray_SimpleNewFromData(1, dims, DATA_TYPECODE, (void*)(*$2)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_ARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) +{ + npy_intp dims[2] = { *$2, *$3 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEWM_ARRAY2) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_ARRAY2) +{ + npy_intp dims[2] = { *$1, *$2 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_FARRAY2, DIM_TYPE* DIM1, DIM_TYPE* DIM2) +{ + npy_intp dims[2] = { *$2, *$3 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DATA_TYPE** ARGOUTVIEWM_FARRAY2) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DATA_TYPE** ARGOUTVIEWM_FARRAY2) +{ + npy_intp dims[2] = { *$1, *$2 }; + PyObject* obj = PyArray_SimpleNewFromData(2, dims, DATA_TYPECODE, (void*)(*$3)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_ARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) +{ + npy_intp dims[3] = { *$2, *$3, *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, + DATA_TYPE** ARGOUTVIEWM_ARRAY3) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEWM_ARRAY3) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_ARRAY3) +{ + npy_intp dims[3] = { *$1, *$2, *$3 }; + PyObject* obj= PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_FARRAY3, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) +{ + npy_intp dims[3] = { *$2, *$3, *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, + DATA_TYPE** ARGOUTVIEWM_FARRAY3) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DATA_TYPE** ARGOUTVIEWM_FARRAY3) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DATA_TYPE** ARGOUTVIEWM_FARRAY3) +{ + npy_intp dims[3] = { *$1, *$2, *$3 }; + PyObject* obj = PyArray_SimpleNewFromData(3, dims, DATA_TYPECODE, (void*)(*$4)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3, DIM_TYPE* DIM4) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; + $5 = &dim4_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) +{ + npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, + DATA_TYPE** ARGOUTVIEWM_ARRAY4) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_ARRAY4) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &dim4_temp; + $5 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) +{ + npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3, DIM_TYPE* DIM4) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; + $5 = &dim4_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3) +{ + npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, + DATA_TYPE** ARGOUTVIEWM_FARRAY4) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_FARRAY4) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &dim4_temp; + $5 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) +{ + npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3, DIM_TYPE* DIM4) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; + $5 = &dim4_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_ARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) +{ + npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, + DATA_TYPE** ARGOUTVIEWM_ARRAY4) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_ARRAY4) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &dim4_temp; + $5 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_ARRAY4) +{ + npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, + DIM_TYPE* DIM3, DIM_TYPE* DIM4) + */ +%typemap(in,numinputs=0) + (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 ) + (DATA_TYPE* data_temp = NULL , DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp) +{ + $1 = &data_temp; + $2 = &dim1_temp; + $3 = &dim2_temp; + $4 = &dim3_temp; + $5 = &dim4_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DATA_TYPE** ARGOUTVIEWM_FARRAY4, DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4) +{ + npy_intp dims[4] = { *$2, *$3, *$4 , *$5 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$1)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/* Typemap suite for (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, + DATA_TYPE** ARGOUTVIEWM_FARRAY4) + */ +%typemap(in,numinputs=0) + (DIM_TYPE* DIM1 , DIM_TYPE* DIM2 , DIM_TYPE* DIM3 , DIM_TYPE* DIM4 , DATA_TYPE** ARGOUTVIEWM_FARRAY4) + (DIM_TYPE dim1_temp, DIM_TYPE dim2_temp, DIM_TYPE dim3_temp, DIM_TYPE dim4_temp, DATA_TYPE* data_temp = NULL ) +{ + $1 = &dim1_temp; + $2 = &dim2_temp; + $3 = &dim3_temp; + $4 = &dim4_temp; + $5 = &data_temp; +} +%typemap(argout, + fragment="NumPy_Backward_Compatibility,NumPy_Array_Requirements,NumPy_Utilities") + (DIM_TYPE* DIM1, DIM_TYPE* DIM2, DIM_TYPE* DIM3, DIM_TYPE* DIM4, DATA_TYPE** ARGOUTVIEWM_FARRAY4) +{ + npy_intp dims[4] = { *$1, *$2, *$3 , *$4 }; + PyObject* obj = PyArray_SimpleNewFromData(4, dims, DATA_TYPECODE, (void*)(*$5)); + PyArrayObject* array = (PyArrayObject*) obj; + + if (!array || !require_fortran(array)) SWIG_fail; + +%#ifdef SWIGPY_USE_CAPSULE + PyObject* cap = PyCapsule_New((void*)(*$1), SWIGPY_CAPSULE_NAME, free_cap); +%#else + PyObject* cap = PyCObject_FromVoidPtr((void*)(*$1), free); +%#endif + +%#if NPY_API_VERSION < 0x00000007 + PyArray_BASE(array) = cap; +%#else + PyArray_SetBaseObject(array,cap); +%#endif + + $result = SWIG_Python_AppendOutput($result,obj); +} + +/**************************************/ +/* In-Place Array Typemap - flattened */ +/**************************************/ + +/* Typemap suite for (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) + */ +%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY, + fragment="NumPy_Macros") + (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) +{ + $1 = is_array($input) && PyArray_EquivTypenums(array_type($input), + DATA_TYPECODE); +} +%typemap(in, + fragment="NumPy_Fragments") + (DATA_TYPE* INPLACE_ARRAY_FLAT, DIM_TYPE DIM_FLAT) + (PyArrayObject* array=NULL, int i=1) +{ + array = obj_to_array_no_conversion($input, DATA_TYPECODE); + if (!array || !require_c_or_f_contiguous(array) + || !require_native(array)) SWIG_fail; + $1 = (DATA_TYPE*) array_data(array); + $2 = 1; + for (i=0; i < array_numdims(array); ++i) $2 *= array_size(array,i); +} + +%enddef /* %numpy_typemaps() macro */ +/* *************************************************************** */ + +/* Concrete instances of the %numpy_typemaps() macro: Each invocation + * below applies all of the typemaps above to the specified data type. + */ +%numpy_typemaps(signed char , NPY_BYTE , int) +%numpy_typemaps(unsigned char , NPY_UBYTE , int) +%numpy_typemaps(short , NPY_SHORT , int) +%numpy_typemaps(unsigned short , NPY_USHORT , int) +%numpy_typemaps(int , NPY_INT , int) +%numpy_typemaps(unsigned int , NPY_UINT , int) +%numpy_typemaps(long , NPY_LONG , int) +%numpy_typemaps(unsigned long , NPY_ULONG , int) +%numpy_typemaps(long long , NPY_LONGLONG , int) +%numpy_typemaps(unsigned long long, NPY_ULONGLONG, int) +%numpy_typemaps(float , NPY_FLOAT , int) +%numpy_typemaps(double , NPY_DOUBLE , int) +%numpy_typemaps(int8_t , NPY_INT8 , int) +%numpy_typemaps(int16_t , NPY_INT16 , int) +%numpy_typemaps(int32_t , NPY_INT32 , int) +%numpy_typemaps(int64_t , NPY_INT64 , int) +%numpy_typemaps(uint8_t , NPY_UINT8 , int) +%numpy_typemaps(uint16_t , NPY_UINT16 , int) +%numpy_typemaps(uint32_t , NPY_UINT32 , int) +%numpy_typemaps(uint64_t , NPY_UINT64 , int) + + +/* *************************************************************** + * The follow macro expansion does not work, because C++ bool is 4 + * bytes and NPY_BOOL is 1 byte + * + * %numpy_typemaps(bool, NPY_BOOL, int) + */ + +/* *************************************************************** + * On my Mac, I get the following warning for this macro expansion: + * 'swig/python detected a memory leak of type 'long double *', no destructor found.' + * + * %numpy_typemaps(long double, NPY_LONGDOUBLE, int) + */ + +#ifdef __cplusplus + +%include + +%numpy_typemaps(std::complex, NPY_CFLOAT , int) +%numpy_typemaps(std::complex, NPY_CDOUBLE, int) + +#endif + +#endif /* SWIGPYTHON */ diff --git a/python/pyqmckl.i b/python/pyqmckl.i new file mode 100644 index 0000000..3f68b0f --- /dev/null +++ b/python/pyqmckl.i @@ -0,0 +1,52 @@ +%module pyqmckl +/* Define SWIGWORDSIZE in order to properly align long integers on 64-bit system */ +#define SWIGWORDSIZE64 +%{ +#define SWIG_FILE_WITH_INIT +/* Include the headers in the wrapper code */ +#include "qmckl.h" +%} + + +/* Include stdint to recognize types from stdint.h */ +%include + + +/* Include typemaps to play with input/output re-casting + Useful when working with C pointers +*/ +%include typemaps.i + +/* Return TREXIO exit code from trexio_open as part of the output tuple */ +%apply int *OUTPUT { qmckl_exit_code *exit_code}; + +/* This enables access to trexio_[...]_read_dset_str_low set of functions + in order to return one long string with TREXIO_DELIM delimeter as 2-nd argument of output tuple + */ +%include + + +/* This block is needed make SWIG treat (double * dset_out|_in, int64_t dim_out|_in) pattern + as a special case in order to return the NumPy array to Python from C pointer to array + provided by trexio_read_safe_[dset_num] function. + NOTE: numpy.i is currently not part of SWIG but included in the numpy distribution (under numpy/tools/swig/numpy.i) +*/ +%include "numpy.i" + +%init %{ +import_array(); +%} + +/* Typemaps below change the type of numpy array dimensions from int to int64_t */ +%numpy_typemaps(double, NPY_DOUBLE, int64_t) +%numpy_typemaps(float, NPY_FLOAT, int64_t) +%numpy_typemaps(int32_t, NPY_INT32, int64_t) +%numpy_typemaps(int64_t, NPY_INT64, int64_t) + +/* Include typemaps generated by the process.py */ +%include pyqmckl_include.i + + +/* Parse the header files to generate wrappers */ +%include "qmckl.h" + diff --git a/python/pyqmckl_include.i b/python/pyqmckl_include.i new file mode 100644 index 0000000..beafb48 --- /dev/null +++ b/python/pyqmckl_include.i @@ -0,0 +1,96 @@ +%apply int *OUTPUT { int64_t* const num }; +%apply int *OUTPUT { int64_t* const num }; +%apply float *OUTPUT { double* const rescale_factor_kappa }; +%apply float *OUTPUT { double* const energy }; +%apply int *OUTPUT { int64_t* const num }; +%apply int *OUTPUT { int64_t* const up_num }; +%apply int *OUTPUT { int64_t* const down_num }; +%apply int *OUTPUT { int64_t* const walk_num }; +%apply float *OUTPUT { double* const rescale_factor_kappa_ee }; +%apply float *OUTPUT { double* const rescale_factor_kappa_en }; +%apply float *OUTPUT { double* const distance }; +%apply float *OUTPUT { double* const distance_rescaled }; +%apply float *OUTPUT { double* const distance_rescaled_deriv_e }; +%apply float *OUTPUT { double* const ee_pot }; +%apply float *OUTPUT { double* distance }; +%apply float *OUTPUT { double* distance_rescaled }; +%apply float *OUTPUT { double* distance_rescaled_deriv_e }; +%apply float *OUTPUT { double* const en_pot }; +%apply int *OUTPUT { int64_t* const shell_num }; +%apply int *OUTPUT { int64_t* const prim_num }; +%apply int *OUTPUT { int64_t* const ao_num }; +%apply int *OUTPUT { int64_t* mo_num }; +%apply float *OUTPUT { double* const mo_vgl }; +%apply float *OUTPUT { double* const det_vgl_alpha }; +%apply float *OUTPUT { double* const det_vgl_beta }; +%apply float *OUTPUT { double* const det_inv_matrix_alpha }; +%apply float *OUTPUT { double* const det_inv_matrix_beta }; +%apply float *OUTPUT { double* const det_adj_matrix_alpha }; +%apply float *OUTPUT { double* const det_adj_matrix_beta }; +%apply float *OUTPUT { double* const det_adj_matrix_alpha }; +%apply float *OUTPUT { double* const det_adj_matrix_beta }; +%apply int *OUTPUT { int64_t* const aord_num }; +%apply int *OUTPUT { int64_t* const bord_num }; +%apply int *OUTPUT { int64_t* const bord_num }; +%apply int *OUTPUT { int64_t* const type_nucl_num }; +%apply int *OUTPUT { int64_t* const dim_cord_vect }; +%apply float *OUTPUT { double* const cord_vect_full }; +%apply int *OUTPUT { int64_t* const lkpm_combined_index }; +%apply float *OUTPUT { double* const tmp_c }; +%apply float *OUTPUT { double* const dtmp_c }; +%apply float *OUTPUT { double* const kinetic_energy }; +%apply float *OUTPUT { double* const potential_energy }; +%apply float *OUTPUT { double* const local_energy }; +%apply float *OUTPUT { double* const drift_vector }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coord,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const charge,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coord,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* charge,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* coord,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* distance,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* distance_rescaled,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coord,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double* coord , const int64_t size_max) }; +%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* nucleus_index,const int64_t size_max) }; +%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* nucleus_shell_num,const int64_t size_max) }; +%apply ( int32_t* IN_ARRAY1 , int64_t DIM1 ) { (const int32_t* shell_ang_mom,const int64_t size_max) }; +%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* shell_prim_num,const int64_t size_max) }; +%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* shell_prim_index,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* shell_factor,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* exponent,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* coefficient,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* prim_factor,const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* ao_factor,const int64_t size_max) }; +%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const nucleus_shell_num,const int64_t size_max) }; +%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const nucleus_index,const int64_t size_max) }; +%apply ( int32_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int32_t* const shell_ang_mom,const int64_t size_max) }; +%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const shell_prim_num,const int64_t size_max) }; +%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const shell_prim_index,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const shell_factor,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const exponent,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coefficient,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const prim_factor,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const ao_factor,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const primitive_vgl,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const shell_vgl,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const ao_vgl,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const ao_vgl,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coefficient,const int64_t size_max) }; +%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( int64_t* const type_nucl_num , const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( double * const aord_vector , const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( double * const bord_vector , const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( double * const cord_vector , const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double * aord_vector , const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double * bord_vector , const int64_t size_max) }; +%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double * cord_vector , const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const asymp_jasb,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_ee,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_ee_deriv_e,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_en,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_en_deriv_e,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_een,const int64_t size_max) }; +%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_een_deriv_e,const int64_t size_max) }; diff --git a/python/pytrexio.i b/python/pytrexio.i new file mode 100644 index 0000000..121d465 --- /dev/null +++ b/python/pytrexio.i @@ -0,0 +1,141 @@ +%module pytrexio +/* Define SWIGWORDSIZE in order to properly align long integers on 64-bit system */ +#define SWIGWORDSIZE64 +%{ +#define SWIG_FILE_WITH_INIT +/* Include the headers in the wrapper code */ +#include "trexio_s.h" +#include "trexio.h" +%} + +/* Include stdint to recognize types from stdint.h */ +%include + +/* NOTE: + carrays was useful before numpy.i was introduced. + For Python interface it's better to use numpy arrays instead of carrays, because the latter are less python-ic. + On the other hand, carrays might be more portable to other target languages. +// Include carrays to work with C pointers to arrays +%include "carrays.i" +// Include classes that correspond to integer and float arrays +%array_class(double, doubleArray); +%array_class(float, floatArray); +%array_class(int32_t, int32Array); +%array_class(int64_t, int64Array); +*/ + +/* Include typemaps to play with input/output re-casting + Useful when working with C pointers +*/ +%include typemaps.i +/* Redefine the [int32_t*, int64_t*, float*, double*] num + pattern to be appended to the output tuple. + Useful for TREXIO read_num functions where the + num variable is modified by address +*/ +/* Return num variables as part of the output tuple */ +%apply int *OUTPUT { int32_t* const num}; +%apply int *OUTPUT { int64_t* const num}; +%apply int *OUTPUT { int32_t* const num_up}; +%apply int *OUTPUT { int32_t* const num_dn}; +%apply int *OUTPUT { int64_t* const num_up}; +%apply int *OUTPUT { int64_t* const num_dn}; +%apply float *OUTPUT { float* const num}; +%apply float *OUTPUT { double* const num}; +/* Return TREXIO exit code from trexio_open as part of the output tuple */ +%apply int *OUTPUT { trexio_exit_code* const rc_open}; +/* Return number of sparse data points stored in the file as part of the output tuple */ +%apply int *OUTPUT { int64_t* const size_max}; +/* Return number of sparse data points read from the file as part of the output tuple */ +%apply int *INOUT { int64_t* const buffer_size_read}; + +/* Does not work for arrays (SIGSEGV) */ + +/* This enables access to trexio_[...]_read_dset_str_low set of functions + in order to return one long string with TREXIO_DELIM delimeter as 2-nd argument of output tuple + */ +%include +/* This enables read of long strings with TREXIO_DELIM delimeters that can be further converted into an array of string */ +%cstring_bounded_output(char* dset_out, 4096); +/* This enables read of single string attributes with pre-defined max_str_len + for Python we pre-define max_str_len = PYTREXIO_MAX_STR_LENGTH everywhere for simplicity +*/ +%cstring_output_maxsize(char* const str_out, const int32_t max_str_len); + + +/* This block is needed make SWIG treat (double * dset_out|_in, int64_t dim_out|_in) pattern + as a special case in order to return the NumPy array to Python from C pointer to array + provided by trexio_read_safe_[dset_num] function. + NOTE: numpy.i is currently not part of SWIG but included in the numpy distribution (under numpy/tools/swig/numpy.i) +*/ +%include "numpy.i" + +%init %{ +import_array(); +%} + +/* Typemaps below change the type of numpy array dimensions from int to int64_t */ +%numpy_typemaps(double, NPY_DOUBLE, int64_t) +%numpy_typemaps(float, NPY_FLOAT, int64_t) +%numpy_typemaps(int32_t, NPY_INT32, int64_t) +%numpy_typemaps(int64_t, NPY_INT64, int64_t) +%numpy_typemaps(bitfield_t, NPY_INT64, int64_t) +/* Enable write|read_safe functions to convert numpy arrays from/to double arrays */ +%apply (double* ARGOUT_ARRAY1, int64_t DIM1) {(double* const dset_out, const int64_t dim_out)}; +%apply (double* IN_ARRAY1, int64_t DIM1) {(const double* dset_in, const int64_t dim_in)}; +/* Enable write|read_safe functions to convert numpy arrays from/to float arrays */ +%apply (float* ARGOUT_ARRAY1, int64_t DIM1) {(float* const dset_out, const int64_t dim_out)}; +%apply (float* IN_ARRAY1, int64_t DIM1) {(const float* dset_in, const int64_t dim_in)}; +/* Enable write|read_safe functions to convert numpy arrays from/to int32 arrays */ +%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const dset_out, const int64_t dim_out)}; +%apply (int32_t* IN_ARRAY1, int64_t DIM1) {(const int32_t* dset_in, const int64_t dim_in)}; +/* Enable write|read_safe functions to convert numpy arrays from/to int64 arrays */ +%apply (int64_t* ARGOUT_ARRAY1, int64_t DIM1) {(int64_t* const dset_out, const int64_t dim_out)}; +%apply (int64_t* IN_ARRAY1, int64_t DIM1) {(const int64_t* dset_in, const int64_t dim_in)}; +/* Enable write|read_safe functions to convert numpy arrays from/to sparse arrays */ +%apply (double* IN_ARRAY1, int64_t DIM1) {(const double* value_sparse_write, const int64_t size_value_write)}; +%apply (int32_t* IN_ARRAY1, int64_t DIM1) {(const int32_t* index_sparse_write, const int64_t size_index_write)}; + +%apply (double* ARGOUT_ARRAY1, int64_t DIM1) {(double* const value_sparse_read, const int64_t size_value_read)}; +%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const index_sparse_read, const int64_t size_index_read)}; +/* Enable write|read_safe functions to convert numpy arrays from orbital list arrays */ +%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const dset_up_out, const int64_t dim_up_out)}; +%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const dset_dn_out, const int64_t dim_dn_out)}; +%apply (int64_t* ARGOUT_ARRAY1, int64_t DIM1) {(int64_t* const dset_up_out, const int64_t dim_up_out)}; +%apply (int64_t* ARGOUT_ARRAY1, int64_t DIM1) {(int64_t* const dset_dn_out, const int64_t dim_dn_out)}; +%apply (bitfield_t* IN_ARRAY1, int64_t DIM1) {(const bitfield_t* dset_in, const int64_t dim_in)}; + +/* This tells SWIG to treat char ** dset_in pattern as a special case + Enables access to trexio_[...]_write_dset_str set of functions directly, i.e. + by converting input list of strings from Python into char ** of C +*/ +%typemap(in) char** dset_in { + /* Check if is a list */ + if (PyList_Check($input)) { + int size = PyList_Size($input); + Py_ssize_t i = 0; + $1 = (char **) malloc((size+1)*sizeof(char *)); + for (i = 0; i < size; i++) { + PyObject *o = PyList_GetItem($input, i); + if (PyUnicode_Check(o)) { + $1[i] = PyUnicode_AsUTF8(PyList_GetItem($input,i)); + } else { + PyErr_Format(PyExc_TypeError, "list must contain strings. %d/%d element was not string.", i, size); + free($1); + return NULL; + } + } + $1[i] = 0; + } else { + PyErr_SetString(PyExc_TypeError, "not a list"); + return NULL; + } +} +/* This cleans up the char ** array we malloc-ed before */ +%typemap(freearg) char** dset_in { + free((char *) $1); +} + +/* Parse the header files to generate wrappers */ +%include "trexio_s.h" +%include "trexio.h" diff --git a/python/qmckl.h b/python/qmckl.h new file mode 100644 index 0000000..e17c267 --- /dev/null +++ b/python/qmckl.h @@ -0,0 +1,2093 @@ +/* + * ------------------------------------------ + * QMCkl - Quantum Monte Carlo kernel library + * ------------------------------------------ + * + * Documentation : https://trex-coe.github.io/qmckl + * Issues : https://github.com/trex-coe/qmckl/issues + * + * BSD 3-Clause License + * + * Copyright (c) 2020, TREX Center of Excellence + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * + * + */ + +#ifndef __QMCKL_H__ +#define __QMCKL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +/* /home/evgeny/qmckl/src/qmckl_context_type.h */ +/* Context handling */ + +/* The context variable is a handle for the state of the library, */ +/* and is stored in a data structure which can't be seen outside of */ +/* the library. To simplify compatibility with other languages, the */ +/* pointer to the internal data structure is converted into a 64-bit */ +/* signed integer, defined in the ~qmckl_context~ type. */ +/* A value of ~QMCKL_NULL_CONTEXT~ for the context is equivalent to a */ +/* ~NULL~ pointer. */ + +/* #+NAME: qmckl_context */ + +typedef int64_t qmckl_context ; +#define QMCKL_NULL_CONTEXT (qmckl_context) 0 +/* /home/evgeny/qmckl/src/qmckl_error_type.h */ +/* - */ +/* :PROPERTIES: */ +/* :UNNUMBERED: t */ +/* :END: */ + +/* The library should never make the calling programs abort, nor */ +/* perform any input/output operations. This decision has to be taken */ +/* by the developer of the code calling the library. */ + +/* All the functions return with an exit code, defined as */ +/* #+NAME: type-exit-code */ + +typedef int32_t qmckl_exit_code; + + + +/* #+RESULTS: */ +/* :results: */ + +#define QMCKL_SUCCESS ((qmckl_exit_code) 0) +#define QMCKL_INVALID_ARG_1 ((qmckl_exit_code) 1) +#define QMCKL_INVALID_ARG_2 ((qmckl_exit_code) 2) +#define QMCKL_INVALID_ARG_3 ((qmckl_exit_code) 3) +#define QMCKL_INVALID_ARG_4 ((qmckl_exit_code) 4) +#define QMCKL_INVALID_ARG_5 ((qmckl_exit_code) 5) +#define QMCKL_INVALID_ARG_6 ((qmckl_exit_code) 6) +#define QMCKL_INVALID_ARG_7 ((qmckl_exit_code) 7) +#define QMCKL_INVALID_ARG_8 ((qmckl_exit_code) 8) +#define QMCKL_INVALID_ARG_9 ((qmckl_exit_code) 9) +#define QMCKL_INVALID_ARG_10 ((qmckl_exit_code) 10) +#define QMCKL_INVALID_ARG_11 ((qmckl_exit_code) 11) +#define QMCKL_INVALID_ARG_12 ((qmckl_exit_code) 12) +#define QMCKL_INVALID_ARG_13 ((qmckl_exit_code) 13) +#define QMCKL_INVALID_ARG_14 ((qmckl_exit_code) 14) +#define QMCKL_INVALID_ARG_15 ((qmckl_exit_code) 15) +#define QMCKL_INVALID_ARG_16 ((qmckl_exit_code) 16) +#define QMCKL_INVALID_ARG_17 ((qmckl_exit_code) 17) +#define QMCKL_INVALID_ARG_18 ((qmckl_exit_code) 18) +#define QMCKL_INVALID_ARG_19 ((qmckl_exit_code) 19) +#define QMCKL_INVALID_ARG_20 ((qmckl_exit_code) 20) +#define QMCKL_FAILURE ((qmckl_exit_code) 101) +#define QMCKL_ERRNO ((qmckl_exit_code) 102) +#define QMCKL_INVALID_CONTEXT ((qmckl_exit_code) 103) +#define QMCKL_ALLOCATION_FAILED ((qmckl_exit_code) 104) +#define QMCKL_DEALLOCATION_FAILED ((qmckl_exit_code) 105) +#define QMCKL_NOT_PROVIDED ((qmckl_exit_code) 106) +#define QMCKL_OUT_OF_BOUNDS ((qmckl_exit_code) 107) +#define QMCKL_INVALID_EXIT_CODE ((qmckl_exit_code) 108) +/* /home/evgeny/qmckl/src/qmckl_numprec_type.h */ + + +/* #+RESULTS: */ +/* :results: */ + +#define QMCKL_DEFAULT_PRECISION 53 +#define QMCKL_DEFAULT_RANGE 11 +/* /home/evgeny/qmckl/src/qmckl_context_func.h */ + + +/* The ~qmckl_context_check~ function checks if the domain pointed by */ +/* the pointer is a valid context. It returns the input ~qmckl_context~ */ +/* if the context is valid, ~QMCKL_NULL_CONTEXT~ otherwise. */ + + +qmckl_context +qmckl_context_check (const qmckl_context context) ; + + + +/* The context keeps a /date/ that allows to check which data needs */ +/* to be recomputed. The date is incremented when the context is touched. */ + +/* When a new element is added to the context, the functions */ +/* [[Creation][=qmckl_context_create=]] [[Destroy][=qmckl_context_destroy=]] and [[Copy][=qmckl_context_copy=]] */ +/* should be updated in order to make deep copies. */ + +/* When the electron coordinates have changed, the context is touched */ +/* using the following function. */ + + +qmckl_exit_code +qmckl_context_touch (const qmckl_context context); + +/* Creation */ + +/* To create a new context, ~qmckl_context_create()~ should be used. */ +/* - Upon success, it returns a pointer to a new context with the ~qmckl_context~ type */ +/* - It returns ~QMCKL_NULL_CONTEXT~ upon failure to allocate the internal data structure */ +/* - A new context always has all its members initialized with a NULL value */ + +/* # Header */ + +qmckl_context qmckl_context_create(); + +/* Locking */ + +/* For thread safety, the context may be locked/unlocked. The lock is */ +/* initialized with the ~PTHREAD_MUTEX_RECURSIVE~ attribute, and the */ +/* number of times the thread has locked it is saved in the */ +/* ~lock_count~ attribute. */ + +/* # Header */ + +void qmckl_lock (qmckl_context context); +void qmckl_unlock(qmckl_context context); + +/* TODO Copy */ + +/* ~qmckl_context_copy~ makes a deep copy of a context. It returns */ +/* ~QMCKL_NULL_CONTEXT~ upon failure. */ + +/* # Header */ + +/* +qmckl_context qmckl_context_copy(const qmckl_context context); +*/ + +/* Destroy */ + +/* The context is destroyed with ~qmckl_context_destroy~, leaving the ancestors untouched. */ +/* It frees the context, and returns the previous context. */ + +/* # Header */ + +qmckl_exit_code +qmckl_context_destroy (const qmckl_context context); +/* /home/evgeny/qmckl/src/qmckl_error_func.h */ +/* Decoding errors */ + +/* To decode the error messages, ~qmckl_string_of_error~ converts an */ +/* error code into a string. */ + + +const char* +qmckl_string_of_error (const qmckl_exit_code error); + +/* Updating errors in the context */ + +/* The error is updated in the context using ~qmckl_set_error~. */ +/* When the error is set in the context, it is mandatory to specify */ +/* from which function the error is triggered, and a message */ +/* explaining the error. The exit code can't be ~QMCKL_SUCCESS~. */ + +/* # Header */ + +qmckl_exit_code +qmckl_set_error(qmckl_context context, + const qmckl_exit_code exit_code, + const char* function_name, + const char* message); + +/* Get the error */ + +/* Upon error, the error type and message can be obtained from the */ +/* context using ~qmckl_get_error~. The message and function name */ +/* is returned in the variables provided. Therefore, passing a */ +/* function name and message is mandatory. */ + +/* # Header */ + +qmckl_exit_code +qmckl_get_error(qmckl_context context, + qmckl_exit_code *exit_code, + char* function_name, + char* message); + +/* Failing */ + +/* To make a function fail, the ~qmckl_failwith~ function should be */ +/* called, such that information about the failure is stored in */ +/* the context. The desired exit code is given as an argument, as */ +/* well as the name of the function and an error message. If the */ +/* message is ~NULL~, then the default message obtained by */ +/* ~qmckl_string_of_error~ is used. The return code of the function is */ +/* the desired return code. */ +/* Upon failure, a ~QMCKL_NULL_CONTEXT~ is returned. */ + + +qmckl_exit_code +qmckl_failwith(qmckl_context context, + const qmckl_exit_code exit_code, + const char* function, + const char* message) ; +/* /home/evgeny/qmckl/src/qmckl_blas_func.h */ +/* ~qmckl_dgemm~ */ + +/* Matrix multiplication with a BLAS interface: */ + +/* \[ */ +/* C_{ij} = \beta C_{ij} + \alpha \sum_{k} A_{ik} \cdot B_{kj} */ +/* \] */ + +/* # TODO: Add description about the external library dependence. */ + +/* #+NAME: qmckl_dgemm_args */ +/* | Variable | Type | In/Out | Description | */ +/* |-----------+-----------------+--------+---------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~TransA~ | ~char~ | in | 'T' is transposed | */ +/* | ~TransB~ | ~char~ | in | 'T' is transposed | */ +/* | ~m~ | ~int64_t~ | in | Number of rows of the input matrix | */ +/* | ~n~ | ~int64_t~ | in | Number of columns of the input matrix | */ +/* | ~k~ | ~int64_t~ | in | Number of columns of the input matrix | */ +/* | ~alpha~ | ~double~ | in | \alpha | */ +/* | ~A~ | ~double[][lda]~ | in | Array containing the matrix $A$ | */ +/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ +/* | ~B~ | ~double[][ldb]~ | in | Array containing the matrix $B$ | */ +/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ +/* | ~beta~ | ~double~ | in | \beta | */ +/* | ~C~ | ~double[][ldc]~ | out | Array containing the matrix $C$ | */ +/* | ~ldc~ | ~int64_t~ | in | Leading dimension of array ~C~ | */ + +/* Requirements: */ + +/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ +/* - ~m > 0~ */ +/* - ~n > 0~ */ +/* - ~k > 0~ */ +/* - ~lda >= m~ */ +/* - ~ldb >= n~ */ +/* - ~ldc >= n~ */ +/* - ~A~ is allocated with at least $m \times k \times 8$ bytes */ +/* - ~B~ is allocated with at least $k \times n \times 8$ bytes */ +/* - ~C~ is allocated with at least $m \times n \times 8$ bytes */ + +/* #+CALL: generate_c_header(table=qmckl_dgemm_args,rettyp="qmckl_exit_code",fname="qmckl_dgemm") */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_dgemm ( + const qmckl_context context, + const char TransA, + const char TransB, + const int64_t m, + const int64_t n, + const int64_t k, + const double alpha, + const double* A, + const int64_t lda, + const double* B, + const int64_t ldb, + const double beta, + double* const C, + const int64_t ldc ); + +/* ~qmckl_adjugate~ */ + +/* Given a matrix $\mathbf{A}$, the adjugate matrix */ +/* $\text{adj}(\mathbf{A})$ is the transpose of the cofactors matrix */ +/* of $\mathbf{A}$. */ + +/* \[ */ +/* \mathbf{B} = \text{adj}(\mathbf{A}) = \text{det}(\mathbf{A}) \, \mathbf{A}^{-1} */ +/* \] */ + +/* See also: https://en.wikipedia.org/wiki/Adjugate_matrix */ + +/* #+NAME: qmckl_adjugate_args */ +/* | Variable | Type | In/Out | Description | */ +/* |-----------+-----------------+--------+------------------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~n~ | ~int64_t~ | in | Number of rows and columns of the input matrix | */ +/* | ~A~ | ~double[][lda]~ | in | Array containing the $n \times n$ matrix $A$ | */ +/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ +/* | ~B~ | ~double[][ldb]~ | out | Adjugate of $A$ | */ +/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ +/* | ~det_l~ | ~double~ | inout | determinant of $A$ | */ + +/* Requirements: */ + +/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ +/* - ~n > 0~ */ +/* - ~lda >= m~ */ +/* - ~A~ is allocated with at least $m \times m \times 8$ bytes */ +/* - ~ldb >= m~ */ +/* - ~B~ is allocated with at least $m \times m \times 8$ bytes */ + +/* #+CALL: generate_c_header(table=qmckl_adjugate_args,rettyp="qmckl_exit_code",fname="qmckl_adjugate") */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_adjugate ( + const qmckl_context context, + const int64_t n, + const double* A, + const int64_t lda, + double* const B, + const int64_t ldb, + double* det_l ); +/* /home/evgeny/qmckl/src/qmckl_numprec_func.h */ +/* Precision */ +/* ~qmckl_context_set_numprec_precision~ modifies the parameter for the */ +/* numerical precision in the context. */ + +/* # Header */ + +qmckl_exit_code qmckl_set_numprec_precision(const qmckl_context context, const int precision); + + + +/* ~qmckl_get_numprec_precision~ returns the value of the numerical precision in the context. */ + + +int32_t qmckl_get_numprec_precision(const qmckl_context context); + +/* Range */ + +/* ~qmckl_set_numprec_range~ modifies the parameter for the numerical */ +/* range in a given context. */ + +/* # Header */ + +qmckl_exit_code qmckl_set_numprec_range(const qmckl_context context, const int range); + + + +/* ~qmckl_get_numprec_range~ returns the value of the numerical range in the context. */ + + +int32_t qmckl_get_numprec_get_range(const qmckl_context context); + +/* Helper functions */ + +/* ~qmckl_get_numprec_epsilon~ returns $\epsilon = 2^{1-n}$ where ~n~ is the precision. */ +/* We need to remove the sign bit from the precision. */ + + +double qmckl_get_numprec_epsilon(const qmckl_context context); +/* /home/evgeny/qmckl/src/qmckl_point_func.h */ +/* Number of points */ + + +qmckl_exit_code qmckl_get_point_num (const qmckl_context context, int64_t* const num); + +/* Point coordinates */ + + +qmckl_exit_code qmckl_get_point(const qmckl_context context, + const char transp, + double* const coord, + const int64_t size_max); + +/* Initialization functions */ + +/* When the data is set in the context, if the arrays are large */ +/* enough, we overwrite the data contained in them. */ + +/* To set the data relative to the points in the context, one of the */ +/* following functions need to be called. */ + + +qmckl_exit_code qmckl_set_point (qmckl_context context, + const char transp, + const double* coord, + const int64_t num); +/* /home/evgeny/qmckl/src/qmckl_nucleus_func.h */ +qmckl_exit_code +qmckl_get_nucleus_num(const qmckl_context context, + int64_t* const num); + +qmckl_exit_code +qmckl_get_nucleus_charge(const qmckl_context context, + double* const charge, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_nucleus_rescale_factor(const qmckl_context context, + double* const rescale_factor_kappa); + +qmckl_exit_code +qmckl_get_nucleus_coord(const qmckl_context context, + const char transp, + double* const coord, + const int64_t size_max); + + + +/* When all the data relative to nuclei have been set, the following */ +/* function returns ~true~. */ + + +bool qmckl_nucleus_provided (const qmckl_context context); + + + +/* To set the data relative to the nuclei in the context, the */ +/* following functions need to be called. */ + + +qmckl_exit_code +qmckl_set_nucleus_num(qmckl_context context, + const int64_t num); + +qmckl_exit_code +qmckl_set_nucleus_charge(qmckl_context context, + const double* charge, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_nucleus_coord(qmckl_context context, + const char transp, + const double* coord, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_nucleus_rescale_factor(qmckl_context context, + const double kappa); + +/* Get */ + + +qmckl_exit_code +qmckl_get_nucleus_nn_distance(qmckl_context context, + double* distance, + const int64_t size_max); + +/* Get */ + + +qmckl_exit_code +qmckl_get_nucleus_nn_distance_rescaled(qmckl_context context, + double* distance_rescaled, + const int64_t size_max); + +/* Get */ + + +qmckl_exit_code qmckl_get_nucleus_repulsion(qmckl_context context, double* const energy); +/* /home/evgeny/qmckl/src/qmckl_electron_func.h */ +bool qmckl_electron_provided (const qmckl_context context); + +/* Number of electrons */ + + +qmckl_exit_code qmckl_get_electron_num (const qmckl_context context, int64_t* const num); +qmckl_exit_code qmckl_get_electron_up_num (const qmckl_context context, int64_t* const up_num); +qmckl_exit_code qmckl_get_electron_down_num (const qmckl_context context, int64_t* const down_num); + +/* Number of walkers */ + +/* A walker is a set of electron coordinates that are arguments of */ +/* the wave function. ~walk_num~ is the number of walkers. */ + + +qmckl_exit_code qmckl_get_electron_walk_num (const qmckl_context context, int64_t* const walk_num); + +/* Scaling factors Kappa */ + + +qmckl_exit_code qmckl_get_electron_rescale_factor_ee (const qmckl_context context, double* const rescale_factor_kappa_ee); +qmckl_exit_code qmckl_get_electron_rescale_factor_en (const qmckl_context context, double* const rescale_factor_kappa_en); + +/* Electron coordinates */ + +/* Returns the current electron coordinates. The pointer is assumed */ +/* to point on a memory block of size ~size_max~ \ge ~3 * elec_num * walk_num~. */ +/* The order of the indices is: */ + +/* | | Normal | Transposed | */ +/* |---------+--------------------------+--------------------------| */ +/* | C | ~[walk_num*elec_num][3]~ | ~[3][walk_num*elec_num]~ | */ +/* | Fortran | ~(3,walk_num*elec_num)~ | ~(walk_num*elec_num, 3)~ | */ + + + +qmckl_exit_code +qmckl_get_electron_coord (const qmckl_context context, + const char transp, + double* const coord, + const int64_t size_max); + +/* Initialization functions */ + +/* To set the data relative to the electrons in the context, the */ +/* following functions need to be called. When the data structure is */ +/* initialized, the internal ~coord_new~ and ~coord_old~ arrays are */ +/* both allocated. */ + + +qmckl_exit_code qmckl_set_electron_num (qmckl_context context, const int64_t up_num, const int64_t down_num); +qmckl_exit_code qmckl_set_electron_walk_num (qmckl_context context, const int64_t walk_num); +qmckl_exit_code qmckl_set_electron_coord (qmckl_context context, const char transp, const double* coord, const int64_t size_max); + +qmckl_exit_code qmckl_set_electron_rescale_factor_ee (qmckl_context context, const double kappa_ee); +qmckl_exit_code qmckl_set_electron_rescale_factor_en (qmckl_context context, const double kappa_en); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_ee_distance(qmckl_context context, double* const distance); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_ee_distance_rescaled(qmckl_context context, double* const distance_rescaled); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_ee_distance_rescaled_deriv_e(qmckl_context context, double* const distance_rescaled_deriv_e); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_ee_potential(qmckl_context context, double* const ee_pot); + + + +/* #+CALL: generate_c_header(table=qmckl_ee_potential_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_ee_potential ( + const qmckl_context context, + const int64_t elec_num, + const int64_t walk_num, + const double* ee_distance, + double* const ee_pot ); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_en_distance(qmckl_context context, double* distance); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_en_distance_rescaled(qmckl_context context, double* distance_rescaled); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_en_distance_rescaled_deriv_e(qmckl_context context, double* distance_rescaled_deriv_e); + +/* Get */ + + +qmckl_exit_code qmckl_get_electron_en_potential(qmckl_context context, double* const en_pot); + + + +/* #+CALL: generate_c_header(table=qmckl_en_potential_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_en_potential ( + const qmckl_context context, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* charge, + const double* en_distance, + double* const en_pot ); +/* /home/evgeny/qmckl/src/qmckl_distance_func.h */ +/* ~qmckl_distance_sq~ */ +/* :PROPERTIES: */ +/* :Name: qmckl_distance_sq */ +/* :CRetType: qmckl_exit_code */ +/* :FRetType: qmckl_exit_code */ +/* :END: */ + +/* ~qmckl_distance_sq~ computes the matrix of the squared distances */ +/* between all pairs of points in two sets, one point within each set: */ + +/* \[ */ +/* C_{ij} = \sum_{k=1}^3 (A_{k,i}-B_{k,j})^2 */ +/* \] */ + +/* #+NAME: qmckl_distance_sq_args */ +/* | Variable | Type | In/Out | Description | */ +/* |-----------+------------------+--------+-----------------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~transa~ | ~char~ | in | Array ~A~ is ~'N'~: Normal, ~'T'~: Transposed | */ +/* | ~transb~ | ~char~ | in | Array ~B~ is ~'N'~: Normal, ~'T'~: Transposed | */ +/* | ~m~ | ~int64_t~ | in | Number of points in the first set | */ +/* | ~n~ | ~int64_t~ | in | Number of points in the second set | */ +/* | ~A~ | ~double[][lda]~ | in | Array containing the $m \times 3$ matrix $A$ | */ +/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ +/* | ~B~ | ~double[][ldb]~ | in | Array containing the $n \times 3$ matrix $B$ | */ +/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ +/* | ~C~ | ~double[n][ldc]~ | out | Array containing the $m \times n$ matrix $C$ | */ +/* | ~ldc~ | ~int64_t~ | in | Leading dimension of array ~C~ | */ + +/* Requirements: */ + +/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ +/* - ~m > 0~ */ +/* - ~n > 0~ */ +/* - ~lda >= 3~ if ~transa == 'N'~ */ +/* - ~lda >= m~ if ~transa == 'T'~ */ +/* - ~ldb >= 3~ if ~transb == 'N'~ */ +/* - ~ldb >= n~ if ~transb == 'T'~ */ +/* - ~ldc >= m~ */ +/* - ~A~ is allocated with at least $3 \times m \times 8$ bytes */ +/* - ~B~ is allocated with at least $3 \times n \times 8$ bytes */ +/* - ~C~ is allocated with at least $m \times n \times 8$ bytes */ + +/* #+CALL: generate_c_header(table=qmckl_distance_sq_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_distance_sq ( + const qmckl_context context, + const char transa, + const char transb, + const int64_t m, + const int64_t n, + const double* A, + const int64_t lda, + const double* B, + const int64_t ldb, + double* const C, + const int64_t ldc ); + +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_distance_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_distance ( + const qmckl_context context, + const char transa, + const char transb, + const int64_t m, + const int64_t n, + const double* A, + const int64_t lda, + const double* B, + const int64_t ldb, + double* const C, + const int64_t ldc ); + +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_distance_rescaled_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_distance_rescaled ( + const qmckl_context context, + const char transa, + const char transb, + const int64_t m, + const int64_t n, + const double* A, + const int64_t lda, + const double* B, + const int64_t ldb, + double* const C, + const int64_t ldc, + const double rescale_factor_kappa ); + +/* ~qmckl_distance_rescaled_deriv_e~ */ +/* :PROPERTIES: */ +/* :Name: qmckl_distance_rescaled_deriv_e */ +/* :CRetType: qmckl_exit_code */ +/* :FRetType: qmckl_exit_code */ +/* :END: */ + +/* ~qmckl_distance_rescaled_deriv_e~ computes the matrix of the gradient and laplacian of the */ +/* rescaled distance with respect to the electron coordinates. The derivative is a rank 3 tensor. */ +/* The first dimension has a dimension of 4 of which the first three coordinates */ +/* contains the gradient vector and the last index is the laplacian. */ + + +/* \[ */ +/* C_{ij} = \left( 1 - \exp{-\kappa C_{ij}}\right)/\kappa */ +/* \] */ + +/* Here the gradient is defined as follows: */ + +/* \[ */ +/* \nabla (C_{ij}(\mathbf{r}_{ee})) = \left(\frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta x},\frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta y},\frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta z} \right) */ +/* \] */ +/* and the laplacian is defined as follows: */ + +/* \[ */ +/* \triangle (C_{ij}(r_{ee})) = \frac{\delta^2}{\delta x^2} + \frac{\delta^2}{\delta y^2} + \frac{\delta^2}{\delta z^2} */ +/* \] */ + +/* Using the above three formulae, the expression for the gradient and laplacian is */ +/* as follows: */ + +/* \[ */ +/* \frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta x} = \frac{|(x_i - x_j)|}{r_{ij}} (1 - \kappa R_{ij}) */ +/* \] */ + +/* \[ */ +/* \frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta y} = \frac{|(y_i - y_j)|}{r_{ij}} (1 - \kappa R_{ij}) */ +/* \] */ + +/* \[ */ +/* \frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta z} = \frac{|(z_i - z_j)|}{r_{ij}} (1 - \kappa R_{ij}) */ +/* \] */ + +/* \[ */ +/* \Delta(C_{ij}(r_{ee}) = \left[ \frac{2}{r_{ij}} - \kappa \right] (1-\kappa R_{ij}) */ +/* \] */ + +/* If the input array is normal (~'N'~), the xyz coordinates are in */ +/* the leading dimension: ~[n][3]~ in C and ~(3,n)~ in Fortran. */ + +/* #+NAME: qmckl_distance_rescaled_deriv_e_args */ +/* | Variable | Type | In/Out | Description | */ +/* |------------------------+---------------------+--------+-------------------------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~transa~ | ~char~ | in | Array ~A~ is ~'N'~: Normal, ~'T'~: Transposed | */ +/* | ~transb~ | ~char~ | in | Array ~B~ is ~'N'~: Normal, ~'T'~: Transposed | */ +/* | ~m~ | ~int64_t~ | in | Number of points in the first set | */ +/* | ~n~ | ~int64_t~ | in | Number of points in the second set | */ +/* | ~A~ | ~double[][lda]~ | in | Array containing the $m \times 3$ matrix $A$ | */ +/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ +/* | ~B~ | ~double[][ldb]~ | in | Array containing the $n \times 3$ matrix $B$ | */ +/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ +/* | ~C~ | ~double[4][n][ldc]~ | out | Array containing the $4 \times m \times n$ matrix $C$ | */ +/* | ~ldc~ | ~int64_t~ | in | Leading dimension of array ~C~ | */ +/* | ~rescale_factor_kappa~ | ~double~ | in | Factor for calculating rescaled distances derivatives | */ + +/* Requirements: */ + +/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ +/* - ~m > 0~ */ +/* - ~n > 0~ */ +/* - ~lda >= 3~ if ~transa == 'N'~ */ +/* - ~lda >= m~ if ~transa == 'T'~ */ +/* - ~ldb >= 3~ if ~transb == 'N'~ */ +/* - ~ldb >= n~ if ~transb == 'T'~ */ +/* - ~ldc >= m~ */ +/* - ~A~ is allocated with at least $3 \times m \times 8$ bytes */ +/* - ~B~ is allocated with at least $3 \times n \times 8$ bytes */ +/* - ~C~ is allocated with at least $4 \times m \times n \times 8$ bytes */ + +/* #+CALL: generate_c_header(table=qmckl_distance_rescaled_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_distance_rescaled_deriv_e ( + const qmckl_context context, + const char transa, + const char transb, + const int64_t m, + const int64_t n, + const double* A, + const int64_t lda, + const double* B, + const int64_t ldb, + double* const C, + const int64_t ldc, + const double rescale_factor_kappa ); +/* /home/evgeny/qmckl/src/qmckl_ao_func.h */ + + +/* To set the basis set, all the following functions need to be */ +/* called. */ + + +qmckl_exit_code +qmckl_set_ao_basis_type (qmckl_context context, + const char basis_type); + +qmckl_exit_code +qmckl_set_ao_basis_shell_num (qmckl_context context, + const int64_t shell_num); + +qmckl_exit_code +qmckl_set_ao_basis_prim_num (qmckl_context context, + const int64_t prim_num); + +qmckl_exit_code +qmckl_set_ao_basis_ao_num (qmckl_context context, + const int64_t ao_num); + +qmckl_exit_code +qmckl_set_ao_basis_nucleus_index (qmckl_context context, + const int64_t* nucleus_index, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_nucleus_shell_num (qmckl_context context, + const int64_t* nucleus_shell_num, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_shell_ang_mom (qmckl_context context, + const int32_t* shell_ang_mom, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_shell_prim_num (qmckl_context context, + const int64_t* shell_prim_num, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_shell_prim_index (qmckl_context context, + const int64_t* shell_prim_index, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_shell_factor (qmckl_context context, + const double* shell_factor, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_exponent (qmckl_context context, + const double* exponent, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_coefficient (qmckl_context context, + const double* coefficient, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_prim_factor (qmckl_context context, + const double* prim_factor, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_ao_factor (qmckl_context context, + const double* ao_factor, + const int64_t size_max); + +qmckl_exit_code +qmckl_set_ao_basis_cartesian (qmckl_context context, + const bool cartesian); + +/* C interface */ + + +qmckl_exit_code +qmckl_get_ao_basis_type (const qmckl_context context, + char* const basis_type); + +qmckl_exit_code +qmckl_get_ao_basis_shell_num (const qmckl_context context, + int64_t* const shell_num); + +qmckl_exit_code +qmckl_get_ao_basis_prim_num (const qmckl_context context, + int64_t* const prim_num); + +qmckl_exit_code +qmckl_get_ao_basis_nucleus_shell_num (const qmckl_context context, + int64_t* const nucleus_shell_num, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_nucleus_index (const qmckl_context context, + int64_t* const nucleus_index, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_shell_ang_mom (const qmckl_context context, + int32_t* const shell_ang_mom, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_shell_prim_num (const qmckl_context context, + int64_t* const shell_prim_num, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_shell_prim_index (const qmckl_context context, + int64_t* const shell_prim_index, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_shell_factor (const qmckl_context context, + double* const shell_factor, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_exponent (const qmckl_context context, + double* const exponent, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_coefficient (const qmckl_context context, + double* const coefficient, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_prim_factor (const qmckl_context context, + double* const prim_factor, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_ao_num (const qmckl_context context, + int64_t* const ao_num); + +qmckl_exit_code +qmckl_get_ao_basis_ao_factor (const qmckl_context context, + double* const ao_factor, + const int64_t size_max); + + + + +/* When all the data for the AOs have been provided, the following */ +/* function returns ~true~. */ + + +bool qmckl_ao_basis_provided (const qmckl_context context); + +/* Access functions */ + + +qmckl_exit_code +qmckl_get_ao_basis_primitive_vgl (qmckl_context context, + double* const primitive_vgl, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_shell_vgl (qmckl_context context, + double* const shell_vgl, + const int64_t size_max); + +qmckl_exit_code +qmckl_get_ao_basis_ao_vgl (qmckl_context context, + double* const ao_vgl, + const int64_t size_max); + + + +/* Uses the give array to compute the VGL. */ + + +qmckl_exit_code +qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, + double* const ao_vgl, + const int64_t size_max); + +qmckl_exit_code +qmckl_ao_gaussian_vgl(const qmckl_context context, + const double *X, + const double *R, + const int64_t *n, + const int64_t *A, + const double *VGL, + const int64_t ldv); + +/* Computation of primitives */ +/* :PROPERTIES: */ +/* :Name: qmckl_compute_ao_basis_primitive_gaussian_vgl */ +/* :CRetType: qmckl_exit_code */ +/* :FRetType: qmckl_exit_code */ +/* :END: */ + +/* #+NAME: qmckl_ao_basis_primitive_gaussian_vgl_args */ +/* | Variable | Type | In/Out | Description | */ +/* |----------------------+----------------------------------+--------+--------------------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~prim_num~ | ~int64_t~ | in | Number of primitives | */ +/* | ~point_num~ | ~int64_t~ | in | Number of points considered | */ +/* | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | */ +/* | ~nucleus_prim_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st primitive of each nucleus | */ +/* | ~coord~ | ~double[3][point_num]~ | in | Coordinates | */ +/* | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | */ +/* | ~expo~ | ~double[prim_num]~ | in | Exponents of the primitives | */ +/* | ~primitive_vgl~ | ~double[point_num][5][prim_num]~ | out | Value, gradients and Laplacian of the primitives | */ + +/* #+CALL: generate_c_header(table=qmckl_ao_basis_primitive_gaussian_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_basis_primitive_gaussian_vgl")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_ao_basis_primitive_gaussian_vgl ( + const qmckl_context context, + const int64_t prim_num, + const int64_t point_num, + const int64_t nucl_num, + const int64_t* nucleus_prim_index, + const double* coord, + const double* nucl_coord, + const double* expo, + double* const primitive_vgl ); + +/* Computation of shells */ +/* :PROPERTIES: */ +/* :Name: qmckl_compute_ao_basis_shell_gaussian_vgl */ +/* :CRetType: qmckl_exit_code */ +/* :FRetType: qmckl_exit_code */ +/* :END: */ + +/* #+NAME: qmckl_ao_basis_shell_gaussian_vgl_args */ +/* | Variable | Type | In/Out | Description | */ +/* |---------------------+-----------------------------------+--------+----------------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~prim_num~ | ~int64_t~ | in | Number of primitives | */ +/* | ~shell_num~ | ~int64_t~ | in | Number of shells | */ +/* | ~point_num~ | ~int64_t~ | in | Number of points | */ +/* | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | */ +/* | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells for each nucleus | */ +/* | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | */ +/* | ~nucleus_range~ | ~double[nucl_num]~ | in | Range of the nucleus | */ +/* | ~shell_prim_index~ | ~int64_t[shell_num]~ | in | Index of the 1st primitive of each shell | */ +/* | ~shell_prim_num~ | ~int64_t[shell_num]~ | in | Number of primitives per shell | */ +/* | ~coord~ | ~double[3][point_num]~ | in | Coordinates | */ +/* | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | */ +/* | ~expo~ | ~double[prim_num]~ | in | Exponents of the primitives | */ +/* | ~coef_normalized~ | ~double[prim_num]~ | in | Coefficients of the primitives | */ +/* | ~shell_vgl~ | ~double[point_num][5][shell_num]~ | out | Value, gradients and Laplacian of the shells | */ + +/* #+CALL: generate_c_header(table=qmckl_ao_basis_shell_gaussian_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_basis_shell_gaussian_vgl")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_ao_basis_shell_gaussian_vgl ( + const qmckl_context context, + const int64_t prim_num, + const int64_t shell_num, + const int64_t point_num, + const int64_t nucl_num, + const int64_t* nucleus_shell_num, + const int64_t* nucleus_index, + const double* nucleus_range, + const int64_t* shell_prim_index, + const int64_t* shell_prim_num, + const double* coord, + const double* nucl_coord, + const double* expo, + const double* coef_normalized, + double* const shell_vgl ); + +/* General functions for Powers of $x-X_i$ */ +/* :PROPERTIES: */ +/* :Name: qmckl_ao_power */ +/* :CRetType: qmckl_exit_code */ +/* :FRetType: qmckl_exit_code */ +/* :END: */ + +/* The ~qmckl_ao_power~ function computes all the powers of the ~n~ */ +/* input data up to the given maximum value given in input for each of */ +/* the $n$ points: */ + +/* \[ P_{ik} = X_i^k \] */ + +/* #+NAME: qmckl_ao_power_args */ +/* | Variable | Type | In/Out | Description | */ +/* |-----------+-----------------+--------+---------------------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~n~ | int64_t | in | Number of values | */ +/* | ~X~ | double[n] | in | Array containing the input values | */ +/* | ~LMAX~ | int32_t[n] | in | Array containing the maximum power for each value | */ +/* | ~P~ | double[n][ldp] | out | Array containing all the powers of ~X~ | */ +/* | ~ldp~ | int64_t | in | Leading dimension of array ~P~ | */ + +/* Requirements: */ + +/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ +/* - ~n~ > 0 */ +/* - ~X~ is allocated with at least $n \times 8$ bytes */ +/* - ~LMAX~ is allocated with at least $n \times 4$ bytes */ +/* - ~P~ is allocated with at least $n \times \max_i \text{LMAX}_i \times 8$ bytes */ +/* - ~LDP~ >= $\max_i$ ~LMAX[i]~ */ + +/* #+CALL: generate_c_header(table=qmckl_ao_power_args,rettyp=get_value("CRetType"),fname="qmckl_ao_power") */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_ao_power ( + const qmckl_context context, + const int64_t n, + const double* X, + const int32_t* LMAX, + double* const P, + const int64_t ldp ); + +/* General functions for Value, Gradient and Laplacian of a polynomial */ +/* :PROPERTIES: */ +/* :Name: qmckl_ao_polynomial_vgl */ +/* :CRetType: qmckl_exit_code */ +/* :FRetType: qmckl_exit_code */ +/* :END: */ + +/* A polynomial is centered on a nucleus $\mathbf{R}_i$ */ + +/* \[ */ +/* P_l(\mathbf{r},\mathbf{R}_i) = (x-X_i)^a (y-Y_i)^b (z-Z_i)^c */ +/* \] */ + +/* The gradients with respect to electron coordinates are */ + +/* \begin{eqnarray*} */ +/* \frac{\partial }{\partial x} P_l\left(\mathbf{r},\mathbf{R}_i \right) & */ +/* = & a (x-X_i)^{a-1} (y-Y_i)^b (z-Z_i)^c \\ */ +/* \frac{\partial }{\partial y} P_l\left(\mathbf{r},\mathbf{R}_i \right) & */ +/* = & b (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c \\ */ +/* \frac{\partial }{\partial z} P_l\left(\mathbf{r},\mathbf{R}_i \right) & */ +/* = & c (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1} \\ */ +/* \end{eqnarray*} */ + +/* and the Laplacian is */ + +/* \begin{eqnarray*} */ +/* \left( \frac{\partial }{\partial x^2} + */ +/* \frac{\partial }{\partial y^2} + */ +/* \frac{\partial }{\partial z^2} \right) P_l */ +/* \left(\mathbf{r},\mathbf{R}_i \right) & = & */ +/* a(a-1) (x-X_i)^{a-2} (y-Y_i)^b (z-Z_i)^c + \\ */ +/* && b(b-1) (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c + \\ */ +/* && c(c-1) (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1}. */ +/* \end{eqnarray*} */ + +/* ~qmckl_ao_polynomial_vgl~ computes the values, gradients and */ +/* Laplacians at a given point in space, of all polynomials with an */ +/* angular momentum up to ~lmax~. */ + +/* #+NAME: qmckl_ao_polynomial_vgl_args */ +/* | Variable | Type | In/Out | Description | */ +/* |-----------+-------------------+--------+------------------------------------------------------| */ +/* | ~context~ | ~qmckl_context~ | in | Global state | */ +/* | ~X~ | ~double[3]~ | in | Array containing the coordinates of the points | */ +/* | ~R~ | ~double[3]~ | in | Array containing the x,y,z coordinates of the center | */ +/* | ~lmax~ | ~int32_t~ | in | Maximum angular momentum | */ +/* | ~n~ | ~int64_t~ | inout | Number of computed polynomials | */ +/* | ~L~ | ~int32_t[n][ldl]~ | out | Contains a,b,c for all ~n~ results | */ +/* | ~ldl~ | ~int64_t~ | in | Leading dimension of ~L~ | */ +/* | ~VGL~ | ~double[n][ldv]~ | out | Value, gradients and Laplacian of the polynomials | */ +/* | ~ldv~ | ~int64_t~ | in | Leading dimension of array ~VGL~ | */ + +/* Requirements: */ + +/* - ~context~ \ne ~QMCKL_NULL_CONTEXT~ */ +/* - ~n~ > 0 */ +/* - ~lmax~ >= 0 */ +/* - ~ldl~ >= 3 */ +/* - ~ldv~ >= 5 */ +/* - ~X~ is allocated with at least $3 \times 8$ bytes */ +/* - ~R~ is allocated with at least $3 \times 8$ bytes */ +/* - ~n~ >= ~(lmax+1)(lmax+2)(lmax+3)/6~ */ +/* - ~L~ is allocated with at least $3 \times n \times 4$ bytes */ +/* - ~VGL~ is allocated with at least $5 \times n \times 8$ bytes */ +/* - On output, ~n~ should be equal to ~(lmax+1)(lmax+2)(lmax+3)/6~ */ +/* - On output, the powers are given in the following order (l=a+b+c): */ +/* - Increasing values of ~l~ */ +/* - Within a given value of ~l~, alphabetical order of the */ +/* string made by a*"x" + b*"y" + c*"z" (in Python notation). */ +/* For example, with a=0, b=2 and c=1 the string is "yyz" */ + +/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_ao_polynomial_vgl ( + const qmckl_context context, + const double* X, + const double* R, + const int32_t lmax, + int64_t* n, + int32_t* const L, + const int64_t ldl, + double* const VGL, + const int64_t ldv ); + + + +/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_vgl_doc") */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_ao_polynomial_vgl_doc ( + const qmckl_context context, + const double* X, + const double* R, + const int32_t lmax, + int64_t* n, + int32_t* const L, + const int64_t ldl, + double* const VGL, + const int64_t ldv ); + + + +/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl") */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_ao_polynomial_transp_vgl ( + const qmckl_context context, + const double* X, + const double* R, + const int32_t lmax, + int64_t* n, + int32_t* const L, + const int64_t ldl, + double* const VGL, + const int64_t ldv ); + + + +/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_doc") */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_ao_polynomial_transp_vgl_doc ( + const qmckl_context context, + const double* X, + const double* R, + const int32_t lmax, + int64_t* n, + int32_t* const L, + const int64_t ldl, + double* const VGL, + const int64_t ldv ); + + + +/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_hpc") */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_ao_polynomial_transp_vgl_hpc ( + const qmckl_context context, + const double* X, + const double* R, + const int32_t lmax, + int64_t* n, + int32_t* const L, + const int64_t ldl, + double* const VGL, + const int64_t ldv ); +/* /home/evgeny/qmckl/src/qmckl_mo_func.h */ +/* Access functions */ + + +qmckl_exit_code +qmckl_get_mo_basis_mo_num (const qmckl_context context, + int64_t* mo_num); + +qmckl_exit_code +qmckl_get_mo_basis_coefficient (const qmckl_context context, + double* const coefficient, + const int64_t size_max); + + + +/* When all the data for the AOs have been provided, the following */ +/* function returns ~true~. */ + + +bool qmckl_mo_basis_provided (const qmckl_context context); + +/* Initialization functions */ + +/* To set the basis set, all the following functions need to be */ +/* called. */ + + +qmckl_exit_code qmckl_set_mo_basis_mo_num (qmckl_context context, const int64_t mo_num); +qmckl_exit_code qmckl_set_mo_basis_coefficient (qmckl_context context, const double * coefficient); + +/* Get */ + + +qmckl_exit_code qmckl_get_mo_basis_vgl(qmckl_context context, double* const mo_vgl); + + + +/* #+CALL: generate_c_header(table=qmckl_mo_basis_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_mo_basis_vgl")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_mo_basis_vgl ( + const qmckl_context context, + const int64_t ao_num, + const int64_t mo_num, + const int64_t point_num, + const double* coef_normalized, + const double* ao_vgl, + double* const mo_vgl ); +/* /home/evgeny/qmckl/src/qmckl_determinant_func.h */ + + +/* When all the data for the slater determinants have been provided, the following */ +/* function returns ~true~. */ + + +bool qmckl_determinant_provided (const qmckl_context context); + +/* Initialization functions */ + +/* To set the basis set, all the following functions need to be */ +/* called. */ + + +qmckl_exit_code qmckl_set_determinant_type (const qmckl_context context, const char t); +qmckl_exit_code qmckl_set_determinant_walk_num (const qmckl_context context, const int64_t walk_num); +qmckl_exit_code qmckl_set_determinant_det_num_alpha (const qmckl_context context, const int64_t det_num_alpha); +qmckl_exit_code qmckl_set_determinant_det_num_beta (const qmckl_context context, const int64_t det_num_beta); +qmckl_exit_code qmckl_set_determinant_mo_index_alpha (const qmckl_context context, const int64_t* mo_index_alpha); +qmckl_exit_code qmckl_set_determinant_mo_index_beta (const qmckl_context context, const int64_t* mo_index_beta); + +/* Get */ + + +qmckl_exit_code qmckl_get_det_vgl_alpha(qmckl_context context, double* const det_vgl_alpha); +qmckl_exit_code qmckl_get_det_vgl_beta(qmckl_context context, double* const det_vgl_beta); + + + +/* #+CALL: generate_c_header(table=qmckl_compute_det_vgl_alpha_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl_alpha")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_det_vgl_alpha ( + const qmckl_context context, + const int64_t det_num_alpha, + const int64_t walk_num, + const int64_t alpha_num, + const int64_t beta_num, + const int64_t elec_num, + const int64_t* mo_index_alpha, + const int64_t mo_num, + const double* mo_vgl, + double* const det_vgl_alpha ); + + + +/* #+CALL: generate_c_header(table=qmckl_compute_det_vgl_beta_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl_beta")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_det_vgl_beta ( + const qmckl_context context, + const int64_t det_num_beta, + const int64_t walk_num, + const int64_t alpha_num, + const int64_t beta_num, + const int64_t elec_num, + const int64_t* mo_index_beta, + const int64_t mo_num, + const double* mo_vgl, + double* const det_vgl_beta ); + +/* Get */ + + +qmckl_exit_code qmckl_get_det_inv_matrix_alpha(qmckl_context context, double* const det_inv_matrix_alpha); +qmckl_exit_code qmckl_get_det_inv_matrix_beta(qmckl_context context, double* const det_inv_matrix_beta); +qmckl_exit_code qmckl_get_det_adj_matrix_alpha(qmckl_context context, double* const det_adj_matrix_alpha); +qmckl_exit_code qmckl_get_det_adj_matrix_beta(qmckl_context context, double* const det_adj_matrix_beta); +qmckl_exit_code qmckl_get_det_alpha(qmckl_context context, double* const det_adj_matrix_alpha); +qmckl_exit_code qmckl_get_det_beta(qmckl_context context, double* const det_adj_matrix_beta); + + + +/* #+CALL: generate_c_header(table=qmckl_det_inv_matrix_alpha_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_inv_matrix_alpha")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_det_inv_matrix_alpha ( + const qmckl_context context, + const int64_t det_num_alpha, + const int64_t walk_num, + const int64_t alpha_num, + const double* det_vgl_alpha, + double* const det_value_alpha, + double* const det_adj_matrix_alpha, + double* const det_inv_matrix_alpha ); + + + +/* #+CALL: generate_c_header(table=qmckl_det_inv_matrix_beta_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_inv_matrix_beta")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_det_inv_matrix_beta ( + const qmckl_context context, + const int64_t det_num_beta, + const int64_t walk_num, + const int64_t beta_num, + const double* det_vgl_beta, + double* const det_value_beta, + double* const det_adj_matrix_beta, + double* const det_inv_matrix_beta ); +/* /home/evgeny/qmckl/src/qmckl_sherman_morrison_woodbury_func.h */ +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_sherman_morrison_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_sherman_morrison( + const qmckl_context context, + const uint64_t LDS, + const uint64_t Dim, + const uint64_t N_updates, + const double* Updates, + const uint64_t* Updates_index, + const double breakdown, + double* Slater_inv, + double* determinant); + +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_woodbury_2_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_woodbury_2( + const qmckl_context context, + const uint64_t LDS, + const uint64_t Dim, + const double* Updates, + const uint64_t* Updates_index, + const double breakdown, + double* Slater_inv, + double* determinant); + +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_woodbury_3_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_woodbury_3( + const qmckl_context context, + const uint64_t LDS, + const uint64_t Dim, + const double* Updates, + const uint64_t* Updates_index, + const double breakdown, + double* Slater_inv, +double* determinant); + +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_sherman_morrison_splitting_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_sherman_morrison_splitting( + const qmckl_context context, + const uint64_t LDS, + const uint64_t Dim, + const uint64_t N_updates, + const double* Updates, + const uint64_t* Updates_index, + const double breakdown, + double* Slater_inv, + double* determinant); + +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_sherman_morrison_smw32s_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_sherman_morrison_smw32s( + const qmckl_context context, + const uint64_t LDS, + const uint64_t Dim, + const uint64_t N_updates, + const double* Updates, + const uint64_t* Updates_index, + const double breakdown, + double* Slater_inv, + double* determinant); + +/* C header */ + +/* #+CALL: generate_c_header(table=qmckl_slagel_splitting_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_slagel_splitting ( + const uint64_t LDS, + const uint64_t Dim, + const uint64_t N_updates, + const double* Updates, + const uint64_t* Updates_index, + const double breakdown, + double* Slater_inv, + double* later_updates, + uint64_t* later_index, + uint64_t* later, + double* determinant); +/* /home/evgeny/qmckl/src/qmckl_jastrow_func.h */ + + + +/* The ~uninitialized~ integer contains one bit set to one for each */ +/* initialization function which has not been called. It becomes equal */ +/* to zero after all initialization functions have been called. The */ +/* struct is then initialized and ~provided == true~. */ +/* Some values are initialized by default, and are not concerned by */ +/* this mechanism. */ + + +qmckl_exit_code qmckl_init_jastrow(qmckl_context context); + +/* Access functions */ + + +qmckl_exit_code qmckl_get_jastrow_aord_num (qmckl_context context, int64_t* const aord_num); +qmckl_exit_code qmckl_get_jastrow_bord_num (qmckl_context context, int64_t* const bord_num); +qmckl_exit_code qmckl_get_jastrow_cord_num (qmckl_context context, int64_t* const bord_num); +qmckl_exit_code qmckl_get_jastrow_type_nucl_num (qmckl_context context, int64_t* const type_nucl_num); +qmckl_exit_code qmckl_get_jastrow_type_nucl_vector (qmckl_context context, int64_t* const type_nucl_num, const int64_t size_max); +qmckl_exit_code qmckl_get_jastrow_aord_vector (qmckl_context context, double * const aord_vector, const int64_t size_max); +qmckl_exit_code qmckl_get_jastrow_bord_vector (qmckl_context context, double * const bord_vector, const int64_t size_max); +qmckl_exit_code qmckl_get_jastrow_cord_vector (qmckl_context context, double * const cord_vector, const int64_t size_max); + + + +/* Along with these core functions, calculation of the jastrow factor */ +/* requires the following additional information to be set: */ + + +/* When all the data for the AOs have been provided, the following */ +/* function returns ~true~. */ + + +bool qmckl_jastrow_provided (const qmckl_context context); + +/* Initialization functions */ + +/* To prepare for the Jastrow and its derivative, all the following functions need to be */ +/* called. */ + + +qmckl_exit_code qmckl_set_jastrow_ord_num (qmckl_context context, const int64_t aord_num, const int64_t bord_num, const int64_t cord_num); +qmckl_exit_code qmckl_set_jastrow_type_nucl_num (qmckl_context context, const int64_t type_nucl_num); +qmckl_exit_code qmckl_set_jastrow_type_nucl_vector (qmckl_context context, const int64_t* type_nucl_vector, const int64_t nucl_num); +qmckl_exit_code qmckl_set_jastrow_aord_vector (qmckl_context context, const double * aord_vector, const int64_t size_max); +qmckl_exit_code qmckl_set_jastrow_bord_vector (qmckl_context context, const double * bord_vector, const int64_t size_max); +qmckl_exit_code qmckl_set_jastrow_cord_vector (qmckl_context context, const double * cord_vector, const int64_t size_max); + +/* Get */ + +qmckl_exit_code +qmckl_get_jastrow_asymp_jasb(qmckl_context context, + double* const asymp_jasb, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_asymp_jasb_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_asymp_jasb ( + const qmckl_context context, + const int64_t bord_num, + const double* bord_vector, + const double rescale_factor_kappa_ee, + double* const asymp_jasb ); + +/* Get */ + +qmckl_exit_code +qmckl_get_jastrow_factor_ee(qmckl_context context, + double* const factor_ee, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_ee ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* asymp_jasb, + double* const factor_ee ); + +/* Get */ + +qmckl_exit_code +qmckl_get_jastrow_factor_ee_deriv_e(qmckl_context context, + double* const factor_ee_deriv_e, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_ee_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t up_num, + const int64_t bord_num, + const double* bord_vector, + const double* ee_distance_rescaled, + const double* ee_distance_rescaled_deriv_e, + const double* asymp_jasb, + double* const factor_ee_deriv_e ); + +/* Get */ + +qmckl_exit_code +qmckl_get_jastrow_factor_en(qmckl_context context, + double* const factor_en, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_en ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + double* const factor_en ); + +/* Get */ + +qmckl_exit_code +qmckl_get_jastrow_factor_en_deriv_e(qmckl_context context, + double* const factor_en_deriv_e, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_en_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_en_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const int64_t aord_num, + const double* aord_vector, + const double* en_distance_rescaled, + const double* en_distance_rescaled_deriv_e, + double* const factor_en_deriv_e ); + +/* Get */ + + +qmckl_exit_code +qmckl_get_jastrow_een_rescaled_e(qmckl_context context, + double* const distance_rescaled, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_een_rescaled_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* ee_distance, + double* const een_rescaled_e ); + +/* Get */ + + +qmckl_exit_code +qmckl_get_jastrow_een_rescaled_e_deriv_e(qmckl_context context, + double* const distance_rescaled, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_een_rescaled_e_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t cord_num, + const double rescale_factor_kappa_ee, + const double* coord_new, + const double* ee_distance, + const double* een_rescaled_e, + double* const een_rescaled_e_deriv_e ); + +/* Get */ + + +qmckl_exit_code +qmckl_get_jastrow_een_rescaled_n(qmckl_context context, + double* const distance_rescaled, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_een_rescaled_n ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* en_distance, + double* const een_rescaled_n ); + +/* Get */ + + +qmckl_exit_code +qmckl_get_jastrow_een_rescaled_n_deriv_e(qmckl_context context, + double* const distance_rescaled, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_een_rescaled_n_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const double rescale_factor_kappa_en, + const double* coord_new, + const double* coord, + const double* en_distance, + const double* een_rescaled_n, + double* const een_rescaled_n_deriv_e ); + +/* Get */ + + +qmckl_exit_code qmckl_get_jastrow_dim_cord_vect(qmckl_context context, int64_t* const dim_cord_vect); +qmckl_exit_code qmckl_get_jastrow_cord_vect_full(qmckl_context context, double* const cord_vect_full); +qmckl_exit_code qmckl_get_jastrow_lkpm_combined_index(qmckl_context context, int64_t* const lkpm_combined_index); +qmckl_exit_code qmckl_get_jastrow_tmp_c(qmckl_context context, double* const tmp_c); +qmckl_exit_code qmckl_get_jastrow_dtmp_c(qmckl_context context, double* const dtmp_c); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_dim_cord_vect ( + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_cord_vect ); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_cord_vect_full ( + const qmckl_context context, + const int64_t nucl_num, + const int64_t dim_cord_vect, + const int64_t type_nucl_num, + const int64_t* type_nucl_vector, + const double* cord_vector, + double* const cord_vect_full ); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_lkpm_combined_index ( + const qmckl_context context, + const int64_t cord_num, + const int64_t dim_cord_vect, + int64_t* const lpkm_combined_index ); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_tmp_c ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const tmp_c ); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_dtmp_c_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_dtmp_c ( + const qmckl_context context, + const int64_t cord_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t walk_num, + const double* een_rescaled_e_deriv_e, + const double* een_rescaled_n, + double* const dtmp_c ); + +/* Get */ + +qmckl_exit_code +qmckl_get_jastrow_factor_een(qmckl_context context, + double* const factor_een, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_een_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_een_naive ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const int64_t dim_cord_vect, + const double* cord_vect_full, + const int64_t* lkpm_combined_index, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const factor_een ); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_een_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_een ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const int64_t dim_cord_vect, + const double* cord_vect_full, + const int64_t* lkpm_combined_index, + const double* een_rescaled_e, + const double* een_rescaled_n, + double* const factor_een ); + +/* Get */ + +qmckl_exit_code +qmckl_get_jastrow_factor_een_deriv_e(qmckl_context context, + double* const factor_een_deriv_e, + const int64_t size_max); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_een_deriv_e_naive ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const int64_t dim_cord_vect, + const double* cord_vect_full, + const int64_t* lkpm_combined_index, + const double* een_rescaled_e, + const double* een_rescaled_n, + const double* een_rescaled_e_deriv_e, + const double* een_rescaled_n_deriv_e, + double* const factor_een_deriv_e ); + + + +/* #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_factor_een_deriv_e ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const int64_t cord_num, + const int64_t dim_cord_vect, + const double* cord_vect_full, + const int64_t* lkpm_combined_index, + const double* tmp_c, + const double* dtmp_c, + const double* een_rescaled_n, + const double* een_rescaled_n_deriv_e, + double* const factor_een_deriv_e ); +/* /home/evgeny/qmckl/src/qmckl_local_energy_func.h */ +/* Get */ + + +qmckl_exit_code qmckl_get_kinetic_energy(qmckl_context context, double* const kinetic_energy); + + + +/* #+CALL: generate_c_header(table=qmckl_compute_kinetic_energy_args,rettyp=get_value("CRetType"),fname="qmckl_compute_kinetic_energy")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_kinetic_energy ( + const qmckl_context context, + const int64_t walk_num, + const int64_t det_num_alpha, + const int64_t det_num_beta, + const int64_t alpha_num, + const int64_t beta_num, + const int64_t elec_num, + const int64_t* mo_index_alpha, + const int64_t* mo_index_beta, + const int64_t mo_num, + const double* mo_vgl, + const double* det_value_alpha, + const double* det_value_beta, + const double* det_inv_matrix_alpha, + const double* det_inv_matrix_beta, + double* const e_kin ); + +/* Get */ + + +qmckl_exit_code qmckl_get_potential_energy(qmckl_context context, double* const potential_energy); + + + +/* #+CALL: generate_c_header(table=qmckl_compute_potential_energy_args,rettyp=get_value("CRetType"),fname="qmckl_compute_potential_energy")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_potential_energy ( + const qmckl_context context, + const int64_t walk_num, + const int64_t elec_num, + const int64_t nucl_num, + const double* ee_pot, + const double* en_pot, + const double repulsion, + double* const e_pot ); + +/* Get */ + + +qmckl_exit_code qmckl_get_local_energy(qmckl_context context, double* const local_energy); + + + +/* #+CALL: generate_c_header(table=qmckl_compute_local_energy_args,rettyp=get_value("CRetType"),fname="qmckl_compute_local_energy")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_local_energy ( + const qmckl_context context, + const int64_t walk_num, + const double* e_kin, + const double* e_pot, + double* const e_local ); + +/* Get */ + + +qmckl_exit_code qmckl_get_drift_vector(qmckl_context context, double* const drift_vector); + + + +/* #+CALL: generate_c_header(table=qmckl_compute_drift_vector_args,rettyp=get_value("CRetType"),fname="qmckl_compute_drift_vector")) */ + +/* #+RESULTS: */ + +qmckl_exit_code qmckl_compute_drift_vector ( + const qmckl_context context, + const int64_t walk_num, + const int64_t det_num_alpha, + const int64_t det_num_beta, + const int64_t alpha_num, + const int64_t beta_num, + const int64_t elec_num, + const int64_t* mo_index_alpha, + const int64_t* mo_index_beta, + const int64_t mo_num, + const double* mo_vgl, + const double* det_inv_matrix_alpha, + const double* det_inv_matrix_beta, + double* const r_drift ); +/* /home/evgeny/qmckl/src/qmckl_trexio_func.h */ +qmckl_exit_code +qmckl_trexio_read(const qmckl_context context, + const char* file_name, + const int64_t size_max); +#ifdef __cplusplus +} +#endif +#endif From faecae6aa8d586a222e4eea9b6ef904236869e30 Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 16:14:18 +0200 Subject: [PATCH 069/111] First working prototype (manual installation) --- python/README.md | 22 + python/build_pyqmckl.sh | 31 +- python/export_files.sh | 11 - python/export_files_with_src_prefix.sh | 11 - process.py => python/process.py | 10 +- python/qmckl.h | 2093 ------------------------ 6 files changed, 51 insertions(+), 2127 deletions(-) create mode 100644 python/README.md delete mode 100644 python/export_files.sh delete mode 100644 python/export_files_with_src_prefix.sh rename process.py => python/process.py (97%) delete mode 100644 python/qmckl.h diff --git a/python/README.md b/python/README.md new file mode 100644 index 0000000..006eb8d --- /dev/null +++ b/python/README.md @@ -0,0 +1,22 @@ + +# Python API of the QMCkl library + +## Requirements + +- `numpy` +- `SWIG` (>= 4.0) + +## Manual installation + +1. Install the QMCkl as usual +2. Get the latest `qmckl.h` file +3. `python process.py` to generate `pyqmckl_include.i` list of SWIG patterns +4. `swig -python -py3 -o pyqmckl_wrap.c pyqmckl.i` to generate the SWIG wrapper code in C and `pyqmckl.py` module in Python. +**Note:** for this to work three files have to be present in the working directory: `pyqmckl.i`, `pyqmckl_include.i` and `numpy.i`. +5. ` -I/usr/include/python3.8 -c -fPIC pyqmckl_wrap.c` to compile the wrapper code into an object file using the `` (replace with your C compiler, e.g. `gcc`) on your machine +6. ` -shared pyqmckl_wrap.o -lqmckl -o _pyqmckl.so` to produce the final C extension (this requires the `qmckl` library to be installed and present in the linking paths together with all its dependencies like `trexio`) +7. Put the produced `_pyqmckl.so` and `pyqmckl.py` files in the working directory and then run `import pyqmckl` + +## Python-ic installation + + diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh index 13d934f..0dbd8fe 100755 --- a/python/build_pyqmckl.sh +++ b/python/build_pyqmckl.sh @@ -1,18 +1,37 @@ +#!/bin/bash set -e set -x -source export_files.sh +# check if qmckl header exists +if [[ ! -f 'qmckl.h' ]]; then + echo "qmckl.h NOT FOUND" + exit 1 +fi -cp qmckl.h pyqmckl.i numpy.i src/ +# process the qmckl header file to get patterns for SWIG +python process.py -cd src/ +# check if SWIG files exist +SWIG_LIST='pyqmckl.i pyqmckl_include.i numpy.i' +for file in $SWIG_LIST; do + if [[ ! -f $file ]]; then + echo "$file NOT FOUND" + exit 1 + fi +done +# run SWIG interface file to produce the Python wrappers swig -python -py3 -o pyqmckl_wrap.c pyqmckl.i -gcc -c -fPIC -I/usr/include/python3.8 ${C_FILES} pyqmckl_wrap.c -ltrexio +# compile the wrapper code +cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 pyqmckl_wrap.c -o pyqmckl_wrap.o -gfortran -c -fPIC -I/usr/include/python3.8 ${F_FILES} +# link against the previously installed QMCkl library (as detected by pkg-config) +cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _pyqmckl.so -gcc -shared ${C_O_FILES} pyqmckl_wrap.o -o _pyqmckl.so +# test +cp _pyqmckl.so pyqmckl.py -- test/ +cd test +python test_api.py diff --git a/python/export_files.sh b/python/export_files.sh deleted file mode 100644 index e9d26f3..0000000 --- a/python/export_files.sh +++ /dev/null @@ -1,11 +0,0 @@ - -export C_FILES="qmckl_electron.c qmckl_nucleus.c qmckl_determinant.c qmckl_error.c qmckl_verificarlo.c qmckl_jastrow.c qmckl_sherman_morrison_woodbury.c qmckl_trexio.c qmckl_numprec.c qmckl_context.c qmckl_mo.c qmckl_blas.c qmckl_memory.c qmckl_local_energy.c qmckl_point.c qmckl_ao.c" -export F_FILES="qmckl_electron_f.F90 qmckl_distance_f.F90 qmckl_nucleus_f.F90 qmckl_determinant_f.F90 qmckl_verificarlo_f.F90 qmckl_jastrow_f.F90 qmckl_mo_f.F90 qmckl_blas_f.F90 qmckl_local_energy_f.F90 qmckl_ao_f.F90" -export C_O_FILES="qmckl_electron.o qmckl_nucleus.o qmckl_determinant.o qmckl_error.o qmckl_verificarlo.o qmckl_jastrow.o qmckl_sherman_morrison_woodbury.o qmckl_trexio.o qmckl_numprec.o qmckl_context.o qmckl_mo.o qmckl_blas.o qmckl_memory.o qmckl_local_energy.o qmckl_point.o qmckl_ao.o" -export FH_FUNC_FILES="qmckl_electron_fh_func.F90 qmckl_distance_fh_func.F90 qmckl_nucleus_fh_func.F90 qmckl_error_fh_func.F90 qmckl_sherman_morrison_woodbury_fh_func.F90 qmckl_trexio_fh_func.F90 qmckl_numprec_fh_func.F90 qmckl_context_fh_func.F90 qmckl_mo_fh_func.F90 qmckl_blas_fh_func.F90 qmckl_point_fh_func.F90 qmckl_ao_fh_func.F90" -export FH_TYPE_FILES="qmckl_error_fh_type.F90 qmckl_context_fh_type.F90" -export H_FUNC_FILES="qmckl_electron_func.h qmckl_distance_func.h qmckl_nucleus_func.h qmckl_determinant_func.h qmckl_error_func.h qmckl_jastrow_func.h qmckl_sherman_morrison_woodbury_func.h qmckl_trexio_func.h qmckl_numprec_func.h qmckl_context_func.h qmckl_mo_func.h qmckl_blas_func.h qmckl_local_energy_func.h qmckl_point_func.h qmckl_ao_func.h" -export H_TYPE_FILES="qmckl_error_type.h qmckl_numprec_type.h qmckl_context_type.h" -export H_PRIVATE_FUNC_FILES="qmckl_electron_private_func.h qmckl_nucleus_private_func.h qmckl_determinant_private_func.h qmckl_error_private_func.h qmckl_verificarlo_private_func.h qmckl_jastrow_private_func.h qmckl_mo_private_func.h qmckl_blas_private_func.h qmckl_memory_private_func.h qmckl_local_energy_private_func.h qmckl_point_private_func.h qmckl_ao_private_func.h" -export H_PRIVATE_TYPE_FILES="qmckl_electron_private_type.h qmckl_nucleus_private_type.h qmckl_determinant_private_type.h qmckl_error_private_type.h qmckl_jastrow_private_type.h qmckl_numprec_private_type.h qmckl_context_private_type.h qmckl_mo_private_type.h qmckl_blas_private_type.h qmckl_memory_private_type.h qmckl_local_energy_private_type.h qmckl_point_private_type.h qmckl_ao_private_type.h" - diff --git a/python/export_files_with_src_prefix.sh b/python/export_files_with_src_prefix.sh deleted file mode 100644 index 7073cf6..0000000 --- a/python/export_files_with_src_prefix.sh +++ /dev/null @@ -1,11 +0,0 @@ - -export C_FILES="src/qmckl_electron.c src/qmckl_nucleus.c src/qmckl_determinant.c src/qmckl_error.c src/qmckl_verificarlo.c src/qmckl_jastrow.c src/qmckl_sherman_morrison_woodbury.c src/qmckl_trexio.c src/qmckl_numprec.c src/qmckl_context.c src/qmckl_mo.c src/qmckl_blas.c src/qmckl_memory.c src/qmckl_local_energy.c src/qmckl_point.c src/qmckl_ao.c" -export F_FILES="src/qmckl_electron_f.F90 src/qmckl_distance_f.F90 src/qmckl_nucleus_f.F90 src/qmckl_determinant_f.F90 src/qmckl_verificarlo_f.F90 src/qmckl_jastrow_f.F90 src/qmckl_mo_f.F90 src/qmckl_blas_f.F90 src/qmckl_local_energy_f.F90 src/qmckl_ao_f.F90" -export C_O_FILES="src/qmckl_electron.o src/qmckl_nucleus.o src/qmckl_determinant.o src/qmckl_error.o src/qmckl_verificarlo.o src/qmckl_jastrow.o src/qmckl_sherman_morrison_woodbury.o src/qmckl_trexio.o src/qmckl_numprec.o src/qmckl_context.o src/qmckl_mo.o src/qmckl_blas.o src/qmckl_memory.o src/qmckl_local_energy.o src/qmckl_point.o src/qmckl_ao.o" -export FH_FUNC_FILES="src/qmckl_electron_fh_func.F90 src/qmckl_distance_fh_func.F90 src/qmckl_nucleus_fh_func.F90 src/qmckl_error_fh_func.F90 src/qmckl_sherman_morrison_woodbury_fh_func.F90 src/qmckl_trexio_fh_func.F90 src/qmckl_numprec_fh_func.F90 src/qmckl_context_fh_func.F90 src/qmckl_mo_fh_func.F90 src/qmckl_blas_fh_func.F90 src/qmckl_point_fh_func.F90 src/qmckl_ao_fh_func.F90" -export FH_TYPE_FILES="src/qmckl_error_fh_type.F90 src/qmckl_context_fh_type.F90" -export H_FUNC_FILES="src/qmckl_electron_func.h src/qmckl_distance_func.h src/qmckl_nucleus_func.h src/qmckl_determinant_func.h src/qmckl_error_func.h src/qmckl_jastrow_func.h src/qmckl_sherman_morrison_woodbury_func.h src/qmckl_trexio_func.h src/qmckl_numprec_func.h src/qmckl_context_func.h src/qmckl_mo_func.h src/qmckl_blas_func.h src/qmckl_local_energy_func.h src/qmckl_point_func.h src/qmckl_ao_func.h" -export H_TYPE_FILES="src/qmckl_error_type.h src/qmckl_numprec_type.h src/qmckl_context_type.h" -export H_PRIVATE_FUNC_FILES="src/qmckl_electron_private_func.h src/qmckl_nucleus_private_func.h src/qmckl_determinant_private_func.h src/qmckl_error_private_func.h src/qmckl_verificarlo_private_func.h src/qmckl_jastrow_private_func.h src/qmckl_mo_private_func.h src/qmckl_blas_private_func.h src/qmckl_memory_private_func.h src/qmckl_local_energy_private_func.h src/qmckl_point_private_func.h src/qmckl_ao_private_func.h" -export H_PRIVATE_TYPE_FILES="src/qmckl_electron_private_type.h src/qmckl_nucleus_private_type.h src/qmckl_determinant_private_type.h src/qmckl_error_private_type.h src/qmckl_jastrow_private_type.h src/qmckl_numprec_private_type.h src/qmckl_context_private_type.h src/qmckl_mo_private_type.h src/qmckl_blas_private_type.h src/qmckl_memory_private_type.h src/qmckl_local_energy_private_type.h src/qmckl_point_private_type.h src/qmckl_ao_private_type.h" - diff --git a/process.py b/python/process.py similarity index 97% rename from process.py rename to python/process.py index c03882b..c7f3fac 100644 --- a/process.py +++ b/python/process.py @@ -13,7 +13,7 @@ numbers = {} qmckl_public_api = [] -with open("include/qmckl.h", 'r') as f_in: +with open("qmckl.h", 'r') as f_in: for line in f_in: if get_name: @@ -103,10 +103,8 @@ with open("include/qmckl.h", 'r') as f_in: #if 'num' in line and 'get' in func_name and not 'qmckl_get' in line and collect: if 'get' in func_name and not 'qmckl_get' in line and collect and ';' in line: - - print(func_name) - print(line) - + #print(func_name) + #print(line) pattern = line.replace(';','').replace(')','').strip() datatype = pattern.replace('const','').replace('*','').split()[0] @@ -143,7 +141,7 @@ for k,v in numbers.items(): print(v) -with open("python/pyqmckl_include.i", 'w') as f_out: +with open("pyqmckl_include.i", 'w') as f_out: swig_type = '' for v in numbers.values(): diff --git a/python/qmckl.h b/python/qmckl.h deleted file mode 100644 index e17c267..0000000 --- a/python/qmckl.h +++ /dev/null @@ -1,2093 +0,0 @@ -/* - * ------------------------------------------ - * QMCkl - Quantum Monte Carlo kernel library - * ------------------------------------------ - * - * Documentation : https://trex-coe.github.io/qmckl - * Issues : https://github.com/trex-coe/qmckl/issues - * - * BSD 3-Clause License - * - * Copyright (c) 2020, TREX Center of Excellence - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * - * - */ - -#ifndef __QMCKL_H__ -#define __QMCKL_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -/* /home/evgeny/qmckl/src/qmckl_context_type.h */ -/* Context handling */ - -/* The context variable is a handle for the state of the library, */ -/* and is stored in a data structure which can't be seen outside of */ -/* the library. To simplify compatibility with other languages, the */ -/* pointer to the internal data structure is converted into a 64-bit */ -/* signed integer, defined in the ~qmckl_context~ type. */ -/* A value of ~QMCKL_NULL_CONTEXT~ for the context is equivalent to a */ -/* ~NULL~ pointer. */ - -/* #+NAME: qmckl_context */ - -typedef int64_t qmckl_context ; -#define QMCKL_NULL_CONTEXT (qmckl_context) 0 -/* /home/evgeny/qmckl/src/qmckl_error_type.h */ -/* - */ -/* :PROPERTIES: */ -/* :UNNUMBERED: t */ -/* :END: */ - -/* The library should never make the calling programs abort, nor */ -/* perform any input/output operations. This decision has to be taken */ -/* by the developer of the code calling the library. */ - -/* All the functions return with an exit code, defined as */ -/* #+NAME: type-exit-code */ - -typedef int32_t qmckl_exit_code; - - - -/* #+RESULTS: */ -/* :results: */ - -#define QMCKL_SUCCESS ((qmckl_exit_code) 0) -#define QMCKL_INVALID_ARG_1 ((qmckl_exit_code) 1) -#define QMCKL_INVALID_ARG_2 ((qmckl_exit_code) 2) -#define QMCKL_INVALID_ARG_3 ((qmckl_exit_code) 3) -#define QMCKL_INVALID_ARG_4 ((qmckl_exit_code) 4) -#define QMCKL_INVALID_ARG_5 ((qmckl_exit_code) 5) -#define QMCKL_INVALID_ARG_6 ((qmckl_exit_code) 6) -#define QMCKL_INVALID_ARG_7 ((qmckl_exit_code) 7) -#define QMCKL_INVALID_ARG_8 ((qmckl_exit_code) 8) -#define QMCKL_INVALID_ARG_9 ((qmckl_exit_code) 9) -#define QMCKL_INVALID_ARG_10 ((qmckl_exit_code) 10) -#define QMCKL_INVALID_ARG_11 ((qmckl_exit_code) 11) -#define QMCKL_INVALID_ARG_12 ((qmckl_exit_code) 12) -#define QMCKL_INVALID_ARG_13 ((qmckl_exit_code) 13) -#define QMCKL_INVALID_ARG_14 ((qmckl_exit_code) 14) -#define QMCKL_INVALID_ARG_15 ((qmckl_exit_code) 15) -#define QMCKL_INVALID_ARG_16 ((qmckl_exit_code) 16) -#define QMCKL_INVALID_ARG_17 ((qmckl_exit_code) 17) -#define QMCKL_INVALID_ARG_18 ((qmckl_exit_code) 18) -#define QMCKL_INVALID_ARG_19 ((qmckl_exit_code) 19) -#define QMCKL_INVALID_ARG_20 ((qmckl_exit_code) 20) -#define QMCKL_FAILURE ((qmckl_exit_code) 101) -#define QMCKL_ERRNO ((qmckl_exit_code) 102) -#define QMCKL_INVALID_CONTEXT ((qmckl_exit_code) 103) -#define QMCKL_ALLOCATION_FAILED ((qmckl_exit_code) 104) -#define QMCKL_DEALLOCATION_FAILED ((qmckl_exit_code) 105) -#define QMCKL_NOT_PROVIDED ((qmckl_exit_code) 106) -#define QMCKL_OUT_OF_BOUNDS ((qmckl_exit_code) 107) -#define QMCKL_INVALID_EXIT_CODE ((qmckl_exit_code) 108) -/* /home/evgeny/qmckl/src/qmckl_numprec_type.h */ - - -/* #+RESULTS: */ -/* :results: */ - -#define QMCKL_DEFAULT_PRECISION 53 -#define QMCKL_DEFAULT_RANGE 11 -/* /home/evgeny/qmckl/src/qmckl_context_func.h */ - - -/* The ~qmckl_context_check~ function checks if the domain pointed by */ -/* the pointer is a valid context. It returns the input ~qmckl_context~ */ -/* if the context is valid, ~QMCKL_NULL_CONTEXT~ otherwise. */ - - -qmckl_context -qmckl_context_check (const qmckl_context context) ; - - - -/* The context keeps a /date/ that allows to check which data needs */ -/* to be recomputed. The date is incremented when the context is touched. */ - -/* When a new element is added to the context, the functions */ -/* [[Creation][=qmckl_context_create=]] [[Destroy][=qmckl_context_destroy=]] and [[Copy][=qmckl_context_copy=]] */ -/* should be updated in order to make deep copies. */ - -/* When the electron coordinates have changed, the context is touched */ -/* using the following function. */ - - -qmckl_exit_code -qmckl_context_touch (const qmckl_context context); - -/* Creation */ - -/* To create a new context, ~qmckl_context_create()~ should be used. */ -/* - Upon success, it returns a pointer to a new context with the ~qmckl_context~ type */ -/* - It returns ~QMCKL_NULL_CONTEXT~ upon failure to allocate the internal data structure */ -/* - A new context always has all its members initialized with a NULL value */ - -/* # Header */ - -qmckl_context qmckl_context_create(); - -/* Locking */ - -/* For thread safety, the context may be locked/unlocked. The lock is */ -/* initialized with the ~PTHREAD_MUTEX_RECURSIVE~ attribute, and the */ -/* number of times the thread has locked it is saved in the */ -/* ~lock_count~ attribute. */ - -/* # Header */ - -void qmckl_lock (qmckl_context context); -void qmckl_unlock(qmckl_context context); - -/* TODO Copy */ - -/* ~qmckl_context_copy~ makes a deep copy of a context. It returns */ -/* ~QMCKL_NULL_CONTEXT~ upon failure. */ - -/* # Header */ - -/* -qmckl_context qmckl_context_copy(const qmckl_context context); -*/ - -/* Destroy */ - -/* The context is destroyed with ~qmckl_context_destroy~, leaving the ancestors untouched. */ -/* It frees the context, and returns the previous context. */ - -/* # Header */ - -qmckl_exit_code -qmckl_context_destroy (const qmckl_context context); -/* /home/evgeny/qmckl/src/qmckl_error_func.h */ -/* Decoding errors */ - -/* To decode the error messages, ~qmckl_string_of_error~ converts an */ -/* error code into a string. */ - - -const char* -qmckl_string_of_error (const qmckl_exit_code error); - -/* Updating errors in the context */ - -/* The error is updated in the context using ~qmckl_set_error~. */ -/* When the error is set in the context, it is mandatory to specify */ -/* from which function the error is triggered, and a message */ -/* explaining the error. The exit code can't be ~QMCKL_SUCCESS~. */ - -/* # Header */ - -qmckl_exit_code -qmckl_set_error(qmckl_context context, - const qmckl_exit_code exit_code, - const char* function_name, - const char* message); - -/* Get the error */ - -/* Upon error, the error type and message can be obtained from the */ -/* context using ~qmckl_get_error~. The message and function name */ -/* is returned in the variables provided. Therefore, passing a */ -/* function name and message is mandatory. */ - -/* # Header */ - -qmckl_exit_code -qmckl_get_error(qmckl_context context, - qmckl_exit_code *exit_code, - char* function_name, - char* message); - -/* Failing */ - -/* To make a function fail, the ~qmckl_failwith~ function should be */ -/* called, such that information about the failure is stored in */ -/* the context. The desired exit code is given as an argument, as */ -/* well as the name of the function and an error message. If the */ -/* message is ~NULL~, then the default message obtained by */ -/* ~qmckl_string_of_error~ is used. The return code of the function is */ -/* the desired return code. */ -/* Upon failure, a ~QMCKL_NULL_CONTEXT~ is returned. */ - - -qmckl_exit_code -qmckl_failwith(qmckl_context context, - const qmckl_exit_code exit_code, - const char* function, - const char* message) ; -/* /home/evgeny/qmckl/src/qmckl_blas_func.h */ -/* ~qmckl_dgemm~ */ - -/* Matrix multiplication with a BLAS interface: */ - -/* \[ */ -/* C_{ij} = \beta C_{ij} + \alpha \sum_{k} A_{ik} \cdot B_{kj} */ -/* \] */ - -/* # TODO: Add description about the external library dependence. */ - -/* #+NAME: qmckl_dgemm_args */ -/* | Variable | Type | In/Out | Description | */ -/* |-----------+-----------------+--------+---------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~TransA~ | ~char~ | in | 'T' is transposed | */ -/* | ~TransB~ | ~char~ | in | 'T' is transposed | */ -/* | ~m~ | ~int64_t~ | in | Number of rows of the input matrix | */ -/* | ~n~ | ~int64_t~ | in | Number of columns of the input matrix | */ -/* | ~k~ | ~int64_t~ | in | Number of columns of the input matrix | */ -/* | ~alpha~ | ~double~ | in | \alpha | */ -/* | ~A~ | ~double[][lda]~ | in | Array containing the matrix $A$ | */ -/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ -/* | ~B~ | ~double[][ldb]~ | in | Array containing the matrix $B$ | */ -/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ -/* | ~beta~ | ~double~ | in | \beta | */ -/* | ~C~ | ~double[][ldc]~ | out | Array containing the matrix $C$ | */ -/* | ~ldc~ | ~int64_t~ | in | Leading dimension of array ~C~ | */ - -/* Requirements: */ - -/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ -/* - ~m > 0~ */ -/* - ~n > 0~ */ -/* - ~k > 0~ */ -/* - ~lda >= m~ */ -/* - ~ldb >= n~ */ -/* - ~ldc >= n~ */ -/* - ~A~ is allocated with at least $m \times k \times 8$ bytes */ -/* - ~B~ is allocated with at least $k \times n \times 8$ bytes */ -/* - ~C~ is allocated with at least $m \times n \times 8$ bytes */ - -/* #+CALL: generate_c_header(table=qmckl_dgemm_args,rettyp="qmckl_exit_code",fname="qmckl_dgemm") */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_dgemm ( - const qmckl_context context, - const char TransA, - const char TransB, - const int64_t m, - const int64_t n, - const int64_t k, - const double alpha, - const double* A, - const int64_t lda, - const double* B, - const int64_t ldb, - const double beta, - double* const C, - const int64_t ldc ); - -/* ~qmckl_adjugate~ */ - -/* Given a matrix $\mathbf{A}$, the adjugate matrix */ -/* $\text{adj}(\mathbf{A})$ is the transpose of the cofactors matrix */ -/* of $\mathbf{A}$. */ - -/* \[ */ -/* \mathbf{B} = \text{adj}(\mathbf{A}) = \text{det}(\mathbf{A}) \, \mathbf{A}^{-1} */ -/* \] */ - -/* See also: https://en.wikipedia.org/wiki/Adjugate_matrix */ - -/* #+NAME: qmckl_adjugate_args */ -/* | Variable | Type | In/Out | Description | */ -/* |-----------+-----------------+--------+------------------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~n~ | ~int64_t~ | in | Number of rows and columns of the input matrix | */ -/* | ~A~ | ~double[][lda]~ | in | Array containing the $n \times n$ matrix $A$ | */ -/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ -/* | ~B~ | ~double[][ldb]~ | out | Adjugate of $A$ | */ -/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ -/* | ~det_l~ | ~double~ | inout | determinant of $A$ | */ - -/* Requirements: */ - -/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ -/* - ~n > 0~ */ -/* - ~lda >= m~ */ -/* - ~A~ is allocated with at least $m \times m \times 8$ bytes */ -/* - ~ldb >= m~ */ -/* - ~B~ is allocated with at least $m \times m \times 8$ bytes */ - -/* #+CALL: generate_c_header(table=qmckl_adjugate_args,rettyp="qmckl_exit_code",fname="qmckl_adjugate") */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_adjugate ( - const qmckl_context context, - const int64_t n, - const double* A, - const int64_t lda, - double* const B, - const int64_t ldb, - double* det_l ); -/* /home/evgeny/qmckl/src/qmckl_numprec_func.h */ -/* Precision */ -/* ~qmckl_context_set_numprec_precision~ modifies the parameter for the */ -/* numerical precision in the context. */ - -/* # Header */ - -qmckl_exit_code qmckl_set_numprec_precision(const qmckl_context context, const int precision); - - - -/* ~qmckl_get_numprec_precision~ returns the value of the numerical precision in the context. */ - - -int32_t qmckl_get_numprec_precision(const qmckl_context context); - -/* Range */ - -/* ~qmckl_set_numprec_range~ modifies the parameter for the numerical */ -/* range in a given context. */ - -/* # Header */ - -qmckl_exit_code qmckl_set_numprec_range(const qmckl_context context, const int range); - - - -/* ~qmckl_get_numprec_range~ returns the value of the numerical range in the context. */ - - -int32_t qmckl_get_numprec_get_range(const qmckl_context context); - -/* Helper functions */ - -/* ~qmckl_get_numprec_epsilon~ returns $\epsilon = 2^{1-n}$ where ~n~ is the precision. */ -/* We need to remove the sign bit from the precision. */ - - -double qmckl_get_numprec_epsilon(const qmckl_context context); -/* /home/evgeny/qmckl/src/qmckl_point_func.h */ -/* Number of points */ - - -qmckl_exit_code qmckl_get_point_num (const qmckl_context context, int64_t* const num); - -/* Point coordinates */ - - -qmckl_exit_code qmckl_get_point(const qmckl_context context, - const char transp, - double* const coord, - const int64_t size_max); - -/* Initialization functions */ - -/* When the data is set in the context, if the arrays are large */ -/* enough, we overwrite the data contained in them. */ - -/* To set the data relative to the points in the context, one of the */ -/* following functions need to be called. */ - - -qmckl_exit_code qmckl_set_point (qmckl_context context, - const char transp, - const double* coord, - const int64_t num); -/* /home/evgeny/qmckl/src/qmckl_nucleus_func.h */ -qmckl_exit_code -qmckl_get_nucleus_num(const qmckl_context context, - int64_t* const num); - -qmckl_exit_code -qmckl_get_nucleus_charge(const qmckl_context context, - double* const charge, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_nucleus_rescale_factor(const qmckl_context context, - double* const rescale_factor_kappa); - -qmckl_exit_code -qmckl_get_nucleus_coord(const qmckl_context context, - const char transp, - double* const coord, - const int64_t size_max); - - - -/* When all the data relative to nuclei have been set, the following */ -/* function returns ~true~. */ - - -bool qmckl_nucleus_provided (const qmckl_context context); - - - -/* To set the data relative to the nuclei in the context, the */ -/* following functions need to be called. */ - - -qmckl_exit_code -qmckl_set_nucleus_num(qmckl_context context, - const int64_t num); - -qmckl_exit_code -qmckl_set_nucleus_charge(qmckl_context context, - const double* charge, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_nucleus_coord(qmckl_context context, - const char transp, - const double* coord, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_nucleus_rescale_factor(qmckl_context context, - const double kappa); - -/* Get */ - - -qmckl_exit_code -qmckl_get_nucleus_nn_distance(qmckl_context context, - double* distance, - const int64_t size_max); - -/* Get */ - - -qmckl_exit_code -qmckl_get_nucleus_nn_distance_rescaled(qmckl_context context, - double* distance_rescaled, - const int64_t size_max); - -/* Get */ - - -qmckl_exit_code qmckl_get_nucleus_repulsion(qmckl_context context, double* const energy); -/* /home/evgeny/qmckl/src/qmckl_electron_func.h */ -bool qmckl_electron_provided (const qmckl_context context); - -/* Number of electrons */ - - -qmckl_exit_code qmckl_get_electron_num (const qmckl_context context, int64_t* const num); -qmckl_exit_code qmckl_get_electron_up_num (const qmckl_context context, int64_t* const up_num); -qmckl_exit_code qmckl_get_electron_down_num (const qmckl_context context, int64_t* const down_num); - -/* Number of walkers */ - -/* A walker is a set of electron coordinates that are arguments of */ -/* the wave function. ~walk_num~ is the number of walkers. */ - - -qmckl_exit_code qmckl_get_electron_walk_num (const qmckl_context context, int64_t* const walk_num); - -/* Scaling factors Kappa */ - - -qmckl_exit_code qmckl_get_electron_rescale_factor_ee (const qmckl_context context, double* const rescale_factor_kappa_ee); -qmckl_exit_code qmckl_get_electron_rescale_factor_en (const qmckl_context context, double* const rescale_factor_kappa_en); - -/* Electron coordinates */ - -/* Returns the current electron coordinates. The pointer is assumed */ -/* to point on a memory block of size ~size_max~ \ge ~3 * elec_num * walk_num~. */ -/* The order of the indices is: */ - -/* | | Normal | Transposed | */ -/* |---------+--------------------------+--------------------------| */ -/* | C | ~[walk_num*elec_num][3]~ | ~[3][walk_num*elec_num]~ | */ -/* | Fortran | ~(3,walk_num*elec_num)~ | ~(walk_num*elec_num, 3)~ | */ - - - -qmckl_exit_code -qmckl_get_electron_coord (const qmckl_context context, - const char transp, - double* const coord, - const int64_t size_max); - -/* Initialization functions */ - -/* To set the data relative to the electrons in the context, the */ -/* following functions need to be called. When the data structure is */ -/* initialized, the internal ~coord_new~ and ~coord_old~ arrays are */ -/* both allocated. */ - - -qmckl_exit_code qmckl_set_electron_num (qmckl_context context, const int64_t up_num, const int64_t down_num); -qmckl_exit_code qmckl_set_electron_walk_num (qmckl_context context, const int64_t walk_num); -qmckl_exit_code qmckl_set_electron_coord (qmckl_context context, const char transp, const double* coord, const int64_t size_max); - -qmckl_exit_code qmckl_set_electron_rescale_factor_ee (qmckl_context context, const double kappa_ee); -qmckl_exit_code qmckl_set_electron_rescale_factor_en (qmckl_context context, const double kappa_en); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_ee_distance(qmckl_context context, double* const distance); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_ee_distance_rescaled(qmckl_context context, double* const distance_rescaled); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_ee_distance_rescaled_deriv_e(qmckl_context context, double* const distance_rescaled_deriv_e); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_ee_potential(qmckl_context context, double* const ee_pot); - - - -/* #+CALL: generate_c_header(table=qmckl_ee_potential_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_ee_potential ( - const qmckl_context context, - const int64_t elec_num, - const int64_t walk_num, - const double* ee_distance, - double* const ee_pot ); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_en_distance(qmckl_context context, double* distance); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_en_distance_rescaled(qmckl_context context, double* distance_rescaled); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_en_distance_rescaled_deriv_e(qmckl_context context, double* distance_rescaled_deriv_e); - -/* Get */ - - -qmckl_exit_code qmckl_get_electron_en_potential(qmckl_context context, double* const en_pot); - - - -/* #+CALL: generate_c_header(table=qmckl_en_potential_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_en_potential ( - const qmckl_context context, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* charge, - const double* en_distance, - double* const en_pot ); -/* /home/evgeny/qmckl/src/qmckl_distance_func.h */ -/* ~qmckl_distance_sq~ */ -/* :PROPERTIES: */ -/* :Name: qmckl_distance_sq */ -/* :CRetType: qmckl_exit_code */ -/* :FRetType: qmckl_exit_code */ -/* :END: */ - -/* ~qmckl_distance_sq~ computes the matrix of the squared distances */ -/* between all pairs of points in two sets, one point within each set: */ - -/* \[ */ -/* C_{ij} = \sum_{k=1}^3 (A_{k,i}-B_{k,j})^2 */ -/* \] */ - -/* #+NAME: qmckl_distance_sq_args */ -/* | Variable | Type | In/Out | Description | */ -/* |-----------+------------------+--------+-----------------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~transa~ | ~char~ | in | Array ~A~ is ~'N'~: Normal, ~'T'~: Transposed | */ -/* | ~transb~ | ~char~ | in | Array ~B~ is ~'N'~: Normal, ~'T'~: Transposed | */ -/* | ~m~ | ~int64_t~ | in | Number of points in the first set | */ -/* | ~n~ | ~int64_t~ | in | Number of points in the second set | */ -/* | ~A~ | ~double[][lda]~ | in | Array containing the $m \times 3$ matrix $A$ | */ -/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ -/* | ~B~ | ~double[][ldb]~ | in | Array containing the $n \times 3$ matrix $B$ | */ -/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ -/* | ~C~ | ~double[n][ldc]~ | out | Array containing the $m \times n$ matrix $C$ | */ -/* | ~ldc~ | ~int64_t~ | in | Leading dimension of array ~C~ | */ - -/* Requirements: */ - -/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ -/* - ~m > 0~ */ -/* - ~n > 0~ */ -/* - ~lda >= 3~ if ~transa == 'N'~ */ -/* - ~lda >= m~ if ~transa == 'T'~ */ -/* - ~ldb >= 3~ if ~transb == 'N'~ */ -/* - ~ldb >= n~ if ~transb == 'T'~ */ -/* - ~ldc >= m~ */ -/* - ~A~ is allocated with at least $3 \times m \times 8$ bytes */ -/* - ~B~ is allocated with at least $3 \times n \times 8$ bytes */ -/* - ~C~ is allocated with at least $m \times n \times 8$ bytes */ - -/* #+CALL: generate_c_header(table=qmckl_distance_sq_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_distance_sq ( - const qmckl_context context, - const char transa, - const char transb, - const int64_t m, - const int64_t n, - const double* A, - const int64_t lda, - const double* B, - const int64_t ldb, - double* const C, - const int64_t ldc ); - -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_distance_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_distance ( - const qmckl_context context, - const char transa, - const char transb, - const int64_t m, - const int64_t n, - const double* A, - const int64_t lda, - const double* B, - const int64_t ldb, - double* const C, - const int64_t ldc ); - -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_distance_rescaled_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_distance_rescaled ( - const qmckl_context context, - const char transa, - const char transb, - const int64_t m, - const int64_t n, - const double* A, - const int64_t lda, - const double* B, - const int64_t ldb, - double* const C, - const int64_t ldc, - const double rescale_factor_kappa ); - -/* ~qmckl_distance_rescaled_deriv_e~ */ -/* :PROPERTIES: */ -/* :Name: qmckl_distance_rescaled_deriv_e */ -/* :CRetType: qmckl_exit_code */ -/* :FRetType: qmckl_exit_code */ -/* :END: */ - -/* ~qmckl_distance_rescaled_deriv_e~ computes the matrix of the gradient and laplacian of the */ -/* rescaled distance with respect to the electron coordinates. The derivative is a rank 3 tensor. */ -/* The first dimension has a dimension of 4 of which the first three coordinates */ -/* contains the gradient vector and the last index is the laplacian. */ - - -/* \[ */ -/* C_{ij} = \left( 1 - \exp{-\kappa C_{ij}}\right)/\kappa */ -/* \] */ - -/* Here the gradient is defined as follows: */ - -/* \[ */ -/* \nabla (C_{ij}(\mathbf{r}_{ee})) = \left(\frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta x},\frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta y},\frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta z} \right) */ -/* \] */ -/* and the laplacian is defined as follows: */ - -/* \[ */ -/* \triangle (C_{ij}(r_{ee})) = \frac{\delta^2}{\delta x^2} + \frac{\delta^2}{\delta y^2} + \frac{\delta^2}{\delta z^2} */ -/* \] */ - -/* Using the above three formulae, the expression for the gradient and laplacian is */ -/* as follows: */ - -/* \[ */ -/* \frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta x} = \frac{|(x_i - x_j)|}{r_{ij}} (1 - \kappa R_{ij}) */ -/* \] */ - -/* \[ */ -/* \frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta y} = \frac{|(y_i - y_j)|}{r_{ij}} (1 - \kappa R_{ij}) */ -/* \] */ - -/* \[ */ -/* \frac{\delta C_{ij}(\mathbf{r}_{ee})}{\delta z} = \frac{|(z_i - z_j)|}{r_{ij}} (1 - \kappa R_{ij}) */ -/* \] */ - -/* \[ */ -/* \Delta(C_{ij}(r_{ee}) = \left[ \frac{2}{r_{ij}} - \kappa \right] (1-\kappa R_{ij}) */ -/* \] */ - -/* If the input array is normal (~'N'~), the xyz coordinates are in */ -/* the leading dimension: ~[n][3]~ in C and ~(3,n)~ in Fortran. */ - -/* #+NAME: qmckl_distance_rescaled_deriv_e_args */ -/* | Variable | Type | In/Out | Description | */ -/* |------------------------+---------------------+--------+-------------------------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~transa~ | ~char~ | in | Array ~A~ is ~'N'~: Normal, ~'T'~: Transposed | */ -/* | ~transb~ | ~char~ | in | Array ~B~ is ~'N'~: Normal, ~'T'~: Transposed | */ -/* | ~m~ | ~int64_t~ | in | Number of points in the first set | */ -/* | ~n~ | ~int64_t~ | in | Number of points in the second set | */ -/* | ~A~ | ~double[][lda]~ | in | Array containing the $m \times 3$ matrix $A$ | */ -/* | ~lda~ | ~int64_t~ | in | Leading dimension of array ~A~ | */ -/* | ~B~ | ~double[][ldb]~ | in | Array containing the $n \times 3$ matrix $B$ | */ -/* | ~ldb~ | ~int64_t~ | in | Leading dimension of array ~B~ | */ -/* | ~C~ | ~double[4][n][ldc]~ | out | Array containing the $4 \times m \times n$ matrix $C$ | */ -/* | ~ldc~ | ~int64_t~ | in | Leading dimension of array ~C~ | */ -/* | ~rescale_factor_kappa~ | ~double~ | in | Factor for calculating rescaled distances derivatives | */ - -/* Requirements: */ - -/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ -/* - ~m > 0~ */ -/* - ~n > 0~ */ -/* - ~lda >= 3~ if ~transa == 'N'~ */ -/* - ~lda >= m~ if ~transa == 'T'~ */ -/* - ~ldb >= 3~ if ~transb == 'N'~ */ -/* - ~ldb >= n~ if ~transb == 'T'~ */ -/* - ~ldc >= m~ */ -/* - ~A~ is allocated with at least $3 \times m \times 8$ bytes */ -/* - ~B~ is allocated with at least $3 \times n \times 8$ bytes */ -/* - ~C~ is allocated with at least $4 \times m \times n \times 8$ bytes */ - -/* #+CALL: generate_c_header(table=qmckl_distance_rescaled_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_distance_rescaled_deriv_e ( - const qmckl_context context, - const char transa, - const char transb, - const int64_t m, - const int64_t n, - const double* A, - const int64_t lda, - const double* B, - const int64_t ldb, - double* const C, - const int64_t ldc, - const double rescale_factor_kappa ); -/* /home/evgeny/qmckl/src/qmckl_ao_func.h */ - - -/* To set the basis set, all the following functions need to be */ -/* called. */ - - -qmckl_exit_code -qmckl_set_ao_basis_type (qmckl_context context, - const char basis_type); - -qmckl_exit_code -qmckl_set_ao_basis_shell_num (qmckl_context context, - const int64_t shell_num); - -qmckl_exit_code -qmckl_set_ao_basis_prim_num (qmckl_context context, - const int64_t prim_num); - -qmckl_exit_code -qmckl_set_ao_basis_ao_num (qmckl_context context, - const int64_t ao_num); - -qmckl_exit_code -qmckl_set_ao_basis_nucleus_index (qmckl_context context, - const int64_t* nucleus_index, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_nucleus_shell_num (qmckl_context context, - const int64_t* nucleus_shell_num, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_shell_ang_mom (qmckl_context context, - const int32_t* shell_ang_mom, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_shell_prim_num (qmckl_context context, - const int64_t* shell_prim_num, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_shell_prim_index (qmckl_context context, - const int64_t* shell_prim_index, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_shell_factor (qmckl_context context, - const double* shell_factor, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_exponent (qmckl_context context, - const double* exponent, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_coefficient (qmckl_context context, - const double* coefficient, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_prim_factor (qmckl_context context, - const double* prim_factor, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_ao_factor (qmckl_context context, - const double* ao_factor, - const int64_t size_max); - -qmckl_exit_code -qmckl_set_ao_basis_cartesian (qmckl_context context, - const bool cartesian); - -/* C interface */ - - -qmckl_exit_code -qmckl_get_ao_basis_type (const qmckl_context context, - char* const basis_type); - -qmckl_exit_code -qmckl_get_ao_basis_shell_num (const qmckl_context context, - int64_t* const shell_num); - -qmckl_exit_code -qmckl_get_ao_basis_prim_num (const qmckl_context context, - int64_t* const prim_num); - -qmckl_exit_code -qmckl_get_ao_basis_nucleus_shell_num (const qmckl_context context, - int64_t* const nucleus_shell_num, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_nucleus_index (const qmckl_context context, - int64_t* const nucleus_index, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_shell_ang_mom (const qmckl_context context, - int32_t* const shell_ang_mom, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_shell_prim_num (const qmckl_context context, - int64_t* const shell_prim_num, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_shell_prim_index (const qmckl_context context, - int64_t* const shell_prim_index, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_shell_factor (const qmckl_context context, - double* const shell_factor, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_exponent (const qmckl_context context, - double* const exponent, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_coefficient (const qmckl_context context, - double* const coefficient, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_prim_factor (const qmckl_context context, - double* const prim_factor, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_ao_num (const qmckl_context context, - int64_t* const ao_num); - -qmckl_exit_code -qmckl_get_ao_basis_ao_factor (const qmckl_context context, - double* const ao_factor, - const int64_t size_max); - - - - -/* When all the data for the AOs have been provided, the following */ -/* function returns ~true~. */ - - -bool qmckl_ao_basis_provided (const qmckl_context context); - -/* Access functions */ - - -qmckl_exit_code -qmckl_get_ao_basis_primitive_vgl (qmckl_context context, - double* const primitive_vgl, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_shell_vgl (qmckl_context context, - double* const shell_vgl, - const int64_t size_max); - -qmckl_exit_code -qmckl_get_ao_basis_ao_vgl (qmckl_context context, - double* const ao_vgl, - const int64_t size_max); - - - -/* Uses the give array to compute the VGL. */ - - -qmckl_exit_code -qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, - double* const ao_vgl, - const int64_t size_max); - -qmckl_exit_code -qmckl_ao_gaussian_vgl(const qmckl_context context, - const double *X, - const double *R, - const int64_t *n, - const int64_t *A, - const double *VGL, - const int64_t ldv); - -/* Computation of primitives */ -/* :PROPERTIES: */ -/* :Name: qmckl_compute_ao_basis_primitive_gaussian_vgl */ -/* :CRetType: qmckl_exit_code */ -/* :FRetType: qmckl_exit_code */ -/* :END: */ - -/* #+NAME: qmckl_ao_basis_primitive_gaussian_vgl_args */ -/* | Variable | Type | In/Out | Description | */ -/* |----------------------+----------------------------------+--------+--------------------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~prim_num~ | ~int64_t~ | in | Number of primitives | */ -/* | ~point_num~ | ~int64_t~ | in | Number of points considered | */ -/* | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | */ -/* | ~nucleus_prim_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st primitive of each nucleus | */ -/* | ~coord~ | ~double[3][point_num]~ | in | Coordinates | */ -/* | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | */ -/* | ~expo~ | ~double[prim_num]~ | in | Exponents of the primitives | */ -/* | ~primitive_vgl~ | ~double[point_num][5][prim_num]~ | out | Value, gradients and Laplacian of the primitives | */ - -/* #+CALL: generate_c_header(table=qmckl_ao_basis_primitive_gaussian_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_basis_primitive_gaussian_vgl")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_ao_basis_primitive_gaussian_vgl ( - const qmckl_context context, - const int64_t prim_num, - const int64_t point_num, - const int64_t nucl_num, - const int64_t* nucleus_prim_index, - const double* coord, - const double* nucl_coord, - const double* expo, - double* const primitive_vgl ); - -/* Computation of shells */ -/* :PROPERTIES: */ -/* :Name: qmckl_compute_ao_basis_shell_gaussian_vgl */ -/* :CRetType: qmckl_exit_code */ -/* :FRetType: qmckl_exit_code */ -/* :END: */ - -/* #+NAME: qmckl_ao_basis_shell_gaussian_vgl_args */ -/* | Variable | Type | In/Out | Description | */ -/* |---------------------+-----------------------------------+--------+----------------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~prim_num~ | ~int64_t~ | in | Number of primitives | */ -/* | ~shell_num~ | ~int64_t~ | in | Number of shells | */ -/* | ~point_num~ | ~int64_t~ | in | Number of points | */ -/* | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | */ -/* | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells for each nucleus | */ -/* | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | */ -/* | ~nucleus_range~ | ~double[nucl_num]~ | in | Range of the nucleus | */ -/* | ~shell_prim_index~ | ~int64_t[shell_num]~ | in | Index of the 1st primitive of each shell | */ -/* | ~shell_prim_num~ | ~int64_t[shell_num]~ | in | Number of primitives per shell | */ -/* | ~coord~ | ~double[3][point_num]~ | in | Coordinates | */ -/* | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | */ -/* | ~expo~ | ~double[prim_num]~ | in | Exponents of the primitives | */ -/* | ~coef_normalized~ | ~double[prim_num]~ | in | Coefficients of the primitives | */ -/* | ~shell_vgl~ | ~double[point_num][5][shell_num]~ | out | Value, gradients and Laplacian of the shells | */ - -/* #+CALL: generate_c_header(table=qmckl_ao_basis_shell_gaussian_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_basis_shell_gaussian_vgl")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_ao_basis_shell_gaussian_vgl ( - const qmckl_context context, - const int64_t prim_num, - const int64_t shell_num, - const int64_t point_num, - const int64_t nucl_num, - const int64_t* nucleus_shell_num, - const int64_t* nucleus_index, - const double* nucleus_range, - const int64_t* shell_prim_index, - const int64_t* shell_prim_num, - const double* coord, - const double* nucl_coord, - const double* expo, - const double* coef_normalized, - double* const shell_vgl ); - -/* General functions for Powers of $x-X_i$ */ -/* :PROPERTIES: */ -/* :Name: qmckl_ao_power */ -/* :CRetType: qmckl_exit_code */ -/* :FRetType: qmckl_exit_code */ -/* :END: */ - -/* The ~qmckl_ao_power~ function computes all the powers of the ~n~ */ -/* input data up to the given maximum value given in input for each of */ -/* the $n$ points: */ - -/* \[ P_{ik} = X_i^k \] */ - -/* #+NAME: qmckl_ao_power_args */ -/* | Variable | Type | In/Out | Description | */ -/* |-----------+-----------------+--------+---------------------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~n~ | int64_t | in | Number of values | */ -/* | ~X~ | double[n] | in | Array containing the input values | */ -/* | ~LMAX~ | int32_t[n] | in | Array containing the maximum power for each value | */ -/* | ~P~ | double[n][ldp] | out | Array containing all the powers of ~X~ | */ -/* | ~ldp~ | int64_t | in | Leading dimension of array ~P~ | */ - -/* Requirements: */ - -/* - ~context~ is not ~QMCKL_NULL_CONTEXT~ */ -/* - ~n~ > 0 */ -/* - ~X~ is allocated with at least $n \times 8$ bytes */ -/* - ~LMAX~ is allocated with at least $n \times 4$ bytes */ -/* - ~P~ is allocated with at least $n \times \max_i \text{LMAX}_i \times 8$ bytes */ -/* - ~LDP~ >= $\max_i$ ~LMAX[i]~ */ - -/* #+CALL: generate_c_header(table=qmckl_ao_power_args,rettyp=get_value("CRetType"),fname="qmckl_ao_power") */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_ao_power ( - const qmckl_context context, - const int64_t n, - const double* X, - const int32_t* LMAX, - double* const P, - const int64_t ldp ); - -/* General functions for Value, Gradient and Laplacian of a polynomial */ -/* :PROPERTIES: */ -/* :Name: qmckl_ao_polynomial_vgl */ -/* :CRetType: qmckl_exit_code */ -/* :FRetType: qmckl_exit_code */ -/* :END: */ - -/* A polynomial is centered on a nucleus $\mathbf{R}_i$ */ - -/* \[ */ -/* P_l(\mathbf{r},\mathbf{R}_i) = (x-X_i)^a (y-Y_i)^b (z-Z_i)^c */ -/* \] */ - -/* The gradients with respect to electron coordinates are */ - -/* \begin{eqnarray*} */ -/* \frac{\partial }{\partial x} P_l\left(\mathbf{r},\mathbf{R}_i \right) & */ -/* = & a (x-X_i)^{a-1} (y-Y_i)^b (z-Z_i)^c \\ */ -/* \frac{\partial }{\partial y} P_l\left(\mathbf{r},\mathbf{R}_i \right) & */ -/* = & b (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c \\ */ -/* \frac{\partial }{\partial z} P_l\left(\mathbf{r},\mathbf{R}_i \right) & */ -/* = & c (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1} \\ */ -/* \end{eqnarray*} */ - -/* and the Laplacian is */ - -/* \begin{eqnarray*} */ -/* \left( \frac{\partial }{\partial x^2} + */ -/* \frac{\partial }{\partial y^2} + */ -/* \frac{\partial }{\partial z^2} \right) P_l */ -/* \left(\mathbf{r},\mathbf{R}_i \right) & = & */ -/* a(a-1) (x-X_i)^{a-2} (y-Y_i)^b (z-Z_i)^c + \\ */ -/* && b(b-1) (x-X_i)^a (y-Y_i)^{b-1} (z-Z_i)^c + \\ */ -/* && c(c-1) (x-X_i)^a (y-Y_i)^b (z-Z_i)^{c-1}. */ -/* \end{eqnarray*} */ - -/* ~qmckl_ao_polynomial_vgl~ computes the values, gradients and */ -/* Laplacians at a given point in space, of all polynomials with an */ -/* angular momentum up to ~lmax~. */ - -/* #+NAME: qmckl_ao_polynomial_vgl_args */ -/* | Variable | Type | In/Out | Description | */ -/* |-----------+-------------------+--------+------------------------------------------------------| */ -/* | ~context~ | ~qmckl_context~ | in | Global state | */ -/* | ~X~ | ~double[3]~ | in | Array containing the coordinates of the points | */ -/* | ~R~ | ~double[3]~ | in | Array containing the x,y,z coordinates of the center | */ -/* | ~lmax~ | ~int32_t~ | in | Maximum angular momentum | */ -/* | ~n~ | ~int64_t~ | inout | Number of computed polynomials | */ -/* | ~L~ | ~int32_t[n][ldl]~ | out | Contains a,b,c for all ~n~ results | */ -/* | ~ldl~ | ~int64_t~ | in | Leading dimension of ~L~ | */ -/* | ~VGL~ | ~double[n][ldv]~ | out | Value, gradients and Laplacian of the polynomials | */ -/* | ~ldv~ | ~int64_t~ | in | Leading dimension of array ~VGL~ | */ - -/* Requirements: */ - -/* - ~context~ \ne ~QMCKL_NULL_CONTEXT~ */ -/* - ~n~ > 0 */ -/* - ~lmax~ >= 0 */ -/* - ~ldl~ >= 3 */ -/* - ~ldv~ >= 5 */ -/* - ~X~ is allocated with at least $3 \times 8$ bytes */ -/* - ~R~ is allocated with at least $3 \times 8$ bytes */ -/* - ~n~ >= ~(lmax+1)(lmax+2)(lmax+3)/6~ */ -/* - ~L~ is allocated with at least $3 \times n \times 4$ bytes */ -/* - ~VGL~ is allocated with at least $5 \times n \times 8$ bytes */ -/* - On output, ~n~ should be equal to ~(lmax+1)(lmax+2)(lmax+3)/6~ */ -/* - On output, the powers are given in the following order (l=a+b+c): */ -/* - Increasing values of ~l~ */ -/* - Within a given value of ~l~, alphabetical order of the */ -/* string made by a*"x" + b*"y" + c*"z" (in Python notation). */ -/* For example, with a=0, b=2 and c=1 the string is "yyz" */ - -/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_ao_polynomial_vgl ( - const qmckl_context context, - const double* X, - const double* R, - const int32_t lmax, - int64_t* n, - int32_t* const L, - const int64_t ldl, - double* const VGL, - const int64_t ldv ); - - - -/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_vgl_doc") */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_ao_polynomial_vgl_doc ( - const qmckl_context context, - const double* X, - const double* R, - const int32_t lmax, - int64_t* n, - int32_t* const L, - const int64_t ldl, - double* const VGL, - const int64_t ldv ); - - - -/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl") */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_ao_polynomial_transp_vgl ( - const qmckl_context context, - const double* X, - const double* R, - const int32_t lmax, - int64_t* n, - int32_t* const L, - const int64_t ldl, - double* const VGL, - const int64_t ldv ); - - - -/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_doc") */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_ao_polynomial_transp_vgl_doc ( - const qmckl_context context, - const double* X, - const double* R, - const int32_t lmax, - int64_t* n, - int32_t* const L, - const int64_t ldl, - double* const VGL, - const int64_t ldv ); - - - -/* #+CALL: generate_c_header(table=qmckl_ao_polynomial_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_ao_polynomial_transp_vgl_hpc") */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_ao_polynomial_transp_vgl_hpc ( - const qmckl_context context, - const double* X, - const double* R, - const int32_t lmax, - int64_t* n, - int32_t* const L, - const int64_t ldl, - double* const VGL, - const int64_t ldv ); -/* /home/evgeny/qmckl/src/qmckl_mo_func.h */ -/* Access functions */ - - -qmckl_exit_code -qmckl_get_mo_basis_mo_num (const qmckl_context context, - int64_t* mo_num); - -qmckl_exit_code -qmckl_get_mo_basis_coefficient (const qmckl_context context, - double* const coefficient, - const int64_t size_max); - - - -/* When all the data for the AOs have been provided, the following */ -/* function returns ~true~. */ - - -bool qmckl_mo_basis_provided (const qmckl_context context); - -/* Initialization functions */ - -/* To set the basis set, all the following functions need to be */ -/* called. */ - - -qmckl_exit_code qmckl_set_mo_basis_mo_num (qmckl_context context, const int64_t mo_num); -qmckl_exit_code qmckl_set_mo_basis_coefficient (qmckl_context context, const double * coefficient); - -/* Get */ - - -qmckl_exit_code qmckl_get_mo_basis_vgl(qmckl_context context, double* const mo_vgl); - - - -/* #+CALL: generate_c_header(table=qmckl_mo_basis_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_mo_basis_vgl")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_mo_basis_vgl ( - const qmckl_context context, - const int64_t ao_num, - const int64_t mo_num, - const int64_t point_num, - const double* coef_normalized, - const double* ao_vgl, - double* const mo_vgl ); -/* /home/evgeny/qmckl/src/qmckl_determinant_func.h */ - - -/* When all the data for the slater determinants have been provided, the following */ -/* function returns ~true~. */ - - -bool qmckl_determinant_provided (const qmckl_context context); - -/* Initialization functions */ - -/* To set the basis set, all the following functions need to be */ -/* called. */ - - -qmckl_exit_code qmckl_set_determinant_type (const qmckl_context context, const char t); -qmckl_exit_code qmckl_set_determinant_walk_num (const qmckl_context context, const int64_t walk_num); -qmckl_exit_code qmckl_set_determinant_det_num_alpha (const qmckl_context context, const int64_t det_num_alpha); -qmckl_exit_code qmckl_set_determinant_det_num_beta (const qmckl_context context, const int64_t det_num_beta); -qmckl_exit_code qmckl_set_determinant_mo_index_alpha (const qmckl_context context, const int64_t* mo_index_alpha); -qmckl_exit_code qmckl_set_determinant_mo_index_beta (const qmckl_context context, const int64_t* mo_index_beta); - -/* Get */ - - -qmckl_exit_code qmckl_get_det_vgl_alpha(qmckl_context context, double* const det_vgl_alpha); -qmckl_exit_code qmckl_get_det_vgl_beta(qmckl_context context, double* const det_vgl_beta); - - - -/* #+CALL: generate_c_header(table=qmckl_compute_det_vgl_alpha_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl_alpha")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_det_vgl_alpha ( - const qmckl_context context, - const int64_t det_num_alpha, - const int64_t walk_num, - const int64_t alpha_num, - const int64_t beta_num, - const int64_t elec_num, - const int64_t* mo_index_alpha, - const int64_t mo_num, - const double* mo_vgl, - double* const det_vgl_alpha ); - - - -/* #+CALL: generate_c_header(table=qmckl_compute_det_vgl_beta_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl_beta")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_det_vgl_beta ( - const qmckl_context context, - const int64_t det_num_beta, - const int64_t walk_num, - const int64_t alpha_num, - const int64_t beta_num, - const int64_t elec_num, - const int64_t* mo_index_beta, - const int64_t mo_num, - const double* mo_vgl, - double* const det_vgl_beta ); - -/* Get */ - - -qmckl_exit_code qmckl_get_det_inv_matrix_alpha(qmckl_context context, double* const det_inv_matrix_alpha); -qmckl_exit_code qmckl_get_det_inv_matrix_beta(qmckl_context context, double* const det_inv_matrix_beta); -qmckl_exit_code qmckl_get_det_adj_matrix_alpha(qmckl_context context, double* const det_adj_matrix_alpha); -qmckl_exit_code qmckl_get_det_adj_matrix_beta(qmckl_context context, double* const det_adj_matrix_beta); -qmckl_exit_code qmckl_get_det_alpha(qmckl_context context, double* const det_adj_matrix_alpha); -qmckl_exit_code qmckl_get_det_beta(qmckl_context context, double* const det_adj_matrix_beta); - - - -/* #+CALL: generate_c_header(table=qmckl_det_inv_matrix_alpha_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_inv_matrix_alpha")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_det_inv_matrix_alpha ( - const qmckl_context context, - const int64_t det_num_alpha, - const int64_t walk_num, - const int64_t alpha_num, - const double* det_vgl_alpha, - double* const det_value_alpha, - double* const det_adj_matrix_alpha, - double* const det_inv_matrix_alpha ); - - - -/* #+CALL: generate_c_header(table=qmckl_det_inv_matrix_beta_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_inv_matrix_beta")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_det_inv_matrix_beta ( - const qmckl_context context, - const int64_t det_num_beta, - const int64_t walk_num, - const int64_t beta_num, - const double* det_vgl_beta, - double* const det_value_beta, - double* const det_adj_matrix_beta, - double* const det_inv_matrix_beta ); -/* /home/evgeny/qmckl/src/qmckl_sherman_morrison_woodbury_func.h */ -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_sherman_morrison_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_sherman_morrison( - const qmckl_context context, - const uint64_t LDS, - const uint64_t Dim, - const uint64_t N_updates, - const double* Updates, - const uint64_t* Updates_index, - const double breakdown, - double* Slater_inv, - double* determinant); - -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_woodbury_2_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_woodbury_2( - const qmckl_context context, - const uint64_t LDS, - const uint64_t Dim, - const double* Updates, - const uint64_t* Updates_index, - const double breakdown, - double* Slater_inv, - double* determinant); - -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_woodbury_3_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_woodbury_3( - const qmckl_context context, - const uint64_t LDS, - const uint64_t Dim, - const double* Updates, - const uint64_t* Updates_index, - const double breakdown, - double* Slater_inv, -double* determinant); - -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_sherman_morrison_splitting_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_sherman_morrison_splitting( - const qmckl_context context, - const uint64_t LDS, - const uint64_t Dim, - const uint64_t N_updates, - const double* Updates, - const uint64_t* Updates_index, - const double breakdown, - double* Slater_inv, - double* determinant); - -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_sherman_morrison_smw32s_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_sherman_morrison_smw32s( - const qmckl_context context, - const uint64_t LDS, - const uint64_t Dim, - const uint64_t N_updates, - const double* Updates, - const uint64_t* Updates_index, - const double breakdown, - double* Slater_inv, - double* determinant); - -/* C header */ - -/* #+CALL: generate_c_header(table=qmckl_slagel_splitting_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_slagel_splitting ( - const uint64_t LDS, - const uint64_t Dim, - const uint64_t N_updates, - const double* Updates, - const uint64_t* Updates_index, - const double breakdown, - double* Slater_inv, - double* later_updates, - uint64_t* later_index, - uint64_t* later, - double* determinant); -/* /home/evgeny/qmckl/src/qmckl_jastrow_func.h */ - - - -/* The ~uninitialized~ integer contains one bit set to one for each */ -/* initialization function which has not been called. It becomes equal */ -/* to zero after all initialization functions have been called. The */ -/* struct is then initialized and ~provided == true~. */ -/* Some values are initialized by default, and are not concerned by */ -/* this mechanism. */ - - -qmckl_exit_code qmckl_init_jastrow(qmckl_context context); - -/* Access functions */ - - -qmckl_exit_code qmckl_get_jastrow_aord_num (qmckl_context context, int64_t* const aord_num); -qmckl_exit_code qmckl_get_jastrow_bord_num (qmckl_context context, int64_t* const bord_num); -qmckl_exit_code qmckl_get_jastrow_cord_num (qmckl_context context, int64_t* const bord_num); -qmckl_exit_code qmckl_get_jastrow_type_nucl_num (qmckl_context context, int64_t* const type_nucl_num); -qmckl_exit_code qmckl_get_jastrow_type_nucl_vector (qmckl_context context, int64_t* const type_nucl_num, const int64_t size_max); -qmckl_exit_code qmckl_get_jastrow_aord_vector (qmckl_context context, double * const aord_vector, const int64_t size_max); -qmckl_exit_code qmckl_get_jastrow_bord_vector (qmckl_context context, double * const bord_vector, const int64_t size_max); -qmckl_exit_code qmckl_get_jastrow_cord_vector (qmckl_context context, double * const cord_vector, const int64_t size_max); - - - -/* Along with these core functions, calculation of the jastrow factor */ -/* requires the following additional information to be set: */ - - -/* When all the data for the AOs have been provided, the following */ -/* function returns ~true~. */ - - -bool qmckl_jastrow_provided (const qmckl_context context); - -/* Initialization functions */ - -/* To prepare for the Jastrow and its derivative, all the following functions need to be */ -/* called. */ - - -qmckl_exit_code qmckl_set_jastrow_ord_num (qmckl_context context, const int64_t aord_num, const int64_t bord_num, const int64_t cord_num); -qmckl_exit_code qmckl_set_jastrow_type_nucl_num (qmckl_context context, const int64_t type_nucl_num); -qmckl_exit_code qmckl_set_jastrow_type_nucl_vector (qmckl_context context, const int64_t* type_nucl_vector, const int64_t nucl_num); -qmckl_exit_code qmckl_set_jastrow_aord_vector (qmckl_context context, const double * aord_vector, const int64_t size_max); -qmckl_exit_code qmckl_set_jastrow_bord_vector (qmckl_context context, const double * bord_vector, const int64_t size_max); -qmckl_exit_code qmckl_set_jastrow_cord_vector (qmckl_context context, const double * cord_vector, const int64_t size_max); - -/* Get */ - -qmckl_exit_code -qmckl_get_jastrow_asymp_jasb(qmckl_context context, - double* const asymp_jasb, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_asymp_jasb_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_asymp_jasb ( - const qmckl_context context, - const int64_t bord_num, - const double* bord_vector, - const double rescale_factor_kappa_ee, - double* const asymp_jasb ); - -/* Get */ - -qmckl_exit_code -qmckl_get_jastrow_factor_ee(qmckl_context context, - double* const factor_ee, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_ee_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_ee ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t up_num, - const int64_t bord_num, - const double* bord_vector, - const double* ee_distance_rescaled, - const double* asymp_jasb, - double* const factor_ee ); - -/* Get */ - -qmckl_exit_code -qmckl_get_jastrow_factor_ee_deriv_e(qmckl_context context, - double* const factor_ee_deriv_e, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_ee_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_ee_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t up_num, - const int64_t bord_num, - const double* bord_vector, - const double* ee_distance_rescaled, - const double* ee_distance_rescaled_deriv_e, - const double* asymp_jasb, - double* const factor_ee_deriv_e ); - -/* Get */ - -qmckl_exit_code -qmckl_get_jastrow_factor_en(qmckl_context context, - double* const factor_en, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_en_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_en ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const int64_t aord_num, - const double* aord_vector, - const double* en_distance_rescaled, - double* const factor_en ); - -/* Get */ - -qmckl_exit_code -qmckl_get_jastrow_factor_en_deriv_e(qmckl_context context, - double* const factor_en_deriv_e, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_en_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_en_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const int64_t aord_num, - const double* aord_vector, - const double* en_distance_rescaled, - const double* en_distance_rescaled_deriv_e, - double* const factor_en_deriv_e ); - -/* Get */ - - -qmckl_exit_code -qmckl_get_jastrow_een_rescaled_e(qmckl_context context, - double* const distance_rescaled, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_een_rescaled_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t cord_num, - const double rescale_factor_kappa_ee, - const double* ee_distance, - double* const een_rescaled_e ); - -/* Get */ - - -qmckl_exit_code -qmckl_get_jastrow_een_rescaled_e_deriv_e(qmckl_context context, - double* const distance_rescaled, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_een_rescaled_e_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t cord_num, - const double rescale_factor_kappa_ee, - const double* coord_new, - const double* ee_distance, - const double* een_rescaled_e, - double* const een_rescaled_e_deriv_e ); - -/* Get */ - - -qmckl_exit_code -qmckl_get_jastrow_een_rescaled_n(qmckl_context context, - double* const distance_rescaled, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_een_rescaled_n ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const double rescale_factor_kappa_en, - const double* en_distance, - double* const een_rescaled_n ); - -/* Get */ - - -qmckl_exit_code -qmckl_get_jastrow_een_rescaled_n_deriv_e(qmckl_context context, - double* const distance_rescaled, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_compute_factor_een_rescaled_n_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_een_rescaled_n_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const double rescale_factor_kappa_en, - const double* coord_new, - const double* coord, - const double* en_distance, - const double* een_rescaled_n, - double* const een_rescaled_n_deriv_e ); - -/* Get */ - - -qmckl_exit_code qmckl_get_jastrow_dim_cord_vect(qmckl_context context, int64_t* const dim_cord_vect); -qmckl_exit_code qmckl_get_jastrow_cord_vect_full(qmckl_context context, double* const cord_vect_full); -qmckl_exit_code qmckl_get_jastrow_lkpm_combined_index(qmckl_context context, int64_t* const lkpm_combined_index); -qmckl_exit_code qmckl_get_jastrow_tmp_c(qmckl_context context, double* const tmp_c); -qmckl_exit_code qmckl_get_jastrow_dtmp_c(qmckl_context context, double* const dtmp_c); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_dim_cord_vect ( - const qmckl_context context, - const int64_t cord_num, - int64_t* const dim_cord_vect ); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_cord_vect_full ( - const qmckl_context context, - const int64_t nucl_num, - const int64_t dim_cord_vect, - const int64_t type_nucl_num, - const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_lkpm_combined_index_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_lkpm_combined_index ( - const qmckl_context context, - const int64_t cord_num, - const int64_t dim_cord_vect, - int64_t* const lpkm_combined_index ); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_tmp_c_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_tmp_c ( - const qmckl_context context, - const int64_t cord_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* een_rescaled_e, - const double* een_rescaled_n, - double* const tmp_c ); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_dtmp_c_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_dtmp_c ( - const qmckl_context context, - const int64_t cord_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t walk_num, - const double* een_rescaled_e_deriv_e, - const double* een_rescaled_n, - double* const dtmp_c ); - -/* Get */ - -qmckl_exit_code -qmckl_get_jastrow_factor_een(qmckl_context context, - double* const factor_een, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_een_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_een_naive ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, - const int64_t* lkpm_combined_index, - const double* een_rescaled_e, - const double* een_rescaled_n, - double* const factor_een ); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_een_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_een ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, - const int64_t* lkpm_combined_index, - const double* een_rescaled_e, - const double* een_rescaled_n, - double* const factor_een ); - -/* Get */ - -qmckl_exit_code -qmckl_get_jastrow_factor_een_deriv_e(qmckl_context context, - double* const factor_een_deriv_e, - const int64_t size_max); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_een_deriv_e_naive ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, - const int64_t* lkpm_combined_index, - const double* een_rescaled_e, - const double* een_rescaled_n, - const double* een_rescaled_e_deriv_e, - const double* een_rescaled_n_deriv_e, - double* const factor_een_deriv_e ); - - - -/* #+CALL: generate_c_header(table=qmckl_factor_een_deriv_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_factor_een_deriv_e ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, - const int64_t* lkpm_combined_index, - const double* tmp_c, - const double* dtmp_c, - const double* een_rescaled_n, - const double* een_rescaled_n_deriv_e, - double* const factor_een_deriv_e ); -/* /home/evgeny/qmckl/src/qmckl_local_energy_func.h */ -/* Get */ - - -qmckl_exit_code qmckl_get_kinetic_energy(qmckl_context context, double* const kinetic_energy); - - - -/* #+CALL: generate_c_header(table=qmckl_compute_kinetic_energy_args,rettyp=get_value("CRetType"),fname="qmckl_compute_kinetic_energy")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_kinetic_energy ( - const qmckl_context context, - const int64_t walk_num, - const int64_t det_num_alpha, - const int64_t det_num_beta, - const int64_t alpha_num, - const int64_t beta_num, - const int64_t elec_num, - const int64_t* mo_index_alpha, - const int64_t* mo_index_beta, - const int64_t mo_num, - const double* mo_vgl, - const double* det_value_alpha, - const double* det_value_beta, - const double* det_inv_matrix_alpha, - const double* det_inv_matrix_beta, - double* const e_kin ); - -/* Get */ - - -qmckl_exit_code qmckl_get_potential_energy(qmckl_context context, double* const potential_energy); - - - -/* #+CALL: generate_c_header(table=qmckl_compute_potential_energy_args,rettyp=get_value("CRetType"),fname="qmckl_compute_potential_energy")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_potential_energy ( - const qmckl_context context, - const int64_t walk_num, - const int64_t elec_num, - const int64_t nucl_num, - const double* ee_pot, - const double* en_pot, - const double repulsion, - double* const e_pot ); - -/* Get */ - - -qmckl_exit_code qmckl_get_local_energy(qmckl_context context, double* const local_energy); - - - -/* #+CALL: generate_c_header(table=qmckl_compute_local_energy_args,rettyp=get_value("CRetType"),fname="qmckl_compute_local_energy")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_local_energy ( - const qmckl_context context, - const int64_t walk_num, - const double* e_kin, - const double* e_pot, - double* const e_local ); - -/* Get */ - - -qmckl_exit_code qmckl_get_drift_vector(qmckl_context context, double* const drift_vector); - - - -/* #+CALL: generate_c_header(table=qmckl_compute_drift_vector_args,rettyp=get_value("CRetType"),fname="qmckl_compute_drift_vector")) */ - -/* #+RESULTS: */ - -qmckl_exit_code qmckl_compute_drift_vector ( - const qmckl_context context, - const int64_t walk_num, - const int64_t det_num_alpha, - const int64_t det_num_beta, - const int64_t alpha_num, - const int64_t beta_num, - const int64_t elec_num, - const int64_t* mo_index_alpha, - const int64_t* mo_index_beta, - const int64_t mo_num, - const double* mo_vgl, - const double* det_inv_matrix_alpha, - const double* det_inv_matrix_beta, - double* const r_drift ); -/* /home/evgeny/qmckl/src/qmckl_trexio_func.h */ -qmckl_exit_code -qmckl_trexio_read(const qmckl_context context, - const char* file_name, - const int64_t size_max); -#ifdef __cplusplus -} -#endif -#endif From b34532d7d90034aa99eea1a2a13c87a18af33481 Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 16:36:22 +0200 Subject: [PATCH 070/111] Comment debug prints --- python/process.py | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/python/process.py b/python/process.py index c7f3fac..9544916 100644 --- a/python/process.py +++ b/python/process.py @@ -131,14 +131,13 @@ with open("qmckl.h", 'r') as f_in: processed = list(arrays.keys()) + list(numbers.keys()) -for pub_func in qmckl_public_api: - if pub_func not in processed and 'set' not in pub_func: - print("TODO", pub_func) +#for pub_func in qmckl_public_api: + #if pub_func not in processed and 'set' not in pub_func: + #print("TODO", pub_func) #print(v['datatype']) - -for k,v in numbers.items(): - print(v) +#for k,v in numbers.items(): +# print(v) with open("pyqmckl_include.i", 'w') as f_out: @@ -151,7 +150,7 @@ with open("pyqmckl_include.i", 'w') as f_out: elif 'float' in v['datatype'] or 'double' in v['datatype']: swig_type = 'float' elif 'char' in v['datatype'] or 'bool' in v['datatype']: - print('SWIG, skipping') + #print('SWIG, skipping', v['datatype'], v['pattern']) continue else: raise TypeError(f"Unknown datatype for swig conversion: {v['datatype']}") @@ -160,7 +159,7 @@ with open("pyqmckl_include.i", 'w') as f_out: for k,v in arrays.items(): if 'char' in v['datatype']: - print("String type") + #print("String type", k, v) pass if len(v['pattern'].split(',')) != 2: @@ -171,10 +170,6 @@ with open("pyqmckl_include.i", 'w') as f_out: f_out.write(f"%apply ( {v['datatype']}* ARGOUT_ARRAY1 , int64_t DIM1 ) {{ {v['pattern']} }};\n") elif 'set' in k: f_out.write(f"%apply ( {v['datatype']}* IN_ARRAY1 , int64_t DIM1 ) {{ {v['pattern']} }};\n") - else: - print("HOW-TO ?", k) - - - - + #else: + #print("HOW-TO ?", k) From ec98c3f19f772952059dbbb41a61e925a78ae160 Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 16:36:34 +0200 Subject: [PATCH 071/111] Handle some strings --- python/pyqmckl.i | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/python/pyqmckl.i b/python/pyqmckl.i index 3f68b0f..08b40a0 100644 --- a/python/pyqmckl.i +++ b/python/pyqmckl.i @@ -11,25 +11,22 @@ /* Include stdint to recognize types from stdint.h */ %include - -/* Include typemaps to play with input/output re-casting - Useful when working with C pointers -*/ +/* Include typemaps to play with input/output re-casting (e.g. C pointers) */ %include typemaps.i -/* Return TREXIO exit code from trexio_open as part of the output tuple */ %apply int *OUTPUT { qmckl_exit_code *exit_code}; -/* This enables access to trexio_[...]_read_dset_str_low set of functions - in order to return one long string with TREXIO_DELIM delimeter as 2-nd argument of output tuple - */ +/* Avoid passing file_name length as an additiona argument */ +%apply (char *STRING, int LENGTH) { (const char* file_name, const int64_t size_max) }; + +/* For functions that return strings */ %include +%cstring_bounded_output(char* function_name, 1024); +%cstring_bounded_output(char* message, 1024); -/* This block is needed make SWIG treat (double * dset_out|_in, int64_t dim_out|_in) pattern - as a special case in order to return the NumPy array to Python from C pointer to array - provided by trexio_read_safe_[dset_num] function. - NOTE: numpy.i is currently not part of SWIG but included in the numpy distribution (under numpy/tools/swig/numpy.i) +/* This block is needed make SWIG convert NumPy arrays to/from from the C pointer and size_max argument. + NOTE: `numpy.i` interface file is not part of SWIG but it is included in the numpy distribution (under numpy/tools/swig/numpy.i) */ %include "numpy.i" From c73a2aff3c747de1774fc52bf41c06a2655e0986 Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 16:38:40 +0200 Subject: [PATCH 072/111] Fix missing LDFLAGS --- Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile.am b/Makefile.am index 8eff2f1..d60766e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -65,6 +65,7 @@ AM_CPPFLAGS += -DQMCKL_TEST_DIR=\"$(QMCKL_TEST_DIR)\" lib_LTLIBRARIES = src/libqmckl.la src_libqmckl_la_SOURCES = $(qmckl_h) $(src_qmckl_f) $(C_FILES) $(F_FILES) $(H_PRIVATE_FUNC_FILES) $(H_PRIVATE_TYPE_FILES) +src_libqmckl_la_LDFLAGS = $(LDFLAGS) CLEANFILES+=$(test_qmckl_fo) $(src_qmckl_fo) $(test_qmckl_o) $(src_qmckl_o) $(FH_TYPE_FILES) $(FH_FUNC_FILES) From 3fa5f9a34bc95d7cc12c404537f8b36eac5b1505 Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 16:46:34 +0200 Subject: [PATCH 073/111] [WIP] Add tests --- python/test/data/Alz_small.h5 | Bin 0 -> 1376952 bytes python/test/data/data.py | 47404 ++++++++++++++++++++++++++++++++ python/test/test_api.py | 11 + 3 files changed, 47415 insertions(+) create mode 100644 python/test/data/Alz_small.h5 create mode 100644 python/test/data/data.py create mode 100644 python/test/test_api.py diff --git a/python/test/data/Alz_small.h5 b/python/test/data/Alz_small.h5 new file mode 100644 index 0000000000000000000000000000000000000000..6c79a326460a0dc052ae71b87db9b4bac274f51f GIT binary patch literal 1376952 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
$r1gOzDYZlj302e$0KdcmBEJ$H9m4 z|D1OK;$&sjIb%5w8Rn2?$NI)KtjX_ZnDX9Phd7qqZ*IFECaHA_^&#v;i9JOQOhR1s zxT8vg2_HZ8by7O{yBjsc%OB+GIjut_%vX1mUrs&ZdpkUb&h;IiOTJZr+~b`5eha_T z!T2EWjgfLsRQ`+PV+h}KV0@J4j2tq5dLiTX70?graV(z4g5Un|*K#tR4ZCH{my&MI z1GG<(4(zAW|Dc@|zmz)YC_Jw=&XWg;)irakul$LD{qm|R4#e~79Ou*v`JQ=*S|7;o z95ocK^uv$u>Cj4WJrc9EPm>9g4Rhr)zto>Jr={8MO1anlzpsk#bqAU9JXs^eS(Cn3 zv~$8C(mNZi*@8S__+gZnXjADHj4fDh`s5}YUa{p0pO9KF>scUcwJrTn;l zm*X{)Ks*}f4f3dUo2>7WlA~-d3gg8Geo;~K&%t=A=eaq~@A~-=`#6+rM~#1no~A!U zyMgD-mjZI$*6U$;%A0nKe#C#S*YZ19AM256%Wt8*mw0`iVw&+FFG2f6JLXwl_v5Vd z!_5Dm>9PDC_EYBL`3OIZFXrR8is1PU?xS)YMLUFfCtBk-=Zgs7qnw}%>)NugGittt zKB?~n!X89ZpD+&C|5(&VKY{035*^&{q#R|tF8X_<6ZSk(LCL>(w99>t;#lYKKJjzR zPr7g~M=rcSq7u^+UzSd7g!QRP~c?>L1?+g&jgZ+UGc|PwzPC&$C@gM=a`(cjCSd zA-@9~tj;AtzFhC)yjUKAI1KbE3*$drw?Zyf{E~hOA?ctV;5{OgJC1%(-{RE%fb@S0 zn)uGDnx|L~>-~J$t=Q5AzoQ+9^EZ_szuW4&X^eAo-jVhAAz!@OpOp8?R5i&TX?KeX z`QB7Xo}W_dQ>i!Q;NO(PIKJdydCuo(5Bo>yun(HcoE{zjTRHy(^XXR?<$Y!9Jkw`t z-|tuM8pHR0O&RxUiTAha@ZKDAVx|fEzYK3Id)!>f= znCn};cI-mi5?C)~R{X*KtBTKMJ6)jvzeFy%gLaoEcUN7VWGeWo@l z4u7l?zGsog+a^1e~257hqv^q=<+d*PnaDylt6w>6I-UZeO9et{oc zhp2c6?5nybmg@%x-@oVmJBY6{UdsEdIZpWf5oJd~7sfHqHLLHHqMks+lLM9AkmV8_ znmwaERP&T)zg%qJ^pq>-N#4`Q?*s9BXXG2>jeJj%c1Q7v`o#Wd=j^QcTk4C7laash z+p{YEVLgO;UFv+Kb{`Y;mG{W1c%icE)KBmY>;7v_$%kmjGoEq<{V`~l@uQPY&LfnY ztoH`zUnkE8z&};<8sva_$p`&=dE~P-Khl5Gp{&pHQ$6*7_0!K$^Sz>n_38C^;wj%a zr<_L`h$^CHweWX@+Ar|z7x_g!;l5%Z<;ndGeDAUl&jZ7r7gytv>wzX87w#}Vyr#)@ zwe$~oZw2E}oX3w~{ti&>Nxvm4>;u0WXywQGLuEguUAgTzmZP-%Are&}*W zTGi_*ccnM5BU}eq=kY!B>-1RrschE=^mMeB>*k)CnxILJR8O1cwN zf2H2>+#~CuycjQ6cqjOz)^CzOiR%3l$OHM*d3EYL-Z#t%zdp0zJWD!ZAJ9K_AC~4v zSo0y{y0Tp>&d4E8`KtDsIhvU&x7m z3G9V+{ztZZL*aSugM9GhQw-wr1>lbr;JIJy-xb1m=6(|AFZwy^JObpS&O=ZSp|9jC z)dMUoImebk?+lv#C%ag@P1spA7=7B8m^DQAMhoo$@MSdvY01J znU}}rzjMH^gy45!$WO^{p35%GeRg#(56I!kpS-&3m%Kc)iWuIU&bRP!b1$Npqd!~>4QjubK-i16VZ`g}C#$92DdEPKq*$vJU)C10EavT*lF|VqA$#xQ)9N(l@ z?*9bxeN@PYeh$y$-liR6oKl@H;`hh;6|Iy0<@9xwo=CsI2XVlhri^RW<#;mXz8=Q~ z?_;{H{0xpaNq3aeSJ2P**-VaO+7D0u$2d9{+WY(9?3Hn^bThm^RnFvjBYvkx#;vNW zdmUsPw1nFKlk^0_?(+Q=buPuh@14u@Pa!7n+opWzC*eIy+&f-^aZoejmnG+hg*Jw~ z>31bMX|JU`^O$@end2JzYtTDQ#W=cz`;-d_ zxvx4^?Z1j|k8Pg*^i;$#t~>gPxoQu_8|m{V8L{%X(#;M?6n{XW|IZFD#sA(9i#&Pe)j^9BrcBx4t@| z^73}@lNX?$5&qUP*dOs0>ZR-l>5lPE?0d6s^mBImfdBJ3#)-*Kcwb+sCq%-(oQ-q> zzG3uy@(1Gb&|mv~woiMNc}L_2Z$bqP~WEC zj`MG>kY6t_ujbrztOMyZ9RJ(x8jef%kI#`_VjbVN;5pMz&3~hKo-*i~a?0f8(BBF9 zmk#{fj?-nkyr%4z>9@g6>3REPMZCuNMIGjsbqK%@Qv(;23H#K<5$Knq9fI-2@ptM6 zSSRW~?AKTG20EZ!9LafP`}m*pM8AODFQ@0h&X>r)I4`_nzUWUwzu#NnC&Rv^-pcsd zCDz$j#O3LI<$`%3t|8i?zoa))&y{p*;;QTq`%n5vxh`>5=5LZOP=4s=;(#A?HRp~n zF2{Y#@v~j%C0sYqDbJ}-Cpg!YI36qcfbM4`@uwEzR)|;9_f4D)?Zz1UM$30k>aVnu z&HlhV82U+R-zA#)L;sB)sK-VBFmWE#KVr>(<9n17{2s4t$8o+m&zi5MVjhV4b5GNJ zzujp9yQHdEw^#1c)ZdHp%3*#<4>3F+N3mU=7ozpT%GjTIfnVb}DbeQqIL4Q$x9WID z9{5`mAs5J>?fwp~564eANqmOBA4$KUqWt8%xZcb+y>*6q<{U}ju7vbNJ(PN$!*{G~ zM_=uJR{pNraYlPlMn3R9*GXT=2gq0K`=8I@JD@{5j*9EcEB6)N`%2Hk_sEBc8#MlK zw!^D#FOmDk>=TZI&#|8lSM=B5<_%xfer48wwVzkc{%M?GF{3Z*`Fvyclm0&n>+rSy zfOfbajXc-ClP}xlA?ZV}^9u{}j@TbwIbP}++}F@kI9{%knSb>6tN*FrkpJlKaDUm? zncwHUYyFgYAjHivUVRC92QKiBWidD)&Hw1nyJzNy^sT=WgZ`8M@f_D@7Hy}MHuQr2 z82wG-j9iI>H1-MQjTwnIHK4)@7lzT!7#9{3%8msiSdZD*CD{s8*=Xyg*#=aux0{~f<${5{-9 zTu=S{*ZurPJD6|#ywUzx=Kk^1W|d?fZ}Wj^9s7zma%9<|}$}c+bp}9_J_4 zkA&PM-F&Tw|L^Z{eJ??eVP3c0KH>Pm$1U84pm&bj%5ibM_5XIgH0AGxzMv<@nsw!K zypmo?@A_(&mwb*__Sf-$^oR8FRe$+B=85_h<70>qd}Ut|KL|aCc^~%tJhsdJvwygn zaZ|5^{|oz~uIM;>N%&VhxnC$xP5cS^82XtJ{y*0HiRbg+OL4^KQ$OQ<(;tU^<6Oih zk|tfVO&xw|gYz)bF<;O4|2a;qlc8s}=Xll6+3Vf%KIdm$`>J<7+v@gD^-AI#i{$l! zryIvC7%SsfdKBAy*4xxGVLc1r=~U39V>NrPZV35NS;|kEe4xdG5aXv}ysLPo^3OgW z4uSr8&-$y6%Z##{Ly$+*NOav9U--RWQ~$7}Tw`&`!~GXshe5&xN8t7kX%F*bV7~=SFFHk{bG=v!RnC_dm+t7kjZz4RDB_f^$$r z=Vz3r9xMO$`TR?bfwcvBpThhEy-uZ}SM!`>5BT#c8o#jaw=?MQy~ziK9~*Jzci*kj^cd`!rL)BI3muFY4h2pNr=r zaW(e8Rr_~6K!@c(C)pXNgI^^9@jwsEV>w}6OwISRD$0N2Nc22K5D$fYlL`1V4=MZM zV201%1*%;)ve_bk-YU9hJzFWv-iV`CBOY0ye@f$bebG*B>VG&tvN( z>6NKIGP%5(FsfDPRa+j~y{GFpJ*v4_rM~wpy70>}rY<7mf_i;hD!1+r3mm-NLutLU zt#k}uF#gE8&a%YwVXBSCLWKTLJr6IeyT*p?DL*Cz{4AAvZmSxXzf=h5HzVyF;`9(t zNyYP_6!l`nb5&%dI`i|~=G3!!MLVSg^>R#J8*$#KtAKe)U_CVSO{W9r&z`pIePvT1&h6a9A~J`?@-BraYwo*^&d1er`cn0|fgB`NdcUqQbx z`FZfKrNTbQqIA5ZDET+y)j3tdiJOCu9`?g?1sHF^zK`X(H{hRcpc`)!7a|@?_b;2l zx4fKW5*OU$8yesyl# z8T-Su?_l?W5AivEFWlIH9JjuHt)Id!Hufp?5$GvqzSs`!IR4Ko-vd9T-t53H?e+%W z!+e@?upNCr27Egf_3YCN?_+(T-(8{}VfxGd<2#sV&XXfPll72T_k{f2?(fv?+4XSt zn{pa{0^k{$KTe!sl=(jGXpSG_#Q5#@3ES284Lz_O&}%g7C6GViKKsx2cr|`)wqw4l zzhggti1X}t)$1EY{Tc1VgFYF5;XK=~Y{y|dW}oWczoL(?^y!rEJKDPjX92zx>yTd` zY3KvrbC?JF{^5Q0+hINMp55N1AC`CxzOS$L^UQuadSEU@cp=ao^_IzL3)!fH; zk9_W%{n77HAGi09?NI;K`!l1$Ike~>`LKxxTY&p9dKl~~GamZSxZm~nnU_Rd@CWoa z0`^Z4^F6FH$7S}7ZkP4M+>PGN@8D`deznr=6g2YtfAd-HbHmR}yo+>&d19PVao+zo z{e+{x^nYF=J%JwV^N;r(_Lt$a!~>c9be#`a$>?|V1JJLf$8V4405?f}5BAU{p4ZO$ zrkM8#tIkJbozcpezi2D;EFr&!9EY9v1bp=cv=q-7TJX@8fUet+RRasBL z#HHc);6BCvb5gVit0n~h+-}iw-1krin|)Ve)R|g>de70);d@ghT0`nwkucqWX?q*!r7ubhcVJBoE z{hGWA?eEEL?0xz-bbXD6s^j&C?nC|kK!46$KMV0_g}44v@F$yn_cDLaiT#=_R!65K zIi$v@z+BFYhQF*WwC^;ox3Q_e%eY`fQJFG3YZDptK6GE*&=BBh(+KV4@tIEf-I!*# z`>xe1KI!G~5W&1~yvEN0dbiMD#OL5IFnj@apYb<<9)x&Z&abW?=muPL1;!bOyEOAb zyt3Y3?&x1}_?4>jf4u)0`^^R8b%niC1bjBe)IHLCgZY@0+cAc(avzdzv_GQ^&vPO! z75n`Y{N!%ni*crokba;3A>!{N9r&5uE=l=a<~cAPV(%Z?bt zCjQv?HPK(%K|D{@&>_!B(9gZVcVo==Q~u6)CG(Z-c^RnFfc(vuR^6|7T*K*4#eBqB zSvM1Wg!_s5i39GA{fR_-jMv2)KFxW>75%546;Hne{4rUK9M=7$et6H!6W4+5a-Mlj z`JJ!r1=0oe)RgpW*44pk2gs*fT-zd1dmS zQ;y4SSCFoCdj=;)eFO6Q4eF*4mlSU7AHD~A!tc3^e+d2O`eU8#aXZ?XxF}<&@TChd0+p|=gc~o`6vI!b8MIGnCJBUNQ2+v^ISLd6Lf6w8srZa z(jnS$=pX5u^m_@Yz6 zP4nCn=E=~{2s?%GHj_urc|+a|{JpH(OB@gBE|>A&Y5%hu^#j-s_UCnfoy_x^U#5qi zl8Sl^{R_}13*-Cg9ON7GL5Q1VzD2Z|XVMqtGUrQQDW}Z3ay~7j_itU%&i~uzOn<)B z9)H*E#(eX6$M2GlIR4J|zIDa(q)*`DKlA^u#-;bq8?!E)SKW?XUhsQtKjr_Ff82j| zz0a}#e4kf6&U>a`eBR*-`4B}u!tt2-WP9w_x31XNpa;`mhj#4aCLQbc?Z2~sj{IEz z&pMX&_SrwS!|S*DNqvL&`8?X8y=>-Fj=Ft^@5HelH~*a-G?( zld)6r9NTx8PqPovk4THgwKh~gFRDDQe33TBt^t2Hc{3a@`5yb_I8OGHenyA;_-+LB zM*7j>sc$llhPo{IpifeMc!1x<8aibAj`2m!rxT3a)BTNyKeZI%K97(umJ8p_O!+#5C3f05PY?aiAS>D z6yj%MS@!95)qoJ8J^+5Iw%pzH)05UAu>aFbjrQ|j*VqyQyO8@3C`P27v?rLXTX-U!4wcwS~C{lex-`<8fe=67JfFm8cgmGU*<__xmzFez;p9HQBMMY`eXs$fP8m1`Ygw-q-{*XvY@bvjwc-q@FV-{*(@LOc7tsTZjI zUSHJ}Bwc`h=vN?r3n!m6dYtaRT|Xn;@~YRz9*@(%N5YR-L~wqW@jGgMSpa%A>Dbsw z;5+1(yxQxWz@KLPIMf%hFPNuca1-1wpd*L+cjOx}CO;hGGIE0d^Q!g6GzN#Ef4BQ3 z$mjSy+{ZrWJd;nwJMeu+c|ra~T%^4YhJzf1z4VNBlf(K^uG+7%!i{Fbe?P_}cL>v*~AJ44XFIpOTtd$Ioi{}z}pG=+U z-#3+s=P-PLdJNXn)a%jn8f)fH-*=}xWjqVt&kVcL{ygv|+DrT%aS~6M|Azf-_>qGjfa_}4o4M}1l5R<#{N3@&=Qv;AxNqo- z&(j{{|BmlbFH1@1X1u07zUSCaw(EFhT*cvc(;oBM^?JX@e3Q@G`4qpWul9Z5&>zt4 z*Y{ICXZMHc?`8!3f8`e>pECVr+z$OPzq5Va-X-(9<8zGPa2)zdxn}sK1HVXZ@GB1Q zk>1Voj91XkV}IC>l<$*2ao-!i6yvUjuGvqHlY9_Y%=`Z(A0iB2VLQ5i)Qh5l3r>gc zvVXjWL+?s7{$|8w&~6Od=f1`N{4V|Blq2*z6vX;-9wPC+9dC{KH0#R#^U85xo~-;m z<-FVXzhirj>on@KXRe|#_2uB{Y`2&9X=UU$;yP=GO&gK6kxYEsZKvm%76!LX zzZ!6e7$3(QZQ*+AE5~j3cky?QBW3@>js5|D8|%7a-R$}o`4r>Kn!mV!4}SvPzIRwZ zC-8lq%VVzx!}$cC;`(AdPQ(M6{la3+8bil?cWVOmv5F3V-Gv}DM;s}2Yrph{1Yc+_xJF5t{dpeLjJ@n^fy!QCM6$x zVc|MpUEp8*LO!5Q4GFs5W@I_ydodozxJeNiTqX(GQ^ELUv7eOg2hY__!#IbrpNPL; ze>pG2$?9?0}#oZ%M7|MA{8`7PVkSNgeP zF`wUBhe+e!(cepreQ%GmrR*nhNQoG?J^z*T@6Zo39^5zcr=PRSN6^tX$EWGbULS+s zOW8kDSA+E8xDKX$&Qr?w?eYlYKs%A&Y$xUWcKYJ`y#Ie)IUejIa~=%rZJyJOeHraA zk9K`p%a=Fkw}}IRo{9=_Px?7$Q;#0&4?BW5mh|vb+Ve&zw>Tb-lfPqLnO{h`V#Ra3 zQg1Q;!_KhMPlR#65Ah22LoDP9{c%wi2R|vsZTC0uyVy^dH^$u}9p*6x@z@4x;Qmh= zUi{Jm@`E@)7sYYvdj1Vmhro?1jy-B&@_97h&T0H{x{gFc_3>k3%<&d2X!jZZt=HXM zeawHXV_{o8rnPDB7xc@rSaq{3U0Nt?Eb&mxt5B@7J^WSt#xz&F70y!^UB{rJq;B@> zcgtp*I!o{eBwGJ?;ho{)D%NRwWNDr0b)o)iLy(u!Ln03MztMM46_s?_cm7)qDHoUr zg7M^)sTJ~7DYU~+&F~2;(Dg=rQ!fwao1^Y?PNml|FXayT8S)W|nK&5h<&o~mC&&*- z2fPA@N_ounh9C8dMc09-Y3hM#yiY!3C)4huUc-IB`gO#U;QTUSoj}kT@V9TR@H=8Z zF)t)F&Mj(Y_9^#=zQ!1RhIPk^97@0J(Vq=jr^5JW8P~*qrQHwvrYLb%rfw$okJ(q8 zPd&a^WB=>^JpP-iIHh4)+Q7Guy#_rCv+Di1q~Qjj%3W zG~T!Cx6D6F$#3j@mcR3g^<-WW{M=709Jjv4v7cril27o;_V_=q{QX;3{rxD=<+tSS zSNzFAF4^DH-?hu1Z+-V$&!OL@eZH@M|MoocJ?_VEwa@k(uY8}sPsV=m%Kka%v8LV#?>l}c<-8a@m2`z`gz?w29mgx_h5M9r%Kq`Y z4*xsOhxwoFqn)qTo%eNn_Vs7`y#N38`hUHT?_nRZ4(|J}`ptIqHOAcM{NVmq<8u6+ z|Ld#qcYL)Te2(MAx*C0h|KmB+A3pE+d&=*Tj_v!`@q2jQ&@0>h*46QSKIizmtDThNweOd2J^!uW(SNRk z@mDxL&*#uD<4>b~$mbpBgYTuhZ||?Z|J6P<>&Ex-9O%;?&%}L;!xegQH2ikNo11<8 zRr~Cp<5lY|#O-{|cd!nmQ(W!1MfRKRl5T15X#QgI^zc6C$F5&-d?~+Yf6nncDW4-f z$6%h~9pi{*U*S7n{jYx~e>3xF_7BI$_jx6~=>H>3J|_Nm_|8{!VD4*NfjOrMd?wOL zzQOZd`5oGu|NA?f568Sn`?%On^X^p^E_v>aIy%jSdHnRlLT@sD6U6Jdj?~9Mw~vg! znQ;Q@#oW)-!?Yb;Uo~=53nsp90sp`g`mKzggY)jV-u#_cx94F)=T+${Wvc%*=BFZM z;m=KN>SEI`#QKhU-4d|A8G*~oiTJ$-{Ft=!BAHKM>~hx6*8Q^QfuLTrkzX9Qp6^H_ zzx4h{!*P<%3_WmM)T=mt{;%6J{yA&PeHKqXhwmj?G=886@J%lC$8bDGU!}i*>rVLt zIyCqoegBP#YocG+f2^bM2>p0t#--Pt=Zn#AKs){(@ob zVlnHSys~zBl&WvLgCRoPpT@UjGW$cXpDW`=#xKe`P?_$>#y2Zj1%8(V<0rs;VxMH9 z--hd8{3LpPoq$tgeKh*zoiSe49kTOL@?Fvo_c{NEzGvhI=m_g(*XQ)_%^cpu~7e2^~f|8t+Sea&C&I0OE!+lw^g=Dtq3e@(l1j`jul z5&tKi%yE6p`(}LlyLLL!-({TGJa4|oesW)@lsD#iGcTIYf1*5anCGwO9sS|=z<;9f zzrCM&9hleu6@7wl(jOFw{zRH~IPbi29vuH4R4MDZrauL#FDsosw%fa0HE8(7Iq$xg zz+>7XxJ}}2O7SsLAYD@AdLa0_{X1Mo=GCgtH@8|YwL(3E%FJJutoz0ndwo%vJbBa+ zRu|Uyf8L_HMNnS|c_XgypT0413>`P0DB6$hqvkZ)(l=W56I~x{qEyVC|8?z00p>fI zk`=P)JSQ0a@m4Fx-A?mYk?Bg~n7vf_L*0h2+Y_SJ&yyD!UFIo$j(lxFTvNFP6y9(; zVUA*+)SIvm7Y{U>rHJ3b`WyR7&j;-@)~Cw@J1jrr^Ykklc@4UwJfmDBeVFy7UIE-8 zPDQx5i{gnFo7se0Cc}0A}$V=G0{2u3x-=$s$dx*G! z{Gk6BtOxl4aYZ>;&&=pm)RVCuv~x`Rb+h1nE6iV3=tYT!-gJLySI0t*XNG=w58sWnYCe^p^UCj9^mrnGtEeQb7fJn- zaW9Ndf!~pyxeqYj?5xL$@4vS`T=bygrv07BUofsbLY!c$mU#pJZR(@$-djAiUyh2b zzld{eN}-MeapLX{IPH(9cW%#jqZ}YTa(tv`+JCGg!hNKli#K`@ab}da_@DU*W_(fyS5`Yr8xz5ae2^*Ht${UWX+0dY1@1-uR7wXInf z5&03-k^fqf@mI_ zocS68J&OFs!hOT~7J40>xITv8VcxJ`h~o-3^G*8T`cYrk`AHszAA+v151-)uc+NZZ zT8t+e`!?39=f{)$fcH5stj_@Yiz6P~*det5|1AuSWx(CyRMZZTz#O1HFDFF^?Hxhp_G&?Mv3hNe}$|N373Vqko{@G5G=I z64pD?&=u>LU|z8fQJinA^9%TU3xIxE&yMtG_xI{?JhJL@?ztY3w6ig<5x~Rb$M{}i zKe=LF63lpXzap%}sgh5DZ-Gu&hq(mwl^5U>JSRJX^~4l${TdhB9(bSnz~y*i{c=b; z*QvS2{MA}mH&cJtUHVlR5xn2M7UWDB$ftCuKb1{^&nY~Q_9Cs!d(h*_A^I9gd?NOH zEcodY%vWXPL%lL_I__`!g}83|8jtnO!8if*6`s=^W8?tkvwqL+$K!cEls_rwoA|=q zR^g_W8c5^7BfbpMGp4JV!qHxX2ts zl=L3|y#L|$a_U2Y!sV~~s9b6PYqYWWKQi#*_~p&V-%QaYQ?NSGBm3MQ}JWc#GPu*=*`p}BV$#SH3u^fk~{YpK%VPCK*Ir98Cia}B&$cUoRGU;5-fi@nY`{VX{Dfc$`dD%kmDq~e)9 z*^9qy$-F-4{@<$YRer9EeOsD%B2{3;y4^cYHI^%`8S4DJcZqsZpswrM;{7Ds8{Y?E zZ7Zp4<(giszj3lc9am}DCduP7U0MGd|MdH=!SZHM$W7mE0m^spIPC`jsB*$T+5{Lu~5h>wV{J5C_YP!rwJU8a|h2e84?S^RM-yz-OeN{c(h8(q@1{(bm zcqrnI1o@1Lbt96=GFNLw{)7EzVg4ia2<{u!wPpQz%3pn-{)!0VbTMB!nBS>x2e<$D zdrp7+ZkKDo-C^9(kaKUW#M?u@ImGE)48Ns6Tkq3E$c+NBd2asiR&QznzEQ+HPyVIP zXZ0k`T}74c>;9-yN6I!pY`4TE*3v)(-#ZQt84+gF}LBLJa5GR%2>$g+$+TOkYp?za%owUun z`-#>Y%L($iP~YB5aNeIHU)6q#My4+R&feF(-j?VpU&ai(KmV4mxI|og^z+#Om8nJD z%|k9X7UW~7a#=s_4*N7rLSF>@WJ%Rto&NQhUxrve@Z*|1hZz2Xa)y32J-9=jc#^)% z`azEdzcqd`ONK+;?~mwIMy{T?b!T=!OYEPL$p3Ixq+jai;9ES$5ppb(Id_2cNxrT7 zb&vWU<9fq(p#RdZ9%a#WONy~wtM2y;@C)MN%0sWO zOuof9fZ{rGe^ReHYu(Uj#?;D&Z(;wD-oQ6lPx`Itmwqme<0C)9IOAZ)z62kO0`9?n z{(H~#*WKIRuVegXoKNB~8JA++XWie_X8g2Is8?}cL%uSe#yFk*9Jm{OzSPZH)70BW zyN18h9^?6Q$TR16G2ibE{lN~!`f;4^$Zw6F$n%9c?|L2H82(Ft1?d2zgLX0m+-!%+$Y9=ZTxUt zFHOJEeBbDMoF9yv`KE}UlsEhn^oRb%Qx7!u2>lKExl868IG;1^F0PnRU6pE@YHPsx zM#Sx+o}q^TXDmHejvZ8?hL0-KzDC}u54;riAM`sHqvsJPto0$|BdlA=y9^( zyA?gwE$FL~>ttSUBpEu~zVfo_K(*}rfP((5d}RUlb)mVbCl_rKNc{?R%$v&hp4+RX z+u*D8{%T;(%fR`;)MrG;bv+UP`)vKEUbj)dm98gc{`|dvx0>}a&I-_XGr+E*KQX=N z^ND>ae--O|aK10D@;&oM+Fpzcm~%9;T)OnrfoY|nKh#J6X&8r(o6LCI z3i-O$GfTnlYpZT|P1ChRry;7&?`;;W8s?{7tvlO1ZSI@0{6oRHsXx6C&+3KmhRwYt zbC)jmdGKz!s-I_T!x*2>3B$IO z^~U_y#Xi3TynkEaxzw#Jz!@HP=PbM+A=v> zOUnYm9!Gq7tF-Tiy*}S;i5h-u({zb}X z@_*L3GIERjka`pOF!=-axzV4&ztA4}Ir+;Y#6zl)?>oi=t(p!pD8|d^2Vnp8mFHSL zf&M`K-)d~?@^@rhaE&~Tpcf??xkG<5 zY%F`huXTI&auQAfHF z;)uoY9p?XYUEV|QaWU~Awx`GMuCza)2Kg)SoY}xH)2cIHI@liZRW~qkdC9jLXm^=7;Au-LvXC&-qOKY1*T@j%!)|F0AXrIIZq)Gt7@UZ^iVNdJOGi z%3r;{^cxox>NC8r+l|A%a5H&Y%p-zcYxD~p$7pEAt@V>)uuE!D-hz&tKtIu>7wo5d z=6~G}7hya~)2%bI%PHU-nRl(qEqxLuLu5SpZqZ;B2AhMZIBOK5B9UCiMQeWH08ba z@POKNYNrfXegHX=Xe^SxcFCbOR($H7@l^%CH$dOW% zZ{XkMaSmoRW3L0xMt(rM&2qH<_YLQ!vdQHEf6hMs&e`bMdY&RJLu;I=(P~q9lPAu+ zIN*Y?ZeLh$TOn^7`b{oFm)sAuGiZP6b#b(hNoTPR^kmQPPWhhwdDj``UgnP zQ4had$k}?=Oltm#2w0>HSa<`!*f?Lm64m4D0hB{2AHFhfN-@&hM=vvv!}|^vAW@(kJ{; z`@y~XVgF^7eD8mFw5Mrp__gy1&jWy+rS2yF;Zfvr4e*nK0(%eq<3G^76YDC_?=7EK z-`RQi$LeN$+MnvldUISC@bRJ?kBNVT}7di3{^J zGa8wKgz^h2b=yep*`YUU2yJXQwbQIZDYn(exl=Ytz?#azBbMyhpG7c zJF?E&aZ??T5>8*1UsbNRW_J3tWurxPfJa_kNa3(OcJ=%hz`W*B zJZD4GcN)Xj5I3PcWAs;!5As5^U1-xkG%gV9^1{ej%B3P6JsYH*RYQ30;dlT1wI|!D z&g9?pvzh%*{2S?8>#@bj7Z``Z{IMQuEc~wTuwM*b!1%|R$IiG1@XzpfHBH5bf&bt>V6O#j=zKZ881oh~>YWKr3kXywtAJjiynDa|1 zSE$F(zo&67jlt*BQXjQak2~3=WQ7Z50~G2;!Jm?o@i)pv<`?jsTl}Ac@)UeI!T6E2 z|IH2S$hQe{Hr*%ANgko?1Ovsds3eyKR0nNO`qu% z`3?E6{+)U6jGu&CC{OCY|9)K5YG35Zd%%z4L_Y}eLuj`g^+sX6C;AO}&XVR=1u_0d zu$SL3USQ&V^b?S8=>En-Z%8nBe!VWVo1@8B*sfK}mmGp~YB67z%)G<@0ed+$_+u^f zFE!)X$X84azi4Vh-}ECR{$NGjQ0^1fu@H^3Eo1Z*Jsv0W5%86F7QG&JdtZ z!H27Y-fNn=u^LaK$QP~98(F7FbR44r`o(>e3*!hkc`xLf#Fbz?m=70){RKM60lZi$ z_*L?%Ru#@i)Lz&|N?aN}xo|c=VI5rNQ8NC|_%G*6>*=)Dc-~2R=%G2`mt*}1`#A>s zy+>B+#k7y$4;F`Z!3W>7?!S?zDeVaAL9Z>#-=^!ix@9#Z2WYqG^$WL9f8x2qjPuaX zuG@Xj{R#fabHQHHK7gF~M86UGY4jV=Gv((e`gIK7C*G9%hWk$I*R^0*dVqebaNL;J z57>WS@ZF4{qxXgj!Xh53qRNmZw@JpnJ-WhAgN&Aa_aPk?h zo3;zH3-xmcKM(nk73TpV9#dTDI@C=tFLC5k&_A-EA60>)Y=n7kX5@{YPu4Aq1)t)3 zZ!DVrGGiW#C@oi;8N-W8I0f1HX6#dS?Bs_eLM3UCepq_w;y&ozlMg{ypU~&6Cm1ZjW`HG}`3Nqs|ZLDx=c& zW^?subje?*ZWt`?Uo3x~4GmDepU+qo6SYbze>d?|n}tgmXOOH9J3emkc&hSmJ<+z* z3si8NXXOn0hp661i`^bKWr;W~tT(YjyXop|+l0Rhq?sl=8@c>AKX8sZSbFij&Tlr# zFZIiPnCV+PPQ`VNNYS% z1Npho{R^3<3|2!g=YIIO=tiY#RPDQ~aFDEyUN&oHm(l9n)YGAGheGj%Va4??cxq<*J9&f8ph+3u#Wqgb~-9(uzgbAE!h_q#yP zdyV)@HY4{n{S}k0FM3tX6<$w%cS{}8`^FTt?n}plwQkmeUhD=sOtAJi^{{%oB0c0r z&i55|R2ZoKJ2v-od7$V#zHam%3i1>X2j#iwHE}*<4`nkx*B0^b1KeLr zb!NoDUSa1)D}6pjJ8@g~xksk#gVcz0Q)PAeVCCW(6<>b;U{lBSabwSzyFOJ6jtO=b z&W|r?*0JBLceBdZ8>Hqwy?dw4mtc9C=d?@c-))q(qdf%YRH{SA6Ze#<8lcMGnEw6I zu@lwasOO;_0#?hY;Zx2vnjR!=g1Wyu^F9c1gr2Yi+p4GUZ#5ZHJ3!UhKf*@IOGVdr z>neLHwy0BWRSQ{rqzl=^SYgy^D`#)>{aWH|8k{e^KA&5tt5p;bFGjF`|7 zbW;WA($|EaqKeRtIym)i|LgzFP`~epD)Fb=8ud9OeYzZ$8S)|Zgg>s&>?NZ&6-YaK z+CbUA;IM0tX`|)W6Qz!Ndj?BX_P>kHJQ5=AmkMp^=i@J1e$BLYWv9*(vp(mJAJ23Y z)L8|+)q(xz1-$qSl^kx*F-__9P{8XHQ~G?+`o`bp`A367XBGr0;&ThTmcI7a$eJdf zcWGQw;ID}cn;D+3MW?Q!>4*4KSJC!#WmW#zXj@6Wp~`jAtvB~lje|Z`(C7`o`KjhT zGt_$dWtl3s>2dIgaVz0JDIr;E7YT|i(Na3M9AY_`)n6SRn&iouCeH0^PHR7RvV@&? z^0yYIUp^+fyE>d5SwU2gsGXM0)MGhOdSTSI_H@rFK-oBl)fcy+mdRFzf| zP%jC&)*t#)8R&1BiN^*#wpVxR{FW{2yij%F$M;!Xvo2MaAAK%%Ys+-iQB}XR=-o`^ z@nUMo@j>H6>xaQA_vN#9@171)EsFJf8$91O?}N&|T@~G1Egqay!LFh5SXDEjexF{z zefS{{u`6&RH6@SRk<+(FkCI<5{}{2~_oBLX_=kOkDxFjFY}{(u;Ak1Rx8&`+f7y$!J!A-|-*@@wR^g=){eGzTIU&qVtJ#PWP*>J!s@ z$(?-7Uo<|}U1|M(w)Fk;OrGy2kCh(fvMjlE_nh*7zi~;11;^CPQavLZq&}!J&YN3v zL!U_XVoixug9e?EZb3;%<}I?hb#PFza(h)tmzLFzuG}lN8jifM?&C`Fs+RHL;wCH9 zq+>OEuXddw&b60S_fK4{vRv6TJoC!6vav_$D>*LAl?l6to-381hw@Iiz9ox)sB~4I z`d?eLNpg84Wny+w-!*amGv?+J*}R}zjU7LXm0HIxjtgEgLmNK&Ap`zQ;jDoz4vUcmd_2|{2 zedL!*el|$KJel=JvB2iVN6M6-zc2R>ZmsJ7=w7X7iQ%gKB`4pX7fh5x&!?TKHg1M` zICAd7*o2-uKi0%`wLVl(A|utApXb&V;$(>T_KHY*@5rRda_Gp3(uMMlG4l1Fzy13J z)o-8%TyCv)&ucGpj=#(0^k*}5dB>~FhlR!Mf#jh1! zCIixU>v%Q8E|r`nl54BFUSsRTJJsfj_V4dhI-j7k()2z~B`JCoXv~GciISmq zm)lDhPLswnrsk~L&rg<)53b#Dd7vz;|HHwa;Vn=fyOD&YYH={|)kK5SqTg8SwZ+L# zRH>7l+D;$nBe6dY>U*~03dkF8)%W7zf3y5CKO#HOjGnD_fj%k*MO;BUoT^?K_XqDW!TW-~Y>vNQjzxV;~U!UJ+ zJXyN@cb^j_1XH~j9i)R1SpY#zH%HK^(- zw=~aY6K8}vC0?K-Pql8up{rfTv{I7bQLk~fwy0;Jl+IW6mL|svwj0;Cqv(9sG1Pz6 z{ZvVj%8AOxByS(s*jrMynvu25p+2f#o+L@zPenDXdV2b=1BG~U+9}$9o?Z0$h-F3F zEfH4GrRex}W7rv;<@t7NxffBBq~}zZO?A%f#CK+>9BI1SRDdNWehJ(J@RP-;XDZiT z=Wdnl+gV=jS^swV`rh()iSt!HxrC}@wJFzp@lGP={3}(^jnhr8g!WML_V$dMG`^oS zU$=K+pV4E)z4ln&InO$&$SK=rXW2Jf#YL^Skx+NGS{S~2_N`_s)uq^|>y?hLkTHK1 za(z8sV@KxC8dH9RJT8+*O79Pnw?|$at5$RX?C#p?xm<6xZe$nOC;5r97M-8a z81{G~&wZhv8~&L3#^0-P{KXM(uB9}-shj}EX5NGU$=Ih{H=Iuedz^KmB59wPyc}&O z=Y`*a{w3ms?Q!)~JF^ssyje}HTj(?_PsI+<+nNH`S{3iRE6>_j$~8D#&G;SYKO~Nu zb}{k6%)?-QI{g{+1896?Td7s5*UlF`gC$q8!0AXFt^}tafAehL#;QkxvU#S1RGV=d z$6wDAAZv?8#C89nC-D+W<1jsd=gb2-&w+iHM|cjsIVVEbafY7Bd^?__5N`pFRhG{@ zbZE?;wxZ=?U)8C=^^b$H)yI4^LmZ%r^4wSSw?6HgA&<^iPDeaG+^i6ojb8)_RMOANguELuZ50#DAbMKfDFjF$lIkrHx z4OWZ3r1lQUGE|=K2<+XXX-n1S+T(N$3ywuTPDR)w!NAM5P>8dFPCQJ02;*bAUy;_} z@i#&rXDBVZZe%-oaJ9Fw^R>Kn20zTi_=nQ*@zKPC1E*II-_5T!Y#i6yyVnR+ItZ-136mR!6|evIBH`3;?EIZ8b@W)f(WlOg zP&J(L=O}V;i0J&vN$O$y?Pq^&5Mb)7@ccv_cd3Z{SNd^tqkVVyJ?e_Kqk7AvhJPF# zGa^L3@AY8o)pP@;OrgBDi*6lYaNKc?rtRr>XOx=#_VBdd!v@HbfW2#u=L&$|poK8c z8u?Qy>U7pYa=ab<>(!wL);73C?Kf}A{iMFjQnSUSQ4Q48v-b}4tEwC4gTul&{N9;&r}j|ku(P9MLL6jjs1h2T|{aBQXSZ-Ri)(noD!I|qiB41 zH_>>&Rwkc7`~M38=lT);`|Q{U_B;t4M`$Tm66ZG>;M^5@h%5GI8u-Z)t;DhQS-RwC z_^zQcJLlPL3yO^u9iJ?#HlLdmoa*gJ{BP@Lp0~%&^&G7Z{@QbFn?n7hS~qqVu^)ybF7hE!Apa##ZDC4=EzyOL?H0PHAVY#+!b+A zte2(h&Q}J`BT$v^`fT2e6Z5f7Rh9Nfv_t$a9{NEsX6XUDm?#*@|TByM$rFD}$ z=}TmN>m#=xFJCN4Ua2KLf?!9s7VZD6CF^%4G3)^d`fQa@c*nncdsQvSw0=mMaX-lTgt)`y)0~$)5z9lSX9 zSAmC8^0%_DJ9OVAJMVm0F!r~TGU7#}WiN5hIh-$ss7L!}uYLM@B;=Z>(sH<#n$mXK=LU;9srELm?K`Wn;`(WvhA-`6>PrUi zyXUt?<*ywGP@R(#S}g)Rr8--sdeBi7qL5D`UVcfIOOTp9_1Bx*_6#%oK-)=u;a3=j zyp}-Ge8T3RNIst(Qtw3Hh|bOX0bfyxaZ&U) zzp)dj=kffkndz?`oLF|0(s;slQg!pg`D+gas`paNma^6nc1d&CJ1vPX1>d}cI05%7 z^Vt$mukb&Icym^xH|YJFN4YOuHm7UaP}sF&RT3I!sefC%>O3Hf5J7u?;nmgwEYx!4+UsCw$$Sk!yEZ@xHN9U^7NoIAgPu0+( zVQSsj%GZJpO;^L42OpU6PayRS)vQdrtKN~JYNh9n%@1015p4$sNj1-(y7?WSEYrh2 z+cc0Fs{4>GrJYAzkhYS!>(Le8iC5K)86MT0uZreff9Cg!MeAn zg1>pRqz=7q^XMIrynU-*EM9Dt%HKEX312zbICJEQwKG+v3jPD<4W6$ey1#wadfY;3 zTfXSrOZhj;$<9A?ax1z^joJ5Pd*XskD*3p&{G&wcBO}z3>=UZ*v&>Sfca65WpvJ3% zInUHQ8FXD%4_G{H*WznZ{YlK4$l^bWEtqzHfyJsGE!ukhw}!u}F$+`OdltP*5}oI~ z_$Sp~_2N~7+I46AtTY`>Qx6Nx2$__zv6O9nJWszZLsb=LrwbeFjZ@7ATsf7i;}|*Y zHs-*OZDz`V!e!qLoxMb2x4azIcg{x9`EHH44^_AQyU$e3GF&A^0}JNs0RP%b^_R_i zerMP^mCvv7t1^SPsmdh>EIU_nf&3nmdD)(6Bh~ST!;k$Lwn-&L0q-wZC|k-Wov;!n z?;g#2JHALOrR((dmFd4VUcI&3T==27EAH#tNp6CZ^W;icwH1wfb%Z~Bi%NEn7TT_K ze#-%6b6&cGtK|jrA)aKSxNi8ryb;#DCoC{AuPCiB1yZz8xj0T1p|8g(~Uo<<{LQ z$y&^Db%{zH=u#mz=Ooed*;g&doW8-4kTq&jXy+|HiPL4%;tk&&zSj$OLRZykcvPla ziOr#JwKH)Ljhpoo-QS_a5kN0so&)ov?Dl@%oIl5At+Y&R!KA3~uC9@33p*U&zO5zw zWRm|?pBi5Ojg;&*D<|heTfM^MxJ^@|Uu%2kjlo%Iz21rX0KR|8#KCDl5&xrchP91d z!T22F_Q-Fl1Ujt7=Mc|-VdC-hCu;vzMZ{~OfMbaR-X`3l_4U${xO~0q!~s2_M`xs8 z5^)AM@abq%=a2bou)k;@a-PW-4X#Mf3-e;^=N1sxp|56L@Sgn~Ppv=uEAMHKF0B5( zAL93|73*tgzeXjc<9lsX!Ew#gKl{>BY215#;7>eh|6n|y48E4@KwJ&%NQ;g~))D$4 zsVD2awARM&qvxRx@=E+A-|W6#v$l7@eP`%>#0&igJH0UGDLrsK*@@Rt{{^_`KYg#F z$}{Y}PxA>r_$KqhCqeiJ441590^^ zDi3ii2ERf42yvOn|1{6(b+qGY`9JzW{~WF_(5@43IysFT*6U&F01@xQIFCi+8~kX; zBQ8@^X+K*D=G!XN?|{Fq3GA&`#1#TZ6Gi#Xx&i1{JkN24UC~L!Hm{etL2yq6Ke1|; zKG^1J=_wg3>1-mQiPCWwKc#V%ZH4#f<$4GTVCH%J``;?`AykZxR;|K6KAYd^4Zd?Z06?74j>tKdvzr_^%MJuY)*b zTjt-%(koMaWO6;wcV1i*t+c~*e@cqJrU(A6sKJp^pJKm2Z?Ie3C2-sR-&?k9ig}FW zdIBe!p8ZB0iJTJc{k-Lt*IlINu?v~w;_D0YQ;c5|I8o3?D%EJt%DNj@wt?N|0{zxr zXN-6l;KFe~wW&i{FZ(~&?+>*_mB+o2Zu9ae;t)CC$X8@NCi!r+^QKWPJHQUL#iy!f zK2~RYDI-^Sey`>$O-z0_`8Vl{`$oslGPD2i?-gc0!Eat#P#*{DkXNB@lJRe7I?F0r zPS*#YcmsLEddK%nezW#Jy#k$t8+`*hBy?T}L-Wus` z^GX&tvIP6QxM=^Ex9GYfC8TrJ4I8p73{<~IUv}Bhw}XsH`(Sp-?}I@%E>dL4iB~1d zOjJ?pf4J!Uajxp#I^*nSCqty^lH*~16GJ8K+)h7*pBt}i!S*KOa?BH*zc@`=J&+?e zw>OfOzYor^@XBm?-`u0b*rA)0m;1seUYn=Lp0{!1uh!q8COlkVi)alr@#Gi({{uTtk!zdXwt5u)BQumjWSEfYA zUGJ?%gx9ECyku`R^vmVu%lsCrtnJUsjguiN^Yh9}ZVu^zxO6MUd}!v4YMhpr(&x~& zR;Nb2y*^-HprZeNdaDghfBw>4>AFg-vHnGsjz`v4^f%~zPaLSJuP5{`>wQT1>;!%5 zHT<3xkayD%dI0OnG0!#9LO(w6z_K-4+20bD^x^)6Jop5Dm0#`6^5?J|2mEDX|6~5m z`Y8J8AZN0}@0G>yO-=XAt8xNQO&zVLjwC+3=Xj{!k0#K?#$muK8m@<~n2sb$brgFXM{+@`FDTVdvt;0OWMU!*QH{c zCv$D`Alb1|7V}li*b6?}QkQ%XQC>0cC@`1vqTw%V(|?YA?jaq!9+u}D=NtU5w)?(V zjwD8&%=gP*UC(NnaXa)rPAE%NRQg1_g$^Uo|e-&eGLUPtBe-Mwp3L>m)#z`9}H?D=!r z9?EI#109!VUV5~Z^~cD^wBDKs`yd_kw2u~zD`|>&n5_;$ay^^Y>fOjBq;M_bO@;L; zV85cyK^^ElvDCMX{;JnAJMDdo&dV*R`g^)vuXc5W`jqQJXvZs8((nE0EMMXxBsxP9;P18ybBg)(=#vwY#69lsIDokD8I`5}wxGD4fhq~zerm@U z@!pW|v`MEK>U^|Em$LV}DT{Lw(kKY{>V^hiuJfQrn>>EbFZhA_b$XIww?=gEs42M>wvXtY7%T_{4&Xxe6aI4IZ<(Q-haA{N1pg{ z`7UGPy1RKwmy2VKb)s>;WeN`EwCh)k~gCi+0R zk@Dv3hRnr&TrDRH$45AwT?JfN1D;PLT}^5407`sQsj)v;w~Y#9eb zZyThVC`r*zzxoqYiK0ms<#d(oeqTOB^!e4^h^zZ5ZJ#$_9-Q$%XnJl6JZ?8t zym6mSKj$Bax?CQJN7u)>8Z`yya;xl3JI4J}d$3f${NJ^og0{%x6G;w+#>yu-foZTR zxp_|bA8|9~JDb*>|IQ5A)4Xf9KfUItt~c9e>*u;yZn>@;U;kbZ?2szpr!kfq?dQL) zvBej3(^Q^E7k=qqwxQ88#y%SLL+W38s|n|=ef~Vt4}8f-9p4#zp>*w0GC$$!m0pRH zO?@rw0~vfGVd7G=N-BSxdz@;WT&QG;_>MTdHQlWc`FmV1+f)RqQ8Bki_4o8K`KbDwusS9l%l*1} z_Yj+_wvlMuQe%<3ISQ;AIbF0K*By1_e1v$P`(uVT4xHAUdC=7VK!2%G7fdO{e+?cA z`L4wGAdXQCew(x=UySx5&j}}9hWax2HT3f8@Q*Q{V9eh=>S_9SY&_vd02i=C7JS&a2=mmUEKT~H9d7ZGQpCBL6g>`FLv>3&>;V{IQCNw)VU}@|EU?f5 z;ISI0y2-%c4)CL;qu#;#=}P;ht00fUPwJKYarmSc10ioeSVDW89NlYsN5sRcqn=Jv z<#Z|N>6;&H`B(d{ec89L8}?rg#3}OtPm_oB9x2zTcd1l)`&>yF(^-~!bW1gJ!d&=c zDnbv+gLq&*rT23yNxOSb-@%i6iOo6x%ZSU9RE?ki+}fp4d+^b2O6RNitH}pX1WvuT zfH-cIx6GF=Jx(no{lY(1Q0cme^;tgB|Bb!=swinPbEwqX=Blo4Bi^`!_^F*umW9g z)CZ2&i+Yzi_f`83Z24}7r#J6*VKw5EEs%HG5c6Z}{}0RBEE-x%^EvZf)DM@v54u@||11xmC8QqT_>urE1RVb$|2=llkvjU!71n zNPVi}R?KB)m{?tW=5&8B5p_Y^OYy0d;(wbsTh91(kGPU$qPSn4Gd8#1K~*{6l7G1= z(`C!4*0z$5tCaJCHI06Z*{5uvokFwAEtUS6Hr)NS#9B3Z!jLN=M}ySv5zc#Z)#(B| zw~Y|Tr}Z@_#X6Jp%jr1j&nj$j(!ql#)zh5Yp5!@wODYaZ+~@TBDOIX$*uFF#2i54U z-DfV}bW9%1{HykYWBXOdWxMw8e6~eyPb{;mUWrvIDLXQM;C!(qDY*1;UXFO^5}CAq z;Mup!LY33}{lPytt0?w>ninYbju zDb7!qBU3k~%d&K#YMAEmkiQl$m*jMuW}}tHV>VYCruT2K?5AncJMi_$p}WURe5+gi z({~#O{ndx{UPZ6JkIK9DS=F06pI$e3hKmY3(gX?tZTx?h6y|joq#P z_FACI4oPQ&bcBhCfk2L{gKMA6p0sMIYL*OGU8Z#2 zU3=s&`@`;4O5=kjh{ktaP%c|1*&yF%l`XhF$@9Y@nO6JpFAKsW)N@(KBbbfKL=)A^m$}KYUxC--UNHY6f5+XV;E=Z>DI32ReJsM;J==TT9#VXzt|9!PsQa4SVwfdN0;QN6puGfGuqr#So&R_K9`EyFsaXjj{ zWPqOV%BuI{GO<=#Q^svYkipw%e?dm-J)+N%8=)4IOacZiW_=*Y{g)QjRn`85y2LF@ z(NAy3#HC>Y1RQvyQks{5o#3Z%mRRK2m;tvw3r_1CwO;LjUGB-uTI> zS}U?R`A;(b$8(!oZoBkzDV3v3_MV<|M~L=6Po}# zFEna?G`J=3(YAWb$@!K(2HzOt`mFu?jlDo$z9zmxzDfTB;za1j8=RxzhPn>5fn#r? zbUms8>attmeia{VRJC4|u2u4Fh-m#FOqh3~_2nY4R|>+P*;A6x4RJ@tOL(2=;77G4 zs%7o!oQqnyR_#BK1nBGmKGH~`{-WAq%ks`UX@aUaIM4=V50l$Tu<6{Z)#4=B%-L0# zpI$OQ>G;G4lT}y}8*jf+>ID?4^0?t*+P{+Q4(qzaNnOTdkOy#Hj{D-}FNsRbSEZ=;}s4Mx84)c27=Q3iSfD{mbJn$DDSkgQvFH{@O0t zlY#n&<#M~Eiqosqn{yfd_~rZ_v2|)?mzTTb!&sM`pBpa*F0-9fDR85I{T~O)%4tdNVKby~4>rk2Ml@tl?NnE%}NOC*0 z@24vMm+9vG#>?PO?&??Y9~wiOoi9Di8N zC_nbY{wkxT>fM316$_I#U5iZ{Ibsd$ijh*e@u{j){^%=j+W-I`n~Er^mETKv8$D?e=tII8&hy^=}U9v zm!%hOC8Sv;C;q)P_0GrHO6LtPkv2uoN``#XrRcEMCDPO%qpJRUx^ck%3o>BIi%F{5 zS!ouUwo>1i%}V01Zxw=7E&;FE9y+o$Jc8sQITLG8Mg1e}E z+V<$@?4dWv34Gv}wZG$&$$N`UCu8Vpf9Bc@+VnGGO8zZ_sPVLb$z3uhQDBLw!@Iv5 zKv#MX_3)T9klWh|)lq!TWlrqVTAiu?ySIz8o^U}w*BO0nCQ`VOJNj?QBeFw1veAnB zoW+-4=5h*mDvvs&AgjKq19d(AE$q#qDCkBcH?y+FDWE4so{X=2Pu;i4JlCwApB(JY z)ocRlsr2qzvnE#;1W?`lCi5o<_*HYf-?PcNI{tmC$o3rOyyw=Il~uS;bdS@g)Y)^7NGk6M7u-%DpL%?VuS-K8Jk1 z=ZqRp!UI?S8UyGrBMqzc@gzML7k>ujE7pO=|i}2j6qSJv-IEhY8)$bOK7h1aA+H|#w zFZ62xm_yeE-#LU7?&U&~3#9xIy-<&Y;C)m@UtJyZ@X}a^&E@_FZ_xpDgOTr{a>>YK zEtOjmtMMq*z0g0^1-{_LYHs6)xudt%e~B-t@DkNrq^7)A_)(SvuG9$gAMxdThCcth zo@=7N(Q|3|ixFQuvtW`>0Qkb*r0zjSnry~Sm5Kpg-+&5@sgdE)r9bZB+In6uIz8dZ z08a#dRt4{`F@<%C^t{@7G>_R+w&NtjuR!rWhjT*hL%xxBBB|E-gU$D)`yr1into(Y z%hPmwKl)a{1Uh1Qq|Kno6Z7!^*{9IeyAtwpz|VISJb#uMf*_+C}T?}RXiLXKn!@Dj%GX|K%-$DH?P#aj+yL&RO& zziU^TX`p5$VtZn~>BpuTwcO?2f-`_`W3TT6#qTID^BCw-9nc4h4_tLt-zQT1YU!ot zja5XQ<{Hf=~;j=jILD3HhZVA-h{!OMXK@&*fTER57%EZc#UZ>Ei zt-p*U`vmYaM$^!hHH}Vp2C2GbHQDE{wjh4&298S`wrf{-8ZAF*H!tGh3eFKU+F@<* zA|Be{Qu?>Hqkz9w5nUopS#sELj`0S+$dQB}uJGGRY=CS#9_~n|m7o5}c6UiU3lAvn zsNMNPtH$z(Q}NfHF6=Kp!@zq&S{3fEbmFywftA{HEzLAG?VyyAm=ZNm5$7d zr7stsQ}MSD9;o_r73{mpzgV$SH_Ae`4b2qMURFgxzM~kkU zRu(XYf`-o4=GWtm^*9o^aJ=p-)V_8=9p$Kb0O~w^Va4}H?nYzAy@dT4AUHQZPeHwZ zlrMY(@#hiW3g~-0DSK$YFY!ydf>+j3;~L7>wkL3a2;5WIg|{R)1nRx~x~>r3m#Tk) z$lo{xOZAwHd-I$49$=1DRqA9OWLpR!RBH6#ZX7b6R?T~z=+&bqU-5{kv+PwggXfg4c$xRq^3EVO+r1=7IT~&nCsU9Z?gz1U0QqGCmveot^8#I@jdEr z^+VGRFCE#Ic9!V3@5%U3T3o4H{ck;cbNL*pOT)8AQrgaXs~a_mqwSZAiCd;nX>`nTY`$9?wEs@91IIh*v|B?EOGrS5|Q z;N$%7dyg}1yb5=d`xE#_4%Dr=cu(_sehYpN;y4>{nWFc(>gT#JcwFF}R0OUQOp3SM zkGB2JeEF|#;WV$B>+^x1BPG{^Jq-2djHW$-lLd&sy!Z!bpCR$>?YXzO@#-$-xy2gt?Id>J9tKY=}XqK#ht&#;`z4GbBU5Mg=d_6 z-U&S6nv9${%mFLn{kT!yRiR%e%=Ka$eQ*8%R=J^xn43G1=|0){kKtUQN$m%#>|(TT zuYtKNO9bOy2&O^poSc{C^uhU1O4lc<&kVx4G5nWpegw{V@0rmb6_I-xb#`G=bzW=H zO>)%j>%kl8_iv*v= zo62lld(7J}h3`KcIewY*D4gR@wEwpFzN-9KAN~7ej+on4sCv`Qk5S~+YBud`Y!b`o zQ*f1k-wn5$$(@#dD7m}UEY4V2<7%50L)cUc6%Xpmd$P9Zb#L>0e&!fIVMo(Q`1Sfj zmty3gZd+z3?%hN;2wc4@E59peoIeJx?H>?Jchh9fMY6BpZv+3eFwVO_u0-R8NtmB{ zv-pdtd6o<6C_4hr1nVjv_y&3PJ*0T-wQ0REr1Ojnz#O=Wp8HEZ+Gns?(RJnLr&fQf z{%tO0teU<4Q|n!1fMVNj)Ly~ABELKgT{@dX9!7Sm`F0kcocAi%h>a`Qbjc~wXgQ}P zoqKfZ-h4jt_Uf51$1pm0_W8p+heq&^;4E*utO?_eE0@F$>}~j{{j=3jvJYm%1jF-E zwm3Fj6pNoU=CAvL%e%ZwXXtN*f5pMWb0xjY6U5-DQvOy&d)+T{k_$F_S}5P%6I{5; zl%A14GT3K8r8&P-uOUx!54ACEISZ}h{ryd5>v7(6pjNr|?f;=xllwgRvBuC7ujm)m zV@ND1ok&k=UUK~RZdWJqld0(k_8b{P{y}Y?x15zi1_{6`w9ityZnh7lRzhDHi}}Y? z_OBXM?e*Yr+WpEkVNsi*)byp*NJu}%8TEU4Cr;nTKNA0J-lfHEuAR+v8oEH~f4!>m zb=5Xnw&3UJ_#3PEPQ5=*goUM(sitr7eh$6b*|Ae{wihvGFuS z5tLZ*x5n|m$v-mZ&yxzDF;B{7Znt7{=w;vfMee6fprfa6Tz%PY78PmQ>gK`@oB6M| zQG>VG8NPwfpBV|xqbSX>T=HM%*0N#BQ+UvxrTpP>?E23e{mFl>)nF<`(U+%rzoZ3+ zlbXwifKQuS_akav=t@c_+l^kIX>BCEjiF87E9S{Md!hJi(Z`7`+VAR_tZ@YJJ@h;u zx<1ScDxe;XU>jYf#5B%p6FyHN_oLZcF7O>ii|2(jxl%WsqN=7We|Tvk@7UPSxbg;a zP=uNIIEZa_Xz!wUOrf6Ff6a=d8n?Pdx&4|*uSF(L_>>oZHWfQ23=ARwR zN+gh=FQC`mU#Bn66vrOLXZC8aGn$o;N-}qzZ`b-mCOqC4rhy>STTPqKdDo2Ph?{7^1(BzM`|B>F?=B5$6FJ4WCMBrB)*Kc z812Oq{?EN-oG(fbsplM{mTeC06d6awdM;gbp=Jh|YQA!9Q}}c4f&XrA-HVjJS#S8I zOy~3Kg72UT&p~ zRys*^kvM1Tqh1XnrK@nGf>U3YAGj)&m4C(-%)6Xu-^;}+M5S+>13|fyOww-G5l&U$Loi_=&NP_+DE55*6qXUzUjtS zFAnkf?@k<@VbkDXJU(A%x-#*^yIif75H(rS%+GNf-E=RxJke(sne3aA<0rAn8kxOe z0cZT$^7u%Pp~z7U=WkcuAOEzy7q|ad&#)*NNH#m!=03m`jd}5kag8#S@<833z&ng7 z@Z76Yw5|!fcl2X#p!3uDw^Z-%9Zjk?HvFK-qu&j~|5eRH4V^Rm)8=Gtd2xGagx04k zeNBH7od@&`s1qtm9U%Nj^hKYc;}l%|nAA(Uu7o~A^BWazan1TTy~w|pGJ8<%Ea4-v zrU#>L`wc$*KJe)?gBO!u*MX`&-6wiQtNi(9vPonK6nsSLV1_;$^WSIC5kIs_uF}IV zjSPzuADy#>eI_{&=nJc9pB3T%sQNUko>##ah^4<0JV*8UnFOEY$B#>$Yx!a*U3y{~ z6i=m(EB~Qld52&w(ogzJIuK(jl>3rldhs}GmcF#)nQ1)fMdI(Op5r$we5iF@CO&HF zbKJG6zN{fDo@E5qS39i>d1p+?3f435;r(lj2~9^@>uM6LLa527(GM574dGWKO=FVY z;x|ab_m%u6;7;(7%A@N)g`-y>!l?X`jO3JO3hxt$v)~_YMF;f zKKYuAWzYSabpcQ7z2+G!{PL%zL$`X<(q6i-y0?6EAB_E=^>7NOw8J{OW|4V`;HK*H z-q-Uj)yFkt=LR1h&d<_I^j0Ku9MuO`mir3($%mb6!k|_-zuth4Rt@X6w&q(SR}K6d z2aT^tKCya^Z;^jxuh%2|AS`PB8OrXD18)1~kLJN4<|JSsmuX=?ztZdo;F=EH*-$Ib zITFKJ79_mw7##-u#e(y&68tRd;yiK$-gwQb)@^n?&vzE3^Dz3^4AWrDICqk}B)qSn zb6z#Bt>(K8;Gf+}{BnSoyYP($+pi?w4%U8tUU^LgMI=LCF6SC69e*9*;MD~;W|e=@ zMC(qWFV}rPa>`kFGtga=$%2}n9))>Nb{2mTJV(68qFT?O)`jo`CD-er3BJ)VNd)r!yTU={$tdXYyAZ({>n(zkh3+QF$-$XoIxRrsT{jokf_w@6GCZ z;P?ot6_m97(z+DfSH(Ez&yI!_X8@_X!iUATRjr$FJ@1C^8RMM9`BP7?59m5DCv(ER zP+sG!G6#`7E;Y~2gL6)NNbcf3ko=r7I0wFAj{QOE2K@J|ReWJZudVjuM(sPI>g6Yb z%Ufl=$hjc*q3|@ZpRK}wReXC#jeCi1RsEb}sNY`c|H>Rs<~NGBQcCNel`bm;_`Be4 zcC3788@En9z$mdy=``#JAyeo z?!UGKJ~Vg@HHDu_D#x%jo=Yp>!bMQuztiV4_zUvBEVy@YA2+9FL(+17Z5SrMALr{= zi|}@ke`$d)2hA&BCKS1`!lk`||2D$8VU^p0^9;lAZZT`_S7DI=Zp=2PwX?BkG`A zdY!^IMdp{_JH)ZAE&e=`g}t51rzTvP9VgG{*VO8Xm>#|9`_Y4Y#p%Ulyv_+|a55yze8(aUf1 zA8kH2k>PX3wl;UhJi)W+@Q=73kJ88T!Qdx%YX2BZ_n&8)uzP4E`~o_&5yWhne;)&C_Xf)S1YbLQ}AAi?QOx`Lp;$AZJkaJ&PaJ$9+da4y_r; zzsxubr@7psQ_nr?KTe{?Ke8GU)+O}Cn4XnAFoA7$Go#nhaKnAOBC?%y@kq+htH%^`4Kwtgd6c=$4(Q9AQl=$FgMd{5?D^xwm3&V^4# zvphd_{&}NMDbCQHvGU6Zgr9mhewI|}<&E|;xsQ$5F`KJD+E!?nyTQ*e?HC`Yvqzb= zGZ#Ob#U)I7d*=nDc$2Ao|Kx_pnf7-jRo8pqd?*Rr$_;g;EAp2Eb>ATQVB<=?{T4bV ziDZ5tzQvMr-PtDa?Z<`ZJSZ|@vFJP+Y2PXFFH!gBN2}~J{MjOXpy~@7QR^C}^JSdm zb@2!Pqg_k*G^edk>KTbTA;6V`D6#pE<0&6~KXo?) zT$1V5g-c~7_f6(MY(lVP5?@~M%Sn89L>HpYwM^hGG(mk+fK&J0{`s!^SeZwX!d-(< z-?yR`=9t#M8|^+{&yb$?A(hkCP5c_57pbOwuvMN+J><_6)#t04?^uNYg8SwN?%lia zq0OUt;NbOh%QizEKiW7MeBzOud4K7aBl{<4p1_Lxzo)JC7{Q81)|#%pY-do^B1m#p zRXy}g*B{D{vy%Q?ihuYEbzD}dmr2zlwMgZR7Zbfb&e_VqN8CtoJn)bC!_jhiT72oJ z{YI3|JCVT0rQY-M9QjZpR>>8L>U$pi&jQqN$NE|=>i9yR^WCaGUp~42wN6pZkAo;r zKzxzOcYH|kj}kN=2=_h}&e8nPUoO#j-tOq@OQQ~!{0BSK&&4!eiF1IZ&U*I2vrX4b zL1d}oHUHFuByzS97M7Fx--l|xCi-CbGE~8R_06hyK%r!dW6T~#$ls$)cSr8anl*ze zx6HG?^J#<6`_Et_QD7F$?PyLMX7b#L6^sekC_SH%zE0&Ngpu+q>A>!mfyJshX7Ifi zy}QMXnFc=OP_|^BT`{8k5~{cE{?wBdr&G20**6~D&_(AJDBVFv-tgZeYFpsVZXh#sP$b2d45LD z>DrSsFW-5OK1A@17aA{7Jd$#{-jZ`q;R!{7Tb7l66gf*yIL{oh-u~wghB_9{sR;Jl zPkf)Z7WiB0{1>G!3&A?B0Y171`pbseFAjd~WQ(o4;)}Xf`%5B!)?V%pJje3*{dxbV z|9<+Z>bsrw<#WR?)Io4V@V*^M>5to!+V`C~wbT2GBM)@|j@B9Pu@La;CYnEAXy2*( zhYp0uIjQj!^cCQpy@3ua2kzejz{?~rz~FHjX>>+Kh4bvEMfki52Xa9D>_9K z;NLXxyGyqf9&LbU6Xt6^gn1;JZYSMehhzQM6g&|)iM_@x#KwHx0{hF02E5AsbZm2fR(Nh>Qasrx?Q;$OwDj*J{8#Z2>yiC* z3D4`z;qO|X6z{)18AI45Yu68ETP)7SXw91gAB`U;9&{+xE(-Jiz8qj)&!zgX%8O|v zJSya+N`7KJxmWf6Q~gR6nO|bP2yXCJ`dG=;VuK{TIA

(MJH!s{$QBd8$w%zE4ZH z47SCmaXR`8V?XX2Y?t?EeVN-~?pqagU|qa_@z46GaS63=yNEta<^j03bKvLaWQ8}h zV$?Cva}<)k9^dyY{IJUDz8iIl_BEFCMs#pjlW&)D%alaZ51zQNb6EtHA70In5+$(m zd1w#3J`Zq!Jf!e{PmKdX#|mGOayU;dIsh5noP~C+0+} z43*r4Be=kpIeq_J@5#zXsR@rYruyaH z_r(1W27W~i)F&nJT+5K;u)y~K`_)0#89|33&j~-T0`_wOd2Sk)P&iO&!BIq~jNd2z z!TSV<*EpK0b2nNrFB1M1eorRBn>5}acnbW|=(mF@$nJx4+m)owht7!&@A(Z+djBuC zP~{PZ;e4^jz9>!V94;yMqToK#&r%QPIyZOLHS|Q?uEz$H%;3p}3q|1y8T>13dxY

BDm-n??|$xzY50Lw@BN zLKm(byIXC@SP~wXnSxpNW?$e_ZkqQidLE@i&WwFjfcvfuG;WL=RB+Pzj9wFW(!B5? z{w+hgvz^W8Y7zSn+<$j|bA$hD^NDhY52*$JJ`-@P3OHY$S&@T=IYfS(SGT18$K3ac z)d&$Sd*}98F1^*iT>cR!Na=F-ku5H?Oo@%(Ne67Ebm7hTbW$xoVW=H%un&W#lPpr#0R`;C?ZTeyw@2AnHXwx}j z75GF`fImi3p_F~cm$n{9n@rk|pW#b;{${SwhCOL@QxjMmE56jY2MS9afw@@-pKFoS zdgRX#@N#R?1JCOBa_*hRRSQ=zA}I|$i7oHAIh$;vIsLr!y)?6jDgFi z&*QCspNr2JKa_2@IE7QhKasL8Xf}P)@8#fM^kxrRV0s#z-FonN^urW>amb_d*0r(1 zPa(x$PGseeG?^rK$1v5M`|(RM_gkKM&mV<+NOD8>v{+Q5L(ViFu{mrCZ9_rO%{b?~HRy5}_Utr6ZK`sWs0*+30ief5{~2J?qz zdcR5i&?kGv&p9&!v>&I+0W$JP9`@Xkd5Mw#`mjJ;LiL>BA(zBCl!cWKjt6+hzPxh9 z_@$SQwFi$XPUh@f(6gg)G>u}V`|pE!dmtGhBgIDD2q%-ZQej*t?K`9Vh+{anNe@Zw zuk+wq7_Nv#-Q!5*g7pH9*O=-3au&9=Zxt7*Qj@MzV&TTFa<;k(@l{b@t37gGGp zSc)mM$6;!&KFC1{lDZT7@D=XMyx@QQwu(=csvq)Wj^~7*|A)*c;on#Y&-1%Q-2*vU z^b>-UtLJ`A`U@-O@WAt*==wp;DTIHLSNLD7&h@vbyZ_gps6OTu`kySw^YYSjZ25Ph zmpf_3`-HS0!J~!W0DdXXt7Dc-_&>~p@cTFF^Gf&{m{(X-9<7)5M^$}MBh;ggoL-`T zjlGS6N$EN3QA}}5g;lM>@N>^v!6yK|dJ*;iZ|#3CpHJnlHXzlnxr$FO_Qg-(qiCOY z@d<=}mel-3biIvr{i5oV`ug5i?=Lq#&qoV<#qqwfqpm3^?*(&{7tr;#;vII|J8W#y z2fkoc1y>Ng5cm$p+{|!`DjCyC_`Z5RE6-1O;o|F{cn*z```RD%X;s~q$$AxE4dIOl z9)$H}ksNiIgQ@RZL-Z@)>9oU~pbhTvUsluY;L6x8!XH9CR7%bvT~DjeZzugKa^7la z{4#LT!y2P!8o6o6(UbcTc}@D?y`O6uodnYAd%*#XZ+9d0{pI^Uv?zXE4ZRK|PZaNq z?x%OIG&g28EpxluE@QvphxvW*)7`;CxQg$MPH#IUF!&LA9jf}>2lE@L2ky$;+N$&j zty$$2cE>(1C4DaXu!{WAyL9&MwdSzOxtt^U^!R%fBrldFA4lc2bYu9AXuX%p^&n0g zks7)GV1Mu+EE+F^AD8gkX>-qr)ZIB!pw~+PU!)V|i(EZv%||yz4wmR`QP*_VIU$1c z0xz+yaxkwA@SQC3CsL^$Srd;hKf^Zr)dlA`epSvJT@IfkwQkN+ zg8N#Bxar%t*`VFsjqG1K`eOfzuU`*PL8IC!k!im6+3GTLOsngMN6GvXdYLx-bN{}C zH}}G*(}!u^11b%Y`@|x+I&`Y~dBr(QzuV@xbwrt=e&B(M$WKh;{$ds z0Gy#B`a3)63+TwFH{VYN{z=1MXZx`sVY&9v@z1e#)0l0e#a~cxFO4^%?jXevk(|p9 zmh4p;Pg>V7f@Dsq{K(ts&nbMLjhW1V=VVfR%t6|RNAc4uK(7&?@8`b0g|1}}Y=m?3 zu2tzw-EclPh93;!94{qx6SXwU`U1_-Kj*?ZmkoTBis%O_;W-xtK2n;{kCXCYYmdK| z4fo#{)Fr|Tbp(Ev0RGt!onv|DkU4Nppbw?f-grF^<66(tZ-(0U;v562^!@8~95u3A zRG`_@FyIHZfZsWZ|AY1^QTM7V?z?YRwJtld=qOd)*F<#u!W#jeSenK@8)lTIfjDnS z@+N6R6*FltoI8ZI-}$3-57e3EfIHUbY0hRqda#~jKu3o8Peb_FHWdGN^x?VWy-7|o z=EbDzbmdDOK;u^*SaR=F5Q&~r@}S)UzkUyz6NLWZnyv%Yd3IOVU6_BMo_-~Dn0|lA z3nAN>r${jH&nWs@e@|e_mqgU#w~%X-1M6#}Mf}_ZpA`SzKLZ-(NZ1`k6QXj~%Tm1$ z=0UCCk6Mc>nRfq!BZXH&Dxa?p7ns%Nk1v?D8{|a!%rdcc(2ba zw%F=|@yH#IVuf3K0M}`veXGRBRCp|c?~5N<&?xszzZ?^Bk9c7JyAkRz>BscCM;%9s zzfo593;zGwUq{}9_Aik-ReW;P`^dtk8`RAO)1e<&${S7{?r?HTGW~9mw|J!yldx}# z@zgEPa@_5CgQDJrg-%$wk7`v4889SaE|*GvU^peE@?8TpEA1M|ovU7Z9^WAq{NoHZ z!ul4qt2>t9hlG60kyPPVsQdI)lh`&!Epv?29R43l>3cB!*2(kKW>)CUyvxpz@}=5L z<=)R;TW-NVx_arMU22U<7phPd+^mrxR^*=AHLiA-@ZiT-NbO< zjl$C>$HY;(Y18CC5%*nBKJ&%Hck$PVlv-NOBIQJi&%_zOb(@5_CqePrff9FfuvDQBhI9@N_eeTF`=Zq9K z(|d-L>dng6CXwCB?w>ldRv5j{(Qiecv@s;Or}95+qvsFmy?3Ek@7L#lF?A>psCsqO zq6M?jCr{^^S8nvIelVSD)}D5})5T=E6I*U)!)LSERCyOjPi3_(lS%ykGdJAUXMG)4 zQhp#UaPL+m#mjfoc(V=GO-&>Z({^KavgV&72bv>o0YM(3m*AV%4}9?2WcV)I@^`mj zZqk!ahMC5o8T_nWZ38kK2YtFHHOy14pm&9({3h^9bknm&ZsMoQ`}}hH@romF`hMTi zgDxL&Ga`( zwv$t6#+-(m_W6%t-+GyR;vV?1sSdobI1F>A3Yv#4KIba8%vIOHN;hTru76qAdu!7M)?)f~ewpQ%$4 zMSks5fO-$}h*G*QRNuSc|GDpcuzsHC`cL@2s$Q!`s!sG1T_bqQrF0!E`U?4ef*Xkb z2hSVp=B-tD^S}%6{`OhGtHqq7F6y0+G7ppWkM(*>KTpj4^}3Y$MQ|~tgRLq1L;pL$ z$JFO8EOj^hN`s^>1m8B7_(chSK3f^xHysu1Jr%=~c zID4Zm`3`)fpnPxrxs~s3L%ff|sAE51pFfj4Q20R9*K<(tl7z2}zkkhwyZ}=BLg(1Z z&%?efiTQjZx>>Mu?(QF3%Y7mJ197}oc7Bz2h6MZwDgYfCz;-34AeX|e$ z&4lN64Y=}uR`EGeyof+jdG;e|Y0Sr%r1MEsYS9M+$(sg0P{aSi#uLgS>lpV$PMu$- z`s->^KS5vCm%8t~-N@UaJ8*@*+83IeVy1g@R1t7er(J%BqG z7d`{4dA~pKq}t*i2LH!NblPkSW(;JNCly7|Z}Cd^-!ptxMI*PDu!}Q|`RPz;SK-k_7m)|4jwf7wJ1K zVHn%l0(bk-HN$!xVPKVSevN4PT$?KQ}sr z3&!96eI%zFOWg+_U)o~0=Xmsvp_S2(x`+5>(B>V#j}Cachaw;BFS>igKvwx=6Ua6e zT)c)}7P=IiHFzhVbZ!1;V8%+|Y2)c_?@Boj6iK3I5oXJUp<+e^ z{3P1y@cU$W%V}0aX zkl((JQfr%xmU(Q8lejR2@11$uGw<#3RJGu}9@(Z&hqKgJhp zwPH562{s)pdXh~hkYgOF)(W`x1k?xzw{Bnp9}I{Ki5I+7y9Bp zF>*YR=d12r$;y}w#7UcN0I%!o%yGZV&V7^5O>q9MVcUe}&Y$vEXpbBm zFIGJNNU38n|Mug(N9I-OL%pE;^1|=U2VA(8o_omLS3Uoq*zcKToN&QR`drsV#r8a{(XPH9=9I0p-=2Ek*)%Q;{{!&r1dqrA9%U`< z7X;sL?3afYd7r?AbRHIbP59nqv$r& z^En1SuD#UBx?Wd!QhoH5-c;qDtAU{ETr4Z{1jV-kx}j#Ia(FsYq>)ZI_j)|))v8!O zf$$}(OJ+56?~hQ*HM;Blqgmrnhxp^Ul|-Ftr+>cSC5k^<3+qz+!%GW4gL`Z}lKa_P z5Ad{HX~O4C$#=#@!w0(wo>wdE10VQYH)71^--h^*_^EO`9*Nf6=S96 z_F|=XnnKp7N`^FV0&g$aWnlf~qx3z7=MKGY0sNfG(oeCf%UxOdStqeAF5>1e%(r4N zhf1K{DfZ_!tnUxKUnE11PT3yZHC9G1F41hDVdWekyazJf#Ls2z0iA|7s~ouDSQmz_ z>W^>NjwU8hmDm^k7C#Tc_o}M)p>1OXjqFNT4_PhX()4NDED0-B_P5a{uNzcI@E#xE@*BImg}5C7M< z;M^qH_rQy+a{j`f2K%>+^yj(`QUC55`lNi)uV9^Al=ENiasBUvR|cF<^m3ZdE4&`* z%kq8nxG~PNF79hPoG+3;a8`d_)H|9#EYDr|u)=GWyg@lf&@v!LKy(9P7v z{ag*t{UPe9ccPQif0n)$^$tF7398r3bQ%jootImGPxXFtva0K{>-tIRZoDU}(&<-* zFLGm6{#k}kP*2l|tOYCHWDpCV3F}Mi^kjcSPcEMW=gMb`_%x~Y+5-BF3b>cb@t+ln z94?yNLeJ^(yu@Dxb!Y{>E@j=Lj>h``CU_+7*|%16dTrmWErtHq!03RZX?htmsMQyE zTSctfhOBty-pJ8&qXn@WP6j7-k~$Z7Rzcybu=@Uz4}BN=A`|lNr=gx1&MI%t8$2Hi zkMvCb0-A8$0KIy6X%&Kp(2j9!!F(>3V zEIyjk!$?&jBXOy&l(3m@I^el?bMu3bH;GJptipDtwwM^)24FpJYL)5+3>-$Q`y&c z;mqYPM}}QGK4veoGIazhK-5g{v-cwl~Q;LH;TVC^L@}#P8u=5kO)kqQ_UXy zxbKz7kxdq#NgA3W^&|XZrwWgY<-Ak=1-{|~$g0i=`kQCC$s&#b6k5C z{8Qx~Hb8w*g`i`i+tY86U%g<@@-Z^3uO^WaJ-+>x?x&D;hE?fQfa9^8{e? z+eFI!(kbnHpYEJ{*!6oGjs>xA;SHO&J9cLqE$^Sn{4Kd?p}M=KaQSLxlF=x(#e@`W zkG`Q0ax1#B=#Uz%TT?UF?zyz1#pNk^;=~Z4ci7=WC zvQFA5-xOZI&kR;fkURboIlN+l4KMsfpP}o7zBb}PZ`6Sng3l;; zE5@9)%J<9f z!=ew7ylL@?Qhjm{+$&WCpOAVFpR=Cudok}Vh;>*P_rx*OHE+S|&X0ee75Ma5J(pJf zxeuP(S($6#_ZC8Z{L`Z5ES=$JUJLxdU{d+DUV7hFSzF;|gij#yvckka1Lyxw{9Zf! zzPDC|^HjsXe~TQvY^>&(ZL~j_>I+2&FZWsz+&g9Qyc)61E_+i?oWGfoN8XCm+^;U? zEFPFo*M=UrGWdYyu{w&gFrVIO6BjVVqOwXDhSKX05P=aUX(* zEWQ9g^?Vz3hV-#gm!f`rXjQouEoEO(37et9NV3sg&rT&Xtt@WxL>jzv!kdHZ{B14SqD=2y2dHObTS-M+)Ac=5#(RzB>LJrw-n{AdqcwV`YcZmt&qu)#i?d z|BI1tV>{11Da=S?o-v~{FNrr37qFV7p``SY{w%&{s=sSM5gYIO z^bQ?}920{N=Nnyq_Nk7tzxC&^jYrD5@{id~yA`z`Mz>x+vNX+=N+0`~1BNjyz88wO zIE~V|m9?2ZEIQyWeSL5i{o8$5w+@~zQHJS1U<->|C-$S^rDlyRG=cl)+Y=XT2AnNi*I z?S2zYJ->Eo>~VJyHT=glU~1)socH%LyIgz1sphAeIUbGZ!!f+gzOq9cBVUhlbt>e3 z{MH;&=XM-?Oct=s-u}WYo-`x1-Hort=Lnx`zx7xe_-H{qd(fqFY~Y9rG?ku%zbh`dlvjNy-(sMoL_$YBd})c_p>rMi#cAo{Wn*?yZA|$ zQe!#LscV@`af9gEX_IKzo5V+IUHsDb8y-cn%2D(n_~7u=%Il_XvLDIIau(h+A@pDB zYYTGTLKSTWE9WV@?Ev3ODhF{n#~q9NbHK*!;E8Xc1OFAN=WjQbXWNbR`FG?JYPmgf zUtoux^t=2Fha;C$`0K%DMu|F8e87owy}k8#s_4iAd3FDJ7b2a~_-Lp(2}4b(BNwEbGZ#36pkqL(4X!;7cl z!|GV0r$=F);X=^q>%K|#Q~zl`%9FJZ!v~F?!Ce#D{ywp7F6VFa(%#uAnZ)Nhx6J@L zO5+7;e;WSe%c@3txiy#jPVQa7Gf)?{L4W#Qa8lfNcP*;^av||A7hZ$RK?Da7A3@dk zdTCy<@SubzA^o?)6&ne!K<;h1H!RBU)LG`E;G>t&K1-r|SNG2|&HIqPx#i;7<#rse z5596U@gdjep7?M{4xH$G@$*D)COkS_hY3EX^k`L}FOTAVf1AYY@!ag>oMIv6`ZDomXnwmEvzGZT5C|H={$^;y?83l!Q6_2 z_Wt|o?8a!!$5Y^+>%rA_1bC+O8qB4vV-p|T3T5zPIHSSEYL(_C@^nMRGUs;)d>R_F z;-wUq^F#0$@GJk9`=#DfMUJ-#z6NO?7;rh{hSw*PjZitDBXw#1U&FxV-F06Fd`R{^ z0cS$rMCe<->AoE23nL#5{F1sj&-Q6NPR>jC`ib8)fBO7nnZtuPRyya-ytP8ivNLT1 zbxtCDmB}G(`@5>ugW;Fcn$$XT0?()jK9{4;n*z@V>#CHVzo`A?Df$zfzdvxUzO%~u zRXk!p9+G}%S^COxz$*qy-VV-wV(Rgk_3bD%P;aBW9|?i7A`G2m$$zAwYZ%y;mOfL^KzCoC!b$AsiS-A}-G zk`>-s2Rx#(cz)MJ|0+0)#?xg^jQJOjSumygzdPK;cMm>VG1w;s#U~&9@Nk?5zby)% z&WiO_0QZ>WXk^jPRd7nd#ee6l?RPPx15JBAp!|z9iKO@w>AZK{#6PUd7SOMS$^Z3v zI0^kye$?9)HLeOA9DMW!(7*bKuQ2yAVYGrHNc9UAR(NJNYSHn><6qB5frgxJGrH$Ngw`SewDa3d~@~r=MpWj_yWp_xGODsB}-Qd*68Y+JJ1aDad^p&j*TC z@&03ZJmwhH#czt*mMP<3ad$jEUnT6<1RizZ+WN?P!}(RU)1GaQB$ApB#B%Ml+^6rp z@#ihhCSn)H-`|+OxGMuM)AJNH2QLDia~|lqDx<$BLlsQhkcFP$iP*u%z`&Om?(SBn zQ)Zcm>V2>7Vd+r~EzG~J3GR<`TYQD?qEG)HFBNkJ)KjnU_s`<*6&Ia1zNeSe zNqYSVE)V_yZ;K5adn!|75?=*{|K`AYc!AG#OXC@8eZR2azGLv8h0g*#Y>epY^v}V5 z?2*L ziw<7hU$t31mvW?dS8n*+rL-Rx=0#c`FV7KkWjPn5?u0*&GoM?3+UD!Ruz!P(UVdCklbSmhpQm>Epq(|q3-&EIZ_FIZip|h)NhLa z-4*y&a}s|?S-&;xM;cbKz6>21se8E{)>U2LTRC)nE1wIzcLJ{nIYNZ{&zX{$BkT8m8VC$oLYuX%pM`@4|9ii z`h6+BYXX^1ugIDt65oHRkJUNaS@Ib$H>ylIEOs?IZ)?Nvc0Ze4=6)CWNH-u`oBm`1 zZyjVZ=*H>XCghRqPt0d$8&PmQ7u!9;Z=T~KHeH|Xw=dzK8p6q-Uh9cE=(q+PwK?|jcHW+^cjG|?%(!_EUs8VcKJXP@#&1`?&A67hg{LffTWI0;)zmJwV&vo% zQ^_zJp8oyCO0H}fl>GC`JThJCN)6vchy0sQO1PLtQMSMq!+&?i#{N|crh#`h0CS&s z+7MFeT}0z_%2%-QpEEM2!iOrHzcgD@$G!PjvbwKvKkT$!=h<#6^5ewoW9f9R-25T& zozlo=-+y)xs~o?j+RWR(}-&5Z(=mtA(QCB5F-utM?dQLO5O zAeO(U)|($^tk{=jZoO1~;$sTS(%D86wKw#C$a}f<#-s34`-xp+=%sD0M} zIPeWxHPU2;Y^DB@6HnKh97{!xzN|U)&t-gNQlld~JIzJDlqVNF^e}JT4}CF@uPWy- z<~haKOwT$ox*sVVcL?}Gp2Cv>|JaAtZV3vRK5+nVzBrW6O>^h!jZ6o{8kp0%;Lq*^ zJ|FtS^6)Jg0bk#ax(-tJN=M)ejR`rH(2s>;eU!)jUlVmyL41#5(zijM(Ug?F)DQfD zu9&YFe5)e$58Oy8&%!tDS2(bDwQc^q>D!J*K2uUy>A@1wHw^*bXB4g7@OQ3@VM*+1 zxL~Ee57+nJ&xzBrUk zv^pttBD>_@*0=Z{YdBL@m!v#pCbREy|Ex2|4V8NvdQm6TS0%Ln?w~>if3-dv&6oR` zK?iX(`PbQ#>AnA=GLKK>-Z*^~$J92FiWzK(xM$68nZ#>q-;EqMHJJ)L9$4qgu{cUK zT=iyEp2Tg_wvF=|7Rq_2%`luwl7RoN=I%Fc)H;@VGWZ>Hx!sR)A?vTNq?qwsrT4{j zy0U-&?SrYqY4@BThC_NQ^s8Rr^EV{vOO?+=V^;m7LBw6WA+UC-5&R1HL0cB)JXZ8>RHkUey2HTjRub!Q7)Qb^9}I z_VF7oxaaE9$|83>zV>Me9IFtX?=#H5o>>G>6x>w*{2mqq3eSsr=b2T_hic2*Mc0?= z9D8ULoxbqORe#lxe?LAnal^m?IyX}MWYt`#9CXp`S>a`_w7hFce%m2T)-i*hh4bx+ z1$eCP$3=&x>d)%XH*})byK_0xn%VU9+l4lX%|clDFnN$VKRYpxoRGI@=NUZc=3Ark z8bOjr+-7ST??I7`;X_hWauU#A*46zBa?Qvv&FQsfPd9F#G(TwjWq0SoTY}0cLCgnpG#`n!QpJEB{ z!>P`Kzl*Oz-nD}(emF|FZ%b?a5%3O<>D{VszS<+iUl#aiQ3ih>x&;fX9QH6SdcEnX zEUy*=Pwb2SEdY3QC>Lv;--xvA!+)FCc-b~wz-Dxt&X=1kn3k!ZAFFlIO5-dFhs-W> zV)S7>WWS^C^yQ30UX^;}oQe1S#VYT^7F)SLfDZOZZ}{9Hh{l&F*(F3+2mNPOPZ{wgl_CeD=*Zn(Kdt%{%ei7yRsri$8E zR^_nQ5#1K%`Jb)oys3ab_=g343CMTxMqN~vWlkaev&s=_Be_}97qak;Wj`wX|E&eS z+Vb-{pg3E~?Kl=~G1isdVa%(FfaMuINhcbnoTmdhO*oT7617 zZ8;Ne_!Ph0m+8QGFP?1~;4eeW@=@IR5mqw@@fN7tej8Iirtbh=UFRaI+_ z=CMP+=lJj59Pq(X$S}hU?Y(^l7rZkuu+F$-HimAo6~2!p#Yad*&d3lx8Gh<$`9UtI z2P&a{cBOV6{}oTT;tD@GXS^Rfl5^##Ef+nSBU*H*++yi?!aYVR|1^R{e`hy}=hh00 zWHo;tje2+xDIBMO;9z{i7KiG?$_Lb!Rjy|b@!^E-z7DB5e4y|=kPF#?jZn|ST3;B#Ls$1TtZ%!MC+7~{GAoMPe@QSTuc7Su-PL%N zJqWs5%-8CHkJCuwcXN*V$KqHiPE%t@pe+R6KT8$ayf^#sx#uJdIB>ob#%(3~;jN0+qZw$O&*K;YArL+HJsFW9xdme6?0mgBh^^t zPr2f~G|=x)a3*!G+_ftF%9WI#;B*>#bY^~+OB-pACE@a)rPKM5X{+Nqjm=b?Tc=Xk ztZK?+TFMI#boir)?{u!wH_otNosNC%&36|TT)B6@KewD}C=N>Kou4Sa{$OQhcS;T>WwRr_sJA z*lENDhbFbpavQsylk2u#!+lHM=XJ@Rvp=c4#Sl8&XifCGpCdS%;f7Z# zbSYoXTwu_r>dE}~#VzG$eo3P$nSRf#?l}&=(Zktg)Y7(77EdN4OtAQiQWMB7>g|`w z*TN{E|HWJvzDPb{YeKFRAxDj@E1V1lus7;iN4~qu98h>@AFPej9*pl$aTVolx_z;O zv2HGx?C`4f)~R|u3SU5cGK3E)x~nU93MGx|kO=+LU~V&PPinsWYcy^P-ZZ5er)H7< zGkMEa?}VNElYomPa8jFR=ebfMcvAy;G?_}rS*-G2GN{InzjOThCyXYQ3x6Htx|m)M zyVzsH#tiKnX{{CTSMI^R(62eO=t9gC(Ah2ek??z!&vqC|zD?zdQK4O$PeFdlX#UHT zH`-6;qlTMt+VEMtB<`MbyP`>)R(+Cx;0+(G^P22=<@yhw*22TEsy@Pvp;IBB$rFsk z?r0j&J$%mU+ttx8HbB0ezvTI#f83~ZP1U|W3ts4Z>$_{snp|Dbj>PX)-PhlsSF^+U z^#(pYby(s3_EJ~io;fS?7VT#&IkCuZ(D@^xlahW%`6Sjw-n3vp=$$YRt|jY^@@3rl(!YBj@Oi>{@Pft$gRML8f;_+>0{Oc6^^1q${HY@6H1L<2 z!apGR2#X&Dp3845&QZxN6g>-mz9V?Wg)v93fb~~}Vr>M&aN+H199;a}RKMs6Jwh~f zHrznZcJtEwe$4&#@0B`G>SFaCOUT@W?a!A?>71hzA-7oPG>KkE%>|5nO51vf<_8|; z#TrQg{(rtxWt#m(x`dIUgRZfx@ z@U~7gc1!Syh$j8$d0>I#Kbj0>|3os#cLotG9R0n&KL3v2|5fqA(ggA4 zB-Q`6hyP+j{6077mw>aB)P3Xagpj7LcF7cNGo(wU`nDjsWLEy87&Y{j4MQcNW>F$N?@!LmL+@Y!?|r z%D=`_@FvWEip$)O$32X=@8`0RR@`-b*rDYDGR*O|Eju+Db=5ViT>;C?=ws>POCa+e zoV#B!U%9X6r)G*&wgxWH(f-2!F8ZWmSbrs@AH&?ezJ9JU&%}HO{F+x*<>T$D=WtSI z%5yV9ZHl!SdV{ZRDmdZFr!Bnn)7!{pIp)z^&zk>iEg44D%O(GHZtYU^BUM;@9iCTw zJATP;i_EQL9;oqFbv_2^J_r7k*zccpUnu8_(qS3ChBn{b0+^SVWcY7#zB;D!;9$0E z*I;yoqN7Rj1it+3(qrh46n-$R@wZydhG32xNAri?s!;dxc%0MCfH!ynZ>)mn@ydcZ z9f`k;%1QHNzs0r;yK*Hoa_bkeZ^77ILq7@xYP%W^wr{zgu0ql zZd_*;-5+>B$jkdr>loEsHLLCiR3EDK_ZIOBRXl0GwplUn~D6P+5ObKEB1re>r2YNCY(Qqcnu%! zIu3nuJU#jKJnl|RU*vKHvC^})Vx^1rM4eF>bwEYzlT4&?#FE%|)!dYfm1>KfFA+9h44}3oP2A+eP>0EH@)%M z*YeDg+4OmKy!Gm^rL=GJ`4xqY`a5fdgR`~_n$7P`+sy^tSmt*1;){OX`tK+ndhqGa zv478G#kZcs?%DntRp3|%CAIZg-LLjEUblLGgFNLtX?O0Kg#$9Bpx^hWCBEi>a2~0B zG>`aw`IfEog=$}J$&*$1VHXk~p9|KVJoM%q`1?ju$T8oVBfST+;^!Lqqa3=-C09TG zx9!21?Us$#{(K6ra)b`EqvU=ta`RAM)RX!f_+uMN{n*Q(1`g4F$r&XMW*_)pRn5yB z7*{Iq-C7}h%Wm79>l0@ne{?AyzGnuArt!1{lbJM(>o>kL;dS63E;)JCmh}B`Y_oGN zx{%fWYX}}g0Q9&O`Y-snenlV<-NQff4X)x1!rVE?`pZ8J!Z1kTWulSY?!9yhI}+-p`fPilgCtp?N7 zVMcOoGwHL*KJ?!UH6q(n^-PEBM?W1!)}kM87teB%!#bIY^rh@_p^%}}TtYV6&N3ai zqZuPwuRHMawmjT+(9Glrn=#FLet*7GSb>0f9RGENea=Q|oHKdsHm89H z+>@xRSDw`9EZgYnZo0kJZxwBM+1@CTNAkDp_1&{v9Kg>{t^QX1+h8_b$p6}Lj1=#E zKj(3H@^jR}3_5Wo(oiHE=JLiArJ=)4UU;zl#`x&bRJ8c!U6&H#fy*@`l?NZqj%TYH zBjy_#T%Qm8yiI)T`Q!iN>Z`-5O1rnM5er)oy8smf0Yy>Iq7)UC z4h5A45hX+<6loAp!op6hQOB;)vvln4?jCipJHNfpv)1!o-|sIkXAn4hKe5)m?#TIm zeBZxT2CnsGA>I0p}uceId??^BVR) z5$9P4P*u|{`Z+*@8L!$Ttd1ev-HvmofaYyr|L-#A-XFXn*5|KwE2{>PPtqu4A0j@l z1YXvFd7gBx9ncU@m2f$Gs$V{7g`aFH^7j}1K_g&|!s7UFcMyD2$F1*kS+7dE>oKIe zvZ9~UnBI3Ss(&nj{qgwx6gs57JfC7*6qx5KaNovM$2Oq(yQ`f4c2!g^EzSf2-S^}> zWQzfbYUeYCb=b`NBc7Kz2wk2P&67E=tT{hluG1j(xZkGKD5btTGV|#2)Lam`ZuYWn zcya!DlC^=O#Ph^?97y^fg@6!Y@wpt=q; zIXaO2=s@VGo%tLi+^q-U^=4E@8<7u@FKnnh#9@ZL;sd{Z;(|YJjzBkrugqxsF0 zD5-Q%%-&mfJsUx~r$BhCsKy&ET}b)bDYz(FbtKNB^HK4w3sePVL3|Fgo?hY>q_4yN z^)(xNGbbsE^iaxd({T}u4 zW#Q`rXRlgkIA_POx4YLS;ECP? zw>qs&LgtsRG4>wVe(7YqGCQQ@%uR79^s~`?j?+1#VH_R1{^cLNaGfjlaSdqw=;02- z3kgH-WJAZ-k0NGnIEjPS8o3X6djXqli0##~@*)tq?$=Q_R$O!u|7rZ>;+O0-#6LNU zKfV{%*0Vo}l?r}*YuhUkn)JR={gv%_5dI+Xpo6)Vgu(b$xd(qJc>LQTrO&=;{IT7= z^2^4L65;5<^5Cjvl#>8h96KgE zw5^PuUk_UUULbfSmY{=4-P}OE?OT-x5uevd^7)w$Db7`A;?WFboPl_UO@Q@}tosq? zv9p|eGmn@2X=T0+&-X<>yd{W#R~r=b`I(R3xln$fAKeG6cloL193IlefY9O30f%+_ z^L7TW0Fl#INck*NDIYVFe2}a`=-kq=WLjAL*4NXej}hyM^0G%>+V{v4c%J^3rq#Ds z-eI`2`!d5<{=V#!jv^0t4hUbxO`ujAo7d08~uP1(b#{KxvrHTc^MQ76zT{xT@6}uj zyNt!)>WwrIJVIq&Q*X<`e+DPhT+Un0 zvxNS15Q==fQ9!<=C~#pf6#5`Lbi3oPK&b(A&zjTRz(md$32&u(6LT?@SPNKswyJw`~8n#I<<-s*bn=eSg(f zC=FR4@(%;RZo!rao4zAp(gyeB)$@Fz=lLmT?`#UEdZHKgIRhd2(A39QR~3NZRYXf& ztkB~Jk$%a6eD5t`e_@akArylSCmvruYd!~?v{oIC)3NslgL<#~q_KYnjBXe{;IiX1 zx{t#^@SX$FS{LXTLbyy1uA}fo71dd40_A!Pp!J|f^`|B2{RYvTYXbQsoxDk z;V~N4W2WN+@&TIX(T}0U+kA-3jNkk#!pN zoe=f>f~U*VF~B*aJUVrI@SMOnmr@?P>D7e1H0F;YDypLt>3ui@3- zrYrmY$|LO+n{{xtO3KhxRw<+t8V{p%0bmp1D4yFL(`Gh``9v1n7^O0g^O&zj`J6pL z_%(K79tzECHf!lUpoj9?l{FrNxrI*avP@^=#G4**!~a`{z0ULE;|4@T&XJJa?O->JzL%=XNpyjc8q4XXmqQKECV3K-m zHw~k86$*j}UJUE&sf6(uc;01OjU(PMSiky`lzQ|0<^3#p$gv>k@vGqW-_@r+uUJa^ zY8AHFRi-!-m%^;05iPxjrNM)wb=S)jor2IOMPaY_ZQwc~1;yMl6z{9?8%ttA_zq_g zZ`TS|EGXS@=)xqzxg+s&yPGrD{ha}uOFGo>u`PkARcAFHaCHcZI-o+!a}lv_6yK9p z%fkjWnS(d_C;6`JxdjEky8x~!sU`-wnHX9=Se0zyFNbdxFAq$I7#-0p8T-uN?Nz_( zR6Kg8%}BGGQ7Cv)1L17m#k==w2cz&A_COuHdodCOk1PYsn$EdgGolo9@iUXppwiUO z(R+RbC+LEK|AA$9+8(JiU5mj}%JxU~y@G8|8g4I6TL;Z_MlMR8?V_(&TC~}Y4!^4z znnf1F?@1GG7G8?Mt;-kwOpi;U^JF40P9*%HrouxN9y;g`&d=wM4(hTJbl-mb7SJ!; zrzqrRlHW}TxcoIcG%vUuhUG~(?9V1Az(HY2aZLHC2}loc=(U#m97 z!4c#O;0`{jt#FfA+?6~$`QDd&$x~+CE6oQOWz%%^}{<{L_;9c%Ij=|L6gY@DcSu z%2B3sr7h>?$e+u)SjH>Zk3-x;AE*whOuu(c!u|E-yoGhH%KLixB>rPfs*{`3z5j{* zSgF5h2aFTZI-~htPpKbfpF)x62>d=s-#8RVN5}h~@aHzfzp^2};%-zoD7q${&%#Ts zc)#Y9+vOtrY1aL6zOC>-Z6)V?ix>8KWaT)3eje-A-qF179p#!dqWjB$&h^@~ZuR8* z7P@dNImf5>#_Lq_gD4+}|2@yQc`itw_W-X)`tK)bPE&(E?{}@>4I0vU|B(EDE^B$8 ziv7__etj1m!6|_2F66Hp^=;lNizEHWe`g?y+-HTyJZ^rSWAFO__hF3hkzX$L-+J`_ zS=U*g-d`_FKUc4PmeV+BQ~N^Om=0;Q&OD@FnYhQJp;SHYm#4zb7SDP;7@dSJ8r3-@ ziF`^ess3mvarCKeAMg8JqTDW2DT`CitXtGjzsnH`FA&kHZa zCn!*SD&cLtvB%kaN`l)^#v5_Pw2Xo#JtL^Tj3s^LFrEtm=g%?@%sM~z2_wES)oE_H zsAuAsIkiLiz0taBEuRm~ci8WS?&W0qJTb_AU4n2Q}jP1>r?z$~>afMV z+k@~cXW}&kp~IiEEE`W=1x1DzAG9ruX8#bnKWh@-#F}wEO!#IuYL%-us&0VIKDtVs z_4MR}Yx*RWz{69H4cvFF1XXRaH8m5&oFkCVf$3+c!FRTl+~kQJI!Ee!c{B@pldLf&EZKUlItl=bL3lW_qx{0pG`3_8}1O zqZd?BVc^o~sFOz-rUT`^!L7R!2G_lw4O442X)(HfEb-=su#OL_#Z7Nt&(WK6SV80v zy77A=T~t?We$~?;dz7ctr3k)^J@GO$d=5$7uGsHC>3lxG=d<>Xah#|5c z5%obeI_EA+{)?F3RHb{OHhu28tZPQo$gv8=VI=81J%D%z60Z?@p>QPKDCGy(N`APw z2fs=_fWViV@!Xy8z(&MhvX%ZI#0Q{yriHW7C4WRe! z&-ao>@Kz@9oQr+k=$!39c#rfEm%4A}eQ{qcaB3U!K^uhPeQwr@IglCB984q53roJ2 zwYqE6C`Xp)8o6#br$X>HEx3N- zb&c)!^{-L+YY^o+PNR9z034cM6-5(j2rsv{1R3LdlP=8~kWCI3wl{N0}QW{P=yPUn1jdg6Gzn z@VN$buCs6O9oj!{G==GtT7c(B6ueO{o?p^DzX|8_g4gZcM}FL12IsGM|JVKRc~CM% zbxh3x-;G1Rl&7Z3oOj+ww2rB+drkNJW3J=0><=pZ2L=HDJMy3A^}=6=qAvZ#{Bb$o z6#wpn{5qEf>E_X5)AfFM5|j(6w7Qs*zl{yp)_MfH?F7=7r&oK&#yi0 z^R9G0o67q{>O{z|p67u=@8eB51yMkJ1IjmGewPt_{=uZnSNNI{kMeeWam2ubKhyN8 z+e-XT@Y(v3UbYd6Tvto_dwa>l6nK~;3Sa68l2@2HY_Zdk-=mQ64yqfqLT4}vX&%71 z8R?>$(EDpD>j~07{-6C&A?Np;x57F*;tx{2ZXj`N^4FIJkAPQcQ@p^ zr+P}menxzbGj1U6&kEiz+TKd_;QP~#bi#6f$~uhme%RmRLO(UA+?DG=I@jNmkBT1O zr*sZiMfPE*J{)8FEv@`9EFN;z@4eBw<2+PM!JBXQ8G}0%RmKwAJW$gNo2(i^^?U?I=>!D9 z*#6en)X05Vq~o_o!P5?+^;;EK_sM>%3!mjpndd$acHAE@#%@6g2!7XO;+G{+A7x4S z_z)2O$pdIVo?w4tx}P|Q@hka!^q}|6IYF||)Fw@uS^37xsc>xf!-s2cAI3+PH^8Op zYBc%&Z0vzH7g6Bi$6(Qc_>sHp7Q?tbmW}E>+le|G$X{!qpAK+MfRRJy&T{=$iiYW1 zwCN`ngX0%NyI_-8I?p`8P#3@)i}mWXnbPq>DfIi?s#~8|v*G28k%8Yv&w}SBJ(MV~ zWXv6}8mYvQJ|cpBFfeD67Y9vJW9Z!>XxXd#j^=d@&cVq1 z-=_vKgqHI`a%6TO+_xD2e0EOB%3CZ6?{yXvBno<8bi22`e|5LT; z6|YKQ)zPdn=k+;ou1R@TfY%JL*)%YrJaje;8mBtp7E4^pq(yQ;?&qO2*9*oD)6C!8 zPRWz`XY2V>uT>5 z5ciog@$4Ol$HP4K3awaIotd|TqFyj%Uv$a4V;t>?=@m`OqE5t{=}q_XPwFRrlaJwN z4eK3LRkK0&fpov!pmVqyotqCe;(qKU>kszV;&WZxPjAT2>!;?}-rX~*zv%^ZPJ@_x zIwPOg?C&XZO1jE>oAFG6_ZiUr`a#3rpKw6_z3BX^Ec+dSM+}y_Bj$Mse4qkZ zYpwlsI*9JcHyX{XpYN>#0vO+6ypnMPdM=&lJpD?(Cx+CoyU~2gg>(A10ep8Dx3*;(r^B zCH;O|$s_vz_14y;dl)HyzVM;*N9rT#^Z(Cpi2R5o4k7eO?a6n!FVLKuaSg4&4~?*n zZ(Ngtdye${+W`4=gE|Fky;Q*?6%|G71P3JDFtU$`m;;U>UUUfQLrj?eLG^Msx>qe| zpIFQJFXLg9BLsVXjau60l>hb+L)%-2`NxA04f9!F2FA zZFl~{`UKJkdjaPd3jYOjsShJOfN>kzZ+cu0!jXPvV~}l=?U3XAAzNG4MWT9}KbI^a%fbrqMUtv*ypf z-jq+xbKM4VT@&vT{70@OjVmJo_%vdeu_hh@yY1 z8T6VJy>m~G#h|iPjSfYD>DLArr0+w%Y4&_S5YA@>6Zel_ZQsuw#5x}gqR+Lb`GPU) zkEI@7_{+G-zFGX9?2F%${Um7~*@5{2d`#r~WtS7&%(%0Hj(i+3{jl5|g6@g7=}KBOm79t+h8jj8YbEcdU#aoU5AX?Vw1 ziNT21>bIB|o5}YY<;(>j^AQA2WCbao{8yVC97njbGx^Awa=*fO4d)lqdCtC-Eve25 z#RowH^j8PwVdX>bp54lrgMYu;IB2NrENIg5#1mMxlynV~Pys7U>(!n^Id{wOr1h=a zWlPd8*%Z5*<{Don-Z)@%9*KWr`(=9HQjvUWG;rl-hg|CMfZrWQ{p+*h^;d7HE z?_JiZ3m@uUXso+v7hu`#j$5y~uE4bq{CutNP9?p>6cjlRQ7CkT9w_kgp?u%b9L*9IFdFJc)1a zx&_;xK7x%FeN%Smek}65_jN$cy?Fi2han?!w&TQ*C-V+A4FuuGPz;llZl+>a4$ykS z$z9vF{t%Tzyx&BeuF?W#%_qOCrkss!0%O5VW9_51#b(_9TZ z&CWiE+c$haW*@%{wT3EFdO3X`H(8R8__=w-S@`l#$oc@!qi|uf8US?x>e<_BvuYg$B`osVb>qWu>Bfos z9h0^|U){x+3+B2Fv=WxstBUq4Fw-u7bHk<#nmwqnt8qLR2Iz$5S!lR3%&hy@Y0SHW zQ(ZUa9PY39f3ER4X>nN5d%W*6`R~yS(Dc@UmTNsWq0rl|z^y~kao?mRI8-ONT7}9> zP%Ld$BdRi!g6fk4bpBV+9MFW$mCiu^HR$yC@7a4prU3J0PyR}3WLVC?FY#aWm*ZJ*D^p=IRD7mJ@kHC`)4k%zmG`s-})c=>Z+-wAp2 zJXTYm=m`VcS!K+4Sw#D&9ja+527BFs=VwCaFdRi+J`yNr9yYf*<7>5eD%Ber!Y2~p zvBF;dVUdUX6c^wI_p``Xas>H30M*6)k?{r2vt^$J<`W1VfjjL}Ko6ZkgAaKZf$nL&?Xg75jD3{LumoCVU+&)~Sak2!hj56K_$lYeUi<;L(5nv=77bC2v6Jafc%Jzap326-18KAl8i& z{@4?{-}|=t?piM_vs8iS5zxlrSl!OCqfqd|qcNuD0Vp35Li3Rb&JjRG^xI<7mC;hi z$n}ok$GHLbb;J_^!jVz9 z#mj^BlzE9Ru+Il?PKq87lo3ffAs6}eqW^J_dIr`Lv+jKUvYhC^J9!}L%RIu7oJcR* z26vA%?RLz}mHGduYXcgm$aN|DjGoB8$3o{3j<*}ANaz52Y$N+^)s4fr*q!vT z{B5S>k0L{S^1&|S;juDh4kOO-&Jby?uShmSz;A({Vl8J6p~ts;tn(ld z5_jC5Uo$6D=G;)86!FFtzM(EB&I!l-xBttE{;70MRA?8rT&I0sU;(821i|x;0Ue#Z zem)34DIk8WBkf09q&YP6>`--UHFTPTL+Vs9%Qcvehevk|=-V`%eTb=U9tNX~Jex1d zn@RKau|PO6?QeS^|0fWBbYV!oRWyfi$J+Xbx6XHn1CJVy8#=W*j(WPr>kw)iZ5v(Z z$!@$ca!iNqPp-kZK-Kx~GM0>i!_{m5jeP?DiSXWe01d$EIY|2i9oZ$-Z?sGKC5Q5WafZw^>3sqwJiqO~|NqnG0B zFdx6HpHmYrFGWpa#l@UM85rLAaQnCKvcTSWQ?P$*I_49U~8$FR#&<`j}&s2iT{994aHn-qLLZI3}$ z+Z0qtK&>oY$6{lX!m!ZqF?4POai1*nPMP0A{Bb1S7_El@R7e&ET5SS4J^Ru4So&nC z-{Cp3z|UIaX77px#aDYX4zJ<)Df`gu>D}4d%{h~Nq%%p!*M)g3?B@kyPV9<@^uPQt zx6h+Sjr$6qDj>A7Ys6mzyxFgH$>7 zymXlEuL_bP2)FS@8$a8K{!_-nrJHJjno9VMhVm+a^^4@+W5+ypI&Zq+s>0ostcK)L zJz-AgNig#jWiFYxcg*PPHftH@7x+|j!ci?y7w6D&4%WP59P9147;EZ?1d8wd$7^O? zc6X<~Xn@Q?DtWUX?NYMkbK!em%%l6G;QtJT!>{`0982{EFNIaoxPLL_*9|2emmP|J zrz^I;{&q~88fm0oj)8WuMdkHIrO`b)fX<7q($9i;2*`aB<;KANCohhfe08JqD3<(U zIx~(${zDJ7tb0_<|LP~?Pr|t!&V8KPy9}?iIbAXORWRc(Ao2(&!M2xo^AA_c#tp~+ zP3!Pqip!N?*zk3?$x$7m{zOtnd3- zs0xhn+^>_)D+;^l|5%&za{`fgh^ewCQRP{`Av8 z@UfF+Ure|r)y)RDz_vj_(*$3*tlv1%bm;{0JMqS08P==Z(u1+Fk`ll4*Geqy8`aLz zFi+;>3f*Zs`Q$i(>c*w{HwkLpayk0Nya1X8v|haTT@nNq4r)B|YB_$rn)`9!#$_;V ztlQGZbyM(z+d%(H&B|dxZU0u|2F?ZJ|85O-{1T4r6C>u)mdN-fY^q;Ew!*$&KG`ae91N?dP{Kj{E^{|~i{Khk`I z<{1qL-|T<_r}jePi4)#vM$hXp&u{47Fn~q3RbzV(SR^gVPr0gZHm3eJ_NO**6j^4u0Vjsb*!1p)I*c@8T0QJtmFjKGTw2oF^9 zQmX_t?Dp7>aB&CfPny&3Uqh~M#)HV$j&iJq1LxrgJlu$LKH>6SeI**w1DQv_a}L7$ zrf2w89xfDp$1vB~)Pt}k8?PNY4^BsA<%5}BSODlP0BUA_VHn?J* zYSc86bdhf4Co~e=!ZL?i#Ca2br{r>ji%JZ3vTasocTgimc7;$?M~ z>saiswv=nGA-$Wi^ktp?YJ_4HmrAlGd@G z^aWx6C2@~+q50T*$sZE$>7iEmMtD%ZwiogFyU{)|M!^dkgo9RAQJ|z@v~PllZ&^p; z%wj&H55G*OeV*CO0R|dRsY@o5Km=HhkTn%u+46-I8?@hsGH}Z@XKG0BKI;Ft9L8v**Ne4;4*9fX7T5^5{y>~O>K@KJTX9~`p_rvAa zs~Pxb(#+$NJ7v?{TJb|s(1fNV$HU|g=wDz^j4SGz-F{aRkKbQ5F}PhX4+P(EFzMlj zp?BKrUeSv@>7EXNz@v>7<@+cYbkO7YoaBLUcXFMgpIyT6W-GO!U5Ts8-z8*ST9230 z>@KeHnhjMtsz^^Eh&+fq@+(SY-7eH0S#OLGI3r4^5i{E-VAJ3}xFxRJ|UTxE{zseHeyI++zF6-jJ zE6?fSljnsXau$c<3*(~}KO3gw_z~J}ho&6`C6xBrmxvwk)UWl`<~vGp&C|Hd<#jKC z)wQw8qc} z##L>-FzWQnJcnLs(x*_o?@=_TbVBPWzu7n11e0zr2F%np$S({|@4R$1FQ6asrY%^n z4Sdfs&z9aV`P*B7E>^yklEzLsEtLBx&vnhHJ6o=sgrdp)Yf56tN>mQX%SoP_QDG?W zoAhfj_PJ=(G--qfzEEwn>Ma3*FBIT_A={E#RL_LWf0hkhd14Ou>5L^J@QvX%<3HO? zA)F`_cd9lI27#cM;d-=;%Y^<5y_WvDF;VslM|w|FtO?TaP^XE?mYInnpLP;V)&)@& z6Rr_K^TZ@LTx-{q4#qR&Jc;ldsY4}S8{m6JU9dirGZ_azXe+6Mnv1&f7m zG&MMCf9woJcmAOIO z{VQ?dCcdDv$0<#N(n)F(!(taQ#zZ}GUnBe+ z$D%kNl{x3$W!li;;jk=U9Y{LUx^;svol*1v@{i~!bEz2j6#njw<$Rv%4XFnupA+Ws z&>XHY>AQxY0y-&#pCg(naSMnp`?llbrD+MUU!|KZ@+K7i<7ovEI400+fgVdT6>e4M%D%=&ZLxU+#vg5}CF+;`*qk^X-i;HWrH%jOp0&69ag-apd<;Eg2>x+k$&)^Pa6%2sr9@WXHTJSOlEKh3a^`{1%)if ze!2$zI23qn%pMW(H-t|a- z9c!xPli?D$VW$FA>F86YRVKod;ogDA150+yg~n&9`aZt46jit59nOAex@`L92hT%^ zA3ub7EyNcZB7K}#kEydwXdDd9yWi5aM@-;8w;n@@4*phG!)}1`pGCxSn zS^G)f4z73keNtUTIf!j!PKnt6=V{(mo$3yK$txt@msaG~DE>z}9&}^ryGyth)yEF3 z8v)y|e^0(#=1OxM&Sj`A`AA|N{=xkT=}V1>f7GAO-CF3|XZ!I4?KJ66rjR9D_|6P~ z_DlW?8wf*Cyr+ry_{J0E#vMm~irBA+lT7Np5zzSj^+UN#HSiYcylxM zBOo16dlY$d_H-U}2cdgP1K~s81826G6Xf(L28e$S%8*(aSdYUw856pXEldE#T>N5> zXCvhEC0+>a^X7C;Imo$}WnR7izH~Rohb4(gHa;OdH(_0>Wu)L-=$%`TT@mh1AVz zX-Ph{jlk87OX9L97CH|8Q>1AALo;(^CKDupk+f4C~{63<~fOnIKFC0ibF?Zat=JBHI z4h1Ou$-;uW?kjzWsdEkzJKJ3rAzYJfiZQ}WrNI7um(^h2~&7eO=F^^Tl zd8VB`tqrH$vIMb??dV>#pd12Qx<~EUmy2>wJ?Or!PM`m^hI7Fwuaf$w_HG}$jFRLk+U^4k5tipji@;aJCFGIpTVA=0h`x3^k#Fc;P2I>+A6h8Fs zq&pc1?T%fw%nA8Hg&NUFcdL`dQ zm%ld(-(FFJNAdJP1Ont4!!Alt&XM=gk5yQ}TlYR3!w!?PZ_*`nuV(UW5Aa zu3TSe1i!r>RPCT5m4ldPPq;vH!e{NJKb+7zI1zqjP5kKkTqn}~RH0!V6|GMV<0j-k zK>K63oGXYv<_qQZ*5#Z&oYH0LzZu`cz-QapFWTK%po?kv6ej&;1b;Y=`%5_QWE5LD zB82!PVRCNGI3nlzu>Xxso0{Jf8Y+I5I-Z~viaeAoyte9A!#(#;0(Mq|CoV$GXqAC; z00j(u@zSw)r0U7l{tu?IPc7XuZTRot+Q+2ed(k547ehQa(iwN4`@jx`pIR&g zY4=t7{%^d@pXT`hzX#R}iT&-sU&rf%c%e0LO3>oY_blBp&};vX;j^aW-Il83-$Gn9 zA$&|y@e*A3F?D52>q6>ZT|qHv+L1M-7`rHGQA@e!*LU%`d=k$x!ntbsKD=_2VA zU^^F;kiur!9Wvpf;-1uc>MY8y$)xkuob*j;JP(Dm`X`EmUydaoueQVsQhb?$lYIII z443*)!K3I6j+QQ)Iu$3u&cF5k)hPG$o{fNIk4x`S`yZg(36}_(s zq_^;+^F&YH&+L!UN3}mZG>+=N{$SL9*ZDa$;z8uItfX}r1iL!5GQ85R6itfOJki^f z0eU9Z`5StMz{aT7@8sb+$%=H@toSwTOKPDJk_E#B2<*2I1-V9#?RyrbQ z8vK>`qNMt+Ik4CWqGC@rXEPa+Q=T0K0#a`wQS^PP9cgtqpoL^4!-vHckbXg;N zy%{L{I>$o9f6l#HMWqu@Eef8$R|hqb;4!!D%t^6+po9ed?x#P9=1_(hquQ5lA4=!y zPYvTa!cTZG?NdX}5taDRjt85q-mDw~1!}D8?#ZZxRw~Y^Nz~su6AolXeXbDd2R0>NpHjXDOU;~0I{ zW|579Q0U_Vsh$B$ae1*FOBse!|JVUDR9f$hbGSI`qM`lSgP@~{Og{-mGoM*5ySo7&sB+DS zCGdKk8tk(Yjz*nWU&DF?Dq@a3<7!T){$U9&`eCrR%Z^m?w<(4_ai7jc{24@k%I5HM z@RV28zAr`9rQ*uu)i}In-r(KEYhd7feTx&vr=!q?DSjBkcKuiXcQN@Q2BYv9T?DtC zo2{JWnT>Z|J<;^36$6pFz>0Lv=>V&DNk=@2vcR_S>9UNTOQ78Rb?oYzDd?sP_C5nc z5Boj4*X*$Nfrl`C^zMm)t1e-cJ%>y5+UOeO&1dnARNCrs0Vrg;qVhlcl-ysJ2X$z&kNwc^PE(}{(E9>R*U-M z->eI!KTpt{=ON8go^k#J)gf=RJbz-orKltN(|pj5`y85|zUA+)6?Mi}4bLS-UC8?6 z6QnCUuNC~`NSbSmCEZP56n<>VJ*;$V^LJQD+?4aN#C+3+`j)0Nw`xS^<{gdD@AM^K zn0~BhqCV+9&7~XCzpF~~widASesA~;L-x7x+moAO`P<^qUsrlloNsuOkx0qwt$_1Thb8Md$EWjaU~zKd%F=lkT#<6Z#M@=I!B~G5r-t zIv7arOgN7v>HS8?Iq*oG@YI*;Py^{3A?mHpl-KBt#J7{apgf;rzX_2)I6~^^iRX>= zoP3_YvT>&SwLN}$Snw&a?J!!`%Dnn<{n&|}ze*hz@qXyO??imk>hyIrf%{s#H9Be+}!fnD0ZrMgQmL{g%9O@q65mzlZoa>`PHWzAJk49NQ!D0%%`e=5;J{xP;!! zmhyf_kwJ_K5ueHowkHWGApu$!Ym*YeP>-7@x|-#`=Gi1JM!H)K<~|z>ZjglTRvp={_-gD zX9z*&J9Az+^R0wmSum|Xg@+y7zW!e?ttB6cbWZ$!w4A3Y`pFj1?CZXV>zr(4-B0s4 zdVkC-`pG_kT9GH80It@q_ZLsehi67=fMNmc?e^pTloyGpOzch+eer^ds}{=Dnh8H| zpP#)rH4Ujwq|aeSz6rfaFEEI3*_Nd5?Mpf(V^Gszdaa*`YgJh7d!jtYNqU6b3dvXSY^HbluUiBiR@4SAD-Oes! z!ll2T=t~`t^A)(y<~$O<-{^dy9AF3LDabqmp&L$-d9tGK8I1E6-85RgGoJBa$-fZi zMRVRia=-D{*cQr|eb&-7vD2{rJo1l3fZfqs){t}zZ{k5|8VWOXR@A-x#~Vn15iKOOLG+SX1! ziQ#y$D97XJQ$Lt&9<;Plek|(QIVrC$7Ob4SQ;iDKp&;tn_jPYGz{b|xspua6-Y+$+ z8+AJKG`2U-8R+M9r}cGT%jYriAlc`G_P?Ar@cql@xYQ@}Ttuvo3N7adF~3fnhnz2e zLreFBmg*a-d#&jneN5-XX2O?#(fMBwnU}RPUOmYb9go6(*!O2Edd@$oE;*oOJXquh z_9wnVf4XOk_$j)%(HG4-uWNMPF;UKsI3JLGvCnrpes18V zah#tFeieb;8*lEJMAx4dtNFGGD%75aWHiPznZd}!U| zc_!X-O|C0=y=d9@Lew4OXinb?#W~|f^+8K~XWCh@kPAbRBNs?MTv7D%EC@F=q5G@5 z*bBMnPJ_mkjm|89@hheF1as^dHpN#uaRSs^>eHn7d$^3I`4d# zcMQ7rtT2-KuhPGfdGF*CK)BjNx>u{n^(A=0?BjGt{(mv=Y0mmH>ObT7Ig(zx4*8TC z;gDCGr=Rv;hCjbJ7kuk5kN9g7@T6-KkLRXQYw`C&Zy`GkW`uG%{h9D5aa>$TC5=fC7jY)kiLa}YWv zQ^q3+f9yi%Z%rH!T=6=pD3#{c?IrFkeBb*JuiXtgZ$#rtze7Ou=_Bdu|JN@vpNMn` zT(@#PF7@#|zY+d30aQ=7kT|9|KbjD}KZ5iWE=c?_;^CX{yqWh6@t50^&QqV}WQ`~< zsTb{YCwfjz=-h8e@2Q^jK@;b2Z&cGV=dH;kJzFpK7oqjkk@VDqa9n01g^?aj`Axo5 zM_JH${=dGO=PBYGJD@eOIn~8}OHbJKRy}azA^Jw!UxCg`;dbzI2gA$rVA$VfVSBI5 z$KM?^lQVwiQchqxWT^Ik&C*f$CMCn4$*SQ;D(VGJ_#C&?A5~V|timYJ#XFwM2a!Kw z50*N?(iEu|$XZy~`OxmZ5PkLjRIhGX@c;YpJ=cb`wW&6ztB&~BQFUjZ z_;)V++Wqt0iTn~2`14_`b!}x#|60m_*YRaNNIxD9$9GNE|8}teC?B5qN68rY!%CS{ z-$K=`xGZN6E(uZ-8mSralpG9?hU*vpCkx%O&^9uxi z(-?&w!AI`@>jN%SZJp`G`Nin}?+_({Qt{bTf6Y-&kkvKe`v!}N@U&G!MM_;pKBlf% zdd_S~@~Y*;=Pd!9J@tqMvOkTO-R-BddlK$hZ5tMTp#VQktNZ@RABnOq`B5}9clfyi zRMQEwE;`}!#kF=n`(7?p?QPCOy^^TnD=Q*#=V?G9IZ1D zS_BH&vx)VDbX1zChKoZJ@UQt(ww;+VpX!kc?F0R>p7%q{i0@Yy1mD_D?pw}f<2ie( z4*2uMU%LE@bi5mXs_xr*D^V9G)inu)jxvYpC4J@_Gd=*9K002@ZXJbAio4mWyAx6P zUpQl{gEMA#EuD)OMyWwDvq1+3-$yp zSThe=Og*hv&1NEcoY_#GwtXq_6DFhS-O5Y0$4tis7r!Zt+@<7?=R`g`At3ayBf)x2 zY2{`4ejx5+VBaBRp24W;wjb-Y8w|piy9BSiG*BGtNXe=W*7P2$32^Fj zp<_g~agv|HdNDeGA-r~tjk(=DNPlHR_>2YX^Cb^V%o%Jj?w3j9cK2;@#eZF&Oxco) zHFbg53g665P0p~!|IAH(?r*H2^STR|S*Vp~4k(N1?=8#HNT&w$`RYmEVWH2r1@mGvyWvpOpb#-8jC0vW9$Z<*IBMd5d7i-H#)NjP9|rouxMP_^0$u4{d}f{VkJM8{h@f?MD>sk(LJdEe+_D2N&LZ-u+}2R(fP)^}%I33Vc5awxzt=>^d$VnmVppJ!mYoIzrr}4g~L-+XXM$irHNJ7 zEf)Du`_kuT8ILkR%)yGOA4!vZp(~>uZ}pgz3rf+p*fFaJ1Rgj8uAEz#@7Xj3>vd8S zxetRbUUk53h-yoxngsH7T6asxp(^W z?Gt8EKbM4JE|>#R{=YY!Ta-go&5oq@!Z`c>W;UxDP`txbnEJqA54efn#I)gFlRsCwqv?K5y^O8dRxqy7ZybHQtw zL1ymQX|SU93%{rF)1ge2MYPOD@qChH4wTr}19%=!_2Em-r^*6S08s$BB4vk z=e-Udcs^=h>s`~p*Yoi64t`UKpC5q9YsV{zF{4p+-)P$2o%N)|<4}B~DL+@tzdiZq z^La~k=n1XBU;T0DjPvI%zx0;pGvocDPiZOhrzrQ3d3=&jBhJTq)IXS0UEx6Yi9X@D zwP@cyqq$2D7^05R{+b2k*9Ik1i$f0{9>eDscA-CE3M z>mD6UJ@}p{zc)*|zh09byRG#5V*e2FdG9ceu6b72QE5TaVAh|$KUQxprE?@1$Oj+j zzJez^rxtyCnGG%bHCoVNZajPp2Y1JuN${b37Z~b~kp2cDZ%OeF9eS`?_@xFkSE)<> zS$(KpHYA;|8?t|94TTMHV^a(a3pdSN`FIjGuIRk#$Esxb*QNQD=e7wjv_(>zt%HII zFL|zE-mL0M(C~wkJm1NG33j-v!ha3yF`97TS*{)P0i`w&#YD@lBqhzjv=ufN3?<@2(?ws#R zd4Ud+2PXRDXUyXwU#PBf&PaMfs&{Q++m?p!H>~pF{+V#L>hylzG9IoG{gV^pH850n z(2taJOvPmDOI}$J%~OZ4Z$75&O|SC$@kCm8-Ra+VmHUQq8}9R|t{`4i518uTyz|ko z1sJ#XUiQWtD^PVi-`Pp=eeQR&cTm@vGzSRBPYYT#p1mRzwq8!g3o{F(J}BARpmFuk zk<`z768_c$n4in|Bypwik#s-yl#6IWpYx6;Yfw%LzjLl2{tN)FBN(sYIzm+?*6(d0edR>I#yDtQ#_8zy zZvc&7Ja7LdHyWOf7_3-G6~pbi>clb`e*EsOI8-E%&f1CcUZb#Ul3LMBLgAwnkK|** z=LqRJ+A{x5_W$H-M}4m;*y{qxA~+wB&hzhDF<?T_DX z|8Zar=we=fWY9S=32SwI`D;u4VX)9g1wcw*wJLAR@WDzpr{@_4M1$b%SjgXxee9So zE!K+x>5QCE;Bc1oeWwy1(t_(Xn&0*2=a0!pwIPoVdSj0A)Eh<=%elc&>*;m@Phtos z(ZGX&s)KGUu4*3W)?m#<^5yBt^KL%BI8RC9OFXaToKxXHY%cQ|HXbOxvT?~o;>EWH z;U6$j^0YWN`tqWE$E*E_M1eO0-7D`kqR(x^`-t_5a{r2T-HGtA`h<&hCSR$^sFUZn z+Kgk8zfZhST!QTPOn9f3@f*h5#QEe(`a(a-A8>_u9S}Di#eFji1#fLWDq{BPdkWHE z$tdl|!2Rje@21oJr-wlbI^MD{4`bKwFt1%P1(S;`6-&;mq<1(9hB`v^E_}PIzgYoa$J9t0# zs=m0s&A;|2<|CaXkB;yrn!`2Vd?&g`?a7a)C%uP(|3|<6j`+5Qbe{hp|10(pf1?pU z&xrWCZRkGxN_Z*X%a3_}!Fm(=x*PQ0HnLi=)aXqOnXixak7wvej zhBx#^^g^zCxUOMdzBsS{p#NXN^LffEc&QcZ=f0MBGX*BJ#-jsu4Nq*!V zvFZG@G3^K2g2-uiA^o2x=>^)L!1>!VE>8RIm;8AG2Q?)hiowJiA0qoCo=*@CMt;jC zu(E3D=4ewl^wNfRuy3D;3zT%gOWgxO%*{AA*Nu1`AyB5u#+$h#&7mZJo&E8NcSHAU zefBq?I;J7?RPA0a`og`aiNVSLxKm%ymF5ziXuZ`0F`w=TBh{D&4}Y4&N8#&cYDE<; z^|~TQJCty+Sn}-+LE+cs&vh2-^ys;1SU1S$q2#xd&JZ%c&FwSFU?SWaZ>Y4G8Sr)Z z>Es@>gZcbJ;gc~Mmntr_i4G&lKimVUZ$=~EV{aYG-H>yyMIG~j@n~BAb!dLyiTXwd z$WH7qddb;Pcr?@cYgd~j^1~Uxb5fdvkHCw)emRC7;#@6PJeAXP&VWGWxhU-ChRgrw zS1a<0BbkTJesoCpu9oU4!kK(%y;i0EpeFGzYs1)wE$cJc}5kg8+e}iMl15Y17ZEb0<5U% zF7awQr)j?Zka;c|!CwiIKCZ&It{3wpxPGO5*pzVND!e}B`WyD?+@&j>eXghv>ch9R<%?sEth+i2Pn>oRj*`jg6rhs6A+C z;_=5UG_^UK*|&;^+U!G6}!EtMcDUk6g^3c=&XJcO`4wVc{+yX z5|)H}SEso_Z|P4V^5M;B-Pq9mWkBDbb;xyDFUEa5`@|3)+zah?SE=>!gB|1=HFK#J zI~+uwu_wLfTD0CC(*01K?+3n5>F@7lKB&OoG~AC6uj_=I)3aV)od0@o^zhS1H(g7> zxSh(Voe1CcO6v64IYHK=>keAgY284{XCvPi;}a97wyw+jO7Um-?bEW)#ZJtZ=5@%t z8~Xcajre!=;B)q_(Ri;Q=%&Kn9{Cs^Qv7!fj}ZAB$&UsUQ|Kl}En{GW)#AlNPe0d%p9A~)XvMz%rET-(K&5|j z-GOt;MZSYQ3ZJAv==zs`^ul$ng!>PHKdY+)q-pHy36uAoh`w+l4vw_Cd8}5dlJB7N zr8cB{av0SO4xH1#eqi!F37^3+{JyCEeIxUfxQ`dQV?~#LaP`@h4~wwfz4FV(k9?t| zbH2}rTOl}NXq0A?zQW(sR5u&GBL|i6wr0-0DKNO6njGkfm4{{NyZjXb!EYD-Gvp61 z^s=br8T-ha_^=~DZ7}$iI!}@{HFoF7Q@SFMQMVqkb;} zboRpyv*B^hJ%vfF@bA^wl4f?4Kkh2=;A!7&V$S9%=kM)}R^%ga?o=Q4m%vs9DR?86<`JiFuT+MD+a&!JJ|DH`K9{YLukZ@8YWPk6Y4tS34p*4pEK zt`uDrSM$<7bN^4ipB0}A*!TO%%nyy1!=~M;!Qx6_-M`?exPj1D*@1hid&Q-bRSuNL+8^R9V*hMYJs%q!b$N96$7;$?EroYAZzMHeI29xQ z(zN>aDgoyv+TNILwg{41J1G|A;W)@}p?9tHDY*TaMbDadiy>mxA=AZ!(qw*_s8dt1 z;@aX@{oY2Q@P`b=+vzq>F3d>7l3o5kuXi{GUCX|#T&uvwiRaRv)G)eCI*=21%2@@v zcH(8_?Jg?cjrzKQ_CMIDb8kheGzT9Y_UW5HaW+h;+r{a)Z7NWH4?LOL;!Me$B2-N8 zXWd&7OnyT-n9^f*ql(V6VQq_9M}9iZWnU=}z9D^N{VRN;W6*JI^qcGxvvE#H%bA-l zPQ|?q(_gf9EG0j|g~+~fJ}*YpKl!~3RktO>g$ab;gW;?CieG@Rffap1iFN0;Ym~ z)SQ6W-kB(L8OOkTkE;?vq=ie7s-f=Ra72A9m#^UUz@gt#Ivobx@o12Vio)mV$z{i} zg=#-uyoGhdsED!*R&L5h#kB8fwecBnKw*8%?i`DKDmwKs{Zx$iKhEE#c@lvu&ToCy zx^^tS|D$V%fcW`np6;ha1g*i5SAPb#wOIw9E;g<_{IwR=oIYc{A|(NRi^IAsIJ*Q+ zDAS`Y*R>#g3#T#f9_d^~fgAe4!4th=^j?I3kylQvbzTDDqVBlwMdkO!ouaXBZn-is zE5_DYX-dMufFgZZfm62z?Y5~@3ZFV13yJ+5i=Go!%zf%zhIVz- zAra zKJ&X__o-B6(&)iBDfKf(^m#szZ=bE??GR2!^>RCT9*O&DC{o@M_2XaU=Mi{BBdI@N z-*xiwBfPFP`N|EU`BE7ETp4}Qs$(Q3DW}4$@&v*w#)9w}@PgGHRYh5x^p)cLOR7tW zpWBh}WLxTE>rnmkjOwvEQhy_GoC*#56ExQN>FK3-z+XE)uj_0TfEB4t?*Dzp51gv# z_nOpd68QlSrT*Z5zTV8Y7dc78BrikYL%+3zbINnMFCZ59|2J_sJGjcg|7! z#!w&JPU<(vM;*w|k#L&^{5iNjr=N44bPFcT&!O|;xn_Xk7FMyfh

rp}S517)3h0 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


?5+wFb!(Z;1NVYjk=n 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

=7I%}7b-ky&~?59Ppcy$zjP{?vnOrZqhwiXl~ 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�owXXR{uRu7zbB}(UbNu&rb9|n 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�`{2<+Mzx5v-+C%alZ3;^L)lgs* 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�lUjU4~=&KVD1;>~@?>d}x8LvucfA4%NV+w6c5 zgzwn6f1)$iF%3r_Uyyk5Iq>xYd$C=>x>6=W&lb6&3s6m#?6%8wF`SJVAe1`DX##;!r9?SV?o3uaCX0l^Ewv@;jVH!B~&@jKXwUll);`*+?s%@~SwBh{Kz ztk8AAj2xvHe;hdhI~SUfCv%{Qt=Tw#{JSLW?EOF+aURRW_%*#~v=M-VZeAi()KwhI z)?qp&U`h13_A2_wb*{4VaDd@aYF$L1_6SnAX#DIa#vu8waAjiR2;qN^gIuN&+0}#|OL~y%vIzFD8lOQDa_nkP8$9^n!=4$_-B99% zJ7X6fKn(z9)95+X0v+13fU7CGGObl&D0KAePt|GSKk&Y%BRtn*1a)oEcXfy6KK;Qy zVFeG4SOC{&E$|Y2xFaa#+%`j_d&S7OATMB3tOY;x02!{L2YI9T{%|J_-eY5Du+S11 zJy|9=PUJ_TLE?>AiGAa87~UeV)HBZ*rCgR5?Bqa$xaK^G=->H6KZCd|gJN&AV)fg5 zVZg`J@=x$2y$y2;@}c4IA{w>V;L=VV2r**?JZ|4U7H;`_kcrCx+q1gYrf@vS#ldUg zV!?LXnW^6JYVwwCaxD`7^#r6Gt})W#jgEjzfTZ7jH~ccd^L!xT0Mhd@9+r}Y<#}8& zXf4P+m1F6{U`h|x_>t$bX^ydT$83=1pbvm+e8LOy&i<0`@^8~{&JL@ObNuc8@sPUn zz_>anfMxKStYvt_vVq9P3fQ7<7p)#_K$_pV;NtR`l!W#B=Lt?_I?TCegkR7cO#>q@ zXn4oLL`Pho&O zR#*}b*CuZzq=z$dtd49jBwyC4NZ1<<(!9kR4*tG95}L?|wT2aClu+VoT>!eIQM5rB z|GOVdH<&$Oqh9|m{rPc}_yS7=7d8YrhP%E7B@WzsDEv)=moeXPOwg>h-rWOmWy+yy zBSS;M(^SI#+EcPl+O8IyyF6qm^!w9-(CXW!vWwFcpl)GTqwkR~L@t2l1y+VcP>aTw zN*5@iR4jP-H}FqK_X$QcKa;qjw}8=pC|M-VhZjKASGJ9r;XUAS7I}B*#TSYJ$k)b4 z8$}=50C;?M(L)&jIH~8=_2uBi;#J*UMSocbCI4I{4B`iuGq8?mS3|NZfpf(ky$6!B zI^Q%W|7llwLQCHO{xvsU1JQA3k8{%_g2cHr1+J|tOK{lLh`w~HZyiDNj3Jqgi&Y~3YLDK3<2L-KN6pdY-DLw*@X!Z8MA!WsJ)>e`GdSsgM(Yb@X8IZ z&*QE+;f|<*m(vp<+@ z$%DKe911I9mEx2V%HbKGmWxy4i;e+*Vk?~rvW0%ZBX zB^R#}ZF>2RJg_KYh1O8iq^aJDFL{FJas$syb)82doU7F;SffBfU{hC9r7U z@;I^o$wtYiQi)T$P9Ci4(_+cjwujv|^a;XLvIjgbPk@eBGs(PD4C~wU*@@d8!uz9T z2iF(fK}Pldx`5_XF%0bB3cL>4M-^92o@<1MV1B0Nui z*yVif1Kpi5$TgtLD!_LETP&wy>lTclybVh7qYe8%yNdcBG~R~AJpie9dkxpCGV)yo zc>8D^U3w%If*PIDzOM=rec*5$JDxSkqj4b*4lluR9H`=qw)gLTIswGz`oey|G&HzA zkC1(t*n{CRSu;_3-& z=$U<;j9NW>{i4msfwn+M}GSmS}-FS$LtjrDZEca&D_r4@j0 zSd3=lB`KE^lL%7J^e*1BTSX^1dl;5-m{47m)8H4vP*7#ph!3tXoG++~aRbBP*eHs9 z?h07f<*dx?VGgJ|xnSq9`*9$7e~Sgj_!tc9!V@4c_p`wx@8x@8Vb3X>pIXEt$5K_@ z5}fe>V6<%YANDZ1Df;7iS8FI>>rE#mDC@+6_Tj*8D@CqKsN;RpHP~Abq;sM@`VE}Y zFtV*ZO7puM1TL(OfgdY7{OGi(5}qqCW7b*0RXL2)_=DPC;$#~Ii=5<9Sj6;*C8|K7 zz0sTAn4)9hNoo}MVLAJ_tj!j4Ogm)LfVS`LaiC=gnXf3%FT7F1cj;X|lAQ~64(x%O z4gA-5;P+yw&vhOsBq;C=?hpV?zm^86af@A=naL1Amvx-`PO*2wY7V!bnlz~9#6Y>zV>mzWBicF3TI*X zLEH1stJML5=WKz$Id?Dss~*XBj(TW@p+wJqHrX9Ncdkb zc)v9Ty=Fh0xuQ=zw&h?1Tl_ZYb!wwV0{*(+qfdlqF~%FMJ8&(v4EQ=M-5nNiaUh+W zcQ8<7FupQwnQYVpG2%Eg+9Ryv!Z`A0aUrQI_N%qlSY1fItipijuN3THS>;0gm6w|H zu*%So{Fco20a*9P*?DwuHr5souvl=f3Rqj!XQVD354yK~-fMs0dX+Y#VO$6EL~Brn z^WJ*tuWsoIe~AwC^I~E_gx@r^YFm>md=3u4C|d?-)k%7FB;k@@zrH?5s>J)7 ztzFOcM3DS0kr23mfj3@452Aj%CpTd`xmFaVLzMP&&R{l?zp=%<_ad^bj<$TT$QvES zos-#{%n(}fU{M?}O~8X%UEpiYhnGdZz#8pG-)rHMsE?{f{#_^3C*zR_cOu4RunEau&|6zI^n@Jm7}3LZI} zbejBo{kAxX7ajTml=%bu3Z|CyYQLZ$8DBLFeY4H;wpnf6I59 z!yS-hG;V87xj-U|y{}Fa-uK7osbZ{=W_BA+?qv<`EhzJ3U!u%ePi*#Nm95knb3D@x z396_*Bk(ZXzNxk2*L?#xIn3p{tiweZo4RMK(WyP4{K%k)lmdY1OkCgv&%Rf$QkyS_ z3hY{bWEH${HA^YSJd}%BN$94VxI6yni0)S&Lo8d9OuY)lv_0_9L|ohTcFm)4o?_od z`%T7$UjGXC`0xB(;A5Qr=J1i}F#1^oU%SmFo(R$PdRWGy^gWBf0erEafKp#h4}zx` z$hIEr4O`E&*|&xd8tdCnTWT-OTzitL;(p zZC*yMi+gn$y72;#3Cg}1kuti$MD*FtBdE!G<`foGZMbu>Uv{$J37xc+L#oi8OF9y^7maW_N}()=TQ3g(hf)ATUQ6E4;BktkNWL4&gbGHHz@PWORCGGIUCP? zxPdX*8-8ta6rP!zIGBU69B^{fptm+w#yEu^;H_|zYeD{#hsh#OQ;cbaC+H+~8%l|i z)#*?!zStA|X~Ptn_cBc9A#aepNB0GvGy!+aT6$AgrWW~nhWYI|Xfg=2sny)AJXE~b zh}$6b2w)0Lqh9QBMtz32o$P~Utj>Ei8m%Zz)#Dt^JDe;j0q zTUd!Lk8O{6H~9*z-u?W|{6PWW>v(TY))z0BGmDXaeDL#U9a0b`BC{LVdD^2_C<9Rz z%rt8$fVTY&JD!T?K_dw zWZ6)?-s;$oQCVmesM0HmJV2lRuovo8kSV#J8Mx{NsPcFCL`e1`g&A6doWSkn$WJ=uR~L`06V#z;+v< z1cOB%<_NrH+8|kbAV^}y;Kp0vLsRu#7t>(%zVYW*&&`9V2Pwk~PiMg(vZD8xmL@#n zw^8zwR->$2{n+?g>I<+n*#<9M+U0)k)%Wx~;asq7aOzqY^gO2p?K(Rwjt;N|X1hCj z-480`-wf?kX^+x--x{W{n9K)T5H zLF2ba!3|3Nd%TPVMy1+B`^uuk+19U<>|pC;>%*F({6*fA`goLD>X%Z0>c0&eV$U`L zUvKmZg24-WQKdQ-Oqq^SQM1`Q3M8)^`6jLsICgi2CHBbInrrafsoCd=f6Im~j(wPb z+8hX;1~f#YNt!SE?q)?_ZNaTILfeO?>qZ>UMb=);w73b*6UX>}GL{30dmWD7r*v;! zRAB(K-gkW$WQ_22(Tgj)>G>=55f=*%u(ROls3J=h1cm5=&3;BA(ZWU-+n^xRQsiT_ z-BHMWOApkAU&>KDcN<^=4{{cvv%cHqPFlB-rJ)w9uZEsH@ZkWAQoLEs4PJCuztHbY z0G!|;GfyC?1qFc|uwT!qS2O16pyUm4MX5)461Q>?OC+@PRDHMMWCW(F2aFt96@t=# z&d2jyD2~Y5m{EP*(4A~1i{v&T(-D3CG#o9W{Z5%XD`RlRE*e3dfl>ecvh3|B zXg9U<9+f`n;FfuY2uvlSXZZxB-gL^pdBr)i_jIFhK{uw`&B+ESujYWa{Fq>>O7!D& z;Y#~IDGq}zG5eJdCB7n1My*vFVnTzIukgmcGbfSC-5s*`4_o@4`bAt9Z<-3vCJmvA zx;xJ3(`2uyWdRZ&Jq}44E4#-=u9*XlBwf+>*mnnZFY)(T+|n0sc6;%kal9YW@TKv_ zI~Umc{nm$)&n7S+{OgWQ+8!{7T_b6)_$_pYd3*{ze<(d!ot_HJPW!5N1xTEMD)gdu zaG#xdXt8$+Rjh)MV*zGl!oV;qJzwQI$fC69_BMgAtuvVp3mWm)PpeMtmN~#Xx_#st zdJ2weFzS02SQ-y^zzZyXe)uGCYIUyTI}doz;$?)={2i7h7= zxjcSJ`KRYB*t!=9k}iAQ{uoMrW)!@jBp{i_!_7PL#XdU${#KMZp6-~7!M!hNuRU51 z5`V)NW5zRc5b@us74rA71&X;m4&s1-%OKrrRp3_74@++xSA(lP*n`g^+q<)k!|nu}-hxi{eh)z66IGz-t2Xm{pzAuf zQ$KgBi(ZK(avkhvcPz9RNKZTiC{VMSFxe&mc?|0K9gHK}bI1XI{AJS^=UWf~Y1Edg za5^h|D?Z5RnL&5Uk*3HK6k>uv^>Sy57HOj?jy`>J`DL-ciN~`8@19=z)*DPsnYhjc zVp!cG#SX7K)!y%^Ph8cH`KrnK*+|2OEjf*qaFI^mJ^Fay)niP+XN}iBT_z%n3kJMB zcg(!}Dqg4&MV+x%^L14r@#UZwtID)gea7_;_ zLx)h6-x7QAAb>lDpXx_PR}08r7JcfTayF{-V8~r~X4-?Ebb-KVar1YEz_kh87maiD zfJ~xSWX>u>Mh#2ba1S|Ne$P*^oa?O+S(=8!TWP6(uXRPKA7Ui@WsgAmoCU&DB{u2J z2ZCwcom3o$((f}GId(Y18X{_T6S>JB+y7@d^L^JaFh3k;Vp(s5&0gLgx-3!R3pX-Z za3u{TU#$mFc$|(*iO4AW&Yi=clD2O3x>r%m3B;b2e7#I3uu%;p{<}KxdY0ENl;#v$ zQQ|DS;9$*9BKD0tm8JAY-14yyiaJ4Y>xd z>ot_PTi3D2?(%yB&Srv?j|zZwT-2P0n<_?|Zk}%dRRfJSwI58rl=y0TqNWMXjKA;^ zX9+$~45~$KyBOlS2f6k~Peb$wqi}F(`imAH_hb(-lSiI}q-7Tr8n1gkoqp>!146+jbK$=eU&0{{r7!* zIAzicRbcJ4?U6S?m4k%I+eB^pK7}SI%^l2PCI|LJ!Rq;~Moc-Ki;{SzWq@2`FWR~1YhbzJ}a2r1>{HdIC zih4VoM}^31OoKx~tN8DuxA*)};^bdMDFtR@XJO88Y)F6(m z^Q~I>f#j*R#dY#)(|*dH2R?rLtq=Vsu$$@?I7g?$nN=zx2OSI(xUfzIgTEgof~*O+ zxUdEJWnh--*YX!p8XH?;_zd=X$K$N-uS($MAJOHuI&AXZ9~KS6740)G8i!(Gc5EO8RA?CD5UZ zE->$5J58w;oO6Tm(Kw3O6!2*lGXhY~Z_|s?s!av3fG9+t-_(M05*5eBHeq#E8Z{2` zaMT{z@?VM}pqbG2ZKO)6)Sub<61b-8R}M}cPYLt2<>#Io@8u9H#NX{zDw8 zyKkl5$#SrMYq@@BT>zHs$O#MDl!`d<_00q4`~W>#wO0KU2G0+(Kdc?TH~L7%0u{0E zJ&ErgjG-ossd(@EgZYbSgXo^Q$WH&AG~=K(*~ZT7&H!c;UaXc4@MzL*n0*`dX=~xI zI1^c_V}<`+eSA!lsDW5DP*sp(>f~M_!w&a zA_%3wPcASD;($L!IGcmY1ODZ$r1wLT;6hYma(X*z9Gl~Ne+KCF1dd0vw}lCPcI^1Q zj<`rm*<|El4ED(r( zNo1%5bS0}|FV9-6TF1ATL?ty)O~#$< zYv$tq&%4s~b2^a?%|Xh6ngUXv;lyiq@G`@?x>HZmfHaGSc7o$u z3ilpv=#}i73d*vYN%ihYxV^le_LRk+@M->#x@#RDqLg3o5WQ#%_{QqAKg@uJRis|b z!8!b5ohkCp9_ak;@*%yRl=BO@NMwfslpC&kY|GhLFki{YHMX#ogMf(xtIbS7SCAlP zQ}y5F;Okr7Zx+5UhosHdjrGMOXF9<4_H5JX2COycYi-q>=MkLgD=6{V4PXJ&NIMro zuSr_8s!bJh4Ii+GVxpDX$n|Fy#rTDd*Mt3lrK2BBb`ZHWDe>Np2HtwM@*Kn zHiTxbjqA?aot2ilfGXKGmSsG^SykI8>g0~iJhkq_mS5{S-T?U;yI2ih5Y1gVsu&%2 zKkaXqc?sUtYZKzkQREECe;CLX<}N^`^mljWhXJ!#S?gRy>#?u9WKA{4*#{o^#Jn-X zcGODP@@o%XDi}CfWwWc;Q{51Ikqn5a>PrYf;@EKx?J*#kXIOTz36>Cr*!qnf6tMMu zod$$-F%32tss_WBF|ylbWKX-zGSMjQ!wi7Y(JP}};iitW&a25v$Sj1ial7E2%#8av zn}22XC>mw6u)8@(oNi6zW2EAA(JM~F1?=&*z80xuwuEn)}IU(hNSs-!SG{KhD zn_FHMe(NA0_}=KCSuVJOgZT_#_rGaFczftBOt^1$Cs>959k&F`0F;eigJb-Jm3=xmXgf$gTs>E$vEKq_9 z41d!j1g5ZYZdfpmYFPtj3V!gREhDuBK+P2;(QkfCgGE)Ipc_a>}z)*6bRKu{3rZ$J6&EtbqSuDdevTO(B zJV%ae{Cxvd&h>iZtaTUCEDEU6FbmnI$$h*ge$F&`kZN@rC$azgx{WYy|H#*?hNfWn zG`48=7J23Xkmbdv+qmd$p<%8c&3V7So49mUEQan^H`BYFE%rmDC@c45!8h}3aEWP; z+T4V8I+ywnUsx#kU?JEhEd1DMU4M|crm@glbBynhyH`=laa$qBb|i%&LAi;X?k{px zN~p^LDw=5clpTnJQOcR=qISc7q}ukw_WNIb*?TM>kMUnXobZ5G;9)NMD*!2(=-odT5;lF?dM`ZL-e0I zw)&(>mGCl}2x(+874%1CbU=+{7gy z^~zO{$N%~lz;n6ZzIi%ypKz`ql5G;43fsD7dZa0KWVrW>H}HB}cZEk2YnnOYAn_?K zAlE!5``~D{K3Hdmi#kVdD&L}mpJvM0eL58^ypxpMWp$$sF>r^hC$rQu#rM4d$8RrN zT2UE*7kE)B8<|yE-{T^5{Brnd$n_#183~bJ9|Fh2?kR#WHpX)b#K#Qt_%{J})s()S z>Fy64lTx1miE2u*bEd^Y64NEL(*>!AwhuzapQWQ=qVVGSq2!TH6}fKuemW@(wuzx$ z(5cPE^Wt2QrNeT}tkJ}wINbY45%BfSuSVf%$U)06^Tk7tRbvyY5wClV(++)%C|A4= z(s{vCa3BM*^N}@Dup=I5DNK|9eBrmcffA2B98VR@>AiUW6_9#Gq43`T6}nQ@0Hf?*Z+TzL z6VkDOjn^8ZVSwzYE9KMtKx1O^+LcFxfv>5%o1w(53x+pTcM6nIhRl$5ZGuncpp=iU z!XIh=;}+084N0OHD<0y-yoG+D7BDxIQ%D%@^P?P0Kpsyog54x-v6K=N@P2cP8wBIL(= zW4rcGp1s#5{x!80H%_v|TvoSgs|E|$+W!MRFT8mn5;$J4rUG0Rbs+ScBgQ^*K6y zETop?J`Zh>dg&23k{4p#kl89N{m;OcBbi$#Y_JtPIO2}hE9@9hs0%4Xm(n1Q+hu(n zx-nfsiN|gX^1NUiCwzH1IFnysFM}Khc3a^6MkaW)09v|Jan+%jJB_S0>(=Ws8nR=# zj5$O)6fG`_w-fp2Yv^6a3RC{L@SAz7XJ4%`#cRFt&O5HSZJheduAd{}hQZ_Z1Bx86 zlx!xdt5Zk(C{jVb z_aracVb?}zSmH18h{3RG#Wbx}Wl`{o>5<0fLU2Ib7mef!?9K&H@%XXiGZ{0f-!_&7 ztte;6d+(KCsB$-J_3vO{tr1zxQarHO!C{DrI(Xk-P_a9(`>vTic<&FmN8tPRo>}XCp9lA( zWxpwplEe4E7${{wrk^@SNKAdfBQnBwjjR~tg%Zy%5iiTKhFUzf*9ua}9v_F!WCN;A z^N0G4gM8I@=$L-g&c@h7VjU%w^ZPqgpl zoMcNF%K@rJuwv!kHvK30AT2kkAZYc^n>vFX3y8NR^;U1AbWT)*=R|{%b#jNHl#(B~ z-3!{Z?l62qoFB%{Fvd=39lUEkakSZMD(F`)7$aGaG~F+SU#Khghq2DUmBC^x4= zB1%2UyC9v{tAQ@dG=a&2E6OZEqXD{CnCQ?A2}%&2VQq*GY~6Il6(kOyJ#OZ}C37tL z-HnczX-Kk;UblxlW1)KG$hPGDt{Qr;YG^+q zzFIsdbJ4n??S@X1y+HB^B?*pmHb#-{xTn@*SkGV3MKCa;8<8jz;a5TU`o#bAz+iIc zv46(bPqY^Bv$YN!V6cJ=*(CT@AZ`PT9Fm*9CX_JTGO zJ(}rw`!)-pQ10v1!?}Ypv{AKuzs}-M7AX61CsjkE@CX~{Y`l%zFEFzWy@w>uJxKk- z6C!7KP;l*3LF$d!f(FrMA55_p^REE-el>LQ)u;+&6o<*xnb3;tnH{W*pd%NEm4P;; z5UmYzQR|*XTf^nqaMG%OW#h=?FqiR!UG_MSb-LJ+2P~Ih1f{TlC+nk2*O`R{@+NSJi&?J21Y~rGBz2d+?9^tTOR;U+bTYf zm$=yayvPeD2>!P!EdRKGOnq8V(T*hpkAaN&WQs6oB88&s;|RA)68DZMXd1_g0_ni)a@!X~!{5>`&%1s-1Q)t7VzUA8cvQr3 zu{Yd@J=%F{cXv|8m|hG-eg(g{F%W|#5-ebte=kowE9?Aq{;d+=y2Tl8&3s_kw|xYm ztW=;k2WsTtz`O=(Xe5hVU>1_Z&iwN1OEA7BxM|7gL)gVGSZ~{U9gzNiPYVw11x!$6 z;4O2JCo>d#4|m{ehHlHipo)o7^k8*LrwI^jgcZ+O0Z9j>oUX0Nu~_3@RNV z*nvN=0%2g}MN&b<0mrkO<-n&#c|ts9Alq_UTJ3^|FI&(jVyEzT%7~o&5hQ5nx2^M3 z#UA+-6tcRvo;66hp<3Y;*A;#vZM<3PqdD<`CHiz`2_+YldTinNNCrFajr9l9-SVV% z^o3TFjQiDga*t;?Wc}%L8KYW|b z2HjR5<ACW12&Ao8O6*qoE*apaH2(9D;VeBmx2OSfaqBo(0H zD{Un9gAARTY!@ivi;5jId9uI_6-8+o&KVMqsrl{RmQ$d@SmDA}OR z!IxK|W&Py+le-*3j?L(E8l?HLW%FDOt!F-LRX$z^l#)H4C%?Z5ort>PHnbk!F%93j zSdmkThXV(9jj#NzEOPCBqIa4B&Hukg-n>(`x<{T6kqhBoQ3V5BSgMkhHnSXaoR~l{ zQ1F5$0;9`*J!^$6+4W|ozvzJ>FgnwW*KxuN?1urmag20{yKcx(0*CwrxZ-J%SAp=$ zhWzsZNxhAIz-#)m5`p707QBTaT(B085`WehS-Y*vqX^MgOG8VB7yF(MdA>WcdQ*Px zO^?4({%g;PysSO2)6L@#1~}a7=UK&+jAkw&vUd7_i{uNM!vyNicvSPMZL7{j_-UZb znKd`-v6zizDn5g&Jrlea0i&>uK9&NrctJZKIrm=kJq|6o=CaQ;df^~nEYP~N}Re&xGr;hfrHju z=->U_f~X<+K#-#WFQXEGU?XGeC;8&Z`NvMD_p}h-%Z&7?Lpl_;8k+};6}@Ku(TM>C z7Mm*3fiA-tVfixjyD#%idFUn_eC)U4;bihM3Lee9^TpjhbT>nGyMOa84r4xf(>F8+ z2`Zdk+v65eNS{{Bxgf>M6Tx(E+Zp9FN24J`@73$Vu_&7bJZ{6W`JQFETA^@rH%mtN zBaed*h(O6tdsO$4`xd9}x>>tWNIm3D{E2RU;Z#Qww^wB5^Vb_8Ckla=-{r7JQ8Wu9aS3 z1!uRnrmJ!|)b^c~byt5n3}9HoIT64g&x78ht^KFzaSN&6Z8T5meL8tPxPLGlUeT?b z1Y)p=ABb~d8V7wm1j(2jvV3qP&?9~;cL=`dr>Oe6!rc7c?>ufW0$WuFPz47 znGB8ThtGgP(pfT)Q~s2VA^%3BDZ4{sMcy{lQf0;{U7S)n;AtBbJ@Nd%g^X5l=;AZMJ&l1o?6_U+ zfiwhb-(LF&l>YoX|4>#bDxO$O(b6bXTE!ZXp(y1z{NSFNspaFQ1DJ83#4*e?2#n;J zm@)}YMBG}p@ku#KUN!RKGJKRMJ}ZiJ4u6dXxw zu=`s`fow;(!N#u7bVUxw0PjUO1$0m)o_4El-WzV_Nb~;%FaPy}Z+C91+I2Ur@D9V%)`z0BkB@=N(6h1j8mbjD zuudA+1AG!y#Sp6qF4}LKG z)tWMxz>9*FQ1Ns=9noS$zP}cAE;x=D?d2nQEtl}f%6UIqKQRKQmMjTv3q8-?`{Q*8(XvMq>U%+XK}!mv3Qf(;qT5=<8}5JS$Rr) z4lR+Tob7_v0{>VJ^Ag<08>mN?pIb-F&`ym_0`y@)O|HspT_;p0zuBuOhBN&AjP1w$o!K}i>OV#|X4 zx;p1y7A2yze~w1!zIhLC$@p3y-E{|ghJ`rYKbZ%#RImNy6^B1MRhqB9bq&)EI(3_7 z;tctB?$-@V^F}7UsZp^8W{-Ru7LU>NRR1b#0xISnlyGn*Hf_z!ftI&1E8`rELNh`B zq%5HTa$w@3-(FK?ok89wwq#VFGT^$^WA{*p7ubDqjoq;~!B(CPTCI^J zva;`SjO=a!QeKvR4yI?{?}T5;w%e1qITAND9beSeZ2c=wxg*W- zojzSN7x}kq*hXW{#iCO_DEZ#YLCOhep~AEKQ-7*E;k1561utHCLv`u&c>iu8Ao07& zpTvtS-tg6OQ18Q2y@93B`fW0YD(4>O)>j+Bn7AhjwEKnoECzHT2zQ+JaeTVV8SAT- z(ImtSjwjcy*O50x$=m6TRqRhW(kmekhke!a-Xt{{@hduJ^-kEUhJ;~RmY?39)S^eDgiVDW& zOfyvxCh~#V!1X1)ol&D-+V+-T-Nij67P}u9YigZrA@&Dl&GQ+sX4v#A+kxY*_8UXo zaCQ;8EcOCd(SaR1Y?a|g@YSd1-Wp*W^&;QFhoT{KD4SH|z&8s5ar!l(lmm(dX$}_+ zkz|{^zEA_w@?B_?l8qd{>Ua|=Oi<|?T!EFp-SvJc`-$(TF0SFCkSO7=_k;I+8?-ie z_W^==cB+}L1QLJ58UikL2w4*u0Bs^2iCC3~tVI!L=?X(_-pRhSy$atAUZ+~z%)-kI zYn2)TJVsF!i1vNtT5NAu5890W^!O4q_ZsG@wts2A))+rC{Ol~6KeO?IoE>O1?6qUsGLPymfJukd}$G~+TBdpb8M)YwqB!@I}1AwIq`+d}hq{TJnUCsugYvm7W9A^uz zOF6K%<$)Jr$m>7PEP-vW{ucWK+fFR=3I&iw?0ak31g zIn8}oG`H1<_Ez6c>-%iHn#JFCkZ-MKVGc{g@sQS(<29_EN2^~ zAZVae;-7XNa6!v|^2#B;m|a_&T-Ct>Wmx^?S_~K~#T%!|q@uMC3otsN@UG!UO0nMR zItCRU&8mZ~zPN=0qsxKUNBs?8#G5O+@u!SoVTn`!gTr;8Mc%9v&#zk}=OIlB!?1H* z3iiLVL@6ig1D{M;@j@G3zF>=>K%7N%!(A&AkWnipPsoMW8|MyFjt&KSnH>%HHW1vV zB;3S>XDp>xm%{%i^y0+;Dkqy6*lYU*Ugtz(E5p%J=R}`HD_Q zIxp{*4rRFS%d0K1(C)}8pYoUp4Bxt7tl7`&@SxAGi9tcPky$x<=GFsU@_H(LaKTRe zz~>7x47WO0AN7b1J+QwgEI2%c6tX75w|Na%JATi27pz~?`a3t0?B&%byuJ{rOMGP67gMnR%m&3#K$lTMFCKx#%A;oWPjUx|%XdupXq+IA zTFQ51Y*1}?i=6(%u{j_Zo(xH}2m{-wf?2k+KJyS$4>j@f`)sVrf4y5Nr2rzn4 zReYB4?A!#_M)tp+g^~x>8l4#?aFDFH|ELIVp1SDI4+HxdOps0-`wGj!m*?q##0%Xj zJT+^9(Re+^orWJ((Hma4c;dMFNgsFZ%SJW6;JgMboe?vZ_R)iwA=+5vXVpMDAG<=+ zm=~^v^USc5xBk?|ax;;mwu8fUC6tIfiwC$UEFUDk@+xH1yB;l_uq6Hjq3!I%dsh<} zW@*MqM*wP^g7kaQge5%SzE<$V z^kHG!?{x+0c3Aqm`cZndDa_ua60D!PMeu=qp_s)EJ~#`1!&zL#^j6m1$j9BP2gE)8 z$5M$ux*MOe+Fe_k=P^wApd27cPVMFi6~K>m-xKh+@0rTk>C0S6Wbtc=E1 z9F$OqWs})I%m_fO#qabh*8Z`bdZn7m!5;utR65&9bNS1lm?8>0jAxVP*R24*!AEW;Y;3}g2 z8T%r>WtcCSLX@}=cYviDlw!S6mnZ`z%dLf9+_c$8hWfJXqT>dF3xg@u=PG~ZX(AsF zw>Cthu+yL2Kg9q^KZnSF_ZM?tJ7}tSXntsmE(|P)ElylY+~e_M&*-}3BfsA6wGrQ+ zgDB?9;`@FIRd{e;7p6oioN)_Q1*akg6uFE%ZagyzrQAv?9_aF9RZ6EDaJWw!t26Jk zz$nC-#4k}m(226oI;lYLU)yts1A(RMc3*giKe`0X^L^Tg1m#vOR13sW51;Os*}@N3 zZT|Fq{AkZ+4=pagJz-bZEOS^#+b1(W3v_*}PF0&2oMy6abBc2o<~R=9{P}1)N;&Ch zkmh3UxPuo995Li53#3yIjRPDiu$pNJhUMeKFca73AJuT!nWnwxW6pyot8G7%!|2Sc z^@MW7yM38)&lLra0J+9*dkWrVx&?z$+)(zZ*AbUH!t5+=)fAUusG)J5G-K2fw8g3 zEPJX^`DnZEBvttB#raYln>pK(f4~G870_^>0kYfFj)4jP`ijSS@gN5r=#*+UEd!W6 zvED5bq4tE~au_DQxGwhSYcOdPEBX+> zeL_LmnuvV7_04d%?P6mr7@cGjvsw?VH#d#GoO=o=RHQqhbqbKAw7+xTQhaT)lGGlK zVEMFwlI&M;P`10*=5E9{44;PWsx&$6wiDqF=uaR+&s9qn!~3Fw9CxGzM9` zJU`-9HkQ*ZtV`&9$dG3ZX&;gI@WCz%M-qa-UGRfW;3`&!ZIJ{!xVWGgeMfB>SNAeO z^u@?Ky8^xRAL!#0 zvZ^C}AD=ig5mg%Or&B}Ksx!FKVg-!=?L_|5OK_KEK=L2&MIJNTttN8A%Yoyvlg%OU zg2E0n6I;kn``)#8S3R7#Ljz}nOcqLhJSsCFL# ziEpX~7OQX76+UnlbB}mv?_{}v&{A+nd1S%zj%E0@&9yggTfT!fc|Y2XomYp9-t;Gd zxPsib_Yg-nl+icf4h-TVmTU}f(D1%d`W`KrRy#@?Sj+qH)fA9rU%Mbr%wgK}0avj% z!(~)w!{(2cWJWfIdvc8InFN>THN>p^6$-m$Byzpm;1R>E)hL4GBi6!gem@tq{a%Yp%dXE2 zxfKt)I=`M_QyB)|>Gt2vfVjZiZcvHi0sa&2T$ov{`uC|x0m@C`i zusLIM6lDE{-zo#L6IN67&Kqf{aiLvTf3%zPa^#=}8ywF8wzRKsNqo6*M<{ILLbp6H zufJ72)GQnB&+6sfQ@ILmkWIXzr3-Z7AmCe=&g!Y1AK^Ox+ZFSxZsEl?^JEj&X`#e1 zC0~>1(?0)VOXO2^pim7ZzmK7s<-&y#YaGESVwKmA_StabNA&v3If)?UT-1gC?HGD? zN_zJFmLujIVEyANk^$X)M94jv6^52e0cN3nZf_ zkO)GLy;`%Y?aHP7o6d6_$OkZ4$finGn_{sKQ6NK>JA*})_Qb$6%5QMtPZjK^DU_yX z5G1iR*yYfF94hI2?2KoQA0QRGEhuhfL?w4Hmeua5l5ZgLnO9Ka_IMz(4}JHbeqYcT zms`ikL&_gqdC;mCBl&0Gy<(lSeMa0uBX&FpEy4Q_I#cqG=J3lM+xEV46qzN$G~Bw` zcP_k0n)u)AyX#kd(?lv+(ZEpwy7FL62m~ZT|E>eeK+3ZRz)qsY?s*>qKeQ(-KB3_u zIHKM#e3Plw)`B8fT{CFIo7H|WGwh*7$>>1fKlTMr(a*kt2lvA7<2Rpx#03h(v;7a5 zo;?|b(+1|R`_jPyRGm+d8Jf-y><7L02snM~IKfn7?B5#FMZgYF6b``Bz zY-WHbHYS<74LXs5(mtv{@XzePWjr&e7-GffHDy!IhXapa?X*FuheG`)K5y_uX^!Lx z`3&pZ!w^pJ0YeO|+RBpUS+Fs5q?(m~t>6GeA^&=9KPxy*dQe!*fPQy@WT#|GjzP)_ zdwrXc4AOlp2uS8gss(?LJZ|T44I6);E}r%GZ0nsG`H$yAaspDTIN)-o8ENZ{lX$?f z3QqDxRDkeDx`9KIC6POVadH1OTH8_rF^8?`F3|ppjd6^#Ui|jh zTFX7w#6N5t=6VpjjC}U{in}h>gw0ByHq`+$DXpQp48?q{0{j-lG!;L1f_u6#<7GTZ zbAhO4P9R=e&XUEkz@9qGUpL^%M<(&#`o!VP=LY4=oq|yRha(XK&LNxjn(n^%k9V+p ze-nI9G5*KddU31|Mf)9__d~#Gi$^k0fl|`FPKE*>H~tBN=Z1^uC-nwtE}e^V5s5c< zn52kYaw$r^-T`>snhi*(r|LPnY2OA5sGl%2?C-e~SmDrtUIBW*Y_!Qq{=mn<7cziR z9%ndKfRtlQs94mO&=pR|Zc$ZQR`~Rp zQNZg@b~tM`BR5^b7i(Ft#2-{$mo9pcOg;-bMGQ{xhY_8axu_DjHr2co2pUU^nVZPh zXC76+T5bzo=14hJ+XukX-WyImLdj=jgxxvlQ5!o=dG#l{hllX@1_G~#E^~t?E1n!E zo}`KAZz;MP1^K{hrG2LiE+;_V%-_8})Z`=Anaz%XRy{O7Pn>CrQVuB@4~CtgS6nHQ z43^LeR#2}vF=sUS#-#qLwbTb*?t_URSg@LMIqEhm-FPaek4r2A6J( z+gfOv|6>?4K5+5;d2}9|99U^?ydU%#;A2sM4+IIS}2fB{PW3hX3P~v6f z1CNOhK@k0E!G|N`3X#+xrfxy>Cha+z3(sa002ro+&pY5>+-PmqT9H1RKTiUzdyo>m+EF2aw!nB zyJ%)kbPS#!+RUr9O2n|hy&Z~>NX{&9GPv=r78-SeNWM>at^`=WH%Vs zWRD!*S>ge$CO5q@zHN;rw+}XsxfzJ7R0gkE{@w&yaqw~=)V&=>$=(1l|Ca>{k+l7k zr2{;U(#II?o4ZEZTHOGjgs#3LE|?>;6w2jCgY?|g#dbu$Zdhyx>#H?LEn$F1Uq-yv z%QS?(zr9_?)y@{&5(`+p_U!lWFO2aus~^oVM~<~U;EnhH&;tI~dt`RW4(DHp{Ys|r zM5)2>-V<&o`26dRH2CitAPw4XalC2y5puO1i(^;pH$6<(|oWH(#(~> zuk6|!5rgKW(=a?A2WcU(dk$LVO8K16Pf_yI-o&_~O{D70N7E6d*&R3C#GxFZrU4vZ z7vhFbUodcRiQpT1Lr@62=$2ziB@;bmBC`(!KDr9VWFu^&wja6H+9nm>xGU0$<|x)_ z8L5`gekWzs=bDUN!Pt1{&b+U?6EWq`U7wP6!GdE%_j~n%o2sqz(Btc0wJd{d;Wb%- zTssu6g`H}BRhM+q6!#Jt3=7Jf-DUVT+_r_0^N--L2kSdK?Yw|GTxeo|9uwIKR}J|( zv&s^=?WHUbAG7-3i!|}yxhnSh%fz{IHy$9nZI_l__(_$0QZfXWPg`)Am4L5N_L>8; z7AI=hBC}l$-9__BasP>Y^M=d`w9lbd+zt916)tXS-@42nA>jM%5VXF{8Dk>gLs#uaQKUWt4hZ=v_^J@%gAp&n`>4Nq%5rZwQ+>S1wX8Y9Yq{=Cj`k{K5dNE|> zX(Kmi^URz`Bc7Nxgb~}5k)$Zyf;_ytiympIK4ad z^a5i#rRXPTh~7pD4sg*uFnWCu{M^S1#C33W#4;nxp$6EA4~{PgAGa~6Exz9Jv*LN+ zkeq^wn}5jQb_Fl6nzwrq{Cr;JP}bxw=1D5REU@^WHO@c2iV$f2IDijk zF5t#JAG#WrX~4O!3zqJ2zY6DhaeKS)2OzebHcQ$5b0I8z7D$Bs7%;!{dt!#B5;zU+ zqAu6y2p3EH_1M!r5>{|1iXRRiGPwl9`d5$gagGAX(|H@D z`9?HyeOeFdnHkUAk-Nhbo~bBn`2Fw{Ueh&jOd2QwkLPqc4`S~GakgxsrjH*BhEr7S zG@71=z!8uSyv8`$7owimC~3*4!ciU&b%D5rY=Ec)bBW$`Vo?sf)nY}ZKp6hHcGBde ztzgFDrGrli&dLc4UC}yP`Kc;0YUALsd+-nsm|9>-#iOrte+R?XC6x~n5>i3pKGNR5 z_{uue@xX$y-+SU=f4FpGD=AQd@gp0zoG%B(AODdtCKLB|TK9AKK@WJeZDM1`G*2v_ z$Szj)!Z%@tQhq)HQkvvF+iN=Ek`L}vM#NplR-YAV6X1?_*>U7?G(KT9EaxJSIPLBz z@ibiFDz7d1!$f{ivjqxqhIfAzF1!&&=R;c`n6@6{smNFAW ztK&iqnQN~GXu>^KQ`YqcHl4a-kpRbeK|Bb51w_d%UmcF~7F?>l)+P~ri>AMASCIj> zFyO-5C70k0i>*G(#@g>pq)>w=&$-_<&?e3#TQ}Dl!d%Tys9@F)rcis%=9Z>-Pnkkj zUexhG$@Ay{5loMu7LAgx+)ViH&EWCIpa<{uoY7X{&&nTfa-nPJh0!0^5$A;{!@a0y zxHn#D#hxRoP}GkV|NX$9jXQdW!7V=qTrNh5TX_VgR~<6kyYw*j4W6FRIG%~(qn@C|?TJSAv^6Y@113E@SMZ0*&4*P*f6o2A_5Ii-JOY?=Vlxl59-aZPi zRqbD8hIfggwtk&GL{O`GvbHU*VVJn2QlP_9#n4rcFpy}h{q&U4R!;Wq()`GO^O0|V z+P$gHzXNC$H3; z{mJXQ+`&=&;9d@=iC*Y2K3nwGZ@?iA;>ZIV9qVJ6IpiT3vyV`-+9>(`cHuVfrf+qzf8Vd0~bR5?$AA>#}$TE)J`=DY;g$yQdP)WOcx+&HSFnxW)tQWf65(k$c8VJwmyQMp4*Ze8{;tYykE>g5A5ertbgP{f3d>Bv7vveq>?NZRg z+raB1CZ*6aP?M6Fp2*__n;&DbPZSvx(gh!~9Lv6?C++Zmg#jxApEbzkp&CCRXCjp{ z$y{ZKk|)mxe{ZoHcxI9XGJ4RUjV9nLU$^w}lvw22=O!4s(5wdIm?4V>bp9 zXMR(9-P1e+khnYE!s~n!B>!I;`W$IbqqQ_B|G)wOACQj^*5AUwr)SA*R4m>Lr(yox zdS}lld#I|cryH>%Jm~#u$9GRPF^5`*vrM|b{x(}RWg zYPsOJiQFyF-=&*q?%m(**%*Pz9!6Kw|9T4CoE7l*Gs=Lcu5w#l`c5eXTL zjyo}4@FIMKhs8nUd;QV6jup5v(2vz|e+T14tJ7q1^+OBYPHU|<5Ko#~xAJz6KxW|I zrH``W@mm8cq}HOusR#o7^iN-&`P`5=yFrdPj~8j8@qPM4Y8aZLKROYS#TZHEMWzvZ zNK9Y=b3YI~0~m88{`-|`8vvq3_jqK8--0L3?osS0@_=Dr7Z?`s>RJXEo3RB-D0uxH zMgyu`h<(FET}~*UJ~jJFavI797JW5eRgNEyGqP_AGK#|fgO30BF1?glvilN9`;@CV zQX`=JqJ;-YTx&zI9}IxQeVK_N7G@6b@qE*r^C0oXyg-fzAUwqTB^JHE=JjYXBp11N zIr}-dEh+ERMLryEj=nPeeLZn_T8|)^Z*#mg|JZ& z)^Y=_x_xj-Rl=b@ZDR4>&hE~}C9gr^`URon8w$e%97q%asnK3U=qo@*C8+hLUjE-l z1|5A}utnp_YmSRAV*^=SWKIPFYe)3%G!kgo+H^i50|?GU)foK4q15o+wtNc8mM(SpVA zXSrjDt~M#W{NTRdNtxN*y?~{&wE|K^PC_09CmdCVH#vq5SAwsLuiOdR(g3~=+JwZ3 z5?s+(%;?C17_OpU76XNr7PPUi2HwkmRRpY^I{m<9yxc<8ZT^ibAlqYcdYY0dNSrWx zNV|W6j5*qHB(aQc5)Oj5lmqtP*U~?&64FoHj2qZvg2DmL46E8#i-6QX(zj6DSiHx#0Lfao_jAKtO z3w$|-HJF0H(LSZ@Lq$47MRck<{Js=kc3?NZCwP9vbFYo_?ZMHeb`b--qXfb1a9H!4aLshvf z96R*M!MQC1Q1aTjg2V~P$Gc1`G}{MFYCm_@$aciXcUa(zJhg>EGtEjX1XREhmT6tMRBjeCybdsKn->*_|GoOc)b`erZfl~4LE99r;FoF8_eHU}OogAB*r zw0SastsMAGUL=Jl9SuBeMSj8*9v|C0`F&r1fUtR|3|}BDNx4J>(M04m*G&a*XYeJe z>=sE}{Tt*N?M?~0!iQL?N+LqvSGed}hrgpv#9_lLzx2s(&I5&A4iozo2lK(X87$sJI6XaDYGX4ugXWEA|v%Pli27qq*a-A8&U#I%74{0ruR9ye{Gq0{2=oAiE~K z(aW5p`6&gYeM30@rD@E4UrS^b-}XyHAj(XX+@ZJ#po4^ppV>GH!V+Pbv=;i8RN5MEnc%hDE8qcAr#j1n0R;JGjT^P#k> z__=!L)jeHK!zd1jaT1*S43T^Ego(Q^IGKI(ghzw;APyvthbbx=B(@(p;tG~`Wh5^L z)M#u^1e_Y2ls0$pq#2pW@%3Q|z~~@xzpPQ}6(@om(@5QoLCM=HBl_3&$aNFF>>+>s zAwqlGVbW;#eyPvhaPy}Ahd-}10g|#2_{mB1FMMF#tbUu1kBh~J3@>-kAAYhr#Cmitvg1pu+H)!SPx4sLlcZp~!J)iZRG+uVcSOh&i7%>`yZ_@3ziX@SZC% zVAAb1i|gV+ZqT=FU4KR+!Nz7fVy9HQtyU`Q@fvNVTRe(~jW65G?m3tCIdpox zt>Ywkt|cJdOJmTL;bc2L04j}8;!+Ly7@$@kn1#N7Wer*?%p>*H9pSBN#12c`c3uxH z#_mU##Q%8t7@Ij~85bFF)B$P-uqSXM@>)%QFJN}5_v(*?_qGzHeX)kzMLYLlv~&D8@Q*lJ{YVs8nU-c7bS0?98$Sw@w%;Q*z9dmAMq-ckWha(If!sOWgO8)bB<7uI6wc=t9aW(4iS?wkYI+$x|APQr{y3Pw)?vIke;J+e(!F?hnyqDg||7J1&b! zX2Ees$iKoS-7&~@x-=)76ho|seDcBCIj@~i%IQQSm9$xa z8zjDjEuNy&&q13&+lmV$_352xhMo#*dU&~&K9%HLD{fa5&2hl>7o z2C(#V<>^~M(58aLO_9jsE}9j1_nNKsy1QOjy?E{8ls-?P_j{!=9kZe#YN+|`ak}N= zycq*)#wX|n{73gAqI1HQ3&5`(&&DKD6>F^@C|SFNvV%jCHIAJwzAc>@v4C zy;KH9W!^_V1j+Mr3SXHSB)D(9C3=e0IHp_OvgF(L_|&>;Md9NpOlCOF9l_`t_4}xK zcYWl(UFy#?=OYwT!#~|oc1MydWc8uB#d>OkXCJi0rI8n2+O$iAzB$XN!Fd@TK4zjM z>f!Knu^EsAutQ#^KQxSX3w^pE2RnHUke``PISGdEEF3J(GrsU&2WH?)mi(AgZsN`J zk#;{~4AAvu;V<7adg6ZJ`OoXiW3;COK=RM(ptBzn2dm($KRRR%A#SQNBg2{tFYrCM z!|Kynp(00R4TqC^kP^WfdF=eU0j!k3{=kpRpA<288Us#JE`@U|w3_>aD9vlU;Qan0 zPC@q;V#ea5MaEv~n4`rGhMNC;=tg^Pr9SGTBD_PCtKsu}cUZ~dHMQCzf31LWBeZ14 z&anq(b*S_&1F0tv2`$-cU{nNFd5rUnZ5sy6{zFC{;D5HbD&Te74?eqd@d0FqF9R|&E0m%bqh~eqU6J^YTaX{4LiT%(;_+MR-hCURLw#Am;drh35 zYK`-@j~sT*DG+Zw+I-n;O9HIs;3jLNlIqF6zp1xRHoWD!e$dR(llo+Ix#a!rES$dX zN1W*&FZ^c4gt?w@;C0$JpC!~+C#p;Rcv~!+wxRsMa~o7-aWW&n=Ds?dxHzodBi;>8 z@qmUg=Cs%N)xU!ePFQ}0eWg+2A6ubPlYRC1C262ax3E_G9YNwk9zZEKLpkXMvHQHc zDsoFY~3{I9@^+uJh|DZg#>}=qnR2E z{wc4N3qT*Z{@XkTq@GMHWO5F=4O){u)w|jS`544g5q@Xv^jvm37=j+V-(LAM3w!Rc z*xyxV57LlfQ=gFzc(}LAjf^KYsJB4t*S!EMka7=^$o2G1hrs!CFa3-n8*I(AK-+YH zrHp^P)j+!w;k@OLJRu!c7I#|Rl>2eT~35(&-%4Q@10 z0=bRgx?X@YJkU+wCw?Gqz;APZ*ID)PMjjK6+lP`5jq;;^chQkP4<){K4f49z(k8G@ zyZ8IU{&3h1XC}%Xa!1KC?*aVS<9H8JnU0=(5UUkgBj6-TT*)Y8TiQQkJTZjnOY~ik z<64qb(T38b@^{Y*f0_+GVQYb%mhd0RSy!5cK?d2j&KgHUeJ_^yApWXM)~35?EBGHL zfwc=a^-mY)!f2cp;6e?#KnULKUjI&J$3Jh>&EdE1%udimMuEsYeF2U}J=~#mXcrKq zHznH38vcCPPlgX;tUAWNXaUI61y%)Etk`Y+6#J*ZfBru&a2$I)_b$VcWFf|7BZQY> zr|5m1htm07w;2NYDalT>F7q7lT60|}bYp@N&&N={dL^MMZvkrsD?HMNEFV_Txr3UM zHlBBs&lA1vLiqNRfk7W3qqlU;sS!P3;zC{Vi8-{n5ICQ5n-}V_x?F}6a&1yp9-JX7 z=}a?SyuK*&&#U?Z!QoAU{!Lm4=JSs@YLmPZXxpVElN=4*ou z#+3uJp#;QP0{yY6K~spv+u6p_LgWt8FyNp??28W8pz1KLhlZ&-NbgVM=KK~&z58eB z*Q1!g^%8K5+aME|m;1~3f zwK9C(WBys-I7`}V4_Vnl^>v*-nk0881aS(O8;(5tL(3ARet{2i-IQuPzRG7of^;O9 z3vIxv@dvexWZxe}nK@c>mYs|eTm^5OH;X-)<8Yr!?w=U#Jn>$+EzZ%|(EFC5-0z-_ zAo*4U|K%JdZ)P46H2Y=Ak{aY%E>&B!3bmo8qBlg-Eke^h2FKIe-=HQDIaMVuR`jw$ z1Q((Z6c(pG%Q#yn-D`%m%#hv(N&j*Xdnm{`?DQDHrR;+P}d=*|#Pg ztNVnV?mT|Ke%xWK{L@}8R3i-omnj~vSQHIg5?>P$^#+g}nI`Zq$fk75>WP>4QtkdJ z4`)mr%@!u=*qpn`%wvIk7cBce!LoIv5j?rVhygYraaR3dSJIQw6DW5l`LC;x;}g$W zq6$A?7Jy@9@%!sjKfvei%rtTv11cUL?lSoeKAO!2j*-YTb55rZ<07)px4eD@rDLZd zY(Bv@xRxk+P@>>C7aY^~(`VWB0=pX6!o{`$$g%eA0`M8b$Q6+vj4Ye2bbW#2us6g2 zv$tN_@){Q0GI%rYh&u#KXytw{Hw9alT%spt6ez7_4VMhq{JjUgVJd)+Vbh+&NQIV$ zT0f$ozR8A&payW@Q08yl_6eZG1@ZQ1Pt)tDfvF%o+`!t)q383l6WQ0mzMFQ$Qxi2@%jrGueui2K4~`wdNC!}KoupW{#aBQZ&T$*<0^(C*}c)w?%% zWeYFS4+$1LFETFkK5hcC>B-^4zOaga0M$^12Y?*0jA%1oFF(UlW|MzsE4=2>;`y2- z{LqhZIIYWbO7r0G*P+=*;2ui7WE1Q+fZc>cK=Lct;7+ECTy_rhnJ(?3I@F%(uI;Vs zfp%<+_4^9^S9nfmc()bJJ{*7`vpz*x#wbI7)n5A6c$;COWy&E<)^VhzdNz#bg(N@p zU@_7@zL>11LK}!Un6ctQoLY_+CLUzT#0Frkt+=^qxPS+3iAN=gP%(|RCa$(|IJ8Kn z@AenP$kHpbn_N)e=ugL~yUs(;Gt9`R38%g+qvW0gs*ug|$*36MxEg&EZ1#dI>-FW$ zm{IPqREwFSqhKTt3KNHr_gtMYqIwvqeYA1TW%ipf6dVr=$X=!2XR%=p-V9wB+V+bV zx;1v_HD5aY)gNs|j z#XQ*nb?gGjVCMw`I^FKJ=JhOm|8pKyAN-+cAlr~q50P_d*TGs2m@xy(3v2+H1tdc> zNi4k%J=if-MjfW|3%MyuxzJM}Gf(D$$E6rx>6cd-@i3DtjhPQlLE?d>RO#E?>?H>N zHPF-%_qTn(Qd!}543U;wo{qzVz-urw2Pc5y-IIh`t$=Z}?(Nc22@w4ED4>u9A;1-Z z?v~VuEyd+r3{D=I)7N(@Ziod%vPWF;GKY8JOw=8SefR}CPH@HggT#6CLdCvwTPs+5 z2%Zmd#JTuA36|7;Z5%PO0rwnbPaaJ%pF53=+WS$~8y~Q>k6Qqy1)jaL{cH^Sj%0~4 z7od<93DpfSrCcG<#?ciX%JomIXkiJF+RUJ+D>ytC(b1W`xB@`%lf->D3;WWkzob(& zcu!0FedB}|Jeb4;7xtj^VFDqZf-td~6?H0*LIpkA6a=9n!_!mFXockSfaZI}79KRe zf*%Z6Aki0}Z)g*8r3dA&`TRHtW8=1;yOHUIhvwH#U-_sIl~OvUpZwvDG8{Z@jSZ|O zsB#uN4%l~ZNCf4gZZ6tVVdF0RC>et5QV0vG-euJ&`(vgV1HIWmU5A`kKib~M#5dYi z2O`NU$Nfk7(92+wm(11!U}Q&lMkRfe_&_o!?WIm&fIAZ$+6b@078vI@r=3R+Q`qCZ z?(4ZuK4Pw$iQ0W4);4ODL*=$^ioFj;0i)3b(471)i|wp@j(6G&AQgiKY~>eHL>+!H zibWrWbG#dYB!Qp-u?>D*$Zq)lpx(;0!(dNKZ06_=I>|OFNx0)reCpY>Xk_W_Gy+aY zefG2PKcdbuEUT>v!(uCTV0U+8Gj@Ay#TK!!K|)1IrMtVkq#K4V0TDq_K@?H3yX%{^ z_QLP)xz4$c$ouZS*39$VciIFtP`eE6?X<`Q5C&2%)e({xvIT{Y@I#yxc@lkKsSDjB zdPvKQH`iS~fmzWm$QTLFn=)!BELdyP{VY0ZGIDnqDDeeV3hwSuH%fK81C*WL{XF5W z4_?(i{2=V*S)4;!y~Q1^#CewHDBL%G3#9%}Bsl6a;zT$u_xO)cngO_u=_=ba;esAh zHas&cg7lq+U$>=%z%A|}z6Sk+hlRa68V^UAj&4sN9;4gdI?STTZI86XBzGJ<{mIge zv&`UN_uMYZmAbg3!wf=OlnB48E3WpPc7K(#tzN`saIbL5)bS0}4S%hCz+lUeRS#00qQoH!!M2%xyRSX> zMfUWN-yVkZAYb)ibt;VDVvHhC+%|=fLPdCWI4f{pgD685m~(|zJg^@GJ#QD(beK|u zX`|*I*wOPj{<30&(Q3r18)Q&A2K>ig8-u)lpXdhnwz5fAEDWt$PNeE^7^t+Vd$4_g z;L+0FjMXd4wZU7F1x4af%7=PFYaR@6fR;LzBNr#zp<4%|bDd`dAp5URY9xToWckQm zEkl9*ErhBZMX3+I9ysPca40fbb)=WF$YbfkpdBO9DyOS~VPLABb3Y?c0A|kgfKCjb z{3To5$LgWQT=t2}!%bWeQ3-k+ymt<%)ML<4XaYA3HWCtL4-oX3z}5cfM^?}|HHDzb zu%%}MK= zlxGuHGl-pX_k47|7u-0;j9VcP!?5G){J_ig06n4XVGFhK_USl7eg03?pHJ)|i^X~F zSPE{xAp{Iyf6>aggw1iWY90v7 zMyWrc54FcyP*f=!snqK~Xm%cUeczQD!j4dEqx`a8jy{eZ7u_PL(?FPWx9yuno_0V? z;iM5BD}=Ad1fHk9BO|swPM!3^zE)|A@Rwf}=T6P$TrEZ^?@?9V>V>bUMSQ;82qdoL zS!8XWzNNY-%?oJUS*K|E>)Os1;p%O9P~Rup{`5V}RDXf`>$WS#~@c;{lS-Wxbe>Ao4nhnk!cJ zjr0%e5DQO6GeMu8=*gL4R? zueM&FDS6`J-T|ZMynX2W&u=MlwjH2B>(-?C%UdyXy>@9fd+6}H@uY=r zFI<6-Z~Ob;Y6_>Q{*J=}ypeo%Xc1N!^dTfbkl}!V^4QAqB(ax% z0L^_PW<5)D)d$JzcN7cAa@u?A6(Cp=6$OsL=IYjjz#~uOYX(fr#DfO?Gp}l-q4fJT zfUB;Fx`zW@fv=CWEMUv-7elYLGi>IfV1CK5#*bz%uu^7qO_IG2Fq@p*lq1lS3!=gy zlVLD6mm|im0}(fgi=n#75Fu|)&piK-&EI}?t;NF8FHT<90O@DWQ(z@m{{r}Slmgc zrkW3&x#j(PRd*GfLw1Gnef&rr#)7~l@Vnc9i5>yIVh-*H#ieZ~ThF?KgRAW zi!H6Y0@8gy8L8VzA}f8=$dPssPITqzj}!3i)6gy{{cd8;4>11zArYke z(H7uiZr=-H@1BRtPDY=#dm4-tZ)^_gEmIbp8&|mG{^!+7GZ)|*wYf=1m!}?nmvW&8 zFGP7^i}|xp6{xtt<>4FbqFe(&o#k!Q=DN>1zu(axYuff+!`Uf}V>#U>jDFsh51Byy%vS-*OpnEf-(a z#`g;zb{iX6%oIul2a)!h-B`mT2VuSv{jiHpln;QNnicJ%KF*4rFlof+ zBHVkLnicu)(1qde^RmVM;05q8XFqRbEyMxuT#+P26cO-&cUdiRjC*(r-_d`_C=2`B zm>_Gzoo%lH693^K_N;n0DPjP^Y8D^+QHjf0jVvV>7cnhdn|N%+4q#qQ@Nzbr2;PP} zS=&3v8Q*}+qa&A$sPPfL4mTL<)-Jl}+6HXyO-c6<@?^#j+M;!M2fDY&{qXF*AB5ki z-u`OJb6hK<^0!q)AWG+Fnq%>xd?2u=gUR@4U{u?&I`LvJI2+kEB<6?%%(i@;;6vZD zjDC!`?v5kJZ=Kyow+y7`KlN(ldbK^=-xK$9(cyfQc$zLa?v-DYzO^q7|2g!!fvGio zpLoMCEiMWP>eqRux1sQ8r-S5MD*|3OQZIwV?i(~``0Ij{+skYANuxARDM3bgTk|Xl z&$oXZta|1)o*Z3&@|DGdeoeIAO4k2|*5Ui$K;fFZ#vzN9%({+gr^j4i$ zyxp04DGZ}vmwcZVS@q?!-q+euWJ_o$Wf6$9)lYWlS ztvT?W)ea_k3Ex2+@OW9?9sId-;_?rU<>H)Ofu=4!2&v#EczgXwdMgzq zE}t8cG?faZHK4-99l2=q8w$Ak&oX3(ooa%MWlYDTJydR z>0vZR<hqf<^w`3ZL&QP*efvL$D>Wd!mx}NhtIzc|$HAu=G44KU zFb(nPER^0KWhnVOZlewtVq^fv@pLi=zSd051J=T~NG491;I^`cAfgLOSlHP)2Zv;|q+8AWkU+KKz+7)p9 zFf62h#u^xq+=?P~<}i*QylsH%A�tQ+mPVO&M2V{6nv28wOBLjeD;2uwBJlngn_^ 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 z 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 W1^)L6{O=X`-z)IHSK$Bu3j7~3)4QYq literal 0 HcmV?d00001 diff --git a/python/test/data/data.py b/python/test/data/data.py new file mode 100644 index 0000000..edaebb0 --- /dev/null +++ b/python/test/data/data.py @@ -0,0 +1,47404 @@ + +coord = [ + -3.289479389790000e-02, + -2.210606448350000e-02, + -4.719066619870000e-02, + 4.402055442330000e-01, + 5.542828515170000e-02, + -6.259875297550000e-01, + -5.907306671140000e+00, + 6.989732384680000e-01, + 6.651635646820000e+00, + -3.923273324970000e+00, + 3.663072347640000e+00, + -3.120868682860000e+00, + -2.365748405460000e+00, + -3.613604784010000e+00, + 4.369888782500000e+00, + -1.734158039090000e+00, + 6.945582866670000e+00, + 5.042820930480000e+00, + -5.698529720310000e+00, + -1.978625655170000e+00, + 9.674029350280000e+00, + -7.129162788390000e+00, + 1.474484801290000e-01, + -3.245242536070000e-01, + -5.924298763280000e-01, + 1.610368341210000e-01, + -1.038703322410000e+00, + -5.134994983670000e+00, + 7.061057090760000e+00, + 2.425715684890000e+00, + -2.774610996250000e+00, + 3.412295579910000e+00, + -3.521559238430000e+00, + 5.133144378660000e+00, + -1.410878419880000e+00, + -1.161833643910000e+00, + -4.364864826200000e+00, + 1.034731006620000e+01, + 6.925012588500000e+00, + -7.737646102910000e+00, + 7.330259799960000e+00, + -4.217539310460000e+00, + -3.129508018490000e+00, + 1.919120669360000e+00, + -6.080432534220001e-01, + 3.445521593090000e+00, + -3.331516385080000e-01, + -1.766622543330000e+00, + -3.904210031030000e-01, + -2.217665910720000e+00, + 8.875200748440000e-01, + 4.197202205660000e+00, + -2.055675983430000e+00, + 2.772333621980000e+00, + 5.544580221180000e-01, + 4.892858982090000e+00, + -6.047697544100000e+00, + 9.693567454810000e-02, + 9.238692373040000e-02, + -4.509375572200000e+00, + -7.125779151920000e+00, + 7.027005672450000e+00, + 7.351960539820001e-01, + 2.197193056340000e-01, + -6.372790336610000e+00, + 1.907184839250000e+00, + -2.619336366650000e+00, + 9.950116157529999e+00, + -4.148561000820000e+00, + -5.637404918670000e+00, + 9.070377349850000e+00, + -5.782635211940000e+00, + -8.519565582280000e+00, + 3.562852144240000e-01, + 6.189108848570000e+00, + -3.308292865750000e+00, + -4.777495384220000e+00, + -5.250774383540000e+00, + 5.574417591090000e+00, + 4.742062091830000e-01, + 2.366463840010000e-01, + -1.402877122160000e-01, + -2.907893434170000e-02, + 1.176874414090000e-01, + -7.471918463710000e-01, + -5.355966567990000e+00, + 9.576364755630000e-01, + 6.933471202850000e+00, + -3.983613014220000e+00, + 3.570867061610000e+00, + -3.241950750350000e+00, + -2.264904260640000e+00, + -3.778436422350000e+00, + 4.543541908260000e+00, + -1.828361511230000e+00, + 7.538343429570000e+00, + 5.220657348630000e+00, + -5.652630329130000e+00, + -2.236282587050000e+00, + 9.790699005130000e+00, + -7.103625774380000e+00, + -7.082276344300000e-01, + -6.468138694759999e-01, + 1.197825744750000e-02, + 3.288059532640000e-01, + -1.542250990870000e+00, + -5.493479728700000e+00, + 7.374485015870000e+00, + 1.234750866890000e+00, + -3.486532926560000e+00, + 3.261451721190000e+00, + -2.946011066440000e+00, + 4.625741958620000e+00, + -1.197572469710000e+00, + -5.840231180190000e-01, + -4.712456703190000e+00, + 1.047902107240000e+01, + 7.675319194790000e+00, + -8.292317390439999e+00, + 6.856056690220000e+00, + -4.702507019040000e+00, + -3.886717081070000e+00, + 2.078286409380000e+00, + -1.248872160910000e+00, + 3.366964101790000e+00, + 7.318491116170000e-03, + -2.048593759540000e+00, + -8.575036525730000e-01, + -2.520074129100000e+00, + 1.192236423490000e+00, + 3.357072591780000e+00, + -3.356848955150000e+00, + 3.871697902680000e+00, + 8.704192191360000e-02, + 5.192789554600000e+00, + -5.799021244050000e+00, + -6.736350711440000e-03, + -2.185925841330000e-01, + -4.957116127010000e+00, + -5.665800571440000e+00, + 8.146540641780000e+00, + 5.507792234420000e-01, + -2.914127111430000e-01, + -4.989905834200000e+00, + 2.083510637280000e+00, + -2.788317918780000e+00, + 9.229043960569999e+00, + -2.500556945800000e+00, + -5.837289810180000e+00, + 1.027979183200000e+01, + -5.750332355500000e+00, + -8.678544044490000e+00, + -7.566726207730000e-01, + 6.140398979190000e+00, + -4.613629817960000e+00, + -2.555948495860000e+00, + -5.985188484190000e+00, + 4.084237098690000e+00, + 1.419305443760000e+00, + 1.361908197400000e+00, + 1.405153751370000e+00, + 1.050183296200000e+00, + 1.344314813610000e+00, + -1.689069271090000e+00, + 5.877724170680000e+00, + 4.905845165250000e+00, + -7.237970829010000e-01, + -3.253926515580000e+00, + 3.049529790880000e-01, + 2.400610446930000e+00, + -3.417541742320000e+00, + 5.066578865050000e+00, + 4.738110005860000e-01, + 6.325443267820000e+00, + -1.282187461850000e+00, + -6.865584254260000e-01, + -5.171776294710000e+00, + -5.592288494110000e+00, + -2.527412891390000e+00, + -4.632706165310000e+00, + 1.634482860570000e+00, + 1.355432033540000e+00, + 1.915311694150000e+00, + 1.465015172960000e+00, + -1.241237401960000e+00, + 5.851679325100000e+00, + -1.803940892220000e+00, + 5.013909339900000e+00, + -3.136294603350000e+00, + 5.728127956390000e-01, + 3.280574321750000e+00, + -7.854145765300000e-01, + -7.597092151640000e+00, + 8.649126052860000e+00, + -2.619464397430000e+00, + -1.436108112340000e+00, + -6.242902874950000e-01, + -6.376624584200000e+00, + -1.409160971640000e+00, + -2.017715930940000e+00, + 2.352341651920000e+00, + 5.639180660250000e+00, + -1.465735197070000e+00, + 1.404499650000000e+00, + 5.695833683010000e+00, + 6.329924106600000e+00, + -2.399982929230000e+00, + -4.034336566930000e+00, + 4.370337009430000e+00, + 1.102836251260000e+00, + 6.934953212740000e+00, + -3.034825325010000e-01, + 1.483031988140000e+00, + -1.669241547580000e+00, + 5.014879226680000e+00, + 1.750106453900000e+00, + 1.286257028580000e+00, + -5.802495479580000e+00, + -5.521162033080000e+00, + -2.464866638180000e+00, + 2.357106924060000e+00, + -5.817496299740000e+00, + 6.024549007420000e+00, + -3.423812687400000e-01, + 3.045330047610000e+00, + -3.217303276060000e+00, + -6.322189807890000e+00, + -5.342209339140000e+00, + -2.139357805250000e+00, + -4.509026527400000e+00, + -2.758198022840000e+00, + -2.557369947430000e+00, + -9.170991182330001e-01, + -3.764379978180000e+00, + 3.132657766340000e+00, + 6.794543266300000e+00, + -5.279413461690000e-01, + 1.909453988080000e+00, + 9.813082218169999e-01, + 1.454318761830000e+00, + 1.491119146350000e+00, + 1.438284039500000e+00, + -1.755706906320000e+00, + 5.754518032070000e+00, + 5.011233329770000e+00, + -7.583097219470000e-01, + -3.256681919100000e+00, + 9.946615993980000e-02, + 2.521108150480000e+00, + -3.307977914810000e+00, + 5.291111469270000e+00, + 5.626797080040000e-01, + 6.504675865170000e+00, + -1.221969962120000e+00, + -7.817843556400000e-01, + -5.120597362520000e+00, + -5.732671260830000e+00, + -2.552207469940000e+00, + -4.543416023250000e+00, + 1.419956445690000e+00, + 1.473619341850000e+00, + 1.375144124030000e+00, + 1.505951762200000e+00, + -1.182714581490000e+00, + 6.375828266140000e+00, + -2.090780586000000e-01, + 5.971181392670000e+00, + -3.754930734630000e+00, + -3.147540390490000e-01, + 3.481174468990000e+00, + -9.195508956910000e-01, + -7.530645847320000e+00, + 8.124924659730000e+00, + -3.259695768360000e+00, + -1.450692415240000e+00, + -9.287948608400000e-01, + -4.945121765140000e+00, + 1.655617356300000e-01, + -2.300575733180000e+00, + 3.417889833450000e+00, + 5.034385681150000e+00, + -1.115473032000000e+00, + 1.135112762450000e+00, + 5.248511791230000e+00, + 5.199815273280000e+00, + -2.151222467420000e+00, + -4.161666870120000e+00, + 4.284829616550000e+00, + -3.254414722320000e-02, + 6.953910827640000e+00, + 9.351950287820000e-01, + 1.338532567020000e+00, + -4.139838516710000e-01, + 6.082693576810000e+00, + 1.487482547760000e+00, + 2.182720661160000e+00, + -6.484934806820000e+00, + -5.719071388240000e+00, + -1.250007987020000e+00, + 1.382972478870000e+00, + -5.591775417330000e+00, + 6.568488121030000e+00, + 4.997944235800000e-01, + 2.868503332140000e+00, + -4.126940727230000e+00, + -6.152926445010000e+00, + -4.748960971830000e+00, + -3.074865102770000e+00, + -4.656795978550000e+00, + -1.092790961270000e+00, + -1.733167767520000e+00, + -2.843113839630000e-01, + -3.470454216000000e+00, + 2.130282163620000e+00, + 6.101634025570000e+00, + -1.494292497630000e+00, + 1.023642048240000e-01, + -1.769994348290000e-01, + -5.439000129700000e-01, + 1.402574479580000e-01, + -3.338779807090000e-01, + -1.904269933700000e+00, + -1.004953026770000e+00, + 5.645514130590000e-01, + 2.534300804140000e+00, + 3.905809819700000e-01, + 6.934018731120000e-01, + -7.987160086630000e-01, + -1.417052388190000e+00, + -4.623178541660000e-01, + 2.401677846910000e+00, + 7.599142789840000e-01, + -1.274976283310000e-01, + -1.196150898930000e+00, + 7.892656922340000e-01, + -2.974944114690000e+00, + -9.021904468540000e-01, + 3.814298152920000e+00, + 4.443448036910000e-02, + -3.157601654530000e-01, + 7.242480516430000e-01, + -3.018439114090000e-01, + -1.683376431470000e+00, + -6.271793842320000e-01, + 1.890905022620000e+00, + -7.033130526540000e-01, + 1.064232945440000e+00, + 2.435794472690000e-02, + -1.193231821060000e+00, + -2.710640192030000e+00, + -1.941549897190000e+00, + -1.342058062550000e+00, + 1.078251004220000e+00, + -2.674832642080000e-01, + 3.027132749560000e+00, + 2.806311368940000e+00, + 2.838723182680000e+00, + 3.540593683720000e-01, + -1.304207921030000e+00, + 2.106484651570000e+00, + -6.522997617720000e-01, + 4.762030124660000e+00, + 1.150355301800000e-02, + 7.966286689040000e-02, + -1.570076227190000e+00, + -1.982815027240000e+00, + -3.999778628350000e-01, + -8.595802634950001e-02, + 3.509858369830000e+00, + 3.600165843960000e-01, + -6.893382668500000e-01, + -7.131475210190000e-01, + -9.629860520360000e-01, + -8.964851498600001e-01, + -3.376777172090000e-01, + 1.890753984450000e+00, + 4.429938495160000e-01, + -7.803179323670000e-02, + -3.104596436020000e-01, + -5.039598941800000e+00, + -5.527924299240000e-01, + 7.403928637500000e-01, + -7.409285306930000e-01, + -3.897509276870000e-01, + -4.259182453160000e+00, + 5.579049587250000e-01, + -1.724610447880000e+00, + 5.783628463750000e+00, + 3.735422849660000e+00, + -2.196165084840000e+00, + 2.105756759640000e+00, + 4.911977350710000e-01, + -6.298512816430000e-01, + -1.032990455630000e+00, + -9.850686192510000e-01, + -4.983075857160000e-01, + -2.841599583630000e-01, + -4.613358676430000e-01, + -3.809812664990000e-01, + -8.285566568370000e-01, + -1.965505480770000e+00, + -7.924963831900000e-01, + 1.589093655350000e-01, + 2.434271574020000e+00, + 4.752131104470000e-01, + 6.672512888910000e-01, + -6.542462706570000e-01, + -1.161192655560000e+00, + -6.327153444290000e-01, + 2.367375135420000e+00, + 8.190601468090000e-01, + 2.692528069020000e-04, + -1.287793278690000e+00, + 1.020204305650000e+00, + -3.176483154300000e+00, + -8.262934088710000e-01, + 3.524164199830000e+00, + -1.111703991890000e+00, + -2.117765843870000e-01, + -3.440161347390000e-01, + 2.793368399140000e-01, + -2.713593006130000e+00, + -9.676165580750000e-01, + 2.256508588790000e+00, + -6.808828711510000e-01, + 1.196898341180000e+00, + 1.429543972020000e+00, + -1.175555825230000e+00, + -3.044429540630000e+00, + -1.877898693080000e+00, + -7.052773237230000e-01, + 1.398614794020000e-01, + 2.019244283440000e-01, + 3.525330066680000e+00, + 3.231364011760000e+00, + 3.143510341640000e+00, + 2.138588428500000e+00, + -2.223496198650000e+00, + 3.049787282940000e-01, + -1.264840483670000e+00, + 3.764174699780000e+00, + 2.304328083990000e-01, + -4.011384248730000e-01, + -2.253072977070000e+00, + -1.311394810680000e+00, + 6.682701110840000e-01, + -1.257994920020000e-01, + 2.878523111340000e+00, + 1.125814914700000e+00, + -3.417014181610000e-01, + -6.469552516940000e-01, + -1.303057432170000e+00, + -1.718827486040000e-01, + -5.248609781270001e-01, + 1.521885514260000e+00, + 6.724416613580000e-01, + 9.135840535160000e-01, + -1.571927368640000e-01, + -3.682622432710000e+00, + -1.280622005460000e+00, + 6.231396198269999e-01, + 1.894557848570000e-03, + -3.179916739460000e-01, + -3.426798820500000e+00, + 1.372795224190000e+00, + -2.194761514660000e+00, + 5.418513298030000e+00, + 3.629938125610000e+00, + -2.761352539060000e+00, + 4.673764228820000e+00, + 8.586091399190000e-01, + -9.017500877380000e-01, + -2.291806459430000e+00, + -1.732624292370000e+00, + 5.997234210370000e-02, + -5.113279223440000e-01, + -2.769259214400000e-01, + -1.334084272380000e-01, + 6.014007702470000e-02, + -5.361137986180000e-01, + -5.101080417630000e+00, + 8.011522293090000e-01, + 6.863378047940000e+00, + -3.970984220500000e+00, + 2.492908716200000e+00, + -3.051555871960000e+00, + -2.182821750640000e+00, + -3.786465883250000e+00, + 4.354598522190000e+00, + -1.435270428660000e+00, + 7.933128356930000e+00, + 5.126463890080000e+00, + -5.958951473240000e+00, + -1.719826817510000e+00, + 9.589167594910000e+00, + -7.059946537020000e+00, + 3.168055117130000e-01, + -3.043648600580000e-01, + -1.341659873720000e-01, + 1.979180872440000e-01, + -4.307079315190000e-01, + -5.831577301030000e+00, + 7.003791332240000e+00, + 2.081207036970000e+00, + -3.495231628420000e+00, + 3.272306203840000e+00, + -3.098739862440000e+00, + 4.879066467290000e+00, + -1.553382515910000e+00, + -8.028334379199999e-01, + -4.943415164950000e+00, + 1.080055999760000e+01, + 7.270351409910000e+00, + -9.088605880739999e+00, + 5.570276260380000e+00, + -3.352603435520000e+00, + -5.254712104800000e+00, + 2.007849216460000e+00, + -2.447110563520000e-01, + 4.316235542300000e+00, + 8.423347473140000e-01, + -2.168378591540000e+00, + -1.311900138850000e+00, + -1.854405164720000e+00, + -3.113747537140000e-01, + 4.103627681730000e+00, + -4.305853545670000e-01, + 3.094598054890000e+00, + -4.292574226860000e-01, + 4.728611946110000e+00, + -6.638262271880000e+00, + -1.791227012870000e-01, + 7.217366099360000e-01, + -4.528939247130000e+00, + -8.366371154790000e+00, + 7.007234096530000e+00, + 3.446394950150000e-02, + -7.575100660320000e-02, + -5.496314048770000e+00, + 3.154467821120000e+00, + -2.517232179640000e+00, + 9.089481353760000e+00, + -3.020590066910000e+00, + -5.490280151370000e+00, + 9.834526062009999e+00, + -6.346821784970000e+00, + -7.853066444400000e+00, + 4.976996183400000e-01, + 5.970541000370000e+00, + -3.187181949620000e+00, + -2.640460491180000e+00, + -5.656352996830000e+00, + 5.937297344210000e+00, + 4.153497889640000e-02, + -7.195188850160000e-02, + 4.728494286540000e-01, + 1.292521804570000e-01, + -2.784419655800000e-01, + -6.587823033330000e-01, + -5.663529396060000e+00, + 9.181415438650000e-01, + 6.580083370210000e+00, + -3.800935506820000e+00, + 3.380715608600000e+00, + -3.254722118380000e+00, + -2.505790472030000e+00, + -3.464241504670000e+00, + 4.359735488890000e+00, + -1.639564037320000e+00, + 7.598462581630000e+00, + 5.195642471310000e+00, + -5.759763717650000e+00, + -1.965411186220000e+00, + 9.648644447330000e+00, + -7.157919406890000e+00, + 1.351687312130000e-01, + 8.106555789710000e-02, + 5.700334906580000e-01, + 1.211464524270000e+00, + -1.681766062970000e-01, + -6.000503540040000e+00, + 6.844776153560000e+00, + 1.453767180440000e+00, + -3.427700281140000e+00, + 4.212820053100000e+00, + -2.392270088200000e+00, + 4.990732669830000e+00, + -2.088341951370000e+00, + -2.773212492470000e-01, + -4.934598445890000e+00, + 1.089649391170000e+01, + 7.396813392640000e+00, + -7.859485626220000e+00, + 5.873480796810000e+00, + -3.993710517880000e+00, + -3.430992364880000e+00, + 2.458395242690000e+00, + -1.052964687350000e+00, + 3.138689994810000e+00, + 4.917133748530000e-01, + -1.948919653890000e+00, + -5.777356624600000e-01, + -1.913354277610000e+00, + 1.009107232090000e+00, + 3.496515750890000e+00, + -1.067594885830000e+00, + 3.161911487580000e+00, + -7.612618617710000e-03, + 5.222842216490000e+00, + -5.230809211730000e+00, + 3.308469895270000e-03, + -3.987622857090000e-01, + -5.199548244480000e+00, + -7.343109607700000e+00, + 7.972089290620000e+00, + 1.894309073690000e-01, + -2.858968451620000e-02, + -3.850863218310000e+00, + 2.903971433640000e+00, + -2.100882768630000e+00, + 9.728782653810001e+00, + -3.785924196240000e+00, + -5.458435535430000e+00, + 9.877951622010000e+00, + -5.923918247220000e+00, + -7.302463054660000e+00, + 2.225292474030000e-01, + 5.769089221950000e+00, + -3.401497602460000e+00, + -3.199660301210000e+00, + -5.415193557740000e+00, + 4.797804355620000e+00, + 1.358591556550000e+00, + 1.565232753750000e+00, + 1.371501684190000e+00, + 1.470251321790000e+00, + 1.435661315920000e+00, + -1.761527299880000e+00, + 6.231369018550000e+00, + 4.911376476290000e+00, + -8.025851845740000e-01, + -3.413525104520000e+00, + 5.167145133020000e-01, + 2.461322307590000e+00, + -3.601258277890000e+00, + 4.992616653440000e+00, + 4.151079356670000e-01, + 6.543353080750000e+00, + -1.721557736400000e+00, + -7.878239154820000e-01, + -5.045185089110000e+00, + -5.370095729830000e+00, + -2.820923805240000e+00, + -5.068838596340000e+00, + 7.897716760640000e-01, + 1.046902298930000e+00, + 1.370932102200000e+00, + 2.290446996690000e+00, + -2.999358654020000e+00, + 4.516003608700000e+00, + 1.132407113910000e-01, + 4.358112812040000e+00, + -2.996958017350000e+00, + 2.204536497590000e-01, + 6.252052783970000e-01, + -1.039484500890000e+00, + -6.816826820370000e+00, + 9.463844299320000e+00, + -2.558194637300000e+00, + -1.164671540260000e+00, + -2.960858643050000e-01, + -6.921934127810000e+00, + 1.901962161060000e-01, + -2.657139539720000e+00, + 1.520354390140000e+00, + 4.994661331180000e+00, + -1.556092500690000e+00, + 1.308647990230000e+00, + 5.806635379790000e+00, + 6.419282913210000e+00, + -2.394076824190000e+00, + -3.954369068150000e+00, + 4.826049327850000e+00, + -9.337434172630000e-01, + 5.902072906490000e+00, + 1.374243736270000e+00, + 1.724545240400000e+00, + 5.345000624660000e-01, + 6.471765518190000e+00, + 1.884031295780000e+00, + 1.242637634280000e+00, + -7.505495071410000e+00, + -6.422315597530000e+00, + -1.172721028330000e+00, + 1.369859695430000e+00, + -5.828806400300000e+00, + 5.483242988590000e+00, + 5.225590467450000e-01, + 2.246407508850000e+00, + -3.322274446490000e+00, + -7.387838363650000e+00, + -6.365434646610000e+00, + -2.138148307800000e+00, + -4.537178516390000e+00, + -3.374967575070000e+00, + -1.682352900510000e+00, + -5.052674412730001e-01, + -4.337105274200000e+00, + 2.767491579060000e+00, + 5.959065437320000e+00, + -5.180509686470000e-01, + 1.315159082410000e+00, + 1.318656563760000e+00, + 5.503209829330000e-01, + 1.409690856930000e+00, + 1.156193017960000e+00, + -1.756872296330000e+00, + 5.994050979610000e+00, + 5.074110984800000e+00, + -6.294804811480000e-01, + -3.324912786480000e+00, + 4.576119184490000e-01, + 2.691690921780000e+00, + -3.399363994600000e+00, + 4.857459545140000e+00, + 1.795228570700000e-01, + 6.552263259890000e+00, + -1.569277524950000e+00, + -9.953702688220000e-01, + -5.307252407070000e+00, + -5.690342903140000e+00, + -2.489876508710000e+00, + -4.773039340970000e+00, + 1.452660560610000e+00, + 1.237804055210000e+00, + 8.594502806660000e-01, + 8.362723588940000e-01, + -1.194753885270000e+00, + 5.858585834500000e+00, + -1.008884787560000e+00, + 6.317028045650000e+00, + -3.187392950060000e+00, + 9.511802792550000e-01, + 2.969375848770000e+00, + -1.543908596040000e+00, + -6.548559188840000e+00, + 8.292576789860000e+00, + -4.134670734410000e+00, + -1.707960844040000e+00, + -1.031149744990000e+00, + -6.435035228730000e+00, + -1.715956926350000e-01, + -1.420778155330000e+00, + 1.337698102000000e+00, + 4.814438819890000e+00, + -1.509135246280000e+00, + 5.117173194890000e-01, + 5.810117244720000e+00, + 5.735875129700000e+00, + -2.483436346050000e+00, + -4.632510185240000e+00, + 4.761151313780000e+00, + 1.196038246150000e+00, + 6.474711894990000e+00, + -5.877175331120000e-01, + 1.857100367550000e+00, + -4.620758593080000e-01, + 6.830068588260000e+00, + 1.397284269330000e+00, + 9.805359840390000e-01, + -8.046840667720000e+00, + -4.803296566010000e+00, + -1.688511967660000e+00, + 1.647181153300000e+00, + -5.608530521390000e+00, + 6.028730392460000e+00, + -3.365804627540000e-02, + 1.994498610500000e+00, + -3.727872133250000e+00, + -6.048459053040000e+00, + -5.052627563480000e+00, + -1.742778182030000e+00, + -4.486665248870000e+00, + -4.274544715880000e+00, + -1.927397131920000e+00, + -7.812777757640000e-01, + -3.645674705510000e+00, + 3.372635602950000e+00, + 6.752274036410000e+00, + -1.282890319820000e+00, + -2.995504438880000e-01, + -4.709423184390000e-01, + -4.435785114770000e-01, + -1.050721555950000e-01, + -3.358997404580000e-01, + -2.042941808700000e+00, + -4.100731909280000e-01, + 4.014098644260000e-01, + 2.548562765120000e+00, + 3.934075832370000e-01, + 9.250493645670000e-01, + -6.692398786540000e-01, + -1.417232036590000e+00, + -6.393095850940000e-01, + 2.493809223180000e+00, + 4.503470361230000e-01, + -3.363066613670000e-01, + -1.302202701570000e+00, + 8.444065451620000e-01, + -3.854851007460000e+00, + -7.547966837880000e-01, + 3.482671976090000e+00, + -1.324125677350000e-01, + 1.865884810690000e-01, + -6.448716521260000e-01, + 4.972215294840000e-01, + -1.530941128730000e+00, + -4.467170834540000e-01, + 3.219796180730000e+00, + 1.151236817240000e-01, + -8.514446765180000e-02, + 6.311897039410000e-01, + -1.602242290970000e-01, + -2.121265172960000e+00, + -2.192078590390000e+00, + -5.259280800820000e-01, + 8.893707394600001e-02, + -1.691798567770000e-01, + 2.567995309830000e+00, + 3.860424041750000e+00, + 2.499555349350000e+00, + 1.488695859910000e+00, + -1.676698088650000e+00, + 1.292608380320000e+00, + -1.485686063770000e+00, + 4.655421257020000e+00, + 5.517579317090000e-01, + 4.786743819710000e-01, + -2.996139287950000e+00, + -2.896797418590000e+00, + 2.894064188000000e-01, + -6.752884984020000e-01, + 1.457316040990000e+00, + 1.010250687600000e+00, + -7.507269270720000e-03, + -1.147083640100000e+00, + -1.768649697300000e+00, + -5.852399468420000e-01, + -3.149761259560000e-01, + 1.644601106640000e+00, + -1.064363121990000e+00, + 1.597354710100000e-01, + -3.278468251230000e-01, + -3.704994440080000e+00, + -2.025451660160000e+00, + 1.212274432180000e-01, + -1.707128882410000e+00, + 1.340904925020000e-02, + -5.282566547390000e+00, + 3.217924356460000e+00, + -2.619417190550000e+00, + 5.423174858090000e+00, + 2.365085601810000e+00, + -3.072347402570000e+00, + 1.856406092640000e+00, + 4.500750899310000e-01, + 4.201535880570000e-02, + -1.205034613610000e+00, + -1.791713833810000e+00, + -3.099424242970000e-01, + -2.795784473420000e-01, + -9.848753809930000e-01, + -7.742040157320000e-01, + -6.382600665090000e-01, + -1.820689201350000e+00, + -1.189579963680000e+00, + 8.123512268070000e-01, + 2.671602964400000e+00, + 4.632925093170000e-01, + 6.321837306019999e-01, + -7.379131913190000e-01, + -1.436001420020000e+00, + -6.677609682080000e-01, + 2.760427713390000e+00, + 7.089834213260000e-01, + 4.755435884000000e-01, + -5.623831748960000e-01, + 1.097014665600000e+00, + -3.172279357910000e+00, + -7.175146937370001e-01, + 3.483839035030000e+00, + -3.703194856640000e-01, + -3.160767257210000e-01, + -2.059655040500000e-01, + -5.512853860860000e-01, + 9.465031325820000e-03, + -8.757243752480000e-01, + 1.635937333110000e+00, + -3.288599550720000e-01, + -1.077528119090000e+00, + 5.509547591210000e-01, + -1.779803752900000e+00, + -2.316455364230000e+00, + -3.001098155980000e+00, + -3.194255232810000e-01, + 2.306316643950000e-01, + -2.764537036420000e-01, + 2.237506151200000e+00, + 5.397821903230000e+00, + 2.321671724320000e+00, + 1.568722128870000e+00, + -1.281829237940000e+00, + 2.027430534360000e+00, + -2.107658863070000e+00, + 4.295361518860000e+00, + 9.741921424870000e-01, + 7.241498231890000e-01, + -2.021377325060000e+00, + -1.412893414500000e+00, + 3.343269526960000e-01, + 4.319207072260000e-01, + 1.486258387570000e+00, + -7.640048116450000e-02, + -5.744490027430000e-01, + -1.022572517400000e+00, + -2.204563841220000e-02, + -4.820770025250000e-01, + 1.005033254620000e+00, + 8.665161132810000e-01, + 2.245299071070000e-01, + -4.754054546360000e-01, + -1.541025340560000e-01, + -3.790061712270000e+00, + -1.295416831970000e+00, + 1.094012141230000e+00, + -9.205542802809999e-01, + -3.665890097620000e-01, + -3.074288129810000e+00, + 1.763259530070000e+00, + -1.473965048790000e+00, + 5.291771411900000e+00, + 3.296497821810000e+00, + -2.576280117030000e+00, + 2.481916427610000e+00, + 1.209545016290000e+00, + -3.770308494570000e-01, + -1.688559174540000e+00, + -1.159905314450000e+00, + 7.194128632550000e-02, + -1.344736218450000e-01, + 1.275654789060000e-02, + 3.515723347660000e-02, + 2.722492218020000e-01, + -4.256087243560000e-01, + -5.840380191800000e+00, + 4.795370697980000e-01, + 6.746423244480000e+00, + -3.829107522960000e+00, + 3.676369667050000e+00, + -3.022224903110000e+00, + -2.190210819240000e+00, + -3.773564338680000e+00, + 4.888872146610000e+00, + -2.089496612550000e+00, + 8.282394409180000e+00, + 5.044999599460000e+00, + -5.601189136510000e+00, + -2.177427291870000e+00, + 9.619869232179999e+00, + -7.110969543460000e+00, + 4.611684009430000e-02, + -2.475988119840000e-01, + -2.041538804770000e-01, + 1.080101490020000e+00, + 2.057852149010000e-01, + -5.629388809200000e+00, + 6.431328773500000e+00, + 1.582156419750000e+00, + -4.793893337250000e+00, + 2.762760877610000e+00, + -2.595444679260000e+00, + 3.915580511090000e+00, + -1.241188764570000e+00, + -1.090335369110000e+00, + -3.999578952790000e+00, + 1.099730777740000e+01, + 7.306216716770000e+00, + -7.390185832980000e+00, + 8.046247482300000e+00, + -4.375121593480000e+00, + -3.359385490420000e+00, + 3.203598856930000e-01, + -1.129660964010000e+00, + 4.448785781860000e+00, + 3.072518706320000e-01, + -1.208258748050000e+00, + -1.455667257310000e+00, + -2.974375486370000e+00, + -5.529341101650000e-01, + 3.534218072890000e+00, + -1.714298605920000e+00, + 3.471990823750000e+00, + -5.135865882040000e-02, + 5.642799854280000e+00, + -5.081657886510000e+00, + 6.716639399530000e-01, + -2.961656749250000e-01, + -4.857246875760000e+00, + -7.332020759580000e+00, + 7.223343849180000e+00, + 1.805356144910000e-01, + -1.097498893740000e+00, + -5.417131900790000e+00, + 2.807414531710000e+00, + -3.722936868670000e+00, + 9.791812896730001e+00, + -2.950752258300000e+00, + -5.172111511230000e+00, + 8.916345596310000e+00, + -6.697403907780000e+00, + -8.430846214290000e+00, + -6.122089624400000e-01, + 7.389983177190000e+00, + -4.401063442230000e+00, + -3.163826704030000e+00, + -5.092547893520000e+00, + 6.966470241550000e+00, + 1.961811184880000e-01, + 2.231313139200000e-01, + 3.892024233940000e-02, + 3.309854492550000e-02, + 4.907901585100000e-01, + -7.696728706360000e-01, + -5.816929340360000e+00, + 1.135015249250000e+00, + 6.882905483250000e+00, + -3.957102537160000e+00, + 3.497681140900000e+00, + -3.371833801270000e+00, + -2.344795942310000e+00, + -3.808714389800000e+00, + 4.573127269740000e+00, + -1.745681405070000e+00, + 7.446696281430000e+00, + 5.200185298920000e+00, + -5.792665481570000e+00, + -2.079881429670000e+00, + 9.425424575810000e+00, + -7.149970531460000e+00, + -2.984154820440000e-01, + -7.915423512460000e-01, + -2.098991870880000e-01, + -1.000378578900000e-01, + -1.784874916080000e+00, + -5.545212268830000e+00, + 7.038062572480000e+00, + 1.682291865350000e+00, + -4.677500724790000e+00, + 3.640576839450000e+00, + -2.043480157850000e+00, + 4.252521038060000e+00, + -1.275142788890000e+00, + -1.584215044980000e+00, + -5.513513565060000e+00, + 1.218506908420000e+01, + 9.326254844670000e+00, + -9.139103889470000e+00, + 5.778719425200000e+00, + -4.650042057040000e+00, + -5.409842967990000e+00, + 9.497287869450000e-01, + -8.539671897890000e-01, + 3.514482736590000e+00, + 9.615359306340000e-01, + -2.155155181880000e+00, + -9.978404045100000e-01, + -3.289936780930000e+00, + 9.410519003870000e-01, + 4.415821552280000e+00, + -2.087187290190000e+00, + 4.679967403410000e+00, + -1.012526035310000e+00, + 4.071429252620000e+00, + -6.050407886510000e+00, + 2.937554121020000e-01, + 2.155309021470000e-01, + -4.870492935180000e+00, + -6.798861503600000e+00, + 8.308083534240000e+00, + 6.316578388210000e-01, + -9.396208524700000e-01, + -5.116375446320000e+00, + 2.718940496440000e+00, + -4.591245651250000e+00, + 1.027483081820000e+01, + -2.570359706880000e+00, + -5.875385284420000e+00, + 8.829354286190000e+00, + -5.402585983280000e+00, + -8.002922058110000e+00, + 6.488426923750000e-01, + 6.466100692750000e+00, + -2.418460130690000e+00, + -3.486823558810000e+00, + -5.291539192200000e+00, + 5.846401691440000e+00, + 1.278359174730000e+00, + 1.506138920780000e+00, + 1.400240302090000e+00, + 1.357655882840000e+00, + 1.731219768520000e+00, + -1.536676645280000e+00, + 6.447782039640000e+00, + 4.717919826510000e+00, + -7.571609616280000e-01, + -3.173624515530000e+00, + 3.400366306300000e-01, + 2.203216552730000e+00, + -3.517193555830000e+00, + 4.995051383970000e+00, + 6.328089237209999e-01, + 5.872504711150000e+00, + -2.869044065480000e+00, + -7.341849803920000e-01, + -5.319310188290000e+00, + -5.744662761690000e+00, + -2.279377460480000e+00, + -4.514395713810000e+00, + 1.690558671950000e+00, + 1.874148488040000e+00, + 1.059239387510000e+00, + 9.494607448580000e-01, + -2.192411184310000e+00, + 5.944647789000000e+00, + -4.608628451820000e-01, + 5.730271816250000e+00, + -3.424272775650000e+00, + 5.836443901060000e-01, + 3.170404911040000e+00, + -9.446205496790000e-01, + -7.154272079470000e+00, + 8.127901077270000e+00, + -4.072903633120000e+00, + -1.292930006980000e+00, + -1.473779559140000e+00, + -6.034114360810000e+00, + -1.746658563610000e+00, + -1.437288880350000e+00, + 1.926734447480000e+00, + 4.558185100560000e+00, + -1.528858065610000e+00, + 4.511067867280000e-01, + 6.367171287540000e+00, + 6.947726249690000e+00, + -1.974116325380000e+00, + -4.875156879430000e+00, + 3.954808235170000e+00, + -5.895483493800000e-01, + 5.901984691620000e+00, + 2.207136750220000e-01, + 1.852221012120000e+00, + -9.471044540410000e-01, + 5.777395248410000e+00, + 7.590606212620000e-01, + 1.558656454090000e+00, + -6.991623401640000e+00, + -5.330646038060000e+00, + -1.385972380640000e+00, + 9.383851885800000e-01, + -4.684926986690000e+00, + 6.354863166810000e+00, + 3.002586066720000e-01, + 3.285926818850000e+00, + -3.729956388470000e+00, + -6.347766399380000e+00, + -5.154574394230000e+00, + -2.477346420290000e+00, + -4.807422637940000e+00, + -3.020153999330000e+00, + -1.597521424290000e+00, + -1.539311409000000e-01, + -3.306833744050000e+00, + 2.565942049030000e+00, + 6.393550395970000e+00, + -9.301871657370000e-01, + 1.443849205970000e+00, + 1.318619489670000e+00, + 1.344509363170000e+00, + 1.348753690720000e+00, + 1.544776439670000e+00, + -1.769791960720000e+00, + 5.949802875520000e+00, + 4.894627094270000e+00, + -7.974668741230000e-01, + -3.374525308610000e+00, + 2.806798517700000e-01, + 2.357450246810000e+00, + -3.714680433270000e+00, + 5.054347038270000e+00, + 4.581855833530000e-01, + 6.427594184880000e+00, + -1.500974774360000e+00, + -5.499965548520001e-01, + -5.320083618160000e+00, + -5.762192249300000e+00, + -2.515759944920000e+00, + -4.568661212920000e+00, + 1.166109204290000e+00, + 1.733682394030000e+00, + 1.406974792480000e+00, + 1.790768861770000e+00, + -2.343911409380000e+00, + 7.093045711520000e+00, + -1.039923071860000e+00, + 5.424372196200000e+00, + -2.755609273910000e+00, + 1.375840306280000e-01, + 3.325784206390000e+00, + -1.436218261720000e+00, + -7.133985042570000e+00, + 7.792786598210000e+00, + -4.100100040440000e+00, + -1.280381441120000e+00, + -2.519656658170000e+00, + -6.637788772580000e+00, + -1.880802512170000e-01, + -2.211232900620000e+00, + 2.262151002880000e+00, + 3.911398172380000e+00, + -2.548097372060000e+00, + 2.762875258920000e-01, + 5.887305736540000e+00, + 5.786722660060000e+00, + -2.093311786650000e+00, + -3.591689348220000e+00, + 3.611082792280000e+00, + -3.799993991850000e-01, + 7.921332359310000e+00, + 3.720320761200000e-01, + 1.684049963950000e+00, + -6.241137534380000e-02, + 5.760219573970000e+00, + 1.213484525680000e+00, + 1.640479922290000e+00, + -5.648922443390000e+00, + -5.173549175260000e+00, + -1.977531790730000e+00, + 1.051741600040000e+00, + -6.113725662230000e+00, + 6.524495124820000e+00, + 7.638384699820000e-01, + 3.235715627670000e+00, + -4.620690822600000e+00, + -5.732937335970000e+00, + -5.725720405580000e+00, + -3.706798076630000e+00, + -5.985327720640000e+00, + -1.364380717280000e+00, + -4.084137082100000e-01, + -9.439790248870000e-01, + -4.668607234950000e+00, + 2.580264806750000e+00, + 5.284202098850000e+00, + -6.559667587280000e-01, + -3.613304495810000e-01, + -3.395710587500000e-01, + -3.207415342330000e-01, + -3.779661953450000e-01, + -5.104687809939999e-01, + -2.111363649370000e+00, + -2.091372251510000e+00, + 2.532522976400000e-01, + 2.654732942580000e+00, + 3.218571245670000e-01, + 9.464792013170000e-01, + -8.263009786610001e-01, + -1.146993994710000e+00, + -3.732585310940000e-01, + 2.489763975140000e+00, + -3.627099692820000e-01, + -8.836975693700000e-01, + -1.137693405150000e+00, + 1.303160429000000e+00, + -2.886078834530000e+00, + -9.961759448050000e-01, + 3.522194147110000e+00, + -1.057103991510000e+00, + -6.706918478010000e-01, + -8.863021135330000e-01, + -3.700437545780000e-01, + -1.865715861320000e+00, + -1.625955849890000e-01, + 2.039379119870000e+00, + -1.213509202000000e+00, + 1.900112926960000e-01, + 1.122499585150000e+00, + -7.003903388980000e-01, + -2.887268543240000e+00, + -2.095717430110000e+00, + -3.083897829060000e-01, + 8.246823549270000e-01, + -3.646916896100000e-02, + 2.575898885730000e+00, + 2.978657960890000e+00, + 1.507701516150000e+00, + 1.598361492160000e+00, + -2.853693008420000e+00, + 1.276781082150000e+00, + -3.232450723650000e+00, + 3.881354570390000e+00, + 2.554175555710000e-01, + 1.500432133670000e+00, + -8.365522325039999e-02, + -2.245957136150000e+00, + 1.700667262080000e+00, + -1.733327656980000e-01, + 2.398072004320000e+00, + 5.203571319580000e-01, + -1.487002223730000e-01, + -6.727828979490000e-01, + -8.057317137720000e-01, + -9.339318871500000e-01, + -2.394440621140000e-01, + 1.359177589420000e+00, + -7.226677536960000e-01, + 3.706433996560000e-02, + 4.451390504840000e-01, + -3.696571350100000e+00, + -1.040572404860000e+00, + -5.365611910820000e-01, + -1.105936169620000e+00, + 5.147453546520000e-01, + -3.933868169780000e+00, + 1.772406816480000e+00, + -3.584720373150000e+00, + 5.684505939480000e+00, + 4.694339752200000e+00, + -1.890881180760000e+00, + 2.558527469640000e+00, + 8.960908055310000e-01, + -7.161944508550000e-01, + -5.253386497500000e-01, + -1.341632843020000e+00, + -3.663417696950000e-01, + -2.905032634740000e-01, + -3.310907781120000e-01, + -6.602971553800000e-01, + -3.310716152190000e-01, + -1.693996906280000e+00, + -1.227657079700000e+00, + 1.783273220060000e-01, + 2.561733484270000e+00, + 4.056822955610000e-01, + 4.588123559950000e-01, + -7.327307462690000e-01, + -1.917727708820000e+00, + -5.714816451069999e-01, + 2.861976623540000e+00, + 6.387928724290000e-01, + 3.643992356960000e-03, + -1.023638725280000e+00, + 9.785847663880000e-01, + -3.088898658750000e+00, + -1.021534562110000e+00, + 3.534773111340000e+00, + 1.056279167530000e-01, + -4.091942310330000e-01, + 3.855653852220000e-02, + -4.575756192210000e-01, + -2.044318199160000e+00, + -6.736749410630000e-01, + 2.168298006060000e+00, + -6.679658293720000e-01, + -5.420063734050000e-01, + 2.962784290310000e+00, + -7.929298877720000e-01, + -3.308494091030000e+00, + -1.969329476360000e+00, + -1.680315434930000e-01, + 1.222727417950000e+00, + -1.529248118400000e+00, + 3.757253170010000e+00, + 4.708649158480000e+00, + 2.715309858320000e+00, + 1.135579824450000e+00, + -9.030279517170000e-01, + 2.429699659350000e+00, + -1.631744027140000e+00, + 4.233306884770000e+00, + 4.768549203870000e-01, + -4.585995972160000e-01, + -1.456807732580000e+00, + -4.067602753640000e-01, + -4.182333946230000e-01, + 2.300391644240000e-01, + 3.330784320830000e+00, + 8.256702423100000e-01, + -1.350560307500000e+00, + -1.884966492650000e+00, + -1.978180050850000e+00, + -6.368364393710001e-02, + 4.216136336330000e-01, + 3.196012973790000e-02, + -7.703140974040000e-01, + 6.047245860100000e-01, + -7.206060290340000e-01, + -2.853448390960000e+00, + -1.636391162870000e+00, + 3.260593712330000e-01, + -8.381993174550000e-01, + 4.813153445720000e-01, + -3.468415737150000e+00, + 1.810641169550000e+00, + -1.564284086230000e+00, + 5.015605449680000e+00, + 2.603358983990000e+00, + -2.653891801830000e+00, + 2.363430023190000e+00, + -6.216679811480000e-01, + -1.370168179270000e-01, + -1.088274359700000e+00, + -3.156633138660000e+00, + 4.812218844890000e-01, + 2.044726759200000e-01, + -2.277821302410000e-01, + 6.127324327830000e-02, + 9.757139533759999e-02, + -5.608332157140000e-01, + -5.677775383000000e+00, + 5.002499818800000e-01, + 6.997197628020000e+00, + -3.666169166560000e+00, + 3.259947776790000e+00, + -3.328316926960000e+00, + -2.685657739640000e+00, + -3.640276432040000e+00, + 4.478650093080000e+00, + -1.681201457980000e+00, + 7.304430961610000e+00, + 4.812906742100000e+00, + -6.018026351930000e+00, + -2.207595348360000e+00, + 1.003862953190000e+01, + -7.141570091250000e+00, + 2.357561290260000e-01, + 5.501272678380000e-01, + 1.519702672960000e+00, + -1.254553914070000e+00, + -9.605179429050000e-01, + -4.770830631260000e+00, + 8.023852348329999e+00, + 1.428066134450000e+00, + -2.939586877820000e+00, + 2.116172313690000e+00, + -2.914920806880000e+00, + 4.124719142910000e+00, + -1.479662656780000e+00, + -1.227129578590000e+00, + -4.420205116270000e+00, + 1.094511032100000e+01, + 8.357831954960000e+00, + -8.997360229490001e+00, + 7.169452190400000e+00, + -4.280980110170000e+00, + -4.060836315160000e+00, + 2.457872390750000e+00, + -1.960896849630000e-01, + 3.848919391630000e+00, + -2.670864164830000e-01, + -1.676283955570000e+00, + -8.604031801220000e-01, + -2.384193181990000e+00, + 6.762979626660000e-01, + 4.273488998410000e+00, + -2.255260944370000e+00, + 3.817525148390000e+00, + 7.085859179500000e-01, + 3.913551092150000e+00, + -6.312634944920000e+00, + 1.699957251550000e-01, + 3.849936127660000e-01, + -4.737881660460000e+00, + -7.130706787110000e+00, + 7.947646617890000e+00, + -7.128066569570000e-02, + -8.861353397370000e-01, + -5.162115097050000e+00, + 2.527620315550000e+00, + -2.716191291810000e+00, + 9.433101654050001e+00, + -4.156250000000000e+00, + -5.922040462490000e+00, + 9.139254570009999e+00, + -5.740126609800000e+00, + -7.291195392610000e+00, + -6.165752410890000e-01, + 6.290886878970000e+00, + -5.065673828120000e+00, + -3.182214975360000e+00, + -4.794749736790000e+00, + 5.488350391390000e+00, + 4.183473438020000e-02, + -1.135265361520000e-02, + -1.157429441810000e-01, + 1.368102338170000e-02, + 1.692038029430000e-01, + -1.447217017410000e-01, + -5.540802478790000e+00, + 7.500787973400000e-01, + 7.119098186490000e+00, + -3.866913557050000e+00, + 3.636479616170000e+00, + -3.107795953750000e+00, + -2.283238410950000e+00, + -4.041719913480000e+00, + 4.334309577940000e+00, + -1.487759470940000e+00, + 7.047715663910000e+00, + 5.025053977970000e+00, + -5.935334205630000e+00, + -1.872427105900000e+00, + 9.526018142700000e+00, + -7.230030059810000e+00, + 3.243958652020000e-01, + -3.666151762010000e-01, + -1.299526453020000e+00, + 2.656890153880000e-01, + -2.905939579010000e+00, + -5.887800693510000e+00, + 7.839096069340000e+00, + 2.685853958130000e+00, + -4.812494277950000e+00, + 3.171323060990000e+00, + -3.807294845580000e+00, + 4.599558353420000e+00, + -1.659501314160000e+00, + -7.947322130200000e-01, + -3.541404962540000e+00, + 1.086127948760000e+01, + 7.607670307160000e+00, + -8.395552635190001e+00, + 6.240155696870000e+00, + -3.713849782940000e+00, + -4.015914440160000e+00, + 1.179253220560000e+00, + 6.151009798050000e-01, + 3.497282743450000e+00, + -3.678782880310000e-01, + -1.134988188740000e+00, + -2.972418069840000e-01, + -1.913441181180000e+00, + 9.060324430470000e-01, + 4.506201744080000e+00, + -1.279931783680000e+00, + 4.270113468170000e+00, + -1.637981981040000e-01, + 5.743727207180000e+00, + -5.810972213750000e+00, + -7.797076106070000e-01, + 4.854322075840000e-01, + -4.536352634430000e+00, + -7.111837863920000e+00, + 9.541761398320000e+00, + 1.527529507880000e-01, + 1.373685747390000e-01, + -5.031229496000000e+00, + 3.314119338990000e+00, + -2.206995725630000e+00, + 1.021733665470000e+01, + -4.191120147710000e+00, + -7.714313030240000e+00, + 1.029547595980000e+01, + -5.229578971860000e+00, + -7.857104778290000e+00, + -1.464211821560000e+00, + 5.579509258270000e+00, + -3.933806419370000e+00, + -3.206528425220000e+00, + -6.698480129240000e+00, + 7.343095302580000e+00, + 1.099161267280000e+00, + 1.424163103100000e+00, + 1.450711727140000e+00, + 1.414655566220000e+00, + 1.357162952420000e+00, + -1.445623636250000e+00, + 6.161998748780000e+00, + 4.851567268370000e+00, + -8.565319776540000e-01, + -3.296924352650000e+00, + 2.878275513650000e-01, + 2.506353855130000e+00, + -4.023224353790000e+00, + 5.161520957950000e+00, + 5.004784464840000e-01, + 6.693028926850000e+00, + -1.365375876430000e+00, + -7.688010334970000e-01, + -5.291431427000000e+00, + -5.659110069270000e+00, + -2.753333091740000e+00, + -4.529664516450000e+00, + 2.347155809400000e+00, + 1.184122681620000e+00, + 6.793618202210000e-01, + 1.183902859690000e+00, + -2.317306756970000e+00, + 6.154210567470000e+00, + -9.191692471500000e-01, + 5.185348987580000e+00, + -3.448385715480000e+00, + 5.572393164040000e-02, + 3.321094512940000e+00, + -9.542000293730000e-01, + -6.472859859470000e+00, + 8.598373413090000e+00, + -3.050499439240000e+00, + -8.250772356990000e-01, + -1.469890832900000e+00, + -6.696188449860000e+00, + 4.818697869780000e-01, + -2.249470949170000e+00, + 1.267812728880000e+00, + 4.255224227910000e+00, + -6.528189182280000e-01, + 1.541343212130000e+00, + 5.443069934840000e+00, + 6.071365356450000e+00, + -1.851552128790000e+00, + -3.414006948470000e+00, + 3.846338987350000e+00, + -8.703589439390000e-01, + 6.031861305240000e+00, + 1.426106505100000e-02, + 2.068868637080000e+00, + -8.372947573660000e-01, + 7.352303504940000e+00, + 1.194865584370000e+00, + 1.190768361090000e+00, + -6.702434539790000e+00, + -4.924152851100000e+00, + -2.618261337280000e+00, + 8.047139644620001e-01, + -5.320827960970000e+00, + 5.984066963200000e+00, + 3.524084389210000e-01, + 2.695468902590000e+00, + -2.884013652800000e+00, + -6.710520267490000e+00, + -4.643543243410000e+00, + -3.015059232710000e+00, + -4.510774135590000e+00, + -3.379180192950000e+00, + -3.470887184140000e+00, + -8.042390942570000e-01, + -3.467844247820000e+00, + 1.624583363530000e+00, + 3.644311666490000e+00, + -1.093356609340000e+00, + 1.379291534420000e+00, + 1.468193650250000e+00, + 1.133611440660000e+00, + 1.085316181180000e+00, + 1.195846319200000e+00, + -1.627428412440000e+00, + 6.007385730740000e+00, + 5.182443618770000e+00, + -6.337966918950000e-01, + -3.283656120300000e+00, + 2.971317768100000e-01, + 2.332799673080000e+00, + -3.366776466370000e+00, + 5.028371810910000e+00, + 3.544422984120000e-01, + 6.465220451350000e+00, + -1.632773518560000e+00, + -6.672974824910000e-01, + -5.173556327820000e+00, + -5.850633144380000e+00, + -2.566773653030000e+00, + -4.614013195040000e+00, + 8.988147377970001e-01, + 1.503500223160000e+00, + 1.462841987610000e+00, + 1.403629064560000e+00, + -1.135354161260000e+00, + 5.680353164670000e+00, + -1.378467202190000e+00, + 6.384003162380000e+00, + -2.830413818360000e+00, + -2.425876855850000e-01, + 3.280846595760000e+00, + -7.304419279100000e-01, + -6.832140922550000e+00, + 7.656646251680000e+00, + -4.303889274600000e+00, + -9.412609934810000e-01, + -1.623763918880000e+00, + -6.893677234650000e+00, + 7.193241715430000e-01, + -2.294874906540000e+00, + 1.579150080680000e+00, + 3.485983371730000e+00, + 2.242934703830000e-01, + 8.465916514400000e-01, + 6.219950199130000e+00, + 7.393933296200000e+00, + -3.186589479450000e+00, + -5.404852867130000e+00, + 4.559796333310000e+00, + -6.898172497750000e-01, + 6.978315353390000e+00, + 7.824628949170001e-01, + 1.929801344870000e+00, + -7.643573880200000e-01, + 6.101189136510000e+00, + 1.051481008530000e+00, + 1.139525771140000e+00, + -6.679356575010000e+00, + -5.394262790680000e+00, + -2.284889459610000e+00, + 1.493872642520000e+00, + -4.786734580990000e+00, + 5.688493728640000e+00, + 8.482670187950000e-01, + 2.378415584560000e+00, + -4.349030494690000e+00, + -6.001322746280000e+00, + -5.655510902400000e+00, + -2.651705026630000e+00, + -3.491310358050000e+00, + -2.760925531390000e+00, + -1.793082714080000e+00, + -1.028615713120000e+00, + -2.955865144730000e+00, + 2.535248041150000e+00, + 4.956204891200000e+00, + -5.241547822950000e-01, + -2.450938224790000e-01, + -3.556518852710000e-01, + -4.650295972820000e-01, + -3.261776566510000e-01, + -4.980397969480000e-02, + -1.934877753260000e+00, + -1.278954505920000e+00, + 5.099395513530000e-01, + 2.461626529690000e+00, + 2.759346365930000e-01, + 6.751506328580000e-01, + -4.121984243390000e-01, + -1.403203487400000e+00, + -7.900566458700000e-01, + 2.932549476620000e+00, + 6.039121150970000e-01, + -3.445744812490000e-01, + -1.030244708060000e+00, + 1.035324454310000e+00, + -3.198185443880000e+00, + -7.976837754250000e-01, + 3.574016809460000e+00, + -3.358675837520000e-01, + -1.203871965410000e+00, + -6.372228264810000e-01, + -5.840017199520000e-01, + -1.553701281550000e+00, + -9.428980350490000e-01, + 1.270129442210000e+00, + -5.591356158260000e-01, + 9.466958642010000e-01, + 5.879026055340000e-01, + -1.019787073140000e+00, + -2.718010902400000e+00, + -2.397883653640000e+00, + -4.157893061640000e-01, + -6.715409159660000e-01, + -3.012405931950000e-01, + 4.184854030610000e+00, + 3.918848276140000e+00, + 8.745249509810000e-01, + 1.716873884200000e+00, + -1.628049492840000e+00, + 2.785106182100000e+00, + -1.649017214780000e+00, + 5.597618103030000e+00, + 3.914113640790000e-01, + 9.244551062580000e-01, + -3.555316209790000e+00, + -9.277066588400000e-01, + 4.895713031290000e-01, + 3.454220891000000e-01, + 3.644439220430000e+00, + 1.246720433240000e+00, + -8.182211518290000e-01, + -9.638540148740000e-01, + -2.911291122440000e+00, + -3.585833609100000e-01, + 5.232377648350000e-01, + 1.522395133970000e+00, + -1.679963588710000e+00, + 4.098517298700000e-01, + 4.785035848620000e-01, + -5.142341613770000e+00, + -1.434137463570000e+00, + 2.072836756710000e-01, + -6.257513165470000e-01, + 1.383210122590000e-01, + -4.342896938320000e+00, + 1.461224079130000e+00, + -3.420300483700000e+00, + 4.162773609160000e+00, + 1.654219269750000e+00, + -5.342880487440000e-01, + 2.765589237210000e+00, + 6.935660839080000e-01, + -4.051603972910000e-01, + -1.363075375560000e+00, + -6.131390929220000e-01, + -3.295359015460000e-01, + -1.160096004610000e-01, + -7.030411362650000e-01, + -3.386996686460000e-01, + -4.413448870180000e-01, + -2.086719036100000e+00, + -1.084277272220000e+00, + 1.791356503960000e-01, + 2.881174087520000e+00, + 2.353605479000000e-01, + 3.809535801410000e-01, + -6.733658909800000e-01, + -1.364275097850000e+00, + -8.546608686450000e-01, + 2.508006811140000e+00, + 7.039681673050000e-01, + -9.459356963630000e-02, + -1.186042785640000e+00, + 1.307784080510000e+00, + -3.260737419130000e+00, + -7.459585070610000e-01, + 3.819846868520000e+00, + -2.207431495190000e-01, + -3.317397534850000e-01, + 6.783881783490000e-01, + -7.659348845480000e-01, + -4.108263254170000e-01, + -7.808013558390000e-01, + 2.785748004910000e+00, + -6.977500319480000e-01, + 1.589538753030000e-01, + 1.048135042190000e+00, + -5.460959076880000e-01, + -2.960023880000000e+00, + -2.168374538420000e+00, + 3.184099197390000e-01, + 4.500934481620000e-01, + -4.061559736730000e-01, + 4.341823577880000e+00, + 5.368133068080000e+00, + 2.050930738450000e+00, + 1.333750009540000e+00, + -1.098380804060000e+00, + 1.788697957990000e+00, + -1.125309705730000e+00, + 4.214444637300000e+00, + 1.416505932810000e+00, + 1.230404257770000e+00, + -1.510693788530000e+00, + -2.416921377180000e+00, + -7.947416976089999e-03, + 4.185114800930000e-01, + 2.910034656520000e+00, + 1.667783617970000e+00, + -6.905201673510000e-01, + -9.379296898840001e-01, + -1.637279987340000e+00, + -8.861154317860001e-01, + 3.139097392560000e-01, + 9.116093516350000e-01, + -2.323281578720000e-02, + 8.670141100880000e-01, + -2.349999397990000e-01, + -5.050255775450000e+00, + -1.686910748480000e+00, + 1.136308386920000e-01, + -3.400430977340000e-01, + -1.061087772250000e-01, + -4.280315876010000e+00, + 1.464620590210000e+00, + -2.395404577260000e+00, + 5.045641422270000e+00, + 4.277897357940000e+00, + -3.201496601100000e+00, + 1.706501483920000e+00, + -1.595199853180000e-01, + -1.093647718430000e+00, + -1.095500588420000e+00, + -6.121076941490000e-01, + 2.708313800390000e-02, + 3.191858828070000e-01, + 5.390246510509999e-01, + 4.520978033540000e-02, + -4.389159083370000e-01, + -5.654117465020000e-01, + -5.782863616940000e+00, + 7.597646713260000e-01, + 6.780356407170000e+00, + -3.761548995970000e+00, + 3.336136341090000e+00, + -3.263327598570000e+00, + -2.480437994000000e+00, + -3.908879280090000e+00, + 4.611570835110000e+00, + -1.776111364360000e+00, + 7.403572082520000e+00, + 4.983015537260000e+00, + -6.056103229520000e+00, + -1.855458974840000e+00, + 9.578552246090000e+00, + -7.275374889370000e+00, + -1.426134854560000e-01, + 4.870399534700000e-01, + 2.160356491800000e-01, + -2.032033205030000e-01, + -1.554249286650000e+00, + -5.714239120480000e+00, + 6.411228179930000e+00, + 1.016687870030000e+00, + -3.824131727220000e+00, + 3.311109542850000e+00, + -2.627957820890000e+00, + 4.712400436400000e+00, + -2.069817781450000e+00, + -1.278874516490000e+00, + -4.684642314910000e+00, + 1.130645370480000e+01, + 7.549044132230000e+00, + -8.614911079410000e+00, + 7.664889335630000e+00, + -3.326273441310000e+00, + -3.608085393910000e+00, + 3.137256622310000e+00, + -3.780339360240000e-01, + 2.832807064060000e+00, + 9.801343083380000e-01, + -2.112893342970000e+00, + -2.226781547070000e-01, + -2.561242342000000e+00, + 7.934516668320001e-02, + 3.411346673970000e+00, + -2.703467845920000e+00, + 3.495417833330000e+00, + 6.028262972830000e-01, + 5.736666679380000e+00, + -6.198371410370000e+00, + -1.106973662970000e-01, + 1.431819647550000e-01, + -5.027578353880000e+00, + -6.653325557710000e+00, + 6.226655006410000e+00, + -1.170584797860000e+00, + -1.023457288740000e+00, + -4.763089656830000e+00, + 2.918860197070000e+00, + -3.932709693910000e+00, + 1.004427528380000e+01, + -3.678313493730000e+00, + -5.635434627530000e+00, + 8.743784904480000e+00, + -5.270760536190000e+00, + -6.930756568910000e+00, + 1.110997274520000e-01, + 6.971216678620000e+00, + -3.144416809080000e+00, + -2.980340003970000e+00, + -6.403234481810000e+00, + 7.052338600160000e+00, + 1.709475368260000e-01, + 5.720855593680000e-01, + 1.284040510650000e-02, + 1.208413764830000e-01, + -1.174419652670000e-03, + -8.237897157670000e-01, + -5.491515159610000e+00, + 8.554612994190000e-01, + 6.779209613800000e+00, + -4.043417453770000e+00, + 3.392135381700000e+00, + -3.324872255330000e+00, + -2.264988183980000e+00, + -3.847716808320000e+00, + 4.440775871280000e+00, + -1.243622899060000e+00, + 6.787259101870000e+00, + 5.218541622160000e+00, + -5.803471565250000e+00, + -1.906096816060000e+00, + 9.773097038270000e+00, + -6.675142765050000e+00, + 2.609541416170000e-01, + -3.850311338900000e-01, + 3.227957487110000e-01, + -4.890741705890000e-01, + -1.331435203550000e+00, + -6.109670639040000e+00, + 6.334389686580000e+00, + 1.174894452100000e+00, + -3.484052419660000e+00, + 3.582881450650000e+00, + -3.220536947250000e+00, + 5.905017852780000e+00, + -1.298131942750000e+00, + -1.204497098920000e+00, + -3.784826040270000e+00, + 1.118037891390000e+01, + 8.176372528080000e+00, + -7.829354286190000e+00, + 7.142507553100000e+00, + -4.802828311920000e+00, + -4.291249752040000e+00, + 1.340647935870000e+00, + -7.432717084879999e-01, + 3.948401451110000e+00, + 6.336165070530000e-01, + -2.149520874020000e+00, + -5.687399506570000e-01, + -3.669792890550000e+00, + 1.117249131200000e+00, + 4.573241233830000e+00, + -2.636536121370000e+00, + 3.856037139890000e+00, + 2.447410821910000e-01, + 4.894441604610000e+00, + -6.174643039700000e+00, + 6.661364436150000e-02, + 4.967694282530000e-01, + -5.650798320770000e+00, + -6.574675083160000e+00, + 7.440336227420000e+00, + 8.540849685670000e-01, + -8.010521531110000e-01, + -4.293945312500000e+00, + 3.748062372210000e+00, + -2.877228975300000e+00, + 9.623819351200000e+00, + -3.038758993150000e+00, + -6.629589080810000e+00, + 8.569720268250000e+00, + -6.385175228120000e+00, + -8.262619972230000e+00, + -1.731805801390000e+00, + 6.710854053500000e+00, + -3.910486459730000e+00, + -3.854436397550000e+00, + -6.489357471470000e+00, + 6.572824001310000e+00, + 1.398367881770000e+00, + 1.180216073990000e+00, + 1.911369562150000e+00, + 1.376650929450000e+00, + 1.463715553280000e+00, + -1.678454995160000e+00, + 6.010989189150000e+00, + 4.870951652530000e+00, + -9.331305027010000e-01, + -3.247421026230000e+00, + 2.216091006990000e-01, + 2.589870214460000e+00, + -4.029942989350000e+00, + 4.935396194460000e+00, + 1.915561705830000e-01, + 6.709074020390000e+00, + -1.339561581610000e+00, + -3.141129910950000e-01, + -5.312264442440000e+00, + -5.891817569730000e+00, + -2.458987474440000e+00, + -4.631185054780000e+00, + 1.222887754440000e+00, + 1.878198504450000e+00, + 1.389420151710000e+00, + 1.628746390340000e+00, + -1.600315332410000e+00, + 6.188521862030000e+00, + 3.392291665080000e-01, + 5.049701213840000e+00, + -3.416353225710000e+00, + 5.856909155850000e-01, + 3.106116294860000e+00, + -2.093316167590000e-01, + -6.565117836000000e+00, + 7.385064125060000e+00, + -2.858545064930000e+00, + -2.310954332350000e+00, + 1.204184740780000e-01, + -7.087458133700000e+00, + -8.116787076000000e-01, + -2.366186618800000e+00, + 2.561207294460000e+00, + 4.882851123810000e+00, + -2.444126755000000e-01, + 1.232424750920000e-01, + 5.269261360170000e+00, + 6.828993797300000e+00, + -2.127449274060000e+00, + -4.005714416500000e+00, + 4.171089172360000e+00, + -9.606478810310000e-01, + 7.475009441380000e+00, + 1.072605609890000e+00, + 1.386002659800000e+00, + -2.059310436250000e+00, + 5.790926933290000e+00, + 1.340082407000000e+00, + 1.322424888610000e+00, + -6.942328453060000e+00, + -4.852463245390000e+00, + -2.783885478970000e+00, + 1.761157989500000e+00, + -5.200097084050000e+00, + 5.412496089940000e+00, + -6.620361804960000e-01, + 2.276622295380000e+00, + -3.723467588420000e+00, + -6.183251380920000e+00, + -5.251311302190000e+00, + -3.530659675600000e+00, + -4.787615299220000e+00, + -2.962911605830000e+00, + -2.794921875000000e+00, + -1.624623417850000e+00, + -3.733178377150000e+00, + 1.557709693910000e+00, + 4.833095550540000e+00, + -1.145785212520000e+00, + 1.354129910470000e+00, + 9.769634008410000e-01, + 1.376455307010000e+00, + 1.327061772350000e+00, + 1.138225913050000e+00, + -1.668636679650000e+00, + 6.207866668700000e+00, + 4.878393173220000e+00, + -4.135104715820000e-01, + -3.716163873670000e+00, + 1.932601481680000e-01, + 2.498509883880000e+00, + -3.232648611070000e+00, + 5.277795791630000e+00, + 3.824320435520000e-01, + 6.351525783540000e+00, + -1.511505484580000e+00, + -8.512802124020000e-01, + -5.316518306730000e+00, + -5.569726467130000e+00, + -2.465130329130000e+00, + -4.521955966950000e+00, + 1.327183961870000e+00, + 1.158235907550000e+00, + 2.171993494030000e+00, + 1.316826462750000e+00, + -1.988388299940000e+00, + 5.102108478550000e+00, + -8.712969422340000e-01, + 4.245024204250000e+00, + -2.945514678960000e+00, + -4.532586336140000e-01, + 3.855080127720000e+00, + -8.060522675510000e-01, + -7.130090713500000e+00, + 7.762744903560000e+00, + -5.487802982330000e+00, + -2.037578344350000e+00, + -4.829503893850000e-01, + -5.853213310240000e+00, + -6.669182181360001e-01, + -2.172182559970000e+00, + 1.617685317990000e+00, + 5.106770038600000e+00, + -1.499940752980000e+00, + 5.672802925110000e-01, + 5.511029720310000e+00, + 5.943040847780000e+00, + -2.600577592850000e+00, + -5.660862445830000e+00, + 6.106925010680000e+00, + 5.500097870830000e-01, + 7.657487869260000e+00, + -9.881115555759999e-01, + 6.685745716090000e-01, + -1.338688015940000e+00, + 5.604080200200000e+00, + 1.485181093220000e+00, + 2.379567623140000e+00, + -5.932941436770000e+00, + -5.151060581210000e+00, + -1.925374507900000e+00, + 7.507673501970000e-01, + -5.527315139770000e+00, + 6.581533432010000e+00, + 9.358459115030000e-01, + 1.448020815850000e+00, + -4.224235057830000e+00, + -5.341737747190000e+00, + -4.993419170380000e+00, + -3.516350507740000e+00, + -4.392654895780000e+00, + -2.885127305980000e+00, + -1.103616595270000e+00, + -1.434276342390000e+00, + -3.361441612240000e+00, + 3.041326522830000e+00, + 6.710129737850000e+00, + -7.054704427720000e-01, + -3.447605669500000e-01, + -3.677073419090000e-01, + -5.123685672880000e-02, + -4.281836450100000e-01, + 4.154699146750000e-01, + -1.866537570950000e+00, + -1.185305833820000e+00, + 4.013998806480000e-01, + 2.539499521260000e+00, + 2.088093459610000e-01, + 6.952040791510000e-01, + -6.493452787400000e-01, + -1.399604439740000e+00, + -2.475939095020000e-01, + 2.621736526490000e+00, + 4.931222796440000e-01, + -3.328150212760000e-01, + -1.231932878490000e+00, + 1.147752642630000e+00, + -3.299161434170000e+00, + -8.995683789250000e-01, + 3.512621641160000e+00, + -3.321159780030000e-01, + -4.982092976570000e-01, + -2.148007750510000e-01, + -2.065690755840000e-01, + -1.243275046350000e+00, + -8.721953630449999e-02, + 3.487464904790000e+00, + -4.038174152370000e-01, + -1.831848174330000e-01, + 1.135862588880000e+00, + -1.190515279770000e+00, + -2.929549217220000e+00, + -3.445396900180000e+00, + 4.239453673360000e-01, + 1.208871245380000e+00, + -9.967395663260000e-01, + 3.382688045500000e+00, + 4.439770698550000e+00, + 2.313607215880000e+00, + 5.113707780840000e-01, + -1.161926746370000e+00, + 1.379922032360000e+00, + -1.854357123370000e+00, + 5.815986633300000e+00, + 8.808426260950000e-01, + 9.769521653650000e-02, + -9.254885315900000e-01, + -2.349935054780000e+00, + -2.540238797660000e-01, + -3.258554637430000e-01, + 1.214420199390000e+00, + 5.779678821560000e-01, + -6.912430524830000e-01, + -8.686942458150000e-01, + -2.432012319560000e+00, + -8.281293511390000e-01, + -3.428660929200000e-01, + 8.670434355740000e-01, + -2.919523417950000e-01, + -3.040205836300000e-01, + -1.658356562260000e-02, + -3.533850908280000e+00, + -1.614699125290000e+00, + 5.461338758470000e-01, + -5.289004445080000e-01, + -2.511679530140000e-01, + -3.784165859220000e+00, + 2.518381476400000e-01, + -1.851985812190000e+00, + 4.902355670930000e+00, + 3.040257453920000e+00, + -2.813804388050000e+00, + 2.788558006290000e+00, + 6.168152093890000e-01, + -1.920386701820000e-01, + -1.524753093720000e+00, + -1.319657683370000e+00, + -3.725951612000000e-01, + 3.430335819720000e-01, + -2.917660176750000e-01, + -1.891277134420000e-01, + -2.059036344290000e-01, + -2.230615854260000e+00, + -1.126002669330000e+00, + 5.019167661670000e-01, + 2.829283237460000e+00, + 2.028537243600000e-01, + 5.247466564180000e-01, + -6.866036653520000e-01, + -1.257427811620000e+00, + -6.880618929860000e-01, + 2.795324325560000e+00, + 7.111464142800000e-01, + 2.466580420730000e-01, + -1.096631050110000e+00, + 9.580202102660000e-01, + -2.971350908280000e+00, + -9.987268447880000e-01, + 3.548895597460000e+00, + -7.096969485280000e-01, + -4.362752139570000e-01, + -1.942802369590000e-01, + -1.428711563350000e-01, + -1.345535755160000e+00, + -5.495243072510000e-01, + 1.503973364830000e+00, + -9.411848783490000e-01, + 4.881472885610000e-01, + 2.906222820280000e+00, + -6.699928045270001e-01, + -3.153329849240000e+00, + -2.234639883040000e+00, + 2.936796545980000e-01, + 9.412500858310000e-01, + -8.657009005550000e-01, + 4.026348590850000e+00, + 4.969351291660000e+00, + 2.573128938670000e+00, + 4.394933879380000e-01, + -1.622093915940000e+00, + 2.036127805710000e+00, + -1.551451087000000e+00, + 4.420098781590000e+00, + -6.161248683930000e-01, + 3.235446512700000e-01, + -2.005970716480000e+00, + -1.626063585280000e+00, + 3.497929275040000e-01, + 7.872750163080000e-01, + 2.329873323440000e+00, + 4.033611714840000e-01, + -5.436415672300000e-01, + -1.040552735330000e+00, + -1.589472770690000e+00, + -1.864172071220000e-01, + -6.763686537740000e-01, + 1.395563006400000e+00, + -6.815813183780000e-01, + -5.788660049440000e-02, + -1.905360519890000e-01, + -3.487725734710000e+00, + -1.357320070270000e+00, + 9.615269303320000e-01, + -1.052789449690000e+00, + 7.260454893110000e-01, + -3.135951757430000e+00, + 2.881235837940000e+00, + -3.889464616780000e+00, + 4.685868740080000e+00, + 3.796414375310000e+00, + -1.713482499120000e+00, + 2.250885963440000e+00, + 2.534672021870000e-01, + -4.496310949330000e-01, + -1.042805910110000e+00, + -7.549024224280000e-01, + -2.645144611600000e-02, + 7.629445195200001e-02, + -5.895910039540000e-02, + 1.389820687470000e-02, + -2.389272153380000e-01, + -7.053343057630000e-01, + -5.682770729060000e+00, + 8.199481964110000e-01, + 6.905301094060000e+00, + -3.853905200960000e+00, + 3.650342941280000e+00, + -3.189813852310000e+00, + -2.243589162830000e+00, + -3.616631031040000e+00, + 4.565468788150000e+00, + -1.632501363750000e+00, + 7.379170417790000e+00, + 5.051318645480000e+00, + -5.764662742610000e+00, + -1.786077499390000e+00, + 9.662400245670000e+00, + -7.163274765010000e+00, + -6.102666258810000e-01, + -4.229457378390000e-01, + 4.047956764700000e-01, + 1.309601515530000e-01, + -2.445832788940000e-01, + -5.599825382230000e+00, + 7.111010551450000e+00, + 1.057672023770000e+00, + -4.052866935730000e+00, + 3.313106536870000e+00, + -2.471182107930000e+00, + 4.383344173430000e+00, + -2.552158355710000e+00, + -1.110276579860000e+00, + -4.422003269200000e+00, + 1.136031150820000e+01, + 7.267414093020000e+00, + -7.891164302830000e+00, + 6.798501491550000e+00, + -3.469908952710000e+00, + -4.721383094790000e+00, + 1.854758620260000e+00, + -1.156975030900000e+00, + 4.457180976870000e+00, + -1.305349618200000e-01, + -2.723561763760000e+00, + -4.541370570660000e-01, + -2.663770914080000e+00, + 9.880481958390001e-01, + 3.948236703870000e+00, + -2.079700708390000e+00, + 3.636679172520000e+00, + -4.997031763200000e-02, + 4.705502033230000e+00, + -7.089898109440000e+00, + 1.337222605940000e-01, + 5.559417605400000e-01, + -5.127324104310000e+00, + -7.547418117520000e+00, + 8.340125083920000e+00, + 1.890838444230000e-01, + -1.428914308550000e+00, + -5.179544448850000e+00, + 3.119691371920000e+00, + -1.914716005330000e+00, + 1.076659679410000e+01, + -3.236913681030000e+00, + -6.513122558590000e+00, + 1.005092525480000e+01, + -5.557359695430000e+00, + -8.068646430970000e+00, + -5.395013689990000e-01, + 6.400393486020000e+00, + -2.442996740340000e+00, + -3.076330423360000e+00, + -5.975252628330000e+00, + 5.858761310580000e+00, + 6.938376929610000e-03, + 2.347407191990000e-01, + 5.667077004910000e-02, + -2.494776546960000e-01, + 5.177615284920000e-01, + -6.498665213580000e-01, + -5.657973289490000e+00, + 9.127306938170000e-01, + 6.655197620390000e+00, + -3.983462333680000e+00, + 3.238046646120000e+00, + -3.069536685940000e+00, + -2.272150754930000e+00, + -3.733820438390000e+00, + 4.163304805760000e+00, + -1.529687047000000e+00, + 7.642948627470000e+00, + 5.111680984500000e+00, + -5.795614719390000e+00, + -2.102359056470000e+00, + 9.807090759279999e+00, + -7.036058425900000e+00, + -6.033330783250000e-02, + -8.080025315279999e-01, + 4.343336820600000e-01, + -2.043704688550000e-01, + -1.396091461180000e+00, + -5.726307868960000e+00, + 7.272318840030000e+00, + 1.054058313370000e+00, + -2.576670408250000e+00, + 3.825486183170000e+00, + -2.963232278820000e+00, + 4.494815349580000e+00, + -1.967041015620000e+00, + -2.245769739150000e+00, + -4.753468513490000e+00, + 1.127005481720000e+01, + 7.695378780360000e+00, + -7.869159698490000e+00, + 7.039171695710000e+00, + -3.332267284390000e+00, + -3.473995685580000e+00, + 7.877978682520000e-01, + -4.710199311380000e-02, + 3.609249353410000e+00, + 4.706710278990000e-01, + -1.820546388630000e+00, + -4.341213405130000e-01, + -2.024243116380000e+00, + 1.004536628720000e+00, + 3.587744235990000e+00, + -2.256782054900000e+00, + 4.047607898710000e+00, + -2.459328062830000e-02, + 5.483972072600000e+00, + -5.915340900420000e+00, + 2.145384252070000e-01, + 9.452064633370000e-01, + -5.180383682250000e+00, + -7.512130260470000e+00, + 8.379772186280000e+00, + 1.476723700760000e-01, + -3.033016622070000e-01, + -5.910176754000000e+00, + 2.825035572050000e+00, + -3.145639419560000e+00, + 9.536665916440001e+00, + -3.272063016890000e+00, + -5.615506649020000e+00, + 9.426159858700000e+00, + -6.048388957980000e+00, + -8.537419319150001e+00, + -3.616333901880000e-01, + 5.902975082400000e+00, + -4.308693885800000e+00, + -4.194511413570000e+00, + -6.171068668370000e+00, + 4.162508964540000e+00, + 1.617591977120000e+00, + 1.413707256320000e+00, + 1.471641182900000e+00, + 1.702967286110000e+00, + 1.052603602410000e+00, + -1.639590263370000e+00, + 6.286904811860000e+00, + 4.992587089540000e+00, + -7.039757967000000e-01, + -3.327549457550000e+00, + 8.853611350060001e-02, + 2.419847249980000e+00, + -3.582870483400000e+00, + 4.951272487640000e+00, + 2.562622129920000e-01, + 6.512614727020000e+00, + -1.337154150010000e+00, + -5.031056404110000e-01, + -5.198932647710000e+00, + -5.695119857790000e+00, + -2.566199541090000e+00, + -4.608582973480000e+00, + 1.109361290930000e+00, + 1.523494482040000e+00, + 1.810928702350000e+00, + 1.154407858850000e+00, + -1.218498587610000e+00, + 6.097200393680000e+00, + -1.336520552640000e+00, + 6.248063087460000e+00, + -2.601679801940000e+00, + -8.779625594620000e-02, + 3.491956472400000e+00, + -6.336271166800000e-01, + -9.009885787960000e+00, + 7.352910518650000e+00, + -3.638840675350000e+00, + -1.210996985440000e+00, + -1.312689900400000e+00, + -5.871330738070000e+00, + -8.796795606609999e-01, + -2.132644653320000e+00, + 1.593696236610000e+00, + 6.068025112150000e+00, + -1.214969038960000e+00, + 8.278276324270000e-01, + 5.646751403810000e+00, + 5.205592155460000e+00, + -1.726475715640000e+00, + -4.709202766420000e+00, + 4.088371276860000e+00, + 2.441135942940000e-01, + 7.116670131680000e+00, + 6.927968561650000e-02, + 1.817691206930000e+00, + -1.196556806560000e+00, + 7.211922645570000e+00, + 1.013660669330000e+00, + 1.081668496130000e+00, + -6.584153175350000e+00, + -5.963524341580000e+00, + -1.694393277170000e+00, + 1.453581333160000e+00, + -4.848852634430000e+00, + 5.137193202970000e+00, + 2.413229644300000e-01, + 1.580975532530000e+00, + -5.119826793670000e+00, + -5.541970729830000e+00, + -5.825183868410000e+00, + -3.894272565840000e+00, + -4.612103462220000e+00, + -3.776354312900000e+00, + -2.481582641600000e+00, + -9.362891912460000e-01, + -2.699354171750000e+00, + 2.040724277500000e+00, + 6.168828964230000e+00, + -5.335605740550000e-01, + 1.365956664090000e+00, + 9.671517014500000e-01, + 1.394865036010000e+00, + 1.698036789890000e+00, + 1.511348485950000e+00, + -1.730156183240000e+00, + 5.969544887540000e+00, + 4.464603900910000e+00, + -7.592442035680000e-01, + -3.324355125430000e+00, + 2.788878679280000e-01, + 2.028218984600000e+00, + -3.552041292190000e+00, + 5.149144649510000e+00, + 4.034651517870000e-01, + 6.455310344700000e+00, + -1.474080562590000e+00, + -8.435327410700000e-01, + -4.826585292820000e+00, + -5.679234504700000e+00, + -2.072342157360000e+00, + -4.609957695010000e+00, + 1.292433977130000e+00, + 1.476044178010000e+00, + 1.748075604440000e+00, + 1.061084389690000e+00, + -2.064177989960000e+00, + 5.297461986540000e+00, + -1.482457518580000e+00, + 5.890788078310000e+00, + -2.750239372250000e+00, + 1.318752914670000e-01, + 3.271931648250000e+00, + -1.792917996640000e-01, + -7.194034576420000e+00, + 8.090755462650000e+00, + -3.196502923970000e+00, + -1.402836918830000e+00, + -1.196241974830000e+00, + -5.588606834410000e+00, + -1.473312616350000e+00, + -1.829014897350000e+00, + 1.071745514870000e+00, + 4.762061119080000e+00, + -1.012724041940000e+00, + 9.369541406630000e-01, + 5.467832565310000e+00, + 5.715037345890000e+00, + -2.604912042620000e+00, + -4.008555412290000e+00, + 4.046830177310000e+00, + 8.733872175220000e-01, + 6.965843200680000e+00, + 1.014891266820000e+00, + 1.452303171160000e+00, + -2.067182779310000e+00, + 6.703312397000000e+00, + 1.530182003970000e+00, + 1.460334420200000e+00, + -6.959710121150000e+00, + -5.500259399410000e+00, + -1.481184720990000e+00, + 1.137603402140000e+00, + -5.042943954470000e+00, + 5.288861274720000e+00, + -4.775226712230000e-01, + 2.403361320500000e+00, + -3.870199680330000e+00, + -5.855764865880000e+00, + -5.546986579900000e+00, + -3.132779836650000e+00, + -4.180136680600000e+00, + -3.283105373380000e+00, + -2.528485774990000e+00, + -1.023514628410000e+00, + -4.325169563290000e+00, + 4.418719291690000e+00, + 5.918957233430000e+00, + -1.843078732490000e+00, + -2.154016643760000e-01, + -2.965666949750000e-01, + -4.433002769950000e-01, + -4.977878928180000e-01, + -4.834570884700000e-01, + -2.005326986310000e+00, + -1.368348836900000e+00, + 5.506268739700000e-01, + 2.438020706180000e+00, + 4.689537584780000e-01, + 5.079427957530001e-01, + -7.109680771830000e-01, + -1.361413359640000e+00, + -4.631115794180000e-01, + 2.677436828610000e+00, + 6.530697345730000e-01, + 9.738864004610000e-02, + -1.365572094920000e+00, + 1.028068184850000e+00, + -3.041713714600000e+00, + -9.619660377500000e-01, + 3.327109575270000e+00, + -1.786884665490000e-01, + -1.051365613940000e+00, + 4.202294349670000e-01, + -3.324188292030000e-02, + -1.467311501500000e+00, + -6.118974685670000e-01, + 1.783259153370000e+00, + -1.310671687130000e+00, + -3.996826708320000e-01, + 7.404617965220001e-02, + -1.405867218970000e+00, + -3.339896202090000e+00, + -1.048315167430000e+00, + 1.627241671090000e-01, + 5.505661368370000e-01, + -1.186352610590000e+00, + 3.005915403370000e+00, + 3.377667903900000e+00, + 1.922045707700000e+00, + 5.083487033840000e-01, + -2.468149900440000e+00, + 7.427186965940000e-01, + -1.999372959140000e+00, + 5.428197860720000e+00, + 1.676247827710000e-02, + 3.994690626860000e-02, + -1.639557123180000e+00, + -2.052856922150000e+00, + 5.633840560910000e-01, + -9.889223575590000e-01, + 1.780308127400000e+00, + 9.358440637590000e-01, + -3.178061842920000e-01, + -1.727784633640000e+00, + -1.790240764620000e+00, + -6.705021262170000e-01, + -1.402732014660000e+00, + 1.476906538010000e+00, + -3.664940893650000e-01, + -5.076780915260000e-01, + -4.322743415830000e-01, + -5.284945487980000e+00, + -1.265275716780000e+00, + -3.308137059210000e-01, + -2.005342692140000e-01, + 1.105841770770000e-01, + -3.322271823880000e+00, + 1.134123206140000e+00, + -1.815609216690000e+00, + 4.871387481690000e+00, + 3.617301225660000e+00, + -2.738814830780000e+00, + 2.708261251450000e+00, + 8.254938721660000e-01, + -1.066897511480000e-01, + -1.478766441350000e+00, + -1.465075254440000e+00, + -4.500083327290000e-01, + 4.795087128880000e-02, + -3.227435946460000e-01, + -7.724086642270001e-01, + -5.391881465910000e-01, + -1.824303269390000e+00, + -1.245390534400000e+00, + 6.308591365810000e-01, + 2.666686773300000e+00, + 4.065143764020000e-01, + 4.455662071700000e-01, + -5.470507144930000e-01, + -1.249104380610000e+00, + -7.297679781910000e-01, + 2.666304826740000e+00, + 7.011836171150000e-01, + -7.096169982110000e-03, + -1.038551807400000e+00, + 1.578822255130000e+00, + -3.284383296970000e+00, + -7.543311119080000e-01, + 3.419339895250000e+00, + -1.967237740760000e-01, + -3.925272822380000e-01, + 4.547974467280000e-01, + -4.151679575440000e-01, + -2.069980621340000e+00, + -8.447304368020001e-02, + 2.268067598340000e+00, + -3.145722448830000e-01, + -5.814346075060000e-01, + 2.754569530490000e+00, + -1.186846613880000e+00, + -2.897830963130000e+00, + -2.123315572740000e+00, + 5.543300509450000e-01, + 5.004630088810000e-01, + -2.049289464950000e+00, + 3.634509325030000e+00, + 4.739322662350000e+00, + 3.116232633590000e+00, + 1.839243769650000e+00, + -6.515330076219999e-01, + 2.363869905470000e+00, + -1.244952321050000e+00, + 3.351602077480000e+00, + 4.002734646200000e-02, + -3.579148948190000e-01, + -1.973699927330000e+00, + -1.452083468440000e+00, + 7.435478568080000e-01, + -3.999819457530000e-01, + 1.954038500790000e+00, + 1.107190370560000e+00, + -1.963143497710000e-01, + -5.738246440890000e-01, + -1.538128137590000e+00, + -2.764115333560000e-01, + -2.735851109030000e-01, + 1.077150702480000e+00, + -3.835536241530000e-01, + -1.489754319190000e-01, + -5.969579815860000e-01, + -4.815539836880000e+00, + -1.497560024260000e+00, + 4.668760895730000e-01, + -8.197045922280000e-01, + -2.483172118660000e-01, + -4.179615974430000e+00, + 8.739315867420000e-01, + -2.153561830520000e+00, + 4.018761634830000e+00, + 3.546996355060000e+00, + -2.687393188480000e+00, + 3.102836132050000e+00, + 1.300125360490000e+00, + -3.433030247690000e-01, + -1.246991634370000e+00, + -1.467399001120000e+00, + 2.071259543300000e-03, + 1.884876787660000e-01, + 1.830592006440000e-01, + -1.683959215880000e-01, + 6.464322656389999e-02, + -6.407015919690000e-01, + -5.809376239780000e+00, + 6.411064863200000e-01, + 6.225523948670000e+00, + -4.145468711850000e+00, + 3.448559522630000e+00, + -3.212163209920000e+00, + -2.315997838970000e+00, + -3.740559816360000e+00, + 4.845261096950000e+00, + -1.558598279950000e+00, + 7.229535579680000e+00, + 5.017779827120000e+00, + -5.643971920010000e+00, + -2.243241310120000e+00, + 9.647214889530000e+00, + -7.120966911320000e+00, + -4.209306240080000e-01, + 7.358040809630000e-01, + -4.921584427360000e-01, + -4.897281229500000e-01, + -9.669301509860000e-01, + -6.078103065490000e+00, + 6.591311931610000e+00, + 2.286397457120000e+00, + -3.682235002520000e+00, + 3.667896986010000e+00, + -1.873731255530000e+00, + 3.971832752230000e+00, + -2.091785907750000e+00, + -8.177188634870000e-01, + -3.277254104610000e+00, + 1.081373214720000e+01, + 8.366194725040000e+00, + -8.947875022890001e+00, + 6.121096611020000e+00, + -4.861124038700000e+00, + -4.164604187010000e+00, + 1.301409482960000e+00, + -1.754938997330000e-02, + 4.474009513850000e+00, + 3.910331130030000e-01, + -2.328010082240000e+00, + -9.884092211720000e-01, + -2.408890008930000e+00, + 5.004975199700000e-01, + 3.879855871200000e+00, + -1.092954754830000e+00, + 5.481665134430000e+00, + -4.601770639420000e-01, + 5.464546203610000e+00, + -7.049778938290000e+00, + -7.949725538490000e-02, + 1.204321265220000e+00, + -5.240283966060000e+00, + -7.393322467800000e+00, + 8.315484046940000e+00, + 4.525630772110000e-01, + -8.882695436480000e-01, + -5.341927051540000e+00, + 3.526010990140000e+00, + -2.132637977600000e+00, + 1.044171237950000e+01, + -3.222276210780000e+00, + -5.899851799010000e+00, + 9.227946281430000e+00, + -5.809515476230000e+00, + -8.249932289120000e+00, + -7.929880172010000e-03, + 6.681246757510000e+00, + -2.426259517670000e+00, + -2.775266170500000e+00, + -6.125438213350000e+00, + 5.071162223820000e+00, + 6.930129230020000e-02, + 6.101034283640000e-01, + -6.990709900860000e-01, + -9.012939780949999e-02, + 3.259701430800000e-01, + -4.747963845730000e-01, + -5.117682456970000e+00, + 7.714239358900000e-01, + 6.807262420650000e+00, + -5.369958877560000e+00, + 3.637571096420000e+00, + -3.233275651930000e+00, + -2.094143629070000e+00, + -3.687725305560000e+00, + 4.463950157170000e+00, + -1.290420293810000e+00, + 8.029175758359999e+00, + 4.577681064610000e+00, + -5.982323646550000e+00, + -2.023829698560000e+00, + 9.619603157040000e+00, + -7.019315242770000e+00, + 4.470898211000000e-02, + -8.616356551649999e-02, + 9.857378900050000e-02, + 5.302392244340000e-01, + -1.128837823870000e+00, + -6.574741363530000e+00, + 6.694549083710000e+00, + 2.359247446060000e+00, + -3.895829439160000e+00, + 3.092323541640000e+00, + -3.701581239700000e+00, + 4.523057937620000e+00, + -2.152551651000000e+00, + -7.907387018199999e-01, + -3.844292402270000e+00, + 1.166671943660000e+01, + 8.391093254090000e+00, + -9.276266098020001e+00, + 7.208187103270000e+00, + -3.615247964860000e+00, + -3.423346996310000e+00, + 2.211244344710000e+00, + -9.202386736870000e-01, + 4.167311668400000e+00, + -3.062767684460000e-01, + -1.655412197110000e+00, + -7.813625335690000e-01, + -2.480548858640000e+00, + 5.744477510450000e-01, + 3.346270799640000e+00, + -1.118717908860000e+00, + 3.377277374270000e+00, + -4.338005185130000e-01, + 5.290240764620000e+00, + -5.742106437680000e+00, + -3.109552264210000e-01, + -2.978564426300000e-02, + -5.017384052280000e+00, + -7.066845417020000e+00, + 7.127415657040000e+00, + -1.977719925340000e-02, + -4.949769973750000e-01, + -5.630301475520000e+00, + 2.660066127780000e+00, + -2.239838361740000e+00, + 1.102175521850000e+01, + -3.120066404340000e+00, + -6.895865917210000e+00, + 1.004048156740000e+01, + -6.477692604060000e+00, + -8.134781837460000e+00, + -4.715003967290000e-01, + 7.079437255860000e+00, + -4.098746776580000e+00, + -3.299175024030000e+00, + -5.386726856230000e+00, + 6.378266334530000e+00, + 1.262902379040000e+00, + 1.536057591440000e+00, + 1.364117622380000e+00, + 1.447607755660000e+00, + 1.365522146220000e+00, + -1.613349914550000e+00, + 5.974211692810000e+00, + 5.162009239200000e+00, + -8.529129028320001e-01, + -3.190052986150000e+00, + 1.599987447260000e-01, + 2.508928060530000e+00, + -3.376247167590000e+00, + 5.171351909640000e+00, + 8.006848394870000e-02, + 6.716733932500000e+00, + -1.340666055680000e+00, + -8.236917257310000e-01, + -5.173138618470000e+00, + -5.823338031770000e+00, + -2.616113901140000e+00, + -4.552138328550000e+00, + 1.707820773120000e+00, + 1.565800070760000e+00, + 1.098296165470000e+00, + 1.391692519190000e+00, + -1.493755936620000e+00, + 5.734243869780000e+00, + 1.853271573780000e-01, + 6.066330432890000e+00, + -3.099763154980000e+00, + -1.300007998940000e-01, + 2.579680919650000e+00, + -1.284464836120000e+00, + -5.727522850040000e+00, + 9.173308372499999e+00, + -4.194053173070000e+00, + -1.570993065830000e+00, + -1.001381874080000e+00, + -5.846704483030000e+00, + 2.147862911220000e-01, + -2.157354593280000e+00, + 1.833227038380000e+00, + 4.694076538090000e+00, + -8.730053305630000e-01, + 7.009891271590000e-01, + 5.764766216280000e+00, + 5.976773738860000e+00, + -2.132211208340000e+00, + -3.416596174240000e+00, + 4.587426185610000e+00, + 8.997581005100000e-01, + 7.506490707400000e+00, + 8.680115938189999e-01, + 4.853907227520000e-02, + -1.185757637020000e+00, + 5.809685230260000e+00, + 1.538074851040000e+00, + 2.082793951030000e+00, + -5.536434650420000e+00, + -5.534604549410000e+00, + -2.568843126300000e+00, + 1.219624757770000e+00, + -6.232121944430000e+00, + 6.662621498110000e+00, + 5.263090729710000e-01, + 2.683966398240000e+00, + -3.184790849690000e+00, + -6.701363086700000e+00, + -3.779713869090000e+00, + -2.843116998670000e+00, + -3.990607976910000e+00, + -2.245930910110000e+00, + -1.268036246300000e+00, + -9.556256532670000e-01, + -3.684256076810000e+00, + 2.028775930400000e+00, + 5.701296806340000e+00, + -1.194790840150000e+00, + 1.410988569260000e+00, + 1.153752446170000e+00, + 1.246763587000000e+00, + 1.563021183010000e+00, + 6.963739991190000e-01, + -1.886909604070000e+00, + 5.968582153320000e+00, + 4.928677082060000e+00, + -7.051257491110000e-01, + -2.539144515990000e+00, + 8.176952600480000e-01, + 2.430041551590000e+00, + -3.055165767670000e+00, + 5.051917076110000e+00, + 7.348263636230000e-03, + 6.576636314390000e+00, + -1.522723913190000e+00, + -1.053374528880000e+00, + -5.043458938600000e+00, + -5.637883663180000e+00, + -2.381785154340000e+00, + -4.913173198700000e+00, + 1.237723350520000e+00, + 1.347387313840000e+00, + 1.483962297440000e+00, + 1.556581139560000e+00, + -1.656711220740000e+00, + 6.033363819120000e+00, + -1.783467292790000e+00, + 5.146923065190000e+00, + -3.099467754360000e+00, + -8.931904435160000e-01, + 2.963395357130000e+00, + -7.808813452720000e-01, + -6.442463397980000e+00, + 7.510374069210000e+00, + -3.247272014620000e+00, + -8.594862818720000e-01, + -6.548354625700000e-01, + -6.306843757630000e+00, + -1.265158951280000e-01, + -1.112822890280000e+00, + 2.079173088070000e+00, + 5.014539241790000e+00, + -1.206758618350000e+00, + 1.238903284070000e+00, + 4.958809852600000e+00, + 5.901745796200000e+00, + -1.576698541640000e+00, + -3.714171409610000e+00, + 4.556924343110000e+00, + 5.447382330890000e-01, + 6.761020660400000e+00, + 4.358738362790000e-01, + 1.030641555790000e+00, + -2.004224300380000e+00, + 5.867761611940000e+00, + 1.276206970210000e+00, + 1.871794819830000e+00, + -7.647919654850000e+00, + -5.028399467470000e+00, + -1.413238763810000e+00, + 1.413351535800000e+00, + -5.232871532440000e+00, + 6.897095680240000e+00, + -2.458227574830000e-01, + 2.331827640530000e+00, + -4.458717823030000e+00, + -5.358847618100000e+00, + -5.371907234190000e+00, + -3.236817598340000e+00, + -4.114000797270000e+00, + -4.140955448150000e+00, + -1.079351425170000e+00, + -9.754355549810000e-01, + -4.103809833530000e+00, + 2.454784154890000e+00, + 5.415640354160000e+00, + -9.578167200090000e-01, + -3.852143287660000e-01, + -2.660871446130000e-01, + -8.945567905900000e-02, + -4.488403797150000e-01, + -3.533879220490000e-01, + -1.911867856980000e+00, + -1.415118575100000e+00, + 4.769386649130000e-01, + 2.887380123140000e+00, + 4.272190928460000e-01, + 5.417714118960000e-01, + -6.708100438120000e-01, + -1.361654520030000e+00, + -3.886604309080000e-01, + 2.931094884870000e+00, + 4.885891675950000e-01, + 7.836642861370000e-02, + -1.135522365570000e+00, + 8.778790235520000e-01, + -2.952928066250000e+00, + -1.097167611120000e+00, + 3.566375255580000e+00, + -2.804300487040000e-01, + -4.064485803250000e-02, + -5.402601957320000e-01, + -1.696659326550000e-01, + -2.191304445270000e+00, + -6.421730518340000e-01, + 3.441861152650000e+00, + -9.178220033650000e-01, + 1.979014039040000e+00, + 9.981378912930000e-01, + -7.453688234090000e-02, + -2.336804628370000e+00, + -1.635201931000000e+00, + 7.231947183610000e-01, + 7.937281727790000e-01, + -8.260858058930000e-01, + 3.392409324650000e+00, + 4.151420116420000e+00, + 2.671560049060000e+00, + 1.840620934960000e-01, + -1.779289603230000e+00, + 1.425368785860000e+00, + -1.392718553540000e+00, + 4.443666458130000e+00, + 5.390233397480000e-01, + 1.179466128350000e+00, + -2.269903421400000e+00, + -1.870652914050000e+00, + 6.502649188039999e-01, + -1.146650075910000e+00, + 2.773626565930000e+00, + 2.504484653470000e-01, + -3.521673679350000e-01, + -8.847354054450000e-01, + -2.024623870850000e+00, + -1.928920596840000e-01, + -8.948137164120000e-01, + 5.135958790780000e-01, + -5.719397068020000e-01, + 1.283888667820000e-01, + -6.938242316250000e-01, + -4.526710033420000e+00, + -1.154412865640000e+00, + 2.382670193910000e-01, + -1.386054635050000e+00, + -7.951731979850001e-02, + -3.303821325300000e+00, + 1.855106592180000e+00, + -3.399427413940000e+00, + 4.329502105710000e+00, + 3.392749547960000e+00, + -1.726859331130000e+00, + 2.691116809840000e+00, + -3.952460736040000e-02, + -1.214614033700000e+00, + -1.764097929000000e+00, + -1.604814410210000e+00, + -3.553972244260000e-01, + -7.129243612290000e-01, + 2.064490169290000e-01, + 1.026155203580000e-01, + -3.065484464170000e-01, + -2.036353588100000e+00, + -1.121870040890000e+00, + 3.386727869510000e-01, + 2.477385044100000e+00, + -2.034016400580000e-01, + 3.091622889040000e-01, + -8.737856149670000e-01, + -8.840858340260001e-01, + -6.493052244190000e-01, + 2.698642492290000e+00, + 4.866821765900000e-01, + 2.486042678360000e-02, + -1.327728390690000e+00, + 1.215811967850000e+00, + -3.095898866650000e+00, + -9.362668991090000e-01, + 3.678059339520000e+00, + -1.902610212560000e-01, + 1.845262348650000e-01, + -1.699930131440000e-01, + 2.285699546340000e-01, + -2.649498701100000e+00, + -6.375098824500000e-01, + 1.604261636730000e+00, + 2.773824036120000e-01, + -5.535273551940000e-01, + 9.744299054150000e-01, + -1.107741594310000e+00, + -2.466525316240000e+00, + -2.535081624980000e+00, + -3.271755203600000e-02, + 3.064165711400000e-01, + 1.873683482410000e-01, + 4.476617336270000e+00, + 4.066497325900000e+00, + 1.909736633300000e+00, + 1.484256505970000e+00, + -2.041313409810000e+00, + 1.181934714320000e+00, + -1.267323136330000e+00, + 5.085376739500000e+00, + 1.308715462680000e+00, + -1.011383533480000e+00, + -1.992970347400000e+00, + -2.498487472530000e+00, + -3.246739804740000e-01, + -3.971513807770000e-01, + 2.963602304460000e+00, + 6.010678410530000e-01, + -9.655207395550000e-01, + -1.430996537210000e+00, + -1.241981267930000e+00, + -5.807600617410000e-01, + -1.061211705210000e+00, + 5.784598588940000e-01, + -1.388026177880000e-01, + -1.665791422130000e-01, + -1.771983504300000e-01, + -4.879658222200000e+00, + -1.727795243260000e+00, + 9.581705927850001e-01, + -6.483505368230000e-01, + 3.334585130210000e-01, + -3.442214250560000e+00, + 2.615107536320000e+00, + -1.783413171770000e+00, + 5.142087459560000e+00, + 3.608485698700000e+00, + -2.446888923650000e+00, + 3.122445821760000e+00, + 1.770861625670000e+00, + 5.854457616810000e-02, + -1.952775478360000e+00, + -4.604994952680000e-01, + 8.004767298700000e-01, + 1.943663880230000e-02, + 2.780262827870000e-01, + -8.970534056430000e-02, + 1.886589676140000e-01, + -5.435168147090000e-01, + -5.714285373690000e+00, + 7.547711730000000e-01, + 6.989222526550000e+00, + -3.990424633030000e+00, + 3.609364986420000e+00, + -2.957191944120000e+00, + -2.501433849330000e+00, + -3.797317743300000e+00, + 4.532142639160000e+00, + -1.635661602020000e+00, + 7.653829097750000e+00, + 6.073875904080000e+00, + -5.959568500520000e+00, + -2.042260169980000e+00, + 9.937094688420000e+00, + -7.088905811310000e+00, + 1.599901616570000e-01, + 8.726164698600000e-02, + 3.186670243740000e-01, + 1.397474855180000e-01, + -9.168286919590000e-01, + -6.576109409330000e+00, + 8.794926643369999e+00, + 1.688128352170000e+00, + -5.073745727540000e+00, + 3.756880283360000e+00, + -3.449590206150000e+00, + 4.501775741580000e+00, + -1.947182655330000e+00, + -2.210403919220000e+00, + -4.737544059750000e+00, + 1.128942871090000e+01, + 8.340725898740001e+00, + -8.093442916870000e+00, + 4.834743976590000e+00, + -5.054675102230000e+00, + -4.347277641300000e+00, + 2.369177818300000e+00, + -6.405436396600001e-01, + 3.874415397640000e+00, + 1.079620122910000e+00, + -6.639748811720000e-01, + -8.489246368409999e-01, + -2.364010810850000e+00, + 1.552735924720000e+00, + 4.272048950200000e+00, + -3.378127098080000e+00, + 3.902312994000000e+00, + -1.347505092620000e+00, + 5.130397796630000e+00, + -5.882002353670000e+00, + -2.458604723220000e-01, + -1.101747527720000e-01, + -4.976023197170000e+00, + -6.410722255710000e+00, + 7.071017265320000e+00, + -2.034265398980000e-01, + -9.339386820790000e-01, + -3.677136898040000e+00, + 2.469604969020000e+00, + -2.807452201840000e+00, + 1.041881561280000e+01, + -3.961650609970000e+00, + -6.698418140410000e+00, + 8.988825798030000e+00, + -6.079539299010000e+00, + -6.745227813720000e+00, + 5.093342065810000e-01, + 7.061822891240000e+00, + -3.918459892270000e+00, + -3.238950967790000e+00, + -4.959724426270000e+00, + 5.412424087520000e+00, + 2.178204357620000e-01, + -8.737146854400001e-04, + -5.064649581910000e-01, + 4.100466519590000e-02, + 9.401582926510001e-02, + -7.259972691540000e-01, + -4.921924591060000e+00, + 7.239285707470000e-01, + 6.838308811190000e+00, + -4.025746822360000e+00, + 3.454783916470000e+00, + -2.444443941120000e+00, + -2.147839069370000e+00, + -3.763213872910000e+00, + 4.536938667300000e+00, + -1.497657895090000e+00, + 7.372404098510000e+00, + 5.293299198150000e+00, + -6.028475761410000e+00, + -2.054787397380000e+00, + 9.717082023620000e+00, + -7.172618865970000e+00, + 6.045523285870000e-02, + -2.522079646590000e-01, + 1.780953407290000e-01, + 3.545725345610000e-01, + -1.097136974330000e+00, + -5.959484100340000e+00, + 6.095591068270000e+00, + 4.673787951470000e-01, + -3.848975658420000e+00, + 3.406645536420000e+00, + -3.117561101910000e+00, + 4.134403228760000e+00, + -1.684085011480000e+00, + -1.803063750270000e+00, + -3.920701980590000e+00, + 1.140519905090000e+01, + 7.804514884950000e+00, + -8.751344680790000e+00, + 6.347923755650000e+00, + -4.305326938630000e+00, + -3.160593509670000e+00, + 2.709485054020000e+00, + -5.973736643790000e-01, + 2.822505950930000e+00, + 1.389851808550000e+00, + -2.890375137330000e+00, + -8.238477110860000e-01, + -2.397395849230000e+00, + 6.109234094620000e-01, + 3.306515455250000e+00, + -2.737000703810000e+00, + 4.740142345430000e+00, + 9.064428508279999e-02, + 5.325536727910000e+00, + -6.880853652950000e+00, + 7.800930738450000e-01, + 1.353999525310000e-01, + -5.362845420840000e+00, + -6.984875679020000e+00, + 8.243600845340000e+00, + -2.273527681830000e-01, + -2.245594501500000e+00, + -5.707764625550000e+00, + 3.370930194850000e+00, + -3.256390333180000e+00, + 9.312795639040001e+00, + -3.713716745380000e+00, + -6.243324279790000e+00, + 9.098424911500000e+00, + -5.437145709990000e+00, + -7.815742492680000e+00, + 1.706559024750000e-02, + 4.884419441220000e+00, + -3.314761877060000e+00, + -3.596303462980000e+00, + -5.051976680760000e+00, + 4.868601322170000e+00, + 9.876325130460000e-01, + 1.377236366270000e+00, + 1.375758767130000e+00, + 1.414852023120000e+00, + 1.285322546960000e+00, + -1.899735450740000e+00, + 5.912849903110000e+00, + 4.952088356020000e+00, + -5.097718238830000e-01, + -3.417925119400000e+00, + 4.152422547340000e-01, + 2.458379507060000e+00, + -3.684941291810000e+00, + 5.029012680050000e+00, + 2.190252691510000e-01, + 6.613768577580000e+00, + -1.650743961330000e+00, + -7.676764726640000e-01, + -5.256867885590000e+00, + -5.835967063900000e+00, + -2.205541372300000e+00, + -4.361661911010000e+00, + 1.010136127470000e+00, + 1.422792196270000e+00, + 1.181959867480000e+00, + 1.311864137650000e+00, + -1.707114458080000e+00, + 4.576027393340000e+00, + -1.298646569250000e+00, + 4.782268524170000e+00, + -3.200020790100000e+00, + -6.182464957240000e-02, + 3.477334022520000e+00, + -1.120936155320000e+00, + -5.725806236270000e+00, + 9.306076049800000e+00, + -2.648517370220000e+00, + -2.463892221450000e+00, + -9.015628695490000e-01, + -5.383072853090000e+00, + -1.222269177440000e+00, + -1.886461853980000e+00, + 1.627585887910000e+00, + 4.714798450470000e+00, + -6.714840531350000e-01, + 1.187122941020000e+00, + 5.261925220490000e+00, + 6.237688541410000e+00, + -2.299656391140000e+00, + -3.084471464160000e+00, + 4.116968154910000e+00, + -3.858643472190000e-01, + 6.812900543210000e+00, + 8.960468769070000e-01, + 2.062425136570000e+00, + -7.313339114189999e-01, + 5.997457504270000e+00, + 1.152615904810000e+00, + 1.411842942240000e+00, + -6.522837638850000e+00, + -5.098535060880000e+00, + -1.436839938160000e+00, + 9.509205818180000e-01, + -5.790781497960000e+00, + 5.302420139310000e+00, + 1.164187908170000e+00, + 2.722389221190000e+00, + -4.601361274720000e+00, + -5.640934944150000e+00, + -4.839295864110000e+00, + -3.331489086150000e+00, + -5.628238201140000e+00, + -4.082784175870000e+00, + -1.573879480360000e+00, + -1.377953886990000e+00, + -3.397724390030000e+00, + 3.221261024480000e+00, + 6.685040473940000e+00, + -7.316030263900000e-01, + 1.324605703350000e+00, + 1.320804119110000e+00, + 9.919562935830000e-01, + 1.491729378700000e+00, + 1.451582193370000e+00, + -1.588457107540000e+00, + 6.257712841030000e+00, + 4.788851737980000e+00, + -7.946510910990000e-01, + -3.583571195600000e+00, + 9.874600768090001e-01, + 2.237637519840000e+00, + -3.597496271130000e+00, + 5.175529003140000e+00, + 1.813763082030000e-01, + 6.919800281520000e+00, + -1.343609929080000e+00, + -6.535876989360000e-01, + -5.141057014470000e+00, + -5.734533309940000e+00, + -2.313335180280000e+00, + -4.625784873960000e+00, + 1.196642875670000e+00, + 1.438199520110000e+00, + 1.922115802760000e+00, + 4.937291145320000e-01, + -2.256305933000000e+00, + 6.492045402530000e+00, + -1.881655693050000e+00, + 4.930319786070000e+00, + -3.429153919220000e+00, + 9.215124882760000e-03, + 2.722491264340000e+00, + -2.290360182520000e-01, + -6.509927749630000e+00, + 8.659488677980001e+00, + -4.042132377620000e+00, + -1.706133604050000e+00, + -1.430640339850000e+00, + -7.260477066040000e+00, + 2.672373652460000e-01, + -2.693629980090000e+00, + 2.012413740160000e+00, + 4.552066802980000e+00, + -1.634471774100000e+00, + 6.891185045240000e-01, + 6.426909923550000e+00, + 6.472944736480000e+00, + -1.081826329230000e+00, + -4.851012706760000e+00, + 4.427324771880000e+00, + 2.553472518920000e-01, + 6.600734710690000e+00, + 3.916516602040000e-01, + 1.405450224880000e+00, + -1.431549668310000e+00, + 6.432644844060000e+00, + 1.454369306560000e+00, + 1.121728897090000e+00, + -7.198008060460000e+00, + -5.027859687810000e+00, + -1.860235571860000e+00, + 1.932216405870000e+00, + -5.421714782710000e+00, + 5.885609626770000e+00, + 4.340886175630000e-01, + 2.678207874300000e+00, + -3.801427841190000e+00, + -6.887072563170000e+00, + -4.282761573790000e+00, + -2.181597232820000e+00, + -3.602423906330000e+00, + -3.332231283190000e+00, + -1.182084083560000e+00, + -6.285928487780000e-01, + -3.389716625210000e+00, + 2.957745790480000e+00, + 4.864322185520000e+00, + -1.001371741290000e+00, + -2.809688448910000e-01, + -3.591531515120000e-01, + -4.247294664380000e-01, + -5.011525154110000e-01, + -2.005743682380000e-01, + -2.004578113560000e+00, + -1.255225896840000e+00, + 3.856881558900000e-01, + 2.203319072720000e+00, + 3.802361786370000e-01, + 3.768738806250000e-01, + -5.032286047940000e-01, + -1.798819780350000e+00, + -4.743372201920000e-01, + 2.805107355120000e+00, + 7.703694105150000e-01, + 1.370822489260000e-01, + -2.053767204280000e+00, + 1.087773084640000e+00, + -3.356452465060000e+00, + -7.750036716460000e-01, + 3.259706020360000e+00, + -8.544419407840000e-01, + -3.109267055990000e-01, + -2.841245532040000e-01, + 3.517350852490000e-01, + -2.300951004030000e+00, + -1.777486443520000e+00, + 1.124291300770000e+00, + -8.959021568300000e-01, + -1.832858026030000e-01, + 5.205861926080000e-01, + -1.201788306240000e+00, + -3.126832723620000e+00, + -2.490598201750000e+00, + 2.709070146080000e-01, + 7.927054166790000e-01, + 3.382181525230000e-01, + 4.136824607850000e+00, + 3.091835498810000e+00, + 2.531265020370000e+00, + -1.488157957790000e-01, + -1.875499248500000e+00, + 1.214312314990000e+00, + -1.165616631510000e+00, + 4.601006984710000e+00, + 7.776436805730000e-01, + -5.780807733540000e-01, + -1.731816411020000e+00, + -2.703513383870000e+00, + 3.070299923420000e-01, + -3.895214498040000e-01, + 2.696877241130000e+00, + 8.471578955650000e-01, + 5.152288079260000e-01, + -1.253958344460000e+00, + -2.151468276980000e+00, + -6.004343628880000e-01, + -6.525696516040000e-01, + 1.607308030130000e+00, + 6.442098617549999e-01, + 3.385908007620000e-01, + 4.938824176790000e-01, + -4.857694149020000e+00, + -2.518210172650000e+00, + 4.437511563300000e-01, + -3.295281529430000e-01, + -1.258305162190000e-01, + -3.105479002000000e+00, + 2.082859516140000e+00, + -2.281537294390000e+00, + 4.399258613590000e+00, + 3.556337356570000e+00, + -1.956582069400000e+00, + 2.447521448140000e+00, + 1.393001914020000e+00, + 2.906841039660000e-01, + -7.207973003390000e-01, + 8.848837576810001e-03, + -3.417817354200000e-01, + -2.158071845770000e-01, + -4.712918102740000e-01, + -5.686795115470000e-01, + -2.538312375550000e-01, + -2.420997142790000e+00, + -1.212291121480000e+00, + 9.981217980380000e-02, + 2.522963762280000e+00, + 3.547560870650000e-01, + 6.884464621540000e-01, + -3.527730107310000e-01, + -1.573231220250000e+00, + -6.078874468800000e-01, + 2.707452058790000e+00, + 6.448571681980000e-01, + 4.619238525630000e-02, + -8.977439999580000e-01, + 1.145385146140000e+00, + -3.150140762330000e+00, + -8.024451732640000e-01, + 3.524275779720000e+00, + 2.115501910450000e-01, + -4.552465379240000e-01, + 6.391017138960001e-02, + -7.883060574530000e-01, + -1.869006991390000e+00, + -1.897967457770000e+00, + 1.817754864690000e+00, + -5.756117105480000e-01, + -1.471772789960000e-01, + 1.048050761220000e+00, + -1.013337492940000e+00, + -2.505986213680000e+00, + -4.844323992730000e-01, + -3.869645595550000e-01, + 1.065106153490000e+00, + -7.145717144010000e-01, + 3.350925683980000e+00, + 5.105532646180000e+00, + 2.426184415820000e+00, + 1.441486597060000e+00, + -2.877194404600000e+00, + 1.765388369560000e+00, + -1.733263373370000e+00, + 4.317118167880000e+00, + 1.159978151320000e+00, + 6.987530589099999e-01, + -1.695980906490000e+00, + -1.591573238370000e+00, + 6.847225427630000e-01, + 4.780680835250000e-01, + 1.648903012280000e+00, + 6.020953059200000e-01, + -3.376993238930000e-01, + -1.057431459430000e+00, + 4.037503302100000e-01, + 2.154020220040000e-01, + -9.518107771870000e-01, + 1.017031788830000e+00, + -5.361603498460000e-01, + -3.175511062150000e-01, + -5.540986061099999e-01, + -4.112968921660000e+00, + -1.204267621040000e+00, + 1.895182728770000e-01, + -7.065843939780000e-01, + 7.308471798900000e-01, + -3.938631773000000e+00, + 1.924773931500000e+00, + -2.679452657700000e+00, + 4.757125854490000e+00, + 4.094603061680000e+00, + -2.256962537770000e+00, + 2.199592828750000e+00, + 8.239532709120000e-01, + 8.945854902270000e-01, + -1.992748975750000e+00, + -1.076328277590000e+00, + 4.680124670270000e-02, + 5.471707507970000e-02, + 1.360159069300000e-01, + -5.115200877190000e-01, + -1.035100594160000e-01, + -3.147242963310000e-01, + -5.773850917820000e+00, + 7.764853835110000e-01, + 6.580539226530000e+00, + -3.897157192230000e+00, + 3.383527278900000e+00, + -3.857610225680000e+00, + -1.801791310310000e+00, + -3.691837072370000e+00, + 4.645963191990000e+00, + -1.841791510580000e+00, + 7.627873897550000e+00, + 4.823719978330000e+00, + -6.094254970550000e+00, + -2.581142663960000e+00, + 9.763536453250000e+00, + -7.186680793760000e+00, + 5.684542059900000e-01, + 1.134668588640000e-01, + -1.329067498450000e-01, + 5.460283160210000e-01, + -1.071410417560000e+00, + -5.908207416530000e+00, + 6.882882118230000e+00, + 6.723728179930000e-01, + -4.514178276060000e+00, + 3.195228099820000e+00, + -2.696822166440000e+00, + 4.522474288940000e+00, + -5.709067583080000e-01, + -1.525441169740000e+00, + -4.380694866180000e+00, + 1.131890201570000e+01, + 8.192243576050000e+00, + -8.397812843320001e+00, + 5.323444366460000e+00, + -1.433584094050000e+00, + -4.552822589870000e+00, + 1.049575805660000e+00, + -5.898053050040000e-01, + 4.553432464600000e+00, + 9.861008822920000e-02, + -3.051113605500000e+00, + -5.835710167880001e-01, + -1.725027799610000e+00, + 6.328229904170000e-01, + 4.727150440220000e+00, + -2.118698835370000e+00, + 3.600072145460000e+00, + -5.651948228480000e-02, + 5.100067138670000e+00, + -5.956636905670000e+00, + -8.622086793180000e-02, + 7.570483088490000e-01, + -5.500564098360000e+00, + -6.868885993960000e+00, + 6.819818973540000e+00, + -3.689214587210000e-01, + -2.076794624330000e+00, + -5.367277622220000e+00, + 2.088144540790000e+00, + -2.883008718490000e+00, + 9.936079978940001e+00, + -3.947031974790000e+00, + -6.897735118870000e+00, + 8.808833122250000e+00, + -6.629565238950000e+00, + -9.254625320430000e+00, + -4.710560739040000e-01, + 7.797506332400000e+00, + -4.007020473480000e+00, + -3.277204990390000e+00, + -5.933239936830000e+00, + 5.848605155940000e+00, + 1.662393100560000e-02, + -8.105727285150000e-02, + -1.028081178670000e-01, + -1.756799370050000e-01, + 7.016437500720001e-02, + -7.381999492650000e-01, + -5.860660552980000e+00, + 7.867532372470000e-01, + 6.283516407010000e+00, + -3.502024888990000e+00, + 3.308864355090000e+00, + -3.422240972520000e+00, + -1.902931809430000e+00, + -4.111729145050000e+00, + 4.603003501890000e+00, + -1.251908779140000e+00, + 7.450754642490000e+00, + 5.170994281770000e+00, + -5.832664966580000e+00, + -2.032895088200000e+00, + 9.837906837460000e+00, + -7.288589000700000e+00, + -3.219851255420000e-01, + 7.107213139530000e-01, + 5.632805824280001e-01, + -1.660364717250000e-01, + -1.839521765710000e+00, + -5.705173969270000e+00, + 7.112505912780000e+00, + 6.925826668740001e-01, + -3.497429132460000e+00, + 2.433583974840000e+00, + -2.345604181290000e+00, + 2.110906362530000e+00, + -1.095985293390000e+00, + -1.676437616350000e+00, + -5.819827079770000e+00, + 1.024799633030000e+01, + 8.138580322270000e+00, + -7.373316764830000e+00, + 6.439417839050000e+00, + -4.267870903020000e+00, + -3.722338438030000e+00, + 2.389348983760000e+00, + -1.010814428330000e+00, + 5.023037910460000e+00, + 2.935199141500000e-01, + -2.160078048710000e+00, + -5.575018003580000e-03, + -2.006642580030000e+00, + 7.719220519070000e-01, + 4.102589130400000e+00, + -1.204686522480000e+00, + 3.728706598280000e+00, + 1.026044368740000e+00, + 5.124167442320000e+00, + -5.810420989990000e+00, + -2.869888544080000e-01, + -6.995913386340000e-01, + -5.095583438870000e+00, + -6.532342910770000e+00, + 7.865740299220000e+00, + 1.027712672950000e-01, + -1.127792358400000e+00, + -5.510885715480000e+00, + 2.770277261730000e+00, + -3.115603923800000e+00, + 1.014347171780000e+01, + -3.602922677990000e+00, + -5.456470966340000e+00, + 9.163693428040000e+00, + -5.400227069850000e+00, + -8.062179565430000e+00, + -8.029146194460000e-01, + 6.713394165040000e+00, + -4.247977733610000e+00, + -2.801685333250000e+00, + -5.181156158450000e+00, + 6.379307270050000e+00, + 1.399612665180000e+00, + 1.411180734630000e+00, + 8.003607988360000e-01, + 1.440432667730000e+00, + 1.482718467710000e+00, + -1.244078516960000e+00, + 5.720457077030000e+00, + 4.839240550990000e+00, + -8.700280189510000e-01, + -3.324238538740000e+00, + 2.925791144370000e-01, + 2.210028648380000e+00, + -3.648492574690000e+00, + 4.993901252750000e+00, + -1.118873953820000e-01, + 6.059546470640000e+00, + -1.540441870690000e+00, + -5.938925743100000e-01, + -5.576385021210000e+00, + -5.589148998260000e+00, + -2.568105697630000e+00, + -4.519067287450000e+00, + 2.908476829530000e+00, + 1.477914571760000e+00, + 1.241748452190000e+00, + 8.176580667500000e-01, + -9.438092708590000e-01, + 5.375006198880000e+00, + -1.090927958490000e+00, + 4.934720039370000e+00, + -4.105881214140000e+00, + -4.165367484090000e-01, + 3.640213251110000e+00, + -1.406795620920000e+00, + -6.538975238800000e+00, + 9.757222175600001e+00, + -3.743787050250000e+00, + -1.540726542470000e+00, + -1.223221302030000e+00, + -5.468677043910000e+00, + 1.201983809470000e+00, + -2.963964462280000e+00, + 2.158308476210000e-01, + 5.276688575740000e+00, + -8.352322578430000e-01, + 1.279050469400000e+00, + 5.071191787720000e+00, + 4.860463619230000e+00, + -1.797672152520000e+00, + -3.169407844540000e+00, + 4.141652107240000e+00, + -4.293646812440000e-01, + 6.890367031100000e+00, + 4.895128905770000e-01, + 1.396121978760000e+00, + 3.516159057620000e-01, + 6.071788311000000e+00, + 1.203509449960000e+00, + 1.311120748520000e+00, + -7.022541522980000e+00, + -4.481266498570000e+00, + -1.395220994950000e+00, + 1.732620000840000e+00, + -5.705109596250000e+00, + 6.888016223910000e+00, + 1.172013640400000e+00, + 2.277278900150000e+00, + -2.877575874330000e+00, + -6.448833942410000e+00, + -4.996579647060000e+00, + -1.531597614290000e+00, + -4.720260620120000e+00, + -3.686973094940000e+00, + -2.202513217930000e+00, + -4.194010496140000e-01, + -2.632688999180000e+00, + 2.622896194460000e+00, + 6.221538543700000e+00, + -1.998441696170000e+00, + 1.376204609870000e+00, + 1.275161743160000e+00, + 1.128559947010000e+00, + 1.352268695830000e+00, + 1.539510011670000e+00, + -1.712653875350000e+00, + 6.006451129910000e+00, + 4.857818603520000e+00, + -5.761523246769999e-01, + -3.041716814040000e+00, + 4.691248387100000e-02, + 2.663871288300000e+00, + -3.412237405780000e+00, + 5.506099700930000e+00, + 5.759323835370000e-01, + 6.592764377590000e+00, + -1.418811559680000e+00, + -8.765215873720000e-01, + -5.309267997740000e+00, + -5.681816577910000e+00, + -3.078181266780000e+00, + -4.449390411380000e+00, + 1.850849151610000e+00, + 1.074559926990000e+00, + 1.595618963240000e+00, + 4.261594712730000e-01, + -1.150965929030000e+00, + 6.057772159580000e+00, + -1.110267877580000e+00, + 5.506051063540000e+00, + -2.672709703450000e+00, + -2.410058081150000e-01, + 4.081429481510000e+00, + 8.013912290330000e-02, + -7.219360828400000e+00, + 8.075673103330001e+00, + -4.382233619690000e+00, + -1.278382420540000e+00, + -1.664445996280000e+00, + -6.074797153470000e+00, + 1.168879047040000e-01, + -3.807398319240000e+00, + 2.133418560030000e+00, + 3.852212905880000e+00, + -1.797809600830000e+00, + 1.657963395120000e+00, + 4.647671222690000e+00, + 6.353581905360000e+00, + -2.562858819960000e+00, + -3.427683115010000e+00, + 4.569094657900000e+00, + -4.599415510890000e-02, + 6.545230388640000e+00, + 5.267900228500000e-01, + 2.062816858290000e+00, + -8.377711772920000e-01, + 5.191777229310000e+00, + 1.685503840450000e+00, + 1.209854006770000e+00, + -6.037678241730000e+00, + -5.191432952880000e+00, + -1.361188530920000e+00, + 1.317553400990000e+00, + -5.582916736600000e+00, + 6.628475666050000e+00, + 4.800755977630000e-01, + 2.318937301640000e+00, + -4.891792774200000e+00, + -6.889540672300000e+00, + -5.211801052090000e+00, + -3.155625104900000e+00, + -4.426040649410000e+00, + -3.521300077440000e+00, + -1.355837583540000e+00, + -1.629920363430000e+00, + -4.075235366820000e+00, + 2.458472251890000e+00, + 5.438440322880000e+00, + -2.002137154340000e-01, + -4.543699324130000e-01, + -3.137839138510000e-01, + 1.681268960240000e-01, + -5.546767115590000e-01, + 4.256464838980000e-01, + -2.088312625890000e+00, + -1.108120679860000e+00, + 5.421111583710000e-01, + 2.498430252080000e+00, + 4.158457219600000e-01, + 5.539451241490000e-01, + -1.499765157700000e+00, + -1.613705992700000e+00, + -6.948133707050000e-01, + 3.098512649540000e+00, + 5.183207392690000e-01, + 2.541977465150000e-01, + -1.433450460430000e+00, + 1.105665564540000e+00, + -1.485672116280000e+00, + -9.578894376750000e-01, + 3.679785251620000e+00, + 5.355709195140000e-01, + -4.957562386990000e-01, + -2.344199419020000e-01, + -8.666889667510000e-01, + -2.009254693980000e+00, + -6.590139865880000e-01, + 1.618163228030000e+00, + -1.164633512500000e+00, + -4.277587831020000e-01, + 1.109507679940000e+00, + -7.907795310020000e-01, + -3.057940483090000e+00, + -3.040513753890000e+00, + -3.178098052740000e-02, + 1.102211952210000e+00, + -3.135674297810000e-01, + 2.552927494050000e+00, + 3.948190212250000e+00, + 1.677196145060000e+00, + -2.875254452230000e-01, + -1.967083454130000e+00, + 8.635079264640000e-01, + -1.548359394070000e+00, + 4.963708400730000e+00, + 1.344958879050000e-02, + -1.068958565590000e-01, + -1.831719875340000e+00, + -1.085223793980000e+00, + 4.039482772350000e-01, + -9.807028621440000e-02, + 2.317731618880000e+00, + 1.477438569070000e+00, + -1.370319724080000e-01, + -1.256784319880000e+00, + -1.696123361590000e+00, + -9.080829620360000e-01, + -1.272482872010000e+00, + 1.115745186810000e+00, + -1.186067700390000e+00, + -1.196560561660000e-01, + -2.741922736170000e-01, + -3.040735960010000e+00, + -1.371885538100000e+00, + 7.273811101910000e-01, + -7.570032477380000e-01, + 1.408051252370000e-01, + -4.025743484500000e+00, + 1.699317693710000e+00, + -3.430408239360000e+00, + 4.289165973660000e+00, + 2.953903198240000e+00, + -2.120126485820000e+00, + 2.223353385930000e+00, + 1.377985239030000e+00, + 1.860738098620000e-01, + -5.183449983600000e-01, + -1.078909873960000e+00, + -3.349443376060000e-01, + -4.374091625210000e-01, + -3.336693644520000e-01, + 8.628724515440001e-02, + -4.742551147940000e-01, + -2.710047721860000e+00, + -1.389091849330000e+00, + 4.467544555660000e-01, + 2.585999250410000e+00, + 3.145785033700000e-01, + 6.079994440080000e-01, + -9.527542591090000e-01, + -1.656641960140000e+00, + -1.436985850330000e+00, + 2.716111421590000e+00, + 4.981992542740000e-01, + 1.494404859840000e-02, + -8.248215913770000e-01, + 1.351960778240000e+00, + -2.905510663990000e+00, + -1.045685887340000e+00, + 3.881207227710000e+00, + -7.851265072820000e-01, + -6.949947476390000e-01, + 2.736385166650000e-01, + 4.678116142750000e-01, + -7.802046537400000e-01, + -1.247061848640000e+00, + 5.870121121410000e-01, + -9.346109032630000e-01, + 1.009616628290000e-01, + 2.000597238540000e+00, + -3.330761790280000e-01, + -3.366948843000000e+00, + -9.026243090630000e-01, + 1.322585821150000e+00, + 1.404002785680000e+00, + -4.693805873390000e-01, + 4.249099254610000e+00, + 5.202178955080000e+00, + 3.030900955200000e+00, + 1.699944615360000e+00, + -1.418090105060000e+00, + 5.453606247900000e-01, + -1.863463521000000e+00, + 4.063026905060000e+00, + 1.482469797130000e+00, + 6.520441174510000e-01, + -1.491741061210000e+00, + -1.158426046370000e+00, + 4.627222418790000e-01, + 9.513579010960000e-01, + 1.665742397310000e+00, + -1.464286208150000e+00, + -9.504922032360000e-01, + -1.164208292960000e+00, + -2.335864901540000e-01, + -1.875834912060000e-01, + -6.527201831340000e-02, + 5.355558395390000e-01, + -2.760716378690000e-01, + -3.475825786590000e-01, + -4.112374186520000e-01, + -4.543334484100000e+00, + -1.286028981210000e+00, + 1.306207656860000e+00, + -1.004410266880000e+00, + -4.038524925710000e-01, + -3.303261995320000e+00, + 3.958228826520000e+00, + -1.735308051110000e+00, + 4.999520778660000e+00, + 3.332859754560000e+00, + -1.959846615790000e+00, + 3.722513914110000e+00, + 6.530925631520000e-01, + 5.550330877300000e-01, + -8.554288148880000e-01, + -8.800719976430000e-01, + 5.617728456850000e-02, + 9.122243523600000e-02, + -6.151237338780000e-02, + 9.423367679120000e-02, + -2.553198635580000e-01, + -5.346342921260000e-01, + -5.783051013950000e+00, + 6.912614107130000e-01, + 7.244859218600000e+00, + -3.868209123610000e+00, + 3.584441661830000e+00, + -3.174813032150000e+00, + -2.213476181030000e+00, + -3.864280700680000e+00, + 4.406125068660000e+00, + -1.903110384940000e+00, + 7.064877510070000e+00, + 5.205896377560000e+00, + -6.378081321720000e+00, + -2.053665637970000e+00, + 9.667794227600000e+00, + -7.127086639400000e+00, + 1.174429893490000e+00, + -1.401767134670000e-01, + 2.823064336550000e-03, + -2.141627222300000e-01, + -1.319497346880000e+00, + -6.692506313320000e+00, + 7.354873657230000e+00, + 1.209923505780000e+00, + -3.324613094330000e+00, + 4.249138355260000e+00, + -3.446596860890000e+00, + 4.378433227540000e+00, + -1.932861447330000e+00, + -5.251796841620000e-01, + -4.213561534880000e+00, + 1.107846069340000e+01, + 7.939955711360000e+00, + -8.460200309750000e+00, + 6.501360893250000e+00, + -4.235303401950000e+00, + -4.204865932460000e+00, + 2.271721839900000e+00, + -9.423465728760000e-01, + 3.988403797150000e+00, + 7.863969802860000e-01, + -1.576713562010000e+00, + -6.047629714010000e-01, + -1.423796892170000e+00, + 2.547783136370000e+00, + 4.185468196870000e+00, + -1.788962483410000e+00, + 4.190750122070000e+00, + -1.813846468930000e+00, + 5.812574386600000e+00, + -6.690421581270000e+00, + 2.954456210140000e-01, + 1.445661187170000e-01, + -6.299095630650000e+00, + -7.454355716710000e+00, + 8.821760177610001e+00, + 3.008758425710000e-01, + -8.770071268080000e-01, + -5.522167205810000e+00, + 2.252264738080000e+00, + -2.468743085860000e+00, + 1.101580333710000e+01, + -3.651519775390000e+00, + -5.841865539550000e+00, + 9.972437858579999e+00, + -5.486356258390000e+00, + -9.430553436280000e+00, + -9.417924880980000e-01, + 6.697037220000000e+00, + -4.471114158630000e+00, + -2.836338996890000e+00, + -4.940465927120000e+00, + 5.464889526370000e+00, + -5.228378623720000e-02, + 3.370400071140000e-01, + -4.347541630270000e-01, + 7.148407399650000e-02, + 3.507984802130000e-02, + -7.652872204780000e-01, + -5.501626014710000e+00, + 7.629707455640000e-01, + 6.728909969330000e+00, + -3.830675840380000e+00, + 2.964325904850000e+00, + -2.338087797160000e+00, + -2.157421827320000e+00, + -3.748620510100000e+00, + 4.417187690730000e+00, + -1.797753095630000e+00, + 7.098806858060000e+00, + 5.092490673070000e+00, + -5.930065155030000e+00, + -2.053723573680000e+00, + 9.643876075740000e+00, + -7.254313468930000e+00, + 1.518658921120000e-02, + -5.127171874050001e-01, + -4.402924478050000e-01, + 4.133995473380000e-01, + -9.952574968340000e-01, + -4.959225654600000e+00, + 6.916539192200000e+00, + 1.134575843810000e+00, + -4.697986602780000e+00, + 3.398383617400000e+00, + -3.108367443080000e+00, + 4.589910984040000e+00, + -1.365679264070000e+00, + -7.153332233430000e-01, + -4.188251495360000e+00, + 1.034507465360000e+01, + 8.263286590580000e+00, + -7.823088645940000e+00, + 6.857113838200000e+00, + -4.411218166350000e+00, + -5.895537376400000e+00, + 2.590561151500000e+00, + -1.084088325500000e+00, + 4.785955905910000e+00, + 2.067244529720000e+00, + -1.862481951710000e+00, + -5.277127027510000e-01, + -3.496936559680000e+00, + 7.277221083640000e-01, + 4.447718143460000e+00, + -1.852700471880000e+00, + 3.405293226240000e+00, + 2.991927564140000e-01, + 5.419872760770000e+00, + -5.728785991670000e+00, + 7.863125950100000e-02, + 9.081415534020000e-01, + -4.108853340150000e+00, + -6.869273662570000e+00, + 7.531432628630000e+00, + 1.664879471060000e-01, + -1.015413045880000e+00, + -5.601920604710000e+00, + 2.600323438640000e+00, + -2.751400470730000e+00, + 1.031906318660000e+01, + -3.785676240920000e+00, + -6.416996002200000e+00, + 9.646394729610000e+00, + -5.485302448270000e+00, + -7.850251197810000e+00, + -1.299551486970000e+00, + 6.412691116330000e+00, + -3.375573873520000e+00, + -3.368010282520000e+00, + -5.929071426390000e+00, + 6.282907962800000e+00, + 1.400049686430000e+00, + 6.913217306140000e-01, + 1.439067602160000e+00, + 1.505845665930000e+00, + 1.718872904780000e+00, + -1.639156103130000e+00, + 5.916291713710000e+00, + 4.916418552400000e+00, + -3.227208852770000e-01, + -3.284093856810000e+00, + 3.994863331320000e-01, + 2.502538442610000e+00, + -3.356613397600000e+00, + 4.702368259430000e+00, + 3.800547420980000e-01, + 6.637078762050000e+00, + -1.439174056050000e+00, + -9.841880202290000e-01, + -4.672108650210000e+00, + -5.688889026640000e+00, + -2.509531497960000e+00, + -5.017926216130000e+00, + 2.186514139180000e+00, + 1.311125278470000e+00, + 1.265774726870000e+00, + 1.405949354170000e+00, + -3.051831960680000e+00, + 6.056845664980000e+00, + -7.572562694550000e-01, + 4.627658843990000e+00, + -3.103647470470000e+00, + -1.322804838420000e-01, + 2.983076095580000e+00, + -1.844280838970000e+00, + -6.085886478420000e+00, + 8.108371734620000e+00, + -3.775093555450000e+00, + -1.103261709210000e+00, + -7.932968139650000e-01, + -4.275476455690000e+00, + -1.933559030290000e-01, + -2.983937740330000e+00, + 1.818479418750000e+00, + 5.882035732270000e+00, + -1.036496996880000e+00, + 7.820246219640000e-01, + 5.270942687990000e+00, + 6.652334213260000e+00, + -2.582922697070000e+00, + -5.438400268550000e+00, + 6.241738319400000e+00, + -9.466600418090000e-01, + 7.202829360960000e+00, + 1.470150351520000e+00, + 7.935953736310000e-01, + -1.667812943460000e+00, + 5.586769580840000e+00, + 1.031020522120000e+00, + 1.517681717870000e+00, + -7.111616611480000e+00, + -4.725651264190000e+00, + -1.901797056200000e+00, + 1.680576205250000e+00, + -5.619288444520000e+00, + 6.162394523620000e+00, + -1.512385010720000e-01, + 2.554435014720000e+00, + -3.992767333980000e+00, + -6.043294429780000e+00, + -5.251127243040000e+00, + -1.542221665380000e+00, + -5.000330924990000e+00, + -2.814692735670000e+00, + -2.141794919970000e+00, + -7.217690348630000e-01, + -3.316482067110000e+00, + 1.749540686610000e+00, + 5.116315841670000e+00, + 2.382463067770000e-01, + 1.414650201800000e+00, + 1.386875629430000e+00, + 1.091856718060000e+00, + 1.419585227970000e+00, + 1.436034560200000e+00, + -1.746878385540000e+00, + 6.076994895940000e+00, + 4.923576831820000e+00, + -2.714031040670000e-01, + -3.404316902160000e+00, + 4.739777743820000e-01, + 3.362114429470000e+00, + -3.352635622020000e+00, + 5.118454933170000e+00, + 1.897209882740000e-01, + 6.439473152160000e+00, + -1.138886094090000e+00, + -6.239103674890000e-01, + -5.350725173950000e+00, + -5.615466594700000e+00, + -2.233413696290000e+00, + -4.731140613560000e+00, + 1.835131764410000e+00, + 1.897165417670000e+00, + 6.185889840130000e-01, + 1.502781271930000e+00, + -1.686813592910000e+00, + 5.775352954860000e+00, + -1.192716479300000e+00, + 5.158818244930000e+00, + -3.209921598430000e+00, + 1.659272760150000e-01, + 2.560600042340000e+00, + -6.039161086080000e-01, + -6.707556724550000e+00, + 8.279999732969999e+00, + -4.149766922000000e+00, + -2.430931329730000e+00, + -7.044531106950001e-01, + -5.183013439180000e+00, + -9.276514053340000e-01, + -1.298676371570000e+00, + 9.989207983020000e-01, + 5.182542324070000e+00, + -1.220753312110000e+00, + 3.460612297060000e-01, + 4.403718948360000e+00, + 6.064674854280000e+00, + -2.372362852100000e+00, + -5.240240573880000e+00, + 4.647850990300000e+00, + 4.728198945520000e-01, + 7.122928619380000e+00, + 1.572476387020000e+00, + 8.140748739240000e-01, + -2.234033107760000e+00, + 6.741182804110000e+00, + 1.111562490460000e+00, + 1.674871087070000e+00, + -7.995268821720000e+00, + -4.180337905880000e+00, + -3.080394268040000e+00, + 2.489408254620000e+00, + -5.426601409910000e+00, + 6.372238159180000e+00, + -2.236349880700000e-01, + 9.794861674310000e-01, + -4.022439479830000e+00, + -5.994580745700000e+00, + -4.489321231840000e+00, + -3.449818134310000e+00, + -3.860623598100000e+00, + -3.238196372990000e+00, + -2.039892196660000e+00, + -9.788745045660000e-01, + -3.325058937070000e+00, + 2.965543031690000e+00, + 5.342109203340000e+00, + 1.046052217480000e+00, + -3.337064683440000e-01, + -5.317978858950000e-01, + -4.436001181600000e-01, + -2.161136865620000e-01, + -2.143114209180000e-01, + -1.829893231390000e+00, + -1.303553581240000e+00, + 6.803030371670000e-01, + 2.905216455460000e+00, + 3.628315329550000e-01, + 5.500133037570000e-01, + -8.429638147350000e-01, + -1.454840779300000e+00, + -6.926693916320000e-01, + 2.937098264690000e+00, + 2.824514508250000e-01, + -2.884902618830000e-02, + -1.093697786330000e+00, + 1.379396200180000e+00, + -3.205538749690000e+00, + -8.722726702690000e-01, + 3.579518079760000e+00, + -5.367168784140000e-01, + -9.267894625660000e-01, + -4.301407039170000e-01, + 3.176229596140000e-01, + -1.024910688400000e+00, + 1.607667468490000e-02, + 2.046532154080000e+00, + 5.567522346970000e-02, + 3.581407666210000e-01, + 2.370566844940000e+00, + -1.267119526860000e+00, + -3.517671823500000e+00, + -3.081149101260000e+00, + -6.779405474660000e-01, + 8.779758811000000e-01, + -4.365326166150000e-01, + 2.901404380800000e+00, + 2.753813505170000e+00, + 2.314822912220000e+00, + 7.553366422650000e-01, + -1.717075347900000e+00, + 2.422367572780000e+00, + -1.314270496370000e+00, + 2.872466325760000e+00, + -1.581609249110000e-01, + 7.392866015430000e-01, + -1.224242568020000e+00, + -2.792979717250000e+00, + -6.072661280630000e-01, + -1.498553007840000e-01, + 2.588372230530000e+00, + 1.456396579740000e+00, + -2.185239046810000e-01, + -6.241961717610000e-01, + -5.985405445100000e-01, + 3.978510200980000e-01, + -3.327693343160000e-01, + 8.292331099510000e-01, + -7.197589874270000e-01, + -6.223785281180000e-01, + 9.463468939069999e-02, + -4.390365123750000e+00, + -2.050374746320000e+00, + -1.408921033140000e-01, + -1.164545178410000e+00, + 1.027714610100000e+00, + -3.758251190190000e+00, + 1.025327086450000e+00, + -2.727370977400000e+00, + 5.563099861150000e+00, + 3.609318494800000e+00, + -2.457250833510000e+00, + 2.428665399550000e+00, + 2.090157419440000e-01, + -6.611292809250000e-02, + -9.802612066270000e-01, + -1.512408733370000e+00, + -2.972784638400000e-01, + -3.056628704070000e-01, + -3.312900066380000e-01, + -3.401866555210000e-01, + -3.030490279200000e-01, + -1.682230472560000e+00, + -9.997096061710000e-01, + 3.673163354400000e-01, + 2.359914541240000e+00, + 5.910264253620000e-01, + -5.006662011150000e-01, + -1.151887416840000e+00, + -1.231377124790000e+00, + -5.933077931400000e-01, + 2.619007349010000e+00, + 4.860904812810000e-01, + 2.659947872160000e-01, + -1.024489402770000e+00, + 1.075024366380000e+00, + -3.156598091130000e+00, + -7.768205404280000e-01, + 3.578432321550000e+00, + -2.671522200110000e-01, + 7.104376703500000e-02, + 1.590951532130000e-01, + -6.609216928480000e-01, + -1.412878632550000e+00, + -1.232379913330000e+00, + 1.679595828060000e+00, + -8.309747576710000e-01, + -1.729630976920000e-01, + 6.099584102630000e-01, + -8.790082335470000e-01, + -2.762263298030000e+00, + -2.602242469790000e+00, + -2.700920999050000e-01, + 9.988081455230000e-01, + -1.280184507370000e+00, + 4.062614917760000e+00, + 4.211513996120000e+00, + 2.632113218310000e+00, + 1.553005456920000e+00, + -6.051847338680000e-01, + 1.219199538230000e+00, + -1.511723756790000e+00, + 4.876002311710000e+00, + 5.596581101420000e-01, + -1.015619710090000e-01, + -2.065519571300000e+00, + -1.631345748900000e+00, + 8.125016838309999e-02, + 8.170155286790000e-01, + 2.541273593900000e+00, + 4.375276565550000e-01, + -2.591735720630000e-01, + -1.911442995070000e+00, + -1.659652352330000e+00, + -2.287210971120000e-01, + 3.497903645040000e-01, + 1.798395752910000e+00, + -1.048571586610000e+00, + -5.659080147740000e-01, + -2.700247466560000e-01, + -4.015401363370000e+00, + -1.619899272920000e+00, + -2.888544797900000e-01, + -1.360013008120000e+00, + 1.224564313890000e+00, + -3.877041816710000e+00, + 2.332774400710000e+00, + -3.015363216400000e+00, + 5.018506526950000e+00, + 3.793262004850000e+00, + -2.178979873660000e+00, + 3.617089033130000e+00, + 1.393542438750000e-01, + -2.534696757790000e-01, + -2.714875936510000e+00, + -7.405366301540000e-01, + 1.167068108920000e-01, + 6.113332509990000e-02, + -1.159701570870000e-01, + -4.041188955310000e-01, + -2.105616405610000e-02, + -6.289322972300000e-01, + -5.588245391850000e+00, + 8.410646319390001e-01, + 6.909691810610000e+00, + -4.694351673130000e+00, + 3.548670053480000e+00, + -3.285705804820000e+00, + -2.141422271730000e+00, + -3.683277845380000e+00, + 4.583670616150000e+00, + -1.517501711850000e+00, + 7.346186637880000e+00, + 4.960826873780000e+00, + -6.071261405940000e+00, + -2.117550849910000e+00, + 9.820360183720000e+00, + -7.149084568020000e+00, + -1.450383305550000e+00, + -1.044485047460000e-01, + 9.235596284270000e-03, + 3.241775333880000e-01, + -1.607554435730000e+00, + -4.348439693450000e+00, + 7.522110939030000e+00, + 3.873195648190000e+00, + -3.814328432080000e+00, + 3.687347173690000e+00, + -3.374605417250000e+00, + 4.452306270600000e+00, + -1.374202251430000e+00, + -1.815012812610000e+00, + -3.660559177400000e+00, + 1.108322048190000e+01, + 7.080507278440000e+00, + -8.394160270690000e+00, + 6.055737018590000e+00, + -4.301176071170000e+00, + -3.966452836990000e+00, + 1.789641380310000e+00, + -3.314266502860000e-01, + 3.859291315080000e+00, + 5.745203495030000e-01, + -2.637475013730000e+00, + -6.158711910250000e-01, + -1.194801926610000e+00, + 8.584618568420000e-01, + 3.394656896590000e+00, + -2.435081005100000e+00, + 4.171687603000000e+00, + -1.475350558760000e-01, + 5.506173610690000e+00, + -6.950839996340000e+00, + 3.015439808370000e-01, + 1.288918405770000e-01, + -5.084855556490000e+00, + -7.527782440190000e+00, + 7.021983623500000e+00, + 3.402740359310000e-01, + -1.420949697490000e+00, + -5.537343502040000e+00, + 2.225630998610000e+00, + -2.697594881060000e+00, + 9.746951103210000e+00, + -3.520374536510000e+00, + -6.787048339840000e+00, + 1.128520965580000e+01, + -5.336462020870000e+00, + -6.893078327180000e+00, + -5.268799066540000e-01, + 6.884152412410000e+00, + -4.655808925630000e+00, + -4.336758613590000e+00, + -5.310930728910000e+00, + 6.023363113400000e+00, + 2.206742763520000e-01, + -3.731170203540000e-03, + -4.605158269410000e-01, + -2.970992028710000e-01, + 5.481917038560000e-02, + -7.239456176760000e-01, + -5.566927909850000e+00, + 1.040878891940000e+00, + 7.072968959810000e+00, + -3.893724679950000e+00, + 3.163970708850000e+00, + -3.235733270650000e+00, + -2.471582651140000e+00, + -3.923506736760000e+00, + 4.885491847990000e+00, + -1.375362634660000e+00, + 7.142251968380000e+00, + 5.036890029910000e+00, + -5.825389385220000e+00, + -1.924738407140000e+00, + 9.498064041139999e+00, + -6.931539058690000e+00, + -2.309782430530000e-02, + 6.115351915360000e-01, + -3.645861893890000e-02, + -3.176028430460000e-01, + 2.136564850810000e-01, + -6.773571491240000e+00, + 7.798813343050000e+00, + 1.297837257390000e+00, + -4.592422962190000e+00, + 3.704234361650000e+00, + -3.280714750290000e+00, + 4.617543220520000e+00, + -1.184453487400000e+00, + -2.170791864400000e+00, + -3.222817420960000e+00, + 1.060734367370000e+01, + 8.215381622310000e+00, + -8.094285964970000e+00, + 6.630203723910000e+00, + -4.132418632510000e+00, + -4.409091472630000e+00, + 1.373740792270000e+00, + -6.972123384480000e-01, + 3.852561473850000e+00, + 4.121535718440000e-01, + -2.686933517460000e+00, + -1.509625434880000e+00, + -2.511835336690000e+00, + -2.794288098810000e-01, + 4.354456424710000e+00, + -1.152889847760000e+00, + 3.989305973050000e+00, + 1.737074702980000e-01, + 5.998708724980000e+00, + -5.790458679200000e+00, + 1.549964994190000e-01, + 2.391605377200000e-01, + -4.955564975740000e+00, + -6.877804279330000e+00, + 7.045239925380000e+00, + -2.831431925300000e-01, + -1.255798220630000e+00, + -3.892827034000000e+00, + 3.405135869980000e+00, + -3.594988822940000e+00, + 9.960356712339999e+00, + -3.222898483280000e+00, + -6.022405147550000e+00, + 9.390080451970000e+00, + -5.402543544770000e+00, + -7.142669200900000e+00, + -1.032010689380000e-01, + 5.654355525970000e+00, + -3.465439319610000e+00, + -2.976941108700000e+00, + -5.517769813540000e+00, + 5.065069198610000e+00, + 1.572151184080000e+00, + 1.370928645130000e+00, + 1.741267085080000e+00, + 1.054299235340000e+00, + 1.468948960300000e+00, + -1.550240635870000e+00, + 5.866406440730000e+00, + 4.906761169430000e+00, + -6.827101111410000e-01, + -2.852779388430000e+00, + 2.712430357930000e-01, + 2.608598232270000e+00, + -3.664901971820000e+00, + 4.814825534820000e+00, + 2.591108977790000e-01, + 6.594043731690000e+00, + -1.350747942920000e+00, + -7.331921458240001e-01, + -5.164865970610000e+00, + -5.672276496890000e+00, + -2.466006755830000e+00, + -4.577486515050000e+00, + 7.704666256900000e-01, + 1.370525360110000e+00, + 1.984348416330000e+00, + 1.415198326110000e+00, + -1.301949262620000e+00, + 7.188507080080000e+00, + -9.692342281340000e-01, + 5.724986553190000e+00, + -3.728035926820000e+00, + 5.098777413370000e-01, + 3.461325407030000e+00, + -9.749293923380000e-01, + -7.541623115540000e+00, + 7.739341259000000e+00, + -3.674238920210000e+00, + -9.574558734890000e-01, + -2.023787498470000e+00, + -5.983804702760000e+00, + -4.998604655270000e-01, + -1.667236208920000e+00, + 1.096979737280000e+00, + 4.772167682650000e+00, + -1.419352889060000e+00, + 7.555435299870000e-01, + 5.822661399840000e+00, + 5.408339023590000e+00, + -1.783927559850000e+00, + -3.794265270230000e+00, + 4.166584491730000e+00, + -6.595343351360000e-01, + 6.691339969640000e+00, + 1.345155835150000e+00, + 1.159999847410000e+00, + -1.945879697800000e+00, + 5.080830574040000e+00, + 8.489680290220000e-01, + 1.267084598540000e+00, + -6.822276592250000e+00, + -4.690295219420000e+00, + -1.156268119810000e+00, + 1.669343113900000e+00, + -6.606499195100000e+00, + 6.314473152160000e+00, + 2.659803926940000e-01, + 2.139336347580000e+00, + -4.153054714200000e+00, + -5.627766609190000e+00, + -4.810369014740000e+00, + -3.282791137700000e+00, + -4.215931892400000e+00, + -2.858043193820000e+00, + -2.745479345320000e+00, + -1.729879617690000e+00, + -4.935076713560000e+00, + 2.743415117260000e+00, + 5.161923885350000e+00, + -7.616626620290000e-01, + 1.295434236530000e+00, + 1.431820750240000e+00, + 1.819167733190000e+00, + 1.438184261320000e+00, + 1.063621759410000e+00, + -1.707762360570000e+00, + 6.117855072020000e+00, + 5.043306827550000e+00, + -7.810199856760000e-01, + -3.338997840880000e+00, + 1.682856082920000e-01, + 2.517547845840000e+00, + -3.618684053420000e+00, + 5.171360015870000e+00, + 5.891167521480000e-01, + 6.523744106290000e+00, + -1.326358437540000e+00, + -6.992691755290000e-01, + -5.261827468870000e+00, + -5.796857357030000e+00, + -2.409811735150000e+00, + -4.631491184230000e+00, + 1.301396608350000e+00, + 1.803564190860000e+00, + 1.367305278780000e+00, + 1.739980459210000e+00, + -1.862310409550000e+00, + 6.440968036650000e+00, + -5.025672316549999e-01, + 4.878562450410000e+00, + -3.274286270140000e+00, + 1.054197788240000e+00, + 2.647123098370000e+00, + -8.590523600580000e-01, + -7.551158428190000e+00, + 8.369006156919999e+00, + -3.581058979030000e+00, + -2.430473327640000e+00, + -5.308111310010000e-01, + -4.850210189820000e+00, + -2.549603462220000e+00, + -2.812146186830000e+00, + 1.548417687420000e+00, + 5.648779392240000e+00, + -1.156248092650000e+00, + 2.046380043030000e-01, + 5.176088333130000e+00, + 6.129835605620000e+00, + -1.983587861060000e+00, + -3.803421974180000e+00, + 3.294424772260000e+00, + -3.531632125380000e-01, + 6.447910308840000e+00, + 3.650542199610000e-01, + 8.744339942929999e-01, + -1.857466101650000e+00, + 6.351922035220000e+00, + 1.361995577810000e+00, + 1.569740176200000e+00, + -6.985902309420000e+00, + -5.123105049130000e+00, + -1.358283281330000e+00, + 2.371404409410000e+00, + -4.980895042420000e+00, + 4.278896808620000e+00, + 3.650147318840000e-01, + 1.980126619340000e+00, + -5.019304752350000e+00, + -6.081542968750000e+00, + -5.525015830990000e+00, + -3.010820388790000e+00, + -4.606997966770000e+00, + -3.579359054570000e+00, + -1.752709746360000e+00, + -6.778279542920000e-01, + -3.260631084440000e+00, + 1.976922154430000e+00, + 4.729544639590000e+00, + -6.778669953350001e-01, + -5.555111169820000e-01, + -3.298893570900000e-01, + -7.378429174420000e-02, + -9.116903543470000e-01, + -2.938808500770000e-01, + -1.693309545520000e+00, + -1.183264613150000e+00, + 3.970899283890000e-01, + 2.840255975720000e+00, + -7.736287266020000e-02, + 6.830535531040000e-01, + -6.862761974329999e-01, + -1.438394069670000e+00, + -5.275877714160000e-01, + 2.883625030520000e+00, + 6.862332224850000e-01, + -4.533689841630000e-02, + -1.281988501550000e+00, + 9.913712143900000e-01, + -3.148270845410000e+00, + -1.209944248200000e+00, + 3.531694412230000e+00, + 1.224935427310000e-01, + 4.701213911180000e-02, + -1.395043134690000e+00, + 3.040913641450000e-01, + -1.728056192400000e+00, + -1.099443793300000e+00, + 1.350225210190000e+00, + -3.968356847760000e-01, + -1.405696570870000e-01, + 1.505907773970000e+00, + -7.509233951570000e-01, + -3.622016429900000e+00, + -1.605861663820000e+00, + 3.167846500870000e-01, + 1.276782900090000e-01, + -8.980429172520000e-01, + 3.570888996120000e+00, + 3.510241985320000e+00, + 2.254290819170000e+00, + 1.121942639350000e+00, + -4.174270927910000e-01, + 7.600882053380000e-01, + -1.559949636460000e+00, + 3.315561771390000e+00, + 3.832141160960000e-01, + 1.205288648610000e+00, + -1.417501807210000e+00, + -1.971650123600000e+00, + -1.792235851290000e+00, + 3.210432231430000e-01, + 1.432797074320000e+00, + 7.987253069880000e-01, + -4.027848243710000e-01, + -1.073088049890000e+00, + -2.852117061610000e+00, + 2.878026068210000e-01, + -2.949896156790000e-01, + 9.052306413650000e-01, + -1.001466393470000e+00, + 2.171827852730000e-01, + -3.143091201780000e-01, + -4.552832126620000e+00, + -2.777577161790000e+00, + 7.402789592740000e-01, + -1.818895637990000e-01, + 2.178518474100000e-01, + -3.976602315900000e+00, + 7.934391498570000e-01, + -3.169739484790000e+00, + 3.755717515950000e+00, + 3.780253171920000e+00, + -1.952360630040000e+00, + 3.019173383710000e+00, + 9.139544367790000e-01, + 5.623523592950000e-01, + -7.591599226000000e-01, + -2.878443479540000e+00, + -1.941582411530000e-01, + -1.855341196060000e-01, + 1.876677013930000e-02, + -8.167389631270000e-01, + -6.421926021580000e-01, + -2.040636062620000e+00, + -1.145428180690000e+00, + 4.652029573920000e-01, + 2.649571418760000e+00, + 3.536550104620000e-01, + 1.103283092380000e-01, + -9.847731590270000e-01, + -1.280147075650000e+00, + -4.820465147500000e-01, + 2.745271682740000e+00, + 6.973745822910000e-01, + -4.226648509500000e-01, + -8.543949723240000e-01, + 8.476914763450000e-01, + -3.017948150630000e+00, + -9.149519205090000e-01, + 3.778057336810000e+00, + -3.382620811460000e-01, + -5.371284484860001e-01, + -5.255602002140000e-01, + -1.044587492940000e+00, + -1.518146157260000e+00, + -8.659043908120000e-01, + 2.427866935730000e+00, + 4.413965940480000e-01, + -1.123917818070000e+00, + 2.979647815230000e-01, + 5.440920218830000e-02, + -3.309914588930000e+00, + -2.167618274690000e+00, + -1.576778739690000e-01, + 1.501894593240000e+00, + 5.738430023190000e-01, + 3.708057403560000e+00, + 2.576043128970000e+00, + 2.966889858250000e+00, + 5.270739197730000e-01, + -2.189615249630000e+00, + 2.515657424930000e+00, + -1.823722481730000e+00, + 4.332391738890000e+00, + -8.092086911200000e-01, + 4.781741499900000e-01, + -1.305265188220000e+00, + -1.681215763090000e+00, + 1.139489486810000e-01, + 4.479228258130000e-01, + 1.972522497180000e+00, + 1.974849939350000e+00, + -1.094830781220000e-01, + -4.776065945630000e-01, + -2.199397325520000e+00, + -3.616246283050000e-01, + 5.222746133800000e-01, + 1.108005523680000e+00, + 1.693737953900000e-01, + 5.050907284020000e-02, + -1.893523633480000e-01, + -3.355259180070000e+00, + -1.527773261070000e+00, + 7.048032283780000e-01, + -5.277884006500000e-01, + 1.571360528470000e-01, + -3.723296165470000e+00, + 1.208041548730000e+00, + -2.533532142640000e+00, + 4.760262489320000e+00, + 4.077022552490000e+00, + -2.915964841840000e+00, + 2.728641271590000e+00, + -1.061435580250000e+00, + 7.600077390670000e-01, + -2.031374931340000e+00, + -1.243263125420000e+00, + 7.533392310140000e-02, + 2.892326377330000e-02, + -1.792126744990000e-01, + 3.731264173980000e-02, + 8.236933499570000e-02, + -5.897531509400000e-01, + -5.154462814330000e+00, + 7.478722333910000e-01, + 6.375545501710000e+00, + -4.042031288150000e+00, + 3.217340469360000e+00, + -3.599669694900000e+00, + -2.232676982880000e+00, + -3.561502933500000e+00, + 4.301519870760000e+00, + -1.165921330450000e+00, + 7.161201000210000e+00, + 5.006668567660000e+00, + -5.878349304200000e+00, + -2.037844419480000e+00, + 9.816513061520000e+00, + -7.119084358220000e+00, + 6.160444021220000e-01, + 9.388839006420000e-01, + -3.476987481120000e-01, + 6.866555213930000e-01, + -1.988154530530000e+00, + -5.885684967040000e+00, + 6.518738746640000e+00, + 2.600268840790000e+00, + -3.972009181980000e+00, + 3.462747097020000e+00, + -2.823431015010000e+00, + 4.207163333890000e+00, + -2.185002803800000e+00, + -1.402197122570000e+00, + -4.577580451970000e+00, + 1.038029575350000e+01, + 7.564914226530000e+00, + -9.431564331050000e+00, + 5.999753475190000e+00, + -4.862218379970000e+00, + -2.662401437760000e+00, + 3.071881055830000e+00, + -1.606698870660000e+00, + 4.502219676970000e+00, + 1.339416861530000e+00, + -1.608181238170000e+00, + -8.455922603610000e-01, + -9.231096506120000e-01, + 3.657840192320000e-02, + 3.556635856630000e+00, + -3.107715368270000e+00, + 3.590549230580000e+00, + -5.211056023840000e-02, + 4.713917255400000e+00, + -6.018323898320000e+00, + 1.644545197490000e-01, + 2.260878309610000e-02, + -6.171324253080000e+00, + -6.821320056920000e+00, + 7.675148010250000e+00, + 6.251649856570000e-01, + 1.118467897180000e-01, + -5.453937053680000e+00, + 2.582962751390000e+00, + -2.950073719020000e+00, + 9.441161155700000e+00, + -4.501870155330000e+00, + -6.078215122220000e+00, + 1.003253269200000e+01, + -6.928444385530000e+00, + -6.924324035640000e+00, + -3.361725509170000e-01, + 6.794350147250000e+00, + -2.808108091350000e+00, + -3.479196548460000e+00, + -6.062091827390000e+00, + 6.952423095700000e+00, + 1.911979913710000e-01, + -4.339904785160000e-01, + 4.062831029300000e-02, + 1.251082867380000e-01, + 5.889948606490000e-01, + -1.205259323120000e+00, + -6.974465370180000e+00, + 6.915504336360000e-01, + 7.710298538210000e+00, + -4.074798107150000e+00, + 3.428058147430000e+00, + -3.652728080750000e+00, + -2.509959220890000e+00, + -3.486956357960000e+00, + 4.521908760070000e+00, + -1.521224141120000e+00, + 7.660755157470000e+00, + 5.001043796540000e+00, + -5.849958896640000e+00, + -2.141357421880000e+00, + 9.521028518680000e+00, + -6.961742401120000e+00, + 5.269556045529999e-01, + -4.923182427880000e-01, + -4.104254543780000e-01, + 5.092740654950000e-01, + -1.507792711260000e+00, + -5.407081127170000e+00, + 7.067084789280000e+00, + 1.558232426640000e+00, + -3.932353973390000e+00, + 4.262004852290000e+00, + -2.397834777830000e+00, + 5.000458240510000e+00, + -6.415647864339999e-01, + -1.054260969160000e+00, + -4.346839427950000e+00, + 1.125555992130000e+01, + 7.786410331730000e+00, + -8.479247093200000e+00, + 6.889047145840000e+00, + -4.177134990690000e+00, + -3.072403669360000e+00, + 2.050656557080000e+00, + -1.154656615110000e-02, + 2.719929695130000e+00, + 6.567515730860000e-01, + -2.253310918810000e+00, + -7.179123759270000e-01, + -2.039263248440000e+00, + 4.867934882640000e-01, + 4.041619777680000e+00, + -1.874655485150000e+00, + 4.079894542690000e+00, + 5.006472766400000e-02, + 4.507392406460000e+00, + -5.480741024020000e+00, + 8.257406353950000e-01, + 1.216040968890000e+00, + -3.560653924940000e+00, + -6.242146968840000e+00, + 7.954559326170000e+00, + 1.003796160220000e-01, + -4.732539653780000e-01, + -5.413932323460000e+00, + 2.355250597000000e+00, + -1.410190463070000e+00, + 9.274868011470000e+00, + -3.763578891750000e+00, + -6.520598888400000e+00, + 1.066112232210000e+01, + -6.200549602510000e+00, + -8.849045753480000e+00, + -7.170417308810000e-01, + 5.844859123230000e+00, + -3.225098371510000e+00, + -3.031507253650000e+00, + -5.672117233280000e+00, + 6.296144962310000e+00, + 1.408712387080000e+00, + 1.330601572990000e+00, + 1.553668141370000e+00, + 1.250083565710000e+00, + 1.433016300200000e+00, + -1.722669005390000e+00, + 5.492329120640000e+00, + 4.798460006710000e+00, + -1.463286638260000e+00, + -3.326886653900000e+00, + 3.312287330630000e-01, + 2.229679822920000e+00, + -3.593768119810000e+00, + 5.374632358550000e+00, + 1.912527680400000e-01, + 6.941813945770000e+00, + -1.400635123250000e+00, + -6.934764981270000e-01, + -5.263856410980000e+00, + -5.728487491610000e+00, + -2.343961715700000e+00, + -4.709889888760000e+00, + 2.138897418980000e+00, + 1.601196408270000e+00, + 1.357770919800000e+00, + 1.783958673480000e+00, + -2.263634443280000e+00, + 6.091567993160000e+00, + -1.441237479450000e-01, + 5.016621112820000e+00, + -3.570915460590000e+00, + -4.295496344570000e-01, + 3.506475448610000e+00, + -1.444958090780000e+00, + -6.937964439390000e+00, + 8.423451423650000e+00, + -3.510661363600000e+00, + -1.686567306520000e+00, + -9.906849265100000e-01, + -6.629199028020000e+00, + 3.287675976750000e-01, + -3.392105400560000e-01, + 2.349427700040000e+00, + 4.850778102870000e+00, + -1.409703969960000e+00, + 5.124243497850000e-01, + 4.749118328090000e+00, + 6.354959487920000e+00, + -2.354006528850000e+00, + -4.339942932130000e+00, + 4.924449443820000e+00, + 1.189242243770000e+00, + 6.049334526060000e+00, + 1.498126626010000e+00, + 1.454499363900000e+00, + -3.664168417450000e-01, + 5.925599098210000e+00, + 5.835129022600000e-01, + 5.317524671550000e-01, + -5.690930843350000e+00, + -4.061008453370000e+00, + -1.713792800900000e+00, + 2.564160108570000e+00, + -5.805832862850000e+00, + 6.347450256350000e+00, + 1.582316905260000e-01, + 2.909689903260000e+00, + -3.701941013340000e+00, + -7.030683040620000e+00, + -5.084666728970000e+00, + -2.420145750050000e+00, + -4.655034542080000e+00, + -2.968966007230000e+00, + -1.260589957240000e+00, + -7.245765924449999e-01, + -2.872904539110000e+00, + 3.260702610020000e+00, + 8.276995658870000e+00, + -7.607557773590000e-01, + 1.646934151650000e+00, + 1.151171803470000e+00, + 1.409125447270000e+00, + 1.381126642230000e+00, + 1.221598863600000e+00, + -1.483749151230000e+00, + 5.478509902950000e+00, + 5.006187915800000e+00, + -1.124838232990000e+00, + -3.252828359600000e+00, + 2.386705726390000e-01, + 2.996045827870000e+00, + -3.483236074450000e+00, + 5.091723442080000e+00, + 2.065988034010000e-01, + 6.386744976040000e+00, + -1.984258890150000e+00, + -8.018487691880000e-01, + -5.225904941560000e+00, + -5.635106086730000e+00, + -2.667061567310000e+00, + -4.608447074890000e+00, + 1.224670290950000e+00, + 1.479526519780000e+00, + 1.685258507730000e+00, + 1.709878325460000e+00, + -1.674167156220000e+00, + 6.494757652280000e+00, + -4.711874574420000e-02, + 4.391901493070000e+00, + -2.564238071440000e+00, + 3.054814934730000e-01, + 3.072136163710000e+00, + 3.882072120900000e-02, + -5.674195289610000e+00, + 7.865510940550000e+00, + -3.578675746920000e+00, + -1.677087903020000e+00, + -1.194317221640000e+00, + -6.621387481690000e+00, + -5.814632773400000e-01, + -2.156057357790000e+00, + 2.330911397930000e+00, + 5.840884208680000e+00, + -1.294960498810000e+00, + 7.980622649190000e-01, + 5.434998512270000e+00, + 6.316077232360000e+00, + -1.737533807750000e+00, + -3.996978282930000e+00, + 4.553771495820000e+00, + -9.445922374730000e-01, + 6.817567348480000e+00, + 4.802477359770000e-01, + 1.319814443590000e+00, + -1.376053690910000e+00, + 6.278279304500000e+00, + 1.863559007640000e+00, + 1.509719967840000e+00, + -6.924372196200000e+00, + -4.614147663120000e+00, + -2.354730367660000e+00, + 1.362033367160000e+00, + -4.865090847020000e+00, + 5.531822681430000e+00, + 7.172224521640000e-01, + 2.609292268750000e+00, + -5.120464324950000e+00, + -6.081662178040000e+00, + -4.666254997250000e+00, + -2.173604965210000e+00, + -4.354533195500000e+00, + -2.432741642000000e+00, + -1.120341777800000e+00, + -1.015038728710000e+00, + -4.319487571720000e+00, + 2.813520431520000e+00, + 5.693945407870000e+00, + -1.348857998850000e+00, + -3.291390836240000e-01, + -3.295750021930000e-01, + -1.294474005700000e+00, + -4.715679883960000e-01, + -2.826111614700000e-01, + -1.830350756650000e+00, + -4.770945310590000e-01, + 5.461227893830000e-01, + 2.417098760600000e+00, + 2.653700709340000e-01, + 4.185563921930000e-01, + -5.588743090630000e-01, + -1.165185332300000e+00, + -8.763887882230000e-01, + 2.772321462630000e+00, + 1.511671900750000e+00, + 1.086292508990000e-02, + -1.136709570880000e+00, + 6.621801853180000e-01, + -3.066671133040000e+00, + -7.840686440470001e-01, + 3.518203020100000e+00, + -9.453541636470000e-01, + -4.558439552780000e-02, + -3.844605982300000e-01, + 2.040301710370000e-01, + -1.583168864250000e+00, + -1.432260870930000e+00, + 1.617575764660000e+00, + -1.161618471150000e+00, + -6.483426690100000e-01, + 1.246702484790000e-02, + -1.373066455130000e-01, + -2.727685451510000e+00, + -1.298907160760000e+00, + -6.007188558580000e-01, + 1.377289652820000e+00, + -7.538849860430000e-02, + 4.247719287870000e+00, + 3.367879867550000e+00, + 2.537736177440000e+00, + 1.214612960820000e+00, + -1.458450913430000e+00, + 1.117115020750000e+00, + -1.358309149740000e+00, + 4.646035194400000e+00, + 6.364592909810000e-01, + 6.411575078960000e-01, + -1.707799911500000e+00, + -2.629109144210000e+00, + 5.970401167870000e-01, + 8.294795453550000e-02, + 2.581402301790000e+00, + 2.017888069150000e+00, + -4.082108736040000e-01, + -1.893518805500000e+00, + -2.578913211820000e+00, + -8.612202405930000e-01, + -1.427011787890000e-01, + 1.466630816460000e+00, + 1.026731848720000e+00, + -2.063872963190000e-01, + -1.501067541540000e-02, + -3.785279512410000e+00, + -1.922982096670000e+00, + 2.698925435540000e-01, + -9.698164463040000e-01, + -2.171320676800000e+00, + -4.004188060760000e+00, + 1.175640583040000e+00, + -3.323273897170000e+00, + 3.737634420390000e+00, + 3.936239242550000e+00, + -2.727802038190000e+00, + 2.510600328450000e+00, + 4.554682970050000e-01, + 1.076045989990000e+00, + -1.081023335460000e+00, + -1.117617130280000e+00, + -3.648227453230000e-01, + -4.908444881440000e-01, + -2.793425917630000e-01, + -1.433953493830000e-01, + -6.863168478010000e-01, + -1.703401327130000e+00, + -1.773920774460000e+00, + 4.781937897210000e-01, + 2.104762554170000e+00, + 4.091957807540000e-01, + 4.772494733330000e-01, + -3.689348995690000e-01, + -1.040958285330000e+00, + -7.042960524560000e-01, + 2.814339637760000e+00, + 5.485790371890000e-01, + 5.987138301130000e-02, + -9.459182620050000e-01, + 9.598814249040000e-01, + -2.739561557770000e+00, + -7.083235383030000e-01, + 3.363852262500000e+00, + 5.855816602710000e-01, + -9.422352910040001e-01, + -4.722138345240000e-01, + -7.747724652290000e-01, + -2.385700225830000e+00, + 2.644650340080000e-01, + 1.602557301520000e+00, + -5.915935635570000e-01, + -2.009948015210000e+00, + -4.028382152320000e-02, + -2.008543491360000e+00, + -2.166057586670000e+00, + -2.434078693390000e+00, + 5.318207144740000e-01, + 3.161577284340000e-01, + -7.201538085940000e-01, + 4.755273342130000e+00, + 4.114557743070000e+00, + 2.497914314270000e+00, + 9.275775551800000e-01, + -2.859632492070000e+00, + 3.023431301120000e+00, + -1.181816816330000e+00, + 4.753129005430000e+00, + 4.920036494730000e-01, + 2.399850934740000e-01, + -1.734828233720000e+00, + -2.203058719640000e+00, + 3.768896684050000e-02, + 2.394702434540000e-01, + 1.349102497100000e+00, + 2.035860776900000e+00, + -4.811404943470000e-01, + -8.000428080560000e-01, + -1.366429448130000e+00, + 1.019918322560000e+00, + 5.566606521610000e-01, + 2.100549697880000e+00, + -9.632523059840000e-01, + 2.070314884190000e-01, + -3.909896016120000e-01, + -4.631559848790000e+00, + -2.422127008440000e+00, + 8.700737953190000e-01, + -1.095808386800000e+00, + 3.856000006200000e-01, + -3.877094984050000e+00, + 2.851466178890000e+00, + -3.331099510190000e+00, + 4.212407112120000e+00, + 2.822232961650000e+00, + -2.285666227340000e+00, + 2.632010698320000e+00, + -2.647916376590000e-01, + -6.767686605450000e-01, + -1.029292702670000e+00, + -8.503910303120000e-01, + 5.554163828490000e-02, + -1.321585774420000e-01, + 9.089687466620000e-02, + 5.237823352220000e-02, + 1.925007402900000e-01, + 3.618775904180000e-01, + -5.657768726350000e+00, + 2.150470614430000e-01, + 6.811480522160000e+00, + -3.930542707440000e+00, + 3.441610574720000e+00, + -3.111630916600000e+00, + -2.437211275100000e+00, + -3.472612619400000e+00, + 4.562248229980000e+00, + -1.408289074900000e+00, + 7.262916088100000e+00, + 5.507205486300000e+00, + -5.873746871950000e+00, + -2.196759462360000e+00, + 9.934128761289999e+00, + -7.114964008330000e+00, + -9.616874456409999e-01, + 7.053551673889999e-01, + -2.455954104660000e-01, + 7.118467707190000e-03, + -1.841511964800000e+00, + -6.717006206510000e+00, + 6.528276920320000e+00, + 1.164756894110000e+00, + -3.610614538190000e+00, + 4.141798973080000e+00, + -2.525046348570000e+00, + 4.544708728790000e+00, + -1.280376434330000e+00, + -1.392637133600000e+00, + -3.709447383880000e+00, + 1.161017036440000e+01, + 8.111423492429999e+00, + -7.650340080260000e+00, + 7.609192848210000e+00, + -4.461864948270000e+00, + -4.394440650940000e+00, + 1.678553342820000e+00, + -5.284370779990000e-01, + 5.067655086520000e+00, + 7.547786235810000e-01, + -2.524593353270000e+00, + -7.537587881090000e-01, + -2.185599088670000e+00, + 4.360207617280000e-01, + 3.527006864550000e+00, + -1.312807440760000e+00, + 3.091329813000000e+00, + 7.515816092490000e-01, + 5.175078392030000e+00, + -5.726496219640000e+00, + -5.335188508030000e-01, + -9.500972926619999e-02, + -4.631457328800000e+00, + -7.092266082760000e+00, + 8.286897659299999e+00, + 1.160637214780000e-01, + -1.333172917370000e+00, + -4.882795810700000e+00, + 1.548201799390000e+00, + -2.158165693280000e+00, + 9.290102005000000e+00, + -3.320759773250000e+00, + -6.719232559200000e+00, + 9.922569274900001e+00, + -5.758171558380000e+00, + -8.673419952390001e+00, + -1.417671330270000e-02, + 7.926457405090000e+00, + -4.250757217410000e+00, + -3.262195587160000e+00, + -5.500336647030000e+00, + 5.732253551480000e+00, + 1.270689722150000e-02, + 9.807932376860000e-02, + -1.146323457360000e-01, + -2.733109891410000e-02, + 2.067204564810000e-01, + -6.221219897269999e-01, + -5.655088901520000e+00, + 7.300373911860000e-01, + 6.912644386290000e+00, + -4.143374443050000e+00, + 3.345244646070000e+00, + -3.948922157290000e+00, + -2.318834781650000e+00, + -3.680086851120000e+00, + 4.764153957370000e+00, + -1.117748737340000e+00, + 7.216164588930000e+00, + 5.262718200680000e+00, + -5.730679512020000e+00, + -2.063675165180000e+00, + 9.267627716060000e+00, + -7.047986507420000e+00, + 1.372022181750000e-01, + -2.297677695750000e-01, + -9.241848587990000e-01, + -2.971177697180000e-01, + -6.965315938000000e-01, + -5.314110279080000e+00, + 6.734326839450000e+00, + 3.980807065960000e-01, + -3.470268011090000e+00, + 3.762186527250000e+00, + -3.430819511410000e+00, + 3.945816516880000e+00, + -1.289961814880000e+00, + -1.787600040440000e+00, + -4.848979473110000e+00, + 1.094388961790000e+01, + 8.327147483830000e+00, + -8.960216522220000e+00, + 7.112132549290000e+00, + -3.644971847530000e+00, + -4.013739585880000e+00, + 2.237066507340000e+00, + -9.309355616570000e-01, + 3.597553014760000e+00, + 5.999256968500000e-01, + -1.629580736160000e+00, + -6.989900469780000e-01, + -5.225468873980000e-01, + -6.029301881790000e-01, + 3.837098598480000e+00, + -1.917330861090000e+00, + 2.752155303960000e+00, + 9.244228005410000e-01, + 4.988655567170000e+00, + -6.387087821960000e+00, + -3.898605704310000e-01, + 8.326126262550001e-03, + -4.739839077000000e+00, + -7.124464988710000e+00, + 7.777721881870000e+00, + 3.870110809800000e-01, + -1.508833527560000e+00, + -5.246834754940000e+00, + 1.677980899810000e+00, + -2.959605932240000e+00, + 9.968907356260001e+00, + -2.943041086200000e+00, + -5.311382293700000e+00, + 1.090503978730000e+01, + -6.392045497890000e+00, + -8.783144950870000e+00, + 4.513978362080000e-01, + 8.279489517209999e+00, + -1.945955753330000e+00, + -3.795212030410000e+00, + -4.940514087680000e+00, + 5.529513835910000e+00, + 1.589254975320000e+00, + 1.153872489930000e+00, + 1.457257747650000e+00, + 1.268037915230000e+00, + 1.770825266840000e+00, + -2.252428054810000e+00, + 6.118587970730000e+00, + 5.108336925510000e+00, + -7.860685586930000e-01, + -3.312520742420000e+00, + -3.149600625040000e-01, + 2.415111064910000e+00, + -3.561418294910000e+00, + 5.194909095760000e+00, + 2.694991528990000e-01, + 6.609729290010000e+00, + -1.438742876050000e+00, + -1.227079868320000e+00, + -5.117980003360000e+00, + -5.774050235750000e+00, + -2.632202386860000e+00, + -4.376962184910000e+00, + 2.047309637070000e+00, + 1.372142553330000e+00, + 1.089721083640000e+00, + 1.362773060800000e+00, + -2.442617654800000e+00, + 6.005300998690000e+00, + -1.646617531780000e+00, + 6.501169204710000e+00, + -3.999515771870000e+00, + 5.573147535320000e-01, + 3.284657001500000e+00, + -5.187174677850001e-01, + -6.731857299800000e+00, + 7.253633022310000e+00, + -5.074839591980000e+00, + -6.737388372420000e-01, + -6.127996444700000e-01, + -4.744894504550000e+00, + -1.442471981050000e+00, + -1.178629994390000e+00, + 1.635723829270000e+00, + 4.424248695370000e+00, + 2.056232839820000e-01, + 7.730088233950000e-01, + 4.911166191100000e+00, + 5.533934593200000e+00, + -1.546863913540000e+00, + -4.690528392790000e+00, + 3.695420742030000e+00, + 4.626674354080000e-01, + 6.589668273930000e+00, + 3.755995929240000e-01, + 3.781806230550000e-01, + -5.334931612010000e-01, + 5.858941078190000e+00, + 1.268480420110000e+00, + 1.273582458500000e+00, + -5.870496273040000e+00, + -5.240719795230000e+00, + -2.259988546370000e+00, + 7.925862073900000e-01, + -5.171065807340000e+00, + 6.600338459010000e+00, + 1.535264730450000e+00, + 1.622284770010000e+00, + -3.741224765780000e+00, + -5.217480182650000e+00, + -5.701807498930000e+00, + -3.117953777310000e+00, + -4.284028053280000e+00, + -3.249784708020000e+00, + -2.680121898650000e+00, + 8.315585255620001e-01, + -3.045693159100000e+00, + 7.679384350780000e-01, + 6.447442054750000e+00, + 7.341008782390001e-01, + 1.331990361210000e+00, + 1.356068611150000e+00, + 1.503592371940000e+00, + 1.600689411160000e+00, + 1.233752608300000e+00, + -1.650699853900000e+00, + 5.775249481200000e+00, + 5.049188613890000e+00, + -7.569980621340000e-01, + -3.261773347850000e+00, + 3.863231241700000e-01, + 2.947547435760000e+00, + -3.396985054020000e+00, + 5.113491535190000e+00, + 9.541392326350000e-02, + 5.619345188140000e+00, + -1.346621990200000e+00, + -8.170874714850000e-01, + -5.463477134700000e+00, + -5.725032329560000e+00, + -2.494331836700000e+00, + -4.831968307500000e+00, + 1.278699398040000e+00, + 6.358112096790000e-01, + 1.101120352750000e+00, + 2.189624071120000e+00, + -8.498659729960000e-01, + 5.615377426150000e+00, + -1.104880332950000e+00, + 6.219742298130000e+00, + -4.070986270900000e+00, + 5.309231877330000e-01, + 2.467402696610000e+00, + -1.269721984860000e+00, + -7.172744750980000e+00, + 9.188425064090000e+00, + -4.033693790440000e+00, + -1.846550464630000e+00, + -2.631559371950000e-01, + -5.241828918460000e+00, + -3.429346084590000e-01, + -2.244340419770000e+00, + 1.867926836010000e+00, + 4.778427124020000e+00, + -3.105110645290000e+00, + 2.045605331660000e-01, + 5.327509880070000e+00, + 6.713184833530000e+00, + -1.658462405200000e+00, + -3.906708002090000e+00, + 3.802996635440000e+00, + 3.265853971240000e-02, + 6.375350952150000e+00, + 8.961693644520000e-01, + 2.176851511000000e+00, + -1.084053397180000e+00, + 5.619426250460000e+00, + 1.476182341580000e+00, + 8.460703492160000e-01, + -7.251725196840000e+00, + -6.159737110140000e+00, + -1.593277215960000e+00, + 1.576595067980000e+00, + -4.778554439540000e+00, + 6.457979679110000e+00, + 3.687852621080000e-01, + 2.852306127550000e+00, + -4.316416740420000e+00, + -6.242925167080000e+00, + -5.257436275480000e+00, + -3.353823900220000e+00, + -3.614994049070000e+00, + -2.882922410960000e+00, + -1.541069030760000e+00, + -5.810965895650000e-01, + -2.805580616000000e+00, + 2.148206949230000e+00, + 5.601336479190000e+00, + 4.958170056340000e-01, + -3.404767513280000e-01, + 7.248200178150001e-01, + -4.344127476220000e-01, + -4.997253715990000e-01, + -1.689562499520000e-01, + -1.401116251950000e+00, + -1.203483104710000e+00, + -4.208081215620000e-02, + 2.576099157330000e+00, + 3.418537974360000e-01, + 5.704757571220000e-01, + -7.843486666680000e-01, + -1.243967056270000e+00, + -5.923646092410000e-01, + 2.801001310350000e+00, + 7.732521295550000e-01, + -1.138498932120000e-01, + -1.533655405040000e+00, + 9.811475872990000e-01, + -2.744853258130000e+00, + -6.931923031810000e-01, + 3.530498981480000e+00, + -3.720925152300000e-01, + -7.052775025369999e-01, + 1.264698654410000e-01, + -2.156425416470000e-01, + -1.676869869230000e+00, + -1.084548711780000e+00, + 1.730762362480000e+00, + -1.044239401820000e+00, + -3.295373022560000e-01, + 2.074619531630000e+00, + -8.012424111370000e-01, + -3.534549474720000e+00, + -9.296154379840000e-01, + -1.501647472380000e+00, + 2.935933768750000e-01, + 1.721133105460000e-02, + 3.885372161870000e+00, + 4.928676605220000e+00, + 2.718481540680000e+00, + 9.582871198650000e-01, + -1.982195377350000e+00, + 1.255221247670000e+00, + -2.555877685550000e+00, + 4.448125362400000e+00, + 1.687695533040000e-01, + 7.888797670599999e-02, + -1.882840275760000e+00, + -2.364661693570000e+00, + 4.156308174130000e-01, + -2.177757918830000e-01, + 1.985704541210000e+00, + 5.591018795970000e-01, + -2.549450159070000e+00, + -1.077230691910000e+00, + -1.515808939930000e+00, + -5.233693718910000e-01, + -4.319953322410000e-01, + 3.538635373120000e-02, + -5.769841670990000e-01, + 4.111919552090000e-02, + -8.932784199710000e-02, + -4.843652248380000e+00, + -6.363436579700000e-01, + 5.400751829150000e-01, + -1.278293132780000e-01, + -1.068015694620000e+00, + -4.480338573460000e+00, + 3.329517602920000e+00, + -3.079084157940000e+00, + 5.147035598750000e+00, + 3.121500492100000e+00, + -2.247314453120000e+00, + 2.426877737050000e+00, + 9.247756749390000e-02, + 1.055019907650000e-02, + -1.303189516070000e+00, + -1.193096280100000e+00, + -2.699902057650000e-01, + -4.530284106730000e-01, + -5.419093370440000e-01, + -1.612301915880000e-01, + -2.591050863270000e-01, + -1.869515776630000e+00, + -1.256957530980000e+00, + 1.807962656020000e-01, + 2.497161149980000e+00, + 2.273343503480000e-01, + 6.313163042070000e-01, + -1.035102367400000e+00, + -1.406070232390000e+00, + -8.026151061060000e-01, + 2.517872810360000e+00, + -1.518554538490000e-01, + 1.342071741820000e-01, + -1.226563453670000e+00, + 1.022800087930000e+00, + -3.204196929930000e+00, + -1.208161473270000e+00, + 3.490446090700000e+00, + -9.035777449610000e-01, + -5.523707866670000e-01, + -1.708865016700000e-01, + -3.865769505500000e-01, + -2.440574884410000e+00, + -6.252216100690000e-01, + 8.318328857420000e-01, + -1.247090697290000e+00, + 6.746982336040001e-01, + 1.624232888220000e+00, + -6.761099100110000e-01, + -3.213035345080000e+00, + -2.007848739620000e+00, + 3.363354802130000e-01, + 1.056477308270000e+00, + 5.246927738190000e-01, + 3.169740676880000e+00, + 3.981302022930000e+00, + 2.278284072880000e+00, + 1.301849246030000e+00, + -1.821264147760000e+00, + 1.467697620390000e+00, + -2.309582710270000e+00, + 3.488152742390000e+00, + 2.704145610330000e-01, + 7.783066034320000e-01, + -1.156983613970000e+00, + -1.410311341290000e+00, + 1.000227332120000e+00, + -4.200511574750000e-01, + 1.737480401990000e+00, + 5.380716919900000e-02, + 6.624001264569999e-02, + -1.071871757510000e+00, + -9.995563030240000e-01, + -5.439808368680000e-01, + -4.941756278280000e-02, + 7.444792985920000e-01, + 9.322877228260000e-02, + 8.591436743740000e-01, + -1.734013110400000e-01, + -3.119785547260000e+00, + -1.427860975270000e+00, + 7.201012969020000e-01, + -1.533638834950000e+00, + 7.750225812200000e-02, + -3.355949163440000e+00, + 3.806829154490000e-01, + -2.576501846310000e+00, + 4.597979068760000e+00, + 4.361583709720000e+00, + -2.093776226040000e+00, + 1.705401182170000e+00, + 2.827116250990000e-01, + 6.646757572890000e-02, + -1.246741652490000e+00, + -3.116450607780000e-01, + 3.856682479380000e-01, + 8.631351590160000e-02, + 1.911361813550000e-01, + -2.007588148120000e-01, + 2.640069089830000e-02, + -7.085543870930000e-01, + -5.847549438480000e+00, + 9.472107291220000e-01, + 6.660124778750000e+00, + -4.028543949130000e+00, + 3.314946413040000e+00, + -3.191611766820000e+00, + -2.130392551420000e+00, + -3.408746004100000e+00, + 4.471589565280000e+00, + -1.435037374500000e+00, + 7.000191688540000e+00, + 5.022292137150000e+00, + -6.617488861080000e+00, + -2.197336673740000e+00, + 9.599680900570000e+00, + -6.638475894930000e+00, + -8.137739449740000e-02, + -3.539144098760000e-01, + 3.102128952740000e-02, + 4.729707837100000e-01, + -6.149675250050000e-01, + -5.274260997770000e+00, + 7.454629421230000e+00, + 1.469564437870000e+00, + -4.634993076320000e+00, + 3.915873527530000e+00, + -3.906137704850000e+00, + 4.429530620570000e+00, + -1.550148248670000e+00, + -1.048354744910000e+00, + -5.200762748720000e+00, + 1.185185241700000e+01, + 7.796736717220000e+00, + -8.074936866760000e+00, + 6.277624607090000e+00, + -4.019647121430000e+00, + -4.269002914430000e+00, + 8.868538141250000e-01, + -4.920734465120000e-01, + 4.614604473110000e+00, + 8.782120943070000e-01, + -1.949404239650000e+00, + -5.391910672190000e-01, + -1.892738699910000e+00, + 4.967810213570000e-01, + 4.398171901700000e+00, + -1.073989152910000e+00, + 4.013291835780000e+00, + -2.576626837250000e-02, + 5.884038925170000e+00, + -6.393982410430000e+00, + -1.654244184490000e+00, + 1.136771440510000e+00, + -5.093561649320000e+00, + -7.391688823700000e+00, + 8.039278984070000e+00, + 4.645904004570000e-01, + -5.667431354519999e-01, + -5.709282398220000e+00, + 1.557714343070000e+00, + -2.201212406160000e+00, + 1.041686820980000e+01, + -4.148827075960000e+00, + -6.341408729550000e+00, + 9.028290748600000e+00, + -5.682154178620000e+00, + -8.481316566469999e+00, + 3.553633093830000e-01, + 6.970251560210000e+00, + -3.800312280650000e+00, + -3.092834472660000e+00, + -5.772645473480000e+00, + 6.257605552670000e+00, + 2.070402801040000e-01, + 1.140365228060000e-01, + 6.405055522920000e-03, + 3.774543851610000e-02, + 2.259187698360000e-01, + -6.282648444180000e-01, + -5.657658576970000e+00, + 9.638999104500000e-01, + 6.857009410860000e+00, + -4.078164577480000e+00, + 3.436741113660000e+00, + -2.990951299670000e+00, + -1.938542246820000e+00, + -4.117931842800000e+00, + 4.512578010560000e+00, + -1.212947607040000e+00, + 7.002193927760000e+00, + 4.619898319240000e+00, + -6.924771785740000e+00, + -2.058803796770000e+00, + 9.668208122250000e+00, + -7.080355167390000e+00, + -6.890015602110000e-01, + -7.006149888040000e-01, + -6.816285252570000e-01, + 5.814548730850000e-01, + -1.156658291820000e+00, + -5.506979942320000e+00, + 6.414340972900000e+00, + 1.989816427230000e+00, + -3.938272714610000e+00, + 3.469731569290000e+00, + -3.144382476810000e+00, + 4.694252967830000e+00, + -1.651367425920000e+00, + -1.472275257110000e+00, + -5.203439712520000e+00, + 1.121520996090000e+01, + 8.324109077450000e+00, + -8.688277244569999e+00, + 8.002914428710000e+00, + -3.811200141910000e+00, + -3.363606929780000e+00, + 2.575697600840000e-01, + -1.047490119930000e+00, + 3.636189699170000e+00, + 8.333180099730000e-02, + -2.675207614900000e+00, + -7.781807780270000e-01, + -2.578512430190000e+00, + 6.617766618730000e-01, + 4.073043823240000e+00, + -2.988106727600000e+00, + 4.565635204320000e+00, + -6.591743826870000e-01, + 4.887753009800000e+00, + -6.241156578060000e+00, + -2.635718137030000e-02, + -6.172174960370000e-02, + -4.840629577640000e+00, + -7.604860305790000e+00, + 7.839927196500000e+00, + 7.585130929950000e-01, + -1.502299785610000e+00, + -5.145059585570000e+00, + 3.282446146010000e+00, + -1.694171786310000e+00, + 8.517090797420000e+00, + -3.759178876880000e+00, + -5.784457206730000e+00, + 1.013809680940000e+01, + -5.831780910490000e+00, + -8.287392616269999e+00, + -2.069077342750000e-01, + 5.354195594790000e+00, + -3.154473543170000e+00, + -3.306763648990000e+00, + -4.218659400940000e+00, + 6.151545524600000e+00, + 7.587473988530000e-01, + 1.276697635650000e+00, + 2.307249546050000e+00, + 8.932021856310000e-01, + 1.541481375690000e+00, + -1.632863163950000e+00, + 5.953119277950000e+00, + 4.927011489870000e+00, + -2.865339815620000e-01, + -3.264307737350000e+00, + 2.156029492620000e-01, + 2.491646051410000e+00, + -3.305693626400000e+00, + 4.983652591710000e+00, + 1.970613300800000e-01, + 6.438731193540000e+00, + -1.116210341450000e+00, + -8.487282395360000e-01, + -4.679086685180000e+00, + -5.729883670810000e+00, + -2.486171483990000e+00, + -4.212764739990000e+00, + 1.258484125140000e+00, + 1.744027018550000e+00, + 1.374780297280000e+00, + 1.427624225620000e+00, + -1.239067673680000e+00, + 6.148571491240000e+00, + -5.306208729740000e-01, + 5.017844676970000e+00, + -1.752548575400000e+00, + 1.937966495750000e-01, + 3.202233791350000e+00, + -6.643673777580000e-01, + -6.587509632110000e+00, + 7.059974193570000e+00, + -3.551862478260000e+00, + -1.033790111540000e+00, + -1.208907604220000e+00, + -5.428518772130000e+00, + -5.756591558460000e-01, + -3.178740024570000e+00, + 1.484457731250000e+00, + 5.400124549870000e+00, + -2.357695341110000e+00, + -2.004752457140000e-01, + 5.512414455410000e+00, + 6.294980525970000e+00, + -2.037185907360000e+00, + -3.935498714450000e+00, + 3.988786220550000e+00, + 6.154634952550000e-01, + 6.917885780330000e+00, + 1.003918766980000e+00, + 1.517587423320000e+00, + -2.434299707410000e+00, + 5.836624145510000e+00, + 3.469113409520000e-01, + 1.070197939870000e+00, + -6.738178253170000e+00, + -5.105998039250000e+00, + -1.255998849870000e+00, + 1.255091667180000e+00, + -5.794171333310000e+00, + 4.344939708710000e+00, + 4.911222159860000e-01, + 1.526077985760000e+00, + -3.332497835160000e+00, + -6.936661720280000e+00, + -4.816120147710000e+00, + -2.065205812450000e+00, + -4.633279800420000e+00, + -2.003386974330000e+00, + -8.440471887590000e-01, + -9.371584653850000e-01, + -3.754917621610000e+00, + 2.333451986310000e+00, + 5.868804454800000e+00, + -4.753572344780000e-01, + 1.690335512160000e+00, + 1.334511160850000e+00, + 1.273965954780000e+00, + 1.205859541890000e+00, + 1.214739084240000e+00, + -1.599870204930000e+00, + 5.906758308410000e+00, + 4.513576507570000e+00, + -9.596667885780000e-01, + -3.254086017610000e+00, + 4.852694273000000e-01, + 2.420246839520000e+00, + -3.155351161960000e+00, + 4.751837730410000e+00, + 8.208207488060000e-01, + 6.513279914860000e+00, + -1.596759200100000e+00, + -2.368155419830000e-01, + -4.000696659090000e+00, + -5.552090644840000e+00, + -2.554475784300000e+00, + -4.714330673220000e+00, + 6.738921999930000e-02, + 1.297899961470000e+00, + 6.407126784320000e-01, + 1.754147291180000e+00, + -1.563897252080000e+00, + 6.609493732450000e+00, + -1.605887889860000e+00, + 4.502076625820000e+00, + -3.042365312580000e+00, + -3.904539644720000e-01, + 3.261630773540000e+00, + -2.415596693750000e-01, + -7.142391681670000e+00, + 8.480738639829999e+00, + -4.066335678100000e+00, + -1.308608531950000e+00, + -2.172346115110000e+00, + -6.142379283910000e+00, + 3.181957304480000e-01, + -8.714321851730000e-01, + 2.166934251790000e+00, + 3.643633365630000e+00, + -2.761658191680000e+00, + 1.452787280080000e+00, + 5.582601547240000e+00, + 6.561466693880000e+00, + -2.744463920590000e+00, + -3.839055776600000e+00, + 4.242251396180000e+00, + 4.114195406440000e-01, + 6.897740364070000e+00, + 7.530441880230000e-01, + 1.468778371810000e+00, + -7.839300036430000e-01, + 5.610248565670000e+00, + 1.097719907760000e+00, + 1.429741740230000e+00, + -6.129472732540000e+00, + -4.994633197780000e+00, + -1.861102461810000e+00, + 1.855840444560000e+00, + -5.488050937650000e+00, + 6.060467720030000e+00, + 1.693698644640000e+00, + 2.704314708710000e+00, + -4.519149780270000e+00, + -5.672181606290000e+00, + -5.297653198240000e+00, + -3.088998079300000e+00, + -4.716700553890000e+00, + -2.930935144420000e+00, + -5.768184065820000e-01, + -8.510705828670000e-01, + -3.533783197400000e+00, + 2.913955450060000e+00, + 4.532414436340000e+00, + -3.790386915210000e-01, + -5.247280597690001e-01, + -3.590766489510000e-01, + 2.373721897600000e-01, + -8.255632519720000e-01, + -4.884272813800000e-01, + -1.882161021230000e+00, + -1.194887161250000e+00, + 2.933841943740000e-01, + 2.555444717410000e+00, + 4.273615479470000e-01, + 5.371451377870000e-01, + -8.377511501310000e-01, + -1.042382001880000e+00, + -4.071171879770000e-01, + 2.659315109250000e+00, + 7.302696704860000e-01, + 1.543697863820000e-01, + -1.114594817160000e+00, + 1.666690111160000e+00, + -3.058656215670000e+00, + -7.373816967010000e-01, + 3.548515081410000e+00, + -3.949563503270000e-01, + -7.728759050370000e-01, + -3.269305527210000e-01, + -6.313863992690000e-01, + -3.065129518510000e+00, + -7.600118517880000e-01, + 8.285006284710000e-01, + 2.140496224160000e-01, + 5.435143709180000e-01, + 1.142451167110000e+00, + -1.158180356030000e+00, + -3.884951829910000e+00, + -3.030819654460000e+00, + -2.157723158600000e-01, + 9.327598810200000e-01, + -9.227919578550001e-02, + 4.200387477870000e+00, + 2.828116416930000e+00, + 2.369200706480000e+00, + 9.239193201070000e-01, + -1.795573711400000e+00, + 1.930990815160000e+00, + -9.507200717930000e-01, + 3.642310380940000e+00, + 3.223643898960000e-01, + 1.212530136110000e+00, + -2.265546321870000e+00, + -1.969071745870000e+00, + 1.625887751580000e-01, + 3.786632716660000e-01, + 1.368836045270000e+00, + 3.184059262280000e-01, + -9.017446637150001e-02, + -2.938478231430000e+00, + -1.193374156950000e+00, + 3.828916847710000e-01, + -7.693197578190000e-02, + 1.014572620390000e+00, + 7.130341231820000e-02, + -4.493613243100000e-01, + 2.939109802250000e-01, + -4.854044914250000e+00, + -3.491844832900000e-01, + 7.697176337240000e-01, + 1.767994761470000e-01, + -1.605341732500000e-01, + -4.597520351410000e+00, + 7.443007826810000e-01, + -3.174300193790000e+00, + 3.242285490040000e+00, + 3.795524358750000e+00, + -2.668307781220000e+00, + 2.779437541960000e+00, + -6.387978196140000e-01, + 5.459934473040000e-01, + -1.655398488040000e+00, + -1.880109548570000e+00, + -1.534862518310000e-01, + -3.228840529920000e-01, + -1.236453428860000e-01, + -2.953213453290000e-01, + -3.751392662530000e-01, + -1.944855213170000e+00, + -1.221041798590000e+00, + 4.447883069520000e-01, + 2.380122184750000e+00, + 3.562916219230000e-01, + 5.559381842609999e-01, + -7.055972218510000e-01, + -1.476725816730000e+00, + -2.582506239410000e-01, + 3.031227827070000e+00, + 6.942460536960000e-01, + -1.635747104880000e-01, + -1.016609430310000e+00, + 1.594868898390000e+00, + -2.616688728330000e+00, + -8.089748024940000e-01, + 3.500204563140000e+00, + -1.190546512600000e+00, + 1.544262915850000e-01, + -8.089653402570000e-02, + 7.314267158510001e-01, + -1.925545215610000e+00, + -7.506478428840000e-01, + 1.501638531680000e+00, + 8.985032141210000e-02, + -7.187324166300000e-01, + -1.916894614700000e-01, + -5.993167757990000e-01, + -2.337718725200000e+00, + -1.554805040360000e+00, + -5.566173791890000e-01, + 9.383851289750000e-02, + -7.183405160900000e-01, + 3.462040424350000e+00, + 3.388975381850000e+00, + 1.316504359250000e+00, + 2.071390390400000e+00, + -2.139914274220000e+00, + 2.259186744690000e+00, + -1.899480342860000e+00, + 2.654657125470000e+00, + -1.405674666170000e-01, + -1.240107417110000e-01, + -8.839037418370000e-01, + -2.142882347110000e+00, + -4.585462510590000e-01, + -1.025602221490000e-01, + 1.501666426660000e+00, + 1.078905224800000e+00, + -6.332754492760000e-01, + -8.697388172150000e-01, + -3.210329055790000e+00, + -6.963662505150000e-01, + -4.229685962200000e-01, + 1.792640447620000e+00, + 9.956983476880001e-02, + -6.028186082840000e-01, + -3.369907140730000e-01, + -3.580663681030000e+00, + -1.623331785200000e+00, + -2.288533747200000e-01, + -7.632593810560000e-02, + -2.244099527600000e-01, + -3.875276088710000e+00, + 1.290410876270000e+00, + -1.157890081410000e+00, + 5.115961551670000e+00, + 2.828474283220000e+00, + -1.795679211620000e+00, + 4.440399646760000e+00, + 1.461446881290000e-01, + -1.850127428770000e-01, + -2.891748547550000e-01, + -7.027073502540000e-01, + 2.177661983300000e-03, + 3.021007180210000e-01, + 6.433258950710000e-02, + 7.921487092970000e-02, + 7.668428123000000e-02, + -7.433634996410000e-01, + -5.769122600560000e+00, + 8.537489175800000e-01, + 6.642867088320000e+00, + -4.446860313420000e+00, + 2.827585458760000e+00, + -2.932860374450000e+00, + -1.861434578900000e+00, + -3.711006402970000e+00, + 4.426349163060000e+00, + -1.662333488460000e+00, + 7.299723625180000e+00, + 5.166822433470000e+00, + -6.306901454930000e+00, + -2.169900417330000e+00, + 9.742630958559999e+00, + -7.249389648440000e+00, + -5.550112128260000e-01, + 4.264695942400000e-01, + 1.287870705130000e-01, + 5.198476910590000e-01, + -3.837331533430000e-01, + -6.003419399260000e+00, + 8.516395568849999e+00, + 1.471550464630000e+00, + -4.020747661590000e+00, + 3.301378726960000e+00, + -3.655153274540000e+00, + 4.588369369510000e+00, + -1.079242110250000e+00, + -2.434068441390000e+00, + -4.274916172030000e+00, + 1.051165866850000e+01, + 8.334794044490000e+00, + -8.879716873170000e+00, + 5.338528156280000e+00, + -3.447562694550000e+00, + -4.625667572020000e+00, + 2.373333215710000e+00, + -1.607136368750000e+00, + 3.405531644820000e+00, + -3.185206651690000e-01, + 8.181171119210000e-02, + -1.203835964200000e+00, + -1.230628728870000e+00, + -2.866485416890000e-01, + 3.356410980220000e+00, + -1.950610041620000e+00, + 3.765099048610000e+00, + 1.120654568080000e-01, + 5.176091194150000e+00, + -7.117716789250000e+00, + -2.892610132690000e-01, + -7.505049556490000e-02, + -5.283702373500000e+00, + -7.479028701780000e+00, + 7.657512664790000e+00, + 9.165412187580000e-01, + -8.103996515270000e-01, + -4.869335174560000e+00, + 4.142072677610000e+00, + -2.191676139830000e+00, + 1.001220321660000e+01, + -3.151979207990000e+00, + -5.679941177370000e+00, + 9.306825637819999e+00, + -6.265448570250000e+00, + -8.353210449220001e+00, + -1.088706552980000e-01, + 7.163840293880000e+00, + -3.604940652850000e+00, + -2.994172573090000e+00, + -6.734621047970000e+00, + 6.552867412570000e+00, + -5.704358592630000e-02, + 8.416036367420000e-01, + 5.779325589540000e-02, + 1.682490110400000e-02, + -1.251896470790000e-01, + -4.128742814060000e-01, + -5.483455657960000e+00, + 8.809172511100000e-01, + 7.393993854520000e+00, + -3.624963521960000e+00, + 3.497540235520000e+00, + -3.098368167880000e+00, + -2.014804840090000e+00, + -3.768162727360000e+00, + 4.367650985720000e+00, + -1.492640256880000e+00, + 7.196010112760000e+00, + 5.213732719420000e+00, + -5.834487915040000e+00, + -2.218414545060000e+00, + 9.322792053220001e+00, + -6.812426567080000e+00, + 1.704470515250000e-01, + 3.827264532450000e-03, + -1.101898700000000e-01, + 2.703004181390000e-01, + -7.329861521720000e-01, + -4.613771438600000e+00, + 7.461133480070000e+00, + 1.405505180360000e+00, + -4.145003318790000e+00, + 3.388887405400000e+00, + -3.054374217990000e+00, + 4.853467464450000e+00, + -1.992342591290000e+00, + -9.131130576130000e-01, + -4.854954242710000e+00, + 1.139176845550000e+01, + 7.735122203830000e+00, + -8.346012115480001e+00, + 6.483921051030000e+00, + -3.782252073290000e+00, + -3.347587823870000e+00, + 1.961227536200000e+00, + -1.442689538000000e+00, + 4.691415309910000e+00, + 1.727795004840000e-01, + -1.994959354400000e+00, + -7.550841569900000e-01, + -2.223323106770000e+00, + 5.460528135300000e-01, + 4.155230045320000e+00, + -6.520238518710000e-01, + 3.077341794970000e+00, + -1.629774123430000e-01, + 5.036798000340000e+00, + -5.696031570430000e+00, + -3.098139762880000e-01, + 4.003561288120000e-02, + -4.969753742220000e+00, + -7.145147323610000e+00, + 7.091659545900000e+00, + 7.129820585250000e-01, + -2.088080406190000e+00, + -5.070389747620000e+00, + 4.957451820370000e+00, + -2.462089776990000e+00, + 8.762742042539999e+00, + -2.606109857560000e+00, + -5.293990135190000e+00, + 8.607183456420000e+00, + -6.182623386380000e+00, + -9.290454864499999e+00, + -3.500327765940000e-01, + 4.837046146390000e+00, + -2.978648900990000e+00, + -3.671739339830000e+00, + -7.470046043400000e+00, + 6.617222785950000e+00, + 1.413556218150000e+00, + 1.410165429120000e+00, + 1.358645081520000e+00, + 1.172670364380000e+00, + 1.313051939010000e+00, + -1.670648574830000e+00, + 5.845615863800000e+00, + 5.089947700500000e+00, + -7.918517589570000e-01, + -3.524587154390000e+00, + 5.380836725230000e-01, + 2.479489564900000e+00, + -3.310114145280000e+00, + 5.217893600460000e+00, + 1.179966256020000e-01, + 6.051217079160000e+00, + -1.451790213580000e+00, + 2.104948610070000e-01, + -5.301602840420000e+00, + -5.729003906250000e+00, + -2.624437332150000e+00, + -4.688467502590000e+00, + 1.388874173160000e+00, + 1.042418718340000e+00, + 7.469725608830000e-01, + 1.282244563100000e+00, + -2.620381832120000e+00, + 6.178174495700000e+00, + -1.137694358830000e+00, + 5.137456417080000e+00, + -2.486154794690000e+00, + -3.712859749790000e-01, + 2.709201812740000e+00, + -1.543111085890000e+00, + -6.636297225950000e+00, + 7.172538280490000e+00, + -3.434466600420000e+00, + -1.231582522390000e+00, + -7.994993329050000e-01, + -5.670480728150000e+00, + -5.448756217960000e-01, + -2.465743064880000e+00, + 1.805902838710000e+00, + 4.685243129730000e+00, + -8.613615632060000e-01, + 8.757520914080000e-01, + 5.449517250060000e+00, + 7.288691043850000e+00, + -2.595531463620000e+00, + -3.952870130540000e+00, + 4.786354541780000e+00, + 3.251028954980000e-01, + 6.921793460850000e+00, + 1.501913547520000e+00, + 1.597276449200000e+00, + -8.855075240140000e-01, + 6.603415966030000e+00, + 1.021367430690000e+00, + 1.304121017460000e+00, + -7.429020881650000e+00, + -5.101382255550000e+00, + -2.121429920200000e+00, + 8.460339307790000e-01, + -5.596546173100000e+00, + 5.511098861690000e+00, + 7.468142081050000e-03, + 2.790458202360000e+00, + -4.284706592560000e+00, + -6.038223266600000e+00, + -5.561541080470000e+00, + -3.020323038100000e+00, + -4.687417507170000e+00, + -4.088714599610000e+00, + -2.291949748990000e+00, + -1.541808247570000e+00, + -3.563317298890000e+00, + 2.924998283390000e+00, + 4.717005729680000e+00, + -4.506374597550000e-01, + 1.467643857000000e+00, + 1.419582486150000e+00, + 9.766427874570000e-01, + 1.587138056760000e+00, + 1.143923401830000e+00, + -1.787014842030000e+00, + 6.053052425380000e+00, + 4.767358303070000e+00, + -7.922675609590000e-01, + -3.401905059810000e+00, + 8.193881809710001e-02, + 2.444620132450000e+00, + -3.747224330900000e+00, + 5.118355274200000e+00, + 3.071948587890000e-01, + 5.903191566470000e+00, + -1.392851352690000e+00, + -5.635870099069999e-01, + -5.262265205380000e+00, + -5.873764514920000e+00, + -2.650177001950000e+00, + -4.473072052000000e+00, + 1.380450963970000e+00, + 1.291555047040000e+00, + 1.282552838330000e+00, + 1.232423901560000e+00, + -1.653181791310000e+00, + 5.586523532870000e+00, + -5.847843885420000e-01, + 4.743416309360000e+00, + -2.549603939060000e+00, + 2.642140090470000e-01, + 3.565651893620000e+00, + -4.536265134810000e-01, + -5.821631431580000e+00, + 8.491757392880000e+00, + -5.125367164610000e+00, + -1.760926127430000e+00, + -1.350875973700000e+00, + -5.944785594940000e+00, + -9.510419368740000e-01, + -2.540141820910000e+00, + 2.629322528840000e+00, + 5.187002658840000e+00, + -2.058095693590000e+00, + 4.661859944460000e-02, + 5.172910690310000e+00, + 4.544939041140000e+00, + -1.217058539390000e+00, + -4.216428756710000e+00, + 4.151937484740000e+00, + 1.201515197750000e+00, + 5.503611087800000e+00, + -3.119561374190000e-01, + 1.759782195090000e+00, + -1.863117218020000e+00, + 6.902875423430000e+00, + 1.517692804340000e+00, + 1.386795759200000e+00, + -7.786492347720000e+00, + -4.352673053740000e+00, + -2.230360269550000e+00, + 2.105927705760000e+00, + -4.395889282230000e+00, + 5.436863422390000e+00, + 5.621622130270000e-02, + 1.598608016970000e+00, + -4.068901538850000e+00, + -6.266176223750000e+00, + -6.475399971010000e+00, + -3.069983005520000e+00, + -4.274655818940000e+00, + -2.397284030910000e+00, + -1.585196256640000e+00, + 2.417884767060000e-01, + -2.093985319140000e+00, + 2.105892896650000e+00, + 4.786920070650000e+00, + -1.525193810460000e+00, + -4.719260931020000e-01, + -4.212398529050000e-01, + -2.777271568780000e-01, + -6.797859072690000e-01, + -2.997879683970000e-01, + -2.073294401170000e+00, + -1.351665616040000e+00, + 3.175839185710000e-01, + 2.120061874390000e+00, + 9.654287695879999e-01, + 2.023867070670000e-01, + -3.010700941090000e-01, + -1.982616543770000e+00, + -7.834178805350001e-01, + 2.670919179920000e+00, + 7.056983709340000e-01, + -1.249106507750000e-02, + -7.826449275020000e-01, + 9.599678516390000e-01, + -3.089238166810000e+00, + -9.414134621619999e-01, + 3.752889633180000e+00, + 8.776744827630001e-03, + 6.423579901460000e-02, + 1.501454561950000e-01, + -7.963746786120000e-01, + -2.631013393400000e+00, + 2.218603193760000e-01, + 1.839551687240000e+00, + 3.727858066560000e-01, + -3.242441713810000e-01, + 1.899868726730000e+00, + -1.028663516040000e+00, + -2.626199960710000e+00, + -1.460084080700000e+00, + 4.454129040240000e-01, + 3.741694092750000e-01, + -2.194370031360000e+00, + 4.252049446110000e+00, + 4.423627376560000e+00, + 2.886003255840000e+00, + 1.285067558290000e+00, + -1.611212968830000e+00, + 2.266417503360000e+00, + -1.962150573730000e+00, + 5.011356830600000e+00, + 4.249084293840000e-01, + 1.187458038330000e+00, + -1.329978346820000e+00, + -1.944568634030000e+00, + -7.035517692570000e-01, + 3.189164102080000e-01, + 2.599444150920000e+00, + 1.798301935200000e+00, + -3.003012537960000e-01, + -1.306656122210000e+00, + -7.813183665280000e-01, + -3.442372679710000e-01, + -1.702288240190000e-01, + 1.367236614230000e+00, + -2.635471820830000e-01, + -8.418383002280000e-01, + -5.775874853130000e-01, + -5.291481494900000e+00, + -2.068215131760000e+00, + -4.041147232060000e-01, + -8.300576806070000e-01, + 2.190952748060000e-01, + -3.887730360030000e+00, + 1.599386453630000e+00, + -3.547690868380000e+00, + 5.242703437810000e+00, + 3.944773912430000e+00, + -1.922580838200000e+00, + 3.156999826430000e+00, + 1.087350010870000e+00, + 1.123616695400000e-01, + 7.485989928250000e-01, + -1.214622616770000e+00, + -4.809153079990000e-01, + -5.451722145080000e-01, + -5.476047396660000e-01, + -2.405957691370000e-02, + 9.988301247360000e-02, + -1.689227938650000e+00, + -1.372588992120000e+00, + 4.721526205540000e-01, + 2.700407028200000e+00, + 4.139631688590000e-01, + 2.022903412580000e-01, + -8.176783919330000e-01, + -1.498542070390000e+00, + -6.502794623370000e-01, + 2.821958541870000e+00, + 1.595243513580000e-01, + -9.139948338270000e-02, + -1.164334654810000e+00, + 9.559828639030000e-01, + -3.271694898610000e+00, + -5.101346969600000e-01, + 3.312567472460000e+00, + -4.765514731410000e-01, + -3.818166255950000e-01, + 3.841335177420000e-01, + 8.396129310130000e-02, + -2.066853523250000e+00, + -4.938912093640000e-01, + 1.902824759480000e+00, + -8.127248883250000e-01, + 1.158801279960000e-02, + 5.141631960870000e-01, + -5.728132724760000e-01, + -2.080619812010000e+00, + -2.382766723630000e+00, + -1.440071821210000e+00, + 4.291648045180000e-02, + -6.890011429789999e-01, + 4.190755844120000e+00, + 3.295083045960000e+00, + 2.344403505330000e+00, + 1.458183884620000e+00, + -1.943033099170000e+00, + 1.733441352840000e+00, + -1.711329460140000e+00, + 3.696924924850000e+00, + 5.746264457700000e-01, + -1.235158920290000e+00, + -2.263206005100000e+00, + -2.260733366010000e+00, + 1.040692567830000e+00, + 2.008905112740000e-01, + 1.979913592340000e+00, + 9.632050991060001e-01, + -1.399208903310000e-01, + -1.276028275490000e+00, + -1.367452740670000e+00, + -9.929496049880000e-01, + -3.370969593520000e-01, + -8.185038566590001e-01, + -4.212945997720000e-01, + 5.618687868120000e-01, + 4.688872992990000e-01, + -4.233096599580000e+00, + -2.111103057860000e+00, + 5.172273889180000e-02, + -5.079743862150000e-01, + -5.470088124280000e-01, + -3.092075109480000e+00, + 2.202953815460000e+00, + -3.091420888900000e+00, + 5.758595943450000e+00, + 3.484208583830000e+00, + -2.047128915790000e+00, + 3.060575962070000e+00, + -2.739152014260000e-01, + -4.257579743860000e-01, + -2.052243709560000e+00, + -4.381424784660000e-01, + 1.684120297430000e-02, + -9.897563606500000e-02, + 1.028937622900000e-01, + -2.353062927720000e-01, + -2.028352953490000e-02, + -6.545770168300000e-01, + -5.652779579160000e+00, + 1.248366832730000e+00, + 6.559619903560000e+00, + -3.998841285710000e+00, + 3.359549760820000e+00, + -3.009571075440000e+00, + -2.204654455180000e+00, + -3.603564023970000e+00, + 4.800641536710000e+00, + -1.302437424660000e+00, + 7.697895526890000e+00, + 6.061153411870000e+00, + -5.925671577450000e+00, + -2.014184474950000e+00, + 9.824974060060001e+00, + -7.165874004360000e+00, + -5.707034096120000e-02, + 2.421159297230000e-01, + 4.600868523120000e-01, + 2.046184241770000e-01, + -9.041702747340000e-01, + -3.319284677510000e+00, + 7.042685985570000e+00, + 2.525358200070000e+00, + -3.446907043460000e+00, + 3.237235307690000e+00, + -4.208477020260000e+00, + 5.079154014590000e+00, + -1.779780387880000e+00, + -7.472561597820000e-01, + -3.491051912310000e+00, + 1.149999046330000e+01, + 8.074624061580000e+00, + -9.260790824890000e+00, + 5.013875484470000e+00, + -4.194506645200000e+00, + -5.068156719210000e+00, + 2.455706596370000e+00, + -6.484369635580000e-01, + 3.290579557420000e+00, + -5.583466887470000e-01, + -1.504363894460000e+00, + -7.435920834540000e-01, + -1.669248700140000e+00, + 6.458569169040000e-01, + 3.293535470960000e+00, + -1.332177281380000e+00, + 3.330378770830000e+00, + 4.730545356870000e-02, + 5.343863487240000e+00, + -6.202157020570000e+00, + -1.173485908660000e-02, + -4.617906212810000e-01, + -3.875591754910000e+00, + -6.805088520050000e+00, + 7.805204391480000e+00, + -5.696287751200000e-02, + -8.216993212700000e-01, + -5.165387153630000e+00, + 3.533656597140000e+00, + -3.459711551670000e+00, + 1.043269920350000e+01, + -3.698016166690000e+00, + -5.630990028380000e+00, + 9.508833885190001e+00, + -4.951192855830000e+00, + -8.381759643550000e+00, + -1.944498568770000e-01, + 7.200754642490000e+00, + -4.189228534700000e+00, + -3.768270015720000e+00, + -5.639660835270000e+00, + 4.922471046450000e+00, + -5.170580931010000e-03, + 3.472235202790000e-01, + 7.788460701699999e-02, + 3.450898826120000e-02, + 9.086876362559999e-02, + -6.829648017880000e-01, + -5.744548320770000e+00, + 7.676109671590000e-01, + 7.427840232850000e+00, + -3.855318069460000e+00, + 3.296516656880000e+00, + -3.035060644150000e+00, + -2.441429615020000e+00, + -3.811786651610000e+00, + 4.435613632200000e+00, + -1.560301184650000e+00, + 7.214365005490000e+00, + 5.403884887700000e+00, + -5.953001022340000e+00, + -2.043295145030000e+00, + 9.716559410100000e+00, + -7.367040157320000e+00, + -1.012371480460000e-01, + 1.610724329950000e-01, + 4.360600709920000e-01, + 2.315169721840000e-01, + -1.389828205110000e+00, + -4.518153190610000e+00, + 6.857778549190000e+00, + 1.551930665970000e+00, + -3.926918029790000e+00, + 2.863583803180000e+00, + -1.871631026270000e+00, + 3.275659799580000e+00, + -1.620173573490000e+00, + -7.492620348930000e-01, + -4.790811061860000e+00, + 1.007520771030000e+01, + 7.634882450100000e+00, + -7.906540870670000e+00, + 6.653615474700000e+00, + -4.565609455110000e+00, + -5.385475635530000e+00, + 5.601216554639999e-01, + -5.597678422930000e-01, + 3.531133651730000e+00, + 1.484645366670000e+00, + -1.089694619180000e+00, + -9.192007780080000e-01, + -1.596282958980000e+00, + 1.043646559120000e-01, + 2.805501937870000e+00, + -2.462613821030000e+00, + 3.216865539550000e+00, + -2.140848040580000e-01, + 5.646673202510000e+00, + -5.890033245090000e+00, + 1.897522658110000e-01, + 9.510591626170000e-01, + -3.829610824580000e+00, + -6.345410346980000e+00, + 7.206490516660000e+00, + -1.782398074870000e-01, + -9.428920745850000e-01, + -5.883853435520000e+00, + 3.946667909620000e+00, + -2.824893713000000e+00, + 9.682425498960001e+00, + -3.947940349580000e+00, + -7.205868721010000e+00, + 8.102640151979999e+00, + -5.977217674260000e+00, + -7.241178035740000e+00, + -8.020927906040000e-01, + 5.665038585660000e+00, + -3.609678506850000e+00, + -4.383487224580000e+00, + -5.667039871220000e+00, + 5.495398521420000e+00, + 1.319414258000000e+00, + 1.610198259350000e+00, + 1.655657649040000e+00, + 1.326718807220000e+00, + 1.500464439390000e+00, + -1.649489998820000e+00, + 5.947172641750000e+00, + 5.860699653630000e+00, + -1.482171058650000e+00, + -3.328316688540000e+00, + 1.807637214660000e-01, + 2.248358011250000e+00, + -3.129426956180000e+00, + 4.928196907040000e+00, + 1.922371834520000e-01, + 6.192672252660000e+00, + -1.322872400280000e+00, + 3.774219006300000e-02, + -5.129579067230000e+00, + -5.635123729710000e+00, + -2.505257606510000e+00, + -4.419573307040000e+00, + 2.495423078540000e+00, + 7.732858061790000e-01, + 1.454981446270000e+00, + 1.461366772650000e+00, + -1.335525512700000e+00, + 6.777556419370000e+00, + -8.676260709760000e-01, + 4.407558441160000e+00, + -3.244885921480000e+00, + -2.686243951320000e-01, + 3.287373781200000e+00, + -1.458313226700000e+00, + -6.440870761870000e+00, + 8.754260063169999e+00, + -3.494094610210000e+00, + -1.805267691610000e+00, + 1.881933808330000e-01, + -6.157823085780000e+00, + 1.131394132970000e-02, + -2.510783433910000e+00, + 1.401968002320000e+00, + 4.532839775090000e+00, + -6.164040565490000e-01, + 8.634165525440000e-01, + 4.672071456910000e+00, + 6.752063274380000e+00, + -2.523744344710000e+00, + -3.837637424470000e+00, + 4.826776504520000e+00, + 8.822929263110000e-01, + 6.080890178680000e+00, + -2.001138404010000e-02, + 9.212620854380000e-01, + -1.272794604300000e+00, + 6.075171947480000e+00, + 1.094766497610000e+00, + 1.177740573880000e+00, + -6.617643833160000e+00, + -5.326369762420000e+00, + -2.234773397450000e+00, + 7.133946418760000e-01, + -5.519742488860000e+00, + 5.757810592650000e+00, + -8.447250127790000e-01, + 2.397660970690000e+00, + -3.016093492510000e+00, + -7.039088249210000e+00, + -4.766306877140000e+00, + -2.583048582080000e+00, + -4.691967010500000e+00, + -2.160388469700000e+00, + -1.413308858870000e+00, + -2.658207714560000e-01, + -3.666880369190000e+00, + 2.339876651760000e+00, + 6.306006431580000e+00, + -9.242831468579999e-01, + 1.371763467790000e+00, + 1.146196722980000e+00, + 1.463612079620000e+00, + 1.382187485690000e+00, + 1.987101078030000e+00, + -1.620163679120000e+00, + 5.991588592530000e+00, + 4.981840133670000e+00, + -9.143533706670000e-01, + -3.386053800580000e+00, + 6.267783045770000e-01, + 2.770802259450000e+00, + -3.488038063050000e+00, + 4.966373443600000e+00, + -1.043405383830000e-01, + 6.374265193940000e+00, + -2.072612524030000e+00, + 5.313358902930000e-01, + -5.234651088710000e+00, + -5.647554874420000e+00, + -2.692656278610000e+00, + -4.726635932920000e+00, + 8.541393876080000e-01, + 1.426881194110000e+00, + 1.800836682320000e+00, + 8.262414336200000e-01, + -1.244889497760000e+00, + 5.728374481200000e+00, + -7.827129960060000e-01, + 5.633874416350000e+00, + -2.975955247880000e+00, + -1.187634229660000e+00, + 3.244786024090000e+00, + 6.239442825320000e-01, + -6.896245956420000e+00, + 7.348826408390000e+00, + -2.513975143430000e+00, + -2.360138893130000e+00, + -5.446279644970000e-01, + -6.288062572480000e+00, + -2.209320068360000e+00, + -8.608101606370000e-01, + 1.555649399760000e+00, + 5.269447326660000e+00, + -1.198547840120000e+00, + 8.650614619260000e-01, + 4.570248603820000e+00, + 7.513992786410000e+00, + -2.727464199070000e+00, + -4.256230354310000e+00, + 4.613387584690000e+00, + 1.286559700970000e+00, + 6.647151947020000e+00, + 1.018434524540000e+00, + 1.075830221180000e+00, + -6.998383998870000e-01, + 5.545172691350000e+00, + 1.318712592120000e+00, + -4.288922250270000e-01, + -6.082689762120000e+00, + -4.609231948850000e+00, + -1.593658566470000e+00, + 1.458608031270000e+00, + -5.239715099330000e+00, + 4.954025745390000e+00, + -4.407321810720000e-01, + 1.841303825380000e+00, + -4.343443870540000e+00, + -5.342508316040000e+00, + -6.320074081420000e+00, + -2.987213134770000e+00, + -5.002669811250000e+00, + -2.902402639390000e+00, + -1.216240286830000e+00, + -4.499642550950000e-01, + -3.103760004040000e+00, + 3.404937982560000e+00, + 6.809750556950000e+00, + -3.538962304590000e-01, + -4.546559453010000e-01, + -3.854304552080000e-01, + -5.128710865970000e-01, + -1.037553921340000e-01, + -3.233399093150000e-01, + -1.614964962010000e+00, + -1.271872043610000e+00, + 4.050751030450000e-01, + 3.274496793750000e+00, + 3.719955384730000e-01, + 4.204476773740000e-01, + -4.880530238150000e-01, + -1.349499583240000e+00, + -6.624628901480000e-01, + 3.114072322850000e+00, + 7.830221056940000e-01, + 2.343616783620000e-01, + -1.163653612140000e+00, + 6.794527769090000e-01, + -2.817619085310000e+00, + -8.846462965010000e-01, + 3.291882276540000e+00, + -2.787631750110000e-01, + -1.862822771070000e+00, + -3.006392419340000e-01, + -1.396427154540000e-01, + -2.161651134490000e+00, + -5.462772846220000e-01, + 2.348042726520000e+00, + -7.431963086130000e-01, + -4.007207602260000e-02, + 9.314250946040000e-01, + 5.964651703830000e-01, + -3.221716403960000e+00, + -1.353849291800000e+00, + 2.685191035270000e-01, + 7.577976584430000e-01, + -1.036435842510000e+00, + 2.761174201970000e+00, + 3.862903833390000e+00, + 1.800311446190000e+00, + 1.421303868290000e+00, + -2.127136230470000e+00, + 4.860318899150000e-01, + -1.951752305030000e+00, + 4.320486545560000e+00, + -3.725332915780000e-01, + 9.211174845700000e-01, + -9.737449884410000e-01, + -1.815825581550000e+00, + 4.099442958830000e-01, + 2.427423000340000e-01, + 2.605848550800000e+00, + 2.200248390440000e-01, + -1.292275823650000e-02, + -8.976408839230000e-01, + -1.078092455860000e+00, + -4.074102342130000e-01, + -4.265369176860000e-01, + 1.672081351280000e+00, + -1.360277652740000e+00, + 4.471745193000000e-01, + -6.288949847220000e-01, + -5.053991794590000e+00, + -1.172617912290000e+00, + 4.658017158510000e-01, + -6.173477768900000e-01, + -9.608508944510000e-01, + -4.151511669160000e+00, + 1.830757260320000e+00, + -3.086423397060000e+00, + 3.771149396900000e+00, + 3.069823741910000e+00, + -2.410215616230000e+00, + 1.528610229490000e+00, + 6.037612557410000e-01, + -9.037374705079999e-02, + -1.707787513730000e+00, + -1.379333972930000e+00, + -2.544322013850000e-01, + -4.963094890120000e-01, + -5.447264909740001e-01, + -4.135014414790000e-01, + 1.759664341810000e-02, + -1.705204129220000e+00, + -1.241320371630000e+00, + 6.937374472620000e-01, + 2.127556324010000e+00, + 5.560693144800000e-01, + 5.776466131210000e-01, + -8.880484700200000e-01, + -1.303202867510000e+00, + -3.210984766480000e-01, + 2.934678554530000e+00, + 5.550567507740000e-01, + 1.809023916720000e-01, + -1.453744411470000e+00, + 1.252105832100000e+00, + -3.041050672530000e+00, + -8.634768724440000e-01, + 3.374167442320000e+00, + -7.195247411730000e-01, + -3.751649558540000e-01, + -4.733757078650000e-01, + 2.040657699110000e-01, + -1.732686996460000e+00, + -9.681696891779999e-01, + 2.701439142230000e+00, + -3.502947986130000e-01, + -3.158633708950000e-01, + 1.354164481160000e+00, + -1.254242539410000e+00, + -2.548230648040000e+00, + -2.280515432360000e+00, + -7.380982041360000e-01, + 1.101191401480000e+00, + -6.551046371460000e-01, + 2.424040079120000e+00, + 3.823734045030000e+00, + 2.530881643300000e+00, + 9.841028451920000e-01, + -1.321405053140000e+00, + 1.217258691790000e+00, + -1.650492548940000e+00, + 4.413883686070000e+00, + 9.474020004270000e-01, + 6.994946002960000e-01, + -1.481984138490000e+00, + -1.208920717240000e+00, + 8.395801186560000e-01, + -7.191630005840000e-01, + 2.283463001250000e+00, + 1.713250041010000e+00, + -3.403188884260000e-01, + -2.253771424290000e-01, + -7.389183640480000e-01, + -3.056841492650000e-01, + 4.308206737040000e-01, + 1.354829669000000e+00, + 1.423735618590000e-01, + -1.443021371960000e-02, + -5.904128402470000e-02, + -3.286475420000000e+00, + -1.228726029400000e+00, + -8.602853417400000e-01, + -4.057047665120000e-01, + 1.798949986700000e-01, + -3.761228561400000e+00, + 1.851381659510000e+00, + -2.957803487780000e+00, + 4.188055038450000e+00, + 1.976950168610000e+00, + -1.891280174260000e+00, + 2.723311185840000e+00, + -2.109893858430000e-01, + 2.010592818260000e-01, + -2.737493991850000e+00, + -1.133659482000000e+00, + 1.669179648160000e-01, + -6.116985809060000e-03, + 3.303829431530000e-01, + 3.827917575840000e-02, + 4.397284984590000e-02, + -5.142089724540000e-01, + -5.977369785310000e+00, + 7.281644940380000e-01, + 6.927844047550000e+00, + -3.261975765230000e+00, + 3.169901371000000e+00, + -3.262349843980000e+00, + -2.078448295590000e+00, + -3.837529420850000e+00, + 3.945515394210000e+00, + -1.379543542860000e+00, + 7.456762313840000e+00, + 5.063661575320000e+00, + -6.750868797300000e+00, + -2.107798814770000e+00, + 1.011521720890000e+01, + -7.198310852050000e+00, + 6.202172860500000e-02, + -2.424470148980000e-02, + -4.589750170710000e-01, + 3.705285787580000e-01, + -1.944195628170000e+00, + -6.191318035130000e+00, + 7.319263935090000e+00, + 8.027400970460000e-01, + -4.215359687810000e+00, + 3.429444551470000e+00, + -3.049537420270000e+00, + 5.412223339080000e+00, + -9.934027194980000e-01, + -1.454576253890000e+00, + -4.881625652310000e+00, + 1.192242431640000e+01, + 7.109633922580000e+00, + -9.190747261049999e+00, + 6.644793510440000e+00, + -3.762446403500000e+00, + -3.245333194730000e+00, + 2.119833946230000e+00, + -2.963330149650000e-01, + 5.017524719240000e+00, + 1.880474984650000e-01, + -3.018525123600000e+00, + -6.973003745080000e-01, + -3.182955503460000e+00, + 9.019615054130000e-01, + 3.875526189800000e+00, + -1.736776113510000e+00, + 3.084158658980000e+00, + -4.534800052640000e-01, + 4.887140274050000e+00, + -6.051041126250000e+00, + -7.062531113620000e-01, + 1.023319602010000e+00, + -6.095666885380000e+00, + -7.227126598360000e+00, + 7.658209800720000e+00, + 1.354560017590000e+00, + -1.113448381420000e+00, + -5.037590026860000e+00, + 4.133634567260000e+00, + -2.852848052980000e+00, + 9.267780303960000e+00, + -2.502006053920000e+00, + -5.877773761750000e+00, + 9.163063049320000e+00, + -6.158999919890000e+00, + -7.178110599520000e+00, + -8.677592128519999e-02, + 6.695315361020000e+00, + -3.808129549030000e+00, + -3.771881818770000e+00, + -5.221189975740000e+00, + 4.271434783940000e+00, + 1.167413294320000e-01, + 6.450621038680000e-02, + -6.691540777680000e-02, + -1.348592489960000e-01, + -1.707545071840000e-01, + -6.873481869700000e-01, + -5.884960174560000e+00, + 4.282652437690000e-01, + 6.057692527770000e+00, + -3.830417871480000e+00, + 3.839285373690000e+00, + -3.216572046280000e+00, + -2.377647638320000e+00, + -3.758302688600000e+00, + 4.727783203120000e+00, + -1.606887936590000e+00, + 7.336068630220000e+00, + 5.209485530850000e+00, + -5.938508033750000e+00, + -2.054435491560000e+00, + 9.550435066220000e+00, + -7.193611145020000e+00, + 7.082814574239999e-01, + 3.314294517040000e-01, + -2.806886732580000e-01, + 4.544010162350000e-01, + -9.925932884220000e-01, + -5.524992942810000e+00, + 7.252658367160000e+00, + 1.470772266390000e+00, + -5.246945858000000e+00, + 3.660119056700000e+00, + -2.730017900470000e+00, + 5.420406818390000e+00, + -1.145560622220000e+00, + -2.284018278120000e+00, + -4.242058277130000e+00, + 1.002295875550000e+01, + 7.389492988590000e+00, + -9.290073394780000e+00, + 7.420749187470000e+00, + -4.815099239350000e+00, + -3.681886911390000e+00, + 9.348965287210000e-01, + 1.186134219170000e-01, + 4.407815933230000e+00, + 1.044519543650000e-01, + -2.198297739030000e+00, + -1.055073261260000e+00, + -2.234115839000000e+00, + 3.161900341510000e-01, + 3.517378807070000e+00, + -1.633013486860000e+00, + 3.592739820480000e+00, + 1.183423548940000e-01, + 4.135644435880000e+00, + -6.581491470340000e+00, + -2.781111001970000e-01, + -3.816907703880000e-01, + -4.537777900700000e+00, + -6.841141700740000e+00, + 7.407161235810000e+00, + -1.968178525570000e-02, + -7.388804554940001e-01, + -5.269483566280000e+00, + 2.616821050640000e+00, + -2.554628372190000e+00, + 1.076426792140000e+01, + -4.222839355470000e+00, + -5.302368164060000e+00, + 8.841032981870001e+00, + -5.083826065060000e+00, + -8.034663200380001e+00, + 1.386681199070000e+00, + 6.327617645260000e+00, + -2.420272827150000e+00, + -3.217953920360000e+00, + -5.122442722320000e+00, + 6.094720840450000e+00, + 1.415231823920000e+00, + 1.435882329940000e+00, + 4.634763300420000e-01, + 1.489655852320000e+00, + 1.446554780010000e+00, + -1.582171678540000e+00, + 5.954583168030000e+00, + 4.912117958070000e+00, + -7.089800238610000e-01, + -4.080129623410000e+00, + 3.967374563220000e-01, + 2.493971109390000e+00, + -3.551516056060000e+00, + 4.975470542910000e+00, + 7.101615667340000e-01, + 6.559263229370000e+00, + -1.347168445590000e+00, + -7.488359808920000e-01, + -5.368847846980000e+00, + -5.732348918910000e+00, + -2.820179939270000e+00, + -4.782615184780000e+00, + 1.089008450510000e+00, + 1.180989861490000e+00, + 1.927757620810000e+00, + 1.868441939350000e+00, + -2.506360054020000e+00, + 7.157624721530000e+00, + -1.335802435870000e+00, + 4.626366138460000e+00, + -3.143114566800000e+00, + 2.818441092970000e-01, + 2.911200523380000e+00, + -1.044333100320000e+00, + -4.749808788300000e+00, + 7.303543567660000e+00, + -3.742791414260000e+00, + -1.825690746310000e+00, + -1.122809350490000e-01, + -6.419006824490000e+00, + -1.647698402400000e+00, + -2.214767217640000e+00, + 1.483389496800000e+00, + 5.027780532840000e+00, + -1.131846427920000e+00, + 1.242382049560000e+00, + 5.248351097110000e+00, + 6.335680961610000e+00, + -2.132137775420000e+00, + -3.357289075850000e+00, + 3.774489641190000e+00, + 1.913070082660000e-01, + 6.731351852420000e+00, + 3.588271141050000e-01, + 1.207870006560000e+00, + -5.435192584990000e-01, + 6.331601619720000e+00, + 1.272074460980000e+00, + 1.823162317280000e+00, + -6.945582389830000e+00, + -5.376355648040000e+00, + -5.740898251530000e-01, + 2.010288238530000e+00, + -4.192246437070000e+00, + 6.568570137020000e+00, + 1.752264142040000e+00, + 2.012854337690000e+00, + -4.034650325780000e+00, + -6.830581665040000e+00, + -5.181627273560000e+00, + -3.718980789180000e+00, + -5.548192501070000e+00, + -4.018628597260000e+00, + -2.000417709350000e+00, + -1.052058815960000e+00, + -3.054265022280000e+00, + 2.625220060350000e+00, + 4.964404106140000e+00, + -1.383504986760000e+00, + 1.352295756340000e+00, + 1.358533024790000e+00, + 1.279104948040000e+00, + 1.372804641720000e+00, + 6.172446608540000e-01, + -1.642369508740000e+00, + 5.996007919310000e+00, + 4.800252437590000e+00, + -6.285229921340000e-01, + -3.424442052840000e+00, + 9.509813040490001e-02, + 2.451093673710000e+00, + -3.091948032380000e+00, + 5.088523864750000e+00, + 2.975141704080000e-01, + 6.596460819240000e+00, + -1.420943975450000e+00, + -8.339641094210000e-01, + -5.508224964140000e+00, + -5.732385635380000e+00, + -2.395734310150000e+00, + -4.905793666840000e+00, + 1.791422963140000e+00, + 1.307430148120000e+00, + 1.418655872340000e+00, + 1.547077655790000e+00, + -1.074714183810000e+00, + 6.182637691500000e+00, + -6.074420809750000e-01, + 4.833590984340000e+00, + -4.005062580110000e+00, + -5.332213640210000e-01, + 1.614632606510000e+00, + -8.680571913720000e-01, + -7.910985469820000e+00, + 7.461714744570000e+00, + -3.462722301480000e+00, + -2.172491788860000e+00, + -8.551588058470000e-01, + -5.555531978610000e+00, + -1.374532461170000e+00, + -2.078317880630000e+00, + 5.633997321130000e-01, + 5.191240310670000e+00, + -4.388073086740000e-02, + 1.534945368770000e+00, + 5.354890823360000e+00, + 6.909000873570000e+00, + -2.633830070500000e+00, + -4.476688861850000e+00, + 4.183565616610000e+00, + 5.593343377110001e-01, + 7.085959434510000e+00, + 2.991142570970000e-01, + 1.404918909070000e+00, + -1.876986980440000e+00, + 5.972095489500000e+00, + 1.236512899400000e+00, + 1.641319751740000e+00, + -7.131890296940000e+00, + -5.035968780520000e+00, + -1.935956001280000e+00, + 1.936496734620000e+00, + -5.959045410160000e+00, + 6.367192745210000e+00, + 5.039257407190000e-01, + 2.171933412550000e+00, + -4.383113384250000e+00, + -6.219093322750000e+00, + -4.954527854920000e+00, + -3.317318439480000e+00, + -4.516145229340000e+00, + -2.640187263490000e+00, + -1.767355680470000e+00, + -9.905480742450000e-01, + -3.316350936890000e+00, + 2.608062267300000e+00, + 5.733790874480000e+00, + 5.536733865740000e-01, + -4.440811574460000e-01, + -3.576034009460000e-01, + -9.725755453110000e-01, + -4.205519258980000e-01, + -1.810864061120000e-01, + -1.921287298200000e+00, + -1.158010840420000e+00, + 5.500734448430000e-01, + 2.680686235430000e+00, + 5.417889952660000e-01, + 5.881853103640000e-01, + -8.666267395020000e-01, + -1.612850666050000e+00, + -5.699601769450000e-01, + 2.810639858250000e+00, + 5.125053524970000e-01, + 6.029059365390000e-02, + -1.108314633370000e+00, + 1.596376180650000e+00, + -2.883338689800000e+00, + -1.049327969550000e+00, + 3.621368646620000e+00, + 3.378164023160000e-02, + -3.262229263780000e-01, + -3.804551064970000e-01, + -1.002207756040000e+00, + -9.735450744630000e-01, + -4.787263274190000e-01, + 2.574848890300000e+00, + 2.628401815890000e-01, + 2.939297258850000e-01, + 9.799518585210000e-01, + -1.675595760350000e+00, + -1.983904838560000e+00, + -2.139299154280000e+00, + -2.234336137770000e-01, + -4.671075344090000e-01, + -5.234996676450000e-01, + 2.821287393570000e+00, + 4.649393081670000e+00, + 2.641403198240000e+00, + 1.265862226490000e+00, + -1.187841176990000e+00, + 6.295453310010000e-01, + -2.262990951540000e+00, + 5.114315032960000e+00, + 1.361647367480000e+00, + -2.499845027920000e-01, + -2.837872505190000e+00, + -2.278361797330000e+00, + 3.070172667500000e-01, + 5.884518623350000e-01, + 2.889897346500000e+00, + 1.162413239480000e+00, + 5.149807929990000e-01, + -2.037454843520000e-01, + -1.514422655110000e+00, + -7.007182836530000e-01, + -9.041342139240000e-01, + -7.023450732229999e-02, + -1.471725702290000e+00, + -1.795993804930000e+00, + -2.310989499090000e-01, + -2.905249595640000e+00, + -1.182633996010000e+00, + 1.197437405590000e+00, + -3.120899498460000e-01, + -4.444009363650000e-01, + -4.632018566130000e+00, + 8.865638971330000e-01, + -2.285696029660000e+00, + 5.733027458190000e+00, + 3.438229560850000e+00, + -1.711885094640000e+00, + 3.184573173520000e+00, + -2.118776738640000e-01, + -3.492697477340000e-01, + -1.200080513950000e+00, + -1.401733398440000e+00, + -1.718035638330000e-01, + -2.751156985760000e-01, + -5.872001051900000e-01, + -4.590891003610000e-01, + -7.950651049610000e-01, + -1.711891174320000e+00, + -2.689035832880000e-01, + 3.054473996160000e-01, + 2.063578367230000e+00, + 4.426493346690000e-01, + 7.869812846180000e-01, + -6.839945912360000e-01, + -1.611168265340000e+00, + -6.006990075110000e-01, + 2.761972665790000e+00, + 7.037101984020000e-01, + 5.065762624140000e-02, + -1.244927763940000e+00, + 6.965098381040000e-01, + -3.059444189070000e+00, + -9.741139411930000e-01, + 3.729156017300000e+00, + -6.597198247910000e-01, + -5.670387744900000e-01, + -2.110229134560000e-01, + -1.308730006220000e+00, + -2.325116872790000e+00, + -1.430996894840000e+00, + -2.384127490220000e-02, + -7.471098303790000e-01, + -3.359708487990000e-01, + -1.391098648310000e-01, + -5.651535987850000e-01, + -1.787872314450000e+00, + -1.471779584880000e+00, + 3.383528590200000e-01, + 5.024936795229999e-01, + -1.016555666920000e+00, + 2.945104122160000e+00, + 4.499708652500000e+00, + 2.134821414950000e+00, + -3.590319454670000e-01, + -1.361207604410000e+00, + 1.088546156880000e+00, + -1.510647535320000e+00, + 4.757584571840000e+00, + 6.050276160240000e-01, + -6.788057833910000e-02, + -1.464492559430000e+00, + -1.113535761830000e+00, + 2.172098457810000e-01, + -3.002534806730000e-01, + 2.376425266270000e+00, + 1.506771147250000e-01, + -2.936631441120000e-01, + -6.782414913180000e-01, + -1.851331353190000e+00, + 7.187425494190000e-01, + 5.776973068710000e-02, + -6.262941360470000e-01, + 2.285787910220000e-01, + -1.516697928310000e-03, + -8.427040576930001e-01, + -4.176906108860000e+00, + -1.669614911080000e+00, + 7.244729399680000e-01, + -9.259254932400000e-01, + 5.504583716390000e-01, + -4.290709495540000e+00, + 2.447473764420000e+00, + -2.886888027190000e+00, + 4.444456577300000e+00, + 3.780475139620000e+00, + -1.910325884820000e+00, + 2.734082460400000e+00, + -4.708568453790000e-01, + -6.140151247380000e-02, + -1.246915340420000e+00, + -9.110425710680000e-01, + 1.379101071510000e-03, + 8.955325931310000e-02, + -2.494996041060000e-01, + 1.704303324220000e-01, + 2.953846156600000e-01, + -5.938720107080000e-01, + -5.588931560520000e+00, + 6.665881872180000e-01, + 6.679100036620000e+00, + -3.906518936160000e+00, + 3.821509122850000e+00, + -3.195861339570000e+00, + -2.238053083420000e+00, + -3.643478870390000e+00, + 4.640751361850000e+00, + -1.501431226730000e+00, + 7.247423648830000e+00, + 4.986456871030000e+00, + -6.041336536410000e+00, + -1.961183905600000e+00, + 1.002817249300000e+01, + -7.190569400790000e+00, + -8.869005441670000e-01, + 1.207977682350000e-01, + 1.533779948950000e-01, + -2.087647616860000e-01, + -1.014576792720000e+00, + -5.193368911740000e+00, + 6.525091171260000e+00, + 2.269332647320000e+00, + -3.661748886110000e+00, + 3.546887397770000e+00, + -2.476242065430000e+00, + 4.823215007780000e+00, + -2.325116872790000e+00, + -1.156223773960000e+00, + -4.804172515870000e+00, + 1.198633193970000e+01, + 7.243064880370000e+00, + -7.580356121060000e+00, + 6.554454326630000e+00, + -4.972355842590000e+00, + -4.373960971830000e+00, + 2.751056194310000e+00, + -1.017893671990000e+00, + 3.482610940930000e+00, + 5.193836689000000e-01, + -1.937482237820000e+00, + -1.203684687610000e+00, + -2.085084915160000e+00, + 3.172180056570000e-01, + 3.362350702290000e+00, + -1.368016481400000e+00, + 4.795370101930000e+00, + -1.052711844440000e+00, + 4.923957824710000e+00, + -6.645851612090000e+00, + -3.377147614960000e-01, + 9.265072643760000e-02, + -3.612363576890000e+00, + -8.092303276060001e+00, + 7.237594127660000e+00, + 6.479312479500000e-02, + -1.619128704070000e+00, + -5.620232582090000e+00, + 2.430010557170000e+00, + -3.611902713780000e+00, + 1.141529369350000e+01, + -4.449681282040000e+00, + -5.462519645690000e+00, + 9.623349189760001e+00, + -5.978869438170000e+00, + -8.546191215520000e+00, + 3.416212201120000e-01, + 5.535627841950000e+00, + -3.114566326140000e+00, + -2.913197040560000e+00, + -5.817905902860000e+00, + 5.632022380830000e+00, + 1.549124158920000e-02, + 3.705940544610000e-01, + 9.592637419699999e-02, + 1.133878156540000e-01, + -5.399373918770000e-02, + 6.153000518680000e-02, + -5.765112876890000e+00, + 6.867778897290000e-01, + 6.864528656010000e+00, + -3.771169185640000e+00, + 3.313967466350000e+00, + -3.200096368790000e+00, + -2.517345190050000e+00, + -3.705017805100000e+00, + 4.096685409550000e+00, + -1.433541893960000e+00, + 6.986227989200000e+00, + 5.176076412200000e+00, + -5.987805366520000e+00, + -1.950863718990000e+00, + 9.480804443360000e+00, + -7.121012210850000e+00, + 2.522107064720000e-01, + -1.833571791650000e-01, + 1.689225286250000e-01, + 3.224351108070000e-01, + -6.752422451970000e-01, + -5.131065368650000e+00, + 8.684403419490000e+00, + 1.084890723230000e+00, + -4.034463882450000e+00, + 3.060304164890000e+00, + -2.656946897510000e+00, + 5.228816986080000e+00, + -2.238461494450000e+00, + -1.560619235040000e+00, + -3.833845376970000e+00, + 1.019123554230000e+01, + 8.339319229130000e+00, + -8.664924621580001e+00, + 7.013745784760000e+00, + -3.355726242070000e+00, + -4.234014987950000e+00, + 1.396950364110000e+00, + -5.515705943110000e-01, + 3.747518062590000e+00, + 1.190785884860000e+00, + -2.129186153410000e+00, + -9.919023513790000e-01, + -2.011610507970000e+00, + 1.107585310940000e+00, + 2.723592758180000e+00, + -1.914976954460000e+00, + 4.423616409300000e+00, + -1.697079688310000e-01, + 5.959443092350000e+00, + -6.604682445530000e+00, + -2.447625845670000e-01, + -3.310597538950000e-01, + -5.842949390410000e+00, + -6.570025920870000e+00, + 8.603340148930000e+00, + 4.344518855210000e-02, + 6.686254590750000e-02, + -5.866780757900000e+00, + 2.731545925140000e+00, + -2.505657672880000e+00, + 9.241070747380000e+00, + -3.625499725340000e+00, + -5.983664035800000e+00, + 1.005716323850000e+01, + -6.252944469450000e+00, + -7.791924476620000e+00, + -9.463391900060000e-01, + 6.453102111820000e+00, + -4.192493915560000e+00, + -3.448905229570000e+00, + -5.365666866300000e+00, + 4.643950462340000e+00, + 1.300150036810000e+00, + 1.327181816100000e+00, + 7.310716509820000e-01, + 1.255008935930000e+00, + 1.764277577400000e+00, + -1.585013508800000e+00, + 6.005920410160000e+00, + 4.788381576540000e+00, + -7.165034413340000e-01, + -3.557344198230000e+00, + 7.690424919130000e-01, + 2.732527256010000e+00, + -3.275805950160000e+00, + 5.093528270720000e+00, + 2.585130929950000e-01, + 6.500535964970000e+00, + -1.248238921170000e+00, + -7.519368529320000e-01, + -5.428834915160000e+00, + -6.062105655670000e+00, + -2.638246774670000e+00, + -4.635856628420000e+00, + 1.646117687230000e+00, + 2.049229621890000e+00, + 1.394466876980000e+00, + 1.273893475530000e+00, + -1.919986963270000e+00, + 6.191464424130000e+00, + -9.135562777520000e-01, + 6.056972980500000e+00, + -1.879417538640000e+00, + 1.147879362110000e-01, + 1.855049848560000e+00, + -1.288315892220000e+00, + -6.730829238890000e+00, + 8.328142166139999e+00, + -3.864696979520000e+00, + -1.914750784640000e-01, + -1.856179833410000e+00, + -5.048887252810000e+00, + -6.257317960260000e-03, + -1.475709319110000e+00, + 1.250900149350000e+00, + 5.899456977840000e+00, + -7.897195816040000e-01, + 9.776241332290000e-02, + 5.140853881840000e+00, + 6.109547138210000e+00, + -2.523798704150000e+00, + -5.230658531190000e+00, + 4.400651931760000e+00, + -2.527649402620000e-01, + 7.041246414180000e+00, + 9.815064668660000e-01, + 8.997317552570000e-01, + -1.283502936360000e+00, + 4.793832778930000e+00, + 1.508159875870000e+00, + 1.351950407030000e+00, + -6.730464935300000e+00, + -5.807032108310000e+00, + -7.205903530120000e-02, + 1.578071117400000e+00, + -6.388669013980000e+00, + 5.923671245570000e+00, + 1.041167497630000e+00, + 3.938401460650000e+00, + -3.606834888460000e+00, + -5.688272953030000e+00, + -5.221877574920000e+00, + -3.569784402850000e+00, + -4.953825950620000e+00, + -3.113901376720000e+00, + -1.447319269180000e+00, + -1.360526084900000e+00, + -3.930222511290000e+00, + 3.272107362750000e+00, + 6.556564807890000e+00, + -3.610468506810000e-01, + 1.326145887370000e+00, + 1.616408824920000e+00, + 1.491892814640000e+00, + 1.238874316220000e+00, + 1.408620357510000e+00, + -1.486717104910000e+00, + 5.944005489350000e+00, + 5.407019615170000e+00, + -7.804051041600000e-01, + -3.079958438870000e+00, + 1.272781789300000e-01, + 2.484763145450000e+00, + -3.649026155470000e+00, + 4.695837497710000e+00, + 2.386898100380000e-01, + 6.393018245700000e+00, + -1.278643012050000e+00, + -5.730279088020001e-01, + -5.232092380520000e+00, + -5.657283782960000e+00, + -2.829188108440000e+00, + -4.382245540620000e+00, + 1.180897355080000e+00, + 1.193119883540000e+00, + 2.007996082310000e+00, + 1.665843725200000e+00, + -1.537901163100000e+00, + 6.584128379820000e+00, + -1.046273946760000e+00, + 4.774842262270000e+00, + -2.766093254090000e+00, + -6.514592096210000e-03, + 2.784788131710000e+00, + 2.350939661260000e-01, + -6.206688404080000e+00, + 7.824492454530000e+00, + -5.147837162020000e+00, + -5.095468163490000e-01, + -1.100504040720000e+00, + -7.096819877620000e+00, + -2.523316740990000e-01, + -1.653508663180000e+00, + 1.649078369140000e+00, + 4.522152423860000e+00, + -6.909612417220000e-01, + 5.013723373410000e-01, + 5.718294620510000e+00, + 6.320981979370000e+00, + -1.313248634340000e+00, + -4.137189865110000e+00, + 4.587063312530000e+00, + -8.349695205690000e-01, + 5.945127964020000e+00, + 3.746750354770000e-01, + 1.041949510570000e+00, + -9.309305548670000e-01, + 6.166521072390000e+00, + 1.475202441220000e+00, + 1.241257905960000e+00, + -5.990018367770000e+00, + -4.047627449040000e+00, + -1.799137592320000e+00, + 1.388636708260000e+00, + -4.703625679020000e+00, + 6.936432361600000e+00, + 6.931233406070000e-01, + 2.501637935640000e+00, + -4.421788215640000e+00, + -6.187791824340000e+00, + -4.609113216400000e+00, + -2.374118328090000e+00, + -5.074385166170000e+00, + -3.211169481280000e+00, + -2.137940406800000e+00, + -1.012086510660000e+00, + -3.143873691560000e+00, + 3.256621837620000e+00, + 5.847152233120000e+00, + -1.608467936520000e+00, + -3.073013126850000e-01, + -4.744690954690000e-01, + -2.289007231590000e-02, + -2.577184140680000e-01, + -1.376639902590000e-01, + -1.860206484790000e+00, + -9.189974665640001e-01, + 3.016259372230000e-01, + 2.515563488010000e+00, + 4.816453158860000e-01, + 6.045469641690000e-01, + -1.088586807250000e+00, + -1.372886419300000e+00, + -4.427738189700000e-01, + 2.940482616420000e+00, + 7.135207653050000e-01, + 6.714420020580000e-02, + -1.019771456720000e+00, + 1.006065845490000e+00, + -2.892747163770000e+00, + -8.503726720810000e-01, + 3.485795736310000e+00, + -2.291765213010000e-01, + -9.326338171960000e-01, + -3.317905068400000e-01, + 1.093733608720000e-01, + -2.149158954620000e+00, + -5.984173417090000e-01, + 6.704354286190000e-01, + -1.697991371150000e+00, + 2.655684351920000e-01, + 1.449697494510000e+00, + -6.224104762080001e-01, + -3.566268920900000e+00, + -2.099978446960000e+00, + -9.936963319780000e-01, + 1.323174834250000e+00, + -7.525213807820000e-02, + 2.953816890720000e+00, + 4.222407341000000e+00, + 1.459950208660000e+00, + 1.298878312110000e+00, + -2.492594718930000e+00, + 2.686433553700000e+00, + -1.626816272740000e+00, + 3.312032938000000e+00, + 1.024506688120000e+00, + 5.659148097040000e-01, + -1.174410939220000e+00, + -3.669066667560000e+00, + -1.395871490240000e-01, + 7.664324045180000e-01, + 2.743551731110000e+00, + -4.829819202420000e-01, + -2.030769437550000e-01, + -8.471328616140000e-01, + -4.073151052000000e-01, + -9.139157533650000e-01, + -7.255678772930000e-01, + 5.668652057650000e-01, + 1.834662854670000e-01, + -1.054388642310000e+00, + -3.073485493660000e-01, + -3.084747314450000e+00, + -2.012023925780000e+00, + 1.522073745730000e-01, + -1.406591415410000e+00, + 7.546139359470000e-01, + -2.600374698640000e+00, + 1.704057097440000e+00, + -2.540063858030000e+00, + 5.087589263920000e+00, + 3.897390842440000e+00, + -8.019473552700001e-01, + 3.139559745790000e+00, + 8.559361100200000e-01, + 2.275739014150000e-01, + -5.747187137600001e-01, + -2.423697471620000e+00, + -1.671411544080000e-01, + -3.263468146320000e-01, + 4.373299181460000e-01, + -4.155905544760000e-01, + -5.103728175160001e-01, + -2.389519214630000e+00, + -1.248350739480000e+00, + -1.733961552380000e-01, + 2.562774658200000e+00, + 3.985894024370000e-01, + 5.981926918030001e-01, + -6.803841590880000e-01, + -1.393964767460000e+00, + -4.942246675490000e-01, + 2.641761064530000e+00, + 5.878889560700000e-01, + 9.099290519950000e-02, + -1.047572374340000e+00, + 1.068552255630000e+00, + -3.104583024980000e+00, + -8.903415203090000e-01, + 3.391506910320000e+00, + -3.378181159500000e-01, + -7.277270555499999e-01, + -2.581851556900000e-02, + -6.712742447850000e-01, + -1.885269284250000e+00, + -4.578324258330000e-01, + 9.396388530730000e-01, + 1.710808873180000e-01, + -4.106519222260000e-01, + 1.168277859690000e+00, + -1.635022401810000e+00, + -2.179756641390000e+00, + -2.299641847610000e+00, + 9.480673074720000e-01, + 9.590603709220000e-01, + -1.279073119160000e+00, + 3.399708032610000e+00, + 5.041034698490000e+00, + 1.899260163310000e+00, + 1.663506865500000e+00, + -1.625483870510000e+00, + 2.192723035810000e+00, + -1.996465563770000e+00, + 4.692555904390000e+00, + -6.035931408410000e-02, + 4.565831422810000e-01, + 3.734495639800000e-01, + -1.813453197480000e+00, + -5.549727007750000e-02, + 1.001763343810000e-01, + 2.997363328930000e+00, + 9.149480462070000e-01, + -1.082555890080000e+00, + -6.589788198470000e-01, + -6.549336314200001e-01, + 4.833096861840000e-01, + -2.511844336990000e-01, + 1.017891764640000e+00, + -5.933805108070001e-01, + -1.146722435950000e+00, + -3.196974992750000e-01, + -4.712900638580000e+00, + -1.817870974540000e+00, + 1.307271599770000e+00, + 5.698353648190000e-01, + -4.668647348880000e-01, + -3.287325859070000e+00, + 1.241076707840000e+00, + -2.777704238890000e+00, + 4.980655193330000e+00, + 3.923336267470000e+00, + -1.482053041460000e+00, + 2.291671276090000e+00, + 2.640717029570000e-01, + -2.024855464700000e-01, + -1.178185582160000e+00, + 5.208225846290000e-01, + 1.250784844160000e-01, + 6.731268167500000e-01, + 4.381105303760000e-01, + 1.789107024670000e-01, + 7.346882484850000e-03, + -1.082319498060000e+00, + -5.700376987460000e+00, + 6.420979499820000e-01, + 6.724927425380000e+00, + -3.909802198410000e+00, + 3.695695877080000e+00, + -3.238092422490000e+00, + -2.230639457700000e+00, + -3.577640533450000e+00, + 4.540103435520000e+00, + -1.447644948960000e+00, + 6.866919040680000e+00, + 4.763335704800000e+00, + -6.030803203580000e+00, + -2.244536161420000e+00, + 9.641868591310001e+00, + -7.082216262820000e+00, + -1.294410042460000e-02, + 2.771823704240000e-01, + -5.903697013850000e-01, + -5.026212893430000e-03, + -8.985769748690000e-01, + -4.856517314910000e+00, + 5.750283718110000e+00, + 8.023715019230000e-01, + -3.361198663710000e+00, + 5.080396175380000e+00, + -3.906872510910000e+00, + 4.695191860200000e+00, + -2.269623756410000e+00, + -6.167600750920000e-01, + -5.053406238560000e+00, + 1.029998493190000e+01, + 7.413888454440000e+00, + -8.156390190120000e+00, + 6.664876937870000e+00, + -3.874912261960000e+00, + -3.808825969700000e+00, + 1.279717326160000e+00, + -1.247656345370000e+00, + 4.914820671080000e+00, + -4.005391523240000e-02, + -2.380232334140000e+00, + -3.312813639640000e-01, + -2.446418523790000e+00, + 1.049009442330000e+00, + 3.322577714920000e+00, + -2.664720773700000e+00, + 3.458148479460000e+00, + -6.357154250140000e-02, + 6.101501464840000e+00, + -6.146175384520000e+00, + 1.925667971370000e-01, + 1.741451263430000e+00, + -4.900895118710000e+00, + -8.153937339780001e+00, + 8.165375709530000e+00, + 7.124612331390000e-01, + -1.089941501620000e+00, + -5.964808464050000e+00, + 2.321050643920000e+00, + -1.825848221780000e+00, + 1.006135749820000e+01, + -4.370294570920000e+00, + -6.856693744660000e+00, + 9.149113655090000e+00, + -7.452521324160000e+00, + -7.698792457580000e+00, + -5.314539074900000e-01, + 5.764303207400000e+00, + -4.370075702670000e+00, + -2.735388755800000e+00, + -5.158139228820000e+00, + 5.151458740230000e+00, + -1.060330346230000e-01, + 1.433584690090000e-01, + -1.022298708560000e-01, + -5.387819558380000e-02, + 8.871422708030000e-02, + -1.144071698190000e+00, + -6.278550148010000e+00, + 9.426960945130000e-01, + 6.928588390350000e+00, + -3.989601373670000e+00, + 3.411350965500000e+00, + -2.569826364520000e+00, + -2.510451793670000e+00, + -3.645218849180000e+00, + 4.529789924620000e+00, + -1.459239959720000e+00, + 7.280537128450000e+00, + 5.185286521910000e+00, + -5.744645595550000e+00, + -1.792775988580000e+00, + 9.695328712460000e+00, + -7.136497020720000e+00, + 9.289948269720001e-03, + 5.246758461000000e-01, + 2.572023868560000e-01, + 2.068283408880000e-01, + -1.711235642430000e+00, + -5.801795482640000e+00, + 6.221436023710000e+00, + 5.808707475660000e-01, + -3.234718084340000e+00, + 4.183043956760000e+00, + -3.278104305270000e+00, + 4.674997329710000e+00, + -1.343515276910000e+00, + -1.952480196950000e+00, + -4.781071662900000e+00, + 1.108587551120000e+01, + 8.537656784059999e+00, + -9.209982872010000e+00, + 6.335552692410000e+00, + -4.266228199010000e+00, + -4.523316383360000e+00, + 2.528635501860000e+00, + -6.323005557060000e-01, + 3.595886945720000e+00, + 5.545173771680000e-03, + -2.386002779010000e+00, + -6.298784613610000e-01, + -2.362141609190000e+00, + -3.039663434030000e-01, + 3.235168457030000e+00, + -2.060651063920000e+00, + 2.976675271990000e+00, + -4.462330341340000e-01, + 4.320422172550000e+00, + -5.794038772580000e+00, + -6.062092185020000e-01, + -2.395349889990000e-01, + -4.785475730900000e+00, + -8.676938056950000e+00, + 8.301698684690001e+00, + 4.306092858310000e-03, + -1.406999707220000e+00, + -4.354140281680000e+00, + 2.289886713030000e+00, + -4.684318065640000e+00, + 9.950131416320000e+00, + -3.361140489580000e+00, + -5.197301387790000e+00, + 9.388356208799999e+00, + -5.468271255490000e+00, + -8.448697090150000e+00, + -1.457711309190000e-01, + 6.022411346440000e+00, + -2.550684928890000e+00, + -3.661713361740000e+00, + -5.600465297700000e+00, + 5.591753959660000e+00, + 1.408900737760000e+00, + 2.484805583950000e+00, + 1.501302123070000e+00, + 1.486034035680000e+00, + 1.571415185930000e+00, + -2.188424110410000e+00, + 5.785639286040000e+00, + 5.528971672060000e+00, + -7.764549851420000e-01, + -3.293977499010000e+00, + 9.464916586880000e-01, + 2.079181909560000e+00, + -3.444869518280000e+00, + 5.264631271360000e+00, + -8.207243867220000e-03, + 6.806382656100000e+00, + -1.169082522390000e+00, + -8.260514736180000e-01, + -5.505097866060000e+00, + -5.749891281130000e+00, + -2.528817653660000e+00, + -4.648183345790000e+00, + 2.431341409680000e+00, + 3.338101804260000e-01, + 1.092305898670000e+00, + 1.880901932720000e+00, + -1.917001962660000e+00, + 6.535941123960000e+00, + 1.046316623690000e-01, + 5.641331672670000e+00, + -2.532799720760000e+00, + 5.509743690490000e-01, + 2.872512102130000e+00, + -1.073735952380000e+00, + -7.734207153320000e+00, + 7.851825237270000e+00, + -4.236625194550000e+00, + -1.338228106500000e+00, + -1.490708470340000e+00, + -5.960890769960000e+00, + 2.066028863190000e-01, + -2.535855054860000e+00, + 1.700261473660000e+00, + 5.463948249820000e+00, + -1.545106530190000e+00, + 7.588344812389999e-02, + 4.752483844760000e+00, + 5.037207126620000e+00, + -2.279330253600000e+00, + -3.837009191510000e+00, + 4.734773159030000e+00, + 2.030584365130000e-01, + 7.297532081600000e+00, + -4.246394038200000e-01, + 1.367604017260000e+00, + -1.510007023810000e+00, + 5.950017452240000e+00, + 1.353832840920000e+00, + 1.140420317650000e+00, + -7.469150066380000e+00, + -4.156860351560000e+00, + -7.539691329000000e-01, + 5.319679379459999e-01, + -4.347617626190000e+00, + 6.159984588620000e+00, + 1.106251955030000e+00, + 2.630645751950000e+00, + -4.747692584990000e+00, + -6.102103710170000e+00, + -5.411263942720000e+00, + -2.853489875790000e+00, + -4.092730045320000e+00, + -3.178266048430000e+00, + -1.663173913960000e+00, + -2.454531788830000e-01, + -3.068536758420000e+00, + 3.206266880040000e+00, + 5.430626869200000e+00, + -8.170596361160000e-01, + 1.486066937450000e+00, + 1.528646826740000e+00, + 1.421176075940000e+00, + 9.419049024580000e-01, + 1.401146411900000e+00, + -1.132518172260000e+00, + 5.678652763370000e+00, + 5.143944263460000e+00, + -8.516568541530000e-01, + -3.678160190580000e+00, + 1.819433569910000e-01, + 2.452402591710000e+00, + -3.312101364140000e+00, + 4.893533706670000e+00, + 3.630536496640000e-01, + 6.500393390660000e+00, + -1.380627155300000e+00, + -6.865530014040000e-01, + -5.680288314820000e+00, + -5.745982170100000e+00, + -2.714652538300000e+00, + -4.632566452030000e+00, + 1.256005883220000e+00, + 1.595027446750000e+00, + 1.290914297100000e+00, + 1.116082429890000e+00, + -1.776700377460000e+00, + 5.448888301850000e+00, + -4.969115555290000e-01, + 6.103685855870000e+00, + -3.880164623260000e+00, + -3.363781273370000e-01, + 4.415388584140000e+00, + -2.842885017400000e+00, + -7.735841274260000e+00, + 8.504417419430000e+00, + -4.244020462040000e+00, + -6.940940618520000e-01, + -8.826971054079999e-01, + -4.812868595120000e+00, + 2.644364535810000e-01, + -1.266511440280000e+00, + 1.645873785020000e+00, + 4.445925235750000e+00, + -2.497004032140000e+00, + 8.628112077710000e-01, + 5.883694171910000e+00, + 6.836370468140000e+00, + -1.817067503930000e+00, + -3.619621992110000e+00, + 4.474519729610000e+00, + -2.702476084230000e-01, + 6.891392707820000e+00, + 4.921904206280000e-02, + 1.595094442370000e+00, + -5.202245712280000e-02, + 5.736714839940000e+00, + 2.776098012920000e+00, + 1.280945658680000e+00, + -6.937503337860000e+00, + -5.697381496430000e+00, + -2.015594244000000e+00, + 1.336016893390000e+00, + -5.279885292050000e+00, + 5.725283145900000e+00, + 1.073835730550000e+00, + 3.330870866780000e+00, + -3.957507610320000e+00, + -4.996399402620000e+00, + -5.517874240880000e+00, + -2.535950660710000e+00, + -4.880579948430000e+00, + -3.273924589160000e+00, + -2.017182827000000e+00, + -5.024482607840000e-01, + -4.876575469970000e+00, + 3.381303787230000e+00, + 6.347755908970000e+00, + -1.272166371350000e-01, + -3.400758504870000e-01, + -4.403696358200000e-01, + -9.443868398670000e-01, + -1.905579268930000e-01, + -2.563517391680000e-01, + -1.883772373200000e+00, + -1.234980225560000e+00, + 1.172258704900000e-01, + 2.359954118730000e+00, + 3.541663587090000e-01, + 4.091364443300000e-01, + -1.142617344860000e+00, + -1.519655227660000e+00, + -6.094807982440000e-01, + 3.002320766450000e+00, + 7.791673541070000e-01, + -1.879655569790000e-01, + -1.538924574850000e+00, + 8.860636949539999e-01, + -2.889148712160000e+00, + -8.943396806720000e-01, + 3.519711017610000e+00, + -3.261172473430000e-01, + -1.536837518220000e-01, + -3.942465484140000e-01, + 3.013860285280000e-01, + -2.361012220380000e+00, + 8.760638535020000e-02, + 3.460744619370000e+00, + -2.311582565310000e+00, + 7.480166554450000e-01, + 1.628006339070000e+00, + -4.400279521940000e-01, + -2.345145702360000e+00, + -1.465764403340000e+00, + -7.606719136240000e-01, + 9.143390059470000e-01, + -7.216335535050000e-01, + 2.719388961790000e+00, + 3.874426603320000e+00, + 2.643201112750000e+00, + 1.938229441640000e+00, + -1.976547837260000e+00, + 3.177188396450000e+00, + -9.816123843190000e-01, + 4.183875083920000e+00, + 6.894980072980000e-01, + 8.850981593130000e-01, + -1.035015940670000e+00, + -1.187716245650000e+00, + -1.512185931210000e-01, + 6.151823997500000e-01, + 2.689107418060000e+00, + 3.718282282350000e-01, + -2.817375063900000e-01, + -1.562137722970000e+00, + -7.837877869610000e-01, + -6.235535740850000e-01, + -7.558327913280000e-01, + -2.885551750660000e-01, + 2.768619451670000e-03, + -3.976990282540000e-01, + 1.091973066330000e+00, + -5.392709732060000e+00, + -2.157245874400000e+00, + 7.413420677190000e-01, + -5.830003023150000e-01, + -2.305005937810000e-01, + -4.003566741940000e+00, + 1.690228104590000e+00, + -2.834480524060000e+00, + 4.654028892520000e+00, + 2.917412996290000e+00, + -1.629390358920000e+00, + 2.457098484040000e+00, + 6.784736365080000e-02, + 5.333535075190000e-01, + -1.483787894250000e+00, + -1.326496481900000e+00, + -3.350609838960000e-01, + -5.100948214530000e-01, + -1.086331903930000e-01, + -2.427009493110000e-01, + -3.076212108140000e-01, + -1.376668930050000e+00, + -1.774923920630000e+00, + 3.130274415020000e-01, + 2.467355489730000e+00, + 3.857897967100000e-02, + 6.398273110390000e-01, + -1.116487979890000e+00, + -1.753925204280000e+00, + -6.888372898100000e-01, + 2.916791677470000e+00, + 7.607847452160000e-01, + 9.407802484930001e-03, + -1.355612277980000e+00, + 6.686139702800000e-01, + -2.721763134000000e+00, + -8.360288143160000e-01, + 3.508030414580000e+00, + -1.592035293580000e-01, + -4.185879230500000e-01, + -2.755084037780000e-01, + 3.259097933770000e-01, + -3.149961233140000e+00, + -3.360300958160000e-01, + 8.766518235210000e-01, + -6.854954361920000e-01, + 3.022355139260000e-01, + -1.349766701460000e-01, + -6.440753936770000e-01, + -2.562894105910000e+00, + -1.884911656380000e+00, + 9.148919582370000e-01, + -6.680361628530000e-01, + -7.339522242550000e-01, + 2.828770160680000e+00, + 4.074456214900000e+00, + 3.276967287060000e+00, + 1.275987505910000e+00, + -2.312694787980000e+00, + 2.045934438710000e+00, + -2.054125308990000e+00, + 4.995917320250000e+00, + 1.030236959460000e+00, + -8.180388249460000e-03, + -2.032307624820000e+00, + -1.744230985640000e+00, + 9.038633108140000e-01, + -6.755725145340000e-01, + 2.639357328410000e+00, + 1.347178816800000e+00, + -6.320322752000000e-01, + -1.017417430880000e+00, + -1.313245892520000e+00, + -4.045108556750000e-01, + -4.232499599460000e-01, + 1.226503372190000e+00, + -2.537457942960000e-01, + 1.573155075310000e-01, + -4.723910391330000e-01, + -4.867947101590000e+00, + -5.720899105070000e-01, + 1.180567860600000e+00, + -3.491637408730000e-01, + 2.234564870600000e-01, + -3.718945503230000e+00, + 2.733937501910000e+00, + -2.620696067810000e+00, + 5.025258541110000e+00, + 2.556814432140000e+00, + -3.081941366200000e+00, + 2.376016139980000e+00, + 1.064912006260000e-01, + 2.954638898370000e-01, + -5.206004977230000e-01, + -1.698853492740000e+00, + 4.259568452840000e-02, + -6.066127419470000e-01, + 1.289208829400000e-01, + 6.351369619369999e-02, + 1.701728403570000e-01, + -5.485384464260000e-01, + -5.653530120850000e+00, + 7.448415160180000e-01, + 6.584553241730000e+00, + -4.139633178710000e+00, + 3.292703628540000e+00, + -2.956158161160000e+00, + -2.363040208820000e+00, + -3.711099624630000e+00, + 4.636826992030000e+00, + -1.357139706610000e+00, + 7.281214714050000e+00, + 5.124569892880000e+00, + -6.059857845310000e+00, + -1.999858856200000e+00, + 9.689055442810000e+00, + -7.196162700650000e+00, + 4.002637863160000e-01, + -1.187228262420000e-01, + 7.579929828640000e-01, + -2.601579129700000e-01, + -1.298832416530000e+00, + -5.561451435090000e+00, + 6.449013710020000e+00, + 2.155474185940000e+00, + -3.069952964780000e+00, + 3.590137720110000e+00, + -3.288892745970000e+00, + 4.535058975220000e+00, + -2.153738260270000e+00, + -7.199360430240000e-02, + -4.140982151030000e+00, + 1.106855964660000e+01, + 7.601665496830000e+00, + -9.516297340390000e+00, + 6.155206680300000e+00, + -3.892917156220000e+00, + -5.232266426090000e+00, + 1.304394006730000e+00, + -2.242798209190000e-01, + 3.611714124680000e+00, + 8.409955501560000e-01, + -1.169817209240000e+00, + -7.218970656390000e-01, + -2.107394456860000e+00, + 8.301727175710000e-01, + 3.818996191020000e+00, + -6.273550391200000e-01, + 3.885053634640000e+00, + -1.754587739710000e-01, + 4.920767307280000e+00, + -6.648549079900000e+00, + 1.038402915000000e-01, + 7.988644242289999e-01, + -5.688230514530000e+00, + -8.201430320740000e+00, + 8.313231468200000e+00, + -3.975647985940000e-01, + -1.386470317840000e+00, + -4.444781303410000e+00, + 3.638569831850000e+00, + -2.452850103380000e+00, + 9.412504196170000e+00, + -4.001114368440000e+00, + -6.088064193730000e+00, + 9.338685035710000e+00, + -4.856527328490000e+00, + -7.913638591770000e+00, + -1.986665874720000e-01, + 6.711000442500000e+00, + -3.957030773160000e+00, + -3.613602399830000e+00, + -5.727219104770000e+00, + 5.768626689910000e+00, + 5.295040085910000e-02, + -8.784654736520001e-02, + 4.178409576420000e-01, + -6.562079489229999e-02, + 6.607974320649999e-02, + -5.584271550180000e-01, + -5.629893779750000e+00, + 8.729987144469999e-01, + 6.775433540340000e+00, + -3.898388624190000e+00, + 3.466883420940000e+00, + -3.103551149370000e+00, + -1.986011743550000e+00, + -3.724182128910000e+00, + 4.529704570770000e+00, + -1.777731537820000e+00, + 7.293826580050000e+00, + 5.264297962190000e+00, + -5.915235996250000e+00, + -2.288660764690000e+00, + 9.806051254270001e+00, + -7.245324611660000e+00, + 2.209856361150000e-01, + 4.070772230630000e-01, + -5.319154858589999e-01, + 2.124173045160000e-01, + -5.729588866230000e-01, + -4.592548370360000e+00, + 6.683463096620000e+00, + 1.781128287320000e+00, + -4.215480804440000e+00, + 3.557046175000000e+00, + -2.662195205690000e+00, + 4.807310581210000e+00, + -1.230927586560000e+00, + -1.901791334150000e+00, + -5.206610679630000e+00, + 9.685975074770001e+00, + 8.002058982850000e+00, + -8.934628486630000e+00, + 5.636113643650000e+00, + -3.481711387630000e+00, + -3.458166122440000e+00, + 1.836975932120000e+00, + -5.012803673739999e-01, + 3.153390407560000e+00, + -4.446809291840000e-01, + -1.966952443120000e+00, + -2.909838557240000e-01, + -2.861826896670000e+00, + 6.292434334750000e-01, + 2.091908693310000e+00, + -1.669928908350000e+00, + 3.090272665020000e+00, + 1.003670394420000e-01, + 5.018265247340000e+00, + -6.081779003140000e+00, + -3.977676033970000e-01, + -4.030016660690000e-01, + -4.567418098450000e+00, + -7.271801948550000e+00, + 9.144444465639999e+00, + 8.482901006940000e-02, + -9.419988393780000e-01, + -5.419722080230000e+00, + 2.199007272720000e+00, + -1.935879468920000e+00, + 9.667731285100000e+00, + -2.391572237010000e+00, + -5.840230464940000e+00, + 9.266538620000000e+00, + -5.534312725070000e+00, + -7.917808055880000e+00, + -1.422003507610000e+00, + 6.547179698940000e+00, + -2.803876876830000e+00, + -3.070375680920000e+00, + -5.572230815890000e+00, + 4.056207180020000e+00, + 1.365023255350000e+00, + 1.990280509000000e+00, + 1.534742712970000e+00, + 1.210033059120000e+00, + 1.439883589740000e+00, + -1.646113038060000e+00, + 5.968342781070000e+00, + 4.884280204770000e+00, + -6.929321289060000e-01, + -3.518258333210000e+00, + 3.852386176590000e-01, + 2.313640117650000e+00, + -4.166656017300000e+00, + 5.090096950530000e+00, + 3.678288757800000e-01, + 6.597736835480000e+00, + -1.384709835050000e+00, + -6.016283035280000e-01, + -5.440173149110000e+00, + -5.558740139010000e+00, + -2.633588790890000e+00, + -4.412556648250000e+00, + 1.244857907300000e+00, + 1.699988245960000e+00, + 1.174281716350000e+00, + 1.186655998230000e+00, + -1.287665009500000e+00, + 6.238014221190000e+00, + -4.747604578730000e-02, + 5.283022880550000e+00, + -2.875815868380000e+00, + 1.295196056370000e+00, + 3.028349161150000e+00, + -1.252366065980000e+00, + -7.921692371370000e+00, + 7.149055004120000e+00, + -3.810145616530000e+00, + -1.826851844790000e+00, + -1.231572508810000e+00, + -6.132167816160000e+00, + -3.974101841450000e-01, + -1.051306843760000e+00, + 9.094664454460000e-01, + 6.131248474120000e+00, + -1.627036571500000e+00, + 8.359783291820000e-01, + 5.973100662230000e+00, + 4.854874134060000e+00, + -1.890245795250000e+00, + -3.523797035220000e+00, + 4.668524742130000e+00, + 3.266169726850000e-01, + 6.526643753050000e+00, + 1.225659344350000e-02, + 6.973893046380000e-01, + -1.317949056630000e+00, + 5.848593235020000e+00, + 1.379652261730000e+00, + 1.951047778130000e+00, + -7.527921199800000e+00, + -6.589416503910000e+00, + -1.579690098760000e+00, + 1.197422623630000e+00, + -4.951559543610000e+00, + 5.429094791410000e+00, + 6.350123882290000e-02, + 2.520846843720000e+00, + -2.902279615400000e+00, + -5.793534755710000e+00, + -4.034440994260000e+00, + -3.737781047820000e+00, + -4.157915592190000e+00, + -3.628102779390000e+00, + -2.259372949600000e+00, + -1.167573809620000e+00, + -3.288060903550000e+00, + 2.599766254430000e+00, + 5.232243537900000e+00, + -6.189454197880000e-01, + 1.389555811880000e+00, + 1.284009814260000e+00, + 1.373146772380000e+00, + 1.504260778430000e+00, + 1.525725960730000e+00, + -1.624521851540000e+00, + 5.797672271730000e+00, + 4.907997608180000e+00, + -6.066457629200001e-01, + -3.258494853970000e+00, + 2.633717060090000e-01, + 2.415448427200000e+00, + -3.028027296070000e+00, + 5.052035331730000e+00, + 2.246630489830000e-01, + 6.582183837890000e+00, + -1.409061074260000e+00, + -1.049257159230000e+00, + -5.348223686220000e+00, + -5.847084045410000e+00, + -2.648216962810000e+00, + -4.426447868350000e+00, + 1.103517651560000e+00, + 1.646206021310000e+00, + 1.879649043080000e+00, + 1.392826557160000e+00, + -1.439741373060000e+00, + 6.638794898990000e+00, + -7.854778170590000e-01, + 5.371876239780000e+00, + -3.631109714510000e+00, + -1.283830702300000e-01, + 2.242968797680000e+00, + -4.354583024980000e-01, + -5.798032760620000e+00, + 6.552357673650000e+00, + -3.571918010710000e+00, + -1.965036630630000e+00, + -9.120247960090000e-01, + -5.214448928830000e+00, + -5.508859157560000e-01, + -1.450906991960000e+00, + 2.446157932280000e+00, + 4.237208843230000e+00, + -9.033273458480000e-01, + 4.592411816120000e-01, + 4.728971958160000e+00, + 6.283242702480000e+00, + -2.621889114380000e+00, + -3.829986810680000e+00, + 5.201684951780000e+00, + 6.401250958440000e-01, + 6.760006904600000e+00, + 2.136616706850000e+00, + 9.551085829730001e-01, + -1.729649424550000e+00, + 5.894610404970000e+00, + 1.070371508600000e+00, + 1.771528005600000e+00, + -6.703867435460000e+00, + -4.829915523530000e+00, + -1.388496160510000e+00, + 1.363413453100000e+00, + -5.032964706420000e+00, + 7.784407615660000e+00, + 3.282933831210000e-01, + 2.155267238620000e+00, + -3.709511041640000e+00, + -5.390211582180000e+00, + -4.936597347260000e+00, + -3.536352157590000e+00, + -4.546531200410000e+00, + -3.487323522570000e+00, + -9.698296785350000e-01, + 5.494215488430000e-01, + -3.866204261780000e+00, + 2.801478147510000e+00, + 5.100224494930000e+00, + -1.257966041560000e+00, + -3.561635315420000e-01, + -6.124281287190000e-01, + -4.043366611000000e-01, + -4.163476824760000e-01, + 1.700457632540000e-01, + -1.846563816070000e+00, + -1.181386113170000e+00, + 4.738551676270000e-01, + 2.708302021030000e+00, + 3.220764920120000e-03, + 7.178269624710000e-01, + -9.947681427000000e-01, + -2.147706031800000e+00, + -5.716174244880000e-01, + 2.854986667630000e+00, + 6.451241970060000e-01, + 2.133432775740000e-01, + -1.122534990310000e+00, + 9.354794025420000e-01, + -3.025701522830000e+00, + -8.775398135190000e-01, + 3.478152275090000e+00, + -4.696866571900000e-01, + -8.243508338930000e-01, + -3.186587393280000e-01, + 3.962662220000000e-01, + -1.799170374870000e+00, + -4.752860218290000e-02, + 2.715221405030000e+00, + -1.045281887050000e+00, + -1.206970289350000e-01, + -4.212747514250000e-02, + -1.090665578840000e+00, + -3.190431594850000e+00, + -1.495357990260000e+00, + 5.272498726840000e-01, + 5.147837996480000e-01, + -6.795045137410000e-01, + 3.152140855790000e+00, + 3.085311174390000e+00, + 3.439893007280000e+00, + 2.216070652010000e+00, + -1.596674561500000e+00, + 1.793564081190000e+00, + -1.611790776250000e+00, + 5.229389667510000e+00, + -5.180237442260000e-02, + -9.550058096650001e-02, + -2.012962102890000e+00, + -1.654386162760000e+00, + 3.960476517680000e-01, + 4.129220247270000e-01, + 2.110125303270000e+00, + 1.146941900250000e+00, + 6.029507145290000e-02, + -9.793894290920000e-01, + -7.393132448200000e-01, + -1.729605793950000e-01, + -5.651738047600000e-01, + 2.045846462250000e+00, + 1.828275918960000e-01, + -1.087762355800000e+00, + -6.086050868030000e-01, + -4.933066368100000e+00, + -1.458490729330000e+00, + -3.019645810130000e-02, + -8.779693245890000e-01, + 2.978819012640000e-01, + -3.891885995860000e+00, + 1.566789507870000e+00, + -3.146077394490000e+00, + 5.153591632840000e+00, + 3.473346710210000e+00, + -2.304637908940000e+00, + 3.021925687790000e+00, + 4.422621428970000e-01, + 5.327289700510000e-01, + -8.530145287510000e-01, + -1.755597710610000e+00, + -2.865270674230000e-01, + -4.599824845790000e-01, + -9.763759970660000e-01, + -3.749442696570000e-01, + -2.676489055160000e-01, + -1.990801453590000e+00, + -1.105133414270000e+00, + 4.484187066560000e-01, + 2.560820102690000e+00, + 3.030122518540000e-01, + 7.756752371790000e-01, + -6.491016745570000e-01, + -1.535570144650000e+00, + -4.152189195160000e-01, + 2.812394142150000e+00, + 6.951318979260001e-01, + 1.398945003750000e-01, + -1.156307935710000e+00, + 9.260838031770000e-01, + -3.304813146590000e+00, + -1.056023836140000e+00, + 3.239284038540000e+00, + -6.747330427170000e-01, + -2.547688782220000e-01, + -2.710145413880000e-01, + 5.092774033550000e-01, + -1.352108955380000e+00, + -3.061334788800000e-01, + 3.628601551060000e+00, + -1.205334186550000e+00, + -1.956987828020000e-01, + 6.566461324690001e-01, + -1.684983372690000e+00, + -3.101907014850000e+00, + -2.278596401210000e+00, + 1.921728104350000e-01, + 1.498690962790000e+00, + -2.407664060590000e+00, + 3.793772459030000e+00, + 4.770984649660000e+00, + 2.064745426180000e+00, + 7.280684113500000e-01, + -9.199605584140000e-01, + 2.086908578870000e+00, + -1.856748580930000e+00, + 4.280251502990000e+00, + 1.001596450810000e+00, + 1.037516236310000e+00, + -1.755903124810000e+00, + -3.053471803670000e+00, + 7.510502934460001e-01, + 1.235265970230000e+00, + 1.983675599100000e+00, + 3.482874929900000e-01, + -1.463157773020000e+00, + -6.996858119960000e-01, + -1.432286024090000e+00, + 1.335034146900000e-03, + -8.532263636590000e-01, + 2.029050588610000e+00, + -7.875023037200000e-02, + -3.927797079090000e-01, + -2.044533044100000e-01, + -4.053945064540000e+00, + -1.152651906010000e+00, + 6.024641990660000e-01, + 3.880443871020000e-01, + 8.040151596070000e-01, + -4.789990425110000e+00, + 2.353071212770000e+00, + -3.120761394500000e+00, + 5.479545116420000e+00, + 3.222928047180000e+00, + -1.799320101740000e+00, + 2.762742996220000e+00, + 4.490727484230000e-01, + -6.566939949990001e-01, + -9.982815384860000e-01, + -1.521066308020000e+00, + -1.721170172100000e-02, + 1.373746544120000e-01, + 3.344577923420000e-02, + 1.053368926050000e+00, + 2.712579667570000e-01, + -4.973121583460000e-01, + -5.756243705750000e+00, + 9.650639891620000e-01, + 6.843822479250000e+00, + -3.486621141430000e+00, + 3.296039581300000e+00, + -3.126532316210000e+00, + -2.081348180770000e+00, + -3.759420394900000e+00, + 4.509146213530000e+00, + -1.646736621860000e+00, + 7.282872200010000e+00, + 5.033679485320000e+00, + -5.763713836670000e+00, + -2.315356016160000e+00, + 9.837756156919999e+00, + -7.058965206150000e+00, + 5.210183262830000e-01, + 6.531602144240000e-01, + -9.506398439410000e-01, + 3.316675126550000e-02, + -1.272587418560000e+00, + -5.924874782560000e+00, + 5.871699810030000e+00, + 2.256681919100000e+00, + -4.746046543120000e+00, + 3.210369586940000e+00, + -3.114109277730000e+00, + 4.646712303160000e+00, + -1.928179383280000e+00, + -1.252703189850000e+00, + -4.175373077390000e+00, + 1.188006305690000e+01, + 8.682103157040000e+00, + -8.637070655820001e+00, + 6.357901096340000e+00, + -4.311610698700000e+00, + -3.299133062360000e+00, + 2.450771093370000e+00, + -1.383144617080000e+00, + 3.697294950490000e+00, + 1.871038675310000e-01, + -2.508672952650000e+00, + -1.217641830440000e+00, + -2.036847114560000e+00, + 7.319626212120000e-01, + 3.875227689740000e+00, + -1.918159604070000e+00, + 3.419289588930000e+00, + -1.112183555960000e-01, + 5.416526317600000e+00, + -6.588184356690000e+00, + 4.231972992420000e-01, + -1.872912049290000e-01, + -5.093141555790000e+00, + -5.971426963810000e+00, + 8.147900581360000e+00, + 5.560174211860000e-02, + -1.016593337060000e+00, + -5.894411087040000e+00, + 1.513492345810000e+00, + -2.730423450470000e+00, + 1.012689876560000e+01, + -3.225398302080000e+00, + -6.406805515290000e+00, + 9.593373298650000e+00, + -5.551326751710000e+00, + -8.068071365360000e+00, + 5.827196240430000e-01, + 5.632110595700000e+00, + -3.315706014630000e+00, + -4.189528942110000e+00, + -4.867333412170000e+00, + 5.860126972200000e+00, + 4.694891721010000e-02, + 9.606332331900000e-02, + 1.153740808370000e-01, + 4.801363870500000e-02, + -1.189161613580000e-01, + -7.015939950940000e-01, + -5.760626792910000e+00, + 8.043392896650000e-01, + 6.695155143740000e+00, + -4.005356788640000e+00, + 3.346607685090000e+00, + -3.156990528110000e+00, + -2.272127866750000e+00, + -3.681544780730000e+00, + 4.612624168400000e+00, + -1.323207020760000e+00, + 7.371886730190000e+00, + 5.045694351200000e+00, + -5.954130172730000e+00, + -2.258927822110000e+00, + 9.763789176940000e+00, + -7.587691783910000e+00, + 2.529805898670000e-01, + -1.065623834730000e-01, + -8.456496149300000e-02, + 3.389371931550000e-01, + -1.155494332310000e+00, + -5.815164089200000e+00, + 6.943021774290000e+00, + 2.281721979380000e-01, + -4.031400203700000e+00, + 4.152806758880000e+00, + -2.972017288210000e+00, + 4.469453811650000e+00, + -1.116547822950000e+00, + -1.205614089970000e+00, + -4.628400802610000e+00, + 1.121960544590000e+01, + 6.961046695710000e+00, + -8.469263076780001e+00, + 6.396476745610000e+00, + -4.053979873660000e+00, + -4.203730106350000e+00, + 1.087916493420000e+00, + -1.516847729680000e+00, + 4.225967407230000e+00, + -5.434321761130000e-01, + -1.017162442210000e+00, + -9.661222100260000e-01, + -2.102147817610000e+00, + 1.828738152980000e-01, + 2.427361726760000e+00, + -1.382966399190000e+00, + 4.322530746460000e+00, + -4.671284854410000e-01, + 5.607039451600000e+00, + -5.816250801090000e+00, + 6.057533025740000e-01, + -9.670149087910000e-01, + -5.563079833980000e+00, + -7.660576343540000e+00, + 7.126162052150000e+00, + -4.372658580540000e-02, + -9.391271471979999e-01, + -4.861729145050000e+00, + 3.580864191060000e+00, + -1.892383575440000e+00, + 1.009084701540000e+01, + -3.416981697080000e+00, + -5.425031185150000e+00, + 9.398202896120001e+00, + -6.205451488490000e+00, + -7.637065887450000e+00, + -2.958141863350000e-01, + 6.615340232850000e+00, + -3.182789802550000e+00, + -3.349541187290000e+00, + -5.965358734130000e+00, + 4.981639385220000e+00, + 1.345581293110000e+00, + 1.516011357310000e+00, + 1.369976639750000e+00, + 1.043803572650000e+00, + 1.251685261730000e+00, + -1.630486965180000e+00, + 5.958374977110000e+00, + 4.972362995150000e+00, + -5.159503817560001e-01, + -3.595128297810000e+00, + 2.842206954960000e-01, + 2.428558588030000e+00, + -3.215420007710000e+00, + 5.302681446080000e+00, + 3.225919008250000e-01, + 6.502781391140000e+00, + -1.382902503010000e+00, + -8.091741800309999e-01, + -5.092295646670000e+00, + -5.737227439880000e+00, + -2.535532474520000e+00, + -4.669618129730000e+00, + 2.072160005570000e+00, + 1.296260595320000e+00, + 9.535085558890000e-01, + 6.121801733970000e-01, + -2.160456895830000e+00, + 6.003577232360000e+00, + -4.215985536580000e-01, + 5.766878128050000e+00, + -3.475728273390000e+00, + -1.582673341040000e-01, + 2.945257663730000e+00, + -1.852979063990000e+00, + -6.817885398860000e+00, + 8.607108116150000e+00, + -3.225410938260000e+00, + -1.938453078270000e+00, + -1.746208190920000e+00, + -5.066989421840000e+00, + -4.625518321990000e-01, + -9.874639511110000e-01, + 2.619411945340000e+00, + 5.822414875030000e+00, + -8.394590616230000e-01, + 9.729762077330000e-01, + 4.991139411930000e+00, + 6.222834110260000e+00, + -2.748597383500000e+00, + -4.659024238590000e+00, + 5.040865898130000e+00, + -6.029409170150000e-02, + 6.801105976100000e+00, + 8.316439390180000e-01, + 1.690107584000000e+00, + -1.135212779050000e+00, + 5.782986640930000e+00, + 2.091778516770000e+00, + 1.780672788620000e+00, + -5.721531391140000e+00, + -5.189505100250000e+00, + -1.732285022740000e+00, + 1.417659759520000e+00, + -5.664142608640000e+00, + 6.800588607790000e+00, + 1.130653381350000e+00, + 2.345157384870000e+00, + -4.777089595790000e+00, + -6.798969268800000e+00, + -3.885697126390000e+00, + -2.397639751430000e+00, + -4.788613796230000e+00, + -3.904011487960000e+00, + -1.401435256000000e+00, + -5.737778544430000e-01, + -4.260458946230000e+00, + 4.216995239260000e+00, + 5.634721279140000e+00, + -2.705981731410000e-01, + 1.386333823200000e+00, + 1.390713930130000e+00, + 1.326356172560000e+00, + 1.755413532260000e+00, + 1.579416394230000e+00, + -1.481652259830000e+00, + 5.866267681120000e+00, + 4.866976737980000e+00, + -7.645815610890000e-01, + -3.033524513240000e+00, + 1.313602626320000e-01, + 2.588052988050000e+00, + -3.484421253200000e+00, + 4.969917774200000e+00, + 1.988236606120000e-01, + 6.388422966000000e+00, + -1.794641256330000e+00, + -3.589423596860000e-01, + -5.143349647520000e+00, + -5.612290382390000e+00, + -2.489423990250000e+00, + -4.832810878750000e+00, + 1.635379791260000e+00, + 1.847046017650000e+00, + 9.496958851810000e-01, + 1.337970137600000e+00, + -1.305999159810000e+00, + 5.637597084050000e+00, + -6.259858608250000e-01, + 5.896835803990000e+00, + -3.099919557570000e+00, + 8.391038179400000e-01, + 2.806182861330000e+00, + -1.123195409770000e+00, + -6.919589519500000e+00, + 8.688383102420000e+00, + -3.747605085370000e+00, + -1.649761199950000e+00, + -1.084480166440000e+00, + -4.903249263760000e+00, + -8.147028088570000e-01, + -1.504976630210000e+00, + 1.713584661480000e+00, + 4.974702358250000e+00, + -4.626793861390000e-01, + 3.129802942280000e-01, + 4.617197990420000e+00, + 6.792727470400000e+00, + -1.600042223930000e+00, + -3.746671438220000e+00, + 4.052036285400000e+00, + -1.488010585310000e-01, + 7.279824733730000e+00, + 4.211765527730000e-01, + 3.723737597470000e-01, + -1.187140703200000e+00, + 6.160725116730000e+00, + 1.994696021080000e+00, + 7.230813503270000e-01, + -6.541836261750000e+00, + -5.432631015780000e+00, + -1.926384925840000e+00, + 1.189162731170000e+00, + -5.753571510310000e+00, + 5.272820472720000e+00, + -2.000740766530000e-01, + 1.683581233020000e+00, + -4.406605243680000e+00, + -6.252301216130000e+00, + -5.129081726070000e+00, + -1.968856930730000e+00, + -3.762664794920000e+00, + -3.879715681080000e+00, + -2.343218326570000e+00, + -1.370212554930000e+00, + -3.527332067490000e+00, + 2.640403985980000e+00, + 6.570435047150000e+00, + -6.019206643100000e-01, + -2.033693045380000e-01, + -4.897488057610000e-01, + -3.316701948640000e-01, + -4.652046561240000e-01, + -4.211593568330000e-01, + -1.751214981080000e+00, + -1.449036955830000e+00, + 1.664101779460000e-01, + 2.589089393620000e+00, + 5.458642840390000e-01, + 5.333428978920000e-01, + -7.387825250630000e-01, + -1.538142323490000e+00, + -7.842044830320000e-01, + 2.639615297320000e+00, + 8.332141041759999e-01, + 1.188802793620000e-01, + -1.076258063320000e+00, + 1.062921881680000e+00, + -3.037332773210000e+00, + -1.297487974170000e+00, + 3.649582624440000e+00, + -4.073857069020000e-01, + -1.332389563320000e-01, + -2.817262709140000e-01, + -1.151181340220000e+00, + -1.935276627540000e+00, + -9.763309955600000e-01, + 1.256761193280000e+00, + -9.578422904010000e-01, + 3.857603073120000e-01, + 9.990865588190000e-01, + -7.738247513770000e-01, + -3.677284479140000e+00, + -2.016792774200000e+00, + -2.012612521650000e-01, + 7.514794468879999e-01, + -1.100545048710000e+00, + 2.324738502500000e+00, + 3.093739032750000e+00, + 2.966820240020000e+00, + 1.488718867300000e+00, + -2.008825063710000e+00, + 1.721565246580000e+00, + -1.037460207940000e+00, + 4.774465560910000e+00, + 6.415528059009999e-01, + 2.765418887140000e-01, + -1.431363701820000e+00, + -1.586638808250000e+00, + 2.432653307910000e-01, + 1.974828243260000e-01, + 2.777988195420000e+00, + 8.871120214460000e-01, + -2.769731730220000e-02, + -1.108084797860000e+00, + -1.510518670080000e+00, + -9.282603263850000e-01, + -3.144982159140000e-01, + 1.222361922260000e+00, + -4.358890932050000e-03, + -1.081346035000000e+00, + -3.250840008260000e-01, + -4.610460758210000e+00, + -1.564673185350000e+00, + 3.658473789690000e-01, + -4.047288298610000e-01, + -1.289796710010000e+00, + -4.140145301820000e+00, + 2.617669820790000e+00, + -2.712168455120000e+00, + 4.980603694920000e+00, + 2.710610628130000e+00, + -2.249862670900000e+00, + 2.673748493190000e+00, + 1.221009731290000e+00, + -4.280811548230000e-01, + -4.702745974060000e-01, + -7.730728983880000e-01, + -3.431847095490000e-01, + -5.317378640170000e-01, + -2.577973604200000e-01, + 4.987410306930000e-01, + -3.702157437800000e-01, + -1.902222514150000e+00, + -9.375057816510000e-01, + 4.444651007650000e-01, + 2.565264940260000e+00, + 4.011083245280000e-01, + 4.884100854400000e-01, + -6.240018606190000e-01, + -1.395913243290000e+00, + -4.092531800270000e-01, + 2.783873796460000e+00, + 6.104952692990000e-01, + 1.290330290790000e-01, + -1.506062150000000e+00, + 1.317623496060000e+00, + -3.267161130910000e+00, + -7.548519968990000e-01, + 3.367157697680000e+00, + -1.480508089070000e+00, + -5.658679008480000e-01, + -2.501217722890000e-01, + -7.833376526830000e-01, + -1.643778324130000e+00, + -9.736003875730000e-01, + 2.586443662640000e+00, + -3.439439535140000e-01, + -5.186426043510000e-01, + 5.556720122690000e-02, + -1.029940485950000e+00, + -2.734155893330000e+00, + -1.592096567150000e+00, + -3.640610277650000e-01, + 3.537970483300000e-01, + -4.107709974050000e-02, + 3.247638940810000e+00, + 3.998506546020000e+00, + 3.024392127990000e+00, + 1.190204858780000e+00, + -1.825471162800000e+00, + 2.581409692760000e+00, + -1.467094421390000e+00, + 4.015460491180000e+00, + 4.516165554520000e-01, + -3.998793661590000e-01, + -1.175858616830000e+00, + -1.686855196950000e+00, + 1.656970381740000e-02, + 2.929731905460000e-01, + 2.224448919300000e+00, + 1.862410426140000e+00, + -1.394469022750000e+00, + -1.232972890140000e-01, + -1.284072995190000e+00, + -3.761875629430000e-02, + -8.841898441310000e-01, + 9.276906251910000e-01, + 1.327740997080000e-01, + -3.325354158880000e-01, + -4.530204832550000e-01, + -5.622840881350000e+00, + -1.008941173550000e+00, + 9.043772220610000e-01, + -4.738567173480000e-01, + 5.873740315440000e-01, + -3.785590171810000e+00, + 1.701064229010000e+00, + -2.150967836380000e+00, + 5.193631649020000e+00, + 2.702289104460000e+00, + -2.156628131870000e+00, + 1.662897348400000e+00, + 9.605038762090000e-01, + -3.411935865880000e-01, + -7.618302702899999e-01, + -1.318843603130000e+00, + 4.064759705220000e-04, + 3.963600397110000e-01, + -3.708974272010000e-02, + 6.876489520070000e-02, + 9.658774733540000e-02, + -6.030335426330000e-01, + -5.733562469480000e+00, + 7.903194427490000e-01, + 6.856240749360000e+00, + -3.128655433650000e+00, + 2.571826696400000e+00, + -3.286096811290000e+00, + -2.278700828550000e+00, + -3.648122310640000e+00, + 4.459932804110000e+00, + -1.939624071120000e+00, + 7.152599811550000e+00, + 5.122227191930000e+00, + -5.830418109890000e+00, + -2.043045043950000e+00, + 9.817855834960000e+00, + -7.407704830170000e+00, + 1.348550021650000e-01, + 2.798710465430000e-01, + 2.594628632070000e-01, + -6.225674599410000e-02, + -1.521937131880000e+00, + -5.304008960720000e+00, + 6.801889419560000e+00, + 1.250249862670000e+00, + -4.055698871610000e+00, + 3.269622325900000e+00, + -3.343378782270000e+00, + 4.566827774050000e+00, + -3.059435844420000e+00, + -1.185626268390000e+00, + -4.548506259920000e+00, + 1.132148838040000e+01, + 7.980056285860000e+00, + -8.503166198730000e+00, + 6.264315605160000e+00, + -4.317815780640000e+00, + -4.844187736510000e+00, + 1.669425845150000e+00, + -4.951563775540000e-01, + 3.415620803830000e+00, + 6.366090178490000e-01, + -1.696401357650000e+00, + 4.840761125090000e-01, + -3.266775608060000e+00, + 1.273527503010000e+00, + 4.699278354640000e+00, + -2.155594110490000e+00, + 4.099950313570000e+00, + -6.566677689550000e-01, + 5.725116252900000e+00, + -7.016096591950000e+00, + 2.364377379420000e-01, + -6.745688617230000e-03, + -4.303706169130000e+00, + -6.266968250270000e+00, + 8.488007545469999e+00, + -3.284884095190000e-01, + -3.352233171460000e-01, + -5.005799293520000e+00, + 3.345482587810000e+00, + -2.743296861650000e+00, + 1.027812099460000e+01, + -4.511247634890000e+00, + -6.681652545930000e+00, + 9.854834556580000e+00, + -6.955955028530000e+00, + -7.947627067570000e+00, + -8.599737286569999e-01, + 6.516438484190000e+00, + -3.931191921230000e+00, + -2.955003261570000e+00, + -5.479079246520000e+00, + 6.698867321010000e+00, + 9.394641965630000e-02, + 1.332750171420000e-01, + 2.210737019780000e-01, + -1.240085512400000e-01, + -1.390527002510000e-03, + -1.130619525910000e+00, + -5.723523616790000e+00, + 8.917222023010000e-01, + 6.688588142400000e+00, + -4.210535526280000e+00, + 3.544635772710000e+00, + -3.248975038530000e+00, + -2.452637910840000e+00, + -3.687058448790000e+00, + 4.542253017430000e+00, + -1.566694259640000e+00, + 7.343054294590000e+00, + 5.135595321660000e+00, + -6.169727325440000e+00, + -2.395901203160000e+00, + 9.697169303890000e+00, + -6.939312458040000e+00, + -1.391337662940000e-01, + -3.629113435750000e-01, + 1.664179861550000e-01, + -6.483483314510000e-01, + -3.523990511890000e-01, + -5.101428508760000e+00, + 5.806272983550000e+00, + 1.289406538010000e+00, + -4.123072147370000e+00, + 3.147712707520000e+00, + -2.744226217270000e+00, + 4.840701103210000e+00, + -7.738515138630000e-01, + -1.831422328950000e+00, + -5.136972904210000e+00, + 1.168562412260000e+01, + 8.088006019590001e+00, + -8.143409729000000e+00, + 6.716090202330000e+00, + -3.770788908000000e+00, + -4.129747867580000e+00, + 1.795775413510000e+00, + -1.367760062220000e+00, + 4.224515438080000e+00, + 8.068098425869999e-01, + -1.052320599560000e+00, + -8.188440203670000e-01, + -8.609619140620000e-01, + 1.104813456540000e+00, + 3.541577577590000e+00, + -1.592139959340000e+00, + 3.376173019410000e+00, + 4.193516969680000e-01, + 3.886539697650000e+00, + -6.507708549500000e+00, + 4.991154670720000e-01, + -3.131922781470000e-01, + -5.693731307980000e+00, + -6.420407772060000e+00, + 8.033753395080000e+00, + 2.973423898220000e-01, + -8.114230632780000e-01, + -3.963174819950000e+00, + 3.170823097230000e+00, + -4.345109462740000e+00, + 1.060378265380000e+01, + -4.256498336790000e+00, + -6.771399021150000e+00, + 9.101283073430000e+00, + -6.477507114410000e+00, + -8.706788063050000e+00, + -6.633689403530000e-01, + 5.826129913330000e+00, + -2.868530511860000e+00, + -3.730443954470000e+00, + -4.678860664370000e+00, + 5.007171154020000e+00, + 1.332082867620000e+00, + 1.823045372960000e+00, + 1.500163197520000e+00, + 1.399559140210000e+00, + 1.407920837400000e+00, + -1.671517848970000e+00, + 5.922862052920000e+00, + 4.928320884700000e+00, + -7.202176451680000e-01, + -4.011061191560000e+00, + 2.278458625080000e-01, + 2.534432649610000e+00, + -3.721970081330000e+00, + 4.997586250310000e+00, + 2.549444437030000e-01, + 5.694987297060000e+00, + -9.173827767370000e-01, + -5.468235015870000e-01, + -5.145090579990000e+00, + -5.643469333650000e+00, + -2.519585132600000e+00, + -4.686049938200000e+00, + 7.415174841880000e-01, + 2.708058118820000e+00, + 1.012637257580000e+00, + 1.989836454390000e+00, + -1.754680156710000e+00, + 6.358605384830000e+00, + -5.644820332529999e-01, + 5.575081348420000e+00, + -3.561988830570000e+00, + 3.331391215320000e-01, + 2.644033908840000e+00, + -9.439262151720000e-01, + -7.313593864440000e+00, + 9.067259788510000e+00, + -2.920158863070000e+00, + -7.465411424640001e-01, + -2.157043933870000e+00, + -5.665492534640000e+00, + 2.912987172600000e-01, + -6.291949152950000e-01, + 1.425964236260000e+00, + 5.274838924410000e+00, + -1.233668446540000e+00, + 1.080625057220000e+00, + 5.278086662290000e+00, + 6.199428558350000e+00, + -7.504017949100000e-01, + -4.293172359470000e+00, + 3.452232837680000e+00, + -3.356010913850000e-01, + 6.468975543980000e+00, + 1.003339171410000e+00, + 1.327151060100000e+00, + 7.836154699330000e-01, + 6.917762279510000e+00, + 1.309408783910000e+00, + 1.453216433530000e+00, + -7.216533184050000e+00, + -6.157656192780000e+00, + -2.721155643460000e+00, + 1.255384325980000e+00, + -5.266436100010000e+00, + 5.022133350370000e+00, + 1.150550484660000e+00, + 9.447639584540000e-01, + -4.739222049710000e+00, + -6.562050819400000e+00, + -5.115969657900000e+00, + -2.718834161760000e+00, + -3.951261997220000e+00, + -3.319682836530000e+00, + -1.457821965220000e+00, + -9.272421598430000e-01, + -3.143782377240000e+00, + 3.228515625000000e+00, + 5.765422344210000e+00, + -1.938028812410000e+00, + 1.404623031620000e+00, + 1.412314653400000e+00, + 1.488211154940000e+00, + 1.246850371360000e+00, + 1.198662400250000e+00, + -1.412104964260000e+00, + 5.897081375120000e+00, + 4.871365547180000e+00, + -8.620240688320000e-01, + -3.540480375290000e+00, + 3.215488195420000e-01, + 2.516605615620000e+00, + -3.232656240460000e+00, + 5.128573417660000e+00, + 1.784326285120000e-01, + 6.584953784940000e+00, + -1.253943324090000e+00, + -1.301834583280000e+00, + -5.059024333950000e+00, + -5.721750736240000e+00, + -2.452566862110000e+00, + -4.442999362950000e+00, + 1.720670104030000e+00, + 1.407491922380000e+00, + 9.086467623709999e-01, + 5.889188647269999e-01, + -5.403360724450000e-01, + 6.411640644070000e+00, + -8.777147531510000e-01, + 5.191866874690000e+00, + -3.203655242920000e+00, + -3.512347042560000e-01, + 2.595746755600000e+00, + -8.372304439540000e-01, + -7.321570873260000e+00, + 8.050137519840000e+00, + -3.644006967540000e+00, + -3.245463371280000e-01, + -6.643746495250000e-01, + -6.212202072140000e+00, + -1.407597064970000e+00, + -2.646742820740000e+00, + 3.268290281300000e+00, + 5.332527160640000e+00, + -1.542294383050000e+00, + -1.458761811260000e+00, + 3.839046001430000e+00, + 5.369057655330000e+00, + -2.522767066960000e+00, + -5.030287265780000e+00, + 4.741352558140000e+00, + -6.437278389930000e-01, + 8.038043975830000e+00, + 2.992026805880000e-01, + 1.485405683520000e+00, + -2.258379697800000e+00, + 6.598164558410000e+00, + 6.394519805909999e-01, + 1.737968564030000e+00, + -6.612744808200000e+00, + -5.412559986110000e+00, + -1.252467989920000e+00, + 1.290903925900000e+00, + -6.498995304110000e+00, + 4.581514835360000e+00, + -5.433422327039999e-01, + 3.134329319000000e+00, + -5.176929950710000e+00, + -5.617123126980000e+00, + -4.289920330050000e+00, + -3.319032430650000e+00, + -5.007339954380000e+00, + -4.687292099000000e+00, + -1.633746027950000e+00, + -1.348060607910000e+00, + -3.348189830780000e+00, + 1.561898112300000e+00, + 5.114150047300000e+00, + -7.545763850210000e-01, + -3.130876719950000e-01, + 8.522753417490000e-02, + -3.965732455250000e-01, + -3.565878272060000e-01, + -1.329900324340000e-01, + -2.005650520320000e+00, + -1.177992463110000e+00, + 3.534856438640000e-01, + 2.432257652280000e+00, + -1.506089512260000e-02, + 7.677670121190000e-01, + -9.034429192540000e-01, + -1.674305558200000e+00, + -3.482110798360000e-01, + 2.794728994370000e+00, + 1.370154023170000e+00, + -9.046876430509999e-02, + -1.497606635090000e+00, + 7.530726790430000e-01, + -3.252632141110000e+00, + -8.398627042770000e-01, + 3.476745605470000e+00, + -2.125764824450000e-02, + -3.152808249000000e-01, + -4.505002498630000e-01, + 8.340210914610000e-01, + -2.065461874010000e+00, + -1.163838267330000e+00, + 4.213716983800000e-01, + -3.932555019860000e-01, + 5.651201009750000e-01, + 4.282427132130000e-01, + -7.469817996030000e-01, + -3.961733102800000e+00, + -8.098385930060000e-01, + 2.392119467260000e-01, + -4.058003425600000e-02, + -8.647139072420000e-01, + 3.277284860610000e+00, + 4.183297634120000e+00, + 3.207612991330000e+00, + 5.176736712459999e-01, + -1.807186484340000e+00, + 1.904093027110000e+00, + -2.189891576770000e+00, + 2.378919363020000e+00, + 5.907200574870000e-01, + 6.685376167300000e-01, + -8.558841347690000e-01, + -2.243499279020000e+00, + -4.332709312440000e-01, + 1.157784834500000e-01, + 1.601805686950000e+00, + 1.278360366820000e+00, + -7.476546764370000e-01, + -2.122838735580000e+00, + -1.944109916690000e+00, + -7.485794425009999e-01, + -5.705788135530000e-01, + 1.113536238670000e+00, + 1.393886655570000e-02, + -5.748723745350000e-01, + -1.101537607610000e-02, + -3.808698177340000e+00, + -2.131531715390000e+00, + 4.662515223030000e-02, + -1.142150044440000e+00, + -6.227303668860000e-02, + -3.796146869660000e+00, + 1.287733435630000e+00, + -2.321932554250000e+00, + 5.071833133700000e+00, + 3.123215436940000e+00, + -1.720478177070000e+00, + 2.982553482060000e+00, + 3.210992813110000e-01, + 1.457442343240000e-01, + -6.985725760460000e-01, + -6.732548475270000e-01, + -2.876605093480000e-01, + -2.430487126110000e-01, + -3.757804036140000e-01, + -2.179299294950000e-01, + -3.497970998290000e-01, + -1.393316626550000e+00, + -1.083245277400000e+00, + 1.109337687490000e+00, + 2.354999303820000e+00, + 7.222247123720000e-01, + 5.831108689309999e-01, + -8.939844369890000e-01, + -1.515009760860000e+00, + -5.854573845860001e-01, + 2.763950824740000e+00, + 7.510638833050000e-01, + 7.782748341560000e-02, + -4.313142299650000e-01, + 7.664051055909999e-01, + -3.213858127590000e+00, + -8.781599402430000e-01, + 3.750675201420000e+00, + -5.030496716500000e-01, + 2.864948809150000e-01, + 5.101564805950000e-03, + -3.815605640410000e-01, + -2.520458698270000e+00, + -1.186879158020000e+00, + 1.586498141290000e+00, + -1.506176352500000e+00, + 5.663461089130000e-01, + 8.554179072380000e-01, + -7.791872322560001e-02, + -3.053296327590000e+00, + -2.386606693270000e+00, + -1.234059855340000e-01, + 2.965085804460000e-01, + -7.220048308370000e-01, + 4.242608070370000e+00, + 3.877264022830000e+00, + 2.468152761460000e+00, + 1.036041498180000e+00, + -1.774048566820000e+00, + 1.776569008830000e+00, + -1.812232136730000e+00, + 5.539137840270000e+00, + -9.487559646370000e-02, + 1.375990509990000e+00, + -1.890329837800000e+00, + -2.516294240950000e+00, + 2.665386199950000e-01, + 6.221950650219999e-01, + 3.296213150020000e+00, + 9.595957994460000e-01, + -5.352176427840000e-01, + -1.490714550020000e+00, + -1.617164969440000e+00, + -8.139515519140000e-01, + -2.002638429400000e-01, + 9.980546832079999e-01, + -7.368581295010000e-01, + 6.953217089180000e-02, + 7.488580793140000e-02, + -3.731079578400000e+00, + -1.905642986300000e+00, + 2.892532646660000e-01, + -3.571511209010000e-01, + 1.610900461670000e-01, + -3.151443958280000e+00, + 2.481861829760000e+00, + -3.295026063920000e+00, + 5.186863422390000e+00, + 2.413784503940000e+00, + -1.984025955200000e+00, + 3.064615964890000e+00, + -5.067474246030000e-01, + 4.283261001110000e-01, + -1.277528047560000e+00, + -1.231240272520000e+00, + -1.493589580060000e-01, + 2.080151066180000e-02, + 1.665345430370000e-01, + -2.345889061690000e-01, + 1.133509650830000e-01, + -1.839846521620000e-01, + -5.910710811610000e+00, + 9.702080488200000e-01, + 7.104609012600000e+00, + -3.799015998840000e+00, + 3.214365959170000e+00, + -2.356299161910000e+00, + -2.316669940950000e+00, + -3.285277605060000e+00, + 4.190983295440000e+00, + -1.487596988680000e+00, + 7.148107051850000e+00, + 4.839554309840000e+00, + -6.081812858580000e+00, + -2.158026456830000e+00, + 9.712276458740000e+00, + -7.052762031560000e+00, + -8.409474045040000e-02, + 5.380119085310000e-01, + -6.463444232939999e-02, + 5.263323187830000e-01, + -4.316545128820000e-01, + -4.670969963070000e+00, + 7.160346984860000e+00, + 1.073116421700000e+00, + -3.086071491240000e+00, + 2.994510889050000e+00, + -3.336560964580000e+00, + 4.961143970490000e+00, + -1.272673726080000e+00, + -1.279285311700000e+00, + -3.886873245240000e+00, + 1.007498073580000e+01, + 8.485833168030000e+00, + -7.960019588470000e+00, + 6.159917831420000e+00, + -3.441389083860000e+00, + -4.319655895230000e+00, + 6.156203746800000e-01, + -6.031123995780000e-01, + 2.972877979280000e+00, + -2.141359895470000e-01, + -2.565092802050000e+00, + -7.108119726180000e-01, + -1.349480986600000e+00, + 9.395523071290000e-01, + 3.663399457930000e+00, + -1.770830273630000e+00, + 3.588259696960000e+00, + 3.553857505320000e-01, + 6.134610652920000e+00, + -5.847693920140000e+00, + -3.501437231900000e-02, + 6.342386007310000e-01, + -5.708648204800000e+00, + -6.018222808840000e+00, + 6.750276088710000e+00, + 6.030883193020000e-01, + -1.769770085810000e-01, + -5.723354339600000e+00, + 2.308987379070000e+00, + -2.807550907140000e+00, + 9.072456359860000e+00, + -3.978994846340000e+00, + -6.797691345210000e+00, + 1.067374324800000e+01, + -5.412405967710000e+00, + -8.549961090089999e+00, + -2.453058242800000e+00, + 6.666354179380000e+00, + -5.214917182920000e+00, + -3.355148792270000e+00, + -5.413079261780000e+00, + 5.322224617000000e+00, + 1.511144042020000e-01, + 1.543781906370000e-01, + 2.018209844830000e-01, + 6.550425291060000e-01, + -2.618816681210000e-02, + -2.087588787080000e+00, + -5.556506156920000e+00, + 8.511050343510000e-01, + 6.986772537230000e+00, + -3.924242019650000e+00, + 3.683781385420000e+00, + -3.161757469180000e+00, + -2.163702249530000e+00, + -4.089107990260000e+00, + 4.367678642270000e+00, + -1.655564546590000e+00, + 7.439276695250000e+00, + 4.969237804410000e+00, + -5.681945323940000e+00, + -2.319227933880000e+00, + 9.640118598939999e+00, + -7.150283813480000e+00, + 1.975414901970000e-01, + 9.001917205750000e-04, + 1.776678860190000e-01, + 1.709374934430000e-01, + -6.727531552310000e-01, + -5.756879329680000e+00, + 6.897784709930000e+00, + 5.486939549450000e-01, + -4.673914909360000e+00, + 3.824725151060000e+00, + -2.401117086410000e+00, + 4.165466785430000e+00, + -2.418938398360000e+00, + -1.622594356540000e+00, + -4.701811313630000e+00, + 1.072139358520000e+01, + 8.674728393550000e+00, + -9.107432365419999e+00, + 7.634163856510000e+00, + -3.684720754620000e+00, + -4.928375244140000e+00, + 2.061224699020000e+00, + -4.239946603780000e-01, + 3.792038440700000e+00, + -4.812285304070000e-01, + -2.226387977600000e+00, + -4.492074847220000e-01, + -3.017581462860000e+00, + 2.536452770230000e+00, + 3.364511013030000e+00, + -1.365312099460000e+00, + 7.833575606349999e-01, + 4.763495177030000e-02, + 5.034065723420000e+00, + -4.573345661160000e+00, + 2.478837519880000e-01, + -2.551252841950000e-01, + -6.063658714290000e+00, + -6.113499641420000e+00, + 8.667736053470000e+00, + -6.015107631680000e-01, + -1.320046186450000e+00, + -5.803299903870000e+00, + 2.334191083910000e+00, + -1.331640005110000e+00, + 8.525808334350000e+00, + -4.263473987580000e+00, + -7.010117053990000e+00, + 1.038164711000000e+01, + -7.272136211400000e+00, + -8.342636108400001e+00, + -1.698080301280000e+00, + 4.590306282040000e+00, + -4.873104572300000e+00, + -3.569623470310000e+00, + -4.559178352360000e+00, + 6.312220096590000e+00, + 1.228436231610000e+00, + 1.368048310280000e+00, + 1.350658893590000e+00, + 4.716983139510000e-01, + 1.353286623950000e+00, + -2.168460845950000e+00, + 5.488814353940000e+00, + 4.707404613490000e+00, + -7.849082350730000e-01, + -3.264492988590000e+00, + 2.428853511810000e-01, + 1.246101021770000e+00, + -3.313617467880000e+00, + 4.863850116730000e+00, + 3.551028668880000e-01, + 6.624200820920000e+00, + -1.011527538300000e+00, + -7.794600725170000e-01, + -4.996790885930000e+00, + -6.091589450840000e+00, + -2.292888879780000e+00, + -4.735433578490000e+00, + 1.512769222260000e+00, + 1.403191328050000e+00, + 1.575385689740000e+00, + 1.275379657750000e+00, + -1.836842775340000e+00, + 6.606322765350000e+00, + -1.095060706140000e+00, + 6.447218894960000e+00, + -2.335186243060000e+00, + -2.082709372040000e-01, + 2.436308622360000e+00, + 4.431692063810000e-01, + -5.883232593540000e+00, + 7.287190914150000e+00, + -3.338873624800000e+00, + -1.287003874780000e+00, + -1.443748831750000e+00, + -5.778954982760000e+00, + -5.133700370790000e-01, + -1.942029118540000e+00, + 1.818372845650000e+00, + 5.314538002010000e+00, + -1.533564209940000e+00, + 1.165405511860000e-01, + 4.591134071350000e+00, + 6.893682956700000e+00, + -1.129381537440000e+00, + -3.918165206910000e+00, + 4.212395191190000e+00, + 5.261095985770000e-02, + 6.735674381260000e+00, + 5.524370670320000e-01, + 2.332145452500000e+00, + -8.105661273000000e-01, + 6.505528450010000e+00, + 1.862366318700000e+00, + 1.809034824370000e+00, + -6.520940780640000e+00, + -4.949696540830000e+00, + -1.844947695730000e+00, + 9.796321988110001e-01, + -5.202790260310000e+00, + 5.872565269470000e+00, + 1.002847313880000e+00, + 2.787536859510000e+00, + -4.169648647310000e+00, + -5.757390022280000e+00, + -4.215125083920000e+00, + -1.567438602450000e+00, + -4.088209152220000e+00, + -2.369178056720000e+00, + -2.901673316960000e+00, + -2.061437129970000e+00, + -4.084498405460000e+00, + 2.689111709590000e+00, + 5.785498142240000e+00, + -5.336487889290000e-01, + 1.601168751720000e+00, + 1.415659666060000e+00, + 1.420356392860000e+00, + 1.049463510510000e+00, + 1.394371628760000e+00, + -2.930917024610000e+00, + 6.056327342990000e+00, + 4.848124980930000e+00, + -9.782150983810000e-01, + -3.558139801030000e+00, + 6.537098884580000e-01, + 2.524280309680000e+00, + -3.446288108830000e+00, + 5.018090724950000e+00, + 2.668935358520000e-01, + 6.248085498810000e+00, + -1.557531952860000e+00, + -1.098194718360000e+00, + -5.392971992490000e+00, + -5.157165527340000e+00, + -2.778074502940000e+00, + -4.537272453310000e+00, + 1.365345358850000e+00, + 1.252545237540000e+00, + 1.907146334650000e+00, + 1.022153019910000e+00, + -1.643528103830000e+00, + 6.465551853180000e+00, + -5.921711921690000e-01, + 4.426068305970000e+00, + -3.190946817400000e+00, + 1.607074588540000e-01, + 3.440908193590000e+00, + -5.371669307350000e-02, + -8.267555236820000e+00, + 6.834037780760000e+00, + -4.383140563960000e+00, + -1.868373036380000e+00, + -5.856407284739999e-01, + -5.751022338870000e+00, + -1.565225601200000e+00, + -3.222453594210000e+00, + 1.911757349970000e+00, + 4.993398666380000e+00, + -1.102818846700000e+00, + -4.209021627900000e-01, + 5.248244285580000e+00, + 6.251206874850000e+00, + -2.937071561810000e+00, + -4.474246501920000e+00, + 3.086606740950000e+00, + 3.428100347520000e-01, + 7.161405563350000e+00, + -1.329576969150000e+00, + 1.404807686810000e+00, + -5.849974155430000e-01, + 6.421672344210000e+00, + 1.307083129880000e+00, + 1.379507541660000e+00, + -7.089643478390000e+00, + -4.899802207950000e+00, + -1.327570915220000e+00, + 1.824939608570000e+00, + -4.876952171330000e+00, + 6.093322277070000e+00, + 9.408353567120000e-01, + 1.239129543300000e+00, + -4.449841976170000e+00, + -6.852750778200000e+00, + -4.268768787380000e+00, + -2.266779184340000e+00, + -5.587786674500000e+00, + -3.189642667770000e+00, + -1.759356498720000e+00, + -5.483855009080000e-01, + -2.533977270130000e+00, + 2.315230607990000e+00, + 7.961464881900000e+00, + -6.415112614630000e-01, + -1.683933138850000e-01, + -3.544535040860000e-01, + -3.230383396150000e-01, + -3.718131482600000e-01, + -4.162169396880000e-01, + -2.562531471250000e+00, + -1.291569471360000e+00, + 2.972775995730000e-01, + 2.593389511110000e+00, + 4.035594463350000e-01, + 6.398385167120000e-01, + 2.839981317520000e-01, + -1.303831338880000e+00, + 3.007604368030000e-02, + 2.688614845280000e+00, + 6.464915871619999e-01, + 1.554513722660000e-01, + -1.212599992750000e+00, + 8.412049412730001e-01, + -3.055337190630000e+00, + -8.454490303990000e-01, + 3.874838113780000e+00, + -1.460782736540000e-01, + -5.295270681380000e-01, + -6.309248805050000e-01, + -1.256198883060000e+00, + -1.959198117260000e+00, + -6.273115873340001e-01, + 1.758651375770000e+00, + -1.719433188440000e+00, + 5.109080076219999e-01, + 1.198886036870000e+00, + -7.379258275030000e-01, + -3.071578264240000e+00, + -1.165934085850000e+00, + -9.206607341770000e-01, + 1.508373856540000e+00, + -6.352267861370000e-01, + 3.466639518740000e+00, + 3.401600837710000e+00, + 2.762035846710000e+00, + 1.643511533740000e+00, + -1.962137460710000e+00, + 9.908967614170000e-01, + -1.357308149340000e+00, + 4.751981258390000e+00, + 1.139661788940000e+00, + -6.137071847920000e-01, + -1.805778861050000e+00, + -3.156622171400000e+00, + -2.211414091290000e-02, + -5.880756378170000e-01, + 1.182656526570000e+00, + 1.175794720650000e+00, + -9.398004412650000e-01, + 1.681074649100000e-01, + -2.128008127210000e+00, + -1.991500258450000e-01, + -4.711678028110000e-01, + 1.006113290790000e+00, + -1.898095011710000e-01, + -5.817897617820000e-04, + 4.196313768630000e-02, + -4.684625625610000e+00, + -1.175135731700000e+00, + 8.454735279080000e-01, + -1.068917989730000e+00, + 3.099477291110000e-01, + -3.854194879530000e+00, + 2.693525314330000e+00, + -1.432715058330000e+00, + 4.146665096280000e+00, + 3.272979021070000e+00, + -2.735321044920000e+00, + 2.250806093220000e+00, + -1.470111608510000e-01, + 2.861109972000000e-01, + -1.557343006130000e+00, + -1.155926108360000e+00, + -6.862424016000001e-01, + -3.246172964570000e-01, + -5.709475278850000e-01, + 5.931320041420000e-02, + -3.755530118940000e-01, + -1.012217998500000e+00, + -1.247914195060000e+00, + 8.353292346000000e-01, + 2.526749610900000e+00, + 3.690313398840000e-01, + 3.641293048860000e-01, + -7.801896929740000e-01, + -1.337334632870000e+00, + -6.606635451320000e-01, + 2.833203554150000e+00, + 3.569414615630000e-01, + 3.028851449490000e-01, + -5.512219667429999e-01, + 7.887762784960000e-01, + -3.402007818220000e+00, + -1.177088499070000e+00, + 3.759229421620000e+00, + -9.437777101990000e-02, + -3.454077839850000e-01, + -3.047677688300000e-02, + -1.306863546370000e+00, + -1.809702157970000e+00, + -1.091137409210000e+00, + 2.063744306560000e+00, + -8.726403117180001e-01, + -3.760585784910000e-01, + 1.981817960740000e+00, + -3.644333183770000e-01, + -2.617637395860000e+00, + -1.717936873440000e+00, + -1.196035649630000e-02, + 3.857805132870000e-01, + -4.166518151760000e-01, + 3.513894081120000e+00, + 3.826014280320000e+00, + 2.367495775220000e+00, + 1.006802797320000e+00, + -1.238799691200000e+00, + 9.414563775060000e-01, + -8.862335681920001e-01, + 4.185842514040000e+00, + 1.030280888080000e-01, + 7.625611424450000e-01, + -1.734478116040000e+00, + -1.877619147300000e+00, + 2.544134259220000e-01, + 5.789051651950000e-01, + 2.002281665800000e+00, + 6.664650142190000e-02, + -2.664429247380000e-01, + -1.296812534330000e+00, + -2.388173341750000e+00, + 1.001481652260000e+00, + 1.480225771670000e-01, + 1.918676018710000e+00, + -3.090141117570000e-01, + -2.457661032680000e-01, + -4.618729650970000e-02, + -5.047249317170000e+00, + -1.736893177030000e+00, + 4.322718083860000e-01, + -1.912609457970000e+00, + 1.638929724690000e+00, + -4.872307777400000e+00, + 4.382832646370000e-01, + -2.299335002900000e+00, + 4.522850513460000e+00, + 3.967126607890000e+00, + -2.036583662030000e+00, + 3.248502254490000e+00, + 3.372550606730000e-01, + 2.989365756510000e-01, + -2.793389320370000e+00, + 6.748640537260000e-01, + 7.861904799940000e-02, + 7.816358469430001e-03, + 1.687983423470000e-01, + -1.194182597100000e-02, + 1.132567003370000e-01, + -9.536096453670000e-01, + -5.504144668580000e+00, + 7.806001305580000e-01, + 6.823075771330000e+00, + -3.666778802870000e+00, + 3.484081268310000e+00, + -3.019977808000000e+00, + -2.152401208880000e+00, + -3.822537660600000e+00, + 4.512349128720000e+00, + -1.509003758430000e+00, + 7.730334758760000e+00, + 5.372611045840000e+00, + -5.907170295720000e+00, + -2.089486360550000e+00, + 9.766941070560000e+00, + -7.046643257140000e+00, + -6.816011667250000e-01, + 1.053860560060000e-01, + 7.064732313160000e-01, + -3.978720866140000e-03, + -6.863085031510000e-01, + -5.569957733150000e+00, + 7.234698295590000e+00, + 2.514421939850000e+00, + -4.426862239840000e+00, + 2.789083242420000e+00, + -3.580591201780000e+00, + 3.037181854250000e+00, + -1.548946380620000e+00, + -1.896624803540000e+00, + -4.951029777530000e+00, + 1.137625026700000e+01, + 7.456522941590000e+00, + -8.055134773250000e+00, + 7.281658649440000e+00, + -3.585373401640000e+00, + -4.236163616180000e+00, + 1.924084424970000e+00, + -4.211144149300000e-01, + 4.220321178440000e+00, + -1.040747046470000e+00, + -1.923225522040000e+00, + -5.502820611000000e-01, + -2.234673500060000e+00, + 6.926133483650000e-02, + 5.013156890870000e+00, + -5.296562910080000e-01, + 3.014903068540000e+00, + -9.826406836510000e-02, + 4.934535980220000e+00, + -7.025317668910000e+00, + 7.454316020010000e-01, + 1.474501658230000e-02, + -5.551398277280000e+00, + -7.038318157200000e+00, + 7.396593093870000e+00, + 4.355322197080000e-02, + -6.068246364590000e-01, + -5.641446113590000e+00, + 2.916928291320000e+00, + -2.182438611980000e+00, + 9.464734077450000e+00, + -3.460085868840000e+00, + -6.136703014370000e+00, + 9.396513938900000e+00, + -6.856978893280000e+00, + -7.887332916260000e+00, + -4.147356450560000e-01, + 6.266059875490000e+00, + -2.302213907240000e+00, + -3.832176923750000e+00, + -4.416951179500000e+00, + 5.070152282710000e+00, + 4.411571100350000e-02, + -5.934943445030000e-03, + 1.367371827360000e-01, + 1.682170107960000e-02, + -2.329064160590000e-02, + -5.135427713389999e-01, + -5.580106258390000e+00, + 7.990460991860000e-01, + 6.221494674680000e+00, + -3.972915887830000e+00, + 3.372930288310000e+00, + -3.135068178180000e+00, + -2.383382797240000e+00, + -3.943300008770000e+00, + 4.774979114530000e+00, + -1.681393146510000e+00, + 7.246344089510000e+00, + 5.054306983950000e+00, + -6.062636852260000e+00, + -2.256546735760000e+00, + 9.698977470399999e+00, + -7.402976512910000e+00, + 2.918427884580000e-01, + -9.447903931140000e-02, + -1.350060999390000e-01, + 2.490092813970000e-01, + -1.032441735270000e+00, + -5.379479408260000e+00, + 7.561196327210000e+00, + 1.712430715560000e+00, + -3.649159431460000e+00, + 3.661518335340000e+00, + -2.968629837040000e+00, + 5.850368499760000e+00, + -1.654870033260000e+00, + -1.276139616970000e+00, + -5.214243412020000e+00, + 1.170194053650000e+01, + 8.094306945800000e+00, + -8.258899688720000e+00, + 7.029828548430000e+00, + -4.379135131840000e+00, + -4.056447982790000e+00, + 2.773534059520000e+00, + -1.242308139800000e+00, + 4.229247570040000e+00, + 1.217139601710000e+00, + -2.273424625400000e+00, + -1.587245583530000e+00, + -2.929794788360000e+00, + 5.672903656960000e-01, + 3.834093570710000e+00, + -2.787888050080000e+00, + 2.662642002110000e+00, + -9.340391308069999e-02, + 5.338785648350000e+00, + -5.583808898930000e+00, + -4.030294120310000e-01, + 1.728620827200000e-01, + -5.790699005130000e+00, + -7.142403125760000e+00, + 8.012973785400000e+00, + 3.150490522380000e-01, + -7.674809694290000e-01, + -6.481106281280000e+00, + 2.295722484590000e+00, + -3.945316076280000e-01, + 1.007188510890000e+01, + -3.595844745640000e+00, + -6.531947612760000e+00, + 1.025422859190000e+01, + -5.625903606410000e+00, + -8.587894439699999e+00, + -1.682561486960000e-01, + 6.850966930390000e+00, + -2.393226385120000e+00, + -2.763147830960000e+00, + -5.592958450320000e+00, + 6.802528381350000e+00, + 1.377406597140000e+00, + 1.409129023550000e+00, + 1.341227769850000e+00, + 1.128189086910000e+00, + 1.365471243860000e+00, + -1.789558529850000e+00, + 6.240052223210000e+00, + 5.005637168880000e+00, + -7.776185870170000e-01, + -3.228696823120000e+00, + 3.877415359020000e-01, + 2.344330787660000e+00, + -3.544276714320000e+00, + 5.000852584840000e+00, + -1.180656179790000e-01, + 6.469687938690000e+00, + -1.447010874750000e+00, + -2.102116793390000e-01, + -5.262680053710000e+00, + -5.815705776210000e+00, + -2.462066173550000e+00, + -4.567992687230000e+00, + 1.860429644580000e+00, + 1.333673954010000e+00, + 1.103005647660000e+00, + 9.212191104890000e-01, + -1.215925335880000e+00, + 5.863236904140000e+00, + -7.396286726000000e-01, + 4.959782123570000e+00, + -4.063914775850000e+00, + -2.683265507220000e-01, + 3.757134437560000e+00, + -6.608005762100000e-01, + -6.562437534330000e+00, + 6.135470390320000e+00, + -4.562697410580000e+00, + -1.623242378230000e+00, + -8.286386728289999e-01, + -5.913031578060000e+00, + -1.180549025540000e+00, + -1.639183402060000e+00, + 1.063665390010000e+00, + 5.255251407620000e+00, + -2.906328201290000e+00, + 6.991164684300000e-01, + 5.384557724000000e+00, + 5.990704059600000e+00, + -1.096290707590000e+00, + -3.104969263080000e+00, + 4.676045894620000e+00, + -6.178025007250000e-01, + 6.415472507480000e+00, + -4.338578507300000e-02, + 1.411374449730000e+00, + -1.770139634610000e-01, + 6.600414752960000e+00, + 1.696329474450000e+00, + 5.691994428629999e-01, + -7.469440937040000e+00, + -4.204065322880000e+00, + -1.308370590210000e+00, + 1.692880630490000e+00, + -5.421175479890000e+00, + 5.968215942380000e+00, + 7.583867311480000e-01, + 3.661526441570000e+00, + -3.481746435170000e+00, + -5.109316349030000e+00, + -4.677150249480000e+00, + -2.675251960750000e+00, + -4.176110267640000e+00, + -3.989581823350000e+00, + -1.344751477240000e+00, + -2.226963520050000e+00, + -3.877538681030000e+00, + 1.769240617750000e+00, + 4.203652858730000e+00, + -8.636125326160000e-01, + 1.204450488090000e+00, + 1.466049075130000e+00, + 1.308414340020000e+00, + 1.366995334630000e+00, + 1.506265401840000e+00, + -1.896736383440000e+00, + 5.966833114620000e+00, + 4.842950820920000e+00, + -1.436160802840000e+00, + -3.573449850080000e+00, + 4.190438985820000e-01, + 2.273746013640000e+00, + -3.407392263410000e+00, + 5.178653717040000e+00, + 2.457613497970000e-01, + 6.606637477870000e+00, + -1.346810102460000e+00, + -8.351485729220000e-01, + -5.212167739870000e+00, + -5.582376956940000e+00, + -2.536848783490000e+00, + -4.402901172640000e+00, + 1.201199531560000e+00, + 1.781024217610000e+00, + 9.394943714140001e-01, + 1.567435503010000e+00, + -2.434219121930000e+00, + 6.159262180330000e+00, + -6.980159282680000e-01, + 6.261037826540000e+00, + -3.653210639950000e+00, + -1.644907146690000e-01, + 3.664811134340000e+00, + -7.491068243980000e-01, + -6.940783023830000e+00, + 8.146430015560000e+00, + -3.853327512740000e+00, + -1.109749674800000e+00, + -1.527074217800000e+00, + -5.323797225950000e+00, + -8.380558490750000e-01, + -1.512186408040000e+00, + 1.312923908230000e+00, + 5.035593986510000e+00, + -1.242996931080000e+00, + 1.231343030930000e+00, + 5.398451805110000e+00, + 6.271787166600000e+00, + -2.715238094330000e+00, + -4.238818645480000e+00, + 3.632488727570000e+00, + 5.592924952510000e-01, + 6.435971260070000e+00, + 3.009018003940000e-01, + 1.517023324970000e+00, + -1.792112469670000e+00, + 6.909868717190000e+00, + 1.391597867010000e+00, + 1.061097383500000e+00, + -7.312387943270000e+00, + -6.734926700590000e+00, + -6.917344927790000e-01, + 1.774135112760000e+00, + -4.613664150240000e+00, + 5.204530715940000e+00, + 1.731181502340000e+00, + 1.217662096020000e+00, + -4.403156280520000e+00, + -6.272880554200000e+00, + -5.072834014890000e+00, + -2.360244035720000e+00, + -4.955604553220000e+00, + -2.755818605420000e+00, + -1.802518129350000e+00, + -1.650774478910000e-02, + -3.802521467210000e+00, + 1.987195849420000e+00, + 5.942321300510000e+00, + -3.857017457490000e-01, + -3.010168969630000e-01, + -4.139548540120000e-01, + -2.342014163730000e-01, + -6.724869459870000e-02, + -4.041440784930000e-01, + -2.185642957690000e+00, + -1.365627408030000e+00, + 4.089922010900000e-01, + 2.550110340120000e+00, + 5.645643472670000e-01, + 5.432099699970000e-01, + -7.323012948040000e-01, + -1.162368416790000e+00, + -3.743349015710000e-01, + 2.912336111070000e+00, + 6.271916627880000e-01, + -7.690159082410000e-01, + -7.318524718280000e-01, + 1.135547399520000e+00, + -3.032010793690000e+00, + -9.370694756510000e-01, + 3.425292968750000e+00, + 5.643875598910000e-01, + -5.989872217180000e-01, + 3.393949866290000e-01, + 4.981976747510000e-01, + -2.718725442890000e+00, + -1.001953125000000e+00, + 2.244539260860000e+00, + -5.863696932790000e-01, + 1.328061103820000e+00, + 9.435737133030000e-01, + -4.584603011610000e-01, + -2.712359666820000e+00, + -2.681122303010000e+00, + -2.176307439800000e+00, + 5.910695791240000e-01, + -1.556568026540000e+00, + 3.106104612350000e+00, + 3.834288835530000e+00, + 2.862038612370000e+00, + 1.921067237850000e+00, + -2.541935205460000e+00, + 9.931637048720000e-01, + -1.460412621500000e+00, + 3.854157924650000e+00, + 1.476339399810000e-01, + 9.412271976470000e-01, + -1.286316275600000e+00, + -6.780697703360000e-01, + 1.197345405820000e-01, + 7.110809087750000e-01, + 2.241620063780000e+00, + 1.809028387070000e+00, + -5.745882391929999e-01, + -1.786017179490000e+00, + -1.164370298390000e+00, + -6.235533952710000e-01, + -3.620748519900000e-01, + 7.294685244560000e-01, + 1.635649502280000e-01, + 7.931529730560000e-02, + -1.939554661510000e-01, + -5.161391258240000e+00, + -1.323821067810000e+00, + 2.346994131800000e-01, + 3.993901908400000e-01, + -3.291434049610000e-01, + -4.004164218900000e+00, + 2.373854398730000e+00, + -2.547602176670000e+00, + 6.278805732730000e+00, + 4.066697597500000e+00, + -1.328513979910000e+00, + 1.467043161390000e+00, + -7.209843993190000e-01, + -5.611594915390000e-01, + -5.896048545840000e-01, + -1.203650236130000e+00, + -3.508442044260000e-01, + -2.463042587040000e-01, + -4.011957645420000e-01, + -3.210159838200000e-01, + -5.476472377780000e-01, + -1.896220088010000e+00, + -1.345103979110000e+00, + 4.734147191050000e-01, + 3.040890455250000e+00, + 3.066267371180000e-01, + 7.100000977520000e-01, + -6.680978536610001e-01, + -1.479975342750000e+00, + -6.296768784520000e-01, + 2.840688228610000e+00, + 5.981547832490000e-01, + 1.904762536290000e-01, + -1.087892651560000e+00, + 1.099665760990000e+00, + -3.243157386780000e+00, + -9.565230607990000e-01, + 3.574813365940000e+00, + -5.035747289660000e-01, + -7.176973223690000e-01, + -8.601476550100000e-01, + -4.217461645600000e-01, + -2.435181379320000e+00, + -1.705424427990000e+00, + 1.381601214410000e+00, + -7.268005609510000e-01, + -8.139845132830000e-01, + 1.172895789150000e+00, + -1.009209871290000e+00, + -3.287463426590000e+00, + -2.456302881240000e+00, + 1.156263947490000e+00, + -9.673235565420001e-02, + -1.110203787680000e-01, + 3.750496864320000e+00, + 3.944859504700000e+00, + 2.535317659380000e+00, + 1.388528227810000e+00, + -1.354260802270000e+00, + 1.345579743390000e+00, + -2.489502429960000e+00, + 3.283535480500000e+00, + 1.168222069740000e+00, + -7.939453721050000e-01, + -7.732552289960000e-01, + -1.898142099380000e+00, + -1.813836991790000e-01, + -4.061245918270000e-02, + 1.318138241770000e+00, + -1.711586564780000e-01, + -2.897318005560000e-01, + -1.076126575470000e+00, + -1.514378309250000e+00, + -1.061753630640000e+00, + 6.247420795260000e-03, + 1.083907008170000e+00, + -5.070813894270000e-01, + -9.577506184580000e-01, + -2.973491325970000e-03, + -4.159557342530000e+00, + -5.860108733179999e-01, + 9.518648684019999e-02, + 1.838194578890000e-01, + 6.204282492400000e-02, + -4.302511215210000e+00, + 1.353932499890000e+00, + -1.720794200900000e+00, + 3.993499755860000e+00, + 3.279787778850000e+00, + -1.902248501780000e+00, + 2.112228870390000e+00, + -9.474884718660000e-02, + 6.346452832220000e-01, + -8.444269895550000e-01, + -1.004811152820000e-01, + 2.842596359550000e-02, + -1.801533252000000e-01, + 1.816621869800000e-01, + 5.046679824590000e-02, + 4.395256564020000e-02, + -6.812197566030000e-01, + -4.787697792050000e+00, + 6.551350355150000e-01, + 6.832501411440000e+00, + -3.947875976560000e+00, + 3.375119686130000e+00, + -2.377371311190000e+00, + -2.223227977750000e+00, + -3.482150554660000e+00, + 4.735504150390000e+00, + -1.622919678690000e+00, + 7.324890613560000e+00, + 5.779471397400000e+00, + -5.831082820890000e+00, + -2.245903253560000e+00, + 9.786211967470001e+00, + -7.396330356600000e+00, + 4.695504531260000e-02, + 3.430873155590000e-01, + -1.106038808820000e+00, + 7.286764681339999e-02, + -1.674394130710000e+00, + -5.930802345280000e+00, + 6.625032901760000e+00, + 1.308023571970000e+00, + -4.725049495700000e+00, + 1.929967045780000e+00, + -3.607249736790000e+00, + 4.114591121670000e+00, + -9.008407592770000e-01, + -1.276133656500000e+00, + -4.438176631930000e+00, + 1.108984279630000e+01, + 8.953183174130000e+00, + -9.425792694089999e+00, + 6.798482418060000e+00, + -3.527052879330000e+00, + -5.585791587830000e+00, + 2.417153120040000e+00, + -8.392791152000000e-01, + 4.000798225400000e+00, + -5.989658087490000e-02, + -2.729600071910000e-01, + -2.786877155300000e-01, + -2.407262086870000e+00, + 1.083479881290000e+00, + 3.813817024230000e+00, + -2.449332952500000e+00, + 5.017034530640000e+00, + 4.762088954450000e-01, + 5.597650527950000e+00, + -6.096493721010000e+00, + -1.314895153050000e-01, + -1.026379346850000e+00, + -5.042517185210000e+00, + -6.968431472780000e+00, + 8.005726814270000e+00, + 4.792311489580000e-01, + -1.421865344050000e+00, + -5.511341571810000e+00, + 3.075200557710000e+00, + -3.196367263790000e+00, + 1.052973937990000e+01, + -3.313267946240000e+00, + -5.841318607330000e+00, + 9.577569961549999e+00, + -5.392707824710000e+00, + -8.753107070920001e+00, + 2.438662201170000e-01, + 6.011941909790000e+00, + -3.559856891630000e+00, + -3.021565198900000e+00, + -5.187844753270000e+00, + 5.283107757570000e+00, + 1.981608122590000e-01, + 9.627415984870000e-02, + 5.472226440910000e-02, + 7.393982261420000e-02, + 4.925192892550000e-02, + -7.256453633310000e-01, + -5.746478557590000e+00, + 1.171420693400000e+00, + 6.800827026370000e+00, + -3.985179424290000e+00, + 3.409119606020000e+00, + -3.148510217670000e+00, + -2.396016120910000e+00, + -3.950047731400000e+00, + 4.522343635560000e+00, + -1.468454122540000e+00, + 7.139814376830000e+00, + 5.001329898830000e+00, + -6.102351188660000e+00, + -2.071537494660000e+00, + 9.562136650090000e+00, + -7.147646903990000e+00, + -2.689623832700000e-01, + -3.371549546720000e-01, + 7.675030827520000e-01, + -1.199021041390000e-01, + -1.065140366550000e+00, + -4.565385341640000e+00, + 7.380149364470000e+00, + 1.840056180950000e+00, + -4.235654354100000e+00, + 3.874943971630000e+00, + -2.901419162750000e+00, + 4.817095756530000e+00, + -2.382871627810000e+00, + -2.564439535140000e+00, + -4.188571453090000e+00, + 1.112458038330000e+01, + 8.134425163270000e+00, + -8.500120162960000e+00, + 7.031811237340000e+00, + -3.704306602480000e+00, + -4.277780056000000e+00, + 2.598654747010000e+00, + -4.738686382770000e-01, + 3.341574192050000e+00, + 7.993291616440000e-01, + -1.406359553340000e+00, + -1.188567280770000e+00, + -1.358697652820000e+00, + -1.964384689930000e-03, + 2.683074712750000e+00, + -2.172468423840000e+00, + 3.877400875090000e+00, + 3.114370703700000e-01, + 5.702774524690000e+00, + -5.722044467930000e+00, + -2.075944244860000e-01, + -1.073066949840000e+00, + -5.713698387150000e+00, + -6.655309200290000e+00, + 9.100961685180000e+00, + -2.590221762660000e-01, + -1.547645688060000e+00, + -5.508084297180000e+00, + 3.643023490910000e+00, + -3.105103015900000e+00, + 9.819613456730000e+00, + -3.234436273570000e+00, + -6.614511966710000e+00, + 9.618376731870001e+00, + -5.271702766420000e+00, + -7.395974636080000e+00, + 2.955243363980000e-02, + 5.787099838260000e+00, + -2.858459472660000e+00, + -2.623934268950000e+00, + -5.568300724030000e+00, + 5.651339054110000e+00, + 1.694619059560000e+00, + 1.198178529740000e+00, + 1.322344779970000e+00, + 1.328160762790000e+00, + 1.015759348870000e+00, + -1.846629023550000e+00, + 5.010406970980000e+00, + 5.194739341740000e+00, + -8.840134143830000e-01, + -3.396694183350000e+00, + 2.630101144310000e-01, + 2.861381053920000e+00, + -3.047772407530000e+00, + 5.199004173280000e+00, + 1.789257377390000e-01, + 6.297323226930000e+00, + -1.395729541780000e+00, + -1.033612847330000e+00, + -5.225098133090000e+00, + -5.749660015110000e+00, + -2.572708606720000e+00, + -4.854142665860000e+00, + 1.343060851100000e+00, + 1.387726783750000e+00, + 1.668767690660000e+00, + 1.496156334880000e+00, + -1.320151209830000e+00, + 5.620570659640000e+00, + -5.344415903090000e-01, + 4.096070289610000e+00, + -2.868257761000000e+00, + -7.725014686580000e-01, + 3.049664974210000e+00, + -1.508505940440000e+00, + -6.481821537020000e+00, + 6.500483036040000e+00, + -4.350397109990000e+00, + -1.619706988330000e+00, + -8.336421847340000e-01, + -5.867902755740000e+00, + 1.011910438540000e+00, + -2.401141405110000e+00, + 1.131562948230000e+00, + 4.802527427670000e+00, + -2.019796371460000e+00, + 1.408943772320000e+00, + 5.443332195280000e+00, + 5.049552917480000e+00, + -1.712965607640000e+00, + -3.539736270900000e+00, + 4.609091758730000e+00, + -4.454996883870000e-01, + 7.097767829900000e+00, + -1.918009519580000e-01, + 2.194844961170000e+00, + -7.096893191340000e-01, + 6.122231006620000e+00, + 2.066204786300000e+00, + 9.892191886900000e-01, + -5.556716918950000e+00, + -5.936717033390000e+00, + -1.148601293560000e+00, + 1.088327169420000e+00, + -5.953204631810000e+00, + 6.133910179140000e+00, + -1.564461439850000e-01, + 2.464795112610000e+00, + -3.650836944580000e+00, + -5.328537940980000e+00, + -4.639214992520000e+00, + -2.759046554570000e+00, + -4.453625679020000e+00, + -3.355249881740000e+00, + -1.797475576400000e+00, + -4.687739610670000e-01, + -4.330358028410000e+00, + 4.023992061610000e+00, + 6.661165237430000e+00, + -7.276846170430000e-01, + 1.605242013930000e+00, + 1.490222811700000e+00, + 1.252733111380000e+00, + 1.309429049490000e+00, + 1.387256026270000e+00, + -1.551085829730000e+00, + 5.957863807680000e+00, + 4.536940097810000e+00, + -5.689961314200001e-01, + -3.305057525630000e+00, + 3.590828776360000e-01, + 2.570028305050000e+00, + -3.512288570400000e+00, + 5.081131458280000e+00, + 5.227650403980000e-01, + 6.018376827240000e+00, + -1.377483725550000e+00, + -9.050804376600000e-01, + -5.189406394960000e+00, + -5.839155197140000e+00, + -2.491031646730000e+00, + -4.577864646910000e+00, + 1.102838993070000e+00, + 1.068800091740000e+00, + 1.676657080650000e+00, + 1.488645076750000e+00, + -1.626254081730000e+00, + 5.903615474700000e+00, + -1.494224369530000e-01, + 7.120588779450000e+00, + -2.382753610610000e+00, + -6.952574253080001e-01, + 2.715452432630000e+00, + -6.168947815900000e-01, + -6.581602096560000e+00, + 8.244043350220000e+00, + -3.968823194500000e+00, + -1.145933628080000e+00, + -5.564032197000000e-01, + -6.670044422150000e+00, + 1.507469266650000e-01, + -2.266616344450000e+00, + 2.204383611680000e+00, + 4.486255645750000e+00, + -2.249537944790000e+00, + 4.767509698870000e-01, + 5.049613952640000e+00, + 6.420686244960000e+00, + -2.345529556270000e+00, + -3.792172193530000e+00, + 4.255023956300000e+00, + -4.819345846770000e-02, + 6.726361274720000e+00, + 3.839845955370000e-01, + 8.921828269960000e-01, + -1.166926622390000e+00, + 6.544366359710000e+00, + 1.502552747730000e+00, + 1.839625000950000e+00, + -5.877800464630000e+00, + -5.815137863160000e+00, + -2.042962551120000e+00, + 2.300107479100000e+00, + -4.940350055690000e+00, + 5.616424560550000e+00, + 6.550922989850000e-01, + 2.510007619860000e+00, + -4.448504924770000e+00, + -6.116500377660000e+00, + -4.431498527530000e+00, + -3.264274120330000e+00, + -4.571419239040000e+00, + -3.673337459560000e+00, + -2.136358976360000e+00, + -1.022127509120000e+00, + -3.691725730900000e+00, + 1.431687951090000e+00, + 5.125834941860000e+00, + 1.117726922040000e+00, + -3.816923797130000e-01, + -6.807306408880000e-02, + -4.348282814030000e-01, + -4.300107061860000e-01, + -1.877229809760000e-01, + -1.872540712360000e+00, + -1.885104775430000e+00, + 2.969892323020000e-01, + 2.591249942780000e+00, + 4.702568352220000e-01, + 9.645761251450000e-01, + -1.289356708530000e+00, + -2.335888385770000e+00, + -7.185720801350000e-01, + 2.981575250630000e+00, + 8.250560164450000e-01, + -1.597653329370000e-02, + -6.027143001560000e-01, + 1.004455804820000e+00, + -2.919126033780000e+00, + -8.479047417640000e-01, + 3.922471523280000e+00, + -3.145505487920000e-01, + -6.658872365950000e-01, + 2.496930211780000e-02, + -9.716970324520000e-01, + -1.760834813120000e+00, + -6.565575599670000e-01, + 1.289338111880000e+00, + -1.191900372510000e+00, + -8.746895194049999e-01, + 1.982482075690000e+00, + -3.713823854920000e-01, + -3.378971338270000e+00, + -1.658542275430000e+00, + 4.078695476060000e-01, + 1.362345099450000e+00, + -1.189735412600000e+00, + 3.854211568830000e+00, + 3.800729274750000e+00, + 3.546234130860000e+00, + 7.650007605550000e-01, + -1.727142095570000e+00, + 1.367740988730000e+00, + -1.518416881560000e+00, + 3.357301235200000e+00, + 7.832498550420000e-01, + 2.522102594380000e-01, + -1.056149363520000e+00, + -1.497435331340000e+00, + 3.412165939810000e-01, + 6.376450657840000e-01, + 1.777882575990000e+00, + 1.067842602730000e+00, + 5.027730464940000e-01, + -2.092011928560000e+00, + -1.459632277490000e+00, + -2.954430580140000e-01, + -6.448898911480000e-01, + 9.460380077360000e-01, + 3.227050304410000e-01, + -5.862390995030000e-01, + 3.430390357970000e-02, + -3.934233665470000e+00, + -1.152046680450000e+00, + -6.567467451100000e-01, + -6.686756610870001e-01, + 1.473044510930000e-02, + -3.389404773710000e+00, + 1.410252928730000e+00, + -2.046205520630000e+00, + 5.934815406800000e+00, + 3.434027910230000e+00, + -1.721504569050000e+00, + 2.589201688770000e+00, + 1.335784554480000e+00, + -1.768918156620000e+00, + -9.995713829989999e-01, + -9.656122922900000e-01, + 6.451820731160000e-01, + -3.173246681690000e-01, + -3.395280241970000e-01, + -4.358310699460000e-01, + -3.352818489070000e-01, + -1.796879410740000e+00, + -1.192658185960000e+00, + 8.412266522650000e-02, + 2.570651531220000e+00, + 4.280435144900000e-01, + 6.871868968010000e-01, + -8.146709799770000e-01, + -1.247975230220000e+00, + -4.659196436410000e-01, + 2.520224571230000e+00, + 2.400069534780000e-01, + 1.041544526820000e-01, + -1.234681606290000e+00, + 1.120631575580000e+00, + -3.132405042650000e+00, + -8.152275681500000e-01, + 3.498586893080000e+00, + -4.080807268620000e-01, + 1.754817813630000e-01, + -8.236336708070000e-02, + -2.183672636750000e-01, + -1.576646089550000e+00, + -2.675657570360000e-01, + 1.012315630910000e+00, + -1.214665412900000e+00, + -4.842339754100000e-01, + 1.343678832050000e+00, + -5.765717029570000e-01, + -2.841613769530000e+00, + -1.843823790550000e+00, + -1.701999306680000e-01, + -2.589605450630000e-01, + 5.515596866610000e-01, + 3.390922546390000e+00, + 5.119348526000000e+00, + 2.760720968250000e+00, + 5.773742794990000e-01, + -1.214934110640000e+00, + 1.716846942900000e+00, + -1.504575252530000e+00, + 4.857599735260000e+00, + 8.427223563190001e-01, + 6.558085680010000e-01, + -1.715517520900000e+00, + -1.485553383830000e+00, + 1.598058193920000e-01, + 9.202583879230000e-02, + 1.922198295590000e+00, + 3.573038280010000e-01, + -7.873100638390000e-01, + -1.727038323880000e-01, + -2.078820705410000e+00, + -8.938646912570000e-01, + -1.073504891250000e-02, + 8.004286885260000e-01, + -7.073499560360000e-01, + -5.290796756740000e-01, + -1.257311701770000e+00, + -3.838658332820000e+00, + -2.717512845990000e+00, + 1.269624471660000e+00, + -4.903480708600000e-01, + 2.342737317090000e-01, + -4.614520549770000e+00, + 1.625432848930000e+00, + -3.544363737110000e+00, + 2.988214969640000e+00, + 3.758707523350000e+00, + -2.254540205000000e+00, + 2.548501729970000e+00, + 1.037206426260000e-01, + -1.021868109700000e+00, + -1.105273842810000e+00, + -5.285293459890000e-01, + 2.195937484500000e-01, + 6.042947769170000e-01, + -3.979141712190000e-01, + 1.078847497700000e-01, + 1.307612359520000e-01, + -7.828893065450000e-01, + -5.801541805270000e+00, + 6.652682423590000e-01, + 6.999224662780000e+00, + -3.969024896620000e+00, + 3.594870328900000e+00, + -2.691987514500000e+00, + -2.212726831440000e+00, + -3.618009090420000e+00, + 4.679132461550000e+00, + -1.348531246190000e+00, + 7.169220924380000e+00, + 5.398036003110000e+00, + -6.186048984530000e+00, + -2.260596275330000e+00, + 9.708932876590000e+00, + -7.331097602840000e+00, + -4.752103984360000e-02, + -1.366813927890000e-01, + -5.230685472490000e-01, + 1.600412577390000e-01, + -6.355453133580000e-01, + -6.405809879300000e+00, + 7.194714069370000e+00, + 2.268585205080000e+00, + -3.799915552140000e+00, + 3.490605831150000e+00, + -2.657567262650000e+00, + 5.045170307160000e+00, + -1.145061492920000e+00, + -3.396282196040000e-01, + -3.550755023960000e+00, + 1.050989055630000e+01, + 7.848117828370000e+00, + -9.083340644840000e+00, + 6.582240581510000e+00, + -4.587987422940000e+00, + -3.262276411060000e+00, + 2.119122266770000e+00, + -5.661355853080000e-01, + 4.255261898040000e+00, + 3.623093366620000e-01, + -2.944230794910000e+00, + -8.836457133290000e-02, + -1.682919859890000e+00, + 2.830145061020000e-01, + 3.977380275730000e+00, + -1.373763442040000e+00, + 3.605915784840000e+00, + 5.331446528430001e-01, + 4.901231765750000e+00, + -6.948908805850000e+00, + -8.693688362840001e-02, + 4.104516282680000e-02, + -4.253535747530000e+00, + -7.004583358760000e+00, + 7.240883827210000e+00, + 5.123466253280000e-01, + -8.874037861820000e-01, + -4.821319580080000e+00, + 3.078942298890000e+00, + -1.829312205310000e+00, + 9.870101928710000e+00, + -3.044564485550000e+00, + -6.579930305480000e+00, + 8.726448059080001e+00, + -6.238659858700000e+00, + -7.685968875890000e+00, + 5.805693268780000e-01, + 6.459515094760000e+00, + -5.314334869380000e+00, + -3.654929637910000e+00, + -5.852568149570000e+00, + 5.463403701780000e+00, + 9.638028591870000e-02, + -2.041842788460000e-01, + 2.241536825900000e-01, + -1.283599287270000e-01, + 1.290866434570000e-01, + -6.324855089190000e-01, + -5.485619068150000e+00, + 7.517619133000000e-01, + 6.904182434080000e+00, + -3.646291255950000e+00, + 3.408315420150000e+00, + -3.424655675890000e+00, + -2.390705347060000e+00, + -3.813827753070000e+00, + 4.943905830380000e+00, + -1.564630150790000e+00, + 7.377540588380000e+00, + 5.107223987580000e+00, + -5.777740955350000e+00, + -2.014283180240000e+00, + 1.003744983670000e+01, + -7.186151504520000e+00, + 7.063668370250000e-01, + 5.877789855000000e-01, + -4.135572910310000e-01, + 1.260748356580000e-01, + -1.095040798190000e+00, + -5.158213138580000e+00, + 7.481943607330000e+00, + 9.292929172520000e-01, + -4.636616230010000e+00, + 3.402297735210000e+00, + -3.110393047330000e+00, + 3.911164522170000e+00, + -2.063085556030000e+00, + -1.824366569520000e+00, + -4.667411327360000e+00, + 1.067225551610000e+01, + 8.642980575559999e+00, + -8.728292465210000e+00, + 6.289595127110000e+00, + -4.918504714970000e+00, + -4.056958198550000e+00, + 1.712829589840000e+00, + -7.390267848970000e-01, + 3.843539953230000e+00, + 7.282039523120000e-01, + -2.116372823720000e+00, + -2.527361214160000e-01, + -1.559356331830000e+00, + 9.833757877350000e-01, + 4.056889534000000e+00, + -1.627344608310000e+00, + 3.269107341770000e+00, + -4.435868188740000e-02, + 6.219696521760000e+00, + -6.070321083070000e+00, + 1.959424316880000e-01, + 2.300747036930000e-01, + -4.800716876980000e+00, + -7.175814151760000e+00, + 7.506267070770000e+00, + 3.894176483150000e-01, + -1.376383662220000e+00, + -5.276850223540000e+00, + 3.093161821370000e+00, + -3.915730714800000e+00, + 9.865066528320000e+00, + -3.746809005740000e+00, + -5.533999443050000e+00, + 9.462258338930001e+00, + -5.783653259280000e+00, + -7.854785919190000e+00, + 5.378579497340000e-01, + 7.227400779720000e+00, + -4.680887699130000e+00, + -2.620541572570000e+00, + -4.333928585050000e+00, + 5.613846302030000e+00, + 1.131995201110000e+00, + 1.593700051310000e+00, + 1.119214057920000e+00, + 1.301228642460000e+00, + 1.536406636240000e+00, + -1.594410538670000e+00, + 6.024789333340000e+00, + 4.967939853670000e+00, + -8.092595338820000e-01, + -3.345912694930000e+00, + 2.225724756720000e-01, + 2.899536132810000e+00, + -3.322335243230000e+00, + 5.123638629910000e+00, + 2.860898375510000e-01, + 6.546289920810000e+00, + -1.344529390340000e+00, + -1.109679579730000e+00, + -5.200731754300000e+00, + -5.649443149570000e+00, + -2.488646745680000e+00, + -4.623678207400000e+00, + 1.368824481960000e+00, + 2.050994157790000e+00, + 1.168876051900000e+00, + 1.380491971970000e+00, + -1.665703892710000e+00, + 5.815751075740000e+00, + -6.584424972530000e-01, + 5.109965801240000e+00, + -3.967397689820000e+00, + -1.587923169140000e-01, + 4.080470085140000e+00, + -2.629729211330000e-01, + -6.915870666500000e+00, + 8.014147758480000e+00, + -2.765896320340000e+00, + -6.026257872580000e-01, + -1.330308318140000e+00, + -4.966757297520000e+00, + -2.895350754260000e-01, + -1.912580013280000e+00, + 1.488734006880000e+00, + 5.399137973790000e+00, + -7.444491386410000e-01, + 4.955337047580000e-01, + 5.811799526210000e+00, + 4.986854076390000e+00, + -2.465843915940000e+00, + -3.885058403020000e+00, + 4.272547245030000e+00, + 1.020658761260000e-01, + 6.374135017400000e+00, + 9.479430317880000e-01, + 1.876914978030000e+00, + -1.338795661930000e+00, + 6.106252670290000e+00, + 1.395221829410000e+00, + 1.371761441230000e+00, + -7.205403804780000e+00, + -5.254549980160000e+00, + -2.157658338550000e+00, + 6.990774273870000e-01, + -6.028110027310000e+00, + 6.137815952300000e+00, + 8.408959209920000e-02, + 2.354063034060000e+00, + -3.020330667500000e+00, + -5.942389011380000e+00, + -5.680666923520000e+00, + -3.167632102970000e+00, + -4.759822368620000e+00, + -3.018917322160000e+00, + -1.284258842470000e+00, + -1.278130769730000e+00, + -3.360964059830000e+00, + 3.096993923190000e+00, + 5.309273242950000e+00, + -5.383914113040000e-01, + 1.367987513540000e+00, + 8.865226507190000e-01, + 1.710914373400000e+00, + 1.278842926030000e+00, + 1.254216313360000e+00, + -1.679068207740000e+00, + 5.870461940770000e+00, + 4.678980827330000e+00, + -7.652786374090000e-01, + -3.152973890300000e+00, + 2.367962002750000e-01, + 2.902045726780000e+00, + -3.522439241410000e+00, + 5.121613025670000e+00, + 3.568071126940000e-01, + 6.260317802430000e+00, + -1.485296249390000e+00, + -6.358550190930000e-01, + -5.207643032070000e+00, + -5.482731819150000e+00, + -2.537876129150000e+00, + -4.601316452030000e+00, + 1.349846005440000e+00, + 9.990824460980000e-01, + 1.104896783830000e+00, + 1.322319269180000e+00, + -1.368824839590000e+00, + 6.154903888700000e+00, + -1.012953758240000e+00, + 5.296591758730000e+00, + -3.497102975850000e+00, + -3.812809586520000e-01, + 3.100360631940000e+00, + 2.956415116790000e-01, + -7.708498001100000e+00, + 9.189675331120000e+00, + -3.760675430300000e+00, + -5.225087404250000e-01, + -1.357445120810000e+00, + -5.712302207950000e+00, + 3.559308350090000e-01, + -1.880826592450000e+00, + 9.589076638220000e-01, + 5.293270111080000e+00, + -2.596832990650000e+00, + 1.815442442890000e+00, + 5.397303104400000e+00, + 6.505379676820000e+00, + -1.244316577910000e+00, + -3.863578557970000e+00, + 4.396141052250000e+00, + 3.680549263950000e-01, + 7.176308631900000e+00, + 2.867825031280000e-01, + 7.048156857490000e-01, + -1.190837979320000e+00, + 5.021333694460000e+00, + 1.206786394120000e+00, + 1.663194298740000e+00, + -5.556505680080000e+00, + -5.230479240420000e+00, + -2.290345668790000e+00, + 2.092234611510000e+00, + -4.869170665740000e+00, + 6.299486637120000e+00, + 4.822322726250000e-01, + 2.676714420320000e+00, + -3.924663066860000e+00, + -4.879661083220000e+00, + -5.768496036530000e+00, + -2.572185993190000e+00, + -4.308514595030000e+00, + -3.700230360030000e+00, + -1.547031283380000e+00, + -5.341067314150000e-01, + -2.879044294360000e+00, + 2.462584257130000e+00, + 5.678037166600000e+00, + -4.712728559970000e-01, + -2.484232559800000e-02, + -7.258297875520000e-03, + -9.315692186360000e-01, + -2.247853577140000e-01, + -1.073262766000000e-01, + -2.363770723340000e+00, + -1.298876166340000e+00, + 4.168121516700000e-01, + 2.326787471770000e+00, + 5.165660977360000e-01, + 7.231420874600000e-01, + -7.587109208110000e-01, + -1.221367955210000e+00, + -4.919953346250000e-01, + 3.003583908080000e+00, + 9.485841393470000e-01, + 1.135906949640000e-01, + -1.452572464940000e+00, + 9.879785776140000e-01, + -3.198999643330000e+00, + -8.601791262630000e-01, + 3.481214046480000e+00, + -3.718531131740000e-01, + -7.445446401830000e-02, + 2.564893066880000e-01, + -6.310479640959999e-01, + -2.014381647110000e+00, + -2.933299541470000e-01, + 1.653006792070000e+00, + -1.001115202900000e+00, + 4.384294450280000e-01, + 1.187533378600000e+00, + -1.273005843160000e+00, + -2.975562095640000e+00, + -2.429983377460000e+00, + 1.283759355550000e+00, + 2.878570556640000e-01, + 4.893926903610000e-02, + 3.654749631880000e+00, + 3.335948705670000e+00, + 2.661168336870000e+00, + 1.992230713370000e-01, + -1.430420637130000e+00, + 1.944281578060000e+00, + -7.161596417430000e-01, + 4.473173141480000e+00, + -2.370841056110000e-02, + -2.603550255300000e-01, + -1.515176296230000e+00, + -1.931580066680000e+00, + 1.287826776500000e+00, + 2.022006511690000e-01, + 1.908846616750000e+00, + 1.392007708550000e+00, + -1.970774531360000e-01, + -5.286743640900000e-01, + -1.253176450730000e+00, + -1.051584631200000e-01, + -3.121858239170000e-01, + 2.282824814320000e-01, + -8.692861348390001e-02, + 7.769567519430000e-02, + -6.688847541810000e-01, + -5.185917854310000e+00, + -1.341348767280000e+00, + -6.696113199000001e-02, + -8.467037081720000e-01, + 5.472571849820000e-01, + -3.084187269210000e+00, + 1.349649548530000e+00, + -3.349909543990000e+00, + 5.270316600800000e+00, + 3.190602779390000e+00, + -2.584577560420000e+00, + 3.910328865050000e+00, + -5.535306409000000e-02, + -6.255930662160000e-01, + -1.179100275040000e+00, + -8.121285438540000e-01, + -3.665873110290000e-01, + -4.827695190910000e-01, + -2.620393335820000e-01, + -2.907616496090000e-01, + -4.980679154400000e-01, + -1.829283356670000e+00, + -1.265375971790000e+00, + 4.330109655860000e-01, + 2.509930133820000e+00, + 1.771807670590000e-01, + 7.224625945090000e-01, + -3.786474764350000e-01, + -1.612955093380000e+00, + -7.527969479560001e-01, + 2.945353508000000e+00, + 6.287845969200000e-01, + -3.455570340160000e-02, + -1.118258953090000e+00, + 1.004113674160000e+00, + -3.125232934950000e+00, + -6.941728591920000e-01, + 3.298322439190000e+00, + -7.531605958940000e-01, + 1.016536280510000e-01, + 3.873118758200000e-01, + -6.564359664920000e-01, + -2.032135725020000e+00, + -8.382424712180000e-01, + 1.801274180410000e+00, + -8.481826782230000e-01, + -3.462297618390000e-01, + 5.242846012120000e-01, + -4.881935119630000e-01, + -3.971881389620000e+00, + -1.045629501340000e+00, + 8.801739215850000e-01, + 4.384619295600000e-01, + -1.874668151140000e-01, + 4.505990505220000e+00, + 3.616661071780000e+00, + 2.802365064620000e+00, + 1.784176707270000e+00, + -2.525815725330000e+00, + 2.049277305600000e+00, + -1.888720273970000e+00, + 4.813371181490000e+00, + 6.350293755530000e-01, + 8.997963666920000e-01, + -1.237920999530000e+00, + -1.410342335700000e+00, + -1.453864276410000e-01, + 2.165912240740000e-01, + 1.802598357200000e+00, + 1.091182112690000e+00, + -4.407295882700000e-01, + -9.104782938960000e-01, + -8.089995384220000e-01, + 5.846328660850000e-02, + -8.734430074690001e-01, + 1.182236433030000e+00, + -6.898509860040000e-01, + -1.005360037090000e-01, + 5.213946700099999e-01, + -4.118800640110000e+00, + -2.530160188670000e+00, + 2.645528912540000e-01, + -1.169983267780000e+00, + 3.031407296660000e-01, + -3.475202798840000e+00, + 2.865059673790000e-01, + -2.750384092330000e+00, + 5.255078315730000e+00, + 2.564542770390000e+00, + -2.057061433790000e+00, + 2.321334600450000e+00, + 2.268370836970000e-01, + 5.197902917860000e-01, + -1.200719714160000e+00, + -1.412258744240000e+00, + -9.341578185560000e-02, + -2.443646639590000e-02, + -1.574572026730000e-01, + 2.697022259240000e-01, + 7.618415355680000e-02, + -7.587839365010000e-01, + -5.641275882720000e+00, + 1.119081258770000e+00, + 6.854124069210000e+00, + -4.216890811920000e+00, + 3.394617557530000e+00, + -3.082238435750000e+00, + -1.979578137400000e+00, + -3.431486368180000e+00, + 4.829528331760000e+00, + -1.368903636930000e+00, + 7.050238609310000e+00, + 5.071630477910000e+00, + -5.895476341250000e+00, + -2.320910453800000e+00, + 9.825178146360001e+00, + -7.351772308350000e+00, + 4.643568098550000e-01, + -1.751042753460000e-01, + 8.313674479720000e-03, + 1.930331587790000e-01, + -1.172201275830000e+00, + -5.263729572300000e+00, + 6.672061920170000e+00, + 1.069641113280000e+00, + -4.054200172420000e+00, + 3.945032835010000e+00, + -4.035525798800000e+00, + 4.933008193970000e+00, + -1.643809199330000e+00, + -1.710411310200000e+00, + -4.163025856020000e+00, + 1.135395050050000e+01, + 7.166639804840000e+00, + -8.509695053100000e+00, + 6.868452548980000e+00, + -3.269100427630000e+00, + -4.354957580570000e+00, + 1.657281994820000e+00, + -1.332959625870000e-03, + 5.015811920170000e+00, + 3.089846074580000e-01, + -2.356534004210000e+00, + -1.071522951130000e+00, + -2.930965185170000e+00, + 8.735169768330000e-01, + 4.566066265110000e+00, + -2.074224948880000e+00, + 3.340873003010000e+00, + -1.203305721280000e+00, + 5.461375236510000e+00, + -6.096906185150000e+00, + -4.359072446820000e-01, + 1.969180554150000e-01, + -5.606256961820000e+00, + -7.065179824830000e+00, + 7.861425876620000e+00, + -4.864490926270000e-01, + -1.279301047330000e+00, + -6.042602062230000e+00, + 2.007412433620000e+00, + -2.621662139890000e+00, + 1.025028324130000e+01, + -4.560139179230000e+00, + -6.486056804660000e+00, + 8.775223731990000e+00, + -5.252678871150000e+00, + -8.372539520260000e+00, + 6.872644424440000e-01, + 6.481871128080000e+00, + -2.713536024090000e+00, + -3.441257238390000e+00, + -5.504956245420000e+00, + 5.343954563140000e+00, + -4.308195710180000e-01, + -6.910151243210000e-02, + 6.133688613770000e-02, + 1.327263563870000e-01, + -2.335854023690000e-01, + -7.255158424380000e-01, + -5.689108848570000e+00, + 7.409430742260000e-01, + 6.622103691100000e+00, + -4.305868148800000e+00, + 4.247052192690000e+00, + -3.333646059040000e+00, + -2.130222797390000e+00, + -3.782879590990000e+00, + 4.094930171970000e+00, + -1.362623691560000e+00, + 7.195644855500000e+00, + 5.828525066380000e+00, + -5.776178836820000e+00, + -1.984905838970000e+00, + 1.007289218900000e+01, + -7.370681762700000e+00, + -2.817448973660000e-01, + 6.705827713010000e-01, + -1.477254033090000e-01, + 7.206021249290000e-02, + 1.437277346850000e-01, + -5.289500713350000e+00, + 5.437752246860000e+00, + 1.469002127650000e+00, + -3.404012441640000e+00, + 3.326200723650000e+00, + -2.844092369080000e+00, + 4.524956226350000e+00, + -1.781489729880000e+00, + -1.237285852430000e+00, + -5.065751075740000e+00, + 1.178911495210000e+01, + 7.342058181760000e+00, + -9.173849105830000e+00, + 7.775444984440000e+00, + -4.090803623200000e+00, + -4.053683757780000e+00, + 1.105361819270000e+00, + -5.836733579640000e-01, + 3.846095085140000e+00, + -2.703814208510000e-02, + -1.501505374910000e+00, + -1.057077288630000e+00, + -2.136793851850000e+00, + -4.167018532750000e-01, + 3.129494190220000e+00, + -2.291313171390000e+00, + 3.282373666760000e+00, + -1.200289726260000e-01, + 5.150794982910000e+00, + -6.416283607480000e+00, + 7.586284875870000e-01, + -2.204557806250000e-01, + -5.081800937650000e+00, + -7.283776283260000e+00, + 7.701741218570000e+00, + 6.373016834260000e-01, + -5.328962206840000e-01, + -4.635996341710000e+00, + 3.041606187820000e+00, + -4.651800632480000e+00, + 1.066841697690000e+01, + -3.326695919040000e+00, + -6.065584182740000e+00, + 8.420921325680000e+00, + -5.837603569030000e+00, + -7.897745132450000e+00, + -2.355843037370000e-01, + 6.927928447720000e+00, + -3.812385082240000e+00, + -2.564829826350000e+00, + -6.233430385590000e+00, + 5.292237281800000e+00, + 1.503761768340000e+00, + 1.404481410980000e+00, + 1.363063693050000e+00, + 1.270261049270000e+00, + 1.366115927700000e+00, + -1.572702288630000e+00, + 6.070724964140000e+00, + 5.277260303500000e+00, + -1.131202936170000e+00, + -3.394268035890000e+00, + 4.187494516370000e-01, + 2.717628479000000e+00, + -3.514369964600000e+00, + 5.047050952910000e+00, + 2.453600913290000e-01, + 6.378750801090000e+00, + -1.448742628100000e+00, + -5.277297496800000e-01, + -5.432250976560000e+00, + -5.745532512660000e+00, + -2.613350391390000e+00, + -4.689307689670000e+00, + 1.547737360000000e+00, + 1.383944511410000e+00, + 8.858927488330000e-01, + 1.338323354720000e+00, + -2.194012641910000e+00, + 5.874657630920000e+00, + -1.576859951020000e-01, + 5.260201931000000e+00, + -3.566890239720000e+00, + 2.028601169590000e-01, + 2.847948551180000e+00, + -9.886730313300000e-01, + -7.400057315830000e+00, + 7.449395656590000e+00, + -3.634315252300000e+00, + -2.228539705280000e+00, + -1.145768404010000e+00, + -5.528479576110000e+00, + -5.920817852020001e-01, + -1.187201023100000e+00, + 3.481545686720000e+00, + 4.868010044100000e+00, + -4.522822797300000e-01, + 3.917320072650000e-01, + 5.929973125460000e+00, + 5.939156532290000e+00, + -9.723184704780000e-01, + -4.114372253420000e+00, + 4.785862922670000e+00, + -2.908874750140000e-01, + 6.680072307590000e+00, + 8.810835480690000e-01, + 2.852784991260000e-01, + -1.381283164020000e+00, + 6.720094203950000e+00, + 9.088186025620000e-01, + 1.378909826280000e+00, + -6.043711662290000e+00, + -5.126792907710000e+00, + -1.673284769060000e+00, + 1.276216149330000e+00, + -5.133008956910000e+00, + 5.907521247860000e+00, + 3.872806951400000e-02, + 7.245892286300000e-01, + -3.400901079180000e+00, + -6.462571144100000e+00, + -5.136610984800000e+00, + -1.962655901910000e+00, + -4.637130260470000e+00, + -2.419079780580000e+00, + -2.418766498570000e+00, + -4.032564461230000e-01, + -4.560745239260000e+00, + 2.207496881480000e+00, + 4.334530830380000e+00, + 1.945346780120000e-02, + 1.854912161830000e+00, + 1.449353575710000e+00, + 1.358364820480000e+00, + 1.294891715050000e+00, + 1.730906844140000e+00, + -1.595098257060000e+00, + 5.906222343440000e+00, + 4.846224784850000e+00, + -2.211433887480000e+00, + -3.223326683040000e+00, + -6.461769938470000e-01, + 2.500069141390000e+00, + -3.616577625270000e+00, + 5.196879863740000e+00, + -3.611694276330000e-02, + 6.498530387880000e+00, + -1.350734591480000e+00, + -1.054872035980000e+00, + -4.649402618410000e+00, + -5.833889961240000e+00, + -1.977404832840000e+00, + -4.293828010560000e+00, + 1.718353390690000e+00, + 6.083480119710000e-01, + 8.579973578450000e-01, + 1.599916934970000e+00, + -1.330074191090000e+00, + 5.424204349520000e+00, + -1.416830539700000e+00, + 5.922211170200000e+00, + -3.525755167010000e+00, + -4.841606616970000e-01, + 2.653531312940000e+00, + -5.132160782810000e-01, + -5.935897350310000e+00, + 8.936626434330000e+00, + -2.636466741560000e+00, + -2.107102632520000e+00, + -3.148388266560000e-01, + -6.133036613460000e+00, + -1.412043333050000e+00, + -2.460376977920000e+00, + 2.337975978850000e+00, + 5.001829147340000e+00, + -1.804143428800000e+00, + 5.597362518310000e-01, + 5.910024642940000e+00, + 4.860702514650000e+00, + -1.152970314030000e+00, + -4.211995601650000e+00, + 3.654920339580000e+00, + 7.867914438250000e-02, + 7.011559963230000e+00, + 3.275051116940000e-01, + 1.544332385060000e+00, + -1.970038414000000e+00, + 6.782853603360000e+00, + 8.005518317220000e-01, + 1.453483819960000e+00, + -7.321874141690000e+00, + -5.590342521670000e+00, + -2.946725368500000e+00, + 1.766178488730000e+00, + -4.776512622830000e+00, + 4.797671318050000e+00, + 1.170698285100000e+00, + 3.104485511780000e+00, + -4.752631664280000e+00, + -5.194829463960000e+00, + -5.263301372530000e+00, + -2.531134128570000e+00, + -4.902533531190000e+00, + -2.778534889220000e+00, + -2.010288000110000e+00, + -6.538812518120000e-01, + -2.932382106780000e+00, + 2.986570835110000e+00, + 5.554559230800000e+00, + -6.629092097280000e-01, + -2.816657125950000e-01, + -1.162554502490000e+00, + -5.730357766150000e-01, + -3.293494880200000e-01, + -3.353169560430000e-01, + -2.104952335360000e+00, + -1.267173051830000e+00, + 1.298027932640000e-01, + 2.526933431630000e+00, + 5.530290007590000e-01, + 4.951437413690000e-01, + -6.900880336760000e-01, + -1.519189596180000e+00, + -4.812391996380000e-01, + 2.673388719560000e+00, + 5.837594866750000e-01, + 4.001854732630000e-02, + -1.088940858840000e+00, + 9.123310446739999e-01, + -3.121081829070000e+00, + -9.916352629660000e-01, + 3.195939779280000e+00, + -8.448046632110000e-03, + -4.999883472920000e-02, + -3.235676288600000e-01, + -2.346833646300000e-01, + -2.743872404100000e+00, + -5.904384255410000e-01, + 3.350450992580000e+00, + -6.673847436900000e-01, + -1.290475726130000e+00, + 1.472097873690000e+00, + 2.418458610770000e-01, + -2.872249841690000e+00, + -2.301328182220000e+00, + -5.670191049580000e-01, + 1.528175592420000e+00, + -3.794166147710000e-01, + 3.313359022140000e+00, + 3.686923980710000e+00, + 2.587168216710000e+00, + 8.537783026700000e-01, + -1.327041864400000e+00, + 6.500660777090000e-01, + -1.321607708930000e+00, + 3.510932207110000e+00, + 1.274094283580000e-01, + 4.920414984230000e-01, + -2.361826181410000e+00, + -2.050130128860000e+00, + 5.803588032720000e-01, + 8.160508871080000e-01, + 2.369081497190000e+00, + 9.217151999470000e-01, + -4.319773316380000e-01, + -7.384620308880000e-01, + -2.221890687940000e+00, + -7.554358839990000e-01, + -3.600966334340000e-01, + 1.664794683460000e+00, + -7.988771200180000e-01, + -2.460107207300000e-01, + -5.795217752460000e-01, + -4.583585739140000e+00, + -1.124696850780000e+00, + 2.237742394210000e-01, + -2.137111902240000e+00, + -6.735388636590000e-01, + -4.523556232450000e+00, + 1.565773367880000e+00, + -2.377960205080000e+00, + 4.489521980290000e+00, + 2.817945003510000e+00, + -1.900174379350000e+00, + 2.351110219960000e+00, + -1.024233922360000e-01, + -6.212371587750000e-01, + -1.575872898100000e+00, + -1.378269195560000e+00, + 2.821141779420000e-01, + -4.817439615730000e-01, + -2.961278557780000e-01, + -3.696173429490000e-01, + -3.163398206230000e-01, + -1.882553696630000e+00, + -1.230583310130000e+00, + 4.050912559030000e-01, + 3.448458194730000e+00, + 3.633826375010000e-01, + 1.000808596610000e+00, + -8.247314095500000e-01, + -1.204201579090000e+00, + -3.892270326610000e-01, + 2.370803594590000e+00, + 7.389899492260000e-01, + -1.187224611640000e-01, + -8.385024666790000e-01, + 1.288010835650000e+00, + -3.168543815610000e+00, + -1.410656452180000e+00, + 3.317115783690000e+00, + -8.852840065960000e-01, + -6.938816905020000e-01, + -2.868110835550000e-01, + -9.344209730630000e-02, + -1.073593139650000e+00, + 2.285641729830000e-01, + 1.752067446710000e+00, + -1.939039468770000e+00, + 9.560316205020000e-01, + 9.716492295269999e-01, + -9.630198478699999e-01, + -2.591686964040000e+00, + -2.484200000760000e+00, + -1.125658527020000e-01, + -4.680052772160000e-02, + -1.830696463580000e+00, + 2.393575429920000e+00, + 4.366971492770000e+00, + 2.320002079010000e+00, + 1.566542506220000e+00, + -1.145168781280000e+00, + 1.205077052120000e+00, + -1.494825482370000e+00, + 4.581155776980000e+00, + 3.752065822480000e-02, + 7.443540096280000e-01, + -2.093325376510000e+00, + -2.617331981660000e+00, + -9.426572918890000e-01, + 2.311619818210000e-01, + 1.579461216930000e+00, + 4.755448400970000e-01, + -1.938599795100000e-01, + -1.415403604510000e+00, + -6.471410989760000e-01, + 3.295870423320000e-01, + 7.679729163650000e-02, + 1.719860553740000e+00, + -1.006560564040000e+00, + -3.116594552990000e-01, + -2.465070635080000e-01, + -3.396446466450000e+00, + -1.120371103290000e+00, + 1.267246484760000e+00, + -5.643692612650000e-01, + -1.617786288260000e+00, + -4.536547183990000e+00, + 1.066509366040000e+00, + -3.706372022630000e+00, + 4.757204055790000e+00, + 3.399036169050000e+00, + -2.247964382170000e+00, + 2.549305915830000e+00, + 9.551933407780000e-02, + 1.759534478190000e-01, + -1.140948414800000e+00, + -9.332420825960001e-01, + -5.955906212330000e-02, + 2.179042249920000e-01, + -6.176841259000000e-01, + 1.263038814070000e-01, + 3.892838656900000e-01, + -6.015730500220000e-01, + -5.846111774440000e+00, + 6.934907436370000e-01, + 7.028081417080000e+00, + -4.027797698970000e+00, + 3.399040937420000e+00, + -3.033491373060000e+00, + -2.452163696290000e+00, + -3.837608575820000e+00, + 4.735735893250000e+00, + -1.699873447420000e+00, + 7.187231063840000e+00, + 5.083239078520000e+00, + -6.462372303010000e+00, + -2.099132537840000e+00, + 9.537567138669999e+00, + -7.229527473450000e+00, + -1.001302838330000e+00, + -1.170990988610000e-01, + -2.716925553980000e-02, + -2.318636476990000e-01, + -1.760702848430000e+00, + -6.194842338560000e+00, + 7.132070541380000e+00, + 1.010784029960000e+00, + -2.445146799090000e+00, + 3.661504507060000e+00, + -3.116429090500000e+00, + 4.226918697360000e+00, + -1.246355772020000e+00, + -1.255800008770000e+00, + -4.235298633580000e+00, + 1.187599563600000e+01, + 7.867757797240000e+00, + -8.440354347230000e+00, + 7.777017593380000e+00, + -3.970510482790000e+00, + -3.591964483260000e+00, + 1.766657710080000e+00, + -8.361092805860000e-01, + 3.929363489150000e+00, + 3.891883194450000e-01, + -1.669801592830000e+00, + -4.850755035880000e-01, + -3.447458028790000e+00, + 8.048850893970000e-01, + 3.062697887420000e+00, + -1.573662757870000e+00, + 3.778624534610000e+00, + 2.211614549160000e-01, + 4.405584812160000e+00, + -5.775798797610000e+00, + -1.134497113530000e-02, + 5.565913319590000e-01, + -5.866378784180000e+00, + -7.183501720430000e+00, + 7.771871566770000e+00, + -4.605646729470000e-01, + -1.522328495980000e+00, + -5.153195858000000e+00, + 3.885038852690000e+00, + -2.098926305770000e+00, + 1.042372417450000e+01, + -3.768756866460000e+00, + -6.239467620850000e+00, + 8.574903488160000e+00, + -6.443862915040000e+00, + -8.011363983150000e+00, + -3.599311709400000e-01, + 7.782438755040000e+00, + -3.668444156650000e+00, + -2.506453990940000e+00, + -5.978901386260000e+00, + 6.892561435700000e+00, + 2.096309661870000e-01, + 6.043535098430000e-02, + 1.004593372340000e-01, + 3.514486923810000e-02, + -5.764219537380000e-02, + -6.425446271900001e-01, + -5.103439807890000e+00, + 7.846774458890000e-01, + 6.888037681580000e+00, + -4.165914058690000e+00, + 3.428691625600000e+00, + -3.454529762270000e+00, + -2.360452890400000e+00, + -3.600344419480000e+00, + 4.297909736630000e+00, + -2.035600662230000e+00, + 7.402165412900000e+00, + 5.159069061280000e+00, + -5.873567104340000e+00, + -2.082683563230000e+00, + 9.624368667600001e+00, + -6.984091281890000e+00, + 1.974027007820000e-01, + -7.363321185110000e-01, + 4.734884202480000e-01, + 4.604999125000000e-01, + -1.019261121750000e+00, + -5.553804397580000e+00, + 7.859668731690000e+00, + 2.985516548160000e+00, + -2.917915105820000e+00, + 2.981732606890000e+00, + -3.669126749040000e+00, + 5.149105072020000e+00, + -1.820505499840000e+00, + -1.471210241320000e+00, + -4.067422866820000e+00, + 1.121976280210000e+01, + 7.267358779910000e+00, + -7.775662899020000e+00, + 5.894323349000000e+00, + -4.777804851530000e+00, + -4.330176830290000e+00, + 2.233581781390000e+00, + -3.337150067090000e-02, + 3.930969715120000e+00, + 7.860813289880000e-02, + -8.840138912200000e-01, + -1.269586920740000e+00, + -2.882412910460000e+00, + 4.069955348970000e-01, + 4.401455402370000e+00, + -1.255768775940000e+00, + 3.953240394590000e+00, + 1.303924560550000e+00, + 6.403704166410000e+00, + -6.009733200070000e+00, + 4.748750105500000e-02, + 1.722171753640000e-01, + -6.574539661410000e+00, + -6.869340419770000e+00, + 8.258515357969999e+00, + -3.804539740090000e-01, + -8.212000131610000e-01, + -4.738164424900000e+00, + 2.785722732540000e+00, + -1.887063741680000e+00, + 9.915377616880001e+00, + -4.552796363830000e+00, + -6.348743438720000e+00, + 9.435444831850001e+00, + -6.758939743040000e+00, + -7.909986495970000e+00, + 2.557106316090000e-01, + 6.700513839720000e+00, + -5.222373008730000e+00, + -3.206897735600000e+00, + -7.038482189180000e+00, + 3.759888410570000e+00, + 1.515987157820000e+00, + 1.179385900500000e+00, + 1.780562758450000e+00, + 1.436329126360000e+00, + 1.258773446080000e+00, + -1.621616721150000e+00, + 5.924309730530000e+00, + 4.846366405490000e+00, + -8.474630713460000e-01, + -3.303706884380000e+00, + 2.551162838940000e-01, + 2.477768421170000e+00, + -3.646912813190000e+00, + 5.098220348360000e+00, + 1.194398403170000e-01, + 6.417091369630000e+00, + -1.569851636890000e+00, + -5.791045427320000e-01, + -4.925043106080000e+00, + -5.989489555360000e+00, + -2.617027044300000e+00, + -4.685256004330000e+00, + 1.983851790430000e+00, + 1.437683820720000e+00, + 1.394018769260000e+00, + 9.579656124110000e-01, + -2.514136791230000e+00, + 6.035767555240000e+00, + -7.516205310820000e-01, + 5.409150123600000e+00, + -3.091688394550000e+00, + -7.701444439590000e-03, + 3.310910463330000e+00, + -5.046591758730000e-01, + -7.227059364320000e+00, + 8.696251869199999e+00, + -3.682500600810000e+00, + -9.245572090150000e-01, + -5.767953991890000e-01, + -5.943178176880000e+00, + 6.534677743910000e-01, + -1.790485501290000e+00, + 2.581801891330000e+00, + 4.453119754790000e+00, + -6.303906440730001e-01, + -1.822189055380000e-02, + 5.227851390840000e+00, + 6.263981819150000e+00, + -2.496261119840000e+00, + -4.366885662080000e+00, + 4.308333873750000e+00, + 5.611119419340000e-02, + 7.110696792600000e+00, + 1.527478098870000e+00, + 1.680064678190000e+00, + -1.437559723850000e+00, + 5.488604545590000e+00, + 1.114797949790000e+00, + 1.738102793690000e+00, + -6.842831611630000e+00, + -5.431965827940000e+00, + -1.487113237380000e+00, + 1.879771828650000e+00, + -6.643615245820000e+00, + 5.987216949460000e+00, + 9.585503339770000e-01, + 2.532458305360000e+00, + -4.510686397550000e+00, + -6.341011524200000e+00, + -5.122110843660000e+00, + -3.800499439240000e+00, + -4.104931354520000e+00, + -3.772910356520000e+00, + -1.236000061040000e+00, + -4.409857690330000e-01, + -3.821109294890000e+00, + 2.089691638950000e+00, + 4.999053955080000e+00, + -6.440041065220000e-01, + 1.495833158490000e+00, + 1.354290843010000e+00, + 1.307840585710000e+00, + 1.490348815920000e+00, + 8.747702836990000e-01, + -1.760795116420000e+00, + 5.749412536620000e+00, + 4.859396457670000e+00, + -6.986784935000000e-01, + -3.674571752550000e+00, + 4.081797599790000e-01, + 2.543388128280000e+00, + -3.387300491330000e+00, + 5.046106338500000e+00, + 3.357145786290000e-01, + 6.583699226380000e+00, + -1.486842155460000e+00, + -8.183454275130000e-01, + -5.139213562010000e+00, + -5.547326564790000e+00, + -2.675520420070000e+00, + -4.771808147430000e+00, + 1.095903635030000e+00, + 1.233095765110000e+00, + 1.561272859570000e+00, + 1.602569103240000e+00, + -1.617132425310000e+00, + 5.966658115390000e+00, + -7.085626721379999e-01, + 5.992047309880000e+00, + -5.046133518220000e+00, + -3.051461279390000e-01, + 3.070521116260000e+00, + -5.668013095859999e-01, + -7.396288394930000e+00, + 6.612016201020000e+00, + -3.125294923780000e+00, + -1.728798866270000e+00, + -1.316876173020000e+00, + -6.872334003450000e+00, + -1.120625615120000e+00, + -1.746425390240000e+00, + 1.303798556330000e+00, + 5.655912876130000e+00, + -2.813712596890000e+00, + 5.046864748000000e-01, + 5.285245418550000e+00, + 5.991274356840000e+00, + -1.220047593120000e+00, + -4.536707878110000e+00, + 4.301989078520000e+00, + 2.427807748320000e-01, + 6.496216773990000e+00, + 8.823156356810000e-01, + 3.181668519970000e+00, + -1.929297447200000e+00, + 7.248937606810000e+00, + 1.652577877040000e+00, + 1.317430615430000e+00, + -6.680681705470000e+00, + -5.551232337950000e+00, + -1.608437895770000e+00, + 1.716816663740000e+00, + -5.795188426970000e+00, + 6.844889640810000e+00, + -3.426390588280000e-01, + 1.999580144880000e+00, + -4.356569767000000e+00, + -7.046054840090000e+00, + -5.028354644780000e+00, + -2.946024417880000e+00, + -3.707133293150000e+00, + -3.586060523990000e+00, + -1.509818434720000e+00, + -1.581690788270000e+00, + -4.332311153410000e+00, + 2.283779144290000e+00, + 5.357707023620000e+00, + -1.596079707150000e+00, + -3.619881868360000e-01, + 6.365092843770000e-02, + 2.322366386650000e-01, + -2.887547314170000e-01, + -9.542786479000001e-01, + -1.874209165570000e+00, + -1.247185230260000e+00, + 5.070543289180000e-01, + 2.580592393880000e+00, + 1.408413648610000e-01, + 5.588053464890000e-01, + -4.870519638060000e-01, + -1.634463191030000e+00, + -7.120996117590001e-01, + 2.712435960770000e+00, + 6.360908746720000e-01, + -1.836412213740000e-02, + -1.015308380130000e+00, + 1.666520357130000e+00, + -3.074997425080000e+00, + -1.155797243120000e+00, + 3.538169622420000e+00, + 1.058636605740000e-01, + -1.264616753910000e-02, + -2.896715998650000e-01, + -3.640213906760000e-01, + -2.161729097370000e+00, + -1.345098972320000e+00, + 1.907503962520000e+00, + -1.324107766150000e+00, + -1.045447826390000e+00, + 2.916142940520000e-01, + -7.574465125800001e-02, + -3.310758113860000e+00, + -1.975324153900000e+00, + 2.734826803210000e-01, + 7.356892228130000e-01, + -4.920983910560000e-01, + 4.248020172120000e+00, + 3.257630348210000e+00, + 3.129456996920000e+00, + 5.614260435100000e-01, + -1.995335817340000e+00, + 2.071555852890000e+00, + -1.405242681500000e+00, + 5.655257701870000e+00, + 8.549738526340001e-01, + 2.252625942230000e+00, + -2.539949178700000e+00, + -1.882530689240000e+00, + -3.694194555280000e-01, + 2.672311365600000e-01, + 2.870325326920000e+00, + 4.994130432610000e-01, + -4.863603040580000e-02, + -1.199665904050000e+00, + -1.975307106970000e+00, + -3.524869680400000e-01, + -4.793261289600000e-01, + 2.130843162540000e+00, + -1.155655384060000e+00, + 6.136530041690000e-01, + -3.655355274680000e-01, + -4.844395160680000e+00, + -1.292575478550000e+00, + 1.522849559780000e+00, + -4.544489383700000e-01, + -1.928600668910000e-01, + -3.870088100430000e+00, + 7.037513256070000e-01, + -3.628911733630000e+00, + 5.346918106080000e+00, + 4.480299949650000e+00, + -2.439535617830000e+00, + 2.673551797870000e+00, + 7.389109730720000e-01, + -1.299837231640000e-01, + -6.223651766780000e-01, + -5.463957190510000e-01, + -1.161478683350000e-01, + -3.013292849060000e-01, + -2.258121967320000e-01, + -4.399227499960000e-01, + -2.293075472120000e-01, + -1.842467188840000e+00, + -6.707156896590000e-01, + 3.794598281380000e-01, + 2.638699531560000e+00, + -2.883749082680000e-02, + 6.519618630410000e-01, + -8.599719405170000e-01, + -1.501505613330000e+00, + -6.449292302130000e-01, + 2.516483068470000e+00, + 7.880205512050000e-01, + -3.120014071460000e-02, + -1.028328537940000e+00, + 1.176230192180000e+00, + -2.970396041870000e+00, + -1.147517442700000e+00, + 3.377660989760000e+00, + -8.921919465070000e-01, + 5.380215644840000e-01, + 4.173458218570000e-01, + -5.053402781490000e-01, + -1.756412982940000e+00, + -1.119650602340000e+00, + 1.805467247960000e+00, + -9.115823507310000e-01, + 7.794321179390000e-01, + 1.594349861150000e+00, + -1.066935420040000e+00, + -2.523797988890000e+00, + -1.817938685420000e+00, + 6.222341656680000e-01, + 5.356537699700000e-01, + -1.667304486040000e-01, + 3.648838281630000e+00, + 5.132575988770000e+00, + 2.393822669980000e+00, + 1.461475133900000e+00, + -1.692460894580000e+00, + 2.542259216310000e+00, + -1.952236056330000e+00, + 3.326013565060000e+00, + 5.076174736020000e-01, + -1.315227150920000e+00, + -2.465088367460000e+00, + -2.242791652680000e+00, + 2.475656419990000e-01, + 3.009352386000000e-01, + 1.799919128420000e+00, + 5.826426744460000e-01, + 1.913913190360000e-01, + -1.915911912920000e+00, + -1.018755793570000e+00, + -2.756683528420000e-01, + -3.796309232710000e-01, + 1.417253732680000e+00, + -8.433572053910000e-01, + -4.155879020690000e-01, + -1.796521067620000e+00, + -4.792219638820000e+00, + -1.680805325510000e+00, + 7.762573957440000e-01, + 3.377618789670000e-01, + 2.706918716430000e-01, + -3.428223609920000e+00, + 1.613392472270000e+00, + -3.511923789980000e+00, + 5.028450965880000e+00, + 2.725658893590000e+00, + -1.113437056540000e+00, + 1.891420841220000e+00, + 3.159771561620000e-01, + 3.406129777430000e-01, + -1.210660576820000e+00, + -1.656936764720000e+00, + 4.749830067160000e-02, + -2.260826062410000e-03, + 5.223296284680000e-01, + 1.175852417950000e-01, + -2.260128967460000e-02, + -7.354242801670000e-01, + -5.765074729920000e+00, + 8.465847373010000e-01, + 6.693416595460000e+00, + -3.991012096410000e+00, + 3.384321212770000e+00, + -3.609208106990000e+00, + -2.417232751850000e+00, + -3.702658653260000e+00, + 4.533324241640000e+00, + -1.392570614810000e+00, + 7.276648998260000e+00, + 4.923101902010000e+00, + -5.900165081020000e+00, + -1.995217680930000e+00, + 9.698496818540001e+00, + -7.126114845280000e+00, + 2.210983820260000e-02, + -3.205730021000000e-01, + 2.855783104900000e-01, + 2.757163941860000e-01, + -1.205791711810000e+00, + -5.019203662870000e+00, + 6.919318675990000e+00, + 1.154632687570000e+00, + -3.723394393920000e+00, + 3.707163095470000e+00, + -2.974891901020000e+00, + 4.923858165740000e+00, + -4.031457602980000e-01, + -1.413797616960000e+00, + -3.953189134600000e+00, + 1.192030811310000e+01, + 7.586491584780000e+00, + -8.827801704410000e+00, + 6.657521247860000e+00, + -3.219140052800000e+00, + -4.035336971280000e+00, + 6.950755715369999e-01, + -5.557024478910000e-01, + 3.802829265590000e+00, + 2.976481430230000e-02, + -1.394586324690000e+00, + -7.877369523050000e-01, + -3.562594652180000e+00, + 1.251500006770000e-02, + 4.146764755250000e+00, + -1.641043663020000e+00, + 2.703176975250000e+00, + 3.538528084750000e-02, + 6.362062454220000e+00, + -6.548845291140000e+00, + 4.870799779890000e-01, + -2.353690005840000e-02, + -5.286427497860000e+00, + -7.654239177700000e+00, + 7.845742702480000e+00, + 5.097137093540000e-01, + -8.425185084340000e-01, + -5.909214496610000e+00, + 3.160246610640000e+00, + -2.511462211610000e+00, + 9.557209968570000e+00, + -4.007159709930000e+00, + -6.603262424470000e+00, + 1.050567626950000e+01, + -5.801479339600000e+00, + -7.882349491120000e+00, + 2.649294435980000e-01, + 4.855999469760000e+00, + -3.796500444410000e+00, + -2.552906036380000e+00, + -6.068145275120000e+00, + 5.510655403140000e+00, + -8.480781316760000e-02, + 8.318768441680000e-02, + 8.514673262830000e-02, + 1.628747284410000e-01, + -6.564037408680000e-03, + -8.554201722150000e-01, + -5.685771465300000e+00, + 7.232577800750000e-01, + 7.081988334660000e+00, + -3.990020036700000e+00, + 3.477907896040000e+00, + -3.323287725450000e+00, + -2.251717329030000e+00, + -3.739692926410000e+00, + 4.419432163240000e+00, + -1.526532173160000e+00, + 7.334306240080000e+00, + 5.312225341800000e+00, + -5.997037887570000e+00, + -2.541345596310000e+00, + 9.908457756040001e+00, + -7.335761547090000e+00, + 9.468264877800000e-03, + 5.716364830730000e-02, + -1.025356054310000e-01, + 1.005254015330000e-01, + -3.741691112520000e-01, + -6.168973922730000e+00, + 7.074321746830000e+00, + 2.038280248640000e+00, + -4.868438720700000e+00, + 2.943654775620000e+00, + -2.677087783810000e+00, + 4.073966503140000e+00, + -2.230431556700000e+00, + -8.066732287410000e-01, + -4.072781562810000e+00, + 1.131188011170000e+01, + 8.142128944400000e+00, + -7.230438709260000e+00, + 5.767003059390000e+00, + -3.002752065660000e+00, + -4.109966754910000e+00, + 1.732830166820000e+00, + -1.934821009640000e+00, + 3.336756467820000e+00, + 4.913960397240000e-02, + -2.114825725560000e+00, + -1.172982931140000e+00, + -1.203207969670000e+00, + 7.443256974220001e-01, + 4.629938602450000e+00, + -2.917441844940000e+00, + 3.144160270690000e+00, + -1.979599744080000e-01, + 4.887761592860000e+00, + -6.216646671300000e+00, + 3.254941105840000e-01, + -1.652259230610000e-01, + -5.051816940310000e+00, + -7.862003326420000e+00, + 6.982575416560000e+00, + -3.940199315550000e-01, + -7.174555659289999e-01, + -5.384286880490000e+00, + 2.735764026640000e+00, + -2.523402214050000e+00, + 9.368216514589999e+00, + -3.798243045810000e+00, + -7.402413368230000e+00, + 9.686274528500000e+00, + -5.306140422820000e+00, + -7.997114658360000e+00, + -6.319972276690000e-01, + 5.796970844270000e+00, + -3.036602497100000e+00, + -3.529202461240000e+00, + -5.982973575590000e+00, + 5.790947437290000e+00, + 1.180645346640000e+00, + 1.049236774440000e+00, + 1.775013089180000e+00, + 1.338443398480000e+00, + 1.347890496250000e+00, + -1.293485045430000e+00, + 6.009531021120000e+00, + 5.217494964600000e+00, + -7.952074408530000e-01, + -3.099695682530000e+00, + 1.707904636860000e-01, + 2.438341140750000e+00, + -3.415079832080000e+00, + 5.045277595520000e+00, + 2.430600523950000e-01, + 6.721863269810000e+00, + -1.434883952140000e+00, + -9.285650253300000e-01, + -5.341045379640000e+00, + -5.710694789890000e+00, + -2.616276502610000e+00, + -4.784769535060000e+00, + 1.978133201600000e+00, + 1.325394153590000e+00, + 1.067188382150000e+00, + 1.759356617930000e+00, + -2.300055980680000e+00, + 6.074498653410000e+00, + 1.668185889720000e-01, + 5.973197460170000e+00, + -2.341979503630000e+00, + -1.517249226570000e+00, + 3.384865999220000e+00, + -1.049700498580000e+00, + -6.953810691830000e+00, + 7.522058963780000e+00, + -4.036404609680000e+00, + -6.158202290530000e-01, + -7.303227782250000e-01, + -6.834106922150000e+00, + -2.113879919050000e+00, + -1.659314036370000e+00, + 1.510007739070000e+00, + 5.999340057370000e+00, + -1.680660009380000e+00, + 7.434312105180000e-01, + 4.728299140930000e+00, + 5.522048950200000e+00, + -2.348229408260000e+00, + -3.294848442080000e+00, + 4.063363552090000e+00, + -6.608616709710000e-01, + 6.424904823300000e+00, + 1.594360947610000e+00, + 1.349513053890000e+00, + -1.761145353320000e+00, + 5.589071273800000e+00, + 2.692414522170000e+00, + 1.297306537630000e+00, + -5.703204631810000e+00, + -5.641787052150000e+00, + -9.692115187640000e-01, + 1.344867110250000e+00, + -5.831212997440000e+00, + 6.041433334350000e+00, + 2.541622519490000e-01, + 2.763704299930000e+00, + -4.055377960210000e+00, + -6.145796298980000e+00, + -5.438165187840000e+00, + -3.160346031190000e+00, + -4.631304740910000e+00, + -2.628999710080000e+00, + -2.127494573590000e+00, + -6.246880292890000e-01, + -3.077954530720000e+00, + 2.556973457340000e+00, + 6.257982254030000e+00, + -4.866410791870000e-01, + 1.366086363790000e+00, + 1.378635406490000e+00, + 1.408718109130000e+00, + 1.552438378330000e+00, + 1.500741720200000e+00, + -1.460194110870000e+00, + 6.260412216190000e+00, + 5.062400817870000e+00, + -7.092509269710000e-01, + -3.326757192610000e+00, + 3.410475850110000e-01, + 2.711840629580000e+00, + -3.422775030140000e+00, + 5.067086696620000e+00, + -2.293573319910000e-02, + 6.540064811710000e+00, + -1.047893524170000e+00, + -6.210737824440000e-01, + -5.182872295380000e+00, + -6.204774856570000e+00, + -2.088931560520000e+00, + -4.585152626040000e+00, + 1.325880289080000e+00, + 1.047180175780000e+00, + 1.235324025150000e+00, + 1.303206563000000e+00, + -1.400662660600000e+00, + 6.328163623810000e+00, + -5.880679488180000e-01, + 5.509236812590000e+00, + -3.023979902270000e+00, + -5.313173532490000e-01, + 3.244494438170000e+00, + -1.663023352620000e+00, + -6.527544498440000e+00, + 6.465511798860000e+00, + -3.728949308400000e+00, + -1.710244774820000e+00, + -7.040346264839999e-01, + -6.703574657440000e+00, + 2.043218851090000e+00, + -1.818495750430000e+00, + 1.950315833090000e+00, + 4.545847892760000e+00, + -1.247412085530000e+00, + 9.816679358480001e-01, + 5.043880939480000e+00, + 6.771527290340000e+00, + -2.290313243870000e+00, + -3.573684453960000e+00, + 3.786857604980000e+00, + -2.199009060860000e-01, + 7.374015331270000e+00, + 6.827217340470000e-01, + 1.682255744930000e+00, + -2.267909765240000e+00, + 6.167114257810000e+00, + 1.023995041850000e+00, + 2.134924888610000e+00, + -8.066236495969999e+00, + -5.745770454410000e+00, + -2.122495174410000e+00, + 6.626834869380001e-01, + -5.269487857820000e+00, + 6.557520389560000e+00, + -7.262465357780000e-01, + 2.413672924040000e+00, + -4.602146148680000e+00, + -5.851895809170000e+00, + -3.820517539980000e+00, + -2.839151144030000e+00, + -4.646400928500000e+00, + -2.848974227910000e+00, + -1.538428545000000e+00, + -1.389366507530000e+00, + -3.841043949130000e+00, + 2.114731788640000e+00, + 5.115958690640000e+00, + -9.749909043310000e-01, + -1.944300532340000e-01, + -6.931541115049999e-02, + -2.439414411780000e-01, + -4.639535248280000e-01, + -3.804579377170000e-01, + -1.432891368870000e+00, + -1.237967491150000e+00, + 2.299312502150000e-01, + 2.499097585680000e+00, + 2.697634696960000e-01, + 6.588524580000000e-01, + -6.698033809660000e-01, + -1.452201843260000e+00, + -6.520328521730000e-01, + 2.777271032330000e+00, + 6.482461690900000e-01, + 9.962239861490001e-02, + -1.438177943230000e+00, + 1.065694808960000e+00, + -3.060534000400000e+00, + -8.821125030520000e-01, + 3.486016273500000e+00, + -2.624054849150000e-01, + -3.943004012110000e-01, + -8.711345493790001e-03, + -6.226602196690000e-01, + -1.412961125370000e+00, + -1.377685427670000e+00, + 1.748711586000000e+00, + -7.553421258930000e-01, + -7.518440485000000e-01, + -4.596183076500000e-02, + -7.241657376290001e-01, + -2.565146923070000e+00, + -2.371575355530000e+00, + -8.625794649120000e-01, + 5.249917507170000e-01, + -4.845869541170000e-02, + 3.964808940890000e+00, + 3.258512973790000e+00, + 2.335304021840000e+00, + 1.382626295090000e+00, + -2.424262523650000e+00, + 1.301441431050000e+00, + -1.842248797420000e+00, + 4.669921398160000e+00, + -7.204123139380000e-01, + 2.777755558490000e-01, + -8.546569943430000e-01, + -7.589770555499999e-01, + 2.406719475980000e-01, + 1.696423888210000e-01, + 2.669200181960000e+00, + 8.280949294570000e-02, + -3.415674865250000e-01, + -7.197459340100000e-01, + -1.534283041950000e+00, + -4.484539031980000e-01, + -1.082676768300000e+00, + 1.123920321460000e+00, + -1.066536068920000e+00, + -6.746774315830000e-01, + -5.833454728130000e-01, + -3.422029972080000e+00, + -1.494413614270000e+00, + 1.057112216950000e+00, + -1.990365862850000e+00, + 6.145459413530000e-01, + -3.263821840290000e+00, + 1.402117848400000e+00, + -3.358766317370000e+00, + 4.697476387020000e+00, + 2.388725280760000e+00, + -1.931980967520000e+00, + 3.085381031040000e+00, + 6.838154792790000e-01, + -5.039615631100000e-01, + -5.305858254430000e-01, + -9.011057019230000e-01, + -1.645914316180000e-01, + -3.050363659860000e-01, + -2.455874681470000e-01, + -5.527848005290000e-01, + -2.603512704370000e-01, + -1.894003033640000e+00, + -1.070017337800000e+00, + 4.268592596050000e-01, + 2.352746486660000e+00, + 5.212224125860000e-01, + 5.132230520250000e-01, + -9.993574619290000e-01, + -1.467846035960000e+00, + -4.952868819240000e-01, + 2.769112110140000e+00, + 6.280544400219999e-01, + 1.652451604600000e-02, + -1.195364117620000e+00, + 7.771795392040000e-01, + -3.023208856580000e+00, + -7.983145713810000e-01, + 3.473842382430000e+00, + -3.808098435400000e-01, + -5.141646862030000e-01, + -4.272021353240000e-01, + 9.710116311910001e-03, + -2.382544994350000e+00, + -6.123226284980000e-01, + 2.003088712690000e+00, + -1.344155073170000e+00, + 3.834816515450000e-01, + 1.263158679010000e+00, + 1.356046795850000e-01, + -2.848957300190000e+00, + -2.277604341510000e+00, + 1.586982309820000e-01, + 1.460422992710000e+00, + 8.025046437980000e-02, + 4.320214748380000e+00, + 3.548479795460000e+00, + 3.470994472500000e+00, + 1.717813372610000e+00, + -1.529594540600000e+00, + 1.697987914090000e+00, + -1.118239164350000e+00, + 4.235342979430000e+00, + 5.223875045780000e-01, + 4.784641563890000e-01, + -2.460304498670000e+00, + -2.874068737030000e+00, + 5.699570775030000e-01, + -9.983904957770000e-01, + 1.957476735120000e+00, + 4.696871340270000e-01, + -9.049124717710000e-01, + -8.111345171930000e-01, + -1.273390293120000e+00, + -2.076588571070000e-01, + -4.480984434490000e-02, + 1.956462144850000e+00, + -2.175262719390000e-01, + 8.810331225400000e-01, + -1.816044747830000e-01, + -3.233497381210000e+00, + -1.327333450320000e+00, + 1.735190749170000e-01, + -1.770923733710000e+00, + -9.143019914630000e-01, + -3.856600284580000e+00, + 5.194493532180000e-01, + -1.752716898920000e+00, + 4.504998207090000e+00, + 3.564140319820000e+00, + -1.840477943420000e+00, + 1.771779894830000e+00, + 7.754283547400000e-01, + 9.096121042970000e-02, + -1.442815661430000e+00, + -2.367011010650000e-01, + 3.766237199310000e-02, + 2.168856561180000e-02, + -4.443061351780000e-01, + -2.573889866470000e-02, + 1.331071704630000e-01, + -8.307335972790000e-01, + -5.703777790070000e+00, + 5.434944629670000e-01, + 6.740686416630000e+00, + -3.994941473010000e+00, + 3.503119945530000e+00, + -2.661722183230000e+00, + -2.240127563480000e+00, + -3.684407949450000e+00, + 4.524330139160000e+00, + -1.597449183460000e+00, + 7.336975574490000e+00, + 5.437476158140000e+00, + -5.827305316930000e+00, + -2.504493951800000e+00, + 9.455712318420000e+00, + -7.015259742740000e+00, + 9.471094608310000e-01, + -4.485578536990000e-01, + 8.344249725340001e-01, + 2.146197557450000e-01, + -4.304337501530000e-01, + -5.871099472050000e+00, + 8.271759033200000e+00, + 8.494622707370000e-01, + -4.407644748690000e+00, + 2.791968345640000e+00, + -3.164432287220000e+00, + 4.826297283170000e+00, + -6.647255420680001e-01, + -1.257278919220000e+00, + -4.144096851350000e+00, + 1.164637851720000e+01, + 8.186813354490001e+00, + -7.613812923430000e+00, + 6.070142269130000e+00, + -4.439168930050000e+00, + -3.914405584340000e+00, + 1.904168844220000e+00, + -4.940255284310000e-01, + 4.840268611910000e+00, + 2.013082504270000e+00, + -1.242496609690000e+00, + -1.655277371410000e+00, + -1.457456111910000e+00, + 5.003736615180000e-01, + 4.395148754120000e+00, + -1.465097785000000e+00, + 3.782176971440000e+00, + 8.774819225070001e-02, + 4.282485485080000e+00, + -5.744548797610000e+00, + 5.306934118270000e-01, + -1.535417512060000e-02, + -5.095141887660000e+00, + -6.157911300660000e+00, + 7.981506347660000e+00, + -3.863074183460000e-01, + -1.013472437860000e+00, + -4.701162815090000e+00, + 2.587725639340000e+00, + -3.710093259810000e+00, + 9.351063728330001e+00, + -3.873609542850000e+00, + -5.952533245090000e+00, + 9.649091720580000e+00, + -5.603865146640000e+00, + -7.944027423860000e+00, + -5.774373412130001e-01, + 6.768976688390000e+00, + -3.609938621520000e+00, + -3.215678691860000e+00, + -5.532197475430000e+00, + 4.894969940190000e+00, + 4.264436289670000e-02, + -2.748312428590000e-02, + -9.253212064499999e-02, + 2.241230010990000e-01, + 1.082582920790000e-01, + -6.022196412090000e-01, + -5.874990940090000e+00, + 9.324269369239999e-03, + 6.832869052890000e+00, + -4.191672325130000e+00, + 3.309441566470000e+00, + -3.165801286700000e+00, + -2.255693674090000e+00, + -3.892757177350000e+00, + 4.700546264650000e+00, + -1.405148625370000e+00, + 7.293919563290000e+00, + 5.075715065000000e+00, + -5.979989051820000e+00, + -2.105133295060000e+00, + 9.822698593140000e+00, + -7.146381855010000e+00, + -3.107521310450000e-02, + 2.646615505220000e-01, + 6.056051850320000e-01, + 5.973009765150000e-02, + -1.910720467570000e+00, + -5.958137035370000e+00, + 7.136880874630000e+00, + 1.054032444950000e+00, + -3.715464591980000e+00, + 3.972256422040000e+00, + -1.981001973150000e+00, + 4.002418518070000e+00, + -9.674696326260001e-01, + -1.371811509130000e+00, + -3.738932132720000e+00, + 1.128848361970000e+01, + 7.568532943730000e+00, + -8.463452339170001e+00, + 5.617461204530000e+00, + -3.476573944090000e+00, + -4.857852935790000e+00, + 1.959423661230000e+00, + -4.289696812630000e-01, + 3.983053922650000e+00, + 7.056790590290000e-01, + -3.112063884740000e+00, + -5.277768373490000e-01, + -1.892070055010000e+00, + 1.501361489300000e+00, + 4.374117851260000e+00, + -1.675157547000000e+00, + 3.174507617950000e+00, + 3.779709935190000e-01, + 4.979012966160000e+00, + -6.271437644960000e+00, + -4.089102149010000e-01, + 2.488795369860000e-01, + -5.565968990330000e+00, + -7.283308982850000e+00, + 8.475090026860000e+00, + -3.958212435250000e-01, + -3.088022172450000e-01, + -5.830696582790000e+00, + 3.209676027300000e+00, + -2.113674402240000e+00, + 9.600642204280000e+00, + -3.178408622740000e+00, + -6.610852718350000e+00, + 9.099924087520000e+00, + -5.736996650700000e+00, + -8.055035591130000e+00, + -9.571120738980000e-01, + 6.225817680360000e+00, + -4.543671131130000e+00, + -4.059316635130000e+00, + -5.729924678800000e+00, + 5.778880119320000e+00, + 1.607384681700000e+00, + 1.393611311910000e+00, + 1.046721458440000e+00, + 1.331881284710000e+00, + 1.509062647820000e+00, + -1.430449008940000e+00, + 5.799510955810000e+00, + 4.877935886380000e+00, + -5.162236094470000e-01, + -3.425155162810000e+00, + 4.815601706500000e-01, + 2.040718317030000e+00, + -3.512538671490000e+00, + 5.083767414090000e+00, + 2.161072343590000e-01, + 6.635013103490000e+00, + -1.509302973750000e+00, + -5.180361866950000e-01, + -5.010636329650000e+00, + -5.793272495270000e+00, + -2.126386165620000e+00, + -4.468778133390000e+00, + 1.762110710140000e+00, + 1.434386968610000e+00, + 8.289555311200000e-01, + 1.907505035400000e+00, + -1.848044276240000e+00, + 6.188354492190000e+00, + -1.011837482450000e+00, + 6.161264896390000e+00, + -2.935400009160000e+00, + 1.520607322450000e-01, + 4.575896739960000e+00, + -2.143682241440000e-01, + -6.959927082060000e+00, + 8.120127677919999e+00, + -3.322925329210000e+00, + -1.861239910130000e+00, + -6.737969517710000e-01, + -5.505766868590000e+00, + 2.133061736820000e-01, + -2.285692930220000e+00, + 1.920046925540000e+00, + 4.565702438350000e+00, + -1.297883868220000e+00, + 6.320116519930000e-01, + 4.472067832950000e+00, + 6.399799823760000e+00, + -1.605182051660000e+00, + -3.431323528290000e+00, + 4.296319961550000e+00, + 2.235560417180000e-01, + 6.899323463440000e+00, + 6.993933916090000e-01, + 6.133554577830000e-01, + -6.478404998780000e-01, + 6.241419792180000e+00, + 1.772967100140000e+00, + 1.641269564630000e+00, + -6.699021339420000e+00, + -4.238433837890000e+00, + -2.364883184430000e+00, + 1.862221598630000e+00, + -5.721930027010000e+00, + 5.592711925510000e+00, + 2.275695651770000e-01, + 2.800371885300000e+00, + -4.164393424990000e+00, + -5.728593826290000e+00, + -4.782479286190000e+00, + -1.881760001180000e+00, + -4.472822189330000e+00, + -1.990673780440000e+00, + -1.547132611270000e+00, + -1.575095891950000e+00, + -3.662804842000000e+00, + 2.553673744200000e+00, + 5.452093124390000e+00, + -7.105385661130000e-01, + 1.220530986790000e+00, + 1.252654194830000e+00, + 1.400692820550000e+00, + 1.132554769520000e+00, + 1.526766538620000e+00, + -1.631829857830000e+00, + 5.799676895140000e+00, + 4.689536571500000e+00, + -6.605243682860000e-01, + -3.392182588580000e+00, + 2.905477583410000e-01, + 2.519996881480000e+00, + -3.201223850250000e+00, + 5.163813114170000e+00, + 3.974137604240000e-01, + 6.301122188570000e+00, + -1.349119663240000e+00, + -6.726874113080000e-01, + -5.276649951930000e+00, + -5.710964202880000e+00, + -2.233679771420000e+00, + -5.119584083560000e+00, + 1.389176607130000e+00, + 1.412636518480000e+00, + 1.695370197300000e+00, + 1.376095294950000e+00, + -1.158530712130000e+00, + 5.156644344330000e+00, + -1.832526683810000e+00, + 6.007747650150000e+00, + -3.275984525680000e+00, + -1.082148790360000e+00, + 3.413921594620000e+00, + -1.873723506930000e+00, + -7.587617874150000e+00, + 7.948740482330000e+00, + -4.431647777560000e+00, + -1.378858447070000e+00, + -6.107084751130000e-01, + -6.550477504730000e+00, + -1.023705959320000e+00, + -2.490527153020000e+00, + 1.200502753260000e+00, + 5.865261554720000e+00, + -8.304935693740000e-01, + 9.392499923710000e-01, + 4.959572315220000e+00, + 5.184116363530000e+00, + -1.995805859570000e+00, + -4.166068077090000e+00, + 4.306727886200000e+00, + 1.005189567800000e-01, + 6.421748638150000e+00, + 1.118121862410000e+00, + 1.202757596970000e+00, + -1.683484673500000e+00, + 5.394239425660000e+00, + 2.210467576980000e+00, + 1.933673620220000e+00, + -6.571204185490000e+00, + -5.720587730410000e+00, + -2.178341627120000e+00, + 9.570607542989999e-01, + -4.157628536220000e+00, + 7.041436195370000e+00, + 6.667510271070000e-01, + 2.217729330060000e+00, + -3.172653675080000e+00, + -6.327039241790000e+00, + -5.666343212130000e+00, + -2.333595991130000e+00, + -4.794690608980000e+00, + -2.605944156650000e+00, + -1.533751726150000e+00, + -1.546489119530000e+00, + -3.486791133880000e+00, + 3.084584236150000e+00, + 5.042113780980000e+00, + 1.813097447160000e-01, + -1.594463735820000e-01, + -3.317996561530000e-01, + -1.079740762710000e+00, + -3.192076087000000e-01, + -4.193419814110000e-01, + -1.992595672610000e+00, + -1.227267980580000e+00, + 3.557578921320000e-01, + 2.560932159420000e+00, + 4.321415126320000e-01, + 6.532702445980000e-01, + -7.546526789669999e-01, + -1.361072301860000e+00, + -6.286857724190000e-01, + 2.883898258210000e+00, + 7.282986640930000e-01, + -1.093975156550000e-01, + -9.800937771800000e-01, + 9.405449628830000e-01, + -3.230009317400000e+00, + -9.546189308170000e-01, + 3.517447948460000e+00, + -1.185660004620000e+00, + -1.002593263980000e-01, + -3.509767949580000e-01, + -5.304594039920000e-01, + -2.270799636840000e+00, + -8.464478254320000e-01, + 1.413876533510000e+00, + -1.169748067860000e+00, + -8.339707553389999e-02, + 1.839297652240000e+00, + -9.837794303890000e-01, + -3.128923892970000e+00, + -1.456620454790000e+00, + 7.169200181960000e-01, + 8.219729065900000e-01, + -1.128140211110000e+00, + 3.387990951540000e+00, + 3.477657556530000e+00, + 2.379589557650000e+00, + 1.398070096970000e+00, + -1.099594712260000e+00, + 1.475314855580000e+00, + -1.290655970570000e+00, + 3.787904262540000e+00, + 4.599994719030000e-01, + 9.085503816600000e-01, + -1.044378161430000e+00, + -2.207877159120000e+00, + 3.808730840680000e-01, + 9.711524248120000e-01, + 3.782201528550000e+00, + 9.966135621070000e-01, + -3.690605983140000e-03, + -4.330216944220000e-01, + -1.691997647290000e+00, + -5.958570539950000e-02, + -2.522355020050000e-01, + 4.441128671170000e-01, + -1.659910798070000e+00, + 8.402380347250001e-02, + -1.320753693580000e-01, + -3.975282192230000e+00, + -5.213342905040000e-01, + 2.899026572700000e-01, + -2.311778306960000e+00, + -1.415489435200000e+00, + -3.379919052120000e+00, + 2.038898706440000e+00, + -2.882209539410000e+00, + 4.727245807650000e+00, + 3.460374593730000e+00, + -2.499368190770000e+00, + 1.473759651180000e+00, + 2.164264395830000e-02, + -8.053137660030000e-01, + -1.251649737360000e+00, + -1.349468946460000e+00, + -6.112300753590000e-01, + -3.746454715730000e-01, + -3.221278786660000e-01, + -2.851271033290000e-01, + -3.505657315250000e-01, + -1.905902743340000e+00, + -1.272803306580000e+00, + 1.230522036550000e+00, + 2.591431856160000e+00, + 2.771381735800000e-01, + 3.650135099890000e-01, + -6.373615264890000e-01, + -1.168335080150000e+00, + -6.229651570319999e-01, + 3.036516666410000e+00, + 4.655720889570000e-01, + 6.337619423870000e-01, + -1.083968400960000e+00, + 1.224231958390000e+00, + -3.189785003660000e+00, + -9.355396032330000e-01, + 3.365881681440000e+00, + 3.356999754910000e-01, + -5.830699950460000e-02, + -6.688336133960000e-01, + -2.897496819500000e-01, + -2.258274316790000e+00, + -9.364544749260000e-01, + 1.615416049960000e+00, + -1.074406385420000e+00, + 5.874288082120001e-01, + 8.979254961010000e-01, + -1.133331656460000e+00, + -2.746247053150000e+00, + -3.024252653120000e+00, + -5.642723441120000e-01, + -2.917341701690000e-02, + -4.766460955140000e-01, + 4.135320186610000e+00, + 5.257781982420000e+00, + 2.472948789600000e+00, + 7.589995265010000e-01, + -7.769886255260000e-01, + 1.896935939790000e+00, + -2.571027755740000e+00, + 4.297793388370000e+00, + 5.706785321240000e-01, + -1.268603682520000e+00, + -2.118476390840000e+00, + -1.944601655010000e+00, + 2.278035879140000e-01, + 9.725615382190000e-02, + 3.490472316740000e+00, + 1.227980017660000e+00, + 2.463071495290000e-01, + -1.070587396620000e+00, + -1.350019812580000e+00, + -1.457422256470000e+00, + 1.966970041390000e-03, + 2.106358528140000e+00, + -8.089859038590000e-02, + -1.023256406190000e-01, + -8.065437078480000e-01, + -4.411401271820000e+00, + -1.602887153630000e+00, + -1.233370229600000e-01, + -8.044363260270000e-01, + -8.253066539760000e-01, + -3.375837802890000e+00, + 2.002803802490000e+00, + -2.459509611130000e+00, + 5.214030265810000e+00, + 3.149872541430000e+00, + -3.395144939420000e+00, + 3.012037515640000e+00, + 2.126333564520000e-01, + 2.959021739660000e-02, + -1.613715052600000e+00, + -9.804127812390000e-01, + 3.813194632530000e-01, + 2.219707071780000e-01, + -3.802266716960000e-01, + 1.577614694830000e-01, + 3.315389156340000e-01, + -5.980214476590000e-01, + -5.286246299740000e+00, + 8.145582079890000e-01, + 6.492938995360000e+00, + -3.839425325390000e+00, + 3.645899534230000e+00, + -3.212991476060000e+00, + -2.108992099760000e+00, + -3.532048463820000e+00, + 5.005129814150000e+00, + -1.323443889620000e+00, + 7.449754714970000e+00, + 5.129458904270000e+00, + -5.951919078830000e+00, + -2.088935613630000e+00, + 9.507007598880000e+00, + -7.270397186280000e+00, + -2.904623150830000e-01, + -6.027578711510000e-01, + 6.667422652240000e-01, + 3.342936038970000e-01, + -1.426232576370000e+00, + -5.807697772980000e+00, + 7.880776405330000e+00, + 6.224566698070000e-01, + -3.996810674670000e+00, + 3.320526361470000e+00, + -4.279896736150000e+00, + 4.213903427120000e+00, + -1.633897542950000e+00, + -1.256360888480000e+00, + -4.648306846620000e+00, + 9.986492156980001e+00, + 7.863535881040000e+00, + -8.756183624269999e+00, + 6.376465320590000e+00, + -3.796524524690000e+00, + -2.720167875290000e+00, + 1.363106250760000e+00, + -2.945659458640000e-01, + 3.496923685070000e+00, + -3.301938176160000e-01, + -2.949634790420000e+00, + -7.435594499110000e-02, + -2.724611043930000e+00, + 9.848033189770000e-01, + 3.547241210940000e+00, + -1.589637160300000e+00, + 4.660500526430000e+00, + 1.327050179240000e-01, + 5.690756320950000e+00, + -5.566170692440000e+00, + 9.096317887310000e-01, + 7.782767713070000e-02, + -4.630459308620000e+00, + -7.645699977870000e+00, + 7.362330913540000e+00, + -6.330918669700000e-01, + -3.413254320620000e-01, + -5.698170661930000e+00, + 3.239982843400000e+00, + -2.294804573060000e+00, + 1.015956497190000e+01, + -2.481113672260000e+00, + -5.889139652250000e+00, + 1.005436134340000e+01, + -5.148506164550000e+00, + -8.464725494380000e+00, + -8.308655023570000e-02, + 5.899203777310000e+00, + -3.581425666810000e+00, + -4.041155815120000e+00, + -5.828024387360000e+00, + 5.956572055820000e+00, + 7.997549325230000e-02, + -2.441399693490000e-01, + -1.432010382410000e-01, + 1.177686527370000e-01, + 4.928619265560000e-01, + -7.110180854800000e-01, + -5.762549877170000e+00, + 5.614783763890000e-01, + 6.370879173280000e+00, + -3.860999107360000e+00, + 3.406276941300000e+00, + -3.253772258760000e+00, + -2.010026693340000e+00, + -3.712397575380000e+00, + 4.049062252040000e+00, + -1.417151689530000e+00, + 7.224006175990000e+00, + 4.971222400670000e+00, + -5.959344387050000e+00, + -1.749001264570000e+00, + 9.543638229370000e+00, + -7.028994560240000e+00, + 3.204528987410000e-02, + -1.378176212310000e-01, + 1.501735001800000e-01, + -6.188415363430000e-02, + -1.680560350420000e+00, + -4.696876525880000e+00, + 8.100372314450000e+00, + 2.312695026400000e+00, + -3.539266347890000e+00, + 2.664016962050000e+00, + -3.555697202680000e+00, + 4.641301155090000e+00, + -1.432639956470000e+00, + -1.858870983120000e+00, + -4.223931312560000e+00, + 1.121477413180000e+01, + 7.078415870670000e+00, + -8.297215461730000e+00, + 5.854443073270000e+00, + -5.047516345980000e+00, + -4.316946506500000e+00, + 8.840484023089999e-01, + -2.188111305240000e+00, + 3.836616277690000e+00, + 4.754796624180000e-01, + -2.158880472180000e+00, + -3.072945475580000e-01, + -2.569188833240000e+00, + 6.134809255600000e-01, + 4.579939842220000e+00, + -1.501256823540000e+00, + 2.601501703260000e+00, + -7.415544986720000e-01, + 4.880063533780000e+00, + -6.379436016080000e+00, + 5.705190896990000e-01, + 2.380315512420000e-01, + -5.757642745970000e+00, + -6.812841892240000e+00, + 7.215804576870000e+00, + -1.313665658240000e-01, + -1.131901025770000e+00, + -4.489447116850000e+00, + 3.347902774810000e+00, + -1.683120369910000e+00, + 9.766967773439999e+00, + -3.467662096020000e+00, + -6.880733489990000e+00, + 9.619552612300000e+00, + -6.325540542600000e+00, + -8.006601333620001e+00, + -1.182672262190000e+00, + 6.626314163210000e+00, + -3.299187183380000e+00, + -3.671439647670000e+00, + -5.328764915470000e+00, + 4.888633251190000e+00, + 1.020350575450000e+00, + 1.338703870770000e+00, + 1.375553727150000e+00, + 1.263793826100000e+00, + 1.131974220280000e+00, + -1.729177951810000e+00, + 5.846614360810000e+00, + 4.805596828460000e+00, + -1.013018608090000e+00, + -3.108511924740000e+00, + 6.332824826240000e-01, + 2.539928197860000e+00, + -3.804514646530000e+00, + 5.435049533840000e+00, + -5.428421497340000e-02, + 6.205211639400000e+00, + -2.427644252780000e+00, + -6.591233015060000e-01, + -5.386350631710000e+00, + -5.434828281400000e+00, + -2.167742490770000e+00, + -4.727335453030000e+00, + 1.497061610220000e+00, + 9.131264090540000e-01, + 2.325101614000000e+00, + 1.420494198800000e+00, + -1.863366961480000e+00, + 5.999549388890000e+00, + 4.238965809350000e-01, + 3.898900985720000e+00, + -2.787393569950000e+00, + 3.428643941880000e-01, + 2.505810976030000e+00, + -6.937232017520000e-01, + -6.274898052220000e+00, + 7.838410377500000e+00, + -3.091156959530000e+00, + -1.434207797050000e+00, + -3.795255906880000e-04, + -5.357861042020000e+00, + 3.667059838770000e-01, + -2.049360752110000e+00, + 1.061278581620000e+00, + 5.709542751310000e+00, + -1.568085908890000e+00, + 7.305025458340000e-01, + 5.999590873720000e+00, + 5.355190753940000e+00, + -2.709391117100000e+00, + -4.117752075200000e+00, + 4.582168579100000e+00, + -1.045117855070000e+00, + 6.434297561650000e+00, + 1.023159265520000e+00, + 1.515959858890000e+00, + -1.098322153090000e+00, + 6.180678844450000e+00, + 1.827856898310000e+00, + 1.384205102920000e+00, + -7.059146881100000e+00, + -5.053166389470000e+00, + -1.325232148170000e+00, + 1.093689799310000e+00, + -4.877843856810000e+00, + 6.104997634890000e+00, + 2.505367517470000e+00, + 1.894625067710000e+00, + -3.742222785950000e+00, + -6.402399539950000e+00, + -3.858195543290000e+00, + -3.367841482160000e+00, + -5.303155422210000e+00, + -2.965018987660000e+00, + -1.006965875630000e+00, + -5.206004977230000e-01, + -3.197691679000000e+00, + 3.104033946990000e+00, + 4.719257354740000e+00, + -9.046890735630000e-01, + 1.613245010380000e+00, + 2.040945291520000e+00, + 1.392202734950000e+00, + 1.169039964680000e+00, + 1.495873689650000e+00, + -1.559760332110000e+00, + 5.687704563140000e+00, + 4.980474948880000e+00, + -8.404369950290000e-01, + -3.147539138790000e+00, + 4.556118249890000e-01, + 2.407065391540000e+00, + -3.611033916470000e+00, + 5.170265197750000e+00, + 3.741124868390000e-01, + 6.544450759890000e+00, + -1.574139118190000e+00, + -9.944077134130000e-01, + -5.397729396820000e+00, + -5.882627964020000e+00, + -2.453180789950000e+00, + -4.485994815830000e+00, + 1.294653773310000e+00, + 1.520156741140000e+00, + 2.152184247970000e+00, + 1.617876410480000e+00, + -1.264433979990000e+00, + 6.459517955780000e+00, + -8.676564693450000e-01, + 5.928451538090000e+00, + -3.320679903030000e+00, + -3.835016191010000e-01, + 4.404462814330000e+00, + -1.275914669040000e+00, + -6.657845020290000e+00, + 8.366296768190001e+00, + -4.293193340300000e+00, + -9.281144738200000e-01, + -9.220683574680000e-02, + -6.354375839230000e+00, + 2.183125764130000e-01, + -3.036157846450000e+00, + 2.484062194820000e+00, + 4.650559425350000e+00, + -1.544618248940000e+00, + 1.653100371360000e+00, + 6.196029663090000e+00, + 5.144523143770000e+00, + -2.071562051770000e+00, + -2.549024581910000e+00, + 4.217514038090000e+00, + 9.339094161990000e-01, + 7.306500434880000e+00, + -1.941603608430000e-02, + 7.723410129550000e-01, + -3.353497087960000e-01, + 5.525914192200000e+00, + 8.540600538250001e-01, + 1.573527336120000e+00, + -5.736776828770000e+00, + -5.759151458740000e+00, + -1.892343282700000e+00, + 1.076272726060000e+00, + -5.905188083650000e+00, + 6.863994598390000e+00, + 1.229747056960000e+00, + 3.194780826570000e+00, + -4.486021518710000e+00, + -7.046915054320000e+00, + -5.255418777470000e+00, + -2.859085321430000e+00, + -5.536981105800000e+00, + -3.360390186310000e+00, + -2.454531192780000e+00, + -6.428866386410000e-01, + -2.866169214250000e+00, + 2.825513601300000e+00, + 4.583511829380000e+00, + 3.038404583930000e-01, + -1.487605459990000e-02, + -3.963664174080000e-01, + -8.109139204030000e-01, + -1.923427432780000e-01, + 4.041718542580000e-01, + -1.804096102710000e+00, + -1.199324011800000e+00, + 1.785244643690000e-01, + 2.493264436720000e+00, + 2.535227239130000e-01, + 7.578887343410000e-01, + -7.118532061580000e-01, + -1.517176628110000e+00, + -7.777097225189999e-01, + 2.603823423390000e+00, + 6.714705824850000e-01, + 4.591900110240000e-01, + -1.180146217350000e+00, + 8.721184730530001e-01, + -3.169086694720000e+00, + -1.172265291210000e+00, + 3.487215280530000e+00, + -2.549836039540000e-01, + -8.681554198270000e-01, + 3.521025180820000e-01, + -1.468616843220000e+00, + -2.121755599980000e+00, + -1.072212100030000e+00, + 2.204040527340000e+00, + -1.123493164780000e-01, + 6.508395820860000e-02, + 6.545139551160000e-01, + -8.264449834820000e-01, + -3.318525791170000e+00, + -2.877209901810000e+00, + 6.173210740090000e-01, + 8.412935733800000e-01, + -8.537967801090000e-01, + 3.828186750410000e+00, + 3.980354785920000e+00, + 2.621027231220000e+00, + 1.049736261370000e+00, + -1.746956825260000e+00, + 9.960556030270000e-01, + -1.587831854820000e+00, + 4.977035999300000e+00, + 3.594554960730000e-01, + 5.124725103380000e-01, + -1.995997786520000e+00, + -2.288554668430000e+00, + 9.935953021050000e-01, + 6.110349297520000e-01, + 3.038758516310000e+00, + 2.906695753340000e-02, + -4.367575347420000e-01, + -1.046475768090000e+00, + -1.604389667510000e+00, + -2.386389672760000e-01, + -3.382617235180000e-01, + 2.005145788190000e+00, + 7.682153582570000e-01, + -1.825159788130000e-02, + 3.736900687220000e-01, + -4.090184211730000e+00, + -5.506520271300001e-01, + -7.383002340790000e-02, + 1.891282051800000e-01, + -2.706700563430000e-01, + -2.526145935060000e+00, + 2.044332265850000e+00, + -3.013221740720000e+00, + 4.892896652220000e+00, + 4.769554138180000e+00, + -2.041445970540000e+00, + 1.996175765990000e+00, + 2.874519228940000e-01, + -1.215109467510000e+00, + -1.174298524860000e+00, + -1.306381702420000e+00, + -3.392103314400000e-01, + -1.718989759680000e-01, + -2.994296252730000e-01, + -3.541059196000000e-01, + -1.275974363090000e-01, + -2.021354436870000e+00, + -1.169289112090000e+00, + 2.855539619920000e-01, + 3.028483629230000e+00, + 4.477978944780000e-01, + 4.728790819640000e-01, + -7.024943232540000e-01, + -1.277428150180000e+00, + -2.568241059780000e-01, + 2.897911787030000e+00, + 6.283360123630000e-01, + 2.034660801290000e-02, + -8.414512276650000e-01, + 8.731084465980000e-01, + -2.983752727510000e+00, + -9.018716812130000e-01, + 3.613279104230000e+00, + -3.426193594930000e-01, + -4.519881308080000e-01, + -5.975838303570000e-01, + -1.044680356980000e+00, + -2.320055723190000e+00, + -8.788424730300000e-01, + 1.323801398280000e+00, + -6.481654047970000e-01, + 1.071347236630000e+00, + 1.433742880820000e+00, + -1.220728635790000e+00, + -3.962435245510000e+00, + -1.771360039710000e+00, + 9.079296588900000e-01, + 9.576895236970000e-01, + -9.929331541060000e-01, + 3.121407032010000e+00, + 4.484604358670000e+00, + 2.590178966520000e+00, + 4.204601347450000e-01, + -1.203927516940000e+00, + 1.728583574300000e+00, + -1.357897043230000e+00, + 4.972438335420000e+00, + -2.238478511570000e-01, + 4.535130858420000e-01, + -1.444228053090000e+00, + -1.030296564100000e+00, + 8.887965679170000e-01, + -2.576285898690000e-01, + 2.659752368930000e+00, + 7.278965115550000e-01, + -6.580472588540000e-01, + -5.684466287490000e-02, + -1.189613699910000e+00, + 1.904107257720000e-02, + -4.710492491720000e-01, + 6.120784282680000e-01, + -1.394378900530000e+00, + -6.565651893620000e-01, + 8.473321795460000e-02, + -3.898504734040000e+00, + -1.144751548770000e+00, + 7.248603105550000e-01, + -7.311850786210000e-02, + 1.360849142070000e+00, + -3.475695371630000e+00, + 1.799930691720000e+00, + -2.944789648060000e+00, + 4.234935283660000e+00, + 3.020363092420000e+00, + -2.201364517210000e+00, + 2.494812726970000e+00, + 2.711140811440000e-01, + -7.940427064900000e-01, + -2.090879678730000e+00, + -1.126884698870000e+00, + 1.470609754320000e-01, + 1.027001142500000e-01, + -7.281219214200001e-02, + -2.165188081560000e-02, + -3.033121228220000e-01, + -7.199606299400000e-01, + -6.119818687440000e+00, + 7.686507105830001e-01, + 6.648509502410000e+00, + -4.074203491210000e+00, + 3.561551809310000e+00, + -3.740106105800000e+00, + -2.307604312900000e+00, + -3.859205961230000e+00, + 4.510292530060000e+00, + -1.384245395660000e+00, + 7.602489948270000e+00, + 4.565663337710000e+00, + -5.922088623050000e+00, + -2.036954641340000e+00, + 9.921958923340000e+00, + -7.136071681980000e+00, + 2.074953168630000e-01, + 1.267666369680000e-01, + -2.643484473230000e-01, + 3.656177520750000e-01, + -8.311879038809999e-01, + -5.051479339600000e+00, + 6.056757926940000e+00, + 1.146200895310000e+00, + -3.988585233690000e+00, + 2.709357500080000e+00, + -3.071046829220000e+00, + 4.131181716920000e+00, + -2.930928468700000e+00, + -2.359452009200000e+00, + -4.372779369350000e+00, + 1.067630958560000e+01, + 6.766682624820000e+00, + -9.029237747190001e+00, + 6.779336929320000e+00, + -4.174592971800000e+00, + -4.580127239230000e+00, + 2.344759941100000e+00, + -4.521294534210000e-01, + 3.200277328490000e+00, + 5.987153053280000e-01, + -2.733160495760000e+00, + -3.187364637850000e-01, + -2.684246301650000e+00, + 3.424492478370000e-01, + 4.444707870480000e+00, + -9.993066191670000e-01, + 2.889263153080000e+00, + -1.506983339790000e-01, + 4.919354438780000e+00, + -5.467007160190000e+00, + 5.572096109390000e-01, + 1.511379778390000e-01, + -5.034289360050000e+00, + -7.089908599850000e+00, + 7.121786594390000e+00, + 1.721950471400000e-01, + -1.119827270510000e+00, + -5.568618774410000e+00, + 2.833626747130000e+00, + -2.092722415920000e+00, + 1.057193851470000e+01, + -3.821736335750000e+00, + -6.135852336880000e+00, + 9.578607559200000e+00, + -6.345510959630000e+00, + -8.472968101499999e+00, + 2.179731607440000e+00, + 7.216712951660000e+00, + -3.662196159360000e+00, + -2.961773157120000e+00, + -5.418619632720000e+00, + 5.241234779360000e+00, + -2.763032447550000e-03, + 8.009938001630000e-01, + 1.858229190110000e-01, + -6.422907114030000e-01, + 7.735373824830000e-02, + -6.598051786419999e-01, + -5.498812198640000e+00, + 8.226867914200000e-01, + 6.963725566860000e+00, + -3.733579397200000e+00, + 3.415204286580000e+00, + -3.177793025970000e+00, + -2.603365898130000e+00, + -3.685159683230000e+00, + 4.430058956150000e+00, + -1.557391285900000e+00, + 7.429615974430000e+00, + 5.103808403020000e+00, + -5.775883674620000e+00, + -2.301899671550000e+00, + 9.680249214170001e+00, + -7.236323356630000e+00, + -3.611298501490000e-01, + 1.048234999180000e-01, + 1.224886402490000e-01, + -3.272631764410000e-01, + -8.403581976890000e-01, + -5.518355369570000e+00, + 5.968836784360000e+00, + 1.619061470030000e+00, + -2.295804262160000e+00, + 4.124754905700000e+00, + -3.512233257290000e+00, + 4.397617816930000e+00, + -2.364646673200000e+00, + -1.618759632110000e+00, + -5.601856231690000e+00, + 1.155615615840000e+01, + 7.974309444430000e+00, + -9.351341247560001e+00, + 5.836818218230000e+00, + -3.656374692920000e+00, + -2.771276950840000e+00, + 2.058238744740000e+00, + -7.698017358780000e-01, + 4.737877845760000e+00, + -3.406205475330000e-01, + -2.591816902160000e+00, + -1.200510025020000e+00, + -3.461474657060000e+00, + 1.430479407310000e+00, + 4.641822338100000e+00, + -1.915332794190000e+00, + 4.096284389500000e+00, + -4.300376400350000e-02, + 6.002072334290000e+00, + -6.871195316310000e+00, + 4.907106459140000e-01, + 4.653957188130000e-01, + -4.629143714900000e+00, + -7.305783748630000e+00, + 8.110797882080000e+00, + -3.550797700880000e-02, + -6.756052970890000e-01, + -4.677759170530000e+00, + 2.870402574540000e+00, + -2.268767118450000e+00, + 1.031029129030000e+01, + -4.529573917390000e+00, + -6.153818607330000e+00, + 8.932533264160000e+00, + -6.335426330570000e+00, + -8.032784461980000e+00, + 1.191236972810000e+00, + 6.796046733860000e+00, + -4.105940818790000e+00, + -2.928750276570000e+00, + -6.150916576390000e+00, + 6.331145286560000e+00, + 1.528647303580000e+00, + 1.400242567060000e+00, + 1.369509220120000e+00, + 8.351629972460000e-01, + 1.723374247550000e+00, + -1.303946256640000e+00, + 5.654317855830000e+00, + 4.940578937530000e+00, + -9.254990816120000e-01, + -3.163369894030000e+00, + 3.377338051800000e-01, + 2.969701528550000e+00, + -3.885800361630000e+00, + 4.814072608950000e+00, + 4.969909489150000e-01, + 6.415719985960000e+00, + -2.529002189640000e+00, + -8.187641501430000e-01, + -5.048324108120000e+00, + -5.798282146450000e+00, + -2.477892875670000e+00, + -4.329261302950000e+00, + 1.233521461490000e+00, + 1.737241983410000e+00, + 1.497170209880000e+00, + 1.006267786030000e+00, + -2.230533599850000e+00, + 5.917709827420000e+00, + -5.820088386540000e-01, + 5.122566223140000e+00, + -3.057542800900000e+00, + -4.391685426240000e-01, + 2.638976812360000e+00, + -4.244700074200000e-01, + -7.507271766660000e+00, + 7.872943401340000e+00, + -3.839812278750000e+00, + -2.769328594210000e+00, + -1.337349176410000e+00, + -4.812235832210000e+00, + 2.386507838960000e-01, + -2.100236654280000e+00, + 1.645066976550000e+00, + 4.192429542540000e+00, + -1.767523407940000e+00, + 1.528118610380000e+00, + 4.497056961060000e+00, + 4.656986713410000e+00, + -1.843204975130000e+00, + -3.357310056690000e+00, + 5.365654945370000e+00, + -4.854924082760000e-01, + 6.585739135740000e+00, + 8.003849983220001e-01, + 7.259224057200000e-01, + -8.191399574280001e-01, + 5.205187320710000e+00, + 1.260465621950000e+00, + 1.172412991520000e+00, + -6.622809886930000e+00, + -5.958292961120000e+00, + -1.357531666760000e+00, + 1.346897482870000e+00, + -4.187378883360000e+00, + 6.008831977840000e+00, + 2.337835729120000e-01, + 2.045479297640000e+00, + -3.902402877810000e+00, + -6.001065254210000e+00, + -5.634709835050000e+00, + -3.268883705140000e+00, + -4.952505111690000e+00, + -3.578017234800000e+00, + -2.031687021260000e+00, + 1.947712749240000e-01, + -3.460980176930000e+00, + 1.685342311860000e+00, + 6.697432994840000e+00, + -4.084076881410000e-01, + 1.565630435940000e+00, + 1.872411251070000e+00, + 9.367042183880000e-01, + 1.094624161720000e+00, + 1.506282806400000e+00, + -1.612265825270000e+00, + 6.378318309780000e+00, + 4.982457160950000e+00, + -7.286632061000000e-01, + -3.519263982770000e+00, + 1.456302404400000e-01, + 2.495522737500000e+00, + -3.352442026140000e+00, + 5.062610626220000e+00, + 2.432487756010000e-01, + 6.574884891510000e+00, + -1.478961110120000e+00, + -7.784046530720000e-01, + -5.439197540280000e+00, + -5.498253822330000e+00, + -2.849899291990000e+00, + -4.604376316070000e+00, + 1.782093524930000e+00, + 1.442597150800000e+00, + 1.363623619080000e+00, + 1.204170227050000e+00, + -2.854366540910000e+00, + 5.726973056790000e+00, + -1.022390127180000e+00, + 4.967217922210000e+00, + -3.382812261580000e+00, + -1.052015066150000e+00, + 2.649229288100000e+00, + -1.672964811330000e+00, + -5.886966705320000e+00, + 8.256369590760000e+00, + -3.260478734970000e+00, + -1.430773496630000e+00, + -1.012780904770000e+00, + -7.563671588900000e+00, + 2.802174389360000e-01, + -2.557693004610000e+00, + 2.184296131130000e+00, + 5.116506099700000e+00, + -3.776586651800000e-01, + 9.412683248520000e-01, + 6.155770778660000e+00, + 5.979570865630000e+00, + -1.893601775170000e+00, + -2.363894701000000e+00, + 4.158411502840000e+00, + 1.156046390530000e-01, + 6.793488025670000e+00, + 1.210755944250000e+00, + 1.802001833920000e+00, + -1.496447086330000e+00, + 5.687290191650000e+00, + 1.385572433470000e+00, + 1.452711701390000e+00, + -6.919954299930000e+00, + -6.105019569400000e+00, + -1.789523482320000e+00, + 1.362647414210000e+00, + -5.601527214050000e+00, + 5.575460910800000e+00, + 5.535762310030000e-01, + 2.261904716490000e+00, + -2.540910482410000e+00, + -6.106775283810000e+00, + -5.388214111330000e+00, + -4.155817985530000e+00, + -4.384649753570000e+00, + -2.757282972340000e+00, + -2.042255163190000e+00, + -2.185772657390000e+00, + -2.410737276080000e+00, + 3.122323513030000e+00, + 5.464002132420000e+00, + -5.049943923950000e-01, + -2.716738283630000e-01, + -3.490854501720000e-01, + -5.069699883460000e-01, + -3.454955760390000e-03, + -2.553906440730000e-01, + -1.598441243170000e+00, + -5.030955672260000e-01, + 4.104217886920000e-01, + 2.217461109160000e+00, + 2.024558782580000e-01, + 6.356486082080000e-01, + -1.613539159300000e-01, + -1.176408648490000e+00, + -6.537858843800000e-01, + 2.496975183490000e+00, + 4.631957411770000e-01, + 1.748970448970000e-01, + -1.292246699330000e+00, + 1.058163046840000e+00, + -3.213491439820000e+00, + -6.903085112570000e-01, + 3.729386091230000e+00, + -5.105972290040000e-01, + -6.953227519990000e-01, + -3.200798034670000e-01, + -3.549141287800000e-01, + -2.482612371440000e+00, + -1.159564733510000e+00, + 1.648482441900000e+00, + -2.108184099200000e-01, + -9.643459320070000e-01, + 1.169837713240000e+00, + -8.312833309170000e-01, + -2.686528205870000e+00, + -1.632334232330000e+00, + -5.622031688690000e-01, + 4.294683635230000e-01, + -1.953227043150000e+00, + 3.639166355130000e+00, + 3.894919872280000e+00, + 2.449266910550000e+00, + 1.367789983750000e+00, + -1.290119290350000e+00, + 2.558697938920000e+00, + -1.980748772620000e+00, + 3.772286415100000e+00, + 2.840476512910000e+00, + 1.049368143080000e+00, + -1.137131929400000e+00, + -1.682276248930000e+00, + 4.807754755020000e-01, + -5.444986224170000e-01, + 3.117082357410000e+00, + 1.053863048550000e+00, + -6.023461818700000e-01, + 1.461247801780000e-01, + -8.201787471770000e-01, + 8.507223427299999e-02, + -9.285158514980000e-01, + 1.307238459590000e+00, + -7.036882638930000e-01, + 1.988392621280000e-01, + -1.928080618380000e-01, + -3.713011264800000e+00, + -1.178027391430000e+00, + 1.297190487380000e-01, + -2.199661135670000e-01, + 5.266045331950000e-01, + -3.744246006010000e+00, + 1.382319092750000e+00, + -1.482375621800000e+00, + 4.910397529600000e+00, + 4.029309272770000e+00, + -1.974161982540000e+00, + 2.386427164080000e+00, + 9.886850714680000e-01, + -4.695987403390000e-01, + -2.180814981460000e+00, + -7.067229747770000e-01, + -3.893019258980000e-01, + -3.909262418750000e-01, + -2.813979685310000e-01, + -6.779950857160000e-01, + -1.529786735770000e-01, + -1.871845722200000e+00, + -1.834059596060000e+00, + 4.035718441010000e-01, + 2.463585376740000e+00, + 3.554812073710000e-01, + 6.826145052910000e-01, + -7.273383736610000e-01, + -1.706220865250000e+00, + -4.939731955530000e-01, + 2.651129722600000e+00, + 7.270841598509999e-01, + 5.508886650200000e-02, + -1.194788932800000e+00, + 8.832225799560000e-01, + -2.965175628660000e+00, + -9.491838216780000e-01, + 3.726535558700000e+00, + -3.862814605240000e-01, + -7.748069167140000e-01, + -3.872821033000000e-01, + -9.982772171500000e-02, + -2.486850976940000e+00, + -1.221980690960000e+00, + 1.742769718170000e+00, + -4.900690019130000e-01, + -9.587126374240000e-01, + 1.813423871990000e+00, + -3.281103968620000e-01, + -2.793004989620000e+00, + -2.266604423520000e+00, + 1.152928233150000e+00, + 3.628310561180000e-01, + -2.358416914940000e-01, + 3.800363779070000e+00, + 3.286430597310000e+00, + 2.943264722820000e+00, + 4.810747504230000e-01, + -1.638820409770000e+00, + 1.924803495410000e+00, + -1.289483070370000e+00, + 2.844329833980000e+00, + -1.359499216080000e+00, + 1.574619054790000e+00, + -2.278816223140000e+00, + -1.664816021920000e+00, + -1.090917885300000e-01, + -6.083521246910000e-01, + 3.272974729540000e+00, + -2.230177372690000e-01, + -9.545758962630000e-01, + -7.437957525250000e-01, + -3.887107074260000e-01, + -7.870289683340000e-02, + -1.181701898570000e+00, + 1.141815185550000e+00, + -1.316794514660000e+00, + 5.958939790730000e-01, + -3.598395287990000e-01, + -4.900233745570000e+00, + -2.168823003770000e+00, + 3.823196887970000e-01, + -1.495547175410000e+00, + 3.783934116360000e-01, + -3.755378484730000e+00, + 1.774462938310000e+00, + -2.049884319310000e+00, + 5.933268070220000e+00, + 3.395672798160000e+00, + -2.707667350770000e+00, + 2.771799325940000e+00, + -4.102036952970000e-01, + -5.730423927310000e-01, + -1.068292021750000e+00, + -8.708174228670000e-01, + -1.740284264090000e-01, + -4.494135379790000e-01, + 2.456517964600000e-01, + 1.166031323370000e-02, + 1.379383495080000e-03, + -1.231973432000000e-02, + -5.725741386410000e+00, + 2.288212478160000e-01, + 6.959726810460000e+00, + -3.808336734770000e+00, + 3.409531831740000e+00, + -3.118259191510000e+00, + -2.340737104420000e+00, + -3.575284957890000e+00, + 4.613237857820000e+00, + -1.505058884620000e+00, + 7.227104187010000e+00, + 5.064178466800000e+00, + -5.920439243320000e+00, + -2.130005121230000e+00, + 9.588937759400000e+00, + -7.183564662930000e+00, + 2.038572579620000e-01, + 5.484065413480000e-01, + 3.167569041250000e-01, + 1.457030892370000e+00, + -1.765827298160000e+00, + -6.194069385530000e+00, + 7.182005405430000e+00, + 1.266789913180000e+00, + -4.337821960450000e+00, + 3.580056667330000e+00, + -2.578171491620000e+00, + 3.505728721620000e+00, + -2.919037818910000e+00, + -1.373695731160000e+00, + -4.907718181610000e+00, + 1.129679775240000e+01, + 7.504992485050000e+00, + -8.519215583799999e+00, + 5.746119976040000e+00, + -2.749084234240000e+00, + -4.099204540250000e+00, + 1.008283734320000e+00, + -8.851746320720000e-01, + 4.033922672270000e+00, + 8.334811925890000e-01, + -6.478598713870000e-01, + -1.670866966250000e+00, + -2.950193405150000e+00, + 6.174684762950000e-01, + 3.651611566540000e+00, + -2.771861076350000e+00, + 3.398129701610000e+00, + 4.736787825820000e-02, + 5.425168514250000e+00, + -6.189896106720000e+00, + 2.291110008950000e-01, + -1.946976482870000e-01, + -6.082899093630000e+00, + -7.142358303070000e+00, + 7.618024349210000e+00, + -1.037576198580000e-01, + -1.034575939180000e+00, + -5.650119304660000e+00, + 2.582004785540000e+00, + -3.267163276670000e+00, + 9.675177574159999e+00, + -4.002447128300000e+00, + -5.812741279600000e+00, + 9.034113883970001e+00, + -6.341339588170000e+00, + -7.988827228550000e+00, + -9.726619720460000e-01, + 6.447318077090000e+00, + -3.230555057530000e+00, + -4.105709075930000e+00, + -5.677492141720000e+00, + 5.454473018650000e+00, + 1.228417083620000e-01, + 7.239872962240000e-02, + 5.133648589250000e-02, + 1.541052699090000e+00, + -1.531834006310000e-01, + -7.101809978490000e-01, + -5.701615810390000e+00, + 5.925709009170000e-01, + 7.799772262570000e+00, + -3.855870246890000e+00, + 3.003478288650000e+00, + -2.710160017010000e+00, + -2.350663900380000e+00, + -3.763739824300000e+00, + 4.553678512570000e+00, + -2.285629987720000e+00, + 7.810614109040000e+00, + 4.992341518400000e+00, + -5.823336601260000e+00, + -2.125029087070000e+00, + 9.689521789550000e+00, + -6.864223003390000e+00, + 2.810702919960000e-01, + 7.212720513340000e-01, + 9.492536783220000e-01, + -4.387413263320000e-01, + 5.658237338070000e-01, + -4.596260070800000e+00, + 6.150105953220000e+00, + 2.439544916150000e+00, + -3.490426778790000e+00, + 3.401700258250000e+00, + -2.642625808720000e+00, + 3.943090438840000e+00, + -1.529295325280000e+00, + -6.276398301120000e-01, + -3.837892532350000e+00, + 1.038864612580000e+01, + 7.589390754700000e+00, + -9.313005447389999e+00, + 6.789912700650000e+00, + -4.248659610750000e+00, + -3.360324382780000e+00, + 1.412837862970000e+00, + -1.550842761990000e+00, + 3.833109140400000e+00, + -3.765378892420000e-01, + -1.174452066420000e+00, + -1.115844011310000e+00, + -2.655139923100000e+00, + 8.569127321240000e-01, + 3.376615762710000e+00, + -1.337619781490000e+00, + 4.285855770110000e+00, + -3.445965349670000e-01, + 4.793510437010000e+00, + -5.847956180570000e+00, + 5.485562235120000e-02, + -3.196868598460000e-01, + -4.467542648320000e+00, + -7.639544963840000e+00, + 7.169143199920000e+00, + 1.844983845950000e-01, + -8.852097392079999e-01, + -5.558086395260000e+00, + 3.425107955930000e+00, + -3.527726888660000e+00, + 9.776931762700000e+00, + -4.407779693600000e+00, + -6.612141609190000e+00, + 9.209437370300000e+00, + -6.541516304020000e+00, + -8.215625762940000e+00, + -8.691678047180000e-01, + 6.463399410250000e+00, + -3.037082672120000e+00, + -1.379555344580000e+00, + -6.157345294950000e+00, + 7.194491386410000e+00, + 4.265644848350000e-01, + 1.344682455060000e+00, + 1.200942993160000e+00, + 1.293545484540000e+00, + 1.403259396550000e+00, + -1.093471169470000e+00, + 6.207077026370000e+00, + 4.709509849550000e+00, + -7.189692854880000e-01, + -3.374147892000000e+00, + 2.171367406850000e-01, + 2.528149604800000e+00, + -3.465587377550000e+00, + 5.116923809050000e+00, + 3.442402780060000e-01, + 6.562668800350000e+00, + -1.284262061120000e+00, + -4.545637071130000e-01, + -5.325489997860000e+00, + -5.732417583470000e+00, + -2.638771533970000e+00, + -4.632045269010000e+00, + 1.569041132930000e+00, + 1.422618269920000e+00, + 1.144605040550000e+00, + 1.488890171050000e+00, + -2.554996252060000e+00, + 5.878416061400000e+00, + -1.069486022000000e+00, + 5.427189826970000e+00, + -2.702055931090000e+00, + 6.421780586240000e-02, + 2.993041276930000e+00, + -2.190296173100000e+00, + -7.488043308260000e+00, + 8.081940650940000e+00, + -4.418880462650000e+00, + -2.171290874480000e+00, + -1.348207831380000e+00, + -6.778303623200000e+00, + 2.354092448950000e-01, + -2.757167816160000e+00, + 1.918235301970000e+00, + 5.517924308780000e+00, + -1.177192091940000e+00, + 1.903904676440000e+00, + 4.938543796540000e+00, + 6.709806442260000e+00, + -2.403526067730000e+00, + -4.284611225130000e+00, + 6.141499042510000e+00, + 5.497541278600000e-02, + 7.289272785190000e+00, + 8.948998451230000e-01, + 1.300820469860000e+00, + -5.302504897120000e-01, + 5.579994678500000e+00, + 1.137349128720000e+00, + 1.786782026290000e+00, + -6.517685413360000e+00, + -4.659310817720000e+00, + -1.808055996890000e+00, + 1.534720063210000e+00, + -5.950018882750000e+00, + 6.916586399080000e+00, + 1.851184293630000e-03, + 1.807492256160000e+00, + -4.503564834590000e+00, + -6.456209659580000e+00, + -4.600358486180000e+00, + -2.651910066600000e+00, + -4.809489727020000e+00, + -4.887672424320000e+00, + -1.529331803320000e+00, + -1.136681795120000e+00, + -3.305973529820000e+00, + 1.499818325040000e+00, + 5.071541786190000e+00, + -1.389575719830000e+00, + 9.064092636110000e-01, + 1.465907931330000e+00, + 1.351714968680000e+00, + 1.810949087140000e+00, + 1.439456343650000e+00, + -1.538758158680000e+00, + 6.087382793430000e+00, + 4.560291290280000e+00, + -3.128015995030000e-01, + -2.991621494290000e+00, + 1.275992870330000e+00, + 2.504745960240000e+00, + -3.443400144580000e+00, + 5.137924671170000e+00, + 5.055322498080000e-02, + 7.015595912930000e+00, + -2.235990285870000e+00, + -5.693491101260000e-01, + -5.160219192500000e+00, + -5.632568359380000e+00, + -2.499529361720000e+00, + -4.459936141970000e+00, + 1.312358975410000e+00, + 7.394859194760000e-01, + 1.262812614440000e+00, + 6.294856667520000e-01, + -7.733753323550000e-01, + 5.320891857150000e+00, + -9.973810613160000e-02, + 6.093685150150000e+00, + -3.741420030590000e+00, + -6.822857260699999e-02, + 3.096307754520000e+00, + -1.586833119390000e+00, + -7.580875873570000e+00, + 8.757067680360000e+00, + -3.735385894780000e+00, + -1.949497699740000e+00, + -1.065752506260000e+00, + -6.565822124480000e+00, + -7.460299134250000e-01, + -1.420209527020000e+00, + 1.233054637910000e+00, + 5.409524440770000e+00, + -7.382246851920000e-01, + 2.641017138960000e-01, + 6.068302154540000e+00, + 6.415020942690000e+00, + -5.799399614330000e-01, + -3.444765806200000e+00, + 4.815824985500000e+00, + 5.037283301350000e-01, + 7.676031589510000e+00, + 1.072394251820000e+00, + 1.029946684840000e+00, + 1.010423183440000e+00, + 5.930870056150000e+00, + 1.324763536450000e+00, + 2.106753587720000e+00, + -7.585010051730000e+00, + -5.946063995360000e+00, + -1.423938035960000e+00, + 7.154425978660000e-01, + -4.546712875370000e+00, + 5.730405807500000e+00, + 9.323479235170000e-02, + 2.320229053500000e+00, + -5.055210590360000e+00, + -6.746401786800000e+00, + -4.500178337100000e+00, + -2.527706146240000e+00, + -3.715809345250000e+00, + -2.928110361100000e+00, + -2.682605028150000e+00, + -1.089345693590000e+00, + -2.493209600450000e+00, + 2.951018333440000e+00, + 5.299132823940000e+00, + -3.501778543000000e-01, + 4.188421666620000e-01, + -6.126245856290000e-01, + 4.421656727790000e-01, + -1.091396659610000e-01, + -2.810361683370000e-01, + -1.213130474090000e+00, + -1.461456894870000e+00, + 4.182867407800000e-01, + 2.519804239270000e+00, + 2.141384035350000e-01, + 5.221968293190000e-01, + -8.253691792490000e-01, + -1.577518939970000e+00, + -4.479183554650000e-01, + 2.600838184360000e+00, + 5.660019516940000e-01, + 4.167175851760000e-03, + -1.242956995960000e+00, + 1.127308130260000e+00, + -3.095232725140000e+00, + -8.183326721190000e-01, + 3.549321889880000e+00, + -3.532859385010000e-01, + -6.227934360500000e-01, + -4.884876012800000e-01, + -1.029215812680000e+00, + -2.804761171340000e+00, + -1.920726299290000e-01, + 1.692147135730000e+00, + -7.632666826250000e-01, + 3.582092225550000e-01, + 1.145934581760000e+00, + -9.817438721660000e-01, + -4.231792449950000e+00, + -2.932337045670000e+00, + -1.719915121790000e-01, + 6.136465668680000e-01, + -9.462220221760000e-02, + 3.236765146260000e+00, + 4.465838909150000e+00, + 2.580311536790000e+00, + 1.588917493820000e+00, + -1.612020134930000e+00, + 2.439585447310000e+00, + -1.557152271270000e+00, + 4.348767280580000e+00, + 4.586436748500000e-01, + 9.716072678570000e-01, + -9.048454165460000e-01, + -2.492876529690000e+00, + 7.233437895770000e-01, + 1.234833244230000e-02, + 3.113180875780000e+00, + 7.862593531610000e-01, + -4.505351781850000e-01, + -1.645361542700000e+00, + -9.776293039320000e-01, + -1.229967951770000e+00, + -3.812019824980000e-01, + 1.426613450050000e+00, + -1.869226098060000e-01, + -3.985717892650000e-01, + -3.854665458200000e-01, + -3.586769580840000e+00, + -1.320573925970000e+00, + 6.473850607870000e-01, + -3.377233147620000e-01, + 4.548499584200000e-01, + -3.042098283770000e+00, + 1.926481366160000e+00, + -2.510579347610000e+00, + 5.014123916630000e+00, + 4.167299270630000e+00, + -2.050909280780000e+00, + 2.618534803390000e+00, + 6.122303605079999e-01, + -2.210572808980000e-01, + -1.795287370680000e+00, + -6.324163079260001e-02, + -5.969837680460000e-02, + -3.799013197420000e-01, + -2.606714367870000e-01, + -1.465153247120000e-01, + -4.869627580050000e-02, + -1.954101204870000e+00, + -1.057750940320000e+00, + 9.803711175920000e-01, + 1.629457116130000e+00, + 1.285005360840000e-01, + 2.419013679030000e-01, + -8.649874925610000e-01, + -1.314805388450000e+00, + -2.922123968600000e-01, + 2.591018915180000e+00, + 5.503562092780000e-01, + -1.349468529220000e-01, + -1.051836967470000e+00, + 7.191940546040000e-01, + -3.203093528750000e+00, + -7.435287237170000e-01, + 3.479608058930000e+00, + -8.838528394700000e-02, + -4.244002699850000e-01, + -5.525655746460000e-01, + -1.249745208770000e-02, + -1.805849552150000e+00, + -1.046272873880000e+00, + 3.072795152660000e+00, + -5.366997122760000e-01, + 1.135981202130000e+00, + 4.765827059750000e-01, + -9.217835664750000e-01, + -2.294293403630000e+00, + -1.905645251270000e+00, + -4.214985966680000e-01, + -5.433855652810000e-01, + -2.271659076210000e-01, + 2.803551435470000e+00, + 4.184538841250000e+00, + 2.514252901080000e+00, + 2.041729211810000e+00, + -7.480910420420001e-01, + 2.681159496310000e+00, + -2.312956094740000e+00, + 4.402402400970000e+00, + 1.510349154470000e+00, + 4.345861673360000e-01, + -1.456461548810000e+00, + -2.048338890080000e+00, + 4.487131237980000e-01, + 1.042700856920000e-01, + 2.082596302030000e+00, + 7.913628220559999e-01, + -1.203980445860000e+00, + -2.214649438860000e+00, + -2.020099401470000e+00, + -6.140427589420000e-01, + -3.679853379730000e-01, + 4.280457794670000e-01, + -3.690680861470000e-01, + 4.543461278080000e-02, + -5.139924883840000e-01, + -4.127903461460000e+00, + -6.609942913060000e-01, + 5.938547253610000e-01, + -9.897599816320000e-01, + -1.104889512060000e+00, + -4.320801734920000e+00, + 2.544918775560000e+00, + -2.791249275210000e+00, + 5.005483150480000e+00, + 3.399594068530000e+00, + -3.022202014920000e+00, + 2.403786659240000e+00, + 7.881768941880000e-01, + 1.268216967580000e+00, + -2.050631761550000e+00, + -1.350022196770000e+00, + 9.878481924530000e-02, + -1.161908265200000e-02, + 1.680287867780000e-01, + 1.792126894000000e-02, + -5.454130470750000e-02, + -8.878284692760000e-01, + -5.405758857730000e+00, + 5.997802019120000e-01, + 6.464459896090000e+00, + -4.621429443360000e+00, + 3.307187318800000e+00, + -3.137458801270000e+00, + -2.288562536240000e+00, + -3.369211435320000e+00, + 4.629480838780000e+00, + -1.602968096730000e+00, + 7.324270248410000e+00, + 5.036953926090000e+00, + -5.949916362760000e+00, + -2.118913412090000e+00, + 9.758102416990001e+00, + -6.965645313260000e+00, + -3.356439471240000e-01, + 4.976660609250000e-01, + 1.757884919640000e-01, + 5.543133616450000e-01, + -2.204546928410000e-01, + -5.343324184420000e+00, + 6.962779521940000e+00, + 1.645598053930000e+00, + -4.166095733640000e+00, + 3.588296651840000e+00, + -2.497743129730000e+00, + 4.647184848790000e+00, + -1.542091250420000e+00, + -1.124213814740000e+00, + -3.903919696810000e+00, + 1.110891246800000e+01, + 7.072528839110000e+00, + -9.175479888920000e+00, + 6.043317794800000e+00, + -3.540992259980000e+00, + -4.913827419280000e+00, + 2.324765920640000e+00, + -1.010339260100000e+00, + 4.405127525330000e+00, + 4.313176870350000e-01, + -2.708393335340000e+00, + -1.070367693900000e+00, + -2.807402610780000e+00, + 3.463150858880000e-01, + 3.764592170720000e+00, + -3.642865419390000e+00, + 4.322609424590000e+00, + -1.936358958480000e-01, + 5.752308845520000e+00, + -6.203481197360000e+00, + 1.212962150570000e+00, + -3.142758905890000e-01, + -5.308514118190000e+00, + -6.302803993230000e+00, + 7.958219528200000e+00, + 2.769153118130000e-01, + 1.539160162210000e-01, + -5.904995441440000e+00, + 3.204460859300000e+00, + -3.203358173370000e+00, + 9.879964828489999e+00, + -2.515357732770000e+00, + -6.778761386870000e+00, + 9.292233467100001e+00, + -5.983618259430000e+00, + -8.971819877620000e+00, + 6.111704111100000e-01, + 6.044405460360000e+00, + -2.896327972410000e+00, + -3.364404439930000e+00, + -5.384745597840000e+00, + 6.048113346100000e+00, + -7.054737955330000e-02, + 5.502519384030000e-02, + 3.431771695610000e-02, + 1.582171022890000e-01, + 5.464624762540000e-01, + -5.181983709340000e-01, + -5.725518703460000e+00, + 8.290376067160000e-01, + 6.850068092350000e+00, + -3.987692356110000e+00, + 3.633636713030000e+00, + -2.987351655960000e+00, + -2.324852228160000e+00, + -3.626769781110000e+00, + 4.780512809750000e+00, + -1.507812857630000e+00, + 7.353737831120000e+00, + 5.145970821380000e+00, + -5.414051532750000e+00, + -1.978992223740000e+00, + 9.564291000370000e+00, + -7.335691928860000e+00, + 6.748312711720000e-02, + 2.002128362660000e-01, + -1.615486294030000e-01, + -1.100905053320000e-02, + -6.541420221330000e-01, + -5.704073905940000e+00, + 7.849302291870000e+00, + 1.955342888830000e+00, + -4.161722660060000e+00, + 3.468961954120000e+00, + -3.265735149380000e+00, + 4.125497817990000e+00, + -2.435955762860000e+00, + -1.426130652430000e+00, + -4.401023387910000e+00, + 1.038121318820000e+01, + 7.445479869840000e+00, + -8.627807617189999e+00, + 6.482685565950000e+00, + -4.951983451840000e+00, + -5.004430294040000e+00, + 1.864472031590000e+00, + -3.303873836990000e-01, + 4.190616607670000e+00, + -1.692707389590000e-01, + -2.381203651430000e+00, + -1.249034523960000e+00, + -1.068166136740000e+00, + 1.334904074670000e+00, + 4.007443904880000e+00, + -2.407840251920000e+00, + 3.777970314030000e+00, + -1.911610662940000e-01, + 5.348674774170000e+00, + -6.016780853270000e+00, + 1.543368399140000e-01, + 5.202241539960000e-01, + -5.693606376650000e+00, + -8.668844223020001e+00, + 7.801723480220000e+00, + -8.627465963360000e-01, + -1.141003131870000e+00, + -4.411798477170000e+00, + 2.526218414310000e+00, + -5.114884853360000e+00, + 9.108517646790000e+00, + -2.563710212710000e+00, + -5.594319343570000e+00, + 9.153425216670000e+00, + -5.860907554630000e+00, + -7.556950569150000e+00, + 1.837259233000000e-01, + 7.610073566440000e+00, + -3.134154081340000e+00, + -2.744998216630000e+00, + -5.771950721740000e+00, + 5.732151031490000e+00, + 1.245857357980000e+00, + 1.360230922700000e+00, + 1.513411164280000e+00, + 9.288705587390000e-01, + 1.356997966770000e+00, + -1.731173872950000e+00, + 5.952110767360000e+00, + 4.738169193270000e+00, + -7.386770248410000e-01, + -3.277802705760000e+00, + 5.208212137220000e-01, + 2.521508693700000e+00, + -3.506752252580000e+00, + 4.616131782530000e+00, + 2.225974798200000e-01, + 6.840939044950000e+00, + -1.280700087550000e+00, + -7.211484313010000e-01, + -5.370221614840000e+00, + -5.874026298520000e+00, + -2.500762701030000e+00, + -4.499146938320000e+00, + 1.136519432070000e+00, + 1.027844071390000e+00, + 1.412273287770000e+00, + 1.425341725350000e+00, + -1.213502049450000e+00, + 6.476048469540000e+00, + -9.375018626450000e-02, + 4.981377601620000e+00, + -2.562814474110000e+00, + 1.561185121540000e+00, + 3.058230161670000e+00, + -1.740593791010000e+00, + -6.908772468570000e+00, + 8.637425422670001e+00, + -3.338386058810000e+00, + -1.134583592410000e+00, + -2.367768138650000e-01, + -6.243165016170000e+00, + 8.598849773410000e-01, + -1.431493282320000e+00, + 1.088609457020000e+00, + 5.096635818480000e+00, + -1.033617019650000e+00, + 1.258155107500000e-01, + 6.434557437900000e+00, + 6.639732837680000e+00, + -9.863649606700000e-01, + -3.929905176160000e+00, + 4.735868930820000e+00, + -5.051494240760001e-01, + 7.060295581820000e+00, + 9.477501735090000e-03, + 1.336150884630000e+00, + -1.046380400660000e+00, + 6.176256179810000e+00, + 1.260165929790000e+00, + 1.535660982130000e+00, + -6.674472332000000e+00, + -4.290312767030000e+00, + -1.078652262690000e+00, + 1.155841469760000e+00, + -5.869753360750000e+00, + 5.352049827580000e+00, + 5.875412747260000e-02, + 1.110920071600000e+00, + -4.050698280330000e+00, + -5.792808532710000e+00, + -6.165232181550000e+00, + -2.813367128370000e+00, + -4.762318134310000e+00, + -3.814697980880000e+00, + -2.158339262010000e+00, + -9.128026366230000e-01, + -4.387880325320000e+00, + 2.585305690770000e+00, + 4.700661182400000e+00, + -2.513768374920000e-01, + 1.382482647900000e+00, + 1.345015645030000e+00, + 1.391415476800000e+00, + 1.400081753730000e+00, + 1.825200557710000e+00, + -1.607732295990000e+00, + 6.085274696350000e+00, + 5.100996971130000e+00, + -8.066655397419999e-01, + -3.132544279100000e+00, + 3.970892131330000e-01, + 2.342000961300000e+00, + -3.346607923510000e+00, + 5.065465927120000e+00, + 2.318573296070000e-01, + 6.524510383610000e+00, + -1.384350180630000e+00, + -7.805203199390000e-01, + -4.926891803740000e+00, + -5.785234928130000e+00, + -2.514135837550000e+00, + -4.685440540310000e+00, + 1.385049939160000e+00, + 1.652982711790000e+00, + 1.294677734380000e+00, + 1.006283760070000e+00, + -1.692156076430000e+00, + 6.025280475620000e+00, + -1.095258593560000e+00, + 5.776905059810000e+00, + -3.359974622730000e+00, + -3.111225068570000e-01, + 2.892692089080000e+00, + -3.389402031900000e-01, + -7.319301605220000e+00, + 8.564789772030000e+00, + -3.773992776870000e+00, + -2.059675693510000e+00, + -4.723750054840000e-01, + -6.429696559910000e+00, + -1.153941750530000e-01, + -2.161661863330000e+00, + 2.349884271620000e+00, + 5.522174358370000e+00, + -2.019852399830000e+00, + 5.926855206490000e-01, + 5.009159564970000e+00, + 7.313521862030000e+00, + -5.684354901310000e-01, + -3.089786767960000e+00, + 4.192141056060000e+00, + -2.042403817180000e-01, + 6.843780040740000e+00, + 1.336755752560000e+00, + 1.322805166240000e+00, + -1.433441281320000e+00, + 6.653139114380000e+00, + 2.769649028780000e-01, + 1.186376571660000e+00, + -7.424722671510000e+00, + -4.186065673830000e+00, + -1.952411055560000e+00, + 1.555950164790000e+00, + -6.100032806400000e+00, + 5.633072853090000e+00, + 2.716412544250000e-01, + 2.352858781810000e+00, + -4.638432502750000e+00, + -5.602051734920000e+00, + -5.782351017000000e+00, + -3.060274362560000e+00, + -3.990381002430000e+00, + -2.362461566930000e+00, + -1.686012268070000e+00, + 4.928795397280000e-01, + -3.329953193660000e+00, + 1.686111330990000e+00, + 4.875937461850000e+00, + -5.358691215519999e-01, + -3.714100718500000e-01, + -3.694640696050000e-01, + -5.554663538930000e-01, + -1.725393682720000e-01, + -2.103449255230000e-01, + -2.316597700120000e+00, + -1.033829927440000e+00, + 3.993352353570000e-01, + 2.474764108660000e+00, + 3.761970102790000e-01, + 6.470354646440001e-02, + -6.683478951450000e-01, + -1.656674027440000e+00, + -8.228266239170000e-02, + 2.557306051250000e+00, + 8.414288163190000e-01, + -1.142044365410000e-01, + -1.096980571750000e+00, + 9.709032177930000e-01, + -3.094535589220000e+00, + -9.331793785100000e-01, + 3.354975461960000e+00, + -1.879795938730000e-01, + -3.091362118720000e-01, + -2.502924501900000e-01, + -7.395826578140000e-01, + -1.888044953350000e+00, + -8.603590130810000e-01, + 1.114388704300000e+00, + -6.778235435490000e-01, + -8.632647991180000e-01, + -3.060563802720000e-01, + -1.609025955200000e+00, + -2.883589506150000e+00, + -8.745251894000000e-01, + -2.892032265660000e-01, + 6.186482906340000e-01, + -7.192428112030000e-01, + 3.130465984340000e+00, + 3.698079586030000e+00, + 3.062792301180000e+00, + 1.332271456720000e+00, + -1.058333039280000e+00, + 1.669763684270000e+00, + -1.718930602070000e+00, + 3.639754533770000e+00, + 3.041331470010000e-02, + 5.679213404660000e-01, + -2.208073616030000e+00, + -1.984136581420000e+00, + 7.975968718529999e-02, + 8.713580667970000e-02, + 2.529310941700000e+00, + 9.409175515170000e-01, + -1.368727564810000e+00, + -3.662039041520000e-01, + -1.902880787850000e+00, + 6.293759942050000e-01, + 1.786669194700000e-01, + 1.701596498490000e+00, + -1.673172265290000e-01, + 6.169356033210000e-02, + -4.691395759580000e-01, + -3.936395168300000e+00, + 1.224566176530000e-01, + 1.228651404380000e+00, + 6.997627019880000e-02, + -2.872038632630000e-02, + -2.957652568820000e+00, + 1.658514499660000e+00, + -2.883091211320000e+00, + 5.036188602450000e+00, + 3.422608852390000e+00, + -1.923370838170000e+00, + 2.479888439180000e+00, + -3.576150536540000e-01, + 3.441422283650000e-01, + -2.044978857040000e+00, + -1.057090878490000e+00, + -2.790447175500000e-01, + -2.996141612530000e-01, + -4.948741793630000e-01, + -2.378560900690000e-01, + -2.091008573770000e-01, + -1.897933721540000e+00, + -1.125743508340000e+00, + 4.548342823980000e-01, + 2.547829151150000e+00, + 5.484864711760000e-01, + 3.944023549560000e-01, + -6.411684751510000e-01, + -1.361720323560000e+00, + -4.690150618550000e-01, + 2.948233842850000e+00, + 7.656794190410000e-01, + 1.235014647250000e-01, + -1.409439325330000e+00, + 9.436066150670001e-01, + -2.970207452770000e+00, + -9.199585914610000e-01, + 3.409230947490000e+00, + -3.235692381860000e-01, + 8.765074610710000e-01, + -1.007815241810000e+00, + 3.754988685250000e-02, + -2.958577632900000e+00, + -1.980941295620000e+00, + 1.351332068440000e+00, + -5.778999328610001e-01, + -3.043212890620000e-01, + 9.045500755310000e-01, + -2.652794420720000e-01, + -2.878998041150000e+00, + -1.335466980930000e+00, + 8.006506413220001e-02, + 6.612359285350000e-01, + -1.448965430260000e+00, + 3.347583055500000e+00, + 3.489024400710000e+00, + 2.184460639950000e+00, + 7.846298813820000e-01, + -2.657285451890000e+00, + 6.644011139870000e-01, + -1.410526275630000e+00, + 4.329411506650000e+00, + 5.817148685460000e-01, + 4.418231546880000e-01, + -3.738297224040000e+00, + -2.454522848130000e+00, + -2.099618166690000e-01, + 1.833896338940000e-01, + 3.069008111950000e+00, + 1.197794079780000e+00, + 8.295068740840000e-01, + -1.155178397890000e-01, + -1.338874578480000e+00, + -1.456709019840000e-02, + -5.124660730360000e-01, + 1.171492457390000e+00, + 5.151662230489999e-01, + -3.594592213630000e-01, + -1.148681193590000e-01, + -3.744139671330000e+00, + -1.293014168740000e+00, + 2.922041118140000e-01, + -1.257776498790000e+00, + -5.087249875070000e-01, + -4.677226543430000e+00, + 7.044947743420000e-01, + -2.617354631420000e+00, + 4.444569587710000e+00, + 3.309730052950000e+00, + -2.040374517440000e+00, + 2.787167787550000e+00, + -8.829125016930001e-02, + 3.107695579530000e-01, + -1.251498818400000e+00, + -7.958306670190000e-01, + -3.610227406020000e-01, + -5.565600469710000e-02, + -1.019490510230000e-01, + 2.664800286290000e-01, + 7.235019207000000e-01, + -7.846374511720000e-01, + -6.074945449830000e+00, + 8.614359498020000e-01, + 6.932384490970000e+00, + -4.005989074710000e+00, + 3.620748996730000e+00, + -3.229910850520000e+00, + -2.048050642010000e+00, + -3.523861408230000e+00, + 4.460338115690000e+00, + -1.545191407200000e+00, + 7.252370357510000e+00, + 5.106074810030000e+00, + -5.654831886290000e+00, + -2.394973516460000e+00, + 9.983914375310000e+00, + -7.195126056670000e+00, + 1.386681348090000e-01, + 5.656361952420000e-02, + -1.154597997670000e+00, + 1.033855602150000e-01, + -1.220627307890000e+00, + -5.669199943540000e+00, + 6.673247814180000e+00, + 1.860811591150000e+00, + -2.869934320450000e+00, + 3.563389778140000e+00, + -3.099844455720000e+00, + 5.042312145230000e+00, + -1.762375950810000e+00, + -1.334155082700000e+00, + -3.688130617140000e+00, + 1.212692260740000e+01, + 7.242416858670000e+00, + -8.078123092649999e+00, + 6.695055961610000e+00, + -4.189391613010000e+00, + -5.126404762270000e+00, + 2.273810148240000e+00, + -8.644363880160000e-01, + 4.962563037870000e+00, + 7.377098798750000e-01, + -2.194649696350000e+00, + -8.041725754740000e-01, + -2.452507019040000e+00, + 3.428977429870000e-01, + 3.651347398760000e+00, + -1.600399971010000e+00, + 4.316498756410000e+00, + 1.044632554050000e+00, + 5.019554138180000e+00, + -6.514707565310000e+00, + -1.214291527870000e-01, + -2.652433514600000e-01, + -4.982661247250000e+00, + -6.836669445040000e+00, + 7.630186080930000e+00, + 1.249965429310000e-01, + -1.621823906900000e+00, + -5.059448719020000e+00, + 3.061150789260000e+00, + -2.188709497450000e+00, + 9.507242202760001e+00, + -3.495915174480000e+00, + -6.604730129240000e+00, + 9.496591567990000e+00, + -5.592813491820000e+00, + -8.015410423280001e+00, + 1.001044750210000e+00, + 6.365402221680000e+00, + -1.805184245110000e+00, + -2.594678878780000e+00, + -5.626945495610000e+00, + 7.858774662020000e+00, + 1.476475447420000e-01, + 6.939651072029999e-02, + 4.744470119480000e-02, + -6.814029812810000e-02, + 4.250876605510000e-01, + -3.820100426670000e-01, + -5.841335773470000e+00, + 9.678813815120000e-01, + 6.985189437870000e+00, + -4.181700706480000e+00, + 3.316750764850000e+00, + -3.188102006910000e+00, + -2.199876308440000e+00, + -3.986732721330000e+00, + 4.623270034790000e+00, + -1.688160777090000e+00, + 7.233661174770000e+00, + 5.110585689540000e+00, + -5.937067985530000e+00, + -2.147869348530000e+00, + 9.861085891720000e+00, + -7.303377151490000e+00, + -3.005389682950000e-02, + 3.520050346850000e-01, + 4.810117557640000e-02, + -9.422130882740000e-02, + -1.653980612750000e+00, + -5.648227214810000e+00, + 6.245233535770000e+00, + 1.278742194180000e+00, + -4.516653060910000e+00, + 3.755031108860000e+00, + -3.355854034420000e+00, + 4.582962512970000e+00, + -2.819241046910000e+00, + -1.812669038770000e+00, + -4.109637737270000e+00, + 1.042229843140000e+01, + 8.117615699770001e+00, + -8.450049400330000e+00, + 6.859615325930000e+00, + -3.686868667600000e+00, + -4.226751804350000e+00, + 2.684175014500000e+00, + -6.966916322709999e-01, + 3.756068944930000e+00, + -1.015635967250000e+00, + -3.406018495560000e+00, + -7.268989682200000e-01, + -2.567526102070000e+00, + -4.937615096570000e-01, + 4.113606452940000e+00, + -1.827929258350000e+00, + 3.733582258220000e+00, + 7.246099114420000e-01, + 5.370955467220000e+00, + -6.538895130160000e+00, + -3.302236497400000e-01, + -5.323621630670000e-01, + -4.461995124820000e+00, + -6.874473094940000e+00, + 7.948986053470000e+00, + 1.684023886920000e-01, + -1.899515628810000e+00, + -5.277215957640000e+00, + 1.710037350650000e+00, + -2.458160400390000e+00, + 9.136754035950000e+00, + -3.844599962230000e+00, + -5.755477428440000e+00, + 9.797373771669999e+00, + -5.626575469970000e+00, + -7.596602439880000e+00, + 1.239004507660000e-01, + 7.862142562870000e+00, + -3.904682874680000e+00, + -4.266293048860000e+00, + -5.619268894200000e+00, + 5.544317722320000e+00, + 6.793214678760000e-01, + 1.402770996090000e+00, + 1.338317036630000e+00, + 1.284926414490000e+00, + 1.489335536960000e+00, + -1.745639920230000e+00, + 6.028811454770000e+00, + 4.838406085970000e+00, + -7.083513140680000e-01, + -3.378102540970000e+00, + 2.350275963540000e-01, + 2.452826976780000e+00, + -3.562429428100000e+00, + 4.955004215240000e+00, + 2.533647120000000e-01, + 6.616384983060000e+00, + -1.749566793440000e+00, + -6.345443129540000e-01, + -5.537139892580000e+00, + -5.984133243560000e+00, + -2.602273464200000e+00, + -4.554117202760000e+00, + 1.257740855220000e+00, + 1.338615894320000e+00, + -1.406139135360000e-01, + 1.605575919150000e+00, + -1.609436392780000e+00, + 5.555017948150000e+00, + -1.043577194210000e+00, + 5.944658279420000e+00, + -3.384066343310000e+00, + -4.466172307730000e-02, + 3.028482198720000e+00, + -7.684201002120000e-01, + -7.122530937190000e+00, + 9.072667121889999e+00, + -3.924327373500000e+00, + -1.314963340760000e+00, + -9.097170233730000e-01, + -5.784028053280000e+00, + -1.328036546710000e+00, + -3.109019756320000e+00, + 1.725580573080000e+00, + 5.236696720120000e+00, + -1.069368958470000e+00, + 5.137780308720000e-01, + 5.435347080230000e+00, + 6.310830116270000e+00, + -1.416497111320000e+00, + -4.458222866060000e+00, + 4.807776451110000e+00, + -4.907387793060000e-01, + 6.909504890440000e+00, + 2.698264122010000e-01, + 1.922066330910000e+00, + -6.596066951750000e-01, + 5.745520114900000e+00, + 1.916326165200000e+00, + 1.693891048430000e+00, + -5.564960479740000e+00, + -5.296809673310000e+00, + -1.694223523140000e+00, + 1.639147281650000e+00, + -5.573231220250000e+00, + 5.821027755740000e+00, + 3.359261155130000e-01, + 2.287965774540000e+00, + -4.425547122960000e+00, + -5.543251991270000e+00, + -5.404874801640000e+00, + -1.986929178240000e+00, + -4.176331043240000e+00, + -2.146481037140000e+00, + -1.819666147230000e+00, + -3.321975767610000e-01, + -3.830808401110000e+00, + 3.125665903090000e+00, + 4.955280303960000e+00, + -8.610318899150000e-01, + 1.387791156770000e+00, + 1.355030655860000e+00, + 1.443946957590000e+00, + 1.285164952280000e+00, + 1.309519171710000e+00, + -1.374610543250000e+00, + 5.801424026490000e+00, + 4.823125362400000e+00, + -5.041217803960000e-01, + -3.269025802610000e+00, + 1.602574735880000e-01, + 2.372180700300000e+00, + -3.503731727600000e+00, + 5.100507736210000e+00, + 3.045985102650000e-01, + 6.259446144100000e+00, + -1.372319936750000e+00, + -5.201333165170000e-01, + -5.309954166410000e+00, + -5.596595764160000e+00, + -2.685483217240000e+00, + -4.526902198790000e+00, + 1.842161893840000e+00, + 8.099340796470000e-01, + 1.530566453930000e+00, + 1.600054502490000e+00, + -2.060536146160000e+00, + 5.906528472900000e+00, + -6.530380249020000e-01, + 5.648929595950000e+00, + -3.172443389890000e+00, + 3.115373253820000e-01, + 4.427366733550000e+00, + -8.348815441130000e-01, + -8.363466262819999e+00, + 9.292625427250000e+00, + -4.599624156950000e+00, + -2.497963190080000e+00, + -9.302647709850000e-01, + -5.691294193270000e+00, + -2.627531051640000e+00, + -2.609615564350000e+00, + 2.350295066830000e+00, + 4.601547718050000e+00, + -1.691354274750000e+00, + -2.775420546530000e-01, + 5.285904407500000e+00, + 6.248987197880000e+00, + -3.486862778660000e-01, + -3.900201559070000e+00, + 4.025586605070000e+00, + -1.621119794440000e-03, + 6.706389904020000e+00, + 5.205475687980000e-01, + 7.982096076010000e-01, + -1.542364358900000e+00, + 5.532997131350000e+00, + 1.370812535290000e+00, + 5.975087285040001e-01, + -7.198512554170000e+00, + -4.903710842130000e+00, + -1.693925738330000e+00, + 1.357934713360000e+00, + -5.717642307280000e+00, + 6.051551818850000e+00, + -9.329130873080000e-03, + 2.681049108510000e+00, + -3.505251884460000e+00, + -6.150227546690000e+00, + -5.216219425200000e+00, + -4.224557399750000e+00, + -3.661391258240000e+00, + -2.789088249210000e+00, + -1.091841101650000e+00, + -8.787588030100001e-02, + -3.355378866200000e+00, + 2.528276920320000e+00, + 5.324737071990000e+00, + -8.249078989030000e-01, + 1.588687151670000e-01, + -4.507194459440000e-01, + -3.310209214690000e-01, + 3.379568755630000e-01, + -6.354542970660000e-01, + -1.742249369620000e+00, + -1.234855532650000e+00, + 5.058164596560000e-01, + 2.366530656810000e+00, + 4.578169286250000e-01, + 6.520763039590000e-01, + -7.178491353990000e-01, + -1.510871529580000e+00, + -7.030197978020000e-02, + 2.724874734880000e+00, + 7.043963670730000e-01, + 2.357893884180000e-01, + -1.115106225010000e+00, + 1.042141199110000e+00, + -3.236331701280000e+00, + -8.949385881420000e-01, + 3.527328491210000e+00, + -2.648265361790000e-01, + -3.596495091920000e-01, + -1.383471727370000e+00, + -2.426452934740000e-01, + -2.311189174650000e+00, + -3.866079747680000e-01, + 2.952847480770000e+00, + -1.102221727370000e+00, + 1.613451391460000e-01, + 1.100737452510000e+00, + -1.026316285130000e+00, + -4.053394317630000e+00, + -1.863093972210000e+00, + 6.456910371780000e-01, + 3.655321002010000e-01, + -4.906536638740000e-01, + 3.438923358920000e+00, + 2.927137851720000e+00, + 1.736195087430000e+00, + 5.355446338650000e-01, + -2.376203060150000e+00, + 1.041075229640000e+00, + -1.198225259780000e+00, + 4.930640697480000e+00, + 1.737361252310000e-01, + 2.070068597790000e+00, + -1.871493577960000e+00, + -1.150775909420000e+00, + 1.796041250230000e+00, + -1.116491779690000e-01, + 1.780369877820000e+00, + 1.991364717480000e+00, + -2.073274254800000e-01, + -3.970278203490000e-01, + -8.370555043220000e-01, + 4.886581003670000e-02, + -3.799816071990000e-01, + 1.691347241400000e+00, + -2.878287136550000e-01, + 5.313726663590000e-01, + -1.178423881530000e+00, + -5.219720363620000e+00, + -1.497895717620000e+00, + -3.181602060790000e-01, + -7.048139572140000e-01, + 1.846389919520000e-01, + -2.987661838530000e+00, + 2.195337772370000e+00, + -1.530242204670000e+00, + 4.311555385590000e+00, + 2.991628646850000e+00, + -2.327075958250000e+00, + 2.846058130260000e+00, + 4.638055562970000e-01, + -2.317665338520000e+00, + -1.374722957610000e+00, + -1.201013922690000e-01, + -1.925705969330000e-01, + -1.438096351920000e-02, + -1.713820546870000e-01, + -4.585383534430000e-01, + -7.642947435380000e-01, + -1.464768767360000e+00, + -1.668388724330000e+00, + 3.187040984630000e-01, + 2.670163154600000e+00, + 3.706485927100000e-01, + 1.128381967540000e+00, + -3.740409612660000e-01, + -1.487386941910000e+00, + -6.691547036170000e-01, + 2.658621072770000e+00, + 7.642068266870000e-01, + 7.365520298479999e-02, + -1.034923791890000e+00, + 1.212016463280000e+00, + -3.097967147830000e+00, + -6.883513927460000e-01, + 3.561610221860000e+00, + 2.292124181990000e-01, + -4.869274795060000e-01, + -5.598613023760000e-01, + -7.494663596150000e-01, + -2.574012517930000e+00, + -1.166051745410000e+00, + 2.207065582280000e+00, + 2.279082238670000e-01, + 6.916589736940000e-01, + 3.555754125120000e-01, + -1.005514264110000e+00, + -3.707821369170000e+00, + -1.606238961220000e+00, + -1.061015009880000e+00, + -4.851638972760000e-01, + -1.136143133040000e-01, + 3.922894716260000e+00, + 3.461759328840000e+00, + 2.311731576920000e+00, + 1.289409160610000e+00, + -2.068704843520000e+00, + 2.742274522780000e+00, + -2.185530185700000e+00, + 3.538948535920000e+00, + 7.662960290910000e-01, + -5.526878237720000e-01, + -2.792037248610000e+00, + -1.370844960210000e+00, + 8.457561731340000e-01, + 6.567398309710000e-01, + 3.672325134280000e+00, + 2.304535627370000e+00, + 2.710841298100000e-01, + -6.195436716079999e-01, + -1.391562104230000e+00, + -7.535493969920000e-01, + 2.326787114140000e-01, + 9.853897094730000e-01, + -1.274104416370000e-01, + -5.321365594860000e-01, + -3.836780190470000e-01, + -4.648174285890000e+00, + -9.455936551090000e-01, + -1.049825429920000e+00, + -1.490441560750000e+00, + -3.986563384530000e-01, + -3.532332420350000e+00, + 8.068629503250000e-01, + -2.257917881010000e+00, + 4.521571159360000e+00, + 3.729544401170000e+00, + -3.058597087860000e+00, + 2.417985200880000e+00, + -4.675928056240000e-01, + -1.941896975040000e-01, + -1.159703493120000e+00, + -1.812724113460000e+00, + -9.347684681420000e-04, + -7.090421020980001e-02, + 2.110382914540000e-02, + -1.070259213450000e-01, + 9.786428511140000e-02, + -1.652937382460000e-01, + -6.086242198940000e+00, + 6.018138527869999e-01, + 7.235079765320000e+00, + -3.937994003300000e+00, + 3.393813610080000e+00, + -3.119127035140000e+00, + -2.248712539670000e+00, + -4.279806137080000e+00, + 4.609718799590000e+00, + -1.520519614220000e+00, + 6.928711891170000e+00, + 5.038666248320000e+00, + -5.714280128480000e+00, + -2.346723794940000e+00, + 9.693001747129999e+00, + -7.069910526280000e+00, + 3.096553981300000e-01, + 4.347315430640000e-01, + -5.273594520990000e-03, + 6.737822294240000e-01, + -1.578993916510000e+00, + -4.744507789610000e+00, + 6.775562286380000e+00, + 2.779269933700000e+00, + -3.909004926680000e+00, + 2.483085393910000e+00, + -4.032629966740000e+00, + 5.562193870540000e+00, + -1.159579157830000e+00, + -7.236762046810000e-01, + -4.657511234280000e+00, + 1.229733562470000e+01, + 7.302207469940000e+00, + -8.961706161500000e+00, + 7.308505058290000e+00, + -4.346058845520000e+00, + -3.993539810180000e+00, + 2.001097679140000e+00, + -5.239554643630000e-01, + 4.661140441890000e+00, + 1.686195492740000e+00, + -8.277565240860000e-01, + -1.402087330820000e+00, + -1.742661714550000e+00, + -1.210462152960000e-01, + 4.577112197880000e+00, + -1.415206432340000e+00, + 3.699882268910000e+00, + -2.086416929960000e-01, + 5.011149406430000e+00, + -5.718809604640000e+00, + -5.561997890470000e-01, + 6.262817233800000e-02, + -5.101958274840000e+00, + -8.239648818970000e+00, + 6.445967674260000e+00, + 1.320171236990000e+00, + -1.067893743520000e+00, + -5.029420852660000e+00, + 2.741526365280000e+00, + -2.419841289520000e+00, + 1.138995456700000e+01, + -2.950947761540000e+00, + -6.521840095520000e+00, + 9.865262031560000e+00, + -6.228919506070000e+00, + -7.955469608310000e+00, + 6.547003388400000e-01, + 6.586709976200000e+00, + -4.828691959380000e+00, + -3.068866491320000e+00, + -5.913094520570000e+00, + 7.224462985990000e+00, + 8.687810599800000e-02, + -1.133002620190000e-02, + 2.733062803750000e-01, + -1.312388777730000e-01, + -8.373653516170001e-03, + -7.098811268810000e-01, + -5.779090881350000e+00, + 8.254823088650000e-01, + 6.844252586360000e+00, + -2.849435091020000e+00, + 2.972927808760000e+00, + -3.188453912730000e+00, + -3.031401872630000e+00, + -3.981056451800000e+00, + 4.317133426670000e+00, + -1.688928961750000e+00, + 6.951804161070000e+00, + 5.156356811520000e+00, + -5.436104774480000e+00, + -2.014822721480000e+00, + 9.716415405270000e+00, + -6.801081180570000e+00, + 3.815182447430000e-01, + 4.107953906060000e-01, + 7.894182801250000e-01, + 6.720154546200000e-03, + -1.842043161390000e+00, + -5.081178188320000e+00, + 6.957147121430000e+00, + 3.342146635060000e+00, + -4.631043910980000e+00, + 3.283575296400000e+00, + -2.608413219450000e+00, + 5.207369327550000e+00, + -2.321368217470000e+00, + -1.432252049450000e+00, + -3.995224714280000e+00, + 1.126409053800000e+01, + 7.583129882810000e+00, + -8.946290016170000e+00, + 7.407716274260000e+00, + -3.989061594010000e+00, + -4.636324882510000e+00, + 1.891816616060000e+00, + -7.453940510750000e-01, + 3.638935565950000e+00, + 4.144841805100000e-02, + -2.604245662690000e+00, + -4.742271304130000e-01, + -2.274629116060000e+00, + 9.023408889770000e-01, + 3.657733440400000e+00, + -1.158389806750000e+00, + 3.574404239650000e+00, + 1.403171569110000e-02, + 5.155446052550000e+00, + -6.636734008790000e+00, + -3.763201236720000e-01, + -4.925459623340000e-01, + -5.541404724120000e+00, + -7.820453643800000e+00, + 7.529798507690000e+00, + -5.457471013070000e-01, + -1.979256629940000e+00, + -5.119663238530000e+00, + 2.837856292720000e+00, + -2.366386651990000e+00, + 9.214434623720001e+00, + -3.392230749130000e+00, + -6.747761249540000e+00, + 7.905559062960000e+00, + -5.354341506960000e+00, + -7.050635337830000e+00, + -7.313764691350000e-01, + 7.622541427610000e+00, + -3.767616987230000e+00, + -3.043883323670000e+00, + -6.226945877080000e+00, + 6.693373680110000e+00, + 1.414526343350000e+00, + 1.763654232030000e+00, + 1.210187315940000e+00, + 1.412939667700000e+00, + 1.552294492720000e+00, + -1.086980700490000e+00, + 6.208231449130000e+00, + 4.963184356690000e+00, + -7.173209190370000e-01, + -3.203171730040000e+00, + 3.895550966260000e-01, + 2.339137077330000e+00, + -3.240909576420000e+00, + 5.173363208770000e+00, + 2.963984906670000e-01, + 6.466022014620000e+00, + -1.633921265600000e+00, + -8.345286250110000e-01, + -5.415769577030000e+00, + -5.754281044010000e+00, + -2.548599720000000e+00, + -4.683383941650000e+00, + 8.053701519970000e-01, + 1.585315585140000e+00, + 1.119255661960000e+00, + 1.600214838980000e+00, + -6.237348914150000e-01, + 5.952244281770000e+00, + -8.144857883450000e-01, + 5.283473968510000e+00, + -3.093583106990000e+00, + -2.427150160070000e-01, + 3.103203058240000e+00, + -8.009545207020000e-01, + -6.506351947780000e+00, + 7.749216556550000e+00, + -2.766469478610000e+00, + -1.039533019070000e+00, + -2.192634582520000e+00, + -6.790472984310000e+00, + 8.521413803100000e-02, + -3.118437290190000e+00, + 1.749792218210000e+00, + 5.110153675080000e+00, + -1.874150276180000e+00, + 9.192585349080000e-01, + 6.459310054780000e+00, + 6.392901420590000e+00, + -3.031769275670000e+00, + -4.724928855900000e+00, + 5.183159828190000e+00, + 2.705068141220000e-02, + 6.198461055760000e+00, + -6.602331399920000e-01, + 9.766500592230000e-01, + -1.462219506500000e-01, + 5.958804130550000e+00, + 1.619945764540000e+00, + 1.370704174040000e+00, + -6.466822624210000e+00, + -5.429516315460000e+00, + -6.404031515120000e-01, + 3.636717796330000e-01, + -5.077350139620000e+00, + 5.723271846770000e+00, + 9.295027256010000e-01, + 1.853811621670000e+00, + -3.400845766070000e+00, + -6.084625244140000e+00, + -5.223540782930000e+00, + -3.456709384920000e+00, + -5.159859657290000e+00, + -3.394544124600000e+00, + -8.315545916560000e-01, + -8.501332998280000e-01, + -4.635302543640000e+00, + 2.456274271010000e+00, + 5.197193622590000e+00, + -2.839548587800000e-01, + 1.406086444850000e+00, + 1.422474622730000e+00, + 1.575864911080000e+00, + 1.560728669170000e+00, + 1.341649055480000e+00, + -1.749094963070000e+00, + 5.950166225430000e+00, + 5.013621330260000e+00, + -6.851255297660001e-01, + -3.168110132220000e+00, + 2.659604651850000e-03, + 3.335769653320000e+00, + -3.556251525880000e+00, + 5.247236728670000e+00, + 3.397791087630000e-01, + 6.591133117680000e+00, + -5.731107592580000e-01, + -6.379760503770000e-01, + -5.211522102360000e+00, + -5.724633216860000e+00, + -2.455120086670000e+00, + -4.767919063570000e+00, + 1.544826507570000e+00, + 4.745709300040000e-01, + 1.784682989120000e+00, + 2.211328983310000e+00, + -8.883619308470000e-01, + 6.092101573940000e+00, + -2.095589637760000e+00, + 5.479654312130000e+00, + -3.402875661850000e+00, + 5.473123788830000e-01, + 3.204586744310000e+00, + -1.132039785390000e+00, + -6.984113693240000e+00, + 8.106734275819999e+00, + -3.399664878850000e+00, + -1.607514023780000e+00, + -8.477508425710000e-01, + -5.601353168490000e+00, + 5.675373077390000e-01, + -2.067026376720000e+00, + 2.058893442150000e+00, + 6.176933765410000e+00, + -1.423015117650000e+00, + 1.085945010190000e+00, + 5.279270648960000e+00, + 6.581389904020000e+00, + -1.823120594020000e+00, + -3.396932601930000e+00, + 4.703125000000000e+00, + 6.896818429230001e-02, + 7.063306331630000e+00, + 5.013088583949999e-01, + 1.878995656970000e+00, + -1.780204653740000e+00, + 6.092301368710000e+00, + 1.049365162850000e+00, + 9.933878779410000e-01, + -6.482912063600000e+00, + -4.482109069820000e+00, + -1.598340272900000e+00, + 1.976375699040000e+00, + -5.881905555730000e+00, + 5.472072601320000e+00, + 2.604746818540000e-01, + 1.904650926590000e+00, + -4.403053760530000e+00, + -6.380928993230000e+00, + -4.771967411040000e+00, + -2.970947027210000e+00, + -4.639970302580000e+00, + -3.726804018020000e+00, + -1.871392846110000e+00, + -6.613138318060000e-01, + -4.283400535580000e+00, + 2.368994474410000e+00, + 5.266903400420000e+00, + -4.074025154110000e-01, + -3.904302120210000e-01, + -1.478161454200000e+00, + -3.815822899340000e-01, + -4.647259116170000e-01, + -3.727681636810000e-01, + -2.762758731840000e+00, + -2.604911625390000e-01, + 4.804399013520000e-01, + 3.245331287380000e+00, + 3.461221754550000e-01, + 4.525892436500000e-01, + -7.376268506050000e-01, + -1.641880035400000e+00, + -2.651743888850000e-01, + 2.600368499760000e+00, + 6.953179836270000e-01, + -2.315782755610000e-02, + -1.411484718320000e+00, + 9.048815369610000e-01, + -2.985664129260000e+00, + -1.006518363950000e+00, + 3.477350234990000e+00, + -2.743616700170000e-01, + -2.284103333950000e-01, + -4.325970113280000e-01, + -7.155537009239999e-01, + -1.512738227840000e+00, + -1.127118587490000e+00, + 2.488464593890000e+00, + -3.833047747610000e-01, + -2.225903272630000e-01, + 1.423627257350000e+00, + -1.490215063100000e+00, + -3.968665599820000e+00, + -2.317582607270000e+00, + -8.541092872620000e-01, + 6.942895054820000e-01, + -7.208673357960000e-01, + 3.456679582600000e+00, + 2.957828521730000e+00, + 1.568579554560000e+00, + 1.950670838360000e+00, + -1.683536171910000e+00, + 2.226862430570000e+00, + -2.091753959660000e+00, + 5.118462562560000e+00, + -2.511017210780000e-02, + -1.102058053020000e+00, + -9.817546606060000e-01, + -1.958815336230000e+00, + -3.620558977130000e-01, + 7.082968950270000e-01, + 1.169144630430000e+00, + 6.627494692800000e-01, + -9.969531744720000e-02, + -1.486873507500000e+00, + -1.241591095920000e+00, + -5.614133477210000e-01, + -1.858582049610000e-01, + 8.191912174220000e-01, + -8.594989180560000e-01, + 9.275048375129999e-01, + -1.107880353930000e+00, + -4.432394027710000e+00, + -1.686041593550000e+00, + 3.405663967130000e-01, + -7.904819250110000e-01, + 1.206740856170000e+00, + -3.393627882000000e+00, + 6.556219458580000e-01, + -2.996806144710000e+00, + 5.437584400180000e+00, + 4.101288795470000e+00, + -1.600799411540000e-01, + 2.399962425230000e+00, + 9.331981539730000e-01, + 3.108322024350000e-01, + -8.788242936130000e-01, + -1.251007795330000e+00, + -3.103440999980000e-01, + -2.660590112210000e-01, + -3.112678527830000e-01, + -4.158692955970000e-01, + -3.545658588410000e-01, + -1.844192981720000e+00, + -1.341080665590000e+00, + 1.960043162110000e-01, + 2.675454854970000e+00, + -8.934127092360000e-01, + 8.910639882090000e-01, + -3.472022116180000e-01, + -2.028592586520000e+00, + -3.585116565230000e-01, + 2.964287519450000e+00, + 6.181808710100000e-01, + 8.519485592840000e-03, + -1.146436095240000e+00, + 1.121769666670000e+00, + -3.125459194180000e+00, + -7.330352067950000e-01, + 3.520277500150000e+00, + -8.071590662000000e-01, + -5.231260061260000e-01, + 5.597481131549999e-01, + -3.956578075890000e-01, + -1.603555202480000e+00, + -8.684641122820000e-01, + 1.887894153590000e+00, + -4.648182690140000e-01, + 5.064725503330000e-02, + 3.609242439270000e-01, + -9.541300535200000e-01, + -3.415703773500000e+00, + -2.054007291790000e+00, + 2.412492632870000e-01, + 4.471715390680000e-01, + -3.585604131220000e-01, + 4.929130554200000e+00, + 3.756878852840000e+00, + 1.953891873360000e+00, + 6.320338249210000e-01, + -2.712565183640000e+00, + 1.905604720120000e+00, + -1.047090768810000e+00, + 5.224563121800000e+00, + 7.156072855000000e-01, + -3.922566473480000e-01, + -2.078457593920000e+00, + -1.469139814380000e+00, + 1.072016239170000e+00, + -4.533412754540000e-01, + 2.467470169070000e+00, + 8.477003574370000e-01, + -5.660771727560000e-01, + -1.177409887310000e+00, + -1.659364104270000e+00, + -1.022097244860000e-01, + -7.912469506260000e-01, + 1.490755081180000e+00, + -7.655878663060000e-01, + -2.397636324170000e-01, + -2.756397426130000e-01, + -3.879103660580000e+00, + -1.812825322150000e+00, + -1.956969052550000e-01, + -1.102673932910000e-01, + -7.899283170700000e-01, + -4.234644889830000e+00, + 2.432646036150000e+00, + -2.937964200970000e+00, + 4.631657600400000e+00, + 3.710061073300000e+00, + -1.141614317890000e+00, + 1.397305250170000e+00, + 6.631388068200000e-01, + -6.837157607080000e-01, + -1.502327919010000e+00, + -2.026203632350000e+00, + 6.060826405880000e-02, + 3.272395208480000e-02, + 1.024909913540000e-01, + -1.469849050050000e-01, + 1.914271712300000e-02, + -7.120926976200000e-01, + -5.553910732270000e+00, + 6.422966718670000e-01, + 6.861053466800000e+00, + -3.977796792980000e+00, + 3.031137228010000e+00, + -3.100907564160000e+00, + -2.231593608860000e+00, + -3.787534713750000e+00, + 4.431455612180000e+00, + -9.133215546610000e-01, + 7.279269218440000e+00, + 4.934782981870000e+00, + -5.946357250210000e+00, + -1.915518879890000e+00, + 9.400600433350000e+00, + -7.066970825200000e+00, + 7.829341292380000e-01, + -6.360668689010000e-02, + 4.585439562800000e-01, + 6.994621157649999e-01, + -5.861063003540000e-01, + -6.143162727360000e+00, + 7.958986759190000e+00, + 8.014129400250000e-01, + -3.759363174440000e+00, + 3.731106758120000e+00, + -3.520711660390000e+00, + 4.368205070500000e+00, + -9.460028409960000e-01, + -1.992127895360000e+00, + -3.874709844590000e+00, + 1.196191310880000e+01, + 7.352754116060000e+00, + -8.344325065610001e+00, + 6.758765697480000e+00, + -3.823954820630000e+00, + -4.175832748410000e+00, + 1.536789774890000e+00, + -3.082382380960000e-01, + 4.567930221560000e+00, + 1.162014245990000e+00, + -2.191834926610000e+00, + 4.874652624130000e-01, + -1.805300474170000e+00, + 6.828795373440000e-02, + 4.175281524660000e+00, + -2.182788848880000e+00, + 4.265267372130000e+00, + -4.583868384360000e-01, + 5.540410518650000e+00, + -6.814218521120000e+00, + -9.746579825880000e-02, + 3.821842372420000e-01, + -5.137977600100000e+00, + -6.906556129460000e+00, + 8.477687835690000e+00, + 2.754513025280000e-01, + -1.336780309680000e+00, + -5.240236282350000e+00, + 2.952385902400000e+00, + -2.294881343840000e+00, + 1.028540992740000e+01, + -3.594527482990000e+00, + -6.527222633360000e+00, + 9.420384407040000e+00, + -6.222111225130000e+00, + -7.688448429110000e+00, + -7.260799407960000e-01, + 6.924083709720000e+00, + -3.448240518570000e+00, + -1.506847023960000e+00, + -6.075022697450000e+00, + 6.053920269010000e+00, + 1.886925548320000e-01, + -1.230873912570000e-01, + 5.911490917210001e-01, + 5.431094765659999e-01, + 1.783388480540000e-02, + -6.594883799550000e-01, + -5.847690582280000e+00, + 8.178129792210000e-01, + 7.200880527500000e+00, + -4.089210510250000e+00, + 2.773518085480000e+00, + -3.132936954500000e+00, + -2.399321794510000e+00, + -3.253076553340000e+00, + 4.637832164760000e+00, + -1.619809269910000e+00, + 7.028861045840000e+00, + 5.205588340760000e+00, + -5.860706806180000e+00, + -2.175627470020000e+00, + 9.769851684570000e+00, + -7.190855026250000e+00, + -1.334623098370000e+00, + -9.823325276370000e-02, + 1.883614063260000e-01, + 4.713439196350000e-02, + -1.544235229490000e+00, + -5.729411125180000e+00, + 6.429188728330000e+00, + 1.465751409530000e+00, + -5.161715507510000e+00, + 3.756124973300000e+00, + -3.020568370820000e+00, + 5.714008331300000e+00, + -1.391739249230000e+00, + -1.134408831600000e+00, + -2.948649644850000e+00, + 1.071167469020000e+01, + 8.106884002690000e+00, + -8.391484260560000e+00, + 7.375967502590000e+00, + -3.379764795300000e+00, + -4.507249832150000e+00, + 1.793472409250000e+00, + -1.444428414110000e-01, + 4.265125751500000e+00, + -9.112249314779999e-02, + -2.701565742490000e+00, + -6.292657852170001e-01, + -2.220561265950000e+00, + 1.825263381000000e+00, + 3.588721752170000e+00, + -2.192751884460000e+00, + 3.859338283540000e+00, + 6.715880334380001e-02, + 5.619877338410000e+00, + -5.170790195470000e+00, + 4.216344282030000e-02, + -7.499149441720000e-02, + -5.425642013550000e+00, + -7.697252750400000e+00, + 8.463335990910000e+00, + 1.783099621530000e-01, + -9.056990146640000e-01, + -6.378786563870000e+00, + 1.797796726230000e+00, + -2.445507287980000e+00, + 1.077663898470000e+01, + -5.168112754820000e+00, + -6.740469932560000e+00, + 9.427103042600001e+00, + -6.216006278990000e+00, + -8.309436798100000e+00, + 8.666002750400000e-01, + 6.373104572300000e+00, + -3.311090946200000e+00, + -3.909465074540000e+00, + -5.780241489410000e+00, + 6.559665203090000e+00, + 1.392510294910000e+00, + 1.279933094980000e+00, + 8.173420429229999e-01, + 1.671842336650000e+00, + 1.265313267710000e+00, + -1.384808421130000e+00, + 6.011392116550000e+00, + 5.026929378510000e+00, + -6.455271840100000e-01, + -3.166260242460000e+00, + 6.765602827070000e-01, + 2.639449119570000e+00, + -3.290688991550000e+00, + 5.059756278990000e+00, + 6.594085693360000e-02, + 6.697804927830000e+00, + -1.482773423190000e+00, + -1.086206793790000e+00, + -5.254861831670000e+00, + -5.774858951570000e+00, + -2.757674694060000e+00, + -4.661584854130000e+00, + 7.048385143280000e-01, + 2.038823604580000e+00, + 1.281653761860000e+00, + 1.469012379650000e+00, + -2.451602220540000e+00, + 6.247774600980000e+00, + -9.173884391779999e-01, + 5.036789417270000e+00, + -2.844650745390000e+00, + -4.128880798820000e-01, + 2.212900638580000e+00, + -1.679105281830000e+00, + -7.101876258850000e+00, + 7.995004177090000e+00, + -3.760644674300000e+00, + -1.921573877330000e+00, + -2.540663480760000e-01, + -5.387704372410000e+00, + 1.647998541590000e-01, + -1.539508938790000e+00, + 2.120159387590000e+00, + 4.667543888090000e+00, + -1.309342503550000e+00, + 8.884247541430000e-01, + 5.838141918180000e+00, + 5.751397609710000e+00, + -1.602449655530000e+00, + -2.640958070750000e+00, + 4.904173374180000e+00, + -9.906636551020000e-03, + 7.722110271450000e+00, + 9.181814789770000e-01, + 1.421769976620000e+00, + -8.275949358940000e-01, + 5.862254142760000e+00, + 1.530916094780000e+00, + 1.468547701840000e+00, + -7.156751632690000e+00, + -4.067660331730000e+00, + -2.480769872670000e+00, + 1.270589470860000e+00, + -5.301049232480000e+00, + 8.219779968259999e+00, + 8.301555514340000e-01, + 2.262852430340000e+00, + -4.594686985020000e+00, + -6.279721736910000e+00, + -5.616710662840000e+00, + -2.855169773100000e+00, + -5.155209064480000e+00, + -3.161202430730000e+00, + -1.492865800860000e+00, + -9.239979386329999e-01, + -2.971504926680000e+00, + 2.168010711670000e+00, + 5.009612560270000e+00, + -4.063327312470000e-01, + 1.180200695990000e+00, + 1.604284763340000e+00, + 1.098333239560000e+00, + 1.221688151360000e+00, + 1.284354329110000e+00, + -1.581012964250000e+00, + 5.999750137330000e+00, + 4.847056865690000e+00, + -1.099153995510000e+00, + -3.416485786440000e+00, + -3.922701776030000e-01, + 2.449798583980000e+00, + -3.653024911880000e+00, + 4.967100620270000e+00, + 3.280410170560000e-01, + 6.437895774840000e+00, + -1.521801590920000e+00, + -5.663052797320000e-01, + -5.336901664730000e+00, + -5.697446823120000e+00, + -2.529137134550000e+00, + -4.415018558500000e+00, + 1.247072219850000e+00, + 1.448845267300000e+00, + 8.435243368150001e-01, + 1.270014405250000e+00, + -1.301336646080000e+00, + 5.817716121670000e+00, + -3.264520764350000e-01, + 5.497165203090000e+00, + -2.917796850200000e+00, + 8.521810173990000e-01, + 3.000728130340000e+00, + -9.194832444190000e-01, + -6.845417499540000e+00, + 8.228790283200000e+00, + -3.792174816130000e+00, + -1.572780966760000e+00, + -1.032044649120000e+00, + -5.724019527440000e+00, + -1.746703982350000e-01, + -2.703747987750000e+00, + 1.581689000130000e+00, + 4.613445281980000e+00, + -1.202526092530000e+00, + 1.076052039860000e-01, + 6.580540657040000e+00, + 6.499862194060000e+00, + -2.078076362610000e+00, + -3.263817787170000e+00, + 4.654229164120000e+00, + 3.557578325270000e-01, + 7.740759849550000e+00, + -5.946243405340000e-01, + 1.396338462830000e+00, + -1.607068896290000e+00, + 6.343922138210000e+00, + 1.452331423760000e+00, + 1.363659143450000e+00, + -6.629313945770000e+00, + -4.460838794710000e+00, + -1.924984931950000e+00, + 7.441387772560000e-01, + -5.850684642790000e+00, + 6.223188400270000e+00, + 1.655126452450000e+00, + 1.750437021260000e+00, + -2.995655536650000e+00, + -6.661468029020000e+00, + -5.819963455200000e+00, + -3.203498363490000e+00, + -3.648283243180000e+00, + -2.816501617430000e+00, + -1.795280337330000e+00, + -8.911762833600000e-01, + -3.007872343060000e+00, + 2.019204854970000e+00, + 5.673367023470000e+00, + 9.702013731000000e-01, + -2.714577615260000e-01, + -2.703660726550000e-01, + -4.960419237610000e-02, + -4.687005579470000e-01, + -4.352269470690000e-01, + -2.235504388810000e+00, + -1.413151144980000e+00, + 5.281351804730000e-01, + 2.481227397920000e+00, + 2.820805907250000e-01, + 4.106311202050000e-01, + -9.338897466660000e-01, + -1.245660066600000e+00, + -5.113682150840000e-01, + 2.934521198270000e+00, + 5.731450319290000e-01, + -2.486397139730000e-02, + -1.471948981290000e+00, + 1.145024895670000e+00, + -3.116825819020000e+00, + -8.981567025179999e-01, + 3.735405921940000e+00, + 5.469250306490000e-02, + -4.070970714090000e-01, + -9.811899065970000e-01, + -5.298495888710000e-01, + -2.372310876850000e+00, + -7.137249708180000e-01, + 2.079413652420000e+00, + -6.623300164940001e-02, + -1.154747724530000e+00, + 1.148620128630000e+00, + -2.351275980470000e-01, + -3.262237548830000e+00, + -9.803245067600000e-01, + -5.286368727680000e-01, + 1.829884648320000e-01, + -1.611747503280000e+00, + 3.196730136870000e+00, + 3.284033536910000e+00, + 1.567961096760000e+00, + 5.988841056820000e-01, + -1.292678117750000e+00, + 7.559095621110000e-01, + -1.215718626980000e+00, + 4.022555351260000e+00, + 2.959075570110000e-01, + 1.102153182030000e+00, + -1.786041736600000e+00, + -7.109161019330000e-01, + 3.194366991520000e-01, + 2.691493630410000e-01, + 2.778052806850000e+00, + 1.059620022770000e+00, + -4.208448529240000e-01, + -4.890823960300000e-01, + -1.063869833950000e+00, + -2.369883358480000e-01, + 1.165951862930000e-01, + 2.584308981900000e-01, + -1.132626533510000e+00, + -4.769985973830000e-01, + -3.486186563970000e-01, + -4.754559040070000e+00, + -1.932096004490000e+00, + 3.518087267880000e-01, + -8.203122019770000e-02, + -1.229778081180000e-01, + -4.073698043820000e+00, + 1.677122354510000e+00, + -2.676141262050000e+00, + 5.763077259060000e+00, + 2.514795064930000e+00, + -1.751995921130000e+00, + 3.483488559720000e+00, + 8.926920890810000e-01, + 3.302223086360000e-01, + -1.898307323460000e+00, + -1.606129884720000e+00, + -2.693622410300000e-01, + 2.212780863050000e-01, + -1.560549587010000e-01, + -7.099147439000000e-01, + -2.750743329520000e-01, + -1.878320455550000e+00, + -1.243152022360000e+00, + 4.362654984000000e-01, + 2.389441490170000e+00, + 1.279496252540000e-01, + -2.009854167700000e-01, + -7.331976890560000e-01, + -1.297421336170000e+00, + -6.621586680410000e-01, + 2.747166872020000e+00, + 6.588007211690000e-01, + -1.741449981930000e-01, + -1.300552487370000e+00, + 1.017453432080000e+00, + -3.053082704540000e+00, + -8.855582475660000e-01, + 3.562078714370000e+00, + 5.473308563230000e-01, + -1.114895224570000e+00, + 6.478210538630000e-02, + -5.886747837070000e-01, + -1.971909403800000e+00, + -2.213011533020000e-01, + 9.794107675550000e-01, + 8.977570384740000e-02, + -2.708318531510000e-01, + 5.651093125340000e-01, + -1.387866616250000e+00, + -2.949173927310000e+00, + -1.890601515770000e+00, + 1.952194795010000e-02, + 7.350504994390000e-01, + -7.109218239780000e-01, + 4.303381919860000e+00, + 4.285126686100000e+00, + 2.162940979000000e+00, + 5.842548608780000e-01, + -2.645501852040000e+00, + 1.281530737880000e+00, + -2.008031845090000e+00, + 3.086265563960000e+00, + 9.487254619600000e-01, + -9.732442498210000e-01, + -1.304979681970000e+00, + -2.372826337810000e+00, + 2.587199807170000e-01, + 5.024837851520000e-01, + 1.577574729920000e+00, + 1.071398258210000e+00, + -4.009734690190000e-01, + -1.059707760810000e+00, + -1.178785324100000e+00, + -2.613793909550000e-01, + -4.164777696130000e-01, + 1.842229485510000e+00, + 3.134545683860000e-02, + -1.458719968800000e-01, + -7.737399935720000e-01, + -5.119331836700000e+00, + -1.599436402320000e+00, + 1.062932252880000e+00, + -5.749276280400000e-01, + 8.624321818350000e-01, + -3.110099554060000e+00, + -2.167787589130000e-02, + -2.872893810270000e+00, + 4.448023319240000e+00, + 3.336496829990000e+00, + -2.793459653850000e+00, + 3.787995815280000e+00, + -2.637368440630000e-01, + -6.177030801770000e-01, + -1.610340356830000e+00, + -2.064411878590000e+00, + -3.940259516240000e-01, + 1.923424005510000e-01, + 6.807932853699999e-01, + 5.752905458210000e-02, + 7.229667156930000e-02, + -6.451888084410000e-01, + -5.505137920380000e+00, + 8.371709585190000e-01, + 6.857405185700000e+00, + -3.970382452010000e+00, + 3.265946149830000e+00, + -3.324442386630000e+00, + -2.276758670810000e+00, + -3.529708147050000e+00, + 5.176127433780000e+00, + -1.213950872420000e+00, + 7.184986591340000e+00, + 5.006840705870000e+00, + -5.965906620030000e+00, + -1.965403079990000e+00, + 9.839129447940000e+00, + -7.411233901980000e+00, + -1.780750155450000e-01, + 2.777847275140000e-02, + 5.663994550700000e-01, + 6.185176372530000e-01, + -1.096483230590000e+00, + -5.917398452760000e+00, + 7.072552680970000e+00, + 1.229977250100000e+00, + -3.540173292160000e+00, + 3.975396156310000e+00, + -2.980207443240000e+00, + 5.058124542240000e+00, + -9.889144301410000e-01, + -1.936414361000000e+00, + -5.019830703740000e+00, + 1.184432983400000e+01, + 6.989420413970000e+00, + -8.347649574280000e+00, + 7.479146003720000e+00, + -3.446379661560000e+00, + -4.749742984770000e+00, + 1.114910602570000e+00, + -5.556788444520000e-01, + 4.094466686250000e+00, + 5.195555686950000e-01, + -1.869427680970000e+00, + -1.029961466790000e+00, + -2.171880006790000e+00, + 8.827518820760000e-01, + 3.772484064100000e+00, + -1.190852284430000e+00, + 4.255660533910000e+00, + -1.536396890880000e-01, + 5.271853446960000e+00, + -6.464974880220000e+00, + 1.611885428430000e-01, + 1.351483941080000e+00, + -5.348907947540000e+00, + -8.508383750920000e+00, + 8.397871017460000e+00, + -9.557417780160000e-02, + -1.130403757100000e+00, + -6.143527507780000e+00, + 4.315105915070000e+00, + -1.551401734350000e+00, + 9.388560295100000e+00, + -2.036652565000000e+00, + -7.015454769130000e+00, + 1.037665176390000e+01, + -6.239624023440000e+00, + -7.797026634220000e+00, + -7.031621932980000e-01, + 6.243638992310000e+00, + -3.872461795810000e+00, + -1.917373776440000e+00, + -5.008928298950000e+00, + 5.627675056460000e+00, + 1.750463396310000e-01, + 8.599488064650000e-03, + 4.024580866100000e-02, + -7.802852243190000e-02, + 3.651561215520000e-02, + -3.390349149700000e-01, + -6.153196811680000e+00, + 5.660611987110000e-01, + 7.016509056090000e+00, + -3.848891258240000e+00, + 3.501291513440000e+00, + -2.886855840680000e+00, + -2.199414014820000e+00, + -3.793408870700000e+00, + 4.237160205840000e+00, + -1.724332213400000e+00, + 7.937371730800000e+00, + 5.284789085390000e+00, + -6.088626384740000e+00, + -2.068099975590000e+00, + 9.797020912170000e+00, + -6.997072219850000e+00, + -5.117956995960000e-01, + 7.880618572240000e-01, + 4.806663692000000e-01, + 9.335918724540000e-02, + -5.639104247090000e-01, + -5.492298603060000e+00, + 6.515187740330000e+00, + 1.353216171260000e+00, + -3.773204088210000e+00, + 3.922501802440000e+00, + -3.300839900970000e+00, + 3.334998846050000e+00, + -1.223398804660000e+00, + -1.938567996030000e+00, + -4.305202007290000e+00, + 1.131769275670000e+01, + 7.904690265660000e+00, + -8.642032623290000e+00, + 5.860167980190000e+00, + -3.921418905260000e+00, + -3.623101472850000e+00, + 1.320652842520000e+00, + -1.326558828350000e+00, + 2.697447538380000e+00, + 1.772753834720000e+00, + -1.524170756340000e+00, + -6.386050581930000e-01, + -1.914325118060000e+00, + 1.382253050800000e+00, + 3.439317941670000e+00, + -1.614802718160000e+00, + 4.415163040160000e+00, + -2.747318446640000e-01, + 6.358121395110000e+00, + -5.788335800170000e+00, + 2.549701631070000e-01, + -1.056707426910000e-01, + -3.945819854740000e+00, + -7.002286434170000e+00, + 7.198743343350000e+00, + 2.712564170360000e-01, + -3.052627295260000e-02, + -5.163763523100000e+00, + 2.641315937040000e+00, + -3.200387239460000e+00, + 9.664872169490000e+00, + -4.686720848080000e+00, + -6.070464134220000e+00, + 8.469218254090000e+00, + -6.369728088380000e+00, + -8.131845474240000e+00, + -6.930101513860000e-01, + 5.285009860990000e+00, + -3.009434938430000e+00, + -3.225616931920000e+00, + -5.648102760310000e+00, + 5.464396953580000e+00, + 1.029440522190000e+00, + 1.381159305570000e+00, + 6.149499416350001e-01, + 1.229331731800000e+00, + 1.587551593780000e+00, + -1.435522079470000e+00, + 6.022630691530000e+00, + 4.924090862270000e+00, + -7.413509488110001e-01, + -3.302104711530000e+00, + 2.329499721530000e-01, + 2.484084129330000e+00, + -3.644199371340000e+00, + 4.829766273500000e+00, + 7.295345664020000e-01, + 6.827095508580000e+00, + -1.097758531570000e+00, + -5.466344952580000e-01, + -5.157796859740000e+00, + -5.654242038730000e+00, + -2.641709566120000e+00, + -4.733977317810000e+00, + 1.809069871900000e+00, + 1.374199032780000e+00, + 1.469414949420000e+00, + 1.729049682620000e+00, + -1.459123373030000e+00, + 5.591454982760000e+00, + -1.255691170690000e+00, + 5.996449947360000e+00, + -2.885916948320000e+00, + -2.018719017510000e-01, + 2.823757171630000e+00, + -5.978264808650000e-01, + -7.432105064390000e+00, + 7.282795429230000e+00, + -3.736407041550000e+00, + -1.532002091410000e+00, + -1.712011933330000e+00, + -5.576289176940000e+00, + -4.430989623070000e-01, + -3.301605224610000e+00, + 1.340552330020000e+00, + 5.052564620970000e+00, + -1.760131597520000e+00, + 1.030282855030000e+00, + 5.554996490480000e+00, + 5.843440055850000e+00, + -9.348393082620000e-01, + -4.460817813870000e+00, + 4.628040313720000e+00, + -4.142677783970000e-01, + 7.094771862030000e+00, + 8.273610472680000e-01, + 1.622088074680000e+00, + -1.341060757640000e+00, + 6.277526378630000e+00, + 2.501030921940000e+00, + 2.455361366270000e+00, + -6.202094078060000e+00, + -5.318658351900000e+00, + -1.909168124200000e+00, + 1.397561430930000e+00, + -5.537761211400000e+00, + 5.563234806060000e+00, + 1.713535934690000e-01, + 3.598345518110000e+00, + -2.914607763290000e+00, + -5.550083160400000e+00, + -4.693820953370000e+00, + -3.355368137360000e+00, + -4.712728023530000e+00, + -2.781293392180000e+00, + -1.788591861720000e+00, + -1.085573434830000e-01, + -3.974654197690000e+00, + 1.962218880650000e+00, + 5.118114471440000e+00, + -3.633586317300000e-02, + 1.188948869710000e+00, + 1.411177515980000e+00, + 1.524230957030000e+00, + 1.458088397980000e+00, + 1.227247238160000e+00, + -1.452681422230000e+00, + 6.125731468200000e+00, + 5.120979785920000e+00, + -6.874203085900000e-01, + -3.301291465760000e+00, + 1.785398870710000e-01, + 2.895219087600000e+00, + -3.678428173070000e+00, + 4.961435794830000e+00, + 4.776027798650000e-01, + 6.101323127750000e+00, + -1.313326597210000e+00, + -9.143242836000000e-01, + -5.368651390080000e+00, + -5.881006717680000e+00, + -2.547814846040000e+00, + -4.566198349000000e+00, + 1.623838782310000e+00, + 7.306147813800000e-01, + 1.570565700530000e+00, + 1.075038313870000e+00, + -1.827623009680000e+00, + 6.272878170010000e+00, + -9.549939632420000e-01, + 5.750169277190000e+00, + -3.412567853930000e+00, + 1.410338282590000e+00, + 2.767241001130000e+00, + -1.474644184110000e+00, + -7.087235450740000e+00, + 6.962443828580000e+00, + -3.784367322920000e+00, + -1.792642354970000e+00, + -9.346138834950000e-01, + -5.120364665990000e+00, + 4.139116704460000e-01, + -2.255501747130000e+00, + 8.482155203820000e-01, + 4.765931606290000e+00, + -1.563261389730000e+00, + 1.442377328870000e+00, + 4.889792442320000e+00, + 6.679346561430000e+00, + -1.578673005100000e+00, + -4.076801776890000e+00, + 3.857362985610000e+00, + 2.643199078740000e-02, + 6.457449436190000e+00, + 1.407939076420000e+00, + 7.541916370390001e-01, + -1.543679952620000e+00, + 5.942211151120000e+00, + 1.854659914970000e+00, + 1.566641211510000e+00, + -7.790222644810000e+00, + -5.871698379520000e+00, + -1.426875352860000e+00, + 1.429227828980000e+00, + -4.422214031220000e+00, + 5.999430656430000e+00, + 1.090311169620000e+00, + 1.708553075790000e+00, + -2.969742059710000e+00, + -6.362353801730000e+00, + -5.490836143490000e+00, + -2.896345376970000e+00, + -4.720673561100000e+00, + -3.295950412750000e+00, + -1.584345817570000e+00, + -3.493455350400000e-01, + -3.365756034850000e+00, + 2.487735509870000e+00, + 4.535423755650000e+00, + -2.131730467080000e-01, + -2.221263945100000e-01, + -3.381741642950000e-01, + -4.205537736420000e-01, + -3.112748861310000e-01, + -4.487578272820000e-01, + -1.766543149950000e+00, + -1.079105019570000e+00, + 3.332467377190000e-01, + 2.559342145920000e+00, + 1.731607019900000e-01, + 4.958671331410000e-01, + -9.090273380280000e-01, + -1.403189182280000e+00, + -8.576403260230000e-01, + 3.161955833440000e+00, + 3.341329693790000e-01, + -3.909903392200000e-02, + -1.148792147640000e+00, + 9.189123511310000e-01, + -3.045179843900000e+00, + -8.641300797460000e-01, + 3.310735225680000e+00, + 3.133326768880000e-01, + -3.415592610840000e-01, + -1.937026500700000e+00, + -2.898640334610000e-01, + -1.728173017500000e+00, + -1.446771621700000e+00, + 1.599314212800000e+00, + 1.315426230430000e-01, + -1.005762696270000e+00, + 1.793147087100000e+00, + -3.812708854680000e-01, + -3.228734254840000e+00, + -2.064818859100000e+00, + -7.377080917360000e-01, + 4.586372971530000e-01, + -1.519116044040000e+00, + 2.586982250210000e+00, + 2.863272190090000e+00, + 2.896121263500000e+00, + 6.320587396620000e-01, + -1.695300936700000e+00, + 6.380425691600000e-01, + -1.709247112270000e+00, + 4.205865859990000e+00, + 5.237862467770000e-01, + 6.281947493550000e-01, + -2.678916931150000e+00, + -2.190083265300000e+00, + 1.402283072470000e+00, + 1.079934477810000e+00, + 2.281784057620000e+00, + 1.083160161970000e+00, + -2.201655656100000e-01, + -1.439074754710000e+00, + -1.966033577920000e+00, + -5.589889287950000e-01, + -7.956658601760001e-01, + 1.018676996230000e+00, + -6.891103088860000e-02, + -5.541957169770000e-02, + -1.396236754950000e-02, + -5.236020088200000e+00, + -1.064753293990000e+00, + 1.266381621360000e+00, + -8.573607206340000e-01, + -3.615790605550000e-02, + -4.098751544950000e+00, + 2.223837375640000e+00, + -3.071949720380000e+00, + 5.731840610500000e+00, + 3.343699932100000e+00, + -1.375594019890000e+00, + 3.252770900730000e+00, + 9.623166918750000e-01, + -3.949777483940000e-01, + -6.990458965300000e-01, + -7.412019371990000e-01, + -7.015321254730000e-01, + -8.420647680760000e-02, + -6.902825832370001e-02, + -3.386269211770000e-01, + -1.966815888880000e-01, + -1.502233862880000e+00, + -1.527316212650000e+00, + 6.233327984810000e-01, + 2.262813568120000e+00, + 3.624882400040000e-01, + 5.444319844250000e-01, + -7.245640158650000e-01, + -1.149894475940000e+00, + -4.561844468120000e-01, + 2.785178422930000e+00, + 6.957846283910000e-01, + 2.956201136110000e-01, + -1.323899269100000e+00, + 1.144369959830000e+00, + -3.411205530170000e+00, + -1.207861661910000e+00, + 3.621668100360000e+00, + -6.916116476060000e-01, + -1.449501216410000e-01, + -3.659860417250000e-02, + -1.364909261470000e-01, + -1.740672230720000e+00, + -8.810549974440000e-01, + 1.677925586700000e+00, + -1.733607053760000e+00, + -3.531457483770000e-01, + 4.065193533900000e-01, + -6.841815710069999e-01, + -2.195520401000000e+00, + -2.463003158570000e+00, + -1.193744689230000e-01, + 1.754742860790000e-01, + -1.532966971400000e+00, + 3.947261333470000e+00, + 2.733483791350000e+00, + 2.401016473770000e+00, + 1.993192881350000e-01, + -2.108439922330000e+00, + 1.533301830290000e+00, + -8.833698630330000e-01, + 4.264760017400000e+00, + 2.790966331960000e-01, + 6.618478298190000e-01, + -2.064934968950000e+00, + -1.600192666050000e+00, + -4.727821946140000e-01, + -6.149076819420000e-01, + 2.582625865940000e+00, + 6.259866952900000e-01, + -6.811906099320000e-01, + -1.000013351440000e+00, + -1.322359204290000e+00, + -8.042988181110000e-01, + -9.763155877590000e-02, + 1.129252791400000e+00, + -8.716609478000000e-01, + 4.578491672870000e-02, + 2.990852296350000e-01, + -4.656221389770000e+00, + -1.425311088560000e+00, + 4.174010157590000e-01, + -3.056249022480000e-01, + 4.676512256260000e-02, + -3.963540077210000e+00, + 1.438510537150000e+00, + -2.793343067170000e+00, + 4.575780391690000e+00, + 3.375368833540000e+00, + -1.804536819460000e+00, + 2.939464569090000e+00, + 7.628073692320000e-01, + -9.029111862180000e-01, + -1.704762578010000e+00, + -1.084818124770000e+00, + 4.610352963210000e-02, + -5.054675340650000e-01, + -1.874185912310000e-02, + -7.552221417430000e-02, + 1.386423558000000e-01, + -7.910016775130000e-01, + -6.051995754240000e+00, + 7.457851171490000e-01, + 7.198196887970000e+00, + -3.990104913710000e+00, + 3.228631258010000e+00, + -3.219752311710000e+00, + -2.056601047520000e+00, + -3.606706619260000e+00, + 4.396640777590000e+00, + -1.637406349180000e+00, + 7.251469612120000e+00, + 4.969578266140000e+00, + -6.140153884890000e+00, + -1.854736804960000e+00, + 9.686509132390000e+00, + -7.164612293240000e+00, + 3.617342412470000e-01, + 6.186889857050000e-02, + -3.305402994160000e-01, + 4.593900740150000e-01, + -1.886817336080000e+00, + -5.568776130680000e+00, + 6.951261520390000e+00, + 1.637575507160000e+00, + -3.652467250820000e+00, + 3.591542720790000e+00, + -2.122911453250000e+00, + 4.827262401580000e+00, + -1.903377532960000e+00, + -1.131788611410000e+00, + -3.984437942500000e+00, + 1.049650287630000e+01, + 7.951185703280000e+00, + -9.164396286010000e+00, + 5.442298889160000e+00, + -4.446039199830000e+00, + -4.541454315190000e+00, + 1.318120121960000e+00, + -5.753785967830000e-01, + 3.281200647350000e+00, + 1.409237504010000e+00, + -3.508279323580000e+00, + -1.873861849310000e-01, + -2.026192188260000e+00, + -8.744445443149999e-02, + 4.253970623020000e+00, + -1.844077587130000e+00, + 3.410501003270000e+00, + 1.126471832390000e-01, + 5.085845947270000e+00, + -5.739006996150000e+00, + -1.082550585270000e-01, + -4.569627344610000e-01, + -4.423403739930000e+00, + -8.384834289550000e+00, + 8.073322296140001e+00, + 6.191240549090000e-01, + -4.229232072830000e-01, + -5.386752605440000e+00, + 2.870229959490000e+00, + -1.057280421260000e+00, + 9.727202415470000e+00, + -3.867179155350000e+00, + -6.487854003910000e+00, + 9.720554351810000e+00, + -6.284617424010000e+00, + -8.413043022160000e+00, + -1.624709367750000e+00, + 6.725787162780000e+00, + -3.581881999970000e+00, + -3.272528648380000e+00, + -5.870039463040000e+00, + 6.333099365230000e+00, + -5.715276598930000e-01, + 7.309168577190001e-02, + 3.725601732730000e-02, + 2.073827385900000e-02, + -1.431590616700000e-01, + -6.630945205690000e-01, + -5.741971969600000e+00, + 9.350343942640000e-01, + 5.688131332400000e+00, + -3.900185108180000e+00, + 3.285409450530000e+00, + -3.023720502850000e+00, + -2.818083763120000e+00, + -3.571479558940000e+00, + 4.454466819760000e+00, + -1.449785113330000e+00, + 7.527263164520000e+00, + 5.355547428130000e+00, + -6.200745105740000e+00, + -2.114825010300000e+00, + 9.475584030149999e+00, + -7.171611309050000e+00, + 1.818085312840000e-01, + -3.358833789830000e-01, + 5.497969985009999e-01, + 4.972508251670000e-01, + -8.452052474020000e-01, + -5.791939735410000e+00, + 6.820634365080000e+00, + 1.328961372380000e+00, + -3.945037841800000e+00, + 3.997452020650000e+00, + -2.875681400300000e+00, + 5.743279457090000e+00, + -2.039808750150000e+00, + -1.794719100000000e+00, + -5.449296474460000e+00, + 1.124060726170000e+01, + 8.059100151060001e+00, + -8.712905883790000e+00, + 6.646608829500000e+00, + -4.634147644040000e+00, + -4.247845172880000e+00, + 1.805220246310000e+00, + -7.812972664830000e-01, + 4.419426918030000e+00, + 1.469979047780000e+00, + -2.490895271300000e+00, + -6.378221511840000e-01, + -2.091341972350000e+00, + 7.864997982980000e-01, + 4.172548294070000e+00, + -2.591369867320000e+00, + 3.316120147710000e+00, + -4.099647700790000e-02, + 5.801211833950000e+00, + -6.395004749300000e+00, + 3.192107677460000e-01, + -2.563244402410000e-01, + -4.193258285520000e+00, + -6.714478492740000e+00, + 6.909416675570000e+00, + 2.552081644540000e-01, + -8.956207633020000e-01, + -4.796041488650000e+00, + 1.372466564180000e+00, + -3.041527986530000e+00, + 9.252977371220000e+00, + -3.244103193280000e+00, + -5.697590351100000e+00, + 9.281729698179999e+00, + -5.829464912410000e+00, + -8.273345947270000e+00, + -7.807826995849999e-02, + 6.994217872620000e+00, + -3.327733993530000e+00, + -2.891886234280000e+00, + -6.307635784150000e+00, + 5.354794502260000e+00, + 1.389936685560000e+00, + 1.576518058780000e+00, + 1.311086416240000e+00, + 1.457865238190000e+00, + 1.363248467450000e+00, + -1.804426074030000e+00, + 5.710266113280000e+00, + 4.951824665070000e+00, + -7.844346165660000e-01, + -3.316419363020000e+00, + 1.877770125870000e-01, + 2.604232549670000e+00, + -3.459187746050000e+00, + 4.999153137210000e+00, + 3.646274805070000e-01, + 6.804009914400000e+00, + -1.371300816540000e+00, + -1.254370927810000e+00, + -5.469665050510000e+00, + -5.791680812840000e+00, + -2.628922939300000e+00, + -4.921260833740000e+00, + 1.502366781230000e+00, + 2.037526130680000e+00, + 1.997137188910000e+00, + 1.577842593190000e+00, + -8.826821446420000e-01, + 5.809214591980000e+00, + -1.081333518030000e+00, + 4.370723724370000e+00, + -2.354579210280000e+00, + 1.979732811450000e-01, + 3.008257150650000e+00, + -6.847972869870000e-01, + -7.151699066160000e+00, + 6.827676773070000e+00, + -4.184933185580000e+00, + -2.181674480440000e+00, + -1.726948171850000e-01, + -6.365262985230000e+00, + -3.232997357850000e-01, + -2.555300951000000e+00, + 2.344965219500000e+00, + 4.669395446780000e+00, + -1.128246903420000e+00, + 1.104867577550000e+00, + 5.672737121580000e+00, + 6.311108112340000e+00, + -2.265619039540000e+00, + -4.228713512420000e+00, + 4.101512432100000e+00, + 4.326668381690000e-01, + 6.830990791320000e+00, + -7.311295270920000e-01, + 1.128840327260000e+00, + -9.872930645940000e-01, + 5.890756607060000e+00, + 2.333553314210000e+00, + 8.922278881070000e-01, + -8.089064598080000e+00, + -4.972119808200000e+00, + -7.621312737460000e-01, + 1.811329483990000e+00, + -6.021007061000000e+00, + 5.797816276550000e+00, + 8.491111397740000e-01, + 2.183528900150000e+00, + -4.051976680760000e+00, + -6.193796634670000e+00, + -4.975917339320000e+00, + -2.289230346680000e+00, + -4.269670486450000e+00, + -2.940342187880000e+00, + -2.186702251430000e+00, + -1.471185803410000e+00, + -2.866547822950000e+00, + 2.208792448040000e+00, + 6.660680294040000e+00, + -6.707587093110000e-02, + 1.514536261560000e+00, + 1.359341025350000e+00, + 1.363649725910000e+00, + 1.398258805270000e+00, + 1.569140553470000e+00, + -1.659520149230000e+00, + 5.790129661560000e+00, + 4.790260791780000e+00, + -6.328397989270000e-01, + -3.344388008120000e+00, + 5.122461915020000e-02, + 2.416669368740000e+00, + -3.701593637470000e+00, + 5.126596927640000e+00, + 2.191280722620000e-01, + 6.352237701420000e+00, + -1.317648410800000e+00, + -7.819350957870000e-01, + -5.338155746460000e+00, + -6.159255027770000e+00, + -2.730652570720000e+00, + -4.552112579350000e+00, + 1.544690251350000e+00, + 1.973026990890000e+00, + 1.597814083100000e+00, + 1.151942133900000e+00, + -1.684061050420000e+00, + 6.371806621550000e+00, + -5.921514630319999e-01, + 5.588831424710000e+00, + -3.468899726870000e+00, + 6.423108577730000e-01, + 2.440740823750000e+00, + -1.593697547910000e+00, + -7.882835388180000e+00, + 7.953803539280000e+00, + -3.715746879580000e+00, + -1.521597146990000e+00, + -1.080583810810000e+00, + -5.710282802580000e+00, + -6.973876357080000e-01, + -1.036297917370000e+00, + 2.356401920320000e+00, + 3.917601823810000e+00, + -9.002030491830000e-01, + 3.561096489430000e-01, + 4.492552757260000e+00, + 5.790382385250000e+00, + -2.405577898030000e+00, + -3.377544403080000e+00, + 4.997988224030000e+00, + -1.737935841080000e-01, + 6.173888206480000e+00, + 3.934206068520000e-01, + 1.330498218540000e+00, + -1.231417894360000e+00, + 5.826666355130000e+00, + 8.615555167200000e-01, + 1.087761759760000e+00, + -6.173688411710000e+00, + -5.784065246580000e+00, + -1.219332933430000e+00, + 2.180345773700000e+00, + -4.749404907230000e+00, + 5.252013683320000e+00, + -2.822477817540000e-01, + 9.563986659050000e-01, + -4.503539562230000e+00, + -6.303260326390000e+00, + -5.176908969880000e+00, + -2.948363065720000e+00, + -5.154296875000000e+00, + -2.359100341800000e+00, + -1.642077088360000e+00, + -2.063667058940000e+00, + -4.496715068820000e+00, + 2.551410436630000e+00, + 5.152559280400000e+00, + 6.635398864750000e-01, + -3.237210512160000e-01, + -6.637957692150001e-01, + -2.114932984110000e-01, + -3.576077222820000e-01, + -5.946050286290000e-01, + -1.636026620860000e+00, + -8.917201161380000e-01, + 3.465391695500000e-01, + 2.489331722260000e+00, + 3.833650350570000e-01, + 6.122368574140000e-01, + -5.303323268890000e-01, + -1.314068078990000e+00, + -7.336145043370000e-01, + 2.888005018230000e+00, + 9.538033008580000e-01, + 1.527353376150000e-01, + -8.027935624120000e-01, + 1.379822015760000e+00, + -3.256711244580000e+00, + -8.873552680020000e-01, + 3.198759794240000e+00, + -4.043510258200000e-01, + -5.646500587460000e-01, + -1.758032478390000e-02, + -7.010454535480000e-01, + -1.594818115230000e+00, + -2.367836475370000e+00, + 1.935522079470000e+00, + -7.215411961080000e-02, + -2.832291424270000e-01, + 1.520563125610000e+00, + -9.142225980760000e-01, + -3.160009622570000e+00, + -3.588939189910000e+00, + -6.143908947710000e-02, + 1.029418468480000e+00, + -8.289744853970000e-01, + 1.985353469850000e+00, + 4.266968250270000e+00, + 2.847541332240000e+00, + 1.982548594470000e+00, + -1.846369862560000e+00, + 1.651263833050000e+00, + -1.604246020320000e+00, + 3.565551996230000e+00, + 1.776994228360000e+00, + 4.156644344330000e-01, + -1.622932672500000e+00, + -1.476397514340000e+00, + 4.356927871700000e-01, + 3.655181229110000e-01, + 2.589877367020000e+00, + 2.463289350270000e-01, + 7.693678736689999e-01, + -1.372566103940000e+00, + -1.197261452670000e+00, + -6.606778502460001e-02, + 3.756437003610000e-01, + 1.337300181390000e+00, + -1.466854810710000e-01, + -7.895818352700000e-01, + 5.105164647100000e-01, + -4.953202724460000e+00, + -1.439083933830000e+00, + 1.864532232280000e-01, + -4.692150056360000e-01, + -1.305407285690000e-01, + -3.665759563450000e+00, + 2.600646734240000e+00, + -3.228686332700000e+00, + 4.516801357270000e+00, + 3.243419647220000e+00, + -3.255648851390000e+00, + 2.560707569120000e+00, + 2.411948889490000e-01, + -1.612539887430000e-01, + -1.344385623930000e+00, + -1.552390575410000e+00, + -2.276390045880000e-01, + -5.959272384640000e-01, + -3.320135474210000e-01, + -1.154042258860000e-01, + -3.674553036690000e-01, + -1.949504852290000e+00, + -1.183243155480000e+00, + 5.704391002660000e-01, + 2.999354124070000e+00, + 4.078497588630000e-01, + 5.154421329500000e-01, + -7.000288367270000e-01, + -1.502701401710000e+00, + -6.787822842600000e-01, + 2.728815793990000e+00, + 6.322817802430000e-01, + 3.805892169480000e-01, + -1.224568724630000e+00, + 1.086060881610000e+00, + -2.904357194900000e+00, + -1.162468671800000e+00, + 3.483506917950000e+00, + 1.986011117700000e-01, + -1.815243065360000e-01, + -2.796465158460000e-01, + -8.741651177410000e-01, + -2.093410968780000e+00, + -7.198923826219999e-01, + 2.521126031880000e+00, + 4.622913897040000e-01, + -5.897016525270000e-01, + 1.484575867650000e-01, + -1.268176555630000e+00, + -3.601274728780000e+00, + -1.800767064090000e+00, + 9.217357039450000e-01, + 9.345502853390000e-01, + -6.224791407590000e-01, + 2.753319025040000e+00, + 4.021163463590000e+00, + 1.864954829220000e+00, + 1.089995861050000e+00, + -1.349870920180000e+00, + 1.656414866450000e+00, + -2.324738025670000e+00, + 4.276632308960000e+00, + 3.110932409760000e-01, + -1.457217037680000e-01, + -1.950919151310000e+00, + -1.346067428590000e+00, + -6.567510962490000e-01, + 7.684348225590000e-01, + 2.214644670490000e+00, + 1.700824856760000e+00, + -3.977332115170000e-01, + 2.788160368800000e-02, + -1.963817834850000e+00, + -4.599301517010000e-01, + -5.754899978640000e-01, + 1.484329462050000e+00, + 1.331492543220000e+00, + -1.082483492790000e-02, + -7.911337614060000e-01, + -4.318037033080000e+00, + -6.500894427300000e-01, + 3.710027337070000e-01, + 7.082600593570000e-01, + 1.505357623100000e-01, + -4.628116607670000e+00, + 1.469237923620000e+00, + -3.057342052460000e+00, + 4.250607490540000e+00, + 3.531041383740000e+00, + -2.956596136090000e+00, + 2.357854843140000e+00, + -2.893180847170000e-01, + -3.024475574490000e-01, + -1.024423599240000e+00, + -2.013487339020000e+00, + 8.966268599030000e-02, + 7.204866409299999e-02, + 2.045389860870000e-01, + -1.341059505940000e-01, + 1.170701012020000e-01, + -6.440434455870000e-01, + -5.626760005950000e+00, + 7.750118970870000e-01, + 7.068765640260000e+00, + -4.151605606080000e+00, + 4.045385360720000e+00, + -2.857395648960000e+00, + -2.266846656800000e+00, + -3.326041936870000e+00, + 4.497375011440000e+00, + -1.546064853670000e+00, + 7.150727748870000e+00, + 5.097271919250000e+00, + -5.953464984890000e+00, + -2.119191646580000e+00, + 9.863478660580000e+00, + -7.398375988010000e+00, + 9.389398992060000e-02, + -2.198500931260000e-01, + 3.619613125920000e-03, + 7.911478281020000e-01, + -1.425103306770000e+00, + -6.088392734530000e+00, + 7.845271587370000e+00, + 1.840528726580000e+00, + -3.275556325910000e+00, + 1.871206402780000e+00, + -3.022296905520000e+00, + 4.935221195220000e+00, + -1.645834684370000e+00, + -1.314599990840000e+00, + -4.763651371000000e+00, + 1.043033885960000e+01, + 7.487002372740000e+00, + -8.549001693730000e+00, + 6.195672512050000e+00, + -4.265797138210000e+00, + -3.467841386800000e+00, + 2.189206361770000e+00, + -3.156840205190000e-01, + 3.042886734010000e+00, + 5.445654392240000e-01, + -2.186105728150000e+00, + -7.813013792040000e-01, + -1.535022497180000e+00, + 3.403809964660000e-01, + 3.143151283260000e+00, + -2.436639070510000e+00, + 3.458616256710000e+00, + 1.380247622730000e-01, + 6.055381298070000e+00, + -6.560731410980000e+00, + -3.521579205990000e-01, + -3.585704863070000e-01, + -5.241208076480000e+00, + -7.585951328280000e+00, + 8.304142951970000e+00, + 7.392628192900000e-01, + -1.458562970160000e+00, + -5.199623584750000e+00, + 3.630422115330000e+00, + -2.499057292940000e+00, + 9.487995147710000e+00, + -2.883856058120000e+00, + -6.030448913570000e+00, + 9.408136367799999e+00, + -6.113296508790000e+00, + -7.270549774170000e+00, + -5.850930213930000e-01, + 6.062921524050000e+00, + -3.977368593220000e+00, + -3.175025939940000e+00, + -5.500878810880000e+00, + 5.361320972440000e+00, + -3.806104660030000e-01, + -6.949891150000000e-02, + 2.476033121350000e-01, + 2.519736886020000e-01, + 4.434455633160000e-01, + -5.004160404210000e-01, + -5.856842041020000e+00, + 7.918180823330000e-01, + 6.343266963960000e+00, + -3.824701547620000e+00, + 3.306364536290000e+00, + -3.241364717480000e+00, + -2.275306940080000e+00, + -3.536914110180000e+00, + 4.813634872440000e+00, + -1.502068996430000e+00, + 7.244280338290000e+00, + 5.469417572020000e+00, + -5.891395568850000e+00, + -2.230888128280000e+00, + 9.691291809080001e+00, + -7.296556949620000e+00, + -1.553455088290000e-02, + 8.188765048980000e-01, + 9.775071591140000e-02, + 1.497654914860000e-01, + -1.381337642670000e+00, + -6.972155094150000e+00, + 6.924750804900000e+00, + 1.135924816130000e+00, + -4.880996704100000e+00, + 3.507510423660000e+00, + -4.280900001530000e+00, + 3.933526992800000e+00, + -1.452827572820000e+00, + -6.935496330260000e-01, + -3.512952804570000e+00, + 1.224020671840000e+01, + 8.151866912839999e+00, + -7.962498664860000e+00, + 6.793715476990000e+00, + -2.683607578280000e+00, + -4.390471458440000e+00, + 1.094644427300000e+00, + -3.912376165390000e-01, + 2.729455947880000e+00, + -1.296726018190000e-01, + -2.669010877610000e+00, + -1.368461608890000e+00, + -2.312632322310000e+00, + 1.177571415900000e+00, + 3.130671024320000e+00, + -7.278643250470000e-01, + 3.854973793030000e+00, + 9.361724257470000e-01, + 5.714049816130000e+00, + -5.657098293300000e+00, + 3.052966892720000e-01, + -8.910584449770000e-02, + -6.203015804290000e+00, + -6.697256088260000e+00, + 7.854892730710000e+00, + 5.688390135770000e-01, + -9.724256992340000e-01, + -5.456443786620000e+00, + 2.464083433150000e+00, + -3.058533191680000e+00, + 9.698144912720000e+00, + -3.205510854720000e+00, + -5.209814548490000e+00, + 1.056808471680000e+01, + -7.330003738400000e+00, + -7.537082195280000e+00, + -7.546170949940000e-01, + 8.559144020080000e+00, + -3.729033708570000e+00, + -3.006456613540000e+00, + -5.905995368960000e+00, + 5.204281330110000e+00, + 1.416309356690000e+00, + 1.299847960470000e+00, + 1.259770274160000e+00, + 1.690536022190000e+00, + 1.683060765270000e+00, + -1.690775036810000e+00, + 5.803153991700000e+00, + 5.049968242650000e+00, + -6.420610547070000e-01, + -3.582584381100000e+00, + 2.619219422340000e-01, + 2.478664875030000e+00, + -3.580429077150000e+00, + 4.812392711640000e+00, + 2.619771063330000e-01, + 5.974401950840000e+00, + -1.133231282230000e+00, + -1.070260882380000e+00, + -5.267079830170000e+00, + -5.689162731170000e+00, + -2.583633184430000e+00, + -4.576128959660000e+00, + 1.489650130270000e+00, + 7.251957654950000e-01, + 1.356519818310000e+00, + 1.283317804340000e+00, + -1.624884486200000e+00, + 6.582721710210000e+00, + -6.644718647000000e-01, + 5.815971851350000e+00, + -2.610167026520000e+00, + 4.740489125250000e-01, + 3.404269695280000e+00, + -6.811733245850000e-01, + -7.480700969700000e+00, + 7.494541645050000e+00, + -4.145548820500000e+00, + -1.060976386070000e+00, + -2.317820191380000e-01, + -6.768616199490000e+00, + 5.352509617810000e-01, + -2.620139598850000e+00, + 2.557713508610000e+00, + 5.525123119350000e+00, + -2.101015329360000e+00, + 9.242455959320000e-01, + 5.261601924900000e+00, + 4.966974735260000e+00, + -2.212029218670000e+00, + -4.819811820980000e+00, + 4.293040752410000e+00, + 9.966278672220000e-01, + 7.258639812470000e+00, + 4.187778830530000e-01, + 1.590213894840000e+00, + -9.273384213450000e-01, + 6.760661602020000e+00, + 1.262007713320000e+00, + 2.167878627780000e+00, + -8.411372184750000e+00, + -5.630248069760000e+00, + -1.988142728810000e+00, + 4.904236495490000e-01, + -4.940317153930000e+00, + 5.775636672970000e+00, + -9.256686568260000e-01, + 1.605745196340000e+00, + -4.407312870030000e+00, + -7.338873386380000e+00, + -4.576963901520000e+00, + -3.126422405240000e+00, + -4.741986274720000e+00, + -3.514878273010000e+00, + -1.615633606910000e+00, + -8.192339539530000e-01, + -4.357199192050000e+00, + 2.582243204120000e+00, + 5.175666809080000e+00, + -7.211974263190000e-01, + 1.048728585240000e+00, + 1.740385890010000e+00, + 1.286369204520000e+00, + 1.263839840890000e+00, + 1.631699204440000e+00, + -2.078936338420000e+00, + 5.762077331540000e+00, + 4.866902828220000e+00, + -8.886532187460000e-01, + -3.335429191590000e+00, + 3.390445709230000e-01, + 3.368196964260000e+00, + -3.441624164580000e+00, + 5.042858123780000e+00, + 3.049612641330000e-01, + 6.496625423430000e+00, + -1.265038371090000e+00, + -1.446636021140000e-01, + -5.291413307190000e+00, + -5.769656181340000e+00, + -2.523814201350000e+00, + -4.670467376710000e+00, + 9.995568990710000e-01, + 1.051335453990000e+00, + 1.349448084830000e+00, + 1.434159636500000e+00, + -1.460603833200000e+00, + 6.082243442540000e+00, + -6.820038557050000e-01, + 5.791726589200000e+00, + -3.045012474060000e+00, + 6.598272919650000e-01, + 3.132878780360000e+00, + -8.622165918350000e-01, + -6.501158237460000e+00, + 8.465443611150000e+00, + -3.265593290330000e+00, + -1.463723659520000e+00, + -8.736277818680001e-01, + -5.567284107210000e+00, + -5.446614027020000e-01, + -7.916363477710000e-01, + 1.748059511180000e+00, + 3.937794685360000e+00, + -1.209177255630000e+00, + 1.327147722240000e+00, + 5.574629783630000e+00, + 4.838844776150000e+00, + -1.002051830290000e+00, + -4.133168697360000e+00, + 3.633709669110000e+00, + 1.614907681940000e-01, + 6.105661869050000e+00, + 1.578571945430000e-01, + 1.586854100230000e+00, + -1.172775506970000e+00, + 5.467741489410000e+00, + 1.506990075110000e+00, + 1.380424737930000e+00, + -6.572217464450000e+00, + -5.407609939580000e+00, + -8.583100438120000e-01, + 6.087307333949999e-01, + -4.841824531560000e+00, + 6.126402854920000e+00, + -4.086060523990000e-01, + 1.342271327970000e+00, + -4.197210311890000e+00, + -6.421825408940000e+00, + -5.255770206450000e+00, + -2.339076042180000e+00, + -4.629796028140000e+00, + -3.363304853440000e+00, + -1.662384748460000e+00, + 4.397228360180000e-01, + -4.414432525630000e+00, + 2.595523834230000e+00, + 5.279288291930000e+00, + -9.878185391430000e-01, + -3.315925300120000e-01, + -2.567886114120000e-01, + -3.990044295790000e-01, + -1.527095735070000e-01, + -3.106853365900000e-01, + -2.054021835330000e+00, + -1.280050635340000e+00, + 6.246345043180001e-01, + 2.686195850370000e+00, + 5.780526399610000e-01, + 3.501931428910000e-01, + -2.035006880760000e-02, + -1.337901949880000e+00, + -3.294380605220000e-01, + 2.758179664610000e+00, + 9.122684597970000e-01, + -2.961442470550000e-01, + -1.034590601920000e+00, + 1.040390849110000e+00, + -2.773555278780000e+00, + -9.231528043750000e-01, + 3.479628801350000e+00, + 6.746006757020000e-02, + -1.037325978280000e+00, + -4.566175341610000e-01, + -5.792710781100000e-01, + -2.060837984090000e+00, + -5.240722894670000e-01, + 2.242840766910000e+00, + -6.562007069590000e-01, + 7.870585918430000e-01, + 9.718040227890000e-01, + 5.918937325480000e-01, + -3.022188663480000e+00, + -2.591246843340000e+00, + 8.615104481580000e-03, + 1.713125944140000e+00, + -3.733409643170000e-01, + 3.517694473270000e+00, + 4.617146015170000e+00, + 2.722857952120000e+00, + 6.282877922060000e-01, + -1.337245821950000e+00, + 1.392799854280000e+00, + -2.064342975620000e+00, + 4.545824527740000e+00, + 7.797959446909999e-02, + -4.215005338190000e-01, + -1.282558441160000e+00, + -2.740607738490000e+00, + -5.374565348030000e-02, + -4.508464932440000e-01, + 2.721311569210000e+00, + 5.287548899650000e-01, + 1.572872996330000e-01, + -6.546279788020000e-01, + -1.259092569350000e+00, + -1.202923059460000e-01, + -7.495662570000000e-01, + 1.326969504360000e+00, + -4.343568533660000e-02, + 5.994309186940000e-01, + -7.549323141570000e-02, + -5.124530792240000e+00, + -1.367532730100000e+00, + 6.984617561100000e-02, + -1.102807164190000e+00, + -5.522894263270000e-01, + -4.611194610600000e+00, + 1.317211031910000e+00, + -2.277474164960000e+00, + 4.617741584780000e+00, + 3.003625869750000e+00, + -1.884511709210000e+00, + 2.308374881740000e+00, + 1.205111369490000e-01, + -6.061902642250000e-01, + -7.619217634200000e-01, + -1.089204430580000e+00, + -3.221496939660000e-01, + -1.147791892290000e-01, + -2.174244225030000e-01, + -3.474176824090000e-01, + -6.548283100130000e-01, + -2.343815565110000e+00, + -9.336894750600000e-01, + 3.480421602730000e-01, + 2.170253515240000e+00, + 6.944893002510000e-01, + 5.710629224779999e-01, + -1.791802406310000e+00, + -1.555867314340000e+00, + -7.190130949020000e-01, + 2.396728754040000e+00, + 8.093403577800000e-01, + 1.292848736050000e-01, + -4.126902222630000e-01, + 1.037409424780000e+00, + -2.911303758620000e+00, + -9.751739501950000e-01, + 3.216170549390000e+00, + 8.576006442310000e-02, + 8.617543615400000e-03, + -3.704069852830000e-01, + -2.489068508150000e-01, + -1.735956668850000e+00, + -1.577253460880000e+00, + 2.596194267270000e+00, + -1.145067334180000e+00, + 3.891282677650000e-01, + 9.806795716290000e-01, + -1.451278805730000e+00, + -3.185557842250000e+00, + -3.191178560260000e+00, + 2.447545379400000e-01, + -5.807643756270000e-02, + 1.679832190280000e-01, + 4.496916294100000e+00, + 4.375896930690000e+00, + 2.467159509660000e+00, + 1.473392486570000e+00, + -3.267656564710000e+00, + 2.096865653990000e+00, + -2.463372468950000e+00, + 4.439604759220000e+00, + 2.209955304860000e-01, + -3.393284976480000e-01, + -1.310192704200000e+00, + -2.496096134190000e+00, + -2.234670519830000e-01, + -2.058958560230000e-01, + 1.339357733730000e+00, + 1.016576409340000e+00, + -1.775828838350000e+00, + -4.691601544620000e-02, + -4.984057322140000e-02, + -7.497298717500001e-01, + -3.671418428420000e-01, + 1.684806346890000e+00, + 4.022525548930000e-01, + -5.489627718930000e-01, + -7.269161939620000e-01, + -4.362496852870000e+00, + -7.639726996420000e-01, + 8.906394839290001e-01, + -2.221786677840000e-01, + -6.404828429220000e-01, + -4.172678947450000e+00, + 1.071058630940000e+00, + -9.236388802530000e-01, + 4.248012065890000e+00, + 3.312880516050000e+00, + -1.783296346660000e+00, + 1.952036380770000e+00, + 9.448741078380000e-01, + -5.217513442040000e-01, + -1.366804480550000e+00, + -1.356851816180000e+00, + -2.404512465000000e-02, + 5.142248868940000e-01, + 1.599642187360000e-01, + -1.660516299310000e-02, + -5.813832879070000e-01, + -4.286654889580000e-01, + -5.630726337430000e+00, + 7.994657158850000e-01, + 6.785226345060000e+00, + -4.124453067780000e+00, + 3.423563957210000e+00, + -3.525895357130000e+00, + -2.701184988020000e+00, + -4.027557849880000e+00, + 4.594320774080000e+00, + -1.494459867480000e+00, + 7.314785957340000e+00, + 5.040069580080000e+00, + -6.079563140870000e+00, + -2.122681856160000e+00, + 9.669702529909999e+00, + -6.967421054840000e+00, + -3.716790676120000e-01, + 2.162107080220000e-01, + 2.190135866400000e-01, + 7.351284474130000e-02, + -1.120879411700000e+00, + -5.919154644010000e+00, + 6.828966617580000e+00, + 1.069685578350000e+00, + -3.722394227980000e+00, + 3.184940576550000e+00, + -3.346386671070000e+00, + 5.887710094450000e+00, + -2.216377973560000e+00, + -8.498240709300000e-01, + -6.029942035680000e+00, + 1.033580303190000e+01, + 8.512468338010001e+00, + -8.560437202450000e+00, + 6.870591163640000e+00, + -4.284618854520000e+00, + -4.311881065370000e+00, + 2.048616647720000e+00, + -8.805222511290000e-01, + 3.700495004650000e+00, + -6.332421898840001e-01, + -2.313124179840000e+00, + 4.685226678850000e-01, + -2.105216264720000e+00, + -3.788504600520000e-01, + 3.236371040340000e+00, + -2.573892831800000e+00, + 3.510755777360000e+00, + 1.428113460540000e+00, + 5.104604244230000e+00, + -6.822946071620000e+00, + 8.458700180049999e-01, + 9.192411787810001e-03, + -5.446642875670000e+00, + -6.541732788090000e+00, + 8.078392982480000e+00, + 8.089967817070000e-02, + -2.059558391570000e+00, + -5.737710952760000e+00, + 2.925395250320000e+00, + -2.247120141980000e+00, + 9.740131378170000e+00, + -3.082836151120000e+00, + -5.959591865540000e+00, + 9.311238288880000e+00, + -4.521162033080000e+00, + -8.067625045780000e+00, + -2.094939053060000e-01, + 7.210950374600000e+00, + -3.930400609970000e+00, + -3.493262767790000e+00, + -5.388644695280000e+00, + 4.433363914490000e+00, + 3.504906296730000e-01, + 3.716593384740000e-01, + 2.287416160110000e-02, + 1.829259097580000e-01, + 6.689304113390000e-01, + -8.724034428600000e-01, + -5.487666606900000e+00, + 7.290779948230000e-01, + 7.644129276280000e+00, + -3.875710010530000e+00, + 3.495239734650000e+00, + -3.189540386200000e+00, + -2.285366296770000e+00, + -3.491182804110000e+00, + 4.534290790560000e+00, + -1.765920639040000e+00, + 7.408832073210000e+00, + 5.209408760070000e+00, + -6.058937549590000e+00, + -2.048021078110000e+00, + 9.609562873840000e+00, + -6.866874217990000e+00, + 9.049866199490000e-01, + -3.847645819190000e-01, + 1.791498959060000e-01, + -1.097766384480000e-01, + -1.386905431750000e+00, + -6.211728096010000e+00, + 6.577275753020000e+00, + 1.644247293470000e+00, + -4.522688388820000e+00, + 3.529675960540000e+00, + -1.711719274520000e+00, + 4.204473018650000e+00, + -1.843426942830000e+00, + -1.119443103670000e-01, + -4.712714195250000e+00, + 1.035079288480000e+01, + 7.056813240050000e+00, + -8.368677139280001e+00, + 7.030751228330000e+00, + -2.566336631770000e+00, + -3.252279996870000e+00, + 1.236033678050000e+00, + -6.515541076660000e-01, + 2.310140132900000e+00, + 6.118832826610000e-01, + -1.195001602170000e+00, + -7.562159895900000e-01, + -2.283172130580000e+00, + 3.136139810090000e-01, + 3.329256534580000e+00, + -1.923356890680000e+00, + 3.778983116150000e+00, + -5.312001705170000e-01, + 5.763774871830000e+00, + -5.827755928040000e+00, + -3.932503238320000e-02, + -1.470218449830000e-01, + -4.326038837430000e+00, + -7.596169948580000e+00, + 7.808695793150000e+00, + -2.895486541090000e-02, + 7.437168955800000e-01, + -4.892390728000000e+00, + 3.085705280300000e+00, + -3.777227640150000e+00, + 1.125658702850000e+01, + -4.182844161990000e+00, + -5.388218402860000e+00, + 9.069174766540000e+00, + -6.161117076870000e+00, + -7.820098876950000e+00, + -3.885540068150000e-01, + 6.417903423310000e+00, + -2.885316371920000e+00, + -3.985601425170000e+00, + -6.257994174960000e+00, + 4.986189842220000e+00, + 1.324098587040000e+00, + 1.212389826770000e+00, + 1.357157707210000e+00, + 1.708195686340000e+00, + 1.380210876460000e+00, + -1.700540900230000e+00, + 5.899784564970000e+00, + 4.599733829500000e+00, + -1.247767210010000e+00, + -3.218690872190000e+00, + 8.625712990760001e-01, + 3.239051580430000e+00, + -3.677276611330000e+00, + 4.974303722380000e+00, + 6.027280092240000e-01, + 6.662096977230000e+00, + -1.354616403580000e+00, + 2.082893550400000e-01, + -5.038910865780000e+00, + -5.700838565830000e+00, + -2.488711833950000e+00, + -4.674040794370000e+00, + 1.857167720790000e+00, + 1.282246589660000e+00, + 6.765575408940000e-01, + 1.497186541560000e+00, + -2.466118812560000e+00, + 7.347403049470000e+00, + 8.565965294840000e-02, + 4.828493595120000e+00, + -3.677254199980000e+00, + -1.201547384260000e+00, + 2.723918676380000e+00, + -3.389354050160000e-02, + -7.405247211460000e+00, + 6.964666843410000e+00, + -4.133325099950000e+00, + -2.539661884310000e+00, + -2.545720934870000e-01, + -6.696139335630000e+00, + -8.202403187750000e-01, + -1.747790217400000e+00, + 1.629907846450000e+00, + 5.380661487580000e+00, + 1.915581822400000e-01, + 1.245757341380000e+00, + 4.767124652860000e+00, + 5.195140361790000e+00, + -1.774675846100000e+00, + -4.551721572880000e+00, + 3.805404901500000e+00, + 3.349041044710000e-01, + 6.890740394590000e+00, + 1.046069383620000e+00, + 2.515250921250000e+00, + -1.722138404850000e+00, + 6.108627319340000e+00, + 8.143464922900000e-01, + 1.248713731770000e+00, + -6.319345951080000e+00, + -5.010880470280000e+00, + -1.908027887340000e+00, + 1.407480359080000e+00, + -5.407821655270000e+00, + 5.497261047360000e+00, + 1.626846194270000e+00, + 2.763549566270000e+00, + -3.229005575180000e+00, + -6.369198322300000e+00, + -4.608492374420000e+00, + -2.449748754500000e+00, + -4.098377227780000e+00, + -2.878214597700000e+00, + -2.239379405980000e+00, + -1.211340785030000e+00, + -4.408437252040000e+00, + 2.215304374690000e+00, + 6.285859584810000e+00, + -5.066427588460000e-01, + 1.193732619290000e+00, + 1.957007527350000e+00, + 1.327494502070000e+00, + 1.255922317500000e+00, + 1.073752880100000e+00, + -1.741455316540000e+00, + 5.928056240080000e+00, + 4.944887638090000e+00, + -5.650874376300000e-01, + -3.498159170150000e+00, + 3.263736963270000e-01, + 2.634150743480000e+00, + -3.414474964140000e+00, + 5.206038475040000e+00, + 4.684563577180000e-01, + 6.882268428800000e+00, + -1.477233648300000e+00, + -7.515633106230000e-01, + -5.239082813260000e+00, + -5.507057666780000e+00, + -2.594650268550000e+00, + -4.967715263370000e+00, + 5.888575315480000e-01, + 1.256947398190000e+00, + 1.663474678990000e+00, + 1.180344581600000e+00, + -5.375632643700000e-01, + 7.085166454320000e+00, + -1.183535456660000e+00, + 4.659526824950000e+00, + -2.673385858540000e+00, + -1.366229057310000e-01, + 2.790240049360000e+00, + -1.503765344620000e+00, + -6.728369712830000e+00, + 8.210017204280000e+00, + -3.659016370770000e+00, + -2.345521688460000e+00, + -2.248051404950000e+00, + -5.617228508000000e+00, + -6.674619913099999e-01, + -7.256988883020000e-01, + 2.126177787780000e+00, + 4.712651729580000e+00, + -1.721860408780000e+00, + 8.502671122550000e-01, + 5.109714031220000e+00, + 6.731308937070000e+00, + -2.140596866610000e+00, + -4.115500450130000e+00, + 4.493574619290000e+00, + 4.443393647670000e-01, + 5.729311466220000e+00, + 4.933101832870000e-01, + -2.251213788990000e-01, + -2.332721233370000e+00, + 5.853763580320000e+00, + 1.844260096550000e+00, + 1.494439363480000e+00, + -6.745902061460000e+00, + -5.620438575740000e+00, + -1.528528928760000e+00, + 1.457397580150000e+00, + -4.632369041440000e+00, + 6.135497570040000e+00, + 1.670431613920000e+00, + 1.010969281200000e+00, + -4.717872142790000e+00, + -6.088967800140000e+00, + -4.794641017910000e+00, + -2.796150922780000e+00, + -4.351575374600000e+00, + -3.505134820940000e+00, + -1.456641435620000e+00, + -9.378312826160000e-01, + -3.211961507800000e+00, + 2.327735662460000e+00, + 5.274023056030000e+00, + -1.097244858740000e+00, + -3.653464615350000e-01, + -1.122423112390000e-01, + -3.713048398490000e-01, + -2.935301363470000e-01, + -5.963271260260000e-01, + -1.823626875880000e+00, + -1.010912895200000e+00, + 2.262938171630000e-01, + 2.455618143080000e+00, + 5.467160344120000e-01, + -9.005906581880000e-01, + -8.030993938450000e-01, + -1.695768713950000e+00, + -6.540875434880000e-01, + 2.845755577090000e+00, + 1.164763569830000e+00, + -1.085110008720000e-02, + -7.297732830050000e-01, + 1.296302080150000e+00, + -3.301568269730000e+00, + -1.253552317620000e+00, + 3.630676269530000e+00, + -4.989805817600000e-01, + -8.528818488120000e-01, + 6.807622313500000e-01, + 2.505205571650000e-01, + -1.674291372300000e+00, + -8.115717172619999e-01, + 1.905772447590000e+00, + -6.398382186890000e-01, + 1.045182347300000e+00, + 6.466401219370000e-01, + -7.251355051990001e-01, + -2.921155929570000e+00, + -1.375800013540000e+00, + -4.374683797360000e-01, + -7.815226316450000e-01, + -1.127787232400000e+00, + 3.902760744090000e+00, + 4.459100246430000e+00, + 2.606715202330000e+00, + 1.467819958930000e-01, + -1.983045935630000e+00, + 2.227612733840000e+00, + -1.164379596710000e+00, + 4.903322696690000e+00, + -5.710660293700000e-02, + 2.254373878240000e-01, + -9.290286302570000e-01, + -2.697883367540000e+00, + 9.320980310440000e-01, + 6.552748084070000e-01, + 2.254193544390000e+00, + 8.445224165920000e-01, + 3.911811411380000e-01, + 3.803675770760000e-01, + -1.166644573210000e+00, + -9.190284609790000e-01, + -4.470200240610000e-01, + 1.410044908520000e+00, + -4.966485798360000e-01, + -1.501349687580000e+00, + -4.730241000650000e-01, + -4.027772426610000e+00, + -1.558669090270000e+00, + 1.288744449620000e+00, + -1.032644271850000e+00, + -6.870986223220000e-01, + -4.210834980010000e+00, + 1.892050862310000e+00, + -2.624390125270000e+00, + 5.660698413850000e+00, + 3.134519577030000e+00, + -2.267103672030000e+00, + 1.763175487520000e+00, + 3.314600884910000e-01, + -5.875273942950000e-01, + -1.315290570260000e+00, + -1.373367190360000e+00, + -3.411239981650000e-01, + 3.296681120990000e-02, + -3.329541385170000e-01, + -8.929653167720000e-01, + 3.773005306720000e-01, + -1.687227249150000e+00, + -1.095987677570000e+00, + 4.761526882650000e-01, + 2.525665998460000e+00, + 2.704024314880000e-01, + 6.447187662120000e-01, + -6.259534955020000e-01, + -1.544451236720000e+00, + -6.385569572449999e-01, + 2.686047792430000e+00, + 5.705474615100000e-01, + 7.785291969780000e-02, + -9.241484999660000e-01, + 1.099665284160000e+00, + -3.007854700090000e+00, + -9.311794638630000e-01, + 3.159961700440000e+00, + -2.326403409240000e-01, + -2.656149566170000e-01, + -2.434394061570000e-01, + -2.291674613950000e-01, + -2.206049919130000e+00, + -7.063746452330000e-01, + 2.248914957050000e+00, + -8.133725821970000e-02, + 8.704850822690000e-02, + 4.536491930480000e-01, + -9.736108034850000e-02, + -3.428056001660000e+00, + -2.925668954850000e+00, + 5.558516383170000e-01, + 9.969418644910000e-01, + -4.696567654610000e-01, + 3.300593614580000e+00, + 3.730204582210000e+00, + 2.726263523100000e+00, + 1.384532451630000e+00, + -1.609647512440000e+00, + 1.764111280440000e+00, + -1.513175010680000e+00, + 3.990736484530000e+00, + -9.094128012660000e-01, + 1.453182220460000e+00, + -2.387904644010000e+00, + -8.037948012350000e-01, + -4.336216151710000e-01, + 1.783130764960000e-01, + 9.719938039779999e-01, + 1.225801587100000e+00, + 6.283608078960000e-01, + -7.148021459580000e-01, + -1.439682364460000e+00, + 4.410066455600000e-02, + -9.253767132760000e-01, + 1.086880683900000e+00, + 5.260692164300000e-02, + -2.310801148410000e-01, + -2.471147775650000e-01, + -4.529469013210000e+00, + -7.354726195340000e-01, + -5.233955383300000e-01, + -1.569387316700000e+00, + -4.866040945050000e-01, + -4.108426094060000e+00, + 2.142027139660000e+00, + -2.964171409610000e+00, + 5.112423896790000e+00, + 4.107789516450000e+00, + -1.904281497000000e+00, + 2.411230564120000e+00, + -9.590918421750000e-01, + -1.089138031010000e+00, + -1.164344787600000e+00, + -1.064634203910000e+00, + 6.938235461710000e-02, + 9.900406748060001e-02, + 1.146256402130000e-01, + 2.971943840380000e-02, + 2.313945293430000e-01, + -4.788189232350000e-01, + -5.724384307860000e+00, + 8.789765834810001e-01, + 6.851986885070000e+00, + -4.023925781250000e+00, + 3.323153495790000e+00, + -3.110485553740000e+00, + -2.323758840560000e+00, + -3.737550735470000e+00, + 4.513355731960000e+00, + -1.197675704960000e+00, + 7.229026794430000e+00, + 5.239147663120000e+00, + -6.051479816440000e+00, + -2.331716775890000e+00, + 9.595364570619999e+00, + -7.096464157100000e+00, + -5.424956679339999e-01, + -3.730225265030000e-01, + -1.805978864430000e-01, + 1.857080310580000e-01, + -2.179884195330000e+00, + -6.049661636350000e+00, + 7.144362449650000e+00, + 1.094308733940000e+00, + -4.588944911960000e+00, + 2.351344108580000e+00, + -2.754910230640000e+00, + 4.317598819730000e+00, + -1.619014501570000e+00, + -3.575260639190000e-01, + -4.215878486630000e+00, + 1.067833995820000e+01, + 7.156449794770000e+00, + -8.650628089900000e+00, + 7.353482723240000e+00, + -3.816455602650000e+00, + -4.159838199620000e+00, + 1.390521764760000e+00, + -7.983654737470000e-01, + 4.239869117740000e+00, + 1.662414908410000e+00, + -2.392390728000000e+00, + -5.779814124110000e-01, + -2.287749528880000e+00, + 1.368684470650000e-01, + 4.272517204280000e+00, + -8.350954651830000e-01, + 4.039697647090000e+00, + 1.756147146220000e-01, + 3.802530050280000e+00, + -7.108111381530000e+00, + -1.617516875270000e+00, + 2.418038249020000e-02, + -5.001749038700000e+00, + -7.159862995150000e+00, + 7.018368721010000e+00, + 1.178336665030000e-01, + -2.094376325610000e+00, + -5.008440017700000e+00, + 3.160643815990000e+00, + -3.090596437450000e+00, + 8.991254806520001e+00, + -4.465975761410000e+00, + -5.732248306270000e+00, + 9.308114051820001e+00, + -5.580244064330000e+00, + -7.872306823730000e+00, + 2.459890954200000e-02, + 8.787560462949999e+00, + -2.783308982850000e+00, + -3.853251457210000e+00, + -5.741232872010000e+00, + 5.869980812070000e+00, + 1.103963181380000e-01, + 9.152734279630000e-02, + 4.442740604280000e-02, + 2.200983166690000e-01, + -6.395446062090000e-01, + -7.947151064869999e-01, + -5.464596748350000e+00, + 8.215583562850000e-01, + 6.676196575160000e+00, + -3.545525789260000e+00, + 3.058964729310000e+00, + -3.083721637730000e+00, + -2.266767263410000e+00, + -3.695786952970000e+00, + 4.677505970000000e+00, + -1.651332020760000e+00, + 6.868415832520000e+00, + 5.085988998410000e+00, + -5.963475227360000e+00, + -1.755610108380000e+00, + 9.809219360349999e+00, + -6.883562088010000e+00, + 4.719465970990000e-01, + -2.443144321440000e-01, + -2.317844331260000e-01, + 8.266893625260000e-01, + -1.620263576510000e+00, + -5.804243087770000e+00, + 7.275412082670000e+00, + 1.421391844750000e+00, + -3.939896106720000e+00, + 4.172423839570000e+00, + -4.175803184510000e+00, + 4.673283576970000e+00, + -1.439731717110000e+00, + -1.175369262700000e+00, + -4.404300689700000e+00, + 1.134626102450000e+01, + 7.199454307560000e+00, + -8.238743782040000e+00, + 7.130986213680000e+00, + -3.789617538450000e+00, + -3.238194465640000e+00, + 1.046876311300000e+00, + -1.536449551580000e+00, + 3.965285062790000e+00, + 1.058753207330000e-02, + -1.883076071740000e+00, + -1.166273713110000e+00, + -1.837118268010000e+00, + 1.581646442410000e+00, + 4.611353397370000e+00, + -2.637313127520000e+00, + 3.694434404370000e+00, + 4.895865917210000e-02, + 5.201930046080000e+00, + -6.086597919460000e+00, + -4.428148567680000e-01, + 1.255479007960000e-01, + -4.935039520260000e+00, + -6.990796566010000e+00, + 7.745527744290000e+00, + 7.042444944380000e-01, + -8.452813625340000e-01, + -5.725674152370000e+00, + 3.429990768430000e+00, + -2.483108997340000e+00, + 1.006633853910000e+01, + -4.412815093990000e+00, + -6.488114356990000e+00, + 8.052563667299999e+00, + -6.372016429900000e+00, + -8.160790443420000e+00, + -5.568661689760001e-01, + 6.107596874240000e+00, + -3.014863491060000e+00, + -2.545486927030000e+00, + -4.914007663730000e+00, + 4.874281883240000e+00, + 1.362147808070000e+00, + 1.386533498760000e+00, + 1.173991560940000e+00, + 1.436395287510000e+00, + 1.657373070720000e+00, + -1.440424799920000e+00, + 6.070526123050000e+00, + 4.910523414610000e+00, + -7.923421859740000e-01, + -3.352037906650000e+00, + 2.705242037770000e-01, + 2.789852619170000e+00, + -3.359974861150000e+00, + 5.055035591130000e+00, + 9.167823195460000e-02, + 6.846555233000000e+00, + -1.431363701820000e+00, + -7.433355450630000e-01, + -5.084765434270000e+00, + -5.831249713900000e+00, + -2.339595794680000e+00, + -4.485725402830000e+00, + 1.033777475360000e+00, + 6.775001063940000e-03, + 1.669154524800000e+00, + 1.367113828660000e+00, + -1.494233608250000e+00, + 6.320569515230000e+00, + -1.274890184400000e+00, + 5.094127178190000e+00, + -3.665777206420000e+00, + -9.440620541570000e-01, + 3.435191392900000e+00, + -1.244497179990000e+00, + -8.048480033870000e+00, + 9.704367637630000e+00, + -4.404977798460000e+00, + -1.155344367030000e+00, + -1.724464416500000e+00, + -5.737864494320000e+00, + 9.108207821850000e-01, + -1.081925749780000e+00, + 2.095590114590000e+00, + 5.693621635440000e+00, + -1.867258906360000e+00, + 4.400006234650000e-01, + 4.360567092900000e+00, + 6.754786014560000e+00, + -1.671658873560000e+00, + -4.019508361820000e+00, + 4.949153900150000e+00, + -6.174524426460000e-01, + 7.241144657140000e+00, + 6.799845695500000e-01, + 1.444623708720000e+00, + -4.289223849770000e-01, + 5.808450222020000e+00, + 8.195383548740000e-01, + 1.360171198840000e+00, + -6.243447780610000e+00, + -5.463670253750000e+00, + -7.697314023970000e-01, + 1.534683227540000e+00, + -4.821561336520000e+00, + 5.713130474090000e+00, + 7.390961050990000e-01, + 1.909181833270000e+00, + -5.108005523680000e+00, + -6.626691818240000e+00, + -4.767164230350000e+00, + -3.195376634600000e+00, + -5.310818195340000e+00, + -2.606967210770000e+00, + -1.498635053630000e+00, + -3.362873494630000e-01, + -3.956219673160000e+00, + 3.413976192470000e+00, + 6.428697586060000e+00, + -7.172573804860000e-01, + 1.175718307500000e+00, + 1.496858596800000e+00, + 1.386209845540000e+00, + 1.131672024730000e+00, + 1.092532396320000e+00, + -1.842040419580000e+00, + 5.450798988340000e+00, + 4.971790790560000e+00, + -7.253807783130000e-01, + -3.505308866500000e+00, + 4.314452409740000e-01, + 2.623749732970000e+00, + -3.475389480590000e+00, + 4.786401271820000e+00, + 1.770577579740000e-01, + 6.635643005370000e+00, + -1.243069291110000e+00, + -7.590824961660000e-01, + -5.310533046720000e+00, + -5.749956130980000e+00, + -2.386692762370000e+00, + -4.728934764860000e+00, + 2.077993154530000e+00, + 1.736494898800000e+00, + 1.457314610480000e+00, + 1.652086019520000e+00, + -1.534132957460000e+00, + 5.768154621120000e+00, + -1.672075539830000e-01, + 5.586040019990000e+00, + -3.315660476680000e+00, + -1.342818856240000e+00, + 3.537824630740000e+00, + -1.990332454440000e-02, + -6.608580112460000e+00, + 6.825375556950000e+00, + -4.040124893190000e+00, + -1.415672421460000e+00, + -5.830269455910000e-01, + -6.100086689000000e+00, + -1.829804480080000e-01, + -1.769667387010000e+00, + 1.479166030880000e+00, + 5.472520351410000e+00, + -1.387669563290000e+00, + 1.317551255230000e+00, + 6.113455772400000e+00, + 5.731246471410000e+00, + -1.944060802460000e+00, + -3.833060979840000e+00, + 3.649631738660000e+00, + 1.845379173760000e-01, + 7.416040897370000e+00, + 1.276206851010000e+00, + 6.579786539080000e-01, + -2.219266414640000e+00, + 5.714785575870000e+00, + 1.957010626790000e+00, + 1.444358229640000e+00, + -7.793619155880000e+00, + -5.410887718200000e+00, + -2.815406084060000e+00, + 9.373849034310000e-01, + -4.563064098360000e+00, + 6.006839275360000e+00, + 2.573806643490000e-01, + 2.755077362060000e+00, + -3.080501079560000e+00, + -5.628233909610000e+00, + -5.680737018590000e+00, + -2.845648527150000e+00, + -6.383473873140000e+00, + -3.277195930480000e+00, + -1.782251358030000e+00, + -3.248075544830000e-01, + -2.855185508730000e+00, + 1.841683268550000e+00, + 6.580929279330000e+00, + -1.132862091060000e+00, + -3.521572649480000e-01, + -4.265076220040000e-01, + -4.733517766000000e-01, + -3.668180406090000e-01, + -5.026797056200000e-01, + -1.792451143260000e+00, + -1.106467247010000e+00, + 4.152343273160000e-01, + 2.527787208560000e+00, + 3.914237618450000e-01, + 6.292328238490000e-01, + -7.675943374630000e-01, + -1.462416648860000e+00, + -5.989310145380000e-01, + 3.002369165420000e+00, + 6.549361944200000e-01, + 2.368658781050000e-02, + -1.144318819050000e+00, + 1.011721968650000e+00, + -2.936985969540000e+00, + -4.005756378170000e-01, + 3.414218425750000e+00, + 7.787725329400000e-01, + -7.643874883650000e-01, + -7.965469360350000e-02, + -3.053371310230000e-01, + -2.093756437300000e+00, + -6.474906206130000e-01, + 1.519365310670000e+00, + -7.202830910680000e-01, + -1.074707210060000e-01, + 1.441417217250000e+00, + -1.431327223780000e+00, + -2.612678289410000e+00, + -2.020214796070000e+00, + 1.477753281590000e+00, + 1.158942461010000e+00, + -2.798897624020000e-01, + 3.368351221080000e+00, + 5.171086311340000e+00, + 3.795351743700000e+00, + 8.911657929420000e-01, + -2.327657222750000e+00, + 1.547298192980000e+00, + -1.439156055450000e+00, + 5.243716716770000e+00, + 3.599516153340000e-01, + 1.292807340620000e+00, + -1.220696210860000e+00, + -1.719726681710000e+00, + 4.560396820310000e-02, + -6.234346032140000e-01, + 1.085927844050000e+00, + 4.845857620240000e-01, + -7.273368835450000e-01, + -2.409746885300000e+00, + -1.456216216090000e+00, + -4.473577737810000e-01, + -5.539309382440000e-01, + 2.164312303070000e-01, + -3.692288100720000e-01, + -9.535430669780000e-01, + 2.760419249530000e-01, + -3.825110673900000e+00, + -1.731423497200000e+00, + 9.358080625530000e-01, + 1.448754370210000e-01, + -2.333431877200000e-02, + -4.350380897520000e+00, + 1.274147748950000e+00, + -2.617045402530000e+00, + 5.512155532840000e+00, + 4.240486145020000e+00, + -2.003808259960000e+00, + 1.614238500600000e+00, + 2.788191437720000e-01, + 4.021701216700000e-01, + -1.575518727300000e+00, + -8.421300053600000e-01, + -2.124590873720000e-01, + -3.697388172150000e-01, + -3.261873722080000e-01, + -8.373449444770000e-01, + -1.659412235020000e-01, + -2.534665346150000e+00, + -1.210645556450000e+00, + 8.081134557720000e-01, + 2.437711715700000e+00, + 4.982862174510000e-01, + -6.424762606620000e-01, + -3.261211812500000e-01, + -1.366920828820000e+00, + -5.263620615010000e-01, + 2.992463588710000e+00, + 7.641658782960000e-01, + 3.068511784080000e-01, + -1.022570014000000e+00, + 9.396096467970000e-01, + -2.973495721820000e+00, + -9.466416239740000e-01, + 3.498117685320000e+00, + -2.615287899970000e-03, + 4.363165497780000e-01, + -3.440507352350000e-01, + -6.543059945110000e-01, + -2.720879316330000e+00, + -6.187946200370000e-01, + 2.101241350170000e+00, + -8.867750167850000e-01, + 2.368198484180000e-01, + 1.044356301430000e-01, + -1.380797982220000e+00, + -2.967318773270000e+00, + -1.085370898250000e+00, + 1.351224333050000e-01, + -3.425721526150000e-01, + 9.913281798360000e-01, + 4.610402107240000e+00, + 2.727051973340000e+00, + 2.441861152650000e+00, + 1.915491104130000e+00, + -4.732964634900000e-01, + 9.045928716660000e-01, + -3.307586610320000e-01, + 3.471719980240000e+00, + 2.749813720580000e-02, + 1.154982328410000e+00, + -1.744894027710000e+00, + -1.515677094460000e+00, + 4.152560532090000e-01, + -4.411286115650000e-01, + 1.826328396800000e+00, + 5.277267098430000e-01, + -1.883489489560000e-01, + -4.962082505230000e-01, + -7.033524513240000e-01, + -6.570580005650000e-01, + -4.623194634910000e-01, + 7.787460088730001e-01, + -6.948302388190000e-01, + -5.536810159680000e-01, + -6.124340295789999e-01, + -4.725095748900000e+00, + -1.222267746930000e+00, + 5.672144889830000e-01, + -6.144673228260000e-01, + -3.747760355470000e-01, + -3.434517145160000e+00, + 3.843692302700000e+00, + -2.715840578080000e+00, + 5.197824001310000e+00, + 4.435677051540000e+00, + -1.887085318570000e+00, + 2.494447708130000e+00, + 5.160593241450000e-02, + 3.142467141150000e-01, + -1.952412247660000e+00, + -1.343076825140000e+00, + -2.297357171770000e-01, + 2.230103015900000e-01, + 1.265233159070000e-01, + 5.977312922480000e-01, + 9.735626168549999e-03, + -5.139451622960000e-01, + -5.737872600560000e+00, + 6.528832316400000e-01, + 6.853708267210000e+00, + -3.753899097440000e+00, + 3.584169149400000e+00, + -3.189284563060000e+00, + -2.487315177920000e+00, + -3.586870670320000e+00, + 4.380342006680000e+00, + -1.443504214290000e+00, + 7.527771949770000e+00, + 5.235335826870000e+00, + -6.099013328550000e+00, + -2.048535823820000e+00, + 9.582252502439999e+00, + -7.303793430330000e+00, + -7.068685293200000e-01, + -1.333010643720000e-01, + 1.860580593350000e-02, + -3.411184251310000e-01, + -5.666974186900000e-01, + -5.550679683690000e+00, + 7.402777671810000e+00, + 8.665521740910000e-01, + -3.875896930690000e+00, + 3.832538843150000e+00, + -2.790155410770000e+00, + 4.967026233670000e+00, + -1.312505006790000e+00, + -1.271988391880000e+00, + -5.186036109920000e+00, + 1.154583168030000e+01, + 7.048641204830000e+00, + -8.049283981320000e+00, + 7.540578842160000e+00, + -3.814627170560000e+00, + -3.939655303960000e+00, + 8.021753430370000e-01, + 2.196196615700000e-01, + 2.911951541900000e+00, + 4.802036583420000e-01, + -2.386370658870000e+00, + -2.305519580840000e-01, + -3.205278396610000e+00, + 9.076012969020000e-01, + 3.312942504880000e+00, + -2.664344787600000e+00, + 4.356501579280000e+00, + 4.758035391570000e-02, + 4.371641159060000e+00, + -7.762520313260000e+00, + -1.262623220680000e-01, + 4.883661866190000e-01, + -4.478648662570000e+00, + -7.236903190610000e+00, + 7.328011035920000e+00, + -3.839053586130000e-02, + -8.820797204970000e-01, + -5.095954895020000e+00, + 1.790215969090000e+00, + -2.632238388060000e+00, + 8.948502540590001e+00, + -3.990819215770000e+00, + -5.734438419340000e+00, + 9.282333374020000e+00, + -6.296384811400000e+00, + -7.674576759340000e+00, + -7.401267886160000e-01, + 6.142265319820000e+00, + -3.393493652340000e+00, + -2.543675661090000e+00, + -6.484555721280000e+00, + 5.805031299590000e+00, + -7.830997556450001e-02, + 4.097857475280000e-01, + -1.469862908120000e-01, + 1.113131642340000e-03, + 7.493194192650000e-03, + -5.927583575249999e-01, + -6.156649112700000e+00, + 6.826533079150000e-01, + 6.496148586270000e+00, + -3.678626775740000e+00, + 3.427615404130000e+00, + -2.928443431850000e+00, + -2.472054243090000e+00, + -3.654439926150000e+00, + 4.546870708470000e+00, + -1.611044645310000e+00, + 7.094210624690000e+00, + 5.139393806460000e+00, + -6.016655445100000e+00, + -2.184302568440000e+00, + 9.486669540410000e+00, + -7.246349811550000e+00, + 4.413221031430000e-02, + 3.630860149860000e-01, + -3.673845827580000e-01, + 1.867705956100000e-02, + -1.256272673610000e+00, + -5.767051219940000e+00, + 6.340322971340000e+00, + 2.080922365190000e+00, + -3.397733211520000e+00, + 3.229286670680000e+00, + -3.051435232160000e+00, + 5.272535324100000e+00, + -1.488234519960000e+00, + -1.400814652440000e+00, + -4.037348270420000e+00, + 1.141639041900000e+01, + 7.739275932310000e+00, + -7.534591674800000e+00, + 6.741326332090000e+00, + -4.268321990970000e+00, + -4.764372348790000e+00, + 2.159618616100000e+00, + -5.734978914260001e-01, + 4.574471473690000e+00, + 2.298874109980000e-01, + -1.957715749740000e+00, + 3.491987288000000e-02, + -1.455357193950000e+00, + 1.749424695970000e+00, + 4.221813201900000e+00, + -1.553632378580000e+00, + 3.040755748750000e+00, + 1.136398017410000e-01, + 6.134078979490000e+00, + -6.898245811460000e+00, + 5.566422939300000e-01, + 8.604048490520000e-01, + -4.347329139710000e+00, + -7.036914348600000e+00, + 7.786904335020000e+00, + 8.663260936740000e-01, + -9.464734792710000e-01, + -4.665326595310000e+00, + 2.172285795210000e+00, + -2.036821842190000e+00, + 9.592123031620000e+00, + -3.938180208210000e+00, + -6.689786434170000e+00, + 1.005724906920000e+01, + -5.843698024750000e+00, + -7.372319221500000e+00, + -5.830370634790000e-02, + 5.263606071470000e+00, + -2.552021980290000e+00, + -3.553229331970000e+00, + -5.640478134160000e+00, + 5.856921195980000e+00, + 4.019985497000000e-01, + 1.407085061070000e+00, + 1.409953832630000e+00, + 1.775596976280000e+00, + 1.321434378620000e+00, + -1.778398752210000e+00, + 5.858965396880000e+00, + 5.110841751100000e+00, + -7.670841813090000e-01, + -3.347838401790000e+00, + 7.453272491690000e-02, + 2.536947250370000e+00, + -3.483702659610000e+00, + 5.278008461000000e+00, + 2.508987188340000e-01, + 6.584879398350000e+00, + -1.492903828620000e+00, + -5.812981724740000e-01, + -5.198949813840000e+00, + -5.507716178890000e+00, + -2.319962501530000e+00, + -4.800031661990000e+00, + 1.241205692290000e+00, + 9.465876817700000e-01, + 1.269827008250000e+00, + 1.166283607480000e+00, + -2.306470394130000e+00, + 7.379954338070000e+00, + -1.569904685020000e+00, + 5.689698219300000e+00, + -4.058465957640000e+00, + 2.094766497610000e-01, + 3.645662069320000e+00, + -1.630737185480000e+00, + -6.571444988250000e+00, + 8.033123016359999e+00, + -3.945919036870000e+00, + -6.672638058660000e-01, + -1.122648835180000e+00, + -6.910036087040000e+00, + -1.380783915520000e-01, + -1.884799122810000e+00, + 6.118155121800000e-01, + 4.814983844760000e+00, + -1.876474380490000e+00, + 5.113382935520000e-01, + 4.260033607480000e+00, + 6.255087852480000e+00, + -2.076068639760000e+00, + -3.665283203120000e+00, + 4.932060241700000e+00, + -7.594304680820000e-01, + 6.150144577030000e+00, + 5.940654277800000e-01, + 2.128989934920000e+00, + -1.206216335300000e+00, + 6.359258651730000e+00, + 1.728454709050000e+00, + 1.549658417700000e+00, + -5.866684436800000e+00, + -5.109727382660000e+00, + -1.455580472950000e+00, + 2.210861682890000e+00, + -5.555452346800000e+00, + 6.146122932430000e+00, + 1.442289948460000e-01, + 1.434956908230000e+00, + -2.905159950260000e+00, + -6.276220798490000e+00, + -5.959603786470000e+00, + -3.031332492830000e+00, + -4.081900596620000e+00, + -3.340752124790000e+00, + -1.124615430830000e+00, + -6.433691978450000e-01, + -3.582959890370000e+00, + 2.529370307920000e+00, + 4.837589740750000e+00, + -7.574273943900000e-01, + 1.378791570660000e+00, + 1.207605242730000e+00, + 1.597331285480000e+00, + 1.463255405430000e+00, + 1.266679525380000e+00, + -1.703747391700000e+00, + 6.506297111510000e+00, + 5.038269996640000e+00, + -2.046828269960000e-01, + -3.338446855550000e+00, + 3.341730237010000e-01, + 2.419952631000000e+00, + -3.489514589310000e+00, + 4.932280063630000e+00, + 3.116212189200000e-01, + 6.096245288850000e+00, + -1.353485584260000e+00, + -7.501718401910000e-01, + -5.187639236450000e+00, + -5.689484596250000e+00, + -2.475512981410000e+00, + -4.373143672940000e+00, + 1.354106426240000e+00, + 1.911918640140000e+00, + 1.485643148420000e+00, + 1.925175070760000e+00, + -2.486483812330000e+00, + 5.887093067170000e+00, + -1.359515666960000e+00, + 4.371132373810000e+00, + -2.876054763790000e+00, + -2.089964449410000e-01, + 2.966053247450000e+00, + -6.764854788780000e-01, + -7.182129859920000e+00, + 7.553966522220000e+00, + -4.067466259000000e+00, + -5.782087445260000e-01, + -7.277988791470000e-01, + -4.357166767120000e+00, + -1.163979172710000e+00, + -1.755578398700000e+00, + 1.620288610460000e+00, + 5.258026599880000e+00, + -1.683482527730000e+00, + 4.693637788300000e-01, + 5.792243003850000e+00, + 5.686152935030000e+00, + -2.775849580760000e+00, + -4.369693756100000e+00, + 3.949552536010000e+00, + 5.623994469640000e-01, + 7.498689174650000e+00, + 4.712913632390000e-01, + 6.188703179360000e-01, + -2.145589828490000e+00, + 5.182942867280000e+00, + 1.176478147510000e+00, + 7.697643637660000e-01, + -6.831419467930000e+00, + -5.421556949620000e+00, + -1.858520150180000e+00, + 1.289202570920000e+00, + -5.350880146030000e+00, + 5.113544940950000e+00, + 4.278881549840000e-01, + 2.465073823930000e+00, + -4.171926021580000e+00, + -5.954857826230000e+00, + -5.419301033020000e+00, + -2.793775320050000e+00, + -4.179207801820000e+00, + -2.699058294300000e+00, + -1.690661311150000e+00, + -2.323447227480000e+00, + -3.305417299270000e+00, + 2.516512393950000e+00, + 5.593924522400000e+00, + -9.815094470980000e-01, + -1.309543371200000e+00, + -2.054580003020000e-01, + -3.393048644070000e-01, + 3.494717180730000e-01, + -2.227181643250000e-01, + -1.825195193290000e+00, + -1.284853577610000e+00, + 4.489030539990000e-01, + 2.497178792950000e+00, + 3.557718396190000e-01, + 2.572725117210000e-01, + -9.530665874480000e-01, + -1.412309050560000e+00, + -2.590311169620000e-01, + 2.650029420850000e+00, + 7.188248634340000e-01, + 2.778745256360000e-02, + -9.516023397450000e-01, + 1.026028752330000e+00, + -2.869198560710000e+00, + -8.752255439760001e-01, + 3.493970155720000e+00, + -8.206592202190000e-01, + 5.242218971250000e-01, + -3.334541320800000e-01, + -1.274580061440000e-01, + -2.013589620590000e+00, + -5.514848828320000e-01, + 1.431195855140000e+00, + -1.759318590160000e+00, + -9.397564530370000e-01, + 1.115228533740000e+00, + -1.137335777280000e+00, + -2.998119354250000e+00, + -1.500515341760000e+00, + 5.983178690080000e-02, + 3.967279791830000e-01, + 1.151954531670000e-01, + 3.446464538570000e+00, + 3.910866022110000e+00, + 2.442939519880000e+00, + 1.627321243290000e+00, + -2.868996858600000e+00, + 2.439443111420000e+00, + -2.667675495150000e+00, + 4.759057521820000e+00, + 1.304917573930000e+00, + -6.469970941540000e-01, + -1.999150872230000e+00, + 4.813065230850000e-01, + 4.529126286510000e-01, + -3.906299173830000e-01, + 2.818967342380000e+00, + 2.339288234710000e+00, + 8.200091719630000e-01, + -1.144705653190000e+00, + -9.576129317280000e-01, + -4.145675301550000e-01, + -8.712830543520000e-01, + 9.006145000460000e-01, + 2.890011481940000e-02, + 1.594706028700000e-01, + -2.304573543370000e-02, + -4.410060882570000e+00, + -1.617362141610000e+00, + 1.647927522660000e+00, + -1.194564223290000e+00, + -7.263892889020001e-01, + -4.279572486880000e+00, + 4.261505901810000e-01, + -2.829777956010000e+00, + 5.083843708040000e+00, + 2.801527023320000e+00, + -1.812512397770000e+00, + 2.726848363880000e+00, + 8.267889022829999e-01, + -2.598316073420000e-01, + -1.723454594610000e+00, + 1.872265487910000e-01, + -1.452574282880000e-01, + -6.993042677640000e-02, + -7.846786379810000e-01, + -2.095223218200000e-01, + -6.328862309460001e-01, + -1.920441269870000e+00, + -1.485998392110000e+00, + 2.864127457140000e-01, + 2.507329225540000e+00, + 4.235923588280000e-01, + 6.223192811010000e-01, + -7.196981310840000e-01, + -1.555713891980000e+00, + -7.224249839780000e-01, + 2.735515356060000e+00, + 4.894928038120000e-01, + 9.912305325270000e-02, + -1.193850874900000e+00, + 1.444167971610000e+00, + -3.199746370320000e+00, + -6.503701806070000e-01, + 3.632354021070000e+00, + -2.803072929380000e-01, + -2.588039934640000e-01, + -4.981388747690000e-01, + 5.357647538190000e-01, + -1.783323287960000e+00, + -1.191948413850000e+00, + 1.174307346340000e+00, + -1.092268586160000e+00, + -2.974880859260000e-03, + 1.451739549640000e+00, + -1.174707531930000e+00, + -3.704254627230000e+00, + -1.629735469820000e+00, + -7.942096889020001e-02, + 2.041706815360000e-02, + -6.626225113870000e-01, + 4.083400726320000e+00, + 4.216300010680000e+00, + 2.023998022080000e+00, + 9.087271094320000e-01, + -2.170423269270000e+00, + 1.287958145140000e+00, + -1.522487401960000e+00, + 3.738279104230000e+00, + 2.230675458910000e+00, + 6.719140410420000e-01, + -1.499326109890000e+00, + -2.420507907870000e+00, + -9.245498478410000e-02, + 1.110767960550000e+00, + 2.814455270770000e+00, + -4.675029516220000e-01, + -1.033730059860000e-01, + -5.128695368770000e-01, + -1.733972877260000e-01, + 1.407340615990000e-01, + -6.356027722360000e-01, + 5.816141963010000e-01, + -6.668167114260000e-01, + -9.326256513600000e-01, + -9.767243266110000e-02, + -4.710628509520000e+00, + -1.692729830740000e+00, + 9.453552961350000e-01, + -8.921050429339999e-01, + -4.893394708630000e-01, + -5.462753295900000e+00, + 1.296444654460000e+00, + -1.381291508670000e+00, + 5.077002048490000e+00, + 3.695057868960000e+00, + -1.930229067800000e+00, + 1.743287086490000e+00, + 9.635829329490000e-01, + -2.066214382650000e-02, + -1.226637125020000e+00, + -1.782233357430000e+00, + 7.759175449609999e-02, + -1.183588206770000e-01, + 1.473471969370000e-01, + 9.593720734120000e-02, + -1.935472786430000e-01, + -6.371253132819999e-01, + -6.134989738460000e+00, + 8.791702985760000e-01, + 6.698644638060000e+00, + -3.984541654590000e+00, + 3.160923004150000e+00, + -3.254220008850000e+00, + -2.324739217760000e+00, + -3.645510911940000e+00, + 4.337751865390000e+00, + -1.497504711150000e+00, + 7.377056121830000e+00, + 4.658730506900000e+00, + -5.777036666870000e+00, + -2.064568758010000e+00, + 9.825982093810000e+00, + -7.101047039030000e+00, + 2.672183215620000e-01, + 1.396951079370000e-01, + -1.464602649210000e-01, + 7.960098981860000e-01, + -1.482318639760000e+00, + -5.992909431460000e+00, + 7.029010295870000e+00, + 1.823481202130000e+00, + -3.677155971530000e+00, + 3.893084287640000e+00, + -2.558858871460000e+00, + 6.464505672450000e+00, + -2.263168096540000e+00, + -1.197069287300000e+00, + -4.751464366910000e+00, + 1.039910984040000e+01, + 7.300113201140000e+00, + -8.357038497920000e+00, + 6.403096199040000e+00, + -3.528038740160000e+00, + -4.115362167360000e+00, + 1.136978149410000e+00, + -9.233044385910000e-01, + 4.130615234380000e+00, + -1.333644837140000e-01, + -2.160563230510000e+00, + -1.457134604450000e+00, + -3.202741384510000e+00, + 7.919701337810000e-01, + 3.712426424030000e+00, + -2.148942470550000e+00, + 3.518898248670000e+00, + -7.808926701550000e-01, + 4.863654136660000e+00, + -6.370318412780000e+00, + 1.001668721440000e-01, + 7.079229354860000e-01, + -5.401235103610000e+00, + -7.399652004240000e+00, + 8.402277946470001e+00, + -1.509054303170000e-01, + -8.051711916920000e-01, + -4.644427299500000e+00, + 3.468013763430000e+00, + -3.022576808930000e+00, + 9.592759132390000e+00, + -4.044987678530000e+00, + -6.404789447780000e+00, + 9.546746253969999e+00, + -6.123794555660000e+00, + -7.796620845790000e+00, + 3.883680999280000e-01, + 6.081600189210000e+00, + -3.277140378950000e+00, + -3.274008035660000e+00, + -5.576754093170000e+00, + 5.908944129940000e+00, + 2.024539932610000e-02, + 6.551660299299999e-01, + -2.860056757930000e-01, + -3.508325219150000e-01, + 4.798565804960000e-02, + -7.678614854810000e-01, + -5.769903659820000e+00, + 6.166173815729999e-01, + 6.867351055150000e+00, + -3.996076107030000e+00, + 3.410581350330000e+00, + -3.304907560350000e+00, + -2.292802572250000e+00, + -3.786226749420000e+00, + 4.306408882140000e+00, + -1.270760774610000e+00, + 7.241587638850000e+00, + 5.217125892640000e+00, + -5.821272850040000e+00, + -2.250401020050000e+00, + 9.621392250060000e+00, + -7.360041618350000e+00, + 2.037549391390000e-02, + 3.922150284050000e-02, + -9.200919419530000e-02, + 3.082248382270000e-02, + -4.212158024310000e-01, + -5.596921443940000e+00, + 8.429486274720000e+00, + 2.296792984010000e+00, + -3.805865764620000e+00, + 3.996418237690000e+00, + -3.055090904240000e+00, + 3.870386123660000e+00, + -8.247138857840000e-01, + -1.301013350490000e+00, + -4.725229263310000e+00, + 1.005971336360000e+01, + 6.944813251500000e+00, + -8.168162345890000e+00, + 5.778354167940000e+00, + -4.538791656490000e+00, + -4.993870735170000e+00, + 2.946668386460000e+00, + 2.286919653420000e-01, + 4.783929824830000e+00, + 8.906725049020000e-01, + -2.704019308090000e+00, + -1.571440219880000e+00, + -1.631211757660000e+00, + 9.571074843410000e-01, + 4.704597949980000e+00, + -3.035691022870000e+00, + 3.692000627520000e+00, + 1.218475818630000e+00, + 5.750836372380000e+00, + -5.856495857240000e+00, + 1.993952095510000e-01, + -1.014897450800000e-01, + -4.729300498960000e+00, + -5.867908954620000e+00, + 7.757624626160000e+00, + -5.845264345410000e-02, + -9.373412132259999e-01, + -5.160657405850000e+00, + 3.122085571290000e+00, + -2.989398717880000e+00, + 9.931845664980001e+00, + -3.289796829220000e+00, + -6.675070762630000e+00, + 8.688735961910000e+00, + -6.089228630070000e+00, + -8.047013282780000e+00, + 1.972252726550000e-01, + 6.882949352260000e+00, + -2.997869491580000e+00, + -3.846755504610000e+00, + -6.756923198700000e+00, + 5.260173320770000e+00, + 1.407354235650000e+00, + 1.749874711040000e+00, + 1.397093534470000e+00, + 1.435396909710000e+00, + 1.648273348810000e+00, + -1.911865115170000e+00, + 6.308406829830000e+00, + 4.292757511140000e+00, + -7.100375294690000e-01, + -3.187150716780000e+00, + 6.982386112209999e-01, + 2.546548604970000e+00, + -3.378994941710000e+00, + 4.851586341860000e+00, + 1.496798843150000e-01, + 6.555548667910000e+00, + -1.172669410710000e+00, + -8.763684630390000e-01, + -5.277380943300000e+00, + -5.699336051940000e+00, + -2.370525121690000e+00, + -4.624090671540000e+00, + 6.417244672780000e-01, + 1.436118960380000e+00, + 1.968275666240000e+00, + 1.705841422080000e+00, + -1.648991584780000e+00, + 6.033833503720000e+00, + -6.061111092570000e-01, + 5.441736221310000e+00, + -3.229340314870000e+00, + 1.025073170660000e+00, + 3.389053106310000e+00, + -1.104066014290000e+00, + -7.256355285640000e+00, + 8.350449562070001e+00, + -4.310377597810000e+00, + -1.301868319510000e+00, + -7.803258299830000e-01, + -5.299487113950000e+00, + 3.778861165050000e-01, + -2.600164890290000e+00, + 1.032657980920000e+00, + 4.854501247410000e+00, + -1.329206824300000e+00, + 1.519426554440000e-01, + 6.915431022640000e+00, + 7.139599800110000e+00, + -2.750280380250000e+00, + -4.449704647060000e+00, + 5.008754253390000e+00, + 2.237263172860000e-01, + 7.137173652650000e+00, + 3.025921285150000e-01, + 5.942768454550000e-01, + -6.242648959160000e-01, + 5.159574031830000e+00, + 1.476626157760000e+00, + 1.036462664600000e+00, + -5.446408748630000e+00, + -5.205410957340000e+00, + -2.380615234380000e+00, + 1.445993781090000e+00, + -5.106043338780000e+00, + 5.229540824890000e+00, + 2.470469772820000e-01, + 1.791968584060000e+00, + -5.964815139770000e+00, + -6.730510234830000e+00, + -4.296641349790000e+00, + -2.395883798600000e+00, + -4.444399833680000e+00, + -2.902882814410000e+00, + -8.432275056840000e-01, + -1.659642934800000e+00, + -3.715700149540000e+00, + 2.390348434450000e+00, + 5.705524444580000e+00, + -7.445236444470000e-01, + 1.178347826000000e+00, + 1.783774018290000e+00, + 2.092472791670000e+00, + 1.285938858990000e+00, + 1.397924661640000e+00, + -1.716507196430000e+00, + 5.760235309600000e+00, + 4.861774444580000e+00, + -8.386207222940000e-01, + -3.396052360530000e+00, + 2.607969343660000e-01, + 2.356154203410000e+00, + -3.584227085110000e+00, + 5.282025337220000e+00, + 2.021024376150000e-01, + 6.467062950130000e+00, + -1.147792339320000e+00, + -1.122106432910000e+00, + -5.578325748440000e+00, + -5.592570781710000e+00, + -2.955517530440000e+00, + -4.454877376560000e+00, + 1.885104775430000e+00, + 1.023590326310000e+00, + 5.769767761230000e-01, + 1.604218244550000e+00, + -1.697649598120000e+00, + 6.045083522800000e+00, + -4.384078681470000e-01, + 6.180707454680000e+00, + -2.949102401730000e+00, + -2.542511224750000e-01, + 4.293334007260000e+00, + -4.065075814720000e-01, + -6.049004554750000e+00, + 7.892095565800000e+00, + -3.846163272860000e+00, + -1.254020571710000e+00, + -1.418872237210000e+00, + -6.530598163600000e+00, + -7.643420696260000e-01, + -1.141364812850000e+00, + 1.741046071050000e+00, + 5.275719642640000e+00, + -2.082621455190000e-01, + 1.177228808400000e+00, + 4.675213813780000e+00, + 5.687125682830000e+00, + -2.684985399250000e+00, + -4.597828865050000e+00, + 4.410406589510000e+00, + 5.446763634680000e-01, + 6.467556953430000e+00, + 4.575018286710000e-01, + 4.953722357750000e-01, + -7.513780593870000e-01, + 6.763038635250000e+00, + 1.494432806970000e+00, + 1.128889679910000e+00, + -7.343075752260000e+00, + -4.674689292910000e+00, + -7.359554767610000e-01, + 1.402570366860000e+00, + -4.498342990880000e+00, + 6.143151283260000e+00, + 1.222722291950000e+00, + 1.690345048900000e+00, + -4.877977371220000e+00, + -5.708872795100000e+00, + -5.286606788640000e+00, + -2.429742574690000e+00, + -4.023539066310000e+00, + -3.947184801100000e+00, + -1.715500354770000e+00, + -1.147927880290000e+00, + -2.633479356770000e+00, + 3.035972833630000e+00, + 5.286046028140000e+00, + 4.184297323230000e-01, + -3.361563384530000e-01, + 1.663098931310000e-01, + -3.240735530850000e-01, + -5.856705307960000e-01, + -1.429005861280000e+00, + -1.676144480710000e+00, + -1.532600998880000e+00, + -5.033434033390000e-01, + 2.210235595700000e+00, + 4.048537611960000e-01, + 4.740228056910000e-01, + -7.600927352910000e-01, + -1.480478048320000e+00, + -3.425135612490000e-01, + 2.677465200420000e+00, + 7.048820257190000e-01, + -1.785658299920000e-01, + -1.282644629480000e+00, + 8.522327542300000e-01, + -3.045675039290000e+00, + -9.374841451640000e-01, + 3.303905725480000e+00, + -2.925515770910000e-01, + -5.043345689770000e-01, + -4.040389508010000e-02, + -5.787205100060000e-01, + -2.701661586760000e+00, + -9.007060527800000e-01, + 2.124784231190000e+00, + -7.836270928380000e-01, + -4.694069549440000e-02, + 2.445949912070000e-01, + -1.402979254720000e+00, + -3.728360891340000e+00, + -1.737079262730000e+00, + -1.068930745120000e+00, + 1.244189143180000e+00, + -9.923508763310001e-01, + 3.248349189760000e+00, + 5.630785465240000e+00, + 3.291062831880000e+00, + 7.347441911700000e-01, + -1.835929512980000e+00, + 1.466186642650000e+00, + -1.792409539220000e+00, + 3.977382421490000e+00, + 9.404315948490000e-01, + 4.891293346880000e-01, + -1.070695996280000e+00, + -1.527181267740000e+00, + 2.657038569450000e-01, + 1.256204485890000e+00, + 2.625837564470000e+00, + -7.521192431450000e-01, + -6.466231942180000e-01, + -1.792457818980000e+00, + -1.535655260090000e+00, + -3.094725608830000e-01, + 1.358680844310000e+00, + 1.257434844970000e+00, + -4.413542449470000e-01, + -1.200151562690000e+00, + -4.301777780060000e-01, + -5.359508991240000e+00, + -1.395059823990000e+00, + 5.626820921900000e-01, + -8.135611414910000e-01, + 9.509266912940000e-02, + -3.687583923340000e+00, + 1.340892553330000e+00, + -3.044270515440000e+00, + 5.462361812590000e+00, + 3.875611305240000e+00, + -1.967619657520000e+00, + 2.745672702790000e+00, + 9.512547850610000e-01, + -2.119596302510000e-01, + -1.145884513850000e+00, + -1.404645800590000e+00, + -3.297240436080000e-01, + -7.414516806600000e-01, + -3.783050775530000e-01, + -2.635237872600000e-01, + -3.429698646070000e-01, + -1.760356068610000e+00, + -9.331965446470000e-01, + 4.255259335040000e-01, + 2.456008434300000e+00, + 3.896786868570000e-01, + 5.588821768759999e-01, + -5.958310961720000e-01, + -1.274299144740000e+00, + -4.534454941750000e-01, + 2.830667257310000e+00, + 7.590124607090000e-01, + -1.912327110770000e-01, + -1.447908043860000e+00, + 1.363198876380000e+00, + -2.935240268710000e+00, + -6.886691451069999e-01, + 3.555605888370000e+00, + 5.246784091000000e-01, + -1.206487894060000e+00, + -2.835722267630000e-01, + -3.779701292510000e-01, + -2.657331705090000e+00, + 4.264551699160000e-01, + 2.470275640490000e+00, + 2.568239569660000e-01, + 1.045847654340000e+00, + 1.713492035870000e+00, + -2.729325741530000e-02, + -3.257187843320000e+00, + -2.723894834520000e+00, + -7.551302909850000e-01, + 5.191630721090000e-01, + -7.248592376710000e-01, + 3.603755235670000e+00, + 4.070748806000000e+00, + 2.683027267460000e+00, + 2.022534906860000e-01, + -1.460983514790000e+00, + 1.218439459800000e+00, + -1.362697005270000e+00, + 3.631847620010000e+00, + 1.221951484680000e+00, + 3.730714321140000e-03, + -2.031817197800000e+00, + -2.134989500050000e+00, + 1.032084301110000e-01, + 1.170522809030000e+00, + 3.514348506930000e+00, + 1.014155149460000e-01, + -7.486191987990000e-01, + 3.489722684030000e-02, + -1.202355742450000e+00, + -2.651632428170000e-01, + -7.195072770120000e-01, + 4.458100199700000e-01, + 2.411544919010000e-01, + -3.980997018520000e-03, + -2.582677006720000e-01, + -3.578698396680000e+00, + -1.350497484210000e+00, + 1.072813868520000e-01, + -9.172956347470000e-01, + -7.839959263800000e-01, + -3.920462846760000e+00, + 7.793754935260000e-01, + -2.191063880920000e+00, + 4.819536209110000e+00, + 3.430836677550000e+00, + -1.848736643790000e+00, + 2.215191602710000e+00, + 1.185388565060000e+00, + 1.537681818010000e+00, + -1.811879396440000e+00, + -1.386583566670000e+00, + 2.035516351460000e-01, + 8.102326095100000e-02, + 4.974951595070000e-02, + -5.021936073900000e-02, + 3.390639424320000e-01, + -3.051734566690000e-01, + -5.804854393010000e+00, + 7.903879880910000e-01, + 6.872552871700000e+00, + -3.970126390460000e+00, + 3.388864517210000e+00, + -3.230951547620000e+00, + -2.245423316960000e+00, + -3.922040462490000e+00, + 4.651216983800000e+00, + -1.250552177430000e+00, + 7.313258171080000e+00, + 5.112195491790000e+00, + -5.967503547670000e+00, + -1.964340806010000e+00, + 9.514804840089999e+00, + -7.176752090450000e+00, + -6.451321244240000e-01, + 5.514086484910000e-01, + 2.072455361490000e-03, + -3.567602336410000e-01, + -7.368283867840000e-01, + -4.981291294100000e+00, + 6.014350414280000e+00, + 2.159212350850000e+00, + -3.954907417300000e+00, + 2.765585422520000e+00, + -2.775754213330000e+00, + 4.525604248050000e+00, + -2.641445398330000e+00, + -4.032407402990000e-01, + -4.014949321750000e+00, + 1.014206886290000e+01, + 8.844944000240000e+00, + -7.684424877170000e+00, + 7.028039932250000e+00, + -3.400596141820000e+00, + -2.877178430560000e+00, + 1.626890540120000e+00, + -1.484701156620000e+00, + 3.306107759480000e+00, + -1.583765745160000e-01, + -2.916708946230000e+00, + -1.112994551660000e+00, + -1.699922084810000e+00, + 2.000899314880000e+00, + 3.849787235260000e+00, + -1.656967520710000e+00, + 3.185612201690000e+00, + -3.129521012310000e-01, + 6.917030811310000e+00, + -5.448456287380000e+00, + -8.590543270110000e-01, + 1.564294248820000e-01, + -5.184522151950000e+00, + -6.212410926820000e+00, + 8.735290527340000e+00, + 7.494877576830000e-01, + -5.289661288260000e-01, + -5.672731876370000e+00, + 3.725440740590000e+00, + -2.925423622130000e+00, + 9.421282768250000e+00, + -3.112877368930000e+00, + -6.905186653140000e+00, + 1.053369140620000e+01, + -5.391973972320000e+00, + -8.237804412839999e+00, + -7.039963006970000e-01, + 6.587189197540000e+00, + -2.393225431440000e+00, + -3.944080591200000e+00, + -5.840707778930000e+00, + 5.924287796020000e+00, + 4.684206470850000e-02, + 1.837046593430000e-01, + -2.285033464430000e-02, + 1.265150755640000e-01, + 6.905784010890000e-01, + -5.988910198210000e-01, + -6.000886917110000e+00, + 4.061062633990000e-01, + 7.043272495270000e+00, + -4.244571685790000e+00, + 3.338613271710000e+00, + -3.211200952530000e+00, + -2.291062831880000e+00, + -3.805517435070000e+00, + 4.543381690980000e+00, + -1.712089657780000e+00, + 7.045030593870000e+00, + 5.379284858700000e+00, + -5.868622303010000e+00, + -2.031268358230000e+00, + 9.814372062680000e+00, + -7.266441822050000e+00, + 1.105616331100000e+00, + 7.735534310340000e-01, + -2.213048189880000e-01, + -3.521741330620000e-01, + -1.830916881560000e+00, + -5.174139499660000e+00, + 7.719449520110000e+00, + 2.355007410050000e+00, + -3.657015800480000e+00, + 3.474581480030000e+00, + -3.760664939880000e+00, + 4.794797897340000e+00, + -1.831006526950000e+00, + -5.046425387260000e-02, + -4.225471496580000e+00, + 1.173829555510000e+01, + 8.535994529720000e+00, + -8.924416542050000e+00, + 6.846642971040000e+00, + -3.820372819900000e+00, + -3.852811813350000e+00, + 9.899677634239999e-01, + -7.071974873540000e-01, + 4.283101081850000e+00, + 8.866310119630000e-01, + -2.371598958970000e+00, + -4.743315577510000e-01, + -1.308837413790000e+00, + 1.756120026110000e-01, + 3.807727098460000e+00, + -1.395529389380000e+00, + 3.078926324840000e+00, + 1.435665488240000e-01, + 6.790149688720000e+00, + -5.473679542540000e+00, + -1.427433937790000e-01, + 1.035483777520000e-01, + -3.435774326320000e+00, + -7.131502628330000e+00, + 7.582184314730000e+00, + -5.477121472360000e-01, + 3.835785984990000e-01, + -6.189934253690000e+00, + 3.187472343440000e+00, + -2.459159612660000e+00, + 9.854899406430000e+00, + -4.465941905980000e+00, + -6.601684570310000e+00, + 8.291133880620000e+00, + -6.271614074710000e+00, + -7.741595745090000e+00, + 1.260786652560000e-01, + 5.850959300990000e+00, + -3.715260505680000e+00, + -3.601521730420000e+00, + -5.108149051670000e+00, + 5.279369831090000e+00, + 1.333501815800000e+00, + 1.553770661350000e+00, + 1.363259673120000e+00, + 1.376940250400000e+00, + 1.031162500380000e+00, + -1.772012114520000e+00, + 5.859747886660000e+00, + 4.761337757110000e+00, + -8.295019865040000e-01, + -3.347699642180000e+00, + 2.950960099700000e-01, + 2.456194877620000e+00, + -3.354872941970000e+00, + 5.407827377320000e+00, + 7.204234600070000e-01, + 6.266633510590000e+00, + -1.643665790560000e+00, + -7.660338282590000e-01, + -5.331997394560000e+00, + -5.609621524810000e+00, + -2.778519868850000e+00, + -4.395406723020000e+00, + 1.363970875740000e+00, + 1.686221599580000e+00, + 1.284249544140000e+00, + 2.147693634030000e+00, + -1.602332592010000e+00, + 6.254546642300000e+00, + -1.831397414210000e+00, + 5.648402214050000e+00, + -3.678150892260000e+00, + -1.349453806880000e+00, + 2.993495225910000e+00, + -7.852369546890000e-01, + -8.413261413570000e+00, + 8.686298370359999e+00, + -3.566441535950000e+00, + -1.430451393130000e+00, + -1.204757332800000e+00, + -6.193490028380000e+00, + -8.591207861900000e-01, + -1.932531714440000e+00, + 1.899093151090000e+00, + 4.724881172180000e+00, + -1.177160024640000e+00, + 1.409969449040000e+00, + 5.481150150300000e+00, + 5.464029788970000e+00, + -1.727552294730000e+00, + -4.799472808840000e+00, + 3.721683502200000e+00, + 1.157815337180000e+00, + 6.971122741700000e+00, + 1.526581645010000e+00, + 7.486591935160000e-01, + -2.237600564960000e+00, + 7.865617275240000e+00, + 1.522457480430000e+00, + 1.389542698860000e+00, + -6.503899097440000e+00, + -5.504400730130000e+00, + -3.732016801830000e+00, + 1.765830039980000e+00, + -4.896968364720000e+00, + 5.872070789340000e+00, + 4.411365091800000e-01, + 2.542396068570000e+00, + -6.039651870730000e+00, + -7.038765907290000e+00, + -5.247248172760000e+00, + -1.628864407540000e+00, + -4.301982879640000e+00, + -3.310161590580000e+00, + -1.523717403410000e+00, + -2.092713117600000e+00, + -3.209600925450000e+00, + 2.435907125470000e+00, + 5.408018589020000e+00, + -3.655718266960000e-01, + 1.344043850900000e+00, + 1.332450032230000e+00, + 1.390648365020000e+00, + 1.412699222560000e+00, + 1.180874228480000e+00, + -1.589201331140000e+00, + 5.850486755370000e+00, + 5.350799083710000e+00, + -7.730731964110000e-01, + -2.763316392900000e+00, + -1.147670485080000e-02, + 2.460308551790000e+00, + -3.530374288560000e+00, + 4.980532646180000e+00, + 2.669422626500000e-01, + 6.592490196230000e+00, + -1.163658976550000e+00, + -1.026400446890000e+00, + -5.214148521420000e+00, + -5.803984642030000e+00, + -2.464308023450000e+00, + -4.689925193790000e+00, + 7.368125319480000e-01, + 1.131462693210000e+00, + 7.106831073760000e-01, + 1.374108433720000e+00, + -2.718183994290000e+00, + 7.301583766940000e+00, + -1.059046506880000e+00, + 6.096683979030000e+00, + -3.283726692200000e+00, + 2.337935566900000e-01, + 4.097810268400000e+00, + -9.938963055609999e-01, + -6.354149818420000e+00, + 8.248922348020001e+00, + -4.159021854400000e+00, + -1.772137641910000e+00, + -1.084822893140000e+00, + -4.904760360720000e+00, + -1.553184241060000e-01, + -2.032514095310000e+00, + 9.460470080380000e-01, + 4.246778011320000e+00, + -6.751672029500000e-01, + 1.841986775400000e+00, + 4.913950920100000e+00, + 6.883472442630000e+00, + -1.791859149930000e+00, + -4.004481315610000e+00, + 4.958234786990000e+00, + -1.021811366080000e+00, + 6.666873931880000e+00, + -3.933790624140000e-01, + 1.556141376500000e+00, + -1.230549693110000e+00, + 5.901049613950000e+00, + 1.730302810670000e+00, + 4.257122576240000e-01, + -7.940747261050000e+00, + -5.481645584110000e+00, + -2.444322586060000e+00, + 1.357201814650000e+00, + -6.697165012360000e+00, + 6.189075946810000e+00, + 3.763985931870000e-01, + 2.701766252520000e+00, + -3.364102125170000e+00, + -6.842252731320000e+00, + -5.680915355680000e+00, + -2.444327354430000e+00, + -4.112767219540000e+00, + -3.392138719560000e+00, + -1.691255688670000e+00, + -1.956798553470000e+00, + -3.618238687520000e+00, + 1.384446024890000e+00, + 5.295583724980000e+00, + 4.905499145390000e-02, + -2.870471179490000e-01, + 2.075790613890000e-01, + -3.221572935580000e-01, + -2.368814051150000e-01, + -6.669127345090000e-01, + -2.229225873950000e+00, + -9.113945364950000e-01, + 4.692923426630000e-01, + 2.655733585360000e+00, + 4.103155732150000e-01, + 6.672396659850000e-01, + -7.185936570170000e-01, + -1.907037138940000e+00, + -6.024638414380000e-01, + 2.831445217130000e+00, + 4.311881363390000e-01, + -1.914007216690000e-01, + -1.071121335030000e+00, + 9.754208922390000e-01, + -2.716977834700000e+00, + -8.873938918110000e-01, + 3.634068727490000e+00, + -8.506773710250000e-01, + -8.982771635060000e-01, + -3.801954984660000e-01, + -6.149492263790000e-01, + -2.085907220840000e+00, + -5.037615895270000e-01, + 1.366832733150000e+00, + -7.161118090150000e-02, + -4.704693853860000e-01, + 2.787980794910000e+00, + -7.022490501400001e-01, + -2.057856082920000e+00, + -2.006850957870000e+00, + -7.351171374320000e-01, + 1.469844460490000e+00, + -3.625490665440000e-01, + 4.299036026000000e+00, + 4.146850585940000e+00, + 3.024494171140000e+00, + 1.314652681350000e+00, + -1.950821280480000e+00, + 2.402273654940000e+00, + -1.610779404640000e+00, + 4.533258438110000e+00, + -6.239235401150000e-01, + 1.252554059030000e+00, + -1.605782985690000e+00, + -4.478578269480000e-01, + -6.530956029890000e-01, + 3.581264615060000e-02, + 2.703281164170000e+00, + 1.798239827160000e+00, + -1.658139675860000e-01, + 2.923275232320000e-01, + -1.134650468830000e+00, + 3.087872639300000e-03, + -4.919292628770000e-01, + 8.052826523780000e-01, + 8.488888740540000e-01, + -7.356831431390000e-01, + -2.544867098330000e-01, + -4.098395347600000e+00, + -1.089033365250000e+00, + 4.537610113620000e-01, + -5.672941803929999e-01, + -5.017455220220000e-01, + -5.028901577000000e+00, + 1.365478038790000e+00, + -3.850741863250000e+00, + 5.767662525180000e+00, + 4.058021068570000e+00, + -3.138704538350000e+00, + 2.396434783940000e+00, + 8.913803100590000e-01, + 2.124453336000000e-01, + -1.597191333770000e+00, + -1.262923479080000e-01, + -2.859519124030000e-01, + -2.704540491100000e-01, + -3.525574505330000e-01, + -3.825779855250000e-01, + -1.080129668120000e-02, + -1.710084915160000e+00, + -1.036279916760000e+00, + 1.263010382650000e+00, + 2.538639068600000e+00, + 1.139253005390000e-01, + 9.434886574750000e-01, + -6.845628619190000e-01, + -1.402714014050000e+00, + -4.209709465500000e-01, + 2.746809720990000e+00, + 7.573866248130000e-01, + 1.260010451080000e-01, + -1.171315431590000e+00, + 1.111898899080000e+00, + -2.908869981770000e+00, + -7.354843616490000e-01, + 3.497195720670000e+00, + -3.535509109500000e-01, + -8.810124993320000e-01, + -1.391345620160000e+00, + -2.130383998160000e-01, + -1.286914944650000e+00, + 1.245403848590000e-02, + 1.442490458490000e+00, + -8.604095578190000e-01, + -7.162997126580000e-01, + 2.135151147840000e+00, + -3.752239048480000e-02, + -3.416253566740000e+00, + -2.555856466290000e+00, + -1.328515410420000e+00, + 8.741304278370000e-01, + -1.821477890010000e+00, + 4.429677009580000e+00, + 2.461582422260000e+00, + 2.271696090700000e+00, + 2.499750137330000e+00, + -9.585307538510000e-02, + 7.221171855930000e-01, + 2.208981476720000e-02, + 4.738004207610000e+00, + 1.626996248960000e-01, + 2.322727739810000e-01, + -1.122959494590000e+00, + -1.559652209280000e+00, + -1.501536816360000e-01, + -6.566387601200000e-03, + 2.524207115170000e+00, + 2.865439653400000e-02, + -4.024198353290000e-01, + -6.950690150260000e-01, + -1.186722397800000e+00, + -1.982847601180000e-01, + 9.455002844330000e-02, + 3.425149619580000e-01, + -1.648004174230000e+00, + -1.784555315970000e-01, + 6.083202362060000e-01, + -5.150291442870000e+00, + -3.008504211900000e-02, + 4.489627778530000e-01, + -4.617484807970000e-01, + -3.615985810760000e-01, + -4.330190658570000e+00, + 1.270617365840000e+00, + -1.924778461460000e+00, + 5.410685539250000e+00, + 3.784645795820000e+00, + -2.034911155700000e+00, + 2.106735944750000e+00, + 7.748303413390000e-01, + -9.902150034900000e-01, + -2.300992012020000e+00, + 6.723129749300000e-02, + 4.232326447960000e-01, + -5.811220780010000e-02, + -4.567805677650000e-02, + 2.127387560900000e-04, + 7.752590626480001e-02, + -6.126867532730000e-01, + -5.675870895390000e+00, + 8.359408974650000e-01, + 6.952772617340000e+00, + -4.030863285060000e+00, + 3.734121799470000e+00, + -2.918231964110000e+00, + -2.215373992920000e+00, + -3.475033998490000e+00, + 4.605602264400000e+00, + -1.307516336440000e+00, + 7.365128517150000e+00, + 5.333321094510000e+00, + -5.759944438930000e+00, + -2.058639526370000e+00, + 9.379069328310001e+00, + -7.223772525790000e+00, + 2.974424511190000e-03, + -2.765614092350000e-01, + 8.558263629670000e-02, + 5.046892166140000e-01, + -1.475739836690000e+00, + -4.841017723080000e+00, + 6.095152854920000e+00, + 1.855608075860000e-01, + -5.315177440640000e+00, + 4.049573421480000e+00, + -2.960427522660000e+00, + 5.071147441860000e+00, + -1.553491234780000e+00, + -1.196987986560000e+00, + -5.041580200200000e+00, + 1.061354637150000e+01, + 7.661029815670000e+00, + -7.867644310000000e+00, + 7.047283172610000e+00, + -4.246292591090000e+00, + -4.033496379850000e+00, + 2.381515026090000e+00, + 1.403910815720000e-01, + 3.254278659820000e+00, + 7.010061740880000e-01, + -2.077491998670000e+00, + -4.993833899500000e-01, + -2.256513595580000e+00, + 8.274688124660000e-01, + 4.630399227140000e+00, + -2.189237833020000e+00, + 4.586590766910000e+00, + -1.182659745220000e+00, + 6.270276546480000e+00, + -5.833489418030000e+00, + -1.721070557830000e-01, + -4.509059190750000e-01, + -5.075846672060000e+00, + -6.318722248080000e+00, + 8.567899703980000e+00, + 5.570689439770000e-01, + -3.600580096240000e-01, + -6.186664581300000e+00, + 2.903588294980000e+00, + -3.084961891170000e+00, + 9.476229667660000e+00, + -4.503748416900000e+00, + -6.421344280240000e+00, + 9.916394233700000e+00, + -6.044110774990000e+00, + -7.933979034420000e+00, + -5.572295188900001e-01, + 5.430000305180000e+00, + -3.399064064030000e+00, + -3.342875242230000e+00, + -5.948276519780000e+00, + 5.120460033420000e+00, + 5.996426567440000e-03, + 2.000649571420000e-01, + -1.658605039120000e-01, + -8.817826956510000e-02, + 5.657839030030000e-02, + -5.940089225770000e-01, + -5.633822917940000e+00, + 8.247712850570000e-01, + 6.858776092530000e+00, + -3.779138326640000e+00, + 3.295841932300000e+00, + -3.250077486040000e+00, + -2.294091463090000e+00, + -3.234133481980000e+00, + 4.570315837860000e+00, + -1.481965541840000e+00, + 7.246729373930000e+00, + 5.083136081700000e+00, + -5.713009357450000e+00, + -2.024581432340000e+00, + 9.534001350400001e+00, + -7.166426658630000e+00, + -4.284663796420000e-01, + 7.080087065700000e-01, + -1.122264042500000e-01, + -4.568088054660000e-02, + -7.268081903460000e-01, + -5.938353061680000e+00, + 7.364241600040000e+00, + 1.644903659820000e+00, + -4.276158809660000e+00, + 3.937661647800000e+00, + -2.952332496640000e+00, + 5.339092254640000e+00, + -1.063475489620000e+00, + -1.240114331250000e+00, + -4.443041324620000e+00, + 1.020579242710000e+01, + 8.139927864070000e+00, + -7.570330142970000e+00, + 6.946364879610000e+00, + -5.093492507930000e+00, + -4.182630062100000e+00, + 6.994867324830000e-01, + -2.952081561090000e-01, + 3.730285167690000e+00, + -5.800160765650000e-02, + -2.019031286240000e+00, + -3.746056854720000e-01, + -1.969341993330000e+00, + 6.883280277250000e-01, + 4.689916610720000e+00, + -1.923678874970000e+00, + 3.812268018720000e+00, + 2.596981227400000e-01, + 5.028849601750000e+00, + -6.925974369050000e+00, + -1.250695288180000e-01, + 5.323384404180000e-01, + -4.850072383880000e+00, + -8.222501754760000e+00, + 6.861524105070000e+00, + 1.817702203990000e-01, + -1.145468354230000e+00, + -4.744282245640000e+00, + 2.440006256100000e+00, + -2.487456083300000e+00, + 9.954065322880000e+00, + -4.217578887940000e+00, + -7.557165622710000e+00, + 9.338662147519999e+00, + -5.628715991970000e+00, + -9.045707702640000e+00, + 1.992750763890000e-01, + 5.913309097290000e+00, + -3.853278636930000e+00, + -2.695723772050000e+00, + -5.446306228640000e+00, + 5.689659595490000e+00, + 1.159577727320000e+00, + 1.480537652970000e+00, + 1.553656339650000e+00, + 2.200180292130000e+00, + 1.500419616700000e+00, + -1.577921271320000e+00, + 5.834413528440000e+00, + 5.045348167420000e+00, + -8.425909280780000e-01, + -3.196621894840000e+00, + 4.644758403300000e-01, + 2.717246055600000e+00, + -3.450699329380000e+00, + 4.953340530400000e+00, + 1.514423452320000e-02, + 6.954661846160000e+00, + -1.275455951690000e+00, + -7.964649200440000e-01, + -5.458257198330000e+00, + -5.645935058590000e+00, + -2.535168409350000e+00, + -4.669345378880000e+00, + 1.314244389530000e+00, + 1.967703104020000e+00, + 1.311461091040000e+00, + 1.518508076670000e+00, + -3.408674895760000e-01, + 6.294263839720000e+00, + -7.833551168440001e-01, + 5.573250293730000e+00, + -1.839998245240000e+00, + -6.307118535040001e-01, + 3.439228296280000e+00, + -3.797734975810000e-01, + -6.802083015440000e+00, + 9.161744117740000e+00, + -3.177976131440000e+00, + -1.556218743320000e+00, + -7.635946869850000e-01, + -3.696180820470000e+00, + -3.551446497440000e-01, + -1.826615571980000e+00, + 1.470112681390000e+00, + 4.127618789670000e+00, + -1.117258787160000e+00, + 1.208802223210000e+00, + 5.805126667020000e+00, + 6.240138530730000e+00, + -2.477886199950000e+00, + -3.873690843580000e+00, + 4.550930500030000e+00, + 2.636922001840000e-01, + 6.945753097530000e+00, + -6.346410512920000e-02, + 1.103080749510000e+00, + -9.194622635840000e-01, + 6.465141773220000e+00, + 8.728149533270000e-01, + 1.414175510410000e+00, + -5.452906608580000e+00, + -5.934489250180000e+00, + -1.902658939360000e+00, + 8.988274931910000e-01, + -4.787865161900000e+00, + 6.433368682860000e+00, + -1.490198016170000e+00, + 1.181883454320000e+00, + -3.928679704670000e+00, + -5.290199279790000e+00, + -4.093273639680000e+00, + -3.133011817930000e+00, + -5.513093948360000e+00, + -2.599131107330000e+00, + -2.730734825130000e+00, + -4.804439544680000e-01, + -3.830064296720000e+00, + 2.219102382660000e+00, + 5.303154945370000e+00, + -1.372618079190000e+00, + 1.374579429630000e+00, + 1.327317237850000e+00, + 1.717984676360000e+00, + 1.289734363560000e+00, + 1.344128727910000e+00, + -1.554555535320000e+00, + 6.005704879760000e+00, + 4.914640903470000e+00, + -8.363107442860001e-01, + -3.257103681560000e+00, + 2.814915478230000e-01, + 2.578883647920000e+00, + -3.424006223680000e+00, + 5.420792102810000e+00, + 1.103121638300000e-01, + 6.465107917790000e+00, + -1.274397373200000e+00, + -8.533205986020000e-01, + -5.281440734860000e+00, + -5.789070606230000e+00, + -2.163799285890000e+00, + -4.404301166530000e+00, + 1.143560528760000e+00, + 9.149131774900000e-01, + 9.846242070200000e-01, + 1.772558689120000e+00, + -1.607023477550000e+00, + 5.615544319150000e+00, + -5.157573223110000e-01, + 5.000071048740000e+00, + -4.104173660280000e+00, + -4.482040405270000e-01, + 4.169197559360000e+00, + -9.105897545810000e-01, + -6.194978237150000e+00, + 6.931224346160000e+00, + -4.646113872530000e+00, + -1.280406832700000e+00, + -1.218589186670000e+00, + -6.418061256410000e+00, + 1.274675577880000e-01, + -2.466137170790000e+00, + 6.480248570440000e-01, + 4.259146213530000e+00, + -1.017853856090000e+00, + 8.737522363660000e-01, + 5.246150016780000e+00, + 5.514469623570000e+00, + -2.701368093490000e+00, + -4.286479473110000e+00, + 5.333452701570000e+00, + 1.120800375940000e+00, + 6.132884025570000e+00, + 4.174027740960000e-01, + 1.882965922360000e+00, + 3.616219758990000e-02, + 7.354702472690000e+00, + 1.304715394970000e+00, + 1.017445802690000e+00, + -7.382379055020000e+00, + -4.924695968630000e+00, + -1.287611365320000e+00, + 1.372749328610000e+00, + -4.542393207550000e+00, + 6.139482498170000e+00, + 7.593546807770001e-02, + 5.195908546450000e-01, + -3.399078845980000e+00, + -6.916158676150000e+00, + -5.792321681980000e+00, + -2.330384969710000e+00, + -4.345105171200000e+00, + -3.549427270890000e+00, + -1.969906091690000e+00, + -1.878741145130000e+00, + -3.603175640110000e+00, + 2.322984695430000e+00, + 5.422688484190000e+00, + -5.348926782610000e-01, + 6.839303672310000e-02, + 1.186424195770000e-01, + -2.215365916490000e-01, + 1.276366114620000e-01, + 2.325246036050000e-01, + -1.873257637020000e+00, + -1.029358267780000e+00, + 3.813657760620000e-01, + 2.625128030780000e+00, + 3.625539243220000e-01, + 3.644521534440000e-01, + -7.981294393540000e-01, + -1.422993659970000e+00, + -3.597511351110000e-01, + 2.610040903090000e+00, + 9.701709747310000e-01, + -4.917163401840000e-02, + -1.527379035950000e+00, + 9.713699221610000e-01, + -3.089747667310000e+00, + -9.876704812050000e-01, + 3.633869886400000e+00, + -5.072852373120000e-01, + -5.053710937500000e-01, + -3.140956461430000e-01, + -5.267178416250000e-01, + -3.239522457120000e+00, + -5.371468067170000e-01, + 1.471585273740000e+00, + -3.698064982890000e-01, + -3.268813788890000e-01, + 1.100078225140000e+00, + -2.919814109800000e+00, + -3.162582159040000e+00, + -1.281310439110000e+00, + 7.249380946160000e-01, + -1.562350541350000e-01, + -6.121686100960000e-01, + 3.119492053990000e+00, + 4.807951450350000e+00, + 2.735610723500000e+00, + 1.180366992950000e+00, + -2.402712106700000e+00, + 5.009343624110000e-01, + -1.674068689350000e+00, + 3.600971460340000e+00, + 9.652692079540000e-01, + -2.163366675380000e-01, + -1.269621372220000e+00, + -1.922851324080000e+00, + 7.768899202350000e-01, + 2.454358637330000e-01, + 2.578218936920000e+00, + 1.098007559780000e+00, + 6.300958245990000e-02, + -5.477265715600000e-01, + -4.904587268830000e-01, + 1.110961847010000e-02, + -8.364465236660000e-01, + 3.888696134090000e-01, + 4.561879038810000e-01, + -2.208363264800000e-01, + -6.006365641950000e-02, + -5.807048797610000e+00, + -2.503074169160000e+00, + 7.216028124090000e-02, + -6.367136836050000e-01, + -5.165699124340000e-01, + -5.410480499270000e+00, + 1.061208367350000e+00, + -3.122883319850000e+00, + 5.537834644320000e+00, + 3.572771787640000e+00, + -2.975677728650000e+00, + 2.504244327550000e+00, + 2.808527052400000e-01, + -1.355868428950000e-01, + -1.828976631160000e+00, + -1.177909970280000e+00, + -3.218877613540000e-01, + -2.177688926460000e-01, + 1.821578890090000e-01, + -5.234514474870000e-01, + -5.102697014810000e-01, + -1.856115698810000e+00, + -1.202773928640000e+00, + 4.489849209790000e-01, + 2.462847232820000e+00, + 5.041544437410000e-01, + 3.197652995590000e-01, + -6.727432608600000e-01, + -1.324562668800000e+00, + -7.329580187800000e-01, + 2.948442935940000e+00, + 8.964933156970000e-01, + -5.235483050350001e-01, + -1.381645798680000e+00, + 1.120052814480000e+00, + -3.096826553340000e+00, + -6.581939458850000e-01, + 3.364334821700000e+00, + 2.677296102050000e-01, + -2.775062248110000e-02, + -3.379428684710000e-01, + -4.820976853370000e-01, + -3.868553161620000e+00, + -1.665972232820000e+00, + 2.470036268230000e+00, + 3.286617696290000e-01, + -1.074071049690000e+00, + 3.477261066440000e-01, + 4.832274913790000e-01, + -2.246570587160000e+00, + -3.214088916780000e+00, + -9.821344912049999e-02, + 1.409831047060000e-01, + -8.984696865080000e-01, + 3.805875062940000e+00, + 3.609653472900000e+00, + 2.214809417720000e+00, + 6.375429630280000e-01, + -1.523046851160000e+00, + 1.376005291940000e+00, + -2.113586664200000e+00, + 4.629200935360000e+00, + 2.239042282100000e+00, + 6.248452067380000e-01, + -1.425576925280000e+00, + -3.181868791580000e+00, + -1.166366562250000e-01, + 4.399698972700000e-01, + 2.400353431700000e+00, + 7.499211430550000e-01, + 9.278839826580000e-02, + -1.647329688070000e+00, + -5.215760469439999e-01, + -2.450430244210000e-01, + -6.378804445270000e-01, + 1.929621994500000e-01, + 4.797696173190000e-01, + 7.312771677970000e-01, + -8.352845907210000e-01, + -3.847911357880000e+00, + -1.830060482030000e+00, + 3.912014663220000e-01, + -2.550089597700000e+00, + 8.194094896320000e-01, + -4.330751419070000e+00, + 1.463489413260000e+00, + -2.272853136060000e+00, + 4.657134532930000e+00, + 3.041386127470000e+00, + -2.486399412160000e+00, + 1.591449618340000e+00, + 1.057228565220000e+00, + 4.878406822680000e-01, + -1.188821196560000e+00, + -2.555226385590000e-01, + -6.580465435980000e-01, + 1.465769410130000e-01, + 7.641851902010000e-02, + -2.203157544140000e-01, + -6.541631370780000e-02, + -7.033640146260000e-01, + -5.787991523740000e+00, + 7.941306233410000e-01, + 5.844092369080000e+00, + -3.899512290950000e+00, + 3.266798973080000e+00, + -3.058327198030000e+00, + -2.385703086850000e+00, + -3.643621206280000e+00, + 4.676189422610000e+00, + -1.656014204030000e+00, + 7.426847457890000e+00, + 5.085853576660000e+00, + -5.869477748870000e+00, + -2.117676496510000e+00, + 9.619912147519999e+00, + -7.505275726320000e+00, + 4.008783400060000e-01, + 1.381390392780000e-01, + -5.219334959980000e-01, + 4.069011658430000e-02, + -1.333289504050000e+00, + -5.707702159880000e+00, + 7.660602092740000e+00, + 6.610611081120000e-01, + -5.279096126560000e+00, + 3.679172992710000e+00, + -2.617541790010000e+00, + 5.368165016170000e+00, + -8.333048224450000e-01, + -1.372732400890000e+00, + -3.814469099040000e+00, + 1.097042560580000e+01, + 7.478414535520000e+00, + -8.371830940250000e+00, + 7.251583099370000e+00, + -4.055936336520000e+00, + -4.566625595090000e+00, + 2.013051986690000e+00, + 1.747431606050000e-01, + 4.013204097750000e+00, + 6.772996485230000e-02, + -1.461669325830000e+00, + -1.583815813060000e+00, + -2.834991216660000e+00, + 1.663167595860000e+00, + 4.416135787960000e+00, + -2.040673255920000e+00, + 3.362436294560000e+00, + 1.840251684190000e-01, + 4.481181144710000e+00, + -6.525481224060000e+00, + 4.861100018020000e-02, + 5.077050328250000e-01, + -5.249354839320000e+00, + -7.047848701480000e+00, + 8.105621337890000e+00, + -4.661671817300000e-02, + -7.632314562800000e-01, + -4.680571079250000e+00, + 4.410530090330000e+00, + -3.410408258440000e+00, + 1.016328144070000e+01, + -4.468896865840000e+00, + -5.506227970120000e+00, + 9.117844581600000e+00, + -5.292041778560000e+00, + -7.953819751740000e+00, + -1.021799445150000e+00, + 6.698597431180000e+00, + -3.789463758470000e+00, + -3.909113168720000e+00, + -6.610141754150000e+00, + 5.603203296660000e+00, + -1.259002536540000e-01, + 1.545527577400000e-01, + -4.445437341930000e-02, + 6.672540307039999e-02, + 2.674247026440000e-01, + -7.540603876110000e-01, + -5.864561080930000e+00, + 7.087783217430000e-01, + 7.045190811160000e+00, + -3.981628417970000e+00, + 3.353462219240000e+00, + -3.179531574250000e+00, + -1.937186360360000e+00, + -3.819133520130000e+00, + 4.453744411470000e+00, + -1.259987950330000e+00, + 7.256046772000000e+00, + 5.036593914030000e+00, + -5.901576995850000e+00, + -2.202591419220000e+00, + 9.641514778139999e+00, + -7.072173595430000e+00, + 2.971244752410000e-01, + 7.688832879070000e-01, + -5.473799109460000e-01, + -5.546959638600000e-01, + -1.267769694330000e+00, + -5.906726837160000e+00, + 6.399456024170000e+00, + 2.116706848140000e+00, + -2.770149230960000e+00, + 3.465694904330000e+00, + -2.349740743640000e+00, + 4.463082790370000e+00, + -1.937551975250000e+00, + -1.088250994680000e+00, + -4.497871398930000e+00, + 1.099688720700000e+01, + 7.885829448700000e+00, + -8.325781822200000e+00, + 6.890700340270000e+00, + -3.725069522860000e+00, + -3.195156335830000e+00, + 1.807723164560000e+00, + -2.168290019040000e-01, + 4.370716094970000e+00, + 6.604981422420000e-01, + -2.666283845900000e+00, + -9.519326090810000e-01, + -2.008402585980000e+00, + 1.265221714970000e+00, + 2.837913036350000e+00, + -1.311078429220000e+00, + 4.131291866300000e+00, + 1.084021292630000e-02, + 4.937476634980000e+00, + -6.612362861630000e+00, + 1.362423449750000e-01, + 7.644797563550000e-01, + -5.134293079380000e+00, + -5.900506973270000e+00, + 7.973436832430000e+00, + -1.158463284370000e-01, + -4.951167404650000e-01, + -3.824866771700000e+00, + 3.012288808820000e+00, + -3.216889619830000e+00, + 9.534167289730000e+00, + -4.062667846680000e+00, + -6.118591308590000e+00, + 9.179609298710000e+00, + -7.370699405670000e+00, + -7.602483749390000e+00, + 1.252717733380000e+00, + 7.073451042180000e+00, + -4.692871093750000e+00, + -1.319898247720000e+00, + -5.264055252080000e+00, + 6.162046432500000e+00, + 1.671472072600000e+00, + 1.382706046100000e+00, + 1.216690063480000e+00, + 1.272401571270000e+00, + 1.597516655920000e+00, + -1.599194407460000e+00, + 6.021194934840000e+00, + 4.972223758700000e+00, + -9.441192746160000e-01, + -3.318702936170000e+00, + 2.210049033160000e-01, + 2.399724721910000e+00, + -3.404025077820000e+00, + 5.114430904390000e+00, + 3.760994970800000e-01, + 6.527415275570000e+00, + -1.442129254340000e+00, + -9.371951818470000e-01, + -5.474289894100000e+00, + -5.705310821530000e+00, + -2.654896736150000e+00, + -4.610788822170000e+00, + 1.871541619300000e+00, + 1.405208826070000e+00, + 1.282565355300000e+00, + 1.024914860730000e+00, + -5.732130408290000e-01, + 6.300012588500000e+00, + -1.462324857710000e+00, + 4.111507415770000e+00, + -2.857260942460000e+00, + -9.345955848690000e-01, + 1.965066790580000e+00, + -1.526405692100000e+00, + -7.863797664640000e+00, + 7.974499225620000e+00, + -3.334734678270000e+00, + -9.204130172730000e-01, + -1.224709987640000e+00, + -5.032290458680000e+00, + -1.558441519740000e-01, + -9.648708701130000e-01, + 2.132143497470000e+00, + 5.419144630430000e+00, + -1.193050980570000e+00, + 8.725531697270000e-01, + 5.818655490880000e+00, + 5.647500514980000e+00, + -2.679300069810000e+00, + -3.496709108350000e+00, + 5.083408832550000e+00, + 1.623246073720000e-01, + 5.976384639740000e+00, + 7.511629462240000e-01, + 1.976661205290000e+00, + -1.178442835810000e+00, + 5.623803615570000e+00, + 1.409610033040000e+00, + 1.526618957520000e+00, + -8.383871078489999e+00, + -4.817436218260000e+00, + -1.780376672740000e+00, + 1.411272764210000e+00, + -5.634473800660000e+00, + 6.516299247740000e+00, + 8.894454240800000e-01, + 3.306251287460000e+00, + -4.352950572970000e+00, + -6.571357727050000e+00, + -4.640527248380000e+00, + -2.314442396160000e+00, + -4.217411994930000e+00, + -3.259379148480000e+00, + -2.397648096080000e+00, + -7.737702727320001e-01, + -3.619741439820000e+00, + 1.969482421880000e+00, + 7.075061321260000e+00, + -2.870953977110000e-01, + 1.076861858370000e+00, + 1.299887418750000e+00, + 1.377816200260000e+00, + 1.396229028700000e+00, + 1.534443736080000e+00, + -1.724255204200000e+00, + 5.790894508360000e+00, + 4.993019104000000e+00, + -7.544633150100000e-01, + -3.138109207150000e+00, + 3.700281977650000e-01, + 2.623807668690000e+00, + -3.492061614990000e+00, + 5.171502590180000e+00, + 2.581118047240000e-01, + 6.899861812590000e+00, + -1.351630806920000e+00, + -7.796894311900000e-01, + -5.215098857880000e+00, + -5.674092292790000e+00, + -2.165389776230000e+00, + -5.093574523930000e+00, + 1.198214292530000e+00, + 1.849053502080000e+00, + 2.197909593580000e+00, + 1.050450801850000e+00, + -1.222113966940000e+00, + 5.710752964020000e+00, + -7.106609344480000e-01, + 6.353747367860000e+00, + -3.824045419690000e+00, + 4.246521741150000e-02, + 3.350869178770000e+00, + -1.093814373020000e+00, + -7.001740932460000e+00, + 8.227822303769999e+00, + -4.281308650970000e+00, + 3.117996752260000e-01, + -1.273538112640000e+00, + -6.117588996890000e+00, + -6.773138642310000e-01, + -2.204962253570000e+00, + 2.372755765910000e+00, + 5.895144462590000e+00, + -1.118353962900000e+00, + 1.500329971310000e+00, + 6.400833606720000e+00, + 6.337368011470000e+00, + -2.473005771640000e+00, + -5.005039691930000e+00, + 4.082904338840000e+00, + -2.425089776520000e-01, + 6.983726501460000e+00, + 1.543465733530000e+00, + 4.262635111810000e-01, + -9.740355610850000e-01, + 5.885038375850000e+00, + 2.283135890960000e+00, + 1.118287086490000e+00, + -6.385491847990000e+00, + -5.433545112610000e+00, + -1.075965881350000e+00, + 1.668019413950000e+00, + -5.157408714290000e+00, + 5.636109828950000e+00, + 6.950752437110000e-02, + 1.507470965390000e+00, + -4.669510364530000e+00, + -6.828546524050000e+00, + -4.535458564760000e+00, + -3.975356340410000e+00, + -4.943063735960000e+00, + -3.245302677150000e+00, + -1.284107208250000e+00, + -1.233309507370000e+00, + -2.409790754320000e+00, + 2.255821228030000e+00, + 4.611665725710000e+00, + -2.362679839130000e-01, + -4.233990907670000e-01, + -3.307518959050000e-01, + -3.780182003970000e-01, + -3.128280639650000e-01, + 2.050005793570000e-01, + -1.902777194980000e+00, + -1.197003602980000e+00, + 4.154344499110000e-01, + 1.349897027020000e+00, + -2.594850957390000e-01, + 7.102603316310000e-01, + -1.176865100860000e+00, + -1.212145328520000e+00, + -5.847746729850000e-01, + 2.796008825300000e+00, + 6.523326635359999e-01, + -6.556310690940000e-04, + -1.356379151340000e+00, + 8.949010968210001e-01, + -2.806351661680000e+00, + -1.056799292560000e+00, + 3.537518739700000e+00, + -1.093770384790000e+00, + -9.385579079390000e-02, + -5.159207582470000e-01, + 3.063142001630000e-01, + -1.111986637120000e+00, + -6.696058511730000e-01, + 2.126640081410000e+00, + 6.156808733940000e-01, + -1.804017424580000e-01, + 1.763042449950000e+00, + -1.893349885940000e+00, + -3.121951818470000e+00, + -1.890148639680000e+00, + 1.382924199100000e+00, + 3.942583203320000e-01, + -6.083357334140000e-01, + 2.996712923050000e+00, + 4.297142982480000e+00, + 1.961818218230000e+00, + 1.532641410830000e+00, + -2.182341575620000e+00, + 1.123181819920000e+00, + -1.403086662290000e+00, + 4.773101329800000e+00, + 5.837465524670000e-01, + -1.869335532190000e+00, + -1.602475285530000e+00, + -1.676678895950000e+00, + 2.423586323860000e-02, + -5.321421660480000e-03, + 1.978112578390000e+00, + 1.926455378530000e+00, + -1.712528467180000e-01, + -1.404221057890000e+00, + -1.769524097440000e+00, + -3.590455949310000e-01, + -2.684728205200000e-01, + 9.813191890720000e-01, + 9.482166767120001e-01, + 8.312159180640000e-01, + -6.103643774990000e-01, + -3.970108270650000e+00, + -1.506147027020000e+00, + -7.910917997360000e-01, + -1.219961643220000e+00, + 6.742878556250000e-01, + -3.955358028410000e+00, + 2.228822469710000e+00, + -2.834344387050000e+00, + 5.447391510010000e+00, + 3.804466485980000e+00, + -2.786358356480000e+00, + 2.541719675060000e+00, + 7.579357028010000e-01, + -3.041516840460000e-01, + -1.915239214900000e+00, + -9.905338287350000e-01, + -2.595335245130000e-01, + -7.980322837830000e-01, + -4.440670311450000e-01, + -3.079328536990000e-01, + -3.280633986000000e-01, + -1.879201412200000e+00, + -1.029882907870000e+00, + 6.345024108889999e-01, + 1.837613701820000e+00, + 4.179567694660000e-01, + 5.101495981220000e-01, + -7.921802997590000e-01, + -1.465670108800000e+00, + -6.860923767090000e-01, + 2.815792560580000e+00, + 5.147851705549999e-01, + 2.362192869190000e-01, + -1.229479908940000e+00, + 1.060531258580000e+00, + -2.642836570740000e+00, + -4.867842793460000e-01, + 3.605108737950000e+00, + -3.169025853280000e-02, + 3.279826045040000e-02, + 1.797982007270000e-01, + 1.970982253550000e-01, + -2.100243330000000e+00, + -1.353054285050000e+00, + 2.496744871140000e+00, + -5.411782264710000e-01, + 1.286158084870000e+00, + 5.331600904460000e-01, + -5.694499015810000e-01, + -2.364454030990000e+00, + -1.677543759350000e+00, + 6.271851062770000e-01, + 9.264468550680000e-01, + -1.707674562930000e-01, + 4.267124176030000e+00, + 3.862078189850000e+00, + 2.574265718460000e+00, + 1.107497930530000e+00, + -1.496396183970000e+00, + 2.403694629670000e+00, + -1.375440478320000e+00, + 4.456990242000000e+00, + 1.450972706080000e-01, + 2.611356079580000e-01, + -1.428619384770000e+00, + -1.454401731490000e+00, + -4.370582699780000e-01, + -1.364598721270000e-01, + 4.130237102510000e+00, + 1.471868276600000e+00, + -5.041069388390000e-01, + -3.666451275350000e-01, + -1.545351386070000e+00, + -2.385272532700000e-01, + -9.147500395770000e-01, + 1.341449499130000e+00, + -5.709527730940001e-01, + -4.341213405130000e-01, + -1.256061047320000e-01, + -5.102880001070000e+00, + -1.276560306550000e+00, + 9.103066325190000e-01, + 1.056028008460000e+00, + -1.319430112840000e+00, + -4.231683731080000e+00, + 2.763991117480000e+00, + -2.683750629430000e+00, + 5.118014812470000e+00, + 3.123364686970000e+00, + -2.350710630420000e+00, + 2.602484703060000e+00, + 1.574999988080000e-01, + -1.821534395220000e+00, + -1.170163154600000e+00, + -8.978368639950000e-01, + -1.348096579310000e-01, + -5.629182234410000e-02, + 5.462113395330000e-02, + 5.300435423850000e-01, + 1.279118657110000e-02, + -6.222907900810000e-01, + -5.620745658870000e+00, + 5.563290119170000e-01, + 6.444770812990000e+00, + -3.791064262390000e+00, + 3.570183277130000e+00, + -2.458646535870000e+00, + -2.051130056380000e+00, + -3.725753784180000e+00, + 4.331655025480000e+00, + -1.380049347880000e+00, + 7.184788703920000e+00, + 4.735786437990000e+00, + -5.798036098480000e+00, + -2.481048107150000e+00, + 9.586657524110000e+00, + -7.330615043640000e+00, + 3.776277229190000e-02, + 1.241752654310000e-01, + -3.832749724390000e-01, + 2.876497507100000e-01, + 1.135045960550000e-01, + -5.989131450650000e+00, + 6.714605331420000e+00, + 1.933011054990000e+00, + -5.002589225770000e+00, + 2.712304115300000e+00, + -3.259890079500000e+00, + 5.059733867650000e+00, + -2.522526979450000e+00, + -1.945836693050000e-01, + -4.860161304470000e+00, + 1.106700420380000e+01, + 7.318109035490000e+00, + -8.015228271480000e+00, + 7.092762470250000e+00, + -4.073154926300000e+00, + -4.265836238860000e+00, + 1.659213542940000e+00, + -5.674447417260000e-01, + 3.934677600860000e+00, + -7.358465194700000e-01, + -1.623081922530000e+00, + -1.278175115590000e+00, + -1.192666888240000e+00, + 3.264663815500000e-01, + 3.941134214400000e+00, + -1.915297985080000e+00, + 3.748243808750000e+00, + -4.870995134120000e-02, + 5.414947986600000e+00, + -5.690869808200000e+00, + 2.550929486750000e-01, + -8.364929556850000e-01, + -4.784433841710000e+00, + -6.424063682560000e+00, + 7.803835392000000e+00, + 4.557416960600000e-02, + -1.919922947880000e+00, + -5.167255878450000e+00, + 2.717478990550000e+00, + -3.494027853010000e+00, + 9.969945907590001e+00, + -3.094795465470000e+00, + -4.923828125000000e+00, + 9.190230369569999e+00, + -5.307402133940000e+00, + -8.958570480350000e+00, + -1.651335835460000e+00, + 5.449842929840000e+00, + -3.138514041900000e+00, + -3.130196094510000e+00, + -4.553688526150000e+00, + 5.831787109380000e+00, + -2.790851891040000e-01, + 1.312943249940000e-01, + -1.012955904010000e-01, + -3.006404340270000e-01, + 7.198235988620000e-01, + -3.469342291360000e-01, + -5.615790843960000e+00, + 6.391180157660000e-01, + 7.045702457430000e+00, + -3.966348409650000e+00, + 3.339083909990000e+00, + -3.102877140050000e+00, + -2.156297922130000e+00, + -3.669284820560000e+00, + 4.448523998260000e+00, + -1.212516903880000e+00, + 7.424252033230000e+00, + 5.090802192690000e+00, + -5.968808174130000e+00, + -2.434586524960000e+00, + 9.233248710630001e+00, + -7.430667877200000e+00, + -4.895593523980000e-01, + -7.637534737590000e-01, + -4.531853199010000e-01, + 9.240593761210000e-02, + -1.211181521420000e+00, + -5.528038501740000e+00, + 6.970568656920000e+00, + 1.814000844960000e+00, + -3.673092842100000e+00, + 4.042348861690000e+00, + -2.978319168090000e+00, + 5.648167133330000e+00, + -2.267800092700000e+00, + -5.337923765180000e-01, + -3.211810827260000e+00, + 1.121703338620000e+01, + 7.509406089780000e+00, + -8.288635253910000e+00, + 6.617247104640000e+00, + -4.607850551610000e+00, + -3.983819961550000e+00, + 1.748275756840000e+00, + -8.083574175829999e-01, + 3.986589193340000e+00, + 4.404475092890000e-01, + -1.983340859410000e+00, + 2.753326296810000e-02, + -2.177740812300000e+00, + 4.762385487560000e-01, + 5.220845222470000e+00, + -9.471508860590000e-01, + 4.494924545290000e+00, + 5.001733452080000e-02, + 4.562266826630000e+00, + -6.119685173030000e+00, + 5.742893815040000e-01, + 4.660850018260000e-02, + -5.216035366060000e+00, + -8.194940567020000e+00, + 7.262184143070000e+00, + 1.875482052560000e-01, + -9.010363221170000e-01, + -5.169379711150000e+00, + 3.145995855330000e+00, + -2.574191570280000e+00, + 9.796687126160000e+00, + -2.954511880870000e+00, + -5.040464878080000e+00, + 8.514045715330001e+00, + -6.818948745730000e+00, + -7.055881977080000e+00, + -7.863004803660000e-01, + 5.464551925660000e+00, + -3.244366884230000e+00, + -3.587097883220000e+00, + -5.872435092930000e+00, + 6.479990482330000e+00, + 1.473139882090000e+00, + 1.469832301140000e+00, + 1.529727101330000e+00, + 1.743964076040000e+00, + 1.340139985080000e+00, + -1.645560026170000e+00, + 5.974663734440000e+00, + 4.929373741150000e+00, + -8.372254967690000e-01, + -3.281121730800000e+00, + 3.714879155160000e-01, + 2.043320178990000e+00, + -3.414638280870000e+00, + 5.152253627780000e+00, + 1.365367025140000e-01, + 6.475867748260000e+00, + -1.403047204020000e+00, + -3.595560491090000e-01, + -5.167046070100000e+00, + -5.663592815400000e+00, + -2.762979507450000e+00, + -5.363420963290000e+00, + 6.175180673600000e-01, + 1.147397041320000e+00, + 1.956916570660000e+00, + 1.141140103340000e+00, + -1.948997735980000e+00, + 6.671391963960000e+00, + -1.390423059460000e+00, + 5.143841743470000e+00, + -2.115599870680000e+00, + 1.033315211530000e-01, + 3.799965858460000e+00, + -9.523352980610000e-01, + -7.874449253080000e+00, + 8.286314010620000e+00, + -4.338346004490000e+00, + -8.501306176190000e-01, + -1.467125892640000e+00, + -5.947125434880000e+00, + 3.558326959610000e-01, + -2.371031284330000e+00, + 2.195535182950000e+00, + 5.201255321500000e+00, + -1.365932703020000e+00, + 9.642307162280001e-01, + 5.256888866420000e+00, + 5.280373573300000e+00, + -2.332715272900000e+00, + -2.876176834110000e+00, + 4.521112442020000e+00, + -4.468781054020000e-01, + 6.707066059110000e+00, + 1.140393495560000e+00, + 1.283886075020000e+00, + -1.780237555500000e+00, + 6.003847599030000e+00, + 1.480345010760000e+00, + 1.897585272790000e+00, + -6.943630218510000e+00, + -4.816731452940000e+00, + -1.675798416140000e+00, + 1.393540263180000e+00, + -4.723088741300000e+00, + 6.266987323760000e+00, + 9.734268188480000e-01, + 1.791382908820000e+00, + -5.058745384220000e+00, + -5.279731273650000e+00, + -6.306566238400000e+00, + -2.279648303990000e+00, + -4.891089916230000e+00, + -3.145198345180000e+00, + -2.315313816070000e+00, + -1.007953166960000e+00, + -3.404786109920000e+00, + 2.338162422180000e+00, + 4.730127811430000e+00, + -8.202534914020000e-01, + 1.562910676000000e+00, + 1.396149277690000e+00, + 1.381773591040000e+00, + 1.206902861600000e+00, + 1.730254173280000e+00, + -1.643328309060000e+00, + 5.925371170040000e+00, + 5.114136695860000e+00, + -8.247310519220000e-01, + -3.438681364060000e+00, + 2.500281035900000e-01, + 2.422634363170000e+00, + -3.515970230100000e+00, + 5.163506507870000e+00, + 2.808404564860000e-01, + 7.053088188170000e+00, + -1.330405354500000e+00, + -6.657603383060000e-01, + -4.805204391480000e+00, + -5.732730865480000e+00, + -2.489162445070000e+00, + -4.979592800140000e+00, + 1.077151179310000e+00, + 2.029282093050000e+00, + 1.520607233050000e+00, + 1.643731236460000e+00, + -2.348889112470000e+00, + 5.979834079740000e+00, + -1.485217094420000e+00, + 5.037480354310000e+00, + -2.690681934360000e+00, + -5.554484725000000e-01, + 2.730396032330000e+00, + -1.051784753800000e+00, + -7.988756656650000e+00, + 8.673068046570000e+00, + -3.477941989900000e+00, + -1.291551470760000e+00, + -1.290139317510000e+00, + -3.937511205670000e+00, + -3.408012986180000e-01, + -1.058915734290000e+00, + 5.882130563260000e-02, + 4.933176517490000e+00, + -5.991879105570000e-01, + 4.725484550000000e-01, + 5.131604671480000e+00, + 6.313231468200000e+00, + -2.282119035720000e+00, + -3.521163225170000e+00, + 4.566022872920000e+00, + -2.760171890260000e-01, + 5.699569702150000e+00, + 1.042226910590000e+00, + 1.488152861600000e+00, + -1.929111003880000e+00, + 6.714785099030000e+00, + 8.806449174880000e-01, + 1.434056162830000e+00, + -7.463029861450000e+00, + -4.369025707240000e+00, + -2.805216073990000e+00, + 8.466911911960000e-01, + -4.450026988980000e+00, + 6.162963867190000e+00, + 9.867643117900000e-01, + 2.710282087330000e+00, + -3.256208658220000e+00, + -5.976657867430000e+00, + -3.359275817870000e+00, + -2.199934959410000e+00, + -4.577464103700000e+00, + -4.472189426420000e+00, + -1.850878357890000e+00, + -1.130899667740000e+00, + -4.551194190980000e+00, + 2.269654273990000e+00, + 5.188036918640000e+00, + -1.952023506160000e+00, + -4.954236447810000e-01, + 9.630039334300000e-02, + -3.184063732620000e-01, + -5.851478576660000e-01, + -1.176833659410000e-01, + -1.728429198270000e+00, + -1.058059453960000e+00, + 3.816083371640000e-01, + 2.583181619640000e+00, + 5.336886048320000e-01, + 5.523685812950000e-01, + -1.563004732130000e+00, + -1.452269077300000e+00, + -5.407794117930000e-01, + 3.164955139160000e+00, + 3.538061380390000e-01, + 7.021473348140000e-02, + -1.088390588760000e+00, + 8.740189075470000e-01, + -3.273886442180000e+00, + -1.189905881880000e+00, + 3.684658050540000e+00, + -3.157815635200000e-01, + -4.011771082880000e-01, + -1.462101936340000e+00, + 5.112016797070000e-01, + -1.701744556430000e+00, + -4.824635982510000e-01, + 1.387781500820000e+00, + -4.491697251800000e-01, + 1.183879375460000e-01, + 1.312765955920000e+00, + -7.258174419400000e-01, + -2.397994041440000e+00, + -2.917243003850000e+00, + -8.608805537220000e-01, + 8.291152119640000e-01, + -9.825276732440000e-01, + 2.622351646420000e+00, + 2.832519292830000e+00, + 2.819212913510000e+00, + 1.511409521100000e+00, + -1.935783863070000e+00, + 2.146057367320000e+00, + -1.846030354500000e+00, + 4.232032775880000e+00, + 1.302707314490000e+00, + 1.313115835190000e+00, + -6.924232244490000e-01, + -2.665469169620000e+00, + 7.677371799950000e-02, + -2.893105447290000e-01, + 1.617073774340000e+00, + 1.967341899870000e+00, + -2.754529714580000e-01, + -1.410480499270000e+00, + -1.729555010800000e+00, + -3.285384178160000e-01, + -1.047558426860000e+00, + 8.053521513940000e-01, + -7.595547437670001e-01, + 4.224091172220000e-01, + -3.736591935160000e-01, + -4.628086090090000e+00, + -1.612329125400000e+00, + 2.667554318900000e-01, + -5.952094197270000e-01, + -3.712845146660000e-01, + -3.291682243350000e+00, + 2.238102197650000e+00, + -3.081593036650000e+00, + 4.913560390470000e+00, + 3.352231502530000e+00, + -2.475161075590000e+00, + 2.081869602200000e+00, + 3.582468330860000e-01, + -8.866502642630000e-01, + -5.451875925060000e-01, + -8.671821355820000e-01, + -2.110865712170000e-01, + -2.696687281130000e-01, + -3.445219099520000e-01, + -4.401561617850000e-02, + -3.607533872130000e-01, + -1.526739954950000e+00, + -1.239569783210000e+00, + 4.868402183060000e-01, + 2.434410810470000e+00, + 5.923488736150000e-01, + 4.890191555020000e-01, + -4.454102516170000e-01, + -1.592770814900000e+00, + -5.278856754300000e-01, + 2.838347435000000e+00, + 7.574330568310000e-01, + 8.163840323690000e-02, + -1.090086102490000e+00, + 1.038177967070000e+00, + -3.377530336380000e+00, + -8.534768223760000e-01, + 3.473992347720000e+00, + -3.755191266540000e-01, + -3.780155181880000e-01, + -6.374945398420000e-03, + -8.016998879610000e-03, + -2.344965696330000e+00, + -9.719617962840000e-01, + 2.178362607960000e+00, + 2.279379814860000e-01, + 1.725466847420000e-01, + 1.925041556360000e+00, + -1.575118184090000e+00, + -4.332554817200000e+00, + -2.532917737960000e+00, + 3.814282715320000e-01, + -2.057105451820000e-01, + -7.682327032089999e-01, + 4.673546314240000e+00, + 1.597869157790000e+00, + 2.611971855160000e+00, + 5.849294662480000e-01, + -2.521933794020000e+00, + 2.762561559680000e+00, + -1.051187276840000e+00, + 4.261813640590000e+00, + 2.667200267310000e-01, + -3.420495688920000e-01, + -2.035579442980000e+00, + -1.405281305310000e+00, + -7.765718102460000e-01, + -6.499280929570000e-01, + 1.763329386710000e+00, + 5.298569202420000e-01, + -5.096073746680000e-01, + -2.236175060270000e+00, + -1.349482536320000e+00, + -2.998020946980000e-01, + -3.102149367330000e-01, + 2.224605321880000e+00, + -9.326818585400000e-01, + -2.175114005800000e-01, + -8.451591134070000e-01, + -4.059743404390000e+00, + -1.145408153530000e+00, + 1.274530291560000e-01, + -3.608866631980000e-01, + 3.610935807230000e-01, + -3.617724657060000e+00, + 8.818155527110000e-01, + -3.569350481030000e+00, + 3.831765413280000e+00, + 3.320576190950000e+00, + -2.361934423450000e+00, + 2.969981431960000e+00, + 9.860735535620000e-01, + -1.051523327830000e+00, + -4.139063954350000e-01, + -6.196853518490000e-01, + 2.390057742600000e-01, + -1.650068163870000e-02, + 5.495019629600000e-02, + -1.244551315900000e-01, + -4.329058900480000e-02, + -5.625149011610000e-01, + -5.780761718750000e+00, + 6.408281326290000e-01, + 6.686168193820000e+00, + -3.754837512970000e+00, + 3.561810255050000e+00, + -3.328578233720000e+00, + -2.194950342180000e+00, + -3.480397939680000e+00, + 4.570493221280000e+00, + -1.973471879960000e+00, + 7.184565544130000e+00, + 4.909942626950000e+00, + -5.706308841710000e+00, + -1.670988321300000e+00, + 9.885741233830000e+00, + -7.237628459930000e+00, + -1.371758431200000e-01, + -7.561953365800000e-02, + 3.175275921820000e-01, + 5.581315159800000e-01, + -2.257327795030000e+00, + -5.150828361510000e+00, + 6.905486583710000e+00, + 4.917994439600000e-01, + -4.232512950900000e+00, + 3.224992752080000e+00, + -3.525200605390000e+00, + 5.056706905360000e+00, + -4.839590191840000e-01, + -5.653645992280000e-01, + -4.504390716550000e+00, + 1.159205627440000e+01, + 7.430785655980000e+00, + -8.221033096310000e+00, + 7.157903671260000e+00, + -2.976283311840000e+00, + -3.466474056240000e+00, + 2.183603286740000e+00, + -9.339309930800000e-01, + 3.026692628860000e+00, + -2.878772616390000e-01, + -1.233835101130000e+00, + -2.622945308690000e-01, + -2.598560571670000e+00, + 4.487233161930000e-01, + 3.767940759660000e+00, + -9.648258090020000e-01, + 3.435242414470000e+00, + 2.607616782190000e-02, + 6.556675434110000e+00, + -6.824776172640000e+00, + 2.141490876670000e-01, + -2.273531258110000e-01, + -5.144422054290000e+00, + -7.153268814090000e+00, + 8.132098197940000e+00, + -6.124831438060000e-01, + -2.167731523510000e+00, + -5.149948120120000e+00, + 2.319758415220000e+00, + -1.734341859820000e+00, + 9.210477828980000e+00, + -2.051497459410000e+00, + -6.545710086820000e+00, + 9.147270202640000e+00, + -5.504539012910000e+00, + -8.121623992920000e+00, + -1.175635576250000e+00, + 5.873039722440000e+00, + -2.836010217670000e+00, + -3.660840988160000e+00, + -5.292478561400000e+00, + 5.190472126010000e+00, + 1.097427085040000e-01, + 7.388375699520000e-02, + -3.744917511940000e-01, + 2.726270854470000e-01, + 3.992546796800000e-01, + -9.162760376930000e-01, + -5.696990013120000e+00, + 6.348074674610000e-01, + 6.654086589810000e+00, + -3.827022790910000e+00, + 3.431157827380000e+00, + -3.304642677310000e+00, + -2.470614671710000e+00, + -3.709882259370000e+00, + 4.377562999730000e+00, + -1.537935376170000e+00, + 7.278344631200000e+00, + 5.295023441310000e+00, + -6.479208946230000e+00, + -2.165273904800000e+00, + 9.480891227720001e+00, + -7.162533283230000e+00, + 2.221597433090000e-01, + -2.290125340220000e-01, + 5.550120025870000e-02, + -6.757712364200000e-02, + -1.978412032130000e+00, + -5.631875038150000e+00, + 6.390772819520000e+00, + 1.861925840380000e+00, + -4.501982688900000e+00, + 2.783068418500000e+00, + -3.697699785230000e+00, + 3.318601369860000e+00, + -1.240809798240000e+00, + -2.143391847610000e+00, + -4.213243007660000e+00, + 1.012477016450000e+01, + 7.654011249540000e+00, + -8.557167053220001e+00, + 6.957873344420000e+00, + -2.587095022200000e+00, + -4.267830848690000e+00, + 1.960426449780000e+00, + -7.617903351780000e-01, + 4.019281864170000e+00, + -8.890382647510000e-01, + -2.142586946490000e+00, + -8.809746801850001e-02, + -4.016747951510000e+00, + 6.510511636730000e-01, + 4.019752025600000e+00, + -2.823057174680000e+00, + 3.279664993290000e+00, + 1.976335048680000e-01, + 5.274082183840000e+00, + -5.885267257690000e+00, + -1.483197450640000e+00, + -9.960722178220000e-02, + -5.729674816130000e+00, + -6.718968391420000e+00, + 8.174727439880000e+00, + -2.560167014600000e-02, + -2.189326047900000e+00, + -4.390578269960000e+00, + 2.473409891130000e+00, + -2.504863500600000e+00, + 9.154690742490001e+00, + -3.034811496730000e+00, + -5.985521793370000e+00, + 1.016951656340000e+01, + -5.435202598570000e+00, + -7.633999347690000e+00, + -1.421924829480000e+00, + 6.893656730650000e+00, + -3.087685108180000e+00, + -4.231507778170000e+00, + -5.247121810910000e+00, + 5.780349254610000e+00, + 1.440033078190000e+00, + 1.534111738200000e+00, + 1.383448600770000e+00, + 1.139324069020000e+00, + 2.416888713840000e+00, + -1.879453182220000e+00, + 5.891138076780000e+00, + 5.117608547210000e+00, + -9.468476176260000e-01, + -3.215151071550000e+00, + 2.163019329310000e-01, + 2.409771919250000e+00, + -3.392404317860000e+00, + 5.143765926360000e+00, + 2.748197615150000e-01, + 6.604756832120000e+00, + -1.719796180730000e+00, + -4.825215935710000e-01, + -5.285556316380000e+00, + -6.022062301640000e+00, + -2.408400058750000e+00, + -4.662248611450000e+00, + 2.105642557140000e+00, + 1.499904394150000e+00, + 2.066007614140000e+00, + 1.556731224060000e+00, + -1.944275617600000e+00, + 6.375853061680000e+00, + -8.138700723650000e-01, + 5.149823665620000e+00, + -3.290620327000000e+00, + 1.894654482600000e-01, + 3.216833591460000e+00, + -1.750070333480000e+00, + -6.621227264400000e+00, + 7.685282707210000e+00, + -4.117207050320000e+00, + -1.950948119160000e+00, + -2.591961324210000e-01, + -6.711686611180000e+00, + -2.125997543330000e+00, + -1.691712737080000e+00, + 2.265577077870000e+00, + 6.144057750700000e+00, + -1.515728831290000e+00, + 1.672039866450000e+00, + 4.991753101350000e+00, + 6.744628906250000e+00, + -1.787082076070000e+00, + -3.791892528530000e+00, + 4.847569465640000e+00, + -8.495318703350000e-03, + 7.443083286290000e+00, + -5.489004850390000e-01, + 1.501438498500000e+00, + -1.868498325350000e+00, + 5.653799533840000e+00, + 1.319609403610000e+00, + 6.409749984740000e-01, + -6.462902545930000e+00, + -5.633195877080000e+00, + -8.546414375310000e-01, + 1.492079854010000e+00, + -4.839412689210000e+00, + 5.901312828060000e+00, + 1.003164887430000e+00, + 3.378984928130000e+00, + -4.071218967440000e+00, + -6.520062446590000e+00, + -5.375623703000000e+00, + -1.592357158660000e+00, + -4.512174606320000e+00, + -3.260097742080000e+00, + -7.501913905140000e-01, + -3.019345402720000e-01, + -4.141042709350000e+00, + 2.247053384780000e+00, + 4.043311119080000e+00, + 5.929422751070000e-02, + 1.440359711650000e+00, + 1.397757649420000e+00, + 9.660503268240000e-01, + 1.336689949040000e+00, + 1.592161655430000e+00, + -1.412097454070000e+00, + 5.935219287870000e+00, + 4.900431156160000e+00, + -6.616646051410000e-01, + -3.420863389970000e+00, + 5.320373177530000e-01, + 2.529368162160000e+00, + -3.941810846330000e+00, + 5.199751853940000e+00, + 4.239284098150000e-01, + 6.541969776150000e+00, + -1.377057194710000e+00, + -7.198884487150000e-01, + -5.031365871430000e+00, + -5.803862571720000e+00, + -2.631097555160000e+00, + -4.602808952330000e+00, + -6.846375018360000e-02, + 1.015765786170000e+00, + 1.658232569690000e+00, + 1.185041427610000e+00, + -2.140141487120000e+00, + 6.023552894590000e+00, + -1.107941389080000e+00, + 5.669359207150000e+00, + -4.020665168760000e+00, + -1.618736237290000e-01, + 2.340028047560000e+00, + -1.286987781520000e+00, + -6.942368030550000e+00, + 6.680431842800000e+00, + -2.351549625400000e+00, + -1.829169273380000e+00, + -1.737603068350000e+00, + -6.455897331240000e+00, + -1.696766138080000e+00, + -1.442632317540000e+00, + 1.372802972790000e+00, + 5.675627708440000e+00, + -6.372443437580000e-01, + 4.903109278530000e-03, + 5.146330356600000e+00, + 5.855799198150000e+00, + -2.237656593320000e+00, + -3.914056777950000e+00, + 3.446465492250000e+00, + 8.846763372420000e-01, + 7.264164447780000e+00, + 3.541338145730000e-01, + 1.666694998740000e+00, + -6.679480671880000e-01, + 5.335843563080000e+00, + 3.241224586960000e-01, + 2.034779310230000e+00, + -6.312550544740000e+00, + -5.645781040190000e+00, + -1.208509564400000e+00, + 1.880561232570000e+00, + -6.073185443880000e+00, + 5.335227966310000e+00, + 8.883227705960000e-01, + 2.550124883650000e+00, + -4.177361011510000e+00, + -6.343361377720000e+00, + -5.253414154050000e+00, + -1.985381364820000e+00, + -4.338924884800000e+00, + -3.139545440670000e+00, + -1.199625372890000e+00, + -3.912411928180000e-01, + -5.053983688350000e+00, + 1.561952114110000e+00, + 5.110955238340000e+00, + -4.496771097180000e-02, + -2.671839892860000e-01, + -5.041314959530000e-01, + -3.262102603910000e-01, + -6.034842133520000e-01, + 7.937848567960000e-02, + -1.798829317090000e+00, + -1.059608817100000e+00, + 1.604239940640000e-01, + 2.440678596500000e+00, + 2.759742438790000e-01, + 4.956789910790000e-01, + -6.714577078820000e-01, + -1.381951928140000e+00, + -4.290158748630000e-01, + 2.668945074080000e+00, + 1.040834546090000e+00, + 1.006484776740000e-01, + -1.272038698200000e+00, + 1.223154067990000e+00, + -2.686640501020000e+00, + -8.275954723359999e-01, + 3.482411623000000e+00, + -4.613559246060000e-01, + -2.195363789800000e-01, + -5.706311464310000e-01, + -1.341905593870000e+00, + -1.256682634350000e+00, + -3.796494603160000e-01, + 1.779741525650000e+00, + -1.683572769170000e+00, + 1.463118553160000e+00, + 1.838472127910000e+00, + -5.564075112340000e-01, + -1.842665433880000e+00, + -1.707213997840000e+00, + -7.436846941710000e-02, + 1.011846661570000e+00, + -1.508263349530000e-01, + 4.081998825070000e+00, + 4.561933517460000e+00, + 2.310111761090000e+00, + 1.374530076980000e+00, + -7.276829481120000e-01, + 1.834639549260000e+00, + -2.966485261920000e+00, + 4.880676269530000e+00, + 5.961463451390000e-01, + 8.844743967060000e-01, + -2.434759855270000e+00, + -1.129095315930000e+00, + 2.746257185940000e-01, + -7.596257925030000e-01, + 2.641224384310000e+00, + 9.895327091220000e-01, + -2.584179937840000e-01, + -7.756761312479999e-01, + -1.541452646260000e+00, + -5.356650426980000e-02, + -4.969655349850000e-02, + 1.502074360850000e+00, + -2.659190595150000e-01, + -7.462594509120000e-01, + -4.377052783970000e-01, + -3.452369689940000e+00, + -1.510538578030000e+00, + 1.762531697750000e-01, + -1.226414218540000e-01, + -7.136738896370000e-01, + -3.712340354920000e+00, + 2.189554214480000e+00, + -2.614134550090000e+00, + 4.606138229370000e+00, + 3.704012632370000e+00, + -2.554305553440000e+00, + 2.703527212140000e+00, + -1.371795088050000e-01, + -1.898821890350000e-01, + -4.443920254710000e-01, + -1.350865483280000e+00, + -7.333289086820000e-02, + -3.406770825390000e-01, + -6.798014044759999e-02, + -3.295332789420000e-01, + 3.631628155710000e-01, + -2.155672311780000e+00, + -1.263573765750000e+00, + 4.142114818100000e-01, + 1.968343615530000e+00, + 3.640393614770000e-01, + 1.089043140410000e+00, + -6.099321842190000e-01, + -1.477225422860000e+00, + -5.503276586530000e-01, + 2.917918205260000e+00, + 6.979775428770000e-01, + 7.268530130390000e-02, + -1.274828791620000e+00, + 9.742783904080000e-01, + -3.285380125050000e+00, + -7.252551913260000e-01, + 3.543587446210000e+00, + -1.149622440340000e+00, + -1.276676416400000e+00, + -4.520291686060000e-01, + -3.410087227820000e-01, + -1.907371401790000e+00, + -1.735788941380000e+00, + 1.920236825940000e+00, + -2.098462581630000e+00, + 6.034017205240000e-01, + 5.060151219370000e-01, + -6.946101188660000e-01, + -2.415764331820000e+00, + -2.100242614750000e+00, + -7.590837478640000e-01, + 5.379829406740000e-01, + -1.946210265160000e-01, + 4.287288188930000e+00, + 3.461146116260000e+00, + 2.678910493850000e+00, + 1.766013264660000e+00, + -2.283624649050000e+00, + 1.072723031040000e+00, + -4.420173764230000e-01, + 4.045392036440000e+00, + 2.388626337050000e-01, + 4.700779616830000e-01, + -1.718461036680000e+00, + -2.006448268890000e+00, + 4.689088165760000e-01, + 1.931077390910000e-01, + 2.049114465710000e+00, + 5.669925808910000e-01, + -9.483914971350000e-01, + -8.968612551689999e-01, + -4.259888827800000e-01, + -7.686042189600000e-01, + -8.742000162600000e-02, + 2.383848190310000e+00, + -1.142322897910000e+00, + 3.770088851450000e-01, + -8.843050599100000e-01, + -4.596129894260000e+00, + -1.254994034770000e+00, + 1.252301037310000e-01, + -6.453922986980000e-01, + 4.553163647650000e-01, + -3.957815885540000e+00, + 1.103888034820000e+00, + -2.892739772800000e+00, + 4.318389415740000e+00, + 3.456372499470000e+00, + -3.423533201220000e+00, + 1.780627131460000e+00, + 3.241110146050000e-01, + 3.220298290250000e-01, + -1.090567469600000e+00, + 3.000724017620000e-01, + -1.413389146330000e-01, + -1.292723715310000e-01, + -6.480518579480000e-01, + 1.195708587770000e-01, + -4.606463015080000e-01, + -5.889669060710000e-01, + -5.482410430910000e+00, + 9.208727478980000e-01, + 6.782961845400000e+00, + -4.514045238490000e+00, + 3.512472152710000e+00, + -3.048037767410000e+00, + -2.168233156200000e+00, + -3.348000526430000e+00, + 4.462976455690000e+00, + -1.586441516880000e+00, + 7.252411842350000e+00, + 5.004818916320000e+00, + -5.935353755950000e+00, + -1.914079308510000e+00, + 9.638018608090000e+00, + -7.251836299900000e+00, + 5.170164629820000e-02, + 1.827256232500000e-01, + 1.640148460870000e-01, + -3.273229897020000e-01, + -8.623086214070000e-01, + -5.468515396120000e+00, + 7.600307464600000e+00, + 1.651921033860000e+00, + -3.990563392640000e+00, + 3.173911094670000e+00, + -4.921692848210000e+00, + 4.294407844540000e+00, + -3.110652685170000e+00, + -1.173510551450000e+00, + -3.880057573320000e+00, + 1.052548694610000e+01, + 7.613237380980000e+00, + -8.055924415590001e+00, + 7.089513301850000e+00, + -3.846116542820000e+00, + -4.464421749110000e+00, + 1.819174051280000e+00, + -5.299412012100000e-01, + 3.280372619630000e+00, + 7.255870103840000e-01, + -2.106007814410000e+00, + -3.838826119900000e-01, + -2.588925600050000e+00, + 7.029555737970000e-02, + 2.586179971690000e+00, + -1.897982835770000e+00, + 3.778237581250000e+00, + 5.756236314770000e-01, + 6.402498722080000e+00, + -6.667681694030000e+00, + -3.310626745220000e-01, + 9.368266910310000e-02, + -5.202601909640000e+00, + -7.056679725650000e+00, + 7.556932926180000e+00, + 6.842770576480000e-01, + -4.501762390140000e-01, + -5.280826091770000e+00, + 3.873101711270000e+00, + -2.391642332080000e+00, + 9.898232460019999e+00, + -4.157545089720000e+00, + -5.877737998960000e+00, + 1.003059864040000e+01, + -5.492050647740000e+00, + -8.910539627080000e+00, + 2.036468684670000e-02, + 5.928071975710000e+00, + -3.465302467350000e+00, + -3.005522966380000e+00, + -5.174360275270000e+00, + 5.279490470890000e+00, + -1.969978213310000e-01, + 2.122841626410000e-01, + -1.615186929700000e-01, + -1.289718151090000e-01, + 1.315355151890000e-01, + -6.404522061350000e-01, + -5.179073333740000e+00, + -3.410785198210000e-01, + 6.867670536040000e+00, + -3.874478340150000e+00, + 3.222964763640000e+00, + -3.225362300870000e+00, + -2.099633455280000e+00, + -3.555345296860000e+00, + 4.618788242340000e+00, + -1.706225156780000e+00, + 7.021530151370000e+00, + 4.629554271700000e+00, + -7.273309230800000e+00, + -2.120186567310000e+00, + 9.559050559999999e+00, + -7.294476032260000e+00, + -1.952728331090000e-01, + 3.167000412940000e-02, + 3.350492715840000e-01, + -1.114938929680000e-01, + -1.784877538680000e+00, + -5.638971328740000e+00, + 6.537962436680000e+00, + 1.382414102550000e+00, + -3.596647977830000e+00, + 3.046489000320000e+00, + -2.967415809630000e+00, + 4.229524612430000e+00, + -2.420247077940000e+00, + -1.845707416530000e+00, + -4.082994461060000e+00, + 1.052451801300000e+01, + 7.716594219210000e+00, + -8.314017295839999e+00, + 6.615511894230000e+00, + -4.359533309940000e+00, + -2.941095590590000e+00, + 2.311798810960000e+00, + 3.656454086300000e-01, + 3.146012306210000e+00, + 4.756557345390000e-01, + -1.840639352800000e+00, + -2.151553034780000e-01, + -2.108595371250000e+00, + 7.688029408450000e-01, + 3.172787666320000e+00, + -1.335846185680000e+00, + 3.668039321900000e+00, + 6.165545582770000e-01, + 5.010084152220000e+00, + -6.176981449130000e+00, + 4.913236200810000e-01, + 2.798616290090000e-01, + -4.853959083560000e+00, + -5.788853168490000e+00, + 7.272116184230000e+00, + 8.912116289140000e-02, + 7.203363776210000e-01, + -5.187527656560000e+00, + 4.016371250150000e+00, + -1.614404797550000e+00, + 1.051435756680000e+01, + -2.931869983670000e+00, + -5.835146903990000e+00, + 9.006399154660000e+00, + -5.653305530550000e+00, + -7.757561206820000e+00, + 5.337462425230000e-01, + 7.659729957580000e+00, + -3.197444915770000e+00, + -2.720692157750000e+00, + -5.006023883820000e+00, + 5.997546195980000e+00, + 1.315834403040000e+00, + 1.236947894100000e+00, + 1.725239276890000e+00, + 1.529434084890000e+00, + 1.608418107030000e+00, + -1.435450673100000e+00, + 6.437489509580000e+00, + 5.249163627620000e+00, + -1.172518849370000e+00, + -3.725367784500000e+00, + 3.088551163670000e-01, + 2.675903320310000e+00, + -3.352737665180000e+00, + 5.304605007170000e+00, + 3.766958042980000e-02, + 6.478487014770000e+00, + -1.514284968380000e+00, + -8.521622419360000e-01, + -5.353869438170000e+00, + -5.610515594480000e+00, + -2.557165622710000e+00, + -4.662600517270000e+00, + 1.384167313580000e+00, + 1.249660015110000e+00, + 1.525475621220000e+00, + 9.833926558490000e-01, + -2.005706787110000e+00, + 5.696632862090000e+00, + -4.607843607660000e-02, + 4.340555667880000e+00, + -3.125208854680000e+00, + -6.031375378370000e-02, + 2.808682203290000e+00, + -1.574590802190000e+00, + -8.016810417180000e+00, + 8.846292495729999e+00, + -4.136003494260000e+00, + -2.454364061360000e+00, + -1.314701139930000e-01, + -7.161102771760000e+00, + -7.497686147690000e-01, + -2.743953943250000e+00, + 2.382667541500000e+00, + 5.235377311710000e+00, + -5.570136904720000e-01, + 1.144058585170000e+00, + 3.958377599720000e+00, + 5.865288734440000e+00, + -1.822181582450000e+00, + -3.981037378310000e+00, + 4.117226600650000e+00, + 8.401689529420000e-01, + 6.978123664860000e+00, + 1.873488724230000e-01, + 1.765830039980000e+00, + -1.827776551250000e+00, + 5.964866161350000e+00, + 2.257534742360000e+00, + 1.554708838460000e+00, + -5.331061840060000e+00, + -4.114905357360000e+00, + -1.817062973980000e+00, + 5.721802115440000e-01, + -5.583265781400000e+00, + 6.319465637210000e+00, + -3.977772891520000e-01, + 2.736610889430000e+00, + -3.323208332060000e+00, + -5.832833290100000e+00, + -5.784052848820000e+00, + -2.407983303070000e+00, + -4.569866657260000e+00, + -2.554126262660000e+00, + -1.771419525150000e+00, + 2.639648318290000e-01, + -3.429595947270000e+00, + 1.933232665060000e+00, + 5.576540470120000e+00, + -6.443638801570000e-01, + 1.025689959530000e+00, + 1.406928420070000e+00, + 1.391957044600000e+00, + 1.158594369890000e+00, + 1.136881947520000e+00, + -1.676271677020000e+00, + 5.467988491060000e+00, + 5.161932945250000e+00, + -8.614057302470000e-01, + -3.343585491180000e+00, + 4.490861892700000e-01, + 2.522256374360000e+00, + -3.141232252120000e+00, + 5.090906620030000e+00, + 3.530676364900000e-01, + 6.422719955440000e+00, + -1.414223432540000e+00, + -8.624930977820000e-01, + -5.248010635380000e+00, + -5.428912639620000e+00, + -2.555983304980000e+00, + -4.978996276860000e+00, + 1.592299818990000e+00, + 1.265654206280000e+00, + 2.552411317830000e+00, + 1.812573313710000e+00, + -2.467979669570000e+00, + 5.747352123260000e+00, + -1.197447299960000e+00, + 5.330732345580000e+00, + -3.885236501690000e+00, + -1.779600977900000e-01, + 2.855898857120000e+00, + -1.691747665410000e+00, + -7.376143455510000e+00, + 8.180678367610000e+00, + -3.036091327670000e+00, + -4.687014520170000e-01, + -1.075674653050000e+00, + -4.976555347440000e+00, + -7.003479599950000e-01, + -2.999761819840000e+00, + 1.947185039520000e+00, + 4.800483703610000e+00, + -1.973285675050000e+00, + 1.155506253240000e+00, + 4.903750896450000e+00, + 5.442209243770000e+00, + -1.994582533840000e+00, + -5.087524890900000e+00, + 3.897766113280000e+00, + 6.055777668950000e-01, + 6.749538421630000e+00, + 1.021763801570000e+00, + 1.645130753520000e+00, + -1.031462311740000e+00, + 5.920638561250000e+00, + 1.741979718210000e+00, + 7.843342423440000e-01, + -7.279092788700000e+00, + -3.940639734270000e+00, + -2.123372077940000e+00, + 1.328630208970000e+00, + -5.977278232570000e+00, + 6.956294059750000e+00, + 8.753211498260000e-01, + 1.627167820930000e+00, + -6.298667430880000e+00, + -6.173086166380000e+00, + -5.014435291290000e+00, + -4.373797893520000e+00, + -4.977481842040000e+00, + -2.334415197370000e+00, + -1.578914165500000e+00, + -6.015417575840000e-01, + -3.746700286870000e+00, + 4.634714126590000e+00, + 6.099231243130000e+00, + -8.040064573290000e-01, + -4.770520925520000e-01, + -8.206221461300001e-02, + -1.525128841400000e+00, + -7.379713654520000e-01, + -7.471232116220000e-02, + -1.871454596520000e+00, + -8.860660195350000e-01, + 6.802896261219999e-01, + 2.507070541380000e+00, + 2.440560162070000e-01, + 5.965924263000000e-01, + -1.054952383040000e+00, + -1.372835040090000e+00, + -6.348125934600000e-01, + 2.660183906560000e+00, + 7.056531906130000e-01, + -5.625569820400000e-02, + -1.154732465740000e+00, + 9.342826008800000e-01, + -3.024890422820000e+00, + -1.390367269520000e+00, + 3.430675983430000e+00, + -3.529499173160000e-01, + -3.366613984110000e-01, + -8.498052954670000e-01, + 1.151007190350000e-01, + -1.515071034430000e+00, + -1.306205153470000e+00, + 2.169690847400000e+00, + -1.162758827210000e+00, + 4.825961589810000e-01, + 9.293829202650000e-01, + -3.516271710400000e-01, + -2.345161199570000e+00, + -1.173280000690000e+00, + -7.170279622080000e-01, + 1.171494007110000e+00, + -8.760261535640000e-01, + 3.811171293260000e+00, + 4.386156558990000e+00, + 2.816640853880000e+00, + 1.510721683500000e+00, + -2.170363903050000e+00, + 9.637594223020000e-01, + -1.961594343190000e+00, + 4.778856277470000e+00, + -2.241803258660000e-01, + -5.853209495540000e-01, + -1.600889682770000e+00, + -1.103791713710000e+00, + -1.430722475050000e-01, + 5.622033476830000e-01, + 1.876567006110000e+00, + 2.215176105500000e+00, + -6.910967826840000e-01, + 5.324716866020000e-02, + -1.307085156440000e+00, + -1.093162536620000e+00, + -1.352198421960000e-03, + 1.378100275990000e+00, + -8.157038092609999e-01, + -9.508506655690000e-01, + -6.307514905930000e-01, + -4.569386482240000e+00, + -1.580952763560000e+00, + -9.832400083540001e-01, + -1.755745291710000e+00, + -2.407080978160000e-01, + -4.492948055270000e+00, + 1.604631096120000e-01, + -2.111095666890000e+00, + 4.718413829800000e+00, + 3.011859178540000e+00, + -2.734888076780000e+00, + 3.171588897710000e+00, + 1.637127101420000e-01, + -4.415067732330000e-01, + -3.200015425680000e-01, + -1.271702885630000e+00, + -7.091321945190000e-01, + -2.809440493580000e-01, + -4.156330525880000e-01, + 1.436431892220000e-02, + -3.729968369010000e-01, + -1.889835476880000e+00, + -9.494659304620000e-01, + 5.559225082400000e-01, + 2.541043043140000e+00, + 3.561120331290000e-01, + 5.839245915410000e-01, + -7.739443182950000e-01, + -1.082912921910000e+00, + -5.378901958470000e-01, + 2.583986282350000e+00, + 6.594786643980000e-01, + 4.601194709540000e-02, + -1.360575437550000e+00, + 1.878602623940000e+00, + -3.127734422680000e+00, + -9.944456815720000e-01, + 3.653486251830000e+00, + 3.493261933330000e-01, + -2.049037218090000e-01, + 9.352221339940001e-02, + -1.152211546900000e+00, + -1.900612473490000e+00, + -1.161824822430000e+00, + 3.037335872650000e+00, + 2.027949094770000e-01, + -7.988365292550000e-01, + 5.576454401020000e-01, + -7.951452136040000e-01, + -2.713633775710000e+00, + -2.124182939530000e+00, + -6.863325089220000e-02, + 3.783604204650000e-01, + 2.569954991340000e-01, + 3.519804239270000e+00, + 3.903752088550000e+00, + 1.926744937900000e+00, + 1.974225044250000e+00, + -5.739223957060000e-01, + 6.838971376420000e-01, + -1.196270346640000e+00, + 4.689083576200000e+00, + 2.332760095600000e-01, + 4.590682089330000e-01, + -1.817183017730000e+00, + -1.472941994670000e+00, + 6.183481216430000e-02, + 1.210182905200000e+00, + 2.418425083160000e+00, + -4.982534646990000e-01, + 3.988318741320000e-01, + -2.683296203610000e-01, + -1.494825817640000e-03, + -7.744788527490000e-01, + -3.884311020370000e-01, + 1.946358680730000e+00, + -7.437495589260000e-01, + 1.068432182070000e-01, + -2.130384594200000e-01, + -4.395282268520000e+00, + -1.169160366060000e+00, + 1.312566757200000e+00, + -1.797923892740000e-01, + 6.367284655570000e-01, + -4.144959449770000e+00, + 1.128178954120000e+00, + -2.425583124160000e+00, + 5.299242019650000e+00, + 3.976763248440000e+00, + -2.499760866170000e+00, + 2.180737257000000e+00, + -3.376857042310000e-01, + 5.293734073640000e-01, + -2.246480464940000e+00, + -1.235913872720000e+00, + -1.845134794710000e-02, + 2.252658754590000e-01, + -2.597230076790000e-01, + 1.774661540990000e-01, + -1.708346009250000e-01, + -3.675631880760000e-01, + -5.771115303040000e+00, + 1.054594516750000e+00, + 6.809940338130000e+00, + -3.933841466900000e+00, + 3.463797330860000e+00, + -3.200339555740000e+00, + -2.265947818760000e+00, + -3.650768518450000e+00, + 4.489673614500000e+00, + -1.403596878050000e+00, + 7.349400997160000e+00, + 4.965880393980000e+00, + -5.675728797910000e+00, + -2.117642879490000e+00, + 9.915066719060000e+00, + -7.602688312530000e+00, + 3.122464716430000e-01, + 3.295861184600000e-01, + 6.732712388040000e-01, + -6.533185020090000e-03, + -2.413221597670000e+00, + -5.914535999300000e+00, + 7.236226081850000e+00, + 1.501774907110000e+00, + -5.335439682010000e+00, + 2.644901037220000e+00, + -3.087227344510000e+00, + 4.932614326480000e+00, + -2.352842092510000e+00, + -1.956644415860000e+00, + -4.881480216980000e+00, + 1.010610389710000e+01, + 6.664251804350000e+00, + -8.453642845150000e+00, + 6.467041969300000e+00, + -3.577052593230000e+00, + -4.044498920440000e+00, + 1.124143362050000e+00, + -4.127550721170000e-01, + 4.307827472690000e+00, + 3.568098247050000e-01, + -3.029944419860000e+00, + -8.417513966560000e-01, + -2.108940362930000e+00, + 8.863108158110000e-01, + 3.577713489530000e+00, + -1.550276994710000e+00, + 3.924595117570000e+00, + -2.595459222790000e-01, + 6.127425670620000e+00, + -5.834469318390000e+00, + 6.713491678239999e-02, + -3.217804729940000e-01, + -4.913498401640000e+00, + -7.145429134370000e+00, + 8.151214599610000e+00, + 2.101162374020000e-01, + -1.780305981640000e+00, + -5.048459529880000e+00, + 2.873548507690000e+00, + -2.071418523790000e+00, + 1.034467411040000e+01, + -4.507504940030000e+00, + -5.854509353640000e+00, + 8.372682571409999e+00, + -6.817403316500000e+00, + -7.950105667110000e+00, + -8.515801429750000e-01, + 6.507382869720000e+00, + -3.068971157070000e+00, + -2.720636367800000e+00, + -6.419540405270000e+00, + 5.962451934810000e+00, + 2.191557437180000e-01, + -5.285398364070000e-01, + 3.457729518410000e-01, + 1.165279969570000e-01, + 3.537914529440000e-02, + -7.053385376930000e-01, + -5.708431243900000e+00, + 1.685649305580000e-01, + 6.925531864170000e+00, + -3.941758871080000e+00, + 3.442280292510000e+00, + -3.128423452380000e+00, + -2.224654674530000e+00, + -3.643352746960000e+00, + 4.306926250460000e+00, + -1.386023998260000e+00, + 6.952268600460000e+00, + 5.061918735500000e+00, + -6.017074108120000e+00, + -2.154832601550000e+00, + 9.487224578859999e+00, + -7.190415382390000e+00, + 1.009827107190000e-01, + 2.349458038810000e-01, + -5.736975669860001e-01, + -2.050903737550000e-01, + -8.047882914540000e-01, + -4.707487106320000e+00, + 7.509862422940000e+00, + 6.415427923200000e-01, + -4.886301517490000e+00, + 4.007037639620000e+00, + -2.851518392560000e+00, + 5.728325843810000e+00, + -2.041873455050000e+00, + -1.105415582660000e+00, + -3.725984096530000e+00, + 1.060609054570000e+01, + 8.572938919069999e+00, + -8.193235397340001e+00, + 6.621247291560000e+00, + -4.035547733310000e+00, + -4.537250518800000e+00, + 1.035940647130000e+00, + -3.339477479460000e-01, + 3.421254873280000e+00, + 3.234055936340000e-01, + -2.415979862210000e+00, + -9.231694936750000e-01, + -1.844797372820000e+00, + 8.497772216800000e-01, + 4.081812858580000e+00, + -2.701358318330000e+00, + 3.172343969350000e+00, + 3.009399026630000e-02, + 6.321873664860000e+00, + -5.976957798000000e+00, + -2.438058145340000e-02, + 6.857919692990000e-01, + -4.902871608730000e+00, + -7.038389682770000e+00, + 7.420586586000000e+00, + 4.218735545870000e-02, + -1.372553467750000e+00, + -5.192885398860000e+00, + 2.082878589630000e+00, + -2.443265676500000e+00, + 1.151867103580000e+01, + -3.898234367370000e+00, + -5.894186019900000e+00, + 1.027274799350000e+01, + -5.488188743590000e+00, + -9.918986320500000e+00, + -1.151215508580000e-01, + 6.603192329410000e+00, + -3.257072448730000e+00, + -2.947059392930000e+00, + -5.269100666050000e+00, + 5.092161178590000e+00, + 1.222839713100000e+00, + 1.468221902850000e+00, + 1.453656673430000e+00, + 1.383591294290000e+00, + 1.664336562160000e+00, + -1.707833170890000e+00, + 5.822073459630000e+00, + 4.815598011020000e+00, + -1.101891636850000e+00, + -3.207190990450000e+00, + 2.780984342100000e-02, + 2.517253875730000e+00, + -3.468039035800000e+00, + 5.354622840880000e+00, + 1.473154723640000e-01, + 6.586038589480000e+00, + -1.181836724280000e+00, + -8.795964121820000e-01, + -5.294996261600000e+00, + -5.715451240540000e+00, + -2.340688228610000e+00, + -4.831353664400000e+00, + 1.598656892780000e+00, + 3.862233459950000e-01, + 2.261038780210000e+00, + 1.475847601890000e+00, + -1.913021206860000e+00, + 5.893508911130000e+00, + -5.140004754070000e-01, + 5.294452190400000e+00, + -2.482385158540000e+00, + 1.408232897520000e-01, + 3.179171323780000e+00, + -1.427715778350000e+00, + -7.257531642910000e+00, + 8.253594398500001e+00, + -4.296764850620000e+00, + -1.852872252460000e+00, + -1.380902081730000e-01, + -6.124042034150000e+00, + 4.063646793370000e-01, + -2.366212129590000e+00, + 1.144264459610000e+00, + 4.837673664090000e+00, + -7.725771069530000e-01, + -3.493261337280000e-02, + 5.485063552860000e+00, + 6.200148105620000e+00, + -2.096407413480000e+00, + -3.809066295620000e+00, + 4.287707328800000e+00, + -5.032732486720000e-01, + 6.496404647830000e+00, + 1.037801265720000e+00, + 9.256738424299999e-01, + -1.748310565950000e+00, + 6.266535758970000e+00, + 1.266674757000000e+00, + 9.900419712070000e-01, + -6.917386054990000e+00, + -4.156831741330000e+00, + -1.220391035080000e+00, + 1.709309339520000e+00, + -5.728008747100000e+00, + 6.300069332120000e+00, + 1.500006467100000e-01, + 2.554397344590000e+00, + -4.968281745910000e+00, + -6.150702476500000e+00, + -5.711833477020000e+00, + -2.909753322600000e+00, + -4.786412715910000e+00, + -2.736020088200000e+00, + -2.608271598820000e+00, + -6.737001538280000e-01, + -3.847327947620000e+00, + 2.339390754700000e+00, + 5.389461994170000e+00, + -6.502552628520000e-01, + 1.062977314000000e+00, + 1.367926478390000e+00, + 1.682655692100000e+00, + 1.411461472510000e+00, + 1.399688839910000e+00, + -2.254810333250000e+00, + 5.893735885620000e+00, + 6.411753177640000e+00, + -8.939054608350000e-01, + -3.124388217930000e+00, + 2.779158651830000e-01, + 3.045624971390000e+00, + -3.727470397950000e+00, + 5.022498130800000e+00, + 3.013564348220000e-01, + 6.746563911440000e+00, + -1.410060286520000e+00, + -8.488426208500000e-01, + -5.215574264530000e+00, + -5.813975811000000e+00, + -2.337792396550000e+00, + -4.391201019290000e+00, + 1.252263545990000e+00, + 1.451839208600000e+00, + 1.499845027920000e+00, + 1.411302566530000e+00, + -1.581456065180000e+00, + 6.733532905580000e+00, + -9.758701175450001e-02, + 5.384633064270000e+00, + -3.039829969410000e+00, + 2.318875119090000e-02, + 4.187241554260000e+00, + 1.613310724500000e-01, + -6.163158416750000e+00, + 6.864717960360000e+00, + -4.209495067600000e+00, + -1.306547999380000e+00, + -1.508813261990000e+00, + -6.258440494540000e+00, + -5.436357855800000e-01, + -2.310850620270000e+00, + 1.148719310760000e+00, + 5.038838863370000e+00, + 4.161724820730000e-03, + -2.374218106270000e-01, + 4.117243289950000e+00, + 6.258661746980000e+00, + -1.453287482260000e+00, + -4.440521717070000e+00, + 5.044825077060000e+00, + 7.395939230920000e-01, + 7.140753746030000e+00, + 2.697831019760000e-02, + 1.538181900980000e+00, + -1.082666277890000e+00, + 5.118424892430000e+00, + 1.257560610770000e+00, + 1.689927220340000e+00, + -6.756817817690000e+00, + -5.277699947360000e+00, + -2.514818906780000e+00, + 8.614917993550000e-01, + -4.585202693940000e+00, + 6.628710269930000e+00, + 7.939078211780000e-01, + 1.940786480900000e+00, + -3.838127851490000e+00, + -6.128722667690000e+00, + -5.480885982510000e+00, + -3.896422624590000e+00, + -5.613093376160000e+00, + -2.357944488530000e+00, + -1.561188936230000e+00, + -9.468905627730000e-02, + -3.455667018890000e+00, + 1.794445037840000e+00, + 5.639566421510000e+00, + -4.143889546390000e-01, + -2.969121634960000e-01, + 4.393490031360000e-02, + -3.863135576250000e-01, + -3.884251117710000e-01, + -6.062989123170000e-04, + -2.079948425290000e+00, + -1.125358939170000e+00, + 4.725808501240000e-01, + 2.211399078370000e+00, + 4.808512628080000e-01, + 5.023932456969999e-01, + -8.589323163030000e-01, + -1.596926450730000e+00, + -7.586024999620000e-01, + 2.790858268740000e+00, + 5.765407085420000e-01, + 1.065081581470000e-01, + -1.098035335540000e+00, + 1.010344028470000e+00, + -3.224946260450000e+00, + -1.366404771800000e+00, + 3.302859783170000e+00, + -4.908069968220000e-01, + 4.884790778160000e-01, + -5.103635191920000e-01, + -3.496427237990000e-01, + -3.217697381970000e+00, + -1.927818655970000e+00, + 2.636157512660000e+00, + -1.984327673910000e+00, + -1.448629200460000e-01, + 1.909784197810000e+00, + -6.466656923290000e-01, + -3.551370382310000e+00, + -2.364016056060000e+00, + 2.822025418280000e-01, + 3.912749290470000e-01, + -1.784041404720000e+00, + 4.207745075230000e+00, + 3.480522394180000e+00, + 2.395004272460000e+00, + 1.418962240220000e+00, + -1.718292832370000e+00, + 8.206781148910000e-01, + -1.266140341760000e+00, + 4.144760131840000e+00, + 7.328000068660000e-01, + 2.600425779820000e-01, + -1.804552316670000e+00, + -2.695661067960000e+00, + 1.160610198970000e+00, + -2.400671988730000e-01, + 1.842397570610000e+00, + 1.284971237180000e+00, + -4.174356162550000e-01, + 1.409489065410000e-01, + -1.927106142040000e+00, + -4.363022744660000e-01, + 4.306648373600000e-01, + 1.421329855920000e+00, + -9.006610512730000e-01, + -1.621641397480000e+00, + -1.781371712680000e+00, + -3.679187774660000e+00, + -2.037195920940000e+00, + 6.293726563449999e-01, + -1.531122207640000e+00, + 9.060120582580000e-01, + -3.986215353010000e+00, + 2.230626344680000e+00, + -3.510914802550000e+00, + 5.582751274110000e+00, + 3.799151659010000e+00, + -2.242202758790000e+00, + 2.529466152190000e+00, + 7.431591153140000e-01, + 8.725607395170000e-02, + -1.775432825090000e-01, + -5.891005992890000e-01, + -7.452349066730000e-01, + -4.645969271660000e-01, + -2.761247158050000e-01, + -4.622758626940000e-01, + -3.163390159610000e-01, + -1.581430315970000e+00, + -1.077929496770000e+00, + -1.060081273320000e-01, + 2.106235980990000e+00, + 3.480959236620000e-01, + 2.912090420720000e-01, + -6.617514491080000e-01, + -1.422713637350000e+00, + -5.769550204280000e-01, + 3.003010749820000e+00, + 7.267127037050000e-01, + -1.261604130270000e-01, + -1.234162807460000e+00, + 1.708283424380000e+00, + -3.281495094300000e+00, + -1.031108140950000e+00, + 3.776330709460000e+00, + -4.546046853070000e-01, + -9.343654513360000e-01, + -6.783570349220000e-02, + -3.144413232800000e-01, + -1.712793469430000e+00, + 1.567823886870000e-01, + 1.778758287430000e+00, + 8.151314407590000e-02, + -9.089375138280000e-01, + -2.093969844280000e-02, + -1.903963834050000e-01, + -2.126483201980000e+00, + -2.937245607380000e+00, + 5.042091012000000e-01, + 5.816062688830000e-01, + 1.100287288430000e-01, + 3.110595941540000e+00, + 3.403156042100000e+00, + 2.600217819210000e+00, + 1.180429339410000e+00, + -1.831761360170000e+00, + 3.216946363450000e+00, + -6.833607554440000e-01, + 4.095207691190000e+00, + 1.006088733670000e+00, + -4.053505659100000e-01, + -2.953446149830000e+00, + -1.964660882950000e+00, + 4.007113277910000e-01, + 7.105408310890000e-01, + 1.033555507660000e+00, + 6.599763631820000e-01, + 6.496880650520001e-01, + 6.780485063790000e-02, + -1.310537695880000e+00, + -2.770327925680000e-01, + -1.143903851510000e+00, + 1.282650589940000e+00, + -5.107601881029999e-01, + -7.910631895070001e-01, + -1.671072691680000e-01, + -3.993501901630000e+00, + -1.057823300360000e+00, + -3.650321066380000e-01, + -1.856831550600000e+00, + 2.926103770730000e-04, + -3.967113256450000e+00, + 9.135384559630000e-01, + -2.309552431110000e+00, + 6.398922920230000e+00, + 2.430125474930000e+00, + -1.956326007840000e+00, + 3.189395427700000e+00, + 4.618245661260000e-01, + -4.865128695960000e-01, + -1.047764897350000e+00, + -9.900676012039999e-01, + 3.255369886760000e-02, + 2.896859049800000e-01, + -4.768178164960000e-01, + -1.676162779330000e-01, + 4.763885140420000e-01, + -8.508895635600000e-01, + -5.633398056030000e+00, + 5.169802308080000e-01, + 7.237349033360000e+00, + -3.651914596560000e+00, + 3.465499401090000e+00, + -3.173608303070000e+00, + -2.162818670270000e+00, + -3.776850700380000e+00, + 4.566422939300000e+00, + -1.451735258100000e+00, + 7.247375488280000e+00, + 4.820596694950000e+00, + -6.315403461460000e+00, + -1.893857002260000e+00, + 9.296773910520001e+00, + -7.241094589230000e+00, + 6.552463024850000e-02, + -2.070818841460000e-01, + 1.017454043030000e-01, + -8.987445384260000e-02, + -1.031888127330000e+00, + -5.958478927610000e+00, + 6.942420482640000e+00, + 1.623040676120000e+00, + -4.510301589970000e+00, + 3.208611488340000e+00, + -2.350516319270000e+00, + 4.046831130980000e+00, + -1.234882593150000e+00, + -3.559013903140000e-01, + -4.859703540800000e+00, + 1.047438621520000e+01, + 8.391116142270000e+00, + -8.146335601810000e+00, + 6.769402503970000e+00, + -4.481002330780000e+00, + -4.625366687770000e+00, + 7.673038840290000e-01, + -7.028467953210000e-03, + 3.637187004090000e+00, + 1.445925354960000e+00, + -2.764631748200000e+00, + -1.595562577250000e+00, + -2.335471868520000e+00, + 1.340931177140000e+00, + 3.698371171950000e+00, + -1.332650303840000e+00, + 3.541423559190000e+00, + 8.603615760800000e-01, + 5.412884712220000e+00, + -5.415869235990000e+00, + 1.615861803290000e-01, + 3.271336555480000e-01, + -4.173569679260000e+00, + -6.910572052000000e+00, + 7.662648200990000e+00, + 2.325182314960000e-03, + -1.631875157360000e+00, + -5.034376144410000e+00, + 3.034439563750000e+00, + -2.689150571820000e+00, + 1.108366394040000e+01, + -2.401973247530000e+00, + -6.029351711270000e+00, + 7.874363899230000e+00, + -5.491806983950000e+00, + -8.577796936040000e+00, + -7.183017730710000e-01, + 6.419376850130000e+00, + -1.806114077570000e+00, + -3.816850185390000e+00, + -6.010147094730000e+00, + 6.130640029910000e+00, + 1.846482977270000e-02, + 7.808429747820000e-02, + 4.402000829580000e-02, + 5.364051088690000e-02, + -5.586107075210000e-02, + -7.276815176010000e-01, + -5.989328861240000e+00, + 7.590924501420000e-01, + 7.006540298460000e+00, + -3.889357805250000e+00, + 3.332372426990000e+00, + -3.305159807210000e+00, + -1.970703125000000e+00, + -3.599064350130000e+00, + 4.561431884770000e+00, + -1.658149600030000e+00, + 7.216905117030000e+00, + 5.186360359190000e+00, + -6.161014080050000e+00, + -1.943879842760000e+00, + 9.550809860230000e+00, + -7.339486598970000e+00, + -2.214285731320000e-02, + 6.208075284960000e-01, + 1.206732392310000e+00, + 3.884538710120000e-01, + -8.713641166690000e-01, + -5.709195613860000e+00, + 7.769769191740000e+00, + 1.695594310760000e+00, + -3.899708509450000e+00, + 3.213871479030000e+00, + -2.975533246990000e+00, + 3.634935855870000e+00, + -2.308472156520000e+00, + -5.513883233070001e-01, + -4.185861587520000e+00, + 1.022240257260000e+01, + 8.081422805790000e+00, + -9.130404472350000e+00, + 7.104773044590000e+00, + -3.986216068270000e+00, + -4.384803295140000e+00, + 1.049390673640000e+00, + -1.274005770680000e+00, + 3.608996152880000e+00, + 8.101407289510000e-01, + -1.897439599040000e+00, + -8.299264311790000e-02, + -1.302786111830000e+00, + -6.793475151060000e-01, + 3.008774280550000e+00, + -2.490375518800000e+00, + 4.193336486820000e+00, + 1.314055770640000e-01, + 6.051460266110000e+00, + -5.952728748320000e+00, + 5.564466863870000e-02, + -1.985447406770000e-01, + -5.006304264070000e+00, + -6.695941925050000e+00, + 7.639864921570000e+00, + 1.247711107130000e-01, + -7.060114741330000e-01, + -5.011316299440000e+00, + 4.104270458220000e+00, + -3.184925317760000e+00, + 1.019049263000000e+01, + -2.932319402690000e+00, + -6.857275485990000e+00, + 8.912856101990000e+00, + -5.800499439240000e+00, + -7.808798789980000e+00, + 9.462596774100001e-01, + 6.473596096040000e+00, + -3.229134321210000e+00, + -2.738893747330000e+00, + -6.337357521060000e+00, + 5.867037773130000e+00, + 1.438661336900000e+00, + 1.972656011580000e+00, + 1.085449218750000e+00, + 2.051573753360000e+00, + 6.966957449910000e-01, + -1.154974460600000e+00, + 5.983467102050000e+00, + 5.262247562410000e+00, + -8.044797778130000e-01, + -3.575923919680000e+00, + 1.430431485180000e+00, + 2.645168304440000e+00, + -3.417936801910000e+00, + 4.789278030400000e+00, + 3.815501928330000e-01, + 6.371942996980000e+00, + -1.567060470580000e+00, + -5.019078850749999e-01, + -5.007285118100000e+00, + -5.463651657100000e+00, + -2.323011398320000e+00, + -4.578686714170000e+00, + 1.384320259090000e+00, + 1.341682672500000e+00, + 1.435575127600000e+00, + 1.179030418400000e+00, + -1.826923727990000e+00, + 5.510426998140000e+00, + -4.112349152570000e-01, + 5.986119747160000e+00, + -2.822631120680000e+00, + -2.299777418380000e-01, + 3.029810905460000e+00, + -1.097440049050000e-01, + -8.641231536870000e+00, + 8.793084144590001e+00, + -3.536784887310000e+00, + -1.448578000070000e+00, + -8.171620368960000e-01, + -4.194626331330000e+00, + 7.643187046050000e-01, + -2.730555057530000e+00, + 2.278307914730000e+00, + 4.812878608700000e+00, + -1.014218449590000e+00, + 3.034470975400000e-01, + 6.111675739290000e+00, + 5.865759372710000e+00, + -2.427733659740000e+00, + -3.811094999310000e+00, + 5.193628311160000e+00, + -1.727484464650000e+00, + 6.750224113460000e+00, + 5.484566092490000e-01, + 1.685465216640000e+00, + -1.136437773700000e+00, + 7.325713157650000e+00, + 1.159145116810000e+00, + 1.438498020170000e+00, + -6.505326271060000e+00, + -5.483502388000000e+00, + -4.540635347370000e-01, + 1.426940798760000e+00, + -5.291598320010000e+00, + 5.923511028290000e+00, + -1.475494056940000e-01, + 1.911514878270000e+00, + -4.933928489690000e+00, + -5.422294616700000e+00, + -5.177007675170000e+00, + -3.176295518880000e+00, + -4.964165687560000e+00, + -2.819688320160000e+00, + -1.680133700370000e+00, + -1.635145783420000e+00, + -3.802026987080000e+00, + 2.627484321590000e+00, + 5.515076637270000e+00, + -5.570414662360000e-01, + 1.182049155240000e+00, + 1.390070915220000e+00, + 1.399231433870000e+00, + 1.409203410150000e+00, + 1.235521316530000e+00, + -1.688975453380000e+00, + 6.046992778780000e+00, + 4.887222290040000e+00, + -8.110900521280000e-01, + -3.175655603410000e+00, + 2.859300076960000e-01, + 2.287573337550000e+00, + -3.688399553300000e+00, + 5.075049400330000e+00, + 2.027361392970000e-01, + 6.658372879030000e+00, + -1.441043138500000e+00, + -5.789152383800000e-01, + -4.896919250490000e+00, + -5.762732982640000e+00, + -2.450980186460000e+00, + -4.591010570530000e+00, + 1.754845499990000e+00, + -2.060230821370000e-02, + 1.820507407190000e+00, + 1.106834173200000e+00, + -1.631787300110000e+00, + 5.787353515620000e+00, + -2.383651494980000e+00, + 4.948566436770000e+00, + -3.537101984020000e+00, + -6.300821900369999e-01, + 3.940309047700000e+00, + -3.961827456950000e-01, + -5.824564456940000e+00, + 7.624169826510000e+00, + -3.464703083040000e+00, + -1.020128369330000e+00, + -9.671195745470000e-01, + -5.253212928770000e+00, + -3.140594810250000e-03, + -1.808570504190000e+00, + 2.916827440260000e+00, + 4.960194110870000e+00, + -1.209670662880000e+00, + 1.203184366230000e+00, + 5.165303230290000e+00, + 5.625881195070000e+00, + -2.075332641600000e+00, + -4.386264324190000e+00, + 3.825872898100000e+00, + 2.815969884400000e-01, + 6.538323879240000e+00, + 7.892754077910000e-01, + 1.940835595130000e+00, + -1.545436263080000e+00, + 6.366283416750000e+00, + 1.577002763750000e+00, + 1.400656938550000e+00, + -7.053571224210000e+00, + -5.052742481230000e+00, + -2.122648239140000e+00, + 1.360735297200000e+00, + -5.630729198460000e+00, + 6.212901115420000e+00, + 9.136328101159999e-01, + 2.569772958760000e+00, + -4.957461833950000e+00, + -5.278318405150000e+00, + -5.818665504460000e+00, + -2.740513563160000e+00, + -4.547084331510000e+00, + -4.669280052190000e+00, + -1.399741888050000e+00, + -8.564670681950000e-01, + -4.412426471710000e+00, + 2.738446474080000e+00, + 4.934361457820000e+00, + 3.131004869940000e-01, + -4.373209178450000e-01, + -9.748677015300000e-01, + -2.178032994270000e-01, + -4.766925573350000e-01, + -7.993634939190000e-01, + -2.473758459090000e+00, + -1.300930857660000e+00, + 2.204236239190000e-01, + 2.308285236360000e+00, + 5.936796069150000e-01, + 2.903274595740000e-01, + -7.197282910350000e-01, + -1.420973420140000e+00, + -4.759060144420000e-01, + 2.790139198300000e+00, + 5.917807817460000e-01, + 1.103391125800000e-01, + -1.237262725830000e+00, + 8.397092223170000e-01, + -3.325459718700000e+00, + -1.311568498610000e+00, + 3.521057367320000e+00, + -3.126677572730000e-01, + 5.658632516860000e-01, + -4.161928892140000e-01, + -5.760593414310000e-01, + -3.747489452360000e-01, + -1.247423529620000e+00, + 1.210174918170000e+00, + -4.222524911170000e-02, + -1.883861571550000e-01, + 4.550630450250000e-01, + -6.152106523510000e-01, + -1.527504563330000e+00, + -1.336111545560000e+00, + 4.301315546040000e-02, + 1.046104907990000e+00, + 6.292752623560000e-01, + 3.095553874970000e+00, + 4.388509273530000e+00, + 2.982618808750000e+00, + 1.895297020670000e-01, + -1.038364887240000e+00, + 1.276497244830000e+00, + -1.419712185860000e+00, + 4.466338157650000e+00, + 1.380874872210000e+00, + 2.794704400000000e-02, + -2.146298170090000e+00, + -2.064686298370000e+00, + 4.866060614590000e-01, + -6.127077341079999e-01, + 2.539461612700000e+00, + 5.706257224080000e-01, + -2.513169348240000e-01, + -1.998901367190000e+00, + -2.004358768460000e+00, + -2.004232108590000e-01, + -1.641560494900000e-01, + 5.294631719589999e-01, + -1.446077346800000e+00, + -7.200787961480000e-02, + -2.618442177770000e-01, + -4.330625057220000e+00, + -3.392387330530000e-01, + 2.996088191870000e-02, + -3.564846515660000e-01, + 1.209746599200000e+00, + -3.351246833800000e+00, + 1.954630970950000e+00, + -2.296377897260000e+00, + 5.616492271420000e+00, + 4.055212497710000e+00, + -1.884711623190000e+00, + 2.916159629820000e+00, + 1.134637594220000e+00, + 1.013440966610000e+00, + -6.420449018480000e-01, + -1.774240255360000e+00, + -2.521999478340000e-01, + -2.730583250520000e-01, + -3.291763961320000e-01, + -5.224042534830000e-01, + -5.721942186360000e-01, + -1.877439498900000e+00, + -1.086919903760000e+00, + 1.753954887390000e-01, + 2.465885162350000e+00, + 2.896695137020000e-01, + 6.310783028600000e-01, + -6.558123826980000e-01, + -1.061387419700000e+00, + -3.180556297300000e-01, + 2.732354879380000e+00, + 7.319288849830000e-01, + -2.605956979100000e-04, + -1.072545766830000e+00, + 1.349795699120000e+00, + -3.081022024150000e+00, + -9.091497659680000e-01, + 3.425900220870000e+00, + 1.616201102730000e-01, + -8.526024222370000e-01, + -3.739171922210000e-01, + 1.519759446380000e-01, + -1.849692106250000e+00, + -1.478809118270000e+00, + 2.342854499820000e+00, + -5.551195144650000e-01, + 6.024536490440000e-01, + -4.956547319890000e-01, + -9.552611708640000e-01, + -3.181205749510000e+00, + -2.753935098650000e+00, + 2.589893937110000e-01, + 4.217563271520000e-01, + -9.072344899180000e-01, + 3.912858247760000e+00, + 5.024202823640000e+00, + 2.106922864910000e+00, + 2.991769611840000e-01, + -2.077396154400000e+00, + 1.388063073160000e+00, + -1.063965439800000e+00, + 4.991140365600000e+00, + -2.392242429780000e-03, + 5.119485855100000e-01, + -1.022726416590000e+00, + -1.677044749260000e+00, + -2.979566454890000e-01, + 1.107875466350000e+00, + 2.397040128710000e+00, + 9.465261697770000e-01, + -3.069708943370000e-01, + -7.553591132160000e-01, + -1.233591675760000e+00, + -8.300674557690000e-01, + -5.979460850360000e-02, + 9.387694597240001e-01, + -3.620912507180000e-02, + -3.296758234500000e-02, + -3.596328198910000e-01, + -4.488519191740000e+00, + -1.615722775460000e+00, + -3.430424034600000e-01, + -1.559949517250000e+00, + 2.447989135980000e-01, + -4.136282920840000e+00, + 1.854768991470000e+00, + -3.599648475650000e+00, + 6.612698078160000e+00, + 2.618916988370000e+00, + -1.898674964900000e+00, + 2.913179397580000e+00, + 1.132124185560000e+00, + 2.208788245920000e-01, + -1.992190957070000e+00, + -7.505029439930000e-01, + 5.753419175740000e-02, + -1.582028120760000e-01, + -2.696734108030000e-02, + 1.667767167090000e-01, + 1.402565538880000e-01, + -4.003299474720000e-01, + -5.511708259580000e+00, + 7.795580029490000e-01, + 6.831955432890000e+00, + -3.906985521320000e+00, + 3.302207231520000e+00, + -3.264627695080000e+00, + -2.340772151950000e+00, + -3.927099943160000e+00, + 4.407020568850000e+00, + -1.690181374550000e+00, + 7.093229293820000e+00, + 4.663914203640000e+00, + -5.765907287600000e+00, + -2.055411338810000e+00, + 9.587419509889999e+00, + -7.245405197140000e+00, + 6.594385504720000e-01, + -6.213634014129999e-01, + -6.076229363680000e-02, + 3.065493404870000e-01, + -1.397259473800000e+00, + -4.205553054810000e+00, + 7.420874118800000e+00, + 1.717883706090000e+00, + -3.289904356000000e+00, + 2.992360353470000e+00, + -3.583630323410000e+00, + 4.856505393980000e+00, + -9.735938310620000e-01, + -1.082909584050000e+00, + -5.100954055790000e+00, + 1.165408229830000e+01, + 7.242084980010000e+00, + -8.144271850590000e+00, + 5.991553306580000e+00, + -4.635458946230000e+00, + -4.844104290010000e+00, + 1.825261592860000e+00, + -4.834888577460000e-01, + 2.970903158190000e+00, + 3.222039341930000e-01, + -1.838159203530000e+00, + -9.245089292530000e-01, + -1.858812808990000e+00, + 1.726976990700000e+00, + 3.275264024730000e+00, + -1.623276114460000e+00, + 2.201577901840000e+00, + -7.034895420070000e-01, + 4.760806560520000e+00, + -5.739057064060000e+00, + 1.052942395210000e+00, + -2.653757929800000e-01, + -4.432206153870000e+00, + -7.661162853240000e+00, + 8.035179138180000e+00, + -6.079998984930000e-02, + -1.040944933890000e+00, + -5.445351123810000e+00, + 2.263199567790000e+00, + -2.740351438520000e+00, + 9.210919380189999e+00, + -3.108363866810000e+00, + -5.322398662570000e+00, + 1.018484210970000e+01, + -6.955543994900000e+00, + -8.253005981450000e+00, + -6.874801516530000e-01, + 6.422809600830000e+00, + -4.206034183500000e+00, + -3.125394344330000e+00, + -6.041230201720000e+00, + 4.505515098570000e+00, + 1.606345623730000e-01, + 6.380873918530000e-02, + 2.210582643750000e-01, + -4.039289802310000e-02, + -2.177601493900000e-02, + -6.582086682320000e-01, + -5.818704128270000e+00, + 4.961452484130000e-01, + 6.839349269870000e+00, + -4.116251468660000e+00, + 3.371735811230000e+00, + -3.026233196260000e+00, + -2.348459243770000e+00, + -3.406092882160000e+00, + 4.497172355650000e+00, + -1.607284903530000e+00, + 7.414525032040000e+00, + 5.072927951810000e+00, + -5.939101219180000e+00, + -1.931098461150000e+00, + 9.724844932560000e+00, + -7.361834526060000e+00, + 1.279276758430000e-01, + 7.609192729000001e-01, + -6.580714881419999e-02, + -1.630562916400000e-02, + -5.973317027090000e-01, + -5.182610988620000e+00, + 6.328581333160000e+00, + 2.208946943280000e+00, + -3.843953371050000e+00, + 4.637109756470000e+00, + -3.105423450470000e+00, + 4.236839771270000e+00, + -9.051058292390000e-01, + -2.208860158920000e+00, + -4.614922046660000e+00, + 1.208667659760000e+01, + 7.840424060820000e+00, + -8.118830680849999e+00, + 7.074072837830000e+00, + -3.810055494310000e+00, + -3.697438001630000e+00, + 1.635899692770000e-01, + -1.644983768460000e+00, + 4.311234474180000e+00, + 2.971498668190000e-02, + -1.173897027970000e+00, + -3.932907879350000e-01, + -1.601742386820000e+00, + 9.148804545400000e-01, + 4.099703788760000e+00, + -1.970736503600000e+00, + 3.779275655750000e+00, + 2.262342125180000e-01, + 6.163130283360000e+00, + -5.316132068630000e+00, + 2.920109629630000e-01, + -1.995598077770000e-01, + -6.092345237730000e+00, + -7.650992393490000e+00, + 7.306127071380000e+00, + -5.937375426290000e-01, + -1.735382556920000e+00, + -5.738174915310000e+00, + 2.597141504290000e+00, + -1.548504829410000e+00, + 9.868618965150000e+00, + -4.682040691380000e+00, + -5.701369285580000e+00, + 7.166018962860000e+00, + -6.566518783570000e+00, + -6.889554500580000e+00, + -1.913947910070000e-01, + 7.796438694000000e+00, + -4.098308563230000e+00, + -2.815237760540000e+00, + -4.744038581850000e+00, + 5.572480678560000e+00, + 1.315084218980000e+00, + 1.367957592010000e+00, + 1.482941269870000e+00, + 1.823569774630000e+00, + 1.440706849100000e+00, + -1.977323770520000e+00, + 5.932151317600000e+00, + 4.853370189670000e+00, + -6.027523279190000e-01, + -3.325553178790000e+00, + 2.591309547420000e-01, + 2.326083183290000e+00, + -3.447351694110000e+00, + 5.022228240970000e+00, + 2.094241529700000e-01, + 6.775638580320000e+00, + -1.617911458020000e+00, + -7.956793904300000e-01, + -5.350060939790000e+00, + -5.964752674100000e+00, + -2.553057670590000e+00, + -4.545297145840000e+00, + 1.494300961490000e-01, + 1.542873144150000e+00, + 1.411891818050000e+00, + 1.662163496020000e+00, + -1.759010791780000e+00, + 5.884119987490000e+00, + -1.156142115590000e+00, + 5.318732261660000e+00, + -3.216683864590000e+00, + 7.003278732300000e-01, + 3.637997150420000e+00, + -6.832285523410000e-01, + -7.007561683650000e+00, + 8.461576461789999e+00, + -3.640476703640000e+00, + -1.585780024530000e+00, + -4.448093771930000e-01, + -4.580173492430000e+00, + -7.852772474290000e-01, + -1.306389451030000e+00, + 9.482222199440000e-01, + 5.729218959810000e+00, + -8.567328453060000e-01, + 6.517662405969999e-01, + 5.804276466370000e+00, + 7.072780132290000e+00, + -2.607245922090000e+00, + -3.207272052760000e+00, + 3.425741910930000e+00, + 6.028620004650000e-01, + 6.107019424440000e+00, + 1.007544249300000e-01, + 1.162039518360000e+00, + 4.325714707370000e-01, + 5.327932357790000e+00, + 1.763416171070000e+00, + 7.856279015540000e-01, + -6.997451305390000e+00, + -4.811250686650000e+00, + -1.829975247380000e+00, + 1.633456945420000e+00, + -5.859040737150000e+00, + 7.023848056790000e+00, + 2.083410978320000e+00, + 1.417238593100000e+00, + -4.473893165590000e+00, + -6.621579170230000e+00, + -4.211723327640000e+00, + -3.026964664460000e+00, + -4.270153999330000e+00, + -2.468078374860000e+00, + -1.672448039050000e+00, + -8.921806216240000e-01, + -2.428861141200000e+00, + 1.963188886640000e+00, + 5.630390644070000e+00, + -6.807221770290000e-01, + 1.363079428670000e+00, + 1.285268783570000e+00, + 1.243174672130000e+00, + 1.483318567280000e+00, + 1.341965675350000e+00, + -1.496811389920000e+00, + 6.052297592160000e+00, + 4.337389945980000e+00, + -6.661866307260000e-01, + -3.284592151640000e+00, + 3.405765891080000e-01, + 2.525269031520000e+00, + -3.427636861800000e+00, + 5.163471698760000e+00, + 2.911039590840000e-01, + 6.415495872500000e+00, + -1.570485472680000e+00, + -6.127446889880001e-01, + -5.550814151760000e+00, + -5.636717319490000e+00, + -2.447255849840000e+00, + -4.675030708310000e+00, + 1.145561695100000e+00, + 2.228257894520000e+00, + 1.890289783480000e+00, + 9.983802437780001e-01, + -1.039423823360000e+00, + 6.161807537080000e+00, + -1.002034783360000e+00, + 6.967562198640000e+00, + -3.162520170210000e+00, + -7.205227613450000e-01, + 2.901554584500000e+00, + -1.899686694150000e+00, + -7.288219928740000e+00, + 8.108845710750000e+00, + -4.160259723660000e+00, + -2.019413948060000e+00, + -7.361236810680000e-01, + -6.716235160830000e+00, + -4.997288584710000e-01, + -1.652186155320000e+00, + 9.172767996790000e-01, + 4.704318523410000e+00, + -1.624501824380000e+00, + 7.790902853010000e-01, + 4.947931289670000e+00, + 7.051690578460000e+00, + -1.243868947030000e+00, + -3.734193086620000e+00, + 4.631764888760000e+00, + -5.703649520870000e-01, + 6.210739612580000e+00, + 9.996159076690000e-01, + 1.622692942620000e+00, + -7.025787234310000e-01, + 6.589533805850000e+00, + 1.505549311640000e+00, + 1.809041380880000e+00, + -6.031189918520000e+00, + -5.370372772220000e+00, + -1.629450917240000e+00, + 5.173310041430000e-01, + -4.419002532960000e+00, + 5.370862483980000e+00, + 5.297186970710001e-01, + 3.344632864000000e+00, + -3.322294235230000e+00, + -6.382841587070000e+00, + -4.210091114040000e+00, + -2.811037063600000e+00, + -4.223440647130000e+00, + -3.099823951720000e+00, + -8.469830155370000e-01, + 1.481704264880000e-01, + -3.951051235200000e+00, + 2.625195264820000e+00, + 6.181969165800000e+00, + -9.615619480610001e-02, + -3.687327206130000e-01, + -4.913727343080000e-01, + -3.587565124030000e-01, + -5.651021003720000e-01, + -2.863709628580000e-01, + -1.636481523510000e+00, + -1.171706795690000e+00, + 4.734579026700000e-01, + 2.500676631930000e+00, + 4.524843692780000e-01, + 6.542207002640000e-01, + -7.981779575350000e-01, + -1.428026676180000e+00, + -7.403092980380001e-01, + 2.835059165950000e+00, + 7.373342514040000e-01, + 2.440309077500000e-01, + -7.767117023470000e-01, + 9.131001830100000e-01, + -3.138927698140000e+00, + -7.606344819070000e-01, + 3.535560607910000e+00, + -9.037233889100001e-02, + -5.484899282460000e-01, + -2.800177931790000e-01, + 9.611422419550000e-01, + -2.093225955960000e+00, + -1.935181736950000e+00, + 2.039189338680000e+00, + -2.333330154420000e+00, + 1.322862148280000e+00, + 1.301545619960000e+00, + -2.850424945350000e-01, + -3.373047590260000e+00, + -1.875746846200000e+00, + -3.415357768540000e-01, + 2.564394772050000e-01, + -5.620786547660001e-01, + 3.819252252580000e+00, + 4.711580753330000e+00, + 1.955521345140000e+00, + 1.642279624940000e+00, + -8.159960508350000e-01, + 1.552927732470000e+00, + -1.404400944710000e+00, + 4.263248920440000e+00, + 6.865423917770000e-02, + 4.844653606410000e-01, + -1.510615110400000e+00, + -1.050947189330000e+00, + 6.215388178830000e-01, + -8.620476722720000e-01, + 1.676134943960000e+00, + -8.621576428410000e-01, + 3.886774182320000e-01, + -2.283102989200000e+00, + -7.724816799160000e-01, + 6.627342104910000e-01, + -1.176236987110000e+00, + 2.140490055080000e+00, + -1.162876635790000e-01, + 3.098853230480000e-01, + 4.710904955860000e-01, + -5.627908229830000e+00, + -8.101036548610000e-01, + -1.274734362960000e-02, + -7.617481946950000e-01, + 2.990869283680000e-01, + -3.445957660680000e+00, + 1.456276535990000e+00, + -1.069956302640000e+00, + 5.090907096860000e+00, + 3.912855386730000e+00, + -1.932388782500000e+00, + 3.359511137010000e+00, + -3.236116841440000e-02, + -1.647670567040000e-01, + -2.018583536150000e+00, + -1.081604123120000e+00, + -3.185001015660000e-01, + -3.014655113220000e-01, + -4.065353572370000e-01, + -5.340976715090000e-01, + -3.354632556440000e-01, + -1.901837944980000e+00, + -1.170583844180000e+00, + 9.176592230800000e-01, + 2.396938085560000e+00, + 3.047200739380000e-01, + 5.262365937230000e-01, + -6.453217864040000e-01, + -1.365341186520000e+00, + -8.022559285160000e-01, + 2.481825590130000e+00, + 6.212115287780000e-01, + -8.938644081350000e-02, + -1.219899654390000e+00, + 1.053045272830000e+00, + -3.281555652620000e+00, + -9.799067378039999e-01, + 3.624901056290000e+00, + -1.766209602360000e-01, + -3.471944928170000e-01, + -1.224868774410000e+00, + 6.615129858259999e-02, + -2.165678977970000e+00, + -3.735064566140000e-01, + 1.932343602180000e+00, + -2.097870856520000e-01, + -1.384547114370000e+00, + 1.733183145520000e+00, + -2.763834223150000e-02, + -3.576271533970000e+00, + -2.068692445750000e+00, + 8.669927716260000e-01, + 5.401522293690000e-02, + -2.919272482400000e-01, + 4.061423301700000e+00, + 3.941188573840000e+00, + 2.952993392940000e+00, + 1.204667210580000e+00, + -1.816508173940000e+00, + 1.330830454830000e+00, + -1.657943129540000e+00, + 4.128941059110000e+00, + 1.031432509420000e+00, + 5.785413980480000e-01, + -1.054148316380000e+00, + -1.613444089890000e+00, + 2.934293150900000e-01, + 4.251963496210000e-01, + 4.019096851350000e+00, + 9.491612911220000e-01, + -1.780310273170000e-01, + -3.710727691650000e-01, + -3.146651089190000e-01, + 1.021796241400000e-01, + -1.996970176700000e-01, + 8.107018470760000e-01, + -2.096666574480000e+00, + -1.223029732700000e+00, + -3.353205919270000e-01, + -3.428122282030000e+00, + -4.432310462000000e-01, + -3.448086678980000e-01, + -6.800326108930000e-01, + 7.346262335780001e-01, + -4.051775455470000e+00, + 1.994417667390000e+00, + -2.950841188430000e+00, + 4.628945827480000e+00, + 2.998427867890000e+00, + -2.740020990370000e+00, + 1.436048984530000e+00, + -6.619990468030000e-01, + -4.150766730310000e-01, + -2.044555187230000e+00, + -1.485442638400000e+00, + 2.735412493350000e-02, + 1.747844554480000e-02, + -8.169668167830001e-02, + -3.568920791150000e-01, + 2.305713295940000e-01, + 5.863327160480000e-02, + -5.845449924470000e+00, + 7.417438626290001e-01, + 6.970177650450000e+00, + -3.929303407670000e+00, + 3.499639034270000e+00, + -3.181371450420000e+00, + -2.178731203080000e+00, + -3.557051420210000e+00, + 4.523957252500000e+00, + -1.632811546330000e+00, + 7.319873332980000e+00, + 4.257551670070000e+00, + -6.154380798340000e+00, + -1.752356886860000e+00, + 9.757419586179999e+00, + -7.250420570370000e+00, + 8.931169658900000e-02, + 7.787813544270000e-01, + 1.225649788980000e-01, + 2.973330020900000e-01, + -1.175452589990000e+00, + -5.089947700500000e+00, + 7.238993644710000e+00, + 3.197182416920000e+00, + -1.950225472450000e+00, + 3.670519828800000e+00, + -3.007393121720000e+00, + 4.193141460420000e+00, + -2.637856721880000e+00, + -1.831374883650000e+00, + -4.650673389430000e+00, + 1.068979072570000e+01, + 9.801714897160000e+00, + -7.947142124180000e+00, + 6.640468120570000e+00, + -4.078603267670000e+00, + -3.952673673630000e+00, + 1.200248122220000e+00, + -4.440629482270000e-01, + 3.808464527130000e+00, + -3.150285407900000e-02, + -3.021621942520000e+00, + -4.702583849430000e-01, + -2.392468929290000e+00, + 8.598396182060000e-02, + 4.083673000340000e+00, + -1.906502485280000e+00, + 3.827167034150000e+00, + -7.434830814600001e-02, + 4.849383354190000e+00, + -5.747060298920000e+00, + -1.638827323910000e-01, + -4.015977084640000e-01, + -5.825225830080000e+00, + -7.418444156650000e+00, + 8.408073425290000e+00, + -3.495676219460000e-01, + -1.162294864650000e+00, + -5.976859569550000e+00, + 2.512559652330000e+00, + -2.343087673190000e+00, + 9.229733467100001e+00, + -3.053586244580000e+00, + -5.189280033110000e+00, + 9.223445892330000e+00, + -5.089815616610000e+00, + -8.734915733339999e+00, + -6.109718084340000e-01, + 3.991925716400000e+00, + -3.288294076920000e+00, + -3.239455461500000e+00, + -4.778279781340000e+00, + 5.116756439210000e+00, + 1.421684771780000e-01, + -6.565699726340000e-02, + -7.833467423920000e-02, + 1.441349238160000e-01, + -6.847565770150000e-01, + -6.009772419930000e-01, + -6.262323379520000e+00, + 9.728623628620000e-01, + 6.855254173280000e+00, + -3.927099704740000e+00, + 3.010783433910000e+00, + -3.158671379090000e+00, + -2.378913402560000e+00, + -3.762255191800000e+00, + 4.410657882690000e+00, + -1.660954356190000e+00, + 7.203693866730000e+00, + 4.683332920070000e+00, + -5.858526229860000e+00, + -2.233498096470000e+00, + 9.812787055970000e+00, + -7.221159935000000e+00, + 8.075086474420000e-01, + 2.699118256570000e-01, + 6.359999626870000e-02, + 7.799059152600000e-01, + -1.799371242520000e+00, + -5.309590816500000e+00, + 6.242630004880000e+00, + 1.221970558170000e+00, + -3.245340824130000e+00, + 3.322355031970000e+00, + -3.381033420560000e+00, + 5.458007812500000e+00, + -2.666853427890000e+00, + -1.674388766290000e+00, + -3.901166915890000e+00, + 1.004350090030000e+01, + 7.741690635680000e+00, + -7.460211753850000e+00, + 7.351412296300000e+00, + -4.735872745510000e+00, + -4.195985317230000e+00, + 1.251173377040000e+00, + -5.801003575330000e-01, + 3.435573101040000e+00, + -4.480563700200000e-01, + -2.493814229970000e+00, + -6.168299913410000e-01, + -2.139832258220000e+00, + 7.132212519650000e-01, + 3.830146312710000e+00, + -1.297330260280000e+00, + 4.230881214140000e+00, + 1.212304472920000e+00, + 5.656474113460000e+00, + -5.770514011380000e+00, + 2.019587606190000e-01, + -3.325438201430000e-01, + -4.789862632750000e+00, + -7.682442665100000e+00, + 7.695295810700000e+00, + -1.547722052780000e-02, + -1.007088541980000e+00, + -5.793969154360000e+00, + 1.899473786350000e+00, + -3.189022779460000e+00, + 1.014553546910000e+01, + -3.709991693500000e+00, + -5.933507442470000e+00, + 1.025622940060000e+01, + -6.373289585110000e+00, + -7.899414539340000e+00, + -5.276564359660000e-01, + 8.039734840390000e+00, + -3.337962150570000e+00, + -3.257576942440000e+00, + -5.719566822050000e+00, + 6.014531135560000e+00, + 1.379213690760000e+00, + 1.355347633360000e+00, + 1.386614203450000e+00, + 1.219278216360000e+00, + 1.425654172900000e+00, + -1.982503771780000e+00, + 5.944090366360000e+00, + 4.966290950780000e+00, + -7.050627470020000e-01, + -3.342604637150000e+00, + 2.929404973980000e-01, + 2.388695478440000e+00, + -3.292805433270000e+00, + 4.848718643190000e+00, + 2.976831793790000e-01, + 6.362755775450000e+00, + -1.644175648690000e+00, + -4.806832671170000e-01, + -5.356589794160000e+00, + -5.247723102570000e+00, + -2.294245004650000e+00, + -4.576848983760000e+00, + 1.436942338940000e+00, + 1.280667304990000e+00, + 2.075655221940000e+00, + 1.386373758320000e+00, + -2.816701173780000e+00, + 5.837181568150000e+00, + -1.269711256030000e+00, + 7.387987136840000e+00, + -3.446650505070000e+00, + 1.816739141940000e-01, + 3.793431282040000e+00, + -6.577390432360000e-01, + -7.723625183110000e+00, + 8.047211647030000e+00, + -3.900149822240000e+00, + -1.719893097880000e+00, + -1.024699091910000e+00, + -5.157727241520000e+00, + 2.354707121850000e-01, + -2.864332914350000e+00, + 8.967244029050000e-01, + 5.312537193300000e+00, + -8.135046362880000e-01, + -3.079595863820000e-01, + 5.625132560730000e+00, + 5.520435810090000e+00, + -1.581580996510000e+00, + -3.791482687000000e+00, + 3.352139472960000e+00, + 1.903465986250000e-01, + 6.602906703950000e+00, + 1.293105483060000e+00, + 1.553822398190000e+00, + -1.455953717230000e+00, + 4.924447536470000e+00, + 8.751165866850000e-01, + 1.684596896170000e+00, + -6.870657920840000e+00, + -5.632238388060000e+00, + -2.016295671460000e+00, + 2.871626056730000e-02, + -7.560991287230000e+00, + 7.099281311040000e+00, + 8.199527263640000e-01, + 3.076488018040000e+00, + -3.511378049850000e+00, + -5.295370578770000e+00, + -4.067493438720000e+00, + -1.958632707600000e+00, + -4.100973606110000e+00, + -2.901421070100000e+00, + -1.686422586440000e+00, + -5.310615301129999e-01, + -4.818487167360000e+00, + 2.656732082370000e+00, + 4.936902523040000e+00, + -3.923153877260000e-01, + 1.391268730160000e+00, + 1.385990858080000e+00, + 1.185001373290000e+00, + 1.395783782010000e+00, + 1.849024176600000e+00, + -1.206135153770000e+00, + 6.661555290220000e+00, + 4.918318271640000e+00, + -6.719979643820000e-01, + -3.337995290760000e+00, + -5.433831214900000e-01, + 2.629184246060000e+00, + -3.346870899200000e+00, + 4.770192146300000e+00, + 3.841621279720000e-01, + 6.438015460970000e+00, + -1.555090188980000e+00, + -9.115509390830000e-01, + -5.172561645510000e+00, + -5.721373081210000e+00, + -2.809470891950000e+00, + -4.667371273040000e+00, + 1.927619099620000e+00, + 2.091794729230000e+00, + 1.072758436200000e+00, + 8.570338487630000e-01, + -2.224972009660000e+00, + 5.915965557100000e+00, + -4.970895349980000e-01, + 5.720180988310000e+00, + -4.047188758850000e+00, + 3.588922321800000e-01, + 1.737531304360000e+00, + -2.115201234820000e+00, + -7.259603977200000e+00, + 8.093757629390000e+00, + -1.521679401400000e+00, + -9.537274241450000e-01, + -2.212623119350000e+00, + -5.783874988560000e+00, + 2.158747911450000e-01, + -3.435827732090000e+00, + 2.994292259220000e+00, + 4.290021419530000e+00, + -1.939670085910000e+00, + 1.221720948820000e-01, + 4.710997104640000e+00, + 5.687538623810000e+00, + -2.005397319790000e+00, + -3.037986278530000e+00, + 4.358048439030000e+00, + 3.994129300120000e-01, + 6.437460899350000e+00, + -1.100988268850000e+00, + 1.074933052060000e+00, + -2.274970710280000e-01, + 6.092356681820000e+00, + 1.822946190830000e+00, + 1.153289556500000e+00, + -8.243864059450001e+00, + -4.820055484770000e+00, + -2.599086523060000e+00, + 1.564762115480000e+00, + -5.394727706910000e+00, + 6.045863151550000e+00, + 2.327345371250000e+00, + 2.160731315610000e+00, + -3.878714799880000e+00, + -6.413617134090000e+00, + -5.278129577640000e+00, + -3.115285634990000e+00, + -4.288748264310000e+00, + -2.846093893050000e+00, + -1.638622641560000e+00, + -1.178576111790000e+00, + -3.159307479860000e+00, + 1.658638834950000e+00, + 5.393812656400000e+00, + 5.910426005720000e-02, + -3.246385157110000e-01, + -2.559770643710000e-01, + -3.948778808120000e-01, + -2.194759994750000e-01, + -3.726611733440000e-01, + -8.827581405640000e-01, + -1.466823220250000e+00, + 2.810399532320000e-01, + 2.509062051770000e+00, + 2.698343694210000e-01, + 5.636788606640000e-01, + -6.185109615330000e-01, + -1.580135703090000e+00, + -1.063255667690000e+00, + 2.699002742770000e+00, + 8.720582723620000e-01, + 2.205075472590000e-01, + -2.338678121570000e+00, + 1.463832974430000e+00, + -2.919594526290000e+00, + -9.011711478230000e-01, + 3.632164001460000e+00, + -1.496641188860000e-01, + -6.161459684370000e-01, + -1.525168865920000e-01, + -8.818640708920000e-01, + -1.891963958740000e+00, + -9.534167647360000e-01, + 2.085519075390000e+00, + -1.033490449190000e-01, + 5.441122651100000e-01, + 1.172481179240000e+00, + -1.961153626440000e+00, + -1.100141048430000e+00, + -1.564173102380000e+00, + -8.642475008960000e-01, + -1.766723543410000e-01, + -9.252282381060000e-01, + 3.607165575030000e+00, + 3.904544830320000e+00, + 2.555516242980000e+00, + 9.859917163850000e-01, + -2.036850929260000e+00, + 7.736133933070000e-01, + -9.210398793220000e-01, + 4.306598663330000e+00, + 1.038650982080000e-02, + -2.746202051640000e-01, + -2.027183055880000e+00, + -1.636768937110000e+00, + 5.365486741070000e-01, + 2.713915109630000e-01, + 2.115335226060000e+00, + 3.482451736930000e-01, + -4.126225113870000e-01, + -1.446068406110000e+00, + -6.103752255440000e-01, + -7.770990133290000e-01, + 2.928364276890000e-01, + 2.048863410950000e+00, + -5.660902857780000e-01, + -6.776711344720000e-01, + 2.988372147080000e-01, + -3.428837299350000e+00, + -1.639470577240000e+00, + 5.172262191770000e-01, + -2.201712608340000e+00, + -9.434458017350000e-01, + -3.543003082280000e+00, + 1.471586346630000e+00, + -1.114273786540000e+00, + 5.447380542760000e+00, + 3.074148416520000e+00, + -1.779238581660000e+00, + 3.539056777950000e+00, + 9.580234885220000e-01, + 2.314496934410000e-01, + -1.261909723280000e+00, + -8.154866695400000e-01, + -2.641483843330000e-01, + -4.015807509420000e-01, + 5.996360778810000e-01, + -3.318606615070000e-01, + -9.844055175780000e-01, + -1.825937509540000e+00, + -1.909965515140000e+00, + 2.820369601250000e-01, + 2.516434192660000e+00, + 4.664922654630000e-01, + 1.831210851670000e-01, + -6.003938913350000e-01, + -1.432702183720000e+00, + -5.399110317230000e-01, + 3.087125539780000e+00, + 3.935177922250000e-01, + -8.341196924450001e-02, + -9.982088208200000e-01, + 8.943792581559999e-01, + -3.115022420880000e+00, + -9.502847790720000e-01, + 3.599419355390000e+00, + -9.077439308170000e-01, + 1.279998384420000e-02, + -3.340304791930000e-01, + -4.558125138280000e-01, + -2.381595134740000e+00, + 1.565191596750000e-01, + 3.880875587460000e+00, + -5.891522169109999e-01, + 1.697329878810000e+00, + 8.958760499950000e-01, + -2.532122135160000e-01, + -2.870142221450000e+00, + -3.803834438320000e+00, + 1.670889183880000e-02, + 3.880932331090000e-01, + -8.338067531590000e-01, + 3.297392606740000e+00, + 3.754380226140000e+00, + 2.871511936190000e+00, + -1.170546412470000e-01, + -1.188088655470000e+00, + 4.668029844760000e-01, + -2.493046522140000e+00, + 3.998437881470000e+00, + 1.185366749760000e+00, + 1.139275506140000e-01, + -1.741116404530000e+00, + -2.222223281860000e+00, + 4.461997151370000e-01, + 2.398327589040000e-01, + 2.322834014890000e+00, + 5.392937064170000e-01, + 6.667676568030000e-01, + -1.756017923360000e+00, + -8.918794989590000e-01, + 3.402315080170000e-01, + -7.932586669920000e-01, + 5.072027444840000e-02, + 1.301282286640000e+00, + 2.079108059410000e-01, + -3.648597896100000e-01, + -4.533308982850000e+00, + -3.880761265750000e-01, + 5.551204830410000e-02, + -2.265306234360000e+00, + 7.943149805070000e-01, + -3.031417608260000e+00, + 7.391033172610000e-01, + -2.023777246480000e+00, + 3.394655466080000e+00, + 3.826104164120000e+00, + -2.062488079070000e+00, + 1.865821599960000e+00, + -1.897301673890000e-01, + 8.710505366330000e-01, + -1.482483744620000e+00, + -1.585162520410000e+00, + 4.080648124220000e-01, + -6.355525553230000e-02, + 1.999370008710000e-01, + -1.168879717590000e-01, + 8.605876564980000e-02, + -6.803950071330001e-01, + -5.748393535610000e+00, + 1.008315801620000e+00, + 6.213573455810000e+00, + -3.939430952070000e+00, + 3.311618804930000e+00, + -3.039952993390000e+00, + -2.178586244580000e+00, + -4.149419784550000e+00, + 4.611568450930000e+00, + -1.681956052780000e+00, + 7.254695415500000e+00, + 4.928268432620000e+00, + -5.839997291560000e+00, + -2.410498142240000e+00, + 9.813554763790000e+00, + -7.058965682980000e+00, + -8.539293408390000e-01, + 1.125372052190000e-01, + -3.354458510880000e-01, + -3.929650783540000e-01, + -4.415937662120000e-01, + -5.134139060970000e+00, + 7.034551143650000e+00, + 1.692037582400000e+00, + -3.217560291290000e+00, + 5.197908878330000e+00, + -3.983905792240000e+00, + 4.412137985230000e+00, + -1.267926335330000e+00, + -2.862065792080000e+00, + -3.095766782760000e+00, + 1.012525463100000e+01, + 7.674404621120000e+00, + -8.135774612430000e+00, + 6.238074779510000e+00, + -4.807885646820000e+00, + -4.925829410550000e+00, + 5.262935161590000e-01, + 4.137171506880000e-01, + 3.799347639080000e+00, + 7.612695097920000e-01, + -2.976957559590000e+00, + -4.012767076490000e-01, + -1.835607528690000e+00, + 6.094826459879999e-01, + 3.902155399320000e+00, + -2.180150270460000e+00, + 4.592303276060000e+00, + 1.775429397820000e-02, + 5.679407119750000e+00, + -6.038603782650000e+00, + -2.932779490950000e-02, + 3.925419226290000e-02, + -5.155742168430000e+00, + -7.765903472900000e+00, + 8.332732200620001e+00, + -5.241215229030000e-01, + -2.085270404820000e+00, + -4.835155963900000e+00, + 3.996340751650000e+00, + -2.880312681200000e+00, + 1.056883907320000e+01, + -4.341156005860000e+00, + -5.968229770660000e+00, + 9.228840827939999e+00, + -5.940897464750000e+00, + -7.751017570500000e+00, + -3.356223106380000e-01, + 6.926950454710000e+00, + -3.292306184770000e+00, + -3.409086942670000e+00, + -5.474909782410000e+00, + 5.542269706730000e+00, + 1.079631373290000e-01, + 2.444764599200000e-02, + 2.690993435680000e-02, + -4.992346465590000e-02, + 2.393955886360000e-01, + -4.920484125610000e-01, + -5.693960666660000e+00, + 1.035881161690000e+00, + 6.523332118990000e+00, + -3.871936559680000e+00, + 3.551148176190000e+00, + -3.096574783330000e+00, + -2.029271841050000e+00, + -3.744343042370000e+00, + 5.027761936190000e+00, + -1.538899898530000e+00, + 7.322877883910000e+00, + 5.376930713650000e+00, + -6.122350215910000e+00, + -2.408986806870000e+00, + 9.428718566890000e+00, + -7.049186229710000e+00, + 1.121301874520000e-01, + 5.996397137640000e-01, + -2.893966734410000e-01, + 1.915340125560000e-01, + -9.900835752490000e-01, + -4.560772418980000e+00, + 6.940903663640000e+00, + -3.390294015410000e-01, + -2.927463531490000e+00, + 2.528566837310000e+00, + -3.356214523320000e+00, + 4.118538379670000e+00, + -2.509776830670000e+00, + -8.143315911290000e-01, + -4.346860408780000e+00, + 1.137016677860000e+01, + 8.184729576110000e+00, + -7.406169414520000e+00, + 5.749826908110000e+00, + -4.054758071900000e+00, + -4.038048267360000e+00, + 2.598788261410000e+00, + -3.329309821130000e-01, + 4.178777217860000e+00, + -4.759967625140000e-01, + -2.477907896040000e+00, + -7.453045248990000e-01, + -2.259923934940000e+00, + 1.463182449340000e+00, + 3.911323785780000e+00, + -1.485126018520000e+00, + 4.744921207430000e+00, + 3.126456737520000e-01, + 6.224286556240000e+00, + -5.010693550110000e+00, + -2.551226019860000e-01, + -1.128236651420000e+00, + -4.941380023960000e+00, + -8.219288825990001e+00, + 7.705331802370000e+00, + -5.250657200810001e-01, + -1.307546138760000e+00, + -5.585344314580000e+00, + 3.659276723860000e+00, + -4.169455051420000e+00, + 9.759440422060001e+00, + -4.156814098360000e+00, + -6.095480918880000e+00, + 9.877584457399999e+00, + -5.154551982880000e+00, + -8.214393615720001e+00, + -5.521778464320000e-01, + 6.501889705660000e+00, + -3.732754230500000e+00, + -2.536937236790000e+00, + -4.787423610690000e+00, + 5.791424751280000e+00, + 1.403581619260000e+00, + 1.715620517730000e+00, + 1.035876750950000e+00, + 1.416776418690000e+00, + 1.508615016940000e+00, + -1.685592651370000e+00, + 5.844505310060000e+00, + 4.927973270420000e+00, + -1.073917031290000e+00, + -3.402088165280000e+00, + 3.556811809540000e-01, + 2.836538791660000e+00, + -3.608098745350000e+00, + 5.277178764340000e+00, + 2.550954222680000e-01, + 6.565269470210000e+00, + -1.368553996090000e+00, + -8.278764486310000e-01, + -5.487992286680000e+00, + -5.705431938170000e+00, + -2.414947748180000e+00, + -4.606639862060000e+00, + 1.307674527170000e+00, + 8.196451663970000e-01, + 9.740011692050000e-01, + 1.109364032750000e+00, + -1.937744975090000e+00, + 5.509332180020000e+00, + -5.805867314340000e-01, + 4.986840248110000e+00, + -3.103747606280000e+00, + 1.824853122230000e-01, + 3.765163898470000e+00, + -1.212462186810000e+00, + -6.157290458680000e+00, + 8.089732170100000e+00, + -2.466870546340000e+00, + -1.346293926240000e+00, + -8.792823553090000e-01, + -5.784963607790000e+00, + -2.040758848190000e+00, + -2.797702789310000e+00, + 1.692815423010000e+00, + 4.847302913670000e+00, + 3.781254403290000e-03, + 4.503915011880000e-01, + 5.661458969120000e+00, + 5.428965091710000e+00, + -2.355774641040000e+00, + -3.382957935330000e+00, + 4.147584915160000e+00, + 6.976293921470000e-01, + 8.053720474240000e+00, + 4.053264856340000e-01, + 1.388721704480000e+00, + -1.413807749750000e+00, + 4.482795715330000e+00, + 1.405348896980000e+00, + 1.191893219950000e+00, + -5.872794628140000e+00, + -5.829421997070000e+00, + -1.791666269300000e+00, + 2.318865776060000e+00, + -5.663775920870000e+00, + 5.095489978790000e+00, + 2.069710493090000e+00, + 1.825185894970000e+00, + -4.414818763730000e+00, + -4.946814537050000e+00, + -5.198348045350000e+00, + -2.423468112950000e+00, + -4.275682926180000e+00, + -3.588021993640000e+00, + -2.114505529400000e+00, + -7.451705932620000e-01, + -3.183665275570000e+00, + 3.021533489230000e+00, + 5.353691577910000e+00, + -2.013384252790000e-01, + 1.234569072720000e+00, + 1.593034267430000e+00, + 1.325026035310000e+00, + 1.188686013220000e+00, + 1.422023296360000e+00, + -1.806735634800000e+00, + 5.947761058810000e+00, + 4.998953819270000e+00, + -6.770776510240000e-01, + -3.082214593890000e+00, + 4.625662267210000e-01, + 2.378170728680000e+00, + -3.509932756420000e+00, + 5.037285327910000e+00, + 8.954258263110000e-02, + 6.608134269710000e+00, + -1.583360672000000e+00, + -8.581465482710000e-01, + -5.428382873540000e+00, + -5.957498073580000e+00, + -2.423265933990000e+00, + -4.641968250270000e+00, + 3.514475226400000e-01, + 1.669419527050000e+00, + 1.421399354930000e+00, + 1.517133355140000e+00, + -1.286189079280000e+00, + 5.135139942170000e+00, + -6.763719320300000e-01, + 6.663166522980000e+00, + -3.005083084110000e+00, + -4.278547465800000e-01, + 3.237342596050000e+00, + -1.506386280060000e+00, + -7.384834766390000e+00, + 7.691863060000000e+00, + -3.090116977690000e+00, + -1.368149638180000e+00, + -1.315316200260000e+00, + -4.678021430970000e+00, + 2.171070873740000e-01, + -1.413189768790000e+00, + 2.669625282290000e+00, + 5.683190345760000e+00, + -6.413482427600000e-01, + 6.209306120870000e-01, + 4.909068107600000e+00, + 5.687942504880000e+00, + -1.495552778240000e+00, + -4.356661319730000e+00, + 5.221400260930000e+00, + 6.218228340150000e-01, + 5.129792213440000e+00, + 1.061997175220000e+00, + 1.657798647880000e+00, + -1.868902444840000e+00, + 7.299134731290000e+00, + 1.793692469600000e+00, + 1.933523654940000e+00, + -6.398159980770000e+00, + -6.393748760220000e+00, + -2.768649816510000e+00, + 1.158157825470000e+00, + -5.656977176670000e+00, + 5.780691623690000e+00, + -1.175885275010000e-01, + 2.852456092830000e+00, + -3.522875785830000e+00, + -6.726084709170000e+00, + -4.845100879670000e+00, + -2.680302381520000e+00, + -5.052170753480000e+00, + -2.672898530960000e+00, + -1.924536585810000e+00, + -1.091270208360000e+00, + -3.528836250310000e+00, + 2.236685037610000e+00, + 4.334171772000000e+00, + 6.297672390940000e-01, + -3.071990013120000e-01, + -2.455947697160000e-01, + -1.069544076920000e+00, + -2.228499203920000e-01, + -2.241351455450000e-01, + -1.941449642180000e+00, + -1.143219113350000e+00, + 3.535546362400000e-01, + 3.271706104280000e+00, + 3.698075413700000e-01, + 5.502713322640000e-01, + -7.842605710030000e-01, + -1.301544427870000e+00, + -7.007147073750000e-01, + 2.646446704860000e+00, + 6.749513149260000e-01, + -2.177435457710000e-01, + -1.198472499850000e+00, + 9.596098661419999e-01, + -3.049699068070000e+00, + -1.061667680740000e+00, + 3.383033990860000e+00, + -3.063668310640000e-01, + 1.946856975560000e-01, + 3.966745138170000e-01, + -2.155679702760000e+00, + -1.769755721090000e+00, + -6.825107932090000e-01, + 1.708579182620000e+00, + -1.638507992030000e-01, + -6.057841181760000e-01, + -1.050409197810000e+00, + -6.650209426880000e-01, + -3.372669935230000e+00, + -1.537775278090000e+00, + 1.758400648830000e-01, + -6.979879736900001e-02, + -9.028296470640000e-01, + 3.459618806840000e+00, + 3.593629360200000e+00, + 2.705957651140000e+00, + 1.546777367590000e+00, + -1.070985794070000e+00, + 2.374051094060000e+00, + -1.291627526280000e+00, + 3.937614917760000e+00, + 9.348434209820000e-01, + 8.781720399860000e-01, + -1.904468417170000e+00, + -1.903512954710000e+00, + 5.686479806900000e-01, + -7.358652353289999e-01, + 1.940532922740000e+00, + 1.854660034180000e+00, + -3.315768539910000e-01, + -1.133528351780000e+00, + -1.503706812860000e+00, + -4.142455458640000e-01, + -3.312701284890000e-01, + 1.380423665050000e+00, + 4.734497070310000e-01, + 4.256208539010000e-01, + 1.066916465760000e+00, + -3.467942714690000e+00, + -2.056278467180000e+00, + 1.090077161790000e+00, + -6.590760946270000e-01, + 6.582972407340000e-01, + -3.658021926880000e+00, + 2.168941259380000e+00, + -3.102932929990000e+00, + 4.685743808750000e+00, + 3.882830142970000e+00, + -2.743002414700000e+00, + 2.515944480900000e+00, + 7.801247835160000e-01, + 1.050880253310000e-01, + -1.147106289860000e+00, + -1.174007415770000e+00, + -3.003029823300000e-01, + -2.351089864970000e-01, + -3.424385488030000e-01, + -5.639764666560000e-01, + -4.886810183530000e-01, + -1.870615363120000e+00, + -1.501197099690000e+00, + 1.385759860280000e-01, + 2.107644081120000e+00, + 1.198291555050000e-01, + 4.055838286880000e-01, + -7.754371762280000e-01, + -1.496343493460000e+00, + -5.617811083790000e-01, + 3.031104087830000e+00, + 4.944270551200000e-01, + -2.301847748460000e-02, + -1.313040256500000e+00, + 9.722277522090000e-01, + -2.677829027180000e+00, + -1.213735818860000e+00, + 3.530099630360000e+00, + 1.196238026020000e-02, + -8.442369699480000e-01, + -1.042081832890000e+00, + 7.916010022160000e-01, + -1.948455691340000e+00, + -8.595605194570000e-02, + 2.339766263960000e+00, + -2.583422660830000e-01, + -6.612093448640000e-01, + 7.478734850880000e-01, + -2.184570789340000e+00, + -3.897396326070000e+00, + -1.730503439900000e+00, + 4.296510815620000e-01, + 5.359097123150000e-01, + -7.012605667110000e-01, + 3.436922073360000e+00, + 4.643941879270000e+00, + 1.977276444440000e+00, + 1.330178141590000e+00, + -1.856658220290000e+00, + 1.579993128780000e+00, + -1.094126701350000e+00, + 4.431577205660000e+00, + -6.298540234570000e-01, + -3.713887333870000e-01, + -1.156459331510000e+00, + -1.384260654450000e+00, + -9.954833388330000e-01, + -1.663020551200000e-01, + 2.279866933820000e+00, + 1.654485940930000e+00, + 2.109840959310000e-01, + -8.926856517789999e-01, + -2.141774892810000e+00, + -6.015914678570000e-01, + -3.058457374570000e-01, + 1.445886015890000e+00, + -1.155114650730000e+00, + -6.894319653510000e-01, + -3.500272333620000e-01, + -6.027137756350000e+00, + -1.070142626760000e+00, + 8.671280741690000e-01, + -4.039979577060000e-01, + -2.821725606920000e-01, + -5.073091983800000e+00, + 2.309761285780000e+00, + -3.020115375520000e+00, + 5.779799461360000e+00, + 3.415709495540000e+00, + -2.421027898790000e+00, + 3.530281782150000e+00, + 3.968469798560000e-01, + -5.720084533100000e-02, + -1.500135421750000e+00, + -1.313181281090000e+00, + 1.758420467380000e-02, + 1.118783503770000e-01, + 4.643459245560000e-02, + 2.016485296190000e-02, + -1.833584457640000e-01, + -1.110758662220000e+00, + -5.817468643190000e+00, + 8.470344543460000e-01, + 6.687688827510000e+00, + -3.272391557690000e+00, + 3.710959434510000e+00, + -2.676931858060000e+00, + -2.142458438870000e+00, + -3.595328092580000e+00, + 4.493242263790000e+00, + -1.499734520910000e+00, + 7.683691024780000e+00, + 5.168675899510000e+00, + -6.021179676060000e+00, + -2.175133228300000e+00, + 9.913934707639999e+00, + -7.305819511410000e+00, + 3.363043963910000e-01, + -4.134638011460000e-01, + 1.221807524560000e-01, + 2.017693221570000e-02, + -1.673919439320000e+00, + -5.828750133510000e+00, + 6.640020370480000e+00, + 8.171983361239999e-01, + -4.840421199800000e+00, + 3.358595848080000e+00, + -3.913486003880000e+00, + 4.708030223850000e+00, + -2.665425777440000e+00, + -1.273008346560000e+00, + -3.631759166720000e+00, + 1.162728500370000e+01, + 6.926707744600000e+00, + -7.238212585450000e+00, + 7.789892673490000e+00, + -3.858008146290000e+00, + -4.176469326020000e+00, + 1.678909063340000e+00, + -7.794948220250000e-01, + 3.782882690430000e+00, + 1.766307353970000e-01, + -2.090653896330000e+00, + -2.425953745840000e-01, + -2.737877845760000e+00, + 9.327493309970000e-01, + 4.614458084110000e+00, + -1.700531125070000e+00, + 4.347154617310000e+00, + 3.230041563510000e-01, + 6.196472167970000e+00, + -5.131930828090000e+00, + 1.962185055020000e-01, + 6.620927453040000e-01, + -5.757808208470000e+00, + -7.857581138610000e+00, + 8.339687347410001e+00, + 1.610762476920000e-01, + -1.170236468320000e+00, + -5.556310653690000e+00, + 2.438004970550000e+00, + -3.093418836590000e+00, + 9.304550170900001e+00, + -3.444526672360000e+00, + -6.598390579220000e+00, + 1.006605625150000e+01, + -7.171877384190000e+00, + -7.331670284270000e+00, + 2.223488837480000e-01, + 6.663803100590000e+00, + -4.041676998140000e+00, + -4.260515689850000e+00, + -6.409836292270000e+00, + 5.775920867920000e+00, + 7.048116624360000e-02, + -4.220132157210000e-02, + 1.644438356160000e-01, + 2.946383655070000e-01, + 1.141060963270000e-01, + -6.766735315320000e-01, + -5.743579864500000e+00, + 6.804977655410001e-01, + 7.055628299710000e+00, + -4.300691604610000e+00, + 3.186750411990000e+00, + -3.289164781570000e+00, + -2.278636693950000e+00, + -3.602313041690000e+00, + 4.612356662750000e+00, + -1.655423879620000e+00, + 7.191610813140000e+00, + 4.933145046230000e+00, + -5.756862640380000e+00, + -2.288887500760000e+00, + 9.852953910829999e+00, + -7.125807762150000e+00, + 2.215162962680000e-01, + -7.116624712940000e-01, + -8.762969821690000e-02, + -5.576517581940000e-01, + -1.042852640150000e+00, + -4.711575031280000e+00, + 6.527059555050000e+00, + 1.571772098540000e+00, + -4.451066493990000e+00, + 3.510770320890000e+00, + -3.960133075710000e+00, + 5.223571777340000e+00, + -6.111487150190000e-01, + -2.154000759120000e+00, + -5.647270202640000e+00, + 1.209041213990000e+01, + 8.004826545720000e+00, + -7.654225826260000e+00, + 4.895875453950000e+00, + -3.948183059690000e+00, + -3.361739397050000e+00, + 1.664446473120000e+00, + -1.571276903150000e+00, + 3.567309379580000e+00, + -4.778525233270000e-01, + -2.108627557750000e+00, + -1.022247910500000e+00, + -1.395600318910000e+00, + 6.883472204210001e-01, + 3.570795297620000e+00, + -1.899400234220000e+00, + 4.526749610900000e+00, + -1.539897769690000e-01, + 4.847177505490000e+00, + -6.106573581700000e+00, + 2.777865529060000e-01, + -9.673072397710000e-02, + -5.419399261470000e+00, + -6.588551044460000e+00, + 7.926129817960000e+00, + -1.625651717190000e-01, + -1.019936561580000e+00, + -5.605113029480000e+00, + 3.085770606990000e+00, + -2.334259748460000e+00, + 1.153508090970000e+01, + -3.780943393710000e+00, + -6.240101337430000e+00, + 8.665480613710001e+00, + -5.459815025330000e+00, + -8.103297233579999e+00, + 4.650342166420000e-01, + 5.476469516750000e+00, + -3.062658786770000e+00, + -4.711937904360000e+00, + -5.745110511780000e+00, + 5.685109138490000e+00, + 1.490094184880000e+00, + 1.358053445820000e+00, + 1.364650487900000e+00, + 1.147940278050000e+00, + 1.561928868290000e+00, + -1.075392603870000e+00, + 5.928020954130000e+00, + 4.877452850340000e+00, + -8.196294307710000e-01, + -1.997596144680000e+00, + 5.683369636540000e-01, + 2.023228645320000e+00, + -3.138341665270000e+00, + 4.925219535830000e+00, + 2.576670646670000e-01, + 6.664877414700000e+00, + -1.151698350910000e+00, + -5.981444120410000e-01, + -5.206447124480000e+00, + -5.928332328800000e+00, + -2.506622791290000e+00, + -4.652672290800000e+00, + 8.574059009550000e-01, + 1.120286345480000e+00, + 2.454668045040000e+00, + 1.911107659340000e+00, + -2.768149614330000e+00, + 5.780409812930000e+00, + 1.252308189870000e-01, + 5.952285289760000e+00, + -3.058035373690000e+00, + 7.339828014370000e-01, + 2.570800781250000e+00, + -1.439616203310000e+00, + -7.596499443050000e+00, + 7.870427131650000e+00, + -3.929499387740000e+00, + -1.466613531110000e+00, + -1.294559478760000e+00, + -4.750712394710000e+00, + -1.561828017230000e+00, + -9.026612043380000e-01, + 2.010426521300000e+00, + 4.623489379880000e+00, + -1.361342430110000e+00, + 7.335390448570001e-01, + 5.189790248870000e+00, + 6.473412036900000e+00, + -1.389221668240000e+00, + -4.620078563690000e+00, + 3.916980981830000e+00, + -2.388099879030000e-01, + 6.898517608640000e+00, + 1.322689771650000e+00, + 1.024552062150000e-01, + -1.216854572300000e+00, + 6.372399806980000e+00, + 1.674309849740000e+00, + 1.745191574100000e+00, + -6.427991867070000e+00, + -5.705935955050000e+00, + -2.141741275790000e+00, + 1.439902305600000e+00, + -5.295949935910000e+00, + 5.414422512050000e+00, + 5.125425457950000e-01, + 2.421680212020000e+00, + -4.461025714870000e+00, + -4.957195758820000e+00, + -4.622198104860000e+00, + -2.889517307280000e+00, + -4.639479160310000e+00, + -2.760716915130000e+00, + -9.373890757559999e-01, + -1.138680696490000e+00, + -3.322774171830000e+00, + 2.357768058780000e+00, + 5.102202892300000e+00, + -2.385317087170000e-01, + 1.379801034930000e+00, + 1.341751098630000e+00, + 1.510179758070000e+00, + 1.366140365600000e+00, + 1.272764682770000e+00, + -1.722970366480000e+00, + 5.842505455020000e+00, + 4.727083206180000e+00, + -7.975318431850000e-01, + -3.595422983170000e+00, + 6.641007959839999e-02, + 2.505045890810000e+00, + -3.303080558780000e+00, + 5.094828605650000e+00, + 2.302530407910000e-01, + 6.579291820530000e+00, + -1.437269330020000e+00, + -9.312981367110000e-01, + -5.414416313170000e+00, + -5.530291557310000e+00, + -2.467081785200000e+00, + -4.447678089140000e+00, + 9.566323161130000e-01, + 1.812918066980000e+00, + 1.513837933540000e+00, + 8.551882505420000e-01, + -1.262404203410000e+00, + 5.526854038240000e+00, + -6.743251085280000e-01, + 6.239157676700000e+00, + -3.179219007490000e+00, + 3.376685678960000e-01, + 3.398914098740000e+00, + 1.455815285440000e-01, + -5.897058010100000e+00, + 8.050380706790000e+00, + -4.050648689270000e+00, + -7.597612738610000e-01, + -1.178939580920000e+00, + -4.931324005130000e+00, + 1.808905508370000e-03, + -2.346162319180000e+00, + 2.219709157940000e+00, + 5.701086997990000e+00, + -1.079795598980000e+00, + 2.301366567610000e+00, + 6.273912906650000e+00, + 6.856295108800000e+00, + -2.518733501430000e+00, + -4.214417457580000e+00, + 5.236418724060000e+00, + 2.181543260810000e-01, + 6.397736072540000e+00, + 9.791716337200000e-01, + 1.389253616330000e+00, + 2.783732488750000e-04, + 5.844452381130000e+00, + 1.872618198390000e+00, + 2.090477705000000e+00, + -6.754899978640000e+00, + -5.097085475920000e+00, + -1.046620249750000e+00, + 1.678202867510000e+00, + -5.081733703610000e+00, + 5.928544521330000e+00, + 2.318533807990000e-01, + 2.900820493700000e+00, + -5.291073799130000e+00, + -5.692626476290000e+00, + -3.944893121720000e+00, + -2.033250093460000e+00, + -4.545838356020000e+00, + -2.600896120070000e+00, + -1.130246758460000e+00, + -2.631571054460000e+00, + -4.187940120700000e+00, + 1.593603610990000e+00, + 5.187750816350000e+00, + -1.254089474680000e+00, + -3.010898232460000e-01, + -2.652096748350000e-01, + -4.589577019210000e-01, + -3.156456053260000e-01, + 3.192020654680000e-01, + -6.802919507030000e-01, + -1.161499142650000e+00, + 3.199785947800000e-01, + 2.520822525020000e+00, + 1.471246629950000e-01, + 8.387943506240000e-01, + -8.257710933690000e-01, + -1.186591506000000e+00, + -4.643400907520000e-01, + 2.934312343600000e+00, + 8.482218384740000e-01, + 4.376100301740000e-01, + -1.026600003240000e+00, + 1.210290670390000e+00, + -3.500130891800000e+00, + -8.629229664800000e-01, + 3.504733562470000e+00, + 8.501942455769999e-02, + -3.417069911960000e-01, + -5.524318814280000e-01, + 7.435039877890000e-01, + -1.809568881990000e+00, + -2.318856269120000e-01, + 1.980146765710000e+00, + -2.207998514180000e+00, + -1.268315464260000e-01, + 5.015338063240000e-01, + -1.349201202390000e+00, + -1.714553713800000e+00, + -1.565167307850000e+00, + 4.825014770030000e-01, + 7.894608974460000e-01, + -2.859451472760000e-01, + 3.584502220150000e+00, + 2.566207408910000e+00, + 2.675736427310000e+00, + 1.405928969380000e+00, + -1.808894753460000e+00, + 1.553966760640000e+00, + -1.749649047850000e+00, + 2.898760318760000e+00, + 4.251046180730000e-01, + -8.654404878620000e-01, + -1.070808291440000e+00, + -1.638900876050000e+00, + -4.908223450180000e-01, + -3.368120193480000e-01, + 2.033133029940000e+00, + 2.448076605800000e-01, + -1.158528327940000e+00, + -1.732625603680000e+00, + -7.113047838210000e-01, + -2.424304932360000e-01, + -1.061192274090000e+00, + 1.226620554920000e+00, + -2.993890643120000e-02, + 3.219813406470000e-01, + -9.773193597790000e-01, + -5.400228977200000e+00, + -1.392198801040000e+00, + 3.217468261720000e-01, + -5.521917343140000e-01, + 1.479078680280000e-01, + -4.695649623870000e+00, + 1.588374018670000e+00, + -2.268694162370000e+00, + 4.314914226530000e+00, + 3.374228715900000e+00, + -2.614578962330000e+00, + 2.953226566310000e+00, + 5.117545127870000e-01, + 5.940841436390000e-01, + -1.413684487340000e+00, + -2.337517261510000e+00, + -3.501847684380000e-01, + -3.922651708130000e-01, + -4.096472263340000e-01, + -4.784475862980000e-01, + -2.714204788210000e-01, + -1.882856607440000e+00, + -1.263949513440000e+00, + 4.469895660880000e-01, + 2.546452522280000e+00, + 6.166024208070000e-01, + 2.189591974020000e-01, + -8.937889337540000e-01, + -1.377629756930000e+00, + -5.521313548090000e-01, + 3.022002935410000e+00, + 6.460740566249999e-01, + -1.534980386500000e-01, + -1.147765874860000e+00, + 1.087897062300000e+00, + -3.152309894560000e+00, + -6.418350934980001e-01, + 3.632827758790000e+00, + -5.011970400810000e-01, + -1.192306280140000e+00, + 3.178953826430000e-01, + -9.345599263910000e-02, + -2.064854621890000e+00, + -8.477792143820000e-01, + 2.294451236720000e+00, + -5.488302111630000e-01, + -3.911446630950000e-01, + 4.591926634310000e-01, + -3.815541416410000e-02, + -2.264613389970000e+00, + -1.941648960110000e+00, + 5.139970779420000e-01, + 4.509243071080000e-01, + -5.507560372350000e-01, + 3.861699104310000e+00, + 3.632574081420000e+00, + 2.009963512420000e+00, + 3.186411857600000e-01, + -2.021654367450000e+00, + 2.097568750380000e+00, + -1.800834178920000e+00, + 4.404986858370000e+00, + -8.483359962700000e-02, + -2.724739611150000e-01, + -1.699161410330000e+00, + -1.275206804280000e+00, + 4.409195184710000e-01, + 3.124899864200000e-01, + 2.719691514970000e+00, + 6.805939674380000e-01, + -2.261384725570000e-01, + -6.794183254240000e-01, + -4.635029733180000e-01, + -6.080366373060000e-01, + -1.146449446680000e+00, + 1.851051330570000e+00, + 2.737707793710000e-01, + -1.568710088730000e+00, + 1.165924891830000e-01, + -4.370233535770000e+00, + -1.487413764000000e+00, + -1.899413615470000e-01, + -1.312748551370000e+00, + 4.789591431620000e-01, + -2.460654735570000e+00, + 2.992734193800000e+00, + -2.917578220370000e+00, + 4.949742794040000e+00, + 3.451229810710000e+00, + -2.381490230560000e+00, + 2.157368898390000e+00, + 6.051176190380000e-01, + -2.111994773150000e-01, + -1.080227613450000e+00, + -1.890141606330000e+00, + 4.081186279650000e-02, + 8.023945987220001e-02, + 2.619252800940000e-01, + 2.534919679160000e-01, + -2.889608740810000e-01, + -4.026011526580000e-01, + -5.640271663670000e+00, + 6.005530953410000e-01, + 7.724443435670000e+00, + -3.981693267820000e+00, + 3.408698797230000e+00, + -3.074886083600000e+00, + -2.290669679640000e+00, + -3.618630886080000e+00, + 4.474171161650000e+00, + -1.477810502050000e+00, + 7.393842697140000e+00, + 6.184688091280000e+00, + -6.110385894780000e+00, + -2.125169277190000e+00, + 9.762270927430000e+00, + -7.100735664370000e+00, + 1.135985329750000e-01, + 5.305791497230000e-01, + -1.808383911850000e-01, + 7.801412343980000e-01, + -1.384709239010000e+00, + -4.015248775480000e+00, + 6.996559143070000e+00, + 1.799015164380000e+00, + -3.863916873930000e+00, + 3.912130594250000e+00, + -2.607485294340000e+00, + 4.785790443420000e+00, + 2.284108549360000e-01, + -1.589273929600000e+00, + -4.072546005250000e+00, + 1.123939895630000e+01, + 7.274779796600000e+00, + -9.148973464970000e+00, + 6.763929367070000e+00, + -3.700904130940000e+00, + -4.537814617160000e+00, + 1.449890732770000e+00, + -1.869398057460000e-01, + 4.646031856540000e+00, + 4.396121501920000e-01, + -2.991602182390000e+00, + -9.349039942030000e-02, + -2.055032014850000e+00, + 1.421855926510000e+00, + 2.823441982270000e+00, + -8.004373312000000e-01, + 3.623639822010000e+00, + -7.465401887890000e-01, + 5.515120506290000e+00, + -7.005268573760000e+00, + -2.650950849060000e-01, + -7.982575334610000e-03, + -6.007534503940000e+00, + -7.217163085940000e+00, + 8.317376136780000e+00, + 4.578505083920000e-02, + -1.769169688220000e+00, + -5.477219104770000e+00, + 3.177376747130000e+00, + -2.043092012410000e+00, + 1.018539142610000e+01, + -3.179744005200000e+00, + -5.619790077210000e+00, + 8.723639488220000e+00, + -4.001474380490000e+00, + -8.490709304810000e+00, + -7.267851829530000e-01, + 7.079432964320000e+00, + -3.407399415970000e+00, + -3.822131156920000e+00, + -5.248131752010000e+00, + 5.018155097960000e+00, + 4.456324577330000e-01, + -9.278137236830000e-02, + 5.335910618310000e-02, + 2.961373142900000e-02, + 1.149967759850000e-01, + -7.632891535760000e-01, + -5.628989219670000e+00, + 1.234387516980000e+00, + 6.898990631100000e+00, + -4.275503158570000e+00, + 2.962355375290000e+00, + -2.856187820430000e+00, + -2.239619255070000e+00, + -3.849006891250000e+00, + 4.617879390720000e+00, + -1.439539074900000e+00, + 7.229081630710000e+00, + 4.802783489230000e+00, + -5.957834243770000e+00, + -1.699428677560000e+00, + 9.642343521120001e+00, + -7.338824272160000e+00, + -8.554975986480000e-01, + 8.541863560680000e-01, + 1.101171225310000e-01, + 2.556390762330000e-01, + -9.826381802560000e-01, + -5.037830829620000e+00, + 7.440158843990000e+00, + 1.562675237660000e+00, + -3.410386323930000e+00, + 3.256035089490000e+00, + -3.919478654860000e+00, + 5.272185802460000e+00, + -1.688117742540000e+00, + -1.657274127010000e+00, + -3.775629282000000e+00, + 1.122970485690000e+01, + 6.939555168150000e+00, + -8.377426147460000e+00, + 6.935351848600000e+00, + -3.934459686280000e+00, + -5.565493583680000e+00, + 8.256027102470000e-01, + -8.069928884510000e-01, + 4.302055835720000e+00, + -1.293139457700000e-01, + -9.296904802320000e-01, + -1.188736319540000e+00, + -1.301290869710000e+00, + 8.768439888950000e-01, + 3.396882772450000e+00, + -2.506406545640000e+00, + 3.693353414540000e+00, + -8.407531976700000e-01, + 5.568751335140000e+00, + -6.126938819890000e+00, + -1.491651982070000e-01, + 1.175334230070000e-01, + -3.844789981840000e+00, + -7.587239742280000e+00, + 8.242315292360001e+00, + 1.520566940310000e-01, + -1.764117360120000e+00, + -5.630676269530000e+00, + 2.793716430660000e+00, + -3.382233858110000e+00, + 1.051375484470000e+01, + -3.117942571640000e+00, + -4.143848896030000e+00, + 1.050200271610000e+01, + -5.489147663120000e+00, + -7.606538772580000e+00, + 2.082150131460000e-01, + 5.109562397000000e+00, + -4.155588150020000e+00, + -3.721738815310000e+00, + -5.684343338010000e+00, + 4.892034053800000e+00, + 1.530793547630000e+00, + 1.224990606310000e+00, + 1.417504549030000e+00, + 1.398303627970000e+00, + 1.784150123600000e+00, + -2.272288799290000e+00, + 6.098052978520000e+00, + 4.937042713170000e+00, + -9.668896794320000e-01, + -3.402856826780000e+00, + 2.429989427330000e-01, + 2.619332075120000e+00, + -4.264116287230000e+00, + 4.965302467350000e+00, + 2.912628650670000e-01, + 6.499625205990000e+00, + -1.232241988180000e+00, + -9.523246288300000e-01, + -5.346853256230000e+00, + -5.720762729640000e+00, + -2.642308950420000e+00, + -4.430143356320000e+00, + 1.437786459920000e+00, + 5.408773422240000e-01, + 1.579400777820000e+00, + 1.920618772510000e+00, + -1.106915950780000e+00, + 6.583391189580000e+00, + -7.369843721390000e-01, + 5.902853012080000e+00, + -2.554997444150000e+00, + -2.159487158060000e-01, + 2.006444692610000e+00, + -4.415759444240000e-01, + -7.881577491760000e+00, + 8.327775001530000e+00, + -4.057663440700000e+00, + -2.323699712750000e+00, + -1.606569528580000e+00, + -5.207537174220000e+00, + -7.087903618810000e-01, + -1.101714253430000e+00, + 2.139686346050000e+00, + 4.646441936490000e+00, + -1.377521395680000e+00, + 7.464879751210000e-01, + 4.711794376370000e+00, + 6.508643627170000e+00, + -1.342646241190000e+00, + -3.255203962330000e+00, + 4.574345111850000e+00, + 6.876415014270000e-01, + 5.831231594090000e+00, + 1.504763603210000e+00, + 1.465535640720000e+00, + -1.975420117380000e+00, + 6.579022407530000e+00, + 1.143969178200000e+00, + 1.438454508780000e+00, + -5.938961505890000e+00, + -5.518068790440000e+00, + -1.192443490030000e+00, + 1.370623588560000e+00, + -5.233832359310000e+00, + 5.999431133270000e+00, + 3.564028814440000e-02, + 2.945740222930000e+00, + -4.105185985570000e+00, + -6.335820674900000e+00, + -5.378433704380000e+00, + -2.807455301280000e+00, + -3.315035820010000e+00, + -1.525304436680000e+00, + -1.503775238990000e+00, + -1.416942834850000e+00, + -3.243210792540000e+00, + 3.050233840940000e+00, + 4.498549938200000e+00, + -6.477282047270000e-01, + 1.686695456500000e+00, + 1.726218581200000e+00, + 1.401600360870000e+00, + 1.332751870160000e+00, + 9.512478709220000e-01, + -1.721664309500000e+00, + 5.975547790530000e+00, + 4.416413307190000e+00, + -5.879514813420000e-01, + -4.394941806790000e+00, + 4.883420765400000e-01, + 2.234333038330000e+00, + -3.565700531010000e+00, + 5.281252861020000e+00, + 3.433818817140000e-01, + 6.686922550200000e+00, + -1.138205289840000e+00, + -5.926720499990000e-01, + -5.242782115940000e+00, + -5.746008872990000e+00, + -2.671764373780000e+00, + -4.595944404600000e+00, + 1.268284201620000e+00, + 1.918451189990000e+00, + 1.180744647980000e+00, + 1.421215295790000e+00, + -1.544489979740000e+00, + 6.051735877990000e+00, + -1.162493973970000e-01, + 5.775389194490000e+00, + -2.771501541140000e+00, + -6.232150197030000e-01, + 4.871593952180000e+00, + 7.671197652820000e-01, + -7.839802265170000e+00, + 8.090286254880001e+00, + -2.654937982560000e+00, + -5.673676729200000e-01, + -1.332266211510000e+00, + -5.135327339170000e+00, + -8.287435770030001e-01, + -2.639138460160000e+00, + 2.686654090880000e+00, + 4.892683506010000e+00, + -2.198824405670000e+00, + 1.223870992660000e+00, + 5.113312244420000e+00, + 6.071859836580000e+00, + -1.805771350860000e+00, + -3.343253374100000e+00, + 4.800343036650000e+00, + -1.527750641110000e-01, + 6.233684062960000e+00, + 1.287221789360000e+00, + 1.551443576810000e+00, + -7.954571247100000e-01, + 6.087848186490000e+00, + 1.258129239080000e+00, + 1.742095112800000e+00, + -7.359870433810000e+00, + -5.564145088200000e+00, + -6.558752059940000e-01, + 1.507517218590000e+00, + -4.810512542720000e+00, + 7.147507190700000e+00, + 5.243993401530000e-01, + 1.877060890200000e+00, + -3.562810420990000e+00, + -6.253092288970000e+00, + -4.984093666080000e+00, + -1.894346952440000e+00, + -5.254276275630000e+00, + -2.757271289830000e+00, + -2.189993381500000e+00, + -3.909455835820000e-01, + -3.086057186130000e+00, + 4.199576377870000e+00, + 5.513436317440000e+00, + 7.391532659530000e-01, + -1.301957964900000e-01, + -1.430678814650000e-01, + -2.510715126990000e-01, + -3.931757211690000e-01, + -2.300146520140000e-01, + -2.313424348830000e+00, + -1.218161463740000e+00, + 4.155347943310000e-01, + 2.463526248930000e+00, + 3.650070726870000e-01, + 3.404352962970000e-01, + -7.229838967320000e-01, + -1.680571913720000e+00, + -5.921685099600000e-01, + 2.887809991840000e+00, + 6.529547572140000e-01, + 9.875559248030000e-03, + -2.035737276080000e+00, + 8.007190227510000e-01, + -3.101880788800000e+00, + -1.017769336700000e+00, + 3.794217109680000e+00, + -1.128640770910000e+00, + -5.423270463940000e-01, + 3.728257864710000e-02, + -2.869053483010000e-01, + -2.110086679460000e+00, + -9.364826679229999e-01, + 2.581924676900000e+00, + -8.772685527800000e-01, + 1.375304758550000e-01, + 8.299124240880000e-01, + -2.875557839870000e-01, + -3.602253675460000e+00, + -2.102748155590000e+00, + 5.103290677070000e-01, + 7.676523178819999e-02, + -1.311633348460000e+00, + 3.160476922990000e+00, + 3.954422950740000e+00, + 1.190329790120000e+00, + 1.721016645430000e+00, + -6.737279295920000e-01, + 7.242897748950000e-01, + -4.704294204710000e-01, + 3.947393894200000e+00, + 2.785695195200000e-01, + 2.073260992770000e-01, + -2.033248662950000e+00, + -9.138841032980000e-01, + -5.807874202730000e-01, + 6.360355615620000e-01, + 2.654950141910000e+00, + 8.424223065380000e-01, + 1.361896544690000e-01, + -9.927366375920000e-01, + -9.007826447490000e-01, + -5.836490392680000e-01, + -4.672415852550000e-01, + 5.669494271280000e-01, + -1.403941065070000e-01, + 1.090337634090000e+00, + -3.441238105300000e-01, + -4.346809387210000e+00, + -1.372599005700000e+00, + 8.902977705000000e-01, + -1.415261745450000e+00, + 2.472034394740000e-01, + -4.261501789090000e+00, + 1.296422243120000e+00, + -3.986108541490000e+00, + 3.833046674730000e+00, + 3.412350416180000e+00, + -1.941458344460000e+00, + 8.822900056840000e-01, + 4.861645400520000e-01, + 2.428778819740000e-02, + -7.597886323930000e-01, + -1.133698225020000e+00, + -1.089972019200000e+00, + 4.403741061690000e-01, + -3.303143680100000e-01, + -4.775514602660000e-01, + -2.751023471360000e-01, + -1.660763859750000e+00, + -1.148902416230000e+00, + -2.146493345500000e-01, + 2.420276641850000e+00, + 6.861478090290000e-01, + 3.999629318710000e-01, + -8.845489025120000e-01, + -1.391354203220000e+00, + -7.022274732590000e-01, + 2.732331752780000e+00, + 5.841395854950000e-01, + -3.901240229610000e-02, + -9.365429282190000e-01, + 1.056060910220000e+00, + -3.089130401610000e+00, + -9.450482130050000e-01, + 3.507260799410000e+00, + 3.303707540040000e-01, + 5.336100608110000e-02, + 8.727189898490000e-01, + -3.130542337890000e-01, + -3.187914371490000e+00, + -5.092902183530000e-01, + 9.642488956450000e-01, + 1.854073069990000e-02, + 4.912223517890000e-01, + 1.191020846370000e+00, + -7.348631620410000e-01, + -2.911941289900000e+00, + -1.938562631610000e+00, + 5.015457272530000e-01, + 2.793806791310000e-01, + -4.745982289310000e-01, + 2.730228185650000e+00, + 4.185947895050000e+00, + 2.369707584380000e+00, + 7.507476806640000e-01, + -1.424501180650000e+00, + 2.074695825580000e+00, + -2.715236663820000e+00, + 3.813533544540000e+00, + 5.348970890050000e-01, + 1.275255382060000e-01, + -1.454025983810000e+00, + -2.072008848190000e+00, + 3.426060974600000e-01, + -6.342417597770000e-01, + 2.924757957460000e+00, + 5.242063999180000e-01, + -1.473914265630000e+00, + -6.483878940340000e-02, + -9.417855739590000e-01, + -2.885449230670000e-01, + -2.946210205550000e-01, + 9.203938767310000e-03, + -1.242105841640000e+00, + -1.419998884200000e+00, + -1.558835804460000e-01, + -4.324929714200000e+00, + -1.871863842010000e+00, + -6.446116566660000e-01, + -1.456766843800000e+00, + 1.542741656300000e+00, + -4.092995643620000e+00, + 2.161851167680000e+00, + -3.626194000240000e+00, + 4.909071922300000e+00, + 4.341188907620000e+00, + -2.558125972750000e+00, + 1.453439474110000e+00, + 4.167390167710000e-01, + -2.727597951890000e-01, + -2.024709701540000e+00, + -7.934952974320000e-01, + 5.686829984190000e-02, + 1.875705868010000e-01, + -8.456242829560000e-02, + 6.843447685239999e-01, + 1.752933859830000e-01, + -7.394629120830000e-01, + -6.344500064850000e+00, + 8.912660479550000e-01, + 7.012383937840000e+00, + -3.650468349460000e+00, + 3.901311874390000e+00, + -3.207454919820000e+00, + -2.397146940230000e+00, + -4.037541866300000e+00, + 4.453009605410000e+00, + -1.267740368840000e+00, + 7.259740352630000e+00, + 5.817678928380000e+00, + -5.874095439910000e+00, + -2.045757055280000e+00, + 9.570739746090000e+00, + -7.001270771030000e+00, + 1.627436578270000e-01, + -3.734445869920000e-01, + -3.069249391560000e-01, + -1.905822753910000e-02, + -1.085113883020000e+00, + -5.541954994200000e+00, + 7.547542095180000e+00, + 2.086831331250000e+00, + -1.924717187880000e+00, + 4.316431045530000e+00, + -3.677627086640000e+00, + 3.265096187590000e+00, + -9.277148246769999e-01, + -1.107573270800000e+00, + -3.974632501600000e+00, + 1.131713867190000e+01, + 7.097278594970000e+00, + -8.612525939939999e+00, + 6.657649517060000e+00, + -4.376211643220000e+00, + -3.476022720340000e+00, + 1.288285017010000e+00, + 1.814662665130000e-01, + 3.185743331910000e+00, + 8.793233036990000e-01, + -1.692520499230000e+00, + 3.196677863600000e-01, + -2.018809318540000e+00, + 9.617875814440000e-01, + 3.818327426910000e+00, + 7.200578600170000e-02, + 4.411650657650000e+00, + 8.140254020690001e-02, + 4.888907909390000e+00, + -5.645245075230000e+00, + 1.482248902320000e-01, + 1.813919246200000e-01, + -4.699649810790000e+00, + -7.218002319340000e+00, + 7.796780109410000e+00, + 3.531586527820000e-01, + -1.614793419840000e+00, + -5.134205341340000e+00, + 3.318952798840000e+00, + -2.949961662290000e+00, + 9.670989036560000e+00, + -3.154437065120000e+00, + -5.934668064120000e+00, + 8.982586860660000e+00, + -6.579438686370000e+00, + -7.944221973420000e+00, + -7.845172882080000e-01, + 6.901780128480000e+00, + -3.866759300230000e+00, + -2.835432052610000e+00, + -6.205379009250000e+00, + 5.971817970280000e+00, + 6.364283710720001e-02, + 4.918811470270000e-02, + -2.310007363560000e-01, + -1.080192252990000e-01, + 1.030981019140000e-01, + -6.645005345340000e-01, + -5.820941925050000e+00, + 7.940587401390000e-01, + 6.851332187650000e+00, + -4.115617752080000e+00, + 3.399632930760000e+00, + -3.205235004430000e+00, + -1.915511369710000e+00, + -4.107222080230000e+00, + 4.580273151400000e+00, + -1.970060825350000e+00, + 7.249092102050000e+00, + 5.000690460210000e+00, + -5.810272216800000e+00, + -1.885657310490000e+00, + 9.482123374940000e+00, + -7.198337554930000e+00, + -6.759151220320000e-01, + 2.758764326570000e-01, + 8.593712449070000e-01, + 1.796278208490000e-01, + -3.145120739940000e-01, + -5.285258769990000e+00, + 5.907215595250000e+00, + 2.257240772250000e+00, + -3.251497983930000e+00, + 2.617008209230000e+00, + -3.988090276720000e+00, + 3.565510988240000e+00, + -1.277938485150000e+00, + -9.720803499220000e-01, + -5.282944679260000e+00, + 1.137064075470000e+01, + 9.196463584900000e+00, + -8.789184570310001e+00, + 7.354588985440000e+00, + -4.420785427090000e+00, + -3.781788110730000e+00, + 5.923744440080000e-01, + -1.217808961870000e+00, + 3.680623054500000e+00, + 5.493667721750000e-01, + -3.118117332460000e+00, + -1.684307217600000e+00, + -1.743952870370000e+00, + 7.898098230360000e-01, + 4.219384193420000e+00, + -1.077317833900000e+00, + 3.590851783750000e+00, + 2.656914293770000e-01, + 5.613736629490000e+00, + -6.526402473450000e+00, + 1.270910501480000e-01, + 4.386895298960000e-01, + -4.396899223330000e+00, + -6.373495101930000e+00, + 7.800676822660000e+00, + -1.867946386340000e-01, + -9.018115997310000e-01, + -5.123330593110000e+00, + 2.792194604870000e+00, + -2.359154224400000e+00, + 1.042496395110000e+01, + -3.259181499480000e+00, + -4.639271736150000e+00, + 9.499982833860001e+00, + -5.574933528900000e+00, + -7.866188049320000e+00, + -6.595275998120000e-01, + 6.745623111720000e+00, + -4.017336368560000e+00, + -3.363353013990000e+00, + -6.611792564390000e+00, + 5.692199230190000e+00, + 1.362996339800000e+00, + 1.717372894290000e+00, + 1.407113432880000e+00, + 1.966403841970000e+00, + 1.428046107290000e+00, + -1.666802763940000e+00, + 5.585581302640000e+00, + 4.837598800660000e+00, + -6.828567385670000e-01, + -3.655374050140000e+00, + 2.289382219310000e-01, + 2.380133628850000e+00, + -3.466945171360000e+00, + 5.035063743590000e+00, + 4.587897285820000e-02, + 6.223645210270000e+00, + -1.351714491840000e+00, + -1.315943241120000e+00, + -5.414701938630000e+00, + -5.659914493560000e+00, + -2.599588155750000e+00, + -4.388487815860000e+00, + 1.927487611770000e+00, + 7.842009663580000e-01, + 1.218367815020000e+00, + 8.129692673680000e-01, + -2.394304752350000e+00, + 6.211755752560000e+00, + -7.629400491710000e-01, + 5.794692993160000e+00, + -3.317757129670000e+00, + 7.040520310400000e-01, + 3.055112600330000e+00, + -1.854872465130000e+00, + -6.937084674840000e+00, + 8.370505332950000e+00, + -3.364134073260000e+00, + -2.170527219770000e+00, + -1.508178949360000e+00, + -6.240454196930000e+00, + -1.628798127170000e+00, + -2.553883075710000e+00, + 2.709768772130000e+00, + 5.169129371640000e+00, + -1.351211190220000e+00, + 8.250827789310000e-01, + 5.679588794710000e+00, + 5.445624828340000e+00, + -1.827399849890000e+00, + -3.800801992420000e+00, + 4.739975452420000e+00, + -1.947448998690000e-01, + 6.093822002410000e+00, + 1.121115446090000e+00, + 9.614126682280000e-01, + -5.750423073770000e-01, + 6.304340839390000e+00, + 1.334890961650000e+00, + 1.117540121080000e+00, + -5.911932468410000e+00, + -5.365699291230000e+00, + -1.547902464870000e+00, + 1.148407459260000e+00, + -5.661374568940000e+00, + 5.947134017940000e+00, + 3.331557214260000e-01, + 2.314347982410000e+00, + -3.863875627520000e+00, + -6.472029209140000e+00, + -4.633135795590000e+00, + -3.451950788500000e+00, + -5.276475906370000e+00, + -3.912435770030000e+00, + -2.563727378850000e+00, + -1.213679075240000e+00, + -4.118976593020000e+00, + 2.551453590390000e+00, + 6.719889163970000e+00, + -1.546446561810000e+00, + 1.187465429310000e+00, + 1.388772726060000e+00, + 1.420869469640000e+00, + 1.301163911820000e+00, + 1.316662907600000e+00, + -1.637201547620000e+00, + 5.964183807370000e+00, + 5.051249504090000e+00, + -7.073147296910000e-01, + -3.343521595000000e+00, + 2.048216164110000e-01, + 2.468196153640000e+00, + -3.512678146360000e+00, + 5.280303001400000e+00, + 3.007200360300000e-01, + 6.806684970860000e+00, + -1.516741037370000e+00, + -8.495410084720000e-01, + -5.144951343540000e+00, + -5.648070335390000e+00, + -2.298802614210000e+00, + -4.524217128750000e+00, + 6.917794346810000e-01, + 1.090626001360000e+00, + 7.738099992280000e-02, + 1.749579191210000e+00, + -1.488806247710000e+00, + 5.228426933290000e+00, + -2.318134456870000e-01, + 5.166294097900000e+00, + -2.097080945970000e+00, + 3.870171681050000e-02, + 3.833932638170000e+00, + -1.628178715710000e+00, + -7.768972873690000e+00, + 8.418299674989999e+00, + -4.526112556460000e+00, + -1.573108911510000e+00, + -1.157083988190000e+00, + -6.763061046600000e+00, + -1.641582608220000e+00, + -1.927332282070000e+00, + 2.562581300740000e+00, + 4.697452545170000e+00, + -2.109113931660000e+00, + 9.670796990390000e-01, + 5.672268867490000e+00, + 5.623377799990000e+00, + -1.053843021390000e+00, + -3.883543252940000e+00, + 3.863820791240000e+00, + 3.332488536830000e-01, + 6.614287376400000e+00, + 1.218539476390000e-01, + 1.321354269980000e+00, + -2.618563413620000e+00, + 6.052978992460000e+00, + 1.353091835980000e+00, + 8.348990082740000e-01, + -6.785179138180000e+00, + -6.203225135800000e+00, + -1.950599074360000e+00, + 1.790708899500000e+00, + -5.859575271610000e+00, + 5.399134635930000e+00, + 7.062292695050000e-01, + 1.950997352600000e+00, + -3.193666219710000e+00, + -6.488141059880000e+00, + -4.461434841160000e+00, + -4.111958026890000e+00, + -4.217533111570000e+00, + -3.590015888210000e+00, + -1.870837211610000e+00, + -7.682999968530000e-01, + -3.844098091130000e+00, + 2.707148075100000e+00, + 5.034463405610000e+00, + -2.866449356080000e-01, + -3.517009615900000e-01, + 2.646171152590000e-01, + -3.879489004610000e-01, + -9.395918995140000e-02, + -3.193741738800000e-01, + -1.854947805400000e+00, + -1.834583044050000e+00, + 4.156411290170000e-01, + 2.165895223620000e+00, + -3.201114535330000e-01, + 9.106644392010000e-01, + -8.238548636440000e-01, + -1.269948124890000e+00, + -6.938960552220000e-01, + 2.760704994200000e+00, + 7.571610212330000e-01, + -3.022190630440000e-01, + 1.666590720420000e-01, + 1.143452525140000e+00, + -3.363536834720000e+00, + -5.341112613680000e-01, + 3.454836606980000e+00, + -4.784331917760000e-01, + -6.032262444499999e-01, + -7.518819570540000e-01, + 5.542189255360000e-02, + -1.609894633290000e+00, + -1.645687520500000e-01, + 3.679529190060000e+00, + -9.521935582160000e-01, + -5.094298124310001e-01, + 2.026772737500000e+00, + -1.660358428960000e+00, + -3.034669399260000e+00, + -1.546844720840000e+00, + -1.796621084210000e-01, + 5.527660250660000e-01, + -6.899302452800000e-02, + 2.628687620160000e+00, + 4.080696582790000e+00, + 3.238728761670000e+00, + 1.246061444280000e+00, + -3.524279296400000e-01, + 1.448193669320000e+00, + -5.637279152869999e-01, + 4.588577747340000e+00, + -1.030669689180000e+00, + -1.772118955850000e-01, + -1.246628642080000e+00, + -1.827957391740000e+00, + -1.129829525950000e+00, + 3.536278381940000e-02, + 2.493725776670000e+00, + 4.802684485910000e-01, + -2.623402178290000e-01, + -1.112975597380000e+00, + -1.381546020510000e+00, + -1.844010949130000e-01, + -8.953646421430000e-01, + 1.398330211640000e+00, + -3.516574203970000e-01, + -1.863030940290000e-01, + -2.846277356150000e-01, + -3.618950605390000e+00, + -1.394201278690000e+00, + 4.688679873940000e-01, + -5.610057115550000e-01, + -1.197144865990000e+00, + -4.070791244510000e+00, + 3.228286266330000e+00, + -3.191825151440000e+00, + 4.989297866820000e+00, + 3.542863845830000e+00, + -2.920113801960000e+00, + 1.806928277020000e+00, + 8.761010766030000e-01, + -7.179576158520000e-01, + -1.297086954120000e+00, + -8.406115770340000e-01, + -3.871537446980000e-01, + -3.044825196270000e-01, + -1.230055168270000e-01, + 1.238091140990000e-01, + -6.138017773630000e-01, + -2.072754383090000e+00, + -1.371593117710000e+00, + 3.933681845660000e-01, + 2.150308609010000e+00, + 1.460406482220000e-01, + 4.970018863680000e-01, + -7.341790199280001e-01, + -1.553593516350000e+00, + -3.315193355080000e-01, + 2.834671497340000e+00, + 6.701925396920000e-01, + -9.515054523939999e-03, + -9.272497892380001e-01, + 1.114128947260000e+00, + -2.821792125700000e+00, + -1.200502038000000e+00, + 3.254676580430000e+00, + -4.146653413770000e-01, + 2.594575285910000e-01, + -6.330463290210000e-01, + -5.834671854970001e-01, + -1.330528140070000e+00, + -1.100588142870000e-01, + 1.470629692080000e+00, + -8.794633746150000e-01, + -4.643294587730000e-02, + 3.104287385940000e-01, + -1.368786811830000e+00, + -3.607189416890000e+00, + -2.662635564800000e+00, + -9.498475193980001e-01, + -4.642236828800000e-01, + -4.541521072390000e-01, + 4.581771850590000e+00, + 4.035748958590000e+00, + 2.642448902130000e+00, + 1.485173821450000e+00, + -1.376785039900000e+00, + 1.191988825800000e+00, + -2.150264263150000e+00, + 4.593326091770000e+00, + 5.184789896010000e-01, + -2.165715843440000e-01, + -2.841721057890000e+00, + -1.712155818940000e+00, + -5.644019246100000e-01, + 4.536286592480000e-01, + 3.015398025510000e+00, + 2.445847272870000e+00, + -3.564763665200000e-01, + -1.314370751380000e+00, + -1.984045863150000e+00, + -4.035157263280000e-01, + -5.061250329019999e-01, + 5.538802742960000e-01, + 4.472680687900000e-01, + 4.799049496650000e-01, + 1.232830062510000e-01, + -4.919474601750000e+00, + -1.823480963710000e+00, + 5.048016309740000e-01, + -1.824330806730000e+00, + -7.322627902030000e-01, + -3.708676099780000e+00, + 2.720243215560000e+00, + -3.461245536800000e+00, + 4.712014675140000e+00, + 4.759799003600000e+00, + -2.349481105800000e+00, + 3.012107849120000e+00, + 1.274065375330000e+00, + -1.130138188600000e-01, + -1.459841489790000e+00, + -2.116466999050000e+00, + 1.090419664980000e-02, + 9.231964349750000e-01, + 1.502913888540000e-03, + 2.134697511790000e-02, + 9.847135096790000e-02, + -5.378201603890000e-01, + -5.403710365300000e+00, + 8.075473308559999e-01, + 6.709115028380000e+00, + -3.943253517150000e+00, + 3.477465629580000e+00, + -3.272208452220000e+00, + -2.270370006560000e+00, + -3.505068063740000e+00, + 4.349688053130000e+00, + -1.624279141430000e+00, + 7.806320190430000e+00, + 5.020429134370000e+00, + -5.855183601380000e+00, + -2.105805873870000e+00, + 9.916842460630001e+00, + -7.294464588170000e+00, + 6.374686956410000e-02, + -6.876789331440000e-01, + 7.877064943310000e-01, + -3.877983093260000e-01, + 5.082354694600000e-02, + -6.929893970490000e+00, + 6.891824722290000e+00, + 1.310169696810000e+00, + -3.814607381820000e+00, + 3.956742763520000e+00, + -3.844440937040000e+00, + 3.572933435440000e+00, + -1.949943184850000e+00, + -1.536563277240000e+00, + -3.074396371840000e+00, + 1.210015296940000e+01, + 7.619500160220000e+00, + -9.078407287599999e+00, + 6.083720207210000e+00, + -4.714062213900000e+00, + -3.596056699750000e+00, + 1.565255284310000e+00, + -1.775719672440000e-01, + 4.811043739320000e+00, + 8.146276474000000e-01, + -1.304948925970000e+00, + -7.695619463920000e-01, + -2.625315904620000e+00, + -1.321975290780000e-01, + 4.379021167760000e+00, + -1.266267776490000e+00, + 3.865216255190000e+00, + 1.716196984050000e-01, + 6.060221195220000e+00, + -5.693513870240000e+00, + 7.459098100660000e-01, + -3.084670752290000e-02, + -4.653510570530000e+00, + -6.916965007780000e+00, + 7.515590190890000e+00, + -6.766018271449999e-01, + -1.151093959810000e+00, + -5.636291980740000e+00, + 1.424870610240000e+00, + -2.676386833190000e+00, + 1.048402595520000e+01, + -3.841404438020000e+00, + -4.953155517580000e+00, + 9.012492179870000e+00, + -5.659142494200000e+00, + -8.461987495420001e+00, + -1.033385276790000e+00, + 5.698441505430000e+00, + -4.838804245000000e+00, + -3.505531549450000e+00, + -5.507175922390000e+00, + 6.206188678740000e+00, + -8.474557101730000e-02, + 9.566389769320000e-02, + -1.222783699630000e-01, + 2.632451653480000e-01, + 5.158552899960000e-02, + -5.964191555980000e-01, + -5.644460201260000e+00, + 7.488402724270000e-01, + 6.716234683990000e+00, + -3.889430761340000e+00, + 3.496701955800000e+00, + -2.950366497040000e+00, + -2.377490282060000e+00, + -3.719582557680000e+00, + 4.410897254940000e+00, + -1.646718382840000e+00, + 7.172673225400000e+00, + 4.732855319980000e+00, + -5.968938827510000e+00, + -2.029051542280000e+00, + 9.642378807069999e+00, + -6.911609649660000e+00, + -3.895581364630000e-01, + 6.425696015360000e-01, + 1.825246512890000e-01, + -1.216920241710000e-01, + -2.127124309540000e+00, + -4.215438842770000e+00, + 8.343590736390000e+00, + 8.280618786810000e-01, + -4.408602714540000e+00, + 3.185588121410000e+00, + -3.223064422610000e+00, + 4.134536743160000e+00, + -1.669721126560000e+00, + -1.075166463850000e+00, + -4.578059196470000e+00, + 1.084371852870000e+01, + 7.979591369630000e+00, + -9.265637397770000e+00, + 5.844569683070000e+00, + -3.794543981550000e+00, + -4.430301666260000e+00, + 2.208724260330000e+00, + -4.401864409450000e-01, + 2.528007984160000e+00, + 2.485668361190000e-01, + -2.401492357250000e+00, + -5.732853896920000e-03, + -9.753159880640000e-01, + 4.304425418380000e-01, + 4.479088306430000e+00, + -6.820136308670000e-01, + 3.451050758360000e+00, + 6.690799593930000e-01, + 5.196835517880000e+00, + -5.814316749570000e+00, + -4.125584065910000e-01, + 2.846945524220000e-01, + -4.913246154790000e+00, + -6.580145835880000e+00, + 6.952296257020000e+00, + -9.238819032910001e-02, + -1.277901768680000e+00, + -6.816558361050000e+00, + 2.238586425780000e+00, + -3.056280612950000e+00, + 1.015542602540000e+01, + -2.946354150770000e+00, + -6.669845581050000e+00, + 9.311588287350000e+00, + -6.621591567990000e+00, + -8.530682563779999e+00, + -4.610371291640000e-01, + 6.789535045620000e+00, + -2.970223188400000e+00, + -3.048357963560000e+00, + -5.485194683070000e+00, + 5.752466678620000e+00, + 1.517374038700000e+00, + 7.644231319430000e-01, + 1.692108511920000e+00, + 1.336547732350000e+00, + 1.210336565970000e+00, + -1.842552900310000e+00, + 5.606001853940000e+00, + 4.525591850280000e+00, + -7.571952939030000e-01, + -3.259903907780000e+00, + 2.358032166960000e-01, + 2.519214391710000e+00, + -3.261764764790000e+00, + 4.971149444580000e+00, + 9.949433058500000e-02, + 5.899564743040000e+00, + -1.682416796680000e+00, + -6.427788734440000e-01, + -5.130871295930000e+00, + -5.542924404140000e+00, + -2.403215408330000e+00, + -4.710919857030000e+00, + 2.200446605680000e+00, + 1.781006097790000e+00, + 1.568426370620000e+00, + 1.294184684750000e+00, + -2.034811258320000e+00, + 5.375115871430000e+00, + -7.464004755019999e-01, + 5.782598972320000e+00, + -4.138157367710000e+00, + 6.249724626540000e-01, + 2.602361202240000e+00, + -1.203848361970000e+00, + -6.223215103150000e+00, + 6.530375480650000e+00, + -2.819207906720000e+00, + -2.083313703540000e+00, + -3.393151462080000e-01, + -5.451888561250000e+00, + 3.394478559490000e-01, + -9.261007308960000e-01, + 1.403352499010000e+00, + 3.752176761630000e+00, + -1.138004064560000e+00, + 1.270599961280000e+00, + 5.873361587520000e+00, + 7.177017688750000e+00, + -1.404710531230000e+00, + -4.057092666630000e+00, + 4.552076339720000e+00, + -3.029761910440000e-01, + 6.966428756710000e+00, + 4.567880928520000e-01, + 1.331205368040000e+00, + -8.146197199820000e-01, + 5.873320579530000e+00, + 1.435527801510000e+00, + 2.153818368910000e+00, + -7.049147129060000e+00, + -5.764820575710000e+00, + -1.726441621780000e+00, + 7.554728537800000e-02, + -5.649565696720000e+00, + 7.193305492400000e+00, + 6.007516980170000e-01, + 2.189046144490000e+00, + -3.965420722960000e+00, + -5.902615070340000e+00, + -3.974845647810000e+00, + -1.791578054430000e+00, + -5.510135650630000e+00, + -3.184497833250000e+00, + -1.253223061560000e+00, + -4.196835756300000e-01, + -2.831087350850000e+00, + 1.574959635730000e+00, + 5.740149974820000e+00, + -1.039044000210000e-03, + 1.461601376530000e+00, + 1.204136133190000e+00, + 1.356660366060000e+00, + 1.298466324810000e+00, + 1.400714039800000e+00, + -1.669464230540000e+00, + 5.780530452730000e+00, + 4.839029788970000e+00, + -7.780371904370000e-01, + -3.179616451260000e+00, + 5.068425536159999e-01, + 2.253162860870000e+00, + -3.556652069090000e+00, + 4.993429660800000e+00, + 4.544616043570000e-01, + 6.120088577270000e+00, + -1.537599325180000e+00, + -5.682429075240000e-01, + -5.192088127140000e+00, + -5.842321395870000e+00, + -2.712528705600000e+00, + -4.626136302950000e+00, + 1.548775315280000e+00, + 7.366331219670000e-01, + 1.486820340160000e+00, + 1.475379109380000e+00, + -1.324808239940000e+00, + 5.815899372100000e+00, + -1.340720951560000e-01, + 5.535058498380000e+00, + -3.251663446430000e+00, + -1.061926722530000e+00, + 2.805697441100000e+00, + -1.039203882220000e+00, + -5.832517147060000e+00, + 7.897176742550000e+00, + -3.935289144520000e+00, + -4.647319614890000e-01, + -1.324339985850000e+00, + -5.504097461700000e+00, + 1.511288136240000e-01, + -2.399874687190000e+00, + 1.940186262130000e+00, + 5.316478252410000e+00, + -1.284883141520000e+00, + -9.924117326740000e-01, + 4.804353237150000e+00, + 6.212027072910000e+00, + -2.495143651960000e+00, + -3.389638423920000e+00, + 4.533378124240000e+00, + 2.270276248460000e-01, + 7.878103733060000e+00, + 6.865844726560000e-01, + 1.234729886050000e+00, + -1.821320533750000e+00, + 5.870552062990000e+00, + 1.207300782200000e+00, + 1.410374760630000e+00, + -7.207249641420000e+00, + -5.872443199160000e+00, + -2.133396863940000e+00, + 1.791559815410000e+00, + -5.263850212100000e+00, + 6.834236621860000e+00, + 1.021381855010000e+00, + 2.530103206630000e+00, + -5.083566665650000e+00, + -5.989171028140000e+00, + -5.063561439510000e+00, + -2.731009244920000e+00, + -5.368605136870000e+00, + -3.050344705580000e+00, + -1.828454613690000e+00, + -9.811335206030000e-01, + -3.930516719820000e+00, + 1.608818650250000e+00, + 5.752647399900000e+00, + 6.169039011000000e-01, + -6.138476133350000e-01, + -5.630101561550001e-01, + -4.500992596150000e-01, + -3.331424593930000e-01, + -5.064686536790000e-01, + -2.011883974080000e+00, + -7.388103008270001e-01, + 2.388484328990000e-01, + 2.105890274050000e+00, + 4.395677149300000e-01, + 5.261777043340000e-01, + -7.336215972900000e-01, + -1.492496013640000e+00, + -5.503711104390000e-01, + 2.867762565610000e+00, + 7.578495740890000e-01, + -5.653764009480000e-01, + -1.137851595880000e+00, + 1.224386096000000e+00, + -3.124414443970000e+00, + -6.200339794160000e-01, + 3.514603376390000e+00, + -1.331209778790000e+00, + 1.226408928630000e-01, + -5.602182149890000e-01, + -1.126498818400000e+00, + -1.714770436290000e+00, + -1.389225482940000e+00, + 2.689294815060000e+00, + -1.108251929280000e+00, + 4.467570781710000e-01, + -1.830626726150000e-01, + -7.837416529660000e-01, + -2.874265670780000e+00, + -1.883286118510000e+00, + 2.876269817350000e-01, + -1.393898278470000e-01, + -6.170201301570000e-01, + 3.561060428620000e+00, + 2.866646051410000e+00, + 2.754077434540000e+00, + 9.921782016750000e-01, + -1.200544834140000e+00, + 3.547744274140000e+00, + -1.143366456030000e+00, + 4.005236148830000e+00, + 4.143527150150000e-01, + -3.805239498620000e-01, + -2.428593873980000e+00, + -1.621973633770000e+00, + -3.784314095970000e-01, + -5.087368562820000e-02, + 2.069220542910000e+00, + 8.106308579440000e-01, + -3.315822482110000e-01, + -1.100099325180000e+00, + -1.187882184980000e+00, + 6.580781191590000e-03, + -4.663749337200000e-01, + -9.395438432690000e-02, + 1.604398041960000e-01, + 3.479754179720000e-02, + -1.131734251980000e+00, + -3.191852092740000e+00, + -7.108305096630000e-01, + 3.164747357370000e-01, + -1.674858570100000e+00, + -6.791098117830000e-01, + -4.631863117220000e+00, + 2.733426332470000e+00, + -3.482718706130000e+00, + 5.388611793520000e+00, + 4.168845176700000e+00, + -1.222882151600000e+00, + 2.274788856510000e+00, + 2.384975552560000e-01, + -6.940436959270000e-01, + -1.583330273630000e+00, + -1.322677373890000e+00, + -4.610210061070000e-01, + -3.374157249930000e-01, + -9.090844988820000e-01, + -5.232139825820000e-01, + -3.011497855190000e-01, + -1.798148155210000e+00, + -1.130279779430000e+00, + 3.960398435590000e-01, + 2.785864830020000e+00, + 1.836777031420000e-01, + 5.231525301930000e-01, + -1.534240484240000e+00, + -1.527200579640000e+00, + -6.871570348740000e-01, + 2.509723663330000e+00, + 7.243083715440000e-01, + 1.205405220390000e-02, + -8.138781785960000e-01, + 9.230374693870000e-01, + -3.408385038380000e+00, + -6.991508007050000e-01, + 3.626662015910000e+00, + -2.623656690120000e-01, + -7.611866593360000e-01, + -3.671849966050000e-01, + 1.288103908300000e-01, + -5.930448770520000e-01, + -3.914149701600000e-01, + 1.634720206260000e+00, + -9.046561717990000e-01, + -3.098600804810000e-01, + 7.395824193950000e-01, + 3.467593491080000e-01, + -2.054275512700000e+00, + -2.871321201320000e+00, + -4.407948851590000e-01, + 4.018573164940000e-01, + -1.782009840010000e+00, + 4.288072109220000e+00, + 3.975462198260000e+00, + 2.881856918330000e+00, + 1.189107894900000e+00, + -2.175719738010000e+00, + 8.407983183860001e-01, + -1.395373702050000e+00, + 5.198979854580000e+00, + 1.398275613780000e+00, + 1.112125635150000e+00, + -6.547945141790000e-01, + -2.376078367230000e+00, + 6.588237881660000e-01, + -2.414504140620000e-01, + 2.272559881210000e+00, + 8.050490021709999e-01, + -7.651771306990000e-01, + -1.228787660600000e+00, + -1.800176024440000e+00, + 9.670343250040001e-02, + -1.110163796690000e-02, + 6.634997725490001e-01, + -1.483498334880000e+00, + -6.534597277640000e-01, + -6.996259093280000e-01, + -4.349536418910000e+00, + -6.913890242580000e-01, + 1.990036517380000e-01, + -7.301518917080000e-01, + -5.733419060710000e-01, + -2.432581901550000e+00, + 2.200018644330000e+00, + -2.887150526050000e+00, + 4.920519828800000e+00, + 3.812587976460000e+00, + -2.572287082670000e+00, + 2.141697645190000e+00, + 5.897640585900000e-01, + -2.310781627890000e-01, + -9.086188077930000e-01, + -1.133267208930000e-01, + 3.766242787240000e-02, + 1.970382407310000e-03, + -5.506229996680000e-01, + -1.803049147130000e-01, + -6.553839892150000e-02, + -8.124430179600000e-01, + -5.982387542720000e+00, + 8.722642660140000e-01, + 6.950314044950000e+00, + -3.850361824040000e+00, + 2.822470188140000e+00, + -3.262313365940000e+00, + -2.337304592130000e+00, + -3.958651542660000e+00, + 4.420551776890000e+00, + -1.335891366000000e+00, + 7.338002681730000e+00, + 4.905159950260000e+00, + -6.088335990910000e+00, + -2.219684362410000e+00, + 9.612051963810000e+00, + -7.197328090670000e+00, + -2.680880948900000e-03, + 4.812550842760000e-01, + 2.759381830690000e-01, + 2.162098884580000e-01, + -3.582696318630000e-01, + -5.717382907870000e+00, + 6.480187416080000e+00, + 1.569667339320000e+00, + -3.182152271270000e+00, + 3.175530910490000e+00, + -3.217661619190000e+00, + 3.700739860530000e+00, + -7.967715859409999e-01, + -1.594663739200000e+00, + -5.393852710720000e+00, + 9.483567237850000e+00, + 7.667945384980000e+00, + -7.676591396330000e+00, + 7.074787616730000e+00, + -3.746563434600000e+00, + -3.881823778150000e+00, + 8.681362271310000e-01, + -1.411880135540000e+00, + 3.514247179030000e+00, + 8.458886295560000e-02, + -4.588383138180000e-01, + -1.246729373930000e+00, + -2.879838705060000e+00, + 8.114868402480000e-01, + 3.378910064700000e+00, + -5.562921762470000e-01, + 3.619364261630000e+00, + 1.693519353870000e-01, + 3.700209379200000e+00, + -6.629771709440000e+00, + 1.805963218210000e-01, + -4.904685318470000e-01, + -5.240350246430000e+00, + -6.907322883610000e+00, + 9.060923576350000e+00, + 4.163328409190000e-01, + -1.291246414180000e+00, + -4.489759445190000e+00, + 3.502304792400000e+00, + -2.152731657030000e+00, + 9.710328102109999e+00, + -3.595966100690000e+00, + -5.895371437070000e+00, + 8.814776420590000e+00, + -5.384961605070000e+00, + -7.626513957980000e+00, + 2.805130779740000e-01, + 6.895761489870000e+00, + -3.769764900210000e+00, + -4.386883258820000e+00, + -5.510111331940000e+00, + 5.155282497410000e+00, + 1.200029924510000e-01, + -6.048926617950000e-03, + -1.473524272440000e-01, + 2.460403591390000e-01, + 9.080951660870000e-02, + -8.900673985480000e-01, + -5.792944908140000e+00, + 8.253109455110000e-01, + 6.840497016910000e+00, + -3.953919887540000e+00, + 3.116956710820000e+00, + -3.242278337480000e+00, + -2.038728475570000e+00, + -3.788141727450000e+00, + 4.423160076140000e+00, + -1.145104527470000e+00, + 7.252180576320000e+00, + 5.004144668580000e+00, + -6.129135608670000e+00, + -2.074421405790000e+00, + 9.391008377080000e+00, + -7.351476669310000e+00, + 1.842656172810000e-02, + 1.025727152820000e+00, + 2.457664757970000e-01, + -1.946676373480000e-01, + -5.380284786220000e-01, + -5.526670932770000e+00, + 7.329841136930000e+00, + 8.058295845990000e-01, + -3.690628528590000e+00, + 4.229655265810000e+00, + -3.263087034230000e+00, + 4.927796363830000e+00, + -2.316030263900000e+00, + -1.337065577510000e+00, + -4.188100814820000e+00, + 1.133335781100000e+01, + 6.913627624510000e+00, + -8.668923377990000e+00, + 6.235389709470000e+00, + -3.716590404510000e+00, + -3.895529270170000e+00, + 1.690115928650000e+00, + 3.090654015540000e-01, + 4.029607772830000e+00, + 1.129687353970000e-01, + -1.657207250600000e+00, + -1.492411732670000e+00, + -2.604630231860000e+00, + 7.004439830780000e-01, + 3.959456682210000e+00, + -1.761216998100000e+00, + 3.578016757970000e+00, + -5.743954777720000e-01, + 5.345477581020000e+00, + -7.139989376070000e+00, + 2.761664092540000e-01, + 3.589490950110000e-01, + -4.423410892490000e+00, + -7.301702976230000e+00, + 6.438868045810000e+00, + -5.173536539080000e-01, + -9.762908220290000e-01, + -4.844634532930000e+00, + 1.416264534000000e+00, + -3.222014188770000e+00, + 1.054008769990000e+01, + -4.049054622650000e+00, + -6.168627262120000e+00, + 9.738540649410000e+00, + -5.718047618870000e+00, + -6.830579757690000e+00, + -9.647919237610000e-02, + 5.704865932460000e+00, + -3.209793329240000e+00, + -3.851599931720000e+00, + -6.015544414520000e+00, + 4.696282863620000e+00, + 1.266497969630000e+00, + 1.432744979860000e+00, + 1.244562149050000e+00, + 1.303214550020000e+00, + 1.256536364560000e+00, + -1.842750549320000e+00, + 6.148277282710000e+00, + 4.813501834870000e+00, + -1.121029734610000e+00, + -3.274972915650000e+00, + -1.218855828050000e-01, + 2.374900102620000e+00, + -3.648592710500000e+00, + 5.155875205990000e+00, + 1.582527756690000e-01, + 6.930071830750000e+00, + -1.556136369710000e+00, + -6.317999958990000e-01, + -5.961569309230000e+00, + -5.524534702300000e+00, + -2.486531972890000e+00, + -4.467230319980000e+00, + 1.394025683400000e+00, + 1.661508798600000e+00, + 1.209705352780000e+00, + 1.788198590280000e+00, + -1.911910891530000e+00, + 6.918902397160000e+00, + 1.336991786960000e-01, + 6.882569313050000e+00, + -2.918222427370000e+00, + 4.776441156860000e-01, + 1.147138118740000e+00, + -1.163536548610000e+00, + -7.799926757810000e+00, + 7.383706092830000e+00, + -4.681788921360000e+00, + -1.651852488520000e+00, + -7.741379141810000e-01, + -5.724666118620000e+00, + -9.691079854969999e-01, + -2.401715993880000e+00, + 1.876930236820000e+00, + 6.454298019410000e+00, + -1.115425467490000e+00, + 1.173890113830000e+00, + 5.036882877350000e+00, + 7.140313625340000e+00, + -1.955286026000000e+00, + -5.302497863770000e+00, + 5.344942092900000e+00, + -4.651078581810000e-01, + 6.552558898930000e+00, + 1.289264440540000e+00, + 1.273749828340000e+00, + -1.758765578270000e+00, + 5.809326648710000e+00, + 1.586855769160000e+00, + 1.493143320080000e+00, + -5.851130962370000e+00, + -5.668987751010000e+00, + -1.418727159500000e+00, + 1.414846301080000e+00, + -3.927859544750000e+00, + 5.509712696080000e+00, + 3.623897433280000e-01, + 2.773481369020000e+00, + -3.949398994450000e+00, + -5.950930118560000e+00, + -5.478878021240000e+00, + -2.918289184570000e+00, + -5.167151927950000e+00, + -2.871280431750000e+00, + -1.227403879170000e-01, + -1.255641222000000e+00, + -3.878018617630000e+00, + 2.037056922910000e+00, + 6.040960788730000e+00, + -1.559446156020000e-01, + 1.535951137540000e+00, + 1.274177074430000e+00, + 1.335070490840000e+00, + 1.156709909440000e+00, + 1.377152204510000e+00, + -1.607155919080000e+00, + 6.044466972350000e+00, + 4.815081119540000e+00, + -6.379027962679999e-01, + -3.189940452580000e+00, + -1.364219784740000e-01, + 2.358254432680000e+00, + -3.367624521260000e+00, + 5.158190250400000e+00, + 4.216882288460000e-01, + 6.360804557800000e+00, + -1.396257638930000e+00, + -6.777998805050000e-01, + -4.190104007720000e+00, + -5.831965923310000e+00, + -2.624723911290000e+00, + -4.421556949620000e+00, + 1.762217164040000e+00, + 8.184636831280000e-01, + 1.540972828870000e+00, + 9.992403388020000e-01, + -1.807580113410000e+00, + 6.220448017120000e+00, + -1.465309619900000e+00, + 5.771701812740000e+00, + -3.874916315080000e+00, + -3.217163085940000e-01, + 3.720815658570000e+00, + -6.517022848130000e-01, + -6.494363307950000e+00, + 8.153560638429999e+00, + -3.784602165220000e+00, + -1.707166790960000e+00, + -4.279819130900000e-01, + -6.290590763090000e+00, + -7.277308106420000e-01, + -1.183264732360000e+00, + 1.715942621230000e+00, + 4.877128601070000e+00, + -1.564926028250000e+00, + 1.579061448570000e-01, + 6.486526012420000e+00, + 6.155375957490000e+00, + -3.162656307220000e+00, + -4.244810104370000e+00, + 4.546414375310000e+00, + 2.420870065690000e-01, + 6.499904632570000e+00, + 7.220484614370000e-01, + 7.156698703770000e-01, + -1.029267907140000e+00, + 6.071265697480000e+00, + 1.411146998410000e+00, + 1.527147173880000e+00, + -5.819885730740000e+00, + -5.661702156070000e+00, + -2.976155042650000e+00, + 2.003777980800000e+00, + -5.281315803530000e+00, + 4.702625751500000e+00, + 1.339527845380000e+00, + 1.303599596020000e+00, + -4.919817924500000e+00, + -6.632606506350000e+00, + -5.448218822480000e+00, + -2.679274797440000e+00, + -4.561297416690000e+00, + -3.886292934420000e+00, + -3.771328926090000e-01, + -1.665774464610000e+00, + -4.215888023380000e+00, + 1.812469124790000e+00, + 7.046762943270000e+00, + -1.300909519200000e+00, + 2.884856760500000e-01, + -5.976199507710001e-01, + -4.802866876130000e-01, + -2.448771893980000e-01, + -1.372541189190000e-01, + -1.882648944850000e+00, + -1.617871522900000e+00, + 4.254337847230000e-01, + 2.720966815950000e+00, + 4.270772337910000e-01, + 1.649032831190000e-01, + -6.960613727570000e-01, + -1.294835567470000e+00, + -9.100652337070000e-01, + 2.786078929900000e+00, + 5.816493630410000e-01, + -3.205516636370000e-01, + -1.271964550020000e+00, + 1.342373490330000e+00, + -2.995369434360000e+00, + -1.020595669750000e+00, + 3.648728609090000e+00, + -3.070774078370000e-01, + 1.646593511100000e-01, + -3.893795013430000e-01, + -1.055269241330000e+00, + -1.504073381420000e+00, + -8.434239625930000e-01, + 3.268318414690000e+00, + -1.648621797560000e+00, + 9.945513308050000e-02, + 5.807169675830000e-01, + -1.299758195880000e+00, + -2.791618347170000e+00, + -2.712861061100000e+00, + -2.695651352410000e-02, + 1.470758557320000e+00, + -1.486321091650000e+00, + 4.363101005550000e+00, + 3.667425870900000e+00, + 1.540169835090000e+00, + 4.725167751310000e-01, + -1.926427960400000e+00, + 1.370191097260000e+00, + -1.710276722910000e+00, + 4.402643203740000e+00, + -3.650194406510000e-01, + 1.394584178920000e+00, + -2.348643779750000e+00, + -1.627885818480000e+00, + 3.726977705960000e-01, + 6.062280535700000e-01, + 2.581378221510000e+00, + 9.036085009570000e-01, + -1.743324846030000e-02, + -2.288170576100000e+00, + -1.111035227780000e+00, + 3.991220593450000e-01, + -1.154985666280000e+00, + 5.904687047000000e-01, + -1.691388785840000e-01, + -3.107826113700000e-01, + -3.214110136030000e-01, + -3.838935613630000e+00, + -1.163604259490000e+00, + -3.553005158900000e-01, + -1.585972189900000e+00, + 1.583747982980000e+00, + -5.002295970920000e+00, + 1.109500765800000e+00, + -1.663385391240000e+00, + 4.854900836940000e+00, + 3.418374538420000e+00, + -1.795019984250000e+00, + 3.180189132690000e+00, + 1.030066728590000e+00, + -3.732864260670000e-01, + -1.352773666380000e+00, + -3.121269345280000e-01, + -2.223663330080000e-01, + -5.517021566630000e-02, + -4.436202943330000e-01, + -3.510475158690000e-02, + -3.754443228240000e-01, + -1.714729666710000e+00, + -1.171443820000000e+00, + 3.460859954360000e-01, + 2.597362518310000e+00, + 1.615663021800000e-01, + 6.266170740130000e-01, + -7.777314782140000e-01, + -1.267836928370000e+00, + -6.386800408360001e-01, + 2.722309589390000e+00, + 6.376250386240000e-01, + 1.191270574930000e-01, + -1.140105605130000e+00, + 1.422627449040000e+00, + -3.125023841860000e+00, + -8.016560077670000e-01, + 3.666467666630000e+00, + 8.967390060420000e-01, + -4.912807345390000e-01, + -4.133284986020000e-01, + -9.795493483540000e-01, + -2.810705900190000e+00, + -9.903819561000000e-01, + 2.268818855290000e+00, + 8.148881047959999e-02, + 1.323594570160000e+00, + 1.532710433010000e+00, + -1.181184291840000e+00, + -1.964429140090000e+00, + -2.394402265550000e+00, + 2.435479611160000e-01, + 5.501729846000000e-01, + -2.244425117970000e-01, + 3.086788892750000e+00, + 3.945771455760000e+00, + 1.957385897640000e+00, + 9.962403178220000e-01, + -1.419518470760000e+00, + 1.750083088870000e+00, + -1.240925192830000e+00, + 5.269895553590000e+00, + 4.352516829970000e-01, + 8.830261230470000e-01, + -1.246938586240000e+00, + -9.804825782780000e-01, + -1.734847873450000e-01, + -2.759045660500000e-01, + 2.548866987230000e+00, + 8.999345302580000e-01, + -5.115676522250000e-01, + -1.322844982150000e+00, + -1.154126644130000e+00, + -7.170923948290000e-01, + -1.643631011250000e-01, + 1.576572775840000e+00, + -2.839308381080000e-01, + -8.986378312110000e-01, + -5.732142329220000e-01, + -4.235951423650000e+00, + -2.051772117610000e+00, + 2.515160322190000e+00, + -5.307565927510000e-01, + -9.505758881570000e-01, + -4.136933803560000e+00, + 9.462819695469999e-01, + -3.202442646030000e+00, + 5.137363433840000e+00, + 2.926473140720000e+00, + -8.071104288099999e-01, + 2.214064121250000e+00, + 9.901889562610000e-01, + 6.310412287710000e-02, + -1.970982313160000e+00, + -1.338363885880000e+00, + 3.393001854420000e-02, + 4.038542136550000e-02, + 1.465330123900000e-01, + 1.889871805910000e-01, + -3.407900333400000e-01, + -6.655746102330000e-01, + -5.227890968320000e+00, + 8.035887479780000e-01, + 6.543323040010000e+00, + -3.978283643720000e+00, + 3.304333925250000e+00, + -3.220763444900000e+00, + -2.507290363310000e+00, + -3.468922138210000e+00, + 4.333220005040000e+00, + -1.798600077630000e+00, + 7.129623889920000e+00, + 5.118940830230000e+00, + -6.119701385500000e+00, + -1.595539689060000e+00, + 9.443292617799999e+00, + -7.213795185090000e+00, + -2.316467463970000e-01, + -3.872257471080000e-02, + 1.427455842490000e-01, + -3.145028948780000e-01, + -1.400511145590000e+00, + -6.815549850460000e+00, + 7.256929397580000e+00, + 1.270425677300000e+00, + -3.748426675800000e+00, + 4.028401851650000e+00, + -3.108350276950000e+00, + 4.432035446170000e+00, + -2.191471338270000e+00, + -3.811855912210000e-01, + -5.547539711000000e+00, + 1.128802013400000e+01, + 8.144930839540001e+00, + -7.568161487580000e+00, + 7.332351207730000e+00, + -4.166394710540000e+00, + -5.145988464360000e+00, + 1.876005977390000e-01, + -3.927380740640000e-01, + 4.285767078400000e+00, + 9.260080009700000e-02, + -5.284172892570000e-01, + -6.774066686630000e-01, + -2.883191585540000e+00, + 6.160093545910000e-01, + 3.931738615040000e+00, + -2.151354551320000e+00, + 4.015516757970000e+00, + -5.507025495170000e-02, + 5.222494125370000e+00, + -6.467710971830000e+00, + 9.208723157640000e-02, + -5.167165771130000e-03, + -3.592836856840000e+00, + -6.469006061550000e+00, + 7.950173854830000e+00, + -5.994747281070000e-01, + -3.780110180380000e-01, + -5.888138771060000e+00, + 2.588166236880000e+00, + -2.430906295780000e+00, + 1.069803524020000e+01, + -3.801094293590000e+00, + -6.969480991360000e+00, + 8.887957572940000e+00, + -5.402864933010000e+00, + -8.130209922790000e+00, + -1.085936188700000e+00, + 6.424354553220000e+00, + -2.759038686750000e+00, + -3.320520401000000e+00, + -5.629216194150000e+00, + 6.145723819730000e+00, + 3.402843326330000e-02, + -1.543016284700000e-01, + -4.483285173770000e-02, + 1.881542354820000e-01, + -6.065364480020000e-01, + -6.058083176610000e-01, + -5.613554477690000e+00, + 8.875715732570000e-01, + 6.928486347200000e+00, + -3.883432865140000e+00, + 3.511883735660000e+00, + -3.035899639130000e+00, + -2.418458700180000e+00, + -3.679567098620000e+00, + 4.696033954620000e+00, + -1.961331248280000e+00, + 8.150853157040000e+00, + 5.311954975130000e+00, + -5.935210227970000e+00, + -2.146025419240000e+00, + 9.568254470830000e+00, + -7.271828651430000e+00, + 1.624796092510000e-01, + 1.167600989340000e+00, + 1.103340983390000e-01, + 3.628852963450000e-02, + -1.361649751660000e+00, + -5.922357559200000e+00, + 6.262578964230000e+00, + 1.362286090850000e+00, + -3.637090206150000e+00, + 3.899735450740000e+00, + -2.944957256320000e+00, + 5.329838752750000e+00, + -1.695899605750000e+00, + -1.498022824530000e-01, + -3.726516485210000e+00, + 1.043764591220000e+01, + 8.045116424560000e+00, + -7.801805496220000e+00, + 7.463392734530000e+00, + -5.983882427220000e+00, + -4.264017581940000e+00, + 1.743852257730000e+00, + -6.410982012749999e-01, + 4.657149791720000e+00, + 2.956085205080000e-01, + -1.147817611690000e+00, + -9.515542387960000e-01, + -2.554740905760000e+00, + 1.152531027790000e+00, + 3.524087190630000e+00, + -4.868804216380000e-01, + 4.327562332150000e+00, + 4.646073281760000e-01, + 4.573397636410000e+00, + -6.125165939330000e+00, + -5.653734803200000e-01, + -1.936144828800000e-01, + -6.136600017550000e+00, + -5.663513660430000e+00, + 7.094645977020000e+00, + 5.983656048770000e-01, + -1.323592662810000e-01, + -4.870004177090000e+00, + 3.295580148700000e+00, + -2.915423631670000e+00, + 9.803029060360000e+00, + -4.026682376860000e+00, + -6.727467060090000e+00, + 1.001772594450000e+01, + -4.629216194150000e+00, + -9.996187210080000e+00, + 1.067615225910000e-01, + 6.713417053220000e+00, + -1.310734868050000e+00, + -3.572291851040000e+00, + -5.321152210240000e+00, + 4.655246734620000e+00, + 1.487803578380000e+00, + 1.372637271880000e+00, + 1.786015868190000e+00, + 1.348959922790000e+00, + 1.272556304930000e+00, + -1.885664463040000e+00, + 6.022266864780000e+00, + 4.771461486820000e+00, + -7.512714862820000e-01, + -3.430160522460000e+00, + 2.291567921640000e-01, + 2.417353391650000e+00, + -3.516244888310000e+00, + 4.989375591280000e+00, + 1.645511090760000e-01, + 6.381378650670000e+00, + -1.509655475620000e+00, + -7.319096326830000e-01, + -4.994728088380000e+00, + -6.288449764250000e+00, + -2.581022024150000e+00, + -4.667135238650000e+00, + 1.448248147960000e+00, + 1.347619891170000e+00, + 8.751224875450000e-01, + 7.879433035850000e-01, + -1.609743118290000e+00, + 5.314218521120000e+00, + -8.478453755380000e-01, + 5.492704868320000e+00, + -3.045618534090000e+00, + -7.166097164150000e-01, + 1.504065275190000e+00, + -1.689997792240000e+00, + -7.719367980960000e+00, + 6.981729507450000e+00, + -4.555043697360000e+00, + -2.163121700290000e+00, + -3.143282830720000e-01, + -5.378149032590000e+00, + -5.500054955480000e-01, + -1.390317201610000e+00, + 1.891268253330000e+00, + 4.695165634160000e+00, + -1.906398653980000e+00, + 1.490027070050000e+00, + 6.335976600650000e+00, + 7.229812622070000e+00, + -1.606786251070000e+00, + -4.199105262760000e+00, + 4.207100868230000e+00, + -2.528092861180000e-01, + 6.319950580600000e+00, + 8.788777589800000e-01, + 1.160574793820000e+00, + -2.224401980640000e-01, + 5.909866809840000e+00, + 1.474065065380000e+00, + 1.655148267750000e+00, + -7.515535831450000e+00, + -5.367913722990000e+00, + -1.273798823360000e+00, + 1.894614100460000e+00, + -6.298489093780000e+00, + 5.859484672550000e+00, + 1.483527541160000e+00, + 1.954641461370000e+00, + -4.412055015560000e+00, + -5.450448989870000e+00, + -4.842738628390000e+00, + -2.991057872770000e+00, + -5.028429508210000e+00, + -2.798798084260000e+00, + -3.094906330110000e+00, + -1.491925001140000e+00, + -2.776074886320000e+00, + 1.955626130100000e+00, + 5.868791580200000e+00, + -3.419780135150000e-01, + 1.455096721650000e+00, + 7.347523421050001e-02, + 1.390954732890000e+00, + 1.404299974440000e+00, + 2.112795352940000e+00, + -1.605590701100000e+00, + 5.909961223600000e+00, + 4.855701923370000e+00, + -7.140249609950000e-01, + -3.276628732680000e+00, + 2.520507276060000e-01, + 2.493477106090000e+00, + -3.412263631820000e+00, + 4.976783752440000e+00, + 4.971652328970000e-01, + 6.822364330290000e+00, + -1.096077680590000e+00, + -8.810074329380000e-01, + -5.169288635250000e+00, + -5.801998138430000e+00, + -2.698080539700000e+00, + -4.516602039340000e+00, + 1.877821326260000e+00, + 1.883717775340000e+00, + 1.302887558940000e+00, + 1.490869760510000e+00, + -2.029798507690000e+00, + 6.584320068360000e+00, + -1.075968891380000e-01, + 6.695640087130000e+00, + -4.307829856870000e+00, + -1.700327277180000e+00, + 2.905613183980000e+00, + -4.884389042850000e-01, + -7.214914798740000e+00, + 7.020241260530000e+00, + -5.628576278690000e+00, + -1.829711675640000e+00, + -1.605632662770000e+00, + -5.711930274960000e+00, + -2.857350409030000e-01, + -2.344072103500000e+00, + 1.817197561260000e+00, + 4.965637207030000e+00, + -1.254354357720000e+00, + -5.916777998210000e-02, + 4.861848354340000e+00, + 5.591060161590000e+00, + -1.648649573330000e+00, + -4.388253688810000e+00, + 4.225352764130000e+00, + 2.486103922130000e-01, + 6.168238639830000e+00, + 7.786851376300000e-02, + 1.296817064290000e+00, + 3.336549997330000e-01, + 5.653237819670000e+00, + 1.508062005040000e+00, + 8.221606612210000e-01, + -7.448592185970000e+00, + -6.531815052030000e+00, + -1.686095833780000e+00, + 1.648828148840000e+00, + -5.082662105560000e+00, + 4.762969493870000e+00, + 4.019415676590000e-01, + 2.095735788350000e+00, + -4.281798839570000e+00, + -6.879249095920000e+00, + -5.725031852720000e+00, + -1.066335201260000e+00, + -5.285103321080000e+00, + -3.057135105130000e+00, + -1.699526667590000e+00, + -9.042437076570000e-01, + -3.347142934800000e+00, + 2.933103084560000e+00, + 6.354729175570000e+00, + -7.022529840470000e-01, + -3.760343194010000e-01, + -3.190262019630000e-01, + -7.135145366190000e-02, + -1.323306262490000e-01, + -2.146491259340000e-01, + -1.815278649330000e+00, + -8.947719335560000e-01, + 2.235235571860000e-01, + 2.891031026840000e+00, + 4.246336221690000e-01, + 5.112324357030000e-01, + -7.803910374640000e-01, + -1.373381853100000e+00, + -5.457692742350000e-01, + 2.751508951190000e+00, + 7.499713301660000e-01, + -7.992962002750000e-02, + -1.069222211840000e+00, + 8.195435404780000e-01, + -2.966382265090000e+00, + -1.227306723590000e+00, + 3.450355291370000e+00, + -1.043527007100000e+00, + -3.410694599150000e-01, + -4.474780261520000e-01, + -9.170908480880000e-02, + -2.114820003510000e+00, + -1.264071106910000e+00, + 2.216612815860000e+00, + -6.507261991500000e-01, + -1.082064747810000e+00, + 1.543774962430000e+00, + -7.816474437710000e-01, + -2.493160724640000e+00, + 5.254641175270000e-01, + -6.499624848370000e-01, + 1.065361976620000e+00, + 3.478683233260000e-01, + 5.069571495060000e+00, + 1.925604224210000e+00, + 1.671649694440000e+00, + 1.686210513110000e+00, + -2.107973098750000e+00, + 2.810103893280000e+00, + -1.971138477330000e+00, + 4.077409267430000e+00, + 5.765412449839999e-01, + 8.194729685780000e-01, + -1.122349977490000e+00, + -1.747426986690000e+00, + 8.484711647030000e-01, + 1.325809508560000e-01, + 1.053216755390000e-01, + 8.973864912990001e-01, + 1.508594602350000e-01, + -1.127799272540000e+00, + -1.529968976970000e+00, + -5.897800922390000e-01, + -7.119313478470000e-01, + 1.333281636240000e+00, + -3.174865990880000e-02, + -8.776265382770000e-02, + -1.693123430010000e-01, + -5.072841644290000e+00, + -2.126937627790000e+00, + 1.351751089100000e-01, + -7.986284494400000e-01, + 8.103671669960000e-02, + -3.661144733430000e+00, + 2.208168268200000e+00, + -3.750348091130000e+00, + 5.735197544100000e+00, + 3.413471698760000e+00, + -1.777082443240000e+00, + 2.194192886350000e+00, + 1.011855900290000e-01, + 5.411638021470000e-01, + -1.214038610460000e+00, + -4.528703093530000e-01, + -3.778022527690000e-01, + 7.390568256380000e-01, + -4.062721133230000e-01, + -2.906750440600000e-01, + 1.562105268240000e-01, + -1.890860676770000e+00, + -1.301961302760000e+00, + 3.782022595410000e-01, + 2.561589717860000e+00, + 2.029656469820000e-01, + 4.999031722550000e-01, + -7.329477667810000e-01, + -1.412866711620000e+00, + -6.023700237270000e-01, + 2.987610101700000e+00, + 9.530967473980000e-01, + -4.283953905110000e-01, + -3.311872780320000e-01, + 9.680711627010000e-01, + -3.297359943390000e+00, + -5.638232231140000e-01, + 3.473503828050000e+00, + -8.309356570240000e-01, + -9.152879118920000e-01, + -3.135848939420000e-01, + -3.291093111040000e-01, + -2.214127540590000e+00, + 3.429612219330000e-01, + 7.144230604170000e-01, + -1.280223488810000e+00, + -8.331343531610000e-02, + 2.390744447710000e+00, + -1.295422315600000e+00, + -3.390806913380000e+00, + -2.452373266220000e+00, + -8.328971266750000e-01, + -1.591121107340000e-01, + -4.461361467840000e-01, + 2.607061624530000e+00, + 5.100369453430000e+00, + 3.612124443050000e+00, + 1.062664389610000e+00, + -1.090487122540000e+00, + 1.004808783530000e+00, + -1.730685710910000e+00, + 3.544932603840000e+00, + 5.526835918430000e-01, + -4.938069283960000e-01, + -1.323964357380000e+00, + -1.854266047480000e+00, + 7.572298049930000e-01, + -6.604045033450000e-01, + 1.419197082520000e+00, + 1.352852225300000e+00, + -7.651171088220000e-01, + -2.350445747380000e+00, + -1.789185762410000e+00, + -9.631872773170000e-01, + -1.560095667840000e+00, + 1.540096282960000e+00, + -1.436667740350000e-01, + 1.489838063720000e-01, + -9.260231629009999e-03, + -4.577615261080000e+00, + -3.081176579000000e-01, + 2.227482199670000e-01, + 6.293569505210000e-02, + -4.479255974290000e-01, + -2.924964904790000e+00, + 1.374836564060000e+00, + -3.362680435180000e+00, + 4.340032577510000e+00, + 2.363058567050000e+00, + -1.984835624690000e+00, + 2.591202974320000e+00, + -1.070442914960000e+00, + -5.385757423940000e-03, + -2.280689477920000e+00, + -1.678084969520000e+00, + -1.460481733080000e-01, + 5.443094372750000e-01, + 1.115069538350000e-01, + 1.006433293220000e-01, + 6.815825402740000e-02, + -8.339624404910000e-01, + -5.742414951320000e+00, + 8.903685212140000e-01, + 6.935547351840000e+00, + -3.978276729580000e+00, + 3.103401899340000e+00, + -3.050197124480000e+00, + -2.050264358520000e+00, + -3.602346181870000e+00, + 4.613829612730000e+00, + -1.528940439220000e+00, + 7.386820793150000e+00, + 4.984839439390000e+00, + -5.942946434020000e+00, + -2.501321554180000e+00, + 9.593079566960000e+00, + -7.143760681150000e+00, + 6.429572701450000e-01, + -2.050327062610000e-01, + 2.889850437640000e-01, + -5.199741721150000e-01, + -1.475163221360000e+00, + -5.827736854550000e+00, + 7.021291255950000e+00, + 1.821365952490000e+00, + -4.305889606480000e+00, + 4.964091300960000e+00, + -3.239467859270000e+00, + 4.545381546020000e+00, + -1.532511353490000e+00, + -4.966952800750000e-01, + -3.875257730480000e+00, + 1.153324413300000e+01, + 7.369166374210000e+00, + -8.153740882870000e+00, + 7.090803146360000e+00, + -3.944038152690000e+00, + -4.144722461700000e+00, + 2.061412334440000e+00, + 2.214954234660000e-02, + 3.795708179470000e+00, + 1.901747137310000e-01, + -2.360983133320000e+00, + 5.852028727530000e-02, + -2.310387611390000e+00, + -1.361493617300000e-01, + 3.590785026550000e+00, + -1.816649198530000e+00, + 3.213395833970000e+00, + 1.641019992530000e-02, + 5.244900226590000e+00, + -6.569547176360000e+00, + -7.759915590290000e-01, + 1.485694646840000e-01, + -4.963577270510000e+00, + -6.763008117680000e+00, + 8.002367973329999e+00, + 3.738727271560000e-01, + -1.103196740150000e+00, + -5.428214073180000e+00, + 2.756623744960000e+00, + -2.070616722110000e+00, + 9.996493339540001e+00, + -3.805590629580000e+00, + -6.083875656130000e+00, + 8.814270973210000e+00, + -6.126202583310000e+00, + -7.595177650450000e+00, + 1.632611900570000e-01, + 6.274652957920000e+00, + -2.900124311450000e+00, + -3.437574148180000e+00, + -6.212532520290000e+00, + 4.677159309390000e+00, + 5.358059704300000e-02, + -5.131426453590000e-01, + 2.595078051090000e-01, + 3.311674296860000e-02, + 5.416306480770000e-02, + -6.119146943090000e-01, + -5.590008258820000e+00, + 8.522897958760000e-01, + 6.863228797910000e+00, + -4.358258724210000e+00, + 3.577380418780000e+00, + -3.140554666520000e+00, + -2.402086734770000e+00, + -3.647467613220000e+00, + 4.572065353390000e+00, + -1.715302944180000e+00, + 7.714443683620000e+00, + 5.105498313900000e+00, + -5.878268241880000e+00, + -2.021181583400000e+00, + 9.464814186100000e+00, + -7.120697975160000e+00, + -1.588976532220000e-01, + 1.197824776170000e-01, + -3.440597951410000e-01, + -6.619949340820001e-01, + -1.689954042430000e+00, + -4.520161628720000e+00, + 7.835690498350000e+00, + 1.007114887240000e+00, + -4.336335659030000e+00, + 3.475301742550000e+00, + -3.026499271390000e+00, + 5.240808963780000e+00, + -1.203160762790000e+00, + -1.128256797790000e+00, + -3.939553499220000e+00, + 1.114416408540000e+01, + 7.615677356720000e+00, + -8.158885002140000e+00, + 6.717540740970000e+00, + -3.527328014370000e+00, + -4.386667251590000e+00, + 7.041270136830000e-01, + -6.498203426599999e-02, + 3.199429273610000e+00, + 5.654736757280000e-01, + -1.168708682060000e+00, + -1.149931311610000e+00, + -1.971029758450000e+00, + 8.553926348690000e-01, + 3.110191345210000e+00, + -2.394581317900000e+00, + 2.731848239900000e+00, + -4.580261409280000e-01, + 5.392793178560000e+00, + -6.202786445620000e+00, + 1.396521687510000e+00, + 7.351059913640000e-01, + -6.121031284330000e+00, + -7.833991527560000e+00, + 7.407010555270000e+00, + -9.791312217710000e-01, + -3.896988332270000e-01, + -4.531141757970000e+00, + 2.711863756180000e+00, + -2.760857343670000e+00, + 1.021181011200000e+01, + -4.077778339390000e+00, + -6.795674800870000e+00, + 9.067684173580000e+00, + -5.901842117310000e+00, + -7.509158611300000e+00, + 1.019781708720000e+00, + 6.849632263180000e+00, + -3.610029459000000e+00, + -3.285914182660000e+00, + -5.952714920040000e+00, + 6.187079429630000e+00, + 1.537383079530000e+00, + 1.702909708020000e+00, + 1.311720013620000e+00, + 1.306254744530000e+00, + 1.451874971390000e+00, + -1.440378069880000e+00, + 5.816974639890000e+00, + 4.952839851380000e+00, + -6.744347214700001e-01, + -3.063463211060000e+00, + 2.496534883980000e-01, + 2.411854505540000e+00, + -3.262812614440000e+00, + 5.087973594670000e+00, + 2.438446283340000e-01, + 6.428613185880000e+00, + -1.482329368590000e+00, + -6.512052416800000e-01, + -5.162902355190000e+00, + -5.509869575500000e+00, + -2.605446815490000e+00, + -4.717593669890000e+00, + 8.896756172180000e-01, + 1.502689838410000e+00, + 2.095740079880000e+00, + 1.401007533070000e+00, + -3.120076179500000e+00, + 6.214060783390000e+00, + -4.826714992520000e-01, + 5.827364444730000e+00, + -3.694905757900000e+00, + 6.874834299090000e-01, + 2.575690269470000e+00, + -6.660206317900000e-01, + -7.533329963680000e+00, + 7.026328563690000e+00, + -4.115980625150000e+00, + -7.980788350110000e-01, + -1.213818430900000e+00, + -5.368820190430000e+00, + -7.384116053580000e-01, + -1.549339771270000e+00, + 1.234215974810000e+00, + 4.529669761660000e+00, + -8.426774144169999e-01, + 6.047838330270000e-01, + 5.020432949070000e+00, + 6.171052932740000e+00, + -2.995903253560000e+00, + -2.188464164730000e+00, + 3.688336849210000e+00, + -2.516840770840000e-02, + 6.995763301850000e+00, + 2.165235579010000e-01, + 1.476015329360000e+00, + -1.778209805490000e+00, + 6.120027065280000e+00, + 7.928348779680000e-01, + 1.680957436560000e+00, + -7.220409870150000e+00, + -4.939058303830000e+00, + -2.411471366880000e+00, + 1.501027584080000e+00, + -5.483413696290000e+00, + 6.635334491730000e+00, + 2.853969335560000e-01, + 2.004398345950000e+00, + -4.345576763150000e+00, + -6.670891761780000e+00, + -3.932054996490000e+00, + -2.513454675670000e+00, + -4.377515316010000e+00, + -2.513127088550000e+00, + -1.626609563830000e+00, + -1.116515159610000e+00, + -3.734354734420000e+00, + 2.836546659470000e+00, + 5.239571094510000e+00, + -8.727856874470000e-01, + 1.423555493350000e+00, + 1.834904789920000e+00, + 1.326552271840000e+00, + 1.424677729610000e+00, + 1.532864212990000e+00, + -1.432089209560000e+00, + 5.880556583400000e+00, + 4.924504280090000e+00, + -5.671034455300000e-01, + -3.094112873080000e+00, + 3.583578467370000e-01, + 2.561836481090000e+00, + -3.570415258410000e+00, + 4.993821144100000e+00, + 1.799962222580000e-01, + 6.413618087770000e+00, + -1.487565040590000e+00, + -7.248189449310000e-01, + -5.383125782010000e+00, + -5.766633987430000e+00, + -2.641245365140000e+00, + -4.565959453580000e+00, + 1.400925993920000e+00, + 1.120486855510000e+00, + 9.316694736480000e-01, + 1.655813694000000e+00, + -1.479988694190000e+00, + 6.230938434600000e+00, + -6.486275792120000e-01, + 4.555259227750000e+00, + -3.251560688020000e+00, + -8.019730448720001e-01, + 3.087841033940000e+00, + -1.509957790370000e+00, + -6.810577869420000e+00, + 7.923487663270000e+00, + -3.465495586400000e+00, + -7.636296749110000e-01, + -6.237138509750000e-01, + -6.297498226170000e+00, + -2.023547589780000e-01, + -1.922250866890000e+00, + 2.368649005890000e+00, + 3.754817962650000e+00, + -8.912756443020000e-01, + 2.362490594390000e-01, + 4.586158752440000e+00, + 6.533589363100000e+00, + -2.051577806470000e+00, + -4.087332248690000e+00, + 3.834149599080000e+00, + 4.077506661420000e-01, + 6.581328868870000e+00, + 4.372614920140000e-01, + 9.138273000720000e-01, + -8.254198431970000e-01, + 5.839249610900000e+00, + 8.931589126590000e-01, + 1.097544074060000e+00, + -6.252670288090000e+00, + -6.418492317200000e+00, + -1.450651049610000e+00, + 9.848824143410000e-01, + -5.173768997190000e+00, + 5.712333679200000e+00, + -1.096016634260000e-02, + 1.275473356250000e+00, + -4.623106002810000e+00, + -7.034940719600000e+00, + -4.881501674650000e+00, + -1.781826376910000e+00, + -4.625483989720000e+00, + -2.345863103870000e+00, + -1.083142280580000e+00, + -6.167993545529999e-01, + -3.873777627940000e+00, + 2.756109952930000e+00, + 5.467903614040000e+00, + 1.256024390460000e-01, + -4.481557607650000e-01, + -6.012899801140000e-02, + -2.289791554210000e-01, + -5.794180035590000e-01, + -3.259666860100000e-01, + -1.732075691220000e+00, + -1.320333004000000e+00, + 4.057072401050000e-01, + 2.580579996110000e+00, + 1.093276217580000e-01, + 1.063070178030000e+00, + -7.410640716550000e-01, + -1.341226339340000e+00, + -5.773369669910000e-01, + 2.889119625090000e+00, + 7.793507575990000e-01, + -2.745602428910000e-01, + -1.351892709730000e+00, + 1.228746294980000e+00, + -2.908216714860000e+00, + -8.914362192150000e-01, + 3.534110546110000e+00, + -4.071302711960000e-01, + 7.138058543210000e-02, + -5.076516270640000e-01, + -8.020930886270000e-01, + -1.822062015530000e+00, + -4.019919037820000e-01, + 1.976989269260000e+00, + -2.991093695160000e-01, + -6.542462706570000e-01, + 1.067696928980000e+00, + -1.087497472760000e+00, + -2.095952510830000e+00, + -2.550719738010000e+00, + 3.553702831270000e-01, + 1.127698898320000e+00, + -6.085875630380000e-01, + 2.809400796890000e+00, + 4.402779102330000e+00, + 2.658102512360000e+00, + 1.252932071690000e+00, + -2.562145471570000e+00, + 1.219126343730000e+00, + -1.091801047330000e+00, + 5.180313587190000e+00, + 8.406409621240000e-01, + 6.291191577910000e-01, + -1.259320259090000e+00, + -1.243215680120000e+00, + 9.344495832920000e-03, + 1.247921362520000e-01, + 2.597944974900000e+00, + 6.021333932880000e-01, + 9.112606048580000e-01, + -8.240511417390000e-01, + -1.539296984670000e+00, + 4.502868950370000e-01, + -3.388493657110000e-01, + 1.346478462220000e+00, + -2.740797996520000e-01, + -5.316748619080000e-01, + -5.904870033260000e-01, + -3.552539110180000e+00, + -9.045639038090000e-01, + 5.171593427660000e-01, + -4.110696911810000e-01, + -3.908954560760000e-01, + -4.258668899540000e+00, + 1.720468282700000e+00, + -3.133481264110000e+00, + 4.693678379060000e+00, + 3.522052526470000e+00, + -1.641838908200000e+00, + 3.115657091140000e+00, + 1.868607550860000e-01, + 1.779960840940000e-01, + -1.475957751270000e+00, + -1.008329033850000e+00, + -3.136135637760000e-01, + -7.869973778720000e-01, + -3.247089087960000e-01, + -5.255986452100000e-01, + -3.632325232030000e-01, + -2.004099845890000e+00, + -1.132143855090000e+00, + 5.715070366860000e-01, + 2.626173257830000e+00, + 5.123665928840000e-01, + 7.087338566780000e-01, + -5.782382488250000e-01, + -1.414664983750000e+00, + -5.782994627950000e-01, + 2.760247707370000e+00, + 3.883526325230000e-01, + 1.607615798710000e-01, + -1.186430692670000e+00, + 8.589065074920000e-01, + -3.061312198640000e+00, + -1.214362263680000e+00, + 3.624888658520000e+00, + -3.876530826090000e-01, + 1.004181653260000e-01, + -1.325720310210000e+00, + 4.472515583040000e-01, + -2.510867595670000e+00, + -6.944319009780000e-01, + 1.634273648260000e+00, + -1.931890547280000e-01, + -4.106398224830000e-01, + 1.357650756840000e+00, + -1.024052023890000e+00, + -2.981015920640000e+00, + -2.141690015790000e+00, + -5.834844335910000e-02, + 4.801345244050000e-02, + -3.599708974360000e-01, + 4.220277309420000e+00, + 4.205224514010000e+00, + 3.056956529620000e+00, + 1.105421900750000e+00, + -1.724254250530000e+00, + 2.184885263440000e+00, + -1.543892502780000e+00, + 4.756462574010000e+00, + 5.284531116490000e-01, + 4.874645471570000e-01, + -1.488179445270000e+00, + -1.610833048820000e+00, + 1.635834574700000e-01, + 4.536364078520000e-01, + 2.435068845750000e+00, + 1.271358923990000e-03, + -6.077519059180000e-01, + -1.409096598630000e+00, + -1.355647921560000e+00, + -1.174326062200000e+00, + -7.183992117640001e-02, + 6.564536094670000e-01, + -5.852131247520000e-01, + 8.672149479390000e-02, + -1.084046959880000e+00, + -4.330986499790000e+00, + -1.864048838620000e+00, + 1.848789334300000e+00, + -9.575076103210000e-01, + -6.867346763610001e-01, + -3.411495447160000e+00, + 1.010973811150000e+00, + -2.205936431880000e+00, + 5.035855770110000e+00, + 2.878724098210000e+00, + -1.449390769000000e+00, + 2.981524467470000e+00, + -2.231438308950000e-01, + -3.879615068440000e-01, + -9.394752979280000e-01, + -1.743385314940000e+00, + 1.104304566980000e-01, + 1.607533171770000e-02, + 3.040273487570000e-02, + 1.303226947780000e-01, + 4.391389489170000e-01, + -7.498250007630000e-01, + -5.760429859160000e+00, + 9.566095471379999e-01, + 6.905769824980000e+00, + -3.835613727570000e+00, + 3.684026956560000e+00, + -3.327620267870000e+00, + -2.105819463730000e+00, + -3.859747409820000e+00, + 4.535894870760000e+00, + -1.381875991820000e+00, + 7.513982772830000e+00, + 4.981607913970000e+00, + -5.766876220700000e+00, + -2.127445697780000e+00, + 9.669905662540000e+00, + -7.384777069090000e+00, + 4.652435183530000e-01, + 1.942871138450000e-02, + -3.507421314720000e-01, + -2.370378226040000e-01, + -7.263231873510000e-01, + -5.122735977170000e+00, + 6.913989067080000e+00, + 7.326478362080000e-01, + -4.309051513670000e+00, + 3.449920654300000e+00, + -3.053151130680000e+00, + 4.229301452640000e+00, + -1.490558743480000e+00, + -1.512157082560000e+00, + -5.164312839510000e+00, + 1.143241119380000e+01, + 6.757187366490000e+00, + -9.381363868710000e+00, + 6.244115352630000e+00, + -3.326280593870000e+00, + -3.882776737210000e+00, + 4.788332879540000e-01, + -7.406443953510000e-01, + 4.434144973750000e+00, + -7.367371320720000e-01, + -2.289332151410000e+00, + -1.237059593200000e+00, + -3.024059057240000e+00, + 6.061675548550000e-01, + 3.810891389850000e+00, + -1.395958065990000e+00, + 2.579688072200000e+00, + -6.182705163959999e-01, + 5.618917465210000e+00, + -6.699293136600000e+00, + 1.563750207420000e-01, + 4.806249588730000e-02, + -5.777915000920000e+00, + -7.117695808410000e+00, + 7.454946994780000e+00, + 1.283813238140000e+00, + -2.169536352160000e+00, + -4.623999595640000e+00, + 3.330084800720000e+00, + -3.374881982800000e+00, + 9.376017570500000e+00, + -4.169413566590000e+00, + -6.277486801150000e+00, + 9.036436080930001e+00, + -3.983270168300000e+00, + -7.912361145020000e+00, + -5.853478908540000e-01, + 6.351819038390000e+00, + -3.321771860120000e+00, + -3.350343704220000e+00, + -5.880596160890000e+00, + 4.655775070190000e+00, + 2.329726070170000e-01, + 2.609526813030000e-01, + 9.047678858039999e-02, + 5.045130476360000e-02, + 5.015548467640000e-01, + -6.605442166330000e-01, + -5.663777828220000e+00, + 5.563773512840000e-01, + 7.201058864590000e+00, + -3.838618040080000e+00, + 3.397432804110000e+00, + -3.114738702770000e+00, + -2.191260337830000e+00, + -3.668497323990000e+00, + 4.721164703370000e+00, + -1.710126280780000e+00, + 7.361592769620000e+00, + 5.082622051240000e+00, + -5.847943305970000e+00, + -2.204294681550000e+00, + 9.866005897519999e+00, + -7.149516105650000e+00, + 3.447782695290000e-01, + 1.014737263320000e-01, + -1.493793129920000e-01, + 4.210987687110000e-01, + -1.249605536460000e+00, + -4.807851314540000e+00, + 7.178040027620000e+00, + 1.281664133070000e+00, + -4.678508281710000e+00, + 3.742425680160000e+00, + -3.649311304090000e+00, + 4.482329368590000e+00, + -1.270772933960000e+00, + -1.647843718530000e+00, + -5.521193027500000e+00, + 1.171838855740000e+01, + 8.782167434690001e+00, + -8.371343612670000e+00, + 6.828419208530000e+00, + -3.539400100710000e+00, + -3.931868076320000e+00, + 1.501614689830000e+00, + -6.814188957210000e-01, + 5.053123474120000e+00, + 4.988966286180000e-01, + -2.427206516270000e+00, + -3.090542554860000e-01, + -2.324391365050000e+00, + 1.698122501370000e+00, + 3.081367731090000e+00, + -2.710515975950000e+00, + 3.857226371770000e+00, + 6.319729983810000e-02, + 5.035376548770000e+00, + -5.483877182010000e+00, + 1.917408555750000e-01, + -2.221312969920000e-01, + -4.657387256620000e+00, + -6.040677070620000e+00, + 8.288773536680001e+00, + -3.310253322120000e-01, + -4.588764905930000e-01, + -4.967947006230000e+00, + 2.981374740600000e+00, + -3.179012060170000e+00, + 1.021384620670000e+01, + -3.041034936900000e+00, + -6.443682193760000e+00, + 9.655661582950000e+00, + -5.561183929440000e+00, + -7.369575500490000e+00, + 3.757761120800000e-01, + 6.643651008610000e+00, + -3.140604257580000e+00, + -3.614922523500000e+00, + -5.925266742710000e+00, + 5.854623317720000e+00, + 1.372861742970000e+00, + 2.323929786680000e+00, + 1.466284632680000e+00, + 1.467875480650000e+00, + 7.455008625980000e-01, + -5.158551335330001e-01, + 5.930603027340000e+00, + 4.978907108310000e+00, + -8.176494836810000e-01, + -3.289902210240000e+00, + -8.357217907910000e-02, + 2.431513786320000e+00, + -3.637009620670000e+00, + 5.624767303470000e+00, + 3.966402709480000e-01, + 6.515358924870000e+00, + -1.443236589430000e+00, + -5.016460418699999e-01, + -5.352455139160000e+00, + -5.776416778560000e+00, + -2.602376699450000e+00, + -4.649003028870000e+00, + 1.261377930640000e+00, + 1.778481483460000e+00, + 1.537502288820000e+00, + 8.231306672100001e-01, + -1.489234566690000e+00, + 6.297852039340000e+00, + 1.450788378720000e-01, + 3.978674888610000e+00, + -3.177478551860000e+00, + -1.331508010630000e-01, + 1.652365565300000e+00, + -1.326111197470000e+00, + -7.971539974210000e+00, + 7.071082592010000e+00, + -4.052165508270000e+00, + -1.294434189800000e+00, + -7.362969517710000e-01, + -6.106698036190000e+00, + 1.104019135240000e-01, + -1.999364972110000e+00, + 1.279920816420000e+00, + 4.540331363680000e+00, + -7.946748733520000e-01, + 1.433761358260000e+00, + 5.905275344850000e+00, + 5.847993373870000e+00, + -2.021077632900000e+00, + -3.728922843930000e+00, + 5.761946678160000e+00, + 5.298736691470000e-01, + 6.619974613190000e+00, + -2.666028141980000e-01, + 2.075518369670000e+00, + -1.795469880100000e+00, + 5.867916107180000e+00, + 1.408036351200000e+00, + 1.394434332850000e+00, + -7.010061264040000e+00, + -4.884936809540000e+00, + -2.136523008350000e+00, + 7.642669081690000e-01, + -5.445134639740000e+00, + 6.198071002960000e+00, + 4.809233546260000e-01, + 2.724639177320000e+00, + -4.376062393190000e+00, + -6.708578109740000e+00, + -5.266093254090000e+00, + -2.652570962910000e+00, + -5.204360008240000e+00, + -3.607397317890000e+00, + -1.839160442350000e+00, + -2.001977443700000e+00, + -3.451666355130000e+00, + 2.321802139280000e+00, + 5.544529914860000e+00, + -2.137599945070000e+00, + 1.181298375130000e+00, + 1.275821685790000e+00, + 1.248938560490000e+00, + 1.509072303770000e+00, + 1.513937592510000e+00, + -1.597981095310000e+00, + 5.816029548650000e+00, + 5.027242183690000e+00, + 3.195129036900000e-01, + -3.212938785550000e+00, + 3.284839391710000e-01, + 2.472401618960000e+00, + -3.164701223370000e+00, + 4.985545158390000e+00, + 2.540101408960000e-01, + 6.533060550690000e+00, + -1.425686955450000e+00, + -1.884901404380000e+00, + -5.369433403020000e+00, + -5.552770614620000e+00, + -2.333397150040000e+00, + -4.302547454830000e+00, + 4.630054235460000e-01, + 1.338814854620000e+00, + 1.202971220020000e+00, + 2.145651340480000e+00, + -2.303644180300000e+00, + 4.967882633210000e+00, + -8.555030822750000e-01, + 5.599738121030000e+00, + -4.001484394070000e+00, + -5.779969692230000e-01, + 3.005383253100000e+00, + -7.837030887600001e-01, + -7.479211807250000e+00, + 7.053793430330000e+00, + -3.270314216610000e+00, + -1.069764971730000e+00, + -1.361130118370000e+00, + -6.699001312260000e+00, + -7.963401079180000e-01, + -7.050484418870000e-01, + 2.487894296650000e+00, + 4.699338436130000e+00, + -1.113159179690000e+00, + 1.280597090720000e+00, + 5.811960697170000e+00, + 5.101271629330000e+00, + -2.308494091030000e+00, + -4.384017944340000e+00, + 3.020149946210000e+00, + -1.141052842140000e+00, + 5.087382793430000e+00, + 3.922332823280000e-01, + 1.107238769530000e+00, + -5.302230715750000e-01, + 5.230093955990000e+00, + 1.979842424390000e+00, + 1.160579085350000e+00, + -8.025227546689999e+00, + -5.508382797240000e+00, + -2.266977071760000e+00, + 2.264677524570000e+00, + -5.209356307980000e+00, + 5.355792522430000e+00, + -5.514672398570000e-02, + 1.860824227330000e+00, + -4.285171508790000e+00, + -6.659833431240000e+00, + -5.850434303280000e+00, + -2.747672557830000e+00, + -4.556567668910000e+00, + -3.534749746320000e+00, + -2.330210208890000e+00, + -1.203296065330000e+00, + -4.282285213470000e+00, + 3.266359329220000e+00, + 6.827116966250000e+00, + -2.965980768200000e-01, + -4.076320528980000e-01, + -6.068472862240000e-01, + -4.178192615510000e-01, + -3.070077896120000e-01, + -4.040540196000000e-03, + -2.688310861590000e+00, + -1.153433918950000e+00, + -9.168205410240000e-02, + 2.460859537120000e+00, + 3.331834673880000e-01, + 7.371907830240000e-01, + -8.163615465160000e-01, + -1.301964402200000e+00, + -7.888197898860000e-01, + 2.893563270570000e+00, + 6.412993073460000e-01, + 9.274906665090001e-02, + -1.224774360660000e+00, + 1.248259425160000e+00, + -2.983248949050000e+00, + -8.591244816780000e-01, + 3.760165929790000e+00, + -6.738918423650000e-01, + 4.048163890840000e-01, + -8.810466527940000e-01, + -2.619903385640000e-01, + -1.894577264790000e+00, + -1.122184038160000e+00, + 2.321153640750000e+00, + 6.910537481310000e-01, + 2.062042236330000e+00, + 1.160944819450000e+00, + -2.229130119090000e-01, + -3.909319162370000e+00, + -2.895769357680000e+00, + 2.445766031740000e-01, + 4.186451137070000e-01, + -9.025220274930000e-01, + 4.386724472050000e+00, + 4.722400665280000e+00, + 3.035107851030000e+00, + 3.787403106690000e-01, + -2.687256097790000e+00, + 1.084312558170000e+00, + -1.769142031670000e+00, + 4.009727478030000e+00, + -4.185399711130000e-01, + 8.062084317210000e-01, + -1.910361528400000e+00, + -2.104734420780000e+00, + 1.971742957830000e-01, + -9.904585778710000e-02, + 1.949526548390000e+00, + 2.449034005400000e-01, + 6.424592733380000e-01, + 5.995043739680000e-02, + -1.813376188280000e+00, + -2.119136452670000e-01, + -3.512623608110000e-01, + 9.417428970340000e-01, + -5.118668675419999e-01, + -1.126749217510000e-01, + 2.290569804610000e-02, + -4.011275768280000e+00, + -2.143938064580000e+00, + 5.347524881360000e-01, + -4.270285069940000e-01, + -2.922466397290000e-01, + -4.447008132930000e+00, + 2.630906820300000e+00, + -1.996704101560000e+00, + 3.544504404070000e+00, + 3.278505802150000e+00, + -1.978900432590000e+00, + 3.415975093840000e+00, + 1.046802699570000e-01, + -7.080882191660000e-01, + -4.391698539260000e-01, + -2.533259630200000e+00, + 9.696704894300000e-02, + -2.587324082850000e-01, + -4.238307476040000e-01, + -3.282380700110000e-01, + -4.684585034850000e-01, + -1.888753652570000e+00, + -1.188864827160000e+00, + 4.356671869750000e-01, + 1.412629008290000e+00, + 2.238808870320000e-01, + 4.490326642990000e-01, + -1.305241823200000e+00, + -1.168198347090000e+00, + -6.246601939200001e-01, + 2.757451534270000e+00, + 9.315705299380000e-01, + -3.499398007990000e-04, + -9.691081047060000e-01, + 1.053510904310000e+00, + -3.236157178880000e+00, + -8.818030953410000e-01, + 3.423286437990000e+00, + -9.399974346160000e-02, + -2.542254924770000e-01, + -1.641991287470000e-01, + 5.874169617890000e-02, + -2.381124973300000e+00, + -3.780456781390000e-01, + 1.705252885820000e+00, + -1.516494393350000e+00, + -1.105385303500000e+00, + 1.171369791030000e+00, + -2.143678665160000e-01, + -4.284166812900000e+00, + -2.495550155640000e+00, + -3.407573401930000e-01, + 1.112525939940000e+00, + 2.990291118620000e-01, + 3.923128843310000e+00, + 4.202520370480000e+00, + 2.380838394170000e+00, + 1.107040047650000e+00, + -1.849936008450000e+00, + 2.310408353810000e+00, + -1.753436446190000e+00, + 3.963393926620000e+00, + -3.737186789510000e-01, + 9.937428832050000e-01, + -6.245769262310000e-01, + -1.923386573790000e+00, + 8.700421452520000e-01, + -1.086314558980000e+00, + 2.840610980990000e+00, + 1.575790166850000e+00, + -9.026751518250000e-01, + -1.148441791530000e+00, + -6.410944461820000e-01, + -6.445689797400000e-01, + -1.169325947760000e+00, + 1.577241897580000e+00, + 2.746570408340000e-01, + 1.464119413870000e-03, + 3.789584040640000e-01, + -3.540958642960000e+00, + -8.073053956030000e-01, + 2.149763554330000e-01, + -3.728142678740000e-01, + -6.216388940810000e-01, + -3.221687555310000e+00, + 1.057558417320000e+00, + -3.044102668760000e+00, + 5.363924026490000e+00, + 3.565770864490000e+00, + -2.214955806730000e+00, + 2.295131444930000e+00, + 9.787954688070000e-01, + -1.941154122350000e+00, + -3.987365365030000e-01, + 4.762358665470000e-01, + -4.313228279350000e-02, + -7.625212892890000e-03, + -1.859665066000000e-01, + 4.161106050010000e-02, + 2.178201377390000e-01, + -2.024702429770000e-01, + -5.883943080900000e+00, + 7.041348814960000e-01, + 6.808828353880000e+00, + -3.924204826350000e+00, + 3.303376197810000e+00, + -3.629476308820000e+00, + -2.408782958980000e+00, + -3.646290540700000e+00, + 4.671305656430000e+00, + -1.594291210170000e+00, + 7.281189918520000e+00, + 5.007846832280000e+00, + -5.789160251620000e+00, + -2.003396034240000e+00, + 9.682230949399999e+00, + -7.364312171940000e+00, + 6.647400856020000e-01, + 8.302491307260000e-01, + 4.062674343590000e-01, + 6.170846223830000e-01, + -4.265680611130000e-01, + -6.851304054260000e+00, + 5.205443859100000e+00, + 2.061158418660000e+00, + -5.540699481960000e+00, + 2.993144989010000e+00, + -3.437664747240000e+00, + 4.302734375000000e+00, + -6.248419880870000e-01, + 2.565510272980000e-01, + -3.365494728090000e+00, + 1.100538730620000e+01, + 7.496416091920000e+00, + -8.385059356690000e+00, + 7.048327445980000e+00, + -2.818352699280000e+00, + -4.636904239650000e+00, + 2.525680065160000e+00, + -8.062132000920000e-01, + 3.870742797850000e+00, + 2.523299753670000e-01, + -1.525791645050000e+00, + -1.183636903760000e+00, + -2.460499525070000e+00, + 5.267803072930000e-01, + 3.399860620500000e+00, + -1.998096942900000e+00, + 4.024199008940000e+00, + -1.497393995520000e-01, + 4.141012191770000e+00, + -6.446526527400000e+00, + -6.144071221350000e-01, + -1.473723769190000e+00, + -5.130252361300000e+00, + -7.337003231050000e+00, + 7.252734661100000e+00, + -3.851684182880000e-02, + -7.150974869730000e-01, + -4.734107971190000e+00, + 2.530648469920000e+00, + -1.889396667480000e+00, + 9.867864608760000e+00, + -4.144633293150000e+00, + -6.900466918950000e+00, + 1.114243602750000e+01, + -5.147914409640000e+00, + -7.061520099640000e+00, + 7.123887538910000e-02, + 7.791236400600000e+00, + -4.342018604280000e+00, + -3.278266668320000e+00, + -5.554271221160000e+00, + 6.517030715940000e+00, + -3.467606902120000e-01, + 1.114602573220000e-02, + 4.392711818220000e-01, + -4.861011803150000e-01, + 1.591071784500000e-01, + -4.535944461820000e-01, + -5.671728610990000e+00, + 6.291884779930000e-01, + 6.549528598790000e+00, + -4.014463901520000e+00, + 2.334654808040000e+00, + -2.882417917250000e+00, + -2.342124700550000e+00, + -3.780060529710000e+00, + 4.745565414430000e+00, + -1.437736749650000e+00, + 7.440438270570000e+00, + 5.113318443300000e+00, + -5.877113342290000e+00, + -2.300655603410000e+00, + 9.870791435239999e+00, + -6.980512142180000e+00, + 3.520931676030000e-02, + 1.079661846160000e+00, + 2.689176201820000e-01, + 2.797494530680000e-01, + -1.707250714300000e+00, + -5.667786598210000e+00, + 6.776309967040000e+00, + 1.804049372670000e+00, + -3.651166200640000e+00, + 3.520554780960000e+00, + -2.656947612760000e+00, + 3.900163173680000e+00, + -2.627629518510000e+00, + -1.239119768140000e+00, + -4.460469245910000e+00, + 1.085214805600000e+01, + 6.917536258700000e+00, + -9.240167617799999e+00, + 6.727935314180000e+00, + -3.275850057600000e+00, + -3.375573396680000e+00, + 1.537937879560000e+00, + -8.463710546490000e-01, + 4.417544841770000e+00, + 2.534401416780000e+00, + -1.622759938240000e+00, + -1.322111248970000e+00, + -2.050638437270000e+00, + 1.103435039520000e+00, + 3.644797801970000e+00, + -9.135881066320000e-01, + 3.657882928850000e+00, + -5.572228878740000e-02, + 4.438475131990000e+00, + -6.365024566650000e+00, + 1.307186037300000e-01, + 6.667435169220000e-01, + -4.854779720310000e+00, + -6.479537487030000e+00, + 8.203014373780000e+00, + 5.289012193680001e-01, + -4.620716571810000e-01, + -5.108592033390000e+00, + 2.854367494580000e+00, + -2.924178361890000e+00, + 9.478224754330000e+00, + -2.963585853580000e+00, + -5.289805889130000e+00, + 9.217769622800001e+00, + -5.493275165560000e+00, + -7.986693382260000e+00, + 1.862762682140000e-02, + 5.468343257900000e+00, + -2.675971031190000e+00, + -2.662133455280000e+00, + -5.738570690160000e+00, + 5.268634319310000e+00, + 1.457654714580000e+00, + 1.364587545390000e+00, + 1.256308436390000e+00, + 1.348066806790000e+00, + 1.448572516440000e+00, + -1.826371192930000e+00, + 6.199094295500000e+00, + 4.787596225740000e+00, + -6.475149989130000e-01, + -3.217783689500000e+00, + 2.311950325970000e-01, + 2.671424150470000e+00, + -3.259375572200000e+00, + 5.048420906070000e+00, + 1.050057187680000e-01, + 6.440058231350000e+00, + -1.397092103960000e+00, + -8.422731161120000e-01, + -5.126997470860000e+00, + -5.658713340760000e+00, + -2.708950519560000e+00, + -5.567572116850000e+00, + 1.318169593810000e+00, + 1.702288985250000e+00, + 7.992612123490000e-01, + 1.954522848130000e+00, + -2.736035108570000e+00, + 5.742513179780000e+00, + -1.858232855800000e+00, + 5.637145996090000e+00, + -3.152745485310000e+00, + -3.921576142310000e-01, + 2.227853059770000e+00, + -3.814946711060000e-01, + -6.652234077450000e+00, + 9.513392448430000e+00, + -2.711061716080000e+00, + -1.097745776180000e+00, + -5.060433149340000e-01, + -5.460469722750000e+00, + -1.090541720390000e+00, + -1.987138390540000e+00, + 1.198051571850000e+00, + 5.417145252230000e+00, + -1.521281003950000e+00, + 4.015313088890000e-01, + 5.657218456270000e+00, + 6.359729290010000e+00, + -1.683666944500000e+00, + -5.606333732600000e+00, + 4.861844539640000e+00, + 1.475907564160000e-01, + 6.478408336640000e+00, + 1.729053735730000e+00, + 1.062958240510000e+00, + -6.164243817330000e-01, + 5.815618038180000e+00, + 1.937682867050000e+00, + 7.387393713000000e-01, + -7.062867164610000e+00, + -5.738012313840000e+00, + -1.831816434860000e+00, + 1.955343961720000e+00, + -4.990957736970000e+00, + 5.738015651700000e+00, + 6.019467711449999e-01, + 2.087920904160000e+00, + -3.266426324840000e+00, + -5.972792148590000e+00, + -5.260344028470000e+00, + -2.537685632710000e+00, + -4.920831680300000e+00, + -4.938704013820000e+00, + -1.338585853580000e+00, + -7.247318029399999e-01, + -4.510902404790000e+00, + 2.381419897080000e+00, + 5.118183135990000e+00, + -6.348549127580000e-01, + 1.682707905770000e+00, + 1.630209565160000e+00, + 1.529030919080000e+00, + 2.014241933820000e+00, + 1.348766207700000e+00, + -2.100949764250000e+00, + 5.900796413420000e+00, + 5.002130508420000e+00, + -7.833161950110000e-01, + -3.376059770580000e+00, + 4.389973580840000e-01, + 2.275669813160000e+00, + -3.613694190980000e+00, + 4.811807632450000e+00, + 1.317808032040000e-01, + 6.421669960020000e+00, + -1.366343498230000e+00, + -8.055987954140000e-01, + -5.216017246250000e+00, + -5.604430198670000e+00, + -2.713229656220000e+00, + -4.521214008330000e+00, + 1.358805298810000e+00, + 2.042963027950000e+00, + 1.287965536120000e+00, + 2.123730421070000e+00, + -1.731905460360000e+00, + 5.681400775910000e+00, + -8.383168578150000e-01, + 4.777742862700000e+00, + -2.914083242420000e+00, + 2.427029758690000e-01, + 3.485196352000000e+00, + -8.105537891390000e-01, + -7.282540798190000e+00, + 8.657422065730000e+00, + -2.722434043880000e+00, + -7.914749979970001e-01, + -1.274934649470000e+00, + -6.093234062190000e+00, + 1.080388426780000e+00, + -2.484261989590000e+00, + 3.099870204930000e+00, + 5.533022403720000e+00, + -8.357053995130000e-01, + 6.559632420540000e-01, + 4.969965934750000e+00, + 6.504165649410000e+00, + -2.529423236850000e+00, + -4.645462989810000e+00, + 2.947156429290000e+00, + 1.111624166370000e-01, + 6.812959194180000e+00, + 9.796888232230000e-01, + 1.284363150600000e+00, + -6.039021015170000e-01, + 6.775801181790000e+00, + 6.155961155890000e-01, + 1.417070150380000e+00, + -6.688035011290000e+00, + -3.797604084010000e+00, + -1.384468913080000e+00, + 1.413166761400000e+00, + -6.077050685880000e+00, + 6.141716480260000e+00, + 7.956654429440000e-01, + 1.816105484960000e+00, + -4.875942230220000e+00, + -5.977448463440000e+00, + -5.442991733550000e+00, + -3.343128204350000e+00, + -3.671356916430000e+00, + -3.083190202710000e+00, + -1.980634212490000e+00, + -6.374905109410000e-01, + -3.480825185780000e+00, + 2.950580596920000e+00, + 5.195787429810000e+00, + -5.689869523050000e-01, + -4.267558157440000e-01, + -2.742702662940000e-01, + -5.726460218430000e-01, + -3.345362246040000e-01, + -3.874759674070000e-01, + -2.093199729920000e+00, + -1.248700499530000e+00, + 3.375664651390000e-01, + 2.390739917760000e+00, + 4.204499125480000e-01, + -1.648149490360000e-01, + -2.972103357320000e-01, + -1.426479220390000e+00, + -7.540044188500000e-01, + 2.939692497250000e+00, + 4.796696305270000e-01, + -2.128040976820000e-02, + -1.204910159110000e+00, + 7.505201101300000e-01, + -3.140973567960000e+00, + -1.117988228800000e+00, + 2.836563587190000e+00, + -1.280235290530000e+00, + -1.845414340500000e-01, + -6.247968673710000e-01, + -8.403909802440001e-01, + -1.926723837850000e+00, + -1.901668429370000e+00, + 1.363565444950000e+00, + -1.104830503460000e+00, + -7.281293720010000e-02, + 1.751858949660000e+00, + 2.167519927020000e-02, + -2.774813413620000e+00, + -1.707792520520000e+00, + -1.480780601500000e+00, + 4.739476740360000e-01, + 3.867514729500000e-01, + 4.544938564300000e+00, + 4.327282428740000e+00, + 2.045720100400000e+00, + 1.157770395280000e+00, + -1.730986595150000e+00, + 9.468587636950000e-01, + -2.121478557590000e+00, + 5.280868530270000e+00, + 8.203352093700000e-01, + -4.485028088090000e-01, + -2.547999620440000e+00, + -2.754392623900000e+00, + -3.278358876710000e-01, + 5.438015460970000e-01, + 1.856767773630000e+00, + 1.510148406030000e+00, + 1.786947399380000e-01, + -6.894357204440000e-01, + -3.745759725570000e-01, + -6.258320212360000e-01, + -1.514472842220000e+00, + 1.238403201100000e+00, + -5.846851468090000e-01, + -6.802201867100000e-01, + -7.675005793570000e-01, + -4.294319152830000e+00, + -8.370967507360000e-01, + 1.275310635570000e+00, + -1.444749832150000e+00, + -8.533053994180000e-01, + -3.375590324400000e+00, + 1.590598225590000e+00, + -3.059773921970000e+00, + 2.965412855150000e+00, + 3.130056381230000e+00, + -7.528675794600000e-01, + 1.992795228960000e+00, + 7.077135443690000e-01, + -9.009883403780000e-01, + -9.264339208600000e-01, + -1.018613815310000e+00, + 1.188332661990000e-01, + -6.615144014360000e-01, + -3.056219220160000e-01, + 1.208017393950000e-02, + -3.414714038370000e-01, + -2.071771621700000e+00, + -1.186565399170000e+00, + 4.268178045750000e-01, + 1.653085589410000e+00, + 3.212998509410000e-01, + -1.651575863360000e-01, + -8.814870715140000e-01, + -1.329092502590000e+00, + -3.034493625160000e-01, + 2.829720497130000e+00, + 6.795598864560000e-01, + -5.803118273620000e-02, + -1.187206387520000e+00, + 1.329857230190000e+00, + -3.020650386810000e+00, + -9.065729975700000e-01, + 3.561284303670000e+00, + -2.750994265080000e-01, + -2.442421764140000e-01, + -8.678976297380000e-01, + -1.067843198780000e+00, + -2.449676990510000e+00, + -5.914229750630000e-01, + 2.480926752090000e+00, + -1.317332983020000e+00, + -1.853079348800000e-01, + 5.751020312310000e-01, + -1.223380684850000e+00, + -1.855412364010000e+00, + -3.816235780720000e+00, + 1.183307096360000e-01, + 1.088027834890000e+00, + -9.650804996490000e-01, + 3.403862714770000e+00, + 4.121490955350000e+00, + 2.874000310900000e+00, + 1.902146697040000e+00, + -7.776338458060000e-01, + 2.378657102580000e+00, + -9.213383793830000e-01, + 4.679584503170000e+00, + 9.656690806150001e-02, + 1.541527509690000e-01, + -1.440382957460000e+00, + -2.020279645920000e+00, + 1.235107064250000e+00, + -4.126303195950000e-01, + 2.769195795060000e+00, + 4.478223025800000e-01, + -4.433939158920000e-01, + -9.175718575720000e-02, + -9.605962038040000e-01, + 8.440300226210000e-01, + 3.445598185060000e-01, + 1.077020525930000e+00, + 5.893650054930000e-01, + 6.258007138970000e-02, + -1.406698822980000e+00, + -4.218750953670000e+00, + -2.186104297640000e+00, + 2.390021085740000e+00, + -7.671424150470000e-01, + 2.693065106870000e-01, + -4.448487281800000e+00, + 1.718838691710000e+00, + -1.758527040480000e+00, + 5.592711925510000e+00, + 3.558115243910000e+00, + -1.755373120310000e+00, + 2.820430994030000e+00, + 5.496127605440000e-01, + -1.250155121090000e-01, + -2.035974264140000e+00, + -1.280161976810000e+00, + -1.438541859390000e-01, + 8.131493628030000e-02, + 2.044526934620000e-01, + -2.689923532310000e-02, + -1.873369067910000e-01, + -5.675813555720000e-01, + -5.674300670620000e+00, + 8.493661284450000e-01, + 6.906677246090000e+00, + -4.003966331480000e+00, + 3.330235242840000e+00, + -3.316509485240000e+00, + -2.341055631640000e+00, + -3.596966028210000e+00, + 4.838624477390000e+00, + -1.506732225420000e+00, + 7.271501064300000e+00, + 4.690985679630000e+00, + -5.888280391690000e+00, + -2.140323162080000e+00, + 9.608585357670000e+00, + -7.333219528200000e+00, + -1.942621916530000e-01, + -6.259069442750000e-01, + 7.770585417750000e-01, + 1.460150443020000e-02, + 5.958024412390000e-02, + -5.605257511140000e+00, + 6.243319511410000e+00, + 1.103878974910000e+00, + -3.343302249910000e+00, + 4.960541248320000e+00, + -2.386468648910000e+00, + 5.140121936800000e+00, + -2.225084543230000e+00, + -2.189843893050000e+00, + -4.231351375580000e+00, + 1.106282997130000e+01, + 8.718264579770000e+00, + -9.034191131589999e+00, + 7.199535369870000e+00, + -4.181821346280000e+00, + -4.084916591640000e+00, + 1.126669049260000e+00, + -1.806132555010000e+00, + 4.129160881040000e+00, + 2.772214412690000e-01, + -2.272534132000000e+00, + -1.063471198080000e+00, + -1.046754360200000e+00, + 1.065201163290000e+00, + 4.357255458830000e+00, + -2.286416053770000e+00, + 2.779377698900000e+00, + -8.978927135470000e-02, + 5.003490448000000e+00, + -7.142657756810000e+00, + 2.380523681640000e-01, + 8.166973590850000e-01, + -4.429348945620000e+00, + -7.452425479890000e+00, + 7.878252029420000e+00, + 1.118765398860000e-01, + -3.600469529630000e-01, + -5.690595149990000e+00, + 3.346084356310000e+00, + -1.900623559950000e+00, + 1.007640361790000e+01, + -4.785762786870000e+00, + -6.246015548710000e+00, + 9.877043724060000e+00, + -6.401553153990000e+00, + -7.820102691650000e+00, + -7.370247840880000e-01, + 6.144336700440000e+00, + -3.290873527530000e+00, + -4.266431331630000e+00, + -5.388374328610000e+00, + 6.389016628270000e+00, + -2.981738746170000e-01, + 5.363093018530000e-01, + 8.095657452940001e-03, + 1.949019134040000e-01, + 1.773543953900000e-01, + -5.549063682560000e-01, + -5.498172760010000e+00, + 8.471332788470000e-01, + 6.681554794310000e+00, + -4.033253669740000e+00, + 3.339236497880000e+00, + -2.475948572160000e+00, + -1.953487157820000e+00, + -3.795944690700000e+00, + 4.697576999660000e+00, + -1.572971343990000e+00, + 7.277504920960000e+00, + 4.932836532590000e+00, + -5.981855392460000e+00, + -2.003013372420000e+00, + 9.639176368710000e+00, + -7.070811748500000e+00, + 1.685817986730000e-01, + 7.606634497640000e-02, + -2.622404396530000e-01, + 6.041932106020000e-01, + -1.295867681500000e+00, + -5.208952426910000e+00, + 6.355200290680000e+00, + 1.997794389720000e+00, + -3.855291128160000e+00, + 3.269654750820000e+00, + -3.842460870740000e+00, + 5.265770435330000e+00, + -1.905519962310000e+00, + 9.898286312820000e-02, + -3.889844179150000e+00, + 1.112063026430000e+01, + 7.850391387940000e+00, + -8.195611000060000e+00, + 6.206161975860000e+00, + -3.123049259190000e+00, + -4.085895538330000e+00, + 1.479401707650000e+00, + -1.095075607300000e+00, + 2.697211027150000e+00, + 7.398339509960000e-01, + -1.885649204250000e+00, + -3.037754595280000e-01, + -2.149192810060000e+00, + -4.791302978990000e-01, + 3.544073820110000e+00, + -1.108036994930000e+00, + 4.151156425480000e+00, + 4.051694273950000e-01, + 5.727118015290000e+00, + -6.778428077700000e+00, + 8.529043197630000e-02, + 4.841566458340000e-02, + -4.896344184880000e+00, + -7.581536769870000e+00, + 7.900650978090000e+00, + -3.099602758880000e-01, + -1.847883939740000e+00, + -4.482225418090000e+00, + 2.948855638500000e+00, + -3.932370424270000e+00, + 9.888736724850000e+00, + -3.015956401820000e+00, + -6.688236236570000e+00, + 1.028911590580000e+01, + -6.318304538730000e+00, + -8.519452095029999e+00, + -1.065814048050000e-01, + 5.595724105830000e+00, + -3.291537761690000e+00, + -2.996808767320000e+00, + -5.779549121860000e+00, + 5.938597202300000e+00, + 1.514644265170000e+00, + 1.572177767750000e+00, + 1.263288140300000e+00, + 1.400255441670000e+00, + 1.400524139400000e+00, + -1.712072730060000e+00, + 5.495514869690000e+00, + 4.840072631840000e+00, + -6.058833599090000e-01, + -3.267819881440000e+00, + 2.682638168330000e-01, + 2.537049531940000e+00, + -3.463913440700000e+00, + 5.123813152310000e+00, + -1.995616853240000e-01, + 6.562411308290000e+00, + -1.338178634640000e+00, + -8.659895658490000e-01, + -5.365094184880000e+00, + -5.712591648100000e+00, + -2.547138690950000e+00, + -4.268645763400000e+00, + 7.512902021410000e-01, + 1.880766391750000e+00, + 1.684754252430000e+00, + 6.047365665440000e-01, + -1.916923522950000e+00, + 6.331153392790000e+00, + -1.080769419670000e+00, + 4.339231491090000e+00, + -2.931246042250000e+00, + 3.498839735980000e-01, + 2.967540979390000e+00, + -9.228619337080000e-01, + -7.838474750520000e+00, + 7.656199932100000e+00, + -3.670761108400000e+00, + -2.052839517590000e+00, + -1.251002311710000e+00, + -5.751188755040000e+00, + -9.572673439980000e-01, + -1.902552366260000e+00, + 1.701574921610000e+00, + 3.860791683200000e+00, + -1.594674706460000e+00, + 1.356640338900000e+00, + 5.035536289220000e+00, + 6.246477603910000e+00, + -2.194187879560000e+00, + -4.975542068480000e+00, + 4.076666355130000e+00, + -3.086832910780000e-02, + 6.524386882780000e+00, + 5.201189517970000e-01, + 1.360267877580000e+00, + -6.743046641350000e-01, + 5.372391223910000e+00, + 1.117446184160000e+00, + 1.595198869710000e+00, + -6.101862430570000e+00, + -5.817354679110000e+00, + -2.202556610110000e+00, + 2.148229837420000e+00, + -6.225170612340000e+00, + 6.035667419430000e+00, + 5.123206377030000e-01, + 1.474276065830000e+00, + -3.815946817400000e+00, + -5.447695255280000e+00, + -3.952835559840000e+00, + -2.837561607360000e+00, + -4.855792999270000e+00, + -4.381916522980000e+00, + -1.068902134900000e+00, + -2.333052009340000e-01, + -4.279588222500000e+00, + 1.330545663830000e+00, + 5.332340240480000e+00, + -4.194099307060000e-01, + 1.326061129570000e+00, + 1.468186855320000e+00, + 1.234543919560000e+00, + 9.134248495100000e-01, + 1.492645859720000e+00, + -1.509163141250000e+00, + 6.196498394010000e+00, + 4.280936241150000e+00, + -8.996829390530000e-01, + -3.550618648530000e+00, + 2.977503240110000e-01, + 1.556829094890000e+00, + -3.254340887070000e+00, + 4.999251365660000e+00, + -1.282077282670000e-02, + 6.070767402650000e+00, + -1.290847659110000e+00, + -7.396540045740000e-01, + -5.092061519620000e+00, + -5.556887626650000e+00, + -2.974619388580000e+00, + -4.796282291410000e+00, + 1.381531000140000e+00, + 1.712897539140000e+00, + 5.101439952850000e-01, + 1.146780848500000e+00, + -1.577861905100000e+00, + 6.159895896910000e+00, + -2.026199698450000e-01, + 6.467982769010000e+00, + -3.495511054990000e+00, + -3.479635715480000e-01, + 3.300655603410000e+00, + -1.105472564700000e+00, + -6.241775035860000e+00, + 7.098599910740000e+00, + -3.951519966130000e+00, + -1.700495839120000e+00, + 5.125950649380000e-02, + -6.172070503230000e+00, + -3.250803947450000e-01, + -2.463156461720000e+00, + 1.726257085800000e+00, + 4.918797969820000e+00, + -7.048706412320001e-01, + 1.630724668500000e+00, + 5.037163257600000e+00, + 5.678228378300000e+00, + -1.559610962870000e+00, + -2.921277999880000e+00, + 4.543019771580000e+00, + -8.680056333540001e-01, + 6.570634365080000e+00, + 5.247704982760000e-01, + 1.743038296700000e+00, + -1.106609940530000e+00, + 6.466400623320000e+00, + 1.343103885650000e+00, + 1.406823396680000e+00, + -7.451936244960000e+00, + -5.320197582240000e+00, + -1.697902321820000e+00, + 1.722174048420000e+00, + -4.657976150510000e+00, + 6.594945430760000e+00, + 5.128343701360000e-01, + 2.647528171540000e+00, + -5.003546714780000e+00, + -7.318084716800000e+00, + -5.822624683380000e+00, + -2.889429569240000e+00, + -3.912362098690000e+00, + -3.751837968830000e+00, + -1.858945608140000e+00, + -1.883359909060000e+00, + -3.501186609270000e+00, + 2.802679777150000e+00, + 7.948134422300000e+00, + -2.087040841580000e-01, + -3.600762188430000e-01, + -4.191409051420000e-01, + -4.594742655750000e-01, + -3.028432428840000e-01, + -1.340832114220000e-01, + -1.916242957120000e+00, + -1.421203851700000e+00, + 3.467555344100000e-01, + 2.453595638280000e+00, + 3.058062195780000e-01, + 3.401321172710000e-01, + -8.862397074700000e-01, + -1.256379246710000e+00, + -4.164578914640000e-01, + 2.933842182160000e+00, + 7.066937685010000e-01, + 1.181148067120000e-01, + -1.003461837770000e+00, + 9.096257090570000e-01, + -3.072024822240000e+00, + -7.626823186870000e-01, + 3.747922897340000e+00, + 1.031746119260000e-01, + 4.219776391980000e-01, + 2.942576073110000e-02, + -8.370906710620000e-01, + -1.747362017630000e+00, + -7.466772943739999e-02, + 2.869443416600000e+00, + -1.323054879900000e-01, + -8.420129418370000e-01, + 7.976220250129999e-01, + -5.189617276189999e-01, + -3.085101127620000e+00, + -1.282728552820000e+00, + 3.425789177420000e-01, + 4.244213998320000e-01, + -9.551096558570000e-01, + 4.450256824490000e+00, + 4.300688743590000e+00, + 2.257230758670000e+00, + 1.001905083660000e+00, + -7.020140290260000e-01, + 2.344339847560000e+00, + -9.929363131520000e-01, + 3.395866155620000e+00, + 1.240725517270000e+00, + 4.703820124270000e-02, + -1.787514805790000e+00, + -3.786083936690000e+00, + 1.158530116080000e+00, + -1.416671723130000e-01, + 1.898318409920000e+00, + 1.246420502660000e+00, + -8.938085436820000e-01, + -9.933601617810000e-01, + -7.950172424320000e-01, + -1.081869676710000e-01, + -5.818905830380000e-01, + 1.215404868130000e+00, + -3.329557180400000e-01, + 6.817262768750000e-01, + -4.870324730870000e-01, + -4.042777538300000e+00, + -1.150428652760000e+00, + -1.743489205840000e-01, + -1.780222058300000e-01, + 4.379290044310000e-01, + -4.656953811650000e+00, + 1.299100041390000e+00, + -3.332381010060000e+00, + 4.107257843020000e+00, + 2.619919300080000e+00, + -2.752130746840000e+00, + 2.189880609510000e+00, + 1.316410183910000e+00, + -1.153516843910000e-01, + -5.451869368550000e-01, + -5.392358899120000e-01, + -2.458924204110000e-01, + -5.621402263640000e-01, + -4.086039960380000e-01, + 1.593978516760000e-02, + -4.089103341100000e-01, + -1.878337144850000e+00, + -1.119198203090000e+00, + 8.475427627560000e-01, + 2.103134393690000e+00, + 5.255557298660000e-01, + 5.649613738060000e-01, + -3.779976367950000e-01, + -1.585374116900000e+00, + -8.179189562800000e-01, + 2.274507522580000e+00, + 5.755377411840000e-01, + -1.449805963780000e-02, + -1.196923971180000e+00, + 1.225313425060000e+00, + -3.296729326250000e+00, + -1.070018291470000e+00, + 3.410231113430000e+00, + -8.787391185760000e-01, + -3.827141225340000e-01, + -7.058875560760000e-01, + 1.713163703680000e-01, + -1.938977122310000e+00, + -5.572293996810000e-01, + 1.704787492750000e+00, + -1.084779381750000e+00, + -2.599584460260000e-01, + 8.761855363850000e-01, + -6.823182702060000e-01, + -1.897093296050000e+00, + -1.396112799640000e+00, + -5.957990884780000e-01, + 1.055357813840000e+00, + -1.357205748560000e+00, + 2.997826337810000e+00, + 2.816233634950000e+00, + 2.593548774720000e+00, + 6.057800054550000e-01, + -1.809614300730000e+00, + 2.100380659100000e+00, + -1.238523244860000e+00, + 4.279144763950000e+00, + 3.128499686720000e-01, + 4.235113784670000e-02, + -1.973341226580000e+00, + -1.085286974910000e+00, + 4.486827552320000e-01, + -1.163058757780000e+00, + 1.671201109890000e+00, + 6.545786857600000e-01, + -3.278783559800000e-01, + -5.775459408760000e-01, + -1.162201881410000e+00, + -1.709005832670000e-01, + -3.842141032220000e-01, + 1.667733311650000e+00, + 5.587273836140000e-02, + -1.178286790850000e+00, + -2.739919722080000e-01, + -4.564394474030000e+00, + -4.167296290400000e-01, + 1.059628725050000e+00, + -3.057927489280000e-01, + -2.677890658380000e-01, + -4.062273979190000e+00, + 2.176712751390000e+00, + -3.375589847560000e+00, + 4.996279716490000e+00, + 2.639516592030000e+00, + -1.489339709280000e+00, + 1.305520296100000e+00, + 3.596154153350000e-01, + -4.841618239880000e-01, + -2.408784031870000e-01, + -8.156251311300000e-01, + -8.693899214270000e-02, + 5.935336276890000e-02, + 2.173594832420000e-01, + 1.286600828170000e-01, + -1.871292591090000e-01, + -9.184808135030000e-01, + -5.823277473450000e+00, + 8.139498829840000e-01, + 6.977141857150000e+00, + -3.402478694920000e+00, + 3.357529640200000e+00, + -3.180799007420000e+00, + -2.178229331970000e+00, + -3.728915214540000e+00, + 4.552237510680000e+00, + -1.404902338980000e+00, + 7.338978290560000e+00, + 5.047803401950000e+00, + -5.630167961120000e+00, + -2.144541502000000e+00, + 9.677974700929999e+00, + -6.867484569550000e+00, + -1.972332037990000e-02, + 4.310320019720000e-01, + 2.683249711990000e-01, + -3.364213705060000e-01, + -3.547222018240000e-01, + -5.655160903930000e+00, + 7.244573593140000e+00, + 2.273035049440000e+00, + -4.829401969910000e+00, + 1.932587385180000e+00, + -3.148988723750000e+00, + 5.182052612300000e+00, + -1.351123332980000e+00, + -1.703282833100000e+00, + -4.303798198700000e+00, + 1.103780269620000e+01, + 8.427550315860000e+00, + -1.068698596950000e+01, + 6.139119148250000e+00, + -3.829201221470000e+00, + -3.392735004430000e+00, + 2.864890575410000e+00, + -6.711553335190000e-01, + 4.505426406860000e+00, + -1.424357760700000e-02, + -3.072690248490000e+00, + 3.907818794250000e-01, + -2.170327186580000e+00, + 6.352494955060000e-01, + 3.416956186290000e+00, + -8.027384281160000e-01, + 3.768673419950000e+00, + 4.884565174580000e-01, + 5.378034591670000e+00, + -5.345154762270000e+00, + -4.315764904020000e-01, + -7.515438795090000e-01, + -4.776249408720000e+00, + -9.062199592590000e+00, + 8.470925331120000e+00, + 1.058917045590000e+00, + 5.102535337210000e-02, + -5.518656253810000e+00, + 3.147924900050000e+00, + -3.970101594920000e+00, + 1.021252536770000e+01, + -2.353046417240000e+00, + -6.262481689450000e+00, + 9.210336685180000e+00, + -5.936505794530000e+00, + -7.791877269740000e+00, + -1.120162010190000e-01, + 5.960126876830000e+00, + -3.928452014920000e+00, + -3.405919075010000e+00, + -5.290260314940000e+00, + 4.594041824340000e+00, + 4.153999686240000e-02, + 2.496404647830000e-01, + 2.737603485580000e-01, + 4.880435019730000e-02, + 2.613170258700000e-02, + -3.498157858850000e-01, + -5.668889045720000e+00, + 7.073828578000000e-01, + 6.347218990330000e+00, + -4.124157428740000e+00, + 3.504909038540000e+00, + -3.262556076050000e+00, + -2.311931848530000e+00, + -3.771488428120000e+00, + 4.501739501950000e+00, + -1.393907904620000e+00, + 7.306518077850000e+00, + 5.133782863620000e+00, + -6.182171821590000e+00, + -2.070375919340000e+00, + 9.717048645020000e+00, + -6.960323333740000e+00, + 4.318751096730000e-01, + 5.515875816350000e-01, + 9.330183863640000e-01, + -1.234260499480000e-01, + -9.134674668310000e-01, + -6.540838241580000e+00, + 8.287340164180000e+00, + 2.403186082840000e+00, + -3.672954797740000e+00, + 3.014129161830000e+00, + -2.673846960070000e+00, + 4.402823925020000e+00, + -1.740721821780000e+00, + -1.066785454750000e+00, + -4.717032432560000e+00, + 1.094970226290000e+01, + 7.112318515780000e+00, + -8.635778427120000e+00, + 6.764961242680000e+00, + -3.919623374940000e+00, + -4.538369178770000e+00, + 1.658931732180000e+00, + -5.808041691780000e-01, + 3.236294746400000e+00, + 6.356000900269999e-02, + -2.470050096510000e+00, + -1.166610270740000e-01, + -2.071594715120000e+00, + 1.219015121460000e+00, + 3.890322685240000e+00, + -2.835741043090000e+00, + 3.684629917140000e+00, + -5.110324025150000e-01, + 4.386806964870000e+00, + -5.615830421450000e+00, + -1.908536851410000e-01, + -2.306829690930000e-01, + -4.227149486540000e+00, + -5.643616676330000e+00, + 7.911104202270000e+00, + -2.213167995210000e-01, + -2.360350936650000e-01, + -5.659348011020000e+00, + 3.269075393680000e+00, + -2.184888124470000e+00, + 9.544730186460001e+00, + -2.139695644380000e+00, + -6.061589241030000e+00, + 1.028688526150000e+01, + -6.671855449680000e+00, + -7.022635936740000e+00, + -2.197803463790000e-03, + 6.900093078610000e+00, + -6.452050685880000e+00, + -3.286412715910000e+00, + -4.918919086460000e+00, + 5.192712306980000e+00, + 1.411097288130000e+00, + 1.432438135150000e+00, + 1.453707218170000e+00, + 1.791333556180000e+00, + 1.458115339280000e+00, + -1.077932000160000e+00, + 6.206333637240000e+00, + 4.795357227330000e+00, + -6.062667965890000e-01, + -3.437701463700000e+00, + 3.601437211040000e-01, + 3.298183441160000e+00, + -3.514334440230000e+00, + 5.062430858610000e+00, + 3.524309098720000e-01, + 6.516356945040000e+00, + -1.441829204560000e+00, + -5.961698293690000e-01, + -5.270473480220000e+00, + -5.814907550810000e+00, + -2.767073631290000e+00, + -5.024187564850000e+00, + 1.347204685210000e+00, + 1.375064015390000e+00, + 1.979569673540000e+00, + 6.621842980380001e-01, + -1.514011383060000e+00, + 5.041712284090000e+00, + -8.476872444150000e-01, + 5.223559856410000e+00, + -3.000309944150000e+00, + -4.122431278230000e-01, + 2.425682067870000e+00, + -1.030436396600000e+00, + -6.703343868260000e+00, + 8.921891212460000e+00, + -3.782736063000000e+00, + 1.894246637820000e-01, + -3.098364472390000e-01, + -5.397022247310000e+00, + -5.074702501300000e-01, + -2.572445869450000e+00, + 1.273362159730000e+00, + 5.824809551240000e+00, + -1.662419319150000e+00, + 4.604716002940000e-01, + 4.464412689210000e+00, + 6.036506175990000e+00, + -2.666695833210000e+00, + -4.188602924350000e+00, + 4.591805934910000e+00, + 7.439182400700000e-01, + 8.020217895509999e+00, + -4.552463814620000e-02, + 9.913707375530000e-01, + -5.779137015340000e-01, + 7.106575489040000e+00, + 5.169705152510000e-01, + 1.807527542110000e+00, + -6.778424739840000e+00, + -5.155693054200000e+00, + -7.063225507740000e-01, + 1.783363819120000e+00, + -5.130577087400000e+00, + 6.011888504030000e+00, + 9.140235185620000e-01, + 3.108487844470000e+00, + -4.804672241210000e+00, + -6.114136695860000e+00, + -4.963580608370000e+00, + -3.046659708020000e+00, + -3.345681667330000e+00, + -3.337913513180000e+00, + -1.587369799610000e+00, + -1.338613629340000e+00, + -3.265668869020000e+00, + 2.517662763600000e+00, + 5.632815361020000e+00, + -1.568686485290000e+00, + 1.173905372620000e+00, + 1.227363109590000e+00, + 1.506596207620000e+00, + 1.401655673980000e+00, + 2.176845312120000e+00, + -1.394837617870000e+00, + 6.006173610690000e+00, + 5.033563613890000e+00, + -1.429033517840000e+00, + -3.250149965290000e+00, + 5.255801975730000e-02, + 2.454955101010000e+00, + -3.395825147630000e+00, + 4.813020706180000e+00, + -6.674332916740000e-02, + 6.550415039060000e+00, + -1.259356379510000e+00, + -5.426267981530000e-01, + -5.162038803100000e+00, + -5.704976558690000e+00, + -2.535464525220000e+00, + -4.661072731020000e+00, + 1.491266727450000e+00, + 1.051275372510000e+00, + 2.041911125180000e+00, + 1.063543200490000e+00, + -1.910724163060000e+00, + 5.631988048550000e+00, + -2.071322917940000e+00, + 6.345000267030000e+00, + -3.001573801040000e+00, + -7.088937759400000e-01, + 2.596154928210000e+00, + -9.621848464010000e-01, + -6.812983036040000e+00, + 8.583931922910001e+00, + -3.332908630370000e+00, + -4.810914397240000e-01, + -5.223243236539999e-01, + -6.624659061430000e+00, + 5.621905997400000e-02, + -2.500178813930000e+00, + 2.447650909420000e+00, + 5.089360713960000e+00, + -1.767477631570000e+00, + 1.377485156060000e+00, + 4.657262325290000e+00, + 5.432876110080000e+00, + -2.565632581710000e+00, + -4.086672782900000e+00, + 4.570706367490000e+00, + -4.627317935230000e-02, + 7.082716941830000e+00, + 1.111774325370000e+00, + 3.425383269790000e-01, + -1.596542894840000e-01, + 6.418655395510000e+00, + 1.423255324360000e+00, + 1.683393597600000e+00, + -7.060473918910000e+00, + -5.184792518620000e+00, + -1.952135324480000e+00, + 1.109705328940000e+00, + -5.692570686340000e+00, + 6.019786357880000e+00, + 5.546298027040000e-01, + 2.299170017240000e+00, + -4.067207813260000e+00, + -4.854333877560000e+00, + -5.518289089200000e+00, + -2.383556842800000e+00, + -4.471702575680000e+00, + -3.021669864650000e+00, + -1.774612426760000e+00, + -5.799260139470001e-01, + -1.685045719150000e+00, + 2.055086135860000e+00, + 5.644648551940000e+00, + -1.906376928090000e-01, + -1.552874296900000e-01, + -3.057461380960000e-01, + -2.266762852670000e-01, + -4.890103042130000e-01, + -5.062387585640000e-01, + -2.316809654240000e+00, + -9.535896778110000e-01, + 4.531230628490000e-01, + 2.371927499770000e+00, + 4.908981621270000e-01, + 5.178751349450000e-01, + -4.060607254510000e-01, + -1.394588112830000e+00, + -5.505311489110000e-01, + 2.647695541380000e+00, + 7.601087093350000e-01, + 1.504222452640000e-01, + -1.252165436740000e+00, + 9.699094295500000e-01, + -3.044168233870000e+00, + -4.320832788940000e-01, + 3.579799652100000e+00, + -3.207474648950000e-01, + 1.260337382560000e-01, + 4.097962975500000e-01, + 1.600193083290000e-01, + -2.929358005520000e+00, + -1.380027771000000e+00, + 2.125405311580000e+00, + -4.444258511070000e-01, + -8.010989427570000e-01, + 2.161274909970000e+00, + -6.678590178490000e-01, + -2.770876407620000e+00, + -1.651725053790000e+00, + -7.058092355730000e-01, + -4.341714084150000e-02, + 1.457210928200000e-01, + 2.761781454090000e+00, + 4.577656269070000e+00, + 8.845622539520001e-01, + 6.648232340810000e-01, + -1.767616868020000e+00, + 8.546505570410000e-01, + -1.925223946570000e+00, + 4.487271785740000e+00, + -2.435550689700000e-01, + 1.009616851810000e+00, + -1.665538549420000e+00, + -3.005016326900000e+00, + 4.058870971200000e-01, + -4.332897663120000e-01, + 1.904634952550000e+00, + 6.375615596770000e-01, + -1.007462739940000e+00, + -5.174219608310000e-01, + -1.790998578070000e+00, + -1.078327655790000e+00, + -1.515438437460000e+00, + 2.146540433170000e-01, + -7.845638394360001e-01, + -2.319253236060000e-01, + -8.045675754550000e-01, + -5.644749164580000e+00, + -1.235512495040000e+00, + 6.193497776990000e-01, + -8.542823195460000e-01, + 1.278762519360000e-01, + -4.671875000000000e+00, + 1.465213179590000e+00, + -2.960983276370000e+00, + 5.147870063780000e+00, + 3.075483322140000e+00, + -2.044359683990000e+00, + 2.558004856110000e+00, + 3.717776536940000e-01, + -1.344809383150000e-01, + -5.412424206730000e-01, + -1.819280862810000e+00, + -5.209681391720000e-01, + -2.972082793710000e-01, + -3.560275435450000e-01, + -2.932964265350000e-01, + -8.028689622880000e-01, + -1.189036607740000e+00, + -1.200877428050000e+00, + 4.442498087880000e-01, + 2.288663148880000e+00, + 5.447271466260000e-01, + 8.622596859930000e-01, + -6.432397961620000e-01, + -1.462838888170000e+00, + -6.909557580950000e-01, + 2.994080066680000e+00, + 6.503977775570000e-01, + 6.311430037019999e-02, + -1.099968910220000e+00, + 1.076723456380000e+00, + -3.086509704590000e+00, + -1.056298375130000e+00, + 3.467571258540000e+00, + -6.590034365650000e-01, + -1.489716619250000e-01, + 1.961582303050000e-01, + -4.972223043440000e-01, + -2.520121335980000e+00, + -8.804665207860000e-01, + 2.406793594360000e+00, + -2.002713918690000e+00, + -9.665464162830000e-01, + 2.552451565860000e-02, + -1.037036657330000e+00, + -2.998175382610000e+00, + -1.720021963120000e+00, + -8.846244812010000e-01, + -2.142695337530000e-01, + -9.469344019890000e-01, + 3.454209327700000e+00, + 3.621639251710000e+00, + 1.819359183310000e+00, + 1.062346577640000e+00, + -2.100773811340000e+00, + 2.535455942150000e+00, + -1.953906774520000e+00, + 3.846554040910000e+00, + -5.424071103330000e-02, + 9.198768734930000e-01, + -1.074121832850000e+00, + -1.916965961460000e+00, + -1.295428633690000e+00, + 2.544841468330000e-01, + 2.774861574170000e+00, + 1.034828186040000e+00, + -5.213320255280000e-01, + -1.427900195120000e+00, + -1.642005085950000e+00, + -1.135228514670000e+00, + -2.862916141750000e-02, + 1.674290537830000e+00, + 3.254145979880000e-01, + -3.038606941700000e-01, + -1.048906445500000e-01, + -4.474001884460000e+00, + -1.706047177310000e+00, + 9.650032967329999e-02, + -1.152548909190000e+00, + -2.179631292820000e-01, + -4.233160972600000e+00, + 2.979503154750000e+00, + -1.839324593540000e+00, + 5.834534168240000e+00, + 3.847220420840000e+00, + -2.583388090130000e+00, + 2.564640283580000e+00, + 8.591935038570000e-01, + -5.904120802880000e-01, + -5.819172263150000e-01, + -1.407190799710000e+00, + 3.115834668280000e-02, + 1.814088970420000e-01, + 2.817753329870000e-02, + 2.161787748340000e-01, + -1.398922055960000e-01, + -7.648354172710000e-01, + -5.813295364380000e+00, + 6.921472549440000e-01, + 6.951580524440000e+00, + -3.981339693070000e+00, + 3.508760690690000e+00, + -3.257960319520000e+00, + -2.574775218960000e+00, + -3.731985330580000e+00, + 4.692399978640000e+00, + -1.601948618890000e+00, + 7.318849086760000e+00, + 4.945003509520000e+00, + -5.986621379850000e+00, + -2.408009529110000e+00, + 9.482077598569999e+00, + -7.156077861790000e+00, + -5.109411850570000e-02, + -3.924061954020000e-01, + 1.607130467890000e-01, + 2.995486259460000e-01, + -2.117537021640000e+00, + -6.603482246400000e+00, + 6.901513576510000e+00, + 1.443145751950000e+00, + -2.528088092800000e+00, + 3.363389253620000e+00, + -3.808883666990000e+00, + 4.368299007420000e+00, + -2.504512548450000e+00, + -1.080817699430000e+00, + -5.836256504060000e+00, + 1.117435264590000e+01, + 8.671296119690000e+00, + -8.078414916990001e+00, + 6.895306110380000e+00, + -2.511712551120000e+00, + -4.796971321110000e+00, + 1.833951592450000e+00, + -5.674117207529999e-01, + 3.468972921370000e+00, + 5.148306488990000e-01, + -1.026832103730000e+00, + -3.549683690070000e-01, + -1.811955571170000e+00, + 1.839813828470000e+00, + 4.227436542510000e+00, + -2.255954504010000e+00, + 2.893317937850000e+00, + -3.166535198690000e-01, + 5.671703338620000e+00, + -6.324745178220000e+00, + 2.350319474940000e-01, + -2.809155583380000e-01, + -5.252207756040000e+00, + -7.986315250400000e+00, + 7.440787792210000e+00, + 5.078389123080000e-02, + -1.664152383800000e+00, + -5.148528575900000e+00, + 3.184376955030000e+00, + -3.933865308760000e+00, + 9.890757560730000e+00, + -4.069987773900000e+00, + -5.372512817380000e+00, + 8.589918136600000e+00, + -6.062156677250000e+00, + -8.235648155210001e+00, + -2.253586202860000e-01, + 6.168255329130000e+00, + -3.618819952010000e+00, + -2.770549535750000e+00, + -5.799734592440000e+00, + 5.943778038020000e+00, + 7.805026136340000e-03, + 6.953631341460000e-02, + -7.034933567050000e-02, + 3.638385534290000e-01, + 6.334985792639999e-02, + -6.324546337130000e-01, + -5.823132038120000e+00, + 9.499072432520000e-01, + 6.950956344600000e+00, + -4.135427951810000e+00, + 3.323610544200000e+00, + -3.276380300520000e+00, + -2.765601634980000e+00, + -3.963316202160000e+00, + 4.704233169560000e+00, + -1.566060781480000e+00, + 7.046607017520000e+00, + 5.004537105560000e+00, + -5.923660278320000e+00, + -2.163454532620000e+00, + 9.292477607730000e+00, + -7.126459598540000e+00, + -7.780790925030000e-01, + 5.129652097820000e-02, + -4.781003296380000e-01, + -8.370381593700000e-01, + -4.861396551130000e-01, + -5.095991611480000e+00, + 6.443093299870000e+00, + 1.188644766810000e+00, + -3.194996118550000e+00, + 2.311725378040000e+00, + -2.823929309840000e+00, + 4.690511703490000e+00, + -2.089793205260000e+00, + -9.759742021559999e-01, + -3.883284807210000e+00, + 1.186052131650000e+01, + 7.873650074010000e+00, + -8.274209976200000e+00, + 7.063243865970000e+00, + -4.077397346500000e+00, + -2.949795246120000e+00, + 1.772708773610000e+00, + -1.430265307430000e+00, + 3.825554609300000e+00, + 7.883086800580000e-01, + -2.040245056150000e+00, + -3.797376453880000e-01, + -2.195433616640000e+00, + 6.902995109560000e-01, + 3.040729284290000e+00, + -2.280869483950000e+00, + 3.866247892380000e+00, + 9.300171136860000e-01, + 6.095120429990000e+00, + -6.298595428470000e+00, + 4.146069586280000e-01, + 4.025942981240000e-01, + -4.737806797030000e+00, + -7.842832088470000e+00, + 7.805640220640000e+00, + -8.411687612530000e-02, + -1.596936941150000e+00, + -6.000206470490000e+00, + 2.807146072390000e+00, + -3.306122541430000e+00, + 9.872156143190001e+00, + -4.078822612760000e+00, + -5.976949214940000e+00, + 1.013602638240000e+01, + -5.837430000310000e+00, + -8.382897377010000e+00, + 5.515773892400000e-01, + 6.981937408450000e+00, + -4.574361801150000e+00, + -3.059494495390000e+00, + -5.978547573090000e+00, + 5.023911476140000e+00, + 1.250486493110000e+00, + 1.436374187470000e+00, + 1.337547302250000e+00, + 1.400002956390000e+00, + 9.212967753410000e-01, + -1.645064711570000e+00, + 6.023528099060000e+00, + 5.005900859830000e+00, + -7.606106996540000e-01, + -3.336843967440000e+00, + 5.654404759410000e-01, + 2.529699563980000e+00, + -3.612866401670000e+00, + 5.142845153810000e+00, + 5.364890694620000e-01, + 6.649294376370000e+00, + -1.444612622260000e+00, + -7.186781167980000e-01, + -5.323653221130000e+00, + -5.918826580050000e+00, + -2.459330797200000e+00, + -4.415585041050000e+00, + 1.364155411720000e+00, + 1.522263407710000e+00, + 1.951353311540000e+00, + 8.326197862630000e-01, + -1.808865785600000e+00, + 5.045406341550000e+00, + -1.319356083870000e+00, + 5.605444431300000e+00, + -4.334737777710000e+00, + -4.081261754040000e-01, + 2.741235733030000e+00, + -6.830314397810000e-01, + -7.200534343720000e+00, + 7.581381320950000e+00, + -3.059317588810000e+00, + -2.069521427150000e+00, + -1.061122179030000e+00, + -6.014272212980000e+00, + 8.887225389480000e-01, + -3.109283447270000e+00, + 2.735671043400000e+00, + 5.329822540280000e+00, + -1.644368052480000e+00, + 4.627960324290000e-01, + 5.517245292660000e+00, + 6.171776294710000e+00, + -1.861334562300000e+00, + -2.810447931290000e+00, + 4.023341178890000e+00, + -1.588803082700000e-01, + 7.621405601500000e+00, + 7.217790484430000e-01, + 1.530519485470000e+00, + -1.370292067530000e+00, + 5.435256481170000e+00, + 1.988293409350000e+00, + 1.180620551110000e+00, + -7.450918197630000e+00, + -5.081359863280000e+00, + -7.476578354840000e-01, + 1.891603112220000e+00, + -6.160387516020000e+00, + 5.885146141050000e+00, + -2.599188983440000e-01, + 3.216850280760000e+00, + -4.054684638980000e+00, + -5.801364898680000e+00, + -5.817399024960000e+00, + -4.025731563570000e+00, + -4.656673908230000e+00, + -2.931624650960000e+00, + -1.191329956050000e+00, + -1.174610018730000e+00, + -3.808214426040000e+00, + 1.707880616190000e+00, + 5.129571437840000e+00, + -5.222740173340000e-01, + 1.250364303590000e+00, + 1.252158045770000e+00, + 1.391611099240000e+00, + 1.293549776080000e+00, + 1.808955788610000e+00, + -1.903034567830000e+00, + 5.880080699920000e+00, + 5.033814907070000e+00, + -8.325625061990000e-01, + -3.261271715160000e+00, + 2.745139002800000e-01, + 2.258512020110000e+00, + -3.539763689040000e+00, + 4.670781135560000e+00, + 7.070150226350000e-02, + 6.461637973790000e+00, + -1.275724768640000e+00, + -6.988652348520000e-01, + -5.197543144230000e+00, + -6.152765750890000e+00, + -2.521457195280000e+00, + -4.643889427190000e+00, + 1.927505135540000e+00, + 1.386604666710000e+00, + 1.733115911480000e+00, + 1.048544168470000e+00, + -2.332881450650000e+00, + 5.814799308780000e+00, + -9.318723082540000e-01, + 4.730776309970000e+00, + -3.064393758770000e+00, + -2.065752595660000e-01, + 2.725568532940000e+00, + -7.787074446680000e-01, + -7.803162574770000e+00, + 8.288153648380000e+00, + -3.463144779210000e+00, + -9.050222635270000e-01, + -9.649739861490000e-01, + -6.081627368930000e+00, + 7.291986942290000e-01, + -1.451934933660000e+00, + 1.248839139940000e+00, + 4.985101222990000e+00, + -8.294544219970000e-01, + 6.160746812820000e-01, + 6.327784538270000e+00, + 6.638140201570000e+00, + -2.520137786870000e+00, + -3.520597934720000e+00, + 4.651564121250000e+00, + -7.722942233090000e-01, + 6.599371433260000e+00, + 4.963226020340000e-01, + 1.398954629900000e+00, + -8.854378461840000e-01, + 6.484641551970000e+00, + 1.928538560870000e+00, + 1.514890670780000e+00, + -6.394855976100000e+00, + -6.011577129360000e+00, + -2.424906969070000e+00, + 7.954713702200000e-01, + -5.564454078670000e+00, + 6.205485343930000e+00, + -3.667159378530000e-01, + 2.755353450780000e+00, + -4.909875392910000e+00, + -5.752743244170000e+00, + -5.525419712070000e+00, + -3.242168426510000e+00, + -4.189396858220000e+00, + -3.651080608370000e+00, + -2.098655700680000e+00, + -2.590442657470000e+00, + -2.943500757220000e+00, + 2.506316423420000e+00, + 5.653292655940000e+00, + -1.143028020860000e+00, + -3.699262142180000e-01, + -6.502241492270000e-01, + -3.704833686350000e-01, + -2.461900264020000e-01, + -3.034740388390000e-01, + -1.819687724110000e+00, + -1.078669428830000e+00, + 4.590384960170000e-01, + 2.538739681240000e+00, + 4.689663350580000e-01, + 3.123077154160000e-01, + -7.449655532840000e-01, + -1.453379869460000e+00, + -5.057645440100000e-01, + 3.148173570630000e+00, + 6.884157061580000e-01, + 9.740413725380000e-02, + -1.129897236820000e+00, + 1.197150349620000e+00, + -3.130010128020000e+00, + -1.022651433940000e+00, + 3.212978839870000e+00, + -1.712840795520000e-01, + -3.269707039000000e-02, + 2.038783878090000e-01, + -8.261575102810000e-01, + -2.069332122800000e+00, + -7.235998511310000e-01, + 1.541638493540000e+00, + -4.055248796940000e-01, + -4.872281551360000e-01, + 1.089702129360000e+00, + -5.250789523120000e-01, + -3.506977081300000e+00, + -3.252974987030000e+00, + -4.588337540630000e-01, + 9.846433401110000e-01, + -6.132350564000000e-01, + 4.141581535340000e+00, + 3.831459999080000e+00, + 3.299155473710000e+00, + 1.665915995840000e-01, + -3.495066404340000e+00, + 2.002635240550000e+00, + -1.418326854710000e+00, + 3.896389484410000e+00, + 5.936755537990001e-01, + -2.405131012200000e-01, + -2.251493453980000e+00, + -2.008200645450000e+00, + 6.532964855430000e-02, + 8.657647967340000e-01, + 3.278322696690000e+00, + 2.604802250860000e-01, + -7.873409390450000e-01, + -1.352110624310000e+00, + -1.712278127670000e+00, + -8.371554613110000e-01, + -1.946167647840000e-01, + 9.536020159720000e-01, + -9.727236628530000e-01, + -7.290886044500000e-01, + -4.676524996760000e-01, + -3.947344064710000e+00, + -1.431302309040000e+00, + 2.093313634400000e-01, + -6.733137369160000e-01, + -3.343106210230000e-01, + -4.529349327090000e+00, + 1.960869669910000e+00, + -2.277372598650000e+00, + 4.983786106110000e+00, + 3.782076358800000e+00, + -1.166580080990000e+00, + 2.832295656200000e+00, + -1.031611919400000e+00, + -5.737832784650000e-01, + -2.111085414890000e+00, + 5.278129875660000e-02, + -3.264297842980000e-01, + -4.868804514410000e-01, + -2.450828552250000e-01, + -2.314348965880000e-01, + -8.100559115410000e-01, + -2.029407262800000e+00, + -1.406719326970000e+00, + 3.648438453670000e-01, + 2.510459184650000e+00, + -3.897682577370000e-02, + 5.349424481390000e-01, + -1.721554994580000e-01, + -2.313303709030000e+00, + -4.287049770360000e-01, + 2.976235389710000e+00, + 9.582646489140000e-01, + -6.934848427770000e-02, + -1.176213502880000e+00, + 9.483535885810001e-01, + -3.081352472310000e+00, + -1.067496418950000e+00, + 3.392126798630000e+00, + 1.511968970300000e-01, + -3.243118822570000e-01, + -2.770571112630000e-01, + -1.701611518860000e+00, + -3.238168478010000e+00, + -1.513374805450000e+00, + 1.878418445590000e+00, + 3.166712522510000e-01, + 2.920075654980000e-01, + 9.300836324690001e-01, + -7.175029516220000e-01, + -2.877220869060000e+00, + -2.193388700490000e+00, + -4.582292437550000e-01, + 1.442852735520000e+00, + -5.836700797080000e-01, + 2.931156635280000e+00, + 4.126175403590000e+00, + 4.135776996610000e+00, + 1.347365498540000e+00, + -1.851967096330000e+00, + 1.939824104310000e+00, + -1.656870245930000e+00, + 4.451995849610000e+00, + 1.839117646220000e+00, + 7.189170718190000e-01, + -2.215333461760000e+00, + -1.452874064450000e+00, + 4.498982131480000e-01, + 2.952476590870000e-02, + 2.285389900210000e+00, + 1.274253606800000e+00, + -4.768812954430000e-01, + -1.104079723360000e+00, + -9.707921147350000e-01, + -2.494383752350000e-01, + -7.857584357260000e-01, + 1.345815658570000e+00, + -1.811222195630000e+00, + -9.924828410150000e-01, + -5.148133262990000e-02, + -4.004553318020000e+00, + -9.213930368420000e-01, + -7.024705409999999e-01, + -1.005746841430000e+00, + -2.083965241910000e-01, + -4.609792709350000e+00, + 2.456479549410000e+00, + -2.859689474110000e+00, + 5.083527565000000e+00, + 3.707915782930000e+00, + -2.387584924700000e+00, + 3.110687494280000e+00, + -6.020879745480000e-01, + -8.081301450730000e-01, + -9.899373650550000e-01, + -1.185667037960000e+00, + 1.798203289510000e-01, + 4.182764291760000e-01, + 1.266888827090000e-01, + -1.225728392600000e-01, + -8.559503555300000e-01, + -7.032521367070000e-01, + -6.349602699280000e+00, + 4.729852080350000e-01, + 6.932002544400000e+00, + -3.853071451190000e+00, + 3.263668060300000e+00, + -3.171725511550000e+00, + -2.201642274860000e+00, + -3.668174982070000e+00, + 4.313547134400000e+00, + -1.511359930040000e+00, + 7.348014354710000e+00, + 5.181031227110000e+00, + -6.023530006410000e+00, + -2.078927993770000e+00, + 1.007030487060000e+01, + -7.239298343660000e+00, + 3.916662931440000e-01, + 3.691926598550000e-02, + 4.779720306400000e-02, + -3.719234168530000e-01, + -1.609798908230000e+00, + -5.553637504580000e+00, + 8.323175430299999e+00, + 1.958745598790000e+00, + -3.728457689290000e+00, + 3.680614471440000e+00, + -2.539056539540000e+00, + 4.818392753600000e+00, + -1.777506828310000e+00, + -1.616872191430000e+00, + -3.733019590380000e+00, + 1.104292202000000e+01, + 7.724451065060000e+00, + -8.227448463440000e+00, + 6.366418838500000e+00, + -4.885117053990000e+00, + -5.167395114900000e+00, + 1.770848035810000e+00, + -9.492101669310000e-01, + 3.881987571720000e+00, + 7.554797530170000e-01, + -1.966148614880000e+00, + -7.895719408990000e-01, + -2.761616230010000e+00, + 3.025296330450000e-01, + 4.532372474670000e+00, + -2.216470956800000e+00, + 3.725436925890000e+00, + 4.143318533900000e-01, + 5.039404392240000e+00, + -4.995217800140000e+00, + -1.554720997810000e-01, + -6.992374658580000e-01, + -4.701288700100000e+00, + -6.147473335270000e+00, + 7.673676013950000e+00, + 8.153430819510000e-01, + 1.139215946200000e+00, + -6.091198444370000e+00, + 2.615478754040000e+00, + -2.196388483050000e+00, + 1.003487968440000e+01, + -3.553700685500000e+00, + -5.511723518370000e+00, + 9.904815673830001e+00, + -5.738226890560000e+00, + -8.015791893010000e+00, + 1.441124975680000e-01, + 6.254362583160000e+00, + -2.429567337040000e+00, + -3.243483781810000e+00, + -5.600380897520000e+00, + 6.149358272550000e+00, + 8.146048337219999e-02, + 9.676291048530000e-02, + -1.236958131190000e-01, + -9.920354485510000e-01, + 9.112443774940000e-02, + -7.596467137339999e-01, + -5.752302646640000e+00, + 6.793790459630000e-01, + 6.673644542690000e+00, + -4.078400135040000e+00, + 3.399562835690000e+00, + -3.049640893940000e+00, + -2.364445209500000e+00, + -3.564001798630000e+00, + 4.378097534180000e+00, + -8.722849488260001e-01, + 7.294410705570000e+00, + 5.077178955080000e+00, + -5.940824508670000e+00, + -2.054889917370000e+00, + 9.441478729250001e+00, + -7.130975723270000e+00, + 1.135315895080000e-01, + -7.567225694660000e-01, + -5.870812535290000e-01, + 4.066166281700000e-01, + -8.630067110060000e-01, + -5.466463088990000e+00, + 7.766579151150000e+00, + 2.246635913850000e+00, + -4.557713031770000e+00, + 3.184254407880000e+00, + -2.589628934860000e+00, + 4.500330924990000e+00, + -1.085313797000000e+00, + -1.499131083490000e+00, + -4.467699527740000e+00, + 9.452556610109999e+00, + 7.369425773620000e+00, + -7.379662513730000e+00, + 7.722211360930000e+00, + -4.487404823300000e+00, + -3.229769468310000e+00, + 1.785882592200000e+00, + -1.546804428100000e+00, + 3.818989992140000e+00, + 1.269114613530000e+00, + -1.378775954250000e+00, + -5.755510330200000e-01, + -2.137126922610000e+00, + 1.332744598390000e+00, + 3.594430446620000e+00, + -2.671956300740000e+00, + 4.657694816590000e+00, + 6.178588867190000e-01, + 4.627336502080000e+00, + -5.864990711210000e+00, + -1.368198692800000e-01, + 2.198388800020000e-03, + -4.276064395900000e+00, + -6.820190906520000e+00, + 8.004434585569999e+00, + 2.872267365460000e-01, + -3.554493784900000e-01, + -5.645632267000000e+00, + 3.122517585750000e+00, + -1.842149376870000e+00, + 9.937189102170001e+00, + -4.663245201110000e+00, + -6.309683799740000e+00, + 1.008784008030000e+01, + -6.219625949860000e+00, + -7.228116035460000e+00, + 1.886085271840000e-01, + 6.060099601750000e+00, + -3.181967258450000e+00, + -2.632624626160000e+00, + -5.564398288730000e+00, + 6.825013160710000e+00, + 1.266490578650000e+00, + 1.371928930280000e+00, + 1.607608437540000e+00, + 1.390306711200000e+00, + 1.694095730780000e+00, + -1.640089869500000e+00, + 5.938986778260000e+00, + 4.939419269560000e+00, + -6.501448750500000e-01, + -2.982205152510000e+00, + 3.781304657460000e-01, + 2.266494035720000e+00, + -3.719468355180000e+00, + 5.099985599520000e+00, + 2.782481908800000e-01, + 6.374671936040000e+00, + -1.366793990140000e+00, + -3.422212973240000e-02, + -5.181183815000000e+00, + -5.656651973720000e+00, + -2.454160451890000e+00, + -4.686220645900000e+00, + 5.744747519490000e-01, + 1.373655796050000e+00, + 1.448458194730000e+00, + 1.511821866040000e+00, + -1.517355561260000e+00, + 5.816663742070000e+00, + -1.563226617870000e-02, + 5.355834007260000e+00, + -3.073949813840000e+00, + -7.683770060539999e-01, + 3.292674779890000e+00, + -1.217899322510000e+00, + -6.149849414830000e+00, + 8.454418182370000e+00, + -3.917355537410000e+00, + -1.705523967740000e+00, + -1.461662888530000e+00, + -5.233862876890000e+00, + 2.071931958200000e-01, + -2.612325906750000e+00, + 1.776172518730000e+00, + 4.554696083070000e+00, + -1.203253626820000e+00, + -2.212975025180000e-01, + 4.821293830870000e+00, + 6.255156993870000e+00, + -1.332145571710000e+00, + -3.628189802170000e+00, + 4.714503765110000e+00, + 5.472898483280000e-01, + 5.419463634490000e+00, + 9.264060258870001e-01, + 1.953557014470000e+00, + -2.695298910140000e+00, + 6.634642601010000e+00, + 1.522897720340000e+00, + 1.419708967210000e+00, + -6.665034294130000e+00, + -5.707628726960000e+00, + -2.102892398830000e+00, + 1.337448835370000e+00, + -5.560969829560000e+00, + 5.775083065030000e+00, + 9.680567383770000e-01, + 2.123505353930000e+00, + -3.648133039470000e+00, + -6.269727230070000e+00, + -5.423525810240000e+00, + -2.695956945420000e+00, + -4.579164028170000e+00, + -2.885280132290000e+00, + -1.109253287320000e+00, + -3.145277202130000e-01, + -3.152774572370000e+00, + 1.879152059560000e+00, + 5.038707256320000e+00, + -1.659450650220000e+00, + 1.442964911460000e+00, + 1.533683300020000e+00, + 1.379514813420000e+00, + 1.764169096950000e+00, + 1.304620265960000e+00, + -1.901889801030000e+00, + 5.801060199740000e+00, + 4.991943836210000e+00, + -4.757670462130000e-01, + -3.273952484130000e+00, + 2.455553263430000e-01, + 2.379944801330000e+00, + -3.545076608660000e+00, + 5.102044582370000e+00, + 2.408467084170000e-01, + 5.961505889890000e+00, + -1.227194547650000e+00, + -8.310791254040000e-01, + -5.118548393250000e+00, + -5.814104557040000e+00, + -2.572497844700000e+00, + -4.745089530940000e+00, + 1.190939188000000e+00, + 2.312665700910000e+00, + 9.350085854530000e-01, + 7.148129940030000e-01, + -2.205474376680000e+00, + 6.120203018190000e+00, + -6.197470426560000e-01, + 6.465599536900000e+00, + -2.252414464950000e+00, + 2.113679796460000e-01, + 2.788887977600000e+00, + -1.036765098570000e+00, + -7.622859954830000e+00, + 8.552956581120000e+00, + -4.485711574550000e+00, + -8.702743053440000e-01, + -5.491786599160000e-01, + -5.945745944980000e+00, + -2.090176939960000e-02, + -2.082410335540000e+00, + 1.857944428920000e-01, + 5.366068840030000e+00, + -4.775624275210000e-01, + 1.317275166510000e+00, + 4.673856258390000e+00, + 6.339250564580000e+00, + -1.606089234350000e+00, + -4.337071895600000e+00, + 4.119885444640000e+00, + -4.072995185850000e-01, + 5.913035392760000e+00, + 7.045605778689999e-01, + 1.194480776790000e+00, + 8.536794781680000e-02, + 6.158349514010000e+00, + 8.645746707920000e-01, + 1.311016678810000e+00, + -6.940319538120000e+00, + -4.470673084260000e+00, + -1.228132724760000e+00, + 1.242551445960000e+00, + -5.404316425320000e+00, + 6.317553043370000e+00, + 5.080035328870000e-01, + 1.952432155610000e+00, + -3.955257415770000e+00, + -5.132578849790000e+00, + -4.560058116910000e+00, + -3.339359045030000e+00, + -3.990420579910000e+00, + -2.416706323620000e+00, + -1.401397347450000e+00, + -6.313773393630000e-01, + -3.691565752030000e+00, + 2.683689355850000e+00, + 5.630149364470000e+00, + -1.094710111620000e+00, + -3.333232402800000e-01, + 6.800369024280000e-01, + -3.764000535010000e-01, + -3.251739144330000e-01, + 1.432532221080000e-01, + -1.906969785690000e+00, + -6.475973129270000e-01, + 1.534825190900000e-03, + 2.532210111620000e+00, + 4.729726910590000e-01, + 3.627545535560000e-01, + -8.634912967680000e-01, + -1.402828574180000e+00, + -4.640681445600000e-01, + 3.067816019060000e+00, + 7.191447615620000e-01, + -6.620802916590000e-03, + -1.006875514980000e+00, + 5.484389662740000e-01, + -3.124577760700000e+00, + -1.229213833810000e+00, + 3.554590463640000e+00, + -6.046149134640000e-01, + -3.023419678210000e-01, + -2.418653219940000e-01, + 1.454437673090000e-01, + -1.554715037350000e+00, + -1.076451063160000e+00, + 1.973915338520000e+00, + 3.034036457540000e-01, + -2.831300795080000e-01, + 1.358344793320000e+00, + -1.186046242710000e+00, + -2.700198888780000e+00, + -1.967445015910000e+00, + -5.329835042360000e-02, + 1.540783524510000e+00, + -1.032738208770000e+00, + 4.397466182710000e+00, + 3.355689764020000e+00, + 2.708450794220000e+00, + 1.988551139830000e+00, + -1.155727148060000e+00, + 2.009364604950000e+00, + -1.603643536570000e+00, + 3.984000682830000e+00, + 1.347344279290000e+00, + -1.644579470160000e-01, + -1.056828379630000e+00, + -2.425534963610000e+00, + 4.001949355010000e-02, + -6.936105340720000e-02, + 3.444485425950000e+00, + 8.942936062810000e-01, + -2.797709107400000e-01, + -1.906469106670000e+00, + -5.482665896420000e-01, + -7.640405297280000e-01, + -3.742496371270000e-01, + 7.963729500770000e-01, + 3.522380441430000e-02, + 1.126959443090000e+00, + -3.953748047350000e-01, + -5.070704936980000e+00, + -1.352329134940000e+00, + 1.149773478510000e+00, + -1.065346598630000e+00, + -6.399318575860000e-01, + -3.408087968830000e+00, + 5.525066852570000e-01, + -2.874909639360000e+00, + 5.133760929110000e+00, + 3.961414575580000e+00, + -2.295792102810000e+00, + 1.760915279390000e+00, + -2.005740851160000e-01, + 1.132693439720000e-01, + -1.245210289960000e+00, + -2.223422527310000e-01, + -3.360318839550000e-01, + -5.166161060330000e-01, + -2.658657431600000e-01, + 1.092374473810000e-01, + -2.231855392460000e-01, + -1.752245068550000e+00, + -1.181576967240000e+00, + 5.392551422120000e-01, + 2.418161153790000e+00, + 1.211598068480000e-01, + 4.453015327450000e-01, + -8.524985313420000e-01, + -1.282506585120000e+00, + -6.935065984730000e-01, + 2.928893327710000e+00, + 2.753494679930000e-01, + -1.236198320980000e-01, + -1.150182724000000e+00, + 8.036406636240000e-01, + -3.053191661830000e+00, + -1.020805239680000e+00, + 3.531101226810000e+00, + -8.482679128650000e-01, + -1.014934539790000e+00, + -7.438587546350000e-01, + -1.200668141250000e-01, + -2.522091627120000e+00, + -4.023835062980000e-01, + 2.165493965150000e+00, + -1.596924662590000e-01, + 1.798556745050000e-01, + 1.000048637390000e+00, + -1.622397899630000e+00, + -3.391516685490000e+00, + -1.678277611730000e+00, + -3.273512423040000e-01, + 9.137658476830000e-01, + -7.182767391200000e-01, + 3.528597593310000e+00, + 3.337514638900000e+00, + 2.266166210170000e+00, + 1.186588287350000e+00, + -2.384697914120000e+00, + 1.771381258960000e+00, + -2.194967985150000e+00, + 5.229877948760000e+00, + 3.971697390080000e-01, + 9.270036220550000e-01, + -1.820758104320000e+00, + -1.333806753160000e+00, + 1.253868937490000e+00, + -6.204251199960000e-02, + 2.882090806960000e+00, + 2.623230695720000e+00, + -7.271568775180000e-01, + -1.337242603300000e+00, + -9.236938357350000e-01, + -1.649154722690000e-01, + -3.411639928820000e-01, + 1.068095803260000e+00, + 3.816390037540000e-01, + -7.314767241480000e-01, + -6.297919750210000e-01, + -4.324707984920000e+00, + -1.098150968550000e+00, + 4.308721125130000e-01, + -3.583883643150000e-01, + 3.722890019420000e-01, + -4.350141525270000e+00, + 1.752972841260000e+00, + -2.666656255720000e+00, + 5.292966842650000e+00, + 4.210056304930000e+00, + -2.814891338350000e+00, + 3.836045980450000e+00, + -5.336289405820001e-01, + -3.452431410550000e-02, + -8.062568902970000e-01, + -8.291274905200000e-01, + -8.665803819889999e-03, + 1.143994107840000e-01, + -7.974121719600000e-02, + 1.236575320360000e-01, + -1.278503239150000e-01, + -7.066661715510000e-01, + -5.737357616420000e+00, + 6.161643266680000e-01, + 6.920910358430000e+00, + -3.915301322940000e+00, + 3.655278444290000e+00, + -2.673605442050000e+00, + -1.514931201930000e+00, + -3.734736204150000e+00, + 4.580197811130000e+00, + -1.493494033810000e+00, + 7.507063388820000e+00, + 5.231270790100000e+00, + -5.550951004030000e+00, + -2.204435586930000e+00, + 9.770364761350001e+00, + -7.253653526310000e+00, + 3.415473699570000e-01, + -2.890800535680000e-01, + 5.900365114210000e-01, + -2.241216897960000e-01, + -1.291777253150000e+00, + -4.848882675170000e+00, + 6.880953788760000e+00, + 1.659049868580000e+00, + -4.369488239290000e+00, + 3.125083208080000e+00, + -3.663081645970000e+00, + 4.333981513980000e+00, + -2.117200374600000e+00, + -6.848414540290000e-01, + -4.865002155300000e+00, + 1.094383621220000e+01, + 7.028270244600000e+00, + -7.936301708220000e+00, + 6.810102939610000e+00, + -3.651346921920000e+00, + -3.687914371490000e+00, + 2.145941019060000e+00, + -5.792694091800000e-01, + 3.691830873490000e+00, + -4.633236229420000e-01, + -1.271565318110000e+00, + -7.045423388480000e-01, + -2.257345438000000e+00, + 7.740578055380000e-01, + 4.419283390050000e+00, + -2.324902296070000e+00, + 3.638756036760000e+00, + 3.987053632740000e-01, + 5.738993644710000e+00, + -7.382743358610000e+00, + -2.297814339400000e-01, + -1.164856925610000e-01, + -5.432412624360000e+00, + -8.674862861630000e+00, + 7.587763309480000e+00, + 2.944935560230000e-01, + -6.205835938449999e-01, + -6.213651180270000e+00, + 3.284080028530000e+00, + -1.642408251760000e+00, + 9.515140533449999e+00, + -3.810070514680000e+00, + -5.738978385930000e+00, + 9.084719657899999e+00, + -6.780418872830000e+00, + -7.023529529570000e+00, + 6.611408293250000e-02, + 7.674742698670000e+00, + -3.098703622820000e+00, + -3.467161655430000e+00, + -6.006280422210000e+00, + 5.737314701080000e+00, + 1.413111239670000e-01, + 2.551914155480000e-01, + 1.653948277240000e-01, + 2.616427838800000e-01, + -6.886501908300000e-01, + -6.949061751370000e-01, + -5.752095699310000e+00, + 4.323626756670000e-01, + 6.943630218510000e+00, + -4.832935810090000e+00, + 3.319578409190000e+00, + -3.054704666140000e+00, + -2.425248384480000e+00, + -3.558172941210000e+00, + 4.507009029390000e+00, + -1.457923889160000e+00, + 7.166294574740000e+00, + 4.176573753360000e+00, + -5.893490314480000e+00, + -2.083878278730000e+00, + 9.528794288640000e+00, + -7.075495719910000e+00, + -9.507793784140000e-01, + 7.447250932460001e-02, + 4.679182767870000e-01, + 3.563150390980000e-02, + 2.347542345520000e-01, + -5.318923950200000e+00, + 7.504548072810000e+00, + 3.767532825470000e+00, + -3.898907184600000e+00, + 3.911713600160000e+00, + -4.250088691710000e+00, + 6.145637035370000e+00, + -7.373133897780000e-01, + -1.166787385940000e+00, + -3.421530485150000e+00, + 1.044606113430000e+01, + 8.223795890810001e+00, + -9.026920318600000e+00, + 6.278147220610000e+00, + -4.738005161290000e+00, + -4.155984878540000e+00, + 2.044836997990000e+00, + -1.091136336330000e+00, + 4.705219745640000e+00, + 7.958923578260000e-01, + -1.471602439880000e+00, + -3.361945152280000e-01, + -2.819322586060000e+00, + -8.480552434920000e-01, + 3.484773397450000e+00, + -1.446812272070000e+00, + 3.923596858980000e+00, + 3.816647455100000e-03, + 7.418875217440000e+00, + -6.209312438960000e+00, + 2.934417724610000e-01, + -2.944661080840000e-01, + -5.787803173070000e+00, + -8.350065231320000e+00, + 8.041370391850000e+00, + 1.608998328450000e-01, + -1.908643484120000e+00, + -5.919711589810000e+00, + 2.819919109340000e+00, + -2.132349729540000e+00, + 8.884385108949999e+00, + -3.655070304870000e+00, + -7.144255638120000e+00, + 8.895937919620000e+00, + -6.449911117550000e+00, + -7.860734939580000e+00, + -1.165993809700000e+00, + 5.468190193180000e+00, + -4.173681735990000e+00, + -3.788459062580000e+00, + -5.378489971160000e+00, + 4.990299224850000e+00, + 1.395619869230000e+00, + 1.444345593450000e+00, + 1.467628479000000e+00, + 1.319296360020000e+00, + 1.223960995670000e+00, + -1.642629265790000e+00, + 5.930173397060000e+00, + 5.048223972320000e+00, + -6.961939930920000e-01, + -3.170179605480000e+00, + 3.743546605110000e-01, + 2.469503164290000e+00, + -3.480556011200000e+00, + 4.931462764740000e+00, + 2.469644993540000e-01, + 6.164403438570000e+00, + -1.402318358420000e+00, + -1.027667164800000e+00, + -5.374515533450000e+00, + -5.791483879090000e+00, + -2.623132467270000e+00, + -4.861263751980000e+00, + 1.502565145490000e+00, + 1.086360812190000e+00, + 1.361309051510000e+00, + 1.605905532840000e+00, + -9.424549341200000e-01, + 7.166124343870000e+00, + -1.084299325940000e+00, + 6.085918426510000e+00, + -3.703959465030000e+00, + 1.178541705010000e-01, + 3.234488964080000e+00, + -1.309053182600000e+00, + -5.878301620480000e+00, + 7.352489948270000e+00, + -4.202985286710000e+00, + -1.172842144970000e+00, + -1.417775154110000e+00, + -5.818608760830000e+00, + -1.003684923050000e-01, + -2.002818107600000e+00, + 1.885808229450000e+00, + 4.697689056400000e+00, + -1.383608341220000e+00, + 8.378891944890000e-01, + 5.210833549500000e+00, + 6.455672264100000e+00, + -2.185935258870000e+00, + -3.493979930880000e+00, + 4.734224796300000e+00, + 2.331195771690000e-01, + 6.284783840180000e+00, + 1.285515546800000e+00, + 1.720237731930000e+00, + -1.077528953550000e+00, + 5.912280082700000e+00, + 1.036410689350000e+00, + 1.767800092700000e+00, + -6.320276260380000e+00, + -6.259527206420000e+00, + -1.763351798060000e+00, + 9.506822228430000e-01, + -4.608127593990000e+00, + 5.613600730900000e+00, + -2.118336260320000e-01, + 2.676855564120000e+00, + -4.242797374730000e+00, + -6.625577449800000e+00, + -5.168364048000000e+00, + -2.438775062560000e+00, + -5.525166988370000e+00, + -4.375786781310000e+00, + -2.288607120510000e+00, + -2.332030087710000e-01, + -3.869994640350000e+00, + 2.497077703480000e+00, + 5.779681682590000e+00, + -2.435334771870000e-01, + 1.465844988820000e+00, + 1.387960195540000e+00, + 1.352136850360000e+00, + 1.454751610760000e+00, + 1.387162685390000e+00, + -1.624178171160000e+00, + 5.920959949490000e+00, + 5.775465011600000e+00, + -8.586556911470000e-01, + -3.969306230550000e+00, + 1.864104121920000e-01, + 2.695164442060000e+00, + -3.589780807500000e+00, + 4.977595329280000e+00, + 1.013169661160000e-01, + 6.425260543820000e+00, + -1.444326758380000e+00, + -1.505041480060000e+00, + -5.266124248500000e+00, + -5.892252922060000e+00, + -2.524166822430000e+00, + -4.637524604800000e+00, + 6.585354804990000e-01, + 1.308395981790000e+00, + 1.192646741870000e+00, + 5.078563690190000e-01, + -1.907186150550000e+00, + 6.875353813170000e+00, + -4.234049022200000e-01, + 5.077951431270000e+00, + -3.294073104860000e+00, + 6.601731777190000e-01, + 3.016160249710000e+00, + -8.344074487690000e-01, + -7.274571895600000e+00, + 8.358644485470000e+00, + -3.424973011020000e+00, + -7.823832631110000e-01, + -5.992429256439999e-01, + -5.684301853180000e+00, + -2.970379889010000e-01, + -3.192862510680000e+00, + 2.402552604680000e+00, + 5.425509929660000e+00, + -1.019989252090000e+00, + 6.739140152930000e-01, + 4.816438198090000e+00, + 6.287531375890000e+00, + -1.910508036610000e+00, + -3.703014135360000e+00, + 2.725574254990000e+00, + -1.751605868340000e-01, + 6.377826690670000e+00, + -7.903853431340001e-03, + 1.192358732220000e+00, + -1.335922002790000e+00, + 6.645882606510000e+00, + 1.171991825100000e+00, + 1.352769970890000e+00, + -7.058898448940000e+00, + -5.104244709010000e+00, + -3.077224195000000e-01, + 1.726026058200000e+00, + -4.614351749420000e+00, + 5.727317810060000e+00, + 2.934070536870000e-03, + 2.844311237340000e+00, + -4.017925739290000e+00, + -6.451150894170000e+00, + -4.562612533570000e+00, + -2.561558246610000e+00, + -4.619453907010000e+00, + -3.505776882170000e+00, + -1.784418106080000e+00, + -1.198017001150000e+00, + -2.710624217990000e+00, + 2.299357652660000e+00, + 5.462116241460000e+00, + -7.005835175510000e-01, + -2.602958977220000e-01, + -2.046544253830000e-01, + -3.569438755510000e-01, + -3.459203839300000e-01, + -3.403614759450000e-01, + -1.912376642230000e+00, + -1.148600816730000e+00, + 4.158309102060000e-01, + 2.524272680280000e+00, + 3.633922934530000e-01, + 8.783931136130000e-01, + -4.320585429670000e-01, + -1.103864789010000e+00, + -3.220071494580000e-01, + 2.897417068480000e+00, + 6.035515069960000e-01, + 4.780178666110000e-01, + -1.195025682450000e+00, + 2.020573139190000e+00, + -2.839524269100000e+00, + -6.617323756220000e-01, + 3.612049818040000e+00, + -1.302350312470000e-01, + -9.673136472700000e-01, + -8.865806460380000e-01, + -1.284476399420000e+00, + -2.538181543350000e+00, + -7.994864135980000e-02, + 1.320284962650000e+00, + -3.560067415240000e-01, + -8.943555951120000e-01, + -1.168180406090000e-01, + -2.078719377520000e+00, + -3.109674692150000e+00, + -2.224842548370000e+00, + -1.290501207110000e-01, + -5.238415002820000e-01, + -1.053820371630000e+00, + 3.201985836030000e+00, + 2.381679296490000e+00, + 2.381739139560000e+00, + 1.484759211540000e+00, + -1.273403763770000e+00, + 1.750944375990000e+00, + -1.294338345530000e+00, + 4.234065055850000e+00, + 5.902049541470000e-01, + 9.933665394780000e-01, + -1.115116596220000e+00, + -1.298699140550000e+00, + 2.273478358980000e-01, + 2.995262444020000e-01, + 2.238051891330000e+00, + 1.085256338120000e+00, + -3.916934132580000e-01, + -6.402632594110000e-01, + -1.219045877460000e+00, + -3.524648845200000e-01, + -8.057805150750000e-02, + 2.399837017060000e+00, + -3.049471080300000e-01, + -3.592738807200000e-01, + -5.732786059380000e-01, + -4.193135738370000e+00, + -1.429112195970000e+00, + 7.709942460060000e-01, + -5.790777802470000e-01, + 6.284930109980000e-01, + -4.365073680880000e+00, + 9.164530038830000e-01, + -2.618924856190000e+00, + 4.958413600920000e+00, + 3.822099447250000e+00, + -1.921939015390000e+00, + 1.058304071430000e+00, + 7.336936593059999e-01, + 1.773811504240000e-02, + -1.547561287880000e+00, + -1.141411960120000e-01, + -3.724403679370000e-01, + -6.607161760330000e-01, + -2.732922136780000e-01, + -1.195723190900000e-03, + 8.588934540750000e-01, + -1.918729901310000e+00, + -1.190031290050000e+00, + 9.258673340079999e-02, + 2.160656213760000e+00, + 1.991997957230000e-01, + 6.468379497530000e-01, + -7.771501541140000e-01, + -1.342645883560000e+00, + -5.889976024630000e-01, + 3.193031549450000e+00, + 7.705112695690000e-01, + -7.599530369040000e-02, + -1.506929397580000e+00, + 1.000773191450000e+00, + -3.105981111530000e+00, + -1.107171297070000e+00, + 3.554818391800000e+00, + -1.177966669200000e-01, + -3.426384329800000e-01, + -4.591476023200000e-01, + -2.475676536560000e-01, + -2.696182250980000e+00, + -7.509542703630000e-01, + 1.509857296940000e+00, + -5.684989094730000e-01, + 4.226675033570000e-01, + 1.401316821580000e-01, + 7.631835341450000e-02, + -3.652291297910000e+00, + -1.887031912800000e+00, + -1.325966268780000e-01, + 9.532328695059999e-02, + 4.965418875220000e-01, + 4.157595634460000e+00, + 4.211887359620000e+00, + 3.190974235530000e+00, + 7.918264269830000e-01, + -1.816881299020000e+00, + 5.481562614440000e-01, + -1.824743270870000e+00, + 4.458485603330000e+00, + 2.542976140980000e-01, + 5.231635570530000e-01, + -1.089411020280000e+00, + -3.143928527830000e+00, + 1.307370066640000e+00, + 2.185616083440000e-02, + 2.176865100860000e+00, + 1.047034382820000e+00, + -1.426776349540000e-01, + -1.287702798840000e+00, + -2.013938426970000e+00, + 1.520369648930000e-01, + -2.987142503260000e-01, + 1.370497345920000e+00, + -4.001117944720000e-01, + 8.477394580840000e-01, + -4.996135830880000e-02, + -4.092151641850000e+00, + -1.141394615170000e+00, + -5.298066735269999e-01, + -7.421681880950000e-01, + -3.433466553690000e-01, + -3.161268472670000e+00, + 1.229852318760000e+00, + -1.808873772620000e+00, + 4.868722438810000e+00, + 3.104692935940000e+00, + -2.664384365080000e+00, + 2.856444835660000e+00, + -2.470886409280000e-01, + 2.406719475980000e-01, + -1.214245319370000e+00, + -1.328080892560000e+00, + 9.100357070569999e-03, + -1.519052088260000e-01, + -5.541294813160000e-01, + 2.616719342770000e-02, + -1.278210729360000e-01, + -7.200440764429999e-01, + -5.637299537660000e+00, + 1.151322841640000e+00, + 6.768509864810000e+00, + -3.806797504430000e+00, + 3.465350389480000e+00, + -3.037059545520000e+00, + -2.582185745240000e+00, + -3.832539558410000e+00, + 4.527538299560000e+00, + -1.486240983010000e+00, + 7.763905525210000e+00, + 4.683725833890000e+00, + -5.875579357150000e+00, + -2.081802368160000e+00, + 9.973855972290000e+00, + -7.034447669980000e+00, + -1.336538940670000e-01, + -4.686733186240000e-01, + -2.625250220300000e-01, + 8.287311196329999e-01, + -1.814547777180000e+00, + -5.817669868470000e+00, + 8.311550140380000e+00, + 1.746743559840000e+00, + -4.597698688510000e+00, + 2.837954282760000e+00, + -3.216235160830000e+00, + 4.909188270570000e+00, + -1.478148221970000e+00, + -1.107051730160000e+00, + -4.742097377780000e+00, + 1.214706802370000e+01, + 7.571528911590000e+00, + -9.038306236270000e+00, + 6.767824172970000e+00, + -2.910161495210000e+00, + -3.468654632570000e+00, + 1.791965126990000e+00, + -8.148916363720000e-01, + 4.391914367680000e+00, + 6.060189008710000e-01, + -2.508575201030000e+00, + -1.838025093080000e+00, + -3.380381107330000e+00, + 1.166532039640000e+00, + 3.002819061280000e+00, + -3.248992204670000e+00, + 4.087875843050000e+00, + 1.060991808770000e-01, + 5.211330413820000e+00, + -6.384576797490000e+00, + 6.456459760670000e-01, + 2.164929509160000e-01, + -5.745317935940000e+00, + -8.362814903260000e+00, + 8.943819046020000e+00, + -7.863380014900000e-04, + -9.105178117750000e-01, + -4.948464393620000e+00, + 4.826459407810000e+00, + -3.393101930620000e+00, + 1.063673877720000e+01, + -3.372375249860000e+00, + -5.717203617100000e+00, + 9.164174079900000e+00, + -5.982058525090000e+00, + -7.566158771510000e+00, + -3.584741428490000e-02, + 6.604127407070000e+00, + -3.474907875060000e+00, + -2.487110376360000e+00, + -5.661862373350000e+00, + 3.930438041690000e+00, + -1.420363038780000e-01, + 4.699520021680000e-02, + -4.015952050690000e-01, + 1.006183847790000e-01, + -2.957871258260000e-01, + -4.748886227610000e-01, + -5.832606792450000e+00, + 1.040280461310000e+00, + 6.804646492000000e+00, + -4.030497074130000e+00, + 3.219921588900000e+00, + -3.528347253800000e+00, + -2.231604576110000e+00, + -3.726028442380000e+00, + 4.557989597320000e+00, + -1.547471165660000e+00, + 7.365623950960000e+00, + 5.044232368470000e+00, + -5.924072742460000e+00, + -2.221949338910000e+00, + 9.600411415100000e+00, + -7.021609783170000e+00, + 2.342538684610000e-01, + 5.130141973500000e-01, + 2.964612841610000e-01, + -3.157715871930000e-02, + -1.471902966500000e+00, + -4.759802341460000e+00, + 6.644407272340000e+00, + 2.112239599230000e+00, + -3.778461456300000e+00, + 3.053179740910000e+00, + -3.542029142380000e+00, + 5.006047248840000e+00, + -1.802925765510000e-01, + -1.619354605670000e+00, + -3.986464500430000e+00, + 1.143215274810000e+01, + 7.001075267790000e+00, + -8.776146888730000e+00, + 6.746127128600000e+00, + -4.560022830960000e+00, + -4.554172039030000e+00, + 2.050405263900000e+00, + -5.575711131100000e-01, + 4.144526958470000e+00, + 1.263441741470000e-01, + -2.664106845860000e+00, + -7.043548226360000e-01, + -2.712221384050000e+00, + 6.034595966340000e-01, + 4.621552467350000e+00, + -1.462819099430000e+00, + 3.480566501620000e+00, + 5.312477052210000e-02, + 5.312584877010000e+00, + -6.597933769230000e+00, + 7.630127668380000e-02, + 1.012318134310000e-01, + -5.177035331730000e+00, + -6.350477218630000e+00, + 7.658487796780000e+00, + -1.003323271870000e-01, + -8.450987935070000e-01, + -5.224649906160000e+00, + 3.128685474400000e+00, + -2.261749267580000e+00, + 1.100200843810000e+01, + -4.397317409520000e+00, + -5.224241733550000e+00, + 9.295940399170000e+00, + -6.852918624880000e+00, + -7.904109954830000e+00, + -1.605804562570000e+00, + 6.338679313660000e+00, + -4.677234172820000e+00, + -3.310804843900000e+00, + -4.468192100520000e+00, + 6.205296993260000e+00, + 1.483532190320000e+00, + 1.953606486320000e+00, + 1.513230919840000e+00, + 1.428531289100000e+00, + 1.314060688020000e+00, + -1.774457454680000e+00, + 5.908071041110000e+00, + 4.980340957640000e+00, + -9.201209545140000e-01, + -3.056084871290000e+00, + 2.142975181340000e-01, + 3.175456762310000e+00, + -3.257950305940000e+00, + 5.098104953770000e+00, + 1.594121009110000e-01, + 6.478009700780000e+00, + -1.557866096500000e+00, + -5.209726691250000e-01, + -5.203613758090000e+00, + -5.712265014650000e+00, + -2.296185731890000e+00, + -4.664224624630000e+00, + 1.657813191410000e+00, + 2.108782529830000e+00, + 9.642718434330000e-01, + 1.325502514840000e+00, + -1.436941266060000e+00, + 6.219975948330000e+00, + -9.367313385010000e-01, + 5.576339721680000e+00, + -2.954638242720000e+00, + 7.964056730270000e-01, + 2.554578065870000e+00, + 4.125419259070000e-01, + -6.674144744870000e+00, + 7.407834053040000e+00, + -3.230116844180000e+00, + -6.074622869490000e-01, + -3.155455738310000e-02, + -6.181967258450000e+00, + 3.916819393630000e-01, + -2.696574211120000e+00, + 2.056998491290000e+00, + 5.903985500340000e+00, + -6.236065030100000e-01, + 5.263887643810000e-01, + 5.719478130340000e+00, + 6.341178894040000e+00, + -2.530529260640000e+00, + -4.387508392330000e+00, + 3.747050523760000e+00, + 1.024056196210000e+00, + 8.068403244020001e+00, + 6.247088909150000e-01, + 4.740604162220000e-01, + -1.178882956500000e+00, + 6.401951789860000e+00, + 2.163367748260000e+00, + 1.354359984400000e+00, + -7.318396091460000e+00, + -5.148108005520000e+00, + -8.353440761570000e-01, + 1.321545124050000e+00, + -5.203132152560000e+00, + 6.564078807830000e+00, + -6.749598383900000e-01, + 1.011339187620000e+00, + -2.881976366040000e+00, + -6.483454227450000e+00, + -5.266139030460000e+00, + -2.629343271260000e+00, + -3.822866201400000e+00, + -2.223558664320000e+00, + -1.451075077060000e+00, + -1.756495356560000e+00, + -4.257471561430000e+00, + 2.379205942150000e+00, + 5.387411594390000e+00, + -1.655090451240000e+00, + 1.347632527350000e+00, + 1.408819556240000e+00, + 1.392185568810000e+00, + 1.569331645970000e+00, + 9.621120691300000e-01, + -1.270743608470000e+00, + 5.680068969730000e+00, + 4.920513153080000e+00, + -4.707533717160000e-01, + -3.246933460240000e+00, + 3.526192009450000e-01, + 2.151562213900000e+00, + -3.210705757140000e+00, + 5.057363033290000e+00, + 3.447911143300000e-01, + 6.437125682830000e+00, + -9.731586575510000e-01, + -8.850302100180000e-01, + -5.538367271420000e+00, + -5.992025375370000e+00, + -2.502878904340000e+00, + -4.626556396480000e+00, + 1.694558739660000e+00, + 1.210892796520000e+00, + 1.931489467620000e+00, + 1.661786079410000e+00, + -1.806096553800000e+00, + 6.088090419770000e+00, + -1.145800724630000e-01, + 5.690192222600000e+00, + -4.168985843660000e+00, + -5.360240340230000e-01, + 3.016828298570000e+00, + -4.157424867150000e-01, + -5.883399009700000e+00, + 8.330092430110000e+00, + -3.525148391720000e+00, + -2.377650737760000e+00, + -1.686593890190000e+00, + -5.286220073700000e+00, + -1.129038095470000e+00, + -2.742897510530000e+00, + 2.068371295930000e+00, + 3.987044095990000e+00, + -1.642846107480000e+00, + 1.174799442290000e+00, + 5.456258296970000e+00, + 4.716623306270000e+00, + -1.931093454360000e+00, + -3.405861139300000e+00, + 4.648410797120000e+00, + -1.130958497520000e-01, + 7.456294536590000e+00, + 1.355127692220000e+00, + 1.300700187680000e+00, + -2.414441406730000e-01, + 6.148519039150000e+00, + 1.427544832230000e+00, + 1.565801739690000e+00, + -7.083516120910000e+00, + -6.038061141970000e+00, + -1.970944166180000e+00, + 1.286949276920000e+00, + -4.875212669370000e+00, + 5.921018123630000e+00, + 2.982335388660000e-01, + 1.678874969480000e+00, + -3.599480628970000e+00, + -6.689351558690000e+00, + -6.037094593050000e+00, + -2.703758716580000e+00, + -4.925009727480000e+00, + -2.729698657990000e+00, + -3.083976507190000e+00, + -1.119381189350000e-01, + -3.441847562790000e+00, + 2.471817255020000e+00, + 5.300405979160000e+00, + -6.189451217650001e-01, + -3.974792361260000e-01, + -1.569487452510000e-01, + -5.165900588040000e-01, + -3.320463597770000e-01, + -1.937680691480000e-01, + -1.655182719230000e+00, + -1.211414456370000e+00, + 5.075753927230000e-01, + 2.736545801160000e+00, + 4.558762609960000e-01, + 5.298368930820000e-01, + -4.550252854820000e-01, + -1.189532399180000e+00, + -7.408699393270000e-01, + 2.828270196910000e+00, + 4.205400049690000e-01, + -1.291552037000000e-01, + -1.961730837820000e+00, + 9.805965423580000e-01, + -3.369276046750000e+00, + -9.339416027070000e-01, + 3.469435930250000e+00, + -6.527494192120000e-01, + -5.692518353460000e-01, + -8.545376658440000e-01, + -1.152111649510000e+00, + -1.700440287590000e+00, + -5.142455697060000e-01, + 1.703552246090000e+00, + -1.313218832020000e+00, + 4.348175525670000e-01, + 1.133879423140000e+00, + -6.951710581780000e-01, + -2.991041660310000e+00, + -2.126603126530000e+00, + -1.404733657840000e+00, + 1.312118172650000e+00, + -6.180616021160000e-01, + 4.093431472780000e+00, + 2.848640203480000e+00, + 3.170417547230000e+00, + 4.902181327340000e-01, + -1.365508198740000e+00, + 1.825608015060000e+00, + -2.177946805950000e+00, + 3.515264749530000e+00, + 6.107937693600000e-01, + 4.115633368490000e-01, + -1.436129927640000e+00, + -1.724801421170000e+00, + 2.184528857470000e-01, + -1.030218042430000e-02, + 2.604752302170000e+00, + 2.017077684400000e+00, + 6.859114766120000e-02, + -7.110756635670000e-01, + -9.196231365200001e-01, + -2.316148765390000e-02, + -1.539939194920000e-01, + 8.898297548290000e-01, + -3.204752802850000e-01, + -6.355276703830000e-01, + -3.532131910320000e-01, + -4.689129829410000e+00, + -8.208760619160000e-01, + 3.481046855450000e-01, + -1.493978142740000e+00, + -9.337507486340000e-01, + -3.566843271260000e+00, + 2.541634142400000e-01, + -2.835882902150000e+00, + 4.928632736210000e+00, + 4.051890373230000e+00, + -1.063000082970000e+00, + 2.290675163270000e+00, + -4.412394762040000e-01, + -6.413267254830000e-01, + -6.819053888320000e-01, + -3.305571079250000e-01, + -3.466616272930000e-01, + -3.452678620820000e-01, + -2.544233202930000e-01, + -8.336343765260000e-01, + -6.778242588040000e-01, + -1.556816697120000e+00, + -1.131311059000000e+00, + 5.367050766940000e-01, + 2.394134283070000e+00, + 6.702537089589999e-02, + 5.890640020370000e-01, + -3.955151140690000e-01, + -1.460616707800000e+00, + -5.937479734420000e-01, + 2.695045709610000e+00, + 4.594295322900000e-01, + 1.491541564460000e-01, + -1.298121452330000e+00, + 1.136342287060000e+00, + -3.068800687790000e+00, + -9.373617172240000e-01, + 3.282987356190000e+00, + -2.521758973600000e-01, + -4.811222255230000e-01, + -8.685278296470000e-01, + -4.770137369630000e-01, + -2.358103990550000e+00, + -6.767980456350000e-01, + 1.830584287640000e+00, + -7.560461163520000e-01, + -5.842821598050000e-01, + 1.629269599910000e+00, + -1.096086621280000e+00, + -3.135685205460000e+00, + -2.383045434950000e+00, + 1.423666626210000e-01, + 2.477041631940000e-01, + -7.408686727289999e-02, + 3.921327114110000e+00, + 4.243092060090000e+00, + 1.573492288590000e+00, + 2.296613454820000e+00, + -1.383039116860000e+00, + 1.429872632030000e+00, + -1.834011673930000e+00, + 3.803666114810000e+00, + -2.497261762620000e-01, + -4.291385710240000e-01, + -1.528177857400000e+00, + -2.890391826630000e+00, + 2.336618155240000e-01, + -5.585058927540000e-01, + 3.014310836790000e+00, + 1.388554334640000e+00, + 4.894127845760000e-01, + -1.890076637270000e+00, + -9.853790998460000e-01, + -1.522085815670000e-01, + -5.240250229840000e-01, + 1.304171919820000e+00, + -1.572393655780000e+00, + 4.096342623230000e-02, + -4.780616760250000e-01, + -5.075385570530000e+00, + -1.301454186440000e+00, + 4.117896407840000e-02, + -1.028884172440000e+00, + -5.411943793300000e-01, + -3.721956729890000e+00, + 2.094404697420000e+00, + -2.733029127120000e+00, + 3.875350236890000e+00, + 2.832506656650000e+00, + -2.586292028430000e+00, + 1.997914195060000e+00, + 3.890909850600000e-01, + -8.439756631849999e-01, + -1.175094723700000e+00, + -7.052391171460000e-01, + 7.098755985499999e-02, + -2.232689112420000e-01, + 2.607299387450000e-01, + -5.960827320810000e-02, + 8.886885829270001e-03, + -5.902395844460000e-01, + -5.644709587100000e+00, + 9.930507540700000e-01, + 7.226630687710000e+00, + -3.817908763890000e+00, + 3.485127210620000e+00, + -3.378636121750000e+00, + -2.204719066620000e+00, + -3.713443517680000e+00, + 4.644242763520000e+00, + -1.251957297330000e+00, + 7.249802112580000e+00, + 4.986158370970000e+00, + -5.998036861420000e+00, + -2.083356142040000e+00, + 9.579883575440000e+00, + -7.178212165830000e+00, + 2.759979963300000e-01, + 8.482347726820000e-01, + 4.754094779490000e-02, + 2.551828026770000e-01, + -1.410494804380000e+00, + -4.608051776890000e+00, + 6.486250400540000e+00, + 2.247758865360000e+00, + -4.473024845120000e+00, + 3.468575477600000e+00, + -3.326488018040000e+00, + 5.131476879120000e+00, + -2.822083473210000e+00, + -1.564893484120000e+00, + -3.944407939910000e+00, + 1.134505653380000e+01, + 8.558863639829999e+00, + -8.584743499760000e+00, + 5.828505992890000e+00, + -2.653970241550000e+00, + -4.386970043180000e+00, + 2.529817819600000e+00, + -1.096958145500000e-01, + 3.801321029660000e+00, + 1.302672743800000e+00, + -1.237828373910000e+00, + -1.480545043950000e+00, + -2.844611883160000e+00, + 5.988709926610000e-01, + 4.052230834960000e+00, + -2.349741458890000e+00, + 2.890267848970000e+00, + 2.804719842970000e-03, + 4.253152847290000e+00, + -5.511963844300000e+00, + -5.707039833070000e-01, + 3.119556978340000e-02, + -5.058424949650000e+00, + -7.403520584110000e+00, + 7.457571983340000e+00, + -2.788517475130000e-01, + -4.717498719690000e-01, + -5.176638126370000e+00, + 3.414217710500000e+00, + -1.989888906480000e+00, + 1.053817176820000e+01, + -2.884521484380000e+00, + -5.657392024990000e+00, + 8.831912040710000e+00, + -5.542045116420000e+00, + -9.002845764160000e+00, + -2.653650343420000e-01, + 6.873390197750000e+00, + -3.532331943510000e+00, + -3.170050621030000e+00, + -5.867472171780000e+00, + 5.435104846950000e+00, + -2.324996888640000e-02, + 1.466556638480000e-01, + 2.935800515120000e-02, + -1.200423240660000e-01, + 3.229649066930000e-01, + -9.243459254500000e-02, + -5.615843296050000e+00, + 7.718217968940000e-01, + 7.460294723510000e+00, + -4.022807598110000e+00, + 3.390720844270000e+00, + -3.114017724990000e+00, + -2.512300491330000e+00, + -3.162858486180000e+00, + 4.484108448030000e+00, + -1.442586779590000e+00, + 7.307001590730000e+00, + 5.061992645260000e+00, + -5.842137336730000e+00, + -2.276079177860000e+00, + 9.763160705570000e+00, + -7.184971809390000e+00, + 6.547553539280000e-01, + 3.238371014600000e-01, + 2.185858637090000e-01, + -5.186232328410000e-01, + -4.048518240450000e-01, + -5.824663162230000e+00, + 8.100070953370000e+00, + 1.030634865160000e-01, + -3.763659954070000e+00, + 3.469485282900000e+00, + -2.856545448300000e+00, + 5.355411529540000e+00, + -2.043565034870000e+00, + -5.239810347560000e-01, + -4.591308116910000e+00, + 1.092805576320000e+01, + 7.864438533780000e+00, + -8.888049125669999e+00, + 6.695302486420000e+00, + -4.876168727870000e+00, + -4.469273567200000e+00, + 9.929051995280000e-01, + -7.338944077490001e-01, + 3.420329809190000e+00, + 4.998629987240000e-01, + -2.434785604480000e+00, + -5.581627488140000e-01, + -2.326418876650000e+00, + 1.037393093110000e+00, + 4.634662628170000e+00, + -8.039314150810000e-01, + 3.246326208110000e+00, + -1.720307171340000e-01, + 6.056671619420000e+00, + -5.366369247440000e+00, + -9.584110975270000e-01, + 7.902688384060000e-01, + -5.357414722440000e+00, + -7.902884006500000e+00, + 9.357308387760000e+00, + -9.927157163620000e-01, + -2.882554829120000e-01, + -6.831645488740000e+00, + 3.547560930250000e+00, + -2.342805862430000e+00, + 1.011694240570000e+01, + -3.552574634550000e+00, + -6.429330825810000e+00, + 1.038949489590000e+01, + -5.292872428890000e+00, + -8.407710075380001e+00, + -1.312165021900000e+00, + 7.588348388670000e+00, + -2.575088739400000e+00, + -3.251730680470000e+00, + -5.763768672940000e+00, + 6.469186782840000e+00, + 1.351700425150000e+00, + 1.206286907200000e+00, + 1.423317193980000e+00, + 1.326007485390000e+00, + 1.508842587470000e+00, + -1.814658880230000e+00, + 5.923001766200000e+00, + 4.838449954990000e+00, + -2.126311808820000e-01, + -2.985305309300000e+00, + 1.971524506810000e-01, + 3.072938203810000e+00, + -3.261072158810000e+00, + 5.062790393830000e+00, + 1.632519960400000e-01, + 6.060677051540000e+00, + -1.506896257400000e+00, + -8.348239064220000e-01, + -5.434305191040000e+00, + -5.729728221890000e+00, + -2.574687242510000e+00, + -4.509425640110000e+00, + 6.937997937200000e-01, + 2.343454599380000e+00, + 7.947480082510000e-01, + 1.394221663480000e+00, + -1.511308312420000e+00, + 5.254100322720000e+00, + -8.374887704850000e-01, + 5.845789909360000e+00, + -3.141604900360000e+00, + 1.338904500010000e+00, + 3.969822406770000e+00, + -9.291556477550000e-01, + -5.648466110230000e+00, + 9.292817115780000e+00, + -4.929243564610000e+00, + -9.244706034660000e-01, + -9.517508149150000e-01, + -6.264000892640000e+00, + -3.174506723880000e-01, + -1.816003084180000e+00, + 9.627426862720000e-01, + 5.444222450260000e+00, + -1.388889193530000e+00, + 1.276474952700000e+00, + 4.392490386960000e+00, + 5.543431758880000e+00, + -1.922509074210000e+00, + -4.397798061370000e+00, + 3.929977416990000e+00, + -2.881016731260000e-01, + 7.803798198700000e+00, + 9.572287201880000e-01, + 7.380155920980001e-01, + -2.021620750430000e+00, + 7.275135040280000e+00, + 1.504111886020000e+00, + 1.328062534330000e+00, + -6.097871303560000e+00, + -4.979735851290000e+00, + -1.835817456250000e+00, + 2.424788713460000e+00, + -5.036855697630000e+00, + 5.064736366270000e+00, + 3.988222479820000e-01, + 1.985309004780000e+00, + -3.666752815250000e+00, + -5.901691436770000e+00, + -5.227481365200000e+00, + -2.597085714340000e+00, + -4.302869796750000e+00, + -3.783266544340000e+00, + -1.706247806550000e+00, + -8.987305760380000e-01, + -3.488117933270000e+00, + 2.372413635250000e+00, + 4.807428359990000e+00, + -1.088744699950000e-01, + 1.508279204370000e+00, + 1.249715447430000e+00, + 1.384776949880000e+00, + 1.327878594400000e+00, + 1.310696125030000e+00, + -1.809759020810000e+00, + 5.941660881040000e+00, + 4.871582984920000e+00, + -9.694109559060000e-01, + -3.346459627150000e+00, + 3.010393381120000e-01, + 2.440217494960000e+00, + -4.142233848570000e+00, + 5.231759548190000e+00, + 3.282265961170000e-01, + 6.295497417450000e+00, + -1.425676941870000e+00, + -5.304815173150000e-01, + -5.436578273770000e+00, + -5.790770053860000e+00, + -2.107787132260000e+00, + -4.585951805110000e+00, + 1.727334380150000e+00, + 1.348772287370000e+00, + 1.028405785560000e+00, + 1.156234502790000e+00, + -1.612112164500000e+00, + 6.743502616880000e+00, + -1.099168360230000e-01, + 4.739727973940000e+00, + -3.971444845200000e+00, + 1.286629289390000e-01, + 3.949882984160000e+00, + -1.574286222460000e-01, + -8.256221771240000e+00, + 6.600810050960000e+00, + -3.452342748640000e+00, + -1.498766660690000e+00, + -1.312893509860000e+00, + -6.238807678220000e+00, + 2.387049198150000e-01, + -8.605442047120000e-01, + 2.638753652570000e+00, + 4.732178688050000e+00, + -1.889066815380000e+00, + 7.587348818780000e-01, + 5.071877479550000e+00, + 5.124517917630000e+00, + -1.746916651730000e+00, + -3.269762039180000e+00, + 4.169552803040000e+00, + -9.110742211340001e-01, + 7.382148265840000e+00, + 1.448084115980000e-01, + 1.459588646890000e+00, + -1.862900733950000e+00, + 5.753648757930000e+00, + 2.843817710880000e+00, + 9.985290169720000e-01, + -7.145522594450000e+00, + -4.575734138490000e+00, + -2.391037464140000e+00, + 1.439697384830000e+00, + -6.530138015750000e+00, + 4.834430694580000e+00, + 4.745458066460000e-01, + 1.856299042700000e+00, + -4.099127769470000e+00, + -6.231419563290000e+00, + -5.709133148190000e+00, + -3.035086393360000e+00, + -5.658778667450000e+00, + -2.647323369980000e+00, + -1.608112931250000e+00, + -1.550268381830000e-01, + -3.490878820420000e+00, + 1.759096741680000e+00, + 5.251166343690000e+00, + -1.005526185040000e+00, + -3.689370453360000e-01, + -4.955473244190000e-01, + -7.267883419990000e-01, + 4.330494627360000e-02, + -2.750770747660000e-01, + -1.810798048970000e+00, + -1.129907011990000e+00, + 3.235458135600000e-01, + 2.220129966740000e+00, + 2.861914932730000e-01, + 1.187605857850000e+00, + -5.409315824510000e-01, + -1.415543317790000e+00, + -5.845860242840000e-01, + 2.584919691090000e+00, + 9.778587222100000e-01, + -1.512456834320000e-01, + -1.170922517780000e+00, + 5.112918019290000e-01, + -3.171529293060000e+00, + -9.647055864330000e-01, + 3.404949188230000e+00, + 2.951901555060000e-01, + 1.004834771160000e+00, + -9.813872575760000e-01, + -4.660668373110000e-01, + -2.006601095200000e+00, + -2.315724939110000e-01, + 1.505726575850000e+00, + 1.645344495770000e-01, + -7.173769921060000e-02, + 2.583778202530000e-01, + -2.200082302090000e+00, + -3.518495559690000e+00, + -2.202001571660000e+00, + -5.271891877060000e-02, + 4.324333369730000e-01, + -1.082749009130000e+00, + 4.450385570530000e+00, + 3.692182302470000e+00, + 2.842896223070000e+00, + 7.084521055220000e-01, + -2.260419845580000e+00, + 2.826135873790000e+00, + -2.197611093520000e+00, + 3.912860870360000e+00, + -6.207960844040000e-02, + 8.889679312710000e-01, + -1.003484606740000e+00, + -1.666727542880000e+00, + 6.380466222760000e-01, + -3.756421506400000e-01, + 3.464170932770000e+00, + 2.989305257800000e-01, + -2.780433595180000e-01, + -2.129637002940000e+00, + -1.486345648770000e+00, + -2.682787775990000e-01, + -2.379920482640000e-01, + 1.544069290160000e+00, + -4.602863192560000e-01, + -8.141754865650001e-01, + -4.028545320030000e-01, + -4.554814338680000e+00, + -2.935165405270000e+00, + 5.240440368650000e-01, + -6.986253857610000e-01, + 8.533098101620000e-01, + -3.918813705440000e+00, + 9.146856665610000e-01, + -3.378030300140000e+00, + 4.979017257690000e+00, + 3.179994106290000e+00, + -2.449881792070000e+00, + 2.393069982530000e+00, + -5.925114154820000e-01, + -7.160823941230000e-01, + -1.610768914220000e+00, + -1.049731731410000e+00, + -5.843892693520000e-02, + -2.326728105550000e-01, + -3.383559882640000e-01, + -3.759610056880000e-01, + -2.921663224700000e-01, + -2.305927515030000e+00, + -1.223396778110000e+00, + 4.360700249670000e-01, + 2.637931108470000e+00, + 5.094216465950000e-01, + 1.429679393770000e+00, + -7.966457605360000e-01, + -1.839489221570000e+00, + -4.672253727910000e-01, + 2.710679292680000e+00, + 7.873744368550000e-01, + 1.632296293970000e-01, + -1.438736200330000e+00, + 9.490432739260000e-01, + -3.184631824490000e+00, + -7.822192907330000e-01, + 3.138029813770000e+00, + -6.424561142920000e-01, + 2.268122136590000e-01, + -4.749495983120000e-01, + 4.435788989070000e-01, + -1.901918292050000e+00, + -1.940566420560000e+00, + 3.635802567010000e-01, + -3.374134898190000e-01, + -8.337368369100000e-01, + 3.973213136200000e-01, + -1.484284162520000e+00, + -3.260951519010000e+00, + -1.941604256630000e+00, + 3.014068119230000e-02, + 1.292794942860000e+00, + -9.913965463640000e-01, + 3.721616983410000e+00, + 4.645065307620000e+00, + 1.695771694180000e+00, + 1.721286535260000e+00, + -3.187794685360000e+00, + 9.626165032390001e-01, + -4.173148572440000e-01, + 5.404642581940000e+00, + 5.073639154430000e-01, + 5.569047331810000e-01, + -2.108222723010000e+00, + -1.070842266080000e+00, + 9.283068180080000e-01, + 5.206535458560000e-01, + 2.574851036070000e+00, + 4.213013052940000e-01, + -8.242768645290000e-01, + -4.827653169630000e-01, + -1.958429932590000e+00, + -1.680589318280000e-01, + -1.001535773280000e+00, + 6.213335990910001e-01, + -2.441508173940000e-01, + -5.643469691280000e-01, + 3.430905193090000e-02, + -4.112789630890000e+00, + -3.145960569380000e+00, + 1.863439381120000e-01, + -1.123071193700000e+00, + 1.441313028340000e-01, + -4.100672721860000e+00, + 3.031893014910000e+00, + -2.202045202260000e+00, + 5.104014873500000e+00, + 3.960863351820000e+00, + -2.466944456100000e+00, + 2.196975469590000e+00, + 5.031390190120000e-01, + -1.618420779710000e-01, + -7.141909003260000e-01, + -1.067981362340000e+00, + 4.892291501160000e-02, + 1.178582459690000e-01, + -3.543366491790000e-02, + 1.126249879600000e-01, + 1.048445608470000e-02, + -4.733299613000000e-01, + -5.577682018280000e+00, + 1.314375281330000e+00, + 7.314673900600000e+00, + -3.932715654370000e+00, + 3.708981037140000e+00, + -3.108268976210000e+00, + -2.217027425770000e+00, + -3.650187492370000e+00, + 4.707949161530000e+00, + -1.478017687800000e+00, + 7.134352684020000e+00, + 5.153969764710000e+00, + -5.892131805420000e+00, + -1.861864805220000e+00, + 9.896774291990001e+00, + -7.265025615690000e+00, + 2.817587181930000e-02, + 2.559401690960000e-01, + -4.437407851220000e-01, + 6.260518729690000e-02, + -1.182041764260000e+00, + -5.214741230010000e+00, + 6.688757419590000e+00, + 1.548190355300000e+00, + -3.900264263150000e+00, + 2.864801406860000e+00, + -3.780209064480000e+00, + 4.594692230220000e+00, + -2.764202356340000e+00, + -1.217992424960000e+00, + -5.787666797640000e+00, + 1.126315116880000e+01, + 8.858743667600001e+00, + -8.013807296750000e+00, + 6.354383945470000e+00, + -4.706258773800000e+00, + -4.233846187590000e+00, + 1.843115925790000e+00, + -3.406218290330000e-01, + 3.501247167590000e+00, + 3.781663179400000e-01, + -1.792153477670000e+00, + -3.838692903520000e-01, + -2.646853923800000e+00, + -5.913091301920000e-01, + 4.706992626190000e+00, + -1.810308218000000e+00, + 4.692787170410000e+00, + -1.319442503150000e-02, + 5.496721744540000e+00, + -6.286737918850000e+00, + -2.891465127470000e-01, + 9.693876653910000e-02, + -5.457151412960000e+00, + -6.719746589660000e+00, + 6.779585361480000e+00, + 8.770873397590000e-02, + -3.142234385010000e-01, + -6.202110767360000e+00, + 2.951497554780000e+00, + -2.431987285610000e+00, + 9.450597763059999e+00, + -3.866814136510000e+00, + -6.192003726960000e+00, + 9.012944221500000e+00, + -5.606034278870000e+00, + -8.293770790100000e+00, + -9.759210944180000e-01, + 6.891527175900000e+00, + -2.703762054440000e+00, + -3.122525215150000e+00, + -5.198230266570000e+00, + 5.615338325500000e+00, + 4.263981580730000e-01, + 2.481178790330000e-01, + -1.503552794460000e-01, + 1.135188415650000e-01, + 9.864927083250000e-02, + 2.984333224590000e-02, + -5.968091964720000e+00, + 7.488805651660000e-01, + 7.433226108550000e+00, + -4.163931846620000e+00, + 3.412388324740000e+00, + -3.233798980710000e+00, + -2.786490917210000e+00, + -3.583655357360000e+00, + 4.296264171600000e+00, + -1.457058906560000e+00, + 7.381500720980000e+00, + 4.941304683690000e+00, + -6.349308490750000e+00, + -2.143409729000000e+00, + 9.777274131770000e+00, + -7.182628631590000e+00, + 4.766396284100000e-01, + 4.579884111880000e-01, + 7.209257781510001e-02, + -2.584163546560000e-01, + -9.788674116129999e-01, + -6.101810455320000e+00, + 8.332286834720000e+00, + 1.166621208190000e+00, + -4.494914054870000e+00, + 2.954878807070000e+00, + -3.057478666310000e+00, + 5.213568687440000e+00, + -1.647475242610000e+00, + -1.916096210480000e+00, + -4.867516994480000e+00, + 1.208759975430000e+01, + 8.653251647950000e+00, + -8.569133758540000e+00, + 5.229034900670000e+00, + -4.038012504580000e+00, + -3.280937910080000e+00, + 1.964307785030000e+00, + -1.196609377860000e+00, + 4.671672821040000e+00, + 2.719676792620000e-01, + -3.545585870740000e+00, + -4.424270391460000e-01, + -2.361300468440000e+00, + -4.705999791620000e-01, + 3.826775789260000e+00, + 2.952514588830000e-01, + 3.771984338760000e+00, + 1.212937757370000e-01, + 6.659494876860000e+00, + -6.573648929600000e+00, + -4.515181779860000e-01, + 5.504763126370000e-01, + -5.252367019650000e+00, + -6.792121410370000e+00, + 6.537937164310000e+00, + -2.050109393890000e-02, + -9.952622652050001e-01, + -6.223345279690000e+00, + 2.160118103030000e+00, + -3.938414335250000e+00, + 9.289502143860000e+00, + -3.943737506870000e+00, + -5.885587692260000e+00, + 1.024092006680000e+01, + -7.731933593750000e+00, + -8.046975135800000e+00, + -7.491583824160000e-01, + 7.694513320920000e+00, + -2.908453464510000e+00, + -2.731907844540000e+00, + -5.068395614620000e+00, + 3.952206611630000e+00, + 1.290339469910000e+00, + 1.529926419260000e+00, + 1.505423307420000e+00, + 1.840019702910000e+00, + 1.348928928380000e+00, + -1.685542821880000e+00, + 5.843334198000000e+00, + 5.175128936770000e+00, + -3.511038720610000e-01, + -3.337198019030000e+00, + 1.759200096130000e-01, + 2.490238904950000e+00, + -3.546025276180000e+00, + 4.702636718750000e+00, + 2.104342430830000e-01, + 6.479646682740000e+00, + -1.390208482740000e+00, + -2.299489080910000e-01, + -5.236077308650000e+00, + -5.980621814730000e+00, + -2.122372150420000e+00, + -4.234212875370000e+00, + 1.457969665530000e+00, + 1.132881045340000e+00, + 1.022676348690000e+00, + 1.468565344810000e+00, + -1.219069361690000e+00, + 6.461545944210000e+00, + -6.465736627580000e-01, + 5.249084949490000e+00, + -2.658972978590000e+00, + 8.051803708080001e-02, + 4.115028381350000e+00, + 3.419922888280000e-01, + -7.575654029850000e+00, + 6.730173587800000e+00, + -3.734292030330000e+00, + -1.014287948610000e+00, + -1.366794109340000e+00, + -4.493515491490000e+00, + 3.174034953120000e-01, + -2.036350965500000e+00, + 1.756210088730000e+00, + 5.499308109280000e+00, + -1.120240330700000e+00, + 4.098163545130000e-01, + 5.744023323060000e+00, + 4.301917076110000e+00, + -2.089557886120000e+00, + -4.283855438230000e+00, + 3.369715690610000e+00, + -3.669469058510000e-01, + 6.229080200200000e+00, + 1.480634927750000e+00, + 1.586555957790000e+00, + -2.722887754440000e+00, + 5.756384849550000e+00, + 1.439064979550000e+00, + 1.401397943500000e+00, + -6.437623977660000e+00, + -5.686684608460000e+00, + -6.567879915240000e-01, + 1.169277071950000e+00, + -3.832020521160000e+00, + 4.767928600310000e+00, + 1.660224318500000e+00, + 2.602492570880000e+00, + -2.377679347990000e+00, + -5.856616497040000e+00, + -4.923957347870000e+00, + -3.282184600830000e+00, + -4.756301879880000e+00, + -3.093650817870000e+00, + -1.724794626240000e+00, + -1.284500479700000e+00, + -4.294346332550000e+00, + 2.596596956250000e+00, + 4.853873252870000e+00, + -1.696020662780000e-01, + 1.538475155830000e+00, + 2.102948427200000e+00, + 1.669559597970000e+00, + 1.407588481900000e+00, + 1.502990722660000e+00, + -9.582714438440000e-01, + 5.896544456480000e+00, + 4.884143829350000e+00, + -8.153001666070000e-01, + -3.268638849260000e+00, + 2.710168063640000e-01, + 2.446027755740000e+00, + -3.609831094740000e+00, + 5.412164688110000e+00, + 3.927741050720000e-01, + 6.379949569700000e+00, + -1.434958577160000e+00, + -3.392731547360000e-01, + -5.491980075840000e+00, + -5.974243640900000e+00, + -2.569130659100000e+00, + -4.533481121060000e+00, + 1.145876169200000e+00, + 1.550640583040000e+00, + 1.415813684460000e+00, + 1.374264836310000e+00, + -2.704205751420000e+00, + 5.525204181670000e+00, + -1.147926449780000e+00, + 4.148564815520000e+00, + -2.988783836360000e+00, + -3.120030760770000e-01, + 3.186867713930000e+00, + -6.893606185910000e-01, + -7.061033248900000e+00, + 6.547942638400000e+00, + -4.475391387940000e+00, + -6.603360176090000e-01, + -7.707586884500000e-01, + -6.306164741520000e+00, + 4.766056537630000e-01, + -3.167072772980000e+00, + 1.414182066920000e+00, + 4.464502811430000e+00, + -1.132201790810000e+00, + 1.688320517540000e+00, + 5.366884231570000e+00, + 6.125889301300000e+00, + -2.045974016190000e+00, + -3.571718931200000e+00, + 3.656639099120000e+00, + -4.660938382150000e-01, + 5.191796302800000e+00, + 1.217815041540000e+00, + 1.415738701820000e+00, + -1.006825923920000e+00, + 6.306606769560000e+00, + 9.877493977550000e-01, + 8.402307033540000e-01, + -7.182553768160000e+00, + -5.696789264680000e+00, + -1.051887154580000e+00, + 1.303113818170000e+00, + -5.165210723880000e+00, + 5.557375431060000e+00, + -2.706928253170000e-01, + 2.634992122650000e+00, + -2.749057054520000e+00, + -6.730438709260000e+00, + -5.175351142880000e+00, + -2.614354610440000e+00, + -4.956656455990000e+00, + -2.744237184520000e+00, + -1.674892067910000e+00, + -1.782635301350000e-01, + -4.029370784760000e+00, + 3.194447755810000e+00, + 5.912497520450000e+00, + -2.046497344970000e+00, + -3.017495572570000e-01, + -6.367872357370000e-01, + -2.047924697400000e-01, + 9.715244174000000e-02, + -3.193100094800000e-01, + -2.045199632640000e+00, + -1.180765509610000e+00, + 3.467372953890000e-01, + 2.392748117450000e+00, + 4.442632794380000e-01, + 4.995187520980000e-01, + -8.270254135130000e-01, + -1.495344638820000e+00, + -3.895466625690000e-01, + 2.736400842670000e+00, + 6.658783555030000e-01, + 2.366584241390000e-01, + -1.220469832420000e+00, + 1.035858631130000e+00, + -3.018833875660000e+00, + -1.458273410800000e+00, + 3.382298946380000e+00, + -4.232898950580000e-01, + -7.615787386889999e-01, + -1.921057850120000e-01, + 1.734118759630000e-01, + -1.764100670810000e+00, + -1.106307268140000e+00, + 2.501022338870000e+00, + -2.855391025540000e+00, + 7.098830342290000e-01, + 1.796484589580000e+00, + 5.486097931860000e-02, + -2.779907941820000e+00, + -1.958379387860000e+00, + -1.503160834310000e+00, + -4.585385620590000e-01, + -9.013148546220000e-01, + 3.974090337750000e+00, + 2.595090866090000e+00, + 2.647956848140000e+00, + 1.683008670810000e+00, + -1.587544322010000e+00, + 1.534246921540000e+00, + -2.191704511640000e+00, + 3.772546768190000e+00, + 3.665182292460000e-01, + 1.063544392590000e+00, + -1.978042125700000e+00, + -1.909427165990000e+00, + -3.225217461590000e-01, + 8.337586373090000e-02, + 2.932188272480000e+00, + 3.055495023730000e-01, + 1.215856194500000e+00, + -1.918888837100000e-01, + -1.748325347900000e+00, + -3.484008908270000e-01, + -3.279010057450000e-01, + 1.291322410110000e-01, + 9.568718671799999e-01, + 1.101035594940000e+00, + -9.575508832930000e-01, + -4.233918190000000e+00, + -2.324284553530000e+00, + 8.182263374330000e-01, + -5.168098807330000e-01, + -7.465721964840000e-01, + -3.656719684600000e+00, + 2.390673160550000e+00, + -3.420152902600000e+00, + 4.331970214840000e+00, + 3.154608964920000e+00, + -2.094159841540000e+00, + 3.383759260180000e+00, + -6.858516931530000e-01, + -8.655059151350000e-03, + 8.601202815770000e-02, + -1.328764796260000e+00, + 1.888393461700000e-01, + -1.221911787990000e+00, + -1.779317259790000e-01, + -5.928065776820000e-01, + -3.087089359760000e-01, + -1.755839586260000e+00, + -1.307259440420000e+00, + 4.682994782920000e-01, + 2.499764919280000e+00, + 4.014476537700000e-01, + 6.123994588850000e-01, + -7.603052258490000e-01, + -2.018357992170000e+00, + -5.170621275900000e-01, + 2.872768163680000e+00, + 9.336422681810000e-01, + -1.281216181810000e-02, + -1.212302923200000e+00, + 1.621221184730000e+00, + -3.061185121540000e+00, + -9.028281569480000e-01, + 3.408049821850000e+00, + -1.435192227360000e-01, + -1.824726760390000e-01, + -8.704125136139999e-02, + 1.329449713230000e-01, + -1.740642666820000e+00, + -1.594492554660000e+00, + 6.177827119830001e-01, + -1.042145639660000e-01, + 2.199823707340000e-01, + 7.238660454750000e-01, + 4.504327178000000e-01, + -3.300665855410000e+00, + -2.709922552110000e+00, + -6.441102623940000e-01, + 4.146937280890000e-02, + -1.431925177570000e+00, + 3.207490921020000e+00, + 3.445711612700000e+00, + 2.621890068050000e+00, + 1.150004506110000e+00, + -9.200800657270000e-01, + 1.437081098560000e+00, + -1.175833821300000e+00, + 3.575752496720000e+00, + 9.038652777670000e-01, + 6.018573641780000e-01, + -1.531901001930000e+00, + -2.406502962110000e+00, + 1.297344565390000e+00, + -6.710080504420000e-01, + 3.236106395720000e+00, + 2.187564611430000e+00, + -2.282126694920000e-01, + -8.768140673640000e-01, + -5.478702187540000e-01, + -4.920470416550000e-01, + -5.451842546460000e-01, + 2.142240703110000e-01, + -1.414071917530000e-01, + 1.562598586080000e+00, + -2.803356051450000e-01, + -4.679937839510000e+00, + -5.768002867699999e-01, + 7.247926592830000e-01, + -7.380615472790000e-01, + 1.245999895040000e-02, + -3.937422275540000e+00, + 8.759731054310000e-01, + -1.574924945830000e+00, + 4.121288776400000e+00, + 2.551192045210000e+00, + -1.913151621820000e+00, + 2.348397254940000e+00, + 1.056460142140000e+00, + -1.002812623980000e+00, + -1.358304142950000e+00, + -9.359415173530000e-01, + 1.593383699660000e-01, + 9.294118732209999e-02, + 3.923380002380000e-02, + 6.960372626780000e-02, + 6.029016375539999e-01, + -4.926250875000000e-01, + -5.651369094850000e+00, + 8.911583423610000e-01, + 6.523501396180000e+00, + -4.142225265500000e+00, + 3.262583971020000e+00, + -3.128087759020000e+00, + -2.516255855560000e+00, + -3.695442199710000e+00, + 4.518561840060000e+00, + -1.200475931170000e+00, + 7.258182048800000e+00, + 4.945789337160000e+00, + -5.817606925960000e+00, + -2.147002696990000e+00, + 9.684084892270000e+00, + -7.438998699190000e+00, + -4.928331375120000e-01, + -1.479101777080000e-01, + 5.161439180370000e-01, + -4.462923705580000e-01, + -1.599350810050000e+00, + -5.092106819150000e+00, + 7.004526138310000e+00, + 2.532907724380000e+00, + -3.519826889040000e+00, + 3.464019298550000e+00, + -2.238813877110000e+00, + 5.434360504150000e+00, + -1.284355521200000e+00, + -1.455892771480000e-01, + -5.618556499480000e+00, + 1.048708534240000e+01, + 7.291832923890000e+00, + -8.867598533630000e+00, + 6.837053298950000e+00, + -4.118577957150000e+00, + -3.584830760960000e+00, + 2.133704662320000e+00, + -1.382603645320000e-01, + 4.717333793640000e+00, + 1.341426849370000e+00, + -2.560212850570000e+00, + -6.454057693480000e-01, + -2.883440732960000e+00, + 2.708029001950000e-02, + 3.038514852520000e+00, + -2.460186958310000e+00, + 3.488596916200000e+00, + -8.116959035400000e-02, + 6.168576240540000e+00, + -6.320645332340000e+00, + -9.569663405420000e-01, + -1.090873405340000e-01, + -4.986450195310000e+00, + -7.649276733400000e+00, + 8.320803642270000e+00, + 2.792567312720000e-01, + -1.341002345090000e+00, + -5.016252994540000e+00, + 2.586456298830000e+00, + -2.309463262560000e+00, + 1.040354824070000e+01, + -5.177078247070000e+00, + -5.521454811100000e+00, + 8.567137718200000e+00, + -6.083410739900000e+00, + -8.186059951780001e+00, + 9.131251834329999e-03, + 6.689902305600000e+00, + -3.748550415040000e+00, + -3.162565946580000e+00, + -6.122638702390000e+00, + 5.493135929110000e+00, + 1.800969243050000e-01, + 4.819478839640000e-02, + -4.915879666810000e-01, + -2.991568148140000e-01, + -8.611287176610000e-02, + -6.188176870350000e-01, + -5.425056457520000e+00, + 8.026350140570000e-01, + 6.869862079620000e+00, + -4.006844043730000e+00, + 3.526958703990000e+00, + -3.282038927080000e+00, + -2.194394350050000e+00, + -3.751350641250000e+00, + 4.531231403350000e+00, + -1.543238162990000e+00, + 7.187418460850000e+00, + 5.090578079220000e+00, + -5.972151756290000e+00, + -2.098153591160000e+00, + 9.774415969850001e+00, + -7.301269054410000e+00, + 1.495520621540000e-01, + 4.316350817680000e-01, + 1.820880770680000e-01, + -6.915649026630000e-02, + -1.022116541860000e+00, + -5.620890617370000e+00, + 5.984010219570000e+00, + 1.504923343660000e+00, + -2.949868202210000e+00, + 3.776011466980000e+00, + -3.003378868100000e+00, + 4.373703479770000e+00, + -1.056141495700000e+00, + -1.255276560780000e+00, + -3.901172637940000e+00, + 1.192916011810000e+01, + 8.146300315860000e+00, + -9.394603729250001e+00, + 7.825426101680000e+00, + -3.239973068240000e+00, + -3.209941387180000e+00, + 1.190176129340000e+00, + -8.773053288460000e-01, + 2.409690618520000e+00, + -1.635932736100000e-02, + -4.746555984020000e-01, + 6.008294820790000e-01, + -1.913115620610000e+00, + 1.329287767410000e+00, + 3.008594274520000e+00, + -1.691592931750000e+00, + 4.166493415830000e+00, + 1.677422598000000e-02, + 4.919739723210000e+00, + -5.764008998870000e+00, + -5.359448194500001e-01, + -1.159131899480000e-01, + -5.340870380400000e+00, + -7.004858970640000e+00, + 7.291881084440000e+00, + -2.134784590450000e-03, + 1.158620510250000e-02, + -5.084968090060000e+00, + 3.432720661160000e+00, + -2.322257041930000e+00, + 9.177702903749999e+00, + -3.837586164470000e+00, + -5.414706230160000e+00, + 9.486804008480000e+00, + -6.407795429230000e+00, + -8.651456832890000e+00, + -7.173690199850000e-01, + 7.203978061680000e+00, + -3.073298215870000e+00, + -3.392247200010000e+00, + -5.452303886410000e+00, + 5.114862442020000e+00, + 1.356400012970000e+00, + 1.235897898670000e+00, + 1.380930542950000e+00, + 1.600122690200000e+00, + 1.330713033680000e+00, + -2.130050420760000e+00, + 5.852111816410000e+00, + 4.848769664760000e+00, + -1.675653219220000e+00, + -2.810057878490000e+00, + 3.923883140090000e-01, + 2.329284667970000e+00, + -3.504632949830000e+00, + 5.064367294310000e+00, + 1.728029102090000e-01, + 6.373686313630000e+00, + -1.476386666300000e+00, + -7.898066043850001e-01, + -5.229794025420000e+00, + -5.807306766510000e+00, + -2.517033338550000e+00, + -4.661375045780000e+00, + 1.424608945850000e+00, + 1.254662990570000e+00, + 2.113561868670000e+00, + 1.500153064730000e+00, + -1.808710455890000e+00, + 5.089645385740000e+00, + -7.656658291820000e-01, + 4.828790664670000e+00, + -3.232671260830000e+00, + 2.995301485060000e-01, + 2.667263984680000e+00, + -1.019953966140000e+00, + -7.356141567230000e+00, + 8.128343582150000e+00, + -4.465409755710000e+00, + -2.145045042040000e+00, + -1.439108967780000e+00, + -6.375009536740000e+00, + -2.171702235940000e-01, + -2.062649488450000e+00, + 2.221966028210000e+00, + 5.705913543700000e+00, + -1.578287959100000e+00, + 2.139359951020000e+00, + 6.897717952730000e+00, + 5.408474445340000e+00, + -2.399429321290000e+00, + -3.766019582750000e+00, + 4.823157787320000e+00, + 4.917157068850000e-02, + 6.966571807860000e+00, + 8.994956016540000e-01, + 8.265883922580000e-01, + -1.210103869440000e+00, + 6.957643985750000e+00, + 7.108905911450000e-02, + 1.399286746980000e+00, + -8.037331581120000e+00, + -6.174140453340000e+00, + -1.448821783070000e+00, + 3.811725974080000e-01, + -6.156197071080000e+00, + 4.878422260280000e+00, + 5.083638429639999e-01, + 2.805281639100000e+00, + -5.851008892060000e+00, + -7.640528678890000e+00, + -5.071378707890000e+00, + -2.606503009800000e+00, + -4.056521892550000e+00, + -3.547654628750000e+00, + -1.401372432710000e+00, + -4.422839283940000e-01, + -3.626215457920000e+00, + 4.134314060210000e+00, + 4.970966339110000e+00, + -8.820258826020000e-02, + 1.319084525110000e+00, + 1.367078900340000e+00, + 1.238399624820000e+00, + 1.224693179130000e+00, + 1.506135463710000e+00, + -1.669750928880000e+00, + 5.993453025820000e+00, + 5.106469154360000e+00, + -6.433470845220000e-01, + -3.416719436650000e+00, + 4.221762120720000e-01, + 2.472530841830000e+00, + -3.055393934250000e+00, + 5.114516258240000e+00, + 2.972082793710000e-01, + 6.361515998840000e+00, + -1.081381678580000e+00, + -1.023469567300000e+00, + -5.277157783510000e+00, + -5.781653881070000e+00, + -2.607492446900000e+00, + -4.792264938350000e+00, + 6.502562761310000e-01, + 1.985837578770000e+00, + 1.555214643480000e+00, + 1.679254770280000e+00, + -3.080142021180000e+00, + 5.306488513950000e+00, + -1.443587780000000e+00, + 5.320967197420000e+00, + -4.284407138820000e+00, + 2.952558994290000e-01, + 3.286066055300000e+00, + -1.064178586010000e+00, + -7.276425838470000e+00, + 8.740803718570000e+00, + -3.811872959140000e+00, + -4.125087857250000e-01, + -1.002740621570000e+00, + -6.501657485960000e+00, + -9.125933051110000e-02, + -2.141582965850000e+00, + 2.599989891050000e+00, + 5.237876415250000e+00, + -1.135717988010000e+00, + 7.366647720340000e-01, + 5.316867351530000e+00, + 6.890929222110000e+00, + -3.262004137040000e+00, + -4.461286067960000e+00, + 3.801570892330000e+00, + 5.332115888600000e-01, + 5.929883956910000e+00, + 1.438133835790000e+00, + 8.597948551180000e-01, + -2.463914394380000e+00, + 6.165155410770000e+00, + 1.453497767450000e+00, + 1.720539331440000e+00, + -5.939047336580000e+00, + -4.471188068390000e+00, + -2.255421876910000e+00, + 1.393239974980000e+00, + -5.391102790830000e+00, + 6.842346668240000e+00, + -3.007866740230000e-01, + 3.043650150300000e+00, + -3.860225915910000e+00, + -5.324971199040000e+00, + -3.576552391050000e+00, + -2.673139333720000e+00, + -3.489769697190000e+00, + -3.424796104430000e+00, + -2.106552839280000e+00, + -8.545221090320000e-01, + -4.251259326930000e+00, + 2.766338109970000e+00, + 4.604957103730000e+00, + -1.121258020400000e+00, + -2.320387512450000e-01, + -4.523103833200000e-01, + -3.678641617300000e-01, + -4.464823603630000e-01, + -4.106124639510000e-01, + -1.629102587700000e+00, + -1.056102514270000e+00, + 3.527226150040000e-01, + 1.383407473560000e+00, + 1.798430681230000e-01, + 2.738751471040000e-01, + -5.778906941410000e-01, + -1.343878030780000e+00, + -6.436165571210000e-01, + 2.905063629150000e+00, + 7.142854332920000e-01, + 2.043518871070000e-01, + -1.115765929220000e+00, + 9.674315452580000e-01, + -3.072490453720000e+00, + -8.958756923680000e-01, + 3.558490753170000e+00, + -1.156922522930000e-02, + -6.600040197370000e-02, + -4.025668501850000e-01, + -5.292649269100000e-01, + -2.063570022580000e+00, + -2.723918855190000e-01, + 2.618894100190000e+00, + -6.204031705860000e-01, + -4.318796396260000e-01, + 8.415098190310000e-01, + -1.527039170270000e+00, + -3.257475852970000e+00, + -1.986010670660000e+00, + -1.710745692250000e+00, + 3.748498260970000e-01, + -2.282666444780000e+00, + 4.283301830290000e+00, + 3.472342967990000e+00, + 2.212880134580000e+00, + 1.348217010500000e+00, + -7.829443812370001e-01, + 2.455479145050000e+00, + -1.140931725500000e+00, + 4.863016605380000e+00, + -4.712815582750000e-01, + 4.401134848590000e-01, + -9.609776735310001e-01, + -2.396886587140000e+00, + 8.452025055890000e-01, + 1.265166103840000e-01, + 2.224956035610000e+00, + 9.029204845430000e-01, + 3.168509304520000e-01, + 1.232813373210000e-01, + -1.732343912120000e+00, + -1.413577556610000e+00, + 3.933833241460000e-01, + 1.889989852910000e+00, + -4.214576184750000e-01, + -6.382501125340000e-02, + 7.001345604660000e-02, + -4.942896366120000e+00, + -2.446007013320000e+00, + 1.086130499840000e+00, + -4.572676122190000e-01, + 2.880328595640000e-01, + -3.245426654820000e+00, + 1.354369997980000e+00, + -2.131996393200000e+00, + 4.349393844600000e+00, + 4.148585796360000e+00, + -2.235902071000000e+00, + 3.368079900740000e+00, + 4.485971629620000e-01, + -4.128556847570000e-01, + -5.715009570120000e-01, + 2.348400279880000e-02, + -4.553426802160000e-01, + -2.717496454720000e-01, + -5.215562582020000e-01, + -6.204593181610000e-01, + -5.689591765399999e-01, + -1.876634120940000e+00, + -9.816037416459999e-01, + 4.020565152170000e-01, + 2.378253698350000e+00, + 3.344164788720000e-01, + 3.538422882560000e-01, + -7.640910744670000e-01, + -1.281368970870000e+00, + -4.950418174270000e-01, + 2.688926696780000e+00, + 5.994510650630001e-01, + -2.330491319300000e-02, + -8.473722934720000e-01, + 8.899743556980000e-01, + -3.277927637100000e+00, + -9.689513444900000e-01, + 3.580883502960000e+00, + -9.909328818320000e-01, + -4.813694357870000e-01, + -2.437096685170000e-01, + 3.834251165390000e-01, + -3.167135477070000e+00, + -9.898858666420000e-01, + 1.190903544430000e+00, + -4.708699285980000e-01, + 5.134238004680000e-01, + 8.944666385650000e-01, + -5.124465823170000e-01, + -2.940839052200000e+00, + -1.126342773440000e+00, + -3.938942849640000e-01, + 1.827293038370000e-01, + -3.018879175190000e+00, + 3.793980598450000e+00, + 4.258850097660000e+00, + 9.285531640050000e-01, + 2.673857688900000e+00, + -1.140583753590000e+00, + 1.682657361030000e+00, + -1.855059504510000e+00, + 4.961004734040000e+00, + -2.017332017420000e-01, + 1.595845937730000e+00, + -1.925361990930000e+00, + -2.827409744260000e+00, + -5.916625261310000e-01, + 1.321648240090000e+00, + 2.031374692920000e+00, + 8.928828835490000e-01, + -1.312063217160000e+00, + -1.061420440670000e+00, + -1.831743955610000e+00, + -1.767974138260000e+00, + 3.825731202960000e-02, + 7.168439626690000e-01, + 3.017109930520000e-01, + -3.157086670400000e-01, + 1.154301911590000e-01, + -4.711617946620000e+00, + -1.195154666900000e+00, + 6.897917389870000e-01, + -5.229876041410000e-01, + -6.835444569590000e-01, + -2.664407968520000e+00, + 1.943291902540000e+00, + -3.348938226700000e+00, + 4.629446506500000e+00, + 3.222058057790000e+00, + -1.198024630550000e+00, + 2.561791896820000e+00, + -2.234750837090000e-01, + 6.088604927060000e-01, + -1.658818244930000e+00, + -1.351045131680000e+00, + 1.419259756800000e-01, + 8.738928288220001e-02, + 7.149539887910000e-02, + -2.503636106850000e-02, + 1.405813731250000e-02, + -6.770380735400000e-01, + -5.464222431180000e+00, + -3.183532878760000e-02, + 6.923049449920000e+00, + -4.613170146940000e+00, + 3.159466743470000e+00, + -3.188404560090000e+00, + -2.530701637270000e+00, + -3.814177989960000e+00, + 4.607680797580000e+00, + -1.700981497760000e+00, + 7.209781169890000e+00, + 5.142684936520000e+00, + -5.835926532750000e+00, + -1.981622934340000e+00, + 9.592206954960000e+00, + -7.331607341770000e+00, + -6.915572881700000e-01, + 5.849890708920000e-01, + 5.622314661740000e-02, + -2.521711289880000e-01, + -1.034133076670000e+00, + -5.576272010800000e+00, + 8.715421676640000e+00, + 1.532527565960000e+00, + -4.460832595830000e+00, + 3.379794597630000e+00, + -2.245433807370000e+00, + 5.051742076870000e+00, + -1.450526952740000e+00, + -5.213769078250000e-01, + -4.797461986540000e+00, + 1.172488880160000e+01, + 8.558016777040001e+00, + -8.817509651180000e+00, + 5.471732616420000e+00, + -3.640179157260000e+00, + -3.180729866030000e+00, + 1.538911104200000e+00, + -7.517178356650001e-02, + 4.739658355710000e+00, + 3.338848054410000e-02, + -1.362593054770000e+00, + -1.697544336320000e+00, + -2.367841005330000e+00, + 1.027077913280000e+00, + 3.741504430770000e+00, + -9.557459950450000e-01, + 4.543902397160000e+00, + 5.484741330150000e-01, + 5.851172924040000e+00, + -6.762530803680000e+00, + -4.398904740810000e-01, + -7.362466305490000e-03, + -4.499504089360000e+00, + -6.613842487340000e+00, + 7.828929901120000e+00, + 1.630524247880000e-01, + 2.151240408420000e-01, + -5.085214138030000e+00, + 2.510221958160000e+00, + -2.463397979740000e+00, + 1.082960414890000e+01, + -3.683652639390000e+00, + -6.796677112580000e+00, + 1.042464256290000e+01, + -5.334074497220000e+00, + -7.950014591220000e+00, + -1.346445202830000e+00, + 5.998207092290000e+00, + -3.057284832000000e+00, + -3.255790233610000e+00, + -5.165574550630000e+00, + 6.248495578770000e+00, + 4.942187666890000e-01, + -2.761364579200000e-01, + -1.646130904560000e-02, + 1.833605170250000e-01, + -1.994972676040000e-01, + -5.864229202270000e-01, + -5.841803073880000e+00, + 7.235825061800000e-01, + 7.239024639130000e+00, + -3.981671333310000e+00, + 3.310222625730000e+00, + -3.188951015470000e+00, + -2.257486343380000e+00, + -3.793993234630000e+00, + 4.481110095980000e+00, + -1.575795531270000e+00, + 7.595493793490000e+00, + 5.147869110110000e+00, + -5.935035705570000e+00, + -2.162762165070000e+00, + 9.270871162410000e+00, + -7.054748535160000e+00, + 1.973167806860000e-01, + 2.882047593590000e-01, + 6.836367845540000e-01, + -1.167826533320000e+00, + -8.439005166290001e-02, + -5.928836822510000e+00, + 6.515398502350000e+00, + 1.163688659670000e+00, + -4.734425067900000e+00, + 3.159481763840000e+00, + -1.980249404910000e+00, + 4.501000881200000e+00, + -1.191719770430000e+00, + -1.420523762700000e+00, + -3.689155340190000e+00, + 1.123852443700000e+01, + 7.418949604030000e+00, + -6.773679733280000e+00, + 6.291563987730000e+00, + -4.225382328030000e+00, + -3.032301187520000e+00, + 2.189059734340000e+00, + -1.623478680850000e-01, + 3.904330492020000e+00, + 8.701145052910000e-01, + -2.601969480510000e+00, + -1.456706881520000e+00, + -2.689513921740000e+00, + -7.951423525810000e-01, + 4.455070972440000e+00, + -4.196923255920000e+00, + 3.094781398770000e+00, + 1.620260179040000e-01, + 5.369219779970000e+00, + -5.153433799740000e+00, + 2.568638622760000e-01, + 9.423847496510000e-02, + -5.012092113490000e+00, + -7.128215789790000e+00, + 6.898985385890000e+00, + 5.452944338320000e-02, + -1.472713351250000e+00, + -4.812686920170000e+00, + 3.282323122020000e+00, + -3.939356327060000e+00, + 9.833045959470001e+00, + -3.801176786420000e+00, + -6.251036167140000e+00, + 9.406291961670000e+00, + -5.240578174590000e+00, + -6.792726516720000e+00, + 9.043763279910000e-01, + 6.400500774380000e+00, + -3.652953147890000e+00, + -2.837306976320000e+00, + -5.677757263180000e+00, + 4.874921321870000e+00, + 1.441876292230000e+00, + 1.404408931730000e+00, + 1.360920190810000e+00, + 1.257351756100000e+00, + 1.625498652460000e+00, + -1.649175286290000e+00, + 5.637212753300000e+00, + 5.327866554260000e+00, + -8.153610229490000e-01, + -2.995674848560000e+00, + -1.421628594400000e-01, + 2.605054616930000e+00, + -3.524794101720000e+00, + 5.287792205810000e+00, + 4.238431155680000e-01, + 6.613139629360000e+00, + -1.484793424610000e+00, + -7.296434044840000e-01, + -5.004727840420000e+00, + -5.787287712100000e+00, + -2.615288496020000e+00, + -4.434893131260000e+00, + 1.408434867860000e+00, + 1.606231570240000e+00, + 1.014359951020000e+00, + 1.407927989960000e+00, + -9.539991021160000e-01, + 6.206098079680000e+00, + -1.084257721900000e+00, + 5.840440750120000e+00, + -3.623277902600000e+00, + 2.348856925960000e-01, + 4.437405586240000e+00, + -4.170020818710000e-01, + -6.303582668300000e+00, + 8.350399017330000e+00, + -4.330656528470000e+00, + -1.709414005280000e+00, + -1.807841539380000e+00, + -6.354034423830000e+00, + -2.433174103500000e-01, + -2.099879741670000e+00, + 3.099025249480000e+00, + 5.575014114380000e+00, + -1.232128977780000e+00, + 3.390843868260000e-01, + 4.359275341030000e+00, + 5.293455123900000e+00, + -9.331257939340000e-01, + -4.003883361820000e+00, + 4.724318027500000e+00, + -3.149291872980000e-01, + 6.684954166410000e+00, + 7.080476880070000e-01, + 1.383340954780000e+00, + -1.380520939830000e+00, + 6.006987571720000e+00, + 1.470849037170000e+00, + 1.350376129150000e+00, + -7.606456756590000e+00, + -4.764461994170000e+00, + -1.585442662240000e+00, + 1.387550830840000e+00, + -5.717387199400000e+00, + 6.337561130520000e+00, + 1.508757710460000e+00, + 2.330504417420000e+00, + -3.399327754970000e+00, + -6.494986534120000e+00, + -6.051617622380000e+00, + -2.987163543700000e+00, + -3.919530630110000e+00, + -2.452967166900000e+00, + -1.790254950520000e+00, + -9.730307459830000e-01, + -3.510360479350000e+00, + 2.539393663410000e+00, + 5.273694515230000e+00, + -1.127154305580000e-01, + 1.465689897540000e+00, + 1.786699175830000e+00, + 1.539792418480000e+00, + 1.439938664440000e+00, + 1.423523545270000e+00, + -1.793095946310000e+00, + 6.402007579800000e+00, + 4.642536640170000e+00, + -5.859305858610000e-01, + -3.123018026350000e+00, + 3.102497458460000e-01, + 2.401434183120000e+00, + -3.467687606810000e+00, + 4.966009616850000e+00, + 3.762264549730000e-01, + 6.469799518590000e+00, + -1.458784103390000e+00, + -7.513968348500000e-01, + -5.291688442230000e+00, + -5.610031127930000e+00, + -2.881682157520000e+00, + -4.827480793000000e+00, + 1.469156384470000e+00, + 1.484855413440000e+00, + 5.582651495930000e-01, + 9.307961463930000e-01, + -2.232898950580000e+00, + 5.666330814360000e+00, + -1.239236235620000e+00, + 5.173968791960000e+00, + -4.044878482820000e+00, + 2.746188342570000e-01, + 3.399271249770000e+00, + -9.619187116620000e-01, + -7.075315475460000e+00, + 8.305390357969999e+00, + -4.360735416410000e+00, + -1.925619840620000e+00, + -1.180669665340000e+00, + -5.641026496890000e+00, + -9.771471470590000e-02, + -2.021703481670000e+00, + 2.314667701720000e+00, + 5.226101875310000e+00, + -1.339744091030000e+00, + 4.426177740100000e-01, + 5.488502025600000e+00, + 6.316215038300000e+00, + -2.645282030110000e+00, + -4.483793258670000e+00, + 4.483259201050000e+00, + 1.640785336490000e-01, + 6.656875133510000e+00, + 1.135451436040000e+00, + 1.149771809580000e+00, + -1.545222282410000e+00, + 5.168740272520000e+00, + 1.944920182230000e+00, + 1.457552075390000e+00, + -6.561935901640000e+00, + -3.926898241040000e+00, + -1.357760310170000e+00, + 1.388657450680000e+00, + -4.683726310730000e+00, + 5.741201400760000e+00, + 2.221204489470000e-01, + 2.466895341870000e+00, + -4.118017196660000e+00, + -5.924806118010000e+00, + -4.379601955410000e+00, + -2.585539102550000e+00, + -4.982404708860000e+00, + -2.404074192050000e+00, + -3.132969379430000e+00, + 4.324031174180000e-01, + -3.018380880360000e+00, + 1.411653995510000e+00, + 5.951716899870000e+00, + -1.566977500920000e-01, + -8.187988400460000e-01, + -5.174404978750000e-01, + -3.776026070120000e-01, + -3.679231405260000e-01, + 6.539145857100000e-02, + -1.796213626860000e+00, + -1.341685414310000e+00, + 8.025211691860000e-01, + 2.452697753910000e+00, + 6.079424023630000e-01, + 9.340313076970000e-01, + -7.313419580460000e-01, + -1.857665658000000e+00, + -4.306852817540000e-01, + 2.985194921490000e+00, + 6.573040485380000e-01, + -7.274135947230000e-02, + -1.196030139920000e+00, + 8.399213552470000e-01, + -2.902534723280000e+00, + -1.128611326220000e+00, + 3.328970909120000e+00, + -1.619701832530000e-01, + -4.718336761000000e-01, + -9.016900323329999e-03, + 8.294294774530001e-02, + -2.227956295010000e+00, + -1.154276132580000e+00, + 2.149545431140000e+00, + -1.717828214170000e-01, + -4.406645894050000e-01, + 5.551487207410000e-01, + -1.995717525480000e+00, + -4.311979770660000e+00, + -2.870811462400000e+00, + -8.675261735920000e-01, + 9.930910170080000e-02, + -1.249510288240000e+00, + 5.981832027440000e+00, + 3.947223424910000e+00, + 2.076587438580000e+00, + -6.120526790620000e-01, + -1.425742030140000e+00, + 2.014412403110000e+00, + -9.556807875630000e-01, + 4.871232986450000e+00, + 3.658899068830000e-01, + 6.935235261920000e-01, + -5.884329080580000e-01, + -2.080869197850000e+00, + 2.312981039290000e-01, + 1.211762070660000e+00, + 1.325824499130000e+00, + 2.520972251890000e+00, + -3.005165159700000e-01, + 5.649469494820000e-01, + -1.679119825360000e+00, + -7.051963806150000e-01, + -5.163925513630000e-02, + -8.479146286850000e-03, + 3.981911838050000e-01, + -6.859420239930000e-02, + -4.285365045070000e-01, + -4.033580303190000e+00, + -1.096254110340000e+00, + 8.540886044500000e-01, + -1.428151875730000e-02, + -6.276600956920000e-01, + -4.594047069550000e+00, + 2.295828819270000e+00, + -1.417835950850000e+00, + 4.684784889220000e+00, + 3.644629001620000e+00, + -2.716954469680000e+00, + 2.274288177490000e+00, + 6.828746199610000e-01, + -1.456179022790000e+00, + -1.114946842190000e+00, + -1.171817898750000e+00, + -8.102029562000000e-01, + -1.435909569260000e-01, + -4.553171694280000e-01, + -2.183106243610000e-01, + -1.209401488300000e+00, + -1.827940583230000e+00, + -1.595686793330000e+00, + 6.072506308560000e-01, + 2.408225059510000e+00, + 4.712089896200000e-01, + 6.966094970700000e-01, + -7.789595127109999e-01, + -1.335932850840000e+00, + -5.349417328830000e-01, + 2.976821184160000e+00, + 7.512596845630000e-01, + -6.889580190180000e-02, + -1.201260566710000e+00, + 1.025952816010000e+00, + -3.111546039580000e+00, + -8.172256946560000e-01, + 3.742026090620000e+00, + -3.643429279330000e-01, + 4.886249303820000e-01, + -1.047978326680000e-01, + -2.341274321080000e-01, + -9.178910851480000e-01, + -1.200847148900000e+00, + 2.103131055830000e+00, + -3.860836029050000e-01, + 3.179655075070000e-01, + 1.483239889140000e+00, + -1.317575335500000e+00, + -2.937885999680000e+00, + -1.479089617730000e+00, + -5.078674554820000e-01, + 1.474108099940000e-01, + 9.801652431490000e-01, + 3.982213974000000e+00, + 3.730703830720000e+00, + 2.056151151660000e+00, + 4.809713363650000e-01, + -1.108440756800000e+00, + 1.387527942660000e+00, + -1.640990614890000e+00, + 4.952462196350000e+00, + 4.591716527940000e-01, + -1.210555553440000e+00, + -1.762219548230000e+00, + -2.871671199800000e+00, + 1.172398209570000e+00, + 5.003103017810000e-01, + 4.038888931270000e+00, + 1.307390630250000e-01, + -2.839594185350000e-01, + -5.217421650890000e-01, + -2.068503141400000e+00, + 3.080144226550000e-01, + -2.744860649110000e-01, + 9.621925354000000e-01, + 4.445318579670000e-01, + 2.483016103510000e-01, + -3.335536718370000e-01, + -4.621087551120000e+00, + -1.203658699990000e+00, + -7.067082524300000e-01, + -7.019161581990000e-01, + 4.365445077420000e-01, + -2.953541994090000e+00, + 3.232598066330000e+00, + -2.879263162610000e+00, + 5.924194812770000e+00, + 2.926359415050000e+00, + -2.920043468480000e+00, + 3.464872121810000e+00, + -2.066378891470000e-01, + -3.996245861050000e-01, + -1.300343275070000e+00, + -3.872543573380000e-01, + 2.651471495630000e-01, + 1.993280053140000e-01, + 1.641636937860000e-01, + 6.217367202040000e-02, + -1.847441792490000e-01, + -6.890128254890000e-01, + -5.955658435820000e+00, + 8.311217427249999e-01, + 6.935083866120000e+00, + -3.778173446660000e+00, + 3.378180265430000e+00, + -3.116919279100000e+00, + -1.980879187580000e+00, + -3.760447025300000e+00, + 4.518151760100000e+00, + -1.664046049120000e+00, + 7.332397460940000e+00, + 5.074899196620000e+00, + -5.916673183440000e+00, + -2.244661331180000e+00, + 9.552402496339999e+00, + -7.159012794490000e+00, + -3.128926157950000e-01, + -2.183867692950000e-01, + 2.788871824740000e-01, + 3.938840031620000e-01, + -1.208699345590000e+00, + -4.879623889920000e+00, + 6.665325641630000e+00, + 1.877459168430000e+00, + -4.304026603700000e+00, + 3.421600341800000e+00, + -2.869890928270000e+00, + 4.770330429080000e+00, + -5.725328922270000e-01, + -1.159205913540000e+00, + -3.637171268460000e+00, + 1.151102638240000e+01, + 6.615494251250000e+00, + -8.511734008790000e+00, + 6.742858409880000e+00, + -2.730049848560000e+00, + -5.319718837740000e+00, + 1.278737545010000e+00, + 6.307270526890000e-01, + 2.734677791600000e+00, + 7.599702477460000e-01, + -2.811767816540000e+00, + -8.827188611030000e-01, + -2.257521152500000e+00, + 1.950788646940000e-01, + 3.812822103500000e+00, + -2.539864778520000e+00, + 3.372236728670000e+00, + -3.059710562230000e-01, + 5.556235313420000e+00, + -6.733208656310000e+00, + 1.631691306830000e-01, + -5.555072799320000e-02, + -5.868835449220000e+00, + -6.626214027400000e+00, + 7.588041782380000e+00, + -6.667720079420000e-01, + -1.045628070830000e+00, + -5.927338123320000e+00, + 2.781805515290000e+00, + -3.147829294200000e+00, + 9.627971649170000e+00, + -2.347094535830000e+00, + -5.482606410980000e+00, + 1.016444301610000e+01, + -6.149623394010000e+00, + -7.832515716550000e+00, + -4.218773245810000e-01, + 8.358919143680000e+00, + -2.645310878750000e+00, + -3.213969469070000e+00, + -6.217978954320000e+00, + 5.427091121670000e+00, + -2.621827125550000e-01, + 1.684176176790000e-01, + 8.393295854330000e-02, + 1.126814186570000e-01, + 5.287372469900000e-01, + -6.990448832510000e-01, + -5.738070964810000e+00, + 2.987514436240000e-01, + 7.160986423490000e+00, + -3.893296957020000e+00, + 3.266225576400000e+00, + -3.059650421140000e+00, + -2.327484846120000e+00, + -3.681415796280000e+00, + 4.627246379850000e+00, + -1.526668787000000e+00, + 7.281617164610000e+00, + 5.380408763890000e+00, + -5.567918300630000e+00, + -2.091969728470000e+00, + 9.704187393190001e+00, + -7.144192218780000e+00, + -3.606250882150000e-01, + -1.229709088800000e-01, + 4.720940440890000e-02, + -5.290715098380000e-01, + -9.110933542250000e-01, + -5.703543663020000e+00, + 7.677896022800000e+00, + 1.371544241910000e+00, + -3.952775478360000e+00, + 3.227110147480000e+00, + -3.258035659790000e+00, + 4.245862960820000e+00, + -1.767007708550000e+00, + -6.789047718050000e-01, + -4.153138160710000e+00, + 1.042008876800000e+01, + 7.572457790370000e+00, + -8.000057220460000e+00, + 6.808562278750000e+00, + -4.843890190120000e+00, + -2.639807462690000e+00, + 1.716720700260000e+00, + -9.178915023799999e-01, + 3.793853044510000e+00, + -1.694274395700000e-01, + -2.239575386050000e+00, + -1.330473661420000e+00, + -1.612839341160000e+00, + 1.735548079010000e-01, + 3.764848470690000e+00, + -2.148357152940000e+00, + 3.293973445890000e+00, + 4.349897801880000e-02, + 4.858104228970000e+00, + -6.362164974210000e+00, + 9.993107616900000e-02, + -2.335104495290000e-01, + -3.871817588810000e+00, + -6.580951690670000e+00, + 8.126364707950000e+00, + 2.719869315620000e-01, + -1.068177342410000e+00, + -5.218824863430000e+00, + 7.823182940480000e-01, + -2.481088161470000e+00, + 9.144702911380000e+00, + -4.144717693330000e+00, + -5.154988765720000e+00, + 9.291283607480000e+00, + -5.813359260560000e+00, + -8.156766891480000e+00, + -4.101660847660000e-01, + 5.737045288090000e+00, + -3.336235761640000e+00, + -3.487794399260000e+00, + -5.323828220370000e+00, + 5.023202896120000e+00, + 1.384067654610000e+00, + 1.571471929550000e+00, + 9.069162011150000e-01, + 1.395060539250000e+00, + 1.170012831690000e+00, + -1.674221754070000e+00, + 5.959599494930000e+00, + 4.568416118620000e+00, + -8.458663821220000e-01, + -2.889051914220000e+00, + 6.486034393310000e-01, + 2.346099376680000e+00, + -3.716348409650000e+00, + 5.040190219880000e+00, + 2.652277052400000e-01, + 6.438967704770000e+00, + -1.484244108200000e+00, + -7.809092998500000e-01, + -5.270340442660000e+00, + -5.814521312710000e+00, + -2.393735170360000e+00, + -4.616899967190000e+00, + 1.192134737970000e+00, + 1.325576543810000e+00, + 2.056635856630000e+00, + 1.420382738110000e+00, + -1.224449753760000e+00, + 5.334083080290000e+00, + -7.044758796690000e-01, + 6.254893302920000e+00, + -4.227666378020000e+00, + -3.509163856510000e-01, + 3.760973453520000e+00, + -1.010726571080000e+00, + -7.115056514740000e+00, + 8.182999610900000e+00, + -3.527261734010000e+00, + -1.065069913860000e+00, + -3.945435956120000e-02, + -5.274093151090000e+00, + -1.682846546170000e+00, + -2.264376878740000e+00, + 1.408062934880000e+00, + 4.470481395720000e+00, + -1.235203862190000e+00, + 7.811447978020000e-01, + 5.357708454130000e+00, + 5.889985084530000e+00, + -2.879676818850000e+00, + -3.430102825160000e+00, + 4.654603004460000e+00, + -2.348413169380000e-01, + 6.264667987820000e+00, + 2.294898629190000e-01, + 1.538208127020000e+00, + -8.855910897250000e-01, + 7.327814579010000e+00, + 1.297516703610000e+00, + 1.373268604280000e+00, + -6.099898338320000e+00, + -6.098117828370000e+00, + -1.596784591670000e+00, + 1.986866235730000e+00, + -6.126939296720000e+00, + 5.360549926760000e+00, + 2.118611782790000e-01, + 2.428554534910000e+00, + -3.566004037860000e+00, + -5.617891788480000e+00, + -4.316224575040000e+00, + -2.551008462910000e+00, + -4.442235946660000e+00, + -2.647836208340000e+00, + -1.665952682500000e+00, + -1.165660500530000e+00, + -4.242253780360000e+00, + 1.708618521690000e+00, + 5.622169971470000e+00, + 1.809731572870000e-01, + 6.119715571400000e-01, + 1.318036198620000e+00, + 1.349916338920000e+00, + 1.400236368180000e+00, + 1.588878870010000e+00, + -1.654136538510000e+00, + 5.942824363710000e+00, + 4.886073112490000e+00, + 3.604750931260000e-01, + -3.627569198610000e+00, + 4.255235791210000e-01, + 2.412854671480000e+00, + -3.442268610000000e+00, + 4.789693832400000e+00, + 2.765814960000000e-01, + 6.537130832670000e+00, + -1.306374192240000e+00, + -8.382334113120000e-01, + -5.186274528500000e+00, + -5.926535606380000e+00, + -2.642854213710000e+00, + -4.554390430450000e+00, + 1.339228272440000e+00, + 1.384334445000000e+00, + 1.809108972550000e+00, + 1.134431958200000e+00, + -2.478846311570000e+00, + 5.172038078310000e+00, + -1.417128443720000e+00, + 5.099891662600000e+00, + -2.937976360320000e+00, + 2.961386144160000e-01, + 4.582951068880000e+00, + -2.127650737760000e+00, + -7.148985862730000e+00, + 7.180856704710000e+00, + -3.477979898450000e+00, + -2.041875600810000e+00, + -8.164092898370000e-01, + -5.854990005490000e+00, + -6.092151403430000e-01, + -1.976935148240000e+00, + 1.138263821600000e+00, + 5.446566581730000e+00, + -1.530526399610000e+00, + 4.591816067700000e-01, + 4.603144168850000e+00, + 6.655798435210000e+00, + -7.951329350470000e-01, + -3.923814773560000e+00, + 4.180372238160000e+00, + -5.240800976750000e-02, + 7.125076293950000e+00, + -6.598905920980001e-01, + 1.148450970650000e+00, + -1.396425366400000e+00, + 7.329319953920000e+00, + 1.187711119650000e+00, + 1.905943274500000e+00, + -7.866162776950000e+00, + -4.966093063350000e+00, + -1.210604429250000e+00, + -1.669866591690000e-02, + -5.270082950590000e+00, + 5.516200542450000e+00, + -7.168699800970001e-02, + 1.615192532540000e+00, + -4.341675281520000e+00, + -4.849287986760000e+00, + -5.227271080020000e+00, + -4.185893058780000e+00, + -4.748006820680000e+00, + -2.980345487590000e+00, + -1.380079984660000e+00, + -3.923310041430000e-01, + -3.942677736280000e+00, + 2.819511651990000e+00, + 5.059102535250000e+00, + -6.373434662820000e-01, + -6.240136027340000e-01, + -1.930211037400000e-01, + -3.284210264680000e-01, + -3.304986357690000e-01, + -1.025181531910000e+00, + -1.910629868510000e+00, + -1.266441941260000e+00, + 5.856984853740000e-01, + 2.602808713910000e+00, + 5.988585352900000e-01, + 4.199850559230000e-01, + -1.067741274830000e+00, + -1.471117377280000e+00, + -4.726590514180000e-01, + 2.787720918660000e+00, + 8.545653223990000e-01, + -4.477117955680000e-02, + -1.424463748930000e+00, + 1.017525553700000e+00, + -3.101126909260000e+00, + -9.054650664330000e-01, + 3.834655284880000e+00, + -8.281123638150000e-01, + 1.160765960810000e-01, + -6.304643750190000e-01, + -2.165177837010000e-03, + -2.450464487080000e+00, + -9.865380823610000e-03, + 2.921592712400000e+00, + 2.835692092780000e-02, + 1.781787350770000e-02, + 2.738333940510000e+00, + 3.108360767360000e-01, + -2.395268917080000e+00, + -1.215398430820000e+00, + -8.563237190250000e-01, + 1.778370618820000e+00, + -8.882951736450000e-01, + 3.062434196470000e+00, + 2.818215131760000e+00, + 2.706582546230000e+00, + 1.672900319100000e+00, + -2.885269403460000e+00, + 2.105560064320000e+00, + -8.126801848410000e-01, + 4.526888370510000e+00, + 2.254124134780000e-01, + 2.354023009540000e-01, + -1.974059700970000e+00, + -1.114069104190000e+00, + -1.468281298880000e-01, + 4.873504340650000e-01, + 3.148378372190000e+00, + 6.639966368680000e-01, + -4.377457499500000e-01, + -7.528995871540000e-01, + -4.054460823540000e-01, + -2.343976050620000e-01, + -2.728287875650000e-01, + 1.893833398820000e+00, + -9.791017174720000e-01, + 5.712480545040000e-01, + 7.437142729760000e-01, + -3.542684793470000e+00, + -2.325771570210000e+00, + -8.768833875660000e-01, + -6.727654337880000e-01, + 6.848154067990000e-01, + -3.842456817630000e+00, + 1.291183948520000e+00, + -2.577598333360000e+00, + 5.000015735630000e+00, + 3.999079465870000e+00, + -1.889606595040000e+00, + 2.931777238850000e+00, + -4.488849043850000e-01, + 1.610564589500000e+00, + -1.009228110310000e+00, + -1.320011019710000e+00, + 6.114529371260000e-01, + -1.671321690080000e-01, + -3.072927594180000e-01, + -5.099707245830000e-01, + -5.019178986550000e-01, + -1.809530735020000e+00, + -1.225676059720000e+00, + 4.573608338830000e-01, + 1.838991522790000e+00, + 3.997524082660000e-01, + 4.373245835300000e-01, + -6.921657919880000e-01, + -1.632172703740000e+00, + -4.554117321970000e-01, + 2.812390089040000e+00, + 8.679761290550000e-01, + 1.692789494990000e-01, + -7.676649093630000e-01, + 6.411698460580000e-01, + -3.149864196780000e+00, + -8.760840296750000e-01, + 3.296705961230000e+00, + -2.884689271450000e-01, + -3.212452828880000e-01, + 3.794183954600000e-02, + -5.611878633500000e-01, + -1.835945606230000e+00, + -1.895386576650000e+00, + 2.217226982120000e+00, + -8.473289012910000e-01, + -6.516051292420000e-01, + 1.709632277490000e+00, + -7.146097421650000e-01, + -3.207707166670000e+00, + -1.847059845920000e+00, + 6.512564420700000e-01, + 1.251422047620000e+00, + 3.182162344460000e-02, + 3.944992780690000e+00, + 4.534848213200000e+00, + 2.295766115190000e+00, + 1.806301474570000e+00, + -2.612654209140000e+00, + 5.642137527470000e-01, + -2.476243972780000e+00, + 4.434300422670000e+00, + -6.477357447150001e-02, + -3.046977519990000e-01, + -1.213124156000000e+00, + -9.467224478720000e-01, + -3.753601014610000e-02, + -1.837239712480000e-01, + 3.041934490200000e+00, + -2.646518051620000e-01, + -1.008537530900000e+00, + -1.559173941610000e+00, + -1.841544389720000e+00, + -5.666608810420000e-01, + -2.665128707890000e-01, + 1.084190130230000e+00, + -4.999504983430000e-02, + -1.190913319590000e+00, + -1.005538225170000e+00, + -5.158002376560000e+00, + -1.400633573530000e+00, + 5.288137197490000e-01, + -5.473031997680000e-01, + -1.021473761650000e-02, + -3.110162496570000e+00, + 2.949857473370000e+00, + -1.865789651870000e+00, + 5.989857673650000e+00, + 3.300055980680000e+00, + -2.190339326860000e+00, + 2.366087198260000e+00, + 1.520433545110000e+00, + 2.066252082590000e-01, + -3.987875878810000e-01, + -1.281283378600000e+00, + 2.447005808350000e-01, + -1.824302226310000e-02, + 2.685520350930000e-01, + 3.778646886350000e-02, + 4.078833758830000e-02, + -4.370388686660000e-01, + -5.528033256530000e+00, + 9.859088063240000e-01, + 6.857277870180000e+00, + -4.521511077880000e+00, + 3.468819618230000e+00, + -3.216725587840000e+00, + -2.327889680860000e+00, + -3.717389106750000e+00, + 4.821972846980000e+00, + -1.621998190880000e+00, + 7.325344085690000e+00, + 5.621213912960000e+00, + -5.511828899380000e+00, + -1.992455601690000e+00, + 9.938057899480000e+00, + -7.051367282870000e+00, + -5.792673230170000e-01, + 3.126418292520000e-01, + -5.378767251970000e-01, + 2.046968638900000e-01, + -5.152094736700000e-02, + -5.368540763850000e+00, + 7.513685226440000e+00, + 2.034216821190000e-01, + -3.077818632130000e+00, + 3.910686492920000e+00, + -3.864428043370000e+00, + 5.107114791870000e+00, + -8.509392142300000e-01, + -6.849048137660000e-01, + -3.899454593660000e+00, + 1.088965511320000e+01, + 8.537907600400001e+00, + -8.487202644350001e+00, + 6.571976184840000e+00, + -3.759708166120000e+00, + -4.036500453950000e+00, + 1.390764713290000e+00, + -6.100447773930000e-01, + 4.435300827030000e+00, + 4.493714571000000e-01, + -3.165984630580000e+00, + -1.576005458830000e+00, + -2.484108448030000e+00, + -8.832514286040000e-01, + 2.207982778550000e+00, + -1.769410967830000e+00, + 2.450392723080000e+00, + -2.993093431000000e-01, + 5.194109916690000e+00, + -6.727419853210000e+00, + -2.571065910160000e-02, + 3.441464602950000e-01, + -4.906526565550000e+00, + -6.007319927220000e+00, + 8.473665237430000e+00, + 7.782622426749999e-02, + -8.529127836230000e-01, + -5.682136535640000e+00, + 2.209359169010000e+00, + -2.800534248350000e+00, + 9.330592155460000e+00, + -3.150748491290000e+00, + -6.673337936400000e+00, + 1.005875492100000e+01, + -5.655961513520000e+00, + -8.304063797000000e+00, + -4.146034121510000e-01, + 6.378002643590000e+00, + -3.360997915270000e+00, + -2.318496704100000e+00, + -5.631271362300000e+00, + 5.597785472870000e+00, + 5.137363821270000e-02, + 1.292209178210000e-01, + 1.044096350670000e-01, + 1.645540893080000e-01, + 5.421460419890000e-02, + -6.969545483589999e-01, + -5.321733474730000e+00, + 4.099895954130000e-01, + 6.674942493440000e+00, + -3.538521289830000e+00, + 3.580812931060000e+00, + -3.198523521420000e+00, + -1.762980103490000e+00, + -3.912545204160000e+00, + 4.561871051790000e+00, + -1.583541035650000e+00, + 7.158623695370000e+00, + 5.226450920100000e+00, + -5.927638530730000e+00, + -1.929163932800000e+00, + 9.638029098510000e+00, + -7.228024959560000e+00, + 5.144371390340000e-01, + 1.890621036290000e-01, + -7.839131951330000e-01, + -1.275120824580000e-01, + -7.387168407440000e-01, + -6.694917202000000e+00, + 7.163289546970000e+00, + 1.259680151940000e+00, + -3.251010894780000e+00, + 3.802349328990000e+00, + -2.753742694850000e+00, + 4.898028373720000e+00, + -1.763288617130000e+00, + -1.164205551150000e+00, + -5.055802345280000e+00, + 1.023494815830000e+01, + 8.688584327699999e+00, + -7.583375453950000e+00, + 6.850661277770000e+00, + -4.671497821810000e+00, + -3.417978763580000e+00, + 9.771698117260000e-01, + -9.419925212860000e-01, + 5.570258140560000e+00, + 3.866743147370000e-01, + -1.432226181030000e+00, + -5.444812774659999e-01, + -2.381100177760000e+00, + 8.145874142650000e-01, + 3.374773263930000e+00, + -2.479365348820000e+00, + 5.413993835450000e+00, + -9.066634774210000e-01, + 5.010823726650000e+00, + -6.090356826780000e+00, + 4.594362378120000e-01, + -3.534760475160000e-01, + -5.033850669860000e+00, + -6.799951076510000e+00, + 8.760025024410000e+00, + 1.872603148220000e-01, + -6.816513538360000e-01, + -5.788506984710000e+00, + 3.224785327910000e+00, + -3.891848564150000e+00, + 1.056636810300000e+01, + -1.858381986620000e+00, + -6.239717960360000e+00, + 9.250291824340000e+00, + -4.441995143890000e+00, + -7.713321208950000e+00, + -5.135992914440000e-02, + 6.437620162960000e+00, + -4.019852638240000e+00, + -3.624229431150000e+00, + -4.766518116000000e+00, + 6.079170227050000e+00, + 1.440726995470000e+00, + 1.391537785530000e+00, + 1.869060873990000e+00, + 1.338172912600000e+00, + 1.445282101630000e+00, + -1.166911125180000e+00, + 6.035473823550000e+00, + 4.917299747470000e+00, + -7.026939392090000e-01, + -3.387598752980000e+00, + 5.035195499660000e-02, + 2.555359363560000e+00, + -3.660435676570000e+00, + 4.883530139920000e+00, + 5.138171091680000e-02, + 6.712205410000000e+00, + -1.645321369170000e+00, + -2.439600229260000e+00, + -5.420325756070000e+00, + -5.729798793790000e+00, + -2.522589206700000e+00, + -4.741619110110000e+00, + 9.952400922780000e-01, + 1.623390078540000e+00, + 1.089662194250000e+00, + 1.446412563320000e+00, + -1.564794898030000e+00, + 5.568756103520000e+00, + -1.242373704910000e+00, + 5.073276519780000e+00, + -4.256142616270000e+00, + 3.309869170190000e-01, + 3.541069507600000e+00, + -1.150682687760000e+00, + -7.723817825320000e+00, + 8.953842163090000e+00, + -3.233518600460000e+00, + -1.194724559780000e+00, + -1.255938410760000e+00, + -6.898533344270000e+00, + 6.048973277210000e-02, + -1.702358841900000e+00, + 1.792317509650000e+00, + 4.879168987270000e+00, + -1.699466943740000e+00, + 1.228987813000000e+00, + 4.411798477170000e+00, + 6.718099594120000e+00, + -1.340306282040000e+00, + -5.430621147160000e+00, + 6.941640377040000e+00, + 4.500830173490000e-01, + 6.604069709780000e+00, + -8.073019981380000e-01, + 1.722729086880000e+00, + -7.364227175710000e-01, + 5.860550403590000e+00, + 8.587539792060001e-01, + 9.822535514830000e-01, + -7.195026874540000e+00, + -5.511547565460000e+00, + -1.974244236950000e+00, + 1.356901764870000e+00, + -5.888092994690000e+00, + 5.933775901790000e+00, + 6.759359687570000e-02, + 2.008193254470000e+00, + -3.037979125980000e+00, + -5.918959140780000e+00, + -5.152124881740000e+00, + -1.991387724880000e+00, + -4.387161254880000e+00, + -4.360330581670000e+00, + -2.454916477200000e+00, + -1.001742362980000e+00, + -2.677100896840000e+00, + 2.243954420090000e+00, + 5.128216266630000e+00, + -2.558663785460000e-01, + 1.336513280870000e+00, + 1.409423470500000e+00, + 1.378383636470000e+00, + 1.545307993890000e+00, + 1.360967278480000e+00, + -1.595003008840000e+00, + 5.722746849060000e+00, + 4.161043167110000e+00, + -8.058282136920000e-01, + -3.495487689970000e+00, + 3.244132101540000e-01, + 2.484060049060000e+00, + -3.881037712100000e+00, + 5.316218853000000e+00, + 1.600935310130000e-01, + 6.649611473080000e+00, + -1.086178183560000e+00, + -7.266743183140000e-01, + -5.228042125700000e+00, + -5.872354030610000e+00, + -2.551560878750000e+00, + -4.761305809020000e+00, + 1.322511076930000e+00, + 8.003369718790000e-02, + 1.237750887870000e+00, + 1.367557764050000e+00, + -1.968301415440000e+00, + 5.657963752750000e+00, + -8.000875711440000e-01, + 5.851224899290000e+00, + -3.020783901210000e+00, + -1.819452047350000e-01, + 3.956026315690000e+00, + -2.019966095690000e-01, + -7.009578704830000e+00, + 8.079529762270001e+00, + -3.710626125340000e+00, + -7.051351070400000e-01, + -2.183372259140000e+00, + -4.801774501800000e+00, + -2.137126028540000e-01, + -1.844954490660000e+00, + 1.885516166690000e+00, + 4.313176155090000e+00, + -1.957351088520000e+00, + 6.400947570800000e-01, + 6.014098167420000e+00, + 5.670768737790000e+00, + -1.069294929500000e+00, + -3.487860679630000e+00, + 5.065610408780000e+00, + 8.922492265700001e-01, + 7.650650024410000e+00, + 1.019506812100000e+00, + 1.647673130040000e+00, + -1.337849974630000e+00, + 5.549873828890000e+00, + -1.738747358320000e+00, + 1.688190817830000e+00, + -6.974728584290000e+00, + -4.313393592830000e+00, + -2.957490921020000e+00, + 1.289312362670000e+00, + -4.194714069370000e+00, + 6.049509525300000e+00, + 9.407255053520000e-02, + 2.834743022920000e+00, + -4.113070011140000e+00, + -5.694830894470000e+00, + -5.279358863830000e+00, + -2.533790111540000e+00, + -4.989768505100000e+00, + -2.390433311460000e+00, + -1.852421760560000e+00, + -1.037777066230000e+00, + -3.271031379700000e+00, + 1.660503268240000e+00, + 6.315011978150000e+00, + -1.082330942150000e+00, + -3.117611110210000e-01, + -2.679417729380000e-01, + -3.028903603550000e-01, + -4.023325741290000e-01, + -2.922257483010000e-01, + -1.290114283560000e+00, + -1.418959975240000e+00, + 1.245171725750000e-01, + 2.509643316270000e+00, + 2.485395669940000e-01, + 1.450268477200000e-01, + -6.887550354000000e-01, + -1.546915888790000e+00, + -5.126736760140000e-01, + 2.708681106570000e+00, + 7.408488988880000e-01, + 1.023041978480000e-01, + -2.277486771350000e-01, + 8.971557021140000e-01, + -3.291978836060000e+00, + -6.917721629140000e-01, + 3.680003881450000e+00, + -3.103922605510000e-01, + -9.972262978550001e-01, + -8.162312507630000e-01, + -6.933420896530000e-02, + -1.647206425670000e+00, + -1.060573816300000e+00, + 2.398478269580000e+00, + -5.637474656110000e-01, + -4.390219450000000e-01, + 2.155675649640000e+00, + -6.823350191120000e-01, + -2.111793994900000e+00, + -1.638825297360000e+00, + 1.450352966790000e-01, + 3.391989767550000e-01, + -1.067467570300000e+00, + 4.404419422150000e+00, + 3.217433929440000e+00, + 2.170752286910000e+00, + 1.256365537640000e+00, + -1.435741662980000e+00, + 1.089170813560000e+00, + -1.693331718440000e+00, + 5.299066066740000e+00, + 1.163450479510000e+00, + -7.070229053500000e-01, + -1.965308189390000e+00, + -2.136387109760000e+00, + 1.745160818100000e+00, + -8.632500171660000e-01, + 2.688233852390000e+00, + 1.305889487270000e+00, + 3.360570967200000e-02, + -1.103870987890000e+00, + -9.449098706250000e-01, + 9.767903387550000e-02, + -9.651136994360000e-01, + 1.663653731350000e+00, + 6.312364935870000e-01, + 1.205710291860000e+00, + -3.178916573520000e-01, + -4.819867134090000e+00, + -1.057218432430000e+00, + 5.847253203390000e-01, + -1.679935574530000e+00, + 7.725907862190000e-02, + -4.005617618560000e+00, + 2.019372463230000e+00, + -1.196752309800000e+00, + 4.627272129060000e+00, + 4.045792579650000e+00, + -9.995440244670000e-01, + 3.359824419020000e+00, + -2.469090968370000e-01, + -2.226356267930000e+00, + -3.289633095260000e-01, + -9.648140668870000e-01, + -3.846819400790000e-01, + -2.746345996860000e-01, + -3.233683109280000e-01, + -3.376190066340000e-01, + -3.307239413260000e-01, + -1.883001208310000e+00, + -1.308743834500000e+00, + 5.094792246820000e-01, + 2.312371492390000e+00, + -2.015364170070000e-01, + 6.350110769270000e-01, + -6.681889295580000e-01, + -1.244703412060000e+00, + -8.887076973920000e-01, + 2.906806945800000e+00, + 6.224796175960000e-01, + 3.406237112360000e-03, + -1.128035545350000e+00, + 1.056605100630000e+00, + -3.025000810620000e+00, + -8.615269660950000e-01, + 3.387205123900000e+00, + -3.215255141260000e-01, + -5.232775211330000e-01, + -6.870755553250000e-01, + -1.260264158250000e+00, + -2.265696525570000e+00, + -1.652942061420000e+00, + 7.768664956090000e-01, + -1.314020395280000e+00, + 1.247344493870000e+00, + 6.080906987190000e-01, + -4.849170446400000e-01, + -3.076994895940000e+00, + -2.136351108550000e+00, + 3.601627349850000e-01, + 1.768702417610000e-01, + -1.269124031070000e+00, + 2.812215566640000e+00, + 3.874319314960000e+00, + 2.751511335370000e+00, + 1.438112258910000e+00, + -2.084139823910000e+00, + 2.069561243060000e+00, + -1.709777951240000e+00, + 4.692566394810000e+00, + -6.172085180880000e-02, + -4.257362782960000e-01, + -1.815266489980000e+00, + -1.195367097850000e+00, + 6.131606698040000e-01, + 9.216647744180000e-01, + 1.781003713610000e+00, + -6.841465085740001e-02, + -1.513756811620000e-01, + -2.771679162980000e-01, + -1.233790755270000e+00, + -1.039581373330000e-01, + -5.961259007450000e-01, + 8.443331718440000e-01, + -3.820472359660000e-01, + -1.023154020310000e+00, + 6.052792817350000e-02, + -4.739123344420000e+00, + -1.139411091800000e+00, + -1.319850385190000e-01, + -1.420744061470000e-01, + -4.967001378540000e-01, + -4.151095867160000e+00, + 1.673056840900000e+00, + -2.157444715500000e+00, + 4.932559490200000e+00, + 3.375922679900000e+00, + -2.275949954990000e+00, + 2.745340585710000e+00, + 3.371047377590000e-01, + -2.272427380080000e-01, + -1.110237598420000e+00, + -7.817839980130000e-01, + 9.327953681350001e-03, + -2.046466469760000e-01, + 4.040031880140000e-02, + 1.093272939320000e-01, + -4.738220199940000e-02, + -8.682466149330000e-01, + -5.798254013060000e+00, + 8.570520281789999e-01, + 6.927282333370000e+00, + -4.039933681490000e+00, + 3.063728570940000e+00, + -2.689444065090000e+00, + -2.285792589190000e+00, + -3.761809110640000e+00, + 4.387236118320000e+00, + -1.668017387390000e+00, + 7.121455192570000e+00, + 4.564009189610000e+00, + -5.747550964360000e+00, + -2.189812421800000e+00, + 9.675421714780001e+00, + -7.081145763400000e+00, + 7.501000165940001e-01, + 1.567501574750000e-01, + 1.767217367890000e-01, + 8.229750394820000e-01, + -1.007838845250000e+00, + -5.058111190800000e+00, + 7.222365379330000e+00, + 4.257073998450000e-01, + -3.107659816740000e+00, + 3.552377223970000e+00, + -2.427542209630000e+00, + 4.273219108580000e+00, + -1.552142024040000e+00, + -1.279971718790000e+00, + -2.773365020750000e+00, + 1.123176670070000e+01, + 7.469163417820000e+00, + -8.234302520749999e+00, + 5.749342441560000e+00, + -4.615638732910000e+00, + -3.529310226440000e+00, + 2.084380626680000e+00, + -3.690018951890000e-01, + 4.832488536830000e+00, + -5.079400539400000e-01, + -2.653488397600000e+00, + -7.442737221720001e-01, + -2.132032632830000e+00, + 5.794197320940000e-01, + 3.585317134860000e+00, + -2.113371133800000e+00, + 3.959288597110000e+00, + -3.877149522300000e-01, + 4.357127666470000e+00, + -6.096555709840000e+00, + 6.197036430240000e-02, + 8.809338510040000e-02, + -4.885270595550000e+00, + -7.629694461820000e+00, + 7.245075225830000e+00, + 5.193665027620000e-01, + -1.631865501400000e+00, + -6.585393905640000e+00, + 3.826462030410000e+00, + -3.373393297200000e+00, + 1.048470973970000e+01, + -3.665612220760000e+00, + -5.915230751040000e+00, + 9.359916687009999e+00, + -6.688315868380000e+00, + -7.228219509120000e+00, + -4.458587765690000e-01, + 6.460110187530000e+00, + -3.768300533290000e+00, + -3.706333875660000e+00, + -6.294100284580000e+00, + 6.050281524660000e+00, + 4.152473993600000e-03, + 3.967195451260000e-01, + 6.156865134840000e-02, + 2.486193552610000e-02, + -9.594584256410001e-02, + -1.005237340930000e+00, + -5.566929817200000e+00, + 6.928925514220000e-01, + 6.442576408390000e+00, + -3.876980543140000e+00, + 3.504161596300000e+00, + -3.266140222550000e+00, + -2.305911540990000e+00, + -3.701193094250000e+00, + 4.650687694550000e+00, + -1.428623199460000e+00, + 6.583301067350000e+00, + 5.073989868160000e+00, + -6.125067710880000e+00, + -1.982139945030000e+00, + 9.514434814450000e+00, + -7.277523517610000e+00, + 6.431320905690000e-01, + -1.202350407840000e-01, + -7.038082480430000e-01, + -1.202396079900000e-01, + -9.625099301340000e-01, + -4.733685493470000e+00, + 6.108682155610000e+00, + 1.771431207660000e+00, + -3.752260923390000e+00, + 2.695537567140000e+00, + -2.979491233830000e+00, + 5.041412830350000e+00, + -1.644085168840000e+00, + -1.083990573880000e+00, + -5.487738132480000e+00, + 1.073210334780000e+01, + 8.298966407780000e+00, + -9.214107513429999e+00, + 5.734545707700000e+00, + -3.936821937560000e+00, + -4.645544528960000e+00, + 1.773729085920000e+00, + -1.185108900070000e+00, + 5.711107254030000e+00, + -3.788569197060000e-02, + -3.154364585880000e+00, + -7.603641748430000e-01, + -1.706630349160000e+00, + 2.260998725890000e+00, + 3.542594909670000e+00, + -2.249680757520000e-01, + 3.927696466450000e+00, + -1.920852959160000e-01, + 5.950237274170000e+00, + -6.338871002200000e+00, + 2.027818709610000e-01, + 9.261825680730000e-02, + -5.211487293240000e+00, + -7.928315639500000e+00, + 7.577937126160000e+00, + 4.362801089880000e-02, + -1.091642379760000e+00, + -5.478221893310000e+00, + 2.955755710600000e+00, + -2.313151359560000e+00, + 1.084940814970000e+01, + -3.027058124540000e+00, + -7.345833778380000e+00, + 1.054460620880000e+01, + -5.301090717320000e+00, + -8.319026947019999e+00, + -3.278255462650000e-01, + 6.346350669860000e+00, + -3.779676914220000e+00, + -2.739512443540000e+00, + -4.819705486300000e+00, + 5.296370029450000e+00, + 1.447162866590000e+00, + 1.186366558070000e+00, + 6.593148112300000e-01, + 1.310524106030000e+00, + 1.058871269230000e+00, + -1.565837502480000e+00, + 6.013146400450000e+00, + 5.017588615420000e+00, + -5.935387611389999e-01, + -3.281095266340000e+00, + 6.154562830920000e-01, + 2.259663343430000e+00, + -3.583784341810000e+00, + 4.938038349150000e+00, + 2.632302641870000e-01, + 6.726024150850000e+00, + -1.577197790150000e+00, + -8.310575485230000e-01, + -5.160349369050000e+00, + -5.806206703190000e+00, + -2.503085136410000e+00, + -4.777606487270000e+00, + 1.124982953070000e+00, + 1.433357357980000e+00, + 1.741019964220000e+00, + 1.656240105630000e+00, + -2.560356616970000e+00, + 5.986391544340000e+00, + -2.468243837360000e-01, + 6.085984230040000e+00, + -2.856224775310000e+00, + 2.800575792790000e-01, + 3.446908950810000e+00, + -5.165969729420000e-01, + -7.401516437530000e+00, + 7.519602298740000e+00, + -3.041411399840000e+00, + -1.544282436370000e+00, + -1.538268566130000e+00, + -6.818171978000000e+00, + -3.895903825760000e-01, + -1.917305827140000e+00, + 2.086409330370000e+00, + 5.106428146360000e+00, + -6.643233895300000e-01, + 5.986313223840000e-01, + 5.489022254940000e+00, + 6.435290813450000e+00, + -1.528918504710000e+00, + -3.273391008380000e+00, + 4.241222381590000e+00, + 3.675066232680000e-01, + 6.798606872560000e+00, + -8.578084111210000e-01, + 2.352245330810000e+00, + -1.621111512180000e+00, + 6.054375648500000e+00, + 1.001573443410000e+00, + 1.357644557950000e+00, + -6.511982440950000e+00, + -5.273538112640000e+00, + -1.389478445050000e+00, + 5.993819832800000e-01, + -6.346872806550000e+00, + 6.187514305110000e+00, + 2.672466337680000e-01, + 2.277260303500000e+00, + -3.600649833680000e+00, + -6.442590713500000e+00, + -5.386107921600000e+00, + -2.426639795300000e+00, + -2.840505599980000e+00, + -2.719949483870000e+00, + -2.974590301510000e+00, + -1.372491717340000e+00, + -4.069741249080000e+00, + 2.832179546360000e+00, + 6.429955482480000e+00, + -1.143155395980000e-01, + 1.287254095080000e+00, + 8.529052734380000e-01, + 1.770527005200000e+00, + 1.453736782070000e+00, + 1.721401810650000e+00, + -1.651427268980000e+00, + 6.174555778500000e+00, + 4.932236671450000e+00, + -8.025783300400000e-01, + -3.454756021500000e+00, + 4.152446687220000e-01, + 2.563477039340000e+00, + -3.324238061900000e+00, + 5.048146724700000e+00, + 1.151113808160000e-01, + 6.273456573490000e+00, + -1.559691190720000e+00, + -7.880581617360000e-01, + -5.348665714260000e+00, + -5.735403060910000e+00, + -2.781007528310000e+00, + -4.290524959560000e+00, + 9.011193513869999e-01, + 2.154212474820000e+00, + 1.324044108390000e+00, + 1.058262586590000e+00, + -6.882307529450000e-01, + 6.427236557010000e+00, + 1.894709914920000e-01, + 5.318483829500000e+00, + -2.030589580540000e+00, + -8.216784000400000e-01, + 1.929128766060000e+00, + -1.771971583370000e+00, + -7.288753986360000e+00, + 8.896052360530000e+00, + -3.444773197170000e+00, + -2.502952098850000e+00, + -7.120863199230000e-01, + -6.868327140810000e+00, + -7.245864272120000e-01, + -1.232566118240000e+00, + 1.973330378530000e+00, + 4.335816383360000e+00, + -1.471919894220000e+00, + 7.971105575560000e-01, + 4.886740207670000e+00, + 5.535252571110000e+00, + -1.887452155350000e-01, + -4.403700828550000e+00, + 3.610810041430000e+00, + -1.927538067100000e-01, + 6.303954601290000e+00, + 2.228576689960000e-01, + 1.274157166480000e+00, + -2.076320648190000e+00, + 6.031280994420000e+00, + 1.179472208020000e+00, + 1.743763089180000e+00, + -7.114021301270000e+00, + -4.557311534880000e+00, + -1.184732437130000e+00, + 1.353120803830000e+00, + -5.046284198760000e+00, + 5.717957496640000e+00, + 5.267619490620000e-01, + 3.275405168530000e+00, + -3.206138372420000e+00, + -5.952454090120000e+00, + -5.151258468630000e+00, + -2.935498714450000e+00, + -4.361527919770000e+00, + -2.400082349780000e+00, + -1.110105991360000e+00, + -1.075860857960000e+00, + -3.665229558940000e+00, + 2.186491966250000e+00, + 7.353538513180000e+00, + 2.383334189650000e-01, + -3.634407520290000e-01, + 3.400819003580000e-01, + -3.747233748440000e-01, + -2.046642005440000e-01, + -2.544176578520000e-01, + -1.805292487140000e+00, + -1.225125551220000e+00, + 3.981206715110000e-01, + 2.709981203080000e+00, + 5.026763081550000e-01, + 7.334653139110000e-01, + -2.889945209030000e-01, + -1.490125775340000e+00, + -7.881712913509999e-01, + 2.248398780820000e+00, + 8.869497776030000e-01, + 8.001725077630000e-01, + -1.334131598470000e+00, + 9.257112741470001e-01, + -3.231838464740000e+00, + -9.612315297130000e-01, + 3.417688608170000e+00, + -6.587989926340000e-01, + -4.157683551310000e-01, + -6.065946221350000e-01, + 1.219977959990000e-01, + -1.884610176090000e+00, + -6.983250379560000e-01, + 9.701689481740000e-01, + -1.393417596820000e+00, + -6.034424901010000e-01, + 3.956406712530000e-01, + -1.787003755570000e+00, + -1.588215947150000e+00, + -1.479931473730000e+00, + -1.636406779290000e-01, + 9.123317599300000e-01, + -2.343623936180000e-01, + 3.897421360020000e+00, + 4.914427757260000e+00, + 2.014898061750000e+00, + 1.258624434470000e+00, + -1.141390562060000e+00, + 3.064665794370000e-01, + -1.747278809550000e+00, + 3.854506492610000e+00, + -1.299674808980000e-01, + 1.270299553870000e+00, + -2.233301639560000e+00, + -2.308361291890000e+00, + 7.521330714230000e-01, + 6.489408612250001e-01, + 2.620499134060000e+00, + 7.772639989850000e-01, + -6.190838813780000e-01, + -7.462594509120000e-01, + -5.852106213570000e-01, + -1.087815046310000e+00, + -3.875332772730000e-01, + 9.673296809200000e-01, + -1.899283051490000e+00, + 7.067154347900000e-02, + -8.953659236430001e-02, + -3.206411361690000e+00, + -1.993298411370000e+00, + 2.520370483400000e-01, + -1.186892986300000e+00, + -6.676511764530000e-01, + -3.563348770140000e+00, + 1.870675921440000e+00, + -1.894557118420000e+00, + 5.210258960720000e+00, + 3.738183975220000e+00, + -2.353449106220000e+00, + 1.658635377880000e+00, + 4.851883947850000e-01, + -7.193826437000000e-01, + -2.984465360640000e-01, + -9.177874922750000e-01, + -2.619257569310000e-01, + 7.536799311640000e-01, + 4.633301496510000e-01, + -2.839199304580000e-01, + -3.031055629250000e-01, + -1.969907641410000e+00, + -1.438148140910000e+00, + 2.118241190910000e-01, + 2.501336574550000e+00, + 3.659351766110000e-01, + 8.209186196329999e-01, + -7.807739973070000e-01, + -1.105712294580000e+00, + -5.654807686809999e-01, + 2.719554662700000e+00, + 6.405450701710000e-01, + 2.414504438640000e-01, + -1.181372404100000e+00, + 1.371355414390000e+00, + -3.090183496480000e+00, + -6.670438051220000e-01, + 3.401492595670000e+00, + -3.925512135030000e-01, + -1.330178022380000e+00, + -6.500342488290000e-01, + 4.495657086370000e-01, + -2.792958259580000e+00, + -7.885328531270001e-01, + 2.517514228820000e+00, + 7.715375423430000e-01, + -5.391693115230000e-01, + 6.966634988780001e-01, + -1.169892430310000e+00, + -1.878430485730000e+00, + -2.864139080050000e+00, + -5.575044751170000e-01, + 1.149633169170000e+00, + -8.826028108600000e-01, + 4.063325881960000e+00, + 4.327617168430000e+00, + 2.777679204940000e+00, + 1.268760323520000e+00, + -2.136955261230000e-01, + 3.069208621980000e+00, + -2.021223068240000e+00, + 4.322201728820000e+00, + 3.328571617600000e-01, + -1.749134361740000e-01, + -2.324266433720000e+00, + -1.390749931340000e+00, + -2.054070085290000e-01, + -2.652352452280000e-01, + 3.565108776090000e+00, + 1.594810009000000e+00, + -3.193216025830000e-01, + 1.082505732770000e-01, + -2.322858572010000e-01, + -2.855948507790000e-01, + -3.168974518780000e-01, + 1.979993939400000e+00, + 1.699654310940000e-01, + -8.525009155270000e-01, + -3.397046923640000e-01, + -4.095010757450000e+00, + -1.886865377430000e+00, + 2.174790948630000e-01, + -2.865936458110000e-01, + -4.814596474170000e-01, + -4.028131008150000e+00, + 1.352593898770000e+00, + -3.236960649490000e+00, + 4.879956722260000e+00, + 4.299921035770000e+00, + -2.288945674900000e+00, + 2.376965761180000e+00, + 1.803628206250000e+00, + 6.143363714220000e-01, + -1.281683325770000e+00, + -9.277330636980000e-01, + 1.299989968540000e-01, + -1.056270487610000e-02, + 1.091266144070000e-02, + 3.251218423250000e-02, + -2.795891463760000e-01, + -6.970938444140000e-01, + -5.449682712550000e+00, + 8.576048016550000e-01, + 7.045764923100000e+00, + -3.853410005570000e+00, + 3.425346374510000e+00, + -3.211000919340000e+00, + -2.474121332170000e+00, + -3.649631023410000e+00, + 4.412947177890000e+00, + -2.003117799760000e+00, + 7.139126777650000e+00, + 4.892632961270000e+00, + -5.932712554930000e+00, + -1.969772100450000e+00, + 9.356296539310000e+00, + -7.204138755800000e+00, + -3.165787458420000e-01, + 8.408987522130000e-02, + 2.535442411900000e-01, + 1.160756126050000e-01, + -2.082765102390000e+00, + -4.913440704350000e+00, + 6.088283538820000e+00, + 1.683560729030000e+00, + -3.924638271330000e+00, + 3.058010816570000e+00, + -2.714038610460000e+00, + 5.000857353210000e+00, + -2.397720575330000e+00, + -8.902641534810000e-01, + -4.053775310520000e+00, + 1.089132595060000e+01, + 6.982007026670000e+00, + -7.819883823390000e+00, + 6.939524650570000e+00, + -4.361128807070000e+00, + -4.347786903380000e+00, + 1.048193216320000e+00, + -6.794436573979999e-01, + 2.842973947530000e+00, + 8.460444808010000e-01, + -1.524402141570000e+00, + -4.620640277860000e-01, + -2.165037870410000e+00, + 9.902117848400001e-01, + 4.774717330930000e+00, + -2.437164306640000e+00, + 3.257021188740000e+00, + -2.249208986760000e-01, + 5.975668907170000e+00, + -5.621970176700000e+00, + -3.389435820280000e-03, + 1.288583576680000e-01, + -4.032642364500000e+00, + -6.979937076570000e+00, + 8.747512817380001e+00, + -2.776162922380000e-01, + -5.487778186800000e-01, + -5.957401752470000e+00, + 2.988397359850000e+00, + -2.388043403630000e+00, + 9.938985824580000e+00, + -3.875207185750000e+00, + -5.736926078800000e+00, + 8.162820816040000e+00, + -5.426218986510000e+00, + -8.001935958860001e+00, + -3.468199372290000e-01, + 6.100016117100000e+00, + -3.175628662110000e+00, + -2.873269796370000e+00, + -4.909292221070000e+00, + 5.953986644740000e+00, + 6.117587909100000e-02, + 2.035434842110000e-01, + -1.637338548900000e-01, + 4.799381792550000e-01, + 1.669025868180000e-01, + -8.650851249690000e-01, + -5.776636600490000e+00, + 9.086968302730000e-01, + 6.746943473820000e+00, + -4.024003028870000e+00, + 3.513032674790000e+00, + -3.469899892810000e+00, + -2.469084501270000e+00, + -3.601800918580000e+00, + 4.695530414580000e+00, + -1.341802954670000e+00, + 8.368206977840000e+00, + 4.749293327330000e+00, + -5.778855323790000e+00, + -2.112587451930000e+00, + 9.290114402770000e+00, + -7.305729389190000e+00, + 2.257177084680000e-01, + -2.150803990660000e-02, + -4.138460457320000e-01, + -1.420405626300000e+00, + -1.265623450280000e+00, + -5.535727024080000e+00, + 7.601895809170000e+00, + 1.322801232340000e+00, + -4.297488212590000e+00, + 3.990681886670000e+00, + -2.797258377080000e+00, + 5.073381900790000e+00, + -3.035984039310000e+00, + -6.954683065410000e-01, + -3.888786077500000e+00, + 1.109877395630000e+01, + 7.787798404690000e+00, + -8.598295211789999e+00, + 6.951776981350000e+00, + -4.335978031160000e+00, + -4.706104278560000e+00, + 2.232995748520000e+00, + 3.167350217700000e-02, + 3.864557981490000e+00, + -1.754277795550000e-01, + -3.164155721660000e+00, + -7.354503273960000e-01, + -2.397149086000000e+00, + 1.915549278260000e+00, + 3.610989809040000e+00, + -1.160026788710000e+00, + 3.486434459690000e+00, + 7.342979311940000e-01, + 5.529201984410000e+00, + -5.948947429660000e+00, + 4.228048771620000e-02, + -7.323323935270000e-02, + -5.558308124540000e+00, + -7.575577259060000e+00, + 6.764170646670000e+00, + 1.796027421950000e-01, + -5.258812308310000e-01, + -3.544003725050000e+00, + 1.477391123770000e+00, + -3.192185878750000e+00, + 9.823663711549999e+00, + -4.319385051730000e+00, + -6.918542385100000e+00, + 9.717982292180000e+00, + -6.048243999480000e+00, + -8.068805694580000e+00, + -7.756079435350000e-01, + 6.001329422000000e+00, + -3.128021001820000e+00, + -2.661551713940000e+00, + -5.111104011540000e+00, + 5.099256038670000e+00, + 1.470814704900000e+00, + 1.168791532520000e+00, + 1.565442323680000e+00, + 1.354469537730000e+00, + 1.499996662140000e+00, + -1.661090612410000e+00, + 6.019870281220000e+00, + 4.730567932130000e+00, + -9.022120237350000e-01, + -3.114007234570000e+00, + 4.392419457440000e-01, + 2.315326690670000e+00, + -3.417276620860000e+00, + 4.873655796050000e+00, + 1.708636879920000e-01, + 5.947305202480000e+00, + -1.341379046440000e+00, + -9.645054936410000e-01, + -5.359755992890000e+00, + -6.358119964600000e+00, + -2.285290956500000e+00, + -4.709433555600000e+00, + 1.591534852980000e+00, + 6.865015625949999e-01, + 1.732965469360000e+00, + 1.234323501590000e+00, + -2.421055555340000e+00, + 5.950037479400000e+00, + 9.838119745250000e-01, + 6.142325401310000e+00, + -3.009370327000000e+00, + -7.877060174940000e-01, + 4.246078014370000e+00, + 1.994522958990000e-01, + -6.729361057280000e+00, + 8.457647323610001e+00, + -4.647510051730000e+00, + -1.845006585120000e+00, + -6.468395590779999e-01, + -5.093369960780000e+00, + -1.385398507120000e-01, + -1.734140276910000e+00, + 1.537938237190000e+00, + 4.088266849520000e+00, + -3.328772783280000e+00, + 6.002188920970000e-01, + 6.097041606900000e+00, + 6.628898620610000e+00, + -2.129613637920000e+00, + -3.265716552730000e+00, + 4.950046062470000e+00, + -4.255984425540000e-01, + 7.687172889710000e+00, + -7.470612525940000e-01, + 2.167662858960000e+00, + -1.211506962780000e+00, + 6.904306888580000e+00, + 1.436835527420000e+00, + 1.447156667710000e+00, + -6.884640216830000e+00, + -5.329485416410000e+00, + -1.170614600180000e+00, + 8.184570670130000e-01, + -4.893616199490000e+00, + 6.181654453280000e+00, + 1.454528331760000e+00, + 2.382967948910000e+00, + -3.528800010680000e+00, + -5.915208816530000e+00, + -5.097182750700000e+00, + -2.688606500630000e+00, + -4.181127071380000e+00, + -3.074323892590000e+00, + -2.171678781510000e+00, + -1.559134960170000e+00, + -3.229410409930000e+00, + 1.599301815030000e+00, + 5.404771327970000e+00, + -5.413535833360000e-01, + 1.538413524630000e+00, + 1.562004685400000e+00, + 1.296652674670000e+00, + 1.346607565880000e+00, + 1.650790452960000e+00, + -1.906268000600000e+00, + 6.004602909090000e+00, + 5.065501689910000e+00, + -6.137889027600000e-01, + -3.386413574220000e+00, + 2.631305158140000e-01, + 2.458613872530000e+00, + -5.171698093410000e+00, + 5.101974487300000e+00, + 4.443443119530000e-01, + 6.354525089260000e+00, + -1.276656031610000e+00, + -9.044544696810000e-01, + -5.210152149200000e+00, + -5.687424659730000e+00, + -2.440168142320000e+00, + -4.620846748350000e+00, + 1.012649774550000e+00, + 2.471816062930000e+00, + 1.003537535670000e+00, + 1.945223689080000e+00, + -1.598546266560000e+00, + 6.183720588680000e+00, + -1.345262169840000e+00, + 5.669530868530000e+00, + -3.270031213760000e+00, + -1.066945075990000e+00, + 3.403440237050000e+00, + -7.409775853160000e-01, + -8.814058303830000e+00, + 8.493799209590000e+00, + -4.081339836120000e+00, + -9.002048969270000e-01, + -4.116774797440000e-01, + -6.705713272090000e+00, + -1.694989800450000e+00, + -1.856985449790000e+00, + 1.891049623490000e+00, + 4.267404079440000e+00, + -1.863004446030000e+00, + 4.688271582130000e-01, + 5.387701034550000e+00, + 6.069006919860000e+00, + -2.816222429280000e+00, + -3.448441028590000e+00, + 3.760443210600000e+00, + 9.326496720310000e-01, + 6.700992107390000e+00, + -1.050783038140000e+00, + 2.163277149200000e+00, + -1.312220692630000e+00, + 6.387388706210000e+00, + 1.312298178670000e+00, + 1.401028394700000e+00, + -6.214169502260000e+00, + -5.506505012510000e+00, + -1.193451762200000e+00, + 1.807192564010000e+00, + -4.666389942170000e+00, + 5.658996582030000e+00, + -1.746440768240000e+00, + 2.260860443120000e+00, + -4.327762603760000e+00, + -6.006510734560000e+00, + -3.053203105930000e+00, + -2.645145177840000e+00, + -3.700450420380000e+00, + -3.213518381120000e+00, + -1.756929278370000e+00, + -8.563568592070000e-01, + -3.256423473360000e+00, + 2.235361576080000e+00, + 5.601032257080000e+00, + 4.994511976840000e-02, + -1.202778220180000e+00, + -1.198083311320000e-01, + -3.880515992640000e-01, + -3.011601567270000e-01, + -3.650034070010000e-01, + -1.929921150210000e+00, + -1.124988436700000e+00, + 3.744859695430000e-01, + 2.523017168050000e+00, + 4.150522649290000e-01, + 6.154224872590000e-01, + -5.875993371010000e-01, + -1.646499037740000e+00, + -4.249481558800000e-01, + 3.056170463560000e+00, + 6.136798486110000e-02, + 1.790530234580000e-01, + -1.208435177800000e+00, + 9.864990711210000e-01, + -3.210871696470000e+00, + -9.416275024410000e-01, + 3.441007614140000e+00, + 7.701446115970000e-02, + -5.058680772780000e-01, + -1.206100545820000e-02, + -3.211665153500000e-01, + -1.725322127340000e+00, + -2.133527755740000e+00, + 3.732996940610000e+00, + -1.526218175890000e+00, + 3.104435801510000e-01, + 2.744580268860000e+00, + -1.115221142770000e+00, + -1.935282945630000e+00, + -1.945463180540000e+00, + -2.135715335610000e-01, + 1.097587704660000e+00, + -1.049408674240000e+00, + 3.321249961850000e+00, + 3.534781455990000e+00, + 1.940989375110000e+00, + 1.566034793850000e+00, + -1.409739255910000e+00, + 5.410686731340000e-01, + -2.115204811100000e+00, + 4.273825645450000e+00, + -1.797624826430000e-01, + 5.408322215080000e-01, + -8.538129925730000e-01, + -1.252816319470000e+00, + 7.776729464530000e-01, + -3.541010022160000e-01, + 1.920333743100000e+00, + 2.596323490140000e-01, + -3.946927785870000e-01, + -6.509182453160000e-01, + -1.043598175050000e+00, + -2.798249721530000e-01, + -6.552360206839999e-02, + 1.438305616380000e+00, + 1.683702319860000e-01, + -1.195918470620000e-01, + -3.317635357380000e-01, + -2.804172039030000e+00, + -2.151938200000000e+00, + -1.198864459990000e+00, + -7.053548693660000e-01, + -5.259116292000000e-01, + -4.093978881840000e+00, + -7.319274544720000e-02, + -3.365968227390000e+00, + 5.476412296300000e+00, + 4.134688377380000e+00, + -2.019048929210000e+00, + 1.907711982730000e+00, + 2.684029638770000e-01, + -3.910449445250000e-01, + -2.693758606910000e-01, + -1.155775189400000e+00, + -2.922138869760000e-01, + -2.965828180310000e-01, + -3.671177625660000e-01, + -3.063287734990000e-01, + -4.324129223820000e-01, + -2.240807771680000e+00, + -1.046249985690000e+00, + 4.173567891120000e-01, + 2.482327938080000e+00, + 6.212505102160000e-01, + 5.513278841970000e-01, + -6.691360473630000e-01, + -1.617643594740000e+00, + -4.916785657410000e-01, + 2.737587213520000e+00, + 6.058900356290000e-01, + 2.882615923880000e-01, + -1.204045891760000e+00, + 9.559242725370000e-01, + -3.261658191680000e+00, + -1.050629854200000e+00, + 3.507072687150000e+00, + -1.413251906630000e-01, + -1.139123663310000e-01, + -1.720624268050000e-01, + 1.636699199680000e+00, + -1.456758260730000e+00, + -9.150941967960000e-01, + 1.507579922680000e+00, + -7.072403430940000e-01, + 8.505001664160000e-01, + -2.603282928470000e-01, + -1.728370070460000e+00, + -3.114689826970000e+00, + -1.191915869710000e+00, + -1.631667733190000e+00, + 1.138773094860000e-02, + -5.149536132810000e-01, + 3.815255880360000e+00, + 3.819845676420000e+00, + 2.974092006680000e+00, + 1.204419210550000e-01, + -2.524262189870000e+00, + 2.880425155160000e-01, + -1.433559298520000e+00, + 4.153266906740000e+00, + 8.492649197580000e-01, + -2.811712957920000e-02, + -1.829154968260000e+00, + -1.371318221090000e+00, + 2.189848572020000e-01, + 1.366890549660000e+00, + 3.078671216960000e+00, + 1.254349350930000e+00, + -6.569133996960000e-01, + -4.862100780010000e-01, + -9.371102452280000e-01, + -3.677481412890000e-01, + -1.904267072680000e-01, + 8.799191117289999e-01, + -5.580734610560000e-01, + -2.544125318530000e-01, + -9.996420741080000e-01, + -4.709353923800000e+00, + -1.485070109370000e+00, + 4.440279603000000e-01, + -9.713981747630001e-01, + 5.022256374360000e-01, + -4.138667583470000e+00, + 7.533730566500001e-02, + -2.557548284530000e+00, + 5.034631729130000e+00, + 3.297589302060000e+00, + -2.721318721770000e+00, + 3.415098905560000e+00, + 5.941427946090000e-01, + 2.373282909390000e-01, + -8.030653595920000e-01, + -1.626536011700000e+00, + -8.919610977170001e-01, + 3.210967183110000e-01, + -7.716145366429999e-02, + 8.459344506260000e-02, + -9.813773632050000e-01, + -5.116796493530000e-01, + -5.641079902650000e+00, + 5.264617800710000e-01, + 6.750059604640000e+00, + -4.226389408110000e+00, + 4.283648014070000e+00, + -3.006318807600000e+00, + -2.237508535390000e+00, + -4.054112434390000e+00, + 4.539799213410000e+00, + -1.387810111050000e+00, + 7.105152606960000e+00, + 5.234237670900000e+00, + -6.097229480740000e+00, + -2.011061429980000e+00, + 9.805541038510000e+00, + -7.271518230440000e+00, + 8.719447255130000e-02, + 8.920980617399999e-03, + 6.540027856830000e-01, + -2.389160916210000e-02, + -8.402704596520000e-01, + -5.626351356510000e+00, + 6.403878211980000e+00, + 1.459466338160000e+00, + -4.781249523160000e+00, + 3.244505643840000e+00, + -2.785404682160000e+00, + 5.252432823180000e+00, + -8.994804024700001e-01, + -1.108989357950000e+00, + -4.400035381320000e+00, + 1.199399375920000e+01, + 8.324122428890000e+00, + -7.731494903560000e+00, + 6.576943397520000e+00, + -4.030289173130000e+00, + -4.331035614010000e+00, + 1.069782614710000e+00, + -6.278375387190001e-01, + 5.144034862520000e+00, + 2.011761665340000e-01, + -1.926783919330000e+00, + -1.166457772250000e+00, + -3.218454122540000e+00, + 8.928308486940000e-01, + 3.357360839840000e+00, + -2.241606473920000e+00, + 3.890296459200000e+00, + -1.716497838500000e-01, + 5.266458034520000e+00, + -6.068323612210000e+00, + 1.614318415520000e-02, + 1.794807612900000e-02, + -4.780568599700000e+00, + -7.106606006620000e+00, + 7.663038730620000e+00, + 5.683175101880000e-02, + -7.939044833180000e-01, + -5.120883464810000e+00, + 2.285902261730000e+00, + -3.147452116010000e+00, + 1.077678775790000e+01, + -6.024835586550000e+00, + -6.101290702820000e+00, + 9.837958335880000e+00, + -5.314006805420000e+00, + -7.142662048340000e+00, + -8.464478850360000e-01, + 5.833355903630000e+00, + -2.991861581800000e+00, + -3.888709783550000e+00, + -5.654495716090000e+00, + 6.597923755650000e+00, + 1.382046788930000e-01, + -4.635580480100000e-01, + 1.208365783100000e-01, + -7.326175272460000e-02, + 2.271928191190000e-01, + -5.806927680970000e-01, + -5.617103099820000e+00, + 6.754383444790000e-01, + 6.879343509670000e+00, + -3.901466846470000e+00, + 3.256550788880000e+00, + -3.340817451480000e+00, + -2.163367509840000e+00, + -3.722088098530000e+00, + 4.378621101380000e+00, + -1.477386951450000e+00, + 6.946755409240000e+00, + 4.997297763820000e+00, + -5.795815944670000e+00, + -2.110950231550000e+00, + 9.683260917660000e+00, + -7.308571815490000e+00, + -1.647884249690000e-01, + -1.211137771610000e-01, + 8.470218777660000e-01, + -1.448741406200000e-01, + -9.776564240459999e-01, + -5.833732128140000e+00, + 6.557795524600000e+00, + 2.351439952850000e+00, + -3.868509054180000e+00, + 3.485389471050000e+00, + -3.569452285770000e+00, + 3.959744215010000e+00, + -7.224649190900000e-01, + -1.241420865060000e+00, + -4.102595806120000e+00, + 1.133250808720000e+01, + 7.788276195530000e+00, + -9.235909461980000e+00, + 6.909342765810000e+00, + -4.540642261510000e+00, + -3.920099496840000e+00, + 1.106523036960000e+00, + -5.973963737490000e-01, + 4.058715820310000e+00, + 5.295489430430000e-01, + -3.250329971310000e+00, + -1.342791557310000e+00, + -1.296968221660000e+00, + 5.548948049550000e-01, + 3.854634761810000e+00, + -2.383911609650000e+00, + 3.968728780750000e+00, + 3.399647772310000e-01, + 5.586898803710000e+00, + -6.165657997130000e+00, + 5.571579933170000e-02, + 2.621001005170000e-01, + -5.519315719600000e+00, + -6.790662765500000e+00, + 7.665943145750000e+00, + 2.286542765800000e-02, + -5.888305902480000e-01, + -5.413618087770000e+00, + 2.536992788310000e+00, + -2.572852373120000e+00, + 1.057066822050000e+01, + -4.172309398650000e+00, + -4.636660575870000e+00, + 9.745621681210000e+00, + -5.745594501500000e+00, + -8.993270874020000e+00, + -2.771569788460000e-01, + 5.573485851290000e+00, + -2.647155523300000e+00, + -3.062937259670000e+00, + -4.496326446530000e+00, + 3.441496133800000e+00, + 1.539031028750000e+00, + 1.186548948290000e+00, + 1.310381293300000e+00, + 1.227409839630000e+00, + 7.327256798739999e-01, + -1.591446161270000e+00, + 6.056347370150000e+00, + 4.917487144470000e+00, + -7.162204384800001e-01, + -3.347644567490000e+00, + 5.422442555430000e-01, + 2.525424242020000e+00, + -3.484471559520000e+00, + 4.878705978390000e+00, + 4.961984455590000e-01, + 6.576663017270000e+00, + -1.300962328910000e+00, + -8.150081634520000e-01, + -5.464682102200000e+00, + -6.446664333340000e+00, + -2.645036935810000e+00, + -4.613316059110000e+00, + 1.409713864330000e+00, + 1.012574553490000e+00, + 1.423613071440000e+00, + 1.881652116780000e+00, + -2.259505510330000e+00, + 6.112147808070000e+00, + -1.111323714260000e+00, + 5.398233413700000e+00, + -3.285476684570000e+00, + 1.791439801450000e-01, + 3.124581813810000e+00, + -1.262577056880000e+00, + -6.626015186310000e+00, + 8.069489479060000e+00, + -4.936076164250000e+00, + -2.090258598330000e+00, + -1.605442404750000e+00, + -4.561263561250000e+00, + -3.665086627010000e-01, + -2.268236637120000e+00, + 8.491799235340000e-01, + 5.305132865910000e+00, + -2.303792238240000e+00, + 2.083397507670000e-01, + 5.437471866610000e+00, + 6.770937919620000e+00, + -1.566154956820000e+00, + -3.489438772200000e+00, + 3.570921659470000e+00, + 2.175990790130000e-01, + 6.780158519740000e+00, + -8.865767717360000e-01, + 5.646282434460000e-01, + -1.031036257740000e+00, + 6.117531776430000e+00, + 1.424295425420000e+00, + 1.696037292480000e+00, + -7.070429801940000e+00, + -5.672654151920000e+00, + -1.755871653560000e+00, + 1.380033612250000e+00, + -5.427414894100000e+00, + 5.823416233060000e+00, + 9.001212567090000e-02, + 2.000454425810000e+00, + -4.100796222690000e+00, + -6.526447296140000e+00, + -5.230774879460000e+00, + -3.238794565200000e+00, + -5.252038478850000e+00, + -3.130672216420000e+00, + -7.442510724069999e-01, + -7.992143630980000e-01, + -3.706995725630000e+00, + 2.736390113830000e+00, + 5.384753227230000e+00, + -1.721587419510000e+00, + 1.033017873760000e+00, + 5.984499454500000e-01, + 1.537695050240000e+00, + 1.534541130070000e+00, + 1.499159932140000e+00, + -1.482852220540000e+00, + 6.069254875180000e+00, + 4.819519996640000e+00, + -8.003368377690000e-01, + -3.148921966550000e+00, + 2.867873013020000e-01, + 1.749130129810000e+00, + -3.564876317980000e+00, + 5.073482036590000e+00, + 1.337807625530000e-01, + 6.425693988800000e+00, + -1.071369290350000e+00, + -6.451042890549999e-01, + -5.263283729550000e+00, + -5.562267780300000e+00, + -2.590949296950000e+00, + -4.804257392880000e+00, + 1.038018941880000e+00, + 2.138816118240000e+00, + 2.009609460830000e+00, + 1.219872474670000e+00, + -1.284998178480000e+00, + 5.831876754760000e+00, + -1.343712329860000e+00, + 5.167802333830000e+00, + -2.877820968630000e+00, + 8.719553053380000e-02, + 2.745501756670000e+00, + -5.497284531590000e-01, + -6.408516883850000e+00, + 8.833677291870000e+00, + -4.277937889100000e+00, + -7.442010045050000e-01, + -3.753636479380000e-01, + -6.451298713680000e+00, + 4.322237968440000e-01, + -2.707167387010000e+00, + 1.072796106340000e+00, + 4.478273868560000e+00, + 5.886322259900000e-01, + 6.087890267370000e-01, + 4.835247993470000e+00, + 5.448736190800000e+00, + -6.460846662520000e-01, + -3.951066732410000e+00, + 5.753834724430000e+00, + -1.283924102780000e+00, + 7.707385540010000e+00, + 9.084557890890000e-01, + 2.031442165370000e+00, + -1.395248532300000e+00, + 5.932777404790000e+00, + 1.373609185220000e+00, + 1.213701128960000e+00, + -7.607644081120000e+00, + -6.284737586980000e+00, + -2.650903940200000e+00, + 1.239183306690000e+00, + -2.936897277830000e+00, + 5.842969894410000e+00, + 1.068508982660000e+00, + 3.925887346270000e+00, + -3.485056638720000e+00, + -6.364271640780000e+00, + -4.518013954160000e+00, + -2.701277732850000e+00, + -4.277228832240000e+00, + -2.409164667130000e+00, + -5.816027522090000e-01, + 7.696939706800000e-01, + -2.342206716540000e+00, + 2.579280853270000e+00, + 6.635956287380000e+00, + -2.045236825940000e+00, + -1.010895490650000e+00, + -3.317342102530000e-01, + -1.780788600440000e-01, + 1.016653850670000e-01, + 2.077554762360000e-01, + -1.927129864690000e+00, + -1.297116518020000e+00, + 3.699681758880000e-01, + 2.469332218170000e+00, + 6.129406094550000e-01, + 1.082403659820000e+00, + -7.642470002170000e-01, + -1.204402446750000e+00, + -5.542590618130000e-01, + 3.019857645030000e+00, + 8.234672546389999e-01, + 2.063611000780000e-01, + -1.180307030680000e+00, + 1.250721096990000e+00, + -2.826297283170000e+00, + -1.007090091710000e+00, + 3.570340633390000e+00, + -1.272192150350000e-01, + -5.952892899509999e-01, + -3.180702030660000e-01, + -2.882371544840000e-01, + -2.512208223340000e+00, + -2.823014259340000e+00, + 2.096126556400000e+00, + -4.717054069040000e-01, + -8.639682531360000e-01, + 4.548071920870000e-01, + -1.280102729800000e+00, + -2.784881830220000e+00, + -1.406844496730000e+00, + 1.622735708950000e-01, + 1.791251599790000e-01, + 4.723602905870000e-02, + 4.988798618320000e+00, + 3.532880306240000e+00, + 2.239317178730000e+00, + 1.454279065130000e+00, + -1.389929652210000e+00, + 2.556064367290000e+00, + -2.128242015840000e+00, + 5.208188056950000e+00, + -3.386565446850000e-01, + 3.251925706860000e-01, + -1.096985340120000e+00, + -2.122736454010000e+00, + 5.209600329400000e-01, + 8.772013336420000e-02, + 1.683035254480000e+00, + 1.151322945950000e-01, + 2.685569822790000e-01, + -8.789193034170000e-01, + -5.737569332120001e-01, + -3.936811685560000e-01, + -9.955402612690000e-01, + 1.214876770970000e+00, + -5.782490372660000e-01, + -3.682046830650000e-01, + -2.975307404990000e-01, + -3.690951585770000e+00, + -1.339674830440000e+00, + 8.249101638790000e-01, + -1.450951397420000e-01, + -6.938693523410000e-01, + -3.718206405640000e+00, + 7.201637625690001e-01, + -2.746805906300000e+00, + 5.504031181340000e+00, + 3.483860015870000e+00, + -6.388399004940000e-01, + 2.487557649610000e+00, + 7.286275625230000e-01, + -3.251582384110000e-01, + -1.313755869870000e+00, + -1.498946547510000e+00, + -1.636915206910000e-01, + -2.668604552750000e-01, + -9.794760942460000e-01, + -2.104788869620000e-01, + -3.822320401670000e-01, + -2.115872383120000e+00, + -1.128487229350000e+00, + 2.670438587670000e-01, + 2.597186088560000e+00, + 5.408805012700000e-01, + 4.428467750550000e-01, + 1.054667308930000e-01, + -1.836690306660000e+00, + -4.533210396770000e-01, + 2.782872915270000e+00, + 6.741533279420000e-01, + -7.860858738420000e-02, + -1.143036961560000e+00, + 8.125542402270000e-01, + -3.156551122670000e+00, + -8.874158859250000e-01, + 3.726104021070000e+00, + 1.680609881880000e-01, + -5.015998482700000e-01, + -4.406456947330000e-01, + -3.956596255300000e-01, + -1.721677780150000e+00, + -1.483620524410000e+00, + 2.213480234150000e+00, + -8.875620961190001e-01, + -3.270824849610000e-01, + 2.021825313570000e+00, + -6.213160753250000e-01, + -2.685119628910000e+00, + -3.416976928710000e+00, + -2.223067358140000e-02, + -6.509568542240000e-02, + -5.887051224710000e-01, + 4.100494861600000e+00, + 3.664126157760000e+00, + 2.450155019760000e+00, + 1.053907275200000e+00, + -2.505751132970000e+00, + 1.445406913760000e+00, + -1.638156652450000e+00, + 3.780275821690000e+00, + 1.446008384230000e-01, + -1.109541282060000e-01, + -2.658143520360000e+00, + -1.896113634110000e+00, + 2.104078382250000e-01, + -7.147826552390000e-01, + 1.686276078220000e+00, + 9.294133186340000e-01, + -5.793365836140000e-01, + -1.788884162900000e+00, + -1.076359510420000e+00, + -3.328789174560000e-01, + -1.337560296060000e+00, + 2.018027782440000e+00, + -5.143281817440000e-01, + 6.013430655000000e-02, + -5.552164912220000e-01, + -5.331819057460000e+00, + -1.475695967670000e+00, + 6.380743980410000e-01, + -4.964680373670000e-01, + -1.515622019770000e+00, + -4.907366752620000e+00, + 2.690261125560000e+00, + -2.369049549100000e+00, + 5.410093784330000e+00, + 4.603210449220000e+00, + -1.931533217430000e+00, + 3.507924318310000e+00, + 1.258393645290000e+00, + -7.611175179480000e-01, + 1.315948486330000e+00, + -2.294267892840000e+00, + 6.717031449080001e-02, + 6.193960458040000e-02, + -8.809099793430000e-01, + 1.672241091730000e-01, + 1.571499854330000e-01, + -7.219132184980001e-01, + -5.835191249850000e+00, + 7.063344120980000e-01, + 6.837391853330000e+00, + -4.080056190490000e+00, + 3.406372070310000e+00, + -3.287992000580000e+00, + -2.598399877550000e+00, + -3.907356739040000e+00, + 4.542290210720000e+00, + -1.551906585690000e+00, + 6.837382316590000e+00, + 5.057184219360000e+00, + -5.880475521090000e+00, + -1.710761427880000e+00, + 9.698192596440000e+00, + -6.962284564970000e+00, + 3.086368143560000e-01, + 8.858832120900000e-01, + -5.209107697010000e-02, + 1.691528916360000e+00, + -2.651745557790000e+00, + -5.742348194120000e+00, + 7.488523960110000e+00, + 1.331904530530000e+00, + -3.157395601270000e+00, + 3.809797525410000e+00, + -2.288767576220000e+00, + 4.192698001860000e+00, + -1.328428387640000e+00, + -1.205311894420000e+00, + -4.198402404790000e+00, + 8.903793334960000e+00, + 7.961265087130000e+00, + -9.088389396669999e+00, + 7.596735477450000e+00, + -3.196897745130000e+00, + -5.022188186650000e+00, + 2.134064435960000e+00, + -1.563494950530000e-01, + 3.068497657780000e+00, + 5.508975684640000e-02, + -3.531290292740000e+00, + -7.475023865700000e-01, + -2.447029113770000e+00, + 8.554000258450000e-01, + 4.302095413210000e+00, + -1.817096471790000e+00, + 3.891176939010000e+00, + 6.010509729390000e-01, + 5.460294246670000e+00, + -6.032180786130000e+00, + 7.477129250760001e-02, + -1.359348744150000e-01, + -6.105117321010000e+00, + -7.297233104710000e+00, + 7.342432498930000e+00, + -3.124629557130000e-01, + -2.832889258860000e-01, + -5.053981781010000e+00, + 3.288915395740000e+00, + -2.183739900590000e+00, + 1.028103256230000e+01, + -2.903217554090000e+00, + -5.409225940700000e+00, + 9.782433509830000e+00, + -5.603249549870000e+00, + -8.244274139400000e+00, + -1.105552792550000e+00, + 6.409606456760000e+00, + -3.149038553240000e+00, + -3.179751157760000e+00, + -5.827180385590000e+00, + 6.166737079620000e+00, + 7.257382273670000e-01, + -3.764668852090000e-02, + 4.866310656070000e-01, + 1.360864937310000e-01, + 3.050948977470000e-01, + -6.785969138150000e-01, + -5.500225543980000e+00, + 1.009296417240000e+00, + 6.792317390440000e+00, + -3.968059539790000e+00, + 3.480322599410000e+00, + -1.599868536000000e+00, + -2.220526218410000e+00, + -3.658097743990000e+00, + 4.553857803340000e+00, + -1.361107587810000e+00, + 7.085258960720000e+00, + 5.038907051090000e+00, + -5.987351417540000e+00, + -2.143391847610000e+00, + 9.570484161380000e+00, + -7.285409450530000e+00, + 2.494318783280000e-02, + 1.155897676940000e-01, + -3.843740224840000e-01, + -7.441815137859999e-01, + 8.878984451290000e-01, + -5.656735420230000e+00, + 6.436042308810000e+00, + 1.613590598110000e+00, + -4.245157241820000e+00, + 4.898301124570000e+00, + -3.082675933840000e+00, + 5.073613643650000e+00, + -1.818875670430000e+00, + -1.509439349170000e+00, + -4.372951507570000e+00, + 1.172888946530000e+01, + 8.189211845399999e+00, + -8.701965332029999e+00, + 5.727906703950000e+00, + -3.043195009230000e+00, + -3.876686096190000e+00, + 2.421135187150000e+00, + -2.161072969440000e+00, + 3.359042644500000e+00, + -4.011341333390000e-01, + -1.090533852580000e+00, + -4.840899705890000e-01, + -2.175354957580000e+00, + 1.299594283100000e+00, + 4.126968860630000e+00, + -1.466853618620000e+00, + 3.942387819290000e+00, + 4.307449981570000e-02, + 5.592699050900000e+00, + -6.493333339690000e+00, + 3.840899094940000e-02, + 1.311931848530000e+00, + -5.604900360110000e+00, + -6.720755577090000e+00, + 8.711955070500000e+00, + -4.615778625010000e-01, + -4.965251982210000e-01, + -4.979810237880000e+00, + 2.841608524320000e+00, + -3.835231065750000e+00, + 9.770565986630000e+00, + -3.052253961560000e+00, + -5.604908943180000e+00, + 9.101751327510000e+00, + -5.558669567110000e+00, + -7.457268238070000e+00, + -8.553279638290000e-01, + 5.428726673130000e+00, + -3.663117170330000e+00, + -2.075924873350000e+00, + -5.001045227050000e+00, + 3.648462533950000e+00, + 8.428713083270000e-01, + 1.354268908500000e+00, + 1.941809177400000e+00, + 1.310175657270000e+00, + 1.480124354360000e+00, + -1.539449810980000e+00, + 5.922473430630000e+00, + 5.102148056030000e+00, + -6.489307284360000e-01, + -3.381923675540000e+00, + 3.425754606720000e-01, + 2.370873212810000e+00, + -4.077580928800000e+00, + 4.904238224030000e+00, + -2.103896066550000e-02, + 6.658176422120000e+00, + -1.192796707150000e+00, + -8.952573537830000e-01, + -5.236430168150000e+00, + -5.631091594700000e+00, + -2.563776254650000e+00, + -4.466766834260000e+00, + 1.609175920490000e+00, + 1.041944742200000e+00, + 1.364164710040000e+00, + 1.291502833370000e+00, + -2.339260101320000e+00, + 5.572957515720000e+00, + -1.134800076480000e+00, + 4.720098495480000e+00, + -2.563658714290000e+00, + -4.209153354170000e-01, + 3.125771999360000e+00, + -1.267806887630000e+00, + -7.968457221980000e+00, + 6.641221523280000e+00, + -4.192606449130000e+00, + -1.159583687780000e+00, + -6.057490110400000e-01, + -5.077292919160000e+00, + 4.411964863540000e-02, + -8.017643690110000e-01, + 2.016294717790000e+00, + 5.127732276920000e+00, + -1.099307417870000e+00, + -1.027625679970000e+00, + 4.883548259740000e+00, + 6.219227790830000e+00, + -2.520091056820000e+00, + -3.239539384840000e+00, + 4.292735576630000e+00, + -2.555506527420000e-01, + 6.934853553770000e+00, + 1.620305299760000e+00, + 1.545906424520000e+00, + -1.435289978980000e+00, + 6.238204479220000e+00, + 1.411495327950000e+00, + 8.250898718830000e-01, + -6.304887771610000e+00, + -5.719518661500000e+00, + -1.496925950050000e+00, + 1.971569776540000e+00, + -6.315169811250000e+00, + 5.750143051150000e+00, + 1.135707259180000e+00, + 2.101545572280000e+00, + -3.440415143970000e+00, + -5.612119674680000e+00, + -5.970071792600000e+00, + -3.928268194200000e+00, + -5.539370059970000e+00, + -3.492007255550000e+00, + -1.724334836010000e+00, + -6.997560262680000e-01, + -4.678658485410000e+00, + 3.142867803570000e+00, + 7.819300174710000e+00, + 2.320244722070000e-02, + 1.542629241940000e+00, + 1.426926612850000e+00, + 8.995135426520000e-01, + 1.447011232380000e+00, + 1.358786940570000e+00, + -1.707808852200000e+00, + 5.879982471470000e+00, + 4.880346298220000e+00, + -7.980826497080000e-01, + -3.243922233580000e+00, + 3.905784189700000e-01, + 2.284567117690000e+00, + -3.205263614650000e+00, + 5.254508972170000e+00, + 3.504807949070000e-01, + 6.788956642150000e+00, + -1.078845381740000e+00, + -7.852023243900000e-01, + -5.343719005580000e+00, + -6.100957393650000e+00, + -2.654257297520000e+00, + -4.494858741760000e+00, + 1.106347084050000e+00, + 1.431004166600000e+00, + 1.902290701870000e+00, + 1.900834083560000e+00, + -1.325012326240000e+00, + 5.757665634160000e+00, + -9.961847066880000e-01, + 5.606773853300000e+00, + -2.028236389160000e+00, + -3.641487061980000e-01, + 2.465679883960000e+00, + 1.176172733310000e+00, + -7.028102397920000e+00, + 7.502212047580000e+00, + -3.730613470080000e+00, + -2.528377056120000e+00, + -6.801330447200000e-01, + -5.910785675050000e+00, + -3.234522044660000e-02, + -1.285968422890000e+00, + 9.587768316270000e-01, + 5.359645843510000e+00, + -2.241205453870000e+00, + 6.814104318620000e-01, + 5.869231700900000e+00, + 5.451116085050000e+00, + -1.810534358020000e+00, + -4.488101959230000e+00, + 4.299247264860000e+00, + -8.066932559010001e-01, + 4.872097969060000e+00, + 7.520533204080000e-01, + 1.354625463490000e+00, + -1.075062274930000e+00, + 5.689229011540000e+00, + 9.117079377170000e-01, + 4.592248797420000e-01, + -5.776803016660000e+00, + -5.114923477170000e+00, + -1.115265131000000e+00, + 1.036203265190000e+00, + -5.150074481960000e+00, + 7.079191684720000e+00, + 8.800071477890000e-01, + 3.811643123630000e+00, + -3.593352079390000e+00, + -6.105882644650000e+00, + -5.057968616490000e+00, + -3.206130027770000e+00, + -4.441145420070000e+00, + -2.309337139130000e+00, + -1.407379865650000e+00, + -1.086520314220000e+00, + -3.436994314190000e+00, + 1.620540142060000e+00, + 4.935715198520000e+00, + -1.683145403860000e+00, + -1.528747975830000e-01, + -3.189737200740000e-01, + 2.090053111310000e-01, + -2.973882555960000e-01, + -1.792743802070000e-01, + -1.784409761430000e+00, + -1.374384284020000e+00, + 3.460850119590000e-01, + 2.352650880810000e+00, + 3.519787788390000e-01, + 3.522233963010000e-01, + -5.359179973600000e-01, + -1.601186275480000e+00, + -3.435898721220000e-01, + 2.654283285140000e+00, + 9.391492605210000e-01, + -6.093584895130000e-01, + -1.560329079630000e+00, + 9.298568367960000e-01, + -2.835202693940000e+00, + -8.551690578459999e-01, + 3.324989795680000e+00, + -9.164073467250000e-01, + -3.422087132930000e-01, + -2.466353625060000e-01, + -3.407685160640000e-01, + -2.337546110150000e+00, + -6.111609339710000e-01, + 1.075527429580000e+00, + -1.751420021060000e+00, + -1.216232657430000e+00, + 7.747820615770000e-01, + -1.199576020240000e+00, + -2.465807676320000e+00, + -2.833245754240000e+00, + 1.554355472330000e-01, + 1.902734518050000e+00, + -5.145812630650000e-01, + 2.790251493450000e+00, + 3.346570968630000e+00, + 2.150423765180000e+00, + 9.378576278690000e-01, + -1.777487397190000e+00, + 1.849133849140000e+00, + -8.237777352330000e-01, + 3.285646200180000e+00, + 4.952137172220000e-01, + 6.217152476309999e-01, + -1.621326446530000e+00, + -1.681349396710000e+00, + 1.018322229390000e+00, + -1.312410384420000e-01, + 1.988636732100000e+00, + 3.645337522030000e-01, + -7.023292034860000e-02, + 8.699040114880000e-02, + -1.344546079640000e+00, + -3.891172111030000e-01, + -1.387541890140000e+00, + 4.987389147280000e-01, + 1.121831759810000e-01, + -7.526797056200001e-02, + -4.026273190980000e-01, + -4.776348114010000e+00, + -1.113188862800000e+00, + -1.988485753540000e-01, + 1.348647117610000e+00, + 9.309819340710000e-02, + -2.909546613690000e+00, + 2.025665283200000e+00, + -2.340528726580000e+00, + 4.617884635930000e+00, + 4.036233901980000e+00, + -2.818997859950000e+00, + 2.095704793930000e+00, + 9.674988389019999e-01, + 7.633241266010000e-02, + -1.442097663880000e+00, + 6.801174879070000e-01, + -3.235719203950000e-01, + -3.478675186630000e-01, + -6.808426380160000e-01, + -1.826792955400000e-01, + 2.384246140720000e-01, + -1.769528269770000e+00, + -1.281649351120000e+00, + 3.532580137250000e-01, + 2.539855718610000e+00, + 6.385080814360000e-01, + 5.272760987280000e-01, + -1.392558574680000e+00, + -1.096787929530000e+00, + -6.700718402860000e-01, + 2.833888292310000e+00, + 7.270627021790000e-01, + 5.076971054079999e-01, + -1.111131310460000e+00, + 1.498422980310000e+00, + -2.999219179150000e+00, + -9.526681303980000e-01, + 3.292700767520000e+00, + -3.686927258970000e-01, + -3.217690885070000e-01, + -3.069959580900000e-01, + 5.791085958480000e-01, + -1.284232378010000e+00, + -7.580053210260000e-01, + 1.912304759030000e+00, + 9.396418929100000e-01, + 5.724324584010000e-01, + 2.175353765490000e+00, + -6.468558311460000e-01, + -1.494356155400000e+00, + -2.014193296430000e+00, + -5.694824457170000e-01, + -2.248529344800000e-01, + -8.229376077650000e-01, + 3.949685096740000e+00, + 3.543251276020000e+00, + 2.281972646710000e+00, + 1.943289041520000e+00, + -9.894259572030000e-01, + 2.035849332810000e+00, + -1.580493330960000e+00, + 4.456837177280000e+00, + 1.725805759430000e+00, + -1.020970568060000e-01, + -2.131294727330000e+00, + -1.061456918720000e+00, + 6.915397048000000e-01, + 7.719780802730000e-01, + 2.908587932590000e+00, + 5.690502524380000e-01, + -2.474333196880000e-01, + -6.572255492210000e-01, + -1.958859682080000e+00, + 3.660668432710000e-02, + -5.300908684730000e-01, + 9.493894577030000e-01, + -4.366004839540000e-02, + -5.986827611920000e-01, + -3.794247806070000e-01, + -4.619561672210000e+00, + -2.201677322390000e+00, + 8.499445319180000e-01, + -1.907920390370000e-01, + 1.200070083140000e-01, + -4.563353061680000e+00, + 8.497208952899999e-01, + -2.950462818150000e+00, + 4.835668563840000e+00, + 3.267775297160000e+00, + -2.030944824220000e+00, + 2.674215555190000e+00, + -5.168353766200000e-02, + 4.115885496140000e-01, + -2.231675982480000e-01, + -1.076563239100000e+00, + 3.023847937580000e-01, + 7.517128437760000e-02, + 9.161883592610000e-02, + -3.246337920430000e-02, + -5.047417879100000e-01, + -7.336333394050000e-01, + -5.859557151790000e+00, + 8.500495553020000e-01, + 7.218196392060000e+00, + -4.025275707240000e+00, + 3.439582586290000e+00, + -3.093195676800000e+00, + -2.258472442630000e+00, + -3.758481979370000e+00, + 4.603911399840000e+00, + -1.514954686160000e+00, + 8.109827995300000e+00, + 5.266974925990000e+00, + -5.903449058530000e+00, + -2.089420795440000e+00, + 9.676720619199999e+00, + -7.168750762940000e+00, + -3.278048634530000e-01, + 5.056723356250000e-01, + -6.668490171430000e-01, + -9.461778402330000e-02, + -2.815474033360000e+00, + -5.647141933440000e+00, + 6.885267734530000e+00, + 2.360660314560000e+00, + -3.238867521290000e+00, + 3.450303554530000e+00, + -3.873553276060000e+00, + 4.477939128880000e+00, + -1.835685729980000e+00, + -4.849479198460000e-01, + -3.133643865590000e+00, + 1.100225353240000e+01, + 6.861036300660000e+00, + -7.851704120640000e+00, + 6.784425258640000e+00, + -4.530366897580000e+00, + -3.831786870960000e+00, + 2.287440061570000e+00, + -4.706759154800000e-01, + 4.979698657990000e+00, + 4.726586341860000e-01, + -2.483647346500000e+00, + -6.466508507730000e-01, + -1.823057413100000e+00, + 3.057702779770000e-01, + 2.791750907900000e+00, + -1.894873976710000e+00, + 2.880466938020000e+00, + 1.236828044060000e-01, + 6.079995155330000e+00, + -5.986978054050000e+00, + 1.170360326770000e+00, + 2.091582864520000e-01, + -5.759894371030000e+00, + -7.354652404790000e+00, + 7.402434825900000e+00, + 9.006841778760000e-01, + -1.952062010770000e+00, + -5.198405742650000e+00, + 3.824101686480000e+00, + -2.694934844970000e+00, + 1.072096252440000e+01, + -4.944955348970000e+00, + -6.486520290370000e+00, + 9.016144752500001e+00, + -6.373165607450000e+00, + -8.725139617920000e+00, + -1.554164052010000e+00, + 6.162691593170000e+00, + -3.376324892040000e+00, + -2.694197416310000e+00, + -5.312100410460000e+00, + 4.130516529080000e+00, + 3.310091048480000e-02, + 1.680577248330000e-01, + 3.262156620620000e-02, + -1.851923614740000e-01, + -1.455870922650000e-03, + -5.941075682640000e-01, + -5.710972309110000e+00, + 8.487926721570000e-01, + 6.373019695280000e+00, + -3.496703386310000e+00, + 3.300396680830000e+00, + -3.274107456210000e+00, + -2.363126039500000e+00, + -3.663074254990000e+00, + 4.463438034060000e+00, + -1.720840811730000e+00, + 7.724452018740000e+00, + 5.098505496980000e+00, + -5.985454559330000e+00, + -1.898999691010000e+00, + 9.375988006589999e+00, + -6.998157024380000e+00, + 8.464859426019999e-02, + 3.791669905190000e-01, + 2.808629535140000e-02, + -4.063843190670000e-01, + -9.240772128110000e-01, + -5.574220180510000e+00, + 8.053128242490001e+00, + 1.362932682040000e+00, + -3.921463012700000e+00, + 2.084272384640000e+00, + -2.785701751710000e+00, + 3.626130342480000e+00, + -2.083103179930000e+00, + -6.098445653920000e-01, + -4.095820903780000e+00, + 9.098815917970001e+00, + 8.404207229610000e+00, + -8.069105148320000e+00, + 6.739826679230000e+00, + -4.066614627840000e+00, + -3.764332294460000e+00, + 7.569054365160000e-01, + 8.037021011110000e-02, + 4.996454715730000e+00, + -4.492902755740000e-01, + -1.457728981970000e+00, + -2.826190888880000e-01, + -2.033383846280000e+00, + 7.078287005420000e-01, + 2.937842130660000e+00, + -1.468644857410000e+00, + 3.507493257520000e+00, + -1.272256076340000e-01, + 5.996298313140000e+00, + -5.817820072170000e+00, + 4.924921393390000e-01, + -3.709477931260000e-02, + -4.079641342160000e+00, + -6.842388153080000e+00, + 9.248184204099999e+00, + 1.311165839430000e-01, + -5.641735196110000e-01, + -5.320246219640000e+00, + 1.573926687240000e+00, + -3.101831674580000e+00, + 1.003804969790000e+01, + -4.318449974060000e+00, + -5.604252815250000e+00, + 9.236025810239999e+00, + -6.733495712280000e+00, + -8.008484840390000e+00, + -3.397292271260000e-02, + 7.503119945530000e+00, + -3.946012020110000e+00, + -3.730661153790000e+00, + -6.282016754150000e+00, + 5.993538856510000e+00, + 1.626181960110000e+00, + 1.172570228580000e+00, + 1.389951348300000e+00, + 1.503577828410000e+00, + 1.177932739260000e+00, + -1.368827939030000e+00, + 5.522803783420000e+00, + 4.976375103000000e+00, + -1.365309119220000e+00, + -3.282902479170000e+00, + 1.975309103730000e-01, + 2.453224182130000e+00, + -3.438127279280000e+00, + 5.146382331850000e+00, + 5.190588235860000e-01, + 6.667480945590000e+00, + -1.137554883960000e+00, + -6.939369440080000e-01, + -5.495780467990000e+00, + -5.689083099370000e+00, + -2.565524101260000e+00, + -4.851126194000000e+00, + 1.695635080340000e+00, + 1.167966008190000e+00, + 2.298551082610000e+00, + 1.811453461650000e+00, + -2.437101840970000e+00, + 6.049694538120000e+00, + -7.152055501940000e-01, + 5.557796955110000e+00, + -1.025771498680000e+00, + 3.600886091590000e-02, + 3.519965410230000e+00, + -5.137255191800000e-01, + -7.333683013920000e+00, + 8.615667343140000e+00, + -4.010912418370000e+00, + -1.248765110970000e+00, + -1.100811719890000e+00, + -5.672023773190000e+00, + -2.321086227890000e-01, + -2.046019792560000e+00, + 1.707882523540000e+00, + 5.148495674130000e+00, + -9.731457233430000e-01, + 7.003411650660000e-01, + 5.280765056610000e+00, + 6.159456729890000e+00, + -2.022757053380000e+00, + -5.187856674190000e+00, + 4.550545215610000e+00, + 1.490321904420000e-01, + 6.581026554110000e+00, + -2.087002694610000e-01, + 1.355298280720000e+00, + -3.746730387210000e-01, + 6.147551059720000e+00, + 1.668822407720000e+00, + 1.496809720990000e+00, + -5.986100196840000e+00, + -5.721432685850000e+00, + -9.320697784420000e-01, + 1.749570369720000e+00, + -5.989395141600000e+00, + 6.048795223240000e+00, + 1.119173169140000e+00, + 7.610349059100000e-01, + -3.432793140410000e+00, + -4.644540309910000e+00, + -5.053059577940000e+00, + -3.623472690580000e+00, + -4.716439723970000e+00, + -3.361627817150000e+00, + -1.885765075680000e+00, + -1.139782667160000e+00, + -4.099610805510000e+00, + 2.772935390470000e+00, + 5.228566169740000e+00, + -1.072993040080000e+00, + 1.382704973220000e+00, + 1.325131058690000e+00, + 1.457599520680000e+00, + 1.776558756830000e+00, + 1.340561628340000e+00, + -1.834636211400000e+00, + 5.934601306920000e+00, + 5.052594184880000e+00, + 4.653659760950000e-01, + -3.461533308030000e+00, + 1.228611767290000e-01, + 2.485875368120000e+00, + -3.961566448210000e+00, + 5.076570510860000e+00, + 2.226001918320000e-01, + 6.354016780850000e+00, + -7.862415909770000e-01, + -7.342800498010000e-01, + -5.244709491730000e+00, + -5.637573242190000e+00, + -2.628671169280000e+00, + -5.124634265900000e+00, + 1.430443763730000e+00, + 1.572474837300000e+00, + 1.127785801890000e+00, + 4.968581795690000e-01, + -6.631267070770001e-01, + 5.768858432770000e+00, + -9.583113193510000e-01, + 5.534383773800000e+00, + -2.716557264330000e+00, + -1.325586080550000e+00, + 3.299489974980000e+00, + -5.782862901690000e-01, + -6.626712799070000e+00, + 8.084467887880001e+00, + -3.679150819780000e+00, + -1.638245344160000e+00, + -1.807034164670000e-01, + -5.214522361760000e+00, + -7.138190865520000e-01, + -1.300812006000000e+00, + 1.774313926700000e+00, + 5.258355617520000e+00, + -1.769102215770000e+00, + 7.714496850970000e-01, + 5.688841342930000e+00, + 6.552260875700000e+00, + -1.987690925600000e+00, + -3.266489744190000e+00, + 4.213114738460000e+00, + -5.310241580010000e-01, + 6.868659973140000e+00, + -7.274074852470000e-02, + 1.679481267930000e+00, + -1.513986945150000e+00, + 5.729360103610000e+00, + 1.686759591100000e+00, + 1.262606859210000e+00, + -6.613810539250000e+00, + -4.776990890500000e+00, + -2.401236534120000e+00, + 2.317794412370000e-02, + -6.142440319060000e+00, + 6.266556262970000e+00, + -3.608504533770000e-01, + 1.733547210690000e+00, + -3.371829032900000e+00, + -6.290993213650000e+00, + -6.971240043640000e+00, + -3.698520421980000e+00, + -4.100860118870000e+00, + -2.880540370940000e+00, + -2.296403497460000e-01, + -2.290160655980000e+00, + -3.309629201890000e+00, + 2.491979837420000e+00, + 5.859418392180000e+00, + -5.224664211270000e-01, + -5.504506826400000e-02, + -2.793763577940000e-01, + -2.235670387740000e-01, + -4.363063573840000e-01, + -4.942052960400000e-01, + -1.880131483080000e+00, + -1.366422414780000e+00, + 5.052148699760000e-01, + 1.649912118910000e+00, + 4.775464236740000e-01, + 5.704838633540000e-01, + -8.060555458070000e-01, + -1.375774145130000e+00, + -3.020418882370000e-01, + 2.779955625530000e+00, + 7.351589798930001e-01, + -1.666250079870000e-01, + -8.022764325140000e-01, + 1.046251177790000e+00, + -2.833593606950000e+00, + -9.451897740360000e-01, + 3.629102230070000e+00, + -2.448089122770000e-01, + -2.096216827630000e-01, + 2.794843316080000e-01, + -7.129020690920000e-01, + -1.496192932130000e+00, + -1.197840690610000e+00, + 2.629631519320000e+00, + -7.424542307849999e-01, + -3.200132250790000e-01, + -2.899867594240000e-01, + -1.321077346800000e+00, + -3.074616193770000e+00, + -1.920323014260000e+00, + 1.254934370520000e-01, + 1.788156330590000e-01, + -1.026946783070000e+00, + 3.130072832110000e+00, + 3.582501173020000e+00, + 2.699254989620000e+00, + 6.482114195820000e-01, + -1.602011442180000e+00, + 1.584347724910000e+00, + -1.736600041390000e+00, + 4.244009494780000e+00, + 4.547382891180000e-01, + 3.705235719680000e-01, + -1.730655312540000e+00, + -2.005293846130000e+00, + 2.408383488660000e-01, + 4.551404118540000e-01, + 2.053569793700000e+00, + 2.786207675930000e+00, + -2.897492945190000e-01, + -9.249030947690000e-01, + -2.244829654690000e+00, + -8.403303027150000e-01, + -2.888730466370000e-01, + 1.051218152050000e+00, + -6.796818971630000e-01, + 3.047535419460000e-01, + -1.793734431270000e+00, + -3.128473758700000e+00, + -1.452058553700000e+00, + 5.473279356960000e-01, + -1.509972333910000e+00, + -6.704457402230000e-01, + -4.307820796970000e+00, + 2.134185075760000e+00, + -2.955245018010000e+00, + 5.070744037630000e+00, + 2.609688758850000e+00, + -8.176087141040000e-01, + 2.955941438670000e+00, + 6.809944510460000e-01, + 4.078796207900000e-01, + -1.122546076770000e+00, + 3.318158686160000e-01, + -3.339834213260000e-01, + -2.850950956340000e-01, + -4.510798752310000e-01, + -4.790821373460000e-01, + -7.192847132680000e-01, + -1.954634666440000e+00, + -1.264880180360000e+00, + 2.509875297550000e-01, + 1.786578297620000e+00, + -4.324775561690000e-02, + 6.240046024320000e-01, + -8.668883442880000e-01, + -1.029181838040000e+00, + -6.307554245000000e-01, + 2.521970510480000e+00, + 4.791848659520000e-01, + 3.158504068850000e-01, + -1.287618279460000e+00, + 9.430972933770000e-01, + -3.122714519500000e+00, + -7.359101176260000e-01, + 3.493539333340000e+00, + -1.854060739280000e-01, + -1.855099499230000e-01, + 3.144097328190000e-01, + -5.265355482700000e-02, + -1.708078622820000e+00, + -1.341469049450000e+00, + 2.471311807630000e+00, + -1.712384819980000e+00, + -7.085983157160000e-01, + -8.071384578940000e-02, + -6.830609440800000e-01, + -2.630412340160000e+00, + -4.916209280490000e-01, + 2.318155765530000e-01, + 1.353592872620000e-01, + -1.423053979870000e+00, + 4.676080703740000e+00, + 3.488440275190000e+00, + 2.711319446560000e+00, + 3.378850817680000e-01, + -2.158375501630000e+00, + 1.094291329380000e+00, + -7.808815836910000e-01, + 5.966824531560000e+00, + 2.099850624800000e-01, + -1.208259940150000e+00, + -2.275044918060000e+00, + -1.414466738700000e+00, + 1.779484599830000e-01, + 3.071471452710000e-01, + 1.767740726470000e+00, + 1.528809666630000e+00, + -1.629824191330000e-01, + -1.110285878180000e+00, + -1.880620121960000e+00, + 1.188581362370000e-01, + -3.692877590660000e-01, + 1.027172803880000e-01, + 3.245265781880000e-01, + -3.436945974830000e-01, + -4.602911472320000e-01, + -4.381859302520000e+00, + -1.666181802750000e+00, + -6.424109637740000e-02, + 2.453246116640000e-01, + 6.430137157440000e-02, + -3.722368955610000e+00, + 1.242552161220000e+00, + -3.777804374690000e+00, + 6.240521907810000e+00, + 2.411148786540000e+00, + -1.309404730800000e+00, + 1.285003304480000e+00, + 4.756116271020000e-01, + 6.174366474150000e-01, + -8.959282040600000e-01, + 8.891391158100000e-01, + 3.381460160020000e-02, + -3.157743066550000e-02, + 1.203490272160000e-01, + 9.541760385040000e-02, + -6.857461333270000e-01, + -2.087555080650000e-01, + -5.749920368190000e+00, + 8.165748119350000e-01, + 6.921222686770000e+00, + -3.712064027790000e+00, + 2.944363355640000e+00, + -3.196668148040000e+00, + -2.492595434190000e+00, + -3.838688850400000e+00, + 4.511829853060000e+00, + -1.469818234440000e+00, + 7.068470954900000e+00, + 5.404096603390000e+00, + -5.992481231690000e+00, + -2.026108026500000e+00, + 9.491702079770000e+00, + -6.928091526030000e+00, + 3.439648151400000e-01, + 7.144914865490000e-01, + -1.846785545350000e-01, + 6.189477071170000e-02, + -4.233887195590000e-01, + -5.352157592770000e+00, + 6.450698375700000e+00, + 1.753185629840000e+00, + -4.558671474460000e+00, + 3.584219455720000e+00, + -2.881424665450000e+00, + 5.095438003540000e+00, + -1.169998168950000e+00, + -1.724461317060000e+00, + -5.004137992860000e+00, + 1.006658077240000e+01, + 8.238056182859999e+00, + -7.806700229640000e+00, + 7.675765037540000e+00, + -4.948610782620000e+00, + -4.654055595400000e+00, + 2.040698528290000e+00, + -1.309326291080000e+00, + 4.196349143980000e+00, + -1.415831744670000e-01, + -2.722726106640000e+00, + -6.027518510820000e-01, + -1.943731069560000e+00, + 1.271984696390000e+00, + 4.210711956020000e+00, + -2.388520717620000e+00, + 4.095507621770000e+00, + 7.963207960130000e-01, + 5.320824146270000e+00, + -6.294558525090000e+00, + -1.418539583680000e-01, + -8.157475590710001e-01, + -5.143531799320000e+00, + -7.742225646970000e+00, + 8.567920684810000e+00, + 3.606232106690000e-01, + -3.013290464880000e-01, + -4.630620956420000e+00, + 3.609673261640000e+00, + -3.171696424480000e+00, + 9.696733474729999e+00, + -3.457558393480000e+00, + -6.270768642430000e+00, + 9.385123252870001e+00, + -6.270694255830000e+00, + -7.923981666560000e+00, + -5.972816944120000e-01, + 6.069862842560000e+00, + -4.098095417020000e+00, + -3.208410978320000e+00, + -5.773823738100000e+00, + 5.344565868380000e+00, + 2.327368557450000e-01, + 1.950175166130000e-01, + -3.051056526600000e-02, + 3.943881019950000e-02, + 4.091970250010000e-02, + -6.326064467430000e-01, + -5.991307258610000e+00, + 6.533476114270000e-01, + 6.773619174960000e+00, + -4.409441947940000e+00, + 3.294014215470000e+00, + -3.219889163970000e+00, + -2.266535997390000e+00, + -3.714373826980000e+00, + 4.469436168670000e+00, + -1.514431953430000e+00, + 7.102764129640000e+00, + 5.018420219420000e+00, + -6.002342224120000e+00, + -2.107371330260000e+00, + 9.957970619199999e+00, + -7.006900310520000e+00, + -2.680839896200000e-01, + -1.773886382580000e-01, + 3.019018769260000e-01, + 1.073366627100000e-01, + -8.372894525530000e-01, + -5.312820434570000e+00, + 7.876119136810000e+00, + 2.692483901980000e+00, + -4.834757804870000e+00, + 3.927650451660000e+00, + -3.476879835130000e+00, + 4.825781822200000e+00, + -9.377095699310000e-01, + -1.304419636730000e+00, + -3.968918800350000e+00, + 1.109782886510000e+01, + 8.241464614870001e+00, + -7.874166011810000e+00, + 6.678542613980000e+00, + -3.964813232420000e+00, + -2.822091102600000e+00, + 9.767603874210000e-01, + -7.169360518460000e-01, + 4.086388111110000e+00, + 9.495439529420000e-01, + -2.535501480100000e+00, + -7.615503668790000e-01, + -1.526181101800000e+00, + 8.138331770900000e-01, + 4.526727676390000e+00, + -2.473812818530000e+00, + 3.503407955170000e+00, + 2.722939848900000e-01, + 4.448707580570000e+00, + -6.042377948760000e+00, + 5.673653632400000e-02, + -4.827099740510000e-01, + -4.940951824190000e+00, + -8.122076988220000e+00, + 8.040938377380000e+00, + 8.324766904120000e-02, + -9.193059206010000e-01, + -4.357923984530000e+00, + 2.830671548840000e+00, + -2.391032457350000e+00, + 1.008061504360000e+01, + -3.334020853040000e+00, + -5.576540470120000e+00, + 9.573047637940000e+00, + -6.016329288480000e+00, + -7.014771938320000e+00, + -1.477725505830000e-01, + 6.702722549440000e+00, + -3.348510026930000e+00, + -2.735492229460000e+00, + -5.797047138210000e+00, + 5.517522811890000e+00, + 1.460306763650000e+00, + 1.320204257970000e+00, + 1.357255697250000e+00, + 1.246732234950000e+00, + 2.523178339000000e+00, + -1.255722403530000e+00, + 5.903532505040000e+00, + 5.052517414090000e+00, + -7.235508561130000e-01, + -2.690096139910000e+00, + -7.847252488140000e-02, + 2.513144016270000e+00, + -3.210197925570000e+00, + 5.279369354250000e+00, + 2.212145626540000e-01, + 6.664721488950000e+00, + -1.415256142620000e+00, + -5.639263987540000e-01, + -5.153832435610000e+00, + -5.738152027130000e+00, + -2.497596025470000e+00, + -4.584547042850000e+00, + 1.642505049710000e+00, + 4.893572330470000e-01, + 1.617910265920000e+00, + 1.807204008100000e+00, + -2.214445114140000e+00, + 5.913596630100000e+00, + -7.112388014790000e-01, + 5.785134792330000e+00, + -3.097033739090000e+00, + 1.999848186970000e-01, + 3.928488016130000e+00, + -5.707754492760000e-01, + -8.221603393550000e+00, + 8.315915107730000e+00, + -4.191184043880000e+00, + -2.130784273150000e+00, + -1.537209302190000e-01, + -5.092944145200000e+00, + -1.970937848090000e+00, + -7.898183465000000e-01, + 2.481116950510000e-01, + 5.528788566590000e+00, + -9.785425066950000e-01, + 1.932609558110000e+00, + 6.005356311800000e+00, + 6.555881500240000e+00, + -1.570413351060000e+00, + -3.758255958560000e+00, + 4.127103328700000e+00, + -5.701926946640000e-01, + 6.618818759920000e+00, + 1.238615810870000e-01, + 1.340529561040000e+00, + -1.033650636670000e+00, + 6.155262947080000e+00, + 1.410553336140000e+00, + 1.269831299780000e+00, + -7.006717681880000e+00, + -4.407847404480000e+00, + -3.286846876140000e+00, + 7.889153361320000e-01, + -6.288702011110000e+00, + 5.107439517970000e+00, + 1.140911817550000e+00, + 2.298424959180000e+00, + -4.904612064360000e+00, + -5.267558097840000e+00, + -5.085460186000000e+00, + -2.838238954540000e+00, + -4.897748947140000e+00, + -3.422698259350000e+00, + -1.687537789340000e+00, + -1.284703612330000e+00, + -3.236533403400000e+00, + 1.542528152470000e+00, + 6.885967731480000e+00, + 7.478571534160000e-01, + 9.546360969540000e-01, + 1.500158667560000e+00, + 1.313432455060000e+00, + 1.443809032440000e+00, + 1.290388345720000e+00, + -1.715098977090000e+00, + 6.213707447050000e+00, + 5.233496665950000e+00, + -7.427709698680000e-01, + -3.335685253140000e+00, + 2.122644782070000e-01, + 2.553476095200000e+00, + -3.739255905150000e+00, + 5.409385681150000e+00, + 5.946850776670000e-01, + 6.709173679350000e+00, + -1.507812976840000e+00, + -5.893715023990000e-01, + -5.240851879120000e+00, + -5.700608730320000e+00, + -2.455654621120000e+00, + -4.543231010440000e+00, + 9.743906855580000e-01, + 1.649300694470000e+00, + 1.566984891890000e+00, + 1.458342909810000e+00, + -1.396861433980000e+00, + 6.084940433500000e+00, + -1.229389309880000e+00, + 6.226005077360000e+00, + -4.364681243900000e+00, + -4.563870429990000e-01, + 3.421830892560000e+00, + -9.485649466510000e-01, + -7.405334949490000e+00, + 7.774432659150000e+00, + -2.971049785610000e+00, + -1.991999745370000e+00, + -9.646409749979999e-01, + -5.731170654300000e+00, + -1.516666173930000e+00, + -4.804503917690000e-01, + 1.951716423030000e+00, + 4.944007396700000e+00, + -1.162786602970000e+00, + 6.913353204729999e-01, + 4.808848381040000e+00, + 6.437235832210000e+00, + -2.099269866940000e+00, + -4.098063945770000e+00, + 4.063461780550000e+00, + -1.410765528680000e+00, + 7.270352840420000e+00, + 8.634105324750000e-01, + 1.552376270290000e+00, + 1.007891818880000e-02, + 5.076745986940000e+00, + 2.127732753750000e+00, + 1.463284254070000e+00, + -7.514727115630000e+00, + -5.790726184840000e+00, + -1.649749875070000e+00, + 1.392232656480000e+00, + -4.749112606050000e+00, + 5.365235328670000e+00, + -6.038554310799999e-01, + 2.402053117750000e+00, + -4.051784515380000e+00, + -4.414393424990000e+00, + -6.063510417940000e+00, + -3.054129362110000e+00, + -4.956162929530000e+00, + -3.437450885770000e+00, + -1.646366596220000e+00, + -2.957535684110000e-01, + -4.646486759190000e+00, + 2.724900722500000e+00, + 5.932344436650000e+00, + -9.000765085220001e-01, + -3.669034242630000e-01, + -2.927172482010000e-01, + -3.305322825910000e-01, + -6.310378015040000e-02, + 4.343787133690000e-01, + -1.828394055370000e+00, + -1.160579085350000e+00, + 6.066550612450000e-01, + 2.507289409640000e+00, + 1.839642643930000e+00, + 5.911430716510000e-01, + -6.990013718610000e-01, + -1.452115297320000e+00, + -7.873939871790000e-01, + 2.660018682480000e+00, + 6.310583949090000e-01, + -5.821302533150000e-02, + -1.371749043460000e+00, + 8.403716087340000e-01, + -2.932797670360000e+00, + -1.024250745770000e+00, + 3.592888355260000e+00, + -1.368063926700000e+00, + -5.254628062250000e-01, + -5.275487303730000e-01, + -3.012327253820000e-01, + -1.672868251800000e+00, + -7.604942321780001e-01, + 1.985542297360000e+00, + -2.829069793220000e-01, + -2.534469664100000e-01, + 5.319223999980000e-01, + -1.044669508930000e+00, + -2.518397092820000e+00, + -1.824466466900000e+00, + -6.695296168330001e-01, + 7.262557148930000e-01, + -3.645651638510000e-01, + 2.664142370220000e+00, + 5.134296417240000e+00, + 2.071856737140000e+00, + 1.523244738580000e+00, + -2.719556570050000e+00, + 1.968940973280000e+00, + -2.581704139710000e+00, + 2.874384164810000e+00, + 4.549257457260000e-01, + 1.726126819850000e-01, + -1.730836868290000e+00, + -3.088014125820000e+00, + 3.324854075910000e-01, + 7.273362874979999e-01, + 3.145305395130000e+00, + 2.429086208340000e+00, + 7.455266118050000e-01, + -7.426808476450000e-01, + -1.400828361510000e+00, + -4.419658780100000e-01, + -2.509028017520000e-01, + 1.731877207760000e+00, + -4.317097738390000e-02, + 7.524648308750000e-01, + -1.996275305750000e+00, + -5.838328361510000e+00, + -2.386002063750000e+00, + 1.293600440030000e+00, + -8.325977623460000e-02, + -3.034505248070000e-01, + -3.657771825790000e+00, + 1.418898940090000e+00, + -2.139402151110000e+00, + 5.087988376620000e+00, + 2.753244400020000e+00, + -2.846307754520000e+00, + 2.731838226320000e+00, + 5.970697999000000e-01, + -6.550374627110001e-01, + -1.493415951730000e+00, + -5.339375734330000e-01, + -3.903470933440000e-01, + -2.585364580150000e-01, + -2.183944135900000e-01, + -3.909703195100000e-01, + -4.147672057150000e-01, + -1.798434138300000e+00, + -1.667657971380000e+00, + 5.015199780460000e-01, + 2.645995616910000e+00, + -1.203332424160000e+00, + 3.621398210530000e-01, + -8.119441866870000e-01, + -1.413804292680000e+00, + -6.644402742390000e-01, + 2.675947904590000e+00, + 7.727962732320000e-01, + -4.103859141470000e-02, + -1.408326148990000e+00, + 8.123312592510000e-01, + -3.057101726530000e+00, + -7.773973941800000e-01, + 3.402000904080000e+00, + 6.151900887490001e-01, + -7.297321557999999e-01, + 2.327812090520000e-02, + -1.082670688630000e+00, + -2.346722364430000e+00, + -8.390235900880000e-02, + 1.896261692050000e+00, + -1.799621939660000e+00, + 7.240164875980000e-01, + 4.357683956620000e-01, + -6.822923421860000e-01, + -3.444576025010000e+00, + -1.711621284480000e+00, + -7.764565348630000e-01, + 3.544046282770000e-01, + -7.977362871170000e-01, + 4.207398891450000e+00, + 3.921873807910000e+00, + 2.468615055080000e+00, + 5.575127601620000e-01, + -1.557206869130000e+00, + 1.702566266060000e+00, + -1.473633885380000e+00, + 3.172498226170000e+00, + 7.467402815820000e-01, + 9.635028839110000e-01, + -1.160769820210000e+00, + -2.006458044050000e+00, + -1.504999101160000e-01, + -5.572896003720000e-01, + 2.872509002690000e+00, + 8.720543384550000e-01, + -5.871633291240000e-01, + -8.370777368550000e-01, + -1.269666671750000e+00, + 2.727271318440000e-01, + -6.818958520890001e-01, + 3.065948247910000e+00, + -6.111587286000000e-01, + -9.684880375860000e-01, + -3.517326116560000e-01, + -4.622489452360000e+00, + -2.247622251510000e+00, + -1.012242197990000e+00, + -9.730490446090000e-01, + -9.138141870499999e-01, + -3.562011957170000e+00, + 2.328353166580000e+00, + -2.878750085830000e+00, + 5.043127536770000e+00, + 2.841848134990000e+00, + -1.740145206450000e+00, + 2.595385551450000e+00, + -9.691672325130000e-01, + -1.162158250810000e+00, + -1.209074854850000e+00, + -1.127374410630000e+00, + 9.630536660550000e-03, + 6.065873056650000e-02, + -2.037030644710000e-03, + -4.277152121070000e-01, + -8.535583317280000e-02, + -5.209308266640000e-01, + -5.659321784970000e+00, + 4.613494575020000e-01, + 6.716145038600000e+00, + -4.041176319120000e+00, + 3.354246854780000e+00, + -3.315677404400000e+00, + -2.303269147870000e+00, + -3.711452722550000e+00, + 4.362045288090000e+00, + -1.623425722120000e+00, + 7.396951675420000e+00, + 5.247176170350000e+00, + -5.944420337680000e+00, + -2.114784479140000e+00, + 9.676429748540000e+00, + -7.322021007540000e+00, + -6.606022268530000e-02, + 2.273139655590000e-01, + -2.159042656420000e-01, + 9.451273083690000e-02, + -1.508466124530000e+00, + -5.989281177520000e+00, + 6.357117176060000e+00, + 1.853940486910000e+00, + -4.184288501740000e+00, + 3.088640451430000e+00, + -3.182161569600000e+00, + 4.786731243130000e+00, + -1.586683869360000e+00, + -1.452156424520000e+00, + -4.989334583280000e+00, + 1.139584159850000e+01, + 7.796912670140000e+00, + -8.024810791020000e+00, + 6.096717834470000e+00, + -3.655659437180000e+00, + -4.777515411380000e+00, + 1.741340160370000e+00, + -1.177918910980000e+00, + 4.215963840480000e+00, + 3.800390958790000e-01, + -1.974271416660000e+00, + -1.302578002210000e-01, + -2.250971317290000e+00, + 7.128939628600000e-01, + 4.880222320560000e+00, + -2.574378252030000e+00, + 3.959723711010000e+00, + -2.626376450060000e-01, + 5.906667232510000e+00, + -5.802387237550000e+00, + 6.527243852620001e-01, + 5.756642222400000e-01, + -3.978940486910000e+00, + -7.625265121460000e+00, + 8.168082237240000e+00, + -7.513258457180000e-01, + -1.101699590680000e+00, + -5.101425170900000e+00, + 2.831897258760000e+00, + -3.545514345170000e+00, + 9.889324188230001e+00, + -4.002418041230000e+00, + -6.093084335330000e+00, + 9.823799133300000e+00, + -6.429923057560000e+00, + -7.805878639220000e+00, + 2.529232501980000e-01, + 5.839330196380000e+00, + -4.071688175200000e+00, + -2.198423147200000e+00, + -5.720729351040000e+00, + 5.677459239960000e+00, + 1.190882250670000e-01, + 8.081260323520000e-01, + 3.520831167700000e-01, + 1.825248077510000e-02, + -4.752640426160000e-02, + -8.079195022580000e-01, + -5.555650711060000e+00, + 8.701836466789999e-01, + 6.880898475650000e+00, + -3.793685436250000e+00, + 3.479818344120000e+00, + -3.693214654920000e+00, + -2.246670007710000e+00, + -3.800233364110000e+00, + 4.462653636930000e+00, + -1.328132748600000e+00, + 7.084301471710000e+00, + 5.157876491550000e+00, + -5.743464946750000e+00, + -2.097512245180000e+00, + 9.680786132810001e+00, + -6.761145591740000e+00, + 6.955102831130000e-02, + -7.028040289880000e-01, + 4.181621596220000e-02, + 4.214728623630000e-02, + -3.277648389340000e-01, + -5.754213809970000e+00, + 5.830962181090000e+00, + 3.129570484160000e+00, + -3.725561857220000e+00, + 2.682979345320000e+00, + -3.504952907560000e+00, + 5.392515659330000e+00, + -2.406797409060000e+00, + -1.605872750280000e+00, + -5.299463272090000e+00, + 1.121016883850000e+01, + 8.190453529359999e+00, + -8.927849769590001e+00, + 7.095485687260000e+00, + -3.966946840290000e+00, + -5.038703918460000e+00, + 8.490502238270000e-01, + -1.545431733130000e+00, + 4.174907207490000e+00, + 2.059302031990000e-01, + -1.411464571950000e+00, + -8.484300971030000e-01, + -1.918268799780000e+00, + 1.199058890340000e+00, + 3.205352783200000e+00, + -2.251411676410000e+00, + 4.358930110930000e+00, + -8.054488897320000e-02, + 5.258029937740000e+00, + -6.107575893400000e+00, + 1.070124879480000e-01, + -6.156740337610000e-02, + -4.932942867280000e+00, + -7.749691963200000e+00, + 7.885153293610000e+00, + 3.340045809750000e-01, + -1.083877921100000e+00, + -5.214245796200000e+00, + 2.358659744260000e+00, + -3.254014730450000e+00, + 9.427348136899999e+00, + -4.378221511840000e+00, + -5.733643531800000e+00, + 9.562493324280000e+00, + -5.831804275510000e+00, + -7.771369457240000e+00, + -4.109905958180000e-01, + 6.648979187010000e+00, + -2.730093717580000e+00, + -3.147227048870000e+00, + -5.174530982970000e+00, + 5.521812438960000e+00, + 1.387478351590000e+00, + 1.550772786140000e+00, + 1.471274495120000e+00, + 1.102873563770000e+00, + 1.233063220980000e+00, + -1.707067012790000e+00, + 5.949390411380000e+00, + 5.076851844790000e+00, + -6.873720884320000e-01, + -3.431933641430000e+00, + 1.181404590610000e-01, + 2.468028068540000e+00, + -3.448046922680000e+00, + 5.232039928440000e+00, + 2.870481610300000e-01, + 6.551589965820000e+00, + -1.677079796790000e+00, + -6.606028079990000e-01, + -5.279221057890000e+00, + -5.852671623230000e+00, + -2.464234113690000e+00, + -4.789503097530000e+00, + 1.134975671770000e+00, + 1.875763654710000e+00, + 2.398876428600000e+00, + 1.337385058400000e+00, + -1.318317055700000e+00, + 6.079769134520000e+00, + -8.538345694540000e-01, + 5.719602584840000e+00, + -2.855810403820000e+00, + 1.910025067630000e-02, + 2.477946043010000e+00, + -9.267073273660000e-01, + -7.617584705350000e+00, + 6.931405544280000e+00, + -3.149547338490000e+00, + -2.031493663790000e+00, + -8.409492373470000e-01, + -6.880875587460000e+00, + -3.562112748620000e-01, + -1.867896199230000e+00, + 1.463884830470000e+00, + 5.860726833340000e+00, + -1.951991796490000e+00, + 8.375409841540000e-01, + 5.470124721530000e+00, + 6.075211524960000e+00, + -2.823174953460000e+00, + -4.134751319890000e+00, + 4.738844871520000e+00, + -4.659165441990000e-02, + 6.699542522430000e+00, + 9.700202345850000e-01, + 1.199645757680000e+00, + -1.652587056160000e+00, + 6.362944602970000e+00, + 1.994611144070000e+00, + 1.310364127160000e+00, + -7.265498161320000e+00, + -5.347579479220000e+00, + -1.088537499310000e-01, + 1.803290843960000e+00, + -5.200246810910000e+00, + 5.762386798860000e+00, + 9.108875393870000e-01, + 2.733392238620000e+00, + -4.101838111880000e+00, + -6.120314121250000e+00, + -4.933005332950000e+00, + -3.120718002320000e+00, + -4.348632812500000e+00, + -3.233142137530000e+00, + -9.913067817690000e-01, + -1.466283559800000e+00, + -4.148017883300000e+00, + 2.575286149980000e+00, + 5.603253364560000e+00, + 5.202108025550000e-01, + 1.350310564040000e+00, + 1.605307936670000e+00, + 1.136944055560000e+00, + 1.316744685170000e+00, + 1.196716070180000e+00, + -1.837014555930000e+00, + 5.839682102200000e+00, + 4.795768260960000e+00, + -7.866787910460000e-01, + -3.347999334340000e+00, + 5.032231211660000e-01, + 1.708621859550000e+00, + -3.529186964040000e+00, + 4.878354549410000e+00, + 1.453805565830000e-01, + 5.855952262880000e+00, + -1.181037425990000e+00, + -6.784756779670000e-01, + -5.354632854460000e+00, + -5.651095390320000e+00, + -2.534273386000000e+00, + -4.455437660220000e+00, + 1.260050177570000e+00, + 2.515254259110000e+00, + 1.678900480270000e+00, + 1.176100254060000e+00, + -1.055616974830000e+00, + 5.448294639590000e+00, + -1.370714426040000e+00, + 4.994583129880000e+00, + -3.546665430070000e+00, + -8.683519065380001e-02, + 3.461400032040000e+00, + -1.923777699470000e+00, + -7.174137115480000e+00, + 7.853318214420000e+00, + -2.491348266600000e+00, + -2.435314178470000e+00, + -6.618425846100000e-01, + -6.101482391360000e+00, + -4.872142672540000e-01, + -1.993585109710000e+00, + 2.138357877730000e+00, + 5.459847927090000e+00, + -1.667282223700000e+00, + 1.019080638890000e+00, + 4.865659236910000e+00, + 6.488756656650000e+00, + -1.901023745540000e+00, + -4.335437297820000e+00, + 4.381637573240000e+00, + 7.827808856960000e-01, + 6.632613182070000e+00, + 6.189608573910000e-01, + 1.272312283520000e+00, + -1.243504285810000e+00, + 6.058927536010000e+00, + 2.444577455520000e+00, + 1.078464031220000e+00, + -7.069867134090000e+00, + -5.204700469970000e+00, + -1.625922441480000e+00, + 1.380869984630000e+00, + -5.228382110600000e+00, + 6.000173568730000e+00, + 3.577817976470000e-01, + 2.448150396350000e+00, + -3.747545719150000e+00, + -5.013619899750000e+00, + -5.328501701350000e+00, + -2.705024003980000e+00, + -4.293511390690000e+00, + -4.125133514400000e+00, + -1.007901072500000e+00, + -4.049448370930000e-01, + -4.336603164670000e+00, + 2.589268684390000e+00, + 5.317453384400000e+00, + -6.639047861100000e-01, + -3.140187561510000e-01, + -4.143726825710000e-01, + -1.862884461880000e-01, + -2.850921154020000e-01, + -4.201437234880000e-01, + -1.851991772650000e+00, + -1.248173236850000e+00, + 2.958294153210000e-01, + 2.593005895610000e+00, + 3.618161380290000e-01, + 6.032093763350000e-01, + -6.234765052800000e-01, + -1.615711092950000e+00, + -5.935214161870001e-01, + 2.844447851180000e+00, + 3.807573914530000e-01, + 1.604003310200000e-01, + -1.156740188600000e+00, + 1.071847677230000e+00, + -3.162874698640000e+00, + -9.342210888860000e-01, + 3.822668552400000e+00, + 2.170431911950000e-01, + -6.681583523750000e-01, + -3.720424175260000e-01, + -2.899813652040000e-01, + -2.513694047930000e+00, + -2.039833545680000e+00, + 2.381620407100000e+00, + -1.054930567740000e+00, + 5.418935790660000e-02, + 1.247816205020000e+00, + 5.425359606740000e-01, + -3.385221481320000e+00, + -1.999903678890000e+00, + 1.030869856480000e-01, + 1.305154562000000e+00, + 5.503298640249999e-01, + 2.382737636570000e+00, + 4.371295452120000e+00, + 2.495881080630000e+00, + 9.566105604170000e-01, + -2.752625703810000e+00, + 1.254093766210000e+00, + -1.224860072140000e+00, + 4.408912658690000e+00, + 1.724685311320000e+00, + 1.456121087070000e+00, + -1.956488609310000e+00, + -1.175328493120000e+00, + 2.101808547970000e+00, + 6.005143523220000e-01, + 2.370090723040000e+00, + 1.259273052220000e+00, + -7.843092679980000e-01, + -1.098002552990000e+00, + -9.175106287000000e-01, + 8.703284710650000e-02, + -5.280399322510000e-01, + 1.832850933070000e+00, + -7.908936142920000e-01, + -7.291886210440000e-01, + -9.649274870750000e-04, + -4.444457054140000e+00, + -1.734670996670000e+00, + 6.141405701640000e-01, + -1.612953543660000e+00, + 1.054953932760000e-01, + -3.510473728180000e+00, + 2.793823003770000e+00, + -2.889426946640000e+00, + 4.841116428380000e+00, + 2.410524845120000e+00, + -4.048599243160000e+00, + 2.890490055080000e+00, + 1.296411901710000e-01, + -1.779101014140000e+00, + -1.283380389210000e+00, + -9.629173278810000e-01, + -3.326582014560000e-01, + -6.371171474460000e-01, + 3.164031356570000e-02, + -2.877284884450000e-01, + -1.091261804100000e-01, + -1.876596927640000e+00, + -1.121387481690000e+00, + 7.597988843920001e-01, + 2.603685617450000e+00, + -1.123084872960000e-01, + 5.390121340750000e-01, + -6.240978240970000e-01, + -1.497244000430000e+00, + -8.550933003430000e-01, + 2.791396141050000e+00, + 1.146307945250000e+00, + -2.155548334120000e-01, + -1.306959986690000e+00, + 1.429426193240000e+00, + -3.134154319760000e+00, + -1.143434882160000e+00, + 3.460016012190000e+00, + -2.357594519850000e-01, + -7.613790035250000e-01, + -3.905094414950000e-02, + -3.042796254160000e-01, + -1.376771330830000e+00, + -1.402860999110000e+00, + 2.140935420990000e+00, + -9.702488780020000e-01, + 8.129323720930000e-01, + 1.308306097980000e+00, + -1.395541906360000e+00, + -2.940890789030000e+00, + -2.587139368060000e+00, + 3.538084328170000e-01, + 4.679616689680000e-01, + -9.364481568340000e-01, + 3.989305734630000e+00, + 3.836293697360000e+00, + 2.096966505050000e+00, + 1.822564363480000e+00, + -1.828558921810000e+00, + 1.430114388470000e+00, + -1.208337426190000e+00, + 4.092331886290000e+00, + 9.173227548600000e-01, + 6.420579552650000e-01, + -1.337098598480000e+00, + -1.460711479190000e+00, + -4.371652603150000e-01, + 1.132653832440000e+00, + 2.663751125340000e+00, + 6.975844502450000e-01, + -5.492375493050000e-01, + -9.789904356000000e-01, + -1.101648926730000e+00, + -1.200615242120000e-01, + -1.006490826610000e+00, + 1.047528028490000e+00, + -1.981828659770000e-01, + 3.541441261770000e-01, + -7.919197082520000e-01, + -4.855136871340000e+00, + -1.322655200960000e+00, + 2.584599256520000e-01, + -3.683623373510000e-01, + -7.482876777650000e-01, + -4.015230178830000e+00, + 3.916590213780000e-01, + -1.937261700630000e+00, + 5.216854095460000e+00, + 3.477236032490000e+00, + -2.185704708100000e+00, + 2.005255460740000e+00, + -2.731049656870000e-01, + -8.409337401390000e-01, + -6.584314703940000e-01, + -1.960344612600000e-01, + 1.023951359090000e-02, + 5.013378858570000e-01, + -1.460692882540000e-01, + -2.284389734270000e-02, + -6.254733540120000e-03, + -7.015795111660000e-01, + -5.552990913390000e+00, + 8.075674176220000e-01, + 7.004817008970000e+00, + -4.122847080230000e+00, + 3.706897258760000e+00, + -3.030899286270000e+00, + -2.377020597460000e+00, + -4.069720745090000e+00, + 4.447745323180000e+00, + -1.263139843940000e+00, + 7.391381263730000e+00, + 5.205543041230000e+00, + -5.784926414490000e+00, + -2.196153163910000e+00, + 9.650631904600001e+00, + -7.164820194240000e+00, + 8.916321992870000e-01, + 3.915683925150000e-02, + -1.924160718920000e-01, + -4.953302145000000e-01, + -1.152341485020000e+00, + -6.287585258480000e+00, + 6.874949932100000e+00, + 1.731605172160000e+00, + -3.994647026060000e+00, + 3.336852788930000e+00, + -3.117357254030000e+00, + 4.858151912690000e+00, + -1.581018328670000e+00, + -2.026397705080000e+00, + -3.721636056900000e+00, + 1.220498371120000e+01, + 7.721321105960000e+00, + -8.623506546020000e+00, + 6.439054489140000e+00, + -3.310428142550000e+00, + -3.986813545230000e+00, + 1.763713240620000e+00, + 4.865148067470000e-01, + 3.352224349980000e+00, + -4.724407941100000e-02, + -1.862089395520000e+00, + -2.614424228670000e-01, + -2.646947622300000e+00, + 2.315147072080000e-01, + 3.483272075650000e+00, + -1.526979923250000e+00, + 4.001865386960000e+00, + 5.834370851520000e-01, + 5.998202800750000e+00, + -5.799034118650000e+00, + -2.448388487100000e-01, + 4.626744091510000e-01, + -5.201764583590000e+00, + -7.990304470060000e+00, + 7.730919837950000e+00, + -1.623069047930000e-01, + -1.201022505760000e+00, + -4.591835498810000e+00, + 3.299744606020000e+00, + -2.022950887680000e+00, + 9.345303535459999e+00, + -3.154299497600000e+00, + -6.223835468290000e+00, + 1.011279582980000e+01, + -5.654923915860000e+00, + -7.837246894840000e+00, + 2.716051638130000e-01, + 6.085209846500000e+00, + -3.162353754040000e+00, + -3.160704135890000e+00, + -5.742453098300000e+00, + 5.685469150540000e+00, + -3.524242937560000e-01, + -1.050017774110000e-02, + 9.288444370030000e-02, + 1.207237914200000e-01, + 1.520886085930000e-02, + -5.931046605110000e-01, + -5.630315780640000e+00, + 5.960005521770000e-01, + 6.850296020510000e+00, + -3.911835908890000e+00, + 3.500291585920000e+00, + -3.442048311230000e+00, + -1.896272540090000e+00, + -3.813417434690000e+00, + 4.649251937870000e+00, + -1.292996048930000e+00, + 7.109744071960000e+00, + 5.188441753390000e+00, + -5.385401248930000e+00, + -2.202888250350000e+00, + 9.597104072570000e+00, + -7.349798202510000e+00, + 1.674308329820000e-01, + 1.643950462340000e+00, + 3.734779059890000e-01, + 1.558582931760000e-01, + -2.255989313130000e+00, + -5.803065776820000e+00, + 7.055917739870000e+00, + 9.161495566370000e-01, + -4.554149150850000e+00, + 3.408649444580000e+00, + -1.923099875450000e+00, + 5.386132717130000e+00, + -1.348492980000000e+00, + -1.442445755000000e+00, + -4.344314575200000e+00, + 1.197180843350000e+01, + 8.250876426700000e+00, + -7.391543865200000e+00, + 6.222627162930000e+00, + -2.901722669600000e+00, + -3.276607990260000e+00, + 1.937865853310000e+00, + -5.595123767850000e-01, + 3.451946973800000e+00, + 7.202988266940000e-01, + -2.219436883930000e+00, + 2.283465415240000e-01, + -1.324547767640000e+00, + 8.442978858950000e-01, + 3.099861621860000e+00, + -2.122674465180000e+00, + 4.092548847200000e+00, + -2.588398456570000e-01, + 5.667438983920000e+00, + -5.412323474880000e+00, + -6.857034564020000e-02, + -1.332762390380000e-01, + -5.331576824190000e+00, + -6.189238071440000e+00, + 8.712586402890000e+00, + -3.997389972210000e-01, + -1.389264225960000e+00, + -5.144719600680000e+00, + 3.279864311220000e+00, + -2.645439624790000e+00, + 9.854129791260000e+00, + -3.520171880720000e+00, + -5.710052013400000e+00, + 1.014408683780000e+01, + -5.420296669010000e+00, + -7.966142177580000e+00, + -3.799545764920000e-01, + 6.945579051970000e+00, + -4.978135108950000e+00, + -3.144231319430000e+00, + -6.009321212770000e+00, + 5.381848335270000e+00, + 1.356886148450000e+00, + 1.628334522250000e+00, + 1.654857397080000e+00, + 1.309232950210000e+00, + 1.440777778630000e+00, + -1.758569240570000e+00, + 6.060119628910000e+00, + 4.890329360960000e+00, + -7.707623839380000e-01, + -3.164157390590000e+00, + 6.126678586010000e-01, + 2.443851470950000e+00, + -3.387353420260000e+00, + 5.406206130980000e+00, + 2.542673051360000e-01, + 6.791203498840000e+00, + -1.405508279800000e+00, + -7.801975607870000e-01, + -5.266332149510000e+00, + -5.694824695590000e+00, + -2.674340963360000e+00, + -4.732285022740000e+00, + 7.184766530990000e-01, + 1.392522573470000e+00, + 1.063478946690000e+00, + 1.521943449970000e+00, + -1.515379905700000e+00, + 5.760401248930000e+00, + -1.256289243700000e+00, + 5.493535518650000e+00, + -3.221380472180000e+00, + -2.378121316430000e-01, + 2.318706750870000e+00, + -1.716090679170000e+00, + -6.760535240170000e+00, + 7.815048694610000e+00, + -4.490951538090000e+00, + -1.431918144230000e+00, + -3.836950957780000e-01, + -6.995647430420000e+00, + 1.111281812190000e-01, + -1.997139930730000e+00, + 1.430480599400000e+00, + 5.007006168370000e+00, + -7.149960100650000e-02, + 1.794668793680000e+00, + 4.757109165190000e+00, + 5.742069244380000e+00, + -1.345462441440000e+00, + -3.904011249540000e+00, + 3.736723899840000e+00, + -3.822919428350000e-01, + 7.237179279330000e+00, + -1.320671737190000e-01, + 1.231703042980000e+00, + -2.071655273440000e+00, + 6.747570991520000e+00, + 1.505289435390000e+00, + 9.743835330010000e-01, + -6.754542350770000e+00, + -5.863761425020000e+00, + -1.561514258380000e+00, + 8.167087435720000e-01, + -4.914820194240000e+00, + 7.266995906830000e+00, + 3.187938928600000e-01, + 3.049861907960000e+00, + -4.403995037080000e+00, + -6.519026756290000e+00, + -4.937602519990000e+00, + -3.043718338010000e+00, + -5.357707023620000e+00, + -2.583666801450000e+00, + -1.141323566440000e+00, + -1.482105851170000e+00, + -4.038083076480000e+00, + 2.846101522450000e+00, + 5.267561912540000e+00, + -3.306438326840000e-01, + 1.180693030360000e+00, + 1.223750948910000e+00, + 1.388749003410000e+00, + 1.647134304050000e+00, + 1.436239123340000e+00, + -1.467915534970000e+00, + 5.928191661830000e+00, + 4.141166210170000e+00, + -7.427472472190000e-01, + -3.293807029720000e+00, + 2.742440998550000e-01, + 2.505106210710000e+00, + -3.601670980450000e+00, + 4.169825077060000e+00, + 1.869561374190000e-01, + 6.546482086180000e+00, + -1.598816633220000e+00, + -8.563654422760000e-01, + -5.300523281100000e+00, + -5.547053337100000e+00, + -2.588744163510000e+00, + -4.607420921330000e+00, + 6.666458845140000e-01, + 1.537961959840000e+00, + 1.297786593440000e+00, + 2.105653762820000e+00, + -2.701369047160000e+00, + 6.354000568390000e+00, + -8.068611025810000e-01, + 5.583600997920000e+00, + -3.882641792300000e+00, + 2.845484316350000e-01, + 2.818063259120000e+00, + -1.034188270570000e+00, + -7.588774204250000e+00, + 7.936217308040000e+00, + -4.018087863920000e+00, + -1.665875911710000e+00, + -1.498641014100000e+00, + -5.395695686340000e+00, + -1.706169694660000e-01, + -1.158525824550000e+00, + 2.015146732330000e+00, + 5.559564590450000e+00, + -2.383459210400000e-01, + 1.619791507720000e+00, + 5.034341812130000e+00, + 5.323068618770000e+00, + -1.989789485930000e+00, + -5.350983619690000e+00, + 5.305303096770000e+00, + 8.201808668670000e-05, + 6.562504768370000e+00, + 3.758839666840000e-01, + 1.890136718750000e+00, + -2.238418459890000e-01, + 6.424308300020000e+00, + 1.464505672450000e+00, + 9.366884231570000e-01, + -6.702596187590000e+00, + -5.848126411440000e+00, + -2.048491477970000e+00, + 1.644420266150000e+00, + -3.915074586870000e+00, + 5.441376209260000e+00, + 8.453944921490000e-01, + 1.834790349010000e+00, + -4.149695873260000e+00, + -4.930974483490000e+00, + -5.470252990720000e+00, + -2.866336107250000e+00, + -5.283380031590000e+00, + -4.124102592470000e+00, + -1.129863381390000e+00, + -2.005253881220000e-01, + -3.340409278870000e+00, + 2.368446350100000e+00, + 5.411328792570000e+00, + -1.393701791760000e+00, + -3.606734573840000e-01, + -3.564801812170000e-01, + -7.197247147560000e-01, + -1.956755369900000e-01, + -2.481282651420000e-01, + -1.998093247410000e+00, + -1.407784581180000e+00, + 3.486095070840000e-01, + 2.492881536480000e+00, + 4.454558491710000e-01, + 3.883342742920000e-01, + -6.898576021190000e-01, + -1.289641737940000e+00, + -7.159197926520000e-01, + 2.897660493850000e+00, + 5.418164730070000e-01, + 3.794400766490000e-02, + -1.247514367100000e+00, + 7.045423984530000e-01, + -3.115166664120000e+00, + -9.750598073009999e-01, + 3.391411304470000e+00, + 1.493658125400000e-01, + -2.882429361340000e-01, + 4.816522821780000e-02, + -1.403419017790000e+00, + -1.963960766790000e+00, + -1.775620818140000e+00, + 1.223916888240000e+00, + -4.826485812660000e-01, + -3.978320360180000e-01, + 1.515091896060000e+00, + -3.544952571390000e-01, + -3.550480604170000e+00, + -2.260016679760000e+00, + -3.493305146690000e-01, + 7.948191165920000e-01, + -4.438786506650000e-01, + 3.998516798020000e+00, + 3.393584251400000e+00, + 2.188905239110000e+00, + 9.780421853070000e-01, + -2.128424644470000e+00, + 1.322651982310000e+00, + -1.423067092900000e+00, + 4.424261569980000e+00, + 1.331201910970000e+00, + -1.072356700900000e+00, + -1.983161211010000e+00, + -2.019714593890000e+00, + 9.062963128090000e-01, + -2.978784143920000e-01, + 2.698002576830000e+00, + 7.372211813930000e-01, + -7.218760252000000e-01, + -1.695405840870000e+00, + -1.072433829310000e+00, + -1.488498002290000e-01, + -4.235822558400000e-01, + 1.042086482050000e+00, + -1.584169715640000e-01, + -5.197345018390001e-01, + -5.452347993850000e-01, + -3.875096321110000e+00, + -1.789442420010000e+00, + 4.463420808320000e-01, + -9.502933621410000e-01, + -4.164465069770000e-01, + -3.270892858510000e+00, + 1.087931275370000e+00, + -3.218816280360000e+00, + 4.581217765810000e+00, + 3.266631841660000e+00, + -1.983259320260000e+00, + 3.343796491620000e+00, + 4.713186919690000e-01, + 6.924849003550000e-05, + -1.039313912390000e+00, + -1.138553500180000e+00, + -1.410896033050000e-01, + -2.397357821460000e-01, + -4.329780638220000e-01, + -1.737904697660000e-01, + -3.116102516650000e-01, + -1.813447356220000e+00, + -1.136033058170000e+00, + 1.133437976240000e-01, + 2.493234634400000e+00, + 3.676334917550000e-01, + 5.828016996380000e-01, + -1.160618782040000e+00, + -8.246154785160000e-01, + -7.631175518040000e-01, + 2.784238338470000e+00, + 6.180813908580000e-01, + 1.105870231990000e-01, + -8.079299926760000e-01, + 1.875023841860000e+00, + -3.040769100190000e+00, + -7.498112320900000e-01, + 3.756418943410000e+00, + -5.402158498760000e-01, + 4.764654934410000e-01, + -9.769434332850000e-01, + -1.321913748980000e-01, + -3.506301403050000e+00, + -1.298223733900000e+00, + 1.630958437920000e+00, + 2.318514585500000e-01, + 7.699397206310001e-02, + 1.729386448860000e+00, + -4.062634706500000e-01, + -1.945332527160000e+00, + -1.030973911290000e+00, + 3.480710685250000e-01, + 1.238990068440000e+00, + -2.099417299030000e-01, + 2.720263719560000e+00, + 2.551280975340000e+00, + 2.050406932830000e+00, + 1.072026610370000e+00, + -7.924526929860000e-01, + 1.616181015970000e+00, + -7.267979979520000e-01, + 3.596889019010000e+00, + 4.864506721500000e-01, + 1.236448064450000e-01, + -2.096186399460000e+00, + -2.409344911580000e+00, + 7.593315243720000e-01, + -5.101708173750000e-01, + 1.351364493370000e+00, + 4.978452622890000e-01, + -8.152145743370000e-01, + -1.546312212940000e+00, + -1.012145638470000e+00, + -2.822499871250000e-01, + -9.873598814010000e-02, + 1.066856741910000e+00, + -1.456835865970000e+00, + 6.360583901410000e-01, + 5.256651639940000e-01, + -4.122800350190000e+00, + -1.552431702610000e+00, + 3.322594463830000e-01, + -7.577107548710000e-01, + 2.840896248820000e-01, + -2.767853498460000e+00, + 1.034279346470000e+00, + -2.897423505780000e+00, + 5.460088729860000e+00, + 4.582430839540000e+00, + -2.242476463320000e+00, + 2.338076114650000e+00, + -2.207924984400000e-02, + -7.664176225660000e-01, + -1.329327225690000e+00, + -8.925273418430000e-01, + -1.288923323150000e-01, + 2.169403284790000e-01, + 1.674500666560000e-02, + 3.731417655940000e-02, + 1.912261992690000e-01, + -6.535283923150000e-01, + -5.796590328220000e+00, + 7.388626337050000e-01, + 6.779676437380000e+00, + -3.850710630420000e+00, + 3.134942770000000e+00, + -2.706962347030000e+00, + -2.278665304180000e+00, + -3.556034803390000e+00, + 4.565726280210000e+00, + -1.496260881420000e+00, + 7.218658447270000e+00, + 5.117555141450000e+00, + -6.049821376800000e+00, + -1.985032677650000e+00, + 9.772233963010001e+00, + -7.064003467560000e+00, + 2.409075200560000e-01, + 3.156028091910000e-01, + 1.740335673090000e-01, + 7.480926811700001e-02, + -1.973513722420000e+00, + -6.524724960330000e+00, + 6.929714202880000e+00, + 3.165141642090000e-01, + -4.835059165950000e+00, + 3.415362596510000e+00, + -3.192956209180000e+00, + 4.445347785950000e+00, + -1.633799433710000e+00, + -1.666909813880000e+00, + -3.414692640300000e+00, + 1.047516345980000e+01, + 8.745186805730000e+00, + -8.560773849489999e+00, + 6.424853324890000e+00, + -4.240396499630000e+00, + -4.703325748440000e+00, + 6.480522155760000e-01, + -1.190814733510000e+00, + 3.095955371860000e+00, + 1.999669671060000e+00, + -1.839948177340000e+00, + -5.194336771970000e-01, + -3.175733566280000e+00, + 7.958562374110000e-01, + 3.183009862900000e+00, + -1.781779885290000e+00, + 3.547472000120000e+00, + 2.629907429220000e-01, + 4.941359043120000e+00, + -6.022370338440000e+00, + 8.639306426050000e-01, + -4.338293373580000e-01, + -5.190521717070000e+00, + -6.913827896120000e+00, + 7.758756637570000e+00, + 2.904612123970000e-01, + -7.064113020900000e-01, + -4.514388084410000e+00, + 3.528253555300000e+00, + -3.446833133700000e+00, + 1.158834552760000e+01, + -4.198455810550000e+00, + -5.915924549100000e+00, + 1.003218460080000e+01, + -6.034277439120000e+00, + -7.110460281370000e+00, + -1.326112002130000e-01, + 6.381714820860000e+00, + -3.952164649960000e+00, + -3.356832981110000e+00, + -5.747823238370000e+00, + 5.805607318880000e+00, + 5.757867917420000e-02, + -2.868641726670000e-02, + 8.335355669260000e-02, + 6.590465456250000e-02, + -1.259261276570000e-02, + -7.749610543250000e-01, + -5.527488708500000e+00, + 8.447803258900000e-01, + 6.759690761570000e+00, + -3.775439500810000e+00, + 3.543673992160000e+00, + -3.186652898790000e+00, + -2.238376855850000e+00, + -3.474861860280000e+00, + 4.426030159000000e+00, + -2.152927875520000e+00, + 7.260300636290000e+00, + 5.946427345280000e+00, + -6.145440578460000e+00, + -2.093903779980000e+00, + 9.518296241760000e+00, + -7.058218002320000e+00, + 2.167267501350000e-01, + -2.431842125950000e-02, + -4.747000634670000e-01, + 1.018078550700000e-01, + -1.855503678320000e+00, + -6.696712970730000e+00, + 6.284534454350000e+00, + 1.274012684820000e+00, + -2.952612161640000e+00, + 3.218911409380000e+00, + -3.541167974470000e+00, + 4.595276355740000e+00, + -9.581224918370000e-01, + -8.146079182620000e-01, + -4.470481395720000e+00, + 9.904884338380000e+00, + 8.251086235050000e+00, + -8.988729476930001e+00, + 6.846983432770000e+00, + -4.801148891450000e+00, + -4.305512905120000e+00, + 1.308983445170000e+00, + -4.374266266820000e-01, + 4.968033790590000e+00, + 8.452671170229999e-01, + -1.529230117800000e+00, + -2.895008921620000e-01, + -2.982650518420000e+00, + -2.714664042000000e-01, + 3.195357322690000e+00, + -1.939486026760000e+00, + 4.335757255550000e+00, + -1.420152783390000e-01, + 5.128825664520000e+00, + -6.135241985320000e+00, + 4.100670516490000e-01, + 6.790967583660000e-01, + -5.093389511110000e+00, + -7.542631149290000e+00, + 8.090794563290000e+00, + -2.798602283000000e-01, + -7.099614143370000e-01, + -5.291668891910000e+00, + 2.334114551540000e+00, + -2.173505067830000e+00, + 9.976244926450001e+00, + -4.100606441500000e+00, + -6.251180648800000e+00, + 8.753444671630000e+00, + -6.593714237210000e+00, + -8.461947441100000e+00, + -5.184170007709999e-01, + 7.271266937260000e+00, + -2.567449092860000e+00, + -3.354016065600000e+00, + -6.000107765200000e+00, + 4.869216442110000e+00, + 1.494416475300000e+00, + 1.489961028100000e+00, + 1.129657983780000e+00, + 1.359550237660000e+00, + 1.404491901400000e+00, + -1.737432718280000e+00, + 5.754560947420000e+00, + 4.955761432650000e+00, + -6.015038490300000e-01, + -3.369619846340000e+00, + 4.674451351170000e-01, + 2.081282377240000e+00, + -3.451606512070000e+00, + 4.971497535710000e+00, + -6.700002402070000e-02, + 6.137912750240000e+00, + -1.207086086270000e+00, + -7.710074186330000e-01, + -4.921175956730000e+00, + -5.545770168300000e+00, + -2.507742404940000e+00, + -4.671077728270000e+00, + 5.763192176820000e-01, + 2.183465957640000e+00, + 1.555107951160000e+00, + 1.086306571960000e+00, + -1.228005290030000e+00, + 5.238787174220000e+00, + -1.521223187450000e-01, + 5.227591037750000e+00, + -3.025298118590000e+00, + 7.183884978290001e-01, + 2.470804214480000e+00, + -8.822191953660000e-01, + -6.288389205930000e+00, + 8.925065040590001e+00, + -3.730121612550000e+00, + -1.681482940910000e-01, + -1.942882418630000e+00, + -6.281089782710000e+00, + 1.095367744570000e-01, + -2.159112215040000e+00, + 1.218113780020000e+00, + 5.396139144900000e+00, + -1.328373193740000e+00, + 1.125542968510000e-01, + 5.491562843320000e+00, + 4.889801025390000e+00, + -1.564561367030000e+00, + -3.809269189830000e+00, + 4.090396404270000e+00, + -8.291858434680000e-01, + 7.683173656460000e+00, + 6.348581314090000e-01, + 2.155448913570000e+00, + -1.580602228640000e-01, + 6.060028553010000e+00, + 9.324355721470000e-01, + 9.432453513150000e-01, + -7.162142753600000e+00, + -5.481014728550000e+00, + -7.796550989150000e-01, + 1.148852467540000e+00, + -5.775725841520000e+00, + 5.966592788700000e+00, + 3.519104793670000e-02, + 2.865052700040000e+00, + -2.945993661880000e+00, + -6.707890033720000e+00, + -5.385368824010000e+00, + -2.530718803410000e+00, + -4.734792709350000e+00, + -4.227140426640000e+00, + -1.859416365620000e+00, + -1.170785069470000e+00, + -3.346708536150000e+00, + 1.889623403550000e+00, + 4.805420875550000e+00, + -1.644502878190000e+00, + 1.456127762790000e+00, + 1.493090748790000e+00, + 1.146393179890000e+00, + 9.306441545490000e-01, + 1.457169890400000e+00, + -1.583303928380000e+00, + 6.092481613160000e+00, + 4.952339172360000e+00, + -6.700151562690000e-01, + -3.292595386510000e+00, + 2.858509123330000e-01, + 2.368800640110000e+00, + -3.165650129320000e+00, + 5.087187290190000e+00, + 3.483343124390000e-01, + 6.453045845030000e+00, + -1.422652959820000e+00, + -8.230044841770000e-01, + -5.173491477970000e+00, + -5.825432777400000e+00, + -2.877856016160000e+00, + -4.475136280060000e+00, + 3.701441586020000e-01, + 1.872770428660000e+00, + 9.972850084300000e-01, + 1.501633644100000e+00, + -1.852333426480000e+00, + 5.605089187620000e+00, + -4.765662848950000e-01, + 3.916536331180000e+00, + -3.555458068850000e+00, + 8.895130157470000e-01, + 4.477970123290000e+00, + -2.696336507800000e-01, + -7.619509220120000e+00, + 8.303898811340000e+00, + -3.730793714520000e+00, + -1.963239431380000e+00, + -1.006445527080000e+00, + -6.634317398070000e+00, + -2.005709409710000e+00, + -1.620231390000000e+00, + 2.278876543050000e+00, + 3.752134561540000e+00, + -4.342746436600000e-01, + 8.424524664880000e-01, + 6.040334224700000e+00, + 6.518988609310000e+00, + -9.416933655740000e-01, + -4.190971851350000e+00, + 4.652411937710000e+00, + 1.074723958970000e+00, + 6.593842506410000e+00, + 4.726120531560000e-01, + 1.581154704090000e+00, + -1.709377527240000e+00, + 6.354595184330000e+00, + 1.231142401700000e+00, + 1.646853327750000e+00, + -6.800698757170000e+00, + -5.723401546480000e+00, + -1.674787998200000e+00, + 1.443371057510000e+00, + -5.352684974670000e+00, + 6.363319873810000e+00, + 1.195927262310000e+00, + 3.282229900360000e+00, + -3.918200969700000e+00, + -6.134740352630000e+00, + -4.745099067690000e+00, + -3.064785242080000e+00, + -5.339708328250000e+00, + -2.472307682040000e+00, + -1.902606844900000e+00, + -1.101702973250000e-01, + -3.680799961090000e+00, + 2.422335863110000e+00, + 5.557711601260000e+00, + -7.745755910870000e-01, + -2.158402353530000e-01, + -2.682057619090000e-01, + -1.126622557640000e-01, + -3.749620616440000e-01, + -3.899530172350000e-01, + -1.816979289050000e+00, + -1.042060017590000e+00, + 3.273517191410000e-01, + 2.637777328490000e+00, + -3.175245225430000e-01, + 3.522791564460000e-01, + -7.739351987840000e-01, + -1.332810759540000e+00, + -9.518260955810000e-01, + 2.760939359660000e+00, + 4.638465940950000e-01, + -1.107162460680000e-01, + -1.146767497060000e+00, + 1.114677906040000e+00, + -3.357522726060000e+00, + -7.976431846620000e-01, + 3.687943458560000e+00, + -7.443703413010000e-01, + -1.427954584360000e-01, + 3.683201372620000e-01, + -3.225486576560000e-01, + -2.018615961070000e+00, + -1.607746481900000e+00, + 2.411425113680000e+00, + 2.172196954490000e-01, + 2.918010950090000e-01, + -3.387880921360000e-01, + -6.748282313350000e-01, + -2.987662792210000e+00, + -3.620190382000000e+00, + -1.222110018130000e-01, + 7.161383032800001e-01, + -5.408225059510000e-01, + 3.381335496900000e+00, + 3.590862274170000e+00, + 2.577894926070000e+00, + 1.004412889480000e+00, + -1.069617867470000e+00, + 3.680723190310000e+00, + -1.064421653750000e+00, + 4.422540664670000e+00, + 2.934470474720000e-01, + 4.890803694730000e-01, + -2.382279157640000e+00, + -1.963264822960000e+00, + -6.729248166080000e-01, + 9.262180924420000e-01, + 1.751447319980000e+00, + 7.468170523640000e-01, + -8.585729002950000e-01, + -8.727769851680000e-01, + -7.793615460400000e-01, + -4.273360129450000e-03, + -3.028587698940000e-01, + 1.190524816510000e+00, + -2.750178240240000e-02, + -1.718261092900000e-02, + -5.447562932970000e-01, + -5.644729614260000e+00, + -1.640241503720000e+00, + 2.269511371850000e-01, + -1.235366702080000e+00, + -3.338297456500000e-02, + -3.889865636830000e+00, + 1.625809192660000e+00, + -2.829061031340000e+00, + 4.797459125520000e+00, + 3.307557582860000e+00, + -1.881862163540000e+00, + 2.287297964100000e+00, + 5.269420742990000e-01, + -2.031381428240000e-01, + -1.509727835660000e-01, + -8.276167511940000e-02, + -3.115741610530000e-01, + -4.660505652430000e-01, + -3.830466270450000e-01, + -1.477441191670000e-01, + -1.850001513960000e-01, + -1.906038045880000e+00, + -1.194856166840000e+00, + 4.170137643810000e-01, + 2.508280992510000e+00, + 4.294199943540000e-01, + 4.857557117940000e-01, + -7.087209820750000e-01, + -1.831756591800000e+00, + -5.492449998860000e-01, + 2.811291694640000e+00, + 3.425069451330000e-01, + 2.334035336970000e-01, + -1.374363422390000e+00, + 1.109776258470000e+00, + -2.893645048140000e+00, + -1.000636696820000e+00, + 3.693679809570000e+00, + -4.723151326180000e-01, + -3.422133326530000e-01, + -4.701335132120000e-01, + -1.443665474650000e-01, + -1.327608346940000e+00, + -1.652060151100000e-01, + 2.904610395430000e+00, + 2.312370687720000e-01, + -1.142869472500000e+00, + 6.664359569550000e-02, + -4.886329174040000e-01, + -2.943528652190000e+00, + -2.089863538740000e+00, + 9.566915780309999e-02, + 9.773495048280000e-02, + 3.403962254520000e-01, + 3.316789388660000e+00, + 2.388770580290000e+00, + 1.807873487470000e+00, + 7.758948206900000e-01, + -1.795558929440000e+00, + 2.021255970000000e+00, + -1.158790349960000e+00, + 3.455896139140000e+00, + 2.186885595320000e+00, + 5.242338180540000e-01, + -4.219999909400000e-01, + -3.153976440430000e+00, + -5.977643728260000e-01, + 8.153691291810000e-01, + 2.558163166050000e+00, + 1.131554484370000e+00, + -4.823002517220000e-01, + -1.247148752210000e+00, + -1.392291307450000e+00, + -7.255619764330000e-01, + -3.178924322130000e-01, + 1.994614958760000e+00, + -6.954879164700000e-01, + -5.453051924710000e-01, + -5.779352039100000e-03, + -5.186320781710000e+00, + -9.131368398670000e-01, + 4.993130862710000e-01, + 8.632683157920000e-01, + -9.816799759860000e-01, + -4.426961421970000e+00, + 1.839174866680000e+00, + -1.187817096710000e+00, + 5.718245983120000e+00, + 3.829727411270000e+00, + -2.429630279540000e+00, + 2.451370954510000e+00, + 1.658721119170000e-01, + -6.641639024020000e-02, + -9.962238073350000e-01, + -9.908494949340000e-01, + -3.192529976370000e-01, + 1.447156369690000e-01, + -5.332252010700000e-02, + 2.237404137850000e-02, + 8.699132502079999e-02, + -5.377025604250000e-01, + -5.720972537990000e+00, + 8.396504521370000e-01, + 6.951563358310000e+00, + -4.031090259550000e+00, + 3.419463634490000e+00, + -3.291485786440000e+00, + -2.301446437840000e+00, + -3.915139675140000e+00, + 4.314256668090000e+00, + -1.640197873120000e+00, + 7.688682556150000e+00, + 4.888840675350000e+00, + -5.660122871400000e+00, + -2.056661605830000e+00, + 9.582794189450000e+00, + -6.772222518920000e+00, + 5.725866556170000e-01, + 1.085308790210000e+00, + 3.268616497520000e-01, + 1.345219314100000e-01, + -7.345783710479999e-01, + -4.928953647610000e+00, + 7.615232467650000e+00, + 1.038257002830000e+00, + -4.377145767210000e+00, + 3.114609479900000e+00, + -2.510910511020000e+00, + 5.529554843900000e+00, + -1.868586421010000e+00, + -9.108580350880000e-01, + -4.246482372280000e+00, + 1.042067718510000e+01, + 7.677573680880000e+00, + -8.944238662720000e+00, + 7.339502334590000e+00, + -4.182543277740000e+00, + -4.954362392430000e+00, + 1.804354786870000e+00, + -7.501178383829999e-01, + 3.895545721050000e+00, + 1.676670461890000e-01, + -1.371275782590000e+00, + -1.494798809290000e-01, + -2.103724718090000e+00, + 3.617753982540000e-01, + 5.582422256470000e+00, + -2.227369308470000e+00, + 3.640599966050000e+00, + -2.156921289860000e-02, + 5.626005649570000e+00, + -5.801753044130000e+00, + -5.261236429210000e-01, + -4.238217175010000e-01, + -5.074701786040000e+00, + -7.101780414580000e+00, + 7.044135570530000e+00, + -9.067449718710000e-04, + -8.210811764000001e-02, + -5.437846183780000e+00, + 1.847401499750000e+00, + -3.483937025070000e+00, + 9.390014648439999e+00, + -3.958657026290000e+00, + -5.827860832210000e+00, + 8.843981742860000e+00, + -6.120937347410000e+00, + -8.089579582210000e+00, + -2.938430011270000e-01, + 5.376299381260000e+00, + -2.731283664700000e+00, + -3.347376108170000e+00, + -6.091759204860000e+00, + 3.757059812550000e+00, + 1.496643386780000e-02, + 2.577919885520000e-02, + 2.930905222890000e-01, + 1.231070235370000e-01, + -1.139922738080000e-01, + -5.319502353670000e-01, + -5.598624229430000e+00, + 1.028835535050000e+00, + 6.699776172640000e+00, + -4.210415840150000e+00, + 3.438747644420000e+00, + -3.380990028380000e+00, + -2.145247220990000e+00, + -3.664234399800000e+00, + 4.511214256290000e+00, + -1.458304047580000e+00, + 6.989249706270000e+00, + 5.821269989010000e+00, + -5.854636192320000e+00, + -2.025847435000000e+00, + 1.020442295070000e+01, + -6.961580753330000e+00, + -6.587132066489999e-02, + 5.254861116410000e-01, + -1.113670766350000e-01, + -6.700268983840000e-01, + 2.965390980240000e-01, + -4.542768955230000e+00, + 7.482713222500000e+00, + 8.828984498980000e-01, + -3.801760911940000e+00, + 3.969170808790000e+00, + -3.868848085400000e+00, + 5.532900333400000e+00, + -1.189298391340000e+00, + -1.093442559240000e+00, + -3.281886339190000e+00, + 1.110133266450000e+01, + 8.127580642700000e+00, + -8.215231895450000e+00, + 5.133948802950000e+00, + -4.354687690730000e+00, + -4.046139240260000e+00, + 1.798049926760000e+00, + -8.523213267330000e-01, + 3.270206689830000e+00, + 1.138480424880000e+00, + -1.574038147930000e+00, + -1.692130684850000e+00, + -2.482526063920000e+00, + 1.901572793720000e-01, + 3.809566020970000e+00, + -2.149581432340000e+00, + 4.500081062320000e+00, + 4.593203067780000e-01, + 5.664580345150000e+00, + -6.089323997500000e+00, + -6.764186024670000e-01, + 7.561609148980000e-02, + -5.666450500490000e+00, + -6.074343204500000e+00, + 8.319901466370000e+00, + 1.098232045770000e-01, + -6.469065546990000e-01, + -5.268976211550000e+00, + 2.655625581740000e+00, + -2.114029884340000e+00, + 1.042605781560000e+01, + -3.966252565380000e+00, + -6.241942882540000e+00, + 9.456795692440000e+00, + -5.970497608180000e+00, + -8.486360549930000e+00, + 2.411650717260000e-01, + 6.841957092290000e+00, + -3.974966526030000e+00, + -2.728332519530000e+00, + -6.292475223540000e+00, + 5.855875968930000e+00, + 1.500460743900000e+00, + 1.034567475320000e+00, + 1.454505801200000e+00, + 1.376876235010000e+00, + 1.368332982060000e+00, + -1.602822661400000e+00, + 6.102874755860000e+00, + 4.954184532170000e+00, + -8.484147191050000e-01, + -3.429586887360000e+00, + 2.573079168800000e-01, + 2.323234319690000e+00, + -3.735854864120000e+00, + 5.143568992610000e+00, + 4.710565209390000e-01, + 6.689202308650000e+00, + -9.131907820700000e-01, + -7.525302171710000e-01, + -5.337382316590000e+00, + -5.675693511960000e+00, + -2.358788490300000e+00, + -4.910398960110000e+00, + 1.452018618580000e+00, + 1.461662054060000e+00, + 1.799016356470000e+00, + 1.560646295550000e+00, + -2.988144159320000e+00, + 6.120280742650000e+00, + -1.782762289050000e+00, + 4.206759452820000e+00, + -2.314506769180000e+00, + 1.071713089940000e+00, + 1.419598102570000e+00, + -1.247358202930000e+00, + -7.277646541600000e+00, + 8.026230812070001e+00, + -4.202754497530000e+00, + -1.558342456820000e+00, + -7.405502200130000e-01, + -4.928312301640000e+00, + 1.027256131170000e+00, + -9.601420164110001e-01, + 6.814022660260000e-01, + 5.259556293490000e+00, + -1.404654383660000e+00, + 9.379484653470000e-01, + 5.772063255310000e+00, + 6.024545192720000e+00, + -2.063902854920000e+00, + -3.794580698010000e+00, + 4.225534915920000e+00, + -2.049484997990000e-01, + 7.679728984830000e+00, + -8.382649719720001e-02, + 1.384190797810000e+00, + -1.024432182310000e+00, + 6.021210670470000e+00, + 1.226133823390000e+00, + 8.320181369780000e-01, + -6.679588794710000e+00, + -5.544281959530000e+00, + -1.392856001850000e+00, + 2.407843828200000e+00, + -5.306747436520000e+00, + 5.085344791410000e+00, + -3.753028810020000e-02, + 3.229054689410000e+00, + -4.493692398070000e+00, + -6.346140384670000e+00, + -4.222041130070000e+00, + -2.603192567830000e+00, + -3.920629262920000e+00, + -2.754130601880000e+00, + -1.624638199810000e+00, + 9.495443850760001e-02, + -2.574685812000000e+00, + 3.019039630890000e+00, + 4.941467285160000e+00, + -3.156158030030000e-01, + 1.495003938670000e+00, + 1.361647009850000e+00, + 1.211601734160000e+00, + 1.102227091790000e+00, + 9.933953285220000e-01, + -1.683800458910000e+00, + 6.079093456270000e+00, + 4.976633071900000e+00, + -1.191538810730000e+00, + -3.952683210370000e+00, + 2.442088127140000e-01, + 2.435559034350000e+00, + -3.494363307950000e+00, + 4.991671562190000e+00, + 1.341938376430000e-01, + 6.463891506200000e+00, + -1.459228873250000e+00, + -1.340167880060000e+00, + -5.223844051360000e+00, + -5.576022624970000e+00, + -2.457244873050000e+00, + -4.293904781340000e+00, + 1.253877282140000e+00, + 1.019582390790000e+00, + 1.288503289220000e+00, + 1.604476809500000e+00, + -1.599503636360000e+00, + 6.499620914460000e+00, + -7.303557991980000e-01, + 5.396591186520000e+00, + -2.507899522780000e+00, + -5.161527991290000e-01, + 1.137503862380000e+00, + -2.204565286640000e+00, + -7.627661705020000e+00, + 8.383682250980000e+00, + -4.315260887150000e+00, + -1.354451894760000e+00, + -8.269575238230000e-01, + -5.246144294740000e+00, + -3.150546252730000e-01, + -1.621647596360000e+00, + 1.802636742590000e+00, + 5.176936626430000e+00, + -1.448564410210000e+00, + -1.332126557830000e-01, + 6.209441661830000e+00, + 5.689301967620000e+00, + -2.280822992320000e+00, + -4.746222019200000e+00, + 4.554979324340000e+00, + 5.494041740890000e-02, + 7.249197959900000e+00, + 6.113073825840000e-01, + -5.908908843989999e-01, + -1.750516057010000e+00, + 6.485483646390000e+00, + 5.843078494070000e-01, + 1.350162982940000e+00, + -6.456002712250000e+00, + -5.461322784420000e+00, + -2.750412702560000e+00, + 2.023984432220000e+00, + -5.307009220120000e+00, + 6.546336174010000e+00, + 2.279657423500000e-01, + 1.438011765480000e+00, + -3.782548189160000e+00, + -6.072333335880000e+00, + -4.088539600370000e+00, + -2.367172241210000e+00, + -4.476623535160000e+00, + -2.734558105470000e+00, + -1.660279273990000e+00, + -2.693620204930000e+00, + -3.451884508130000e+00, + 3.013988256450000e+00, + 5.243709564210000e+00, + -1.484597027300000e-01, + -3.139107525350000e-01, + 3.469364643100000e-01, + 2.454198002820000e-01, + -2.698786854740000e-01, + -4.734469652180000e-01, + -1.832932949070000e+00, + -1.547329306600000e+00, + 6.097088456150001e-01, + 2.631351470950000e+00, + 3.460280299190000e-01, + 5.646583437920000e-01, + -6.978621482850000e-01, + -1.234676599500000e+00, + -8.373653888700000e-01, + 2.725027084350000e+00, + 7.028506398200000e-01, + -9.106521010400001e-01, + -1.186749339100000e+00, + 1.307084798810000e+00, + -3.124985218050000e+00, + -8.253799676900000e-01, + 3.319923639300000e+00, + -6.323566436770000e-01, + -3.123242855070000e-01, + -5.848740935330000e-01, + -2.929257750510000e-01, + -2.043049097060000e+00, + -1.799331068990000e+00, + 2.462516427040000e-01, + -1.447788119320000e+00, + -5.346267223359999e-01, + 1.159595727920000e+00, + -9.925802350040001e-01, + -2.503762960430000e+00, + -1.809296607970000e+00, + -5.875385403630000e-01, + 5.669484734540000e-01, + -5.036861896510000e-01, + 4.018130302430000e+00, + 3.802052736280000e+00, + 2.459575176240000e+00, + 3.976206481460000e-01, + -1.510610580440000e+00, + 2.392387866970000e+00, + -2.186472415920000e+00, + 3.528968811040000e+00, + 4.051511287690000e-01, + 4.854273498060000e-01, + -1.792641520500000e+00, + -2.152336120610000e+00, + -7.043584436180000e-02, + 7.500283122060000e-01, + 2.801013708110000e+00, + 1.133948564530000e+00, + -3.718921542170000e-01, + -7.249505519870000e-01, + -1.280542254450000e+00, + -1.166396141050000e+00, + -4.621692746880000e-02, + 1.758554339410000e+00, + 9.817599058149999e-01, + 1.579973697660000e-01, + -2.248308956620000e-01, + -4.476857185360000e+00, + -2.128489017490000e+00, + 1.734094381330000e+00, + -1.031201720240000e+00, + 8.011167645450000e-01, + -3.677752971650000e+00, + 1.682790637020000e+00, + -3.162577390670000e+00, + 4.407458305360000e+00, + 2.777094364170000e+00, + -1.576998591420000e+00, + 3.100213527680000e+00, + -3.285252153870000e-01, + -2.754800915720000e-01, + -4.712265729900000e-01, + -7.693954706190000e-01, + -3.037529289720000e-01, + -5.518762469289999e-01, + -3.887688815590000e-01, + -1.232295274730000e+00, + -4.685309231280000e-01, + -2.122417449950000e+00, + -9.409899115560000e-01, + 4.658630490300000e-01, + 2.653872728350000e+00, + 1.133482575420000e+00, + 4.250806868080000e-01, + -7.358506917950000e-01, + -1.306387424470000e+00, + -5.669291615490000e-01, + 2.566938161850000e+00, + 8.559648394579999e-01, + 1.655840277670000e-01, + -1.105845928190000e+00, + 1.143651127820000e+00, + -3.093477964400000e+00, + -8.273984789850000e-01, + 3.484409570690000e+00, + -2.318484336140000e-01, + -1.000457927580000e-01, + 4.472634494300000e-01, + 5.066888928410000e-01, + -1.026217937470000e+00, + -3.478995859620000e-01, + 1.597623109820000e+00, + 9.477644413710000e-02, + -1.061103105550000e+00, + 1.766668081280000e+00, + -2.951475977900000e-01, + -1.994898080830000e+00, + -1.469506144520000e+00, + -7.886701077220000e-02, + -7.425847649570000e-01, + -7.485952377320000e-01, + 4.812572479250000e+00, + 4.204999923710000e+00, + 2.931703090670000e+00, + 7.999139428140000e-01, + -1.007581233980000e+00, + 1.282519221310000e+00, + -1.104107499120000e+00, + 3.404461860660000e+00, + 1.122000455860000e+00, + 1.762497611340000e-02, + -2.060861825940000e+00, + -9.771844744680001e-01, + 2.705776095390000e-01, + -6.334582567210000e-01, + 2.511316537860000e+00, + 1.723365426060000e+00, + -8.679961562160000e-01, + -3.731763958930000e-01, + -4.708037972450000e-01, + -1.095909953120000e+00, + -3.556649088860000e-01, + 1.857154369350000e+00, + -2.840907275680000e-01, + -7.515884637830000e-01, + -8.177153766160000e-02, + -3.825039148330000e+00, + -1.184138298030000e+00, + 7.181640267370000e-01, + -1.285793304440000e+00, + 1.043245434760000e+00, + -2.938944339750000e+00, + 1.308801174160000e+00, + -2.076909780500000e+00, + 5.471472263340000e+00, + 4.347722530360000e+00, + -2.358437061310000e+00, + 1.010366678240000e+00, + 7.993000745770000e-01, + -6.589099019770001e-02, + -1.899998188020000e+00, + -1.572873353960000e+00, + 6.725692003970000e-02, + -3.926499485970000e-01, + -9.086168557410000e-02, + -4.451043531300000e-02, + 4.666674733160000e-01, + -5.419110059740000e-01, + -6.620416164400000e+00, + 8.373695611949999e-01, + 6.843826770780000e+00, + -4.643613815310000e+00, + 3.342675924300000e+00, + -3.174027442930000e+00, + -2.206024408340000e+00, + -3.596975088120000e+00, + 5.133340358730000e+00, + -1.579377055170000e+00, + 6.986846923830000e+00, + 4.800330638890000e+00, + -5.818675041200000e+00, + -1.910600304600000e+00, + 9.832459449770001e+00, + -7.373698711400000e+00, + -4.877419173720000e-01, + 4.114924967290000e-01, + 9.145507216450000e-02, + 2.532709240910000e-01, + -8.537261486050000e-01, + -4.848856925960000e+00, + 6.878635406490000e+00, + 8.413653969760000e-01, + -4.068471908570000e+00, + 2.959610223770000e+00, + -2.612425088880000e+00, + 6.563646793370000e+00, + -2.249833822250000e+00, + -6.395288705830000e-01, + -5.140850543980000e+00, + 1.174642276760000e+01, + 7.583589553830000e+00, + -8.484646797180000e+00, + 7.101499080660000e+00, + -3.013836860660000e+00, + -4.251266002660000e+00, + 1.249520063400000e+00, + -1.333800792690000e+00, + 4.850745677950000e+00, + 5.913022160530000e-01, + -3.151461124420000e+00, + -9.223344922070000e-01, + -1.978163719180000e+00, + 1.726704359050000e+00, + 3.496643543240000e+00, + -2.287413120270000e+00, + 3.490904808040000e+00, + -1.781591475010000e-01, + 5.070089817050000e+00, + -5.659555912020000e+00, + 9.961112402380000e-03, + 5.081677809360000e-02, + -5.379198551180000e+00, + -7.003222465520000e+00, + 7.010138988490000e+00, + -1.389416307210000e-01, + -1.092280507090000e+00, + -4.048870563510000e+00, + 2.455576658250000e+00, + -3.308291912080000e+00, + 9.412182807920001e+00, + -5.418756961820000e+00, + -5.811377048490000e+00, + 9.413131713869999e+00, + -5.845584392550000e+00, + -7.881550312040000e+00, + -3.904689103360000e-02, + 6.677165031430000e+00, + -4.281481742860000e+00, + -4.651698589320000e+00, + -5.014964580540000e+00, + 5.426468372340000e+00, + 1.472981125120000e-01, + 3.060382232070000e-02, + -1.329600065950000e-01, + 5.948975309730000e-02, + 6.908866763110000e-02, + -6.847382187840000e-01, + -5.798047065730000e+00, + 8.685339689250000e-01, + 6.980540752410000e+00, + -2.954465866090000e+00, + 3.671815395360000e+00, + -3.229084491730000e+00, + -2.270231962200000e+00, + -3.881893634800000e+00, + 4.459430694580000e+00, + -1.415670633320000e+00, + 7.229453563690000e+00, + 4.923563957210000e+00, + -5.837019443510000e+00, + -2.120288610460000e+00, + 9.794829368589999e+00, + -7.168141365050000e+00, + 1.543131172660000e-01, + -5.243501663210000e-01, + -3.754647970200000e-01, + -1.682381182910000e-01, + -7.205625176429999e-01, + -5.071892738340000e+00, + 8.026942253110001e+00, + 2.254245042800000e+00, + -3.898032903670000e+00, + 2.615898609160000e+00, + -3.844715833660000e+00, + 5.046986579900000e+00, + -8.935742378230001e-01, + -1.856286048890000e+00, + -4.374749660490000e+00, + 1.097779178620000e+01, + 6.812761783600000e+00, + -7.358551502230000e+00, + 5.641925334930000e+00, + -3.995860576630000e+00, + -3.937614917760000e+00, + 1.559272646900000e+00, + -1.080643296240000e+00, + 5.068164348600000e+00, + -6.934895515440000e-01, + -1.695227503780000e+00, + -5.696105957030000e-01, + -2.096143722530000e+00, + 9.606635570530000e-01, + 2.621644973750000e+00, + -1.832635879520000e+00, + 3.176652908330000e+00, + -1.257746964690000e-01, + 4.926421642300000e+00, + -6.029756069180000e+00, + -5.990281105040000e-01, + -7.495725899930000e-02, + -5.799383163450000e+00, + -7.284755706790000e+00, + 7.503399372100000e+00, + -2.551964819430000e-01, + -7.870542407040000e-01, + -5.716696739200000e+00, + 2.802514314650000e+00, + -2.345809936520000e+00, + 1.049342060090000e+01, + -2.854340076450000e+00, + -5.740753650670000e+00, + 9.120021820070001e+00, + -5.559715747830000e+00, + -7.667855739590000e+00, + 1.403558492660000e+00, + 4.361115932460000e+00, + -4.403142929080000e+00, + -3.567922115330000e+00, + -5.953175544740000e+00, + 4.340723991390000e+00, + 1.409873008730000e+00, + 1.697917103770000e+00, + 1.510237932210000e+00, + 1.365820169450000e+00, + 1.466267108920000e+00, + -1.479018688200000e+00, + 5.424808025360000e+00, + 5.159889221190000e+00, + -7.294166684150000e-01, + -2.564492940900000e+00, + 1.902434080840000e-01, + 2.556016922000000e+00, + -3.697219371800000e+00, + 5.119929790500000e+00, + 7.969589233400000e-01, + 6.369469642640000e+00, + -1.729561448100000e+00, + -6.401948332790000e-01, + -5.135042667390000e+00, + -5.592459678650000e+00, + -2.438809633250000e+00, + -4.480474948880000e+00, + 1.465806007390000e+00, + 1.123441219330000e+00, + 1.057723641400000e+00, + 1.033386230470000e+00, + -1.474738478660000e+00, + 7.228203773500000e+00, + -4.595524668690000e-01, + 7.128908634190000e+00, + -3.034157514570000e+00, + 7.744302749630000e-01, + 3.936834573750000e+00, + -1.819610118870000e+00, + -8.183647155759999e+00, + 9.577332496640000e+00, + -3.722702980040000e+00, + -6.945178508760000e-01, + -8.469264507290000e-01, + -6.648033618930000e+00, + -2.001520991330000e-02, + -2.552687644960000e+00, + 2.975986957550000e+00, + 5.123380184170000e+00, + -7.739632725720000e-01, + 7.897095084190000e-01, + 5.791467666630000e+00, + 5.705570697780000e+00, + -2.231074333190000e+00, + -2.721915721890000e+00, + 3.486054420470000e+00, + -1.892956048250000e-01, + 8.542712211610000e+00, + 1.397947311400000e+00, + 1.690143466000000e+00, + -7.179394960400000e-01, + 5.860819339750000e+00, + 1.353113293650000e+00, + 1.261195182800000e+00, + -6.221008300780000e+00, + -4.765853405000000e+00, + -2.048126935960000e+00, + 6.364784836770000e-01, + -6.129122257230000e+00, + 5.413158893590000e+00, + -8.673687577250000e-01, + 2.127494096760000e+00, + -4.164527416230000e+00, + -7.412997245790000e+00, + -5.247175693510000e+00, + -2.657020330430000e+00, + -3.893142938610000e+00, + -2.535462379460000e+00, + -1.022225856780000e+00, + -1.426090717320000e+00, + -3.125653266910000e+00, + 2.204453706740000e+00, + 5.273702621460000e+00, + -1.462019205090000e+00, + 9.627717733380000e-01, + 2.109757184980000e+00, + 1.099525332450000e+00, + 1.131477713580000e+00, + 1.356761932370000e+00, + -1.734548807140000e+00, + 5.819797515870000e+00, + 4.933577537540000e+00, + -5.882767438890000e-01, + -3.711923360820000e+00, + 4.017996490000000e-01, + 2.529000282290000e+00, + -3.435754776000000e+00, + 5.090777397160000e+00, + 5.057638883590000e-01, + 6.469198226930000e+00, + -1.892195820810000e+00, + -6.081936359410000e-01, + -5.103944301610000e+00, + -5.662901401520000e+00, + -2.844479799270000e+00, + -4.553622245790000e+00, + 1.501674294470000e+00, + 1.250928282740000e+00, + 1.003340721130000e+00, + 1.526309013370000e+00, + -1.397441506390000e+00, + 5.806693553920000e+00, + -1.564076900480000e+00, + 6.027807712550000e+00, + -3.188899517060000e+00, + 9.884337186810001e-01, + 3.925281286240000e+00, + -5.733613371850000e-01, + -7.379786968230000e+00, + 6.807579994200000e+00, + -3.546398401260000e+00, + -8.022823929789999e-01, + 2.346088886260000e-01, + -5.590009689330000e+00, + -5.601588487630000e-01, + -2.187756061550000e+00, + 2.213415622710000e+00, + 4.049339294430000e+00, + -4.115880131720000e-01, + 3.091956079010000e-01, + 6.117637634280000e+00, + 6.027639389040000e+00, + -2.513926982880000e+00, + -4.816679477690000e+00, + 4.693628311160000e+00, + -9.965161085130000e-01, + 6.053165912630000e+00, + 2.521794736390000e-01, + 1.441116213800000e+00, + -1.814275532960000e-01, + 5.889652729030000e+00, + 1.708321452140000e+00, + 1.055947780610000e+00, + -6.949153423310000e+00, + -5.889992237090000e+00, + -1.374604821210000e+00, + 1.818541049960000e+00, + -6.805823326110000e+00, + 5.302812099460000e+00, + 1.215335011480000e+00, + 1.925657391550000e+00, + -5.272331714630000e+00, + -6.503910064700000e+00, + -6.636767387390000e+00, + -2.814380168910000e+00, + -3.857170581820000e+00, + -2.398365497590000e+00, + -1.965388417240000e+00, + 2.037351429460000e-01, + -3.518692970280000e+00, + 2.371154785160000e+00, + 6.317536830900000e+00, + -1.089719295500000e+00, + -3.536322116850000e-01, + -1.787985563280000e-01, + -4.694438576700000e-01, + -3.565752506260000e-01, + -2.156930565830000e-01, + -1.970646023750000e+00, + -1.526943445210000e+00, + 5.707234144210000e-03, + 2.423284769060000e+00, + 6.563769578930000e-01, + 4.685790538790000e-01, + -8.053873181340000e-01, + -1.431085228920000e+00, + -3.854322433470000e-01, + 2.832367897030000e+00, + 6.389863491060001e-01, + -2.423759996890000e-01, + -9.868152737620000e-01, + 1.985537767410000e+00, + -3.116235256200000e+00, + -1.309803366660000e+00, + 3.434003829960000e+00, + 4.667347073550000e-01, + -7.900713086130000e-01, + -5.908284187320000e-01, + 3.877986669540000e-01, + -3.330560207370000e+00, + -6.470105648040000e-01, + 1.588302493100000e+00, + -6.461310982700000e-01, + -8.897931873800000e-02, + -7.558878064160000e-01, + -1.203460097310000e+00, + -2.350187778470000e+00, + -1.873908162120000e+00, + -7.918376326560000e-01, + 1.145993918180000e-02, + -4.377627372740000e-01, + 2.892786741260000e+00, + 3.931497097020000e+00, + 3.764701366420000e+00, + 9.813717603680000e-01, + -3.119693040850000e+00, + 1.985424041750000e+00, + -1.768792867660000e+00, + 3.901787757870000e+00, + -5.411382317540000e-01, + 1.473048806190000e+00, + -1.933048009870000e+00, + -8.782287836070000e-01, + 5.158533453940000e-01, + 1.174653768540000e+00, + 1.276724815370000e+00, + 2.958460152150000e-01, + -5.042539834980000e-01, + -4.961226582530000e-01, + -1.275475382800000e+00, + -2.367407679560000e-01, + -4.527005851270000e-01, + 1.163728475570000e+00, + -1.574394255880000e-01, + 2.111178338530000e-01, + -1.291253603990000e-02, + -5.100422382350000e+00, + -1.847116827960000e+00, + 3.640816807750000e-01, + 9.621246904130000e-02, + 1.092449665070000e+00, + -3.719453096390000e+00, + 9.622707962990000e-01, + -2.983308553700000e+00, + 3.874870061870000e+00, + 2.598307609560000e+00, + -1.997803092000000e+00, + 4.289919376370000e+00, + 4.876548051830000e-01, + -2.596260011200000e-01, + -1.884787380700000e-01, + -1.835776090620000e+00, + -6.893041133880000e-01, + -4.997430741790000e-01, + -2.662702202800000e-01, + -1.171860471370000e-01, + -3.473090231420000e-01, + -1.918829560280000e+00, + -1.283050775530000e+00, + 3.247884511950000e-01, + 2.593185901640000e+00, + -1.045517250900000e-02, + 4.649298191070000e-01, + -6.992980837820000e-01, + -1.767381072040000e+00, + -2.717714905740000e-01, + 2.992432594300000e+00, + 6.001896262170000e-01, + -4.518337249760000e-01, + -5.792871117590001e-01, + 1.202810883520000e+00, + -3.108990669250000e+00, + -1.028002619740000e+00, + 3.492082357410000e+00, + -2.931069135670000e-01, + -4.084336385130000e-02, + -4.571307301520000e-01, + -2.151073515420000e-01, + -1.808515071870000e+00, + -6.518498063090000e-01, + 3.092267274860000e+00, + -6.091032028200000e-01, + 4.163144826890000e-01, + 7.543834447859999e-01, + -4.731167256830000e-01, + -3.113071203230000e+00, + -1.374460220340000e+00, + 9.302223920820000e-01, + 2.052279233930000e+00, + -1.769032776360000e-01, + 3.001662015910000e+00, + 4.442256450650000e+00, + 2.462102651600000e+00, + 2.362776279450000e+00, + -2.193405389790000e+00, + 1.349205017090000e+00, + -2.896402597430000e+00, + 3.711103200910000e+00, + 3.080243468280000e-01, + 2.147331982850000e-01, + -1.864665508270000e+00, + -1.486656904220000e+00, + -4.737706482410000e-02, + 1.821591258050000e-01, + 2.839525699620000e+00, + 5.555309057240000e-01, + 4.017559289930000e-01, + -1.325389623640000e+00, + -1.823381900790000e+00, + -1.140584945680000e+00, + 8.860974758860000e-02, + 2.446421861650000e+00, + -4.937172830100000e-01, + 2.850713431840000e-01, + -3.065291047100000e-01, + -4.578855514530000e+00, + -7.851204872130000e-01, + 1.804193139080000e+00, + -1.288865566250000e+00, + 1.918127685790000e-01, + -2.988701105120000e+00, + 4.621105790140000e-01, + -2.496895790100000e+00, + 4.653759002690000e+00, + 3.479434728620000e+00, + 3.376370370390000e-01, + 1.955857634540000e+00, + 3.474136888980000e-01, + -1.150445580480000e+00, + -6.641513705250000e-01, + -1.072905302050000e+00, + -1.530751120300000e-02, + 1.618731766940000e-01, + -5.376973748210000e-02, + 3.142268359660000e-01, + 1.194644626230000e-02, + -6.434602141380000e-01, + -5.706815719600000e+00, + 7.353344559670000e-01, + 6.986702442170000e+00, + -3.721086978910000e+00, + 3.460650682450000e+00, + -2.855619668960000e+00, + -2.373490095140000e+00, + -3.709702253340000e+00, + 4.572349071500000e+00, + -2.177654981610000e+00, + 7.618323802950000e+00, + 4.530762672420000e+00, + -5.924452781680000e+00, + -2.463782787320000e+00, + 9.628282547000000e+00, + -7.105459690090000e+00, + 3.801678866150000e-02, + 2.923806011680000e-01, + 6.542592644690000e-01, + -3.000839650630000e-01, + -1.508844494820000e+00, + -5.189118385310000e+00, + 7.178304195400000e+00, + 2.852016925810000e+00, + -4.521335124970000e+00, + 2.804193735120000e+00, + -2.420726776120000e+00, + 4.504682540890000e+00, + -1.203006863590000e+00, + -1.980489134790000e+00, + -4.235815525050000e+00, + 1.056775856020000e+01, + 6.825157642360000e+00, + -8.905366897580000e+00, + 6.390322685240000e+00, + -3.893012285230000e+00, + -4.099843502040000e+00, + 2.107974529270000e+00, + -8.978656530380000e-01, + 4.709286212920000e+00, + 3.414263017480000e-03, + -1.396555304530000e+00, + -7.384645342830000e-01, + -2.526377201080000e+00, + 1.359588503840000e+00, + 3.703167676930000e+00, + -1.072072505950000e+00, + 3.286197185520000e+00, + 3.724148869510000e-02, + 4.894126892090000e+00, + -6.236191272740000e+00, + -5.387185812000000e-01, + 2.428342700000000e-01, + -5.162861347200000e+00, + -6.890113353730000e+00, + 9.113743782040000e+00, + -8.940987586980000e-01, + -1.069633603100000e+00, + -6.018931865690000e+00, + 3.703053474430000e+00, + -3.038734197620000e+00, + 9.914153099060000e+00, + -3.413116216660000e+00, + -6.491422653200000e+00, + 9.144810676570000e+00, + -6.069482803340000e+00, + -7.135233402250000e+00, + -5.741363763810000e-01, + 5.743530750270000e+00, + -3.571012973790000e+00, + -2.974081754680000e+00, + -5.042455673220000e+00, + 5.621773719790000e+00, + 2.662405744190000e-02, + -1.464176476000000e-01, + 2.374951541420000e-01, + 9.669990092520001e-02, + -1.582001298670000e-01, + -7.861799001690000e-01, + -6.132481575010000e+00, + 7.827613353730000e-01, + 6.960674285890000e+00, + -4.227155208590000e+00, + 3.483590602870000e+00, + -3.126228809360000e+00, + -2.263857841490000e+00, + -3.918894767760000e+00, + 4.653465271000000e+00, + -1.635346651080000e+00, + 7.321934223180000e+00, + 5.019288063050000e+00, + -6.294079303740000e+00, + -2.022587060930000e+00, + 9.541743278500000e+00, + -7.365899086000000e+00, + 9.460385143760000e-02, + -3.373609483240000e-02, + -1.260227411990000e-01, + 2.616741955280000e-01, + -6.949905753140000e-01, + -5.760011196140000e+00, + 8.109143257140000e+00, + 1.289422392850000e+00, + -4.370889663700000e+00, + 3.525603294370000e+00, + -3.628305673600000e+00, + 4.075645923610000e+00, + -1.058170080180000e+00, + -1.110883712770000e+00, + -4.646589279170000e+00, + 1.108793067930000e+01, + 9.338196754460000e+00, + -7.555046081540000e+00, + 6.653416156770000e+00, + -3.495822191240000e+00, + -4.327496528630000e+00, + 1.087968826290000e+00, + -1.445987224580000e-01, + 3.971750736240000e+00, + -5.708889365199999e-01, + -5.473052859310000e-01, + -1.005923628810000e+00, + -2.553856134410000e+00, + 1.398428440090000e+00, + 3.268074274060000e+00, + -1.180229783060000e+00, + 4.206005573270000e+00, + 3.064851760860000e-01, + 5.455145359040000e+00, + -5.871973514560000e+00, + -1.398331820960000e-01, + 4.311556741600000e-02, + -5.384525775910000e+00, + -6.337572097780000e+00, + 8.119641304020000e+00, + 1.571865826850000e-01, + -1.353340387340000e+00, + -4.445536613460000e+00, + 4.051525115970000e+00, + -2.277076005940000e+00, + 1.043933010100000e+01, + -3.802931308750000e+00, + -6.724635601040000e+00, + 1.013127231600000e+01, + -5.488900661470000e+00, + -7.662359237670000e+00, + -9.459452629090001e-01, + 6.541519641880000e+00, + -3.519539117810000e+00, + -3.168382406230000e+00, + -5.941190719600000e+00, + 4.807720661160000e+00, + 1.660879015920000e+00, + 1.528742313390000e+00, + 1.483958721160000e+00, + 1.557254195210000e+00, + 1.367684483530000e+00, + -1.690590023990000e+00, + 5.864825248720000e+00, + 4.764067173000000e+00, + -7.250637412070000e-01, + -3.389328718190000e+00, + 4.624886512760000e-01, + 2.557659387590000e+00, + -3.504392147060000e+00, + 5.083812236790000e+00, + 1.584530919790000e-01, + 5.561892509460000e+00, + -1.399874567990000e+00, + -5.203822851180000e-01, + -5.222093582150000e+00, + -5.490695953370000e+00, + -2.590294599530000e+00, + -4.625669956210000e+00, + 1.345142483710000e+00, + 2.057493209840000e+00, + 4.996138811110000e-01, + 1.246579289440000e+00, + -1.664076447490000e+00, + 5.138745307920000e+00, + -1.939920187000000e+00, + 5.919570446010000e+00, + -3.236614465710000e+00, + -7.886120676990001e-01, + 4.374105930330000e+00, + -1.065150976180000e+00, + -6.640510559080000e+00, + 7.636297225950000e+00, + -2.913342714310000e+00, + -1.849167585370000e+00, + 1.289953738450000e-01, + -6.035666942600000e+00, + 4.333971440790000e-01, + -1.794237852100000e+00, + 1.443763494490000e+00, + 5.498014926910000e+00, + -6.572042107580000e-01, + 1.801455855370000e+00, + 4.941564083100000e+00, + 6.637874126430000e+00, + -1.896074533460000e+00, + -3.607379198070000e+00, + 4.121561050420000e+00, + -2.614938914780000e-01, + 6.076215267180000e+00, + 2.790974676610000e-01, + 1.163389682770000e+00, + 8.487471938130001e-02, + 5.482339859010000e+00, + 1.250589609150000e+00, + 6.215524077420000e-01, + -7.121282577510000e+00, + -5.910057544710000e+00, + -1.189182043080000e+00, + 8.906961083410000e-01, + -5.280077934270000e+00, + 6.574934482570000e+00, + 7.465431690220000e-01, + 2.578809738160000e+00, + -3.731411457060000e+00, + -5.857475280760000e+00, + -4.036734104160000e+00, + -2.362347602840000e+00, + -4.649575233460000e+00, + -3.060802221300000e+00, + -1.239499449730000e+00, + -2.173389345410000e-01, + -3.387456417080000e+00, + 6.109039187430000e-01, + 6.323444843290000e+00, + -1.296239018440000e+00, + 1.410400986670000e+00, + 1.477997541430000e+00, + 1.191537499430000e+00, + 1.386772394180000e+00, + 1.379585504530000e+00, + -1.754461765290000e+00, + 5.990697383880000e+00, + 5.054467678070000e+00, + -8.785556554790001e-01, + -3.294971704480000e+00, + 3.715170025830000e-01, + 2.570987463000000e+00, + -3.585640907290000e+00, + 5.122358322140000e+00, + 2.774836421010000e-01, + 6.497417449950000e+00, + -1.305970430370000e+00, + -1.483137011530000e+00, + -5.514951705930000e+00, + -5.657916545870000e+00, + -2.617866039280000e+00, + -4.485967159270000e+00, + 9.207796454429999e-01, + 1.203401684760000e+00, + 1.077482342720000e+00, + -1.522088646890000e-01, + -1.586300730710000e+00, + 6.123527526860000e+00, + -8.577585220340000e-01, + 5.270503044130000e+00, + -3.558243989940000e+00, + -2.332858592270000e-01, + 3.176319360730000e+00, + -1.020944714550000e+00, + -7.035654067990000e+00, + 8.360673904420000e+00, + -3.205555439000000e+00, + -2.141612529750000e+00, + -1.260739922520000e+00, + -6.235573768620000e+00, + 2.315108776090000e-01, + -2.176475524900000e+00, + 1.515504121780000e+00, + 5.004753589630000e+00, + -8.636444807050000e-01, + 5.897549390790000e-01, + 4.888864517210000e+00, + 6.929626941680000e+00, + -2.298865795140000e+00, + -4.568168640140000e+00, + 4.319477081300000e+00, + 6.599576473240000e-01, + 7.351115703580000e+00, + 9.223278760910000e-01, + 1.611018896100000e+00, + -8.435771465300000e-01, + 5.978470325470000e+00, + 2.414827346800000e+00, + 1.386394143100000e+00, + -5.892577648160000e+00, + -5.862239360810000e+00, + -1.211710214610000e+00, + 1.740216135980000e+00, + -4.244369983670000e+00, + 4.866677761080000e+00, + -5.792022347450000e-01, + 1.623453497890000e+00, + -4.213576793670000e+00, + -5.066896915440000e+00, + -5.162565231320000e+00, + -2.387642383580000e+00, + -5.062332630160000e+00, + -2.731435060500000e+00, + -1.533263206480000e+00, + -1.761159539220000e+00, + -3.592144966130000e+00, + 2.155737161640000e+00, + 7.031839370730000e+00, + -7.477034330370000e-01, + -2.822827100750000e-01, + -2.649239897730000e-01, + -4.198742508890000e-01, + -1.037945508960000e+00, + -3.563868701460000e-01, + -1.997440218930000e+00, + -1.315161824230000e+00, + 1.052323281760000e-01, + 2.318520784380000e+00, + 4.352414906020000e-01, + 3.367389440540000e-01, + -8.726003766060000e-01, + -1.213748097420000e+00, + -5.282504558559999e-01, + 2.692381381990000e+00, + 1.861959546800000e-01, + 2.969126999380000e-01, + -1.380298137660000e+00, + 9.121320247650000e-01, + -3.156327247620000e+00, + -7.480621933940000e-01, + 3.558423757550000e+00, + -2.485118508340000e-01, + 2.431800812480000e-01, + -1.045207023620000e+00, + -7.228050827980000e-01, + -1.909510731700000e+00, + -1.349265575410000e+00, + 1.335756301880000e+00, + -5.342978239060000e-01, + 1.102568507190000e+00, + -1.292984932660000e-01, + -2.927442491050000e-01, + -3.375940084460000e+00, + -1.924597859380000e+00, + 1.114809632300000e+00, + -1.689580827950000e-02, + -3.919681906700000e-01, + 3.843354463580000e+00, + 3.877523899080000e+00, + 2.688719511030000e+00, + 1.063130140300000e+00, + -2.287196159360000e+00, + 7.495746016500000e-01, + -1.068606495860000e+00, + 4.038155555730000e+00, + -1.445343941450000e-01, + 8.229060173029999e-01, + -1.525014400480000e+00, + -2.810700178150000e+00, + 1.326915264130000e+00, + -1.167899593710000e-01, + 1.583089470860000e+00, + 8.754713535310000e-01, + -3.676337003710000e-01, + -2.091563224790000e+00, + -1.029618501660000e+00, + -1.999843418600000e-01, + -4.440492391590000e-01, + 1.514983057980000e+00, + 2.781158387660000e-01, + 6.117069721220000e-01, + 9.279602766040000e-01, + -5.073962211610000e+00, + -2.023233652110000e+00, + 3.921418488030000e-01, + -5.908126235009999e-01, + 1.770289689300000e-01, + -5.462836265560000e+00, + 1.803414464000000e+00, + -1.938523054120000e+00, + 6.545219898220000e+00, + 2.712869882580000e+00, + -3.205081939700000e+00, + 2.318421602250000e+00, + 4.044220149520000e-01, + -1.284229755400000e+00, + -1.553048729900000e+00, + -6.191081404690000e-01, + -4.503343999390000e-01, + 2.476285398010000e-01, + -4.002820253370000e-01, + -1.142129525540000e-01, + -3.222580552100000e-01, + -1.745647788050000e+00, + -9.699951410290000e-01, + 1.437177062030000e-01, + 2.482430696490000e+00, + 4.870291352270000e-01, + 4.983723759650000e-01, + -7.507003545760000e-01, + -1.370662927630000e+00, + -9.905637502670001e-01, + 2.729285717010000e+00, + 9.756921529770000e-01, + -2.237995117900000e-01, + -7.662715315820000e-01, + 1.048885107040000e+00, + -3.121001243590000e+00, + -1.170616269110000e+00, + 3.789319992070000e+00, + 2.397796958680000e-01, + -8.538289666180000e-01, + -2.082991898060000e-01, + -8.556793332100000e-01, + -1.882374048230000e+00, + -1.242551922800000e+00, + 8.109258413310000e-01, + -1.229898571970000e+00, + -5.932055115700000e-01, + 1.689669728280000e+00, + -8.879793286320000e-01, + -2.465404033660000e+00, + -2.342256784440000e+00, + 3.156885206700000e-01, + 6.795758605000000e-01, + -6.069470047950000e-01, + 3.836832761760000e+00, + 3.898096323010000e+00, + 1.862499237060000e+00, + 5.688564181330000e-01, + -2.304039955140000e+00, + 8.565163016320000e-01, + -1.846962332730000e+00, + 5.555428981780000e+00, + -3.555529415610000e-01, + 1.930561065670000e+00, + -2.067980527880000e+00, + -1.456149816510000e+00, + 8.213510513309999e-01, + 6.851894259450000e-01, + 2.250276803970000e+00, + 5.979498624800000e-01, + -4.457098990680000e-02, + -1.143913984300000e+00, + -2.032753229140000e+00, + -1.379409581420000e-01, + -3.246552348140000e-01, + 1.349121928220000e+00, + -2.915554493670000e-02, + -2.054744482040000e+00, + -7.855582237240000e-01, + -3.922477245330000e+00, + -2.264722883700000e-01, + 2.844614982600000e-01, + -1.392475366590000e+00, + -3.596095144750000e-01, + -4.016758441930000e+00, + 2.054954051970000e+00, + -2.231346130370000e+00, + 5.036348342900000e+00, + 3.167952537540000e+00, + -2.068656682970000e+00, + 3.051887035370000e+00, + 6.748943328860000e-01, + -5.006440877910000e-01, + -1.604587674140000e+00, + -1.354361414910000e+00, + 1.376812309030000e-01, + -1.662475019690000e-01, + -2.296795323490000e-02, + -4.430176913740000e-01, + 3.539977222680000e-02, + -7.416499853130000e-01, + -5.766259670260000e+00, + 9.014980793000000e-01, + 6.791309833530000e+00, + -3.956626653670000e+00, + 3.198832511900000e+00, + -3.175334930420000e+00, + -2.244976520540000e+00, + -3.594598054890000e+00, + 4.220904827120000e+00, + -1.574474811550000e+00, + 7.163562297820000e+00, + 5.072268486020000e+00, + -5.612171173100000e+00, + -2.079669237140000e+00, + 9.664775848390001e+00, + -7.170677661900000e+00, + -3.589144349100000e-01, + 2.700788080690000e-01, + 1.350857913490000e-01, + 2.826061248780000e-01, + -1.289458036420000e+00, + -5.896549701690000e+00, + 6.557739734650000e+00, + 1.498803615570000e+00, + -2.803696393970000e+00, + 2.229147911070000e+00, + -2.636445283890000e+00, + 5.262701511380000e+00, + -1.996081829070000e+00, + -9.446826577190000e-01, + -5.196478843690000e+00, + 1.113027572630000e+01, + 9.129631042480000e+00, + -7.889225006100000e+00, + 7.444880008700000e+00, + -4.567016601560000e+00, + -4.518476963040000e+00, + 8.501542806630000e-01, + -6.889142990110000e-01, + 4.003613948820000e+00, + 3.858927488330000e-01, + -2.479340553280000e+00, + -2.968303859230000e-01, + -8.085200786590000e-01, + -5.794005990030000e-01, + 3.915141344070000e+00, + -1.798257589340000e+00, + 3.837464571000000e+00, + -1.047950983050000e-01, + 5.933718204500000e+00, + -4.873420238490000e+00, + -1.029306799170000e-01, + 8.679822087290000e-01, + -3.810208559040000e+00, + -6.299816608430000e+00, + 7.203364849090000e+00, + 4.646820202470000e-02, + -6.756973266600000e-01, + -4.727402210240000e+00, + 3.296640872960000e+00, + -2.346651077270000e+00, + 1.028946208950000e+01, + -3.246534347530000e+00, + -5.708868026730000e+00, + 1.015284729000000e+01, + -5.452850818630000e+00, + -7.008838653560000e+00, + -5.652515292169999e-01, + 5.518073558810000e+00, + -3.565711021420000e+00, + -3.034906148910000e+00, + -5.975926399230000e+00, + 5.242683410640000e+00, + 1.437783800070000e-02, + -2.416911348700000e-02, + 4.269973188640000e-02, + -7.542546838520001e-02, + 2.748821973800000e-01, + -6.164782047270000e-01, + -5.899745941160000e+00, + 8.618147969250000e-01, + 6.847250461580000e+00, + -4.027041435240000e+00, + 3.481268405910000e+00, + -3.200130462650000e+00, + -2.260368585590000e+00, + -3.694129467010000e+00, + 4.818366527560000e+00, + -1.590286374090000e+00, + 6.807436466220000e+00, + 4.673559665680000e+00, + -6.498206615450000e+00, + -1.912346005440000e+00, + 9.555343627930000e+00, + -7.369200229640000e+00, + 5.501575469970000e-01, + 2.898174524310000e-02, + -1.105493828650000e-01, + -5.549029111860000e-01, + -1.288756012920000e+00, + -5.695217609410000e+00, + 7.690402507780000e+00, + 1.942039608960000e+00, + -4.549163341520000e+00, + 3.288297414780000e+00, + -4.500060081480000e+00, + 3.772080183030000e+00, + -1.696248888970000e+00, + -6.124986708160000e-02, + -3.972727298740000e+00, + 1.144235706330000e+01, + 7.583084583280000e+00, + -8.556684494020001e+00, + 6.872212409970000e+00, + -4.377235412600000e+00, + -4.808699607850000e+00, + 4.283214211460000e-01, + -7.816317081450000e-01, + 4.079354286190000e+00, + 4.692762196060000e-01, + -1.563217997550000e+00, + -1.153198957440000e+00, + -1.318684577940000e+00, + 2.757572829720000e-01, + 4.358565807340000e+00, + -8.318866491319999e-01, + 3.367211580280000e+00, + 8.605682849880000e-02, + 5.530110359190000e+00, + -7.072834968570000e+00, + -3.616526126860000e-01, + 7.950747013090000e-01, + -4.541617393490000e+00, + -6.945736885070000e+00, + 8.865538597110000e+00, + -7.809861302380000e-01, + -9.248247146610000e-01, + -4.424267292020000e+00, + 2.407750606540000e+00, + -3.160055398940000e+00, + 1.012216758730000e+01, + -3.956576824190000e+00, + -6.121921539310000e+00, + 9.167848587040000e+00, + -5.675712108610000e+00, + -8.833076477050000e+00, + 1.635517627000000e-01, + 5.120748519900000e+00, + -3.050999403000000e+00, + -3.335554838180000e+00, + -5.750655651090000e+00, + 5.079262733460000e+00, + 1.319175720210000e+00, + 1.445024728780000e+00, + 1.142186522480000e+00, + 1.380501031880000e+00, + 1.339787364010000e+00, + -1.742958664890000e+00, + 5.914338588710000e+00, + 4.796355724330000e+00, + -7.029770016669999e-01, + -3.177455902100000e+00, + 1.350816965100000e+00, + 2.544407606120000e+00, + -3.334993362430000e+00, + 4.912341117860000e+00, + 1.736284941430000e-01, + 6.269354343410000e+00, + -1.450464248660000e+00, + -5.832645297050000e-01, + -5.341960906980000e+00, + -5.657001495360000e+00, + -2.556163549420000e+00, + -4.803059101100000e+00, + 1.871092557910000e+00, + 4.856108874080000e-02, + 1.740132689480000e+00, + 9.635056257250000e-01, + -2.576140403750000e+00, + 5.487478256230000e+00, + -1.738768696780000e+00, + 5.700073719020000e+00, + -3.447620868680000e+00, + -1.882218867540000e-01, + 3.894107103350000e+00, + -1.028726100920000e+00, + -6.871843814850000e+00, + 7.846622943880000e+00, + -3.235943555830000e+00, + -1.638782739640000e+00, + -7.948381900790000e-01, + -5.476740837100000e+00, + 2.479261755940000e-01, + -3.415843248370000e-01, + 1.310162782670000e+00, + 5.819150924680000e+00, + -2.201236963270000e+00, + 1.495307922360000e+00, + 5.240840911870000e+00, + 6.956557750700000e+00, + -1.894588947300000e+00, + -3.912590980530000e+00, + 4.421717643740000e+00, + 3.073379024860000e-02, + 6.765994071960000e+00, + 3.233264088630000e-01, + 1.974626421930000e+00, + -1.217736721040000e+00, + 7.012381076810000e+00, + 1.221351504330000e+00, + 1.546513319020000e+00, + -6.491349220280000e+00, + -5.400325775150000e+00, + -1.946009993550000e+00, + 1.531533956530000e+00, + -5.862470149990000e+00, + 4.980084419250000e+00, + 1.882349550720000e-01, + 2.172562837600000e+00, + -2.930787801740000e+00, + -5.394982337950000e+00, + -5.332596778870000e+00, + -2.912787437440000e+00, + -5.779394149780000e+00, + -3.269312143330000e+00, + -1.190826177600000e+00, + -6.388626694680000e-01, + -3.305892467500000e+00, + 1.751398086550000e+00, + 5.955574512480000e+00, + 1.060325980190000e+00, + 1.195365905760000e+00, + 1.469508051870000e+00, + 1.080650568010000e+00, + 1.334431648250000e+00, + 1.514102339740000e+00, + -1.670156598090000e+00, + 5.826082706450000e+00, + 4.939613819120000e+00, + -9.253498315810000e-01, + -3.151859283450000e+00, + 3.304627239700000e-01, + 2.137562036510000e+00, + -3.293548107150000e+00, + 5.381232261660000e+00, + 2.099695801730000e-01, + 6.124443531040000e+00, + -1.092489123340000e+00, + -8.922922611240000e-01, + -4.719213962550000e+00, + -5.540180206300000e+00, + -2.387525796890000e+00, + -4.164645671840000e+00, + 1.762915492060000e+00, + 7.432141304020000e-01, + 1.174038171770000e+00, + 1.109124064450000e+00, + -2.174401283260000e+00, + 5.784917354580000e+00, + -1.211733937260000e+00, + 5.895893573760000e+00, + -3.490942239760000e+00, + 1.413093209270000e+00, + 2.945100545880000e+00, + -1.271493434910000e+00, + -6.657243728640000e+00, + 8.483621597290000e+00, + -3.869899272920000e+00, + -1.289828300480000e+00, + -2.960386574270000e-01, + -5.792019367220000e+00, + -4.308536946770000e-01, + -1.712380647660000e+00, + 1.803695559500000e+00, + 4.234619617460000e+00, + -1.426084756850000e+00, + 1.142847612500000e-01, + 5.826738834380000e+00, + 6.413349628450000e+00, + -9.861827492710000e-01, + -4.215177059170000e+00, + 5.044162273410000e+00, + -1.778044700620000e+00, + 7.956889152530000e+00, + 8.611596226690000e-01, + 1.588194966320000e+00, + -1.015566706660000e+00, + 6.243712425230000e+00, + 4.424684941770000e-01, + 1.894184708600000e+00, + -5.505458831790000e+00, + -5.965998172760000e+00, + -2.035385847090000e+00, + 1.982329964640000e+00, + -5.432440280910000e+00, + 5.373878002170000e+00, + 4.081921279430000e-01, + 2.585245847700000e+00, + -3.305676937100000e+00, + -5.697738170620000e+00, + -5.230610370640000e+00, + -3.176044225690000e+00, + -4.892770767210000e+00, + -2.874247312550000e+00, + -1.303925275800000e+00, + -1.015731573100000e+00, + -2.881444215770000e+00, + 2.294337987900000e+00, + 6.024277210240000e+00, + -6.997964382170000e-01, + -1.683475971220000e-01, + -4.440614581110000e-01, + -2.823908925060000e-01, + -3.783100247380000e-01, + -3.648220300670000e-01, + -1.837174057960000e+00, + -1.065975427630000e+00, + 8.265369534490000e-01, + 2.594123601910000e+00, + 3.556445837020000e-01, + 1.432999521490000e-01, + -1.069888234140000e+00, + -1.354791045190000e+00, + -5.979094505310000e-01, + 2.886132478710000e+00, + 7.589172124860000e-01, + 2.451615631580000e-01, + -1.262231945990000e+00, + 1.806516051290000e+00, + -3.163238525390000e+00, + -8.076300621030000e-01, + 3.423767089840000e+00, + 8.241521567110000e-02, + -1.027689218520000e+00, + -8.345046639440000e-02, + -2.858154177670000e-01, + -2.312943696980000e+00, + -1.052692055700000e+00, + 1.021635651590000e+00, + 1.163170561190000e-01, + -2.462441027160000e-01, + 1.434830069540000e+00, + -4.782003536820000e-02, + -2.903869867320000e+00, + -1.876447558400000e+00, + 6.931278854610000e-02, + -2.675233408810000e-02, + -3.302225470540000e-02, + 4.915748596190000e+00, + 4.875439643860000e+00, + 3.156615257260000e+00, + 1.999922752380000e+00, + -3.195308685300000e+00, + 1.888673424720000e+00, + -1.297370672230000e+00, + 4.213369846340000e+00, + 2.515003979210000e-01, + -4.031117558480000e-01, + -2.132233858110000e+00, + -2.211216211320000e+00, + 9.596381783490000e-01, + 4.177713394170000e-02, + 2.745669603350000e+00, + 7.051427960400000e-01, + -5.451346635820000e-01, + -1.065180063250000e+00, + -1.331586837770000e+00, + -8.828629851340000e-01, + -1.104701161380000e+00, + 3.506664633750000e-01, + 1.342816203830000e-01, + -1.234811782840000e+00, + -5.145232677460000e-01, + -4.837655544280000e+00, + -1.387949466710000e+00, + 5.602768659589999e-01, + -9.204499721530000e-01, + -9.485031366350000e-01, + -3.669059991840000e+00, + 1.124078631400000e+00, + -1.914312720300000e+00, + 4.717462539670000e+00, + 3.078212499620000e+00, + -2.678897619250000e+00, + 2.806087732320000e+00, + 6.624886393550000e-01, + 2.290720343590000e-01, + -4.092142283920000e-01, + -1.333604693410000e+00, + -3.299742043020000e-01, + -4.345389604570000e-01, + -4.850922226910000e-01, + -4.741428196430000e-01, + -3.990785777570000e-01, + -1.830846667290000e+00, + -1.183595895770000e+00, + 4.809822142120000e-01, + 2.648078918460000e+00, + 3.304451704030000e-01, + 4.636522829530000e-01, + -7.061465382580000e-01, + -1.321424126630000e+00, + -4.185652136800000e-01, + 3.339515209200000e+00, + 1.878554373980000e-01, + 3.495834767820000e-01, + -9.120596647260000e-01, + 1.261595129970000e+00, + -3.182534694670000e+00, + -1.017441987990000e+00, + 3.604470491410000e+00, + -2.081246227030000e-01, + -2.151036560540000e-01, + -5.628280639650000e-01, + 2.504833638670000e-01, + -2.338436126710000e+00, + -7.093271017070000e-01, + 2.063502311710000e+00, + -7.801993489270000e-01, + -2.134543657300000e-01, + 4.374073743820000e-01, + -1.273992657660000e+00, + -3.255264997480000e+00, + -2.375462055210000e+00, + 4.786264002320000e-01, + 2.076278924940000e+00, + -9.067858457570001e-01, + 3.244036674500000e+00, + 3.543429851530000e+00, + 2.838747262950000e+00, + 1.671778321270000e+00, + -1.473846673970000e+00, + 2.196486234660000e+00, + -2.126796483990000e+00, + 3.700962781910000e+00, + 3.055692315100000e-01, + 5.072615742680000e-01, + -1.290169596670000e+00, + -1.680650949480000e+00, + 1.004617810250000e-01, + -1.675121426580000e+00, + 1.968466281890000e+00, + 1.892482638360000e+00, + 2.824450433250000e-01, + -1.233158469200000e+00, + -1.671536445620000e+00, + -7.209410667420000e-01, + -1.187040090560000e+00, + 1.482955217360000e+00, + -5.883654952050000e-01, + -3.788992464540000e-01, + -4.143992662430000e-01, + -4.709766387940000e+00, + -6.517024636270000e-01, + -6.464459300040000e-01, + 5.025860667230000e-02, + -1.849858835340000e-02, + -4.311566829680000e+00, + 6.733371615410000e-01, + -3.637622833250000e+00, + 4.919444084170000e+00, + 4.013665676120000e+00, + -2.487840652470000e+00, + 2.348707675930000e+00, + 8.238246440890000e-01, + -5.059000849720000e-01, + -8.394622802730000e-01, + -5.156370401380000e-01, + -1.351539045570000e-01, + 1.088471412660000e-01, + 4.736428856850000e-01, + 4.796265065670000e-02, + -2.754549263050000e-03, + -8.730438351630000e-01, + -5.624691009520000e+00, + 8.330611586570000e-01, + 6.729184627530000e+00, + -3.725566387180000e+00, + 3.333368539810000e+00, + -3.052159309390000e+00, + -2.521717786790000e+00, + -3.762739181520000e+00, + 4.511809825900000e+00, + -1.480530381200000e+00, + 7.178061008450000e+00, + 4.613826751710000e+00, + -5.948066234590000e+00, + -2.124090194700000e+00, + 9.750340461730000e+00, + -7.073405265810000e+00, + -7.768192142249999e-02, + 6.804704666140000e-02, + 3.565331399440000e-01, + 3.402812480930000e-01, + -5.579040646550000e-01, + -5.867243766780000e+00, + 7.716576099400000e+00, + 2.123795032500000e+00, + -3.966006755830000e+00, + 3.760920763020000e+00, + -2.852469921110000e+00, + 4.782868385310000e+00, + -2.577967643740000e+00, + -1.016054987910000e+00, + -4.627306461330000e+00, + 1.099279975890000e+01, + 8.463665008540000e+00, + -8.699536323549999e+00, + 6.022187709810000e+00, + -3.320234537120000e+00, + -3.448821544650000e+00, + 2.263483047490000e+00, + 4.486047476530000e-02, + 3.393434524540000e+00, + 1.089901924130000e+00, + -1.921162009240000e+00, + -3.425535559650000e-01, + -1.479111909870000e+00, + 1.117788031700000e-01, + 4.369512081150000e+00, + -1.861959695820000e+00, + 3.107082843780000e+00, + 2.522103786470000e-01, + 5.649031639100000e+00, + -5.509888172150000e+00, + -4.456288814540000e-01, + 2.246125787500000e-01, + -5.434061050420000e+00, + -6.468741416930000e+00, + 7.326080799100000e+00, + 1.000317186120000e-01, + -1.430648088460000e+00, + -5.543457508090000e+00, + 2.445327520370000e+00, + -2.373691797260000e+00, + 9.525001525880000e+00, + -3.903377532960000e+00, + -5.819401741030000e+00, + 9.651560783390000e+00, + -6.061384677890000e+00, + -8.333100318910001e+00, + -6.704521924260000e-02, + 8.076326370240000e+00, + -3.138971090320000e+00, + -2.621849775310000e+00, + -4.877630710600000e+00, + 6.190343379970000e+00, + 6.753104180100000e-02, + 1.847390457990000e-02, + 3.904790803790000e-02, + 6.369340419770000e-02, + -1.439211815600000e-01, + -5.180961489680000e-01, + -5.644947052000000e+00, + 7.720845937730000e-01, + 6.845302581790000e+00, + -3.821743726730000e+00, + 3.417869806290000e+00, + -3.303098678590000e+00, + -2.442102193830000e+00, + -3.463636159900000e+00, + 4.261801719670000e+00, + -1.563849806790000e+00, + 7.191956996920000e+00, + 5.100450038910000e+00, + -5.899502754210000e+00, + -1.968037128450000e+00, + 9.653210639950000e+00, + -6.974343776700000e+00, + 1.445855647330000e-01, + 6.994591355320000e-01, + -7.043130397800000e-01, + 2.209626734260000e-01, + -2.110818624500000e+00, + -4.881442546840000e+00, + 6.518723964690000e+00, + 2.439418077470000e+00, + -4.580050945280000e+00, + 4.115596771240000e+00, + -3.437088251110000e+00, + 4.250276565550000e+00, + -1.220462918280000e+00, + -6.267150640490000e-01, + -3.939655542370000e+00, + 1.182084560390000e+01, + 7.566616058350000e+00, + -9.106065750120001e+00, + 7.107642173770000e+00, + -3.858412265780000e+00, + -3.339277744290000e+00, + 6.189400553700000e-01, + -4.940598607060000e-01, + 5.162502288820000e+00, + 4.451954364780000e-01, + -2.170159816740000e+00, + -2.590554654600000e-01, + -2.363059282300000e+00, + 1.024755537510000e-01, + 2.610202550890000e+00, + -2.116871833800000e+00, + 3.413340091710000e+00, + 5.439710803330000e-03, + 5.572576999660000e+00, + -5.715288162230000e+00, + 7.271327376370000e-01, + -8.587861061099999e-01, + -5.646166801450000e+00, + -7.307833671570000e+00, + 7.392477512360000e+00, + -2.324517369270000e-01, + -1.293049454690000e+00, + -6.348031520840000e+00, + 2.294016361240000e+00, + -2.888195276260000e+00, + 1.040444374080000e+01, + -2.880738735200000e+00, + -6.280647754670000e+00, + 1.012345123290000e+01, + -5.572452068330000e+00, + -6.892806530000000e+00, + -9.807881712909999e-02, + 6.020172595980000e+00, + -3.305499553680000e+00, + -2.454525709150000e+00, + -6.370738506320000e+00, + 5.721828460690000e+00, + 1.322743177410000e+00, + 1.662832379340000e+00, + 1.520709395410000e+00, + 1.424998521800000e+00, + 1.462059736250000e+00, + -1.303174138070000e+00, + 6.410962581630000e+00, + 4.933469295500000e+00, + -6.963044404980000e-01, + -3.253022193910000e+00, + 3.393069803710000e-01, + 2.977593660350000e+00, + -3.516259670260000e+00, + 5.137606620790000e+00, + 3.284142911430000e-01, + 6.540972232820000e+00, + -1.325007796290000e+00, + -6.688303947449999e-01, + -5.399752140050000e+00, + -5.546758174900000e+00, + -2.350482702260000e+00, + -4.373956680300000e+00, + 1.207097530360000e+00, + 1.425076723100000e+00, + 1.354588031770000e+00, + 1.552573800090000e+00, + -1.696891784670000e+00, + 6.284027099610000e+00, + -2.049265146260000e+00, + 4.740441322330000e+00, + -2.984934329990000e+00, + 1.361002445220000e+00, + 2.328588485720000e+00, + -1.331753253940000e+00, + -6.585123062130000e+00, + 7.172308444980000e+00, + -3.444258213040000e+00, + -1.092851519580000e+00, + -6.218224763869999e-01, + -5.892569065090000e+00, + -4.143719077110000e-01, + -2.485451459880000e+00, + 2.266631126400000e+00, + 5.157824516300000e+00, + -1.387663602830000e+00, + 9.605993628500000e-01, + 4.617508888240000e+00, + 6.051743030550000e+00, + -2.025441408160000e+00, + -4.178571701050000e+00, + 4.512116432190000e+00, + -2.859404385090000e-01, + 7.160489559170000e+00, + 9.980452060700000e-01, + 9.498088359830000e-01, + -6.834077239040000e-01, + 6.774000167850000e+00, + 8.965085148810000e-01, + 1.169955372810000e+00, + -7.364680290220000e+00, + -4.668837070470000e+00, + -2.116846799850000e+00, + 1.406075239180000e+00, + -6.490792274480000e+00, + 5.707592964170000e+00, + -2.351095229390000e-01, + 2.667846679690000e+00, + -3.498286962510000e+00, + -6.627872467040000e+00, + -4.679586887360000e+00, + -2.840981721880000e+00, + -4.352073669430000e+00, + -2.862939357760000e+00, + -1.977858543400000e+00, + -6.529651880260000e-01, + -3.997455358510000e+00, + 1.971338629720000e+00, + 5.150182247160000e+00, + -1.026072740550000e+00, + 1.209022998810000e+00, + 1.351132869720000e+00, + 1.381941676140000e+00, + 1.403628706930000e+00, + 1.125764966010000e+00, + -1.664327979090000e+00, + 5.963543891910000e+00, + 4.712540626530000e+00, + -6.676589846610000e-01, + -3.248883247380000e+00, + 5.174543708560000e-02, + 2.551078081130000e+00, + -3.608598947530000e+00, + 4.823161125180000e+00, + 3.709101676940000e-01, + 6.398439884190000e+00, + -1.350160241130000e+00, + -6.183213591580000e-01, + -5.202626705170000e+00, + -5.694803714750000e+00, + -2.546919107440000e+00, + -4.755018711090000e+00, + 1.554595589640000e+00, + 1.275056004520000e+00, + 9.086537957190000e-01, + 2.011126756670000e+00, + -1.778122067450000e+00, + 5.716843605040000e+00, + -5.498113632200000e-01, + 5.328067779540000e+00, + -2.320621967320000e+00, + 1.122656166550000e-01, + 2.480046033860000e+00, + -1.335721969600000e+00, + -6.666437625890000e+00, + 7.454058170320000e+00, + -4.056266307830000e+00, + -1.679958701130000e+00, + -1.728081226350000e+00, + -6.132072925570000e+00, + -1.070526957510000e+00, + -2.446920633320000e+00, + 2.147751092910000e+00, + 6.013706207280000e+00, + -1.211848139760000e+00, + 1.876067966220000e-01, + 5.259666919710000e+00, + 5.080603122710000e+00, + -2.661615848540000e+00, + -4.278071403500000e+00, + 4.389442920680000e+00, + -1.762943267820000e-01, + 7.095375537870000e+00, + 9.479485154150000e-01, + 7.772509455680000e-01, + -1.373037219050000e+00, + 6.263239383700000e+00, + 1.312908530240000e+00, + 9.578235745430000e-01, + -6.114738941190000e+00, + -4.756520748140000e+00, + -2.019915103910000e+00, + 1.631844162940000e+00, + -6.640216827390000e+00, + 5.798918247220000e+00, + -4.036205708980000e-01, + 1.729040861130000e+00, + -3.885748863220000e+00, + -6.593975067140000e+00, + -5.100805282590000e+00, + -3.586339473720000e+00, + -3.968183755870000e+00, + -2.406726121900000e+00, + -1.941330432890000e+00, + -1.702528953550000e+00, + -3.660501718520000e+00, + 1.890302300450000e+00, + 6.408679962160000e+00, + -7.221375703810000e-01, + -4.011661410330000e-01, + -2.907323539260000e-01, + -4.946409165860000e-01, + -3.702854514120000e-01, + -4.377173781390000e-01, + -2.112862348560000e+00, + -1.522874236110000e+00, + 2.831417024140000e-01, + 2.462449073790000e+00, + 4.508282840250000e-01, + 5.816689729690000e-01, + -1.138853311540000e+00, + -1.303449749950000e+00, + -7.335207462310001e-01, + 2.706746339800000e+00, + 6.725444197650000e-01, + 5.750493332740000e-02, + -8.261969089510000e-01, + 9.188864231110000e-01, + -3.147089719770000e+00, + -7.216369509700000e-01, + 3.641768217090000e+00, + -4.989428818230000e-02, + -1.427734941240000e-01, + -7.926730811600000e-02, + -1.179720759390000e+00, + -1.834529519080000e+00, + -1.164581298830000e+00, + 1.493939757350000e+00, + -1.100911259650000e+00, + -5.326926112170000e-01, + 1.235645785930000e-01, + -6.459873318670000e-01, + -1.550826072690000e+00, + -2.449894189830000e+00, + 4.773167371750000e-01, + 1.384666204450000e+00, + -7.876853346820000e-01, + 3.465379238130000e+00, + 3.810495853420000e+00, + 2.499737262730000e+00, + 8.319545984270000e-01, + -1.723021030430000e+00, + 1.680124878880000e+00, + -1.718521833420000e+00, + 5.052959442140000e+00, + 3.838191330430000e-01, + -3.746392950420000e-02, + -1.154242038730000e+00, + -1.897773027420000e+00, + 4.092844724660000e-01, + -5.240811109540000e-01, + 1.432865858080000e+00, + 1.128275513650000e+00, + -3.839140534400000e-01, + -1.444979310040000e+00, + -2.085981130600000e+00, + -8.482972383500000e-01, + -1.070655226710000e+00, + 2.177533388140000e+00, + -6.018227338790000e-01, + -1.496386826040000e-01, + -3.159602284430000e-01, + -4.979996681210000e+00, + -1.316241621970000e+00, + -3.630197644230000e-01, + -1.735949397090000e+00, + 5.186308622360000e-01, + -3.442540884020000e+00, + 1.300120949750000e+00, + -2.930787086490000e+00, + 4.287584781650000e+00, + 3.755182266240000e+00, + -2.437496900560000e+00, + 1.497904777530000e+00, + -1.861776262520000e-01, + -4.650180041790000e-01, + -1.252960801120000e+00, + -1.399267196660000e+00, + -3.304728567600000e-01, + -2.691342830660000e-01, + -3.353323638440000e-01, + -5.203699469570000e-01, + -7.508448362350000e-01, + -1.878066420560000e+00, + -1.160167336460000e+00, + 2.692658603190000e-01, + 2.415391206740000e+00, + 2.088951766490000e-01, + 4.918737113480000e-01, + -7.554738521580000e-01, + -1.568799257280000e+00, + -4.318420290950000e-01, + 2.765346527100000e+00, + 6.475998163220000e-01, + 1.935520619150000e-01, + -1.252104401590000e+00, + 9.429488182070001e-01, + -3.095389366150000e+00, + -1.002182722090000e+00, + 3.391585111620000e+00, + -4.067358672620000e-01, + -4.570671916010000e-01, + 3.900272538890000e-03, + -4.071324467660000e-01, + -2.158941507340000e+00, + -7.192203998570000e-01, + 2.113575935360000e+00, + -7.802329659460000e-01, + -2.293862998490000e-01, + 2.204168796540000e+00, + -1.700614988800000e-01, + -3.278729200360000e+00, + -2.591324090960000e+00, + -4.655213356020000e-01, + 6.582407951350000e-01, + -3.651946187020000e-01, + 2.735665798190000e+00, + 3.411525011060000e+00, + 3.556574821470000e+00, + 9.641391038890000e-01, + -6.029819250110000e-01, + 1.604542970660000e+00, + -2.080373287200000e+00, + 4.537099361420000e+00, + 4.093954861160000e-01, + 7.351493239400000e-01, + -1.702461719510000e+00, + -1.223083972930000e+00, + 9.306274056429999e-01, + 6.872189044950000e-01, + 2.553763389590000e+00, + 1.831323742870000e+00, + -1.727508381010000e-02, + -6.304312348370000e-01, + -1.892639994620000e+00, + 5.827033892270000e-02, + 4.288861155510000e-01, + 1.680536270140000e+00, + -3.634988069530000e-01, + 1.782265305520000e-01, + 2.042646408080000e-01, + -4.932817935940000e+00, + -1.245350956920000e+00, + -3.083753027020000e-02, + -3.329086899760000e-01, + -1.287521719930000e-01, + -4.013176918030000e+00, + 1.640366792680000e+00, + -2.380307197570000e+00, + 5.558304786680000e+00, + 3.084224462510000e+00, + -2.325033426280000e+00, + 2.811229228970000e+00, + 6.555191874500000e-01, + -1.198857069020000e+00, + -1.153002738950000e+00, + -1.246572613720000e+00, + 6.034747362140001e-01, + -3.616583347320000e-02, + 2.985480241480000e-03, + 3.115943670270000e-01, + 1.597577705980000e-02, + -6.406899690630000e-01, + -5.626551628110000e+00, + 7.201216220859999e-01, + 6.979448795320000e+00, + -4.082612037660000e+00, + 3.489998817440000e+00, + -3.059797763820000e+00, + -2.551430702210000e+00, + -4.059880733490000e+00, + 4.618709087370000e+00, + -1.498475432400000e+00, + 7.267778396610000e+00, + 5.014383316040000e+00, + -6.095291137700000e+00, + -2.063960313800000e+00, + 9.684296607969999e+00, + -7.184063911440000e+00, + -3.204847872260000e-01, + 4.810461774470000e-02, + -1.175219267610000e-01, + 3.917381465440000e-01, + -1.343449950220000e+00, + -5.636916160580000e+00, + 6.115926742550000e+00, + 1.421202182770000e+00, + -4.078994750980000e+00, + 3.786407947540000e+00, + -3.331483125690000e+00, + 4.678842067720000e+00, + -2.124277830120000e+00, + -9.549849033359999e-01, + -4.242305755620000e+00, + 9.448655128480000e+00, + 8.543408393860000e+00, + -9.256956100460000e+00, + 6.400844573970000e+00, + -4.364553928380000e+00, + -3.044544696810000e+00, + 2.432943344120000e+00, + -9.662180542950000e-01, + 5.445963859560000e+00, + 4.271357879040000e-02, + -1.602236628530000e+00, + -1.207920312880000e+00, + -1.301761269570000e+00, + 1.074000597000000e-01, + 4.260696411130000e+00, + -1.724654912950000e+00, + 3.053316354750000e+00, + -2.097803056240000e-01, + 5.257331848140000e+00, + -5.725299358370000e+00, + 1.472185552120000e-01, + 6.165981292720000e-01, + -5.299296379090000e+00, + -7.128490448000000e+00, + 7.096402645110000e+00, + -2.415150105950000e-01, + -7.974756956100000e-01, + -4.761587619780000e+00, + 3.520236492160000e+00, + -2.510358572010000e+00, + 9.906879425050001e+00, + -2.963768959050000e+00, + -5.932280540470000e+00, + 1.013164711000000e+01, + -6.269693374630000e+00, + -9.294014930730000e+00, + 8.945892751220000e-02, + 5.470374107360000e+00, + -3.769031524660000e+00, + -3.023098945620000e+00, + -6.459183692930000e+00, + 5.423337459560000e+00, + -2.324706614020000e-01, + 2.915067598220000e-02, + 8.331894874570001e-02, + 5.064468085770000e-02, + 1.568500548600000e-01, + -5.838242173190000e-01, + -6.498004436490000e+00, + 9.057255387310000e-01, + 7.068696975710000e+00, + -3.855153083800000e+00, + 3.424461364750000e+00, + -2.979861021040000e+00, + -2.567180633540000e+00, + -3.797381877900000e+00, + 4.511556625370000e+00, + -1.283668041230000e+00, + 7.357818126680000e+00, + 4.893528461460000e+00, + -6.080532550810000e+00, + -2.250277757640000e+00, + 9.902994155880000e+00, + -7.221591949460000e+00, + -1.307137727740000e+00, + -3.965645432470000e-01, + 4.290430545810000e-01, + 4.902488589290000e-01, + -1.448752760890000e+00, + -5.185236454010000e+00, + 6.817398548130000e+00, + 2.511493921280000e+00, + -3.829047918320000e+00, + 3.314956426620000e+00, + -3.099394559860000e+00, + 4.939385890960000e+00, + -1.355770826340000e+00, + -5.412760972980000e-01, + -4.127078056340000e+00, + 1.063165378570000e+01, + 7.493704319000000e+00, + -8.399062156679999e+00, + 6.913156032560000e+00, + -4.469116210940000e+00, + -4.749198913570000e+00, + 1.226333022120000e+00, + -2.030253648760000e+00, + 3.558708429340000e+00, + -1.761997789140000e-01, + -1.711069464680000e+00, + -7.651055455210000e-01, + -2.707401990890000e+00, + 1.317939996720000e+00, + 3.756183147430000e+00, + -1.559376716610000e+00, + 3.883530139920000e+00, + -5.913078039880000e-02, + 5.720725059510000e+00, + -5.709224700930000e+00, + 4.322724640370000e-01, + -2.897467911240000e-01, + -5.094011783600000e+00, + -6.369776725770000e+00, + 6.739081859590000e+00, + 1.301942318680000e-01, + -7.005168795590000e-01, + -5.057209014890000e+00, + 2.381075143810000e+00, + -1.752061128620000e+00, + 9.629759788510000e+00, + -3.795868396760000e+00, + -5.792168140410000e+00, + 8.971631050110000e+00, + -5.837240695950000e+00, + -7.900377273560000e+00, + -6.227276325230000e-01, + 6.405591487880000e+00, + -3.075643301010000e+00, + -3.919797182080000e+00, + -6.017842292790000e+00, + 4.522759437560000e+00, + 1.943057030440000e-01, + 1.396209478380000e+00, + 1.419765591620000e+00, + 1.349410057070000e+00, + 1.530738234520000e+00, + -1.571368455890000e+00, + 5.810090065000000e+00, + 4.700653076170000e+00, + -3.316378593440000e-01, + -3.302555561070000e+00, + 1.925725936890000e-01, + 3.024124622340000e+00, + -3.234410285950000e+00, + 4.757927417760000e+00, + 1.286944746970000e-01, + 6.601078987120000e+00, + -1.714127898220000e+00, + -6.089060902600000e-01, + -5.395124912260000e+00, + -5.660280704500000e+00, + -2.577880620960000e+00, + -4.779635906220000e+00, + 1.126880526540000e+00, + 1.832422375680000e+00, + 6.210647821430000e-01, + 1.584471583370000e+00, + -2.321885108950000e+00, + 5.434381484990000e+00, + -2.317956835030000e-01, + 4.847358226780000e+00, + -3.060593843460000e+00, + 5.518006086350000e-01, + 3.093643665310000e+00, + -1.122894525530000e+00, + -7.613282203670000e+00, + 7.522330760960000e+00, + -3.963577270510000e+00, + -1.229863286020000e+00, + -1.210619091990000e+00, + -7.113667488100000e+00, + -1.064782381060000e+00, + -3.137747287750000e+00, + 8.636400103570000e-01, + 6.253982543950000e+00, + -7.745811939240000e-01, + 3.971387445930000e-01, + 5.711997985840000e+00, + 6.448710918430000e+00, + -1.594531893730000e+00, + -4.012649059300000e+00, + 3.834467649460000e+00, + 1.165870204570000e-01, + 6.234246253970000e+00, + 5.470030903820000e-01, + 1.277971029280000e+00, + -1.098373413090000e+00, + 6.214899063110000e+00, + 1.498114228250000e+00, + 1.420244932170000e+00, + -7.011527061460000e+00, + -4.710194587710000e+00, + -1.470263123510000e+00, + 8.842044472690000e-01, + -4.630332946780000e+00, + 6.227702617650000e+00, + 1.174700856210000e+00, + 2.454952001570000e+00, + -4.561915874480000e+00, + -6.143604278560000e+00, + -4.420814037320000e+00, + -1.745140790940000e+00, + -4.529556274410000e+00, + -3.342406749730000e+00, + -1.506190419200000e+00, + 2.252668589350000e-01, + -2.770104646680000e+00, + 2.423255681990000e+00, + 5.746887683870000e+00, + -5.473335832360000e-02, + 1.341955661770000e+00, + 1.456183552740000e+00, + 1.385208845140000e+00, + 1.203032612800000e+00, + 1.371604204180000e+00, + -1.377121210100000e+00, + 6.398979187010000e+00, + 4.570671081540000e+00, + -5.673534274100001e-01, + -3.399935722350000e+00, + 4.344488978390000e-01, + 2.363465785980000e+00, + -3.335658788680000e+00, + 4.984782695770000e+00, + 2.826373577120000e-01, + 6.468805789950000e+00, + -1.503399372100000e+00, + -6.558947563170000e-01, + -4.909944534300000e+00, + -5.596063137050000e+00, + -2.604314327240000e+00, + -4.522513866420000e+00, + 1.277770400050000e+00, + 1.508409023280000e+00, + 1.051613092420000e+00, + 1.793886423110000e+00, + -1.948736667630000e+00, + 6.633450984950000e+00, + -1.145077466960000e+00, + 6.074100494380000e+00, + -2.751999378200000e+00, + -7.592653036120000e-01, + 2.950623273850000e+00, + -7.653531432150000e-01, + -6.403436183930000e+00, + 7.055456161500000e+00, + -3.789969682690000e+00, + -9.375792741780000e-01, + -6.225693225860000e-02, + -6.687306880950000e+00, + -1.629455089570000e-01, + -1.894284844400000e+00, + 1.830957651140000e+00, + 5.300290107730000e+00, + -8.922259211540000e-01, + 8.164503574370000e-01, + 6.087869167330000e+00, + 6.693369388580000e+00, + -1.929543852810000e+00, + -3.762425661090000e+00, + 4.441493511200000e+00, + 1.844181418420000e-01, + 6.212001323700000e+00, + 8.839587867260000e-02, + 1.310346364970000e+00, + -1.537482500080000e+00, + 6.100619316100000e+00, + 1.062039256100000e+00, + 3.051712512970000e+00, + -6.551894187930000e+00, + -4.931687831880000e+00, + -1.824268341060000e+00, + 1.874849796300000e+00, + -4.857592582700000e+00, + 5.519225597380000e+00, + 6.393418312070001e-01, + 2.509400606160000e+00, + -3.107983350750000e+00, + -5.754057884220000e+00, + -6.169220447540000e+00, + -2.164454936980000e+00, + -4.742178440090000e+00, + -2.303230047230000e+00, + -1.770559698340000e-01, + -1.350327610970000e+00, + -3.062650442120000e+00, + 2.258352279660000e+00, + 5.718368530270000e+00, + -1.235382437710000e+00, + -5.131931304930000e-01, + -4.404961466790000e-01, + -3.060764968400000e-01, + -3.551314473150000e-01, + -2.125636637210000e-01, + -2.086812973020000e+00, + -1.212179541590000e+00, + 2.227766513820000e-01, + 2.286899328230000e+00, + 4.603108465670000e-01, + 5.914752483370000e-01, + 7.685020565990000e-02, + -1.162722468380000e+00, + -7.957310676570000e-01, + 2.929600477220000e+00, + 7.735455036160001e-01, + -8.980696648360000e-02, + -1.068872570990000e+00, + 9.853534102440000e-01, + -3.063761472700000e+00, + -1.054825782780000e+00, + 3.195335626600000e+00, + -1.294154286380000e+00, + 2.592878639700000e-01, + 1.769017726180000e-01, + -4.495200812820000e-01, + -1.872427582740000e+00, + -7.765799760820000e-01, + 1.492108702660000e+00, + -6.224793568250000e-02, + 1.740818321700000e-01, + 5.997995734210000e-01, + -7.832518219950000e-01, + -3.423272132870000e+00, + -2.526961088180000e+00, + -8.896458148960000e-01, + 5.144718289380000e-01, + -5.409957170490000e-01, + 3.857867956160000e+00, + 3.976236820220000e+00, + 1.840571403500000e+00, + 8.849815726280000e-01, + -1.861428856850000e+00, + 1.450194001200000e+00, + -1.882995843890000e+00, + 4.636801719670000e+00, + -3.943483531480000e-01, + 7.115696072580000e-01, + -2.127226352690000e+00, + -1.709880352020000e+00, + 1.101958990100000e+00, + 3.494872748850000e-01, + 3.365132331850000e+00, + 1.126922607420000e+00, + -2.215174287560000e-01, + -9.040757417680000e-01, + -1.090688347820000e+00, + -2.771610617640000e-01, + 2.368146926160000e-01, + 8.970168828960000e-01, + -8.363441228870000e-01, + 9.483944624660000e-03, + 2.920815944670000e-01, + -4.510158538820000e+00, + -1.794711589810000e+00, + 2.730861306190000e-01, + -8.730058074000000e-01, + -4.601110890510000e-02, + -4.352842807770000e+00, + 1.326850414280000e+00, + -3.203360319140000e+00, + 5.246052742000000e+00, + 3.671748638150000e+00, + -2.476444959640000e+00, + 2.052887678150000e+00, + 6.319102644920001e-01, + -7.837783694270000e-01, + -7.355918884280001e-01, + -1.144919753070000e+00, + -3.854126036170000e-01, + -3.639797568320000e-01, + -3.074905574320000e-01, + -1.442705392840000e-01, + -3.213441669940000e-01, + -1.959606170650000e+00, + -1.107757210730000e+00, + 5.926218628880000e-01, + 2.390839815140000e+00, + 4.131833314900000e-01, + 3.913944661620000e-01, + -6.760601401330000e-01, + -1.454631567000000e+00, + -5.989102125170001e-01, + 2.776021242140000e+00, + 4.434965550900000e-01, + 1.167759299280000e-01, + -1.144317626950000e+00, + 1.241439223290000e+00, + -2.877235889430000e+00, + -8.165281414990000e-01, + 3.546674251560000e+00, + 7.471491098400000e-01, + -8.104057312010000e-01, + 3.214987367390000e-02, + -9.077137708660000e-01, + -1.698438048360000e+00, + -5.253661274910000e-01, + 2.067659378050000e+00, + -5.273487567900000e-01, + -4.022535085680000e-01, + 6.590796113010000e-01, + -1.210031867030000e+00, + -3.560504436490000e+00, + -1.458966612820000e+00, + -4.033592343330000e-01, + -4.705601930620000e-02, + -1.627468109130000e+00, + 3.886188745500000e+00, + 3.044739484790000e+00, + 2.736116409300000e+00, + 1.226611495020000e+00, + -2.129767179490000e+00, + 1.174622178080000e+00, + -1.540626764300000e+00, + 4.818458557130000e+00, + 3.800107836720000e-01, + -7.123834639790000e-02, + -1.113100767140000e+00, + -1.477260947230000e+00, + 2.613218724730000e-01, + -1.897271573540000e-01, + 1.532685518260000e+00, + 1.004424333570000e+00, + -3.682594001290000e-01, + -2.606696486470000e-01, + -1.320921182630000e+00, + -2.976595461370000e-01, + -1.164249658580000e+00, + 4.873259365560000e-01, + -2.686916291710000e-01, + -6.747943162920000e-01, + -5.963882058860000e-02, + -4.811127185820000e+00, + -1.054229736330000e+00, + 1.934836059810000e-01, + -1.126677751540000e+00, + 2.873197197910000e-01, + -3.698318719860000e+00, + 2.308795690540000e+00, + -2.234054088590000e+00, + 4.708106040950000e+00, + 4.099454402920000e+00, + -2.028155803680000e+00, + 3.083393573760000e+00, + -1.773309148850000e-02, + -1.091728806500000e+00, + -3.156702816490000e-01, + -9.759706258770000e-01, + 1.540818214420000e-01, + 2.864957451820000e-01, + 1.724578440190000e-02, + 1.227628067140000e-01, + -2.053212672470000e-01, + -5.855767130850000e-01, + -5.908034324650000e+00, + 6.980620622630000e-01, + 6.407505035400000e+00, + -4.022089004520000e+00, + 3.408513545990000e+00, + -3.062274932860000e+00, + -2.329534292220000e+00, + -3.519263505940000e+00, + 4.623686313630000e+00, + -1.606775522230000e+00, + 7.154577255250000e+00, + 5.029585838320000e+00, + -5.872267723080000e+00, + -1.996220350270000e+00, + 9.537211418149999e+00, + -6.942224502560000e+00, + 2.725453674790000e-01, + 4.938739538190000e-01, + -1.607266515490000e-01, + -1.805529147390000e-01, + -1.120941042900000e+00, + -5.280248641970000e+00, + 6.065662384030000e+00, + 2.016420841220000e+00, + -3.427767992020000e+00, + 3.784241437910000e+00, + -4.120279312130000e+00, + 4.874810218810000e+00, + -1.411217331890000e+00, + -2.042734146120000e+00, + -4.323406696320000e+00, + 1.034780979160000e+01, + 7.419281005860000e+00, + -8.766570091249999e+00, + 6.948422908780000e+00, + -3.524430513380000e+00, + -3.693050861360000e+00, + 1.363967061040000e+00, + -9.829146265980000e-01, + 4.377035140990000e+00, + 9.759418368340000e-01, + -2.350139379500000e+00, + 4.046409428120000e-01, + -2.435276031490000e+00, + -9.925264120100000e-01, + 2.875486612320000e+00, + -2.338413000110000e+00, + 3.375418901440000e+00, + -1.471689939500000e-01, + 6.065569877620000e+00, + -5.735835552220000e+00, + 1.369437016550000e-02, + -4.692113101480000e-01, + -3.741353273390000e+00, + -6.006606101990000e+00, + 8.061716079709999e+00, + 3.971642255780000e-02, + -5.653982162480000e-01, + -5.103189468380000e+00, + 2.946370124820000e+00, + -2.239327669140000e+00, + 1.026637649540000e+01, + -4.839556694030000e+00, + -6.072821617130000e+00, + 9.322810173030000e+00, + -4.983871459960000e+00, + -8.255057334900000e+00, + -2.111540436740000e-01, + 7.570737838750000e+00, + -3.256626605990000e+00, + -4.039806842800000e+00, + -5.415750503540000e+00, + 4.111444950100000e+00, + 6.634504348040000e-02, + 1.952191740270000e-01, + -1.587211620060000e-03, + -3.710542023180000e-01, + -1.781242340800000e-01, + -1.397036015990000e-01, + -5.580012798310000e+00, + 7.107082605360000e-01, + 6.935939311980000e+00, + -3.927144765850000e+00, + 3.332312583920000e+00, + -3.596641302110000e+00, + -2.097850084300000e+00, + -3.799210548400000e+00, + 4.467375755310000e+00, + -1.260925173760000e+00, + 7.358660221100000e+00, + 4.992715835570000e+00, + -5.937900543210000e+00, + -2.021963119510000e+00, + 9.557851791379999e+00, + -7.033349990840000e+00, + 3.201656043530000e-01, + 7.742141485210000e-01, + 9.276521205900000e-01, + -6.460739970210000e-01, + -8.677068948750000e-01, + -5.105952262880000e+00, + 6.648043155670000e+00, + 1.682272553440000e+00, + -3.770596027370000e+00, + 3.333080768590000e+00, + -2.922817468640000e+00, + 3.446175336840000e+00, + -2.675697565080000e+00, + -2.044999599460000e+00, + -4.417819499970000e+00, + 1.063358879090000e+01, + 6.967981338500000e+00, + -7.342255115510000e+00, + 7.846764087680000e+00, + -2.889141082760000e+00, + -3.634182453160000e+00, + 9.906913638110000e-01, + -4.384177029130000e-01, + 4.273307800290000e+00, + 9.881783723830000e-01, + -2.507851600650000e+00, + -6.960759758950000e-01, + -3.372587442400000e+00, + -5.846472382550000e-01, + 2.279951810840000e+00, + -1.590864896770000e+00, + 4.191910743710000e+00, + -1.785892397170000e-01, + 5.557163238530000e+00, + -6.314567089080000e+00, + 2.815793752670000e-01, + -4.871784746650000e-01, + -4.908478260040000e+00, + -7.198272705080000e+00, + 8.246664047239999e+00, + 8.554010391240000e-01, + -1.136459469800000e+00, + -6.294805049900000e+00, + 1.358785152440000e+00, + -3.010128021240000e+00, + 9.124681472780001e+00, + -3.690726757050000e+00, + -6.868088722230000e+00, + 8.746843338010001e+00, + -6.043804645540000e+00, + -7.240110397340000e+00, + -5.980441719290000e-02, + 6.373283386230000e+00, + -3.179035425190000e+00, + -2.775694370270000e+00, + -5.657128810880000e+00, + 4.802964687350000e+00, + 1.198245286940000e+00, + 1.295839667320000e+00, + 1.311210751530000e+00, + 1.480670094490000e+00, + 1.754629373550000e+00, + -1.633442759510000e+00, + 6.037464141850000e+00, + 4.928099155430000e+00, + -8.162928819660000e-01, + -3.366313219070000e+00, + 2.520473897460000e-01, + 2.785921096800000e+00, + -3.150455236430000e+00, + 5.032005786900000e+00, + -2.058586478230000e-02, + 6.447102546690000e+00, + -1.653085827830000e+00, + -8.408280611040000e-01, + -5.292409420010000e+00, + -5.535916805270000e+00, + -2.388851165770000e+00, + -4.584586620330000e+00, + 1.898445606230000e+00, + 6.956753134730000e-01, + 7.279710769650000e-01, + 7.517966032030000e-01, + -1.783770442010000e+00, + 6.375293254850000e+00, + -1.330559730530000e+00, + 4.996748447420000e+00, + -3.335991382600000e+00, + 2.675038576130000e-01, + 3.162029266360000e+00, + -5.292698740960000e-01, + -6.568669795990000e+00, + 7.980943202970000e+00, + -3.553231239320000e+00, + -1.490154743190000e+00, + -2.277394533160000e+00, + -6.324271678920000e+00, + -5.933530330660000e-01, + -2.599003076550000e+00, + 2.356782913210000e+00, + 5.877669334410000e+00, + -1.016043782230000e+00, + -7.100495696070000e-02, + 5.888031959530000e+00, + 6.698447704320000e+00, + -1.668697953220000e+00, + -3.750385999680000e+00, + 5.130157470700000e+00, + 2.187022008000000e-02, + 7.480482101440000e+00, + 1.775578379630000e+00, + 1.532637953760000e+00, + -2.191948890690000e+00, + 6.593671798710000e+00, + 1.452285528180000e+00, + 1.324403524400000e+00, + -6.865238189700000e+00, + -4.815742492680000e+00, + -1.704741477970000e+00, + 1.361449480060000e+00, + -4.685397148130000e+00, + 5.807542324070000e+00, + 8.370044827460000e-01, + 1.546829581260000e+00, + -3.566178560260000e+00, + -6.205200672150000e+00, + -4.829367160800000e+00, + -2.455060005190000e+00, + -4.038168907170000e+00, + -1.729199528690000e+00, + -1.195577263830000e+00, + 2.238189876080000e-01, + -3.352145195010000e+00, + 2.898076295850000e+00, + 5.988629341130000e+00, + -9.942105412480000e-01, + 1.359160065650000e+00, + 1.703402519230000e+00, + 1.397397398950000e+00, + 1.399774312970000e+00, + 1.349937796590000e+00, + -1.365698695180000e+00, + 6.467747688290000e+00, + 4.825935363770000e+00, + -9.023321270940000e-01, + -3.636169195180000e+00, + 2.083054929970000e-01, + 2.677208662030000e+00, + -3.428908824920000e+00, + 5.042462348940000e+00, + 2.231705039740000e-01, + 6.421984195710000e+00, + -1.324239969250000e+00, + -7.778968811040000e-01, + -5.167723178860000e+00, + -5.632813453670000e+00, + -2.427175045010000e+00, + -4.745614051820000e+00, + 1.687032461170000e+00, + 1.477937340740000e+00, + 5.130494832990000e-01, + 1.471304416660000e+00, + -2.065061569210000e+00, + 5.596639633180000e+00, + -1.585742950440000e+00, + 4.793728828430000e+00, + -2.428524732590000e+00, + -4.633547365670000e-02, + 2.647759437560000e+00, + -1.492765307430000e+00, + -7.222525119780000e+00, + 7.938771724700000e+00, + -3.598039388660000e+00, + -1.709612488750000e+00, + -7.866708040240000e-01, + -6.962981700900000e+00, + -4.752650484440000e-02, + -2.808876276020000e+00, + 1.668722271920000e+00, + 5.555340290070000e+00, + -1.507374167440000e+00, + -1.754328906540000e-01, + 5.614232540130000e+00, + 6.002382278440000e+00, + -1.889843106270000e+00, + -4.028704643250000e+00, + 5.063735485080000e+00, + -2.161047935490000e+00, + 6.705025672910000e+00, + 1.503201007840000e+00, + 1.189308643340000e+00, + -4.581529200080000e-01, + 6.327802181240000e+00, + 1.042760610580000e+00, + 1.847407341000000e+00, + -6.974244594570000e+00, + -5.962301254270000e+00, + -1.896574497220000e+00, + 1.717376708980000e+00, + -4.634902954100000e+00, + 4.398707389830000e+00, + 9.754314422610000e-01, + 1.810027599330000e+00, + -4.238673210140000e+00, + -5.868054389950000e+00, + -4.334822177890000e+00, + -2.540954351430000e+00, + -3.973827362060000e+00, + -2.665495634080000e+00, + -2.121842384340000e+00, + -3.725212812420000e-01, + -4.042341709140000e+00, + 3.418651819230000e+00, + 5.934340953830000e+00, + -1.407527446750000e+00, + -5.213655233380000e-01, + -1.101765930650000e-01, + -1.239102259280000e-01, + -3.992039561270000e-01, + 6.900792121890000e-01, + -1.968467712400000e+00, + -1.346197247510000e+00, + 2.137805223460000e-01, + 2.344419002530000e+00, + 4.863504767420000e-01, + 7.585694789890000e-01, + -7.138441205020000e-01, + -1.530846357350000e+00, + -8.337146043780000e-01, + 2.966502428050000e+00, + 6.458566188810000e-01, + -1.024643182750000e-01, + -1.411997318270000e+00, + 1.090950727460000e+00, + -3.021446466450000e+00, + -6.290475130080000e-01, + 3.722472190860000e+00, + -3.920297622680000e-01, + -2.030277699230000e-01, + -1.237125173210000e-01, + -4.025245308880000e-01, + -3.050828456880000e+00, + -9.771693348880000e-01, + 2.129317283630000e+00, + -1.500782608990000e+00, + 1.209321990610000e-02, + 1.117562413220000e+00, + -1.088610172270000e+00, + -2.190352678300000e+00, + -2.481222867970000e+00, + 1.488097459080000e-01, + 1.989333629610000e-01, + -2.468774557110000e+00, + 3.517845869060000e+00, + 3.593199968340000e+00, + 2.540307521820000e+00, + 5.762335658070000e-01, + -2.319469213490000e+00, + 1.891510963440000e+00, + -2.131174802780000e+00, + 4.853641033170000e+00, + -6.579815745349999e-01, + 2.571299374100000e-01, + -8.673526048660000e-01, + -3.011271476750000e+00, + 7.048400044440000e-01, + 1.831320859490000e-02, + 2.039158344270000e+00, + 1.007361650470000e+00, + -4.307805001740000e-01, + -5.185646563770000e-02, + -1.873746395110000e+00, + -3.713300824170000e-01, + -7.932728528980000e-01, + 1.445352792740000e+00, + -2.803916931150000e-01, + 1.631660163400000e-01, + -2.992326319220000e-01, + -4.403285503390000e+00, + -1.412331342700000e+00, + 9.051165580750000e-01, + -4.758725166320000e-01, + 3.109569288790000e-02, + -4.244697570800000e+00, + 1.248399138450000e+00, + -3.035294055940000e+00, + 3.599865674970000e+00, + 3.574670076370000e+00, + -2.355432510380000e+00, + 3.027896165850000e+00, + 9.683481454850000e-01, + -5.342083573340000e-01, + -4.904137849810000e-01, + -1.520677447320000e+00, + -2.964379489420000e-01, + -2.406426072120000e-01, + -1.851065456870000e-01, + -6.049892902370000e-01, + -3.191194236280000e-01, + -2.922295570370000e+00, + -1.879967927930000e+00, + 4.706543982030000e-01, + 2.363578557970000e+00, + 6.096653938290000e-01, + 4.395071268080000e-01, + -8.361719250680000e-01, + -1.351100444790000e+00, + -6.868785023690001e-01, + 3.145794153210000e+00, + 3.528041839600000e-01, + -2.031343430280000e-02, + -1.430160999300000e+00, + 8.760682344439999e-01, + -2.861521720890000e+00, + -8.678942918780000e-01, + 3.412280082700000e+00, + -5.073065757750000e-01, + 6.014573574070000e-01, + -1.268826603890000e+00, + -2.559029161930000e-01, + -2.067505598070000e+00, + -5.181174874309999e-01, + 1.956453084950000e+00, + -1.236282110210000e+00, + -3.886131942270000e-02, + 2.271568775180000e+00, + -6.181294918060000e-01, + -3.469138622280000e+00, + -2.524069547650000e+00, + -4.269815087320000e-01, + 6.149933338170001e-01, + -8.049837350850000e-01, + 2.897338390350000e+00, + 4.020160198210000e+00, + 2.846647739410000e+00, + 1.112270355220000e+00, + -1.138368010520000e+00, + 1.227064728740000e+00, + -1.512105822560000e+00, + 3.879974603650000e+00, + 3.373179435730000e-01, + 1.089393734930000e+00, + -1.866790056230000e+00, + -1.164041876790000e+00, + -6.931779980660000e-01, + -2.076094895600000e-01, + 1.638563036920000e+00, + -1.753820478920000e-01, + -4.079791307450000e-01, + -9.973123073580000e-01, + -1.539739847180000e+00, + -2.908123135570000e-01, + -6.063613295560000e-01, + 1.065097332000000e+00, + -1.082671642300000e+00, + 2.293595373630000e-01, + -3.071397356690000e-02, + -4.401774406430000e+00, + -1.167065501210000e+00, + 6.508442163470000e-01, + -4.637783765790000e-01, + -4.905762970450000e-01, + -3.347781896590000e+00, + 1.344469428060000e+00, + -1.241302371030000e+00, + 4.180390834810000e+00, + 3.914122819900000e+00, + -1.253948211670000e+00, + 2.054297924040000e+00, + 3.840743899350000e-01, + -3.643047809600000e-01, + -9.408290386200000e-01, + -1.809308409690000e+00, + 5.271637812260000e-02, + -8.623518049720000e-02, + 1.725997626780000e-01, + -8.645582199100001e-02, + 1.138906255360000e-01, + -6.958696246150000e-01, + -5.735375881200000e+00, + 7.136548161510000e-01, + 6.850387573240000e+00, + -3.779908657070000e+00, + 3.294021844860000e+00, + -3.155522823330000e+00, + -2.303639650340000e+00, + -3.903845310210000e+00, + 4.387703895570000e+00, + -1.482906460760000e+00, + 7.208218097690000e+00, + 4.848361968990000e+00, + -5.811013221740000e+00, + -2.436979532240000e+00, + 9.991699218750000e+00, + -7.559062004090000e+00, + -1.124344691630000e-01, + -6.140804290770000e-01, + -5.060954689980000e-01, + 1.041146293280000e-01, + 2.352409660820000e-01, + -6.253149509430000e+00, + 7.442396640780000e+00, + 2.161319494250000e+00, + -3.299145698550000e+00, + 3.601442575450000e+00, + -3.853884935380000e+00, + 5.227031707760000e+00, + -9.888060688970000e-01, + -1.855928421020000e+00, + -4.341568946840000e+00, + 1.177617740630000e+01, + 8.421044349670000e+00, + -7.473948955540000e+00, + 6.497689247130000e+00, + -3.651483058930000e+00, + -3.719459533690000e+00, + 1.685456037520000e+00, + -3.850521147250000e-01, + 4.104714870450000e+00, + -3.133261203770000e-02, + -2.078565835950000e+00, + -1.437041163440000e+00, + -1.053245425220000e+00, + 1.371538400650000e+00, + 3.709550857540000e+00, + -9.963024854660000e-01, + 3.429211616520000e+00, + 4.093072712420000e-01, + 4.765927791600000e+00, + -6.010007858280000e+00, + -2.355544120070000e-01, + 1.874204166230000e-02, + -5.495337009430000e+00, + -6.946833610530000e+00, + 7.999358177190000e+00, + -4.611154645680000e-02, + -7.490112781520000e-01, + -4.721128463750000e+00, + 1.617160916330000e+00, + -2.882568836210000e+00, + 1.037445068360000e+01, + -2.350575447080000e+00, + -5.268033981320000e+00, + 1.020831871030000e+01, + -5.718776702880000e+00, + -8.505172729490001e+00, + -4.052200317380000e-01, + 5.477291107180000e+00, + -4.064651489260000e+00, + -2.777022361760000e+00, + -6.036348819730000e+00, + 5.834732532500000e+00, + 9.565737843510000e-02, + 1.500311344860000e-01, + -8.409032225610000e-02, + 3.442196547990000e-02, + -4.137384891510000e-01, + -8.101966381070000e-01, + -5.609191894530000e+00, + 9.928326606750000e-01, + 7.270243167880000e+00, + -3.770824432370000e+00, + 3.373276472090000e+00, + -3.070611476900000e+00, + -2.087296485900000e+00, + -3.571106910710000e+00, + 4.500795364380000e+00, + -1.267055988310000e+00, + 7.640605926510000e+00, + 5.123541355130000e+00, + -5.975192546840000e+00, + -2.225955247880000e+00, + 9.620580673219999e+00, + -7.087213993070000e+00, + 4.437847733500000e-01, + 4.196617901330000e-01, + -6.389975547790000e-02, + 1.039857938890000e-01, + -8.012703657150000e-01, + -3.885749578480000e+00, + 6.760959625240000e+00, + 1.100243210790000e+00, + -3.189117908480000e+00, + 4.308671474460000e+00, + -2.905650615690000e+00, + 3.326519250870000e+00, + -2.069016218190000e+00, + -1.757900357250000e+00, + -4.115765571590000e+00, + 1.135363864900000e+01, + 6.955866336820000e+00, + -9.405480384830000e+00, + 6.271440029140000e+00, + -3.272461414340000e+00, + -3.811561822890000e+00, + 2.380246162410000e+00, + -1.335330486300000e+00, + 4.609590530400000e+00, + 6.740540862080000e-01, + -2.306872606280000e+00, + -9.846203327180000e-01, + -1.982922792430000e+00, + 6.495396494870000e-01, + 4.451290607450000e+00, + -2.445059299470000e+00, + 3.172957181930000e+00, + 3.195199668410000e-01, + 6.077356815340000e+00, + -5.717709064480000e+00, + -1.630030125380000e-01, + 2.694803774360000e-01, + -5.032284259800000e+00, + -6.447966098790000e+00, + 7.287204742430000e+00, + -6.542311906810000e-01, + -2.625588655470000e+00, + -6.311947822570000e+00, + 9.876055121420000e-01, + -3.031513690950000e+00, + 9.379306793210000e+00, + -3.331058025360000e+00, + -5.838551044460000e+00, + 8.851126670839999e+00, + -6.579070568080000e+00, + -8.609698295590000e+00, + -5.674223303790000e-01, + 7.189761161800000e+00, + -3.964040040970000e+00, + -2.121839284900000e+00, + -5.192657947540000e+00, + 5.128885746000000e+00, + 1.379056453700000e+00, + 1.682471752170000e+00, + 1.391596436500000e+00, + 1.212193608280000e+00, + 1.370400071140000e+00, + -1.657742381100000e+00, + 5.797293663020000e+00, + 4.705535411830000e+00, + -7.607290148740000e-01, + -3.218511343000000e+00, + 1.123994886880000e-01, + 2.488050699230000e+00, + -3.154904365540000e+00, + 5.044179916380000e+00, + 4.786482751370000e-01, + 6.550770282750000e+00, + -1.144451737400000e+00, + -1.366448640820000e+00, + -5.280178070070000e+00, + -5.530742168430000e+00, + -2.465413808820000e+00, + -4.603029251100000e+00, + 1.054591059680000e+00, + 2.851583004000000e+00, + 1.009632468220000e+00, + 1.773912787440000e+00, + -1.978484272960000e+00, + 7.281358718870000e+00, + -1.153262257580000e+00, + 4.610284805300000e+00, + -2.879137992860000e+00, + -4.660318791870000e-01, + 3.314689397810000e+00, + 5.566406250000000e-01, + -6.791596889500000e+00, + 8.610412597660000e+00, + -3.027486324310000e+00, + -2.659189224240000e+00, + -7.881820797919999e-01, + -5.792791843410000e+00, + -3.583761155610000e-01, + -1.741599440570000e+00, + 1.087633967400000e+00, + 4.729508876800000e+00, + -9.125080108640000e-01, + 1.512712240220000e+00, + 5.157420635220000e+00, + 5.535663604740000e+00, + -2.584948062900000e+00, + -4.009240627290000e+00, + 3.171622276310000e+00, + 2.427901178600000e-01, + 7.546817779540000e+00, + 1.150339007380000e+00, + 1.228485107420000e+00, + -9.562511444090001e-01, + 5.510787487030000e+00, + 1.498223781590000e+00, + 1.440541148190000e+00, + -6.451956748960000e+00, + -5.718178749080000e+00, + -1.278194904330000e+00, + 2.062226533890000e+00, + -5.697782993320000e+00, + 6.101038455960000e+00, + 1.019749760630000e+00, + 1.293281316760000e+00, + -4.359927177430000e+00, + -7.171655178070000e+00, + -5.274751186370000e+00, + -3.524361133580000e+00, + -4.950001239780000e+00, + -2.545830011370000e+00, + -8.848085403440000e-01, + -1.897564530370000e+00, + -3.930648803710000e+00, + 1.739037871360000e+00, + 5.613265991210000e+00, + -7.394037246700000e-01, + 1.102650880810000e+00, + 1.510561347010000e+00, + 1.247364044190000e+00, + 1.371974706650000e+00, + 8.159884214399999e-01, + -1.895143270490000e+00, + 5.994174480440000e+00, + 4.834546566010000e+00, + -6.049825549130000e-01, + -3.518343210220000e+00, + 4.552011489870000e-01, + 2.396729946140000e+00, + -3.762609481810000e+00, + 4.909907341000000e+00, + 1.732612550260000e-01, + 6.560426712040000e+00, + -1.617514967920000e+00, + -5.613425374030000e-01, + -5.126981258390000e+00, + -5.914455413820000e+00, + -2.819207668300000e+00, + -4.637973308560000e+00, + 1.272434353830000e+00, + 1.732413649560000e+00, + 1.642151236530000e+00, + 1.316776990890000e+00, + -1.705245614050000e+00, + 5.372285842900000e+00, + -6.916069388390000e-01, + 5.564863681790000e+00, + -4.275060176850000e+00, + -8.309316039090000e-01, + 4.500483989720000e+00, + -6.689631938930000e-01, + -6.355349540710000e+00, + 8.130874633790000e+00, + -3.545652151110000e+00, + -1.936218619350000e+00, + -1.210744827990000e-01, + -6.283421516420000e+00, + -3.701238334180000e-01, + -1.404229760170000e+00, + 2.802213430400000e+00, + 4.405486583710000e+00, + -1.519159078600000e+00, + 1.052397012710000e+00, + 6.111714839940000e+00, + 6.461822032930000e+00, + -2.115875244140000e+00, + -4.669586658480000e+00, + 4.201917171480000e+00, + 1.076845407490000e+00, + 7.564274787900000e+00, + -5.646882951260000e-02, + 1.823904991150000e+00, + -1.978261351590000e+00, + 6.287216186520000e+00, + 2.274922609330000e+00, + 1.441925764080000e+00, + -7.310020923610000e+00, + -4.566556453700000e+00, + -1.403882503510000e+00, + 1.525181770320000e+00, + -5.512558460240000e+00, + 5.783049106600000e+00, + 1.577734351160000e+00, + 2.719141483310000e+00, + -4.196765422820000e+00, + -7.016479969020000e+00, + -5.805564880370000e+00, + -2.801143646240000e+00, + -4.482237339020000e+00, + -3.233466386800000e+00, + -1.799030423160000e+00, + -1.085801482200000e+00, + -3.229197740550000e+00, + 2.139591932300000e+00, + 4.934482097630000e+00, + -7.128305435180000e-01, + -3.150242567060000e-01, + -2.547576129440000e-01, + -2.470993399620000e-01, + -2.972857654090000e-01, + -4.566297829150000e-01, + -1.780747175220000e+00, + -1.492722630500000e+00, + 2.543319761750000e-01, + 2.480827093120000e+00, + 6.875289678570000e-01, + 5.568445920939999e-01, + -7.241182923320000e-01, + -1.404784679410000e+00, + -8.276115059850000e-01, + 2.883205652240000e+00, + 5.728963017460000e-01, + 6.754413992170000e-02, + -6.107597351070000e-01, + 1.004507303240000e+00, + -3.309524297710000e+00, + -9.090458750720000e-01, + 3.385076761250000e+00, + -3.260864317420000e-01, + -1.534575939180000e+00, + 7.150754332540001e-02, + 2.838102355600000e-02, + -1.620191097260000e+00, + -1.063573956490000e+00, + 2.284576177600000e+00, + -2.602247297760000e-01, + -2.082467526200000e-01, + 2.245512753730000e-01, + -9.939745068550000e-01, + -3.571216106410000e+00, + -1.242547273640000e+00, + -1.012648224830000e+00, + 7.266482710840000e-02, + -1.967299699780000e+00, + 4.369862556460000e+00, + 3.879154920580000e+00, + 2.259339809420000e+00, + 1.307505011560000e+00, + -1.553248763080000e+00, + 1.800006628040000e+00, + -2.393735647200000e+00, + 4.385153293610000e+00, + 4.007417857650000e-01, + 1.220678687100000e+00, + -1.197271943090000e+00, + -1.353451728820000e+00, + -1.582655161620000e-01, + -3.296608328820000e-01, + 3.949192523960000e+00, + 4.734189212320000e-01, + -7.509912252430000e-01, + -1.111956238750000e+00, + -9.806852936740000e-01, + -7.434556484220000e-01, + -5.020273923870000e-01, + -9.384060651060000e-02, + -3.557526171210000e-01, + -1.047698020940000e+00, + -1.958620846270000e-01, + -4.683795928960000e+00, + -1.393726229670000e+00, + 5.844571068880000e-02, + -4.300672113900000e-01, + -3.384123444560000e-01, + -3.124965190890000e+00, + 1.899654507640000e+00, + -2.650342226030000e+00, + 4.504763126370000e+00, + 4.097153663640000e+00, + -3.333588600160000e+00, + 2.220583677290000e+00, + 1.049504756930000e+00, + -1.541438102720000e+00, + -3.772182464600000e-01, + -1.158105850220000e+00, + -2.573875784870000e-01, + -5.469385385510001e-01, + -3.210195302960000e-01, + -3.314114511010000e-01, + -6.362684369090000e-01, + -1.773622035980000e+00, + -1.165301084520000e+00, + 6.183325052260000e-01, + 2.226913928990000e+00, + 9.489954710010000e-01, + 8.400340080260000e-01, + -5.177963972089999e-01, + -1.714580297470000e+00, + -7.085255384450000e-01, + 2.416006803510000e+00, + 5.534482002260001e-01, + -1.991310864690000e-01, + -1.168788313870000e+00, + 1.050094723700000e+00, + -3.016835212710000e+00, + -9.837647676470000e-01, + 3.511243581770000e+00, + -6.302550435070000e-01, + -5.916886031630000e-02, + -2.387049347160000e-01, + 1.793810874220000e-01, + -1.958825826640000e+00, + -6.306379437450000e-01, + 2.571738004680000e+00, + -1.126299738880000e+00, + 2.501779608430000e-02, + 6.621961593630000e-01, + 4.802664816380000e-01, + -1.842911124230000e+00, + -2.310107707980000e+00, + -6.043552160260000e-01, + -1.245502680540000e-01, + -1.090366959570000e+00, + 4.083774089810000e+00, + 4.041842937470000e+00, + 2.257936477660000e+00, + 1.673739433290000e+00, + -2.275497198100000e+00, + 1.974324464800000e+00, + -1.288302540780000e+00, + 4.535655975340000e+00, + 2.325728684660000e-01, + -5.675373673440000e-01, + -2.075504064560000e+00, + -9.732648134230000e-01, + 1.082637310030000e+00, + 6.596338152890000e-01, + 2.506614685060000e+00, + 6.847064942120000e-02, + -1.014580249790000e+00, + 1.062534525990000e-01, + -1.468074679370000e+00, + 1.636510342360000e-02, + -3.928096890450000e-01, + 2.432375907900000e+00, + 2.914855256680000e-02, + -3.363341093060000e-04, + 2.907644808290000e-01, + -5.155478477480000e+00, + -5.554147362710000e-01, + -4.007669910790000e-02, + -1.108367085460000e+00, + 2.751961648460000e-01, + -4.107283115390000e+00, + -5.865432620050000e-01, + -2.311866045000000e+00, + 4.347490787510000e+00, + 2.930977582930000e+00, + -2.954562187190000e+00, + 2.593501806260000e+00, + 4.527594149110000e-01, + 1.792473196980000e-01, + -1.471989631650000e+00, + -3.405206441880000e+00, + -6.843535602090001e-02, + 2.103919088840000e-01, + 2.161997705700000e-01, + -1.445675045250000e-01, + 1.115002036090000e-01, + -5.879430770870000e-01, + -5.451798915860000e+00, + 8.005197048190000e-01, + 7.106888294220000e+00, + -3.948407173160000e+00, + 3.312701702120000e+00, + -3.189255476000000e+00, + -2.062331914900000e+00, + -3.665043354030000e+00, + 4.579636096950000e+00, + -1.855278372760000e+00, + 7.490008831020000e+00, + 4.907747745510000e+00, + -5.606662273410000e+00, + -2.133627891540000e+00, + 9.628358840940001e+00, + -7.129765987400000e+00, + 8.201201260090001e-02, + 4.356060028080000e-01, + 2.728896960620000e-02, + 7.173675894740000e-01, + 6.121891140940000e-01, + -6.724801540370000e+00, + 6.531320571900000e+00, + 1.630204319950000e+00, + -3.924226045610000e+00, + 3.039724111560000e+00, + -3.165794134140000e+00, + 4.782874107360000e+00, + -1.349771857260000e+00, + -4.488309025760000e-01, + -2.282618284230000e+00, + 1.161138820650000e+01, + 8.111586570740000e+00, + -7.621480941770000e+00, + 6.613356113430000e+00, + -4.456069469450000e+00, + -3.505351543430000e+00, + 1.782194733620000e+00, + -1.598448514940000e+00, + 4.692809581760000e+00, + 6.811295449730000e-02, + -1.474125504490000e+00, + -1.574777960780000e+00, + -2.306017398830000e+00, + 1.177217125890000e+00, + 3.655261039730000e+00, + -1.940602183340000e+00, + 3.873252630230000e+00, + -3.130415081980000e-02, + 4.989008426670000e+00, + -4.554943084720000e+00, + -1.808736622330000e-01, + -4.633154869080000e-01, + -4.384674072270000e+00, + -6.402678966520000e+00, + 8.925922393800001e+00, + 3.528304994110000e-01, + -9.112763404849999e-01, + -6.196964740750000e+00, + 3.405307531360000e+00, + -1.480974912640000e+00, + 9.050930023190000e+00, + -4.993657588960000e+00, + -5.987717628480000e+00, + 9.017885208130000e+00, + -4.579263210300000e+00, + -7.788659095760000e+00, + -5.666229128840000e-01, + 6.187602043150000e+00, + -4.086263656620000e+00, + -3.825139999390000e+00, + -5.998666286470000e+00, + 5.812900543210000e+00, + -2.534951642160000e-02, + 9.192413091660000e-02, + -2.607588283720000e-02, + -5.783781781790000e-02, + 2.342517524960000e-01, + -6.786260604860000e-01, + -5.940796852110000e+00, + 6.540830135350000e-01, + 6.921272754670000e+00, + -3.908077716830000e+00, + 3.267622470860000e+00, + -3.063451051710000e+00, + -2.228056669240000e+00, + -3.478281259540000e+00, + 4.711716651920000e+00, + -1.611304521560000e+00, + 7.342315196990000e+00, + 4.406538963320000e+00, + -5.814621925350000e+00, + -2.150655984880000e+00, + 9.526931762700000e+00, + -7.293044090270000e+00, + 3.548302948470000e-01, + 2.319174259900000e-01, + -2.020509690050000e-01, + -4.057429730890000e-02, + -7.351520061490000e-01, + -5.247484207150000e+00, + 7.060420989990000e+00, + 2.894903182980000e+00, + -4.064994335170000e+00, + 2.896480560300000e+00, + -3.882640123370000e+00, + 5.366311550140000e+00, + -2.637504577640000e+00, + -1.746356010440000e+00, + -5.173975944520000e+00, + 9.991775512700000e+00, + 1.008486843110000e+01, + -8.860167503360000e+00, + 5.699966430660000e+00, + -4.277003765110000e+00, + -4.679199695590000e+00, + 1.873787522320000e+00, + -1.652122735980000e+00, + 3.868131637570000e+00, + -1.386683464050000e+00, + -9.141589403150000e-01, + -3.220221698280000e-01, + -2.337505102160000e+00, + 1.056628584860000e+00, + 4.029299736020000e+00, + -2.014468431470000e+00, + 3.409386396410000e+00, + -6.285897493360000e-01, + 6.576876163480000e+00, + -5.618987560270000e+00, + -5.225658416750000e-01, + -6.901946067810000e-01, + -3.690077304840000e+00, + -6.255315303800000e+00, + 8.620217323300000e+00, + 8.753567934040000e-01, + -1.230448126790000e+00, + -6.801649570470000e+00, + 2.990172147750000e+00, + -2.813818454740000e+00, + 1.016246128080000e+01, + -4.404167175290000e+00, + -6.387626647950000e+00, + 9.147082328800000e+00, + -6.317591190340000e+00, + -7.986197471620000e+00, + -1.196131110190000e+00, + 6.974119663240000e+00, + -2.892411947250000e+00, + -3.976639032360000e+00, + -4.897387504580000e+00, + 5.124499320980000e+00, + 1.286446690560000e+00, + 1.442420125010000e+00, + 1.291799068450000e+00, + 1.420267462730000e+00, + 1.379451274870000e+00, + -1.664708614350000e+00, + 5.722840309140000e+00, + 4.761998176570000e+00, + -8.484728932380000e-01, + -3.327730655670000e+00, + 4.474428892140000e-01, + 2.416450738910000e+00, + -3.346741676330000e+00, + 5.018839836120000e+00, + 3.702099919320000e-01, + 6.303505897520000e+00, + -2.037957429890000e+00, + -7.036725878720000e-01, + -5.343492507930000e+00, + -6.183990955350000e+00, + -2.435877561570000e+00, + -4.825749397280000e+00, + 1.759840607640000e+00, + 1.710952878000000e+00, + 1.438662111760000e-01, + 1.362452030180000e+00, + -8.622426390650000e-01, + 6.142347335820000e+00, + -7.578085660930000e-01, + 5.326230049130000e+00, + -2.380053043370000e+00, + -4.736155569550000e-01, + 2.334393739700000e+00, + -1.182980656620000e+00, + -7.513184070590000e+00, + 6.934226036070000e+00, + -1.873968720440000e+00, + -1.821486115460000e+00, + -2.437931537630000e+00, + -5.221024513240000e+00, + -6.503314971920000e-01, + -2.454865694050000e+00, + 1.745774626730000e+00, + 5.348066806790000e+00, + -1.413617491720000e+00, + 1.628216624260000e+00, + 4.860296726230000e+00, + 6.485780715940000e+00, + -2.814212322240000e+00, + -4.889541149140000e+00, + 6.494073390960000e+00, + -7.826277017590000e-01, + 5.826398372650000e+00, + 9.630533456800000e-01, + 1.269456386570000e+00, + -2.200745344160000e+00, + 6.020792007450000e+00, + 9.188180565830000e-01, + 8.496428132060000e-01, + -6.762556552890000e+00, + -6.030677795410000e+00, + -1.628406047820000e+00, + 8.162564635280000e-01, + -5.035602092740000e+00, + 6.946565628050000e+00, + 6.638810038570000e-01, + 1.449079155920000e+00, + -3.454651355740000e+00, + -6.379198551180000e+00, + -5.778997421260000e+00, + -2.595797538760000e+00, + -4.081099987030000e+00, + -3.891882419590000e+00, + -2.600523471830000e+00, + -1.378171324730000e+00, + -4.430786132810000e+00, + 2.330850362780000e+00, + 5.062709808350000e+00, + -4.634037315850000e-01, + 1.295918107030000e+00, + 1.399785637860000e+00, + 1.582946896550000e+00, + 1.419062852860000e+00, + 1.383328676220000e+00, + -9.667810201640000e-01, + 5.382735252380000e+00, + 5.310669422150000e+00, + -6.576879620550000e-01, + -3.929130554200000e+00, + 2.839160263540000e-01, + 2.485390186310000e+00, + -3.380046129230000e+00, + 4.889978408810000e+00, + 4.253736138340000e-01, + 6.629226207730000e+00, + -1.408986210820000e+00, + -6.098227202890000e-02, + -5.259188652040000e+00, + -5.563933849330000e+00, + -2.643379211430000e+00, + -4.248880863190000e+00, + 1.533603072170000e+00, + 1.640005111690000e+00, + 2.220000743870000e+00, + 2.147156238560000e+00, + -1.878118991850000e+00, + 4.847132205960000e+00, + -9.963397383690000e-01, + 4.414945125580000e+00, + -3.044720649720000e+00, + -3.822134435180000e-01, + 3.214252948760000e+00, + -1.589315652850000e+00, + -5.906367301940000e+00, + 8.946159362790000e+00, + -4.164978027340000e+00, + -1.518961071970000e+00, + -1.802185893060000e+00, + -5.129856109620000e+00, + -1.934148222210000e-01, + -1.971261262890000e+00, + 1.276244878770000e+00, + 5.181001186370000e+00, + -1.094176650050000e+00, + 1.774048209190000e+00, + 4.667194366460000e+00, + 6.702680587770000e+00, + -2.062834978100000e+00, + -4.983764171600000e+00, + 4.680557250980000e+00, + -2.050845921040000e-01, + 7.103524684910000e+00, + 6.085762977600000e-01, + 1.299696087840000e+00, + -1.703987717630000e+00, + 5.747936248780000e+00, + 1.279994606970000e+00, + 1.046439647670000e+00, + -7.206151485440000e+00, + -5.015612602230000e+00, + -1.574871301650000e+00, + 8.943004608150000e-01, + -6.440612792970000e+00, + 5.902050971980000e+00, + 1.215637847780000e-01, + 2.903867244720000e+00, + -3.604931592940000e+00, + -5.156392574310000e+00, + -5.040617465970000e+00, + -2.739490985870000e+00, + -4.471015453340000e+00, + -2.732512950900000e+00, + -1.335159540180000e+00, + -2.059777528050000e-01, + -3.981163501740000e+00, + 3.069602012630000e+00, + 6.709344387050000e+00, + -6.313025355340000e-01, + -1.407296210530000e-01, + -4.321855902670000e-01, + 1.119756177070000e-01, + -4.410414397720000e-01, + -3.357305526730000e-01, + -1.873978137970000e+00, + -1.384007334710000e+00, + 4.675109982490000e-01, + 2.350634336470000e+00, + 4.191852509980000e-01, + 7.480137944220000e-01, + -4.801183044910000e-01, + -1.143806695940000e+00, + -4.447946846490000e-01, + 2.778533935550000e+00, + 4.500632286070000e-01, + -3.942510783670000e-01, + -1.532929301260000e+00, + 9.379589557650000e-01, + -3.379846572880000e+00, + -7.715756893160000e-01, + 3.462540626530000e+00, + -1.022898316380000e+00, + -2.997228801250000e-01, + -2.264710515740000e-01, + 1.912043429910000e-02, + -1.791091442110000e+00, + -2.245085090400000e-01, + 1.282724261280000e+00, + -1.084902524950000e+00, + 2.844429314140000e-01, + 1.522764801980000e+00, + -7.631247043610000e-01, + -3.744271039960000e+00, + -1.795730829240000e+00, + -3.240049481390000e-01, + 1.156324386600000e+00, + -6.873244643210000e-01, + 3.796876192090000e+00, + 3.969280958180000e+00, + 3.774347066880000e+00, + 1.411293745040000e+00, + -6.947158575060000e-01, + 6.518076062200000e-01, + -2.198906421660000e+00, + 4.308298587800000e+00, + 6.713384389880001e-02, + 5.429466962810000e-01, + -1.684032201770000e+00, + -1.647140502930000e+00, + 1.513439774510000e+00, + -3.428669273850000e-01, + 3.120076417920000e+00, + 9.616978764530000e-01, + -4.233328104020000e-01, + -1.427859544750000e+00, + -8.125355839730000e-01, + -6.429796814920000e-01, + 6.215417385100001e-01, + -5.717281103130000e-01, + -8.601831197740000e-01, + -3.527048975230000e-02, + -7.202158570290000e-01, + -4.483194828030000e+00, + -1.030691742900000e+00, + 8.850945532320000e-02, + 2.430151589210000e-02, + -8.028039336200000e-01, + -2.891741514210000e+00, + 1.695934653280000e+00, + -2.016704797740000e+00, + 5.149246215820000e+00, + 3.221982002260000e+00, + -3.035822629930000e+00, + 2.153339147570000e+00, + 9.475374221800000e-01, + -3.378450572490000e-01, + -2.334356069560000e+00, + -1.477873444560000e+00, + -2.177590578790000e-01, + -3.687230050560000e-01, + -3.729621171950000e-01, + -4.498335421090000e-01, + -4.256401360030000e-01, + -2.689222574230000e+00, + -1.420607090000000e+00, + 1.108234673740000e-01, + 2.605592966080000e+00, + 4.395855069160000e-01, + 6.930739283560000e-01, + -7.438747286800000e-01, + -1.480624556540000e+00, + -8.551693558690000e-01, + 3.151353120800000e+00, + 6.666119098660001e-01, + -2.044643089180000e-02, + -1.164627909660000e+00, + 8.675726652150000e-01, + -3.149530172350000e+00, + -7.068762779240000e-01, + 3.556135177610000e+00, + -2.929721027610000e-02, + -1.197512626650000e+00, + -1.487199187280000e+00, + 1.890347898010000e-01, + -1.754141330720000e+00, + -1.259042918680000e-01, + 8.957547545430000e-01, + 3.782055899500000e-02, + 2.993558645250000e-01, + 8.223240375520000e-01, + -1.390545368190000e+00, + -2.852050781250000e+00, + -2.185847282410000e+00, + -1.720536947250000e+00, + -6.507181525230000e-01, + -8.821445703510000e-01, + 3.452621936800000e+00, + 3.791643142700000e+00, + 2.651585578920000e+00, + 1.580682754520000e+00, + -2.426958560940000e+00, + 7.155039906500000e-01, + -4.081324934960000e-01, + 5.400833606720000e+00, + 4.542936384680000e-01, + 1.106444478030000e+00, + -3.010015249250000e+00, + -2.631259679790000e+00, + 4.574532210830000e-01, + 2.357905805110000e-01, + 2.774593114850000e+00, + 1.192941308020000e+00, + -1.473906993870000e+00, + -6.561641097070000e-01, + -1.098171710970000e+00, + -4.411978423600000e-01, + 2.081474363800000e-01, + 1.023936986920000e+00, + -4.328267872330000e-01, + -7.868049144740000e-01, + -5.231601595880000e-01, + -4.858834266660000e+00, + -1.002709269520000e+00, + -8.312602043150000e-01, + -9.645191431050000e-01, + 9.180663824080000e-01, + -3.722438335420000e+00, + 2.151223182680000e+00, + -2.898880958560000e+00, + 3.988075971600000e+00, + 3.051328182220000e+00, + -2.615929603580000e+00, + 2.571568250660000e+00, + 6.271880865100000e-01, + 2.161698192360000e-01, + -5.807276368140000e-01, + -1.225427031520000e+00, + 5.878850445150000e-02, + 9.162034094330000e-02, + 3.561218380930000e-01, + -5.968992412090000e-02, + 9.442108869550000e-01, + -8.100565671920000e-01, + -5.664882659910000e+00, + 7.950896024700000e-01, + 6.751829624180000e+00, + -4.211034297940000e+00, + 3.477568387990000e+00, + -3.228764295580000e+00, + -2.311471462250000e+00, + -3.712877511980000e+00, + 4.674407482150000e+00, + -1.623669028280000e+00, + 7.425664424900000e+00, + 5.028902530670000e+00, + -5.971947669980000e+00, + -2.259863138200000e+00, + 9.362632751460000e+00, + -7.256406784060000e+00, + 3.063991367820000e-01, + 9.308364391330000e-01, + 1.695812642570000e-01, + -1.160431504250000e-01, + -9.001571536060000e-01, + -7.203214168550000e+00, + 6.818593978880000e+00, + 1.502977490430000e+00, + -3.948914527890000e+00, + 3.523343563080000e+00, + -3.346862077710000e+00, + 4.477187156680000e+00, + -1.373551368710000e+00, + -3.477061092850000e-01, + -4.449139118190000e+00, + 1.086594581600000e+01, + 7.608341693880000e+00, + -8.617157936100000e+00, + 5.696377277370000e+00, + -4.705143451690000e+00, + -5.869893074040000e+00, + 1.875519275670000e+00, + -5.811017751690000e-01, + 4.282630920410000e+00, + 2.421032786370000e-01, + -2.830921411510000e+00, + -1.567788720130000e-01, + -3.277212142940000e+00, + 3.335162997250000e-01, + 3.072257757190000e+00, + -2.408103227620000e+00, + 2.754749298100000e+00, + -1.214335083960000e+00, + 5.261495113370000e+00, + -5.568597316740000e+00, + -6.393477916720000e-01, + 6.731227040290000e-01, + -4.703345298770000e+00, + -7.180253028870000e+00, + 8.175591468810000e+00, + 6.221568584440000e-01, + -4.322990477090000e-01, + -5.979933738710000e+00, + 3.232263565060000e+00, + -3.872772693630000e+00, + 1.042528438570000e+01, + -2.919270992280000e+00, + -6.300796508790000e+00, + 8.639360427860000e+00, + -5.187441825870000e+00, + -6.216002941130000e+00, + -4.728159606460000e-01, + 6.418358802800000e+00, + -2.374162673950000e+00, + -4.077086448670000e+00, + -5.859530448910000e+00, + 5.958541393280000e+00, + 6.369752883910000e-01, + 1.040733885020000e-02, + 1.774252504110000e-01, + 2.068574428560000e-01, + 1.033123284580000e-01, + -6.562009453770000e-01, + -5.636994361880000e+00, + 8.707745671270000e-01, + 6.954882621770000e+00, + -3.758045673370000e+00, + 3.493721246720000e+00, + -3.000929832460000e+00, + -2.212324380870000e+00, + -3.787737607960000e+00, + 4.435838222500000e+00, + -1.366280436520000e+00, + 6.999016284940000e+00, + 4.509307861330000e+00, + -5.899658203120000e+00, + -2.105489015580000e+00, + 9.670722961430000e+00, + -7.129784584050000e+00, + 3.390750288960000e-01, + 1.262138932940000e-01, + 1.258182674650000e-01, + 2.135732769970000e-01, + -3.817427530880000e-02, + -5.793815135960000e+00, + 6.851357936860000e+00, + 2.433784484860000e+00, + -5.046229839320000e+00, + 2.526504993440000e+00, + -2.110447883610000e+00, + 5.216988563540000e+00, + -1.414839625360000e+00, + -1.280950307850000e+00, + -4.136249542240000e+00, + 1.069752120970000e+01, + 8.565114974980000e+00, + -8.288188934330000e+00, + 6.659872531890000e+00, + -5.780423641200000e+00, + -3.439191341400000e+00, + 1.443785071370000e+00, + -6.835870146750000e-01, + 4.258327960970000e+00, + -5.424006581310000e-01, + -2.346562623980000e+00, + -1.313565611840000e+00, + -2.210286617280000e+00, + 4.417691379790000e-02, + 3.833999872210000e+00, + -2.222036838530000e+00, + 3.734857559200000e+00, + 9.816974401470000e-01, + 5.244780063630000e+00, + -6.660019874570000e+00, + -4.180985391140000e-01, + -3.297105133530000e-01, + -4.125285625460000e+00, + -8.063843727109999e+00, + 6.274870395660000e+00, + 3.157547488810000e-02, + -9.192385673520000e-01, + -6.666338443760000e+00, + 1.681421399120000e+00, + -4.130339145660000e+00, + 1.106311225890000e+01, + -4.476206302640000e+00, + -4.918772220610000e+00, + 9.313186645509999e+00, + -5.948880195620000e+00, + -8.488469123840000e+00, + -1.091049194340000e+00, + 5.723951816560000e+00, + -4.751145839690000e+00, + -3.106988668440000e+00, + -5.591184139250000e+00, + 5.678535461430000e+00, + 1.367801427840000e+00, + 1.483800053600000e+00, + 1.059598207470000e+00, + 1.474848985670000e+00, + 1.249919414520000e+00, + -4.103530943390000e-01, + 5.803345203400000e+00, + 4.896405220030000e+00, + -6.753337383270001e-01, + -3.504717350010000e+00, + 1.861734539270000e-01, + 2.492560625080000e+00, + -3.372763633730000e+00, + 5.113978385930000e+00, + 1.701158732180000e-01, + 6.489663600920000e+00, + -1.059388160710000e+00, + -6.590217947960000e-01, + -5.242879867550000e+00, + -5.759154796600000e+00, + -2.504576683040000e+00, + -4.802572250370000e+00, + 1.193122744560000e+00, + 1.669591426850000e+00, + 1.660438537600000e+00, + 1.344631671910000e+00, + -2.390257358550000e+00, + 5.350665092470000e+00, + -7.036454677580000e-01, + 5.519610404970000e+00, + -2.772819519040000e+00, + 1.083936929700000e+00, + 3.931299686430000e+00, + -5.944119691850001e-01, + -6.786183357240000e+00, + 6.702511310580000e+00, + -3.186167716980000e+00, + -2.733394503590000e-01, + -1.514560461040000e+00, + -4.816337108610000e+00, + 3.438971936700000e-02, + -3.225397348400000e+00, + 1.226428151130000e+00, + 5.679780006410000e+00, + -1.666550636290000e+00, + 1.467241644860000e+00, + 5.326514720920000e+00, + 6.321839332580000e+00, + -1.973150491710000e+00, + -4.432741165160000e+00, + 4.128961086270000e+00, + -4.433783888820000e-01, + 6.501787662510000e+00, + 3.582237362860000e-01, + 1.553434133530000e+00, + -1.140004754070000e+00, + 5.246897697450000e+00, + 8.677982091899999e-01, + 1.312406182290000e+00, + -7.500348567960000e+00, + -4.797657489780000e+00, + -1.512925982480000e+00, + 1.671488165860000e+00, + -7.023865222930000e+00, + 6.285875797270000e+00, + -5.801475048069999e-01, + 3.178002595900000e+00, + -4.560799121860000e+00, + -6.596213340760000e+00, + -5.818697929380000e+00, + -2.587907314300000e+00, + -4.582576751710000e+00, + -3.256677865980000e+00, + -1.844557404520000e+00, + -1.771855115890000e+00, + -3.963672637940000e+00, + 2.160028934480000e+00, + 5.921258926390000e+00, + 3.225120604040000e-01, + 1.310948967930000e+00, + 1.494473218920000e+00, + 9.948136210440000e-01, + 1.238693952560000e+00, + 1.393596529960000e+00, + -1.822052121160000e+00, + 5.854821681980000e+00, + 4.932809352870000e+00, + -1.035115718840000e+00, + -3.026389360430000e+00, + 5.561623722310000e-03, + 1.772756218910000e+00, + -3.618496179580000e+00, + 5.314848899840000e+00, + 3.206784427170000e-01, + 6.745818614960000e+00, + -1.303396105770000e+00, + -5.024970769879999e-01, + -5.224622726440000e+00, + -5.907110691070000e+00, + -2.753719091420000e+00, + -4.649168014530000e+00, + 1.900876522060000e+00, + 1.302976608280000e+00, + 1.116795301440000e+00, + 1.447762966160000e+00, + -1.889400005340000e+00, + 5.941734313960000e+00, + -1.592454314230000e+00, + 5.431388854980000e+00, + -3.038517475130000e+00, + -2.008595764640000e-01, + 3.039955377580000e+00, + -1.065728664400000e+00, + -7.658639431000000e+00, + 7.875250339510000e+00, + -3.274695873260000e+00, + -3.044322013850000e+00, + -4.751695692540000e-01, + -6.040370941160000e+00, + -5.547550916670000e-01, + -2.197138309480000e+00, + 1.243837833400000e+00, + 4.920823574070000e+00, + -2.949191570280000e+00, + 9.524881839750000e-01, + 5.377408027650000e+00, + 5.381415843960000e+00, + -2.226171970370000e+00, + -2.809104204180000e+00, + 3.934399366380000e+00, + 6.736577153210001e-01, + 6.505142688750000e+00, + 8.554387688640001e-01, + 1.629257082940000e+00, + -5.225845426320000e-02, + 6.616452693940000e+00, + 1.249311447140000e+00, + 6.558322906489999e-01, + -5.001016616820000e+00, + -4.919667720790000e+00, + -9.134364724160000e-01, + 1.393796563150000e+00, + -4.670327663420000e+00, + 5.883646965030000e+00, + 1.906964033840000e-01, + 2.725201606750000e+00, + -3.983582973480000e+00, + -6.006659507750000e+00, + -4.450042247770000e+00, + -2.644876718520000e+00, + -4.970133304600000e+00, + -4.001973629000000e+00, + -2.137341499330000e+00, + -8.698621988300000e-01, + -1.661269307140000e+00, + 2.129242181780000e+00, + 4.955667495730000e+00, + -8.278513550760001e-01, + -3.520017266270000e-01, + -3.066090941430000e-01, + 2.573062181470000e-01, + -3.981872200970000e-01, + -1.052866697310000e+00, + -1.639991402630000e+00, + -1.456171154980000e+00, + 1.667564064260000e-01, + 2.496698617940000e+00, + 4.535042941570000e-01, + 6.338092684750000e-01, + -4.943381249900000e-01, + -1.504520297050000e+00, + -6.470236182210000e-01, + 2.379198551180000e+00, + 7.244423031810000e-01, + -1.638403683900000e-01, + -1.175837874410000e+00, + 1.372928738590000e+00, + -2.965182065960000e+00, + -8.778434991840000e-01, + 3.737765550610000e+00, + -1.676916033030000e-01, + -5.112190842630000e-01, + -5.484623834490000e-02, + -2.539385557170000e-01, + -2.889784574510000e+00, + -2.061779975890000e+00, + 1.692724347110000e+00, + 4.385669231410000e-01, + 2.252416610720000e-01, + -1.100747846070000e-02, + -9.998946785930000e-01, + -4.215270042420000e+00, + -7.577140927310000e-01, + 4.235337972640000e-01, + 6.100456789140000e-02, + -1.302530050280000e+00, + 3.376092910770000e+00, + 3.877943515780000e+00, + 2.332438707350000e+00, + 2.082870244980000e+00, + -2.675830602650000e+00, + 1.309357166290000e+00, + -2.021846532820000e+00, + 4.734014511110000e+00, + -4.344979822640000e-01, + -3.478367328640000e-01, + -1.527364611630000e+00, + -2.454330682750000e+00, + 6.387324538080000e-03, + -2.154302001000000e-01, + 2.283733367920000e+00, + 5.866643190380000e-01, + -5.217574834820000e-01, + -5.371154546740000e-01, + -1.579182505610000e+00, + -4.354785382750000e-02, + -4.291693568230000e-01, + 1.038311123850000e+00, + 1.660124808550000e-01, + -2.233262509110000e-01, + -1.239832788710000e-01, + -5.035073757170000e+00, + -6.513283848760000e-01, + 9.282277226450000e-01, + -1.105011820790000e+00, + -4.365235567090000e-01, + -3.426581859590000e+00, + 3.381514251230000e-01, + -2.779092311860000e+00, + 5.030301094060000e+00, + 3.946817636490000e+00, + -2.424224615100000e+00, + 2.830292224880000e+00, + -8.864654898640000e-01, + 2.392039597030000e-01, + -1.177513480190000e+00, + 9.321650266650000e-01, + -5.274437665940001e-01, + -2.783717215060000e-01, + -3.991743028160000e-01, + -4.576776325700000e-01, + -3.101375997070000e-01, + -1.840561866760000e+00, + -1.298110485080000e+00, + 3.931001424790000e-01, + 2.714095115660000e+00, + 5.438776314260000e-02, + 5.344873666760001e-01, + 4.365577548740000e-02, + -1.315688133240000e+00, + -4.728699624540000e-01, + 2.730385780330000e+00, + 6.574543714520000e-01, + -2.546915598210000e-02, + -1.132583498950000e+00, + 1.004316926000000e+00, + -2.986598014830000e+00, + -8.339422345160000e-01, + 3.520726442340000e+00, + -4.794383943080000e-01, + -2.757592797280000e-01, + 4.378574788570000e-01, + -9.296286702160000e-01, + -1.296069979670000e+00, + -5.027458667760000e-01, + 1.445399403570000e+00, + -5.519440174100000e-01, + -4.393441230060000e-02, + 1.038146018980000e+00, + -8.092272281650000e-02, + -1.913604140280000e+00, + -2.024511575700000e+00, + 6.777576804160000e-01, + 2.223778963090000e-01, + -1.239610090850000e-01, + 4.140456676480000e+00, + 3.143615007400000e+00, + 2.494723796840000e+00, + 1.081643223760000e+00, + -3.366014480590000e+00, + 1.740009784700000e+00, + -2.451556444170000e+00, + 4.561580657960000e+00, + 3.996311426160000e-01, + -2.082041203980000e-01, + -6.033982038500000e-01, + -2.358745336530000e+00, + -4.821862876420000e-01, + 4.364926815030000e-01, + 3.148752212520000e+00, + 9.892962574960000e-01, + -1.184030175210000e+00, + -9.603419899940000e-01, + -1.317194700240000e+00, + 7.321024686100000e-02, + -3.530846536160000e-01, + 3.596618473530000e-01, + 4.054318070410000e-01, + -5.976876989010000e-02, + -3.556291759010000e-01, + -4.608269214630000e+00, + -7.904338836670000e-01, + 7.725623250010000e-02, + -1.200899124150000e+00, + 2.727964222430000e-01, + -5.518246650700000e+00, + 1.997089028360000e+00, + -3.350141763690000e+00, + 5.245398044590000e+00, + 3.580989122390000e+00, + -3.276527643200000e+00, + 2.741570234300000e+00, + 4.349795170130000e-03, + -6.228982806209999e-01, + -1.811072468760000e+00, + -1.453370332720000e+00, + 8.776725828650001e-02, + -1.469343006610000e-01, + 3.219845145940000e-02, + -1.491548717020000e-01, + -6.877883076670001e-01, + -8.931788615879999e-03, + -5.835788249970000e+00, + 7.679286599160000e-01, + 6.779932498930000e+00, + -4.104043006900000e+00, + 3.500924825670000e+00, + -3.241719961170000e+00, + -2.303215265270000e+00, + -3.656451463700000e+00, + 4.598307132720000e+00, + -1.510039925580000e+00, + 7.272543907170000e+00, + 4.926063060760000e+00, + -5.853090763090000e+00, + -1.932498335840000e+00, + 9.511621475220000e+00, + -7.170775413510000e+00, + -3.308941423890000e-01, + 6.447554379700000e-02, + 1.188359260560000e-01, + -1.351843923330000e-01, + -1.558241844180000e+00, + -4.134833812710000e+00, + 8.039934158330000e+00, + 1.177425384520000e+00, + -4.598201274870000e+00, + 3.384000301360000e+00, + -2.196331262590000e+00, + 4.300168037410000e+00, + -1.107502460480000e+00, + -1.109889626500000e+00, + -4.494096279140000e+00, + 9.418560981750000e+00, + 7.249858379360000e+00, + -8.583787918090000e+00, + 7.917306423190000e+00, + -4.967926025390000e+00, + -4.358983993530000e+00, + 2.495568275450000e+00, + -2.375192642210000e-01, + 3.742543697360000e+00, + 9.916579127310000e-01, + -2.233154296880000e+00, + 3.429411351680000e-01, + -1.765646815300000e+00, + 2.901796102520000e-01, + 3.785257816310000e+00, + -2.774131774900000e+00, + 4.531880855560000e+00, + 1.499354094270000e-01, + 4.670410156250000e+00, + -6.111799716950000e+00, + -3.333652019500000e-01, + 1.356783390050000e+00, + -4.603173732760000e+00, + -6.925927639010000e+00, + 9.058020591740000e+00, + 5.000362396240000e-01, + -8.738213181500000e-01, + -5.552851676940000e+00, + 2.008918046950000e+00, + -2.290513753890000e+00, + 9.816540718080001e+00, + -2.698896884920000e+00, + -6.040470123290000e+00, + 8.847023963930001e+00, + -6.278927326200000e+00, + -8.381120681760001e+00, + -8.603848218920001e-01, + 6.095169067380000e+00, + -2.620920896530000e+00, + -3.384221792220000e+00, + -5.643059730530000e+00, + 6.974510192870000e+00, + 4.049390181900000e-02, + 8.721957355740000e-02, + -5.768448114400000e-01, + 1.288154721260000e-01, + 6.272309273480001e-02, + -4.536952674390000e-01, + -5.696592807770000e+00, + 7.285358309750000e-01, + 6.731487274170000e+00, + -4.141309738160000e+00, + 3.256739854810000e+00, + -3.079174757000000e+00, + -2.182027578350000e+00, + -3.588581085210000e+00, + 4.452984809880000e+00, + -1.446017861370000e+00, + 7.295972824100000e+00, + 5.038883209230000e+00, + -6.046039104460000e+00, + -2.197563648220000e+00, + 9.471824646000000e+00, + -7.079628944400000e+00, + 2.235451042650000e-01, + -4.377062916760000e-01, + 5.891265273089999e-01, + -1.483721584080000e-01, + -1.093966484070000e+00, + -4.366158485410000e+00, + 6.038356304170000e+00, + 1.811139464380000e+00, + -3.955034971240000e+00, + 3.595316410060000e+00, + -2.956642866130000e+00, + 4.687907695770000e+00, + -1.700869679450000e+00, + 8.164557218550000e-01, + -3.974076509480000e+00, + 1.118947410580000e+01, + 7.260953426360000e+00, + -8.319143295290001e+00, + 6.878407955170000e+00, + -3.944790840150000e+00, + -3.699935436250000e+00, + 1.655693411830000e+00, + -4.077801108360000e-01, + 5.272966384890000e+00, + 1.999394416810000e+00, + -1.586431860920000e+00, + -8.124650716780000e-01, + -1.562969684600000e+00, + 9.664033651350000e-01, + 4.066058635710000e+00, + -2.199473142620000e+00, + 3.725544214250000e+00, + 1.338809579610000e-01, + 5.815412044530000e+00, + -4.965211868290000e+00, + 3.966504633430000e-01, + -1.308824568990000e-01, + -4.765691757200000e+00, + -6.687977314000000e+00, + 8.762237548830001e+00, + 1.015039682390000e-01, + -1.341830968860000e+00, + -6.458313465120000e+00, + 4.074967861180000e+00, + -2.382362842560000e+00, + 9.784340858460000e+00, + -2.999154567720000e+00, + -5.905708789830000e+00, + 9.351188659669999e+00, + -5.209760665890000e+00, + -8.448765754700000e+00, + -1.288511872290000e+00, + 5.160347461700000e+00, + -2.948239564900000e+00, + -3.208433866500000e+00, + -5.333465099330000e+00, + 6.290687561040000e+00, + 1.275578141210000e+00, + 1.456933975220000e+00, + 1.414624929430000e+00, + 1.514244437220000e+00, + 1.292335987090000e+00, + -1.751982092860000e+00, + 5.814051151280000e+00, + 4.837177753450000e+00, + -7.384623885150000e-01, + -3.272416591640000e+00, + 1.031185388570000e-01, + 2.479303836820000e+00, + -3.434612274170000e+00, + 5.113268375400000e+00, + 5.598626136780001e-01, + 6.648048400880000e+00, + -1.366015315060000e+00, + -7.201063036920000e-01, + -5.244434833530000e+00, + -5.742763996120000e+00, + -2.748313903810000e+00, + -5.031895160680000e+00, + 1.522501230240000e+00, + 1.008805632590000e+00, + 1.176153719430000e-01, + 8.305653929710000e-01, + -1.588529348370000e+00, + 6.411932468410000e+00, + -1.217781424520000e+00, + 5.179165363310000e+00, + -3.645124435420000e+00, + 2.956227362160000e-01, + 1.144818067550000e+00, + -1.601952910420000e+00, + -6.408230781560000e+00, + 8.488824844360000e+00, + -4.472727298740000e+00, + -1.672121286390000e+00, + -1.712015032770000e+00, + -6.104089736940000e+00, + -3.444944620130000e-01, + -1.736451983450000e+00, + 1.766702651980000e+00, + 4.737582206730000e+00, + -1.254532456400000e+00, + 1.066587924960000e+00, + 4.278558254240000e+00, + 6.255183696750000e+00, + -2.308758735660000e+00, + -3.541923284530000e+00, + 5.324560642240000e+00, + -1.328356117010000e-01, + 7.031949996950000e+00, + 1.088489294050000e+00, + 1.320100665090000e+00, + -1.230418443680000e+00, + 5.701130390170000e+00, + 2.099657535550000e+00, + 8.902926445010000e-01, + -7.252524375920000e+00, + -5.798720836640000e+00, + -1.556970953940000e+00, + 1.049980163570000e+00, + -5.299604415890000e+00, + 5.932768821720000e+00, + 3.051820099350000e-01, + 3.818304538730000e+00, + -4.250083923340000e+00, + -5.718673229220000e+00, + -5.373204231260000e+00, + -2.547052621840000e+00, + -4.646397113800000e+00, + -3.343363046650000e+00, + -1.584727048870000e+00, + -7.862510085110000e-01, + -4.195545673370000e+00, + 2.201232194900000e+00, + 6.453019142150000e+00, + -1.823594808580000e+00, + 1.434131383900000e+00, + 1.285601019860000e+00, + 1.751953601840000e+00, + 1.289724588390000e+00, + 1.347427606580000e+00, + -1.900124907490000e+00, + 5.887677192690000e+00, + 4.901066303250000e+00, + -7.407494783400000e-01, + -3.096075296400000e+00, + 2.325121909380000e-01, + 2.421953678130000e+00, + -3.344697237010000e+00, + 5.108876228330000e+00, + 1.637537032370000e-01, + 6.547325611110000e+00, + -1.557452440260000e+00, + -7.201837897300000e-01, + -5.119903564450000e+00, + -5.556399345400000e+00, + -2.599309921260000e+00, + -4.500857353210000e+00, + 2.562328338620000e+00, + 8.625234365460001e-01, + 1.643443107600000e+00, + 1.603188991550000e+00, + -1.784429073330000e+00, + 4.663195133210000e+00, + -1.439003348350000e+00, + 5.486792564390000e+00, + -3.589095592500000e+00, + 1.023441314700000e+00, + 4.369329929350000e+00, + -1.554719448090000e+00, + -7.746905803680000e+00, + 7.546872615810000e+00, + -3.328487157820000e+00, + -8.860823512080001e-01, + -1.247642278670000e+00, + -5.615547657010000e+00, + 7.626804113390000e-01, + -2.514828205110000e+00, + 1.861645102500000e+00, + 5.535954475400000e+00, + -9.148807525630001e-01, + 1.164160609250000e+00, + 3.935043811800000e+00, + 6.113326549530000e+00, + -1.737036943440000e+00, + -5.227478027340000e+00, + 3.694090127940000e+00, + 2.990781366830000e-01, + 6.231374740600000e+00, + 1.856954216960000e+00, + 1.362020611760000e+00, + -1.540919899940000e+00, + 5.831223011020000e+00, + 5.925544500350000e-01, + 1.914718985560000e+00, + -6.255341053010000e+00, + -5.755159378050000e+00, + -1.006842136380000e+00, + 1.428850412370000e+00, + -5.380623817440000e+00, + 6.506587505340000e+00, + 1.430995911360000e-01, + 2.389768123630000e+00, + -3.325318098070000e+00, + -5.493416786190000e+00, + -4.075110912320000e+00, + -2.839772224430000e+00, + -5.618125915530000e+00, + -3.541391372680000e+00, + -1.954952359200000e+00, + -1.662993788720000e+00, + -3.542723894120000e+00, + 2.002575159070000e+00, + 5.502407073970000e+00, + 4.462431371210000e-02, + -2.627174258230000e-01, + -4.839167296890000e-01, + -3.094352781770000e-01, + -8.343166857959999e-02, + -5.499818325040000e-01, + -1.293449521060000e+00, + -1.136575937270000e+00, + 3.933359682560000e-01, + 2.457082748410000e+00, + 4.015754461290000e-01, + 4.286448657510000e-01, + -8.087439537050000e-01, + -1.264927148820000e+00, + -5.307348370550000e-01, + 2.662764310840000e+00, + 7.945711016650000e-01, + 9.886243194340000e-02, + -1.284521579740000e+00, + 1.011112689970000e+00, + -3.132357358930000e+00, + -1.040476560590000e+00, + 2.969421386720000e+00, + 6.751186400650000e-02, + 1.864747703080000e-01, + 3.890453577040000e-01, + -1.295867085460000e+00, + -2.865844964980000e+00, + 4.173027873040000e-01, + 2.448674440380000e+00, + -4.552488029000000e-01, + 1.746713042260000e+00, + 7.225801944730000e-01, + -9.661278724670000e-01, + -3.161267519000000e+00, + -2.006612777710000e+00, + -9.478975534440000e-01, + 2.646315991880000e-01, + 1.011118739840000e-01, + 3.369450569150000e+00, + 3.519695758820000e+00, + 2.379388809200000e+00, + 7.658835649490000e-01, + -1.467998862270000e+00, + 1.943753361700000e+00, + -1.998281478880000e+00, + 4.370315074920000e+00, + -1.008359789850000e+00, + -3.180984258650000e-01, + -1.712830781940000e+00, + -1.745728492740000e+00, + 6.916304230690000e-01, + 6.470826268200000e-01, + 2.860360145570000e+00, + 4.987792372700000e-01, + -2.331906259060000e-01, + -1.109409213070000e+00, + 2.217952162030000e-02, + -2.582066953180000e-01, + -5.940477848050000e-01, + 7.502200603490000e-01, + -4.206800758840000e-01, + -6.343833208080000e-01, + -1.681993901730000e-01, + -5.383220195770000e+00, + -1.931007027630000e+00, + 3.910479545590000e-01, + 3.090345561500000e-01, + 6.771295666690000e-01, + -3.473103523250000e+00, + 1.862091541290000e+00, + -3.722532749180000e+00, + 5.323838710780000e+00, + 3.221082210540000e+00, + -1.764411568640000e+00, + 2.791960239410000e+00, + -4.427638053890000e-01, + 2.405638098720000e-01, + -1.287996649740000e+00, + -4.831315577030000e-01, + -4.320626854900000e-01, + -3.763655126090000e-01, + 6.230736374860000e-01, + -5.651351809500000e-01, + -2.688345909120000e-01, + -1.442208766940000e+00, + -1.083855748180000e+00, + 3.995494544510000e-01, + 2.430126905440000e+00, + 4.121274948120000e-01, + 5.568126440050000e-01, + -8.587233424189999e-01, + -1.413716316220000e+00, + -6.208587288860000e-01, + 2.882552862170000e+00, + 5.784659385680000e-01, + -9.339620172980000e-02, + -1.157091379170000e+00, + 1.105517625810000e+00, + -3.434547662730000e+00, + -8.413999676700000e-01, + 3.360964536670000e+00, + -1.012966871260000e+00, + -5.701367855070000e-01, + 2.192918062210000e-01, + -9.992095232010000e-01, + -2.125901222230000e+00, + 1.138834506270000e-01, + 1.831821560860000e+00, + 6.933775544170000e-02, + -1.758449226620000e-01, + 1.931156277660000e+00, + -9.158875942230000e-01, + -2.163491010670000e+00, + -1.594670534130000e+00, + -1.613800764080000e+00, + 5.868834853170000e-01, + -3.810577392580000e-01, + 3.324342012410000e+00, + 5.365837097170000e+00, + 2.181456327440000e+00, + 1.700177431110000e+00, + -1.231322288510000e+00, + 2.467571735380000e+00, + -1.266226887700000e+00, + 3.733979940410000e+00, + 7.260802388190000e-01, + -1.803946495060000e-01, + -2.150103569030000e+00, + -1.989562511440000e-01, + 1.933831095700000e+00, + -1.691008657220000e-01, + 1.972012043000000e+00, + 1.259723186490000e+00, + -2.634428143500000e-01, + -1.688556313510000e+00, + -7.763251066210000e-01, + -1.350305825470000e-01, + -3.396205008030000e-01, + -6.245496273040000e-01, + -8.368545770650000e-01, + 1.096035987140000e-01, + -3.393317759040000e-01, + -3.886559247970000e+00, + -1.851813673970000e+00, + 6.543144583700000e-01, + -1.124944686890000e+00, + 2.190087586640000e-01, + -4.342740058900000e+00, + 1.750885605810000e+00, + -2.095585823060000e+00, + 5.529149532320000e+00, + 2.877947807310000e+00, + -3.608664035800000e+00, + 1.736320614810000e+00, + -3.025273382660000e-01, + -3.238964676860000e-01, + -2.093273162840000e+00, + 4.262745678420000e-01, + 1.472239345310000e-01, + 1.244914308190000e-01, + 2.748734951020000e-01, + 4.256312549110000e-01, + 3.210914731030000e-01, + -6.553089618680000e-01, + -6.349202156070000e+00, + 8.673662543300000e-01, + 8.066143989560000e+00, + -3.981449604030000e+00, + 3.116098880770000e+00, + -3.080883264540000e+00, + -2.258279085160000e+00, + -3.844429016110000e+00, + 4.566852092740000e+00, + -1.589837074280000e+00, + 7.156762123110000e+00, + 4.827832698820000e+00, + -5.952328681950000e+00, + -1.743441939350000e+00, + 1.010005950930000e+01, + -6.993393421170000e+00, + -5.459927916530000e-01, + -3.579558432100000e-01, + 1.678831502800000e-02, + 1.037543043490000e-01, + 9.678617119790001e-02, + -5.538799285890000e+00, + 6.276315212250000e+00, + 2.102722406390000e+00, + -4.436313629150000e+00, + 3.701806783680000e+00, + -2.665362834930000e+00, + 4.834437847140000e+00, + -2.479899883270000e+00, + -1.055029392240000e+00, + -5.151585578920000e+00, + 1.146932029720000e+01, + 9.059439659120001e+00, + -8.633853912350000e+00, + 6.571139812470000e+00, + -3.367404222490000e+00, + -3.903890848160000e+00, + 1.815618872640000e+00, + -1.624869257210000e-01, + 3.742441415790000e+00, + -9.111074805260000e-01, + -2.350873708720000e+00, + -6.809284091000000e-01, + -3.175101041790000e+00, + 1.499381065370000e-01, + 4.106973171230000e+00, + -2.174335241320000e+00, + 3.164904832840000e+00, + 4.575685411690000e-02, + 5.018286228180000e+00, + -5.761329174040000e+00, + 6.759637594220000e-02, + 7.819262742999999e-01, + -4.440899848940000e+00, + -6.667791843410000e+00, + 7.699288845060000e+00, + -5.905843526120000e-02, + -1.333864569660000e+00, + -4.263715744020000e+00, + 3.315569877620000e+00, + -2.280574321750000e+00, + 9.890617370610000e+00, + -2.382266044620000e+00, + -6.566309452060000e+00, + 1.011309909820000e+01, + -6.318426609040000e+00, + -8.131513595580000e+00, + -1.895905584100000e-01, + 5.408405303960000e+00, + -4.333314418790000e+00, + -2.404339313510000e+00, + -4.993351459500000e+00, + 5.792969703670000e+00, + 1.835884153840000e-01, + 1.105829700830000e-02, + -3.035565465690000e-02, + 3.472341224550000e-03, + 8.208751678470000e-02, + -5.684314370160000e-01, + -5.940596580510000e+00, + 8.436318039890000e-01, + 6.839243888850000e+00, + -3.844182252880000e+00, + 3.244151592250000e+00, + -3.259253263470000e+00, + -2.231296539310000e+00, + -3.799715995790000e+00, + 4.206975936890000e+00, + -1.725300431250000e+00, + 7.315368652340000e+00, + 5.185880184170000e+00, + -5.690593242650000e+00, + -2.040553808210000e+00, + 9.819282531740001e+00, + -6.833401679990000e+00, + 4.577837288380000e-01, + -3.495277166370000e-01, + 2.897605597970000e-01, + 3.874595761300000e-01, + -2.068278491500000e-01, + -5.705014705660000e+00, + 7.332578659060000e+00, + 2.432983160020000e+00, + -2.664422750470000e+00, + 3.867902755740000e+00, + -3.725831508640000e+00, + 4.053361892700000e+00, + -1.521187067030000e+00, + -1.996525883670000e+00, + -4.490893363950000e+00, + 1.133044052120000e+01, + 8.720027923580000e+00, + -1.014158248900000e+01, + 6.863043785100000e+00, + -4.248350143430000e+00, + -4.073625087740000e+00, + 2.783092498780000e+00, + -1.009739995000000e+00, + 4.663909435270000e+00, + 9.320044517520000e-01, + -3.258248806000000e+00, + -3.135215863590000e-02, + -2.697866439820000e+00, + 1.574794411660000e+00, + 3.058184862140000e+00, + -1.556618809700000e+00, + 4.238995552060000e+00, + -9.177019447090000e-02, + 5.877457141880000e+00, + -5.668945312500000e+00, + -3.446970582010000e-01, + 7.448015809060000e-01, + -5.316154003140000e+00, + -7.566004276280000e+00, + 8.222704887390000e+00, + -5.569089204070000e-02, + -1.534478425980000e+00, + -5.548915863040000e+00, + 4.105061054230000e+00, + -2.046979188920000e+00, + 9.670489311220001e+00, + -2.603587627410000e+00, + -6.681816577910000e+00, + 9.000489234920000e+00, + -5.984768867490000e+00, + -9.056990623470000e+00, + 6.725630760190000e-01, + 6.128363132480000e+00, + -5.019880294800000e+00, + -3.193122386930000e+00, + -6.861150741580000e+00, + 6.335846424100000e+00, + 1.132129430770000e+00, + 1.168271183970000e+00, + 1.459937095640000e+00, + 8.949022889140000e-01, + 2.571824073790000e+00, + -1.712364315990000e+00, + 6.164530277250000e+00, + 4.864302158360000e+00, + -1.624763756990000e-01, + -3.497239589690000e+00, + -5.484524741770000e-02, + 2.504722356800000e+00, + -3.251970529560000e+00, + 5.093559265140000e+00, + 1.969686001540000e-01, + 6.599812030790000e+00, + -1.486662626270000e+00, + -9.314695000650000e-01, + -5.359574794770000e+00, + -5.139577865600000e+00, + -2.459898948670000e+00, + -4.805076122280000e+00, + 1.432863116260000e+00, + 2.169600248340000e+00, + 1.635919094090000e+00, + 5.141811370850000e-01, + -1.957919240000000e+00, + 5.279944896700000e+00, + -8.855897188189999e-01, + 5.107041835780000e+00, + -3.022923469540000e+00, + -5.644029974940000e-01, + 4.029951572420000e+00, + -1.078586697580000e+00, + -6.283912658690000e+00, + 8.101037979130000e+00, + -3.231078863140000e+00, + -1.501515030860000e+00, + -7.799323797230000e-01, + -4.987951278690000e+00, + -7.989891767500000e-01, + -2.485310554500000e+00, + 8.813384771350000e-01, + 4.602154254910000e+00, + -1.805408835410000e+00, + 6.682470440860000e-01, + 5.651204109190000e+00, + 6.465987205510000e+00, + -1.539834260940000e+00, + -4.091946125030000e+00, + 4.941477775570000e+00, + -2.964937388900000e-01, + 7.002158164980000e+00, + 5.454971790310000e-01, + 1.388056993480000e+00, + -1.914635300640000e+00, + 6.073393821720000e+00, + 1.451012253760000e+00, + 1.675545096400000e+00, + -7.248745918270000e+00, + -4.736015319820000e+00, + -2.470941066740000e+00, + 1.096874833110000e+00, + -6.505889892580000e+00, + 6.503409862520000e+00, + 2.731382548810000e-01, + 2.780525684360000e+00, + -3.935734748840000e+00, + -5.948147296910000e+00, + -5.515966892240000e+00, + -2.597313880920000e+00, + -5.550747871400000e+00, + -3.588443994520000e+00, + -1.581475615500000e+00, + -8.776752352710000e-01, + -3.257624387740000e+00, + 2.751699924470000e+00, + 6.727955341340000e+00, + -3.742951452730000e-01, + 1.424473285680000e+00, + 7.261898517610000e-01, + 1.609819650650000e+00, + 1.376295804980000e+00, + 1.495661616330000e+00, + -1.698654770850000e+00, + 5.983994960780000e+00, + 5.081392765050000e+00, + -4.643943905830000e-01, + -3.106362342830000e+00, + 1.832931488750000e-01, + 2.455005407330000e+00, + -3.371059894560000e+00, + 4.939703464510000e+00, + 8.528675138950000e-02, + 6.555171012880000e+00, + -1.516147375110000e+00, + -8.763543963430001e-01, + -5.006812572480000e+00, + -6.065039634700000e+00, + -2.454720020290000e+00, + -4.784745693210000e+00, + 2.022843599320000e+00, + 1.160526752470000e+00, + 1.872181653980000e+00, + 1.022606492040000e+00, + -6.960673332210000e-01, + 5.991154193880000e+00, + -6.008017659190000e-01, + 5.565211296080000e+00, + -3.006219148640000e+00, + 1.870164990430000e+00, + 3.814140796660000e+00, + -1.280449390410000e+00, + -8.203628540040000e+00, + 7.584860801700000e+00, + -3.327840805050000e+00, + -2.099286794660000e+00, + -7.776564955710000e-01, + -6.512123584750000e+00, + -1.293048858640000e+00, + -1.775160312650000e+00, + 1.882489085200000e+00, + 4.857033729550000e+00, + -1.038913011550000e+00, + 5.085426568980000e-01, + 5.852506637570000e+00, + 4.897582054140000e+00, + -3.425252914430000e+00, + -4.501854896550000e+00, + 3.842503309250000e+00, + 2.781542539600000e-01, + 6.711529731750000e+00, + 4.958302155140000e-02, + 1.138076186180000e+00, + -1.651439070700000e+00, + 6.788920402530000e+00, + 1.093732237820000e+00, + 1.281528472900000e+00, + -6.799757003780000e+00, + -3.600987434390000e+00, + -2.478893041610000e+00, + 2.446520328520000e+00, + -5.113103866580000e+00, + 5.487318992610000e+00, + -1.526331901550000e-01, + 1.831456780430000e+00, + -2.778062343600000e+00, + -6.575700283050000e+00, + -6.015422821040000e+00, + -2.582196712490000e+00, + -4.532306194310000e+00, + -1.285466432570000e+00, + -3.177404999730000e-01, + -9.075846672060000e-01, + -2.317699432370000e+00, + 2.148133993150000e+00, + 4.685936927800000e+00, + -1.151324152950000e+00, + -7.949894666670000e-01, + -2.213131487370000e-01, + -5.183326601980000e-01, + 2.002607882020000e-01, + -9.947085380550000e-01, + -1.363152742390000e+00, + -6.144945621490000e-01, + 3.226639628410000e-01, + 2.443000078200000e+00, + 5.178931355480000e-01, + 3.345180749890000e-01, + -6.485112309460001e-01, + -1.478863239290000e+00, + -5.437808036800000e-01, + 2.657178878780000e+00, + 6.039102077480000e-01, + 1.047788262370000e-01, + -1.155681729320000e+00, + 1.323889255520000e+00, + -3.314637660980000e+00, + -8.099571466450000e-01, + 3.344300508500000e+00, + -5.500020384790000e-01, + -3.438601493840000e-01, + -4.070320725440000e-01, + -3.644255101680000e-01, + -1.783073067670000e+00, + -1.386320948600000e+00, + 2.360380411150000e+00, + -1.251032233240000e+00, + -5.263566374780000e-01, + 9.429680705070000e-01, + -1.068503618240000e+00, + -2.656389474870000e+00, + -2.335925579070000e+00, + 8.230145573620000e-01, + 9.867332577710000e-01, + -1.528723597530000e+00, + 4.984833717350000e+00, + 4.068625926970000e+00, + 2.482522249220000e+00, + 1.631186246870000e+00, + -1.826410174370000e+00, + 1.467421054840000e+00, + -1.983985424040000e+00, + 4.198971271510000e+00, + -4.734342396260000e-01, + -2.013981580730000e+00, + -1.743695616720000e+00, + -9.721599817280000e-01, + -1.183415800330000e-01, + 4.531107246880000e-01, + 2.958516359330000e+00, + 1.379534602170000e-01, + 2.647798359390000e-01, + -7.787004709240000e-01, + -1.247503161430000e+00, + -3.192046582700000e-01, + -6.790598630910000e-01, + 1.167539715770000e+00, + 5.659985542300000e-02, + 7.609139084820000e-01, + -5.241637825970000e-01, + -5.977210044860000e+00, + -1.559645533560000e+00, + 5.471599102020001e-01, + -1.061102747920000e+00, + 2.443763464690000e-01, + -4.086967945100000e+00, + 2.291930913930000e+00, + -2.221232652660000e+00, + 4.874923229220000e+00, + 2.335388183590000e+00, + -1.802992582320000e+00, + 2.844564437870000e+00, + 1.320914268490000e+00, + 6.330670118330000e-01, + -1.604657649990000e+00, + -2.600491523740000e+00, + -3.402541279790000e-01, + 3.097561299800000e-01, + -8.114790916440000e-02, + -2.948535680770000e-01, + -3.946871757510000e-01, + -1.850525856020000e+00, + -1.423235058780000e+00, + 2.889853119850000e-01, + 2.556437492370000e+00, + 2.768384218220000e-01, + 6.452692151070000e-01, + -9.376980066300000e-01, + -1.468519687650000e+00, + -5.765736103060000e-01, + 2.525234937670000e+00, + 5.453037619590000e-01, + 1.746360808610000e-01, + -1.305835485460000e+00, + 1.028137564660000e+00, + -2.757169008250000e+00, + -6.543112993240000e-01, + 3.187183380130000e+00, + -1.540274620060000e-01, + -9.358096718790000e-01, + -5.313990116120000e-01, + 4.502102136610000e-01, + -2.492052555080000e+00, + -1.026016116140000e+00, + 1.890692114830000e+00, + -4.942851960660000e-01, + -3.026976287360000e-01, + -2.611711919310000e-01, + -1.462563991550000e+00, + -2.957384347920000e+00, + -1.065613985060000e+00, + 2.683723568920000e-01, + 1.903467774390000e-01, + -7.763412594800000e-02, + 3.337202548980000e+00, + 4.763974189760000e+00, + 2.154294729230000e+00, + 1.390365242960000e+00, + -2.865921974180000e+00, + 1.788691282270000e+00, + -2.101376771930000e+00, + 4.039580345150000e+00, + -1.114587858320000e-01, + 3.059803843500000e-01, + -2.678179502490000e+00, + -1.959200263020000e+00, + 3.471289873120000e-01, + 2.176593393090000e-01, + 2.463466167450000e+00, + 3.971813023090000e-01, + -1.726832836870000e-01, + -1.029063940050000e+00, + -2.109194040300000e+00, + 2.240169644360000e-01, + -9.733201265340000e-01, + 8.829466104510000e-01, + -9.398737549780000e-01, + -6.453871726990000e-01, + -1.076647825540000e-02, + -4.068429470060000e+00, + -1.975933074950000e+00, + 1.136032581330000e+00, + 1.943346858020000e-01, + -5.257743000980000e-01, + -3.319506168370000e+00, + 1.533962607380000e+00, + -2.742938518520000e+00, + 5.051306724550000e+00, + 4.093590736390000e+00, + -1.772922754290000e+00, + 2.475635051730000e+00, + 2.484145313500000e-01, + -3.598400354390000e-01, + -2.109408974650000e-01, + -2.170134305950000e+00, + 1.069015730170000e-02, + 6.804055720570000e-02, + 1.818708479400000e-01, + 5.421462059020000e-01, + 5.307425279170000e-03, + -8.685146570209999e-01, + -5.651462078090000e+00, + 9.495074152950000e-01, + 6.817262172700000e+00, + -3.853968143460000e+00, + 2.640929222110000e+00, + -2.666841030120000e+00, + -2.570879697800000e+00, + -3.788948774340000e+00, + 5.024341583250000e+00, + -1.494183182720000e+00, + 7.121452331540000e+00, + 5.844106674190000e+00, + -5.818514347080000e+00, + -2.177344322200000e+00, + 9.750820159910001e+00, + -7.154349327090000e+00, + 4.425054788590000e-01, + 5.714549124240000e-02, + 5.279365181920000e-01, + -2.200519740580000e-01, + -1.635618209840000e+00, + -6.324713706970000e+00, + 6.078602314000000e+00, + 7.757243514060000e-01, + -3.852013111110000e+00, + 3.321111917500000e+00, + -1.744104981420000e+00, + 4.043185234070000e+00, + -1.542670130730000e+00, + -2.123352766040000e+00, + -4.914961814880000e+00, + 1.161619281770000e+01, + 8.698620796200000e+00, + -7.880835533140000e+00, + 5.783429145810000e+00, + -4.844393730160000e+00, + -2.531878471370000e+00, + 1.626232028010000e+00, + -4.331952333450000e-01, + 3.891842126850000e+00, + 1.022727131840000e+00, + -2.218823194500000e+00, + -6.127089858060000e-01, + -1.617790818210000e+00, + 1.546641588210000e+00, + 4.281990051270000e+00, + -8.907373547550000e-01, + 3.347221612930000e+00, + 2.279316335920000e-01, + 5.469546318050000e+00, + -6.470773220060000e+00, + -3.667846322060000e-01, + -2.592255771160000e-01, + -5.109813690190000e+00, + -7.640675067900000e+00, + 8.260812759400000e+00, + -5.040168762210000e-01, + -5.896342992780000e-01, + -4.362326622010000e+00, + 3.826910257340000e+00, + -2.805960893630000e+00, + 9.635818481450000e+00, + -4.481768131260000e+00, + -6.510165691380000e+00, + 9.067849159240000e+00, + -5.873952865600000e+00, + -8.208272933960000e+00, + -9.776988625530000e-02, + 6.725499629970000e+00, + -3.887411832810000e+00, + -3.425644636150000e+00, + -5.356668949130000e+00, + 5.295776367190000e+00, + 2.458992600440000e-01, + 1.683681756260000e-01, + 2.905799634750000e-02, + 9.561002254490000e-02, + -5.496784672140000e-02, + -4.200338125230000e-01, + -5.653058052060000e+00, + 7.572369575500000e-01, + 7.139365196230000e+00, + -3.725234270100000e+00, + 3.352029562000000e+00, + -3.189593553540000e+00, + -2.519360542300000e+00, + -3.672331810000000e+00, + 4.736910343170000e+00, + -1.444002985950000e+00, + 7.137384414670000e+00, + 5.024213314060000e+00, + -6.045231819150000e+00, + -2.040498256680000e+00, + 9.528745651250000e+00, + -7.132997035980000e+00, + 3.326575458050000e-01, + 1.130704134700000e-01, + -6.162449121480000e-01, + -5.104045271870000e-01, + -1.585625767710000e+00, + -5.056358814240000e+00, + 6.938026905060000e+00, + 1.339326858520000e+00, + -4.434205532070000e+00, + 2.861536979680000e+00, + -2.550158023830000e+00, + 6.158554077150000e+00, + -3.526286840440000e+00, + -2.289236783980000e+00, + -4.953999519350000e+00, + 1.117201423650000e+01, + 7.115029335020000e+00, + -7.820371627810000e+00, + 5.941622257230000e+00, + -4.001683235170000e+00, + -3.027607202530000e+00, + 3.520368576050000e+00, + 5.658911466600000e-01, + 4.111197471620000e+00, + 7.292268872260000e-01, + -2.057873010640000e+00, + -2.799755036830000e-01, + -2.236723184590000e+00, + 1.232430458070000e+00, + 4.030909061430000e+00, + -2.049894094470000e+00, + 4.322037220000000e+00, + -1.479948610070000e-01, + 5.128257751460000e+00, + -7.161158084870000e+00, + 7.456557452680000e-02, + -3.901275396350000e-01, + -5.520025730130000e+00, + -7.758099079130000e+00, + 8.274426460270000e+00, + -2.248831391330000e-01, + -1.271494030950000e+00, + -5.676988601680000e+00, + 2.145807743070000e+00, + -2.374389648440000e+00, + 1.049650001530000e+01, + -3.413920640950000e+00, + -5.384705066680000e+00, + 8.724818229680000e+00, + -5.259301185610000e+00, + -7.729616165160000e+00, + -6.649694442750000e-01, + 6.275588512420000e+00, + -3.593249082570000e+00, + -4.000834465030000e+00, + -5.918286800380000e+00, + 6.884120464320000e+00, + 1.412001848220000e+00, + 1.330684065820000e+00, + 1.496790051460000e+00, + 1.491392254830000e+00, + 1.718899726870000e+00, + -1.772987246510000e+00, + 6.111890316010000e+00, + 4.993218421940000e+00, + -8.643473982810000e-01, + -3.324861049650000e+00, + -4.036766588690000e-01, + 2.483015775680000e+00, + -3.060563087460000e+00, + 4.619232177730000e+00, + 5.593717694280000e-01, + 6.545933723450000e+00, + -1.425788164140000e+00, + -7.834267020230000e-01, + -5.349080085750000e+00, + -5.839669227600000e+00, + -2.667378664020000e+00, + -4.474646091460000e+00, + 1.344982504840000e+00, + 1.195973753930000e+00, + 1.200326681140000e+00, + 1.542805194850000e+00, + -1.864182949070000e+00, + 5.370720863340000e+00, + -1.775348484520000e-01, + 4.843496799470000e+00, + -3.263141870500000e+00, + 3.088145256040000e-01, + 2.846925735470000e+00, + -1.466484069820000e+00, + -8.025016784669999e+00, + 8.584194183350000e+00, + -3.503306865690000e+00, + -1.144387364390000e+00, + -1.254329323770000e+00, + -5.638308525090000e+00, + -1.255735635760000e+00, + -2.710947990420000e-01, + 1.942545652390000e+00, + 4.702215194700000e+00, + -1.426464557650000e+00, + 3.433579206470000e-01, + 4.377364635470000e+00, + 6.651938438420000e+00, + -1.799206614490000e+00, + -3.339413404460000e+00, + 4.080235481260000e+00, + -2.876397073270000e-01, + 6.651836395260000e+00, + 1.378792524340000e+00, + 1.258108139040000e+00, + -2.681943178180000e+00, + 6.732204914090000e+00, + 1.265691637990000e+00, + 1.341512680050000e+00, + -7.077532291410000e+00, + -4.882914543150000e+00, + -1.820857763290000e+00, + 2.251112461090000e+00, + -5.268863201140000e+00, + 5.832972526550000e+00, + 5.902951955800000e-01, + 8.508640527730000e-01, + -3.326711654660000e+00, + -6.611368656160000e+00, + -4.434210777280000e+00, + -2.943032026290000e+00, + -4.739727973940000e+00, + -4.023959159850000e+00, + -1.420831561090000e+00, + -1.635385751720000e+00, + -3.787513256070000e+00, + 2.547544956210000e+00, + 5.676106452940000e+00, + -5.871900916100000e-01, + 6.944350004199999e-01, + 1.363654851910000e+00, + 1.414067029950000e+00, + 1.618014216420000e+00, + 1.262398600580000e+00, + -1.963639378550000e+00, + 5.880809783940000e+00, + 4.839124202730000e+00, + -5.801627635960001e-01, + -3.147792339320000e+00, + 5.195695757870000e-01, + 2.560639381410000e+00, + -3.517974376680000e+00, + 4.924606323240000e+00, + 1.122844219210000e-01, + 6.513882160190000e+00, + -1.395650863650000e+00, + -1.156897187230000e+00, + -5.462455272670000e+00, + -5.492388725280000e+00, + -2.573920011520000e+00, + -4.749839782710000e+00, + 1.615689992900000e+00, + 1.406051874160000e+00, + 1.081382632260000e+00, + 1.938622593880000e+00, + -1.388778209690000e+00, + 6.291649818420000e+00, + -7.093892693520000e-01, + 5.514937400820000e+00, + -2.788501739500000e+00, + -2.283068299290000e-01, + 3.545905113220000e+00, + -1.450661897660000e+00, + -6.677319526670000e+00, + 7.473206520080000e+00, + -4.174180507660000e+00, + -6.197100877760000e-01, + -8.853124380110000e-01, + -6.643720149990000e+00, + 4.096269905570000e-01, + -1.576741576190000e+00, + 1.021877408030000e+00, + 4.614677906040000e+00, + -1.005061984060000e+00, + 2.507836222650000e-01, + 4.413163185120000e+00, + 6.685992717740000e+00, + -2.294026136400000e+00, + -3.602255582810000e+00, + 4.086750030520000e+00, + 2.737913727760000e-01, + 6.822617530820000e+00, + 1.696043610570000e-01, + 1.976978063580000e+00, + -5.896072387700000e-01, + 6.957703113560000e+00, + 9.639661908150000e-01, + 2.177057504650000e+00, + -6.703124523160000e+00, + -5.582994937900000e+00, + -1.485274910930000e+00, + 1.861482024190000e+00, + -5.737941265110000e+00, + 5.889287471770000e+00, + -6.953942775730000e-02, + 1.720208525660000e+00, + -3.514596700670000e+00, + -5.673409938810000e+00, + -5.692783355710000e+00, + -3.446103096010000e+00, + -4.389070987700000e+00, + -4.041729927060000e+00, + -1.632698178290000e+00, + -1.327966570850000e+00, + -4.651491642000000e+00, + 2.044028759000000e+00, + 5.270740985870000e+00, + -1.447968721390000e+00, + -3.026119470600000e-01, + -2.468974739310000e-01, + -3.457776010040000e-01, + 8.613765239720000e-02, + -3.694009780880000e-01, + -1.793693423270000e+00, + -1.296968698500000e+00, + 4.347406029700000e-01, + 2.520698547360000e+00, + 3.584423363210000e-01, + 1.149195075040000e+00, + -6.150332093240000e-01, + -1.320789098740000e+00, + -9.185426235200000e-01, + 3.256615638730000e+00, + 6.359363794330000e-01, + 1.646815612910000e-02, + -1.752321481700000e+00, + 6.516309976580000e-01, + -3.098963022230000e+00, + -8.413131237030000e-01, + 3.213783502580000e+00, + 5.226979404690000e-02, + -2.916477918620000e-01, + -4.893772304060000e-01, + -7.319833636280000e-01, + -1.035203933720000e+00, + -7.627050280570000e-01, + 2.275943279270000e+00, + -2.932706475260000e-01, + -2.440221607690000e-01, + 3.836082518100000e-01, + -6.080728769300000e-01, + -2.058793544770000e+00, + -2.829054117200000e+00, + 3.611263334750000e-01, + 1.225624680520000e+00, + -9.704899787900000e-01, + 4.566931247710000e+00, + 4.036418914790000e+00, + 2.439634799960000e+00, + 1.955531001090000e+00, + -2.090592622760000e+00, + 1.736049056050000e+00, + -1.823208212850000e+00, + 4.549171924590000e+00, + 1.594786167140000e+00, + 1.933949828150000e+00, + -1.606956243520000e+00, + -2.523977041240000e+00, + 1.528462648390000e+00, + 3.904558122160000e-01, + 2.934574842450000e+00, + 2.757813930510000e+00, + -5.742006301880000e-01, + -1.494359731670000e+00, + -1.664511322980000e+00, + 7.841005325320000e-01, + -3.432616591450000e-01, + -1.172153711320000e+00, + -3.422059416770000e-01, + 4.196186065670000e-01, + -7.500547170640000e-01, + -4.940073013310000e+00, + -2.193555116650000e+00, + -6.128228306770001e-01, + -6.868432760240000e-01, + -3.416048884390000e-01, + -4.147293567660000e+00, + 1.654682278630000e+00, + -2.552371978760000e+00, + 5.539712429050000e+00, + 3.701011896130000e+00, + -2.366083860400000e+00, + 2.139621734620000e+00, + 4.310302436350000e-01, + 2.232582867150000e-01, + -2.083855569360000e-01, + -1.232253670690000e+00, + 9.844825603070000e-03, + -4.974207282070000e-01, + -3.196265697480000e-01, + -4.293157756330000e-01, + -4.698877930640000e-01, + -8.193351030350000e-01, + -1.184792399410000e+00, + 2.699600458150000e-01, + 2.542468547820000e+00, + 3.336765468120000e-01, + 4.702556431290000e-01, + -7.871477603910000e-01, + -1.198377251630000e+00, + -4.610623419280000e-01, + 2.797223329540000e+00, + 6.073652505870000e-01, + 1.565896421670000e-01, + -1.089669823650000e+00, + 7.624403834340000e-01, + -2.979202032090000e+00, + -8.266975879670000e-01, + 3.667307615280000e+00, + -9.326288104060000e-01, + -1.931219846010000e-01, + 1.462298929690000e-01, + -1.830605506900000e+00, + -2.233915090560000e+00, + -4.643577933310000e-01, + 2.458900451660000e+00, + -7.029277086260000e-01, + -3.707842826840000e-01, + 1.485928773880000e+00, + -6.316429376600000e-01, + -3.291918754580000e+00, + -1.679602503780000e+00, + 7.928906679150000e-01, + 9.422327876090000e-01, + -1.898311853410000e+00, + 3.125243186950000e+00, + 4.400270462040000e+00, + 2.985762596130000e+00, + 2.557566642760000e+00, + -1.566753745080000e+00, + 2.757416486740000e+00, + -8.330521583560000e-01, + 3.162459373470000e+00, + 1.213626623150000e+00, + -9.231492280960000e-01, + -1.702604055400000e+00, + -8.469632267950000e-01, + 6.106946468350000e-01, + -1.036474466320000e+00, + 1.020617127420000e+00, + 1.337675809860000e+00, + 1.468505710360000e-01, + -1.524003624920000e+00, + -1.348393201830000e+00, + -1.019032359120000e+00, + -3.700106441970000e-01, + 1.327011823650000e+00, + -2.249857932330000e-01, + -7.630510926250000e-01, + -8.010064363480000e-01, + -4.984826087950000e+00, + -1.606543540950000e+00, + 1.248115077610000e-01, + -9.037281870840000e-01, + 2.439902126790000e-01, + -4.753399848940000e+00, + 1.821469306950000e+00, + -3.130286455150000e+00, + 5.337588310240000e+00, + 3.253884077070000e+00, + -1.979702711110000e+00, + 2.210844755170000e+00, + 4.186220169070000e-01, + -7.470057010650000e-01, + -8.877867460250000e-01, + -1.016950964930000e+00, + 3.876035660510000e-02, + -1.536437571050000e-01, + 1.363575011490000e-01, + 1.459524333480000e-01, + 1.061330661180000e-01, + -4.940668940540000e-01, + -5.490554332730000e+00, + 6.563381552699999e-01, + 6.695426940920000e+00, + -4.043264865880000e+00, + 3.428080081940000e+00, + -2.915859937670000e+00, + -2.455230474470000e+00, + -3.765215396880000e+00, + 4.746482849120000e+00, + -1.264846682550000e+00, + 7.473544120790000e+00, + 5.267671108250000e+00, + -6.185828685760000e+00, + -2.141573905940000e+00, + 9.873623847959999e+00, + -7.278149604800000e+00, + 1.122556179760000e-01, + 3.290182650090000e-01, + -3.261730968950000e-01, + -1.272746175530000e-01, + -1.233661890030000e+00, + -5.649410247800000e+00, + 6.779587268830000e+00, + 1.495341300960000e+00, + -4.497200489040000e+00, + 3.298853158950000e+00, + -3.030930042270000e+00, + 4.573008537290000e+00, + -1.997668981550000e+00, + -2.651441812520000e+00, + -4.995793342590000e+00, + 1.063730621340000e+01, + 8.637605667110000e+00, + -7.706544399260000e+00, + 5.908896446230000e+00, + -4.117623329160000e+00, + -4.675337791440000e+00, + 1.473452568050000e+00, + -1.309751868250000e+00, + 4.742024898530000e+00, + 1.005695462230000e+00, + -2.232865571980000e+00, + -1.938622891900000e-01, + -3.439573526380000e+00, + 1.788678288460000e+00, + 3.799004793170000e+00, + -1.814262151720000e+00, + 4.131561756130000e+00, + 1.096084788440000e-01, + 4.743714332580000e+00, + -6.565395355220000e+00, + -3.712434768680000e-01, + -1.339127868410000e-01, + -4.023965358730000e+00, + -7.705694198610000e+00, + 8.026382446290000e+00, + -3.087584376340000e-01, + -9.967353343960000e-01, + -4.211266517640000e+00, + 2.708773136140000e+00, + -3.240254163740000e+00, + 1.117104244230000e+01, + -3.975347042080000e+00, + -5.747568130490000e+00, + 9.097058296200000e+00, + -5.646507263180000e+00, + -8.241898536680001e+00, + -4.292333424090000e-01, + 7.944510936740000e+00, + -5.053199291230000e+00, + -3.277819633480000e+00, + -5.798534393310000e+00, + 5.055467128750000e+00, + 2.210121154790000e-01, + 1.836231909690000e-03, + -3.837058087810000e-03, + 1.162144616250000e-01, + 4.756313189860000e-02, + -5.353993177410000e-01, + -5.557407855990000e+00, + 6.030299067500000e-01, + 6.853026866910000e+00, + -4.182710647580000e+00, + 3.389341354370000e+00, + -3.425514221190000e+00, + -2.126378297810000e+00, + -3.473665952680000e+00, + 4.579095363620000e+00, + -1.703796386720000e+00, + 7.216020107270000e+00, + 5.125207424160000e+00, + -6.171250820160000e+00, + -1.904018044470000e+00, + 9.649128913880000e+00, + -7.441771030430000e+00, + -1.678980290890000e-01, + 1.690560430290000e-01, + -3.469608426090000e-01, + 3.365353867410000e-02, + 1.481029093270000e-01, + -6.440542221070000e+00, + 7.366161823270000e+00, + 1.655926465990000e+00, + -4.228305339810000e+00, + 3.767005205150000e+00, + -3.081756114960000e+00, + 4.787565231320000e+00, + -8.586235642430000e-01, + -1.835681915280000e+00, + -4.827190876010000e+00, + 1.168874168400000e+01, + 7.348583698270000e+00, + -8.968929290769999e+00, + 7.661693573000000e+00, + -3.539528131480000e+00, + -3.001121282580000e+00, + 1.222474575040000e+00, + -7.298706769940000e-01, + 5.347161293030000e+00, + -7.407651282850000e-04, + -1.804420113560000e+00, + -1.238185882570000e+00, + -1.701138257980000e+00, + 1.245728731160000e+00, + 4.293120861050000e+00, + -1.473907589910000e+00, + 3.645018100740000e+00, + 2.485091239210000e-01, + 4.945119380950000e+00, + -5.336301803590000e+00, + 1.338774919510000e+00, + 1.226089715960000e+00, + -5.809288024900000e+00, + -7.259378433230000e+00, + 7.604619979860000e+00, + 6.372356414790000e-01, + -3.155294060710000e-01, + -5.406803131100000e+00, + 1.932804346080000e+00, + -2.383436918260000e+00, + 1.086136054990000e+01, + -3.144677162170000e+00, + -3.977283716200000e+00, + 9.498519897460000e+00, + -6.656918525700000e+00, + -7.623097896580000e+00, + -2.019066661600000e-01, + 6.285896301270000e+00, + -2.989266872410000e+00, + -3.234107255940000e+00, + -4.929834842680000e+00, + 5.330303668980000e+00, + 1.388451457020000e+00, + 1.476079225540000e+00, + 1.348996400830000e+00, + 1.531879067420000e+00, + 1.432102203370000e+00, + -1.696232914920000e+00, + 6.334354877470000e+00, + 4.784236431120000e+00, + -8.387736678120000e-01, + -3.379450559620000e+00, + 3.066084384920000e-01, + 2.738201141360000e+00, + -3.917716741560000e+00, + 5.020065784450000e+00, + 2.990221381190000e-01, + 6.385205268860000e+00, + -1.285061836240000e+00, + -9.233874678610000e-01, + -5.185116767880000e+00, + -6.509242534640000e+00, + -2.645269393920000e+00, + -4.855573177340000e+00, + 1.413757443430000e+00, + 7.204030752180000e-01, + 1.092141032220000e+00, + 5.700087547300000e-01, + -2.016641378400000e+00, + 5.332471370700000e+00, + -1.310342907910000e+00, + 5.473730564120000e+00, + -2.636749506000000e+00, + -3.823720812800000e-01, + 2.663770437240000e+00, + -3.736163675790000e-01, + -6.636440277100000e+00, + 7.705545425420000e+00, + -3.874574661250000e+00, + -2.065341949460000e+00, + -1.117322087290000e+00, + -5.763667106630000e+00, + -7.395729422570000e-01, + -2.778264284130000e+00, + 1.759271025660000e+00, + 5.072666645050000e+00, + -1.181141614910000e+00, + 9.243549704550000e-01, + 6.242483615880000e+00, + 6.454826354980000e+00, + -2.488998174670000e+00, + -3.836805582050000e+00, + 4.423567771910000e+00, + 6.903565526010000e-01, + 6.642742633820000e+00, + 3.140005469320000e-02, + 2.084147691730000e+00, + -9.103182554240000e-01, + 6.096968650820000e+00, + 1.727390289310000e+00, + 1.146919965740000e+00, + -7.793762207030000e+00, + -5.273582935330000e+00, + -1.968696713450000e+00, + 8.786905407910000e-01, + -4.387616634370000e+00, + 5.930555343630000e+00, + 2.175353281200000e-02, + 2.616718530650000e+00, + -3.541110754010000e+00, + -6.392510414120000e+00, + -5.460693836210000e+00, + -2.913983583450000e+00, + -5.058451175690000e+00, + -3.536013364790000e+00, + -1.350976705550000e+00, + -1.116755723950000e+00, + -2.406918764110000e+00, + 2.877423048020000e+00, + 5.928297996520000e+00, + 1.760336399080000e+00, + 9.589636921880000e-01, + 1.124020814900000e+00, + 1.317260622980000e+00, + 1.500987291340000e+00, + 1.504024386410000e+00, + -1.681248784070000e+00, + 5.842644691470000e+00, + 4.957849979400000e+00, + -6.013730764390000e-01, + -3.249543428420000e+00, + 2.270373702050000e-01, + 2.809594154360000e+00, + -3.563154697420000e+00, + 5.069052696230000e+00, + 5.963039025660000e-02, + 6.669059276580000e+00, + -1.409348607060000e+00, + -7.404248118400000e-01, + -5.192438125610000e+00, + -5.965512275700000e+00, + -2.387270689010000e+00, + -4.366356372830000e+00, + 1.521111965180000e+00, + 1.066994547840000e+00, + 2.183381319050000e+00, + 1.349815130230000e+00, + -2.442590236660000e+00, + 5.399310112000000e+00, + -2.919443249700000e-01, + 3.728264570240000e+00, + -2.518014431000000e+00, + 6.587702631950000e-01, + 2.520259618760000e+00, + -1.220217585560000e+00, + -7.201493740080000e+00, + 7.835605144500000e+00, + -3.617864847180000e+00, + -4.765492677690000e-01, + -9.059903025629999e-01, + -6.086183071140000e+00, + -1.683314889670000e-01, + -1.591934561730000e+00, + 1.166424989700000e+00, + 4.949882507320000e+00, + -1.144485712050000e+00, + 1.056488275530000e+00, + 5.752799510960000e+00, + 5.292178630830000e+00, + -5.566100478170000e-01, + -4.307183265690000e+00, + 5.972594738010000e+00, + 8.762178011239999e-03, + 6.318276882170000e+00, + -5.281845480200000e-02, + 1.158322572710000e+00, + 1.006917119030000e+00, + 5.582145214080000e+00, + 1.909833550450000e+00, + 1.727302312850000e+00, + -5.433081626890000e+00, + -4.665245532990000e+00, + -1.600717186930000e+00, + 1.687377095220000e+00, + -4.973444938660000e+00, + 6.481829643250000e+00, + 8.268880248070000e-01, + 2.980767488480000e+00, + -4.126261711120000e+00, + -5.938497543330000e+00, + -5.387746334080000e+00, + -3.258511543270000e+00, + -5.737807750700000e+00, + -3.996798515320000e+00, + -1.032895803450000e+00, + -2.113027125600000e-01, + -2.744316816330000e+00, + 2.419232606890000e+00, + 3.563407421110000e+00, + -7.710977196690000e-01, + -3.693502247330000e-01, + -5.498906373980000e-01, + -2.615785300730000e-01, + -1.219437792900000e-01, + -4.504806101320000e-01, + -1.917007446290000e+00, + -6.339712738990000e-01, + 4.505704939370000e-01, + 2.570179939270000e+00, + 3.939689993860000e-01, + 6.134963631630000e-01, + -5.350185036660000e-01, + -6.370373964310000e-01, + -4.927551746370000e-01, + 2.765607357030000e+00, + 6.563184261320000e-01, + 1.423375457530000e-01, + -6.911010146140000e-01, + 1.382696270940000e+00, + -3.595122337340000e+00, + -8.286361694340000e-01, + 3.708506345750000e+00, + 7.812529802320000e-01, + -3.531969785690000e-01, + -1.083851337430000e+00, + 5.734201148150000e-02, + -2.854772567750000e+00, + -6.148223280910000e-01, + 2.348828077320000e+00, + -1.349465012550000e+00, + 1.536774542180000e-02, + 8.710334450010000e-02, + 1.684945523740000e-01, + -1.980927109720000e+00, + -1.629925727840000e+00, + 8.289640545850000e-01, + 1.686524629590000e+00, + -4.881376624110000e-01, + 3.762248992920000e+00, + 5.250563621520000e+00, + 2.446146726610000e+00, + 1.657428979870000e+00, + -1.640671491620000e+00, + 2.298223018650000e+00, + -1.436739683150000e+00, + 4.241068840030000e+00, + 1.373691856860000e-01, + 7.891530990600000e-01, + -1.249285221100000e+00, + -2.155882835390000e+00, + 5.410410761830000e-01, + -3.103882372380000e-01, + 2.377271413800000e+00, + 2.206301689150000e+00, + -4.825193881990000e-01, + -1.180374383930000e+00, + -1.473975062370000e+00, + -1.474879980090000e-01, + 1.641538925470000e-02, + -2.622585892680000e-01, + -1.508044749500000e-01, + -5.147125124930000e-01, + -3.757175505160000e-01, + -3.746054410930000e+00, + -1.169456720350000e+00, + 7.814520597460000e-01, + -7.454872131350000e-01, + -4.996311664580000e-01, + -4.310526847840000e+00, + 8.563429713250000e-01, + -2.487415552140000e+00, + 4.387676239010000e+00, + 2.949052810670000e+00, + -2.349930524830000e+00, + 2.260158538820000e+00, + -3.392202556130000e-01, + -3.125221729280000e-01, + -1.094091296200000e+00, + -1.449329376220000e+00, + -9.644278287890000e-01, + -3.350544869900000e-01, + -3.731841444970000e-01, + -6.051269173620000e-01, + -3.199919760230000e-01, + -1.715258598330000e+00, + -1.349201560020000e+00, + 2.997538149360000e-01, + 2.547262430190000e+00, + 4.207284450530000e-01, + 3.384461104870000e-01, + -1.914116889240000e-01, + -1.570181250570000e+00, + -6.226699352260000e-01, + 3.030355930330000e+00, + 5.881620645520000e-01, + -3.192531690000000e-02, + -1.191208958630000e+00, + 1.242128491400000e+00, + -3.138684511180000e+00, + -6.857353448870001e-01, + 3.433469057080000e+00, + 5.853850245480000e-01, + 2.600282430650000e-01, + -8.910194039340000e-01, + -2.302811145780000e-01, + -2.409075260160000e+00, + -3.912183046340000e-01, + 1.281301379200000e+00, + 2.940802872180000e-01, + -2.912787795070000e-01, + 2.709879577160000e-01, + -6.276625990870000e-01, + -3.826120138170000e+00, + -1.178287267680000e+00, + 1.701032400130000e+00, + 4.425249397750000e-01, + -1.552316784860000e+00, + 3.716156959530000e+00, + 3.649473905560000e+00, + 2.759098768230000e+00, + 1.883659362790000e+00, + -2.053412914280000e+00, + 1.164438366890000e+00, + -1.204786300660000e+00, + 3.048158407210000e+00, + 3.647762835030000e-01, + 1.976247280840000e-01, + -2.552338838580000e+00, + -1.970726251600000e+00, + 5.127008557320000e-01, + 4.050134420390000e-01, + 2.057720422740000e+00, + 1.952997922900000e+00, + -3.097926080230000e-01, + -1.976599216460000e+00, + -2.080984592440000e+00, + -8.355702459809999e-02, + -1.297320485120000e+00, + 8.023917078970000e-01, + 3.030953705310000e-01, + -8.096665143970000e-01, + -1.263355165720000e-01, + -4.455598354340000e+00, + -1.505863189700000e+00, + 1.287519335750000e-01, + -1.588439643380000e-01, + -2.262295484540000e-01, + -3.136764764790000e+00, + 2.303463459010000e+00, + -3.049265146260000e+00, + 5.643162727360000e+00, + 4.290881156920000e+00, + -2.322235584260000e+00, + 4.589312553410000e+00, + 8.262625336650000e-01, + -1.549632310870000e+00, + -4.112718701360000e-01, + -1.592366218570000e+00, + 2.943679094310000e-01, + 3.598786890510000e-02, + 1.587559282780000e-01, + -2.256891224530000e-03, + -2.724865078930000e-01, + -3.247157633300000e-01, + -5.810148715970000e+00, + 7.291319966320000e-01, + 7.160783290860000e+00, + -4.166414737700000e+00, + 3.230923652650000e+00, + -2.876338481900000e+00, + -2.118592262270000e+00, + -3.970913648610000e+00, + 4.405216217040000e+00, + -1.851548910140000e+00, + 7.469454765320000e+00, + 5.346580982210000e+00, + -5.857380390170000e+00, + -2.297530412670000e+00, + 9.616025924680001e+00, + -6.905289649960000e+00, + 2.159127444030000e-01, + 1.223753571510000e+00, + -2.731432318690000e-01, + -7.059378176930001e-02, + -1.788199424740000e+00, + -5.180879592900000e+00, + 7.144340991970000e+00, + 7.669896483420000e-01, + -3.706892251970000e+00, + 2.620663642880000e+00, + -2.909462451930000e+00, + 3.913665771480000e+00, + -9.173296689990000e-01, + -8.047519922260000e-01, + -3.576074123380000e+00, + 1.036221504210000e+01, + 8.660769462590000e+00, + -9.139556884770000e+00, + 6.868910789490000e+00, + -4.686823844910000e+00, + -3.769965171810000e+00, + 1.535066485400000e+00, + -5.686057209970000e-01, + 5.426751613620000e+00, + 3.489001393320000e-01, + -2.868247985840000e+00, + -7.558685541150000e-01, + -2.830069303510000e+00, + 1.423262953760000e+00, + 3.230103492740000e+00, + -1.142481684680000e+00, + 4.452834606170000e+00, + 1.419089883570000e-01, + 4.501330852510000e+00, + -5.508254528050000e+00, + 4.116126000880000e-01, + 1.203480958940000e-01, + -5.186032295230000e+00, + -7.839304447170000e+00, + 6.991120338440000e+00, + 7.336921989920001e-02, + -3.537419736390000e-01, + -5.437693595890000e+00, + 2.250460386280000e+00, + -3.382996797560000e+00, + 9.488756179810000e+00, + -3.278117656710000e+00, + -5.935063838960000e+00, + 9.241729736330001e+00, + -5.284409046170000e+00, + -7.688295364380000e+00, + 1.036473363640000e-01, + 6.748337745670000e+00, + -3.322919368740000e+00, + -3.857964277270000e+00, + -6.632760524750000e+00, + 4.928634643550000e+00, + 1.228632703420000e-01, + -1.289821863170000e-01, + 2.095102369790000e-01, + 9.064539521930000e-02, + -1.067973207680000e-02, + -6.901962161060000e-01, + -5.977570056920000e+00, + 8.841734528540000e-01, + 6.953517436980000e+00, + -4.036766529080000e+00, + 3.607759714130000e+00, + -3.282499074940000e+00, + -2.023807525630000e+00, + -4.001219749450000e+00, + 4.492391586300000e+00, + -1.393052935600000e+00, + 7.298613548280000e+00, + 5.466665267940000e+00, + -6.336376190190000e+00, + -2.344136476520000e+00, + 9.671495437620001e+00, + -7.263148307800000e+00, + -5.754028633240000e-02, + 1.400393366810000e+00, + 8.633086830380000e-02, + 3.349859416480000e-01, + -8.424811363219999e-01, + -4.235787868500000e+00, + 7.107965946200000e+00, + 2.809678554530000e+00, + -4.200110912320000e+00, + 3.683607339860000e+00, + -3.419764757160000e+00, + 3.509561061860000e+00, + -2.505165576930000e+00, + -1.309988617900000e+00, + -4.044888496400000e+00, + 1.052597236630000e+01, + 8.201405525209999e+00, + -7.166153907780000e+00, + 6.784527301790000e+00, + -4.091686725620000e+00, + -4.277469158170000e+00, + 1.404631376270000e+00, + -8.355149030690000e-01, + 3.749902963640000e+00, + 7.788185477260000e-01, + -2.265756607060000e+00, + -8.501392006870000e-01, + -3.708778321740000e-01, + 4.292486906050000e-01, + 4.609281539920000e+00, + -1.983012080190000e+00, + 4.481085300450000e+00, + -1.856660246850000e-01, + 6.196844577790000e+00, + -6.856129169460000e+00, + -2.623983621600000e-01, + -7.593610882760000e-01, + -4.719120979310000e+00, + -6.867341518400000e+00, + 9.170905113220000e+00, + -1.303147971630000e-01, + -7.226168513300000e-01, + -5.344853878020000e+00, + 2.311466693880000e+00, + -1.978926777840000e+00, + 1.028038215640000e+01, + -4.223593235020000e+00, + -6.679581642150000e+00, + 8.162963867189999e+00, + -6.871491909030000e+00, + -7.965071201320000e+00, + 1.283857375380000e-01, + 5.887423515320000e+00, + -3.779728412630000e+00, + -3.053838968280000e+00, + -4.941560745240000e+00, + 5.044389724730000e+00, + 1.651601076130000e+00, + 1.456109762190000e+00, + 1.198101043700000e+00, + 1.401186943050000e+00, + 1.236980557440000e+00, + -2.445265769960000e+00, + 5.834679126740000e+00, + 4.509256839750000e+00, + -9.298422932620000e-01, + -3.257660865780000e+00, + 5.277639627460000e-02, + 2.795325517650000e+00, + -3.453028440480000e+00, + 5.011962890620000e+00, + 2.474105209110000e-01, + 6.615769863130000e+00, + -1.778103232380000e+00, + -9.695006608960000e-01, + -5.601144313810000e+00, + -5.518786907200000e+00, + -2.445407629010000e+00, + -4.822561740880000e+00, + 6.193234920500000e-01, + 3.188242316250000e-01, + 1.557289600370000e+00, + 1.355580806730000e+00, + -1.363431692120000e+00, + 5.896195888520000e+00, + -2.315420389180000e+00, + 5.219580173490000e+00, + -3.453968763350000e+00, + -8.018164038659999e-01, + 3.251138925550000e+00, + -9.128518104550000e-01, + -6.629469871520000e+00, + 7.946239471440000e+00, + -4.654417991640000e+00, + -1.787918448450000e+00, + -2.713636875150000e+00, + -4.950039386750000e+00, + -1.467437446120000e-01, + -2.114306688310000e+00, + 2.169524431230000e+00, + 5.070856094360000e+00, + -1.685781717300000e+00, + 3.672154247760000e-01, + 4.789571762080000e+00, + 4.844954013820000e+00, + -1.516754865650000e+00, + -3.188926935200000e+00, + 4.457900047300000e+00, + -9.142462015150000e-01, + 6.936393260960000e+00, + 4.617260694500000e-01, + 1.730089783670000e+00, + 4.456239566210000e-02, + 6.688935279850000e+00, + 1.401067018510000e+00, + 5.161880254750000e-01, + -7.497882366180000e+00, + -4.922197341920000e+00, + -1.568663120270000e+00, + 1.362203359600000e+00, + -5.530732154850000e+00, + 6.056860446930000e+00, + 1.991399168970000e+00, + 2.144966840740000e+00, + -3.562826395030000e+00, + -6.977792739870000e+00, + -5.237977981570000e+00, + -2.517389774320000e+00, + -6.655000209810000e+00, + -2.720510482790000e+00, + -9.618315100670000e-01, + -1.818184256550000e+00, + -3.393253326420000e+00, + 2.660856485370000e+00, + 6.098018646240000e+00, + -6.786218285560000e-01, + 1.513901352880000e+00, + 1.076859474180000e+00, + 1.087486505510000e+00, + 1.341801047330000e+00, + 1.312220811840000e+00, + -1.682047605510000e+00, + 5.772473812100000e+00, + 4.967096805570000e+00, + -1.241028308870000e-01, + -3.794320821760000e+00, + 1.249893847850000e-02, + 2.224508047100000e+00, + -3.368289232250000e+00, + 5.079523086550000e+00, + 1.040444746610000e-01, + 6.663962841030000e+00, + -1.201673030850000e+00, + -8.970258831980000e-01, + -5.433737754820000e+00, + -5.753697395320000e+00, + -2.625527143480000e+00, + -4.720121860500000e+00, + 1.417303800580000e+00, + 1.418443202970000e+00, + 1.274529576300000e+00, + 1.059873700140000e+00, + -2.409631013870000e+00, + 5.450821876530000e+00, + -1.627587676050000e+00, + 4.741282939910000e+00, + -2.118465662000000e+00, + 2.407780438660000e-01, + 3.030952930450000e+00, + -2.136588394640000e-01, + -8.135210037229999e+00, + 8.874434471130000e+00, + -4.119937896730000e+00, + -1.390908360480000e+00, + -1.843781352040000e+00, + -6.022944450380000e+00, + -7.559738755230000e-01, + -1.478692054750000e+00, + 1.294846534730000e+00, + 5.365563869480000e+00, + -5.972244143490000e-01, + 1.092900037770000e+00, + 5.798398494720000e+00, + 5.601319313050000e+00, + -1.789294004440000e+00, + -3.997173547740000e+00, + 4.854113101960000e+00, + -5.134153366090000e-01, + 6.099942207340000e+00, + 6.454843878750000e-01, + 1.493440151210000e+00, + -9.586077928540000e-01, + 7.493133068080000e+00, + 1.872017383580000e+00, + 1.271175622940000e+00, + -6.820637702940000e+00, + -5.416878223420000e+00, + -4.586606919770000e-01, + 1.359715580940000e+00, + -4.614572048190000e+00, + 5.618626117710000e+00, + -8.854372799400000e-02, + 2.363586187360000e+00, + -4.847231388090000e+00, + -5.278497695920000e+00, + -5.328249931340000e+00, + -2.042895555500000e+00, + -3.819383621220000e+00, + -3.166105985640000e+00, + -2.149613857270000e+00, + -1.132411837580000e+00, + -3.148914337160000e+00, + 1.912288665770000e+00, + 5.796718120570000e+00, + -9.834478795529999e-02, + -1.687447279690000e-01, + -3.230876624580000e-01, + -3.267942965030000e-01, + -3.148912489410000e-01, + -1.399336904290000e-01, + -1.827912449840000e+00, + -1.084093451500000e+00, + 8.846186995510000e-01, + 2.316535711290000e+00, + 7.526665925980000e-01, + 5.373328328130000e-01, + -5.564715266230000e-01, + -1.486575245860000e+00, + -3.677345812320000e-01, + 2.778894901280000e+00, + 9.381115436550000e-01, + 2.205989956860000e-01, + -1.093183159830000e+00, + 1.696383476260000e+00, + -3.094536542890000e+00, + -9.701915979390000e-01, + 3.494030475620000e+00, + 1.884377896790000e-01, + -6.646416783330000e-01, + -8.489040732380000e-01, + -1.465986222030000e-01, + -1.291952848430000e+00, + -1.327213644980000e+00, + 2.061958551410000e+00, + 2.553125321870000e-01, + -7.544376254080000e-01, + 1.058693885800000e+00, + -1.282250046730000e+00, + -4.092052459720000e+00, + -1.855652928350000e+00, + -7.025375366210000e-01, + 1.074922084810000e+00, + -1.333756566050000e+00, + 4.577497005460000e+00, + 3.624304294590000e+00, + 1.324176073070000e+00, + 7.828131914140000e-01, + -2.351072311400000e+00, + 1.263191103940000e+00, + -1.941671729090000e+00, + 5.223172187810000e+00, + 1.059586048130000e+00, + -2.834877967830000e-01, + -2.486607789990000e+00, + -2.158762216570000e+00, + 8.303377032280000e-02, + -1.930150508880000e+00, + 4.177255153660000e+00, + 7.707402110100000e-01, + 9.578151702880000e-01, + -2.334184169770000e+00, + -6.998092532160000e-01, + -8.888284564020000e-01, + -6.911009550090000e-01, + 1.868767499920000e+00, + -1.514847397800000e+00, + 1.063699573280000e-01, + -2.379502505060000e-01, + -4.596611976620000e+00, + -1.844630002980000e+00, + 1.137090682980000e+00, + 9.529822319750000e-02, + -1.555528864260000e-02, + -4.225204944610000e+00, + 1.015097260480000e+00, + -2.842481851580000e+00, + 6.590400218960000e+00, + 2.977024555210000e+00, + -2.546546936040000e+00, + 3.082617282870000e+00, + 8.921901583670000e-01, + -8.247220516200000e-01, + -1.710494041440000e+00, + -1.511343240740000e+00, + -2.586311399940000e-01, + -2.684721648690000e-01, + 8.236299455170000e-02, + -2.962158620360000e-01, + -3.404296040530000e-01, + -1.877954244610000e+00, + -1.151896595950000e+00, + 3.439312279220000e-01, + 2.761783123020000e+00, + 5.182389020920000e-01, + 4.668126404290000e-01, + -8.274668455120000e-01, + -1.667977571490000e+00, + -8.668858408930000e-01, + 2.680270910260000e+00, + 3.197370469570000e-01, + 2.544575743380000e-02, + -1.205052256580000e+00, + 1.054018497470000e+00, + -3.140032768250000e+00, + -7.314121723180000e-01, + 3.534415245060000e+00, + -2.633312046530000e-01, + -4.319556653500000e-01, + -2.249930351970000e-01, + -7.488379478450000e-01, + -2.130486249920000e+00, + 1.255124211310000e-01, + 1.118911147120000e+00, + -1.689741373060000e+00, + 2.743909657000000e-01, + 4.278505444530000e-01, + -1.604195535180000e-01, + -2.199332952500000e+00, + -2.815410137180000e+00, + 5.864045023920000e-01, + -7.828179746870000e-02, + -1.026657462120000e+00, + 3.401332855220000e+00, + 5.564004421230000e+00, + 2.651867866520000e+00, + 2.552096366880000e+00, + -2.002080678940000e+00, + 7.398191690440000e-01, + -7.816829085350000e-01, + 4.643571853640000e+00, + 4.139077961440000e-01, + -2.398603260520000e-01, + -9.951493144040000e-01, + -1.974356651310000e+00, + -5.399235486980000e-01, + -6.567189097400000e-01, + 3.871033191680000e-01, + 8.731896281240000e-01, + -3.222140669820000e-01, + -5.993070602420000e-01, + -1.563344478610000e+00, + 5.479938387870000e-01, + 4.903381690380000e-02, + 1.716756463050000e+00, + -1.144791841510000e+00, + -3.562860786910000e-01, + -7.980409264560000e-01, + -5.213437080380000e+00, + -9.939429759980000e-01, + -4.260498583320000e-01, + -4.627456367020000e-01, + 4.562116861340000e-01, + -3.542089223860000e+00, + 2.250287771220000e+00, + -4.204505920410000e+00, + 4.652242183690000e+00, + 2.555347204210000e+00, + -1.772632718090000e+00, + 2.118440866470000e+00, + 4.140700995920000e-01, + -5.241920053960000e-02, + -8.312390446660000e-01, + -1.161033153530000e+00 +] + diff --git a/python/test/test_api.py b/python/test/test_api.py new file mode 100644 index 0000000..1d55690 --- /dev/null +++ b/python/test/test_api.py @@ -0,0 +1,11 @@ +import pyqmckl as pq + +from data.data import coord +from os.path import join + +ctx = pq.qmckl_context_create() + +fname = join('data', 'Alz_small.h5') + +rc = pq.qmckl_trexio_read(ctx, fname) +print(pq.qmckl_string_of_error(rc)) From b8c12c4bc7464968c14e829ec166814e13cfb4c6 Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 17:51:41 +0200 Subject: [PATCH 074/111] Remove generated file from Git --- python/pyqmckl_include.i | 96 ---------------------------------------- 1 file changed, 96 deletions(-) delete mode 100644 python/pyqmckl_include.i diff --git a/python/pyqmckl_include.i b/python/pyqmckl_include.i deleted file mode 100644 index beafb48..0000000 --- a/python/pyqmckl_include.i +++ /dev/null @@ -1,96 +0,0 @@ -%apply int *OUTPUT { int64_t* const num }; -%apply int *OUTPUT { int64_t* const num }; -%apply float *OUTPUT { double* const rescale_factor_kappa }; -%apply float *OUTPUT { double* const energy }; -%apply int *OUTPUT { int64_t* const num }; -%apply int *OUTPUT { int64_t* const up_num }; -%apply int *OUTPUT { int64_t* const down_num }; -%apply int *OUTPUT { int64_t* const walk_num }; -%apply float *OUTPUT { double* const rescale_factor_kappa_ee }; -%apply float *OUTPUT { double* const rescale_factor_kappa_en }; -%apply float *OUTPUT { double* const distance }; -%apply float *OUTPUT { double* const distance_rescaled }; -%apply float *OUTPUT { double* const distance_rescaled_deriv_e }; -%apply float *OUTPUT { double* const ee_pot }; -%apply float *OUTPUT { double* distance }; -%apply float *OUTPUT { double* distance_rescaled }; -%apply float *OUTPUT { double* distance_rescaled_deriv_e }; -%apply float *OUTPUT { double* const en_pot }; -%apply int *OUTPUT { int64_t* const shell_num }; -%apply int *OUTPUT { int64_t* const prim_num }; -%apply int *OUTPUT { int64_t* const ao_num }; -%apply int *OUTPUT { int64_t* mo_num }; -%apply float *OUTPUT { double* const mo_vgl }; -%apply float *OUTPUT { double* const det_vgl_alpha }; -%apply float *OUTPUT { double* const det_vgl_beta }; -%apply float *OUTPUT { double* const det_inv_matrix_alpha }; -%apply float *OUTPUT { double* const det_inv_matrix_beta }; -%apply float *OUTPUT { double* const det_adj_matrix_alpha }; -%apply float *OUTPUT { double* const det_adj_matrix_beta }; -%apply float *OUTPUT { double* const det_adj_matrix_alpha }; -%apply float *OUTPUT { double* const det_adj_matrix_beta }; -%apply int *OUTPUT { int64_t* const aord_num }; -%apply int *OUTPUT { int64_t* const bord_num }; -%apply int *OUTPUT { int64_t* const bord_num }; -%apply int *OUTPUT { int64_t* const type_nucl_num }; -%apply int *OUTPUT { int64_t* const dim_cord_vect }; -%apply float *OUTPUT { double* const cord_vect_full }; -%apply int *OUTPUT { int64_t* const lkpm_combined_index }; -%apply float *OUTPUT { double* const tmp_c }; -%apply float *OUTPUT { double* const dtmp_c }; -%apply float *OUTPUT { double* const kinetic_energy }; -%apply float *OUTPUT { double* const potential_energy }; -%apply float *OUTPUT { double* const local_energy }; -%apply float *OUTPUT { double* const drift_vector }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coord,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const charge,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coord,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* charge,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* coord,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* distance,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* distance_rescaled,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coord,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double* coord , const int64_t size_max) }; -%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* nucleus_index,const int64_t size_max) }; -%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* nucleus_shell_num,const int64_t size_max) }; -%apply ( int32_t* IN_ARRAY1 , int64_t DIM1 ) { (const int32_t* shell_ang_mom,const int64_t size_max) }; -%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* shell_prim_num,const int64_t size_max) }; -%apply ( int64_t* IN_ARRAY1 , int64_t DIM1 ) { (const int64_t* shell_prim_index,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* shell_factor,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* exponent,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* coefficient,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* prim_factor,const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { (const double* ao_factor,const int64_t size_max) }; -%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const nucleus_shell_num,const int64_t size_max) }; -%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const nucleus_index,const int64_t size_max) }; -%apply ( int32_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int32_t* const shell_ang_mom,const int64_t size_max) }; -%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const shell_prim_num,const int64_t size_max) }; -%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { (int64_t* const shell_prim_index,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const shell_factor,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const exponent,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coefficient,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const prim_factor,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const ao_factor,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const primitive_vgl,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const shell_vgl,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const ao_vgl,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const ao_vgl,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const coefficient,const int64_t size_max) }; -%apply ( int64_t* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( int64_t* const type_nucl_num , const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( double * const aord_vector , const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( double * const bord_vector , const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { ( double * const cord_vector , const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double * aord_vector , const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double * bord_vector , const int64_t size_max) }; -%apply ( double* IN_ARRAY1 , int64_t DIM1 ) { ( const double * cord_vector , const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const asymp_jasb,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_ee,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_ee_deriv_e,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_en,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_en_deriv_e,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const distance_rescaled,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_een,const int64_t size_max) }; -%apply ( double* ARGOUT_ARRAY1 , int64_t DIM1 ) { (double* const factor_een_deriv_e,const int64_t size_max) }; From 111af81a1db558934ddd95033aa7d45b0ce907bc Mon Sep 17 00:00:00 2001 From: q-posev Date: Mon, 2 May 2022 17:52:11 +0200 Subject: [PATCH 075/111] Ported bench_mos code to Python --- python/build_pyqmckl.sh | 2 ++ python/test/test_api.py | 45 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh index 0dbd8fe..4736206 100755 --- a/python/build_pyqmckl.sh +++ b/python/build_pyqmckl.sh @@ -3,6 +3,8 @@ set -e set -x +cp ../include/qmckl.h . + # check if qmckl header exists if [[ ! -f 'qmckl.h' ]]; then echo "qmckl.h NOT FOUND" diff --git a/python/test/test_api.py b/python/test/test_api.py index 1d55690..4efb9cc 100644 --- a/python/test/test_api.py +++ b/python/test/test_api.py @@ -1,11 +1,52 @@ -import pyqmckl as pq +""" +This is the test of the Python API of the QMCkl library. +It is the `bench_mos.c` C code adapted from the `qmckl_bench` +repo and translated into Python with some modifications. +""" -from data.data import coord from os.path import join +import time + +import pyqmckl as pq +from data.data import coord + + +walk_num = 100 +elec_num = 158 + +ITERMAX = 10 ctx = pq.qmckl_context_create() fname = join('data', 'Alz_small.h5') rc = pq.qmckl_trexio_read(ctx, fname) +assert rc==0 print(pq.qmckl_string_of_error(rc)) + +rc = pq.qmckl_set_electron_walk_num(ctx, walk_num) +assert rc==0 + +rc, mo_num = pq.qmckl_get_mo_basis_mo_num(ctx) +assert rc==0 + +rc = pq.qmckl_set_electron_coord(ctx, 'T', coord) +assert rc==0 + +size_max = 5*walk_num*elec_num*mo_num + + + +rc, mo_vgl = pq.qmckl_get_mo_basis_mo_vgl(ctx, size_max) +assert rc==0 + +start = time.clock_gettime_ns(time.CLOCK_REALTIME) + +for _ in range(ITERMAX): + rc, mo_vgl_in = pq.qmckl_get_mo_basis_mo_vgl_inplace(ctx, size_max) + assert rc==0 + +end = time.clock_gettime_ns(time.CLOCK_REALTIME) + +print(f'Time for the calculation of 1 step : {(end-start)*.000001/ITERMAX} ms') + From a2f400fce046724dbc5ac8203d33505dfaa7cee4 Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 3 May 2022 13:34:38 +0200 Subject: [PATCH 076/111] Reorganize --- python/build_pyqmckl.sh | 8 +- python/pytrexio.i | 141 ------------------- python/{ => src}/numpy.i | 0 python/{process.py => src/process_header.py} | 0 python/{ => src}/pyqmckl.i | 0 5 files changed, 6 insertions(+), 143 deletions(-) delete mode 100644 python/pytrexio.i rename python/{ => src}/numpy.i (100%) rename python/{process.py => src/process_header.py} (100%) rename python/{ => src}/pyqmckl.i (100%) diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh index 4736206..5af864f 100755 --- a/python/build_pyqmckl.sh +++ b/python/build_pyqmckl.sh @@ -5,6 +5,8 @@ set -x cp ../include/qmckl.h . +cd src/ + # check if qmckl header exists if [[ ! -f 'qmckl.h' ]]; then echo "qmckl.h NOT FOUND" @@ -12,7 +14,7 @@ if [[ ! -f 'qmckl.h' ]]; then fi # process the qmckl header file to get patterns for SWIG -python process.py +python process_header.py # check if SWIG files exist SWIG_LIST='pyqmckl.i pyqmckl_include.i numpy.i' @@ -32,8 +34,10 @@ cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 pyqmckl_wrap.c # link against the previously installed QMCkl library (as detected by pkg-config) cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _pyqmckl.so +cd .. + # test -cp _pyqmckl.so pyqmckl.py -- test/ +cp src/_pyqmckl.so src/pyqmckl.py -- test/ cd test python test_api.py diff --git a/python/pytrexio.i b/python/pytrexio.i deleted file mode 100644 index 121d465..0000000 --- a/python/pytrexio.i +++ /dev/null @@ -1,141 +0,0 @@ -%module pytrexio -/* Define SWIGWORDSIZE in order to properly align long integers on 64-bit system */ -#define SWIGWORDSIZE64 -%{ -#define SWIG_FILE_WITH_INIT -/* Include the headers in the wrapper code */ -#include "trexio_s.h" -#include "trexio.h" -%} - -/* Include stdint to recognize types from stdint.h */ -%include - -/* NOTE: - carrays was useful before numpy.i was introduced. - For Python interface it's better to use numpy arrays instead of carrays, because the latter are less python-ic. - On the other hand, carrays might be more portable to other target languages. -// Include carrays to work with C pointers to arrays -%include "carrays.i" -// Include classes that correspond to integer and float arrays -%array_class(double, doubleArray); -%array_class(float, floatArray); -%array_class(int32_t, int32Array); -%array_class(int64_t, int64Array); -*/ - -/* Include typemaps to play with input/output re-casting - Useful when working with C pointers -*/ -%include typemaps.i -/* Redefine the [int32_t*, int64_t*, float*, double*] num - pattern to be appended to the output tuple. - Useful for TREXIO read_num functions where the - num variable is modified by address -*/ -/* Return num variables as part of the output tuple */ -%apply int *OUTPUT { int32_t* const num}; -%apply int *OUTPUT { int64_t* const num}; -%apply int *OUTPUT { int32_t* const num_up}; -%apply int *OUTPUT { int32_t* const num_dn}; -%apply int *OUTPUT { int64_t* const num_up}; -%apply int *OUTPUT { int64_t* const num_dn}; -%apply float *OUTPUT { float* const num}; -%apply float *OUTPUT { double* const num}; -/* Return TREXIO exit code from trexio_open as part of the output tuple */ -%apply int *OUTPUT { trexio_exit_code* const rc_open}; -/* Return number of sparse data points stored in the file as part of the output tuple */ -%apply int *OUTPUT { int64_t* const size_max}; -/* Return number of sparse data points read from the file as part of the output tuple */ -%apply int *INOUT { int64_t* const buffer_size_read}; - -/* Does not work for arrays (SIGSEGV) */ - -/* This enables access to trexio_[...]_read_dset_str_low set of functions - in order to return one long string with TREXIO_DELIM delimeter as 2-nd argument of output tuple - */ -%include -/* This enables read of long strings with TREXIO_DELIM delimeters that can be further converted into an array of string */ -%cstring_bounded_output(char* dset_out, 4096); -/* This enables read of single string attributes with pre-defined max_str_len - for Python we pre-define max_str_len = PYTREXIO_MAX_STR_LENGTH everywhere for simplicity -*/ -%cstring_output_maxsize(char* const str_out, const int32_t max_str_len); - - -/* This block is needed make SWIG treat (double * dset_out|_in, int64_t dim_out|_in) pattern - as a special case in order to return the NumPy array to Python from C pointer to array - provided by trexio_read_safe_[dset_num] function. - NOTE: numpy.i is currently not part of SWIG but included in the numpy distribution (under numpy/tools/swig/numpy.i) -*/ -%include "numpy.i" - -%init %{ -import_array(); -%} - -/* Typemaps below change the type of numpy array dimensions from int to int64_t */ -%numpy_typemaps(double, NPY_DOUBLE, int64_t) -%numpy_typemaps(float, NPY_FLOAT, int64_t) -%numpy_typemaps(int32_t, NPY_INT32, int64_t) -%numpy_typemaps(int64_t, NPY_INT64, int64_t) -%numpy_typemaps(bitfield_t, NPY_INT64, int64_t) -/* Enable write|read_safe functions to convert numpy arrays from/to double arrays */ -%apply (double* ARGOUT_ARRAY1, int64_t DIM1) {(double* const dset_out, const int64_t dim_out)}; -%apply (double* IN_ARRAY1, int64_t DIM1) {(const double* dset_in, const int64_t dim_in)}; -/* Enable write|read_safe functions to convert numpy arrays from/to float arrays */ -%apply (float* ARGOUT_ARRAY1, int64_t DIM1) {(float* const dset_out, const int64_t dim_out)}; -%apply (float* IN_ARRAY1, int64_t DIM1) {(const float* dset_in, const int64_t dim_in)}; -/* Enable write|read_safe functions to convert numpy arrays from/to int32 arrays */ -%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const dset_out, const int64_t dim_out)}; -%apply (int32_t* IN_ARRAY1, int64_t DIM1) {(const int32_t* dset_in, const int64_t dim_in)}; -/* Enable write|read_safe functions to convert numpy arrays from/to int64 arrays */ -%apply (int64_t* ARGOUT_ARRAY1, int64_t DIM1) {(int64_t* const dset_out, const int64_t dim_out)}; -%apply (int64_t* IN_ARRAY1, int64_t DIM1) {(const int64_t* dset_in, const int64_t dim_in)}; -/* Enable write|read_safe functions to convert numpy arrays from/to sparse arrays */ -%apply (double* IN_ARRAY1, int64_t DIM1) {(const double* value_sparse_write, const int64_t size_value_write)}; -%apply (int32_t* IN_ARRAY1, int64_t DIM1) {(const int32_t* index_sparse_write, const int64_t size_index_write)}; - -%apply (double* ARGOUT_ARRAY1, int64_t DIM1) {(double* const value_sparse_read, const int64_t size_value_read)}; -%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const index_sparse_read, const int64_t size_index_read)}; -/* Enable write|read_safe functions to convert numpy arrays from orbital list arrays */ -%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const dset_up_out, const int64_t dim_up_out)}; -%apply (int32_t* ARGOUT_ARRAY1, int64_t DIM1) {(int32_t* const dset_dn_out, const int64_t dim_dn_out)}; -%apply (int64_t* ARGOUT_ARRAY1, int64_t DIM1) {(int64_t* const dset_up_out, const int64_t dim_up_out)}; -%apply (int64_t* ARGOUT_ARRAY1, int64_t DIM1) {(int64_t* const dset_dn_out, const int64_t dim_dn_out)}; -%apply (bitfield_t* IN_ARRAY1, int64_t DIM1) {(const bitfield_t* dset_in, const int64_t dim_in)}; - -/* This tells SWIG to treat char ** dset_in pattern as a special case - Enables access to trexio_[...]_write_dset_str set of functions directly, i.e. - by converting input list of strings from Python into char ** of C -*/ -%typemap(in) char** dset_in { - /* Check if is a list */ - if (PyList_Check($input)) { - int size = PyList_Size($input); - Py_ssize_t i = 0; - $1 = (char **) malloc((size+1)*sizeof(char *)); - for (i = 0; i < size; i++) { - PyObject *o = PyList_GetItem($input, i); - if (PyUnicode_Check(o)) { - $1[i] = PyUnicode_AsUTF8(PyList_GetItem($input,i)); - } else { - PyErr_Format(PyExc_TypeError, "list must contain strings. %d/%d element was not string.", i, size); - free($1); - return NULL; - } - } - $1[i] = 0; - } else { - PyErr_SetString(PyExc_TypeError, "not a list"); - return NULL; - } -} -/* This cleans up the char ** array we malloc-ed before */ -%typemap(freearg) char** dset_in { - free((char *) $1); -} - -/* Parse the header files to generate wrappers */ -%include "trexio_s.h" -%include "trexio.h" diff --git a/python/numpy.i b/python/src/numpy.i similarity index 100% rename from python/numpy.i rename to python/src/numpy.i diff --git a/python/process.py b/python/src/process_header.py similarity index 100% rename from python/process.py rename to python/src/process_header.py diff --git a/python/pyqmckl.i b/python/src/pyqmckl.i similarity index 100% rename from python/pyqmckl.i rename to python/src/pyqmckl.i From a3b332378372e7054dcb68b66e6d606d6dc3357f Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 3 May 2022 13:44:44 +0200 Subject: [PATCH 077/111] Local pip install works --- python/pyproject.toml | 7 +++++ python/pyqmckl/__init__.py | 1 + python/requirements.txt | 2 ++ python/setup.py | 60 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 python/pyproject.toml create mode 100644 python/pyqmckl/__init__.py create mode 100644 python/requirements.txt create mode 100644 python/setup.py diff --git a/python/pyproject.toml b/python/pyproject.toml new file mode 100644 index 0000000..c66b022 --- /dev/null +++ b/python/pyproject.toml @@ -0,0 +1,7 @@ +[build-system] +requires = [ + "setuptools>=42", + "wheel", + "numpy>=1.17.3" +] +build-backend = "setuptools.build_meta" diff --git a/python/pyqmckl/__init__.py b/python/pyqmckl/__init__.py new file mode 100644 index 0000000..7e8cb3b --- /dev/null +++ b/python/pyqmckl/__init__.py @@ -0,0 +1 @@ +from .pyqmckl import * diff --git a/python/requirements.txt b/python/requirements.txt new file mode 100644 index 0000000..99943ac --- /dev/null +++ b/python/requirements.txt @@ -0,0 +1,2 @@ +setuptools>=42 +numpy>=1.17.3 diff --git a/python/setup.py b/python/setup.py new file mode 100644 index 0000000..c3138a4 --- /dev/null +++ b/python/setup.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +""" +setup.py file for pyqmckl package +""" + +from setuptools import setup, Extension +from os.path import join + +with open("README.md", "r") as fh: + long_description = fh.read() + +mod_name = 'pyqmckl' + + +# Define pyqmckl extension module based on TREXIO source codes + SWIG-generated wrapper +pyqmckl_module = Extension(name = f'{mod_name}._{mod_name}', #f'_{mod_name}', + #sources = [ join('src', mod_name + '_wrap.c') ], + sources = [ join('src', f'{mod_name}.i') ], + #include_dirs = [numpy_includedir], + #library_dirs = [], + #runtime_library_dirs = [], + libraries = ['qmckl'], + extra_compile_args = ['-Wall'], + #extra_link_args = [h5_ldflags], + swig_opts = ['-py3'], + depends = [ join('src', 'qmckl.h') ], + language = 'c' + ) + + +setup(name = mod_name, + version = '0.2.0', + author = "TREX-CoE", + author_email = "posenitskiy@irsamc.ups-tlse.fr", + description = """Python API of the QMCkl library""", + long_description = long_description, + long_description_content_type = "text/markdown", + ext_modules = [pyqmckl_module], + py_modules = [mod_name], + #package_dir = {"" : "src"}, + packages = ['pyqmckl'], + url = 'https://github.com/TREX-CoE/qmckl', + license = 'BSD', + classifiers=[ + "Intended Audience :: Science/Research", + "Intended Audience :: Developers", + "Topic :: Scientific/Engineering", + "Programming Language :: C", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: Implementation :: CPython", + "License :: OSI Approved :: BSD License", + "Operating System :: POSIX", + "Operating System :: Unix", + "Operating System :: MacOS" + ], + python_requires = ">=3.0", + install_requires = ['numpy>=1.17.3'] + ) From 3b7b96d4518613040796fad29a3c2482f825dee6 Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 3 May 2022 15:07:38 +0200 Subject: [PATCH 078/111] Read the version string from the _version.py file --- python/pyqmckl/__init__.py | 1 + python/pyqmckl/_version.py | 1 + python/setup.py | 29 +++++++++++++++++++++-------- 3 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 python/pyqmckl/_version.py diff --git a/python/pyqmckl/__init__.py b/python/pyqmckl/__init__.py index 7e8cb3b..e797b17 100644 --- a/python/pyqmckl/__init__.py +++ b/python/pyqmckl/__init__.py @@ -1 +1,2 @@ from .pyqmckl import * +from ._version import __version__ diff --git a/python/pyqmckl/_version.py b/python/pyqmckl/_version.py new file mode 100644 index 0000000..d3ec452 --- /dev/null +++ b/python/pyqmckl/_version.py @@ -0,0 +1 @@ +__version__ = "0.2.0" diff --git a/python/setup.py b/python/setup.py index c3138a4..2cf89db 100644 --- a/python/setup.py +++ b/python/setup.py @@ -6,30 +6,44 @@ setup.py file for pyqmckl package from setuptools import setup, Extension from os.path import join + +# Read the long description with open("README.md", "r") as fh: long_description = fh.read() +# Read the version string from the file +VERSIONFILE = "pyqmckl/_version.py" +try: + exec(open(VERSIONFILE).read()) +except: + raise IOError("Could not open the version file %s." % (VERSIONFILE, )) + +version_r = __version__ +if not version_r: + raise RuntimeError("Unable to find a version string in %s." % (VERSIONFILE, )) + + +# Define the name of the Python package mod_name = 'pyqmckl' -# Define pyqmckl extension module based on TREXIO source codes + SWIG-generated wrapper -pyqmckl_module = Extension(name = f'{mod_name}._{mod_name}', #f'_{mod_name}', - #sources = [ join('src', mod_name + '_wrap.c') ], - sources = [ join('src', f'{mod_name}.i') ], +# Define pyqmckl extension module based on SWIG interface file (requires qmckl.h) +pyqmckl_module = Extension(name = mod_name + '._' + mod_name, + sources = [ join('src', mod_name + '_wrap.c') ], #include_dirs = [numpy_includedir], #library_dirs = [], #runtime_library_dirs = [], libraries = ['qmckl'], extra_compile_args = ['-Wall'], #extra_link_args = [h5_ldflags], - swig_opts = ['-py3'], + #swig_opts = ['-py3' , '-builtin'], depends = [ join('src', 'qmckl.h') ], language = 'c' ) setup(name = mod_name, - version = '0.2.0', + version = version_r, author = "TREX-CoE", author_email = "posenitskiy@irsamc.ups-tlse.fr", description = """Python API of the QMCkl library""", @@ -37,8 +51,7 @@ setup(name = mod_name, long_description_content_type = "text/markdown", ext_modules = [pyqmckl_module], py_modules = [mod_name], - #package_dir = {"" : "src"}, - packages = ['pyqmckl'], + packages = [mod_name], url = 'https://github.com/TREX-CoE/qmckl', license = 'BSD', classifiers=[ From a68b66e14204e482436f410b0b4574f79c4c3460 Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 3 May 2022 15:09:49 +0200 Subject: [PATCH 079/111] Separate installation and build scripts --- python/README.md | 42 +++++++++++++++++++++++--------- python/build_pyqmckl.sh | 16 ++---------- python/manual_install_pyqmckl.sh | 23 +++++++++++++++++ python/pip_install_pyqmckl.sh | 13 ++++++++++ 4 files changed, 69 insertions(+), 25 deletions(-) create mode 100644 python/manual_install_pyqmckl.sh create mode 100755 python/pip_install_pyqmckl.sh diff --git a/python/README.md b/python/README.md index 006eb8d..9d468ef 100644 --- a/python/README.md +++ b/python/README.md @@ -1,22 +1,42 @@ # Python API of the QMCkl library + ## Requirements +- `setuptools` - `numpy` -- `SWIG` (>= 4.0) +- `swig` (>= 4.0) + ## Manual installation -1. Install the QMCkl as usual -2. Get the latest `qmckl.h` file -3. `python process.py` to generate `pyqmckl_include.i` list of SWIG patterns -4. `swig -python -py3 -o pyqmckl_wrap.c pyqmckl.i` to generate the SWIG wrapper code in C and `pyqmckl.py` module in Python. +1. Install the QMCkl library (see upstream instructions) +2. `./manual_install_pyqmckl.sh` which should do the following +3. Copy the produced `_pyqmckl.so` and `pyqmckl.py` files into your working directory and do not forget to `import pyqmckl` in your Python scripts + +The second step executes the following under the hood: + +1. `./build_pyqmckl.sh` +2. ` -I/usr/include/python3.8 -c -fPIC pyqmckl_wrap.c` to compile the wrapper code into an object file using the `` (replace with your C compiler, e.g. `gcc`) on your machine +3. ` -shared pyqmckl_wrap.o -lqmckl -o _pyqmckl.so` to produce the final C extension (this requires the `qmckl` library to be installed and present in the linking paths together with all its dependencies like `trexio`) + + +## Python-ic installation (recommended) + +1. Install the QMCkl library (see upstream instructions) +2. `./pip_install_pyqmckl.sh` + +The last step runs `./build_pyqmckl.sh`, copies the result into the `pyqmckl/` directory and +then runs `pip install .` to install the `pyqmckl` Python package in your environment. + + +## SWIG pre-processing + +Both aforementioned steps call `build_pyqmckl.sh` script which does the following pre-processing for SWIG + +1. Copy the latest `qmckl.h` file fron `include/` into the `src/` directory +2. `python process_header.py` to generate `pyqmckl_include.i` list of SWIG patterns +3. `swig -python -py3 -builtin -threads -o pyqmckl_wrap.c pyqmckl.i` to generate the SWIG wrapper code in C and `pyqmckl.py` module in Python. **Note:** for this to work three files have to be present in the working directory: `pyqmckl.i`, `pyqmckl_include.i` and `numpy.i`. -5. ` -I/usr/include/python3.8 -c -fPIC pyqmckl_wrap.c` to compile the wrapper code into an object file using the `` (replace with your C compiler, e.g. `gcc`) on your machine -6. ` -shared pyqmckl_wrap.o -lqmckl -o _pyqmckl.so` to produce the final C extension (this requires the `qmckl` library to be installed and present in the linking paths together with all its dependencies like `trexio`) -7. Put the produced `_pyqmckl.so` and `pyqmckl.py` files in the working directory and then run `import pyqmckl` - -## Python-ic installation - diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh index 5af864f..b85aed3 100755 --- a/python/build_pyqmckl.sh +++ b/python/build_pyqmckl.sh @@ -3,7 +3,7 @@ set -e set -x -cp ../include/qmckl.h . +cp ../include/qmckl.h src/ cd src/ @@ -26,18 +26,6 @@ for file in $SWIG_LIST; do done # run SWIG interface file to produce the Python wrappers -swig -python -py3 -o pyqmckl_wrap.c pyqmckl.i - -# compile the wrapper code -cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 pyqmckl_wrap.c -o pyqmckl_wrap.o - -# link against the previously installed QMCkl library (as detected by pkg-config) -cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _pyqmckl.so +swig -python -py3 -builtin -threads -o pyqmckl_wrap.c pyqmckl.i cd .. - -# test -cp src/_pyqmckl.so src/pyqmckl.py -- test/ -cd test -python test_api.py - diff --git a/python/manual_install_pyqmckl.sh b/python/manual_install_pyqmckl.sh new file mode 100644 index 0000000..41a53ac --- /dev/null +++ b/python/manual_install_pyqmckl.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -x +set -e + +./build_pyqmckl.sh + +cd src/ + +# compile the wrapper code +cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 pyqmckl_wrap.c -o pyqmckl_wrap.o + +# link against the previously installed QMCkl library (as detected by pkg-config) +cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _pyqmckl.so + +cd .. + +# test +cp src/_pyqmckl.so src/pyqmckl.py test/ + +cd test/ +python test_api.py +cd .. diff --git a/python/pip_install_pyqmckl.sh b/python/pip_install_pyqmckl.sh new file mode 100755 index 0000000..5559d65 --- /dev/null +++ b/python/pip_install_pyqmckl.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -x +set -e + +./build_pyqmckl.sh + +# copy swig-produced pyqmckl.py module into the pyqmckl/ folder +cp src/pyqmckl.py pyqmckl/ + +# install using pip +pip install . + From 1be899d0c5c610f41bc60fabfd4cfda861236128 Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 3 May 2022 15:14:12 +0200 Subject: [PATCH 080/111] Add comments --- python/manual_install_pyqmckl.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) mode change 100644 => 100755 python/manual_install_pyqmckl.sh diff --git a/python/manual_install_pyqmckl.sh b/python/manual_install_pyqmckl.sh old mode 100644 new mode 100755 index 41a53ac..f3b48e6 --- a/python/manual_install_pyqmckl.sh +++ b/python/manual_install_pyqmckl.sh @@ -3,6 +3,7 @@ set -x set -e +# swig pre-processing ./build_pyqmckl.sh cd src/ @@ -15,9 +16,10 @@ cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _pyqmckl.so cd .. -# test +# copy the produced files into the test dir cp src/_pyqmckl.so src/pyqmckl.py test/ +# run tests cd test/ python test_api.py cd .. From 5bca219c1bbf8a5ea7bc28735ebcfc0b87aee089 Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 3 May 2022 16:16:56 +0200 Subject: [PATCH 081/111] Add dummy error handling on the SWIG side --- python/src/pyqmckl.i | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/python/src/pyqmckl.i b/python/src/pyqmckl.i index 08b40a0..04c45a6 100644 --- a/python/src/pyqmckl.i +++ b/python/src/pyqmckl.i @@ -40,9 +40,26 @@ import_array(); %numpy_typemaps(int32_t, NPY_INT32, int64_t) %numpy_typemaps(int64_t, NPY_INT64, int64_t) -/* Include typemaps generated by the process.py */ -%include pyqmckl_include.i +/* Include typemaps generated by the process_header.py script */ +%include "pyqmckl_include.i" +/* exception.i is a generic (language-independent) module */ +%include "exception.i" +/* Error handling +TODO: the sizeof() check below if a dummy workaround +It is good to skip exception raise for functions like context_create and others, but might fail +if sizeof(result) == sizeof(qmckl_exit_code), e.g. for functions that return non-zero integers or floats +*/ +%exception { + $action + if (result != 0 && sizeof(result) == sizeof(qmckl_exit_code)) { + SWIG_exception_fail(SWIG_RuntimeError, qmckl_string_of_error(result)); + } +} + +/* The exception handling above does not work for void functions like lock/unlock so exclude them for now */ +%ignore qmckl_lock; +%ignore qmckl_unlock; /* Parse the header files to generate wrappers */ %include "qmckl.h" From 0ea5405004128863bc1c79ac9bf8b228b04f9ad3 Mon Sep 17 00:00:00 2001 From: q-posev Date: Tue, 3 May 2022 16:48:27 +0200 Subject: [PATCH 082/111] Add SWIG and pyqmckl ingredients for Autotools --- Makefile.am | 25 ++++++++- configure.ac | 2 + m4/ax_pkg_swig.m4 | 139 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 m4/ax_pkg_swig.m4 diff --git a/Makefile.am b/Makefile.am index d60766e..3843e0d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -170,6 +170,29 @@ cppcheck.out: $(qmckl_h) --language=c --std=c99 -rp --platform=unix64 \ -I$(srcdir)/include -I$(top_builddir)/include *.c *.h 2>../$@ -.PHONY: cppcheck +setup_py = $(srcdir)/python/setup.py +process_header_py = $(srcdir)/python/src/process_header.py +pyqmckl_py = $(srcdir)/python/pyqmckl/pyqmckl.py +test_py = $(srcdir)/python/test/test_api.py +pyqmckl_wrap_c = $(srcdir)/python/src/pyqmckl_wrap.c +pyqmckl_i = $(srcdir)/python/src/pyqmckl.i +pyqmckl_include_i = $(srcdir)/python/src/pyqmckl_include.i +numpy_i = $(srcdir)/python/src/numpy.i + + +python-install: $(qmckl_h) $(pyqmckl_i) $(process_header_py) $(setup_py) + cp $(qmckl_h) python/src/ + cd python/ && \ + ./pip_install_pyqmckl.sh + +python-test: $(test_py) + cd python/test/ && \ + python test_api.py + +CLEANFILES += $(pyqmckl_wrap_c) \ + $(pyqmckl_include_i) \ + $(pyqmckl_py) + +.PHONY: cppcheck python-test python-install endif diff --git a/configure.ac b/configure.ac index fdae5dc..31322e1 100644 --- a/configure.ac +++ b/configure.ac @@ -317,6 +317,8 @@ if test "x${QMCKL_DEVEL}" != "x"; then HAS_CPPCHECK=1 fi + AX_PKG_SWIG(4.0.0, [], AC_MSG_WARN([SWIG is required to build Python API.]) ) + fi # Enable Verificarlo tests diff --git a/m4/ax_pkg_swig.m4 b/m4/ax_pkg_swig.m4 new file mode 100644 index 0000000..b1f77f0 --- /dev/null +++ b/m4/ax_pkg_swig.m4 @@ -0,0 +1,139 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PKG_SWIG([major.minor.micro], [action-if-found], [action-if-not-found]) +# +# DESCRIPTION +# +# This macro searches for a SWIG installation on your system. If found, +# then SWIG is AC_SUBST'd; if not found, then $SWIG is empty. If SWIG is +# found, then SWIG_LIB is set to the SWIG library path, and AC_SUBST'd. +# +# You can use the optional first argument to check if the version of the +# available SWIG is greater than or equal to the value of the argument. It +# should have the format: N[.N[.N]] (N is a number between 0 and 999. Only +# the first N is mandatory.) If the version argument is given (e.g. +# 1.3.17), AX_PKG_SWIG checks that the swig package is this version number +# or higher. +# +# As usual, action-if-found is executed if SWIG is found, otherwise +# action-if-not-found is executed. +# +# In configure.in, use as: +# +# AX_PKG_SWIG(1.3.17, [], [ AC_MSG_ERROR([SWIG is required to build..]) ]) +# AX_SWIG_ENABLE_CXX +# AX_SWIG_MULTI_MODULE_SUPPORT +# AX_SWIG_PYTHON +# +# LICENSE +# +# Copyright (c) 2008 Sebastian Huber +# Copyright (c) 2008 Alan W. Irwin +# Copyright (c) 2008 Rafael Laboissiere +# Copyright (c) 2008 Andrew Collier +# Copyright (c) 2011 Murray Cumming +# Copyright (c) 2021 Vincent Danjean +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 14 + +AC_DEFUN([AX_PKG_SWIG],[ + # Find path to the "swig" executable. + AC_PATH_PROGS([SWIG],[swig swig3.0 swig2.0]) + if test -z "$SWIG" ; then + m4_ifval([$3],[$3],[:]) + elif test -z "$1" ; then + m4_ifval([$2],[$2],[:]) + else + AC_MSG_CHECKING([SWIG version]) + [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`] + AC_MSG_RESULT([$swig_version]) + if test -n "$swig_version" ; then + # Calculate the required version number components + [required=$1] + [required_major=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_major" ; then + [required_major=0] + fi + [required=`echo $required. | sed 's/[0-9]*[^0-9]//'`] + [required_minor=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_minor" ; then + [required_minor=0] + fi + [required=`echo $required. | sed 's/[0-9]*[^0-9]//'`] + [required_patch=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_patch" ; then + [required_patch=0] + fi + # Calculate the available version number components + [available=$swig_version] + [available_major=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_major" ; then + [available_major=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_minor=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_minor" ; then + [available_minor=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_patch=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_patch" ; then + [available_patch=0] + fi + # Convert the version tuple into a single number for easier comparison. + # Using base 100 should be safe since SWIG internally uses BCD values + # to encode its version number. + required_swig_vernum=`expr $required_major \* 10000 \ + \+ $required_minor \* 100 \+ $required_patch` + available_swig_vernum=`expr $available_major \* 10000 \ + \+ $available_minor \* 100 \+ $available_patch` + + if test $available_swig_vernum -lt $required_swig_vernum; then + AC_MSG_WARN([SWIG version >= $1 is required. You have $swig_version.]) + SWIG='' + m4_ifval([$3],[$3],[]) + else + AC_MSG_CHECKING([for SWIG library]) + SWIG_LIB=`$SWIG -swiglib` + AC_MSG_RESULT([$SWIG_LIB]) + m4_ifval([$2],[$2],[]) + fi + else + AC_MSG_WARN([cannot determine SWIG version]) + SWIG='' + m4_ifval([$3],[$3],[]) + fi + fi + AC_SUBST([SWIG_LIB]) +]) + From abc7e8e11de14f9e9947f2f4b85c453c1e845460 Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 10:54:51 +0200 Subject: [PATCH 083/111] Add exit codes to the Python API --- python/src/process_header.py | 12 +++++++++++- python/src/pyqmckl.i | 2 +- python/test/test_api.py | 12 ++++++------ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/python/src/process_header.py b/python/src/process_header.py index 9544916..07a2966 100644 --- a/python/src/process_header.py +++ b/python/src/process_header.py @@ -11,11 +11,16 @@ func_name = '' arrays = {} numbers = {} qmckl_public_api = [] - +qmckl_errors = [] with open("qmckl.h", 'r') as f_in: for line in f_in: + # get the errors but without the type cast because SWIG does not recognize it + if '#define' in line and 'qmckl_exit_code' in line: + qmckl_errors.append(line.strip().replace('(qmckl_exit_code)','')) + continue + if get_name: words = line.strip().split() if '(' in words[0]: @@ -142,6 +147,11 @@ processed = list(arrays.keys()) + list(numbers.keys()) with open("pyqmckl_include.i", 'w') as f_out: + # write the list of errors as constants without the type cast + for e in qmckl_errors: + line = e.replace('#define', '%constant qmckl_exit_code').replace('(','=').replace(')',';') + f_out.write(line + '\n') + swig_type = '' for v in numbers.values(): diff --git a/python/src/pyqmckl.i b/python/src/pyqmckl.i index 04c45a6..1627210 100644 --- a/python/src/pyqmckl.i +++ b/python/src/pyqmckl.i @@ -52,7 +52,7 @@ if sizeof(result) == sizeof(qmckl_exit_code), e.g. for functions that return non */ %exception { $action - if (result != 0 && sizeof(result) == sizeof(qmckl_exit_code)) { + if (result != QMCKL_SUCCESS && sizeof(result) == sizeof(qmckl_exit_code)) { SWIG_exception_fail(SWIG_RuntimeError, qmckl_string_of_error(result)); } } diff --git a/python/test/test_api.py b/python/test/test_api.py index 4efb9cc..69c7a5e 100644 --- a/python/test/test_api.py +++ b/python/test/test_api.py @@ -21,30 +21,30 @@ ctx = pq.qmckl_context_create() fname = join('data', 'Alz_small.h5') rc = pq.qmckl_trexio_read(ctx, fname) -assert rc==0 +assert rc==pq.QMCKL_SUCCESS print(pq.qmckl_string_of_error(rc)) rc = pq.qmckl_set_electron_walk_num(ctx, walk_num) -assert rc==0 +assert rc==pq.QMCKL_SUCCESS rc, mo_num = pq.qmckl_get_mo_basis_mo_num(ctx) -assert rc==0 +assert rc==pq.QMCKL_SUCCESS rc = pq.qmckl_set_electron_coord(ctx, 'T', coord) -assert rc==0 +assert rc==pq.QMCKL_SUCCESS size_max = 5*walk_num*elec_num*mo_num rc, mo_vgl = pq.qmckl_get_mo_basis_mo_vgl(ctx, size_max) -assert rc==0 +assert rc==pq.QMCKL_SUCCESS start = time.clock_gettime_ns(time.CLOCK_REALTIME) for _ in range(ITERMAX): rc, mo_vgl_in = pq.qmckl_get_mo_basis_mo_vgl_inplace(ctx, size_max) - assert rc==0 + assert rc==pq.QMCKL_SUCCESS end = time.clock_gettime_ns(time.CLOCK_REALTIME) From 04367c1824be745af2d4fdb579322a2d70504726 Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 11:47:30 +0200 Subject: [PATCH 084/111] More Python-ic error handling --- python/src/pyqmckl.i | 17 +++++++++++++++-- python/test/test_api.py | 29 ++++++++++++++--------------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/python/src/pyqmckl.i b/python/src/pyqmckl.i index 1627210..df36681 100644 --- a/python/src/pyqmckl.i +++ b/python/src/pyqmckl.i @@ -45,21 +45,34 @@ import_array(); /* exception.i is a generic (language-independent) module */ %include "exception.i" -/* Error handling + +/* Error handling */ +%typemap(out) qmckl_exit_code %{ + if ($1 != QMCKL_SUCCESS) { + SWIG_exception(SWIG_RuntimeError, qmckl_string_of_error($1)); + } + $result = Py_None; + Py_INCREF(Py_None); /* Py_None is a singleton so increment its reference if used. */ +%} + +/* More swig-y solution (e.g. compatible beyond Python) BUT it does not consume the qmckl_exit_code output as the solution above TODO: the sizeof() check below if a dummy workaround It is good to skip exception raise for functions like context_create and others, but might fail if sizeof(result) == sizeof(qmckl_exit_code), e.g. for functions that return non-zero integers or floats */ +/* %exception { $action if (result != QMCKL_SUCCESS && sizeof(result) == sizeof(qmckl_exit_code)) { SWIG_exception_fail(SWIG_RuntimeError, qmckl_string_of_error(result)); } } - +*/ /* The exception handling above does not work for void functions like lock/unlock so exclude them for now */ +/* %ignore qmckl_lock; %ignore qmckl_unlock; +*/ /* Parse the header files to generate wrappers */ %include "qmckl.h" diff --git a/python/test/test_api.py b/python/test/test_api.py index 69c7a5e..99c57d8 100644 --- a/python/test/test_api.py +++ b/python/test/test_api.py @@ -18,33 +18,32 @@ ITERMAX = 10 ctx = pq.qmckl_context_create() +try: + pq.qmckl_trexio_read(ctx, 'fake.h5') +except RuntimeError: + print('Error handling check: passed') + fname = join('data', 'Alz_small.h5') -rc = pq.qmckl_trexio_read(ctx, fname) -assert rc==pq.QMCKL_SUCCESS -print(pq.qmckl_string_of_error(rc)) +pq.qmckl_trexio_read(ctx, fname) +print('trexio_read: passed') -rc = pq.qmckl_set_electron_walk_num(ctx, walk_num) -assert rc==pq.QMCKL_SUCCESS +pq.qmckl_set_electron_walk_num(ctx, walk_num) -rc, mo_num = pq.qmckl_get_mo_basis_mo_num(ctx) -assert rc==pq.QMCKL_SUCCESS +mo_num = pq.qmckl_get_mo_basis_mo_num(ctx) +assert mo_num == 404 -rc = pq.qmckl_set_electron_coord(ctx, 'T', coord) -assert rc==pq.QMCKL_SUCCESS +pq.qmckl_set_electron_coord(ctx, 'T', coord) size_max = 5*walk_num*elec_num*mo_num - - -rc, mo_vgl = pq.qmckl_get_mo_basis_mo_vgl(ctx, size_max) -assert rc==pq.QMCKL_SUCCESS +mo_vgl = pq.qmckl_get_mo_basis_mo_vgl(ctx, size_max) +assert mo_vgl.size == size_max start = time.clock_gettime_ns(time.CLOCK_REALTIME) for _ in range(ITERMAX): - rc, mo_vgl_in = pq.qmckl_get_mo_basis_mo_vgl_inplace(ctx, size_max) - assert rc==pq.QMCKL_SUCCESS + mo_vgl_in = pq.qmckl_get_mo_basis_mo_vgl_inplace(ctx, size_max) end = time.clock_gettime_ns(time.CLOCK_REALTIME) From c9450bb1a79357827ed90b8eb5eca882c04943be Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 15:06:37 +0200 Subject: [PATCH 085/111] Rename the imported functions and get rid of Python package for now --- python/{pyqmckl => }/_version.py | 0 python/manual_install_pyqmckl.sh | 6 ++--- python/pip_install_pyqmckl.sh | 6 ++++- python/pyqmckl/__init__.py | 2 -- python/setup.py | 44 ++++++++++---------------------- python/src/pyqmckl.i | 7 ++++- python/test/test_api.py | 20 +++++++-------- 7 files changed, 38 insertions(+), 47 deletions(-) rename python/{pyqmckl => }/_version.py (100%) delete mode 100644 python/pyqmckl/__init__.py diff --git a/python/pyqmckl/_version.py b/python/_version.py similarity index 100% rename from python/pyqmckl/_version.py rename to python/_version.py diff --git a/python/manual_install_pyqmckl.sh b/python/manual_install_pyqmckl.sh index f3b48e6..24f5c6a 100755 --- a/python/manual_install_pyqmckl.sh +++ b/python/manual_install_pyqmckl.sh @@ -9,15 +9,15 @@ set -e cd src/ # compile the wrapper code -cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 pyqmckl_wrap.c -o pyqmckl_wrap.o +cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 qmckl_wrap.c -o qmckl_wrap.o # link against the previously installed QMCkl library (as detected by pkg-config) -cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _pyqmckl.so +cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _qmckl.so cd .. # copy the produced files into the test dir -cp src/_pyqmckl.so src/pyqmckl.py test/ +cp src/_qmckl.so src/qmckl.py test/ # run tests cd test/ diff --git a/python/pip_install_pyqmckl.sh b/python/pip_install_pyqmckl.sh index 5559d65..846d571 100755 --- a/python/pip_install_pyqmckl.sh +++ b/python/pip_install_pyqmckl.sh @@ -6,8 +6,12 @@ set -e ./build_pyqmckl.sh # copy swig-produced pyqmckl.py module into the pyqmckl/ folder -cp src/pyqmckl.py pyqmckl/ +#cp src/qmckl.py qmckl/ +cp src/qmckl.py ./ # install using pip pip install . +cd test +python test_api.py +cd .. diff --git a/python/pyqmckl/__init__.py b/python/pyqmckl/__init__.py deleted file mode 100644 index e797b17..0000000 --- a/python/pyqmckl/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .pyqmckl import * -from ._version import __version__ diff --git a/python/setup.py b/python/setup.py index 2cf89db..59a7256 100644 --- a/python/setup.py +++ b/python/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -setup.py file for pyqmckl package +setup.py file for qmckl package """ from setuptools import setup, Extension @@ -11,49 +11,33 @@ from os.path import join with open("README.md", "r") as fh: long_description = fh.read() -# Read the version string from the file -VERSIONFILE = "pyqmckl/_version.py" -try: - exec(open(VERSIONFILE).read()) -except: - raise IOError("Could not open the version file %s." % (VERSIONFILE, )) - -version_r = __version__ -if not version_r: - raise RuntimeError("Unable to find a version string in %s." % (VERSIONFILE, )) - - # Define the name of the Python package -mod_name = 'pyqmckl' - +MODULE_NAME = "qmckl" # Define pyqmckl extension module based on SWIG interface file (requires qmckl.h) -pyqmckl_module = Extension(name = mod_name + '._' + mod_name, - sources = [ join('src', mod_name + '_wrap.c') ], +pyqmckl_module = Extension(name = "._" + MODULE_NAME, + sources = [ join("src", MODULE_NAME + "_wrap.c") ], #include_dirs = [numpy_includedir], #library_dirs = [], - #runtime_library_dirs = [], - libraries = ['qmckl'], - extra_compile_args = ['-Wall'], + libraries = ["qmckl"], + extra_compile_args = ["-Wall"], #extra_link_args = [h5_ldflags], - #swig_opts = ['-py3' , '-builtin'], - depends = [ join('src', 'qmckl.h') ], - language = 'c' + depends = [ join("src", "qmckl.h") ], + language = "c" ) -setup(name = mod_name, - version = version_r, +setup(name = MODULE_NAME, + version = "0.2.0", author = "TREX-CoE", author_email = "posenitskiy@irsamc.ups-tlse.fr", description = """Python API of the QMCkl library""", long_description = long_description, long_description_content_type = "text/markdown", ext_modules = [pyqmckl_module], - py_modules = [mod_name], - packages = [mod_name], - url = 'https://github.com/TREX-CoE/qmckl', - license = 'BSD', + py_modules = [MODULE_NAME], + url = "https://github.com/TREX-CoE/qmckl", + license = "BSD", classifiers=[ "Intended Audience :: Science/Research", "Intended Audience :: Developers", @@ -69,5 +53,5 @@ setup(name = mod_name, "Operating System :: MacOS" ], python_requires = ">=3.0", - install_requires = ['numpy>=1.17.3'] + install_requires = ["numpy>=1.17.3"] ) diff --git a/python/src/pyqmckl.i b/python/src/pyqmckl.i index df36681..7a26756 100644 --- a/python/src/pyqmckl.i +++ b/python/src/pyqmckl.i @@ -1,4 +1,4 @@ -%module pyqmckl +%module qmckl /* Define SWIGWORDSIZE in order to properly align long integers on 64-bit system */ #define SWIGWORDSIZE64 %{ @@ -7,6 +7,11 @@ #include "qmckl.h" %} +/* + * Get rid of the function prefixes, as the scripting language will use + * the module's namespace. + */ +%rename("%(strip:[qmckl_])s") ""; /* Include stdint to recognize types from stdint.h */ %include diff --git a/python/test/test_api.py b/python/test/test_api.py index 99c57d8..2c85456 100644 --- a/python/test/test_api.py +++ b/python/test/test_api.py @@ -1,13 +1,13 @@ """ This is the test of the Python API of the QMCkl library. -It is the `bench_mos.c` C code adapted from the `qmckl_bench` +It is the `bench_mos.c` C code adapted from the `bench` repo and translated into Python with some modifications. """ from os.path import join import time -import pyqmckl as pq +import qmckl as pq from data.data import coord @@ -16,34 +16,34 @@ elec_num = 158 ITERMAX = 10 -ctx = pq.qmckl_context_create() +ctx = pq.context_create() try: - pq.qmckl_trexio_read(ctx, 'fake.h5') + pq.trexio_read(ctx, 'fake.h5') except RuntimeError: print('Error handling check: passed') fname = join('data', 'Alz_small.h5') -pq.qmckl_trexio_read(ctx, fname) +pq.trexio_read(ctx, fname) print('trexio_read: passed') -pq.qmckl_set_electron_walk_num(ctx, walk_num) +pq.set_electron_walk_num(ctx, walk_num) -mo_num = pq.qmckl_get_mo_basis_mo_num(ctx) +mo_num = pq.get_mo_basis_mo_num(ctx) assert mo_num == 404 -pq.qmckl_set_electron_coord(ctx, 'T', coord) +pq.set_electron_coord(ctx, 'T', coord) size_max = 5*walk_num*elec_num*mo_num -mo_vgl = pq.qmckl_get_mo_basis_mo_vgl(ctx, size_max) +mo_vgl = pq.get_mo_basis_mo_vgl(ctx, size_max) assert mo_vgl.size == size_max start = time.clock_gettime_ns(time.CLOCK_REALTIME) for _ in range(ITERMAX): - mo_vgl_in = pq.qmckl_get_mo_basis_mo_vgl_inplace(ctx, size_max) + mo_vgl_in = pq.get_mo_basis_mo_vgl_inplace(ctx, size_max) end = time.clock_gettime_ns(time.CLOCK_REALTIME) From a733990fb40dd3895d4c097b75912ee8cbcb0c9b Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 15:07:41 +0200 Subject: [PATCH 086/111] Disable multi-threading via GIL --- python/build_pyqmckl.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh index b85aed3..22916c8 100755 --- a/python/build_pyqmckl.sh +++ b/python/build_pyqmckl.sh @@ -26,6 +26,8 @@ for file in $SWIG_LIST; do done # run SWIG interface file to produce the Python wrappers -swig -python -py3 -builtin -threads -o pyqmckl_wrap.c pyqmckl.i +# `-threads` to release GIL before the call to C functions (for multi-threading) +# `-builtin` to activate Python-ic built-in types +swig -python -py3 -builtin -o qmckl_wrap.c pyqmckl.i cd .. From de443ff30b0365e7b4ffaf15c82f4248a62e40f4 Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 15:14:16 +0200 Subject: [PATCH 087/111] Add CI for Python API --- .github/workflows/test-build.yml | 15 +++++++++++++++ python/_version.py | 1 - 2 files changed, 15 insertions(+), 1 deletion(-) delete mode 100644 python/_version.py diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index c7af73f..c4ea4aa 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -60,6 +60,21 @@ jobs: run: make distcheck working-directory: _build + - name: Setup the virtual environment + run: | + python3 -m venv --clear pyqmckl + source pyqmckl/bin/activate + + - name: Install the Python requirements + run: pip install -r requirements.txt + working-directory: python + + - name: Install the Python API + run: make python-install + + - name: Test the Python API + run: make python-test + x86_macos: runs-on: macos-latest diff --git a/python/_version.py b/python/_version.py deleted file mode 100644 index d3ec452..0000000 --- a/python/_version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.2.0" From 9c38d7914cbc08f1d3229b19553a42c6c25d30fe Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 15:29:35 +0200 Subject: [PATCH 088/111] Fix CI --- .github/workflows/test-build.yml | 3 +++ Makefile.am | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index c4ea4aa..cb34a95 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -44,6 +44,7 @@ jobs: cd _build ../configure --enable-silent-rules --enable-debug make -j 4 + make install - name: Run test run: make -j 4 check @@ -71,9 +72,11 @@ jobs: - name: Install the Python API run: make python-install + working-directory: _build - name: Test the Python API run: make python-test + working-directory: _build x86_macos: diff --git a/Makefile.am b/Makefile.am index 3843e0d..6065675 100644 --- a/Makefile.am +++ b/Makefile.am @@ -181,12 +181,12 @@ numpy_i = $(srcdir)/python/src/numpy.i python-install: $(qmckl_h) $(pyqmckl_i) $(process_header_py) $(setup_py) - cp $(qmckl_h) python/src/ - cd python/ && \ + cp $(qmckl_h) $(srcdir)/python/src/ + cd $(srcdir)/python/ && \ ./pip_install_pyqmckl.sh python-test: $(test_py) - cd python/test/ && \ + cd $(srcdir)/python/test/ && \ python test_api.py CLEANFILES += $(pyqmckl_wrap_c) \ From c69513cdc56f2a6cada5f15d734e5d395c5b17e7 Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 15:43:50 +0200 Subject: [PATCH 089/111] Fix Makefile --- Makefile.am | 10 +++++----- python/build_pyqmckl.sh | 6 +++--- python/pip_install_pyqmckl.sh | 3 --- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6065675..52ccd7f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -172,9 +172,9 @@ cppcheck.out: $(qmckl_h) setup_py = $(srcdir)/python/setup.py process_header_py = $(srcdir)/python/src/process_header.py -pyqmckl_py = $(srcdir)/python/pyqmckl/pyqmckl.py +qmckl_py = $(srcdir)/python/qmckl.py test_py = $(srcdir)/python/test/test_api.py -pyqmckl_wrap_c = $(srcdir)/python/src/pyqmckl_wrap.c +qmckl_wrap_c = $(srcdir)/python/src/qmckl_wrap.c pyqmckl_i = $(srcdir)/python/src/pyqmckl.i pyqmckl_include_i = $(srcdir)/python/src/pyqmckl_include.i numpy_i = $(srcdir)/python/src/numpy.i @@ -189,9 +189,9 @@ python-test: $(test_py) cd $(srcdir)/python/test/ && \ python test_api.py -CLEANFILES += $(pyqmckl_wrap_c) \ - $(pyqmckl_include_i) \ - $(pyqmckl_py) +CLEANFILES += $(qmckl_wrap_c) \ + $(qmckl_py) \ + $(pyqmckl_include_i) .PHONY: cppcheck python-test python-install diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh index 22916c8..961db80 100755 --- a/python/build_pyqmckl.sh +++ b/python/build_pyqmckl.sh @@ -3,13 +3,13 @@ set -e set -x -cp ../include/qmckl.h src/ +#cp ../include/qmckl.h src/ cd src/ # check if qmckl header exists if [[ ! -f 'qmckl.h' ]]; then - echo "qmckl.h NOT FOUND" + echo "qmckl.h NOT FOUND in the src/ directory" exit 1 fi @@ -20,7 +20,7 @@ python process_header.py SWIG_LIST='pyqmckl.i pyqmckl_include.i numpy.i' for file in $SWIG_LIST; do if [[ ! -f $file ]]; then - echo "$file NOT FOUND" + echo "$file NOT FOUND in the src/ directory" exit 1 fi done diff --git a/python/pip_install_pyqmckl.sh b/python/pip_install_pyqmckl.sh index 846d571..6af48a4 100755 --- a/python/pip_install_pyqmckl.sh +++ b/python/pip_install_pyqmckl.sh @@ -12,6 +12,3 @@ cp src/qmckl.py ./ # install using pip pip install . -cd test -python test_api.py -cd .. From c531feeb54a4baba9896e220d8ea2a3689bf46a3 Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 15:51:40 +0200 Subject: [PATCH 090/111] Fix CI --- .github/workflows/test-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index cb34a95..543abf8 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -44,7 +44,7 @@ jobs: cd _build ../configure --enable-silent-rules --enable-debug make -j 4 - make install + sudo make install - name: Run test run: make -j 4 check From 7651d19f2269a8be1660f7b16f4345f3756ee8ae Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 4 May 2022 16:41:16 +0200 Subject: [PATCH 091/111] Out of source build of python --- Makefile.am | 37 +++++++++++++------ python/README.md | 24 ++++++------ python/build_pyqmckl.sh | 33 ----------------- ...all_pyqmckl.sh => manual_install_qmckl.sh} | 4 +- python/pip_install_pyqmckl.sh | 14 ------- python/setup.py | 6 +-- python/src/process_header.py | 17 +++++---- python/src/{pyqmckl.i => qmckl.i} | 0 8 files changed, 52 insertions(+), 83 deletions(-) delete mode 100755 python/build_pyqmckl.sh rename python/{manual_install_pyqmckl.sh => manual_install_qmckl.sh} (82%) delete mode 100755 python/pip_install_pyqmckl.sh rename python/src/{pyqmckl.i => qmckl.i} (100%) diff --git a/Makefile.am b/Makefile.am index 52ccd7f..6d7171a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -65,7 +65,7 @@ AM_CPPFLAGS += -DQMCKL_TEST_DIR=\"$(QMCKL_TEST_DIR)\" lib_LTLIBRARIES = src/libqmckl.la src_libqmckl_la_SOURCES = $(qmckl_h) $(src_qmckl_f) $(C_FILES) $(F_FILES) $(H_PRIVATE_FUNC_FILES) $(H_PRIVATE_TYPE_FILES) -src_libqmckl_la_LDFLAGS = $(LDFLAGS) +src_libqmckl_la_LDFLAGS = $(LDFLAGS) CLEANFILES+=$(test_qmckl_fo) $(src_qmckl_fo) $(test_qmckl_o) $(src_qmckl_o) $(FH_TYPE_FILES) $(FH_FUNC_FILES) @@ -172,26 +172,39 @@ cppcheck.out: $(qmckl_h) setup_py = $(srcdir)/python/setup.py process_header_py = $(srcdir)/python/src/process_header.py -qmckl_py = $(srcdir)/python/qmckl.py test_py = $(srcdir)/python/test/test_api.py -qmckl_wrap_c = $(srcdir)/python/src/qmckl_wrap.c -pyqmckl_i = $(srcdir)/python/src/pyqmckl.i -pyqmckl_include_i = $(srcdir)/python/src/pyqmckl_include.i +qmckl_i = $(srcdir)/python/src/qmckl.i numpy_i = $(srcdir)/python/src/numpy.i +qmckl_wrap_c = python/src/qmckl_wrap.c +qmckl_include_i = python/src/qmckl_include.i +qmckl_py = python/qmckl/qmckl.py + +$(qmckl_include_i): $(qmckl_h) $(process_header_py) + $(MKDIR_P) python/src + python $(process_header_py) $(qmckl_h) + mv qmckl_include.i $(qmckl_include_i) -python-install: $(qmckl_h) $(pyqmckl_i) $(process_header_py) $(setup_py) - cp $(qmckl_h) $(srcdir)/python/src/ - cd $(srcdir)/python/ && \ - ./pip_install_pyqmckl.sh +$(qmckl_py): $(qmckl_i) $(qmckl_include_i) + swig -Iinclude -Ipython/src -python -py3 -builtin -o $(qmckl_wrap_c) $(qmckl_i) + +$(qmckl_wrap_c): $(qmckl_py) + +python-install: $(qmckl_h) $(qmckl_i) $(setup_py) $(qmckl_py) $(qmckl_wrap_c) + $(MKDIR_P) python/src + cd python ; \ + [[ ! -f pyproject.toml ]] && \ + cp $(abs_srcdir)/python/{pyproject.toml,requirements.txt,README.md,setup.py} . ; \ + cp src/qmckl.py . ; \ + pip install . python-test: $(test_py) - cd $(srcdir)/python/test/ && \ + cd $(abs_srcdir)/python/test/ && \ python test_api.py CLEANFILES += $(qmckl_wrap_c) \ - $(qmckl_py) \ - $(pyqmckl_include_i) + $(qmckl_include_i) \ + $(qmckl_py) .PHONY: cppcheck python-test python-install diff --git a/python/README.md b/python/README.md index 9d468ef..8dc41bb 100644 --- a/python/README.md +++ b/python/README.md @@ -12,31 +12,31 @@ ## Manual installation 1. Install the QMCkl library (see upstream instructions) -2. `./manual_install_pyqmckl.sh` which should do the following -3. Copy the produced `_pyqmckl.so` and `pyqmckl.py` files into your working directory and do not forget to `import pyqmckl` in your Python scripts +2. `./manual_install_qmckl.sh` which should do the following +3. Copy the produced `_qmckl.so` and `qmckl.py` files into your working directory and do not forget to `import qmckl` in your Python scripts The second step executes the following under the hood: -1. `./build_pyqmckl.sh` -2. ` -I/usr/include/python3.8 -c -fPIC pyqmckl_wrap.c` to compile the wrapper code into an object file using the `` (replace with your C compiler, e.g. `gcc`) on your machine -3. ` -shared pyqmckl_wrap.o -lqmckl -o _pyqmckl.so` to produce the final C extension (this requires the `qmckl` library to be installed and present in the linking paths together with all its dependencies like `trexio`) +1. `./build_qmckl.sh` +2. ` -I/usr/include/python3.8 -c -fPIC qmckl_wrap.c` to compile the wrapper code into an object file using the `` (replace with your C compiler, e.g. `gcc`) on your machine +3. ` -shared qmckl_wrap.o -lqmckl -o _qmckl.so` to produce the final C extension (this requires the `qmckl` library to be installed and present in the linking paths together with all its dependencies like `trexio`) ## Python-ic installation (recommended) 1. Install the QMCkl library (see upstream instructions) -2. `./pip_install_pyqmckl.sh` +2. `./pip_install_qmckl.sh` -The last step runs `./build_pyqmckl.sh`, copies the result into the `pyqmckl/` directory and -then runs `pip install .` to install the `pyqmckl` Python package in your environment. +The last step runs `./build_qmckl.sh`, copies the result into the `qmckl/` directory and +then runs `pip install .` to install the `qmckl` Python package in your environment. ## SWIG pre-processing -Both aforementioned steps call `build_pyqmckl.sh` script which does the following pre-processing for SWIG +Both aforementioned steps call `build_qmckl.sh` script which does the following pre-processing for SWIG 1. Copy the latest `qmckl.h` file fron `include/` into the `src/` directory -2. `python process_header.py` to generate `pyqmckl_include.i` list of SWIG patterns -3. `swig -python -py3 -builtin -threads -o pyqmckl_wrap.c pyqmckl.i` to generate the SWIG wrapper code in C and `pyqmckl.py` module in Python. -**Note:** for this to work three files have to be present in the working directory: `pyqmckl.i`, `pyqmckl_include.i` and `numpy.i`. +2. `python process_header.py` to generate `qmckl_include.i` list of SWIG patterns +3. `swig -python -py3 -builtin -threads -o qmckl_wrap.c qmckl.i` to generate the SWIG wrapper code in C and `qmckl.py` module in Python. +**Note:** for this to work three files have to be present in the working directory: `qmckl.i`, `qmckl_include.i` and `numpy.i`. diff --git a/python/build_pyqmckl.sh b/python/build_pyqmckl.sh deleted file mode 100755 index 961db80..0000000 --- a/python/build_pyqmckl.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -set -e -set -x - -#cp ../include/qmckl.h src/ - -cd src/ - -# check if qmckl header exists -if [[ ! -f 'qmckl.h' ]]; then - echo "qmckl.h NOT FOUND in the src/ directory" - exit 1 -fi - -# process the qmckl header file to get patterns for SWIG -python process_header.py - -# check if SWIG files exist -SWIG_LIST='pyqmckl.i pyqmckl_include.i numpy.i' -for file in $SWIG_LIST; do - if [[ ! -f $file ]]; then - echo "$file NOT FOUND in the src/ directory" - exit 1 - fi -done - -# run SWIG interface file to produce the Python wrappers -# `-threads` to release GIL before the call to C functions (for multi-threading) -# `-builtin` to activate Python-ic built-in types -swig -python -py3 -builtin -o qmckl_wrap.c pyqmckl.i - -cd .. diff --git a/python/manual_install_pyqmckl.sh b/python/manual_install_qmckl.sh similarity index 82% rename from python/manual_install_pyqmckl.sh rename to python/manual_install_qmckl.sh index 24f5c6a..ff1fff6 100755 --- a/python/manual_install_pyqmckl.sh +++ b/python/manual_install_qmckl.sh @@ -4,7 +4,7 @@ set -x set -e # swig pre-processing -./build_pyqmckl.sh +./build_qmckl.sh cd src/ @@ -12,7 +12,7 @@ cd src/ cc -c -fPIC `pkg-config --cflags qmckl` -I/usr/include/python3.8 qmckl_wrap.c -o qmckl_wrap.o # link against the previously installed QMCkl library (as detected by pkg-config) -cc -shared pyqmckl_wrap.o `pkg-config --libs qmckl` -o _qmckl.so +cc -shared qmckl_wrap.o `pkg-config --libs qmckl` -o _qmckl.so cd .. diff --git a/python/pip_install_pyqmckl.sh b/python/pip_install_pyqmckl.sh deleted file mode 100755 index 6af48a4..0000000 --- a/python/pip_install_pyqmckl.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -x -set -e - -./build_pyqmckl.sh - -# copy swig-produced pyqmckl.py module into the pyqmckl/ folder -#cp src/qmckl.py qmckl/ -cp src/qmckl.py ./ - -# install using pip -pip install . - diff --git a/python/setup.py b/python/setup.py index 59a7256..6932d61 100644 --- a/python/setup.py +++ b/python/setup.py @@ -14,8 +14,8 @@ with open("README.md", "r") as fh: # Define the name of the Python package MODULE_NAME = "qmckl" -# Define pyqmckl extension module based on SWIG interface file (requires qmckl.h) -pyqmckl_module = Extension(name = "._" + MODULE_NAME, +# Define qmckl extension module based on SWIG interface file (requires qmckl.h) +qmckl_module = Extension(name = "._" + MODULE_NAME, sources = [ join("src", MODULE_NAME + "_wrap.c") ], #include_dirs = [numpy_includedir], #library_dirs = [], @@ -34,7 +34,7 @@ setup(name = MODULE_NAME, description = """Python API of the QMCkl library""", long_description = long_description, long_description_content_type = "text/markdown", - ext_modules = [pyqmckl_module], + ext_modules = [qmckl_module], py_modules = [MODULE_NAME], url = "https://github.com/TREX-CoE/qmckl", license = "BSD", diff --git a/python/src/process_header.py b/python/src/process_header.py index 07a2966..95a3588 100644 --- a/python/src/process_header.py +++ b/python/src/process_header.py @@ -1,6 +1,9 @@ +#!/usr/bin/env python3 import os +import sys +qmckl_h = sys.argv[1] collect = False process = False @@ -13,9 +16,9 @@ numbers = {} qmckl_public_api = [] qmckl_errors = [] -with open("qmckl.h", 'r') as f_in: +with open(qmckl_h, 'r') as f_in: for line in f_in: - + # get the errors but without the type cast because SWIG does not recognize it if '#define' in line and 'qmckl_exit_code' in line: qmckl_errors.append(line.strip().replace('(qmckl_exit_code)','')) @@ -62,11 +65,11 @@ with open("qmckl.h", 'r') as f_in: # print(pattern) continue - # if size_max is not provided then the function should deal with numbers or string + # if size_max is not provided then the function should deal with numbers or string #elif 'num' in line and 'get' in func_name: elif ';' in line and 'get' in func_name: - # special case - if 'size_max' in line: + # special case + if 'size_max' in line: continue #print(line) @@ -145,7 +148,7 @@ processed = list(arrays.keys()) + list(numbers.keys()) # print(v) -with open("pyqmckl_include.i", 'w') as f_out: +with open("qmckl_include.i", 'w') as f_out: # write the list of errors as constants without the type cast for e in qmckl_errors: @@ -154,7 +157,7 @@ with open("pyqmckl_include.i", 'w') as f_out: swig_type = '' for v in numbers.values(): - + if 'int' in v['datatype']: swig_type = 'int' elif 'float' in v['datatype'] or 'double' in v['datatype']: diff --git a/python/src/pyqmckl.i b/python/src/qmckl.i similarity index 100% rename from python/src/pyqmckl.i rename to python/src/qmckl.i From 0e3c325ccead543db48f3ffee895eb5b90c7209d Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 17:26:38 +0200 Subject: [PATCH 092/111] Fix compilation issues for non-standard prefix --- Makefile.am | 2 ++ python/setup.py | 36 +++++++++++++++++++++++++++--------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6d7171a..c782ac6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -196,6 +196,8 @@ python-install: $(qmckl_h) $(qmckl_i) $(setup_py) $(qmckl_py) $(qmckl_wrap_c) [[ ! -f pyproject.toml ]] && \ cp $(abs_srcdir)/python/{pyproject.toml,requirements.txt,README.md,setup.py} . ; \ cp src/qmckl.py . ; \ + export QMCKL_INCLUDEDIR="$(prefix)/include" ; \ + export QMCKL_LIBDIR="$(prefix)/lib" ; \ pip install . python-test: $(test_py) diff --git a/python/setup.py b/python/setup.py index 6932d61..13ef779 100644 --- a/python/setup.py +++ b/python/setup.py @@ -3,6 +3,7 @@ setup.py file for qmckl package """ +import os, sys from setuptools import setup, Extension from os.path import join @@ -11,19 +12,36 @@ from os.path import join with open("README.md", "r") as fh: long_description = fh.read() +# this was recommended to solve the problem of the missing numpy header files +try: + import numpy +except ImportError: + raise Exception("numpy Python package cannot be imported.") + +numpy_includedir = numpy.get_include() + # Define the name of the Python package MODULE_NAME = "qmckl" +# derive the QMCkl libdir and includedir +QMCKL_LIBDIR = os.environ.get("QMCKL_LIBDIR", None) +QMCKL_INCLUDEDIR = os.environ.get("QMCKL_INCLUDEDIR", None) + +libdir_undefined = QMCKL_LIBDIR is None or QMCKL_LIBDIR=="" +includedir_undefined = QMCKL_INCLUDEDIR is None or QMCKL_INCLUDEDIR=="" + + # Define qmckl extension module based on SWIG interface file (requires qmckl.h) -qmckl_module = Extension(name = "._" + MODULE_NAME, - sources = [ join("src", MODULE_NAME + "_wrap.c") ], - #include_dirs = [numpy_includedir], - #library_dirs = [], - libraries = ["qmckl"], - extra_compile_args = ["-Wall"], - #extra_link_args = [h5_ldflags], - depends = [ join("src", "qmckl.h") ], - language = "c" +qmckl_module = Extension(name = "._" + MODULE_NAME, + sources = [ join("src", MODULE_NAME + "_wrap.c") ], + include_dirs = [numpy_includedir, QMCKL_INCLUDEDIR], + #library_dirs = [QMCKL_LIBDIR], + runtime_library_dirs = [QMCKL_LIBDIR], + libraries = ["qmckl"], + extra_compile_args = ["-Wall"], + extra_link_args = ["-L" + QMCKL_LIBDIR], + depends = [ join("src", "qmckl.h") ], + language = "c" ) From 6b81f7965c16410a324550b69bf5166b30fdc53e Mon Sep 17 00:00:00 2001 From: q-posev Date: Wed, 4 May 2022 17:32:43 +0200 Subject: [PATCH 093/111] Fix naming issue --- python/src/qmckl.i | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/src/qmckl.i b/python/src/qmckl.i index 7a26756..bbc450a 100644 --- a/python/src/qmckl.i +++ b/python/src/qmckl.i @@ -46,7 +46,7 @@ import_array(); %numpy_typemaps(int64_t, NPY_INT64, int64_t) /* Include typemaps generated by the process_header.py script */ -%include "pyqmckl_include.i" +%include "qmckl_include.i" /* exception.i is a generic (language-independent) module */ %include "exception.i" From 7fd6a7322a4d084e43f858286e75b47de3070712 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 4 May 2022 17:46:49 +0200 Subject: [PATCH 094/111] Update local energy (size_max) --- org/qmckl_local_energy.org | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/org/qmckl_local_energy.org b/org/qmckl_local_energy.org index c5018c0..aaad9f2 100644 --- a/org/qmckl_local_energy.org +++ b/org/qmckl_local_energy.org @@ -1058,11 +1058,11 @@ E_L = KE + PE *** Get #+begin_src c :comments org :tangle (eval h_func) :noweb yes -qmckl_exit_code qmckl_get_local_energy(qmckl_context context, double* const local_energy); +qmckl_exit_code qmckl_get_local_energy(qmckl_context context, double* const local_energy, const int64_t size_max); #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none -qmckl_exit_code qmckl_get_local_energy(qmckl_context context, double * const local_energy) { +qmckl_exit_code qmckl_get_local_energy(qmckl_context context, double * const local_energy, const int64_t size_max) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return QMCKL_NULL_CONTEXT; @@ -1086,8 +1086,14 @@ qmckl_exit_code qmckl_get_local_energy(qmckl_context context, double * const loc qmckl_context_struct* const ctx = (qmckl_context_struct* const) context; assert (ctx != NULL); - size_t sze = ctx->electron.walk_num * sizeof(double); - memcpy(local_energy, ctx->local_energy.e_local, sze); + const int64_t sze = ctx->electron.walk_num; + if (size_max < sze) { + return qmckl_failwith( context, + QMCKL_INVALID_ARG_3, + "qmckl_get_local_energy", + "input array too small"); + } + memcpy(local_energy, ctx->local_energy.e_local, sze * sizeof(double)); return QMCKL_SUCCESS; } @@ -1292,7 +1298,7 @@ end function qmckl_compute_local_energy_f double local_energy[walk_num]; -rc = qmckl_get_local_energy(context, &(local_energy[0])); +rc = qmckl_get_local_energy(context, &(local_energy[0]), walk_num); assert (rc == QMCKL_SUCCESS); #+end_src From 2ea9e504218215b089376abd3e7038e7dbe66617 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 5 Apr 2022 11:44:17 +0200 Subject: [PATCH 095/111] Fixed cppcheck --- .github/workflows/test-build.yml | 1 - org/qmckl_ao.org | 3 +- org/qmckl_blas.org | 6 +- org/qmckl_jastrow.org | 300 +++++++++++------------- org/qmckl_mo.org | 14 +- org/qmckl_sherman_morrison_woodbury.org | 2 +- 6 files changed, 154 insertions(+), 172 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index c7af73f..b4e5b6c 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -4,7 +4,6 @@ on: push: branches: [ master ] pull_request: - branches: [ master ] jobs: x86_ubuntu: diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index 54c5319..2111f8e 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -2634,9 +2634,10 @@ qmckl_exit_code qmckl_finalize_basis(qmckl_context context) { } } - rc = QMCKL_SUCCESS; #ifdef HAVE_HPC rc = qmckl_finalize_basis_hpc(context); +#else + rc = QMCKL_SUCCESS; #endif return rc; diff --git a/org/qmckl_blas.org b/org/qmckl_blas.org index 9cd7e18..1cf76e4 100644 --- a/org/qmckl_blas.org +++ b/org/qmckl_blas.org @@ -84,8 +84,8 @@ are not intended to be passed to external codes. #+begin_src c :comments org :tangle (eval h_private_type) :exports none typedef struct qmckl_vector { - int64_t size; double* restrict data; + int64_t size; } qmckl_vector; #+end_src @@ -160,8 +160,8 @@ qmckl_vector_free( qmckl_context context, #+begin_src c :comments org :tangle (eval h_private_type) :exports none typedef struct qmckl_matrix { - int64_t size[2]; double* restrict data; + int64_t size[2]; } qmckl_matrix; #+end_src @@ -245,9 +245,9 @@ qmckl_matrix_free( qmckl_context context, #define QMCKL_TENSOR_ORDER_MAX 16 typedef struct qmckl_tensor { + double* restrict data; int64_t order; int64_t size[QMCKL_TENSOR_ORDER_MAX]; - double* restrict data; } qmckl_tensor; #+end_src diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 61062af..1e3c7a9 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -837,7 +837,7 @@ qmckl_set_jastrow_type_nucl_vector(qmckl_context context, } if (ctx->jastrow.type_nucl_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.type_nucl_vector); + rc = qmckl_free(context, ctx->jastrow.type_nucl_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_type_nucl_vector", @@ -896,7 +896,7 @@ qmckl_set_jastrow_aord_vector(qmckl_context context, } if (ctx->jastrow.aord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.aord_vector); + rc = qmckl_free(context, ctx->jastrow.aord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -959,7 +959,7 @@ qmckl_set_jastrow_bord_vector(qmckl_context context, } if (ctx->jastrow.bord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.bord_vector); + rc = qmckl_free(context, ctx->jastrow.bord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -1029,7 +1029,7 @@ qmckl_set_jastrow_cord_vector(qmckl_context context, } if (ctx->jastrow.cord_vector != NULL) { - qmckl_exit_code rc = qmckl_free(context, ctx->jastrow.cord_vector); + rc = qmckl_free(context, ctx->jastrow.cord_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, "qmckl_set_ord_vector", @@ -1388,12 +1388,11 @@ qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context) ctx->jastrow.asymp_jasb = asymp_jasb; } - qmckl_exit_code rc = - qmckl_compute_asymp_jasb(context, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - rescale_factor_kappa_ee, - ctx->jastrow.asymp_jasb); + rc = qmckl_compute_asymp_jasb(context, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + rescale_factor_kappa_ee, + ctx->jastrow.asymp_jasb); if (rc != QMCKL_SUCCESS) { return rc; } @@ -1470,10 +1469,6 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( const double rescale_factor_kappa_ee, double* const asymp_jasb ) { - double kappa_inv, x, asym_one; - - kappa_inv = 1.0 / rescale_factor_kappa_ee; - if (context == QMCKL_NULL_CONTEXT){ return QMCKL_INVALID_CONTEXT; } @@ -1482,14 +1477,15 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( return QMCKL_INVALID_ARG_2; } - asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1] * kappa_inv); + const double kappa_inv = 1.0 / rescale_factor_kappa_ee; + const double asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1] * kappa_inv); asymp_jasb[0] = asym_one; asymp_jasb[1] = 0.5 * asym_one; for (int i = 0 ; i <= 1; ++i) { - x = kappa_inv; + double x = kappa_inv; for (int p = 1; p < bord_num; ++p){ - x = x * kappa_inv; + x *= kappa_inv; asymp_jasb[i] = asymp_jasb[i] + bord_vector[p + 1] * x; } } @@ -1672,16 +1668,15 @@ qmckl_exit_code qmckl_provide_factor_ee(qmckl_context context) ctx->jastrow.factor_ee = factor_ee; } - qmckl_exit_code rc = - qmckl_compute_factor_ee(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->electron.up_num, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - ctx->electron.ee_distance_rescaled, - ctx->jastrow.asymp_jasb, - ctx->jastrow.factor_ee); + rc = qmckl_compute_factor_ee(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->electron.up_num, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + ctx->electron.ee_distance_rescaled, + ctx->jastrow.asymp_jasb, + ctx->jastrow.factor_ee); if (rc != QMCKL_SUCCESS) { return rc; } @@ -1990,17 +1985,16 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) ctx->jastrow.factor_ee_deriv_e = factor_ee_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_ee_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->electron.up_num, - ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, - ctx->electron.ee_distance_rescaled, - ctx->electron.ee_distance_rescaled_deriv_e, - ctx->jastrow.asymp_jasb, - ctx->jastrow.factor_ee_deriv_e); + rc = qmckl_compute_factor_ee_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->electron.up_num, + ctx->jastrow.bord_num, + ctx->jastrow.bord_vector, + ctx->electron.ee_distance_rescaled, + ctx->electron.ee_distance_rescaled_deriv_e, + ctx->jastrow.asymp_jasb, + ctx->jastrow.factor_ee_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -2412,21 +2406,20 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) ctx->jastrow.factor_en = factor_en; } - qmckl_exit_code rc = - qmckl_compute_factor_en(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, - ctx->electron.en_distance_rescaled, - ctx->jastrow.factor_en); + rc = qmckl_compute_factor_en(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.aord_num, + ctx->jastrow.aord_vector, + ctx->electron.en_distance_rescaled, + ctx->jastrow.factor_en); if (rc != QMCKL_SUCCESS) { return rc; } - + ctx->jastrow.factor_en_date = ctx->date; } @@ -2720,18 +2713,17 @@ qmckl_exit_code qmckl_provide_factor_en_deriv_e(qmckl_context context) ctx->jastrow.factor_en_deriv_e = factor_en_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_en_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, - ctx->electron.en_distance_rescaled, - ctx->electron.en_distance_rescaled_deriv_e, - ctx->jastrow.factor_en_deriv_e); + rc = qmckl_compute_factor_en_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.aord_num, + ctx->jastrow.aord_vector, + ctx->electron.en_distance_rescaled, + ctx->electron.en_distance_rescaled_deriv_e, + ctx->jastrow.factor_en_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3138,14 +3130,13 @@ qmckl_exit_code qmckl_provide_een_rescaled_e(qmckl_context context) ctx->jastrow.een_rescaled_e = een_rescaled_e; } - qmckl_exit_code rc = - qmckl_compute_een_rescaled_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_ee, - ctx->electron.ee_distance, - ctx->jastrow.een_rescaled_e); + rc = qmckl_compute_een_rescaled_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_ee, + ctx->electron.ee_distance, + ctx->jastrow.een_rescaled_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3470,16 +3461,15 @@ qmckl_exit_code qmckl_provide_een_rescaled_e_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_e_deriv_e = een_rescaled_e_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_rescaled_e_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_ee, - ctx->electron.coord_new.data, - ctx->electron.ee_distance, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_e_deriv_e); + rc = qmckl_compute_factor_een_rescaled_e_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_ee, + ctx->electron.coord_new.data, + ctx->electron.ee_distance, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_e_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -3849,15 +3839,14 @@ qmckl_exit_code qmckl_provide_een_rescaled_n(qmckl_context context) ctx->jastrow.een_rescaled_n = een_rescaled_n; } - qmckl_exit_code rc = - qmckl_compute_een_rescaled_n(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_en, - ctx->electron.en_distance, - ctx->jastrow.een_rescaled_n); + rc = qmckl_compute_een_rescaled_n(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_en, + ctx->electron.en_distance, + ctx->jastrow.een_rescaled_n); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4165,18 +4154,17 @@ qmckl_exit_code qmckl_provide_een_rescaled_n_deriv_e(qmckl_context context) ctx->jastrow.een_rescaled_n_deriv_e = een_rescaled_n_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_rescaled_n_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->electron.rescale_factor_kappa_en, - ctx->electron.coord_new.data, - ctx->nucleus.coord.data, - ctx->electron.en_distance, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.een_rescaled_n_deriv_e); + rc = qmckl_compute_factor_een_rescaled_n_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->electron.rescale_factor_kappa_en, + ctx->electron.coord_new.data, + ctx->nucleus.coord.data, + ctx->electron.en_distance, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.een_rescaled_n_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4666,14 +4654,13 @@ qmckl_exit_code qmckl_provide_cord_vect_full(qmckl_context context) ctx->jastrow.cord_vect_full = cord_vect_full; } - qmckl_exit_code rc = - qmckl_compute_cord_vect_full(context, - ctx->nucleus.num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.type_nucl_num, - ctx->jastrow.type_nucl_vector, - ctx->jastrow.cord_vector, - ctx->jastrow.cord_vect_full); + rc = qmckl_compute_cord_vect_full(context, + ctx->nucleus.num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.type_nucl_num, + ctx->jastrow.type_nucl_vector, + ctx->jastrow.cord_vector, + ctx->jastrow.cord_vect_full); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4717,11 +4704,10 @@ qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context) ctx->jastrow.lkpm_combined_index = lkpm_combined_index; } - qmckl_exit_code rc = - qmckl_compute_lkpm_combined_index(context, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.lkpm_combined_index); + rc = qmckl_compute_lkpm_combined_index(context, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.lkpm_combined_index); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4766,15 +4752,14 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) ctx->jastrow.tmp_c = tmp_c; } - qmckl_exit_code rc = - qmckl_compute_tmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.tmp_c); + rc = qmckl_compute_tmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.tmp_c); if (rc != QMCKL_SUCCESS) { return rc; } @@ -4807,7 +4792,7 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; mem_info.size = (ctx->jastrow.cord_num) * (ctx->jastrow.cord_num + 1) - * 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); + ,* 4 * ctx->electron.num * ctx->nucleus.num * ctx->electron.walk_num * sizeof(double); double* dtmp_c = (double*) qmckl_malloc(context, mem_info); if (dtmp_c == NULL) { @@ -4819,15 +4804,14 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) ctx->jastrow.dtmp_c = dtmp_c; } - qmckl_exit_code rc = - qmckl_compute_dtmp_c(context, - ctx->jastrow.cord_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->electron.walk_num, - ctx->jastrow.een_rescaled_e_deriv_e, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.dtmp_c); + rc = qmckl_compute_dtmp_c(context, + ctx->jastrow.cord_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->electron.walk_num, + ctx->jastrow.een_rescaled_e_deriv_e, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.dtmp_c); if (rc != QMCKL_SUCCESS) { return rc; } @@ -5582,18 +5566,17 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) ctx->jastrow.factor_een = factor_een; } - qmckl_exit_code rc = - qmckl_compute_factor_een(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, - ctx->jastrow.lkpm_combined_index, - ctx->jastrow.tmp_c, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.factor_een); + rc = qmckl_compute_factor_een(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.cord_vect_full, + ctx->jastrow.lkpm_combined_index, + ctx->jastrow.tmp_c, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.factor_een); if (rc != QMCKL_SUCCESS) { return rc; } @@ -6093,20 +6076,19 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->jastrow.factor_een_deriv_e = factor_een_deriv_e; } - qmckl_exit_code rc = - qmckl_compute_factor_een_deriv_e(context, - ctx->electron.walk_num, - ctx->electron.num, - ctx->nucleus.num, - ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, - ctx->jastrow.lkpm_combined_index, - ctx->jastrow.tmp_c, - ctx->jastrow.dtmp_c, - ctx->jastrow.een_rescaled_n, - ctx->jastrow.een_rescaled_n_deriv_e, - ctx->jastrow.factor_een_deriv_e); + rc = qmckl_compute_factor_een_deriv_e(context, + ctx->electron.walk_num, + ctx->electron.num, + ctx->nucleus.num, + ctx->jastrow.cord_num, + ctx->jastrow.dim_cord_vect, + ctx->jastrow.cord_vect_full, + ctx->jastrow.lkpm_combined_index, + ctx->jastrow.tmp_c, + ctx->jastrow.dtmp_c, + ctx->jastrow.een_rescaled_n, + ctx->jastrow.een_rescaled_n_deriv_e, + ctx->jastrow.factor_een_deriv_e); if (rc != QMCKL_SUCCESS) { return rc; } diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index 66023c0..31d2885 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -896,13 +896,13 @@ qmckl_compute_mo_basis_mo_vgl_hpc (const qmckl_context context, } const int64_t n0 = n < 0 ? 0 : n; - for (int64_t n=n0 ; n < nidx ; n+=1) { - const double* restrict ck = coef_normalized_t + idx[n]*mo_num; - const double a1 = av1[n]; - const double a2 = av2[n]; - const double a3 = av3[n]; - const double a4 = av4[n]; - const double a5 = av5[n]; + for (int64_t m=n0 ; m < nidx ; m+=1) { + const double* restrict ck = coef_normalized_t + idx[m]*mo_num; + const double a1 = av1[m]; + const double a2 = av2[m]; + const double a3 = av3[m]; + const double a4 = av4[m]; + const double a5 = av5[m]; #ifdef HAVE_OPENMP #pragma omp simd diff --git a/org/qmckl_sherman_morrison_woodbury.org b/org/qmckl_sherman_morrison_woodbury.org index 598ad32..ae358e8 100644 --- a/org/qmckl_sherman_morrison_woodbury.org +++ b/org/qmckl_sherman_morrison_woodbury.org @@ -965,7 +965,7 @@ qmckl_exit_code qmckl_sherman_morrison_smw32s(const qmckl_context context, rc = qmckl_woodbury_3(context, LDS, Dim, Updates_3block, Updates_index_3block, breakdown, Slater_inv, determinant); if (rc != 0) { // Send the entire block to slagel_splitting uint64_t l = 0; - rc = qmckl_slagel_splitting(LDS, Dim, 3, Updates_3block, Updates_index_3block, + (void) qmckl_slagel_splitting(LDS, Dim, 3, Updates_3block, Updates_index_3block, breakdown, Slater_inv, later_updates + (Dim * later), later_index + later, &l, determinant); later = later + l; } From b70dd91db94427cbcc9613d1e6675f8d6885395a Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Fri, 6 May 2022 00:18:23 +0200 Subject: [PATCH 096/111] Fix bad style --- org/qmckl_mo.org | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index 31d2885..026f52c 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -805,6 +805,8 @@ qmckl_compute_mo_basis_mo_vgl_hpc (const qmckl_context context, const double* restrict ao_vgl, double* restrict const mo_vgl ) { + assert (context != QMCKL_NULL_CONTEXT); + #ifdef HAVE_OPENMP #pragma omp parallel for #endif @@ -837,7 +839,6 @@ qmckl_compute_mo_basis_mo_vgl_hpc (const qmckl_context context, double av4[ao_num]; double av5[ao_num]; for (int64_t k=0 ; k Date: Tue, 5 Apr 2022 11:44:17 +0200 Subject: [PATCH 097/111] Fixed cppcheck --- .github/workflows/test-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index b4e5b6c..12d4503 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -2,7 +2,6 @@ name: test-build on: push: - branches: [ master ] pull_request: jobs: From e54ec07e6bf46b417882ead921391f9058923c77 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 5 Apr 2022 10:50:51 +0200 Subject: [PATCH 098/111] warnings --- org/qmckl_determinant.org | 69 +++++++++++++++++---------------------- org/qmckl_nucleus.org | 37 ++++++++++----------- 2 files changed, 48 insertions(+), 58 deletions(-) diff --git a/org/qmckl_determinant.org b/org/qmckl_determinant.org index 0412db6..8c205fc 100644 --- a/org/qmckl_determinant.org +++ b/org/qmckl_determinant.org @@ -1134,36 +1134,28 @@ end function qmckl_compute_det_vgl_beta_f #+begin_src c :tangle (eval c_test) :exports none -#define walk_num chbrclf_walk_num -#define elec_num chbrclf_elec_num -#define shell_num chbrclf_shell_num -#define ao_num chbrclf_ao_num - -int64_t elec_up_num = chbrclf_elec_up_num; -int64_t elec_dn_num = chbrclf_elec_dn_num; double* elec_coord = &(chbrclf_elec_coord[0][0][0]); -const int64_t nucl_num = chbrclf_nucl_num; const double* nucl_charge = chbrclf_charge; const double* nucl_coord = &(chbrclf_nucl_coord[0][0]); -rc = qmckl_set_electron_num (context, elec_up_num, elec_dn_num); +rc = qmckl_set_electron_num (context, chbrclf_elec_up_num, chbrclf_elec_dn_num); assert (rc == QMCKL_SUCCESS); -rc = qmckl_set_electron_walk_num (context, walk_num); +rc = qmckl_set_electron_walk_num (context, chbrclf_walk_num); assert (rc == QMCKL_SUCCESS); assert(qmckl_electron_provided(context)); -rc = qmckl_set_electron_coord (context, 'N', elec_coord, walk_num*elec_num*3); +rc = qmckl_set_electron_coord (context, 'N', elec_coord, chbrclf_walk_num*chbrclf_elec_num*3); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_nucleus_num (context, nucl_num); +rc = qmckl_set_nucleus_num (context, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), nucl_num*3); +rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), chbrclf_nucl_num*3); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_nucleus_charge(context, nucl_charge, nucl_num); +rc = qmckl_set_nucleus_charge(context, nucl_charge, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(qmckl_nucleus_provided(context)); @@ -1195,27 +1187,27 @@ rc = qmckl_set_ao_basis_prim_num (context, chbrclf_prim_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_nucleus_index (context, nucleus_index, nucl_num); +rc = qmckl_set_ao_basis_nucleus_index (context, nucleus_index, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_nucleus_shell_num (context, nucleus_shell_num, nucl_num); +rc = qmckl_set_ao_basis_nucleus_shell_num (context, nucleus_shell_num, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_ang_mom (context, shell_ang_mom, shell_num); +rc = qmckl_set_ao_basis_shell_ang_mom (context, shell_ang_mom, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_factor (context, shell_factor, shell_num); +rc = qmckl_set_ao_basis_shell_factor (context, shell_factor, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_prim_num (context, shell_prim_num, shell_num); +rc = qmckl_set_ao_basis_shell_prim_num (context, shell_prim_num, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); -rc = qmckl_set_ao_basis_shell_prim_index (context, shell_prim_index, shell_num); +rc = qmckl_set_ao_basis_shell_prim_index (context, shell_prim_index, chbrclf_shell_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_ao_basis_provided(context)); @@ -1239,14 +1231,13 @@ assert(rc == QMCKL_SUCCESS); assert(qmckl_ao_basis_provided(context)); -double ao_vgl[walk_num*elec_num][5][chbrclf_ao_num]; +double ao_vgl[chbrclf_walk_num*chbrclf_elec_num][5][chbrclf_ao_num]; -rc = qmckl_get_ao_basis_ao_vgl(context, &(ao_vgl[0][0][0]), (int64_t) 5*walk_num*elec_num*chbrclf_ao_num); +rc = qmckl_get_ao_basis_ao_vgl(context, &(ao_vgl[0][0][0]), (int64_t) 5*chbrclf_walk_num*chbrclf_elec_num*chbrclf_ao_num); assert (rc == QMCKL_SUCCESS); /* Set up MO data */ -const int64_t mo_num = chbrclf_mo_num; -rc = qmckl_set_mo_basis_mo_num(context, mo_num); +rc = qmckl_set_mo_basis_mo_num(context, chbrclf_mo_num); assert (rc == QMCKL_SUCCESS); const double * mo_coefficient = &(chbrclf_mo_coef[0]); @@ -1256,31 +1247,31 @@ assert (rc == QMCKL_SUCCESS); assert(qmckl_mo_basis_provided(context)); -double mo_vgl[walk_num*elec_num][5][chbrclf_mo_num]; -rc = qmckl_get_mo_basis_mo_vgl(context, &(mo_vgl[0][0][0]), 5*walk_num*elec_num*chbrclf_mo_num); +double mo_vgl[chbrclf_walk_num*chbrclf_elec_num][5][chbrclf_mo_num]; +rc = qmckl_get_mo_basis_mo_vgl(context, &(mo_vgl[0][0][0]), 5*chbrclf_walk_num*chbrclf_elec_num*chbrclf_mo_num); assert (rc == QMCKL_SUCCESS); /* Set up determinant data */ -const int64_t det_num_alpha = 1; -const int64_t det_num_beta = 1; -int64_t mo_index_alpha[det_num_alpha][walk_num][elec_up_num]; -int64_t mo_index_beta[det_num_alpha][walk_num][elec_dn_num]; +#define det_num_alpha 1 +#define det_num_beta 1 +int64_t mo_index_alpha[det_num_alpha][chbrclf_walk_num][chbrclf_elec_up_num]; +int64_t mo_index_beta[det_num_alpha][chbrclf_walk_num][chbrclf_elec_dn_num]; int i, j, k; for(k = 0; k < det_num_alpha; ++k) - for(i = 0; i < walk_num; ++i) - for(j = 0; j < elec_up_num; ++j) + for(i = 0; i < chbrclf_walk_num; ++i) + for(j = 0; j < chbrclf_elec_up_num; ++j) mo_index_alpha[k][i][j] = j + 1; for(k = 0; k < det_num_beta; ++k) - for(i = 0; i < walk_num; ++i) - for(j = 0; j < elec_up_num; ++j) + for(i = 0; i < chbrclf_walk_num; ++i) + for(j = 0; j < chbrclf_elec_up_num; ++j) mo_index_beta[k][i][j] = j + 1; rc = qmckl_set_determinant_type (context, typ); assert(rc == QMCKL_SUCCESS); -rc = qmckl_set_determinant_walk_num (context, walk_num); +rc = qmckl_set_determinant_walk_num (context, chbrclf_walk_num); assert (rc == QMCKL_SUCCESS); rc = qmckl_set_determinant_det_num_alpha (context, det_num_alpha); @@ -1297,8 +1288,8 @@ assert (rc == QMCKL_SUCCESS); // Get slater-determinant -double det_vgl_alpha[det_num_alpha][walk_num][5][elec_up_num][elec_up_num]; -double det_vgl_beta[det_num_beta][walk_num][5][elec_dn_num][elec_dn_num]; +double det_vgl_alpha[det_num_alpha][chbrclf_walk_num][5][chbrclf_elec_up_num][chbrclf_elec_up_num]; +double det_vgl_beta[det_num_beta][chbrclf_walk_num][5][chbrclf_elec_dn_num][chbrclf_elec_dn_num]; rc = qmckl_get_det_vgl_alpha(context, &(det_vgl_alpha[0][0][0][0][0])); assert (rc == QMCKL_SUCCESS); @@ -2047,8 +2038,8 @@ end function qmckl_compute_det_inv_matrix_beta_f #+begin_src c :tangle (eval c_test) :exports none // Get adjoint of the slater-determinant -double det_inv_matrix_alpha[det_num_alpha][walk_num][elec_up_num][elec_up_num]; -double det_inv_matrix_beta[det_num_beta][walk_num][elec_dn_num][elec_dn_num]; +double det_inv_matrix_alpha[det_num_alpha][chbrclf_walk_num][chbrclf_elec_up_num][chbrclf_elec_up_num]; +double det_inv_matrix_beta[det_num_beta][chbrclf_walk_num][chbrclf_elec_dn_num][chbrclf_elec_dn_num]; rc = qmckl_get_det_inv_matrix_alpha(context, &(det_inv_matrix_alpha[0][0][0][0])); assert (rc == QMCKL_SUCCESS); diff --git a/org/qmckl_nucleus.org b/org/qmckl_nucleus.org index 319d5d1..e191d3e 100644 --- a/org/qmckl_nucleus.org +++ b/org/qmckl_nucleus.org @@ -672,7 +672,6 @@ end interface ** Test #+begin_src c :tangle (eval c_test) -const int64_t nucl_num = chbrclf_nucl_num; const double* nucl_charge = chbrclf_charge; const double* nucl_coord = &(chbrclf_nucl_coord[0][0]); const double nucl_rescale_factor_kappa = 2.0; @@ -688,13 +687,13 @@ rc = qmckl_get_nucleus_num (context, &n); assert(rc == QMCKL_NOT_PROVIDED); -rc = qmckl_set_nucleus_num (context, nucl_num); +rc = qmckl_set_nucleus_num (context, chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_nucleus_provided(context)); rc = qmckl_get_nucleus_num (context, &n); assert(rc == QMCKL_SUCCESS); -assert(n == nucl_num); +assert(n == chbrclf_nucl_num); double k; rc = qmckl_get_nucleus_rescale_factor (context, &k); @@ -709,41 +708,41 @@ rc = qmckl_get_nucleus_rescale_factor (context, &k); assert(rc == QMCKL_SUCCESS); assert(k == nucl_rescale_factor_kappa); -double nucl_coord2[3*nucl_num]; +double nucl_coord2[3*chbrclf_nucl_num]; -rc = qmckl_get_nucleus_coord (context, 'T', nucl_coord2, 3*nucl_num); +rc = qmckl_get_nucleus_coord (context, 'T', nucl_coord2, 3*chbrclf_nucl_num); assert(rc == QMCKL_NOT_PROVIDED); -rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), 3*nucl_num); +rc = qmckl_set_nucleus_coord (context, 'T', &(nucl_coord[0]), 3*chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); assert(!qmckl_nucleus_provided(context)); -rc = qmckl_get_nucleus_coord (context, 'N', nucl_coord2, 3*nucl_num); +rc = qmckl_get_nucleus_coord (context, 'N', nucl_coord2, 3*chbrclf_nucl_num); assert(rc == QMCKL_SUCCESS); for (size_t k=0 ; k<3 ; ++k) { - for (int64_t i=0 ; i Date: Fri, 6 May 2022 11:30:21 +0200 Subject: [PATCH 099/111] Fixed bug in AO HPC --- org/qmckl_ao.org | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index 8289aa4..03405bb 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -4797,7 +4797,7 @@ qmckl_ao_polynomial_transp_vgl_hpc (const qmckl_context context, const double* restrict X, const double* restrict R, const int32_t lmax, - int64_t* restrict n, + int64_t* n, int32_t* restrict const L, const int64_t ldl, double* restrict const VGL, @@ -5529,7 +5529,7 @@ qmckl_compute_ao_vgl_hpc_gaussian ( { qmckl_exit_code rc; double ar2[prim_max]; - int32_t powers[prim_max]; + int32_t powers[3*size_max]; double poly_vgl_l1[4][4] = {{1.0, 0.0, 0.0, 0.0}, {0.0, 1.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, @@ -5614,7 +5614,6 @@ qmckl_compute_ao_vgl_hpc_gaussian ( nucleus_max_ang_mom[inucl], &n_poly, powers, (int64_t) 3, &(poly_vgl[0][0]), size_max); - assert (rc == QMCKL_SUCCESS); break; } From ec7201783fbfd360d054891d7d093ec34577f98e Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 10 May 2022 19:18:19 +0200 Subject: [PATCH 100/111] Possibility to compute only values --- org/qmckl_ao.org | 1025 ++++++++++++++++++++++++++++++++++++++++++---- org/qmckl_mo.org | 508 ++++++++++++++++++++++- 2 files changed, 1448 insertions(+), 85 deletions(-) diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index 03405bb..4120690 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -299,6 +299,8 @@ typedef struct qmckl_ao_basis_struct { uint64_t shell_vgl_date; double * restrict ao_vgl; uint64_t ao_vgl_date; + double * restrict ao_value; + uint64_t ao_value_date; int32_t uninitialized; bool provided; @@ -2490,8 +2492,10 @@ free(ao_factor_test); | ~primitive_vgl_date~ | ~uint64_t~ | Last modification date of Value, gradients, Laplacian of the primitives at current positions | | ~shell_vgl~ | ~double[point_num][5][shell_num]~ | Value, gradients, Laplacian of the primitives at current positions | | ~shell_vgl_date~ | ~uint64_t~ | Last modification date of Value, gradients, Laplacian of the AOs at current positions | - | ~ao_vgl~ | ~double[point_num][5][ao_num]~ | Value, gradients, Laplacian of the primitives at current positions | + | ~ao_vgl~ | ~double[point_num][5][ao_num]~ | Value, gradients, Laplacian of the AOs at current positions | | ~ao_vgl_date~ | ~uint64_t~ | Last modification date of Value, gradients, Laplacian of the AOs at current positions | + | ~ao_value~ | ~double[point_num][ao_num]~ | Values of the the AOs at current positions | + | ~ao_value_date~ | ~uint64_t~ | Last modification date of the values of the AOs at current positions | |----------------------+-----------------------------------+----------------------------------------------------------------------------------------------| *** After initialization @@ -3022,7 +3026,7 @@ qmckl_get_ao_basis_ao_vgl (qmckl_context context, end interface #+end_src - Uses the give array to compute the VGL. + Uses the given array to compute the VGL. #+begin_src c :comments org :tangle (eval h_func) :noweb yes qmckl_exit_code @@ -3030,7 +3034,7 @@ qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, double* const ao_vgl, const int64_t size_max); #+end_src - + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none qmckl_exit_code qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, @@ -3088,6 +3092,133 @@ qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, end interface #+end_src + + + #+begin_src c :comments org :tangle (eval h_func) :noweb yes +qmckl_exit_code +qmckl_get_ao_basis_ao_value (qmckl_context context, + double* const ao_value, + const int64_t size_max); + #+end_src + + Returns the array of values of the atomic orbitals evaluated at + the current coordinates. See section [[Combining radial and polynomial parts]]. + + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none +qmckl_exit_code +qmckl_get_ao_basis_ao_value (qmckl_context context, + double* const ao_value, + const int64_t size_max) +{ + + if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { + return qmckl_failwith( context, + QMCKL_INVALID_CONTEXT, + "qmckl_get_ao_basis_ao_value", + NULL); + } + + qmckl_exit_code rc; + + rc = qmckl_provide_ao_value(context); + if (rc != QMCKL_SUCCESS) return rc; + + qmckl_context_struct* const ctx = (qmckl_context_struct*) context; + assert (ctx != NULL); + + int64_t sze = ctx->ao_basis.ao_num * ctx->point.num; + if (size_max < sze) { + return qmckl_failwith( context, + QMCKL_INVALID_ARG_3, + "qmckl_get_ao_basis_ao_value", + "input array too small"); + } + memcpy(ao_value, ctx->ao_basis.ao_value, (size_t) sze * sizeof(double)); + + return QMCKL_SUCCESS; +} + #+end_src + + #+begin_src f90 :tangle (eval fh_func) :comments org :exports none + interface + integer(c_int32_t) function qmckl_get_ao_basis_ao_value (context, & + ao_value, size_max) bind(C) + use, intrinsic :: iso_c_binding + import + implicit none + integer (c_int64_t) , intent(in) , value :: context + double precision, intent(out) :: ao_value(*) + integer (c_int64_t) , intent(in) , value :: size_max + end function qmckl_get_ao_basis_ao_value + end interface + #+end_src + + Uses the given array to compute the value. + + #+begin_src c :comments org :tangle (eval h_func) :noweb yes +qmckl_exit_code +qmckl_get_ao_basis_ao_value_inplace (qmckl_context context, + double* const ao_value, + const int64_t size_max); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none +qmckl_exit_code +qmckl_get_ao_basis_ao_value_inplace (qmckl_context context, + double* const ao_value, + const int64_t size_max) +{ + + if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { + return qmckl_failwith( context, + QMCKL_INVALID_CONTEXT, + "qmckl_get_ao_basis_ao_value", + NULL); + } + + qmckl_exit_code rc; + + qmckl_context_struct* const ctx = (qmckl_context_struct*) context; + assert (ctx != NULL); + + int64_t sze = ctx->ao_basis.ao_num * ctx->point.num; + if (size_max < sze) { + return qmckl_failwith( context, + QMCKL_INVALID_ARG_3, + "qmckl_get_ao_basis_ao_value", + "input array too small"); + } + + rc = qmckl_context_touch(context); + if (rc != QMCKL_SUCCESS) return rc; + + double* old_array = ctx->ao_basis.ao_value; + + ctx->ao_basis.ao_value = ao_value; + + rc = qmckl_provide_ao_value(context); + if (rc != QMCKL_SUCCESS) return rc; + + ctx->ao_basis.ao_value = old_array; + + return QMCKL_SUCCESS; +} + #+end_src + + #+begin_src f90 :tangle (eval fh_func) :comments org :exports none + interface + integer(c_int32_t) function qmckl_get_ao_basis_ao_value_inplace (context, & + ao_value, size_max) bind(C) + use, intrinsic :: iso_c_binding + import + implicit none + integer (c_int64_t) , intent(in) , value :: context + double precision, intent(out) :: ao_value(*) + integer (c_int64_t) , intent(in) , value :: size_max + end function qmckl_get_ao_basis_ao_value_inplace + end interface + #+end_src + * Radial part ** General functions for Gaussian basis functions @@ -5285,33 +5416,780 @@ for (int32_t ldl=3 ; ldl<=5 ; ++ldl) { #+end_src * Combining radial and polynomial parts + +** Values only + :PROPERTIES: + :Name: qmckl_compute_ao_value + :CRetType: qmckl_exit_code + :FRetType: qmckl_exit_code + :END: +*** Unoptimized version + #+NAME: qmckl_ao_value_args_doc + | Variable | Type | In/Out | Description | + |-----------------------+-----------------------------------+--------+----------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~ao_num~ | ~int64_t~ | in | Number of AOs | + | ~shell_num~ | ~int64_t~ | in | Number of shells | + | ~point_num~ | ~int64_t~ | in | Number of points | + | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | + | ~coord~ | ~double[3][point_num]~ | in | Coordinates | + | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | + | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | + | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells per nucleus | + | ~nucleus_range~ | ~double[nucl_num]~ | in | Range beyond which all is zero | + | ~nucleus_max_ang_mom~ | ~int32_t[nucl_num]~ | in | Maximum angular momentum per nucleus | + | ~shell_ang_mom~ | ~int32_t[shell_num]~ | in | Angular momentum of each shell | + | ~ao_factor~ | ~double[ao_num]~ | in | Normalization factor of the AOs | + | ~shell_vgl~ | ~double[point_num][5][shell_num]~ | in | Value, gradients and Laplacian of the shells | + | ~ao_value~ | ~double[point_num][ao_num]~ | out | Values of the AOs | + + #+begin_src f90 :comments org :tangle (eval f) :noweb yes +integer function qmckl_compute_ao_value_doc_f(context, & + ao_num, shell_num, point_num, nucl_num, & + coord, nucl_coord, nucleus_index, nucleus_shell_num, & + nucleus_range, nucleus_max_ang_mom, shell_ang_mom, & + ao_factor, shell_vgl, ao_value) & + result(info) + use qmckl + implicit none + integer(qmckl_context), intent(in) :: context + integer*8 , intent(in) :: ao_num + integer*8 , intent(in) :: shell_num + integer*8 , intent(in) :: point_num + integer*8 , intent(in) :: nucl_num + double precision , intent(in) :: coord(point_num,3) + double precision , intent(in) :: nucl_coord(nucl_num,3) + integer*8 , intent(in) :: nucleus_index(nucl_num) + integer*8 , intent(in) :: nucleus_shell_num(nucl_num) + double precision , intent(in) :: nucleus_range(nucl_num) + integer , intent(in) :: nucleus_max_ang_mom(nucl_num) + integer , intent(in) :: shell_ang_mom(shell_num) + double precision , intent(in) :: ao_factor(ao_num) + double precision , intent(in) :: shell_vgl(shell_num,5,point_num) + double precision , intent(out) :: ao_value(ao_num,point_num) + + double precision :: e_coord(3), n_coord(3) + integer*8 :: n_poly + integer :: l, il, k + integer*8 :: ipoint, inucl, ishell + integer*8 :: ishell_start, ishell_end + integer :: lstart(0:20) + double precision :: x, y, z, r2 + double precision :: cutoff + integer, external :: qmckl_ao_polynomial_vgl_doc_f + + double precision, allocatable :: poly_vgl(:,:) + integer , allocatable :: powers(:,:), ao_index(:) + + allocate(poly_vgl(5,ao_num), powers(3,ao_num), ao_index(ao_num)) + + ! Pre-computed data + do l=0,20 + lstart(l) = l*(l+1)*(l+2)/6 +1 + end do + + k=1 + do inucl=1,nucl_num + ishell_start = nucleus_index(inucl) + 1 + ishell_end = nucleus_index(inucl) + nucleus_shell_num(inucl) + do ishell = ishell_start, ishell_end + l = shell_ang_mom(ishell) + ao_index(ishell) = k + k = k + lstart(l+1) - lstart(l) + end do + end do + info = QMCKL_SUCCESS + + ! Don't compute polynomials when the radial part is zero. + cutoff = -dlog(1.d-12) + + do ipoint = 1, point_num + e_coord(1) = coord(ipoint,1) + e_coord(2) = coord(ipoint,2) + e_coord(3) = coord(ipoint,3) + do inucl=1,nucl_num + n_coord(1) = nucl_coord(inucl,1) + n_coord(2) = nucl_coord(inucl,2) + n_coord(3) = nucl_coord(inucl,3) + + ! Test if the point is in the range of the nucleus + x = e_coord(1) - n_coord(1) + y = e_coord(2) - n_coord(2) + z = e_coord(3) - n_coord(3) + + r2 = x*x + y*y + z*z + + if (r2 > cutoff*nucleus_range(inucl)) then + cycle + end if + + ! Compute polynomials + info = qmckl_ao_polynomial_vgl_doc_f(context, e_coord, n_coord, & + nucleus_max_ang_mom(inucl), n_poly, powers, 3_8, & + poly_vgl, 5_8) + + ! Loop over shells + ishell_start = nucleus_index(inucl) + 1 + ishell_end = nucleus_index(inucl) + nucleus_shell_num(inucl) + do ishell = ishell_start, ishell_end + k = ao_index(ishell) + l = shell_ang_mom(ishell) + do il = lstart(l), lstart(l+1)-1 + ! Value + ao_value(k,ipoint) = & + poly_vgl(1,il) * shell_vgl(ishell,1,ipoint) * ao_factor(k) + k = k+1 + end do + end do + end do + end do + + deallocate(poly_vgl, powers) +end function qmckl_compute_ao_value_doc_f + #+end_src + +*** HPC version + #+NAME: qmckl_ao_value_args_hpc_gaussian + | Variable | Type | In/Out | Description | + |-----------------------+-----------------------------+--------+----------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~ao_num~ | ~int64_t~ | in | Number of AOs | + | ~shell_num~ | ~int64_t~ | in | Number of shells | + | ~prim_num~ | ~int64_t~ | in | Number of primitives | + | ~point_num~ | ~int64_t~ | in | Number of points | + | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | + | ~coord~ | ~double[3][point_num]~ | in | Coordinates | + | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | + | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | + | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells per nucleus | + | ~nucleus_range~ | ~double[nucl_num]~ | in | Range beyond which all is zero | + | ~nucleus_max_ang_mom~ | ~int32_t[nucl_num]~ | in | Maximum angular momentum per nucleus | + | ~shell_ang_mom~ | ~int32_t[shell_num]~ | in | Angular momentum of each shell | + | ~shell_prim_index~ | ~int64_t[shell_num]~ | in | Index of the 1st primitive of each shell | + | ~shell_prim_num~ | ~int64_t[shell_num]~ | in | Number of primitives per shell | + | ~ao_factor~ | ~double[ao_num]~ | in | Normalization factor of the AOs | + | ~ao_expo~ | ~double[prim_num]~ | in | Value, gradients and Laplacian of the shells | + | ~coef_normalized~ | ~double[prim_num]~ | in | Value, gradients and Laplacian of the shells | + | ~ao_value~ | ~double[point_num][ao_num]~ | out | Values of the AOs | + + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none +#ifdef HAVE_HPC +qmckl_exit_code +qmckl_compute_ao_value_hpc_gaussian (const qmckl_context context, + const int64_t ao_num, + const int64_t shell_num, + const int32_t* restrict prim_num_per_nucleus, + const int64_t point_num, + const int64_t nucl_num, + const double* restrict coord, + const double* restrict nucl_coord, + const int64_t* restrict nucleus_index, + const int64_t* restrict nucleus_shell_num, + const double* nucleus_range, + const int32_t* restrict nucleus_max_ang_mom, + const int32_t* restrict shell_ang_mom, + const double* restrict ao_factor, + const qmckl_matrix expo_per_nucleus, + const qmckl_tensor coef_per_nucleus, + double* restrict const ao_value ) +{ + int32_t lstart[32]; + for (int32_t l=0 ; l<32 ; ++l) { + lstart[l] = l*(l+1)*(l+2)/6; + } + + int64_t ao_index[shell_num+1]; + int64_t size_max = 0; + int64_t prim_max = 0; + int64_t shell_max = 0; + { + int64_t k=0; + for (int inucl=0 ; inucl < nucl_num ; ++inucl) { + prim_max = prim_num_per_nucleus[inucl] > prim_max ? + prim_num_per_nucleus[inucl] : prim_max; + shell_max = nucleus_shell_num[inucl] > shell_max ? + nucleus_shell_num[inucl] : shell_max; + const int64_t ishell_start = nucleus_index[inucl]; + const int64_t ishell_end = nucleus_index[inucl] + nucleus_shell_num[inucl]; + for (int64_t ishell = ishell_start ; ishell < ishell_end ; ++ishell) { + const int l = shell_ang_mom[ishell]; + ao_index[ishell] = k; + k += lstart[l+1] - lstart[l]; + size_max = size_max < lstart[l+1] ? lstart[l+1] : size_max; + } + } + ao_index[shell_num] = ao_num+1; + } + + /* Don't compute polynomials when the radial part is zero. */ + double cutoff = -log(1.e-12); + +#ifdef HAVE_OPENMP +#pragma omp parallel +#endif + { + qmckl_exit_code rc; + double ar2[prim_max]; + int32_t powers[3*size_max]; + double poly_vgl[5*size_max]; + + double exp_mat[prim_max]; + double ce_mat[shell_max]; + + double coef_mat[nucl_num][shell_max][prim_max]; + for (int i=0 ; i cutoff * nucleus_range[inucl]) { + continue; + } + + int64_t n_poly; + switch (nucleus_max_ang_mom[inucl]) { + case 0: + break; + + case 1: + poly_vgl[0] = 0.; + poly_vgl[1] = x; + poly_vgl[2] = y; + poly_vgl[3] = z; + break; + + case 2: + poly_vgl[0] = 0.; + poly_vgl[1] = x; + poly_vgl[2] = y; + poly_vgl[3] = z; + poly_vgl[4] = x*x; + poly_vgl[5] = x*y; + poly_vgl[6] = x*z; + poly_vgl[7] = y*y; + poly_vgl[8] = y*z; + poly_vgl[9] = z*z; + break; + + default: + rc = qmckl_ao_polynomial_transp_vgl_hpc(context, e_coord, n_coord, + nucleus_max_ang_mom[inucl], + &n_poly, powers, (int64_t) 3, + poly_vgl, size_max); + assert (rc == QMCKL_SUCCESS); + break; + } + + /* Compute all exponents */ + + int64_t nidx = 0; + for (int64_t iprim = 0 ; iprim < prim_num_per_nucleus[inucl] ; ++iprim) { + const double v = qmckl_mat(expo_per_nucleus, iprim, inucl) * r2; + if (v <= cutoff) { + ar2[iprim] = v; + ++nidx; + } else { + break; + } + } + + for (int64_t iprim = 0 ; iprim < nidx ; ++iprim) { + exp_mat[iprim] = exp(-ar2[iprim]); + } + + for (int i=0 ; i 0) { + const double* restrict f = ao_factor + k; + const int64_t idx = lstart[l]; + + poly_vgl_1 = &(poly_vgl[idx]); + + switch (n) { + case(1): + ao_value_1[0] = s1 * f[0]; + break; + case (3): +#ifdef HAVE_OPENMP +#pragma omp simd +#endif + for (int il=0 ; il<3 ; ++il) { + ao_value_1[il] = poly_vgl_1[il] * s1 * f[il]; + } + break; + case(6): +#ifdef HAVE_OPENMP +#pragma omp simd +#endif + for (int il=0 ; il<6 ; ++il) { + ao_value_1[il] = poly_vgl_1[il] * s1 * f[il]; + } + break; + default: +#ifdef HAVE_OPENMP +#pragma omp simd simdlen(8) +#endif + for (int il=0 ; ilao_basis.provided) { + return qmckl_failwith( context, + QMCKL_NOT_PROVIDED, + "qmckl_ao_value", + NULL); + } + + /* Compute if necessary */ + if (ctx->point.date > ctx->ao_basis.ao_value_date) { + + qmckl_exit_code rc; + + /* Provide required data */ +#ifndef HAVE_HPC + rc = qmckl_provide_ao_basis_shell_vgl(context); + if (rc != QMCKL_SUCCESS) { + return qmckl_failwith( context, rc, "qmckl_provide_ao_basis_shell_vgl", NULL); + } +#endif + + /* Allocate array */ + if (ctx->ao_basis.ao_value == NULL) { + + qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; + mem_info.size = ctx->ao_basis.ao_num * 5 * ctx->point.num * sizeof(double); + double* ao_value = (double*) qmckl_malloc(context, mem_info); + + if (ao_value == NULL) { + return qmckl_failwith( context, + QMCKL_ALLOCATION_FAILED, + "qmckl_ao_basis_ao_value", + NULL); + } + ctx->ao_basis.ao_value = ao_value; + } + + if (ctx->ao_basis.ao_vgl_date == ctx->point.date) { + + // ao_vgl has been computed at this step: Just copy the data. + + double * v = &(ctx->ao_basis.ao_value[0]); + double * vgl = &(ctx->ao_basis.ao_vgl[0]); + for (int i=0 ; ipoint.num ; ++i) { + for (int k=0 ; kao_basis.ao_num ; ++k) { + v[k] = vgl[k]; + } + v += ctx->ao_basis.ao_num; + vgl += ctx->ao_basis.ao_num * 5; + } + + } else { + +#ifdef HAVE_HPC + if (ctx->ao_basis.type == 'G') { + rc = qmckl_compute_ao_value_hpc_gaussian(context, + ctx->ao_basis.ao_num, + ctx->ao_basis.shell_num, + ctx->ao_basis.prim_num_per_nucleus, + ctx->point.num, + ctx->nucleus.num, + ctx->point.coord.data, + ctx->nucleus.coord.data, + ctx->ao_basis.nucleus_index, + ctx->ao_basis.nucleus_shell_num, + ctx->ao_basis.nucleus_range, + ctx->ao_basis.nucleus_max_ang_mom, + ctx->ao_basis.shell_ang_mom, + ctx->ao_basis.ao_factor, + ctx->ao_basis.expo_per_nucleus, + ctx->ao_basis.coef_per_nucleus, + ctx->ao_basis.ao_value); + /* + } else if (ctx->ao_basis.type == 'S') { + rc = qmck_compute_ao_value_hpc_slater(context, + ctx->ao_basis.ao_num, + ctx->ao_basis.shell_num, + ctx->ao_basis.prim_num, + ctx->point.num, + ctx->nucleus.num, + ctx->point.coord.data, + ctx->nucleus.coord.data, + ctx->ao_basis.nucleus_index, + ctx->ao_basis.nucleus_shell_num, + ctx->ao_basis.nucleus_range, + ctx->ao_basis.nucleus_max_ang_mom, + ctx->ao_basis.shell_ang_mom, + ctx->ao_basis.shell_prim_index, + ctx->ao_basis.shell_prim_num, + ctx->ao_basis.ao_factor, + ctx->ao_basis.exponent, + ctx->ao_basis.coefficient_normalized, + ctx->ao_basis.ao_value); + ,*/ + } else { + rc = qmckl_compute_ao_value_doc(context, + ctx->ao_basis.ao_num, + ctx->ao_basis.shell_num, + ctx->point.num, + ctx->nucleus.num, + ctx->point.coord.data, + ctx->nucleus.coord.data, + ctx->ao_basis.nucleus_index, + ctx->ao_basis.nucleus_shell_num, + ctx->ao_basis.nucleus_range, + ctx->ao_basis.nucleus_max_ang_mom, + ctx->ao_basis.shell_ang_mom, + ctx->ao_basis.ao_factor, + ctx->ao_basis.shell_vgl, + ctx->ao_basis.ao_value); + } +#else + rc = qmckl_compute_ao_value_doc(context, + ctx->ao_basis.ao_num, + ctx->ao_basis.shell_num, + ctx->point.num, + ctx->nucleus.num, + ctx->point.coord.data, + ctx->nucleus.coord.data, + ctx->ao_basis.nucleus_index, + ctx->ao_basis.nucleus_shell_num, + ctx->ao_basis.nucleus_range, + ctx->ao_basis.nucleus_max_ang_mom, + ctx->ao_basis.shell_ang_mom, + ctx->ao_basis.ao_factor, + ctx->ao_basis.shell_vgl, + ctx->ao_basis.ao_value); +#endif + if (rc != QMCKL_SUCCESS) { + return rc; + } + + } + + ctx->ao_basis.ao_value_date = ctx->date; + } + + return QMCKL_SUCCESS; +} + #+end_src + +**** Test :noexport: + + #+begin_src python :results output :exports none +import numpy as np +from math import sqrt + +h0 = 1.e-4 +def f(a,x,y): + return np.sum( [c * np.exp( -b*(np.linalg.norm(x-y))**2) for b,c in a] ) + +elec_26_w1 = np.array( [ 1.49050402641, 2.90106987953, -1.05920815468 ] ) +elec_15_w2 = np.array( [ -2.20180344582,-1.9113150239, 2.2193744778600002 ] ) +nucl_1 = np.array( [ -2.302574592081335e+00, -3.542027060505035e-01, -5.334129934317614e-02] ) + +#double ao_value[prim_num][5][elec_num]; +x = elec_26_w1 ; y = nucl_1 +a = [( 4.0382999999999998e+02, 1.4732000000000000e-03 * 5.9876577632594533e+04), + ( 1.2117000000000000e+02, 1.2672500000000000e-02 * 7.2836806319891484e+03), + ( 4.6344999999999999e+01, 5.8045100000000002e-02 * 1.3549226646722386e+03), + ( 1.9721000000000000e+01, 1.7051030000000000e-01 * 3.0376315094739988e+02), + ( 8.8623999999999992e+00, 3.1859579999999998e-01 * 7.4924579607137730e+01), + ( 3.9962000000000000e+00, 3.8450230000000002e-01 * 1.8590543353806009e+01), + ( 1.7636000000000001e+00, 2.7377370000000001e-01 * 4.4423176930919421e+00), + ( 7.0618999999999998e-01, 7.4396699999999996e-02 * 8.9541051939952665e-01)] + +norm = sqrt(3.) +# x^2 * g(r) +print ( "[26][0][219] : %25.15e"%(fx(a,x,y)) ) +print ( "[26][1][219] : %25.15e"%(df(a,x,y,1)) ) +print ( "[26][2][219] : %25.15e"%(df(a,x,y,2)) ) +print ( "[26][3][219] : %25.15e"%(df(a,x,y,3)) ) +print ( "[26][4][219] : %25.15e"%(lf(a,x,y)) ) + +print ( "[26][0][220] : %25.15e"%(norm*f(a,x,y) * (x[0] - y[0]) * (x[1] - y[1]) )) +print ( "[26][1][220] : %25.15e"%(norm*df(a,x,y,1)* (x[0] - y[0]) * (x[1] - y[1]) + norm*f(a,x,y) * (x[1] - y[1])) ) + +print ( "[26][0][221] : %25.15e"%(norm*f(a,x,y) * (x[0] - y[0]) * (x[2] - y[2])) ) +print ( "[26][1][221] : %25.15e"%(norm*df(a,x,y,1)* (x[0] - y[0]) * (x[2] - y[2]) + norm*f(a,x,y) * (x[2] - y[2])) ) + +print ( "[26][0][222] : %25.15e"%(f(a,x,y) * (x[1] - y[1]) * (x[1] - y[1])) ) +print ( "[26][1][222] : %25.15e"%(df(a,x,y,1)* (x[1] - y[1]) * (x[1] - y[1])) ) + +print ( "[26][0][223] : %25.15e"%(norm*f(a,x,y) * (x[1] - y[1]) * (x[2] - y[2])) ) +print ( "[26][1][223] : %25.15e"%(norm*df(a,x,y,1)* (x[1] - y[1]) * (x[2] - y[2])) ) + +print ( "[26][0][224] : %25.15e"%(f(a,x,y) * (x[2] - y[2]) * (x[2] - y[2])) ) +print ( "[26][1][224] : %25.15e"%(df(a,x,y,1)* (x[2] - y[2]) * (x[2] - y[2])) ) + + #+end_src + + #+RESULTS: + + #+begin_src c :tangle (eval c_test) :exports none +{ +#define walk_num 1 // chbrclf_walk_num +#define elec_num chbrclf_elec_num +#define shell_num chbrclf_shell_num +#define ao_num chbrclf_ao_num + +int64_t elec_up_num = chbrclf_elec_up_num; +int64_t elec_dn_num = chbrclf_elec_dn_num; +double* elec_coord = &(chbrclf_elec_coord[0][0][0]); + +rc = qmckl_set_electron_num (context, elec_up_num, elec_dn_num); +assert (rc == QMCKL_SUCCESS); + +rc = qmckl_set_electron_walk_num (context, walk_num); +assert (rc == QMCKL_SUCCESS); + +assert(qmckl_electron_provided(context)); + +rc = qmckl_set_electron_coord (context, 'N', elec_coord, walk_num*elec_num*3); +assert(rc == QMCKL_SUCCESS); + + +double ao_value[elec_num][ao_num]; + +rc = qmckl_get_ao_basis_ao_value(context, &(ao_value[0][0]), + (int64_t) elec_num*ao_num); +assert (rc == QMCKL_SUCCESS); + +printf("\n"); +printf(" ao_value ao_value[26][219] %25.15e\n", ao_value[26][219]); +printf(" ao_value ao_value[26][220] %25.15e\n", ao_value[26][220]); +printf(" ao_value ao_value[26][221] %25.15e\n", ao_value[26][221]); +printf(" ao_value ao_value[26][222] %25.15e\n", ao_value[26][222]); +printf(" ao_value ao_value[26][223] %25.15e\n", ao_value[26][223]); +printf(" ao_value ao_value[26][224] %25.15e\n", ao_value[26][224]); +printf("\n"); + +assert( fabs(ao_value[26][219] - ( 1.020298798341620e-08)) < 1.e-14 ); +assert( fabs(ao_value[26][220] - ( 1.516643537739178e-08)) < 1.e-14 ); +assert( fabs(ao_value[26][221] - ( -4.686370882518819e-09)) < 1.e-14 ); +assert( fabs(ao_value[26][222] - ( 7.514816980753531e-09)) < 1.e-14 ); +assert( fabs(ao_value[26][223] - ( -4.021908374204471e-09)) < 1.e-14 ); +assert( fabs(ao_value[26][224] - ( 7.175045873560788e-10)) < 1.e-14 ); + +} + + #+end_src + +** Value, gradients, Laplacian :PROPERTIES: :Name: qmckl_compute_ao_vgl :CRetType: qmckl_exit_code :FRetType: qmckl_exit_code :END: +*** Unoptimized version + #+NAME: qmckl_ao_vgl_args_doc + | Variable | Type | In/Out | Description | + |-----------------------+-----------------------------------+--------+----------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~ao_num~ | ~int64_t~ | in | Number of AOs | + | ~shell_num~ | ~int64_t~ | in | Number of shells | + | ~point_num~ | ~int64_t~ | in | Number of points | + | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | + | ~coord~ | ~double[3][point_num]~ | in | Coordinates | + | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | + | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | + | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells per nucleus | + | ~nucleus_range~ | ~double[nucl_num]~ | in | Range beyond which all is zero | + | ~nucleus_max_ang_mom~ | ~int32_t[nucl_num]~ | in | Maximum angular momentum per nucleus | + | ~shell_ang_mom~ | ~int32_t[shell_num]~ | in | Angular momentum of each shell | + | ~ao_factor~ | ~double[ao_num]~ | in | Normalization factor of the AOs | + | ~shell_vgl~ | ~double[point_num][5][shell_num]~ | in | Value, gradients and Laplacian of the shells | + | ~ao_vgl~ | ~double[point_num][5][ao_num]~ | out | Value, gradients and Laplacian of the AOs | -** Unoptimized version - #+NAME: qmckl_ao_vgl_args_doc - | Variable | Type | In/Out | Description | - |-----------------------+-----------------------------------+--------+----------------------------------------------| - | ~context~ | ~qmckl_context~ | in | Global state | - | ~ao_num~ | ~int64_t~ | in | Number of AOs | - | ~shell_num~ | ~int64_t~ | in | Number of shells | - | ~point_num~ | ~int64_t~ | in | Number of points | - | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | - | ~coord~ | ~double[3][point_num]~ | in | Coordinates | - | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | - | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | - | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells per nucleus | - | ~nucleus_range~ | ~double[nucl_num]~ | in | Range beyond which all is zero | - | ~nucleus_max_ang_mom~ | ~int32_t[nucl_num]~ | in | Maximum angular momentum per nucleus | - | ~shell_ang_mom~ | ~int32_t[shell_num]~ | in | Angular momentum of each shell | - | ~ao_factor~ | ~double[ao_num]~ | in | Normalization factor of the AOs | - | ~shell_vgl~ | ~double[point_num][5][shell_num]~ | in | Value, gradients and Laplacian of the shells | - | ~ao_vgl~ | ~double[point_num][5][ao_num]~ | out | Value, gradients and Laplacian of the AOs | - - #+begin_src f90 :comments org :tangle (eval f) :noweb yes + #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_ao_vgl_doc_f(context, & ao_num, shell_num, point_num, nucl_num, & coord, nucl_coord, nucleus_index, nucleus_shell_num, & @@ -5443,34 +6321,34 @@ integer function qmckl_compute_ao_vgl_doc_f(context, & deallocate(poly_vgl, powers) end function qmckl_compute_ao_vgl_doc_f - #+end_src + #+end_src -** HPC version - #+NAME: qmckl_ao_vgl_args_hpc_gaussian - | Variable | Type | In/Out | Description | - |-----------------------+--------------------------------+--------+----------------------------------------------| - | ~context~ | ~qmckl_context~ | in | Global state | - | ~ao_num~ | ~int64_t~ | in | Number of AOs | - | ~shell_num~ | ~int64_t~ | in | Number of shells | - | ~prim_num~ | ~int64_t~ | in | Number of primitives | - | ~point_num~ | ~int64_t~ | in | Number of points | - | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | - | ~coord~ | ~double[3][point_num]~ | in | Coordinates | - | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | - | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | - | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells per nucleus | - | ~nucleus_range~ | ~double[nucl_num]~ | in | Range beyond which all is zero | - | ~nucleus_max_ang_mom~ | ~int32_t[nucl_num]~ | in | Maximum angular momentum per nucleus | - | ~shell_ang_mom~ | ~int32_t[shell_num]~ | in | Angular momentum of each shell | - | ~shell_prim_index~ | ~int64_t[shell_num]~ | in | Index of the 1st primitive of each shell | - | ~shell_prim_num~ | ~int64_t[shell_num]~ | in | Number of primitives per shell | - | ~ao_factor~ | ~double[ao_num]~ | in | Normalization factor of the AOs | - | ~ao_expo~ | ~double[prim_num]~ | in | Value, gradients and Laplacian of the shells | - | ~coef_normalized~ | ~double[prim_num]~ | in | Value, gradients and Laplacian of the shells | - | ~ao_vgl~ | ~double[point_num][5][ao_num]~ | out | Value, gradients and Laplacian of the AOs | +*** HPC version + #+NAME: qmckl_ao_vgl_args_hpc_gaussian + | Variable | Type | In/Out | Description | + |-----------------------+--------------------------------+--------+----------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~ao_num~ | ~int64_t~ | in | Number of AOs | + | ~shell_num~ | ~int64_t~ | in | Number of shells | + | ~prim_num~ | ~int64_t~ | in | Number of primitives | + | ~point_num~ | ~int64_t~ | in | Number of points | + | ~nucl_num~ | ~int64_t~ | in | Number of nuclei | + | ~coord~ | ~double[3][point_num]~ | in | Coordinates | + | ~nucl_coord~ | ~double[3][nucl_num]~ | in | Nuclear coordinates | + | ~nucleus_index~ | ~int64_t[nucl_num]~ | in | Index of the 1st shell of each nucleus | + | ~nucleus_shell_num~ | ~int64_t[nucl_num]~ | in | Number of shells per nucleus | + | ~nucleus_range~ | ~double[nucl_num]~ | in | Range beyond which all is zero | + | ~nucleus_max_ang_mom~ | ~int32_t[nucl_num]~ | in | Maximum angular momentum per nucleus | + | ~shell_ang_mom~ | ~int32_t[shell_num]~ | in | Angular momentum of each shell | + | ~shell_prim_index~ | ~int64_t[shell_num]~ | in | Index of the 1st primitive of each shell | + | ~shell_prim_num~ | ~int64_t[shell_num]~ | in | Number of primitives per shell | + | ~ao_factor~ | ~double[ao_num]~ | in | Normalization factor of the AOs | + | ~ao_expo~ | ~double[prim_num]~ | in | Value, gradients and Laplacian of the shells | + | ~coef_normalized~ | ~double[prim_num]~ | in | Value, gradients and Laplacian of the shells | + | ~ao_vgl~ | ~double[point_num][5][ao_num]~ | out | Value, gradients and Laplacian of the AOs | - #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none #ifdef HAVE_HPC qmckl_exit_code qmckl_compute_ao_vgl_hpc_gaussian ( @@ -5784,14 +6662,13 @@ qmckl_compute_ao_vgl_hpc_gaussian ( return QMCKL_SUCCESS; } #endif - #+end_src + #+end_src -** Interfaces -# #+CALL: generate_c_header(table=qmckl_ao_vgl_args_doc,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_vgl")) -# (Commented because the header needs to go into h_private_func) +*** Interfaces + # #+CALL: generate_c_header(table=qmckl_ao_vgl_args_doc,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_vgl")) + # (Commented because the header needs to go into h_private_func) - #+RESULTS: - #+begin_src c :tangle (eval h_private_func) :comments org + #+begin_src c :tangle (eval h_private_func) :comments org qmckl_exit_code qmckl_compute_ao_vgl_doc ( const qmckl_context context, const int64_t ao_num, @@ -5808,8 +6685,9 @@ qmckl_compute_ao_vgl_hpc_gaussian ( const double* ao_factor, const double* shell_vgl, double* const ao_vgl ); - #+end_src - #+begin_src c :tangle (eval h_private_func) :comments org + #+end_src + + #+begin_src c :tangle (eval h_private_func) :comments org #ifdef HAVE_HPC qmckl_exit_code qmckl_compute_ao_vgl_hpc_gaussian ( const qmckl_context context, @@ -5830,12 +6708,12 @@ qmckl_compute_ao_vgl_hpc_gaussian ( const qmckl_tensor coef_per_nucleus, double* const ao_vgl ); #endif - #+end_src + #+end_src - #+CALL: generate_c_interface(table=qmckl_ao_vgl_args_doc,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_vgl_doc")) + #+CALL: generate_c_interface(table=qmckl_ao_vgl_args_doc,rettyp=get_value("CRetType"),fname="qmckl_compute_ao_vgl_doc")) - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none + #+RESULTS: + #+begin_src f90 :tangle (eval f) :comments org :exports none integer(c_int32_t) function qmckl_compute_ao_vgl_doc & (context, & ao_num, & @@ -5892,16 +6770,15 @@ qmckl_compute_ao_vgl_hpc_gaussian ( ao_vgl) end function qmckl_compute_ao_vgl_doc - #+end_src + #+end_src +**** Provide :noexport: -*** Provide :noexport: - - #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_provide_ao_vgl(qmckl_context context); - #+end_src + #+end_src - #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none qmckl_exit_code qmckl_provide_ao_vgl(qmckl_context context) { @@ -6034,11 +6911,11 @@ qmckl_exit_code qmckl_provide_ao_vgl(qmckl_context context) return QMCKL_SUCCESS; } - #+end_src + #+end_src -*** Test :noexport: +**** Test :noexport: - #+begin_src python :results output :exports none + #+begin_src python :results output :exports none import numpy as np from math import sqrt @@ -6107,11 +6984,11 @@ print ( "[26][1][223] : %25.15e"%(norm*df(a,x,y,1)* (x[1] - y[1]) * (x[2] - y[2] print ( "[26][0][224] : %25.15e"%(f(a,x,y) * (x[2] - y[2]) * (x[2] - y[2])) ) print ( "[26][1][224] : %25.15e"%(df(a,x,y,1)* (x[2] - y[2]) * (x[2] - y[2])) ) - #+end_src + #+end_src - #+RESULTS: + #+RESULTS: - #+begin_src c :tangle (eval c_test) :exports none + #+begin_src c :tangle (eval c_test) :exports none { #define walk_num 1 // chbrclf_walk_num #define elec_num chbrclf_elec_num @@ -6206,7 +7083,7 @@ assert( fabs(ao_vgl[26][4][224] - ( 3.153244195820293e-08)) < 1.e-14 ); } - #+end_src + #+end_src * End of files :noexport: diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index ac7fdb9..4a148c6 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -92,10 +92,12 @@ int main() { Computed data: - |---------------+--------------------------+-------------------------------------------------------------------------------------| - | ~mo_vgl~ | ~[point_num][5][mo_num]~ | Value, gradients, Laplacian of the MOs at point positions | - | ~mo_vgl_date~ | ~uint64_t~ | Late modification date of Value, gradients, Laplacian of the MOs at point positions | - |---------------+--------------------------+-------------------------------------------------------------------------------------| + |-----------------+--------------------------+-------------------------------------------------------------------------------------| + | ~mo_value~ | ~[point_num][mo_num]~ | Value of the MOs at point positions | + | ~mo_value_date~ | ~uint64_t~ | Late modification date of the value of the MOs at point positions | + | ~mo_vgl~ | ~[point_num][5][mo_num]~ | Value, gradients, Laplacian of the MOs at point positions | + | ~mo_vgl_date~ | ~uint64_t~ | Late modification date of Value, gradients, Laplacian of the MOs at point positions | + |-----------------+--------------------------+-------------------------------------------------------------------------------------| ** Data structure @@ -106,7 +108,9 @@ typedef struct qmckl_mo_basis_struct { double * restrict coefficient_t; double * restrict mo_vgl; + double * restrict mo_value; uint64_t mo_vgl_date; + uint64_t mo_value_date; int32_t uninitialized; bool provided; @@ -418,7 +422,464 @@ qmckl_exit_code qmckl_finalize_mo_basis(qmckl_context context) { * Computation -** Computation of MOs +** Computation of MOs: values only + +*** Get + + #+begin_src c :comments org :tangle (eval h_func) :noweb yes +qmckl_exit_code +qmckl_get_mo_basis_mo_value(qmckl_context context, + double* const mo_value, + const int64_t size_max); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none +qmckl_exit_code +qmckl_get_mo_basis_mo_value(qmckl_context context, + double* const mo_value, + const int64_t size_max) +{ + + if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { + return QMCKL_NULL_CONTEXT; + } + + qmckl_exit_code rc; + + rc = qmckl_provide_ao_value(context); + if (rc != QMCKL_SUCCESS) return rc; + + rc = qmckl_provide_mo_value(context); + if (rc != QMCKL_SUCCESS) return rc; + + qmckl_context_struct* const ctx = (qmckl_context_struct*) context; + assert (ctx != NULL); + + const int64_t sze = ctx->point.num * ctx->mo_basis.mo_num; + if (size_max < sze) { + return qmckl_failwith( context, + QMCKL_INVALID_ARG_3, + "qmckl_get_mo_basis_mo_value", + "input array too small"); + } + memcpy(mo_value, ctx->mo_basis.mo_value, sze * sizeof(double)); + + return QMCKL_SUCCESS; +} + #+end_src + + #+begin_src f90 :tangle (eval fh_func) :comments org :exports none + interface + integer(c_int32_t) function qmckl_get_mo_basis_mo_value (context, & + mo_value, size_max) bind(C) + use, intrinsic :: iso_c_binding + import + implicit none + + integer (c_int64_t) , intent(in) , value :: context + double precision, intent(out) :: mo_value(*) + integer (c_int64_t) , intent(in) , value :: size_max + end function qmckl_get_mo_basis_mo_value + end interface + #+end_src + + Uses the given array to compute the values. + + #+begin_src c :comments org :tangle (eval h_func) :noweb yes +qmckl_exit_code +qmckl_get_mo_basis_mo_value_inplace (qmckl_context context, + double* const mo_value, + const int64_t size_max); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none +qmckl_exit_code +qmckl_get_mo_basis_mo_value_inplace (qmckl_context context, + double* const mo_value, + const int64_t size_max) +{ + + if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { + return qmckl_failwith( context, + QMCKL_INVALID_CONTEXT, + "qmckl_get_mo_basis_mo_value", + NULL); + } + + qmckl_exit_code rc; + + qmckl_context_struct* const ctx = (qmckl_context_struct*) context; + assert (ctx != NULL); + + const int64_t sze = ctx->mo_basis.mo_num * ctx->point.num; + if (size_max < sze) { + return qmckl_failwith( context, + QMCKL_INVALID_ARG_3, + "qmckl_get_mo_basis_mo_value", + "input array too small"); + } + + rc = qmckl_context_touch(context); + if (rc != QMCKL_SUCCESS) return rc; + + double* old_array = ctx->mo_basis.mo_value; + + ctx->mo_basis.mo_value = mo_value; + + rc = qmckl_provide_mo_value(context); + if (rc != QMCKL_SUCCESS) return rc; + + ctx->mo_basis.mo_value = old_array; + + return QMCKL_SUCCESS; +} + #+end_src + + #+begin_src f90 :tangle (eval fh_func) :comments org :exports none + interface + integer(c_int32_t) function qmckl_get_mo_basis_mo_value_inplace (context, & + mo_value, size_max) bind(C) + use, intrinsic :: iso_c_binding + import + implicit none + integer (c_int64_t) , intent(in) , value :: context + double precision, intent(out) :: mo_value(*) + integer (c_int64_t) , intent(in) , value :: size_max + end function qmckl_get_mo_basis_mo_value_inplace + end interface + #+end_src + +*** Provide + + #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none +qmckl_exit_code qmckl_provide_mo_value(qmckl_context context); + #+end_src + + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none +qmckl_exit_code qmckl_provide_mo_value(qmckl_context context) +{ + + qmckl_exit_code rc; + if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { + return QMCKL_NULL_CONTEXT; + } + + qmckl_context_struct* const ctx = (qmckl_context_struct*) context; + assert (ctx != NULL); + + if (!ctx->ao_basis.provided) { + return qmckl_failwith( context, + QMCKL_NOT_PROVIDED, + "qmckl_ao_basis", + NULL); + } + + rc = qmckl_provide_ao_value(context); + if (rc != QMCKL_SUCCESS) { + return qmckl_failwith( context, + QMCKL_NOT_PROVIDED, + "qmckl_ao_value", + NULL); + } + + if (!ctx->mo_basis.provided) { + return qmckl_failwith( context, + QMCKL_NOT_PROVIDED, + "qmckl_mo_basis", + NULL); + } + + /* Compute if necessary */ + if (ctx->point.date > ctx->mo_basis.mo_value_date) { + + /* Allocate array */ + if (ctx->mo_basis.mo_value == NULL) { + + qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; + mem_info.size = ctx->point.num * ctx->mo_basis.mo_num * sizeof(double); + double* mo_value = (double*) qmckl_malloc(context, mem_info); + + if (mo_value == NULL) { + return qmckl_failwith( context, + QMCKL_ALLOCATION_FAILED, + "qmckl_mo_basis_mo_value", + NULL); + } + ctx->mo_basis.mo_value = mo_value; + } + + if (ctx->mo_basis.mo_vgl_date == ctx->point.date) { + + // mo_vgl has been computed at this step: Just copy the data. + + double * v = &(ctx->mo_basis.mo_value[0]); + double * vgl = &(ctx->mo_basis.mo_vgl[0]); + for (int i=0 ; ipoint.num ; ++i) { + for (int k=0 ; kmo_basis.mo_num ; ++k) { + v[k] = vgl[k]; + } + v += ctx->mo_basis.mo_num; + vgl += ctx->mo_basis.mo_num * 5; + } + + } else { + + rc = qmckl_compute_mo_basis_mo_value(context, + ctx->ao_basis.ao_num, + ctx->mo_basis.mo_num, + ctx->point.num, + ctx->mo_basis.coefficient_t, + ctx->ao_basis.ao_value, + ctx->mo_basis.mo_value); + + if (rc != QMCKL_SUCCESS) { + return rc; + } + + } + + ctx->mo_basis.mo_value_date = ctx->date; + } + + return QMCKL_SUCCESS; +} + #+end_src + +*** Compute + :PROPERTIES: + :Name: qmckl_compute_mo_basis_mo_value + :CRetType: qmckl_exit_code + :FRetType: qmckl_exit_code + :END: + + #+NAME: qmckl_mo_basis_mo_value_args + | Variable | Type | In/Out | Description | + |---------------------+-----------------------------+--------+-------------------------------------------------| + | ~context~ | ~qmckl_context~ | in | Global state | + | ~ao_num~ | ~int64_t~ | in | Number of AOs | + | ~mo_num~ | ~int64_t~ | in | Number of MOs | + | ~point_num~ | ~int64_t~ | in | Number of points | + | ~coef_normalized_t~ | ~double[mo_num][ao_num]~ | in | Transpose of the AO to MO transformation matrix | + | ~ao_value~ | ~double[point_num][ao_num]~ | in | Value of the AOs | + | ~mo_value~ | ~double[point_num][mo_num]~ | out | Value of the MOs | + + + The matrix of AO values is very sparse, so we use a sparse-dense + matrix multiplication instead of a dgemm, as exposed in + https://dx.doi.org/10.1007/978-3-642-38718-0_14. + + + + #+begin_src f90 :comments org :tangle (eval f) :noweb yes +integer function qmckl_compute_mo_basis_mo_value_doc_f(context, & + ao_num, mo_num, point_num, & + coef_normalized_t, ao_value, mo_value) & + result(info) + use qmckl + implicit none + integer(qmckl_context), intent(in) :: context + integer*8 , intent(in) :: ao_num, mo_num + integer*8 , intent(in) :: point_num + double precision , intent(in) :: ao_value(ao_num,point_num) + double precision , intent(in) :: coef_normalized_t(mo_num,ao_num) + double precision , intent(out) :: mo_value(mo_num,point_num) + integer*8 :: i,j,k + double precision :: c1, c2, c3, c4, c5 + + integer*8 :: LDA, LDB, LDC + + info = QMCKL_SUCCESS + if (.True.) then ! fast algorithm + do j=1,point_num + mo_value(:,j) = 0.d0 + do k=1,ao_num + if (ao_value(k,j) /= 0.d0) then + c1 = ao_value(k,j) + do i=1,mo_num + mo_value(i,j) = mo_value(i,j) + coef_normalized_t(i,k) * c1 + end do + end if + end do + end do + + else ! dgemm + + LDA = size(coef_normalized_t,1) + LDB = size(ao_value,1) + LDC = size(mo_value,1) + + info = qmckl_dgemm(context,'N', 'N', mo_num, point_num, ao_num, 1.d0, & + coef_normalized_t, LDA, ao_value, LDB, & + 0.d0, mo_value, LDC) + + end if + +end function qmckl_compute_mo_basis_mo_value_doc_f + #+end_src + + #+CALL: generate_c_header(table=qmckl_mo_basis_mo_value_args,rettyp=get_value("CRetType"),fname="qmckl_compute_mo_basis_mo_value")) + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_mo_basis_mo_value ( + const qmckl_context context, + const int64_t ao_num, + const int64_t mo_num, + const int64_t point_num, + const double* coef_normalized_t, + const double* ao_value, + double* const mo_value ); + #+end_src + + #+CALL: generate_c_header(table=qmckl_mo_basis_mo_value_args,rettyp=get_value("CRetType"),fname="qmckl_compute_mo_basis_mo_value_doc")) + + #+RESULTS: + #+begin_src c :tangle (eval h_func) :comments org + qmckl_exit_code qmckl_compute_mo_basis_mo_value_doc ( + const qmckl_context context, + const int64_t ao_num, + const int64_t mo_num, + const int64_t point_num, + const double* coef_normalized_t, + const double* ao_value, + double* const mo_value ); + #+end_src + + #+CALL: generate_c_interface(table=qmckl_mo_basis_mo_value_args,rettyp=get_value("CRetType"),fname="qmckl_compute_mo_basis_mo_value_doc")) + + #+RESULTS: + #+begin_src f90 :tangle (eval f) :comments org :exports none + integer(c_int32_t) function qmckl_compute_mo_basis_mo_value_doc & + (context, ao_num, mo_num, point_num, coef_normalized_t, ao_value, mo_value) & + bind(C) result(info) + + use, intrinsic :: iso_c_binding + implicit none + + integer (c_int64_t) , intent(in) , value :: context + integer (c_int64_t) , intent(in) , value :: ao_num + integer (c_int64_t) , intent(in) , value :: mo_num + integer (c_int64_t) , intent(in) , value :: point_num + real (c_double ) , intent(in) :: coef_normalized_t(ao_num,mo_num) + real (c_double ) , intent(in) :: ao_value(ao_num,point_num) + real (c_double ) , intent(out) :: mo_value(mo_num,point_num) + + integer(c_int32_t), external :: qmckl_compute_mo_basis_mo_value_doc_f + info = qmckl_compute_mo_basis_mo_value_doc_f & + (context, ao_num, mo_num, point_num, coef_normalized_t, ao_value, mo_value) + + end function qmckl_compute_mo_basis_mo_value_doc + #+end_src + + #+begin_src c :tangle (eval c) :comments org +qmckl_exit_code +qmckl_compute_mo_basis_mo_value (const qmckl_context context, + const int64_t ao_num, + const int64_t mo_num, + const int64_t point_num, + const double* coef_normalized_t, + const double* ao_value, + double* const mo_value ) +{ +#ifdef HAVE_HPC + return qmckl_compute_mo_basis_mo_value_hpc (context, ao_num, mo_num, point_num, coef_normalized_t, ao_value, mo_value); +#else + return qmckl_compute_mo_basis_mo_value_doc (context, ao_num, mo_num, point_num, coef_normalized_t, ao_value, mo_value); +#endif +} + #+end_src + +*** HPC version + + + #+begin_src c :tangle (eval h_func) :comments org +#ifdef HAVE_HPC +qmckl_exit_code +qmckl_compute_mo_basis_mo_value_hpc (const qmckl_context context, + const int64_t ao_num, + const int64_t mo_num, + const int64_t point_num, + const double* coef_normalized_t, + const double* ao_value, + double* const mo_value ); +#endif + #+end_src + + #+begin_src c :tangle (eval c) :comments org +#ifdef HAVE_HPC +qmckl_exit_code +qmckl_compute_mo_basis_mo_value_hpc (const qmckl_context context, + const int64_t ao_num, + const int64_t mo_num, + const int64_t point_num, + const double* restrict coef_normalized_t, + const double* restrict ao_value, + double* restrict const mo_value ) +{ + assert (context != QMCKL_NULL_CONTEXT); + +#ifdef HAVE_OPENMP + #pragma omp parallel for +#endif + for (int64_t ipoint=0 ; ipoint < point_num ; ++ipoint) { + double* restrict const vgl1 = &(mo_value[ipoint*mo_num]); + const double* restrict avgl1 = &(ao_value[ipoint*ao_num]); + + for (int64_t i=0 ; i Date: Fri, 20 May 2022 19:22:56 +0200 Subject: [PATCH 101/111] Fix tests --- org/examples.org | 224 +++++++++++++++++++++++++++---------- org/qmckl_local_energy.org | 2 +- 2 files changed, 167 insertions(+), 59 deletions(-) diff --git a/org/examples.org b/org/examples.org index 58dc366..c1002b2 100644 --- a/org/examples.org +++ b/org/examples.org @@ -3,17 +3,124 @@ #+INCLUDE: ../tools/lib.org In this section, we present examples of usage of QMCkl. -For simplicity, we assume that the wave function parameters are stores +For simplicity, we assume that the wave function parameters are stored in a [[https://github.com/TREX-CoE/trexio][TREXIO]] file. -* Checking errors +* Python - All QMCkl functions return an error code. A convenient way to handle - errors is to write an error-checking function that displays the - error in text format and exits the program. +** Check numerically that MOs are orthonormal - #+NAME: qmckl_check_error - #+begin_src f90 + In this example, we will compute the numerically the overlap + between the molecular orbitals: + + \[ + S_{ij} = \int \phi_i(\mathbf{r}) \phi_j(\mathbf{r}) + \text{d}\mathbf{r} \sim \sum_{k=1}^{N} \phi_i(\mathbf{r}_k) + \phi_j(\mathbf{r}_k) \delta \mathbf{r} + \] + + + #+begin_src python :session +import numpy as np +import qmckl + #+end_src + + #+RESULTS: + + + First, we create a context for the QMCkl calculation, and load the + wave function stored in =h2o_5z.h5= inside it: + + #+begin_src python :session +trexio_filename = "..//share/qmckl/test_data/h2o_5z.h5" + +context = qmckl.context_create() +qmckl.trexio_read(context, trexio_filename) + #+end_src + + #+RESULTS: + : None + + We now define the grid points as a regular grid around the + molecule. + + We fetch the nuclear coordinates from the context, + + #+begin_src python :session :results output +nucl_num = qmckl.get_nucleus_num(context) + +nucl_charge = qmckl.get_nucleus_charge(context, nucl_num) + +nucl_coord = qmckl.get_nucleus_coord(context, 'N', nucl_num*3) +nucl_coord = np.reshape(nucl_coord, (3, nucl_num)) + +for i in range(nucl_num): + print("%d %+f %+f %+f"%(int(nucl_charge[i]), + nucl_coord[i,0], + nucl_coord[i,1], + nucl_coord[i,2]) ) + #+end_src + + #+RESULTS: + : 8 +0.000000 +0.000000 +0.000000 + : 1 -1.430429 +0.000000 -1.107157 + : 1 +1.430429 +0.000000 -1.107157 + + and compute the coordinates of the grid points: + + #+begin_src python :session +nx = ( 40, 40, 40 ) +point_num = nx[0] * nx[1] * nx[2] + +rmin = np.array( list([ np.min(nucl_coord[:,a]) for a in range(3) ]) ) +rmax = np.array( list([ np.max(nucl_coord[:,a]) for a in range(3) ]) ) + +shift = np.array([5.,5.,5.]) + +linspace = [ None for i in range(3) ] +step = [ None for i in range(3) ] +for a in range(3): + linspace[a], step[a] = np.linspace(rmin[a]-shift[a], + rmax[a]+shift[a], + num=nx[a], + retstep=True) + +dr = step[0] * step[1] * step[2] +dr + #+end_src + + #+RESULTS: + : 0.024081249137090373 + + Now the grid is ready, we can create the list of grid points on + which the MOs will be evaluated, and transfer them to the QMCkl + context: + + #+begin_src python :session +point = [] +for x in linspace[0]: + for y in linspace[1]: + for z in linspace[2]: + point += [x, y, z] + +#point = np.array(point) +qmckl.set_point(context, 'N', point, len(point)/3) + #+end_src + + #+RESULTS: + + Then, will first evaluate all the MOs at the grid points, and then we will + compute the overlap between all the MOs. + +* Fortran +** Checking errors + + All QMCkl functions return an error code. A convenient way to handle + errors is to write an error-checking function that displays the + error in text format and exits the program. + + #+NAME: qmckl_check_error + #+begin_src f90 subroutine qmckl_check_error(rc, message) use qmckl implicit none @@ -27,28 +134,28 @@ subroutine qmckl_check_error(rc, message) call exit(rc) end if end subroutine qmckl_check_error - #+end_src + #+end_src -* Computing an atomic orbital on a grid - :PROPERTIES: - :header-args: :tangle ao_grid.f90 - :END: +** Computing an atomic orbital on a grid + :PROPERTIES: + :header-args: :tangle ao_grid.f90 + :END: - The following program, in Fortran, computes the values of an atomic - orbital on a regular 3-dimensional grid. The 100^3 grid points are - automatically defined, such that the molecule fits in a box with 5 - atomic units in the borders. + The following program, in Fortran, computes the values of an atomic + orbital on a regular 3-dimensional grid. The 100^3 grid points are + automatically defined, such that the molecule fits in a box with 5 + atomic units in the borders. - This program uses the ~qmckl_check_error~ function defined above. + This program uses the ~qmckl_check_error~ function defined above. - To use this program, run + To use this program, run - #+begin_src bash :tangle no + #+begin_src bash :tangle no $ ao_grid - #+end_src + #+end_src - #+begin_src f90 :noweb yes + #+begin_src f90 :noweb yes <> program ao_grid @@ -73,11 +180,11 @@ program ao_grid double precision :: rmin(3), rmax(3) double precision, allocatable :: points(:,:) double precision, allocatable :: ao_vgl(:,:,:) - #+end_src + #+end_src - Start by fetching the command-line arguments: + Start by fetching the command-line arguments: - #+begin_src f90 + #+begin_src f90 if (iargc() /= 3) then print *, 'Syntax: ao_grid ' call exit(-1) @@ -92,21 +199,21 @@ program ao_grid print *, 'Error: 0 < point_num < 300' call exit(-1) end if - #+end_src + #+end_src - Create the QMCkl context and initialize it with the wave function - present in the TREXIO file: + Create the QMCkl context and initialize it with the wave function + present in the TREXIO file: - #+begin_src f90 + #+begin_src f90 qmckl_ctx = qmckl_context_create() rc = qmckl_trexio_read(qmckl_ctx, trexio_filename, 1_8*len(trim(trexio_filename))) call qmckl_check_error(rc, 'Read TREXIO') - #+end_src + #+end_src - We need to check that ~ao_id~ is in the range, so we get the total - number of AOs from QMCkl: + We need to check that ~ao_id~ is in the range, so we get the total + number of AOs from QMCkl: - #+begin_src f90 + #+begin_src f90 rc = qmckl_get_ao_basis_ao_num(qmckl_ctx, ao_num) call qmckl_check_error(rc, 'Getting ao_num') @@ -114,24 +221,24 @@ program ao_grid print *, 'Error: 0 < ao_id < ', ao_num call exit(-1) end if - #+end_src + #+end_src - Now we will compute the limits of the box in which the molecule fits. - For that, we first need to ask QMCkl the coordinates of nuclei. + Now we will compute the limits of the box in which the molecule fits. + For that, we first need to ask QMCkl the coordinates of nuclei. - #+begin_src f90 + #+begin_src f90 rc = qmckl_get_nucleus_num(qmckl_ctx, nucl_num) call qmckl_check_error(rc, 'Get nucleus num') allocate( nucl_coord(3, nucl_num) ) rc = qmckl_get_nucleus_coord(qmckl_ctx, 'N', nucl_coord, 3_8*nucl_num) call qmckl_check_error(rc, 'Get nucleus coord') - #+end_src + #+end_src - We now compute the coordinates of opposite points of the box, and - the distance between points along the 3 directions: + We now compute the coordinates of opposite points of the box, and + the distance between points along the 3 directions: - #+begin_src f90 + #+begin_src f90 rmin(1) = minval( nucl_coord(1,:) ) - 5.d0 rmin(2) = minval( nucl_coord(2,:) ) - 5.d0 rmin(3) = minval( nucl_coord(3,:) ) - 5.d0 @@ -141,12 +248,12 @@ program ao_grid rmax(3) = maxval( nucl_coord(3,:) ) + 5.d0 dr(1:3) = (rmax(1:3) - rmin(1:3)) / dble(point_num_x-1) - #+end_src + #+end_src - We now produce the list of point coordinates where the AO will be - evaluated: + We now produce the list of point coordinates where the AO will be + evaluated: - #+begin_src f90 + #+begin_src f90 point_num = point_num_x**3 allocate( points(point_num, 3) ) ipoint=0 @@ -166,34 +273,35 @@ program ao_grid end do z = z + dr(3) end do - #+end_src + #+end_src - We give the points to QMCkl: + We give the points to QMCkl: - #+begin_src f90 + #+begin_src f90 rc = qmckl_set_point(qmckl_ctx, 'T', points, point_num) call qmckl_check_error(rc, 'Setting points') - #+end_src + #+end_src - We allocate the space required to retrieve the values, gradients and - Laplacian of all AOs, and ask to retrieve the values of the - AOs computed at the point positions. + We allocate the space required to retrieve the values, gradients and + Laplacian of all AOs, and ask to retrieve the values of the + AOs computed at the point positions. - #+begin_src f90 + #+begin_src f90 allocate( ao_vgl(ao_num, 5, point_num) ) rc = qmckl_get_ao_basis_ao_vgl(qmckl_ctx, ao_vgl, ao_num*5_8*point_num) call qmckl_check_error(rc, 'Setting points') - #+end_src + #+end_src - We finally print the value of the AO: + We finally print the value of the AO: - #+begin_src f90 + #+begin_src f90 do ipoint=1, point_num print '(3(F16.10,X),E20.10)', points(ipoint, 1:3), ao_vgl(ao_id,1,ipoint) end do - #+end_src + #+end_src - #+begin_src f90 + #+begin_src f90 deallocate( nucl_coord, points, ao_vgl ) end program ao_grid - #+end_src + #+end_src + diff --git a/org/qmckl_local_energy.org b/org/qmckl_local_energy.org index 1ee61e0..9dcc715 100644 --- a/org/qmckl_local_energy.org +++ b/org/qmckl_local_energy.org @@ -1289,7 +1289,7 @@ end function qmckl_compute_local_energy_f double local_energy[chbrclf_walk_num]; -rc = qmckl_get_local_energy(context, &(local_energy[0]), walk_num); +rc = qmckl_get_local_energy(context, &(local_energy[0]), chbrclf_walk_num); assert (rc == QMCKL_SUCCESS); #+end_src From ce1aeb324d45a745a4b5b7313741249b7197e363 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Fri, 20 May 2022 19:57:01 +0200 Subject: [PATCH 102/111] Change point API to make it consistent for Python --- org/examples.org | 6 +++--- org/qmckl_electron.org | 2 +- org/qmckl_point.org | 20 +++++++++++++++----- python/src/qmckl.i | 4 ++++ 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/org/examples.org b/org/examples.org index c1002b2..eef87b4 100644 --- a/org/examples.org +++ b/org/examples.org @@ -101,10 +101,10 @@ point = [] for x in linspace[0]: for y in linspace[1]: for z in linspace[2]: - point += [x, y, z] + point += [ [x, y, z] ] -#point = np.array(point) -qmckl.set_point(context, 'N', point, len(point)/3) +point = np.array(point) +qmckl.set_point(context, 'N', len(point), point) #+end_src #+RESULTS: diff --git a/org/qmckl_electron.org b/org/qmckl_electron.org index c0c0254..a4736cc 100644 --- a/org/qmckl_electron.org +++ b/org/qmckl_electron.org @@ -718,7 +718,7 @@ qmckl_set_electron_coord(qmckl_context context, ctx->electron.coord_old = ctx->electron.coord_new ; qmckl_exit_code rc; - rc = qmckl_set_point(context, transp, coord, size_max/3); + rc = qmckl_set_point(context, transp, size_max/3, coord, size_max); assert (rc == QMCKL_SUCCESS); ctx->electron.coord_new = ctx->point.coord ; diff --git a/org/qmckl_point.org b/org/qmckl_point.org index 74a1e6a..306502f 100644 --- a/org/qmckl_point.org +++ b/org/qmckl_point.org @@ -263,8 +263,9 @@ end interface #+begin_src c :comments org :tangle (eval h_func) qmckl_exit_code qmckl_set_point (qmckl_context context, const char transp, + const int64_t num, const double* coord, - const int64_t num); + const int64_t size_max); #+end_src Copy a sequence of ~num~ points $(x,y,z)$ into the context. @@ -273,14 +274,22 @@ qmckl_exit_code qmckl_set_point (qmckl_context context, qmckl_exit_code qmckl_set_point (qmckl_context context, const char transp, + const int64_t num, const double* coord, - const int64_t num) + const int64_t size_max) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return QMCKL_NULL_CONTEXT; } + if (size_max < 3*num) { + return qmckl_failwith( context, + QMCKL_INVALID_ARG_4, + "qmckl_set_point", + "Array too small"); + } + if (transp != 'N' && transp != 'T') { return qmckl_failwith( context, QMCKL_INVALID_ARG_2, @@ -349,7 +358,7 @@ qmckl_set_point (qmckl_context context, #+begin_src f90 :comments org :tangle (eval fh_func) :noweb yes interface integer(c_int32_t) function qmckl_set_point(context, & - transp, coord, num) bind(C) + transp, num, coord, size_max) bind(C) use, intrinsic :: iso_c_binding import implicit none @@ -358,6 +367,7 @@ interface character(c_char) , intent(in) , value :: transp real (c_double ) , intent(in) :: coord(*) integer (c_int64_t) , intent(in) , value :: num + integer (c_int64_t) , intent(in) , value :: size_max end function end interface #+end_src @@ -380,7 +390,7 @@ double coord3[point_num*3]; rc = qmckl_get_point (context, 'N', coord2, (point_num*3)); assert(rc == QMCKL_NOT_PROVIDED); -rc = qmckl_set_point (context, 'N', coord, point_num); +rc = qmckl_set_point (context, 'N', point_num, coord, (point_num*3)); assert(rc == QMCKL_SUCCESS); int64_t n; @@ -404,7 +414,7 @@ for (int64_t i=0 ; i Date: Fri, 20 May 2022 23:20:06 +0200 Subject: [PATCH 103/111] Added Python example. --- org/examples.org | 101 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 24 deletions(-) diff --git a/org/examples.org b/org/examples.org index eef87b4..8650c40 100644 --- a/org/examples.org +++ b/org/examples.org @@ -7,16 +7,20 @@ For simplicity, we assume that the wave function parameters are stored in a [[https://github.com/TREX-CoE/trexio][TREXIO]] file. * Python - ** Check numerically that MOs are orthonormal - In this example, we will compute the numerically the overlap + In this example, we will compute numerically the overlap between the molecular orbitals: \[ S_{ij} = \int \phi_i(\mathbf{r}) \phi_j(\mathbf{r}) \text{d}\mathbf{r} \sim \sum_{k=1}^{N} \phi_i(\mathbf{r}_k) - \phi_j(\mathbf{r}_k) \delta \mathbf{r} + \phi_j(\mathbf{r}_k) \delta \mathbf{r} + \] + \[ + S_{ij} = \langle \phi_i | \phi_j \rangle + \sim \sum_{k=1}^{N} \langle \phi_i | \mathbf{r}_k \rangle + \langle \mathbf{r}_k | \phi_j \rangle \] @@ -27,9 +31,9 @@ import qmckl #+RESULTS: - First, we create a context for the QMCkl calculation, and load the - wave function stored in =h2o_5z.h5= inside it: + wave function stored in =h2o_5z.h5= inside it. It is a Hartree-Fock + determinant for the water molecule in the cc-pV5Z basis set. #+begin_src python :session trexio_filename = "..//share/qmckl/test_data/h2o_5z.h5" @@ -41,12 +45,12 @@ qmckl.trexio_read(context, trexio_filename) #+RESULTS: : None - We now define the grid points as a regular grid around the + We now define the grid points $\mathbf{r}_k$ as a regular grid around the molecule. We fetch the nuclear coordinates from the context, - #+begin_src python :session :results output + #+begin_src python :session :results output :export both nucl_num = qmckl.get_nucleus_num(context) nucl_charge = qmckl.get_nucleus_charge(context, nucl_num) @@ -61,21 +65,22 @@ for i in range(nucl_num): nucl_coord[i,2]) ) #+end_src - #+RESULTS: - : 8 +0.000000 +0.000000 +0.000000 - : 1 -1.430429 +0.000000 -1.107157 - : 1 +1.430429 +0.000000 -1.107157 + #+begin_example +8 +0.000000 +0.000000 +0.000000 +1 -1.430429 +0.000000 -1.107157 +1 +1.430429 +0.000000 -1.107157 + #+end_example and compute the coordinates of the grid points: #+begin_src python :session -nx = ( 40, 40, 40 ) +nx = ( 120, 120, 120 ) +shift = np.array([5.,5.,5.]) point_num = nx[0] * nx[1] * nx[2] rmin = np.array( list([ np.min(nucl_coord[:,a]) for a in range(3) ]) ) rmax = np.array( list([ np.max(nucl_coord[:,a]) for a in range(3) ]) ) -shift = np.array([5.,5.,5.]) linspace = [ None for i in range(3) ] step = [ None for i in range(3) ] @@ -86,15 +91,13 @@ for a in range(3): retstep=True) dr = step[0] * step[1] * step[2] -dr #+end_src #+RESULTS: - : 0.024081249137090373 - Now the grid is ready, we can create the list of grid points on - which the MOs will be evaluated, and transfer them to the QMCkl - context: + Now the grid is ready, we can create the list of grid points + $\mathbf{r}_k$ on which the MOs $\phi_i$ will be evaluated, and + transfer them to the QMCkl context: #+begin_src python :session point = [] @@ -104,13 +107,63 @@ for x in linspace[0]: point += [ [x, y, z] ] point = np.array(point) -qmckl.set_point(context, 'N', len(point), point) +point_num = len(point) +qmckl.set_point(context, 'N', point_num, np.reshape(point, (point_num*3))) #+end_src #+RESULTS: + : None - Then, will first evaluate all the MOs at the grid points, and then we will - compute the overlap between all the MOs. + Then, we evaluate all the MOs at the grid points (and time the execution), + and thus obtain the matrix $M_{ki} = \langle \mathbf{r}_k | \phi_i \rangle = + \phi_i(\mathbf{r}_k)$. + + #+begin_src python :session :results output :export both +import time + +mo_num = qmckl.get_mo_basis_mo_num(context) + +before = time.time() +mo_value = qmckl.get_mo_basis_mo_value(context, point_num*mo_num) +after = time.time() + +mo_value = np.reshape( mo_value, (point_num, mo_num) ) + +print("Number of MOs: ", mo_num) +print("Number of grid points: ", point_num) +print("Execution time : ", (after - before), "seconds") + + #+end_src + + #+begin_example +Number of MOs: 201 +Number of grid points: 1728000 +Execution time : 3.511528968811035 seconds + #+end_example + + and finally we compute the overlap between all the MOs as + $M^\dagger M$. + + #+begin_src python :session :results output +overlap = mo_value.T @ mo_value * dr +print (overlap) + #+end_src + + #+begin_example + [[ 9.88693941e-01 2.34719693e-03 -1.50518232e-08 ... 3.12084178e-09 + -5.81064929e-10 3.70130091e-02] + [ 2.34719693e-03 9.99509628e-01 3.18930040e-09 ... -2.46888958e-10 + -1.06064273e-09 -7.65567973e-03] + [-1.50518232e-08 3.18930040e-09 9.99995073e-01 ... -5.84882580e-06 + -1.21598117e-06 4.59036468e-08] + ... + [ 3.12084178e-09 -2.46888958e-10 -5.84882580e-06 ... 1.00019107e+00 + -2.03342837e-04 -1.36954855e-08] + [-5.81064929e-10 -1.06064273e-09 -1.21598117e-06 ... -2.03342837e-04 + 9.99262427e-01 1.18264754e-09] + [ 3.70130091e-02 -7.65567973e-03 4.59036468e-08 ... -1.36954855e-08 + 1.18264754e-09 8.97215950e-01]] + #+end_example * Fortran ** Checking errors @@ -278,7 +331,7 @@ program ao_grid We give the points to QMCkl: #+begin_src f90 - rc = qmckl_set_point(qmckl_ctx, 'T', points, point_num) + rc = qmckl_set_point(qmckl_ctx, 'T', point_num, points, size(points)*1_8 ) call qmckl_check_error(rc, 'Setting points') #+end_src @@ -292,11 +345,11 @@ program ao_grid call qmckl_check_error(rc, 'Setting points') #+end_src - We finally print the value of the AO: + We finally print the value and Laplacian of the AO: #+begin_src f90 do ipoint=1, point_num - print '(3(F16.10,X),E20.10)', points(ipoint, 1:3), ao_vgl(ao_id,1,ipoint) + print '(3(F10.6,X),2(E20.10,X))', points(ipoint, 1:3), ao_vgl(ao_id,1,ipoint), ao_vgl(ao_id,5,ipoint) end do #+end_src From 222574e9859e6fea3e6ccacbcbfc138bd8dbf8ed Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Fri, 3 Jun 2022 15:38:02 +0200 Subject: [PATCH 104/111] transa -> transb: Thanks to Axel Auweter ;-) --- org/qmckl_distance.org | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/org/qmckl_distance.org b/org/qmckl_distance.org index 6d3900e..2160ed7 100644 --- a/org/qmckl_distance.org +++ b/org/qmckl_distance.org @@ -133,7 +133,7 @@ integer function qmckl_distance_sq_f(context, transa, transb, m, n, & if (transb == 'N' .or. transb == 'n') then continue - else if (transa == 'T' .or. transa == 't') then + else if (transb == 'T' .or. transb == 't') then transab = transab + 2 else transab = -100 @@ -533,7 +533,7 @@ integer function qmckl_distance_f(context, transa, transb, m, n, & if (transb == 'N' .or. transb == 'n') then continue - else if (transa == 'T' .or. transa == 't') then + else if (transb == 'T' .or. transb == 't') then transab = transab + 2 else transab = -100 @@ -1314,7 +1314,7 @@ integer function qmckl_distance_rescaled_deriv_e_f(context, transa, transb, m, n if (transb == 'N' .or. transb == 'n') then continue - else if (transa == 'T' .or. transa == 't') then + else if (transb == 'T' .or. transb == 't') then transab = transab + 2 else transab = -100 From 2784e894d473cc96eeb8f4a8ea3253de993e6ce1 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Tue, 7 Jun 2022 15:55:48 +0200 Subject: [PATCH 105/111] python -> python3 --- autogen.sh | 2 +- org/qmckl_jastrow.org | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/autogen.sh b/autogen.sh index 588976a..018116f 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,5 +1,5 @@ #!/bin/bash export srcdir="." -python ${srcdir}/tools/build_makefile.py +python3 ${srcdir}/tools/build_makefile.py autoreconf -i -Wall --no-recursive diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index 3007181..5fe060a 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -141,7 +141,7 @@ int main() { | ~bord_num~ | ~int64_t~ | in | The number of b coeffecients | | ~cord_num~ | ~int64_t~ | in | The number of c coeffecients | | ~type_nucl_num~ | ~int64_t~ | in | Number of Nucleii types | - | ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | IDs of types of Nucleii | + | ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | IDs of types of Nuclei | | ~aord_vector~ | ~double[aord_num + 1][type_nucl_num]~ | in | Order of a polynomial coefficients | | ~bord_vector~ | ~double[bord_num + 1]~ | in | Order of b polynomial coefficients | | ~cord_vector~ | ~double[cord_num][type_nucl_num]~ | in | Order of c polynomial coefficients | From 07e1e44f0538ded21b98bc56469ebb08628e8bb5 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Sat, 11 Jun 2022 10:57:58 +0200 Subject: [PATCH 106/111] Include assembly in qmckl_ao --- org/qmckl_ao.org | 100 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 87 insertions(+), 13 deletions(-) diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index 4120690..b1734de 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -3034,7 +3034,7 @@ qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, double* const ao_vgl, const int64_t size_max); #+end_src - + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none qmckl_exit_code qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, @@ -3093,7 +3093,7 @@ qmckl_get_ao_basis_ao_vgl_inplace (qmckl_context context, #+end_src - + #+begin_src c :comments org :tangle (eval h_func) :noweb yes qmckl_exit_code qmckl_get_ao_basis_ao_value (qmckl_context context, @@ -3161,7 +3161,7 @@ qmckl_get_ao_basis_ao_value_inplace (qmckl_context context, double* const ao_value, const int64_t size_max); #+end_src - + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none qmckl_exit_code qmckl_get_ao_basis_ao_value_inplace (qmckl_context context, @@ -6521,20 +6521,94 @@ qmckl_compute_ao_vgl_hpc_gaussian ( exp_mat[iprim][4] = f * (3.0 - 2.0 * ar2[iprim]); } + +/* --- */ for (int i=0 ; i Date: Tue, 14 Jun 2022 22:30:33 +0200 Subject: [PATCH 107/111] Switch for asm in AOs --- org/qmckl_ao.org | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/org/qmckl_ao.org b/org/qmckl_ao.org index b1734de..1e10ccf 100644 --- a/org/qmckl_ao.org +++ b/org/qmckl_ao.org @@ -6521,8 +6521,25 @@ qmckl_compute_ao_vgl_hpc_gaussian ( exp_mat[iprim][4] = f * (3.0 - 2.0 * ar2[iprim]); } - + /* --- */ + switch (8) { + case(5): + + for (int i=0 ; i Date: Wed, 15 Jun 2022 11:11:11 +0200 Subject: [PATCH 108/111] [CI] Disable debugging on MacOS --- .github/workflows/test-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 4bfb193..c85a10e 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -121,7 +121,7 @@ jobs: run: | export PKG_CONFIG_PATH=${PWD}/trexio/_install/lib/pkgconfig:$PKG_CONFIG_PATH ./autogen.sh - ./configure CC=gcc-10 FC=gfortran-10 --enable-silent-rules --enable-debug + ./configure CC=gcc-10 FC=gfortran-10 --enable-silent-rules make -j 4 - name: Run test From d21adadcf2f9d86c8fdd1aca5e0b8dfccd67c696 Mon Sep 17 00:00:00 2001 From: Evgeny Posenitskiy <45995097+q-posev@users.noreply.github.com> Date: Wed, 15 Jun 2022 11:36:39 +0200 Subject: [PATCH 109/111] [CI] Disable the broker MacOS CI --- .github/workflows/test-build.yml | 114 +++++++++++++++---------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index c85a10e..16b32ce 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -76,60 +76,60 @@ jobs: run: make python-test working-directory: _build - x86_macos: - - runs-on: macos-latest - name: x86 MacOS latest - - steps: - - uses: actions/checkout@v2 - - name: install dependencies - run: brew install emacs hdf5 automake pkg-config - - - name: Symlink gfortran (macOS) - if: runner.os == 'macOS' - run: | - # make sure gfortran is available - # https://github.com/actions/virtual-environments/issues/2524 - # https://github.com/cbg-ethz/dce/blob/master/.github/workflows/pkgdown.yaml - sudo ln -s /usr/local/bin/gfortran-10 /usr/local/bin/gfortran - sudo mkdir /usr/local/gfortran - sudo ln -s /usr/local/Cellar/gcc@10/*/lib/gcc/10 /usr/local/gfortran/lib - gfortran --version - - - name: Install the latest TREXIO from the GitHub clone - run: | - git clone https://github.com/TREX-CoE/trexio.git - cd trexio - ./autogen.sh - ./configure --prefix=${PWD}/_install --enable-silent-rules - make -j 4 - make install - - - name: Test TREXIO - run: make -j 4 check - working-directory: trexio - - - name: Archive TREXIO test log file - if: failure() - uses: actions/upload-artifact@v2 - with: - name: test-report-trexio-macos - path: trexio/test-suite.log - - - name: Build QMCkl - run: | - export PKG_CONFIG_PATH=${PWD}/trexio/_install/lib/pkgconfig:$PKG_CONFIG_PATH - ./autogen.sh - ./configure CC=gcc-10 FC=gfortran-10 --enable-silent-rules - make -j 4 - - - name: Run test - run: make -j 4 check - - - name: Archive test log file - if: failure() - uses: actions/upload-artifact@v2 - with: - name: test-report-macos - path: test-suite.log +# x86_macos: +# +# runs-on: macos-latest +# name: x86 MacOS latest +# +# steps: +# - uses: actions/checkout@v2 +# - name: install dependencies +# run: brew install emacs hdf5 automake pkg-config +# +# - name: Symlink gfortran (macOS) +# if: runner.os == 'macOS' +# run: | +# # make sure gfortran is available +# # https://github.com/actions/virtual-environments/issues/2524 +# # https://github.com/cbg-ethz/dce/blob/master/.github/workflows/pkgdown.yaml +# sudo ln -s /usr/local/bin/gfortran-10 /usr/local/bin/gfortran +# sudo mkdir /usr/local/gfortran +# sudo ln -s /usr/local/Cellar/gcc@10/*/lib/gcc/10 /usr/local/gfortran/lib +# gfortran --version +# +# - name: Install the latest TREXIO from the GitHub clone +# run: | +# git clone https://github.com/TREX-CoE/trexio.git +# cd trexio +# ./autogen.sh +# ./configure --prefix=${PWD}/_install --enable-silent-rules +# make -j 4 +# make install +# +# - name: Test TREXIO +# run: make -j 4 check +# working-directory: trexio +# +# - name: Archive TREXIO test log file +# if: failure() +# uses: actions/upload-artifact@v2 +# with: +# name: test-report-trexio-macos +# path: trexio/test-suite.log +# +# - name: Build QMCkl +# run: | +# export PKG_CONFIG_PATH=${PWD}/trexio/_install/lib/pkgconfig:$PKG_CONFIG_PATH +# ./autogen.sh +# ./configure CC=gcc-10 FC=gfortran-10 --enable-silent-rules +# make -j 4 +# +# - name: Run test +# run: make -j 4 check +# +# - name: Archive test log file +# if: failure() +# uses: actions/upload-artifact@v2 +# with: +# name: test-report-macos +# path: test-suite.log From b5423dca3db1eee9bca227d069458791cdfd68dd Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 15 Jun 2022 16:12:33 +0200 Subject: [PATCH 110/111] Add missing fortran line --- org/qmckl_mo.org | 1 + 1 file changed, 1 insertion(+) diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index 4a148c6..bdc6383 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -262,6 +262,7 @@ bool qmckl_mo_basis_provided(const qmckl_context context) { *** Fortran interfaces + #+begin_src f90 :tangle (eval fh_func) :comments org interface integer(c_int32_t) function qmckl_get_mo_basis_mo_num (context, & mo_num) bind(C) From 3b6a85d40467479dbf3543cf47d4e879615189ab Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 15 Jun 2022 16:20:12 +0200 Subject: [PATCH 111/111] Fix typo --- org/qmckl_mo.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org/qmckl_mo.org b/org/qmckl_mo.org index bdc6383..d44cee3 100644 --- a/org/qmckl_mo.org +++ b/org/qmckl_mo.org @@ -282,7 +282,7 @@ interface implicit none integer (c_int64_t) , intent(in) , value :: context double precision, intent(out) :: coefficient(*) - integer (c_int64_t) , intent(int), value :: size_max + integer (c_int64_t) , intent(in), value :: size_max end function qmckl_get_mo_basis_coefficient end interface