From e1d4584b50e301624d18ef6bb4c3138167eeae15 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 28 May 2024 12:41:23 +0300 Subject: [PATCH 1/2] Interface for report --- Poisson_Equation/files/Approximation.txt | 9 + Poisson_Equation/files/Correct.txt | 9 + Poisson_Equation/files/Error.txt | 2 + Poisson_Equation/files/Solver_results.txt | 3 + .../headers/Dirichlet_Problem.hpp | 148 ++++++- Poisson_Equation/headers/Solvers.hpp | 122 ++++-- Poisson_Equation/headers/tasks.hpp | 274 +++++++++++++ Poisson_Equation/src/Interface_table.py | 380 ++++++++++++++++++ Poisson_Equation/src/compile_lib.sh | 1 + Poisson_Equation/src/lib_dirichlet.so | Bin 0 -> 136416 bytes Poisson_Equation/src/main.cpp | 16 +- Poisson_Equation/src/test | Bin 0 -> 94896 bytes Poisson_Equation/src/test.cpp | 52 ++- Poisson_Equation/src/utility.cpp | 20 + 14 files changed, 978 insertions(+), 58 deletions(-) create mode 100644 Poisson_Equation/files/Approximation.txt create mode 100644 Poisson_Equation/files/Correct.txt create mode 100644 Poisson_Equation/files/Error.txt create mode 100644 Poisson_Equation/files/Solver_results.txt create mode 100644 Poisson_Equation/headers/tasks.hpp create mode 100755 Poisson_Equation/src/Interface_table.py create mode 100755 Poisson_Equation/src/compile_lib.sh create mode 100755 Poisson_Equation/src/lib_dirichlet.so create mode 100755 Poisson_Equation/src/test create mode 100644 Poisson_Equation/src/utility.cpp diff --git a/Poisson_Equation/files/Approximation.txt b/Poisson_Equation/files/Approximation.txt new file mode 100644 index 0000000..bb54f5b --- /dev/null +++ b/Poisson_Equation/files/Approximation.txt @@ -0,0 +1,9 @@ +0 0 0 0 1 0.939413 0.778801 0.569783 0.367879 +0 0 0 0 1.54883 1.45646 1.20662 0.881464 0.569783 +0 0 0 0 2.117 1.99457 1.65322 1.20725 0.778801 +0 0 0 0 2.55359 2.40979 1.99834 1.45896 0.939413 +1 1.54883 2.117 2.55359 2.71828 2.56791 2.12958 1.55444 1 +0.939413 1.45646 1.99457 2.40979 2.56791 2.41548 2.00068 1.45982 0.939413 +0.778801 1.20662 1.65322 1.99834 2.12958 2.00068 1.65603 1.20834 0.778801 +0.569783 0.881464 1.20725 1.45896 1.55444 1.45982 1.20834 0.882168 0.569783 +0.367879 0.569783 0.778801 0.939413 1 0.939413 0.778801 0.569783 0.367879 diff --git a/Poisson_Equation/files/Correct.txt b/Poisson_Equation/files/Correct.txt new file mode 100644 index 0000000..114d24f --- /dev/null +++ b/Poisson_Equation/files/Correct.txt @@ -0,0 +1,9 @@ +0 0 0 0 1 0.939413 0.778801 0.569783 0.367879 +0 0 0 0 1.54883 1.45499 1.20623 0.882497 0.569783 +0 0 0 0 2.117 1.98874 1.64872 1.20623 0.778801 +0 0 0 0 2.55359 2.39888 1.98874 1.45499 0.939413 +1 1.54883 2.117 2.55359 2.71828 2.55359 2.117 1.54883 1 +0.939413 1.45499 1.98874 2.39888 2.55359 2.39888 1.98874 1.45499 0.939413 +0.778801 1.20623 1.64872 1.98874 2.117 1.98874 1.64872 1.20623 0.778801 +0.569783 0.882497 1.20623 1.45499 1.54883 1.45499 1.20623 0.882497 0.569783 +0.367879 0.569783 0.778801 0.939413 1 0.939413 0.778801 0.569783 0.367879 diff --git a/Poisson_Equation/files/Error.txt b/Poisson_Equation/files/Error.txt new file mode 100644 index 0000000..07e7321 --- /dev/null +++ b/Poisson_Equation/files/Error.txt @@ -0,0 +1,2 @@ +Задача решена с погрешностью 0.0166082 +Максимальное отклонение точного и численного решений в точке x = 0.25, y = 0.5 diff --git a/Poisson_Equation/files/Solver_results.txt b/Poisson_Equation/files/Solver_results.txt new file mode 100644 index 0000000..ee4dd3d --- /dev/null +++ b/Poisson_Equation/files/Solver_results.txt @@ -0,0 +1,3 @@ +2.22045e-16 +2.13163e-14 +17 \ No newline at end of file diff --git a/Poisson_Equation/headers/Dirichlet_Problem.hpp b/Poisson_Equation/headers/Dirichlet_Problem.hpp index ef8be4b..a2187be 100644 --- a/Poisson_Equation/headers/Dirichlet_Problem.hpp +++ b/Poisson_Equation/headers/Dirichlet_Problem.hpp @@ -7,6 +7,7 @@ #include #include #include +#include using FP = double; @@ -53,6 +54,7 @@ namespace numcpp { using two_dim_function = std::function; size_t m, n; + size_t task_num; std::unique_ptr solver; std::array corners; // {x0, y0, xn, ym} @@ -105,6 +107,11 @@ namespace numcpp { this->mu5 = std::move(new_mu[4]); this->mu6 = std::move(new_mu[5]); } + + void set_task_num(size_t num) + { + this->task_num = num; + } }; @@ -210,23 +217,69 @@ std::vector> const DirichletProblemSolver::so solver->set_system_matrix(std::move(matrix)); solver->set_b(b); std::vector solution = solver->solve(); + std::vector> res(n + 1, std::vector(m + 1, 0)); + if(task_num == 0) + { + FP error = 0; + FP x_max = 0; + FP y_max = 0; - std::vector> res; - res.resize(m - 1); + for(size_t i = 0; i < m - 1; i++) + { + for(size_t j = 0; j < n - 1; j++) + { + FP y = corners[1] + (i + 1) * k; + FP x = corners[0] + (j + 1) * h; + FP dot_solution = solution[(n - 1) * i + j]; + FP dot_correct = u(x, y); + if(std::abs(dot_correct - dot_solution) > error) + { + error = std::abs(dot_correct - dot_solution); + x_max = x; + y_max = y; + } + } + } + std::ofstream fout_res("../files/Error.txt"); + fout_res << "Задача решена с погрешностью " << error << "\nМаксимальное отклонение точного и численного решений в точке x = " << x_max << ", y = " << y_max << '\n'; + fout_res.close(); + } + + + + FP start_x = corners[0]; + FP start_y = corners[1]; - FP approximation_error = 0; + for (size_t j = 0; j <= m; ++j) + { + res[0][j] = mu1(start_y + static_cast(j) * k); + } + for (size_t j = 0; j <= m; ++j) + { + res[n][j] = mu2(start_y + static_cast(j) * k); + } - for(size_t i = 0; i < m - 1; i++) - for(size_t j = 0; j < n - 1; j++) + + for (size_t i = 1; i <= n; ++i) + { + res[i][0] = mu3(start_x + static_cast(i) * h); + } + for (size_t i = 1; i <= n; ++i) + { + res[i][m] = mu4(start_x + static_cast(i) * h); + } + + size_t index = 0; + for (size_t j = 1; j < m; ++j) + { + for (size_t i = 1; i < n; ++i) { - FP y = corners[1] + (i + 1) * k; - FP x = corners[0] + (j + 1) * h; - FP dot_solution = solution[(n - 1) * i + j]; - approximation_error = std::max(std::abs(u(x, y) - dot_solution), approximation_error); - res[i].push_back(dot_solution); + res[i][j] = solution[index++]; } - - std::cout << "General error: " << approximation_error << '\n'; + } + + + return res; } @@ -501,15 +554,80 @@ std::vector> const DirichletProblemSolver::so solver->set_b(b); std::vector solution = solver->solve(); + FP x_max_err = 0.0; + FP y_max_err = 0.0; FP approximation_error = 0.0; for (size_t i = 0; i < sz; ++i) { - approximation_error = std::max(std::abs(solution[i] - real_sol[i]), approximation_error); + if (std::abs(solution[i] - real_sol[i]) > approximation_error) + { + approximation_error = std::abs(solution[i] - real_sol[i]); + if (i < (n / 2 - 1) * (m / 2)) + { + x_max_err = start_x + static_cast(n / 2 + 1 + i % (n / 2 - 1)) * h; + y_max_err = start_y + static_cast(1 + static_cast(i / (n / 2 - 1))) * k; + } + else + { + x_max_err = start_x + static_cast(1 + (i - (n / 2 - 1) * (m / 2)) % (n - 1)) * h; + y_max_err = start_y + static_cast(m / 2 + 1 + static_cast((i - (n / 2 - 1)) / (n - 1))) * k; + } + } } + + std::cout << "Node with maximum error: x = " << x_max_err << ", y = " << y_max_err << std::endl; std::cout << "General error: " << approximation_error << std::endl; + std::ofstream fout_res("../files/Error.txt"); + fout_res << "Задача решена с погрешностью " << approximation_error << "\nМаксимальное отклонение точного и численного решений в точке x = " << x_max_err << ", y = " << y_max_err << '\n'; + fout_res.close(); + + std::vector> res(n + 1, std::vector(m + 1, 0)); + + for (size_t j = m / 2; j <= m; ++j) + { + res[0][j] = mu1(start_y + static_cast(j) * k); + } + for (size_t j = 0; j <= m / 2; ++j) + { + res[n / 2][j] = mu2(start_y + static_cast(j) * k); + } + for (size_t j = 0; j <= m; ++j) + { + res[n][j] = mu3(start_y + static_cast(j) * k); + } + + for (size_t i = n / 2 + 1; i < n; ++i) + { + res[i][0] = mu4(start_x + static_cast(i) * h); + } + for (size_t i = 1; i < n / 2; ++i) + { + res[i][m / 2] = mu5(start_x + static_cast(i) * h); + } + for (size_t i = 1; i < n; ++i) + { + res[i][m] = mu6(start_x + static_cast(i) * h); + } + + size_t index = 0; + for (size_t j = 1; j <= m / 2; ++j) + { + for (size_t i = n / 2 + 1; i < n; ++i) + { + res[i][j] = solution[index++]; + } + } + for (size_t j = m / 2 + 1; j < m; ++j) + { + for (size_t i = 1; i < n; ++i) + { + res[i][j] = solution[index++]; + } + } + // Placeholder - return std::vector>(); + return res; } @@ -517,4 +635,4 @@ std::vector> const DirichletProblemSolver::so -#endif // __DIRICHLET_PROBLEM_HPP__ +#endif // __DIRICHLET_PROBLEM_HPP__ \ No newline at end of file diff --git a/Poisson_Equation/headers/Solvers.hpp b/Poisson_Equation/headers/Solvers.hpp index 161c33b..a58d52a 100644 --- a/Poisson_Equation/headers/Solvers.hpp +++ b/Poisson_Equation/headers/Solvers.hpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "./Dirichlet_Problem.hpp" @@ -60,6 +61,18 @@ namespace numcpp return norm; } + FP error(const std::vector& v1, const std::vector& v2) + { + FP error = 0.0; + +#pragma omp parallel for reduction(max: error) + for (size_t i = 0; i < v1.size(); ++i) + { + error = std::max(std::abs(v1[i] - v2[i]), error); + } + return error; + } + std::vector vector_FMA(const std::vector& lhs, FP coef, const std::vector& rhs) { const size_t size = lhs.size(); @@ -156,6 +169,7 @@ namespace numcpp system_matrix(std::move(system_matrix)), b(b) {} + public: virtual std::vector solve() const = 0; @@ -197,6 +211,7 @@ namespace numcpp // Minimal residual method class MinRes : public ISolver { + public: MinRes(std::vector initial_approximation, size_t max_iterations, FP required_precision, std::unique_ptr system_matrix, std::vector b) : ISolver(std::move(initial_approximation), max_iterations, required_precision, std::move(system_matrix), std::move(b)) {} @@ -207,20 +222,30 @@ namespace numcpp std::vector solve() const override { std::vector approximation = std::move(initial_approximation); + std::vector residual; + FP approximation_error, residual_norm; + size_t i = 0; - for (size_t i = 0; i < max_iterations; ++i) + for (; i < max_iterations; ++i) { - std::vector residual = (*system_matrix) * approximation - b; + std::vector saved_approximation = approximation; - FP residual_norm = norm(residual); - if (residual_norm <= required_precision) break; + residual = (*system_matrix) * approximation - b; std::vector Ar = (*system_matrix) * residual; FP tau = scalar_product(Ar, residual) / scalar_product(Ar, Ar); approximation = vector_FMA(residual, -tau, approximation); + + approximation_error = error(saved_approximation, approximation); + if (approximation_error <= required_precision) break; } + std::ofstream fout("../files/Solver_results.txt"); + fout << approximation_error << '\n' << norm(residual) << '\n' << i; + fout.close(); + + return approximation; } }; @@ -239,14 +264,14 @@ namespace numcpp { size_t size = initial_approximation.size(); std::vector approximation = std::move(initial_approximation); + size_t i = 0; + FP approximation_error = 0; + std::vector residual; //top relaxation main part - for (size_t i = 0; i < max_iterations; ++i) + for (; i < max_iterations; ++i) { - std::vector residual = (*system_matrix) * approximation - b; - - FP residual_norm = norm(residual); - if (residual_norm <= required_precision) break; + std::vector saved_approximation = approximation; for(size_t ii = 0; ii < size; ++ii) { @@ -262,10 +287,14 @@ namespace numcpp approx_new /= system_matrix->at(ii, ii); approximation[ii] = approx_new; } + approximation_error = error(saved_approximation, approximation); + if (approximation_error <= required_precision) break; } - std::vector residual = (*system_matrix) * approximation - b; - FP residual_norm = norm(residual); - std::cout << "погрешность решения СЛАУ " << residual_norm << std::endl; + residual = (*system_matrix) * approximation - b; + + std::ofstream fout("../files/Solver_results.txt"); + fout << approximation_error << '\n' << norm(residual) << '\n' << i; + fout.close(); return approximation; } @@ -284,6 +313,7 @@ namespace numcpp FP omega; size_t n, m; + public: TopRelaxationOptimizedForDirichletRegularGrid(std::vector initial_approximation, size_t max_iterations, FP required_precision, std::unique_ptr system_matrix, std::vector b, two_dim_function new_f, one_dim_function new_mu1, one_dim_function new_mu2, one_dim_function new_mu3, one_dim_function new_mu4, @@ -298,10 +328,8 @@ namespace numcpp { size_t size = initial_approximation.size(); std::vector approximation = std::move(initial_approximation); - - std::vector residual = (*system_matrix) * approximation - b; - FP residual_norm = norm(residual); - if (residual_norm <= required_precision) return approximation; + std::vector residual; + FP residual_norm; std::vector> approximation_matrix(n + 1, std::vector(m + 1)); FP h = (corners[2] - corners[0]) / n; @@ -347,19 +375,16 @@ namespace numcpp } if (residual_norm <= required_precision) break; } - if(ii == max_iterations) std::cout << "достигнуто максимальное количество шагов!\n"; - std::cout << "eps " << residual_norm << std::endl; - std::cout << "итераций " << ii << '\n'; - ind = 0; for(size_t i = 1; i < m; ++i) for(size_t j = 1; j < n; ++j) approximation[ind++] = approximation_matrix[j][i]; residual = (*system_matrix) * approximation - b; - residual_norm = norm(residual); - std::cout << "невязка " << residual_norm << '\n'; + std::ofstream fout("../files/Solver_results.txt"); + fout << residual_norm << '\n' << norm(residual) << '\n' << ii; + fout.close(); return approximation; } }; @@ -371,10 +396,10 @@ namespace numcpp private: FP Mmin; FP Mmax; - public: - ChebyshevIteration(std::vector initial_approximation, size_t max_iterations, FP required_precision, std::unique_ptr system_matrix, std::vector b) : - ISolver(std::move(initial_approximation), max_iterations, required_precision, std::move(system_matrix), std::move(b)) {} + public: + ChebyshevIteration(std::vector initial_approximation, size_t max_iterations, FP required_precision, std::unique_ptr system_matrix, std::vector b, FP min = 0, FP max = 0) : + ISolver(std::move(initial_approximation), max_iterations, required_precision, std::move(system_matrix), std::move(b)), Mmin(min), Mmax(max) {} ChebyshevIteration() = default; ~ChebyshevIteration() = default; @@ -387,27 +412,39 @@ namespace numcpp { std::vector approximation = std::move(initial_approximation); double size = (*system_matrix).size(); - //FP h = sqrt(1.0 / (*system_matrix).at(0, 1)); - //FP k = sqrt(1.0 / (*system_matrix).at(0, sqrt(size))); + FP approximation_error = 0; + size_t i = 0; FP k_cheb = 2.0; FP tau0 = 1.0 / ((Mmin + Mmax) / 2.0 + (Mmax - Mmin) / 2 * cos(PI / (2.0 * k_cheb) * (1.0 + 2.0 * 0.0))); FP tau1 = 1.0 / ((Mmin + Mmax) / 2.0 + (Mmax - Mmin) / 2 * cos(PI / (2.0 * k_cheb) * (1.0 + 2.0 * 1.0))); + std::cout<<"tau1 = "< saved_approximation = approximation; std::vector residual = (*system_matrix) * approximation - b; - FP residual_norm = norm(residual); - if (residual_norm <= required_precision) break; + // FP residual_norm = norm(residual); + // if (residual_norm <= required_precision) break; if (i % 2 == 0) - approximation = vector_FMA(residual, -tau0, approximation); + approximation = vector_FMA(residual, tau0, approximation); else - approximation = vector_FMA(residual, -tau1, approximation); + approximation = vector_FMA(residual, tau1, approximation); + + approximation_error = error(saved_approximation, approximation); + if (approximation_error <= required_precision) break; } + std::vector residual = (*system_matrix) * approximation - b; + + std::ofstream fout("../files/Solver_results.txt"); + fout << approximation_error << '\n' << norm(residual) << '\n' << i; + fout.close(); + return approximation; } }; @@ -416,6 +453,7 @@ namespace numcpp // Conjugate gradient method class ConGrad : public ISolver { + public: ConGrad(std::vector initial_approximation, size_t max_iterations, FP required_precision, std::unique_ptr system_matrix, std::vector b) : ISolver(std::move(initial_approximation), max_iterations, required_precision, std::move(system_matrix), std::move(b)) {} @@ -426,6 +464,7 @@ namespace numcpp std::vector solve() const override { std::vector approximation = std::move(initial_approximation); + FP approximation_error = 0; std::vector residual = (*system_matrix) * approximation - b; @@ -436,13 +475,15 @@ namespace numcpp FP alpha = -scalar_product(residual, h) / scalar_product(Ah, h); approximation = vector_FMA(h, alpha, approximation); + size_t i = 1; - for (size_t i = 1; i < max_iterations; ++i) + for (; i < max_iterations; ++i) { + std::vector saved_approximation = approximation; + residual = (*system_matrix) * approximation - b; - FP residual_norm = norm(residual); - if (residual_norm <= required_precision) break; + //FP residual_norm = norm(residual); FP beta = scalar_product(Ah, residual) / scalar_product(Ah, h); @@ -453,8 +494,17 @@ namespace numcpp alpha = -scalar_product(residual, h) / scalar_product(Ah, h); approximation = vector_FMA(h, alpha, approximation); + + approximation_error = error(saved_approximation, approximation); + if (approximation_error <= required_precision) break; } + residual = (*system_matrix) * approximation - b; + + std::ofstream fout("../files/Solver_results.txt"); + fout << approximation_error << '\n' << norm(residual) << '\n' << i; + fout.close(); + return approximation; } }; @@ -463,4 +513,4 @@ namespace numcpp } // namespace numcpp -#endif // __SOLVER_HPP__ +#endif // __SOLVER_HPP__ \ No newline at end of file diff --git a/Poisson_Equation/headers/tasks.hpp b/Poisson_Equation/headers/tasks.hpp new file mode 100644 index 0000000..e402909 --- /dev/null +++ b/Poisson_Equation/headers/tasks.hpp @@ -0,0 +1,274 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../headers/Dirichlet_Problem.hpp" +#include "../headers/Solvers.hpp" + +#define FP double + + +void test_task(size_t solver_num, size_t n, size_t m, size_t max_iterations, FP eps, FP omega){ + std::array corners = {-1.0, -1.0, 1.0, 1.0}; + std::vector init_app((n - 1) * (m - 1), 0.0); + + auto u = [](double x, double y) { return exp(1 - pow(x, 2) - pow(y, 2)); }; + auto f = [](double x, double y) { return -4 * exp(1 - pow(x, 2) - pow(y, 2)) * (pow(y, 2) + pow(x, 2) - 1); }; + + auto mu1 = [](double y) { return exp(-pow(y, 2)); }; + auto mu2 = [](double y) { return exp(-pow(y, 2)); }; + auto mu3 = [](double x) { return exp(-pow(x, 2)); }; + auto mu4 = [](double x) { return exp(-pow(x, 2)); }; + numcpp::DirichletProblemSolver dirichlet_task; + + dirichlet_task.set_fraction(m, n); + dirichlet_task.set_corners(corners); + dirichlet_task.set_u(u); + dirichlet_task.set_f(f); + dirichlet_task.set_task_num(0); + dirichlet_task.set_boundary_conditions({mu1, mu2, mu3, mu4}); + + FP h = (corners[2] - corners[0]) / n; + FP k = (corners[3] - corners[1]) / m; + FP Mmin = 4.0 / pow(h, 2) * pow(sin(numcpp::PI / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI / 2.0 / m), 2); + FP Mmax = 4.0 / pow(h, 2) * pow(sin(numcpp::PI * (n - 1) / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI * (m - 1) / 2.0 / m), 2); + + if(solver_num == 0) + dirichlet_task.set_solver(std::make_unique + (init_app, max_iterations, eps, nullptr, std::vector(), f, mu1, mu2, mu3, mu4, n, m, corners, omega)); + else if(solver_num == 1) + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector())); + else if (solver_num == 2) + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector(), Mmin, Mmax)); + else + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector())); + + auto start = std::chrono::high_resolution_clock::now(); + auto solution = dirichlet_task.solve(); + auto end = std::chrono::high_resolution_clock::now(); + + int64_t duration = std::chrono::duration_cast(end - start).count(); + std::cout << "Overall time: " << duration / 1000000 << "s\n"; + + std::ofstream fapp("../files/Approximation.txt"); + std::ofstream fcurr("../files/Correct.txt"); + for(size_t i = 0; i <= n; i++) + { + for(size_t j = 0; j <= m; j++) + { + FP x = corners[0] + i * h; + FP y = corners[1] + j* k; + fapp << solution[i][j] <<' '; + fcurr << u(x, y) << ' '; + } + fapp << '\n'; + fcurr << '\n'; + } + fapp.close(); + fcurr.close(); + + +} + + +void test_custom_task(size_t solver_num, size_t n, size_t m, size_t max_iterations, FP eps, FP omega){ + std::array corners = {-1.0, -1.0, 1.0, 1.0}; + size_t size = (n / 2 - 1) * (m - 1) + (n / 2) * (m / 2 - 1); + std::vector init_app(size, 0.0); + + auto u = [](double x, double y) { return exp(1 - pow(x, 2) - pow(y, 2)); }; + auto f = [](double x, double y) { return -4 * exp(1 - pow(x, 2) - pow(y, 2)) * (pow(y, 2) + pow(x, 2) - 1); }; + + auto mu1 = [](double y) { return exp(-pow(y, 2)); }; + auto mu2 = [](double y) { return exp(1.0 - pow(y, 2)); }; + auto mu3 = [](double y) { return exp(-pow(y, 2)); }; + auto mu4 = [](double x) { return exp(-pow(x, 2)); }; + auto mu5 = [](double x) { return exp(1.0 - pow(x, 2)); }; + auto mu6 = [](double x) { return exp(-pow(x, 2)); }; + + numcpp::DirichletProblemSolver dirichlet_task; + std::array, 6> arr{mu1, mu2, mu3, mu4, mu5, mu6}; + + dirichlet_task.set_fraction(m, n); + dirichlet_task.set_corners(corners); + dirichlet_task.set_u(u); + dirichlet_task.set_f(f); + dirichlet_task.set_boundary_conditions_for_r_shaped_grid(arr); + + FP h = (corners[2] - corners[0]) / n; + FP k = (corners[3] - corners[1]) / m; + + FP Mmin = 4.0 / pow(h, 2) * pow(sin(numcpp::PI / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI / 2.0 / m), 2); + FP Mmax = 4.0 / pow(h, 2) * pow(sin(numcpp::PI * (n - 1) / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI * (m - 1) / 2.0 / m), 2); + + if(solver_num == 0) + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector(), omega)); + else if(solver_num == 1) + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector())); + else if (solver_num == 2) + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector(), Mmin, Mmax)); + else + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector())); + + auto start = std::chrono::high_resolution_clock::now(); + auto solution = dirichlet_task.solve(); + auto end = std::chrono::high_resolution_clock::now(); + + int64_t duration = std::chrono::duration_cast(end - start).count(); + std::cout << "Overall time: " << duration / 1000000 << "s\n"; + + std::ofstream fapp("../files/Approximation.txt"); + std::ofstream fcurr("../files/Correct.txt"); + for(size_t i = 0; i <= n; i++) + { + for(size_t j = 0; j <= m; j++) + { + FP x = corners[0] + i * h; + FP y = corners[1] + j * k; + fapp << solution[i][j] <<' '; + if(i < n / 2 && j < m / 2) + fcurr << 0.0 << ' '; + else + fcurr << u(x, y) << ' '; + } + fapp << '\n'; + fcurr << '\n'; + } + fapp.close(); + fcurr.close(); +} + + +void main_task(size_t solver_num, size_t n, size_t m, size_t max_iterations, FP eps, FP omega){ + std::array corners = {-1.0, -1.0, 1.0, 1.0}; + std::vector init_app((n - 1) * (m - 1), 0.0); + + auto f = [](double x, double y) { return std::abs(pow(sin(numcpp::PI*x*y), 3)); }; + + auto mu1 = [](double y) { return -1*pow(y, 2)+1; }; + auto mu2 = [](double y) { return -1*pow(y, 2)+1; }; + auto mu3 = [](double x) { return -1*pow(x, 2)+1; }; + auto mu4 = [](double x) { return -1*pow(x, 2)+1; }; + numcpp::DirichletProblemSolver dirichlet_task; + + dirichlet_task.set_fraction(m, n); + dirichlet_task.set_corners(corners); + dirichlet_task.set_f(f); + dirichlet_task.set_task_num(1); + dirichlet_task.set_boundary_conditions({mu1, mu2, mu3, mu4}); + + FP h = (corners[2] - corners[0]) / n; + FP k = (corners[3] - corners[1]) / m; + FP Mmin = 4.0 / pow(h, 2) * pow(sin(numcpp::PI / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI / 2.0 / m), 2); + FP Mmax = 4.0 / pow(h, 2) * pow(sin(numcpp::PI * (n - 1) / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI * (m - 1) / 2.0 / m), 2); + + if(solver_num == 0) + dirichlet_task.set_solver(std::make_unique + (init_app, max_iterations, eps, nullptr, std::vector(), f, mu1, mu2, mu3, mu4, n, m, corners, omega)); + else if(solver_num == 1) + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector())); + else if (solver_num == 2) + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector(), Mmin, Mmax)); + else + dirichlet_task.set_solver(std::make_unique(init_app, max_iterations, eps, nullptr, std::vector())); + + auto start = std::chrono::high_resolution_clock::now(); + auto solution = dirichlet_task.solve(); + auto end = std::chrono::high_resolution_clock::now(); + + int64_t duration = std::chrono::duration_cast(end - start).count(); + std::cout << "Overall time first: " << duration / 1000000 << "s\n"; + + std::vector lines; + std::ifstream file("../files/Solver_results.txt"); + if (file.is_open()) + { + std::string line; + while (getline(file, line)) + lines.push_back(line); + file.close(); + } + + n *= 2; + m *= 2; + + std::vector init_app_2((n - 1) * (m - 1), 0.0); + numcpp::DirichletProblemSolver dirichlet_task_2; + + dirichlet_task_2.set_fraction(m, n); + dirichlet_task_2.set_corners(corners); + dirichlet_task_2.set_f(f); + dirichlet_task_2.set_task_num(1); + dirichlet_task_2.set_boundary_conditions({mu1, mu2, mu3, mu4}); + + h = (corners[2] - corners[0]) / n; + k = (corners[3] - corners[1]) / m; + Mmin = 4.0 / pow(h, 2) * pow(sin(numcpp::PI / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI / 2.0 / m), 2); + Mmax = 4.0 / pow(h, 2) * pow(sin(numcpp::PI * (n - 1) / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI * (m - 1) / 2.0 / m), 2); + + if(solver_num == 0) + dirichlet_task_2.set_solver(std::make_unique + (init_app_2, max_iterations, eps, nullptr, std::vector(), f, mu1, mu2, mu3, mu4, n, m, corners, omega)); + else if(solver_num == 1) + dirichlet_task_2.set_solver(std::make_unique(init_app_2, max_iterations, eps, nullptr, std::vector())); + else if (solver_num == 2) + dirichlet_task_2.set_solver(std::make_unique(init_app_2, max_iterations, eps, nullptr, std::vector(), Mmin, Mmax)); + else + dirichlet_task_2.set_solver(std::make_unique(init_app_2, max_iterations, eps, nullptr, std::vector())); + + auto start_2 = std::chrono::high_resolution_clock::now(); + auto solution_2 = dirichlet_task_2.solve(); + auto end_2 = std::chrono::high_resolution_clock::now(); + + auto duration_2 = std::chrono::duration_cast(end_2 - start_2).count(); + std::cout << "Overall time second: " << duration_2 / 1000000 << "s\n"; + + FP error = 0; + FP x_max = 0; + FP y_max = 0; + + n /= 2; + m /= 2; + + std::ofstream fapp("../files/Approximation.txt"); + std::ofstream fcurr("../files/Correct.txt"); + + for(size_t i = 0; i < m + 1; i++) + { + for(size_t j = 0; j < n + 1; j++) + { + FP y = corners[1] + i * k*2; + FP x = corners[0] + j * h*2; + FP dot_solution = solution[i][j]; + FP dot_correct = solution_2[i*2][j*2]; + if(std::abs(dot_correct - dot_solution) > error) + { + error = std::abs(dot_correct - dot_solution); + x_max = x; + y_max = y; + } + fapp << dot_solution <<' '; + fcurr << dot_correct << ' '; + } + fapp << '\n'; + fcurr << '\n'; + } + fapp.close(); + fcurr.close(); + + std::ofstream fout_res("../files/Error.txt"); + fout_res << "Задача решена с погрешностью " << error << "\nМаксимальное отклонение точного и численного решений в точке x = " << x_max << ", y = " << y_max << '\n'; + fout_res.close(); + std::cout << "Задача решена с погрешностью " << error << "\nМаксимальное отклонение точного и численного решений в точке x = " << x_max << ", y = " << y_max << '\n'; + + std::ofstream fout("../files/Solver_results.txt"); + fout << lines[0] << '\n' << lines[1] << '\n' << lines[2]; + fout.close(); +} diff --git a/Poisson_Equation/src/Interface_table.py b/Poisson_Equation/src/Interface_table.py new file mode 100755 index 0000000..121e480 --- /dev/null +++ b/Poisson_Equation/src/Interface_table.py @@ -0,0 +1,380 @@ +import ctypes +import sys +import numpy as np +from PyQt5 import QtWidgets +from PyQt5.QtWidgets import * +from PyQt5.QtCore import Qt + +lib = ctypes.CDLL('./lib_dirichlet.so') +lib.solve_test_task.argtypes = [ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_double, ctypes.c_double] +lib.solve_test_custom_task.argtypes = [ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_double, ctypes.c_double] +lib.solve_main_task.argtypes = [ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_double, ctypes.c_double] + +def test_task(solver_num:int, n: int, m:int, max_iterations:int, eps:float, omega:float): + lib.solve_test_task(solver_num, n, m, max_iterations, eps, omega) + +def test_custom_task(solver_num:int, n: int, m:int, max_iterations:int, eps:float, omega:float): + lib.solve_test_custom_task(solver_num, n, m, max_iterations, eps, omega) + +def main_task(solver_num:int, n: int, m:int, max_iterations:int, eps:float, omega:float): + lib.solve_main_task(solver_num, n, m, max_iterations, eps, omega) + + + +class Window(QMainWindow): + + def __init__(self): + super().__init__() + + self.setWindowTitle("Справка") + self.setGeometry(100, 100, 1000, 850) + + + #making tables + self.table1 = QTableWidget(self) + self.table1.setGeometry(360, 170, 630, 330) + self.table1.setColumnCount(0) + self.table1.setRowCount(0) + + self.table2 = QTableWidget(self) + self.table2.setGeometry(360, 510, 630, 330) + self.table2.setColumnCount(0) + self.table2.setRowCount(0) + + + + #list of methods + text1 = QtWidgets.QLabel(self) + text1.setText("Метод") + text1.setGeometry(85, 0, 100, 40) + self.combo_box = QComboBox(self) + self.combo_box.addItem("Метод верхней релаксации") + self.combo_box.addItem("Метод минимальных невязок") + self.combo_box.addItem("Метод Чебышёва") + self.combo_box.addItem("Метод сопряженных градиентов") + self.combo_box.setGeometry(10, 40, 210, 40) + + + text2 = QtWidgets.QLabel(self) + text2.setText("Задача") + text2.setGeometry(85, 120, 100, 40) + self.combo_box1 = QComboBox(self) + self.combo_box1.addItem("Тестовая для стандартной области") + self.combo_box1.addItem("Основная для стандартной области") + self.combo_box1.addItem("Тестовая для нестандартной области") + self.combo_box1.setGeometry(10, 165, 270, 35) + + + text_omega = QtWidgets.QLabel(self) + text_omega.setText("Омега (w) = ") + text_omega.setGeometry(10, 90, 80, 30) + self.omega = QLineEdit(self) + self.omega.setGeometry(90, 90, 50, 30) + self.omega.setText('1.0') + + set1 = QtWidgets.QLabel(self) + set1.setText("Δu(x, y) = ") + set1.setGeometry(10, 250, 80, 30) + self.f = QtWidgets.QLabel(self) + self.f.setGeometry(90, 250, 230, 30) + self.f.setStyleSheet('background-color: white;') + + set2 = QtWidgets.QLabel(self) + set2.setText(" при x ∈ ( -1, 1), y ∈ ( -1, 1);") + set2.setGeometry(10, 280, 200, 30) + + set3 = QtWidgets.QLabel(self) + set3.setText(" u ( -1, y) = ") + set3.setGeometry(10, 310, 80, 30) + self.mu1 = QtWidgets.QLabel(self) + self.mu1.setGeometry(90, 310, 80, 30) + self.mu1.setStyleSheet('background-color: white;') + + + set4 = QtWidgets.QLabel(self) + set4.setText(" u ( 1, y) = ") + set4.setGeometry(170, 310, 80, 30) + self.mu2 = QtWidgets.QLabel(self) + self.mu2.setGeometry(240, 310, 80, 30) + self.mu2.setStyleSheet('background-color: white;') + + + self.set5 = QtWidgets.QLabel(self) + self.set5.setText(" при y ∈ [ -1, 1]; при y ∈ [ -1, 1];") + self.set5.setGeometry(40, 340, 350, 30) + + + set6 = QtWidgets.QLabel(self) + set6.setText(" u ( x, -1) = ") + set6.setGeometry(10, 370, 80, 30) + self.mu3 = QtWidgets.QLabel(self) + self.mu3.setGeometry(90, 370, 80, 30) + self.mu3.setStyleSheet('background-color: white;') + + + set7 = QtWidgets.QLabel(self) + set7.setText(" u ( x, 1) = ") + set7.setGeometry(170, 370, 80, 30) + self.mu4 = QtWidgets.QLabel(self) + self.mu4.setGeometry(240, 370, 80, 30) + self.mu4.setStyleSheet('background-color: white;') + + + self.set8 = QtWidgets.QLabel(self) + self.set8.setText(" при x ∈ [ -1, 1]; при x ∈ [ -1, 1];") + self.set8.setGeometry(40, 400, 350, 30) + + set_line = QtWidgets.QLabel(self) + set_line.setText("__________________________________________________________________________") + set_line.setGeometry(30, 430, 300, 20) + + + set_line = QtWidgets.QLabel(self) + set_line.setText("Доп. ГУ для нестандартной сетки") + set_line.setGeometry(50, 450, 250, 20) + + + set9 = QtWidgets.QLabel(self) + set9.setText(" u ( x, 0) = ") + set9.setGeometry(10, 470, 80, 30) + self.mu5 = QtWidgets.QLabel(self) + self.mu5.setGeometry(90, 470, 80, 30) + self.mu5.setStyleSheet('background-color: white;') + + + set10 = QtWidgets.QLabel(self) + set10.setText(" u ( 0, y) = ") + set10.setGeometry(170, 470, 80, 30) + self.mu6 = QtWidgets.QLabel(self) + self.mu6.setGeometry(240, 470, 80, 30) + self.mu6.setStyleSheet('background-color: white;') + + + set11 = QtWidgets.QLabel(self) + set11.setText(" при x ∈ [ -1, 0];") + set11.setGeometry(40, 500, 120, 30) + + set11 = QtWidgets.QLabel(self) + set11.setText(" при y ∈ [ -1, 0];") + set11.setGeometry(170, 500, 120, 30) + + set_line1 = QtWidgets.QLabel(self) + set_line1.setText("__________________________________________________________________________") + set_line1.setGeometry(30, 530, 300, 20) + + setn = QtWidgets.QLabel(self) + setn.setText("n = ") + setn.setGeometry(10, 560, 30, 30) + setm = QtWidgets.QLabel(self) + setm.setText("m = ") + setm.setGeometry(150, 560, 30, 30) + self.line_editn = QLineEdit(self) + self.line_editn.setGeometry(40, 560, 100, 30) + self.line_editn.setText('8') + self.line_editm = QLineEdit(self) + self.line_editm.setGeometry(180, 560, 100, 30) + self.line_editm.setText('8') + + self.report = QtWidgets.QLabel(self) + self.report.setGeometry(230, 10, 760, 150) + self.report.setStyleSheet('background-color: white;') + + + setit = QtWidgets.QLabel(self) + setit.setText("Максимальное количество итераций ") + setit.setGeometry(10, 600, 240, 30) + self.line_editit = QLineEdit(self) + self.line_editit.setGeometry(250, 600, 100, 30) + self.line_editit.setText('1000000') + + seteps = QtWidgets.QLabel(self) + seteps.setText("Требуемая точность ") + seteps.setGeometry(10, 635, 135, 30) + self.line_editeps = QLineEdit(self) + self.line_editeps.setGeometry(145, 635, 150, 30) + self.line_editeps.setText('0.00000001') + + + #button set task + self.button1 = QtWidgets.QPushButton(self) + self.button1.setGeometry(15, 210, 200, 30) + self.button1.setText("Задать условия задачи") + self.button1.clicked.connect(self.Set_task) + + + #button solve task + self.button2 = QtWidgets.QPushButton(self) + self.button2.setGeometry(30, 760, 200, 30) + self.button2.setText("Аппроксимировать") + self.button2.clicked.connect(self.Solve_task) + + def Set_task(self): + if(self.combo_box1.currentIndex() == 0): + self.f.setText("4exp(1 - x^2 - y^2)(x^2 + y^2 - 1)") + self.mu1.setText("exp(- y^2)") + self.mu2.setText("exp(- y^2)") + self.mu3.setText("exp(- x^2)") + self.mu4.setText("exp(- x^2)") + self.mu5.setText("") + self.mu6.setText("") + self.set5.setText(" при y ∈ [ -1, 1]; при y ∈ [ -1, 1];") + self.set8.setText(" при x ∈ [ -1, 1]; при x ∈ [ -1, 1];") + + + elif(self.combo_box1.currentIndex() == 1): + self.f.setText("- |(sin(πxy))^3|") + self.mu1.setText("1- y^2") + self.mu2.setText("1 - y^2") + self.mu3.setText("1 - x^2") + self.mu4.setText("1 - x^2") + self.mu5.setText("") + self.mu6.setText("") + self.set5.setText(" при y ∈ [ -1, 1]; при y ∈ [ -1, 1];") + self.set8.setText(" при x ∈ [ -1, 1]; при x ∈ [ -1, 1];") + else: + self.f.setText("4exp(1 - x^2 - y^2)(x^2 + y^2 - 1)") + self.mu1.setText("exp(- y^2)") + self.mu2.setText("exp(- y^2)") + self.mu3.setText("exp(- x^2)") + self.mu4.setText("exp(- x^2)") + self.mu5.setText("exp(1 - x^2)") + self.mu6.setText("exp(1 - y^2)") + self.set5.setText(" при y ∈ [ 0, 1]; при y ∈ [ -1, 1];") + self.set8.setText(" при x ∈ [ 0, 1]; при x ∈ [ -1, 1];") + + + def Solve_task(self): + n = (int)(self.line_editn.text()) + m = (int)(self.line_editm.text()) + omega = (float)(self.omega.text()) + max_iterations = (int)(self.line_editit.text()) + eps = (float)(self.line_editeps.text()) + task_num = self.combo_box1.currentIndex() + solver_num = (int)(self.combo_box.currentIndex()) + solver_str = " " + if(task_num == 0): + solver_str += "Тестовая задача на стандартной сетке решена " + elif(task_num == 1): + solver_str += "Основная задача на стандартной сетке решена " + else: + solver_str += "Тестовая задача на нестандартной сетке решена " + + if(solver_num == 0): + solver_str += "методом верхней релаксации с параметром w = "+ self.omega.text() + elif(solver_num == 1): + solver_str += "методом минимальных невязок" + elif(solver_num == 2): + solver_str += "методом Чебышева" + else: + solver_str += "методом сопряженных градиентов" + + if(task_num == 0): + test_task(solver_num, n, m, max_iterations, eps, omega) + + error = open("../files/Error.txt", 'r') + solver_results = open("../files/Solver_results.txt", 'r') + results = [row.strip() for row in solver_results] + + self.report.setText("Для решения тестовой задачи использованы сетка с числом разбиений\n по х : n = " + (str)(n)+ + ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", \n применены критерии остановки по точности eps(мет) = "+ + (str)(eps)+" и по числу итераций N(max) = "+ (str)(max_iterations)+".\n \n " + "На решение схемы (СЛАУ) затрачено " + (str)(results[2]) + + " итераций и достигнута точность " + (str)(results[0]) + "\nСхема решена с невязкой " + (str)(results[1]) + "\n" + error.read()) + error.close() + solver_results.close() + + + elif(task_num == 1): + main_task(solver_num, n, m, max_iterations, eps, omega) + + error = open("../files/Error.txt", 'r') + solver_results = open("../files/Solver_results.txt", 'r') + results = [row.strip() for row in solver_results] + + self.report.setText("Для решения основной задачи использованы сетка с числом разбиений\n по х : n = " + (str)(n)+ + ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", \n применены критерии остановки по точности eps(мет) = "+ + (str)(eps)+" и по числу итераций N(max) = "+ (str)(max_iterations)+".\n \n " + "На решение схемы (СЛАУ) затрачено " + (str)(results[2]) + + " итераций и достигнута точность " + (str)(results[0]) + "\nСхема решена с невязкой " + (str)(results[1]) + "\n" + error.read()) + error.close() + solver_results.close() + + else: + test_custom_task(solver_num, n, m, max_iterations, eps, omega) + + error = open("../files/Error.txt", 'r') + solver_results = open("../files/Solver_results.txt", 'r') + results = [row.strip() for row in solver_results] + + self.report.setText("Для решения тестовой задачи использованы сетка с числом разбиений\n по х : n = " + (str)(n)+ + ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", \n применены критерии остановки по точности eps(мет) = "+ + (str)(eps)+" и по числу итераций N(max) = "+ (str)(max_iterations)+".\n \n " + "На решение схемы (СЛАУ) затрачено " + (str)(results[2]) + + " итераций и достигнута точность " + (str)(results[0]) + "\nСхема решена с невязкой " + (str)(results[1]) + "\n" + error.read()) + error.close() + solver_results.close() + self.load_data_to_table1("../files/Approximation.txt") + self.load_data_to_table2("../files/Correct.txt") + + def load_data_to_table1(self, filename): + self.table1.setRowCount(0) + self.table1.setColumnCount(0) + try: + with open(filename, 'r') as file: + lines = file.readlines() + + # Определяем количество строк и столбцов + num_rows = len(lines) + num_cols = max(len(line.split()) for line in lines) + + # Устанавливаем количество строк и столбцов в таблице + self.table1.setRowCount(num_rows) + self.table1.setColumnCount(num_cols) + + # Заполняем таблицу данными + for row_index, line in enumerate(lines): + values = line.split() + for col_index, value in enumerate(values): + item = QTableWidgetItem(value) + self.table1.setItem(row_index, col_index, item) + except FileNotFoundError: + print("Файл не найден") + except Exception as e: + print(f"Ошибка при чтении файла: {e}") + + def load_data_to_table2(self, filename): + self.table2.setRowCount(0) + self.table2.setColumnCount(0) + try: + with open(filename, 'r') as file: + lines = file.readlines() + + # Определяем количество строк и столбцов + num_rows = len(lines) + num_cols = max(len(line.split()) for line in lines) + + # Устанавливаем количество строк и столбцов в таблице + self.table2.setRowCount(num_rows) + self.table2.setColumnCount(num_cols) + + # Заполняем таблицу данными + for row_index, line in enumerate(lines): + values = line.split() + for col_index, value in enumerate(values): + item = QTableWidgetItem(value) + self.table2.setItem(row_index, col_index, item) + except FileNotFoundError: + print("Файл не найден") + except Exception as e: + print(f"Ошибка при чтении файла: {e}") + + + + + + + + + +if __name__ == '__main__': + app = QApplication(sys.argv) + window = Window() + window.show() + sys.exit(app.exec_()) \ No newline at end of file diff --git a/Poisson_Equation/src/compile_lib.sh b/Poisson_Equation/src/compile_lib.sh new file mode 100755 index 0000000..0dbbafc --- /dev/null +++ b/Poisson_Equation/src/compile_lib.sh @@ -0,0 +1 @@ +g++ -fPIC -shared -mavx2 -mfma -fopenmp -std=c++17 -O3 utility.cpp -o lib_dirichlet.so diff --git a/Poisson_Equation/src/lib_dirichlet.so b/Poisson_Equation/src/lib_dirichlet.so new file mode 100755 index 0000000000000000000000000000000000000000..e9cb9a3e004a8e7a20171f2cdd859cbf6b4bdd2d GIT binary patch literal 136416 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 literal 0 HcmV?d00001 diff --git a/Poisson_Equation/src/main.cpp b/Poisson_Equation/src/main.cpp index 07aa420..fc662d0 100644 --- a/Poisson_Equation/src/main.cpp +++ b/Poisson_Equation/src/main.cpp @@ -1,5 +1,17 @@ -#include "Dirichlet_Problem.hpp" -#include "Solvers.hpp" +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../headers/Dirichlet_Problem.hpp" +#include "../headers/Solvers.hpp" + +#define FP double + int main() { return 0; diff --git a/Poisson_Equation/src/test b/Poisson_Equation/src/test new file mode 100755 index 0000000000000000000000000000000000000000..3c5cd11f209bc124f49e384b9c6b05883ec55d5d GIT binary patch literal 94896 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 literal 0 HcmV?d00001 diff --git a/Poisson_Equation/src/test.cpp b/Poisson_Equation/src/test.cpp index b20b95e..49f9520 100644 --- a/Poisson_Equation/src/test.cpp +++ b/Poisson_Equation/src/test.cpp @@ -118,12 +118,54 @@ void test_task_custom_grid(size_t m, size_t n, std::unique_ptr auto [duration, solution] = estimate_time(solver); } +void test_Chebyshev(size_t n, size_t m) { + // size_t n = 2048; + // size_t m = 2048; + std::cout << "n = " << n << " m = " << m << '\n'; + + std::array corners = { -1.0, -1.0, 1.0, 1.0 }; + std::vector init_app((n - 1) * (m - 1), 0.0); + + FP h = (corners[2] - corners[0]) / n; + FP k = (corners[3] - corners[1]) / m; + + FP Mmin = 4.0 / pow(h, 2) * pow(sin(numcpp::PI / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI / 2.0 / m), 2); + FP Mmax = 4.0 / pow(h, 2) * pow(sin(numcpp::PI * (n - 1) / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI * (m - 1) / 2.0 / m), 2); + std::cout << "Mmin = " << Mmin << " Mmax = " << Mmax << '\n'; + auto u = [](double x, double y) { return exp(1 - pow(x, 2) - pow(y, 2)); }; + auto f = [](double x, double y) { return -4 * exp(1 - pow(x, 2) - pow(y, 2)) * (pow(y, 2) + pow(x, 2) - 1); }; + + auto mu1 = [](double y) { return exp(-pow(y, 2)); }; + auto mu2 = [](double y) { return exp(-pow(y, 2)); }; + auto mu3 = [](double x) { return exp(-pow(x, 2)); }; + auto mu4 = [](double x) { return exp(-pow(x, 2)); }; + + numcpp::DirichletProblemSolver dirichlet_task; + dirichlet_task.set_fraction(m, n); + dirichlet_task.set_corners(corners); + dirichlet_task.set_u(u); + dirichlet_task.set_f(f); + dirichlet_task.set_boundary_conditions({ mu1, mu2, mu3, mu4 }); + + dirichlet_task.set_solver(std::make_unique(init_app, 1000000000, 0.0000000000001, nullptr, std::vector(), Mmin, Mmax)); + + auto [duration, solution] = estimate_time(dirichlet_task); +} + + int main() { - size_t m = 1024; - size_t n = 1024; + size_t m = 96; + size_t n = 96; - auto LS_solver = std::make_unique(std::vector(), 1000000, 0.00001, nullptr, std::vector()); + std::cout << "Conjugate gradient method" << std::endl; + auto LS_solver1 = std::make_unique(std::vector(), 1000000, 0.0000000000001, nullptr, std::vector()); + test_task_custom_grid(m, n, std::move(LS_solver1)); - test_task_custom_grid(m, n, std::move(LS_solver)); -} + //std::cout << "\nMinimal residual method" << std::endl; + //auto LS_solver2 = std::make_unique(std::vector(), 1000000, 0.000001, nullptr, std::vector()); + //test_task(m, n, std::move(LS_solver2)); + + //std::cout << "\nChebyshev iteration method" << std::endl; + //test_Chebyshev(m, n); +} \ No newline at end of file diff --git a/Poisson_Equation/src/utility.cpp b/Poisson_Equation/src/utility.cpp new file mode 100644 index 0000000..06eee14 --- /dev/null +++ b/Poisson_Equation/src/utility.cpp @@ -0,0 +1,20 @@ +#include "../headers/tasks.hpp" + +#define FP double +static uint8_t solver_num; +static uint32_t n, m, max_iterations; +static FP eps, omega; + +extern "C" void solve_test_task(uint8_t solver_num, uint32_t n, uint32_t m, uint32_t max_iterations, FP eps, FP omega) { + test_task(solver_num, n, m, max_iterations, eps, omega); +} + + +extern "C" void solve_test_custom_task(uint8_t solver_num, uint32_t n, uint32_t m, uint32_t max_iterations, FP eps, FP omega) { + test_custom_task(solver_num, n, m, max_iterations, eps, omega); +} + + +extern "C" void solve_main_task(uint8_t solver_num, uint32_t n, uint32_t m, uint32_t max_iterations, FP eps, FP omega) { + main_task(solver_num, n, m, max_iterations, eps, omega); +} \ No newline at end of file From 23a36b8bf19b69dbc687ed11ae7f51b63bca86f5 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 28 May 2024 17:07:17 +0300 Subject: [PATCH 2/2] Console report in test.cpp --- Poisson_Equation/files/Approximation.txt | 109 +++++++++- Poisson_Equation/files/Correct.txt | 109 +++++++++- Poisson_Equation/files/Error.txt | 4 +- Poisson_Equation/files/Solver_results.txt | 6 +- Poisson_Equation/files/Solver_results_2N.txt | 3 + Poisson_Equation/headers/tasks.hpp | 30 ++- Poisson_Equation/src/Interface_table.py | 63 ++++-- Poisson_Equation/src/lib_dirichlet.so | Bin 136416 -> 136744 bytes Poisson_Equation/src/test.cpp | 216 ++++++++----------- 9 files changed, 361 insertions(+), 179 deletions(-) create mode 100644 Poisson_Equation/files/Solver_results_2N.txt diff --git a/Poisson_Equation/files/Approximation.txt b/Poisson_Equation/files/Approximation.txt index bb54f5b..a816cba 100644 --- a/Poisson_Equation/files/Approximation.txt +++ b/Poisson_Equation/files/Approximation.txt @@ -1,9 +1,100 @@ -0 0 0 0 1 0.939413 0.778801 0.569783 0.367879 -0 0 0 0 1.54883 1.45646 1.20662 0.881464 0.569783 -0 0 0 0 2.117 1.99457 1.65322 1.20725 0.778801 -0 0 0 0 2.55359 2.40979 1.99834 1.45896 0.939413 -1 1.54883 2.117 2.55359 2.71828 2.56791 2.12958 1.55444 1 -0.939413 1.45646 1.99457 2.40979 2.56791 2.41548 2.00068 1.45982 0.939413 -0.778801 1.20662 1.65322 1.99834 2.12958 2.00068 1.65603 1.20834 0.778801 -0.569783 0.881464 1.20725 1.45896 1.55444 1.45982 1.20834 0.882168 0.569783 -0.367879 0.569783 0.778801 0.939413 1 0.939413 0.778801 0.569783 0.367879 +0 0.0396 0.0784 0.1164 0.1536 0.19 0.2256 0.2604 0.2944 0.3276 0.36 0.3916 0.4224 0.4524 0.4816 0.51 0.5376 0.5644 0.5904 0.6156 0.64 0.6636 0.6864 0.7084 0.7296 0.75 0.7696 0.7884 0.8064 0.8236 0.84 0.8556 0.8704 0.8844 0.8976 0.91 0.9216 0.9324 0.9424 0.9516 0.96 0.9676 0.9744 0.9804 0.9856 0.99 0.9936 0.9964 0.9984 0.9996 1 0.9996 0.9984 0.9964 0.9936 0.99 0.9856 0.9804 0.9744 0.9676 0.96 0.9516 0.9424 0.9324 0.9216 0.91 0.8976 0.8844 0.8704 0.8556 0.84 0.8236 0.8064 0.7884 0.7696 0.75 0.7296 0.7084 0.6864 0.6636 0.64 0.6156 0.5904 0.5644 0.5376 0.51 0.4816 0.4524 0.4224 0.3916 0.36 0.3276 0.2944 0.2604 0.2256 0.19 0.1536 0.1164 0.0784 0.0396 0 +0.0396 0.0750993 0.110598 0.14578 0.180496 0.214664 0.248232 0.281167 0.313443 0.345039 0.375941 0.406136 0.435611 0.464358 0.492367 0.519632 0.546144 0.571899 0.59689 0.621113 0.644564 0.667239 0.689136 0.710253 0.730588 0.75014 0.768909 0.786896 0.804101 0.820525 0.836171 0.851039 0.865131 0.878451 0.891001 0.902782 0.913797 0.924048 0.933537 0.942266 0.950235 0.957447 0.9639 0.969596 0.974535 0.978716 0.982138 0.984802 0.986705 0.987848 0.988229 0.987848 0.986705 0.984802 0.982138 0.978716 0.974535 0.969596 0.9639 0.957447 0.950235 0.942266 0.933537 0.924048 0.913797 0.902782 0.891001 0.878451 0.865131 0.851039 0.836171 0.820525 0.804101 0.786896 0.768909 0.75014 0.730588 0.710253 0.689136 0.667239 0.644564 0.621113 0.59689 0.571899 0.546144 0.519632 0.492367 0.464358 0.435611 0.406136 0.375941 0.345039 0.313443 0.281167 0.248232 0.214664 0.180496 0.14578 0.110598 0.0750993 0.0396 +0.0784 0.110598 0.143111 0.175621 0.207929 0.239908 0.271469 0.302551 0.333105 0.363096 0.392492 0.421268 0.449403 0.476878 0.503676 0.529784 0.555187 0.579874 0.603835 0.627062 0.649547 0.671283 0.692266 0.712492 0.731959 0.750664 0.768607 0.785789 0.80221 0.817874 0.832783 0.84694 0.860349 0.873014 0.884939 0.896127 0.906583 0.916311 0.925313 0.933593 0.941152 0.947992 0.954115 0.959521 0.964209 0.968179 0.97143 0.973961 0.975771 0.976857 0.977219 0.976857 0.975771 0.973961 0.97143 0.968179 0.964209 0.959521 0.954115 0.947992 0.941152 0.933593 0.925313 0.916311 0.906583 0.896127 0.884939 0.873014 0.860349 0.84694 0.832783 0.817874 0.80221 0.785789 0.768607 0.750664 0.731959 0.712492 0.692266 0.671283 0.649547 0.627062 0.603835 0.579874 0.555187 0.529784 0.503676 0.476878 0.449403 0.421268 0.392492 0.363096 0.333105 0.302551 0.271469 0.239908 0.207929 0.175621 0.143111 0.110598 0.0784 +0.1164 0.14578 0.175621 0.205652 0.235673 0.26554 0.295145 0.324405 0.353258 0.381651 0.409544 0.436899 0.463686 0.489878 0.515452 0.540388 0.564666 0.58827 0.611187 0.633405 0.654912 0.6757 0.695763 0.715094 0.733691 0.751552 0.768675 0.785061 0.800712 0.815631 0.829821 0.843287 0.856034 0.868066 0.87939 0.89001 0.899931 0.909158 0.917695 0.925546 0.932714 0.9392 0.945007 0.950134 0.954582 0.95835 0.961436 0.963839 0.965558 0.96659 0.966934 0.96659 0.965558 0.963839 0.961436 0.95835 0.954582 0.950134 0.945007 0.9392 0.932714 0.925546 0.917695 0.909158 0.899931 0.89001 0.87939 0.868066 0.856034 0.843287 0.829821 0.815631 0.800712 0.785061 0.768675 0.751552 0.733691 0.715094 0.695763 0.6757 0.654912 0.633405 0.611187 0.58827 0.564666 0.540388 0.515452 0.489878 0.463686 0.436899 0.409544 0.381651 0.353258 0.324405 0.295145 0.26554 0.235673 0.205652 0.175621 0.14578 0.1164 +0.1536 0.180496 0.207929 0.235673 0.263544 0.291395 0.319109 0.346594 0.373777 0.400594 0.426994 0.452933 0.478372 0.503278 0.527622 0.551377 0.574521 0.597034 0.618897 0.640097 0.66062 0.680455 0.699594 0.718031 0.735762 0.752783 0.769093 0.784695 0.799588 0.813778 0.827267 0.840062 0.852166 0.863588 0.874332 0.884405 0.893813 0.902561 0.910653 0.918095 0.924888 0.931036 0.93654 0.941401 0.945619 0.949192 0.95212 0.9544 0.956031 0.95701 0.957336 0.95701 0.956031 0.9544 0.95212 0.949192 0.945619 0.941401 0.93654 0.931036 0.924888 0.918095 0.910653 0.902561 0.893813 0.884405 0.874332 0.863588 0.852166 0.840062 0.827267 0.813778 0.799588 0.784695 0.769093 0.752783 0.735762 0.718031 0.699594 0.680455 0.66062 0.640097 0.618897 0.597034 0.574521 0.551377 0.527622 0.503278 0.478372 0.452933 0.426994 0.400594 0.373777 0.346594 0.319109 0.291395 0.263544 0.235673 0.207929 0.180496 0.1536 +0.19 0.214664 0.239908 0.26554 0.291395 0.31733 0.34323 0.368996 0.394548 0.419817 0.444745 0.46928 0.493379 0.517001 0.540114 0.562687 0.584693 0.60611 0.626916 0.647094 0.666631 0.685512 0.703729 0.721275 0.738144 0.754334 0.769842 0.78467 0.79882 0.812296 0.825102 0.837243 0.848726 0.859557 0.869742 0.879289 0.888204 0.896492 0.904158 0.911207 0.917642 0.923467 0.928681 0.933287 0.937284 0.940671 0.943446 0.945608 0.947154 0.948082 0.948392 0.948082 0.947154 0.945608 0.943446 0.940671 0.937284 0.933287 0.928681 0.923467 0.917642 0.911207 0.904158 0.896492 0.888204 0.879289 0.869742 0.859557 0.848726 0.837243 0.825102 0.812296 0.79882 0.78467 0.769842 0.754334 0.738144 0.721275 0.703729 0.685512 0.666631 0.647094 0.626916 0.60611 0.584693 0.562687 0.540114 0.517001 0.493379 0.46928 0.444745 0.419817 0.394548 0.368996 0.34323 0.31733 0.291395 0.26554 0.239908 0.214664 0.19 +0.2256 0.248232 0.271469 0.295145 0.319109 0.34323 0.367393 0.391501 0.415469 0.439225 0.462705 0.485855 0.508625 0.530972 0.55286 0.574254 0.595124 0.615445 0.635195 0.654354 0.672906 0.690837 0.708137 0.724797 0.740813 0.75618 0.770898 0.784966 0.798387 0.811165 0.823305 0.834811 0.84569 0.85595 0.865597 0.874637 0.883077 0.890923 0.898181 0.904854 0.910946 0.91646 0.921398 0.925759 0.929544 0.932752 0.935381 0.937429 0.938894 0.939774 0.940067 0.939774 0.938894 0.937429 0.935381 0.932752 0.929544 0.925759 0.921398 0.91646 0.910946 0.904854 0.898181 0.890923 0.883077 0.874637 0.865597 0.85595 0.84569 0.834811 0.823305 0.811165 0.798387 0.784966 0.770898 0.75618 0.740813 0.724797 0.708137 0.690837 0.672906 0.654354 0.635195 0.615445 0.595124 0.574254 0.55286 0.530972 0.508625 0.485855 0.462705 0.439225 0.415469 0.391501 0.367393 0.34323 0.319109 0.295145 0.271469 0.248232 0.2256 +0.2604 0.281167 0.302551 0.324405 0.346594 0.368996 0.391501 0.414012 0.436445 0.458727 0.48079 0.502577 0.524037 0.545122 0.565794 0.586017 0.605758 0.624989 0.643688 0.661832 0.679406 0.696393 0.712783 0.728568 0.74374 0.758297 0.772237 0.78556 0.798268 0.810365 0.821855 0.832745 0.843039 0.852746 0.861872 0.870424 0.878408 0.88583 0.892695 0.899007 0.904771 0.909987 0.914659 0.918786 0.922368 0.925404 0.927893 0.929831 0.931218 0.932051 0.932329 0.932051 0.931218 0.929831 0.927893 0.925404 0.922368 0.918786 0.914659 0.909987 0.904771 0.899007 0.892695 0.88583 0.878408 0.870424 0.861872 0.852746 0.843039 0.832745 0.821855 0.810365 0.798268 0.78556 0.772237 0.758297 0.74374 0.728568 0.712783 0.696393 0.679406 0.661832 0.643688 0.624989 0.605758 0.586017 0.565794 0.545122 0.524037 0.502577 0.48079 0.458727 0.436445 0.414012 0.391501 0.368996 0.346594 0.324405 0.302551 0.281167 0.2604 +0.2944 0.313443 0.333105 0.353258 0.373777 0.394548 0.415469 0.436445 0.457395 0.478242 0.498922 0.519373 0.539544 0.559385 0.578856 0.59792 0.616542 0.634693 0.652349 0.669488 0.686093 0.702146 0.717637 0.732557 0.7469 0.76066 0.773836 0.786429 0.79844 0.809873 0.820732 0.831022 0.84075 0.849923 0.858546 0.866627 0.874172 0.881185 0.887673 0.893639 0.899087 0.904019 0.908435 0.912338 0.915725 0.918597 0.92095 0.922784 0.924096 0.924884 0.925147 0.924884 0.924096 0.922784 0.92095 0.918597 0.915725 0.912338 0.908435 0.904019 0.899087 0.893639 0.887673 0.881185 0.874172 0.866627 0.858546 0.849923 0.84075 0.831022 0.820732 0.809873 0.79844 0.786429 0.773836 0.76066 0.7469 0.732557 0.717637 0.702146 0.686093 0.669488 0.652349 0.634693 0.616542 0.59792 0.578856 0.559385 0.539544 0.519373 0.498922 0.478242 0.457395 0.436445 0.415469 0.394548 0.373777 0.353258 0.333105 0.313443 0.2944 +0.3276 0.345039 0.363096 0.381651 0.400594 0.419817 0.439225 0.458727 0.478242 0.497699 0.517029 0.536175 0.555081 0.573699 0.591987 0.609907 0.627425 0.64451 0.661136 0.677283 0.69293 0.708063 0.722668 0.736738 0.750264 0.763242 0.775671 0.787551 0.798882 0.809668 0.819913 0.829622 0.838802 0.847458 0.855596 0.863223 0.870344 0.876965 0.88309 0.888724 0.893869 0.898527 0.902699 0.906386 0.909586 0.9123 0.914524 0.916257 0.917497 0.918242 0.91849 0.918242 0.917497 0.916257 0.914524 0.9123 0.909586 0.906386 0.902699 0.898527 0.893869 0.888724 0.88309 0.876965 0.870344 0.863223 0.855596 0.847458 0.838802 0.829622 0.819913 0.809668 0.798882 0.787551 0.775671 0.763242 0.750264 0.736738 0.722668 0.708063 0.69293 0.677283 0.661136 0.64451 0.627425 0.609907 0.591987 0.573699 0.555081 0.536175 0.517029 0.497699 0.478242 0.458727 0.439225 0.419817 0.400594 0.381651 0.363096 0.345039 0.3276 +0.36 0.375941 0.392492 0.409544 0.426994 0.444745 0.462705 0.48079 0.498922 0.517029 0.535048 0.552919 0.570588 0.588007 0.605134 0.62193 0.63836 0.654395 0.670007 0.685176 0.699883 0.71411 0.727845 0.74108 0.753807 0.766021 0.777719 0.788903 0.799571 0.809728 0.819378 0.828524 0.837172 0.845328 0.852998 0.860187 0.866901 0.873144 0.878921 0.884235 0.889089 0.893484 0.897422 0.900902 0.903923 0.906485 0.908585 0.910221 0.911392 0.912096 0.91233 0.912096 0.911392 0.910221 0.908585 0.906485 0.903923 0.900902 0.897422 0.893484 0.889089 0.884235 0.878921 0.873144 0.866901 0.860187 0.852998 0.845328 0.837172 0.828524 0.819378 0.809728 0.799571 0.788903 0.777719 0.766021 0.753807 0.74108 0.727845 0.71411 0.699883 0.685176 0.670007 0.654395 0.63836 0.62193 0.605134 0.588007 0.570588 0.552919 0.535048 0.517029 0.498922 0.48079 0.462705 0.444745 0.426994 0.409544 0.392492 0.375941 0.36 +0.3916 0.406136 0.421268 0.436899 0.452933 0.46928 0.485855 0.502577 0.519373 0.536175 0.552919 0.569548 0.58601 0.602256 0.618245 0.633938 0.649302 0.664306 0.678924 0.693134 0.706917 0.720256 0.733139 0.745557 0.757503 0.76897 0.779956 0.790462 0.800487 0.810033 0.819105 0.827706 0.83584 0.843514 0.850732 0.857499 0.86382 0.8697 0.875142 0.880149 0.884723 0.888866 0.892578 0.89586 0.898709 0.901125 0.903106 0.90465 0.905755 0.906419 0.90664 0.906419 0.905755 0.90465 0.903106 0.901125 0.898709 0.89586 0.892578 0.888866 0.884723 0.880149 0.875142 0.8697 0.86382 0.857499 0.850732 0.843514 0.83584 0.827706 0.819105 0.810033 0.800487 0.790462 0.779956 0.76897 0.757503 0.745557 0.733139 0.720256 0.706917 0.693134 0.678924 0.664306 0.649302 0.633938 0.618245 0.602256 0.58601 0.569548 0.552919 0.536175 0.519373 0.502577 0.485855 0.46928 0.452933 0.436899 0.421268 0.406136 0.3916 +0.4224 0.435611 0.449403 0.463686 0.478372 0.493379 0.508625 0.524037 0.539544 0.555081 0.570588 0.58601 0.601294 0.616396 0.631273 0.645889 0.660209 0.674204 0.687849 0.70112 0.713999 0.726471 0.738522 0.750143 0.761326 0.772066 0.78236 0.792207 0.801607 0.810561 0.819073 0.827147 0.834785 0.841993 0.848775 0.855136 0.861079 0.86661 0.871729 0.876441 0.880747 0.884648 0.888144 0.891235 0.893919 0.896195 0.898062 0.899517 0.900558 0.901184 0.901392 0.901184 0.900558 0.899517 0.898062 0.896195 0.893919 0.891235 0.888144 0.884648 0.880747 0.876441 0.871729 0.86661 0.861079 0.855136 0.848775 0.841993 0.834785 0.827147 0.819073 0.810561 0.801607 0.792207 0.78236 0.772066 0.761326 0.750143 0.738522 0.726471 0.713999 0.70112 0.687849 0.674204 0.660209 0.645889 0.631273 0.616396 0.601294 0.58601 0.570588 0.555081 0.539544 0.524037 0.508625 0.493379 0.478372 0.463686 0.449403 0.435611 0.4224 +0.4524 0.464358 0.476878 0.489878 0.503278 0.517001 0.530972 0.545122 0.559385 0.573699 0.588007 0.602256 0.616396 0.630383 0.644177 0.657741 0.671043 0.684053 0.696747 0.709103 0.721101 0.732727 0.743967 0.754812 0.765254 0.775287 0.784909 0.794117 0.802911 0.811292 0.819263 0.826827 0.833986 0.840745 0.847107 0.853077 0.858657 0.863851 0.868661 0.873089 0.877137 0.880806 0.884094 0.887002 0.889528 0.89167 0.893427 0.894797 0.895777 0.896366 0.896562 0.896366 0.895777 0.894797 0.893427 0.89167 0.889528 0.887002 0.884094 0.880806 0.877137 0.873089 0.868661 0.863851 0.858657 0.853077 0.847107 0.840745 0.833986 0.826827 0.819263 0.811292 0.802911 0.794117 0.784909 0.775287 0.765254 0.754812 0.743967 0.732727 0.721101 0.709103 0.696747 0.684053 0.671043 0.657741 0.644177 0.630383 0.616396 0.602256 0.588007 0.573699 0.559385 0.545122 0.530972 0.517001 0.503278 0.489878 0.476878 0.464358 0.4524 +0.4816 0.492367 0.503676 0.515452 0.527622 0.540114 0.55286 0.565794 0.578856 0.591987 0.605134 0.618245 0.631273 0.644177 0.656916 0.669457 0.681768 0.69382 0.705588 0.717052 0.728194 0.738997 0.749449 0.759541 0.769263 0.778611 0.787581 0.79617 0.804379 0.812206 0.819655 0.826726 0.833424 0.83975 0.845708 0.851301 0.856531 0.861402 0.865915 0.870071 0.873871 0.877316 0.880405 0.883138 0.885512 0.887526 0.889178 0.890465 0.891387 0.89194 0.892125 0.89194 0.891387 0.890465 0.889178 0.887526 0.885512 0.883138 0.880405 0.877316 0.873871 0.870071 0.865915 0.861402 0.856531 0.851301 0.845708 0.83975 0.833424 0.826726 0.819655 0.812206 0.804379 0.79617 0.787581 0.778611 0.769263 0.759541 0.749449 0.738997 0.728194 0.717052 0.705588 0.69382 0.681768 0.669457 0.656916 0.644177 0.631273 0.618245 0.605134 0.591987 0.578856 0.565794 0.55286 0.540114 0.527622 0.515452 0.503676 0.492367 0.4816 +0.51 0.519632 0.529784 0.540388 0.551377 0.562687 0.574254 0.586017 0.59792 0.609907 0.62193 0.633938 0.645889 0.657741 0.669457 0.681005 0.692352 0.703473 0.714343 0.724942 0.735252 0.745257 0.754945 0.764306 0.773332 0.782017 0.790356 0.798348 0.805991 0.813284 0.820229 0.826826 0.833079 0.838988 0.844557 0.849788 0.854683 0.859243 0.86347 0.867364 0.870927 0.874158 0.877056 0.87962 0.881848 0.883738 0.885289 0.886499 0.887364 0.887884 0.888057 0.887884 0.887364 0.886499 0.885289 0.883738 0.881848 0.87962 0.877056 0.874158 0.870927 0.867364 0.86347 0.859243 0.854683 0.849788 0.844557 0.838988 0.833079 0.826826 0.820229 0.813284 0.805991 0.798348 0.790356 0.782017 0.773332 0.764306 0.754945 0.745257 0.735252 0.724942 0.714343 0.703473 0.692352 0.681005 0.669457 0.657741 0.645889 0.633938 0.62193 0.609907 0.59792 0.586017 0.574254 0.562687 0.551377 0.540388 0.529784 0.519632 0.51 +0.5376 0.546144 0.555187 0.564666 0.574521 0.584693 0.595124 0.605758 0.616542 0.627425 0.63836 0.649302 0.660209 0.671043 0.681768 0.692352 0.702767 0.712986 0.722985 0.732746 0.74225 0.751483 0.760432 0.769087 0.77744 0.785485 0.793216 0.800631 0.807729 0.814507 0.820966 0.827108 0.832932 0.838441 0.843637 0.848519 0.853091 0.857353 0.861306 0.86495 0.868284 0.871309 0.874024 0.876426 0.878514 0.880287 0.881741 0.882875 0.883687 0.884174 0.884337 0.884174 0.883687 0.882875 0.881741 0.880287 0.878514 0.876426 0.874024 0.871309 0.868284 0.86495 0.861306 0.857353 0.853091 0.848519 0.843637 0.838441 0.832932 0.827108 0.820966 0.814507 0.807729 0.800631 0.793216 0.785485 0.77744 0.769087 0.760432 0.751483 0.74225 0.732746 0.722985 0.712986 0.702767 0.692352 0.681768 0.671043 0.660209 0.649302 0.63836 0.627425 0.616542 0.605758 0.595124 0.584693 0.574521 0.564666 0.555187 0.546144 0.5376 +0.5644 0.571899 0.579874 0.58827 0.597034 0.60611 0.615445 0.624989 0.634693 0.64451 0.654395 0.664306 0.674204 0.684053 0.69382 0.703473 0.712986 0.722332 0.731491 0.740442 0.749168 0.757656 0.765891 0.773865 0.781569 0.788997 0.796142 0.803002 0.809575 0.815857 0.821851 0.827554 0.832967 0.838091 0.842927 0.847476 0.851738 0.855714 0.859403 0.862807 0.865923 0.868751 0.871289 0.873537 0.875491 0.87715 0.878511 0.879573 0.880333 0.88079 0.880942 0.88079 0.880333 0.879573 0.878511 0.87715 0.875491 0.873537 0.871289 0.868751 0.865923 0.862807 0.859403 0.855714 0.851738 0.847476 0.842927 0.838091 0.832967 0.827554 0.821851 0.815857 0.809575 0.803002 0.796142 0.788997 0.781569 0.773865 0.765891 0.757656 0.749168 0.740442 0.731491 0.722332 0.712986 0.703473 0.69382 0.684053 0.674204 0.664306 0.654395 0.64451 0.634693 0.624989 0.615445 0.60611 0.597034 0.58827 0.579874 0.571899 0.5644 +0.5904 0.59689 0.603835 0.611187 0.618897 0.626916 0.635195 0.643688 0.652349 0.661136 0.670007 0.678924 0.687849 0.696747 0.705588 0.714343 0.722985 0.731491 0.739838 0.748008 0.755985 0.763754 0.771303 0.778622 0.785701 0.792535 0.799117 0.805444 0.811512 0.817319 0.822864 0.828146 0.833165 0.83792 0.842412 0.846641 0.850606 0.854307 0.857744 0.860917 0.863823 0.866462 0.868832 0.870931 0.872757 0.874307 0.875579 0.876572 0.877282 0.87771 0.877852 0.87771 0.877282 0.876572 0.875579 0.874307 0.872757 0.870931 0.868832 0.866462 0.863823 0.860917 0.857744 0.854307 0.850606 0.846641 0.842412 0.83792 0.833165 0.828146 0.822864 0.817319 0.811512 0.805444 0.799117 0.792535 0.785701 0.778622 0.771303 0.763754 0.755985 0.748008 0.739838 0.731491 0.722985 0.714343 0.705588 0.696747 0.687849 0.678924 0.670007 0.661136 0.652349 0.643688 0.635195 0.626916 0.618897 0.611187 0.603835 0.59689 0.5904 +0.6156 0.621113 0.627062 0.633405 0.640097 0.647094 0.654354 0.661832 0.669488 0.677283 0.685176 0.693134 0.70112 0.709103 0.717052 0.724942 0.732746 0.740442 0.748008 0.755428 0.762684 0.769763 0.776651 0.78334 0.78982 0.796084 0.802125 0.80794 0.813525 0.818876 0.823991 0.82887 0.833511 0.837912 0.842074 0.845995 0.849676 0.853114 0.85631 0.859261 0.861967 0.864425 0.866633 0.86859 0.870292 0.871738 0.872926 0.873852 0.874515 0.874914 0.875047 0.874914 0.874515 0.873852 0.872926 0.871738 0.870292 0.86859 0.866633 0.864425 0.861967 0.859261 0.85631 0.853114 0.849676 0.845995 0.842074 0.837912 0.833511 0.82887 0.823991 0.818876 0.813525 0.80794 0.802125 0.796084 0.78982 0.78334 0.776651 0.769763 0.762684 0.755428 0.748008 0.740442 0.732746 0.724942 0.717052 0.709103 0.70112 0.693134 0.685176 0.677283 0.669488 0.661832 0.654354 0.647094 0.640097 0.633405 0.627062 0.621113 0.6156 +0.64 0.644564 0.649547 0.654912 0.66062 0.666631 0.672906 0.679406 0.686093 0.69293 0.699883 0.706917 0.713999 0.721101 0.728194 0.735252 0.74225 0.749168 0.755985 0.762684 0.769248 0.775665 0.781921 0.788006 0.793911 0.799629 0.805152 0.810477 0.815598 0.820512 0.825217 0.829709 0.833988 0.83805 0.841896 0.845524 0.848932 0.852119 0.855083 0.857823 0.860336 0.86262 0.864674 0.866495 0.86808 0.869426 0.870532 0.871395 0.872012 0.872384 0.872508 0.872384 0.872012 0.871395 0.870532 0.869426 0.86808 0.866495 0.864674 0.86262 0.860336 0.857823 0.855083 0.852119 0.848932 0.845524 0.841896 0.83805 0.833988 0.829709 0.825217 0.820512 0.815598 0.810477 0.805152 0.799629 0.793911 0.788006 0.781921 0.775665 0.769248 0.762684 0.755985 0.749168 0.74225 0.735252 0.728194 0.721101 0.713999 0.706917 0.699883 0.69293 0.686093 0.679406 0.672906 0.666631 0.66062 0.654912 0.649547 0.644564 0.64 +0.6636 0.667239 0.671283 0.6757 0.680455 0.685512 0.690837 0.696393 0.702146 0.708063 0.71411 0.720256 0.726471 0.732727 0.738997 0.745257 0.751483 0.757656 0.763754 0.769763 0.775665 0.781447 0.787097 0.792604 0.79796 0.803155 0.808184 0.81304 0.817718 0.822214 0.826526 0.830649 0.834581 0.83832 0.841864 0.845211 0.848358 0.851305 0.854047 0.856585 0.858914 0.861033 0.862938 0.864629 0.866101 0.867352 0.868379 0.869181 0.869756 0.870101 0.870217 0.870101 0.869756 0.869181 0.868379 0.867352 0.866101 0.864629 0.862938 0.861033 0.858914 0.856585 0.854047 0.851305 0.848358 0.845211 0.841864 0.83832 0.834581 0.830649 0.826526 0.822214 0.817718 0.81304 0.808184 0.803155 0.79796 0.792604 0.787097 0.781447 0.775665 0.769763 0.763754 0.757656 0.751483 0.745257 0.738997 0.732727 0.726471 0.720256 0.71411 0.708063 0.702146 0.696393 0.690837 0.685512 0.680455 0.6757 0.671283 0.667239 0.6636 +0.6864 0.689136 0.692266 0.695763 0.699594 0.703729 0.708137 0.712783 0.717637 0.722668 0.727845 0.733139 0.738522 0.743967 0.749449 0.754945 0.760432 0.765891 0.771303 0.776651 0.781921 0.787097 0.792169 0.797124 0.801955 0.806651 0.811207 0.815615 0.819871 0.823969 0.827905 0.831675 0.835277 0.838707 0.841963 0.845041 0.84794 0.850656 0.853187 0.855531 0.857684 0.859644 0.861409 0.862974 0.864339 0.865498 0.866451 0.867195 0.867728 0.868049 0.868156 0.868049 0.867728 0.867195 0.866451 0.865498 0.864339 0.862974 0.861409 0.859644 0.857684 0.855531 0.853187 0.850656 0.84794 0.845041 0.841963 0.838707 0.835277 0.831675 0.827905 0.823969 0.819871 0.815615 0.811207 0.806651 0.801955 0.797124 0.792169 0.787097 0.781921 0.776651 0.771303 0.765891 0.760432 0.754945 0.749449 0.743967 0.738522 0.733139 0.727845 0.722668 0.717637 0.712783 0.708137 0.703729 0.699594 0.695763 0.692266 0.689136 0.6864 +0.7084 0.710253 0.712492 0.715094 0.718031 0.721275 0.724797 0.728568 0.732557 0.736738 0.74108 0.745557 0.750143 0.754812 0.759541 0.764306 0.769087 0.773865 0.778622 0.78334 0.788006 0.792604 0.797124 0.801554 0.805884 0.810106 0.814211 0.818192 0.822045 0.825763 0.829341 0.832775 0.836062 0.839197 0.842177 0.845 0.847661 0.850157 0.852487 0.854646 0.856631 0.85844 0.860069 0.861516 0.862777 0.86385 0.864731 0.86542 0.865913 0.86621 0.866309 0.86621 0.865913 0.86542 0.864731 0.86385 0.862777 0.861516 0.860069 0.85844 0.856631 0.854646 0.852487 0.850157 0.847661 0.845 0.842177 0.839197 0.836062 0.832775 0.829341 0.825763 0.822045 0.818192 0.814211 0.810106 0.805884 0.801554 0.797124 0.792604 0.788006 0.78334 0.778622 0.773865 0.769087 0.764306 0.759541 0.754812 0.750143 0.745557 0.74108 0.736738 0.732557 0.728568 0.724797 0.721275 0.718031 0.715094 0.712492 0.710253 0.7084 +0.7296 0.730588 0.731959 0.733691 0.735762 0.738144 0.740813 0.74374 0.7469 0.750264 0.753807 0.757503 0.761326 0.765254 0.769263 0.773332 0.77744 0.781569 0.785701 0.78982 0.793911 0.79796 0.801955 0.805884 0.809738 0.813507 0.817183 0.820759 0.824228 0.827584 0.830822 0.833936 0.836923 0.839777 0.842495 0.845073 0.847508 0.849795 0.851932 0.853915 0.85574 0.857404 0.858905 0.860238 0.8614 0.86239 0.863203 0.863839 0.864295 0.864569 0.86466 0.864569 0.864295 0.863839 0.863203 0.86239 0.8614 0.860238 0.858905 0.857404 0.85574 0.853915 0.851932 0.849795 0.847508 0.845073 0.842495 0.839777 0.836923 0.833936 0.830822 0.827584 0.824228 0.820759 0.817183 0.813507 0.809738 0.805884 0.801955 0.79796 0.793911 0.78982 0.785701 0.781569 0.77744 0.773332 0.769263 0.765254 0.761326 0.757503 0.753807 0.750264 0.7469 0.74374 0.740813 0.738144 0.735762 0.733691 0.731959 0.730588 0.7296 +0.75 0.75014 0.750664 0.751552 0.752783 0.754334 0.75618 0.758297 0.76066 0.763242 0.766021 0.76897 0.772066 0.775287 0.778611 0.782017 0.785485 0.788997 0.792535 0.796084 0.799629 0.803155 0.806651 0.810106 0.813507 0.816847 0.820116 0.823306 0.826411 0.829423 0.832337 0.835147 0.837847 0.840434 0.842903 0.845249 0.847468 0.849556 0.851509 0.853324 0.854996 0.856523 0.8579 0.859125 0.860194 0.861104 0.861853 0.862438 0.862857 0.86311 0.863194 0.86311 0.862857 0.862438 0.861853 0.861104 0.860194 0.859125 0.8579 0.856523 0.854996 0.853324 0.851509 0.849556 0.847468 0.845249 0.842903 0.840434 0.837847 0.835147 0.832337 0.829423 0.826411 0.823306 0.820116 0.816847 0.813507 0.810106 0.806651 0.803155 0.799629 0.796084 0.792535 0.788997 0.785485 0.782017 0.778611 0.775287 0.772066 0.76897 0.766021 0.763242 0.76066 0.758297 0.75618 0.754334 0.752783 0.751552 0.750664 0.75014 0.75 +0.7696 0.768909 0.768607 0.768675 0.769093 0.769842 0.770898 0.772237 0.773836 0.775671 0.777719 0.779956 0.78236 0.784909 0.787581 0.790356 0.793216 0.796142 0.799117 0.802125 0.805152 0.808184 0.811207 0.814211 0.817183 0.820116 0.822998 0.825823 0.828582 0.831268 0.833874 0.836395 0.838825 0.841158 0.843389 0.845514 0.847528 0.849426 0.851205 0.85286 0.854387 0.855782 0.857043 0.858164 0.859144 0.859978 0.860665 0.861202 0.861587 0.861819 0.861896 0.861819 0.861587 0.861202 0.860665 0.859978 0.859144 0.858164 0.857043 0.855782 0.854387 0.85286 0.851205 0.849426 0.847528 0.845514 0.843389 0.841158 0.838825 0.836395 0.833874 0.831268 0.828582 0.825823 0.822998 0.820116 0.817183 0.814211 0.811207 0.808184 0.805152 0.802125 0.799117 0.796142 0.793216 0.790356 0.787581 0.784909 0.78236 0.779956 0.777719 0.775671 0.773836 0.772237 0.770898 0.769842 0.769093 0.768675 0.768607 0.768909 0.7696 +0.7884 0.786896 0.785789 0.785061 0.784695 0.78467 0.784966 0.78556 0.786429 0.787551 0.788903 0.790462 0.792207 0.794117 0.79617 0.798348 0.800631 0.803002 0.805444 0.80794 0.810477 0.81304 0.815615 0.818192 0.820759 0.823306 0.825823 0.828301 0.830732 0.833109 0.835424 0.837671 0.839843 0.841935 0.843941 0.845857 0.847676 0.849394 0.851006 0.852509 0.853898 0.855169 0.856318 0.857341 0.858236 0.858999 0.859627 0.860118 0.86047 0.860682 0.860753 0.860682 0.86047 0.860118 0.859627 0.858999 0.858236 0.857341 0.856318 0.855169 0.853898 0.852509 0.851006 0.849394 0.847676 0.845857 0.843941 0.841935 0.839843 0.837671 0.835424 0.833109 0.830732 0.828301 0.825823 0.823306 0.820759 0.818192 0.815615 0.81304 0.810477 0.80794 0.805444 0.803002 0.800631 0.798348 0.79617 0.794117 0.792207 0.790462 0.788903 0.787551 0.786429 0.78556 0.784966 0.78467 0.784695 0.785061 0.785789 0.786896 0.7884 +0.8064 0.804101 0.80221 0.800712 0.799588 0.79882 0.798387 0.798268 0.79844 0.798882 0.799571 0.800487 0.801607 0.802911 0.804379 0.805991 0.807729 0.809575 0.811512 0.813525 0.815598 0.817718 0.819871 0.822045 0.824228 0.826411 0.828582 0.830732 0.832854 0.834938 0.836977 0.838964 0.840893 0.842757 0.844549 0.846266 0.8479 0.849447 0.850902 0.852261 0.853519 0.854671 0.855714 0.856644 0.857458 0.858153 0.858725 0.859173 0.859494 0.859687 0.859752 0.859687 0.859494 0.859173 0.858725 0.858153 0.857458 0.856644 0.855714 0.854671 0.853519 0.852261 0.850902 0.849447 0.8479 0.846266 0.844549 0.842757 0.840893 0.838964 0.836977 0.834938 0.832854 0.830732 0.828582 0.826411 0.824228 0.822045 0.819871 0.817718 0.815598 0.813525 0.811512 0.809575 0.807729 0.805991 0.804379 0.802911 0.801607 0.800487 0.799571 0.798882 0.79844 0.798268 0.798387 0.79882 0.799588 0.800712 0.80221 0.804101 0.8064 +0.8236 0.820525 0.817874 0.815631 0.813778 0.812296 0.811165 0.810365 0.809873 0.809668 0.809728 0.810033 0.810561 0.811292 0.812206 0.813284 0.814507 0.815857 0.817319 0.818876 0.820512 0.822214 0.823969 0.825763 0.827584 0.829423 0.831268 0.833109 0.834938 0.836746 0.838524 0.840266 0.841964 0.843612 0.845203 0.846731 0.84819 0.849575 0.850881 0.852103 0.853236 0.854276 0.855219 0.856061 0.856798 0.857428 0.857947 0.858353 0.858645 0.858821 0.858879 0.858821 0.858645 0.858353 0.857947 0.857428 0.856798 0.856061 0.855219 0.854276 0.853236 0.852103 0.850881 0.849575 0.84819 0.846731 0.845203 0.843612 0.841964 0.840266 0.838524 0.836746 0.834938 0.833109 0.831268 0.829423 0.827584 0.825763 0.823969 0.822214 0.820512 0.818876 0.817319 0.815857 0.814507 0.813284 0.812206 0.811292 0.810561 0.810033 0.809728 0.809668 0.809873 0.810365 0.811165 0.812296 0.813778 0.815631 0.817874 0.820525 0.8236 +0.84 0.836171 0.832783 0.829821 0.827267 0.825102 0.823305 0.821855 0.820732 0.819913 0.819378 0.819105 0.819073 0.819263 0.819655 0.820229 0.820966 0.821851 0.822864 0.823991 0.825217 0.826526 0.827905 0.829341 0.830822 0.832337 0.833874 0.835424 0.836977 0.838524 0.840057 0.841567 0.843048 0.844492 0.845891 0.847241 0.848535 0.849767 0.850932 0.852024 0.85304 0.853973 0.854821 0.855579 0.856244 0.856812 0.857281 0.857648 0.857912 0.858071 0.858124 0.858071 0.857912 0.857648 0.857281 0.856812 0.856244 0.855579 0.854821 0.853973 0.85304 0.852024 0.850932 0.849767 0.848535 0.847241 0.845891 0.844492 0.843048 0.841567 0.840057 0.838524 0.836977 0.835424 0.833874 0.832337 0.830822 0.829341 0.827905 0.826526 0.825217 0.823991 0.822864 0.821851 0.820966 0.820229 0.819655 0.819263 0.819073 0.819105 0.819378 0.819913 0.820732 0.821855 0.823305 0.825102 0.827267 0.829821 0.832783 0.836171 0.84 +0.8556 0.851039 0.84694 0.843287 0.840062 0.837243 0.834811 0.832745 0.831022 0.829622 0.828524 0.827706 0.827147 0.826827 0.826726 0.826826 0.827108 0.827554 0.828146 0.82887 0.829709 0.830649 0.831675 0.832775 0.833936 0.835147 0.836395 0.837671 0.838964 0.840266 0.841567 0.84286 0.844135 0.845386 0.846606 0.847788 0.848926 0.850013 0.851044 0.852015 0.852919 0.853752 0.85451 0.855188 0.855785 0.856295 0.856716 0.857047 0.857284 0.857427 0.857475 0.857427 0.857284 0.857047 0.856716 0.856295 0.855785 0.855188 0.85451 0.853752 0.852919 0.852015 0.851044 0.850013 0.848926 0.847788 0.846606 0.845386 0.844135 0.84286 0.841567 0.840266 0.838964 0.837671 0.836395 0.835147 0.833936 0.832775 0.831675 0.830649 0.829709 0.82887 0.828146 0.827554 0.827108 0.826826 0.826726 0.826827 0.827147 0.827706 0.828524 0.829622 0.831022 0.832745 0.834811 0.837243 0.840062 0.843287 0.84694 0.851039 0.8556 +0.8704 0.865131 0.860349 0.856034 0.852166 0.848726 0.84569 0.843039 0.84075 0.838802 0.837172 0.83584 0.834785 0.833986 0.833424 0.833079 0.832932 0.832967 0.833165 0.833511 0.833988 0.834581 0.835277 0.836062 0.836923 0.837847 0.838825 0.839843 0.840893 0.841964 0.843048 0.844135 0.845218 0.846288 0.847338 0.848362 0.849353 0.850304 0.851209 0.852064 0.852863 0.853602 0.854275 0.854879 0.85541 0.855866 0.856242 0.856538 0.85675 0.856878 0.856921 0.856878 0.85675 0.856538 0.856242 0.855866 0.85541 0.854879 0.854275 0.853602 0.852863 0.852064 0.851209 0.850304 0.849353 0.848362 0.847338 0.846288 0.845218 0.844135 0.843048 0.841964 0.840893 0.839843 0.838825 0.837847 0.836923 0.836062 0.835277 0.834581 0.833988 0.833511 0.833165 0.832967 0.832932 0.833079 0.833424 0.833986 0.834785 0.83584 0.837172 0.838802 0.84075 0.843039 0.84569 0.848726 0.852166 0.856034 0.860349 0.865131 0.8704 +0.8844 0.878451 0.873014 0.868066 0.863588 0.859557 0.85595 0.852746 0.849923 0.847458 0.845328 0.843514 0.841993 0.840745 0.83975 0.838988 0.838441 0.838091 0.83792 0.837912 0.83805 0.83832 0.838707 0.839197 0.839777 0.840434 0.841158 0.841935 0.842757 0.843612 0.844492 0.845386 0.846288 0.847188 0.848079 0.848955 0.849807 0.85063 0.851417 0.852164 0.852864 0.853513 0.854106 0.85464 0.855111 0.855515 0.855849 0.856112 0.856301 0.856415 0.856453 0.856415 0.856301 0.856112 0.855849 0.855515 0.855111 0.85464 0.854106 0.853513 0.852864 0.852164 0.851417 0.85063 0.849807 0.848955 0.848079 0.847188 0.846288 0.845386 0.844492 0.843612 0.842757 0.841935 0.841158 0.840434 0.839777 0.839197 0.838707 0.83832 0.83805 0.837912 0.83792 0.838091 0.838441 0.838988 0.83975 0.840745 0.841993 0.843514 0.845328 0.847458 0.849923 0.852746 0.85595 0.859557 0.863588 0.868066 0.873014 0.878451 0.8844 +0.8976 0.891001 0.884939 0.87939 0.874332 0.869742 0.865597 0.861872 0.858546 0.855596 0.852998 0.850732 0.848775 0.847107 0.845708 0.844557 0.843637 0.842927 0.842412 0.842074 0.841896 0.841864 0.841963 0.842177 0.842495 0.842903 0.843389 0.843941 0.844549 0.845203 0.845891 0.846606 0.847338 0.848079 0.848822 0.849557 0.85028 0.850983 0.851659 0.852304 0.852912 0.853477 0.853996 0.854464 0.854877 0.855233 0.855528 0.855759 0.855926 0.856027 0.856061 0.856027 0.855926 0.855759 0.855528 0.855233 0.854877 0.854464 0.853996 0.853477 0.852912 0.852304 0.851659 0.850983 0.85028 0.849557 0.848822 0.848079 0.847338 0.846606 0.845891 0.845203 0.844549 0.843941 0.843389 0.842903 0.842495 0.842177 0.841963 0.841864 0.841896 0.842074 0.842412 0.842927 0.843637 0.844557 0.845708 0.847107 0.848775 0.850732 0.852998 0.855596 0.858546 0.861872 0.865597 0.869742 0.874332 0.87939 0.884939 0.891001 0.8976 +0.91 0.902782 0.896127 0.89001 0.884405 0.879289 0.874637 0.870424 0.866627 0.863223 0.860187 0.857499 0.855136 0.853077 0.851301 0.849788 0.848519 0.847476 0.846641 0.845995 0.845524 0.845211 0.845041 0.845 0.845073 0.845249 0.845514 0.845857 0.846266 0.846731 0.847241 0.847788 0.848362 0.848955 0.849557 0.850163 0.850765 0.851355 0.851928 0.852478 0.852999 0.853486 0.853935 0.854341 0.854701 0.855011 0.855269 0.855472 0.855618 0.855707 0.855736 0.855707 0.855618 0.855472 0.855269 0.855011 0.854701 0.854341 0.853935 0.853486 0.852999 0.852478 0.851928 0.851355 0.850765 0.850163 0.849557 0.848955 0.848362 0.847788 0.847241 0.846731 0.846266 0.845857 0.845514 0.845249 0.845073 0.845 0.845041 0.845211 0.845524 0.845995 0.846641 0.847476 0.848519 0.849788 0.851301 0.853077 0.855136 0.857499 0.860187 0.863223 0.866627 0.870424 0.874637 0.879289 0.884405 0.89001 0.896127 0.902782 0.91 +0.9216 0.913797 0.906583 0.899931 0.893813 0.888204 0.883077 0.878408 0.874172 0.870344 0.866901 0.86382 0.861079 0.858657 0.856531 0.854683 0.853091 0.851738 0.850606 0.849676 0.848932 0.848358 0.84794 0.847661 0.847508 0.847468 0.847528 0.847676 0.8479 0.84819 0.848535 0.848926 0.849353 0.849807 0.85028 0.850765 0.851253 0.851739 0.852216 0.852677 0.853117 0.853531 0.853915 0.854263 0.854573 0.854841 0.855065 0.855241 0.855368 0.855445 0.855471 0.855445 0.855368 0.855241 0.855065 0.854841 0.854573 0.854263 0.853915 0.853531 0.853117 0.852677 0.852216 0.851739 0.851253 0.850765 0.85028 0.849807 0.849353 0.848926 0.848535 0.84819 0.8479 0.847676 0.847528 0.847468 0.847508 0.847661 0.84794 0.848358 0.848932 0.849676 0.850606 0.851738 0.853091 0.854683 0.856531 0.858657 0.861079 0.86382 0.866901 0.870344 0.874172 0.878408 0.883077 0.888204 0.893813 0.899931 0.906583 0.913797 0.9216 +0.9324 0.924048 0.916311 0.909158 0.902561 0.896492 0.890923 0.88583 0.881185 0.876965 0.873144 0.8697 0.86661 0.863851 0.861402 0.859243 0.857353 0.855714 0.854307 0.853114 0.852119 0.851305 0.850656 0.850157 0.849795 0.849556 0.849426 0.849394 0.849447 0.849575 0.849767 0.850013 0.850304 0.85063 0.850983 0.851355 0.851739 0.852128 0.852515 0.852893 0.853259 0.853605 0.853928 0.854223 0.854487 0.854716 0.854907 0.855059 0.855168 0.855234 0.855256 0.855234 0.855168 0.855059 0.854907 0.854716 0.854487 0.854223 0.853928 0.853605 0.853259 0.852893 0.852515 0.852128 0.851739 0.851355 0.850983 0.85063 0.850304 0.850013 0.849767 0.849575 0.849447 0.849394 0.849426 0.849556 0.849795 0.850157 0.850656 0.851305 0.852119 0.853114 0.854307 0.855714 0.857353 0.859243 0.861402 0.863851 0.86661 0.8697 0.873144 0.876965 0.881185 0.88583 0.890923 0.896492 0.902561 0.909158 0.916311 0.924048 0.9324 +0.9424 0.933537 0.925313 0.917695 0.910653 0.904158 0.898181 0.892695 0.887673 0.88309 0.878921 0.875142 0.871729 0.868661 0.865915 0.86347 0.861306 0.859403 0.857744 0.85631 0.855083 0.854047 0.853187 0.852487 0.851932 0.851509 0.851205 0.851006 0.850902 0.850881 0.850932 0.851044 0.851209 0.851417 0.851659 0.851928 0.852216 0.852515 0.852819 0.853122 0.853418 0.853702 0.853969 0.854215 0.854436 0.854628 0.85479 0.854918 0.855011 0.855067 0.855086 0.855067 0.855011 0.854918 0.85479 0.854628 0.854436 0.854215 0.853969 0.853702 0.853418 0.853122 0.852819 0.852515 0.852216 0.851928 0.851659 0.851417 0.851209 0.851044 0.850932 0.850881 0.850902 0.851006 0.851205 0.851509 0.851932 0.852487 0.853187 0.854047 0.855083 0.85631 0.857744 0.859403 0.861306 0.86347 0.865915 0.868661 0.871729 0.875142 0.878921 0.88309 0.887673 0.892695 0.898181 0.904158 0.910653 0.917695 0.925313 0.933537 0.9424 +0.9516 0.942266 0.933593 0.925546 0.918095 0.911207 0.904854 0.899007 0.893639 0.888724 0.884235 0.880149 0.876441 0.873089 0.870071 0.867364 0.86495 0.862807 0.860917 0.859261 0.857823 0.856585 0.855531 0.854646 0.853915 0.853324 0.85286 0.852509 0.852261 0.852103 0.852024 0.852015 0.852064 0.852164 0.852304 0.852478 0.852677 0.852893 0.853122 0.853355 0.853587 0.853814 0.85403 0.85423 0.854412 0.854572 0.854706 0.854813 0.854891 0.854938 0.854954 0.854938 0.854891 0.854813 0.854706 0.854572 0.854412 0.85423 0.85403 0.853814 0.853587 0.853355 0.853122 0.852893 0.852677 0.852478 0.852304 0.852164 0.852064 0.852015 0.852024 0.852103 0.852261 0.852509 0.85286 0.853324 0.853915 0.854646 0.855531 0.856585 0.857823 0.859261 0.860917 0.862807 0.86495 0.867364 0.870071 0.873089 0.876441 0.880149 0.884235 0.888724 0.893639 0.899007 0.904854 0.911207 0.918095 0.925546 0.933593 0.942266 0.9516 +0.96 0.950235 0.941152 0.932714 0.924888 0.917642 0.910946 0.904771 0.899087 0.893869 0.889089 0.884723 0.880747 0.877137 0.873871 0.870927 0.868284 0.865923 0.863823 0.861967 0.860336 0.858914 0.857684 0.856631 0.85574 0.854996 0.854387 0.853898 0.853519 0.853236 0.85304 0.852919 0.852863 0.852864 0.852912 0.852999 0.853117 0.853259 0.853418 0.853587 0.853762 0.853936 0.854105 0.854264 0.854411 0.85454 0.85465 0.854737 0.854801 0.85484 0.854853 0.85484 0.854801 0.854737 0.85465 0.85454 0.854411 0.854264 0.854105 0.853936 0.853762 0.853587 0.853418 0.853259 0.853117 0.852999 0.852912 0.852864 0.852863 0.852919 0.85304 0.853236 0.853519 0.853898 0.854387 0.854996 0.85574 0.856631 0.857684 0.858914 0.860336 0.861967 0.863823 0.865923 0.868284 0.870927 0.873871 0.877137 0.880747 0.884723 0.889089 0.893869 0.899087 0.904771 0.910946 0.917642 0.924888 0.932714 0.941152 0.950235 0.96 +0.9676 0.957447 0.947992 0.9392 0.931036 0.923467 0.91646 0.909987 0.904019 0.898527 0.893484 0.888866 0.884648 0.880806 0.877316 0.874158 0.871309 0.868751 0.866462 0.864425 0.86262 0.861033 0.859644 0.85844 0.857404 0.856523 0.855782 0.855169 0.854671 0.854276 0.853973 0.853752 0.853602 0.853513 0.853477 0.853486 0.853531 0.853605 0.853702 0.853814 0.853936 0.854063 0.85419 0.854312 0.854426 0.854528 0.854615 0.854685 0.854737 0.854768 0.854779 0.854768 0.854737 0.854685 0.854615 0.854528 0.854426 0.854312 0.85419 0.854063 0.853936 0.853814 0.853702 0.853605 0.853531 0.853486 0.853477 0.853513 0.853602 0.853752 0.853973 0.854276 0.854671 0.855169 0.855782 0.856523 0.857404 0.85844 0.859644 0.861033 0.86262 0.864425 0.866462 0.868751 0.871309 0.874158 0.877316 0.880806 0.884648 0.888866 0.893484 0.898527 0.904019 0.909987 0.91646 0.923467 0.931036 0.9392 0.947992 0.957447 0.9676 +0.9744 0.9639 0.954115 0.945007 0.93654 0.928681 0.921398 0.914659 0.908435 0.902699 0.897422 0.892578 0.888144 0.884094 0.880405 0.877056 0.874024 0.871289 0.868832 0.866633 0.864674 0.862938 0.861409 0.860069 0.858905 0.8579 0.857043 0.856318 0.855714 0.855219 0.854821 0.85451 0.854275 0.854106 0.853996 0.853935 0.853915 0.853928 0.853969 0.85403 0.854105 0.85419 0.854279 0.854367 0.854452 0.85453 0.854597 0.854652 0.854692 0.854717 0.854726 0.854717 0.854692 0.854652 0.854597 0.85453 0.854452 0.854367 0.854279 0.85419 0.854105 0.85403 0.853969 0.853928 0.853915 0.853935 0.853996 0.854106 0.854275 0.85451 0.854821 0.855219 0.855714 0.856318 0.857043 0.8579 0.858905 0.860069 0.861409 0.862938 0.864674 0.866633 0.868832 0.871289 0.874024 0.877056 0.880405 0.884094 0.888144 0.892578 0.897422 0.902699 0.908435 0.914659 0.921398 0.928681 0.93654 0.945007 0.954115 0.9639 0.9744 +0.9804 0.969596 0.959521 0.950134 0.941401 0.933287 0.925759 0.918786 0.912338 0.906386 0.900902 0.89586 0.891235 0.887002 0.883138 0.87962 0.876426 0.873537 0.870931 0.86859 0.866495 0.864629 0.862974 0.861516 0.860238 0.859125 0.858164 0.857341 0.856644 0.856061 0.855579 0.855188 0.854879 0.85464 0.854464 0.854341 0.854263 0.854223 0.854215 0.85423 0.854264 0.854312 0.854367 0.854427 0.854486 0.854542 0.854592 0.854633 0.854664 0.854683 0.854689 0.854683 0.854664 0.854633 0.854592 0.854542 0.854486 0.854427 0.854367 0.854312 0.854264 0.85423 0.854215 0.854223 0.854263 0.854341 0.854464 0.85464 0.854879 0.855188 0.855579 0.856061 0.856644 0.857341 0.858164 0.859125 0.860238 0.861516 0.862974 0.864629 0.866495 0.86859 0.870931 0.873537 0.876426 0.87962 0.883138 0.887002 0.891235 0.89586 0.900902 0.906386 0.912338 0.918786 0.925759 0.933287 0.941401 0.950134 0.959521 0.969596 0.9804 +0.9856 0.974535 0.964209 0.954582 0.945619 0.937284 0.929544 0.922368 0.915725 0.909586 0.903923 0.898709 0.893919 0.889528 0.885512 0.881848 0.878514 0.875491 0.872757 0.870292 0.86808 0.866101 0.864339 0.862777 0.8614 0.860194 0.859144 0.858236 0.857458 0.856798 0.856244 0.855785 0.85541 0.855111 0.854877 0.854701 0.854573 0.854487 0.854436 0.854412 0.854411 0.854426 0.854452 0.854486 0.854524 0.854561 0.854595 0.854625 0.854647 0.854661 0.854665 0.854661 0.854647 0.854625 0.854595 0.854561 0.854524 0.854486 0.854452 0.854426 0.854411 0.854412 0.854436 0.854487 0.854573 0.854701 0.854877 0.855111 0.85541 0.855785 0.856244 0.856798 0.857458 0.858236 0.859144 0.860194 0.8614 0.862777 0.864339 0.866101 0.86808 0.870292 0.872757 0.875491 0.878514 0.881848 0.885512 0.889528 0.893919 0.898709 0.903923 0.909586 0.915725 0.922368 0.929544 0.937284 0.945619 0.954582 0.964209 0.974535 0.9856 +0.99 0.978716 0.968179 0.95835 0.949192 0.940671 0.932752 0.925404 0.918597 0.9123 0.906485 0.901125 0.896195 0.89167 0.887526 0.883738 0.880287 0.87715 0.874307 0.871738 0.869426 0.867352 0.865498 0.86385 0.86239 0.861104 0.859978 0.858999 0.858153 0.857428 0.856812 0.856295 0.855866 0.855515 0.855233 0.855011 0.854841 0.854716 0.854628 0.854572 0.85454 0.854528 0.85453 0.854542 0.854561 0.854582 0.854604 0.854623 0.854638 0.854648 0.854651 0.854648 0.854638 0.854623 0.854604 0.854582 0.854561 0.854542 0.85453 0.854528 0.85454 0.854572 0.854628 0.854716 0.854841 0.855011 0.855233 0.855515 0.855866 0.856295 0.856812 0.857428 0.858153 0.858999 0.859978 0.861104 0.86239 0.86385 0.865498 0.867352 0.869426 0.871738 0.874307 0.87715 0.880287 0.883738 0.887526 0.89167 0.896195 0.901125 0.906485 0.9123 0.918597 0.925404 0.932752 0.940671 0.949192 0.95835 0.968179 0.978716 0.99 +0.9936 0.982138 0.97143 0.961436 0.95212 0.943446 0.935381 0.927893 0.92095 0.914524 0.908585 0.903106 0.898062 0.893427 0.889178 0.885289 0.881741 0.878511 0.875579 0.872926 0.870532 0.868379 0.866451 0.864731 0.863203 0.861853 0.860665 0.859627 0.858725 0.857947 0.857281 0.856716 0.856242 0.855849 0.855528 0.855269 0.855065 0.854907 0.85479 0.854706 0.85465 0.854615 0.854597 0.854592 0.854595 0.854604 0.854615 0.854626 0.854635 0.854641 0.854643 0.854641 0.854635 0.854626 0.854615 0.854604 0.854595 0.854592 0.854597 0.854615 0.85465 0.854706 0.85479 0.854907 0.855065 0.855269 0.855528 0.855849 0.856242 0.856716 0.857281 0.857947 0.858725 0.859627 0.860665 0.861853 0.863203 0.864731 0.866451 0.868379 0.870532 0.872926 0.875579 0.878511 0.881741 0.885289 0.889178 0.893427 0.898062 0.903106 0.908585 0.914524 0.92095 0.927893 0.935381 0.943446 0.95212 0.961436 0.97143 0.982138 0.9936 +0.9964 0.984802 0.973961 0.963839 0.9544 0.945608 0.937429 0.929831 0.922784 0.916257 0.910221 0.90465 0.899517 0.894797 0.890465 0.886499 0.882875 0.879573 0.876572 0.873852 0.871395 0.869181 0.867195 0.86542 0.863839 0.862438 0.861202 0.860118 0.859173 0.858353 0.857648 0.857047 0.856538 0.856112 0.855759 0.855472 0.855241 0.855059 0.854918 0.854813 0.854737 0.854685 0.854652 0.854633 0.854625 0.854623 0.854626 0.85463 0.854635 0.854638 0.854639 0.854638 0.854635 0.85463 0.854626 0.854623 0.854625 0.854633 0.854652 0.854685 0.854737 0.854813 0.854918 0.855059 0.855241 0.855472 0.855759 0.856112 0.856538 0.857047 0.857648 0.858353 0.859173 0.860118 0.861202 0.862438 0.863839 0.86542 0.867195 0.869181 0.871395 0.873852 0.876572 0.879573 0.882875 0.886499 0.890465 0.894797 0.899517 0.90465 0.910221 0.916257 0.922784 0.929831 0.937429 0.945608 0.9544 0.963839 0.973961 0.984802 0.9964 +0.9984 0.986705 0.975771 0.965558 0.956031 0.947154 0.938894 0.931218 0.924096 0.917497 0.911392 0.905755 0.900558 0.895777 0.891387 0.887364 0.883687 0.880333 0.877282 0.874515 0.872012 0.869756 0.867728 0.865913 0.864295 0.862857 0.861587 0.86047 0.859494 0.858645 0.857912 0.857284 0.85675 0.856301 0.855926 0.855618 0.855368 0.855168 0.855011 0.854891 0.854801 0.854737 0.854692 0.854664 0.854647 0.854638 0.854635 0.854635 0.854636 0.854637 0.854638 0.854637 0.854636 0.854635 0.854635 0.854638 0.854647 0.854664 0.854692 0.854737 0.854801 0.854891 0.855011 0.855168 0.855368 0.855618 0.855926 0.856301 0.85675 0.857284 0.857912 0.858645 0.859494 0.86047 0.861587 0.862857 0.864295 0.865913 0.867728 0.869756 0.872012 0.874515 0.877282 0.880333 0.883687 0.887364 0.891387 0.895777 0.900558 0.905755 0.911392 0.917497 0.924096 0.931218 0.938894 0.947154 0.956031 0.965558 0.975771 0.986705 0.9984 +0.9996 0.987848 0.976857 0.96659 0.95701 0.948082 0.939774 0.932051 0.924884 0.918242 0.912096 0.906419 0.901184 0.896366 0.89194 0.887884 0.884174 0.88079 0.87771 0.874914 0.872384 0.870101 0.868049 0.86621 0.864569 0.86311 0.861819 0.860682 0.859687 0.858821 0.858071 0.857427 0.856878 0.856415 0.856027 0.855707 0.855445 0.855234 0.855067 0.854938 0.85484 0.854768 0.854717 0.854683 0.854661 0.854648 0.854641 0.854638 0.854637 0.854638 0.854638 0.854638 0.854637 0.854638 0.854641 0.854648 0.854661 0.854683 0.854717 0.854768 0.85484 0.854938 0.855067 0.855234 0.855445 0.855707 0.856027 0.856415 0.856878 0.857427 0.858071 0.858821 0.859687 0.860682 0.861819 0.86311 0.864569 0.86621 0.868049 0.870101 0.872384 0.874914 0.87771 0.88079 0.884174 0.887884 0.89194 0.896366 0.901184 0.906419 0.912096 0.918242 0.924884 0.932051 0.939774 0.948082 0.95701 0.96659 0.976857 0.987848 0.9996 +1 0.988229 0.977219 0.966934 0.957336 0.948392 0.940067 0.932329 0.925147 0.91849 0.91233 0.90664 0.901392 0.896562 0.892125 0.888057 0.884337 0.880942 0.877852 0.875047 0.872508 0.870217 0.868156 0.866309 0.86466 0.863194 0.861896 0.860753 0.859752 0.858879 0.858124 0.857475 0.856921 0.856453 0.856061 0.855736 0.855471 0.855256 0.855086 0.854954 0.854853 0.854779 0.854726 0.854689 0.854665 0.854651 0.854643 0.854639 0.854638 0.854638 0.854638 0.854638 0.854638 0.854639 0.854643 0.854651 0.854665 0.854689 0.854726 0.854779 0.854853 0.854954 0.855086 0.855256 0.855471 0.855736 0.856061 0.856453 0.856921 0.857475 0.858124 0.858879 0.859752 0.860753 0.861896 0.863194 0.86466 0.866309 0.868156 0.870217 0.872508 0.875047 0.877852 0.880942 0.884337 0.888057 0.892125 0.896562 0.901392 0.90664 0.91233 0.91849 0.925147 0.932329 0.940067 0.948392 0.957336 0.966934 0.977219 0.988229 1 +0.9996 0.987848 0.976857 0.96659 0.95701 0.948082 0.939774 0.932051 0.924884 0.918242 0.912096 0.906419 0.901184 0.896366 0.89194 0.887884 0.884174 0.88079 0.87771 0.874914 0.872384 0.870101 0.868049 0.86621 0.864569 0.86311 0.861819 0.860682 0.859687 0.858821 0.858071 0.857427 0.856878 0.856415 0.856027 0.855707 0.855445 0.855234 0.855067 0.854938 0.85484 0.854768 0.854717 0.854683 0.854661 0.854648 0.854641 0.854638 0.854637 0.854638 0.854638 0.854638 0.854637 0.854638 0.854641 0.854648 0.854661 0.854683 0.854717 0.854768 0.85484 0.854938 0.855067 0.855234 0.855445 0.855707 0.856027 0.856415 0.856878 0.857427 0.858071 0.858821 0.859687 0.860682 0.861819 0.86311 0.864569 0.86621 0.868049 0.870101 0.872384 0.874914 0.87771 0.88079 0.884174 0.887884 0.89194 0.896366 0.901184 0.906419 0.912096 0.918242 0.924884 0.932051 0.939774 0.948082 0.95701 0.96659 0.976857 0.987848 0.9996 +0.9984 0.986705 0.975771 0.965558 0.956031 0.947154 0.938894 0.931218 0.924096 0.917497 0.911392 0.905755 0.900558 0.895777 0.891387 0.887364 0.883687 0.880333 0.877282 0.874515 0.872012 0.869756 0.867728 0.865913 0.864295 0.862857 0.861587 0.86047 0.859494 0.858645 0.857912 0.857284 0.85675 0.856301 0.855926 0.855618 0.855368 0.855168 0.855011 0.854891 0.854801 0.854737 0.854692 0.854664 0.854647 0.854638 0.854635 0.854635 0.854636 0.854637 0.854638 0.854637 0.854636 0.854635 0.854635 0.854638 0.854647 0.854664 0.854692 0.854737 0.854801 0.854891 0.855011 0.855168 0.855368 0.855618 0.855926 0.856301 0.85675 0.857284 0.857912 0.858645 0.859494 0.86047 0.861587 0.862857 0.864295 0.865913 0.867728 0.869756 0.872012 0.874515 0.877282 0.880333 0.883687 0.887364 0.891387 0.895777 0.900558 0.905755 0.911392 0.917497 0.924096 0.931218 0.938894 0.947154 0.956031 0.965558 0.975771 0.986705 0.9984 +0.9964 0.984802 0.973961 0.963839 0.9544 0.945608 0.937429 0.929831 0.922784 0.916257 0.910221 0.90465 0.899517 0.894797 0.890465 0.886499 0.882875 0.879573 0.876572 0.873852 0.871395 0.869181 0.867195 0.86542 0.863839 0.862438 0.861202 0.860118 0.859173 0.858353 0.857648 0.857047 0.856538 0.856112 0.855759 0.855472 0.855241 0.855059 0.854918 0.854813 0.854737 0.854685 0.854652 0.854633 0.854625 0.854623 0.854626 0.85463 0.854635 0.854638 0.854639 0.854638 0.854635 0.85463 0.854626 0.854623 0.854625 0.854633 0.854652 0.854685 0.854737 0.854813 0.854918 0.855059 0.855241 0.855472 0.855759 0.856112 0.856538 0.857047 0.857648 0.858353 0.859173 0.860118 0.861202 0.862438 0.863839 0.86542 0.867195 0.869181 0.871395 0.873852 0.876572 0.879573 0.882875 0.886499 0.890465 0.894797 0.899517 0.90465 0.910221 0.916257 0.922784 0.929831 0.937429 0.945608 0.9544 0.963839 0.973961 0.984802 0.9964 +0.9936 0.982138 0.97143 0.961436 0.95212 0.943446 0.935381 0.927893 0.92095 0.914524 0.908585 0.903106 0.898062 0.893427 0.889178 0.885289 0.881741 0.878511 0.875579 0.872926 0.870532 0.868379 0.866451 0.864731 0.863203 0.861853 0.860665 0.859627 0.858725 0.857947 0.857281 0.856716 0.856242 0.855849 0.855528 0.855269 0.855065 0.854907 0.85479 0.854706 0.85465 0.854615 0.854597 0.854592 0.854595 0.854604 0.854615 0.854626 0.854635 0.854641 0.854643 0.854641 0.854635 0.854626 0.854615 0.854604 0.854595 0.854592 0.854597 0.854615 0.85465 0.854706 0.85479 0.854907 0.855065 0.855269 0.855528 0.855849 0.856242 0.856716 0.857281 0.857947 0.858725 0.859627 0.860665 0.861853 0.863203 0.864731 0.866451 0.868379 0.870532 0.872926 0.875579 0.878511 0.881741 0.885289 0.889178 0.893427 0.898062 0.903106 0.908585 0.914524 0.92095 0.927893 0.935381 0.943446 0.95212 0.961436 0.97143 0.982138 0.9936 +0.99 0.978716 0.968179 0.95835 0.949192 0.940671 0.932752 0.925404 0.918597 0.9123 0.906485 0.901125 0.896195 0.89167 0.887526 0.883738 0.880287 0.87715 0.874307 0.871738 0.869426 0.867352 0.865498 0.86385 0.86239 0.861104 0.859978 0.858999 0.858153 0.857428 0.856812 0.856295 0.855866 0.855515 0.855233 0.855011 0.854841 0.854716 0.854628 0.854572 0.85454 0.854528 0.85453 0.854542 0.854561 0.854582 0.854604 0.854623 0.854638 0.854648 0.854651 0.854648 0.854638 0.854623 0.854604 0.854582 0.854561 0.854542 0.85453 0.854528 0.85454 0.854572 0.854628 0.854716 0.854841 0.855011 0.855233 0.855515 0.855866 0.856295 0.856812 0.857428 0.858153 0.858999 0.859978 0.861104 0.86239 0.86385 0.865498 0.867352 0.869426 0.871738 0.874307 0.87715 0.880287 0.883738 0.887526 0.89167 0.896195 0.901125 0.906485 0.9123 0.918597 0.925404 0.932752 0.940671 0.949192 0.95835 0.968179 0.978716 0.99 +0.9856 0.974535 0.964209 0.954582 0.945619 0.937284 0.929544 0.922368 0.915725 0.909586 0.903923 0.898709 0.893919 0.889528 0.885512 0.881848 0.878514 0.875491 0.872757 0.870292 0.86808 0.866101 0.864339 0.862777 0.8614 0.860194 0.859144 0.858236 0.857458 0.856798 0.856244 0.855785 0.85541 0.855111 0.854877 0.854701 0.854573 0.854487 0.854436 0.854412 0.854411 0.854426 0.854452 0.854486 0.854524 0.854561 0.854595 0.854625 0.854647 0.854661 0.854665 0.854661 0.854647 0.854625 0.854595 0.854561 0.854524 0.854486 0.854452 0.854426 0.854411 0.854412 0.854436 0.854487 0.854573 0.854701 0.854877 0.855111 0.85541 0.855785 0.856244 0.856798 0.857458 0.858236 0.859144 0.860194 0.8614 0.862777 0.864339 0.866101 0.86808 0.870292 0.872757 0.875491 0.878514 0.881848 0.885512 0.889528 0.893919 0.898709 0.903923 0.909586 0.915725 0.922368 0.929544 0.937284 0.945619 0.954582 0.964209 0.974535 0.9856 +0.9804 0.969596 0.959521 0.950134 0.941401 0.933287 0.925759 0.918786 0.912338 0.906386 0.900902 0.89586 0.891235 0.887002 0.883138 0.87962 0.876426 0.873537 0.870931 0.86859 0.866495 0.864629 0.862974 0.861516 0.860238 0.859125 0.858164 0.857341 0.856644 0.856061 0.855579 0.855188 0.854879 0.85464 0.854464 0.854341 0.854263 0.854223 0.854215 0.85423 0.854264 0.854312 0.854367 0.854427 0.854486 0.854542 0.854592 0.854633 0.854664 0.854683 0.854689 0.854683 0.854664 0.854633 0.854592 0.854542 0.854486 0.854427 0.854367 0.854312 0.854264 0.85423 0.854215 0.854223 0.854263 0.854341 0.854464 0.85464 0.854879 0.855188 0.855579 0.856061 0.856644 0.857341 0.858164 0.859125 0.860238 0.861516 0.862974 0.864629 0.866495 0.86859 0.870931 0.873537 0.876426 0.87962 0.883138 0.887002 0.891235 0.89586 0.900902 0.906386 0.912338 0.918786 0.925759 0.933287 0.941401 0.950134 0.959521 0.969596 0.9804 +0.9744 0.9639 0.954115 0.945007 0.93654 0.928681 0.921398 0.914659 0.908435 0.902699 0.897422 0.892578 0.888144 0.884094 0.880405 0.877056 0.874024 0.871289 0.868832 0.866633 0.864674 0.862938 0.861409 0.860069 0.858905 0.8579 0.857043 0.856318 0.855714 0.855219 0.854821 0.85451 0.854275 0.854106 0.853996 0.853935 0.853915 0.853928 0.853969 0.85403 0.854105 0.85419 0.854279 0.854367 0.854452 0.85453 0.854597 0.854652 0.854692 0.854717 0.854726 0.854717 0.854692 0.854652 0.854597 0.85453 0.854452 0.854367 0.854279 0.85419 0.854105 0.85403 0.853969 0.853928 0.853915 0.853935 0.853996 0.854106 0.854275 0.85451 0.854821 0.855219 0.855714 0.856318 0.857043 0.8579 0.858905 0.860069 0.861409 0.862938 0.864674 0.866633 0.868832 0.871289 0.874024 0.877056 0.880405 0.884094 0.888144 0.892578 0.897422 0.902699 0.908435 0.914659 0.921398 0.928681 0.93654 0.945007 0.954115 0.9639 0.9744 +0.9676 0.957447 0.947992 0.9392 0.931036 0.923467 0.91646 0.909987 0.904019 0.898527 0.893484 0.888866 0.884648 0.880806 0.877316 0.874158 0.871309 0.868751 0.866462 0.864425 0.86262 0.861033 0.859644 0.85844 0.857404 0.856523 0.855782 0.855169 0.854671 0.854276 0.853973 0.853752 0.853602 0.853513 0.853477 0.853486 0.853531 0.853605 0.853702 0.853814 0.853936 0.854063 0.85419 0.854312 0.854426 0.854528 0.854615 0.854685 0.854737 0.854768 0.854779 0.854768 0.854737 0.854685 0.854615 0.854528 0.854426 0.854312 0.85419 0.854063 0.853936 0.853814 0.853702 0.853605 0.853531 0.853486 0.853477 0.853513 0.853602 0.853752 0.853973 0.854276 0.854671 0.855169 0.855782 0.856523 0.857404 0.85844 0.859644 0.861033 0.86262 0.864425 0.866462 0.868751 0.871309 0.874158 0.877316 0.880806 0.884648 0.888866 0.893484 0.898527 0.904019 0.909987 0.91646 0.923467 0.931036 0.9392 0.947992 0.957447 0.9676 +0.96 0.950235 0.941152 0.932714 0.924888 0.917642 0.910946 0.904771 0.899087 0.893869 0.889089 0.884723 0.880747 0.877137 0.873871 0.870927 0.868284 0.865923 0.863823 0.861967 0.860336 0.858914 0.857684 0.856631 0.85574 0.854996 0.854387 0.853898 0.853519 0.853236 0.85304 0.852919 0.852863 0.852864 0.852912 0.852999 0.853117 0.853259 0.853418 0.853587 0.853762 0.853936 0.854105 0.854264 0.854411 0.85454 0.85465 0.854737 0.854801 0.85484 0.854853 0.85484 0.854801 0.854737 0.85465 0.85454 0.854411 0.854264 0.854105 0.853936 0.853762 0.853587 0.853418 0.853259 0.853117 0.852999 0.852912 0.852864 0.852863 0.852919 0.85304 0.853236 0.853519 0.853898 0.854387 0.854996 0.85574 0.856631 0.857684 0.858914 0.860336 0.861967 0.863823 0.865923 0.868284 0.870927 0.873871 0.877137 0.880747 0.884723 0.889089 0.893869 0.899087 0.904771 0.910946 0.917642 0.924888 0.932714 0.941152 0.950235 0.96 +0.9516 0.942266 0.933593 0.925546 0.918095 0.911207 0.904854 0.899007 0.893639 0.888724 0.884235 0.880149 0.876441 0.873089 0.870071 0.867364 0.86495 0.862807 0.860917 0.859261 0.857823 0.856585 0.855531 0.854646 0.853915 0.853324 0.85286 0.852509 0.852261 0.852103 0.852024 0.852015 0.852064 0.852164 0.852304 0.852478 0.852677 0.852893 0.853122 0.853355 0.853587 0.853814 0.85403 0.85423 0.854412 0.854572 0.854706 0.854813 0.854891 0.854938 0.854954 0.854938 0.854891 0.854813 0.854706 0.854572 0.854412 0.85423 0.85403 0.853814 0.853587 0.853355 0.853122 0.852893 0.852677 0.852478 0.852304 0.852164 0.852064 0.852015 0.852024 0.852103 0.852261 0.852509 0.85286 0.853324 0.853915 0.854646 0.855531 0.856585 0.857823 0.859261 0.860917 0.862807 0.86495 0.867364 0.870071 0.873089 0.876441 0.880149 0.884235 0.888724 0.893639 0.899007 0.904854 0.911207 0.918095 0.925546 0.933593 0.942266 0.9516 +0.9424 0.933537 0.925313 0.917695 0.910653 0.904158 0.898181 0.892695 0.887673 0.88309 0.878921 0.875142 0.871729 0.868661 0.865915 0.86347 0.861306 0.859403 0.857744 0.85631 0.855083 0.854047 0.853187 0.852487 0.851932 0.851509 0.851205 0.851006 0.850902 0.850881 0.850932 0.851044 0.851209 0.851417 0.851659 0.851928 0.852216 0.852515 0.852819 0.853122 0.853418 0.853702 0.853969 0.854215 0.854436 0.854628 0.85479 0.854918 0.855011 0.855067 0.855086 0.855067 0.855011 0.854918 0.85479 0.854628 0.854436 0.854215 0.853969 0.853702 0.853418 0.853122 0.852819 0.852515 0.852216 0.851928 0.851659 0.851417 0.851209 0.851044 0.850932 0.850881 0.850902 0.851006 0.851205 0.851509 0.851932 0.852487 0.853187 0.854047 0.855083 0.85631 0.857744 0.859403 0.861306 0.86347 0.865915 0.868661 0.871729 0.875142 0.878921 0.88309 0.887673 0.892695 0.898181 0.904158 0.910653 0.917695 0.925313 0.933537 0.9424 +0.9324 0.924048 0.916311 0.909158 0.902561 0.896492 0.890923 0.88583 0.881185 0.876965 0.873144 0.8697 0.86661 0.863851 0.861402 0.859243 0.857353 0.855714 0.854307 0.853114 0.852119 0.851305 0.850656 0.850157 0.849795 0.849556 0.849426 0.849394 0.849447 0.849575 0.849767 0.850013 0.850304 0.85063 0.850983 0.851355 0.851739 0.852128 0.852515 0.852893 0.853259 0.853605 0.853928 0.854223 0.854487 0.854716 0.854907 0.855059 0.855168 0.855234 0.855256 0.855234 0.855168 0.855059 0.854907 0.854716 0.854487 0.854223 0.853928 0.853605 0.853259 0.852893 0.852515 0.852128 0.851739 0.851355 0.850983 0.85063 0.850304 0.850013 0.849767 0.849575 0.849447 0.849394 0.849426 0.849556 0.849795 0.850157 0.850656 0.851305 0.852119 0.853114 0.854307 0.855714 0.857353 0.859243 0.861402 0.863851 0.86661 0.8697 0.873144 0.876965 0.881185 0.88583 0.890923 0.896492 0.902561 0.909158 0.916311 0.924048 0.9324 +0.9216 0.913797 0.906583 0.899931 0.893813 0.888204 0.883077 0.878408 0.874172 0.870344 0.866901 0.86382 0.861079 0.858657 0.856531 0.854683 0.853091 0.851738 0.850606 0.849676 0.848932 0.848358 0.84794 0.847661 0.847508 0.847468 0.847528 0.847676 0.8479 0.84819 0.848535 0.848926 0.849353 0.849807 0.85028 0.850765 0.851253 0.851739 0.852216 0.852677 0.853117 0.853531 0.853915 0.854263 0.854573 0.854841 0.855065 0.855241 0.855368 0.855445 0.855471 0.855445 0.855368 0.855241 0.855065 0.854841 0.854573 0.854263 0.853915 0.853531 0.853117 0.852677 0.852216 0.851739 0.851253 0.850765 0.85028 0.849807 0.849353 0.848926 0.848535 0.84819 0.8479 0.847676 0.847528 0.847468 0.847508 0.847661 0.84794 0.848358 0.848932 0.849676 0.850606 0.851738 0.853091 0.854683 0.856531 0.858657 0.861079 0.86382 0.866901 0.870344 0.874172 0.878408 0.883077 0.888204 0.893813 0.899931 0.906583 0.913797 0.9216 +0.91 0.902782 0.896127 0.89001 0.884405 0.879289 0.874637 0.870424 0.866627 0.863223 0.860187 0.857499 0.855136 0.853077 0.851301 0.849788 0.848519 0.847476 0.846641 0.845995 0.845524 0.845211 0.845041 0.845 0.845073 0.845249 0.845514 0.845857 0.846266 0.846731 0.847241 0.847788 0.848362 0.848955 0.849557 0.850163 0.850765 0.851355 0.851928 0.852478 0.852999 0.853486 0.853935 0.854341 0.854701 0.855011 0.855269 0.855472 0.855618 0.855707 0.855736 0.855707 0.855618 0.855472 0.855269 0.855011 0.854701 0.854341 0.853935 0.853486 0.852999 0.852478 0.851928 0.851355 0.850765 0.850163 0.849557 0.848955 0.848362 0.847788 0.847241 0.846731 0.846266 0.845857 0.845514 0.845249 0.845073 0.845 0.845041 0.845211 0.845524 0.845995 0.846641 0.847476 0.848519 0.849788 0.851301 0.853077 0.855136 0.857499 0.860187 0.863223 0.866627 0.870424 0.874637 0.879289 0.884405 0.89001 0.896127 0.902782 0.91 +0.8976 0.891001 0.884939 0.87939 0.874332 0.869742 0.865597 0.861872 0.858546 0.855596 0.852998 0.850732 0.848775 0.847107 0.845708 0.844557 0.843637 0.842927 0.842412 0.842074 0.841896 0.841864 0.841963 0.842177 0.842495 0.842903 0.843389 0.843941 0.844549 0.845203 0.845891 0.846606 0.847338 0.848079 0.848822 0.849557 0.85028 0.850983 0.851659 0.852304 0.852912 0.853477 0.853996 0.854464 0.854877 0.855233 0.855528 0.855759 0.855926 0.856027 0.856061 0.856027 0.855926 0.855759 0.855528 0.855233 0.854877 0.854464 0.853996 0.853477 0.852912 0.852304 0.851659 0.850983 0.85028 0.849557 0.848822 0.848079 0.847338 0.846606 0.845891 0.845203 0.844549 0.843941 0.843389 0.842903 0.842495 0.842177 0.841963 0.841864 0.841896 0.842074 0.842412 0.842927 0.843637 0.844557 0.845708 0.847107 0.848775 0.850732 0.852998 0.855596 0.858546 0.861872 0.865597 0.869742 0.874332 0.87939 0.884939 0.891001 0.8976 +0.8844 0.878451 0.873014 0.868066 0.863588 0.859557 0.85595 0.852746 0.849923 0.847458 0.845328 0.843514 0.841993 0.840745 0.83975 0.838988 0.838441 0.838091 0.83792 0.837912 0.83805 0.83832 0.838707 0.839197 0.839777 0.840434 0.841158 0.841935 0.842757 0.843612 0.844492 0.845386 0.846288 0.847188 0.848079 0.848955 0.849807 0.85063 0.851417 0.852164 0.852864 0.853513 0.854106 0.85464 0.855111 0.855515 0.855849 0.856112 0.856301 0.856415 0.856453 0.856415 0.856301 0.856112 0.855849 0.855515 0.855111 0.85464 0.854106 0.853513 0.852864 0.852164 0.851417 0.85063 0.849807 0.848955 0.848079 0.847188 0.846288 0.845386 0.844492 0.843612 0.842757 0.841935 0.841158 0.840434 0.839777 0.839197 0.838707 0.83832 0.83805 0.837912 0.83792 0.838091 0.838441 0.838988 0.83975 0.840745 0.841993 0.843514 0.845328 0.847458 0.849923 0.852746 0.85595 0.859557 0.863588 0.868066 0.873014 0.878451 0.8844 +0.8704 0.865131 0.860349 0.856034 0.852166 0.848726 0.84569 0.843039 0.84075 0.838802 0.837172 0.83584 0.834785 0.833986 0.833424 0.833079 0.832932 0.832967 0.833165 0.833511 0.833988 0.834581 0.835277 0.836062 0.836923 0.837847 0.838825 0.839843 0.840893 0.841964 0.843048 0.844135 0.845218 0.846288 0.847338 0.848362 0.849353 0.850304 0.851209 0.852064 0.852863 0.853602 0.854275 0.854879 0.85541 0.855866 0.856242 0.856538 0.85675 0.856878 0.856921 0.856878 0.85675 0.856538 0.856242 0.855866 0.85541 0.854879 0.854275 0.853602 0.852863 0.852064 0.851209 0.850304 0.849353 0.848362 0.847338 0.846288 0.845218 0.844135 0.843048 0.841964 0.840893 0.839843 0.838825 0.837847 0.836923 0.836062 0.835277 0.834581 0.833988 0.833511 0.833165 0.832967 0.832932 0.833079 0.833424 0.833986 0.834785 0.83584 0.837172 0.838802 0.84075 0.843039 0.84569 0.848726 0.852166 0.856034 0.860349 0.865131 0.8704 +0.8556 0.851039 0.84694 0.843287 0.840062 0.837243 0.834811 0.832745 0.831022 0.829622 0.828524 0.827706 0.827147 0.826827 0.826726 0.826826 0.827108 0.827554 0.828146 0.82887 0.829709 0.830649 0.831675 0.832775 0.833936 0.835147 0.836395 0.837671 0.838964 0.840266 0.841567 0.84286 0.844135 0.845386 0.846606 0.847788 0.848926 0.850013 0.851044 0.852015 0.852919 0.853752 0.85451 0.855188 0.855785 0.856295 0.856716 0.857047 0.857284 0.857427 0.857475 0.857427 0.857284 0.857047 0.856716 0.856295 0.855785 0.855188 0.85451 0.853752 0.852919 0.852015 0.851044 0.850013 0.848926 0.847788 0.846606 0.845386 0.844135 0.84286 0.841567 0.840266 0.838964 0.837671 0.836395 0.835147 0.833936 0.832775 0.831675 0.830649 0.829709 0.82887 0.828146 0.827554 0.827108 0.826826 0.826726 0.826827 0.827147 0.827706 0.828524 0.829622 0.831022 0.832745 0.834811 0.837243 0.840062 0.843287 0.84694 0.851039 0.8556 +0.84 0.836171 0.832783 0.829821 0.827267 0.825102 0.823305 0.821855 0.820732 0.819913 0.819378 0.819105 0.819073 0.819263 0.819655 0.820229 0.820966 0.821851 0.822864 0.823991 0.825217 0.826526 0.827905 0.829341 0.830822 0.832337 0.833874 0.835424 0.836977 0.838524 0.840057 0.841567 0.843048 0.844492 0.845891 0.847241 0.848535 0.849767 0.850932 0.852024 0.85304 0.853973 0.854821 0.855579 0.856244 0.856812 0.857281 0.857648 0.857912 0.858071 0.858124 0.858071 0.857912 0.857648 0.857281 0.856812 0.856244 0.855579 0.854821 0.853973 0.85304 0.852024 0.850932 0.849767 0.848535 0.847241 0.845891 0.844492 0.843048 0.841567 0.840057 0.838524 0.836977 0.835424 0.833874 0.832337 0.830822 0.829341 0.827905 0.826526 0.825217 0.823991 0.822864 0.821851 0.820966 0.820229 0.819655 0.819263 0.819073 0.819105 0.819378 0.819913 0.820732 0.821855 0.823305 0.825102 0.827267 0.829821 0.832783 0.836171 0.84 +0.8236 0.820525 0.817874 0.815631 0.813778 0.812296 0.811165 0.810365 0.809873 0.809668 0.809728 0.810033 0.810561 0.811292 0.812206 0.813284 0.814507 0.815857 0.817319 0.818876 0.820512 0.822214 0.823969 0.825763 0.827584 0.829423 0.831268 0.833109 0.834938 0.836746 0.838524 0.840266 0.841964 0.843612 0.845203 0.846731 0.84819 0.849575 0.850881 0.852103 0.853236 0.854276 0.855219 0.856061 0.856798 0.857428 0.857947 0.858353 0.858645 0.858821 0.858879 0.858821 0.858645 0.858353 0.857947 0.857428 0.856798 0.856061 0.855219 0.854276 0.853236 0.852103 0.850881 0.849575 0.84819 0.846731 0.845203 0.843612 0.841964 0.840266 0.838524 0.836746 0.834938 0.833109 0.831268 0.829423 0.827584 0.825763 0.823969 0.822214 0.820512 0.818876 0.817319 0.815857 0.814507 0.813284 0.812206 0.811292 0.810561 0.810033 0.809728 0.809668 0.809873 0.810365 0.811165 0.812296 0.813778 0.815631 0.817874 0.820525 0.8236 +0.8064 0.804101 0.80221 0.800712 0.799588 0.79882 0.798387 0.798268 0.79844 0.798882 0.799571 0.800487 0.801607 0.802911 0.804379 0.805991 0.807729 0.809575 0.811512 0.813525 0.815598 0.817718 0.819871 0.822045 0.824228 0.826411 0.828582 0.830732 0.832854 0.834938 0.836977 0.838964 0.840893 0.842757 0.844549 0.846266 0.8479 0.849447 0.850902 0.852261 0.853519 0.854671 0.855714 0.856644 0.857458 0.858153 0.858725 0.859173 0.859494 0.859687 0.859752 0.859687 0.859494 0.859173 0.858725 0.858153 0.857458 0.856644 0.855714 0.854671 0.853519 0.852261 0.850902 0.849447 0.8479 0.846266 0.844549 0.842757 0.840893 0.838964 0.836977 0.834938 0.832854 0.830732 0.828582 0.826411 0.824228 0.822045 0.819871 0.817718 0.815598 0.813525 0.811512 0.809575 0.807729 0.805991 0.804379 0.802911 0.801607 0.800487 0.799571 0.798882 0.79844 0.798268 0.798387 0.79882 0.799588 0.800712 0.80221 0.804101 0.8064 +0.7884 0.786896 0.785789 0.785061 0.784695 0.78467 0.784966 0.78556 0.786429 0.787551 0.788903 0.790462 0.792207 0.794117 0.79617 0.798348 0.800631 0.803002 0.805444 0.80794 0.810477 0.81304 0.815615 0.818192 0.820759 0.823306 0.825823 0.828301 0.830732 0.833109 0.835424 0.837671 0.839843 0.841935 0.843941 0.845857 0.847676 0.849394 0.851006 0.852509 0.853898 0.855169 0.856318 0.857341 0.858236 0.858999 0.859627 0.860118 0.86047 0.860682 0.860753 0.860682 0.86047 0.860118 0.859627 0.858999 0.858236 0.857341 0.856318 0.855169 0.853898 0.852509 0.851006 0.849394 0.847676 0.845857 0.843941 0.841935 0.839843 0.837671 0.835424 0.833109 0.830732 0.828301 0.825823 0.823306 0.820759 0.818192 0.815615 0.81304 0.810477 0.80794 0.805444 0.803002 0.800631 0.798348 0.79617 0.794117 0.792207 0.790462 0.788903 0.787551 0.786429 0.78556 0.784966 0.78467 0.784695 0.785061 0.785789 0.786896 0.7884 +0.7696 0.768909 0.768607 0.768675 0.769093 0.769842 0.770898 0.772237 0.773836 0.775671 0.777719 0.779956 0.78236 0.784909 0.787581 0.790356 0.793216 0.796142 0.799117 0.802125 0.805152 0.808184 0.811207 0.814211 0.817183 0.820116 0.822998 0.825823 0.828582 0.831268 0.833874 0.836395 0.838825 0.841158 0.843389 0.845514 0.847528 0.849426 0.851205 0.85286 0.854387 0.855782 0.857043 0.858164 0.859144 0.859978 0.860665 0.861202 0.861587 0.861819 0.861896 0.861819 0.861587 0.861202 0.860665 0.859978 0.859144 0.858164 0.857043 0.855782 0.854387 0.85286 0.851205 0.849426 0.847528 0.845514 0.843389 0.841158 0.838825 0.836395 0.833874 0.831268 0.828582 0.825823 0.822998 0.820116 0.817183 0.814211 0.811207 0.808184 0.805152 0.802125 0.799117 0.796142 0.793216 0.790356 0.787581 0.784909 0.78236 0.779956 0.777719 0.775671 0.773836 0.772237 0.770898 0.769842 0.769093 0.768675 0.768607 0.768909 0.7696 +0.75 0.75014 0.750664 0.751552 0.752783 0.754334 0.75618 0.758297 0.76066 0.763242 0.766021 0.76897 0.772066 0.775287 0.778611 0.782017 0.785485 0.788997 0.792535 0.796084 0.799629 0.803155 0.806651 0.810106 0.813507 0.816847 0.820116 0.823306 0.826411 0.829423 0.832337 0.835147 0.837847 0.840434 0.842903 0.845249 0.847468 0.849556 0.851509 0.853324 0.854996 0.856523 0.8579 0.859125 0.860194 0.861104 0.861853 0.862438 0.862857 0.86311 0.863194 0.86311 0.862857 0.862438 0.861853 0.861104 0.860194 0.859125 0.8579 0.856523 0.854996 0.853324 0.851509 0.849556 0.847468 0.845249 0.842903 0.840434 0.837847 0.835147 0.832337 0.829423 0.826411 0.823306 0.820116 0.816847 0.813507 0.810106 0.806651 0.803155 0.799629 0.796084 0.792535 0.788997 0.785485 0.782017 0.778611 0.775287 0.772066 0.76897 0.766021 0.763242 0.76066 0.758297 0.75618 0.754334 0.752783 0.751552 0.750664 0.75014 0.75 +0.7296 0.730588 0.731959 0.733691 0.735762 0.738144 0.740813 0.74374 0.7469 0.750264 0.753807 0.757503 0.761326 0.765254 0.769263 0.773332 0.77744 0.781569 0.785701 0.78982 0.793911 0.79796 0.801955 0.805884 0.809738 0.813507 0.817183 0.820759 0.824228 0.827584 0.830822 0.833936 0.836923 0.839777 0.842495 0.845073 0.847508 0.849795 0.851932 0.853915 0.85574 0.857404 0.858905 0.860238 0.8614 0.86239 0.863203 0.863839 0.864295 0.864569 0.86466 0.864569 0.864295 0.863839 0.863203 0.86239 0.8614 0.860238 0.858905 0.857404 0.85574 0.853915 0.851932 0.849795 0.847508 0.845073 0.842495 0.839777 0.836923 0.833936 0.830822 0.827584 0.824228 0.820759 0.817183 0.813507 0.809738 0.805884 0.801955 0.79796 0.793911 0.78982 0.785701 0.781569 0.77744 0.773332 0.769263 0.765254 0.761326 0.757503 0.753807 0.750264 0.7469 0.74374 0.740813 0.738144 0.735762 0.733691 0.731959 0.730588 0.7296 +0.7084 0.710253 0.712492 0.715094 0.718031 0.721275 0.724797 0.728568 0.732557 0.736738 0.74108 0.745557 0.750143 0.754812 0.759541 0.764306 0.769087 0.773865 0.778622 0.78334 0.788006 0.792604 0.797124 0.801554 0.805884 0.810106 0.814211 0.818192 0.822045 0.825763 0.829341 0.832775 0.836062 0.839197 0.842177 0.845 0.847661 0.850157 0.852487 0.854646 0.856631 0.85844 0.860069 0.861516 0.862777 0.86385 0.864731 0.86542 0.865913 0.86621 0.866309 0.86621 0.865913 0.86542 0.864731 0.86385 0.862777 0.861516 0.860069 0.85844 0.856631 0.854646 0.852487 0.850157 0.847661 0.845 0.842177 0.839197 0.836062 0.832775 0.829341 0.825763 0.822045 0.818192 0.814211 0.810106 0.805884 0.801554 0.797124 0.792604 0.788006 0.78334 0.778622 0.773865 0.769087 0.764306 0.759541 0.754812 0.750143 0.745557 0.74108 0.736738 0.732557 0.728568 0.724797 0.721275 0.718031 0.715094 0.712492 0.710253 0.7084 +0.6864 0.689136 0.692266 0.695763 0.699594 0.703729 0.708137 0.712783 0.717637 0.722668 0.727845 0.733139 0.738522 0.743967 0.749449 0.754945 0.760432 0.765891 0.771303 0.776651 0.781921 0.787097 0.792169 0.797124 0.801955 0.806651 0.811207 0.815615 0.819871 0.823969 0.827905 0.831675 0.835277 0.838707 0.841963 0.845041 0.84794 0.850656 0.853187 0.855531 0.857684 0.859644 0.861409 0.862974 0.864339 0.865498 0.866451 0.867195 0.867728 0.868049 0.868156 0.868049 0.867728 0.867195 0.866451 0.865498 0.864339 0.862974 0.861409 0.859644 0.857684 0.855531 0.853187 0.850656 0.84794 0.845041 0.841963 0.838707 0.835277 0.831675 0.827905 0.823969 0.819871 0.815615 0.811207 0.806651 0.801955 0.797124 0.792169 0.787097 0.781921 0.776651 0.771303 0.765891 0.760432 0.754945 0.749449 0.743967 0.738522 0.733139 0.727845 0.722668 0.717637 0.712783 0.708137 0.703729 0.699594 0.695763 0.692266 0.689136 0.6864 +0.6636 0.667239 0.671283 0.6757 0.680455 0.685512 0.690837 0.696393 0.702146 0.708063 0.71411 0.720256 0.726471 0.732727 0.738997 0.745257 0.751483 0.757656 0.763754 0.769763 0.775665 0.781447 0.787097 0.792604 0.79796 0.803155 0.808184 0.81304 0.817718 0.822214 0.826526 0.830649 0.834581 0.83832 0.841864 0.845211 0.848358 0.851305 0.854047 0.856585 0.858914 0.861033 0.862938 0.864629 0.866101 0.867352 0.868379 0.869181 0.869756 0.870101 0.870217 0.870101 0.869756 0.869181 0.868379 0.867352 0.866101 0.864629 0.862938 0.861033 0.858914 0.856585 0.854047 0.851305 0.848358 0.845211 0.841864 0.83832 0.834581 0.830649 0.826526 0.822214 0.817718 0.81304 0.808184 0.803155 0.79796 0.792604 0.787097 0.781447 0.775665 0.769763 0.763754 0.757656 0.751483 0.745257 0.738997 0.732727 0.726471 0.720256 0.71411 0.708063 0.702146 0.696393 0.690837 0.685512 0.680455 0.6757 0.671283 0.667239 0.6636 +0.64 0.644564 0.649547 0.654912 0.66062 0.666631 0.672906 0.679406 0.686093 0.69293 0.699883 0.706917 0.713999 0.721101 0.728194 0.735252 0.74225 0.749168 0.755985 0.762684 0.769248 0.775665 0.781921 0.788006 0.793911 0.799629 0.805152 0.810477 0.815598 0.820512 0.825217 0.829709 0.833988 0.83805 0.841896 0.845524 0.848932 0.852119 0.855083 0.857823 0.860336 0.86262 0.864674 0.866495 0.86808 0.869426 0.870532 0.871395 0.872012 0.872384 0.872508 0.872384 0.872012 0.871395 0.870532 0.869426 0.86808 0.866495 0.864674 0.86262 0.860336 0.857823 0.855083 0.852119 0.848932 0.845524 0.841896 0.83805 0.833988 0.829709 0.825217 0.820512 0.815598 0.810477 0.805152 0.799629 0.793911 0.788006 0.781921 0.775665 0.769248 0.762684 0.755985 0.749168 0.74225 0.735252 0.728194 0.721101 0.713999 0.706917 0.699883 0.69293 0.686093 0.679406 0.672906 0.666631 0.66062 0.654912 0.649547 0.644564 0.64 +0.6156 0.621113 0.627062 0.633405 0.640097 0.647094 0.654354 0.661832 0.669488 0.677283 0.685176 0.693134 0.70112 0.709103 0.717052 0.724942 0.732746 0.740442 0.748008 0.755428 0.762684 0.769763 0.776651 0.78334 0.78982 0.796084 0.802125 0.80794 0.813525 0.818876 0.823991 0.82887 0.833511 0.837912 0.842074 0.845995 0.849676 0.853114 0.85631 0.859261 0.861967 0.864425 0.866633 0.86859 0.870292 0.871738 0.872926 0.873852 0.874515 0.874914 0.875047 0.874914 0.874515 0.873852 0.872926 0.871738 0.870292 0.86859 0.866633 0.864425 0.861967 0.859261 0.85631 0.853114 0.849676 0.845995 0.842074 0.837912 0.833511 0.82887 0.823991 0.818876 0.813525 0.80794 0.802125 0.796084 0.78982 0.78334 0.776651 0.769763 0.762684 0.755428 0.748008 0.740442 0.732746 0.724942 0.717052 0.709103 0.70112 0.693134 0.685176 0.677283 0.669488 0.661832 0.654354 0.647094 0.640097 0.633405 0.627062 0.621113 0.6156 +0.5904 0.59689 0.603835 0.611187 0.618897 0.626916 0.635195 0.643688 0.652349 0.661136 0.670007 0.678924 0.687849 0.696747 0.705588 0.714343 0.722985 0.731491 0.739838 0.748008 0.755985 0.763754 0.771303 0.778622 0.785701 0.792535 0.799117 0.805444 0.811512 0.817319 0.822864 0.828146 0.833165 0.83792 0.842412 0.846641 0.850606 0.854307 0.857744 0.860917 0.863823 0.866462 0.868832 0.870931 0.872757 0.874307 0.875579 0.876572 0.877282 0.87771 0.877852 0.87771 0.877282 0.876572 0.875579 0.874307 0.872757 0.870931 0.868832 0.866462 0.863823 0.860917 0.857744 0.854307 0.850606 0.846641 0.842412 0.83792 0.833165 0.828146 0.822864 0.817319 0.811512 0.805444 0.799117 0.792535 0.785701 0.778622 0.771303 0.763754 0.755985 0.748008 0.739838 0.731491 0.722985 0.714343 0.705588 0.696747 0.687849 0.678924 0.670007 0.661136 0.652349 0.643688 0.635195 0.626916 0.618897 0.611187 0.603835 0.59689 0.5904 +0.5644 0.571899 0.579874 0.58827 0.597034 0.60611 0.615445 0.624989 0.634693 0.64451 0.654395 0.664306 0.674204 0.684053 0.69382 0.703473 0.712986 0.722332 0.731491 0.740442 0.749168 0.757656 0.765891 0.773865 0.781569 0.788997 0.796142 0.803002 0.809575 0.815857 0.821851 0.827554 0.832967 0.838091 0.842927 0.847476 0.851738 0.855714 0.859403 0.862807 0.865923 0.868751 0.871289 0.873537 0.875491 0.87715 0.878511 0.879573 0.880333 0.88079 0.880942 0.88079 0.880333 0.879573 0.878511 0.87715 0.875491 0.873537 0.871289 0.868751 0.865923 0.862807 0.859403 0.855714 0.851738 0.847476 0.842927 0.838091 0.832967 0.827554 0.821851 0.815857 0.809575 0.803002 0.796142 0.788997 0.781569 0.773865 0.765891 0.757656 0.749168 0.740442 0.731491 0.722332 0.712986 0.703473 0.69382 0.684053 0.674204 0.664306 0.654395 0.64451 0.634693 0.624989 0.615445 0.60611 0.597034 0.58827 0.579874 0.571899 0.5644 +0.5376 0.546144 0.555187 0.564666 0.574521 0.584693 0.595124 0.605758 0.616542 0.627425 0.63836 0.649302 0.660209 0.671043 0.681768 0.692352 0.702767 0.712986 0.722985 0.732746 0.74225 0.751483 0.760432 0.769087 0.77744 0.785485 0.793216 0.800631 0.807729 0.814507 0.820966 0.827108 0.832932 0.838441 0.843637 0.848519 0.853091 0.857353 0.861306 0.86495 0.868284 0.871309 0.874024 0.876426 0.878514 0.880287 0.881741 0.882875 0.883687 0.884174 0.884337 0.884174 0.883687 0.882875 0.881741 0.880287 0.878514 0.876426 0.874024 0.871309 0.868284 0.86495 0.861306 0.857353 0.853091 0.848519 0.843637 0.838441 0.832932 0.827108 0.820966 0.814507 0.807729 0.800631 0.793216 0.785485 0.77744 0.769087 0.760432 0.751483 0.74225 0.732746 0.722985 0.712986 0.702767 0.692352 0.681768 0.671043 0.660209 0.649302 0.63836 0.627425 0.616542 0.605758 0.595124 0.584693 0.574521 0.564666 0.555187 0.546144 0.5376 +0.51 0.519632 0.529784 0.540388 0.551377 0.562687 0.574254 0.586017 0.59792 0.609907 0.62193 0.633938 0.645889 0.657741 0.669457 0.681005 0.692352 0.703473 0.714343 0.724942 0.735252 0.745257 0.754945 0.764306 0.773332 0.782017 0.790356 0.798348 0.805991 0.813284 0.820229 0.826826 0.833079 0.838988 0.844557 0.849788 0.854683 0.859243 0.86347 0.867364 0.870927 0.874158 0.877056 0.87962 0.881848 0.883738 0.885289 0.886499 0.887364 0.887884 0.888057 0.887884 0.887364 0.886499 0.885289 0.883738 0.881848 0.87962 0.877056 0.874158 0.870927 0.867364 0.86347 0.859243 0.854683 0.849788 0.844557 0.838988 0.833079 0.826826 0.820229 0.813284 0.805991 0.798348 0.790356 0.782017 0.773332 0.764306 0.754945 0.745257 0.735252 0.724942 0.714343 0.703473 0.692352 0.681005 0.669457 0.657741 0.645889 0.633938 0.62193 0.609907 0.59792 0.586017 0.574254 0.562687 0.551377 0.540388 0.529784 0.519632 0.51 +0.4816 0.492367 0.503676 0.515452 0.527622 0.540114 0.55286 0.565794 0.578856 0.591987 0.605134 0.618245 0.631273 0.644177 0.656916 0.669457 0.681768 0.69382 0.705588 0.717052 0.728194 0.738997 0.749449 0.759541 0.769263 0.778611 0.787581 0.79617 0.804379 0.812206 0.819655 0.826726 0.833424 0.83975 0.845708 0.851301 0.856531 0.861402 0.865915 0.870071 0.873871 0.877316 0.880405 0.883138 0.885512 0.887526 0.889178 0.890465 0.891387 0.89194 0.892125 0.89194 0.891387 0.890465 0.889178 0.887526 0.885512 0.883138 0.880405 0.877316 0.873871 0.870071 0.865915 0.861402 0.856531 0.851301 0.845708 0.83975 0.833424 0.826726 0.819655 0.812206 0.804379 0.79617 0.787581 0.778611 0.769263 0.759541 0.749449 0.738997 0.728194 0.717052 0.705588 0.69382 0.681768 0.669457 0.656916 0.644177 0.631273 0.618245 0.605134 0.591987 0.578856 0.565794 0.55286 0.540114 0.527622 0.515452 0.503676 0.492367 0.4816 +0.4524 0.464358 0.476878 0.489878 0.503278 0.517001 0.530972 0.545122 0.559385 0.573699 0.588007 0.602256 0.616396 0.630383 0.644177 0.657741 0.671043 0.684053 0.696747 0.709103 0.721101 0.732727 0.743967 0.754812 0.765254 0.775287 0.784909 0.794117 0.802911 0.811292 0.819263 0.826827 0.833986 0.840745 0.847107 0.853077 0.858657 0.863851 0.868661 0.873089 0.877137 0.880806 0.884094 0.887002 0.889528 0.89167 0.893427 0.894797 0.895777 0.896366 0.896562 0.896366 0.895777 0.894797 0.893427 0.89167 0.889528 0.887002 0.884094 0.880806 0.877137 0.873089 0.868661 0.863851 0.858657 0.853077 0.847107 0.840745 0.833986 0.826827 0.819263 0.811292 0.802911 0.794117 0.784909 0.775287 0.765254 0.754812 0.743967 0.732727 0.721101 0.709103 0.696747 0.684053 0.671043 0.657741 0.644177 0.630383 0.616396 0.602256 0.588007 0.573699 0.559385 0.545122 0.530972 0.517001 0.503278 0.489878 0.476878 0.464358 0.4524 +0.4224 0.435611 0.449403 0.463686 0.478372 0.493379 0.508625 0.524037 0.539544 0.555081 0.570588 0.58601 0.601294 0.616396 0.631273 0.645889 0.660209 0.674204 0.687849 0.70112 0.713999 0.726471 0.738522 0.750143 0.761326 0.772066 0.78236 0.792207 0.801607 0.810561 0.819073 0.827147 0.834785 0.841993 0.848775 0.855136 0.861079 0.86661 0.871729 0.876441 0.880747 0.884648 0.888144 0.891235 0.893919 0.896195 0.898062 0.899517 0.900558 0.901184 0.901392 0.901184 0.900558 0.899517 0.898062 0.896195 0.893919 0.891235 0.888144 0.884648 0.880747 0.876441 0.871729 0.86661 0.861079 0.855136 0.848775 0.841993 0.834785 0.827147 0.819073 0.810561 0.801607 0.792207 0.78236 0.772066 0.761326 0.750143 0.738522 0.726471 0.713999 0.70112 0.687849 0.674204 0.660209 0.645889 0.631273 0.616396 0.601294 0.58601 0.570588 0.555081 0.539544 0.524037 0.508625 0.493379 0.478372 0.463686 0.449403 0.435611 0.4224 +0.3916 0.406136 0.421268 0.436899 0.452933 0.46928 0.485855 0.502577 0.519373 0.536175 0.552919 0.569548 0.58601 0.602256 0.618245 0.633938 0.649302 0.664306 0.678924 0.693134 0.706917 0.720256 0.733139 0.745557 0.757503 0.76897 0.779956 0.790462 0.800487 0.810033 0.819105 0.827706 0.83584 0.843514 0.850732 0.857499 0.86382 0.8697 0.875142 0.880149 0.884723 0.888866 0.892578 0.89586 0.898709 0.901125 0.903106 0.90465 0.905755 0.906419 0.90664 0.906419 0.905755 0.90465 0.903106 0.901125 0.898709 0.89586 0.892578 0.888866 0.884723 0.880149 0.875142 0.8697 0.86382 0.857499 0.850732 0.843514 0.83584 0.827706 0.819105 0.810033 0.800487 0.790462 0.779956 0.76897 0.757503 0.745557 0.733139 0.720256 0.706917 0.693134 0.678924 0.664306 0.649302 0.633938 0.618245 0.602256 0.58601 0.569548 0.552919 0.536175 0.519373 0.502577 0.485855 0.46928 0.452933 0.436899 0.421268 0.406136 0.3916 +0.36 0.375941 0.392492 0.409544 0.426994 0.444745 0.462705 0.48079 0.498922 0.517029 0.535048 0.552919 0.570588 0.588007 0.605134 0.62193 0.63836 0.654395 0.670007 0.685176 0.699883 0.71411 0.727845 0.74108 0.753807 0.766021 0.777719 0.788903 0.799571 0.809728 0.819378 0.828524 0.837172 0.845328 0.852998 0.860187 0.866901 0.873144 0.878921 0.884235 0.889089 0.893484 0.897422 0.900902 0.903923 0.906485 0.908585 0.910221 0.911392 0.912096 0.91233 0.912096 0.911392 0.910221 0.908585 0.906485 0.903923 0.900902 0.897422 0.893484 0.889089 0.884235 0.878921 0.873144 0.866901 0.860187 0.852998 0.845328 0.837172 0.828524 0.819378 0.809728 0.799571 0.788903 0.777719 0.766021 0.753807 0.74108 0.727845 0.71411 0.699883 0.685176 0.670007 0.654395 0.63836 0.62193 0.605134 0.588007 0.570588 0.552919 0.535048 0.517029 0.498922 0.48079 0.462705 0.444745 0.426994 0.409544 0.392492 0.375941 0.36 +0.3276 0.345039 0.363096 0.381651 0.400594 0.419817 0.439225 0.458727 0.478242 0.497699 0.517029 0.536175 0.555081 0.573699 0.591987 0.609907 0.627425 0.64451 0.661136 0.677283 0.69293 0.708063 0.722668 0.736738 0.750264 0.763242 0.775671 0.787551 0.798882 0.809668 0.819913 0.829622 0.838802 0.847458 0.855596 0.863223 0.870344 0.876965 0.88309 0.888724 0.893869 0.898527 0.902699 0.906386 0.909586 0.9123 0.914524 0.916257 0.917497 0.918242 0.91849 0.918242 0.917497 0.916257 0.914524 0.9123 0.909586 0.906386 0.902699 0.898527 0.893869 0.888724 0.88309 0.876965 0.870344 0.863223 0.855596 0.847458 0.838802 0.829622 0.819913 0.809668 0.798882 0.787551 0.775671 0.763242 0.750264 0.736738 0.722668 0.708063 0.69293 0.677283 0.661136 0.64451 0.627425 0.609907 0.591987 0.573699 0.555081 0.536175 0.517029 0.497699 0.478242 0.458727 0.439225 0.419817 0.400594 0.381651 0.363096 0.345039 0.3276 +0.2944 0.313443 0.333105 0.353258 0.373777 0.394548 0.415469 0.436445 0.457395 0.478242 0.498922 0.519373 0.539544 0.559385 0.578856 0.59792 0.616542 0.634693 0.652349 0.669488 0.686093 0.702146 0.717637 0.732557 0.7469 0.76066 0.773836 0.786429 0.79844 0.809873 0.820732 0.831022 0.84075 0.849923 0.858546 0.866627 0.874172 0.881185 0.887673 0.893639 0.899087 0.904019 0.908435 0.912338 0.915725 0.918597 0.92095 0.922784 0.924096 0.924884 0.925147 0.924884 0.924096 0.922784 0.92095 0.918597 0.915725 0.912338 0.908435 0.904019 0.899087 0.893639 0.887673 0.881185 0.874172 0.866627 0.858546 0.849923 0.84075 0.831022 0.820732 0.809873 0.79844 0.786429 0.773836 0.76066 0.7469 0.732557 0.717637 0.702146 0.686093 0.669488 0.652349 0.634693 0.616542 0.59792 0.578856 0.559385 0.539544 0.519373 0.498922 0.478242 0.457395 0.436445 0.415469 0.394548 0.373777 0.353258 0.333105 0.313443 0.2944 +0.2604 0.281167 0.302551 0.324405 0.346594 0.368996 0.391501 0.414012 0.436445 0.458727 0.48079 0.502577 0.524037 0.545122 0.565794 0.586017 0.605758 0.624989 0.643688 0.661832 0.679406 0.696393 0.712783 0.728568 0.74374 0.758297 0.772237 0.78556 0.798268 0.810365 0.821855 0.832745 0.843039 0.852746 0.861872 0.870424 0.878408 0.88583 0.892695 0.899007 0.904771 0.909987 0.914659 0.918786 0.922368 0.925404 0.927893 0.929831 0.931218 0.932051 0.932329 0.932051 0.931218 0.929831 0.927893 0.925404 0.922368 0.918786 0.914659 0.909987 0.904771 0.899007 0.892695 0.88583 0.878408 0.870424 0.861872 0.852746 0.843039 0.832745 0.821855 0.810365 0.798268 0.78556 0.772237 0.758297 0.74374 0.728568 0.712783 0.696393 0.679406 0.661832 0.643688 0.624989 0.605758 0.586017 0.565794 0.545122 0.524037 0.502577 0.48079 0.458727 0.436445 0.414012 0.391501 0.368996 0.346594 0.324405 0.302551 0.281167 0.2604 +0.2256 0.248232 0.271469 0.295145 0.319109 0.34323 0.367393 0.391501 0.415469 0.439225 0.462705 0.485855 0.508625 0.530972 0.55286 0.574254 0.595124 0.615445 0.635195 0.654354 0.672906 0.690837 0.708137 0.724797 0.740813 0.75618 0.770898 0.784966 0.798387 0.811165 0.823305 0.834811 0.84569 0.85595 0.865597 0.874637 0.883077 0.890923 0.898181 0.904854 0.910946 0.91646 0.921398 0.925759 0.929544 0.932752 0.935381 0.937429 0.938894 0.939774 0.940067 0.939774 0.938894 0.937429 0.935381 0.932752 0.929544 0.925759 0.921398 0.91646 0.910946 0.904854 0.898181 0.890923 0.883077 0.874637 0.865597 0.85595 0.84569 0.834811 0.823305 0.811165 0.798387 0.784966 0.770898 0.75618 0.740813 0.724797 0.708137 0.690837 0.672906 0.654354 0.635195 0.615445 0.595124 0.574254 0.55286 0.530972 0.508625 0.485855 0.462705 0.439225 0.415469 0.391501 0.367393 0.34323 0.319109 0.295145 0.271469 0.248232 0.2256 +0.19 0.214664 0.239908 0.26554 0.291395 0.31733 0.34323 0.368996 0.394548 0.419817 0.444745 0.46928 0.493379 0.517001 0.540114 0.562687 0.584693 0.60611 0.626916 0.647094 0.666631 0.685512 0.703729 0.721275 0.738144 0.754334 0.769842 0.78467 0.79882 0.812296 0.825102 0.837243 0.848726 0.859557 0.869742 0.879289 0.888204 0.896492 0.904158 0.911207 0.917642 0.923467 0.928681 0.933287 0.937284 0.940671 0.943446 0.945608 0.947154 0.948082 0.948392 0.948082 0.947154 0.945608 0.943446 0.940671 0.937284 0.933287 0.928681 0.923467 0.917642 0.911207 0.904158 0.896492 0.888204 0.879289 0.869742 0.859557 0.848726 0.837243 0.825102 0.812296 0.79882 0.78467 0.769842 0.754334 0.738144 0.721275 0.703729 0.685512 0.666631 0.647094 0.626916 0.60611 0.584693 0.562687 0.540114 0.517001 0.493379 0.46928 0.444745 0.419817 0.394548 0.368996 0.34323 0.31733 0.291395 0.26554 0.239908 0.214664 0.19 +0.1536 0.180496 0.207929 0.235673 0.263544 0.291395 0.319109 0.346594 0.373777 0.400594 0.426994 0.452933 0.478372 0.503278 0.527622 0.551377 0.574521 0.597034 0.618897 0.640097 0.66062 0.680455 0.699594 0.718031 0.735762 0.752783 0.769093 0.784695 0.799588 0.813778 0.827267 0.840062 0.852166 0.863588 0.874332 0.884405 0.893813 0.902561 0.910653 0.918095 0.924888 0.931036 0.93654 0.941401 0.945619 0.949192 0.95212 0.9544 0.956031 0.95701 0.957336 0.95701 0.956031 0.9544 0.95212 0.949192 0.945619 0.941401 0.93654 0.931036 0.924888 0.918095 0.910653 0.902561 0.893813 0.884405 0.874332 0.863588 0.852166 0.840062 0.827267 0.813778 0.799588 0.784695 0.769093 0.752783 0.735762 0.718031 0.699594 0.680455 0.66062 0.640097 0.618897 0.597034 0.574521 0.551377 0.527622 0.503278 0.478372 0.452933 0.426994 0.400594 0.373777 0.346594 0.319109 0.291395 0.263544 0.235673 0.207929 0.180496 0.1536 +0.1164 0.14578 0.175621 0.205652 0.235673 0.26554 0.295145 0.324405 0.353258 0.381651 0.409544 0.436899 0.463686 0.489878 0.515452 0.540388 0.564666 0.58827 0.611187 0.633405 0.654912 0.6757 0.695763 0.715094 0.733691 0.751552 0.768675 0.785061 0.800712 0.815631 0.829821 0.843287 0.856034 0.868066 0.87939 0.89001 0.899931 0.909158 0.917695 0.925546 0.932714 0.9392 0.945007 0.950134 0.954582 0.95835 0.961436 0.963839 0.965558 0.96659 0.966934 0.96659 0.965558 0.963839 0.961436 0.95835 0.954582 0.950134 0.945007 0.9392 0.932714 0.925546 0.917695 0.909158 0.899931 0.89001 0.87939 0.868066 0.856034 0.843287 0.829821 0.815631 0.800712 0.785061 0.768675 0.751552 0.733691 0.715094 0.695763 0.6757 0.654912 0.633405 0.611187 0.58827 0.564666 0.540388 0.515452 0.489878 0.463686 0.436899 0.409544 0.381651 0.353258 0.324405 0.295145 0.26554 0.235673 0.205652 0.175621 0.14578 0.1164 +0.0784 0.110598 0.143111 0.175621 0.207929 0.239908 0.271469 0.302551 0.333105 0.363096 0.392492 0.421268 0.449403 0.476878 0.503676 0.529784 0.555187 0.579874 0.603835 0.627062 0.649547 0.671283 0.692266 0.712492 0.731959 0.750664 0.768607 0.785789 0.80221 0.817874 0.832783 0.84694 0.860349 0.873014 0.884939 0.896127 0.906583 0.916311 0.925313 0.933593 0.941152 0.947992 0.954115 0.959521 0.964209 0.968179 0.97143 0.973961 0.975771 0.976857 0.977219 0.976857 0.975771 0.973961 0.97143 0.968179 0.964209 0.959521 0.954115 0.947992 0.941152 0.933593 0.925313 0.916311 0.906583 0.896127 0.884939 0.873014 0.860349 0.84694 0.832783 0.817874 0.80221 0.785789 0.768607 0.750664 0.731959 0.712492 0.692266 0.671283 0.649547 0.627062 0.603835 0.579874 0.555187 0.529784 0.503676 0.476878 0.449403 0.421268 0.392492 0.363096 0.333105 0.302551 0.271469 0.239908 0.207929 0.175621 0.143111 0.110598 0.0784 +0.0396 0.0750993 0.110598 0.14578 0.180496 0.214664 0.248232 0.281167 0.313443 0.345039 0.375941 0.406136 0.435611 0.464358 0.492367 0.519632 0.546144 0.571899 0.59689 0.621113 0.644564 0.667239 0.689136 0.710253 0.730588 0.75014 0.768909 0.786896 0.804101 0.820525 0.836171 0.851039 0.865131 0.878451 0.891001 0.902782 0.913797 0.924048 0.933537 0.942266 0.950235 0.957447 0.9639 0.969596 0.974535 0.978716 0.982138 0.984802 0.986705 0.987848 0.988229 0.987848 0.986705 0.984802 0.982138 0.978716 0.974535 0.969596 0.9639 0.957447 0.950235 0.942266 0.933537 0.924048 0.913797 0.902782 0.891001 0.878451 0.865131 0.851039 0.836171 0.820525 0.804101 0.786896 0.768909 0.75014 0.730588 0.710253 0.689136 0.667239 0.644564 0.621113 0.59689 0.571899 0.546144 0.519632 0.492367 0.464358 0.435611 0.406136 0.375941 0.345039 0.313443 0.281167 0.248232 0.214664 0.180496 0.14578 0.110598 0.0750993 0.0396 diff --git a/Poisson_Equation/files/Correct.txt b/Poisson_Equation/files/Correct.txt index 114d24f..1fa8083 100644 --- a/Poisson_Equation/files/Correct.txt +++ b/Poisson_Equation/files/Correct.txt @@ -1,9 +1,100 @@ -0 0 0 0 1 0.939413 0.778801 0.569783 0.367879 -0 0 0 0 1.54883 1.45499 1.20623 0.882497 0.569783 -0 0 0 0 2.117 1.98874 1.64872 1.20623 0.778801 -0 0 0 0 2.55359 2.39888 1.98874 1.45499 0.939413 -1 1.54883 2.117 2.55359 2.71828 2.55359 2.117 1.54883 1 -0.939413 1.45499 1.98874 2.39888 2.55359 2.39888 1.98874 1.45499 0.939413 -0.778801 1.20623 1.64872 1.98874 2.117 1.98874 1.64872 1.20623 0.778801 -0.569783 0.882497 1.20623 1.45499 1.54883 1.45499 1.20623 0.882497 0.569783 -0.367879 0.569783 0.778801 0.939413 1 0.939413 0.778801 0.569783 0.367879 +0 0.0396 0.0784 0.1164 0.1536 0.19 0.2256 0.2604 0.2944 0.3276 0.36 0.3916 0.4224 0.4524 0.4816 0.51 0.5376 0.5644 0.5904 0.6156 0.64 0.6636 0.6864 0.7084 0.7296 0.75 0.7696 0.7884 0.8064 0.8236 0.84 0.8556 0.8704 0.8844 0.8976 0.91 0.9216 0.9324 0.9424 0.9516 0.96 0.9676 0.9744 0.9804 0.9856 0.99 0.9936 0.9964 0.9984 0.9996 1 0.9996 0.9984 0.9964 0.9936 0.99 0.9856 0.9804 0.9744 0.9676 0.96 0.9516 0.9424 0.9324 0.9216 0.91 0.8976 0.8844 0.8704 0.8556 0.84 0.8236 0.8064 0.7884 0.7696 0.75 0.7296 0.7084 0.6864 0.6636 0.64 0.6156 0.5904 0.5644 0.5376 0.51 0.4816 0.4524 0.4224 0.3916 0.36 0.3276 0.2944 0.2604 0.2256 0.19 0.1536 0.1164 0.0784 0.0396 0 +0.0396 0.0750722 0.110574 0.145761 0.180481 0.214651 0.248221 0.281157 0.313434 0.345031 0.375934 0.406129 0.435605 0.464352 0.492361 0.519626 0.546139 0.571894 0.596885 0.621108 0.644559 0.667235 0.689132 0.710249 0.730584 0.750137 0.768906 0.786893 0.804098 0.820523 0.836168 0.851036 0.865129 0.878449 0.890999 0.90278 0.913795 0.924046 0.933535 0.942264 0.950233 0.957445 0.963898 0.969594 0.974533 0.978714 0.982137 0.9848 0.986703 0.987846 0.988227 0.987846 0.986703 0.9848 0.982137 0.978714 0.974533 0.969594 0.963898 0.957445 0.950233 0.942264 0.933535 0.924046 0.913795 0.90278 0.890999 0.878449 0.865129 0.851036 0.836168 0.820523 0.804098 0.786893 0.768906 0.750137 0.730584 0.710249 0.689132 0.667235 0.644559 0.621108 0.596885 0.571894 0.546139 0.519626 0.492361 0.464352 0.435605 0.406129 0.375934 0.345031 0.313434 0.281157 0.248221 0.214651 0.180481 0.145761 0.110574 0.0750722 0.0396 +0.0784 0.110574 0.14308 0.175592 0.207904 0.239885 0.271449 0.302533 0.333089 0.363081 0.392478 0.421255 0.449391 0.476866 0.503665 0.529773 0.555176 0.579864 0.603826 0.627053 0.649538 0.671275 0.692259 0.712485 0.731952 0.750657 0.7686 0.785782 0.802205 0.817869 0.832778 0.846935 0.860344 0.873009 0.884934 0.896123 0.906579 0.916307 0.925309 0.933589 0.941148 0.947988 0.954111 0.959517 0.964205 0.968175 0.971426 0.973957 0.975767 0.976853 0.977215 0.976853 0.975767 0.973957 0.971426 0.968175 0.964205 0.959517 0.954111 0.947988 0.941148 0.933589 0.925309 0.916307 0.906579 0.896123 0.884934 0.873009 0.860344 0.846935 0.832778 0.817869 0.802205 0.785782 0.7686 0.750657 0.731952 0.712485 0.692259 0.671275 0.649538 0.627053 0.603826 0.579864 0.555176 0.529773 0.503665 0.476866 0.449391 0.421255 0.392478 0.363081 0.333089 0.302533 0.271449 0.239885 0.207904 0.175592 0.14308 0.110574 0.0784 +0.1164 0.145761 0.175592 0.20562 0.235643 0.265512 0.295119 0.324381 0.353235 0.381631 0.409524 0.43688 0.463668 0.489861 0.515436 0.540372 0.564651 0.588256 0.611174 0.633392 0.654899 0.675688 0.695751 0.715083 0.733681 0.751542 0.768665 0.785052 0.800703 0.815623 0.829813 0.84328 0.856027 0.868059 0.879383 0.890003 0.899924 0.909152 0.917689 0.92554 0.932708 0.939194 0.945001 0.950128 0.954576 0.958344 0.96143 0.963833 0.965552 0.966583 0.966928 0.966583 0.965552 0.963833 0.96143 0.958344 0.954576 0.950128 0.945001 0.939194 0.932708 0.92554 0.917689 0.909152 0.899924 0.890003 0.879383 0.868059 0.856027 0.84328 0.829813 0.815623 0.800703 0.785052 0.768665 0.751542 0.733681 0.715083 0.695751 0.675688 0.654899 0.633392 0.611174 0.588256 0.564651 0.540372 0.515436 0.489861 0.463668 0.43688 0.409524 0.381631 0.353235 0.324381 0.295119 0.265512 0.235643 0.20562 0.175592 0.145761 0.1164 +0.1536 0.180481 0.207904 0.235643 0.263513 0.291364 0.319079 0.346566 0.37375 0.400569 0.42697 0.45291 0.478351 0.503257 0.527602 0.551358 0.574503 0.597016 0.61888 0.64008 0.660604 0.68044 0.699579 0.718017 0.735748 0.75277 0.769081 0.784683 0.799577 0.813767 0.827257 0.840051 0.852157 0.863578 0.874323 0.884396 0.893804 0.902552 0.910644 0.918086 0.924879 0.931028 0.936532 0.941393 0.94561 0.949183 0.952111 0.954391 0.956022 0.957001 0.957328 0.957001 0.956022 0.954391 0.952111 0.949183 0.94561 0.941393 0.936532 0.931028 0.924879 0.918086 0.910644 0.902552 0.893804 0.884396 0.874323 0.863578 0.852157 0.840051 0.827257 0.813767 0.799577 0.784683 0.769081 0.75277 0.735748 0.718017 0.699579 0.68044 0.660604 0.64008 0.61888 0.597016 0.574503 0.551358 0.527602 0.503257 0.478351 0.45291 0.42697 0.400569 0.37375 0.346566 0.319079 0.291364 0.263513 0.235643 0.207904 0.180481 0.1536 +0.19 0.214651 0.239885 0.265512 0.291364 0.317299 0.343198 0.368965 0.394519 0.41979 0.444718 0.469254 0.493354 0.516977 0.540091 0.562665 0.584671 0.606089 0.626896 0.647075 0.666612 0.685494 0.703712 0.721258 0.738128 0.754318 0.769827 0.784656 0.798806 0.812282 0.825088 0.83723 0.848713 0.859544 0.86973 0.879277 0.888192 0.89648 0.904147 0.911196 0.917631 0.923456 0.92867 0.933276 0.937273 0.940659 0.943435 0.945596 0.947142 0.948071 0.948381 0.948071 0.947142 0.945596 0.943435 0.940659 0.937273 0.933276 0.92867 0.923456 0.917631 0.911196 0.904147 0.89648 0.888192 0.879277 0.86973 0.859544 0.848713 0.83723 0.825088 0.812282 0.798806 0.784656 0.769827 0.754318 0.738128 0.721258 0.703712 0.685494 0.666612 0.647075 0.626896 0.606089 0.584671 0.562665 0.540091 0.516977 0.493354 0.469254 0.444718 0.41979 0.394519 0.368965 0.343198 0.317299 0.291364 0.265512 0.239885 0.214651 0.19 +0.2256 0.248221 0.271449 0.295119 0.319079 0.343198 0.36736 0.391468 0.415437 0.439194 0.462675 0.485825 0.508597 0.530945 0.552833 0.574228 0.595099 0.615421 0.635172 0.654331 0.672884 0.690816 0.708116 0.724778 0.740794 0.756162 0.77088 0.784949 0.798371 0.811149 0.823289 0.834796 0.845676 0.855936 0.865582 0.874623 0.883063 0.89091 0.898167 0.90484 0.910933 0.916447 0.921384 0.925746 0.929531 0.932739 0.935367 0.937415 0.93888 0.93976 0.940053 0.93976 0.93888 0.937415 0.935367 0.932739 0.929531 0.925746 0.921384 0.916447 0.910933 0.90484 0.898167 0.89091 0.883063 0.874623 0.865582 0.855936 0.845676 0.834796 0.823289 0.811149 0.798371 0.784949 0.77088 0.756162 0.740794 0.724778 0.708116 0.690816 0.672884 0.654331 0.635172 0.615421 0.595099 0.574228 0.552833 0.530945 0.508597 0.485825 0.462675 0.439194 0.415437 0.391468 0.36736 0.343198 0.319079 0.295119 0.271449 0.248221 0.2256 +0.2604 0.281157 0.302533 0.324381 0.346566 0.368965 0.391468 0.413977 0.436411 0.458693 0.480757 0.502544 0.524005 0.545091 0.565764 0.585988 0.605729 0.624962 0.643661 0.661807 0.67938 0.696369 0.71276 0.728545 0.743719 0.758276 0.772217 0.78554 0.798249 0.810346 0.821837 0.832727 0.843022 0.85273 0.861856 0.870408 0.878392 0.885814 0.892679 0.898992 0.904755 0.909972 0.914644 0.918771 0.922353 0.925389 0.927877 0.929816 0.931202 0.932035 0.932313 0.932035 0.931202 0.929816 0.927877 0.925389 0.922353 0.918771 0.914644 0.909972 0.904755 0.898992 0.892679 0.885814 0.878392 0.870408 0.861856 0.85273 0.843022 0.832727 0.821837 0.810346 0.798249 0.78554 0.772217 0.758276 0.743719 0.728545 0.71276 0.696369 0.67938 0.661807 0.643661 0.624962 0.605729 0.585988 0.565764 0.545091 0.524005 0.502544 0.480757 0.458693 0.436411 0.413977 0.391468 0.368965 0.346566 0.324381 0.302533 0.281157 0.2604 +0.2944 0.313434 0.333089 0.353235 0.37375 0.394519 0.415437 0.436411 0.45736 0.478208 0.498887 0.519338 0.539509 0.559352 0.578823 0.597888 0.61651 0.634663 0.65232 0.66946 0.686065 0.702119 0.717611 0.732532 0.746875 0.760636 0.773813 0.786407 0.798419 0.809852 0.820712 0.831003 0.840731 0.849904 0.858528 0.866609 0.874154 0.881168 0.887656 0.893622 0.89907 0.904001 0.908418 0.91232 0.915708 0.918579 0.920933 0.922766 0.924078 0.924866 0.925129 0.924866 0.924078 0.922766 0.920933 0.918579 0.915708 0.91232 0.908418 0.904001 0.89907 0.893622 0.887656 0.881168 0.874154 0.866609 0.858528 0.849904 0.840731 0.831003 0.820712 0.809852 0.798419 0.786407 0.773813 0.760636 0.746875 0.732532 0.717611 0.702119 0.686065 0.66946 0.65232 0.634663 0.61651 0.597888 0.578823 0.559352 0.539509 0.519338 0.498887 0.478208 0.45736 0.436411 0.415437 0.394519 0.37375 0.353235 0.333089 0.313434 0.2944 +0.3276 0.345031 0.363081 0.381631 0.400569 0.41979 0.439194 0.458693 0.478208 0.497664 0.516994 0.536139 0.555046 0.573664 0.591953 0.609874 0.627391 0.644477 0.661105 0.677252 0.6929 0.708034 0.72264 0.73671 0.750237 0.763217 0.775647 0.787527 0.798858 0.809645 0.819891 0.829601 0.838781 0.847437 0.855575 0.863202 0.870324 0.876945 0.883071 0.888704 0.893849 0.898507 0.902679 0.906366 0.909566 0.91228 0.914504 0.916237 0.917476 0.918221 0.91847 0.918221 0.917476 0.916237 0.914504 0.91228 0.909566 0.906366 0.902679 0.898507 0.893849 0.888704 0.883071 0.876945 0.870324 0.863202 0.855575 0.847437 0.838781 0.829601 0.819891 0.809645 0.798858 0.787527 0.775647 0.763217 0.750237 0.73671 0.72264 0.708034 0.6929 0.677252 0.661105 0.644477 0.627391 0.609874 0.591953 0.573664 0.555046 0.536139 0.516994 0.497664 0.478208 0.458693 0.439194 0.41979 0.400569 0.381631 0.363081 0.345031 0.3276 +0.36 0.375934 0.392478 0.409524 0.42697 0.444718 0.462675 0.480757 0.498887 0.516994 0.535012 0.552882 0.570551 0.587971 0.605098 0.621894 0.638325 0.65436 0.669974 0.685144 0.69985 0.714078 0.727815 0.741051 0.753778 0.765993 0.777692 0.788876 0.799546 0.809704 0.819354 0.8285 0.837149 0.845306 0.852976 0.860165 0.866879 0.873123 0.8789 0.884214 0.889068 0.893463 0.8974 0.90088 0.903901 0.906463 0.908563 0.910199 0.91137 0.912073 0.912308 0.912073 0.91137 0.910199 0.908563 0.906463 0.903901 0.90088 0.8974 0.893463 0.889068 0.884214 0.8789 0.873123 0.866879 0.860165 0.852976 0.845306 0.837149 0.8285 0.819354 0.809704 0.799546 0.788876 0.777692 0.765993 0.753778 0.741051 0.727815 0.714078 0.69985 0.685144 0.669974 0.65436 0.638325 0.621894 0.605098 0.587971 0.570551 0.552882 0.535012 0.516994 0.498887 0.480757 0.462675 0.444718 0.42697 0.409524 0.392478 0.375934 0.36 +0.3916 0.406129 0.421255 0.43688 0.45291 0.469254 0.485825 0.502544 0.519338 0.536139 0.552882 0.56951 0.585971 0.602218 0.618207 0.633901 0.649265 0.664269 0.678888 0.693099 0.706882 0.720222 0.733107 0.745526 0.757472 0.76894 0.779927 0.790434 0.800459 0.810007 0.819079 0.82768 0.835815 0.843489 0.850708 0.857475 0.863797 0.869677 0.875119 0.880126 0.8847 0.888843 0.892555 0.895836 0.898686 0.901102 0.903083 0.904626 0.905731 0.906394 0.906616 0.906394 0.905731 0.904626 0.903083 0.901102 0.898686 0.895836 0.892555 0.888843 0.8847 0.880126 0.875119 0.869677 0.863797 0.857475 0.850708 0.843489 0.835815 0.82768 0.819079 0.810007 0.800459 0.790434 0.779927 0.76894 0.757472 0.745526 0.733107 0.720222 0.706882 0.693099 0.678888 0.664269 0.649265 0.633901 0.618207 0.602218 0.585971 0.56951 0.552882 0.536139 0.519338 0.502544 0.485825 0.469254 0.45291 0.43688 0.421255 0.406129 0.3916 +0.4224 0.435605 0.449391 0.463668 0.478351 0.493354 0.508597 0.524005 0.539509 0.555046 0.570551 0.585971 0.601256 0.616357 0.631235 0.64585 0.660171 0.674166 0.687811 0.701083 0.713963 0.726436 0.738488 0.75011 0.761294 0.772035 0.782329 0.792177 0.801578 0.810533 0.819046 0.827119 0.834758 0.841967 0.848749 0.85511 0.861054 0.866585 0.871705 0.876416 0.880722 0.884623 0.888119 0.891209 0.893894 0.89617 0.898036 0.899491 0.900532 0.901158 0.901366 0.901158 0.900532 0.899491 0.898036 0.89617 0.893894 0.891209 0.888119 0.884623 0.880722 0.876416 0.871705 0.866585 0.861054 0.85511 0.848749 0.841967 0.834758 0.827119 0.819046 0.810533 0.801578 0.792177 0.782329 0.772035 0.761294 0.75011 0.738488 0.726436 0.713963 0.701083 0.687811 0.674166 0.660171 0.64585 0.631235 0.616357 0.601256 0.585971 0.570551 0.555046 0.539509 0.524005 0.508597 0.493354 0.478351 0.463668 0.449391 0.435605 0.4224 +0.4524 0.464352 0.476866 0.489861 0.503257 0.516977 0.530945 0.545091 0.559352 0.573664 0.587971 0.602218 0.616357 0.630344 0.644137 0.657702 0.671003 0.684014 0.696709 0.709065 0.721064 0.73269 0.743932 0.754777 0.76522 0.775254 0.784876 0.794085 0.80288 0.811262 0.819234 0.826798 0.833958 0.840717 0.84708 0.853049 0.85863 0.863824 0.868634 0.873063 0.877111 0.880779 0.884067 0.886975 0.889501 0.891643 0.8934 0.894769 0.895749 0.896338 0.896534 0.896338 0.895749 0.894769 0.8934 0.891643 0.889501 0.886975 0.884067 0.880779 0.877111 0.873063 0.868634 0.863824 0.85863 0.853049 0.84708 0.840717 0.833958 0.826798 0.819234 0.811262 0.80288 0.794085 0.784876 0.775254 0.76522 0.754777 0.743932 0.73269 0.721064 0.709065 0.696709 0.684014 0.671003 0.657702 0.644137 0.630344 0.616357 0.602218 0.587971 0.573664 0.559352 0.545091 0.530945 0.516977 0.503257 0.489861 0.476866 0.464352 0.4524 +0.4816 0.492361 0.503665 0.515436 0.527602 0.540091 0.552833 0.565764 0.578823 0.591953 0.605098 0.618207 0.631235 0.644137 0.656877 0.669418 0.681728 0.69378 0.705549 0.717014 0.728156 0.738959 0.749412 0.759504 0.769228 0.778576 0.787547 0.796137 0.804346 0.812174 0.819624 0.826696 0.833394 0.83972 0.845679 0.851272 0.856502 0.861373 0.865886 0.870042 0.873843 0.877288 0.880377 0.883109 0.885483 0.887497 0.889148 0.890436 0.891357 0.891911 0.892096 0.891911 0.891357 0.890436 0.889148 0.887497 0.885483 0.883109 0.880377 0.877288 0.873843 0.870042 0.865886 0.861373 0.856502 0.851272 0.845679 0.83972 0.833394 0.826696 0.819624 0.812174 0.804346 0.796137 0.787547 0.778576 0.769228 0.759504 0.749412 0.738959 0.728156 0.717014 0.705549 0.69378 0.681728 0.669418 0.656877 0.644137 0.631235 0.618207 0.605098 0.591953 0.578823 0.565764 0.552833 0.540091 0.527602 0.515436 0.503665 0.492361 0.4816 +0.51 0.519626 0.529773 0.540372 0.551358 0.562665 0.574228 0.585988 0.597888 0.609874 0.621894 0.633901 0.64585 0.657702 0.669418 0.680965 0.692312 0.703433 0.714303 0.724902 0.735212 0.745218 0.754907 0.764269 0.773295 0.781981 0.790321 0.798313 0.805957 0.813251 0.820196 0.826794 0.833047 0.838957 0.844526 0.849758 0.854652 0.859213 0.86344 0.867334 0.870897 0.874128 0.877026 0.879589 0.881817 0.883708 0.885259 0.886468 0.887333 0.887853 0.888026 0.887853 0.887333 0.886468 0.885259 0.883708 0.881817 0.879589 0.877026 0.874128 0.870897 0.867334 0.86344 0.859213 0.854652 0.849758 0.844526 0.838957 0.833047 0.826794 0.820196 0.813251 0.805957 0.798313 0.790321 0.781981 0.773295 0.764269 0.754907 0.745218 0.735212 0.724902 0.714303 0.703433 0.692312 0.680965 0.669418 0.657702 0.64585 0.633901 0.621894 0.609874 0.597888 0.585988 0.574228 0.562665 0.551358 0.540372 0.529773 0.519626 0.51 +0.5376 0.546139 0.555176 0.564651 0.574503 0.584671 0.595099 0.605729 0.61651 0.627391 0.638325 0.649265 0.660171 0.671003 0.681728 0.692312 0.702726 0.712945 0.722945 0.732706 0.74221 0.751444 0.760393 0.769049 0.777402 0.785448 0.79318 0.800596 0.807693 0.814472 0.820932 0.827074 0.832899 0.838409 0.843604 0.848487 0.853059 0.857321 0.861274 0.864918 0.868253 0.871278 0.873992 0.876395 0.878483 0.880255 0.881709 0.882843 0.883654 0.884142 0.884304 0.884142 0.883654 0.882843 0.881709 0.880255 0.878483 0.876395 0.873992 0.871278 0.868253 0.864918 0.861274 0.857321 0.853059 0.848487 0.843604 0.838409 0.832899 0.827074 0.820932 0.814472 0.807693 0.800596 0.79318 0.785448 0.777402 0.769049 0.760393 0.751444 0.74221 0.732706 0.722945 0.712945 0.702726 0.692312 0.681728 0.671003 0.660171 0.649265 0.638325 0.627391 0.61651 0.605729 0.595099 0.584671 0.574503 0.564651 0.555176 0.546139 0.5376 +0.5644 0.571894 0.579864 0.588256 0.597016 0.606089 0.615421 0.624962 0.634663 0.644477 0.65436 0.664269 0.674166 0.684014 0.69378 0.703433 0.712945 0.722291 0.73145 0.740401 0.749128 0.757615 0.765852 0.773826 0.781531 0.788958 0.796104 0.802965 0.809538 0.815822 0.821815 0.827519 0.832932 0.838057 0.842894 0.847443 0.851705 0.855681 0.85937 0.862774 0.86589 0.868718 0.871256 0.873503 0.875457 0.877116 0.878477 0.879539 0.880299 0.880756 0.880908 0.880756 0.880299 0.879539 0.878477 0.877116 0.875457 0.873503 0.871256 0.868718 0.86589 0.862774 0.85937 0.855681 0.851705 0.847443 0.842894 0.838057 0.832932 0.827519 0.821815 0.815822 0.809538 0.802965 0.796104 0.788958 0.781531 0.773826 0.765852 0.757615 0.749128 0.740401 0.73145 0.722291 0.712945 0.703433 0.69378 0.684014 0.674166 0.664269 0.65436 0.644477 0.634663 0.624962 0.615421 0.606089 0.597016 0.588256 0.579864 0.571894 0.5644 +0.5904 0.596885 0.603826 0.611174 0.61888 0.626896 0.635172 0.643661 0.65232 0.661105 0.669974 0.678888 0.687811 0.696709 0.705549 0.714303 0.722945 0.73145 0.739797 0.747967 0.755944 0.763714 0.771263 0.778582 0.785662 0.792496 0.799079 0.805406 0.811474 0.817282 0.822828 0.82811 0.833129 0.837885 0.842377 0.846606 0.850571 0.854272 0.85771 0.860882 0.863789 0.866427 0.868797 0.870896 0.872722 0.874272 0.875544 0.876537 0.877247 0.877674 0.877817 0.877674 0.877247 0.876537 0.875544 0.874272 0.872722 0.870896 0.868797 0.866427 0.863789 0.860882 0.85771 0.854272 0.850571 0.846606 0.842377 0.837885 0.833129 0.82811 0.822828 0.817282 0.811474 0.805406 0.799079 0.792496 0.785662 0.778582 0.771263 0.763714 0.755944 0.747967 0.739797 0.73145 0.722945 0.714303 0.705549 0.696709 0.687811 0.678888 0.669974 0.661105 0.65232 0.643661 0.635172 0.626896 0.61888 0.611174 0.603826 0.596885 0.5904 +0.6156 0.621108 0.627053 0.633392 0.64008 0.647075 0.654331 0.661807 0.66946 0.677252 0.685144 0.693099 0.701083 0.709065 0.717014 0.724902 0.732706 0.740401 0.747967 0.755387 0.762643 0.769722 0.776611 0.7833 0.78978 0.796044 0.802086 0.807902 0.813486 0.818838 0.823954 0.828833 0.833474 0.837875 0.842038 0.845959 0.84964 0.853078 0.856274 0.859225 0.861931 0.864389 0.866597 0.868554 0.870256 0.871702 0.872889 0.873815 0.874479 0.874877 0.87501 0.874877 0.874479 0.873815 0.872889 0.871702 0.870256 0.868554 0.866597 0.864389 0.861931 0.859225 0.856274 0.853078 0.84964 0.845959 0.842038 0.837875 0.833474 0.828833 0.823954 0.818838 0.813486 0.807902 0.802086 0.796044 0.78978 0.7833 0.776611 0.769722 0.762643 0.755387 0.747967 0.740401 0.732706 0.724902 0.717014 0.709065 0.701083 0.693099 0.685144 0.677252 0.66946 0.661807 0.654331 0.647075 0.64008 0.633392 0.627053 0.621108 0.6156 +0.64 0.644559 0.649538 0.654899 0.660604 0.666612 0.672884 0.67938 0.686065 0.6929 0.69985 0.706882 0.713963 0.721064 0.728156 0.735212 0.74221 0.749128 0.755944 0.762643 0.769207 0.775623 0.78188 0.787965 0.79387 0.799588 0.805112 0.810437 0.815559 0.820473 0.825178 0.829671 0.83395 0.838013 0.841859 0.845487 0.848895 0.852082 0.855046 0.857786 0.860299 0.862583 0.864637 0.866457 0.868042 0.869389 0.870494 0.871357 0.871975 0.872346 0.87247 0.872346 0.871975 0.871357 0.870494 0.869389 0.868042 0.866457 0.864637 0.862583 0.860299 0.857786 0.855046 0.852082 0.848895 0.845487 0.841859 0.838013 0.83395 0.829671 0.825178 0.820473 0.815559 0.810437 0.805112 0.799588 0.79387 0.787965 0.78188 0.775623 0.769207 0.762643 0.755944 0.749128 0.74221 0.735212 0.728156 0.721064 0.713963 0.706882 0.69985 0.6929 0.686065 0.67938 0.672884 0.666612 0.660604 0.654899 0.649538 0.644559 0.64 +0.6636 0.667235 0.671275 0.675688 0.68044 0.685494 0.690816 0.696369 0.702119 0.708034 0.714078 0.720222 0.726436 0.73269 0.738959 0.745218 0.751444 0.757615 0.763714 0.769722 0.775623 0.781406 0.787056 0.792563 0.797919 0.803114 0.808143 0.812999 0.817678 0.822175 0.826486 0.83061 0.834542 0.838282 0.841826 0.845172 0.84832 0.851266 0.854009 0.856546 0.858875 0.860994 0.8629 0.86459 0.866062 0.867313 0.868341 0.869143 0.869717 0.870062 0.870177 0.870062 0.869717 0.869143 0.868341 0.867313 0.866062 0.86459 0.8629 0.860994 0.858875 0.856546 0.854009 0.851266 0.84832 0.845172 0.841826 0.838282 0.834542 0.83061 0.826486 0.822175 0.817678 0.812999 0.808143 0.803114 0.797919 0.792563 0.787056 0.781406 0.775623 0.769722 0.763714 0.757615 0.751444 0.745218 0.738959 0.73269 0.726436 0.720222 0.714078 0.708034 0.702119 0.696369 0.690816 0.685494 0.68044 0.675688 0.671275 0.667235 0.6636 +0.6864 0.689132 0.692259 0.695751 0.699579 0.703712 0.708116 0.71276 0.717611 0.72264 0.727815 0.733107 0.738488 0.743932 0.749412 0.754907 0.760393 0.765852 0.771263 0.776611 0.78188 0.787056 0.792127 0.797083 0.801913 0.80661 0.811166 0.815575 0.81983 0.823928 0.827865 0.831635 0.835237 0.838667 0.841923 0.845001 0.8479 0.850616 0.853148 0.855491 0.857645 0.859605 0.861369 0.862935 0.864299 0.865459 0.866411 0.867155 0.867688 0.868009 0.868116 0.868009 0.867688 0.867155 0.866411 0.865459 0.864299 0.862935 0.861369 0.859605 0.857645 0.855491 0.853148 0.850616 0.8479 0.845001 0.841923 0.838667 0.835237 0.831635 0.827865 0.823928 0.81983 0.815575 0.811166 0.80661 0.801913 0.797083 0.792127 0.787056 0.78188 0.776611 0.771263 0.765852 0.760393 0.754907 0.749412 0.743932 0.738488 0.733107 0.727815 0.72264 0.717611 0.71276 0.708116 0.703712 0.699579 0.695751 0.692259 0.689132 0.6864 +0.7084 0.710249 0.712485 0.715083 0.718017 0.721258 0.724778 0.728545 0.732532 0.73671 0.741051 0.745526 0.75011 0.754777 0.759504 0.764269 0.769049 0.773826 0.778582 0.7833 0.787965 0.792563 0.797083 0.801513 0.805843 0.810064 0.814169 0.818151 0.822004 0.825722 0.8293 0.832734 0.836021 0.839156 0.842137 0.844959 0.84762 0.850117 0.852446 0.854605 0.856591 0.858399 0.860029 0.861475 0.862736 0.863809 0.86469 0.865379 0.865872 0.866169 0.866268 0.866169 0.865872 0.865379 0.86469 0.863809 0.862736 0.861475 0.860029 0.858399 0.856591 0.854605 0.852446 0.850117 0.84762 0.844959 0.842137 0.839156 0.836021 0.832734 0.8293 0.825722 0.822004 0.818151 0.814169 0.810064 0.805843 0.801513 0.797083 0.792563 0.787965 0.7833 0.778582 0.773826 0.769049 0.764269 0.759504 0.754777 0.75011 0.745526 0.741051 0.73671 0.732532 0.728545 0.724778 0.721258 0.718017 0.715083 0.712485 0.710249 0.7084 +0.7296 0.730584 0.731952 0.733681 0.735748 0.738128 0.740794 0.743719 0.746875 0.750237 0.753778 0.757472 0.761294 0.76522 0.769228 0.773295 0.777402 0.781531 0.785662 0.78978 0.79387 0.797919 0.801913 0.805843 0.809696 0.813465 0.817142 0.820718 0.824187 0.827543 0.83078 0.833895 0.836881 0.839735 0.842454 0.845032 0.847466 0.849754 0.851891 0.853873 0.855698 0.857363 0.858863 0.860196 0.861358 0.862348 0.863162 0.863797 0.864253 0.864526 0.864618 0.864526 0.864253 0.863797 0.863162 0.862348 0.861358 0.860196 0.858863 0.857363 0.855698 0.853873 0.851891 0.849754 0.847466 0.845032 0.842454 0.839735 0.836881 0.833895 0.83078 0.827543 0.824187 0.820718 0.817142 0.813465 0.809696 0.805843 0.801913 0.797919 0.79387 0.78978 0.785662 0.781531 0.777402 0.773295 0.769228 0.76522 0.761294 0.757472 0.753778 0.750237 0.746875 0.743719 0.740794 0.738128 0.735748 0.733681 0.731952 0.730584 0.7296 +0.75 0.750137 0.750657 0.751542 0.75277 0.754318 0.756162 0.758276 0.760636 0.763217 0.765993 0.76894 0.772035 0.775254 0.778576 0.781981 0.785448 0.788958 0.792496 0.796044 0.799588 0.803114 0.80661 0.810064 0.813465 0.816805 0.820074 0.823264 0.826368 0.829381 0.832294 0.835104 0.837805 0.840392 0.842861 0.845206 0.847425 0.849513 0.851467 0.853281 0.854954 0.85648 0.857858 0.859082 0.860151 0.861061 0.86181 0.862395 0.862814 0.863067 0.863151 0.863067 0.862814 0.862395 0.86181 0.861061 0.860151 0.859082 0.857858 0.85648 0.854954 0.853281 0.851467 0.849513 0.847425 0.845206 0.842861 0.840392 0.837805 0.835104 0.832294 0.829381 0.826368 0.823264 0.820074 0.816805 0.813465 0.810064 0.80661 0.803114 0.799588 0.796044 0.792496 0.788958 0.785448 0.781981 0.778576 0.775254 0.772035 0.76894 0.765993 0.763217 0.760636 0.758276 0.756162 0.754318 0.75277 0.751542 0.750657 0.750137 0.75 +0.7696 0.768906 0.7686 0.768665 0.769081 0.769827 0.77088 0.772217 0.773813 0.775647 0.777692 0.779927 0.782329 0.784876 0.787547 0.790321 0.79318 0.796104 0.799079 0.802086 0.805112 0.808143 0.811166 0.814169 0.817142 0.820074 0.822956 0.825781 0.828539 0.831225 0.833831 0.836352 0.838782 0.841114 0.843346 0.845471 0.847485 0.849383 0.851162 0.852816 0.854343 0.855739 0.856999 0.85812 0.8591 0.859935 0.860621 0.861158 0.861543 0.861775 0.861852 0.861775 0.861543 0.861158 0.860621 0.859935 0.8591 0.85812 0.856999 0.855739 0.854343 0.852816 0.851162 0.849383 0.847485 0.845471 0.843346 0.841114 0.838782 0.836352 0.833831 0.831225 0.828539 0.825781 0.822956 0.820074 0.817142 0.814169 0.811166 0.808143 0.805112 0.802086 0.799079 0.796104 0.79318 0.790321 0.787547 0.784876 0.782329 0.779927 0.777692 0.775647 0.773813 0.772217 0.77088 0.769827 0.769081 0.768665 0.7686 0.768906 0.7696 +0.7884 0.786893 0.785782 0.785052 0.784683 0.784656 0.784949 0.78554 0.786407 0.787527 0.788876 0.790434 0.792177 0.794085 0.796137 0.798313 0.800596 0.802965 0.805406 0.807902 0.810437 0.812999 0.815575 0.818151 0.820718 0.823264 0.825781 0.828258 0.830689 0.833066 0.835381 0.837627 0.8398 0.841892 0.843898 0.845813 0.847632 0.84935 0.850962 0.852465 0.853854 0.855125 0.856274 0.857297 0.858191 0.858954 0.859582 0.860073 0.860425 0.860637 0.860708 0.860637 0.860425 0.860073 0.859582 0.858954 0.858191 0.857297 0.856274 0.855125 0.853854 0.852465 0.850962 0.84935 0.847632 0.845813 0.843898 0.841892 0.8398 0.837627 0.835381 0.833066 0.830689 0.828258 0.825781 0.823264 0.820718 0.818151 0.815575 0.812999 0.810437 0.807902 0.805406 0.802965 0.800596 0.798313 0.796137 0.794085 0.792177 0.790434 0.788876 0.787527 0.786407 0.78554 0.784949 0.784656 0.784683 0.785052 0.785782 0.786893 0.7884 +0.8064 0.804098 0.802205 0.800703 0.799577 0.798806 0.798371 0.798249 0.798419 0.798858 0.799546 0.800459 0.801578 0.80288 0.804346 0.805957 0.807693 0.809538 0.811474 0.813486 0.815559 0.817678 0.81983 0.822004 0.824187 0.826368 0.828539 0.830689 0.832811 0.834894 0.836933 0.83892 0.840849 0.842712 0.844505 0.846221 0.847855 0.849403 0.850858 0.852216 0.853474 0.854626 0.855669 0.856599 0.857413 0.858107 0.858679 0.859127 0.859448 0.859641 0.859706 0.859641 0.859448 0.859127 0.858679 0.858107 0.857413 0.856599 0.855669 0.854626 0.853474 0.852216 0.850858 0.849403 0.847855 0.846221 0.844505 0.842712 0.840849 0.83892 0.836933 0.834894 0.832811 0.830689 0.828539 0.826368 0.824187 0.822004 0.81983 0.817678 0.815559 0.813486 0.811474 0.809538 0.807693 0.805957 0.804346 0.80288 0.801578 0.800459 0.799546 0.798858 0.798419 0.798249 0.798371 0.798806 0.799577 0.800703 0.802205 0.804098 0.8064 +0.8236 0.820523 0.817869 0.815623 0.813767 0.812282 0.811149 0.810346 0.809852 0.809645 0.809704 0.810007 0.810533 0.811262 0.812174 0.813251 0.814472 0.815822 0.817282 0.818838 0.820473 0.822175 0.823928 0.825722 0.827543 0.829381 0.831225 0.833066 0.834894 0.836702 0.83848 0.840222 0.84192 0.843567 0.845158 0.846686 0.848145 0.84953 0.850836 0.852057 0.85319 0.85423 0.855173 0.856015 0.856752 0.857381 0.8579 0.858307 0.858598 0.858774 0.858832 0.858774 0.858598 0.858307 0.8579 0.857381 0.856752 0.856015 0.855173 0.85423 0.85319 0.852057 0.850836 0.84953 0.848145 0.846686 0.845158 0.843567 0.84192 0.840222 0.83848 0.836702 0.834894 0.833066 0.831225 0.829381 0.827543 0.825722 0.823928 0.822175 0.820473 0.818838 0.817282 0.815822 0.814472 0.813251 0.812174 0.811262 0.810533 0.810007 0.809704 0.809645 0.809852 0.810346 0.811149 0.812282 0.813767 0.815623 0.817869 0.820523 0.8236 +0.84 0.836168 0.832778 0.829813 0.827257 0.825088 0.823289 0.821837 0.820712 0.819891 0.819354 0.819079 0.819046 0.819234 0.819624 0.820196 0.820932 0.821815 0.822828 0.823954 0.825178 0.826486 0.827865 0.8293 0.83078 0.832294 0.833831 0.835381 0.836933 0.83848 0.840013 0.841523 0.843003 0.844446 0.845846 0.847196 0.848489 0.849721 0.850886 0.851978 0.852993 0.853927 0.854774 0.855532 0.856197 0.856765 0.857234 0.857601 0.857865 0.858023 0.858076 0.858023 0.857865 0.857601 0.857234 0.856765 0.856197 0.855532 0.854774 0.853927 0.852993 0.851978 0.850886 0.849721 0.848489 0.847196 0.845846 0.844446 0.843003 0.841523 0.840013 0.83848 0.836933 0.835381 0.833831 0.832294 0.83078 0.8293 0.827865 0.826486 0.825178 0.823954 0.822828 0.821815 0.820932 0.820196 0.819624 0.819234 0.819046 0.819079 0.819354 0.819891 0.820712 0.821837 0.823289 0.825088 0.827257 0.829813 0.832778 0.836168 0.84 +0.8556 0.851036 0.846935 0.84328 0.840051 0.83723 0.834796 0.832727 0.831003 0.829601 0.8285 0.82768 0.827119 0.826798 0.826696 0.826794 0.827074 0.827519 0.82811 0.828833 0.829671 0.83061 0.831635 0.832734 0.833895 0.835104 0.836352 0.837627 0.83892 0.840222 0.841523 0.842815 0.84409 0.845341 0.84656 0.847742 0.848879 0.849967 0.850998 0.851968 0.852872 0.853704 0.854462 0.855141 0.855737 0.856247 0.856668 0.856999 0.857236 0.857379 0.857427 0.857379 0.857236 0.856999 0.856668 0.856247 0.855737 0.855141 0.854462 0.853704 0.852872 0.851968 0.850998 0.849967 0.848879 0.847742 0.84656 0.845341 0.84409 0.842815 0.841523 0.840222 0.83892 0.837627 0.836352 0.835104 0.833895 0.832734 0.831635 0.83061 0.829671 0.828833 0.82811 0.827519 0.827074 0.826794 0.826696 0.826798 0.827119 0.82768 0.8285 0.829601 0.831003 0.832727 0.834796 0.83723 0.840051 0.84328 0.846935 0.851036 0.8556 +0.8704 0.865129 0.860344 0.856027 0.852157 0.848713 0.845676 0.843022 0.840731 0.838781 0.837149 0.835815 0.834758 0.833958 0.833394 0.833047 0.832899 0.832932 0.833129 0.833474 0.83395 0.834542 0.835237 0.836021 0.836881 0.837805 0.838782 0.8398 0.840849 0.84192 0.843003 0.84409 0.845172 0.846242 0.847292 0.848315 0.849306 0.850257 0.851162 0.852017 0.852815 0.853553 0.854227 0.854831 0.855362 0.855817 0.856194 0.856489 0.856701 0.856829 0.856872 0.856829 0.856701 0.856489 0.856194 0.855817 0.855362 0.854831 0.854227 0.853553 0.852815 0.852017 0.851162 0.850257 0.849306 0.848315 0.847292 0.846242 0.845172 0.84409 0.843003 0.84192 0.840849 0.8398 0.838782 0.837805 0.836881 0.836021 0.835237 0.834542 0.83395 0.833474 0.833129 0.832932 0.832899 0.833047 0.833394 0.833958 0.834758 0.835815 0.837149 0.838781 0.840731 0.843022 0.845676 0.848713 0.852157 0.856027 0.860344 0.865129 0.8704 +0.8844 0.878449 0.873009 0.868059 0.863578 0.859544 0.855936 0.85273 0.849904 0.847437 0.845306 0.843489 0.841967 0.840717 0.83972 0.838957 0.838409 0.838057 0.837885 0.837875 0.838013 0.838282 0.838667 0.839156 0.839735 0.840392 0.841114 0.841892 0.842712 0.843567 0.844446 0.845341 0.846242 0.847142 0.848033 0.848908 0.849759 0.850582 0.851369 0.852115 0.852816 0.853464 0.854058 0.854591 0.855062 0.855466 0.8558 0.856062 0.856251 0.856365 0.856403 0.856365 0.856251 0.856062 0.8558 0.855466 0.855062 0.854591 0.854058 0.853464 0.852816 0.852115 0.851369 0.850582 0.849759 0.848908 0.848033 0.847142 0.846242 0.845341 0.844446 0.843567 0.842712 0.841892 0.841114 0.840392 0.839735 0.839156 0.838667 0.838282 0.838013 0.837875 0.837885 0.838057 0.838409 0.838957 0.83972 0.840717 0.841967 0.843489 0.845306 0.847437 0.849904 0.85273 0.855936 0.859544 0.863578 0.868059 0.873009 0.878449 0.8844 +0.8976 0.890999 0.884934 0.879383 0.874323 0.86973 0.865582 0.861856 0.858528 0.855575 0.852976 0.850708 0.848749 0.84708 0.845679 0.844526 0.843604 0.842894 0.842377 0.842038 0.841859 0.841826 0.841923 0.842137 0.842454 0.842861 0.843346 0.843898 0.844505 0.845158 0.845846 0.84656 0.847292 0.848033 0.848775 0.84951 0.850232 0.850935 0.851611 0.852256 0.852863 0.853428 0.853947 0.854414 0.854828 0.855183 0.855478 0.855709 0.855876 0.855977 0.856011 0.855977 0.855876 0.855709 0.855478 0.855183 0.854828 0.854414 0.853947 0.853428 0.852863 0.852256 0.851611 0.850935 0.850232 0.84951 0.848775 0.848033 0.847292 0.84656 0.845846 0.845158 0.844505 0.843898 0.843346 0.842861 0.842454 0.842137 0.841923 0.841826 0.841859 0.842038 0.842377 0.842894 0.843604 0.844526 0.845679 0.84708 0.848749 0.850708 0.852976 0.855575 0.858528 0.861856 0.865582 0.86973 0.874323 0.879383 0.884934 0.890999 0.8976 +0.91 0.90278 0.896123 0.890003 0.884396 0.879277 0.874623 0.870408 0.866609 0.863202 0.860165 0.857475 0.85511 0.853049 0.851272 0.849758 0.848487 0.847443 0.846606 0.845959 0.845487 0.845172 0.845001 0.844959 0.845032 0.845206 0.845471 0.845813 0.846221 0.846686 0.847196 0.847742 0.848315 0.848908 0.84951 0.850116 0.850717 0.851307 0.851879 0.852429 0.852949 0.853436 0.853885 0.854291 0.854651 0.854961 0.855218 0.855421 0.855567 0.855656 0.855685 0.855656 0.855567 0.855421 0.855218 0.854961 0.854651 0.854291 0.853885 0.853436 0.852949 0.852429 0.851879 0.851307 0.850717 0.850116 0.84951 0.848908 0.848315 0.847742 0.847196 0.846686 0.846221 0.845813 0.845471 0.845206 0.845032 0.844959 0.845001 0.845172 0.845487 0.845959 0.846606 0.847443 0.848487 0.849758 0.851272 0.853049 0.85511 0.857475 0.860165 0.863202 0.866609 0.870408 0.874623 0.879277 0.884396 0.890003 0.896123 0.90278 0.91 +0.9216 0.913795 0.906579 0.899924 0.893804 0.888192 0.883063 0.878392 0.874154 0.870324 0.866879 0.863797 0.861054 0.85863 0.856502 0.854652 0.853059 0.851705 0.850571 0.84964 0.848895 0.84832 0.8479 0.84762 0.847466 0.847425 0.847485 0.847632 0.847855 0.848145 0.848489 0.848879 0.849306 0.849759 0.850232 0.850717 0.851205 0.85169 0.852166 0.852627 0.853067 0.853481 0.853864 0.854213 0.854523 0.854791 0.855014 0.85519 0.855317 0.855394 0.855419 0.855394 0.855317 0.85519 0.855014 0.854791 0.854523 0.854213 0.853864 0.853481 0.853067 0.852627 0.852166 0.85169 0.851205 0.850717 0.850232 0.849759 0.849306 0.848879 0.848489 0.848145 0.847855 0.847632 0.847485 0.847425 0.847466 0.84762 0.8479 0.84832 0.848895 0.84964 0.850571 0.851705 0.853059 0.854652 0.856502 0.85863 0.861054 0.863797 0.866879 0.870324 0.874154 0.878392 0.883063 0.888192 0.893804 0.899924 0.906579 0.913795 0.9216 +0.9324 0.924046 0.916307 0.909152 0.902552 0.89648 0.89091 0.885814 0.881168 0.876945 0.873123 0.869677 0.866585 0.863824 0.861373 0.859213 0.857321 0.855681 0.854272 0.853078 0.852082 0.851266 0.850616 0.850117 0.849754 0.849513 0.849383 0.84935 0.849403 0.84953 0.849721 0.849967 0.850257 0.850582 0.850935 0.851307 0.85169 0.852079 0.852465 0.852844 0.853209 0.853555 0.853877 0.854173 0.854436 0.854665 0.854856 0.855007 0.855116 0.855182 0.855205 0.855182 0.855116 0.855007 0.854856 0.854665 0.854436 0.854173 0.853877 0.853555 0.853209 0.852844 0.852465 0.852079 0.85169 0.851307 0.850935 0.850582 0.850257 0.849967 0.849721 0.84953 0.849403 0.84935 0.849383 0.849513 0.849754 0.850117 0.850616 0.851266 0.852082 0.853078 0.854272 0.855681 0.857321 0.859213 0.861373 0.863824 0.866585 0.869677 0.873123 0.876945 0.881168 0.885814 0.89091 0.89648 0.902552 0.909152 0.916307 0.924046 0.9324 +0.9424 0.933535 0.925309 0.917689 0.910644 0.904147 0.898167 0.892679 0.887656 0.883071 0.8789 0.875119 0.871705 0.868634 0.865886 0.86344 0.861274 0.85937 0.85771 0.856274 0.855046 0.854009 0.853148 0.852446 0.851891 0.851467 0.851162 0.850962 0.850858 0.850836 0.850886 0.850998 0.851162 0.851369 0.851611 0.851879 0.852166 0.852465 0.852769 0.853071 0.853367 0.853651 0.853918 0.854163 0.854384 0.854577 0.854738 0.854866 0.854959 0.855015 0.855034 0.855015 0.854959 0.854866 0.854738 0.854577 0.854384 0.854163 0.853918 0.853651 0.853367 0.853071 0.852769 0.852465 0.852166 0.851879 0.851611 0.851369 0.851162 0.850998 0.850886 0.850836 0.850858 0.850962 0.851162 0.851467 0.851891 0.852446 0.853148 0.854009 0.855046 0.856274 0.85771 0.85937 0.861274 0.86344 0.865886 0.868634 0.871705 0.875119 0.8789 0.883071 0.887656 0.892679 0.898167 0.904147 0.910644 0.917689 0.925309 0.933535 0.9424 +0.9516 0.942264 0.933589 0.92554 0.918086 0.911196 0.90484 0.898992 0.893622 0.888704 0.884214 0.880126 0.876416 0.873063 0.870042 0.867334 0.864918 0.862774 0.860882 0.859225 0.857786 0.856546 0.855491 0.854605 0.853873 0.853281 0.852816 0.852465 0.852216 0.852057 0.851978 0.851968 0.852017 0.852115 0.852256 0.852429 0.852627 0.852844 0.853071 0.853304 0.853536 0.853763 0.853978 0.854179 0.85436 0.85452 0.854654 0.854761 0.854839 0.854886 0.854902 0.854886 0.854839 0.854761 0.854654 0.85452 0.85436 0.854179 0.853978 0.853763 0.853536 0.853304 0.853071 0.852844 0.852627 0.852429 0.852256 0.852115 0.852017 0.851968 0.851978 0.852057 0.852216 0.852465 0.852816 0.853281 0.853873 0.854605 0.855491 0.856546 0.857786 0.859225 0.860882 0.862774 0.864918 0.867334 0.870042 0.873063 0.876416 0.880126 0.884214 0.888704 0.893622 0.898992 0.90484 0.911196 0.918086 0.92554 0.933589 0.942264 0.9516 +0.96 0.950233 0.941148 0.932708 0.924879 0.917631 0.910933 0.904755 0.89907 0.893849 0.889068 0.8847 0.880722 0.877111 0.873843 0.870897 0.868253 0.86589 0.863789 0.861931 0.860299 0.858875 0.857645 0.856591 0.855698 0.854954 0.854343 0.853854 0.853474 0.85319 0.852993 0.852872 0.852815 0.852816 0.852863 0.852949 0.853067 0.853209 0.853367 0.853536 0.853711 0.853885 0.854053 0.854212 0.854358 0.854487 0.854597 0.854685 0.854749 0.854788 0.854801 0.854788 0.854749 0.854685 0.854597 0.854487 0.854358 0.854212 0.854053 0.853885 0.853711 0.853536 0.853367 0.853209 0.853067 0.852949 0.852863 0.852816 0.852815 0.852872 0.852993 0.85319 0.853474 0.853854 0.854343 0.854954 0.855698 0.856591 0.857645 0.858875 0.860299 0.861931 0.863789 0.86589 0.868253 0.870897 0.873843 0.877111 0.880722 0.8847 0.889068 0.893849 0.89907 0.904755 0.910933 0.917631 0.924879 0.932708 0.941148 0.950233 0.96 +0.9676 0.957445 0.947988 0.939194 0.931028 0.923456 0.916447 0.909972 0.904001 0.898507 0.893463 0.888843 0.884623 0.880779 0.877288 0.874128 0.871278 0.868718 0.866427 0.864389 0.862583 0.860994 0.859605 0.858399 0.857363 0.85648 0.855739 0.855125 0.854626 0.85423 0.853927 0.853704 0.853553 0.853464 0.853428 0.853436 0.853481 0.853555 0.853651 0.853763 0.853885 0.854011 0.854138 0.85426 0.854373 0.854475 0.854562 0.854632 0.854684 0.854715 0.854726 0.854715 0.854684 0.854632 0.854562 0.854475 0.854373 0.85426 0.854138 0.854011 0.853885 0.853763 0.853651 0.853555 0.853481 0.853436 0.853428 0.853464 0.853553 0.853704 0.853927 0.85423 0.854626 0.855125 0.855739 0.85648 0.857363 0.858399 0.859605 0.860994 0.862583 0.864389 0.866427 0.868718 0.871278 0.874128 0.877288 0.880779 0.884623 0.888843 0.893463 0.898507 0.904001 0.909972 0.916447 0.923456 0.931028 0.939194 0.947988 0.957445 0.9676 +0.9744 0.963898 0.954111 0.945001 0.936532 0.92867 0.921384 0.914644 0.908418 0.902679 0.8974 0.892555 0.888119 0.884067 0.880377 0.877026 0.873992 0.871256 0.868797 0.866597 0.864637 0.8629 0.861369 0.860029 0.858863 0.857858 0.856999 0.856274 0.855669 0.855173 0.854774 0.854462 0.854227 0.854058 0.853947 0.853885 0.853864 0.853877 0.853918 0.853978 0.854053 0.854138 0.854226 0.854315 0.854399 0.854477 0.854544 0.854599 0.854639 0.854664 0.854672 0.854664 0.854639 0.854599 0.854544 0.854477 0.854399 0.854315 0.854226 0.854138 0.854053 0.853978 0.853918 0.853877 0.853864 0.853885 0.853947 0.854058 0.854227 0.854462 0.854774 0.855173 0.855669 0.856274 0.856999 0.857858 0.858863 0.860029 0.861369 0.8629 0.864637 0.866597 0.868797 0.871256 0.873992 0.877026 0.880377 0.884067 0.888119 0.892555 0.8974 0.902679 0.908418 0.914644 0.921384 0.92867 0.936532 0.945001 0.954111 0.963898 0.9744 +0.9804 0.969594 0.959517 0.950128 0.941393 0.933276 0.925746 0.918771 0.91232 0.906366 0.90088 0.895836 0.891209 0.886975 0.883109 0.879589 0.876395 0.873503 0.870896 0.868554 0.866457 0.86459 0.862935 0.861475 0.860196 0.859082 0.85812 0.857297 0.856599 0.856015 0.855532 0.855141 0.854831 0.854591 0.854414 0.854291 0.854213 0.854173 0.854163 0.854179 0.854212 0.85426 0.854315 0.854374 0.854433 0.854489 0.854539 0.854579 0.85461 0.854629 0.854635 0.854629 0.85461 0.854579 0.854539 0.854489 0.854433 0.854374 0.854315 0.85426 0.854212 0.854179 0.854163 0.854173 0.854213 0.854291 0.854414 0.854591 0.854831 0.855141 0.855532 0.856015 0.856599 0.857297 0.85812 0.859082 0.860196 0.861475 0.862935 0.86459 0.866457 0.868554 0.870896 0.873503 0.876395 0.879589 0.883109 0.886975 0.891209 0.895836 0.90088 0.906366 0.91232 0.918771 0.925746 0.933276 0.941393 0.950128 0.959517 0.969594 0.9804 +0.9856 0.974533 0.964205 0.954576 0.94561 0.937273 0.929531 0.922353 0.915708 0.909566 0.903901 0.898686 0.893894 0.889501 0.885483 0.881817 0.878483 0.875457 0.872722 0.870256 0.868042 0.866062 0.864299 0.862736 0.861358 0.860151 0.8591 0.858191 0.857413 0.856752 0.856197 0.855737 0.855362 0.855062 0.854828 0.854651 0.854523 0.854436 0.854384 0.85436 0.854358 0.854373 0.854399 0.854433 0.85447 0.854507 0.854542 0.854571 0.854593 0.854607 0.854611 0.854607 0.854593 0.854571 0.854542 0.854507 0.85447 0.854433 0.854399 0.854373 0.854358 0.85436 0.854384 0.854436 0.854523 0.854651 0.854828 0.855062 0.855362 0.855737 0.856197 0.856752 0.857413 0.858191 0.8591 0.860151 0.861358 0.862736 0.864299 0.866062 0.868042 0.870256 0.872722 0.875457 0.878483 0.881817 0.885483 0.889501 0.893894 0.898686 0.903901 0.909566 0.915708 0.922353 0.929531 0.937273 0.94561 0.954576 0.964205 0.974533 0.9856 +0.99 0.978714 0.968175 0.958344 0.949183 0.940659 0.932739 0.925389 0.918579 0.91228 0.906463 0.901102 0.89617 0.891643 0.887497 0.883708 0.880255 0.877116 0.874272 0.871702 0.869389 0.867313 0.865459 0.863809 0.862348 0.861061 0.859935 0.858954 0.858107 0.857381 0.856765 0.856247 0.855817 0.855466 0.855183 0.854961 0.854791 0.854665 0.854577 0.85452 0.854487 0.854475 0.854477 0.854489 0.854507 0.854529 0.85455 0.854569 0.854584 0.854594 0.854597 0.854594 0.854584 0.854569 0.85455 0.854529 0.854507 0.854489 0.854477 0.854475 0.854487 0.85452 0.854577 0.854665 0.854791 0.854961 0.855183 0.855466 0.855817 0.856247 0.856765 0.857381 0.858107 0.858954 0.859935 0.861061 0.862348 0.863809 0.865459 0.867313 0.869389 0.871702 0.874272 0.877116 0.880255 0.883708 0.887497 0.891643 0.89617 0.901102 0.906463 0.91228 0.918579 0.925389 0.932739 0.940659 0.949183 0.958344 0.968175 0.978714 0.99 +0.9936 0.982137 0.971426 0.96143 0.952111 0.943435 0.935367 0.927877 0.920933 0.914504 0.908563 0.903083 0.898036 0.8934 0.889148 0.885259 0.881709 0.878477 0.875544 0.872889 0.870494 0.868341 0.866411 0.86469 0.863162 0.86181 0.860621 0.859582 0.858679 0.8579 0.857234 0.856668 0.856194 0.8558 0.855478 0.855218 0.855014 0.854856 0.854738 0.854654 0.854597 0.854562 0.854544 0.854539 0.854542 0.85455 0.854561 0.854572 0.854581 0.854587 0.854589 0.854587 0.854581 0.854572 0.854561 0.85455 0.854542 0.854539 0.854544 0.854562 0.854597 0.854654 0.854738 0.854856 0.855014 0.855218 0.855478 0.8558 0.856194 0.856668 0.857234 0.8579 0.858679 0.859582 0.860621 0.86181 0.863162 0.86469 0.866411 0.868341 0.870494 0.872889 0.875544 0.878477 0.881709 0.885259 0.889148 0.8934 0.898036 0.903083 0.908563 0.914504 0.920933 0.927877 0.935367 0.943435 0.952111 0.96143 0.971426 0.982137 0.9936 +0.9964 0.9848 0.973957 0.963833 0.954391 0.945596 0.937415 0.929816 0.922766 0.916237 0.910199 0.904626 0.899491 0.894769 0.890436 0.886468 0.882843 0.879539 0.876537 0.873815 0.871357 0.869143 0.867155 0.865379 0.863797 0.862395 0.861158 0.860073 0.859127 0.858307 0.857601 0.856999 0.856489 0.856062 0.855709 0.855421 0.85519 0.855007 0.854866 0.854761 0.854685 0.854632 0.854599 0.854579 0.854571 0.854569 0.854572 0.854576 0.854581 0.854584 0.854585 0.854584 0.854581 0.854576 0.854572 0.854569 0.854571 0.854579 0.854599 0.854632 0.854685 0.854761 0.854866 0.855007 0.85519 0.855421 0.855709 0.856062 0.856489 0.856999 0.857601 0.858307 0.859127 0.860073 0.861158 0.862395 0.863797 0.865379 0.867155 0.869143 0.871357 0.873815 0.876537 0.879539 0.882843 0.886468 0.890436 0.894769 0.899491 0.904626 0.910199 0.916237 0.922766 0.929816 0.937415 0.945596 0.954391 0.963833 0.973957 0.9848 0.9964 +0.9984 0.986703 0.975767 0.965552 0.956022 0.947142 0.93888 0.931202 0.924078 0.917476 0.91137 0.905731 0.900532 0.895749 0.891357 0.887333 0.883654 0.880299 0.877247 0.874479 0.871975 0.869717 0.867688 0.865872 0.864253 0.862814 0.861543 0.860425 0.859448 0.858598 0.857865 0.857236 0.856701 0.856251 0.855876 0.855567 0.855317 0.855116 0.854959 0.854839 0.854749 0.854684 0.854639 0.85461 0.854593 0.854584 0.854581 0.854581 0.854582 0.854583 0.854584 0.854583 0.854582 0.854581 0.854581 0.854584 0.854593 0.85461 0.854639 0.854684 0.854749 0.854839 0.854959 0.855116 0.855317 0.855567 0.855876 0.856251 0.856701 0.857236 0.857865 0.858598 0.859448 0.860425 0.861543 0.862814 0.864253 0.865872 0.867688 0.869717 0.871975 0.874479 0.877247 0.880299 0.883654 0.887333 0.891357 0.895749 0.900532 0.905731 0.91137 0.917476 0.924078 0.931202 0.93888 0.947142 0.956022 0.965552 0.975767 0.986703 0.9984 +0.9996 0.987846 0.976853 0.966583 0.957001 0.948071 0.93976 0.932035 0.924866 0.918221 0.912073 0.906394 0.901158 0.896338 0.891911 0.887853 0.884142 0.880756 0.877674 0.874877 0.872346 0.870062 0.868009 0.866169 0.864526 0.863067 0.861775 0.860637 0.859641 0.858774 0.858023 0.857379 0.856829 0.856365 0.855977 0.855656 0.855394 0.855182 0.855015 0.854886 0.854788 0.854715 0.854664 0.854629 0.854607 0.854594 0.854587 0.854584 0.854583 0.854583 0.854583 0.854583 0.854583 0.854584 0.854587 0.854594 0.854607 0.854629 0.854664 0.854715 0.854788 0.854886 0.855015 0.855182 0.855394 0.855656 0.855977 0.856365 0.856829 0.857379 0.858023 0.858774 0.859641 0.860637 0.861775 0.863067 0.864526 0.866169 0.868009 0.870062 0.872346 0.874877 0.877674 0.880756 0.884142 0.887853 0.891911 0.896338 0.901158 0.906394 0.912073 0.918221 0.924866 0.932035 0.93976 0.948071 0.957001 0.966583 0.976853 0.987846 0.9996 +1 0.988227 0.977215 0.966928 0.957328 0.948381 0.940053 0.932313 0.925129 0.91847 0.912308 0.906616 0.901366 0.896534 0.892096 0.888026 0.884304 0.880908 0.877817 0.87501 0.87247 0.870177 0.868116 0.866268 0.864618 0.863151 0.861852 0.860708 0.859706 0.858832 0.858076 0.857427 0.856872 0.856403 0.856011 0.855685 0.855419 0.855205 0.855034 0.854902 0.854801 0.854726 0.854672 0.854635 0.854611 0.854597 0.854589 0.854585 0.854584 0.854583 0.854583 0.854583 0.854584 0.854585 0.854589 0.854597 0.854611 0.854635 0.854672 0.854726 0.854801 0.854902 0.855034 0.855205 0.855419 0.855685 0.856011 0.856403 0.856872 0.857427 0.858076 0.858832 0.859706 0.860708 0.861852 0.863151 0.864618 0.866268 0.868116 0.870177 0.87247 0.87501 0.877817 0.880908 0.884304 0.888026 0.892096 0.896534 0.901366 0.906616 0.912308 0.91847 0.925129 0.932313 0.940053 0.948381 0.957328 0.966928 0.977215 0.988227 1 +0.9996 0.987846 0.976853 0.966583 0.957001 0.948071 0.93976 0.932035 0.924866 0.918221 0.912073 0.906394 0.901158 0.896338 0.891911 0.887853 0.884142 0.880756 0.877674 0.874877 0.872346 0.870062 0.868009 0.866169 0.864526 0.863067 0.861775 0.860637 0.859641 0.858774 0.858023 0.857379 0.856829 0.856365 0.855977 0.855656 0.855394 0.855182 0.855015 0.854886 0.854788 0.854715 0.854664 0.854629 0.854607 0.854594 0.854587 0.854584 0.854583 0.854583 0.854583 0.854583 0.854583 0.854584 0.854587 0.854594 0.854607 0.854629 0.854664 0.854715 0.854788 0.854886 0.855015 0.855182 0.855394 0.855656 0.855977 0.856365 0.856829 0.857379 0.858023 0.858774 0.859641 0.860637 0.861775 0.863067 0.864526 0.866169 0.868009 0.870062 0.872346 0.874877 0.877674 0.880756 0.884142 0.887853 0.891911 0.896338 0.901158 0.906394 0.912073 0.918221 0.924866 0.932035 0.93976 0.948071 0.957001 0.966583 0.976853 0.987846 0.9996 +0.9984 0.986703 0.975767 0.965552 0.956022 0.947142 0.93888 0.931202 0.924078 0.917476 0.91137 0.905731 0.900532 0.895749 0.891357 0.887333 0.883654 0.880299 0.877247 0.874479 0.871975 0.869717 0.867688 0.865872 0.864253 0.862814 0.861543 0.860425 0.859448 0.858598 0.857865 0.857236 0.856701 0.856251 0.855876 0.855567 0.855317 0.855116 0.854959 0.854839 0.854749 0.854684 0.854639 0.85461 0.854593 0.854584 0.854581 0.854581 0.854582 0.854583 0.854584 0.854583 0.854582 0.854581 0.854581 0.854584 0.854593 0.85461 0.854639 0.854684 0.854749 0.854839 0.854959 0.855116 0.855317 0.855567 0.855876 0.856251 0.856701 0.857236 0.857865 0.858598 0.859448 0.860425 0.861543 0.862814 0.864253 0.865872 0.867688 0.869717 0.871975 0.874479 0.877247 0.880299 0.883654 0.887333 0.891357 0.895749 0.900532 0.905731 0.91137 0.917476 0.924078 0.931202 0.93888 0.947142 0.956022 0.965552 0.975767 0.986703 0.9984 +0.9964 0.9848 0.973957 0.963833 0.954391 0.945596 0.937415 0.929816 0.922766 0.916237 0.910199 0.904626 0.899491 0.894769 0.890436 0.886468 0.882843 0.879539 0.876537 0.873815 0.871357 0.869143 0.867155 0.865379 0.863797 0.862395 0.861158 0.860073 0.859127 0.858307 0.857601 0.856999 0.856489 0.856062 0.855709 0.855421 0.85519 0.855007 0.854866 0.854761 0.854685 0.854632 0.854599 0.854579 0.854571 0.854569 0.854572 0.854576 0.854581 0.854584 0.854585 0.854584 0.854581 0.854576 0.854572 0.854569 0.854571 0.854579 0.854599 0.854632 0.854685 0.854761 0.854866 0.855007 0.85519 0.855421 0.855709 0.856062 0.856489 0.856999 0.857601 0.858307 0.859127 0.860073 0.861158 0.862395 0.863797 0.865379 0.867155 0.869143 0.871357 0.873815 0.876537 0.879539 0.882843 0.886468 0.890436 0.894769 0.899491 0.904626 0.910199 0.916237 0.922766 0.929816 0.937415 0.945596 0.954391 0.963833 0.973957 0.9848 0.9964 +0.9936 0.982137 0.971426 0.96143 0.952111 0.943435 0.935367 0.927877 0.920933 0.914504 0.908563 0.903083 0.898036 0.8934 0.889148 0.885259 0.881709 0.878477 0.875544 0.872889 0.870494 0.868341 0.866411 0.86469 0.863162 0.86181 0.860621 0.859582 0.858679 0.8579 0.857234 0.856668 0.856194 0.8558 0.855478 0.855218 0.855014 0.854856 0.854738 0.854654 0.854597 0.854562 0.854544 0.854539 0.854542 0.85455 0.854561 0.854572 0.854581 0.854587 0.854589 0.854587 0.854581 0.854572 0.854561 0.85455 0.854542 0.854539 0.854544 0.854562 0.854597 0.854654 0.854738 0.854856 0.855014 0.855218 0.855478 0.8558 0.856194 0.856668 0.857234 0.8579 0.858679 0.859582 0.860621 0.86181 0.863162 0.86469 0.866411 0.868341 0.870494 0.872889 0.875544 0.878477 0.881709 0.885259 0.889148 0.8934 0.898036 0.903083 0.908563 0.914504 0.920933 0.927877 0.935367 0.943435 0.952111 0.96143 0.971426 0.982137 0.9936 +0.99 0.978714 0.968175 0.958344 0.949183 0.940659 0.932739 0.925389 0.918579 0.91228 0.906463 0.901102 0.89617 0.891643 0.887497 0.883708 0.880255 0.877116 0.874272 0.871702 0.869389 0.867313 0.865459 0.863809 0.862348 0.861061 0.859935 0.858954 0.858107 0.857381 0.856765 0.856247 0.855817 0.855466 0.855183 0.854961 0.854791 0.854665 0.854577 0.85452 0.854487 0.854475 0.854477 0.854489 0.854507 0.854529 0.85455 0.854569 0.854584 0.854594 0.854597 0.854594 0.854584 0.854569 0.85455 0.854529 0.854507 0.854489 0.854477 0.854475 0.854487 0.85452 0.854577 0.854665 0.854791 0.854961 0.855183 0.855466 0.855817 0.856247 0.856765 0.857381 0.858107 0.858954 0.859935 0.861061 0.862348 0.863809 0.865459 0.867313 0.869389 0.871702 0.874272 0.877116 0.880255 0.883708 0.887497 0.891643 0.89617 0.901102 0.906463 0.91228 0.918579 0.925389 0.932739 0.940659 0.949183 0.958344 0.968175 0.978714 0.99 +0.9856 0.974533 0.964205 0.954576 0.94561 0.937273 0.929531 0.922353 0.915708 0.909566 0.903901 0.898686 0.893894 0.889501 0.885483 0.881817 0.878483 0.875457 0.872722 0.870256 0.868042 0.866062 0.864299 0.862736 0.861358 0.860151 0.8591 0.858191 0.857413 0.856752 0.856197 0.855737 0.855362 0.855062 0.854828 0.854651 0.854523 0.854436 0.854384 0.85436 0.854358 0.854373 0.854399 0.854433 0.85447 0.854507 0.854542 0.854571 0.854593 0.854607 0.854611 0.854607 0.854593 0.854571 0.854542 0.854507 0.85447 0.854433 0.854399 0.854373 0.854358 0.85436 0.854384 0.854436 0.854523 0.854651 0.854828 0.855062 0.855362 0.855737 0.856197 0.856752 0.857413 0.858191 0.8591 0.860151 0.861358 0.862736 0.864299 0.866062 0.868042 0.870256 0.872722 0.875457 0.878483 0.881817 0.885483 0.889501 0.893894 0.898686 0.903901 0.909566 0.915708 0.922353 0.929531 0.937273 0.94561 0.954576 0.964205 0.974533 0.9856 +0.9804 0.969594 0.959517 0.950128 0.941393 0.933276 0.925746 0.918771 0.91232 0.906366 0.90088 0.895836 0.891209 0.886975 0.883109 0.879589 0.876395 0.873503 0.870896 0.868554 0.866457 0.86459 0.862935 0.861475 0.860196 0.859082 0.85812 0.857297 0.856599 0.856015 0.855532 0.855141 0.854831 0.854591 0.854414 0.854291 0.854213 0.854173 0.854163 0.854179 0.854212 0.85426 0.854315 0.854374 0.854433 0.854489 0.854539 0.854579 0.85461 0.854629 0.854635 0.854629 0.85461 0.854579 0.854539 0.854489 0.854433 0.854374 0.854315 0.85426 0.854212 0.854179 0.854163 0.854173 0.854213 0.854291 0.854414 0.854591 0.854831 0.855141 0.855532 0.856015 0.856599 0.857297 0.85812 0.859082 0.860196 0.861475 0.862935 0.86459 0.866457 0.868554 0.870896 0.873503 0.876395 0.879589 0.883109 0.886975 0.891209 0.895836 0.90088 0.906366 0.91232 0.918771 0.925746 0.933276 0.941393 0.950128 0.959517 0.969594 0.9804 +0.9744 0.963898 0.954111 0.945001 0.936532 0.92867 0.921384 0.914644 0.908418 0.902679 0.8974 0.892555 0.888119 0.884067 0.880377 0.877026 0.873992 0.871256 0.868797 0.866597 0.864637 0.8629 0.861369 0.860029 0.858863 0.857858 0.856999 0.856274 0.855669 0.855173 0.854774 0.854462 0.854227 0.854058 0.853947 0.853885 0.853864 0.853877 0.853918 0.853978 0.854053 0.854138 0.854226 0.854315 0.854399 0.854477 0.854544 0.854599 0.854639 0.854664 0.854672 0.854664 0.854639 0.854599 0.854544 0.854477 0.854399 0.854315 0.854226 0.854138 0.854053 0.853978 0.853918 0.853877 0.853864 0.853885 0.853947 0.854058 0.854227 0.854462 0.854774 0.855173 0.855669 0.856274 0.856999 0.857858 0.858863 0.860029 0.861369 0.8629 0.864637 0.866597 0.868797 0.871256 0.873992 0.877026 0.880377 0.884067 0.888119 0.892555 0.8974 0.902679 0.908418 0.914644 0.921384 0.92867 0.936532 0.945001 0.954111 0.963898 0.9744 +0.9676 0.957445 0.947988 0.939194 0.931028 0.923456 0.916447 0.909972 0.904001 0.898507 0.893463 0.888843 0.884623 0.880779 0.877288 0.874128 0.871278 0.868718 0.866427 0.864389 0.862583 0.860994 0.859605 0.858399 0.857363 0.85648 0.855739 0.855125 0.854626 0.85423 0.853927 0.853704 0.853553 0.853464 0.853428 0.853436 0.853481 0.853555 0.853651 0.853763 0.853885 0.854011 0.854138 0.85426 0.854373 0.854475 0.854562 0.854632 0.854684 0.854715 0.854726 0.854715 0.854684 0.854632 0.854562 0.854475 0.854373 0.85426 0.854138 0.854011 0.853885 0.853763 0.853651 0.853555 0.853481 0.853436 0.853428 0.853464 0.853553 0.853704 0.853927 0.85423 0.854626 0.855125 0.855739 0.85648 0.857363 0.858399 0.859605 0.860994 0.862583 0.864389 0.866427 0.868718 0.871278 0.874128 0.877288 0.880779 0.884623 0.888843 0.893463 0.898507 0.904001 0.909972 0.916447 0.923456 0.931028 0.939194 0.947988 0.957445 0.9676 +0.96 0.950233 0.941148 0.932708 0.924879 0.917631 0.910933 0.904755 0.89907 0.893849 0.889068 0.8847 0.880722 0.877111 0.873843 0.870897 0.868253 0.86589 0.863789 0.861931 0.860299 0.858875 0.857645 0.856591 0.855698 0.854954 0.854343 0.853854 0.853474 0.85319 0.852993 0.852872 0.852815 0.852816 0.852863 0.852949 0.853067 0.853209 0.853367 0.853536 0.853711 0.853885 0.854053 0.854212 0.854358 0.854487 0.854597 0.854685 0.854749 0.854788 0.854801 0.854788 0.854749 0.854685 0.854597 0.854487 0.854358 0.854212 0.854053 0.853885 0.853711 0.853536 0.853367 0.853209 0.853067 0.852949 0.852863 0.852816 0.852815 0.852872 0.852993 0.85319 0.853474 0.853854 0.854343 0.854954 0.855698 0.856591 0.857645 0.858875 0.860299 0.861931 0.863789 0.86589 0.868253 0.870897 0.873843 0.877111 0.880722 0.8847 0.889068 0.893849 0.89907 0.904755 0.910933 0.917631 0.924879 0.932708 0.941148 0.950233 0.96 +0.9516 0.942264 0.933589 0.92554 0.918086 0.911196 0.90484 0.898992 0.893622 0.888704 0.884214 0.880126 0.876416 0.873063 0.870042 0.867334 0.864918 0.862774 0.860882 0.859225 0.857786 0.856546 0.855491 0.854605 0.853873 0.853281 0.852816 0.852465 0.852216 0.852057 0.851978 0.851968 0.852017 0.852115 0.852256 0.852429 0.852627 0.852844 0.853071 0.853304 0.853536 0.853763 0.853978 0.854179 0.85436 0.85452 0.854654 0.854761 0.854839 0.854886 0.854902 0.854886 0.854839 0.854761 0.854654 0.85452 0.85436 0.854179 0.853978 0.853763 0.853536 0.853304 0.853071 0.852844 0.852627 0.852429 0.852256 0.852115 0.852017 0.851968 0.851978 0.852057 0.852216 0.852465 0.852816 0.853281 0.853873 0.854605 0.855491 0.856546 0.857786 0.859225 0.860882 0.862774 0.864918 0.867334 0.870042 0.873063 0.876416 0.880126 0.884214 0.888704 0.893622 0.898992 0.90484 0.911196 0.918086 0.92554 0.933589 0.942264 0.9516 +0.9424 0.933535 0.925309 0.917689 0.910644 0.904147 0.898167 0.892679 0.887656 0.883071 0.8789 0.875119 0.871705 0.868634 0.865886 0.86344 0.861274 0.85937 0.85771 0.856274 0.855046 0.854009 0.853148 0.852446 0.851891 0.851467 0.851162 0.850962 0.850858 0.850836 0.850886 0.850998 0.851162 0.851369 0.851611 0.851879 0.852166 0.852465 0.852769 0.853071 0.853367 0.853651 0.853918 0.854163 0.854384 0.854577 0.854738 0.854866 0.854959 0.855015 0.855034 0.855015 0.854959 0.854866 0.854738 0.854577 0.854384 0.854163 0.853918 0.853651 0.853367 0.853071 0.852769 0.852465 0.852166 0.851879 0.851611 0.851369 0.851162 0.850998 0.850886 0.850836 0.850858 0.850962 0.851162 0.851467 0.851891 0.852446 0.853148 0.854009 0.855046 0.856274 0.85771 0.85937 0.861274 0.86344 0.865886 0.868634 0.871705 0.875119 0.8789 0.883071 0.887656 0.892679 0.898167 0.904147 0.910644 0.917689 0.925309 0.933535 0.9424 +0.9324 0.924046 0.916307 0.909152 0.902552 0.89648 0.89091 0.885814 0.881168 0.876945 0.873123 0.869677 0.866585 0.863824 0.861373 0.859213 0.857321 0.855681 0.854272 0.853078 0.852082 0.851266 0.850616 0.850117 0.849754 0.849513 0.849383 0.84935 0.849403 0.84953 0.849721 0.849967 0.850257 0.850582 0.850935 0.851307 0.85169 0.852079 0.852465 0.852844 0.853209 0.853555 0.853877 0.854173 0.854436 0.854665 0.854856 0.855007 0.855116 0.855182 0.855205 0.855182 0.855116 0.855007 0.854856 0.854665 0.854436 0.854173 0.853877 0.853555 0.853209 0.852844 0.852465 0.852079 0.85169 0.851307 0.850935 0.850582 0.850257 0.849967 0.849721 0.84953 0.849403 0.84935 0.849383 0.849513 0.849754 0.850117 0.850616 0.851266 0.852082 0.853078 0.854272 0.855681 0.857321 0.859213 0.861373 0.863824 0.866585 0.869677 0.873123 0.876945 0.881168 0.885814 0.89091 0.89648 0.902552 0.909152 0.916307 0.924046 0.9324 +0.9216 0.913795 0.906579 0.899924 0.893804 0.888192 0.883063 0.878392 0.874154 0.870324 0.866879 0.863797 0.861054 0.85863 0.856502 0.854652 0.853059 0.851705 0.850571 0.84964 0.848895 0.84832 0.8479 0.84762 0.847466 0.847425 0.847485 0.847632 0.847855 0.848145 0.848489 0.848879 0.849306 0.849759 0.850232 0.850717 0.851205 0.85169 0.852166 0.852627 0.853067 0.853481 0.853864 0.854213 0.854523 0.854791 0.855014 0.85519 0.855317 0.855394 0.855419 0.855394 0.855317 0.85519 0.855014 0.854791 0.854523 0.854213 0.853864 0.853481 0.853067 0.852627 0.852166 0.85169 0.851205 0.850717 0.850232 0.849759 0.849306 0.848879 0.848489 0.848145 0.847855 0.847632 0.847485 0.847425 0.847466 0.84762 0.8479 0.84832 0.848895 0.84964 0.850571 0.851705 0.853059 0.854652 0.856502 0.85863 0.861054 0.863797 0.866879 0.870324 0.874154 0.878392 0.883063 0.888192 0.893804 0.899924 0.906579 0.913795 0.9216 +0.91 0.90278 0.896123 0.890003 0.884396 0.879277 0.874623 0.870408 0.866609 0.863202 0.860165 0.857475 0.85511 0.853049 0.851272 0.849758 0.848487 0.847443 0.846606 0.845959 0.845487 0.845172 0.845001 0.844959 0.845032 0.845206 0.845471 0.845813 0.846221 0.846686 0.847196 0.847742 0.848315 0.848908 0.84951 0.850116 0.850717 0.851307 0.851879 0.852429 0.852949 0.853436 0.853885 0.854291 0.854651 0.854961 0.855218 0.855421 0.855567 0.855656 0.855685 0.855656 0.855567 0.855421 0.855218 0.854961 0.854651 0.854291 0.853885 0.853436 0.852949 0.852429 0.851879 0.851307 0.850717 0.850116 0.84951 0.848908 0.848315 0.847742 0.847196 0.846686 0.846221 0.845813 0.845471 0.845206 0.845032 0.844959 0.845001 0.845172 0.845487 0.845959 0.846606 0.847443 0.848487 0.849758 0.851272 0.853049 0.85511 0.857475 0.860165 0.863202 0.866609 0.870408 0.874623 0.879277 0.884396 0.890003 0.896123 0.90278 0.91 +0.8976 0.890999 0.884934 0.879383 0.874323 0.86973 0.865582 0.861856 0.858528 0.855575 0.852976 0.850708 0.848749 0.84708 0.845679 0.844526 0.843604 0.842894 0.842377 0.842038 0.841859 0.841826 0.841923 0.842137 0.842454 0.842861 0.843346 0.843898 0.844505 0.845158 0.845846 0.84656 0.847292 0.848033 0.848775 0.84951 0.850232 0.850935 0.851611 0.852256 0.852863 0.853428 0.853947 0.854414 0.854828 0.855183 0.855478 0.855709 0.855876 0.855977 0.856011 0.855977 0.855876 0.855709 0.855478 0.855183 0.854828 0.854414 0.853947 0.853428 0.852863 0.852256 0.851611 0.850935 0.850232 0.84951 0.848775 0.848033 0.847292 0.84656 0.845846 0.845158 0.844505 0.843898 0.843346 0.842861 0.842454 0.842137 0.841923 0.841826 0.841859 0.842038 0.842377 0.842894 0.843604 0.844526 0.845679 0.84708 0.848749 0.850708 0.852976 0.855575 0.858528 0.861856 0.865582 0.86973 0.874323 0.879383 0.884934 0.890999 0.8976 +0.8844 0.878449 0.873009 0.868059 0.863578 0.859544 0.855936 0.85273 0.849904 0.847437 0.845306 0.843489 0.841967 0.840717 0.83972 0.838957 0.838409 0.838057 0.837885 0.837875 0.838013 0.838282 0.838667 0.839156 0.839735 0.840392 0.841114 0.841892 0.842712 0.843567 0.844446 0.845341 0.846242 0.847142 0.848033 0.848908 0.849759 0.850582 0.851369 0.852115 0.852816 0.853464 0.854058 0.854591 0.855062 0.855466 0.8558 0.856062 0.856251 0.856365 0.856403 0.856365 0.856251 0.856062 0.8558 0.855466 0.855062 0.854591 0.854058 0.853464 0.852816 0.852115 0.851369 0.850582 0.849759 0.848908 0.848033 0.847142 0.846242 0.845341 0.844446 0.843567 0.842712 0.841892 0.841114 0.840392 0.839735 0.839156 0.838667 0.838282 0.838013 0.837875 0.837885 0.838057 0.838409 0.838957 0.83972 0.840717 0.841967 0.843489 0.845306 0.847437 0.849904 0.85273 0.855936 0.859544 0.863578 0.868059 0.873009 0.878449 0.8844 +0.8704 0.865129 0.860344 0.856027 0.852157 0.848713 0.845676 0.843022 0.840731 0.838781 0.837149 0.835815 0.834758 0.833958 0.833394 0.833047 0.832899 0.832932 0.833129 0.833474 0.83395 0.834542 0.835237 0.836021 0.836881 0.837805 0.838782 0.8398 0.840849 0.84192 0.843003 0.84409 0.845172 0.846242 0.847292 0.848315 0.849306 0.850257 0.851162 0.852017 0.852815 0.853553 0.854227 0.854831 0.855362 0.855817 0.856194 0.856489 0.856701 0.856829 0.856872 0.856829 0.856701 0.856489 0.856194 0.855817 0.855362 0.854831 0.854227 0.853553 0.852815 0.852017 0.851162 0.850257 0.849306 0.848315 0.847292 0.846242 0.845172 0.84409 0.843003 0.84192 0.840849 0.8398 0.838782 0.837805 0.836881 0.836021 0.835237 0.834542 0.83395 0.833474 0.833129 0.832932 0.832899 0.833047 0.833394 0.833958 0.834758 0.835815 0.837149 0.838781 0.840731 0.843022 0.845676 0.848713 0.852157 0.856027 0.860344 0.865129 0.8704 +0.8556 0.851036 0.846935 0.84328 0.840051 0.83723 0.834796 0.832727 0.831003 0.829601 0.8285 0.82768 0.827119 0.826798 0.826696 0.826794 0.827074 0.827519 0.82811 0.828833 0.829671 0.83061 0.831635 0.832734 0.833895 0.835104 0.836352 0.837627 0.83892 0.840222 0.841523 0.842815 0.84409 0.845341 0.84656 0.847742 0.848879 0.849967 0.850998 0.851968 0.852872 0.853704 0.854462 0.855141 0.855737 0.856247 0.856668 0.856999 0.857236 0.857379 0.857427 0.857379 0.857236 0.856999 0.856668 0.856247 0.855737 0.855141 0.854462 0.853704 0.852872 0.851968 0.850998 0.849967 0.848879 0.847742 0.84656 0.845341 0.84409 0.842815 0.841523 0.840222 0.83892 0.837627 0.836352 0.835104 0.833895 0.832734 0.831635 0.83061 0.829671 0.828833 0.82811 0.827519 0.827074 0.826794 0.826696 0.826798 0.827119 0.82768 0.8285 0.829601 0.831003 0.832727 0.834796 0.83723 0.840051 0.84328 0.846935 0.851036 0.8556 +0.84 0.836168 0.832778 0.829813 0.827257 0.825088 0.823289 0.821837 0.820712 0.819891 0.819354 0.819079 0.819046 0.819234 0.819624 0.820196 0.820932 0.821815 0.822828 0.823954 0.825178 0.826486 0.827865 0.8293 0.83078 0.832294 0.833831 0.835381 0.836933 0.83848 0.840013 0.841523 0.843003 0.844446 0.845846 0.847196 0.848489 0.849721 0.850886 0.851978 0.852993 0.853927 0.854774 0.855532 0.856197 0.856765 0.857234 0.857601 0.857865 0.858023 0.858076 0.858023 0.857865 0.857601 0.857234 0.856765 0.856197 0.855532 0.854774 0.853927 0.852993 0.851978 0.850886 0.849721 0.848489 0.847196 0.845846 0.844446 0.843003 0.841523 0.840013 0.83848 0.836933 0.835381 0.833831 0.832294 0.83078 0.8293 0.827865 0.826486 0.825178 0.823954 0.822828 0.821815 0.820932 0.820196 0.819624 0.819234 0.819046 0.819079 0.819354 0.819891 0.820712 0.821837 0.823289 0.825088 0.827257 0.829813 0.832778 0.836168 0.84 +0.8236 0.820523 0.817869 0.815623 0.813767 0.812282 0.811149 0.810346 0.809852 0.809645 0.809704 0.810007 0.810533 0.811262 0.812174 0.813251 0.814472 0.815822 0.817282 0.818838 0.820473 0.822175 0.823928 0.825722 0.827543 0.829381 0.831225 0.833066 0.834894 0.836702 0.83848 0.840222 0.84192 0.843567 0.845158 0.846686 0.848145 0.84953 0.850836 0.852057 0.85319 0.85423 0.855173 0.856015 0.856752 0.857381 0.8579 0.858307 0.858598 0.858774 0.858832 0.858774 0.858598 0.858307 0.8579 0.857381 0.856752 0.856015 0.855173 0.85423 0.85319 0.852057 0.850836 0.84953 0.848145 0.846686 0.845158 0.843567 0.84192 0.840222 0.83848 0.836702 0.834894 0.833066 0.831225 0.829381 0.827543 0.825722 0.823928 0.822175 0.820473 0.818838 0.817282 0.815822 0.814472 0.813251 0.812174 0.811262 0.810533 0.810007 0.809704 0.809645 0.809852 0.810346 0.811149 0.812282 0.813767 0.815623 0.817869 0.820523 0.8236 +0.8064 0.804098 0.802205 0.800703 0.799577 0.798806 0.798371 0.798249 0.798419 0.798858 0.799546 0.800459 0.801578 0.80288 0.804346 0.805957 0.807693 0.809538 0.811474 0.813486 0.815559 0.817678 0.81983 0.822004 0.824187 0.826368 0.828539 0.830689 0.832811 0.834894 0.836933 0.83892 0.840849 0.842712 0.844505 0.846221 0.847855 0.849403 0.850858 0.852216 0.853474 0.854626 0.855669 0.856599 0.857413 0.858107 0.858679 0.859127 0.859448 0.859641 0.859706 0.859641 0.859448 0.859127 0.858679 0.858107 0.857413 0.856599 0.855669 0.854626 0.853474 0.852216 0.850858 0.849403 0.847855 0.846221 0.844505 0.842712 0.840849 0.83892 0.836933 0.834894 0.832811 0.830689 0.828539 0.826368 0.824187 0.822004 0.81983 0.817678 0.815559 0.813486 0.811474 0.809538 0.807693 0.805957 0.804346 0.80288 0.801578 0.800459 0.799546 0.798858 0.798419 0.798249 0.798371 0.798806 0.799577 0.800703 0.802205 0.804098 0.8064 +0.7884 0.786893 0.785782 0.785052 0.784683 0.784656 0.784949 0.78554 0.786407 0.787527 0.788876 0.790434 0.792177 0.794085 0.796137 0.798313 0.800596 0.802965 0.805406 0.807902 0.810437 0.812999 0.815575 0.818151 0.820718 0.823264 0.825781 0.828258 0.830689 0.833066 0.835381 0.837627 0.8398 0.841892 0.843898 0.845813 0.847632 0.84935 0.850962 0.852465 0.853854 0.855125 0.856274 0.857297 0.858191 0.858954 0.859582 0.860073 0.860425 0.860637 0.860708 0.860637 0.860425 0.860073 0.859582 0.858954 0.858191 0.857297 0.856274 0.855125 0.853854 0.852465 0.850962 0.84935 0.847632 0.845813 0.843898 0.841892 0.8398 0.837627 0.835381 0.833066 0.830689 0.828258 0.825781 0.823264 0.820718 0.818151 0.815575 0.812999 0.810437 0.807902 0.805406 0.802965 0.800596 0.798313 0.796137 0.794085 0.792177 0.790434 0.788876 0.787527 0.786407 0.78554 0.784949 0.784656 0.784683 0.785052 0.785782 0.786893 0.7884 +0.7696 0.768906 0.7686 0.768665 0.769081 0.769827 0.77088 0.772217 0.773813 0.775647 0.777692 0.779927 0.782329 0.784876 0.787547 0.790321 0.79318 0.796104 0.799079 0.802086 0.805112 0.808143 0.811166 0.814169 0.817142 0.820074 0.822956 0.825781 0.828539 0.831225 0.833831 0.836352 0.838782 0.841114 0.843346 0.845471 0.847485 0.849383 0.851162 0.852816 0.854343 0.855739 0.856999 0.85812 0.8591 0.859935 0.860621 0.861158 0.861543 0.861775 0.861852 0.861775 0.861543 0.861158 0.860621 0.859935 0.8591 0.85812 0.856999 0.855739 0.854343 0.852816 0.851162 0.849383 0.847485 0.845471 0.843346 0.841114 0.838782 0.836352 0.833831 0.831225 0.828539 0.825781 0.822956 0.820074 0.817142 0.814169 0.811166 0.808143 0.805112 0.802086 0.799079 0.796104 0.79318 0.790321 0.787547 0.784876 0.782329 0.779927 0.777692 0.775647 0.773813 0.772217 0.77088 0.769827 0.769081 0.768665 0.7686 0.768906 0.7696 +0.75 0.750137 0.750657 0.751542 0.75277 0.754318 0.756162 0.758276 0.760636 0.763217 0.765993 0.76894 0.772035 0.775254 0.778576 0.781981 0.785448 0.788958 0.792496 0.796044 0.799588 0.803114 0.80661 0.810064 0.813465 0.816805 0.820074 0.823264 0.826368 0.829381 0.832294 0.835104 0.837805 0.840392 0.842861 0.845206 0.847425 0.849513 0.851467 0.853281 0.854954 0.85648 0.857858 0.859082 0.860151 0.861061 0.86181 0.862395 0.862814 0.863067 0.863151 0.863067 0.862814 0.862395 0.86181 0.861061 0.860151 0.859082 0.857858 0.85648 0.854954 0.853281 0.851467 0.849513 0.847425 0.845206 0.842861 0.840392 0.837805 0.835104 0.832294 0.829381 0.826368 0.823264 0.820074 0.816805 0.813465 0.810064 0.80661 0.803114 0.799588 0.796044 0.792496 0.788958 0.785448 0.781981 0.778576 0.775254 0.772035 0.76894 0.765993 0.763217 0.760636 0.758276 0.756162 0.754318 0.75277 0.751542 0.750657 0.750137 0.75 +0.7296 0.730584 0.731952 0.733681 0.735748 0.738128 0.740794 0.743719 0.746875 0.750237 0.753778 0.757472 0.761294 0.76522 0.769228 0.773295 0.777402 0.781531 0.785662 0.78978 0.79387 0.797919 0.801913 0.805843 0.809696 0.813465 0.817142 0.820718 0.824187 0.827543 0.83078 0.833895 0.836881 0.839735 0.842454 0.845032 0.847466 0.849754 0.851891 0.853873 0.855698 0.857363 0.858863 0.860196 0.861358 0.862348 0.863162 0.863797 0.864253 0.864526 0.864618 0.864526 0.864253 0.863797 0.863162 0.862348 0.861358 0.860196 0.858863 0.857363 0.855698 0.853873 0.851891 0.849754 0.847466 0.845032 0.842454 0.839735 0.836881 0.833895 0.83078 0.827543 0.824187 0.820718 0.817142 0.813465 0.809696 0.805843 0.801913 0.797919 0.79387 0.78978 0.785662 0.781531 0.777402 0.773295 0.769228 0.76522 0.761294 0.757472 0.753778 0.750237 0.746875 0.743719 0.740794 0.738128 0.735748 0.733681 0.731952 0.730584 0.7296 +0.7084 0.710249 0.712485 0.715083 0.718017 0.721258 0.724778 0.728545 0.732532 0.73671 0.741051 0.745526 0.75011 0.754777 0.759504 0.764269 0.769049 0.773826 0.778582 0.7833 0.787965 0.792563 0.797083 0.801513 0.805843 0.810064 0.814169 0.818151 0.822004 0.825722 0.8293 0.832734 0.836021 0.839156 0.842137 0.844959 0.84762 0.850117 0.852446 0.854605 0.856591 0.858399 0.860029 0.861475 0.862736 0.863809 0.86469 0.865379 0.865872 0.866169 0.866268 0.866169 0.865872 0.865379 0.86469 0.863809 0.862736 0.861475 0.860029 0.858399 0.856591 0.854605 0.852446 0.850117 0.84762 0.844959 0.842137 0.839156 0.836021 0.832734 0.8293 0.825722 0.822004 0.818151 0.814169 0.810064 0.805843 0.801513 0.797083 0.792563 0.787965 0.7833 0.778582 0.773826 0.769049 0.764269 0.759504 0.754777 0.75011 0.745526 0.741051 0.73671 0.732532 0.728545 0.724778 0.721258 0.718017 0.715083 0.712485 0.710249 0.7084 +0.6864 0.689132 0.692259 0.695751 0.699579 0.703712 0.708116 0.71276 0.717611 0.72264 0.727815 0.733107 0.738488 0.743932 0.749412 0.754907 0.760393 0.765852 0.771263 0.776611 0.78188 0.787056 0.792127 0.797083 0.801913 0.80661 0.811166 0.815575 0.81983 0.823928 0.827865 0.831635 0.835237 0.838667 0.841923 0.845001 0.8479 0.850616 0.853148 0.855491 0.857645 0.859605 0.861369 0.862935 0.864299 0.865459 0.866411 0.867155 0.867688 0.868009 0.868116 0.868009 0.867688 0.867155 0.866411 0.865459 0.864299 0.862935 0.861369 0.859605 0.857645 0.855491 0.853148 0.850616 0.8479 0.845001 0.841923 0.838667 0.835237 0.831635 0.827865 0.823928 0.81983 0.815575 0.811166 0.80661 0.801913 0.797083 0.792127 0.787056 0.78188 0.776611 0.771263 0.765852 0.760393 0.754907 0.749412 0.743932 0.738488 0.733107 0.727815 0.72264 0.717611 0.71276 0.708116 0.703712 0.699579 0.695751 0.692259 0.689132 0.6864 +0.6636 0.667235 0.671275 0.675688 0.68044 0.685494 0.690816 0.696369 0.702119 0.708034 0.714078 0.720222 0.726436 0.73269 0.738959 0.745218 0.751444 0.757615 0.763714 0.769722 0.775623 0.781406 0.787056 0.792563 0.797919 0.803114 0.808143 0.812999 0.817678 0.822175 0.826486 0.83061 0.834542 0.838282 0.841826 0.845172 0.84832 0.851266 0.854009 0.856546 0.858875 0.860994 0.8629 0.86459 0.866062 0.867313 0.868341 0.869143 0.869717 0.870062 0.870177 0.870062 0.869717 0.869143 0.868341 0.867313 0.866062 0.86459 0.8629 0.860994 0.858875 0.856546 0.854009 0.851266 0.84832 0.845172 0.841826 0.838282 0.834542 0.83061 0.826486 0.822175 0.817678 0.812999 0.808143 0.803114 0.797919 0.792563 0.787056 0.781406 0.775623 0.769722 0.763714 0.757615 0.751444 0.745218 0.738959 0.73269 0.726436 0.720222 0.714078 0.708034 0.702119 0.696369 0.690816 0.685494 0.68044 0.675688 0.671275 0.667235 0.6636 +0.64 0.644559 0.649538 0.654899 0.660604 0.666612 0.672884 0.67938 0.686065 0.6929 0.69985 0.706882 0.713963 0.721064 0.728156 0.735212 0.74221 0.749128 0.755944 0.762643 0.769207 0.775623 0.78188 0.787965 0.79387 0.799588 0.805112 0.810437 0.815559 0.820473 0.825178 0.829671 0.83395 0.838013 0.841859 0.845487 0.848895 0.852082 0.855046 0.857786 0.860299 0.862583 0.864637 0.866457 0.868042 0.869389 0.870494 0.871357 0.871975 0.872346 0.87247 0.872346 0.871975 0.871357 0.870494 0.869389 0.868042 0.866457 0.864637 0.862583 0.860299 0.857786 0.855046 0.852082 0.848895 0.845487 0.841859 0.838013 0.83395 0.829671 0.825178 0.820473 0.815559 0.810437 0.805112 0.799588 0.79387 0.787965 0.78188 0.775623 0.769207 0.762643 0.755944 0.749128 0.74221 0.735212 0.728156 0.721064 0.713963 0.706882 0.69985 0.6929 0.686065 0.67938 0.672884 0.666612 0.660604 0.654899 0.649538 0.644559 0.64 +0.6156 0.621108 0.627053 0.633392 0.64008 0.647075 0.654331 0.661807 0.66946 0.677252 0.685144 0.693099 0.701083 0.709065 0.717014 0.724902 0.732706 0.740401 0.747967 0.755387 0.762643 0.769722 0.776611 0.7833 0.78978 0.796044 0.802086 0.807902 0.813486 0.818838 0.823954 0.828833 0.833474 0.837875 0.842038 0.845959 0.84964 0.853078 0.856274 0.859225 0.861931 0.864389 0.866597 0.868554 0.870256 0.871702 0.872889 0.873815 0.874479 0.874877 0.87501 0.874877 0.874479 0.873815 0.872889 0.871702 0.870256 0.868554 0.866597 0.864389 0.861931 0.859225 0.856274 0.853078 0.84964 0.845959 0.842038 0.837875 0.833474 0.828833 0.823954 0.818838 0.813486 0.807902 0.802086 0.796044 0.78978 0.7833 0.776611 0.769722 0.762643 0.755387 0.747967 0.740401 0.732706 0.724902 0.717014 0.709065 0.701083 0.693099 0.685144 0.677252 0.66946 0.661807 0.654331 0.647075 0.64008 0.633392 0.627053 0.621108 0.6156 +0.5904 0.596885 0.603826 0.611174 0.61888 0.626896 0.635172 0.643661 0.65232 0.661105 0.669974 0.678888 0.687811 0.696709 0.705549 0.714303 0.722945 0.73145 0.739797 0.747967 0.755944 0.763714 0.771263 0.778582 0.785662 0.792496 0.799079 0.805406 0.811474 0.817282 0.822828 0.82811 0.833129 0.837885 0.842377 0.846606 0.850571 0.854272 0.85771 0.860882 0.863789 0.866427 0.868797 0.870896 0.872722 0.874272 0.875544 0.876537 0.877247 0.877674 0.877817 0.877674 0.877247 0.876537 0.875544 0.874272 0.872722 0.870896 0.868797 0.866427 0.863789 0.860882 0.85771 0.854272 0.850571 0.846606 0.842377 0.837885 0.833129 0.82811 0.822828 0.817282 0.811474 0.805406 0.799079 0.792496 0.785662 0.778582 0.771263 0.763714 0.755944 0.747967 0.739797 0.73145 0.722945 0.714303 0.705549 0.696709 0.687811 0.678888 0.669974 0.661105 0.65232 0.643661 0.635172 0.626896 0.61888 0.611174 0.603826 0.596885 0.5904 +0.5644 0.571894 0.579864 0.588256 0.597016 0.606089 0.615421 0.624962 0.634663 0.644477 0.65436 0.664269 0.674166 0.684014 0.69378 0.703433 0.712945 0.722291 0.73145 0.740401 0.749128 0.757615 0.765852 0.773826 0.781531 0.788958 0.796104 0.802965 0.809538 0.815822 0.821815 0.827519 0.832932 0.838057 0.842894 0.847443 0.851705 0.855681 0.85937 0.862774 0.86589 0.868718 0.871256 0.873503 0.875457 0.877116 0.878477 0.879539 0.880299 0.880756 0.880908 0.880756 0.880299 0.879539 0.878477 0.877116 0.875457 0.873503 0.871256 0.868718 0.86589 0.862774 0.85937 0.855681 0.851705 0.847443 0.842894 0.838057 0.832932 0.827519 0.821815 0.815822 0.809538 0.802965 0.796104 0.788958 0.781531 0.773826 0.765852 0.757615 0.749128 0.740401 0.73145 0.722291 0.712945 0.703433 0.69378 0.684014 0.674166 0.664269 0.65436 0.644477 0.634663 0.624962 0.615421 0.606089 0.597016 0.588256 0.579864 0.571894 0.5644 +0.5376 0.546139 0.555176 0.564651 0.574503 0.584671 0.595099 0.605729 0.61651 0.627391 0.638325 0.649265 0.660171 0.671003 0.681728 0.692312 0.702726 0.712945 0.722945 0.732706 0.74221 0.751444 0.760393 0.769049 0.777402 0.785448 0.79318 0.800596 0.807693 0.814472 0.820932 0.827074 0.832899 0.838409 0.843604 0.848487 0.853059 0.857321 0.861274 0.864918 0.868253 0.871278 0.873992 0.876395 0.878483 0.880255 0.881709 0.882843 0.883654 0.884142 0.884304 0.884142 0.883654 0.882843 0.881709 0.880255 0.878483 0.876395 0.873992 0.871278 0.868253 0.864918 0.861274 0.857321 0.853059 0.848487 0.843604 0.838409 0.832899 0.827074 0.820932 0.814472 0.807693 0.800596 0.79318 0.785448 0.777402 0.769049 0.760393 0.751444 0.74221 0.732706 0.722945 0.712945 0.702726 0.692312 0.681728 0.671003 0.660171 0.649265 0.638325 0.627391 0.61651 0.605729 0.595099 0.584671 0.574503 0.564651 0.555176 0.546139 0.5376 +0.51 0.519626 0.529773 0.540372 0.551358 0.562665 0.574228 0.585988 0.597888 0.609874 0.621894 0.633901 0.64585 0.657702 0.669418 0.680965 0.692312 0.703433 0.714303 0.724902 0.735212 0.745218 0.754907 0.764269 0.773295 0.781981 0.790321 0.798313 0.805957 0.813251 0.820196 0.826794 0.833047 0.838957 0.844526 0.849758 0.854652 0.859213 0.86344 0.867334 0.870897 0.874128 0.877026 0.879589 0.881817 0.883708 0.885259 0.886468 0.887333 0.887853 0.888026 0.887853 0.887333 0.886468 0.885259 0.883708 0.881817 0.879589 0.877026 0.874128 0.870897 0.867334 0.86344 0.859213 0.854652 0.849758 0.844526 0.838957 0.833047 0.826794 0.820196 0.813251 0.805957 0.798313 0.790321 0.781981 0.773295 0.764269 0.754907 0.745218 0.735212 0.724902 0.714303 0.703433 0.692312 0.680965 0.669418 0.657702 0.64585 0.633901 0.621894 0.609874 0.597888 0.585988 0.574228 0.562665 0.551358 0.540372 0.529773 0.519626 0.51 +0.4816 0.492361 0.503665 0.515436 0.527602 0.540091 0.552833 0.565764 0.578823 0.591953 0.605098 0.618207 0.631235 0.644137 0.656877 0.669418 0.681728 0.69378 0.705549 0.717014 0.728156 0.738959 0.749412 0.759504 0.769228 0.778576 0.787547 0.796137 0.804346 0.812174 0.819624 0.826696 0.833394 0.83972 0.845679 0.851272 0.856502 0.861373 0.865886 0.870042 0.873843 0.877288 0.880377 0.883109 0.885483 0.887497 0.889148 0.890436 0.891357 0.891911 0.892096 0.891911 0.891357 0.890436 0.889148 0.887497 0.885483 0.883109 0.880377 0.877288 0.873843 0.870042 0.865886 0.861373 0.856502 0.851272 0.845679 0.83972 0.833394 0.826696 0.819624 0.812174 0.804346 0.796137 0.787547 0.778576 0.769228 0.759504 0.749412 0.738959 0.728156 0.717014 0.705549 0.69378 0.681728 0.669418 0.656877 0.644137 0.631235 0.618207 0.605098 0.591953 0.578823 0.565764 0.552833 0.540091 0.527602 0.515436 0.503665 0.492361 0.4816 +0.4524 0.464352 0.476866 0.489861 0.503257 0.516977 0.530945 0.545091 0.559352 0.573664 0.587971 0.602218 0.616357 0.630344 0.644137 0.657702 0.671003 0.684014 0.696709 0.709065 0.721064 0.73269 0.743932 0.754777 0.76522 0.775254 0.784876 0.794085 0.80288 0.811262 0.819234 0.826798 0.833958 0.840717 0.84708 0.853049 0.85863 0.863824 0.868634 0.873063 0.877111 0.880779 0.884067 0.886975 0.889501 0.891643 0.8934 0.894769 0.895749 0.896338 0.896534 0.896338 0.895749 0.894769 0.8934 0.891643 0.889501 0.886975 0.884067 0.880779 0.877111 0.873063 0.868634 0.863824 0.85863 0.853049 0.84708 0.840717 0.833958 0.826798 0.819234 0.811262 0.80288 0.794085 0.784876 0.775254 0.76522 0.754777 0.743932 0.73269 0.721064 0.709065 0.696709 0.684014 0.671003 0.657702 0.644137 0.630344 0.616357 0.602218 0.587971 0.573664 0.559352 0.545091 0.530945 0.516977 0.503257 0.489861 0.476866 0.464352 0.4524 +0.4224 0.435605 0.449391 0.463668 0.478351 0.493354 0.508597 0.524005 0.539509 0.555046 0.570551 0.585971 0.601256 0.616357 0.631235 0.64585 0.660171 0.674166 0.687811 0.701083 0.713963 0.726436 0.738488 0.75011 0.761294 0.772035 0.782329 0.792177 0.801578 0.810533 0.819046 0.827119 0.834758 0.841967 0.848749 0.85511 0.861054 0.866585 0.871705 0.876416 0.880722 0.884623 0.888119 0.891209 0.893894 0.89617 0.898036 0.899491 0.900532 0.901158 0.901366 0.901158 0.900532 0.899491 0.898036 0.89617 0.893894 0.891209 0.888119 0.884623 0.880722 0.876416 0.871705 0.866585 0.861054 0.85511 0.848749 0.841967 0.834758 0.827119 0.819046 0.810533 0.801578 0.792177 0.782329 0.772035 0.761294 0.75011 0.738488 0.726436 0.713963 0.701083 0.687811 0.674166 0.660171 0.64585 0.631235 0.616357 0.601256 0.585971 0.570551 0.555046 0.539509 0.524005 0.508597 0.493354 0.478351 0.463668 0.449391 0.435605 0.4224 +0.3916 0.406129 0.421255 0.43688 0.45291 0.469254 0.485825 0.502544 0.519338 0.536139 0.552882 0.56951 0.585971 0.602218 0.618207 0.633901 0.649265 0.664269 0.678888 0.693099 0.706882 0.720222 0.733107 0.745526 0.757472 0.76894 0.779927 0.790434 0.800459 0.810007 0.819079 0.82768 0.835815 0.843489 0.850708 0.857475 0.863797 0.869677 0.875119 0.880126 0.8847 0.888843 0.892555 0.895836 0.898686 0.901102 0.903083 0.904626 0.905731 0.906394 0.906616 0.906394 0.905731 0.904626 0.903083 0.901102 0.898686 0.895836 0.892555 0.888843 0.8847 0.880126 0.875119 0.869677 0.863797 0.857475 0.850708 0.843489 0.835815 0.82768 0.819079 0.810007 0.800459 0.790434 0.779927 0.76894 0.757472 0.745526 0.733107 0.720222 0.706882 0.693099 0.678888 0.664269 0.649265 0.633901 0.618207 0.602218 0.585971 0.56951 0.552882 0.536139 0.519338 0.502544 0.485825 0.469254 0.45291 0.43688 0.421255 0.406129 0.3916 +0.36 0.375934 0.392478 0.409524 0.42697 0.444718 0.462675 0.480757 0.498887 0.516994 0.535012 0.552882 0.570551 0.587971 0.605098 0.621894 0.638325 0.65436 0.669974 0.685144 0.69985 0.714078 0.727815 0.741051 0.753778 0.765993 0.777692 0.788876 0.799546 0.809704 0.819354 0.8285 0.837149 0.845306 0.852976 0.860165 0.866879 0.873123 0.8789 0.884214 0.889068 0.893463 0.8974 0.90088 0.903901 0.906463 0.908563 0.910199 0.91137 0.912073 0.912308 0.912073 0.91137 0.910199 0.908563 0.906463 0.903901 0.90088 0.8974 0.893463 0.889068 0.884214 0.8789 0.873123 0.866879 0.860165 0.852976 0.845306 0.837149 0.8285 0.819354 0.809704 0.799546 0.788876 0.777692 0.765993 0.753778 0.741051 0.727815 0.714078 0.69985 0.685144 0.669974 0.65436 0.638325 0.621894 0.605098 0.587971 0.570551 0.552882 0.535012 0.516994 0.498887 0.480757 0.462675 0.444718 0.42697 0.409524 0.392478 0.375934 0.36 +0.3276 0.345031 0.363081 0.381631 0.400569 0.41979 0.439194 0.458693 0.478208 0.497664 0.516994 0.536139 0.555046 0.573664 0.591953 0.609874 0.627391 0.644477 0.661105 0.677252 0.6929 0.708034 0.72264 0.73671 0.750237 0.763217 0.775647 0.787527 0.798858 0.809645 0.819891 0.829601 0.838781 0.847437 0.855575 0.863202 0.870324 0.876945 0.883071 0.888704 0.893849 0.898507 0.902679 0.906366 0.909566 0.91228 0.914504 0.916237 0.917476 0.918221 0.91847 0.918221 0.917476 0.916237 0.914504 0.91228 0.909566 0.906366 0.902679 0.898507 0.893849 0.888704 0.883071 0.876945 0.870324 0.863202 0.855575 0.847437 0.838781 0.829601 0.819891 0.809645 0.798858 0.787527 0.775647 0.763217 0.750237 0.73671 0.72264 0.708034 0.6929 0.677252 0.661105 0.644477 0.627391 0.609874 0.591953 0.573664 0.555046 0.536139 0.516994 0.497664 0.478208 0.458693 0.439194 0.41979 0.400569 0.381631 0.363081 0.345031 0.3276 +0.2944 0.313434 0.333089 0.353235 0.37375 0.394519 0.415437 0.436411 0.45736 0.478208 0.498887 0.519338 0.539509 0.559352 0.578823 0.597888 0.61651 0.634663 0.65232 0.66946 0.686065 0.702119 0.717611 0.732532 0.746875 0.760636 0.773813 0.786407 0.798419 0.809852 0.820712 0.831003 0.840731 0.849904 0.858528 0.866609 0.874154 0.881168 0.887656 0.893622 0.89907 0.904001 0.908418 0.91232 0.915708 0.918579 0.920933 0.922766 0.924078 0.924866 0.925129 0.924866 0.924078 0.922766 0.920933 0.918579 0.915708 0.91232 0.908418 0.904001 0.89907 0.893622 0.887656 0.881168 0.874154 0.866609 0.858528 0.849904 0.840731 0.831003 0.820712 0.809852 0.798419 0.786407 0.773813 0.760636 0.746875 0.732532 0.717611 0.702119 0.686065 0.66946 0.65232 0.634663 0.61651 0.597888 0.578823 0.559352 0.539509 0.519338 0.498887 0.478208 0.45736 0.436411 0.415437 0.394519 0.37375 0.353235 0.333089 0.313434 0.2944 +0.2604 0.281157 0.302533 0.324381 0.346566 0.368965 0.391468 0.413977 0.436411 0.458693 0.480757 0.502544 0.524005 0.545091 0.565764 0.585988 0.605729 0.624962 0.643661 0.661807 0.67938 0.696369 0.71276 0.728545 0.743719 0.758276 0.772217 0.78554 0.798249 0.810346 0.821837 0.832727 0.843022 0.85273 0.861856 0.870408 0.878392 0.885814 0.892679 0.898992 0.904755 0.909972 0.914644 0.918771 0.922353 0.925389 0.927877 0.929816 0.931202 0.932035 0.932313 0.932035 0.931202 0.929816 0.927877 0.925389 0.922353 0.918771 0.914644 0.909972 0.904755 0.898992 0.892679 0.885814 0.878392 0.870408 0.861856 0.85273 0.843022 0.832727 0.821837 0.810346 0.798249 0.78554 0.772217 0.758276 0.743719 0.728545 0.71276 0.696369 0.67938 0.661807 0.643661 0.624962 0.605729 0.585988 0.565764 0.545091 0.524005 0.502544 0.480757 0.458693 0.436411 0.413977 0.391468 0.368965 0.346566 0.324381 0.302533 0.281157 0.2604 +0.2256 0.248221 0.271449 0.295119 0.319079 0.343198 0.36736 0.391468 0.415437 0.439194 0.462675 0.485825 0.508597 0.530945 0.552833 0.574228 0.595099 0.615421 0.635172 0.654331 0.672884 0.690816 0.708116 0.724778 0.740794 0.756162 0.77088 0.784949 0.798371 0.811149 0.823289 0.834796 0.845676 0.855936 0.865582 0.874623 0.883063 0.89091 0.898167 0.90484 0.910933 0.916447 0.921384 0.925746 0.929531 0.932739 0.935367 0.937415 0.93888 0.93976 0.940053 0.93976 0.93888 0.937415 0.935367 0.932739 0.929531 0.925746 0.921384 0.916447 0.910933 0.90484 0.898167 0.89091 0.883063 0.874623 0.865582 0.855936 0.845676 0.834796 0.823289 0.811149 0.798371 0.784949 0.77088 0.756162 0.740794 0.724778 0.708116 0.690816 0.672884 0.654331 0.635172 0.615421 0.595099 0.574228 0.552833 0.530945 0.508597 0.485825 0.462675 0.439194 0.415437 0.391468 0.36736 0.343198 0.319079 0.295119 0.271449 0.248221 0.2256 +0.19 0.214651 0.239885 0.265512 0.291364 0.317299 0.343198 0.368965 0.394519 0.41979 0.444718 0.469254 0.493354 0.516977 0.540091 0.562665 0.584671 0.606089 0.626896 0.647075 0.666612 0.685494 0.703712 0.721258 0.738128 0.754318 0.769827 0.784656 0.798806 0.812282 0.825088 0.83723 0.848713 0.859544 0.86973 0.879277 0.888192 0.89648 0.904147 0.911196 0.917631 0.923456 0.92867 0.933276 0.937273 0.940659 0.943435 0.945596 0.947142 0.948071 0.948381 0.948071 0.947142 0.945596 0.943435 0.940659 0.937273 0.933276 0.92867 0.923456 0.917631 0.911196 0.904147 0.89648 0.888192 0.879277 0.86973 0.859544 0.848713 0.83723 0.825088 0.812282 0.798806 0.784656 0.769827 0.754318 0.738128 0.721258 0.703712 0.685494 0.666612 0.647075 0.626896 0.606089 0.584671 0.562665 0.540091 0.516977 0.493354 0.469254 0.444718 0.41979 0.394519 0.368965 0.343198 0.317299 0.291364 0.265512 0.239885 0.214651 0.19 +0.1536 0.180481 0.207904 0.235643 0.263513 0.291364 0.319079 0.346566 0.37375 0.400569 0.42697 0.45291 0.478351 0.503257 0.527602 0.551358 0.574503 0.597016 0.61888 0.64008 0.660604 0.68044 0.699579 0.718017 0.735748 0.75277 0.769081 0.784683 0.799577 0.813767 0.827257 0.840051 0.852157 0.863578 0.874323 0.884396 0.893804 0.902552 0.910644 0.918086 0.924879 0.931028 0.936532 0.941393 0.94561 0.949183 0.952111 0.954391 0.956022 0.957001 0.957328 0.957001 0.956022 0.954391 0.952111 0.949183 0.94561 0.941393 0.936532 0.931028 0.924879 0.918086 0.910644 0.902552 0.893804 0.884396 0.874323 0.863578 0.852157 0.840051 0.827257 0.813767 0.799577 0.784683 0.769081 0.75277 0.735748 0.718017 0.699579 0.68044 0.660604 0.64008 0.61888 0.597016 0.574503 0.551358 0.527602 0.503257 0.478351 0.45291 0.42697 0.400569 0.37375 0.346566 0.319079 0.291364 0.263513 0.235643 0.207904 0.180481 0.1536 +0.1164 0.145761 0.175592 0.20562 0.235643 0.265512 0.295119 0.324381 0.353235 0.381631 0.409524 0.43688 0.463668 0.489861 0.515436 0.540372 0.564651 0.588256 0.611174 0.633392 0.654899 0.675688 0.695751 0.715083 0.733681 0.751542 0.768665 0.785052 0.800703 0.815623 0.829813 0.84328 0.856027 0.868059 0.879383 0.890003 0.899924 0.909152 0.917689 0.92554 0.932708 0.939194 0.945001 0.950128 0.954576 0.958344 0.96143 0.963833 0.965552 0.966583 0.966928 0.966583 0.965552 0.963833 0.96143 0.958344 0.954576 0.950128 0.945001 0.939194 0.932708 0.92554 0.917689 0.909152 0.899924 0.890003 0.879383 0.868059 0.856027 0.84328 0.829813 0.815623 0.800703 0.785052 0.768665 0.751542 0.733681 0.715083 0.695751 0.675688 0.654899 0.633392 0.611174 0.588256 0.564651 0.540372 0.515436 0.489861 0.463668 0.43688 0.409524 0.381631 0.353235 0.324381 0.295119 0.265512 0.235643 0.20562 0.175592 0.145761 0.1164 +0.0784 0.110574 0.14308 0.175592 0.207904 0.239885 0.271449 0.302533 0.333089 0.363081 0.392478 0.421255 0.449391 0.476866 0.503665 0.529773 0.555176 0.579864 0.603826 0.627053 0.649538 0.671275 0.692259 0.712485 0.731952 0.750657 0.7686 0.785782 0.802205 0.817869 0.832778 0.846935 0.860344 0.873009 0.884934 0.896123 0.906579 0.916307 0.925309 0.933589 0.941148 0.947988 0.954111 0.959517 0.964205 0.968175 0.971426 0.973957 0.975767 0.976853 0.977215 0.976853 0.975767 0.973957 0.971426 0.968175 0.964205 0.959517 0.954111 0.947988 0.941148 0.933589 0.925309 0.916307 0.906579 0.896123 0.884934 0.873009 0.860344 0.846935 0.832778 0.817869 0.802205 0.785782 0.7686 0.750657 0.731952 0.712485 0.692259 0.671275 0.649538 0.627053 0.603826 0.579864 0.555176 0.529773 0.503665 0.476866 0.449391 0.421255 0.392478 0.363081 0.333089 0.302533 0.271449 0.239885 0.207904 0.175592 0.14308 0.110574 0.0784 +0.0396 0.0750722 0.110574 0.145761 0.180481 0.214651 0.248221 0.281157 0.313434 0.345031 0.375934 0.406129 0.435605 0.464352 0.492361 0.519626 0.546139 0.571894 0.596885 0.621108 0.644559 0.667235 0.689132 0.710249 0.730584 0.750137 0.768906 0.786893 0.804098 0.820523 0.836168 0.851036 0.865129 0.878449 0.890999 0.90278 0.913795 0.924046 0.933535 0.942264 0.950233 0.957445 0.963898 0.969594 0.974533 0.978714 0.982137 0.9848 0.986703 0.987846 0.988227 0.987846 0.986703 0.9848 0.982137 0.978714 0.974533 0.969594 0.963898 0.957445 0.950233 0.942264 0.933535 0.924046 0.913795 0.90278 0.890999 0.878449 0.865129 0.851036 0.836168 0.820523 0.804098 0.786893 0.768906 0.750137 0.730584 0.710249 0.689132 0.667235 0.644559 0.621108 0.596885 0.571894 0.546139 0.519626 0.492361 0.464352 0.435605 0.406129 0.375934 0.345031 0.313434 0.281157 0.248221 0.214651 0.180481 0.145761 0.110574 0.0750722 0.0396 diff --git a/Poisson_Equation/files/Error.txt b/Poisson_Equation/files/Error.txt index 07e7321..aebe67b 100644 --- a/Poisson_Equation/files/Error.txt +++ b/Poisson_Equation/files/Error.txt @@ -1,2 +1,2 @@ -Задача решена с погрешностью 0.0166082 -Максимальное отклонение точного и численного решений в точке x = 0.25, y = 0.5 +Задача решена с точностью 5.44564e-05 +Максимальное отклонение 'точного' и численного решений в точке x = 0, y = 0 diff --git a/Poisson_Equation/files/Solver_results.txt b/Poisson_Equation/files/Solver_results.txt index ee4dd3d..3053953 100644 --- a/Poisson_Equation/files/Solver_results.txt +++ b/Poisson_Equation/files/Solver_results.txt @@ -1,3 +1,3 @@ -2.22045e-16 -2.13163e-14 -17 \ No newline at end of file +8.09837e-07 +0.00279072 +135 \ No newline at end of file diff --git a/Poisson_Equation/files/Solver_results_2N.txt b/Poisson_Equation/files/Solver_results_2N.txt new file mode 100644 index 0000000..26365c1 --- /dev/null +++ b/Poisson_Equation/files/Solver_results_2N.txt @@ -0,0 +1,3 @@ +8.66339e-07 +0.00915527 +269 \ No newline at end of file diff --git a/Poisson_Equation/headers/tasks.hpp b/Poisson_Equation/headers/tasks.hpp index e402909..6e97d3d 100644 --- a/Poisson_Equation/headers/tasks.hpp +++ b/Poisson_Equation/headers/tasks.hpp @@ -59,9 +59,9 @@ void test_task(size_t solver_num, size_t n, size_t m, size_t max_iterations, FP std::ofstream fapp("../files/Approximation.txt"); std::ofstream fcurr("../files/Correct.txt"); - for(size_t i = 0; i <= n; i++) + for(size_t j = m; j > 0; j--) { - for(size_t j = 0; j <= m; j++) + for(size_t i = 0; i <= n; i++) { FP x = corners[0] + i * h; FP y = corners[1] + j* k; @@ -126,9 +126,10 @@ void test_custom_task(size_t solver_num, size_t n, size_t m, size_t max_iteratio std::ofstream fapp("../files/Approximation.txt"); std::ofstream fcurr("../files/Correct.txt"); - for(size_t i = 0; i <= n; i++) + + for(size_t j = m; j > 0; j--) { - for(size_t j = 0; j <= m; j++) + for(size_t i = 0; i <= n; i++) { FP x = corners[0] + i * h; FP y = corners[1] + j * k; @@ -240,9 +241,9 @@ void main_task(size_t solver_num, size_t n, size_t m, size_t max_iterations, FP std::ofstream fapp("../files/Approximation.txt"); std::ofstream fcurr("../files/Correct.txt"); - for(size_t i = 0; i < m + 1; i++) + for(size_t j = m; j > 0; j--) { - for(size_t j = 0; j < n + 1; j++) + for(size_t i = 0; i <= n; i++) { FP y = corners[1] + i * k*2; FP x = corners[0] + j * h*2; @@ -264,11 +265,24 @@ void main_task(size_t solver_num, size_t n, size_t m, size_t max_iterations, FP fcurr.close(); std::ofstream fout_res("../files/Error.txt"); - fout_res << "Задача решена с погрешностью " << error << "\nМаксимальное отклонение точного и численного решений в точке x = " << x_max << ", y = " << y_max << '\n'; + fout_res << "Задача решена с точностью " << error << "\nМаксимальное отклонение 'точного' и численного решений в точке x = " << x_max << ", y = " << y_max << '\n'; fout_res.close(); - std::cout << "Задача решена с погрешностью " << error << "\nМаксимальное отклонение точного и численного решений в точке x = " << x_max << ", y = " << y_max << '\n'; + + std::vector lines_2; + std::ifstream file_2("../files/Solver_results.txt"); + if (file_2.is_open()) + { + std::string line; + while (getline(file_2, line)) + lines_2.push_back(line); + file_2.close(); + } std::ofstream fout("../files/Solver_results.txt"); fout << lines[0] << '\n' << lines[1] << '\n' << lines[2]; fout.close(); + + std::ofstream fout_2("../files/Solver_results_2N.txt"); + fout_2 << lines_2[0] << '\n' << lines_2[1] << '\n' << lines_2[2]; + fout_2.close(); } diff --git a/Poisson_Equation/src/Interface_table.py b/Poisson_Equation/src/Interface_table.py index 121e480..2477835 100755 --- a/Poisson_Equation/src/Interface_table.py +++ b/Poisson_Equation/src/Interface_table.py @@ -27,26 +27,38 @@ def __init__(self): super().__init__() self.setWindowTitle("Справка") - self.setGeometry(100, 100, 1000, 850) + self.setGeometry(100, 100, 1040, 1000) + + self.report = QtWidgets.QLabel(self) + self.report.setGeometry(360, 10, 670, 260) + self.report.setStyleSheet('background-color: white;') #making tables self.table1 = QTableWidget(self) - self.table1.setGeometry(360, 170, 630, 330) + self.table1.setGeometry(360, 300, 670, 335) self.table1.setColumnCount(0) self.table1.setRowCount(0) self.table2 = QTableWidget(self) - self.table2.setGeometry(360, 510, 630, 330) + self.table2.setGeometry(360, 660, 670, 335) self.table2.setColumnCount(0) self.table2.setRowCount(0) + label1 = QtWidgets.QLabel(self) + label1.setText("Аппроксимация") + label1.setGeometry(640, 270, 100, 30) + + label2 = QtWidgets.QLabel(self) + label2.setText("Точное решение") + label2.setGeometry(640, 630, 120, 30) + #list of methods text1 = QtWidgets.QLabel(self) text1.setText("Метод") - text1.setGeometry(85, 0, 100, 40) + text1.setGeometry(85, 0, 130, 40) self.combo_box = QComboBox(self) self.combo_box.addItem("Метод верхней релаксации") self.combo_box.addItem("Метод минимальных невязок") @@ -175,10 +187,6 @@ def __init__(self): self.line_editm.setGeometry(180, 560, 100, 30) self.line_editm.setText('8') - self.report = QtWidgets.QLabel(self) - self.report.setGeometry(230, 10, 760, 150) - self.report.setStyleSheet('background-color: white;') - setit = QtWidgets.QLabel(self) setit.setText("Максимальное количество итераций ") @@ -188,10 +196,10 @@ def __init__(self): self.line_editit.setText('1000000') seteps = QtWidgets.QLabel(self) - seteps.setText("Требуемая точность ") - seteps.setGeometry(10, 635, 135, 30) + seteps.setText("Требуемая точность решения СЛАУ") + seteps.setGeometry(10, 635, 230, 30) self.line_editeps = QLineEdit(self) - self.line_editeps.setGeometry(145, 635, 150, 30) + self.line_editeps.setGeometry(240, 635, 110, 30) self.line_editeps.setText('0.00000001') @@ -204,7 +212,7 @@ def __init__(self): #button solve task self.button2 = QtWidgets.QPushButton(self) - self.button2.setGeometry(30, 760, 200, 30) + self.button2.setGeometry(30, 680, 200, 30) self.button2.setText("Аппроксимировать") self.button2.clicked.connect(self.Solve_task) @@ -260,13 +268,14 @@ def Solve_task(self): solver_str += "Тестовая задача на нестандартной сетке решена " if(solver_num == 0): - solver_str += "методом верхней релаксации с параметром w = "+ self.omega.text() + solver_str += "методом верхней релаксации \nс параметром w = "+ self.omega.text() elif(solver_num == 1): solver_str += "методом минимальных невязок" elif(solver_num == 2): solver_str += "методом Чебышева" else: solver_str += "методом сопряженных градиентов" + solver_str += "\n с нулевым начальным приближением " if(task_num == 0): test_task(solver_num, n, m, max_iterations, eps, omega) @@ -276,9 +285,9 @@ def Solve_task(self): results = [row.strip() for row in solver_results] self.report.setText("Для решения тестовой задачи использованы сетка с числом разбиений\n по х : n = " + (str)(n)+ - ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", \n применены критерии остановки по точности eps(мет) = "+ + ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", применены критерии остановки \n по точности решения СЛАУ eps(мет) = "+ (str)(eps)+" и по числу итераций N(max) = "+ (str)(max_iterations)+".\n \n " + "На решение схемы (СЛАУ) затрачено " + (str)(results[2]) + - " итераций и достигнута точность " + (str)(results[0]) + "\nСхема решена с невязкой " + (str)(results[1]) + "\n" + error.read()) + " итераций и достигнута точность " + (str)(results[0]) + "\nСхема(СЛАУ) решена с невязкой по норме Чебышёва " + (str)(results[1]) + "\n" + error.read()) error.close() solver_results.close() @@ -286,14 +295,30 @@ def Solve_task(self): elif(task_num == 1): main_task(solver_num, n, m, max_iterations, eps, omega) + curr_string = "\nДля контроля точности использована сетка(2N) \n с числом разбиений по x : n = " + curr_string += (str)(n*2) + curr_string += ", и числом разбиений по y: m = " + curr_string += (str)(m*2) + curr_string += ". \nКритерии остановки метода остаются такими же." + error = open("../files/Error.txt", 'r') solver_results = open("../files/Solver_results.txt", 'r') results = [row.strip() for row in solver_results] + solver_results_2 = open("../files/Solver_results_2N.txt", 'r') + results_2 = [row.strip() for row in solver_results_2] + + curr_string += "На решение СЛАУ(2N) затрачено " + curr_string += (str)(results_2[2]) + curr_string += " итераций\n и достигнута точность " + curr_string += (str)(results_2[0]) + curr_string += ".СЛАУ(2N) решена с невязкой по норме Чебышёва " + curr_string += (str)(results_2[1]) + self.report.setText("Для решения основной задачи использованы сетка с числом разбиений\n по х : n = " + (str)(n)+ - ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", \n применены критерии остановки по точности eps(мет) = "+ + ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", применены критерии остановки \n по точности решения СЛАУ eps(мет) = "+ (str)(eps)+" и по числу итераций N(max) = "+ (str)(max_iterations)+".\n \n " + "На решение схемы (СЛАУ) затрачено " + (str)(results[2]) + - " итераций и достигнута точность " + (str)(results[0]) + "\nСхема решена с невязкой " + (str)(results[1]) + "\n" + error.read()) + " итераций и достигнута точность " + (str)(results[0]) + "\nСхема(СЛАУ) решена с невязкой по норме Чебышёва " + (str)(results[1]) + "\n" + curr_string + "\n\n" + error.read()) error.close() solver_results.close() @@ -305,9 +330,9 @@ def Solve_task(self): results = [row.strip() for row in solver_results] self.report.setText("Для решения тестовой задачи использованы сетка с числом разбиений\n по х : n = " + (str)(n)+ - ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", \n применены критерии остановки по точности eps(мет) = "+ + ", и числом разбиений по y: m = "+(str)(m)+",\n " + solver_str + ", применены критерии остановки \n по точности решения СЛАУ eps(мет) = "+ (str)(eps)+" и по числу итераций N(max) = "+ (str)(max_iterations)+".\n \n " + "На решение схемы (СЛАУ) затрачено " + (str)(results[2]) + - " итераций и достигнута точность " + (str)(results[0]) + "\nСхема решена с невязкой " + (str)(results[1]) + "\n" + error.read()) + " итераций и достигнута точность " + (str)(results[0]) + "\nСхема(СЛАУ) решена с невязкой по норме Чебышёва " + (str)(results[1]) + "\n" + error.read()) error.close() solver_results.close() self.load_data_to_table1("../files/Approximation.txt") diff --git a/Poisson_Equation/src/lib_dirichlet.so b/Poisson_Equation/src/lib_dirichlet.so index e9cb9a3e004a8e7a20171f2cdd859cbf6b4bdd2d..7aab4428816351391cc8c5da843d7f7a54b6f855 100755 GIT binary patch delta 50734 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%0Dk);C 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 diff --git a/Poisson_Equation/src/test.cpp b/Poisson_Equation/src/test.cpp index 49f9520..708498f 100644 --- a/Poisson_Equation/src/test.cpp +++ b/Poisson_Equation/src/test.cpp @@ -6,9 +6,13 @@ #include #include #include +#include +#include +#include #include "../headers/Dirichlet_Problem.hpp" #include "../headers/Solvers.hpp" +#include "../headers/tasks.hpp" #define FP double @@ -25,147 +29,101 @@ std::pair>> estimate_time(numcpp::DirichletP return {duration, solution}; } -void test_TopRelaxation(){ - size_t n = 2048; - size_t m = 2048; - std::cout << "n = " << n << " m = " << m << '\n'; - - FP omega = 1.95; - std::array corners = {-1.0, -1.0, 1.0, 1.0}; - std::vector init_app((n - 1) * (m - 1), 0.0); - - auto u = [](double x, double y) { return exp(1 - pow(x, 2) - pow(y, 2)); }; - auto f = [](double x, double y) { return -4 * exp(1 - pow(x, 2) - pow(y, 2)) * (pow(y, 2) + pow(x, 2) - 1); }; - - auto mu1 = [](double y) { return exp(-pow(y, 2)); }; - auto mu2 = [](double y) { return exp(-pow(y, 2)); }; - auto mu3 = [](double x) { return exp(-pow(x, 2)); }; - auto mu4 = [](double x) { return exp(-pow(x, 2)); }; - - numcpp::DirichletProblemSolver dirichlet_task; - dirichlet_task.set_fraction(m, n); - dirichlet_task.set_corners(corners); - dirichlet_task.set_u(u); - dirichlet_task.set_f(f); - dirichlet_task.set_boundary_conditions({mu1, mu2, mu3, mu4}); - - //dirichlet_task.set_solver(std::make_unique(init_app, 10000, 0.00001, nullptr, std::vector(), omega)); - dirichlet_task.set_solver(std::make_unique - (init_app, 1000000000, 0.0000000000001, nullptr, std::vector(), f, mu1, mu2, mu3, mu4, n, m, corners, omega)); - - auto [duration, solution] = estimate_time(dirichlet_task); -} - -void test_task(size_t m, size_t n, std::unique_ptr LS_solver) +void report(size_t task_num, size_t n, size_t m, size_t max_iterations, FP eps) { - std::cout << "n = " << n << " m = " << m << '\n'; - size_t size = (n - 1) * (m - 1); - - std::array corners = {-1.0, -1.0, 1.0, 1.0}; - - std::vector initial_approximation(size, 0.0); - LS_solver->set_initial_approximation(initial_approximation); - - auto u = [](double x, double y) { return exp(1 - pow(x, 2) - pow(y, 2)); }; - auto f = [](double x, double y) { return -4 * exp(1 - pow(x, 2) - pow(y, 2)) * (pow(y, 2) + pow(x, 2) - 1); }; - auto mu1 = [](double y) { return exp(-pow(y, 2)); }; - auto mu2 = [](double y) { return exp(-pow(y, 2)); }; - auto mu3 = [](double x) { return exp(-pow(x, 2)); }; - auto mu4 = [](double x) { return exp(-pow(x, 2)); }; - - numcpp::DirichletProblemSolver solver; + std::vector results; + std::vector results_err; + std::string line = ""; + std::string curr_string = ""; + std::string start_string = ""; - solver.set_fraction(m, n); - solver.set_corners(corners); - solver.set_u(u); - solver.set_f(f); - solver.set_boundary_conditions({mu1, mu2, mu3, mu4}); - solver.set_solver(std::move(LS_solver)); + std::ifstream solver_results("../files/Solver_results.txt"); + while (std::getline(solver_results, line)) + results.push_back(line); + solver_results.close(); - auto [duration, solution] = estimate_time(solver); -} - -void test_task_custom_grid(size_t m, size_t n, std::unique_ptr LS_solver) -{ - size_t size = (n / 2 - 1) * (m - 1) + (n / 2) * (m / 2 - 1); - std::cout << "n = " << n << " m = " << m << '\n'; + std::ifstream error("../files/Error.txt"); + while (std::getline(error, line)) + results_err.push_back(line); + error.close(); - std::vector initial_approximation(size, 0.0); - LS_solver->set_initial_approximation(initial_approximation); - std::array corners = {-1.0, -1.0, 1.0, 1.0}; - - auto u = [](double x, double y) { return exp(1 - pow(x, 2) - pow(y, 2)); }; - auto f = [](double x, double y) { return -4 * exp(1 - pow(x, 2) - pow(y, 2)) * (pow(y, 2) + pow(x, 2) - 1); }; - - auto mu1 = [](double y) { return exp(-pow(y, 2)); }; - auto mu2 = [](double y) { return exp(1.0 - pow(y, 2)); }; - auto mu3 = [](double y) { return exp(-pow(y, 2)); }; - auto mu4 = [](double x) { return exp(-pow(x, 2)); }; - auto mu5 = [](double x) { return exp(1.0 - pow(x, 2)); }; - auto mu6 = [](double x) { return exp(-pow(x, 2)); }; - - numcpp::DirichletProblemSolver solver; - std::array, 6> arr{mu1, mu2, mu3, mu4, mu5, mu6}; + + if(task_num == 0) + { + start_string = "Для решения тестовой задачи использованы сетка "; + } + else if(task_num == 1) + { + start_string = "Для решения основной задачи использованы сетка "; + + curr_string = "\nДля контроля точности использована сетка(2N) \n с числом разбиений по x : n = "; + curr_string += std::to_string(n * 2); + curr_string += ", и числом разбиений по y: m = "; + curr_string += std::to_string(m * 2); + curr_string += ". \nКритерии остановки метода остаются такими же."; + + std::ifstream solver_results_2("../files/Solver_results_2N.txt"); + std::vector results_2; + while (std::getline(solver_results_2, line)) + results_2.push_back(line); + solver_results_2.close(); + + + curr_string += "На решение СЛАУ(2N) затрачено "; + curr_string += results_2[2]; + curr_string += " итераций\n и достигнута точность "; + curr_string += results_2[0]; + curr_string += ".СЛАУ(2N) решена с невязкой по норме Чебышёва "; + curr_string += results_2[1]; + } + else + { + start_string = "Для решения тестовой задачи использованы сетка (нестандартная сетка) "; + } + + std::cout << "\n\n\n\n" << start_string << " с числом разбиений\n по х : n = " << n + << ", и числом разбиений по y: m = " << m << ",\n " + << "применены критерии остановки \n по точности решения СЛАУ eps(мет) = " << eps + << " и по числу итераций N(max) = " << max_iterations << ".\n \n " + << "На решение схемы (СЛАУ) затрачено " << results[2] + << " итераций и достигнута точность " << results[0] + << "\nСхема(СЛАУ) решена с невязкой по норме Чебышёва " << results[1] << "\n" << results_err[0] << "\n" << results_err[1] << "\n\n" << curr_string << "\n\n\n"; - solver.set_solver(std::move(LS_solver)); - solver.set_boundary_conditions_for_r_shaped_grid(arr); - solver.set_fraction(n, m); - solver.set_corners(corners); - solver.set_u(u); - solver.set_f(f); - auto [duration, solution] = estimate_time(solver); } -void test_Chebyshev(size_t n, size_t m) { - // size_t n = 2048; - // size_t m = 2048; - std::cout << "n = " << n << " m = " << m << '\n'; - - std::array corners = { -1.0, -1.0, 1.0, 1.0 }; - std::vector init_app((n - 1) * (m - 1), 0.0); - - FP h = (corners[2] - corners[0]) / n; - FP k = (corners[3] - corners[1]) / m; - - FP Mmin = 4.0 / pow(h, 2) * pow(sin(numcpp::PI / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI / 2.0 / m), 2); - FP Mmax = 4.0 / pow(h, 2) * pow(sin(numcpp::PI * (n - 1) / 2.0 / n), 2) + 4.0 / pow(k, 2) * pow(sin(numcpp::PI * (m - 1) / 2.0 / m), 2); - std::cout << "Mmin = " << Mmin << " Mmax = " << Mmax << '\n'; - auto u = [](double x, double y) { return exp(1 - pow(x, 2) - pow(y, 2)); }; - auto f = [](double x, double y) { return -4 * exp(1 - pow(x, 2) - pow(y, 2)) * (pow(y, 2) + pow(x, 2) - 1); }; - - auto mu1 = [](double y) { return exp(-pow(y, 2)); }; - auto mu2 = [](double y) { return exp(-pow(y, 2)); }; - auto mu3 = [](double x) { return exp(-pow(x, 2)); }; - auto mu4 = [](double x) { return exp(-pow(x, 2)); }; - - numcpp::DirichletProblemSolver dirichlet_task; - dirichlet_task.set_fraction(m, n); - dirichlet_task.set_corners(corners); - dirichlet_task.set_u(u); - dirichlet_task.set_f(f); - dirichlet_task.set_boundary_conditions({ mu1, mu2, mu3, mu4 }); - - dirichlet_task.set_solver(std::make_unique(init_app, 1000000000, 0.0000000000001, nullptr, std::vector(), Mmin, Mmax)); - - auto [duration, solution] = estimate_time(dirichlet_task); -} +// for test we use functions from tasks.hpp int main() { - size_t m = 96; - size_t n = 96; - - std::cout << "Conjugate gradient method" << std::endl; - auto LS_solver1 = std::make_unique(std::vector(), 1000000, 0.0000000000001, nullptr, std::vector()); - test_task_custom_grid(m, n, std::move(LS_solver1)); - - //std::cout << "\nMinimal residual method" << std::endl; - //auto LS_solver2 = std::make_unique(std::vector(), 1000000, 0.000001, nullptr, std::vector()); - //test_task(m, n, std::move(LS_solver2)); + size_t m = 100; + size_t n = 100; + // solver_num chooses a method for solving a system of linear equations + // 0 = TopRelaxation + // 1 = MinRes + // 2 = ChebyshevIteration + // 3 = ConGrad + size_t solver_num = 3; + size_t max_iterations = 1000000; + FP eps = 0.000001; + FP omega = 1.5; + // task_num + // 0 = test + // 1 = main + // 2 = custom test + size_t task_num = 1; + + //test_task(solver_num, n, m, max_iterations, eps, omega); // Regular grid + main_task(solver_num, n, m, max_iterations, eps, omega); // Regular grid + // test_custom_task(solver_num, n, m, max_iterations, eps, omega); //ReversedR grid + + // the values in the grid nodes can be found in the files + // for approximation in file "../files/Approximation.txt" + // for correct solution in file "../files/Correct.txt" + + // report in console + report(task_num, n, m, max_iterations, eps); - //std::cout << "\nChebyshev iteration method" << std::endl; - //test_Chebyshev(m, n); } \ No newline at end of file