From ebdc6c029a8bb9ed677497e26bcaa75ea42879ce Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 2 Jun 2024 17:27:30 -0700 Subject: [PATCH 001/193] Create recurrence.py - Feedback requested --- sumpy/recurrence.py | 296 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 sumpy/recurrence.py diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py new file mode 100644 index 000000000..1bf0519ff --- /dev/null +++ b/sumpy/recurrence.py @@ -0,0 +1,296 @@ +__copyright__ = """ +Copyright (C) 2024 Hirish Chandrasekaran +Copyright (C) 2024 Andreas Kloeckner +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +from collections import namedtuple +from pyrsistent import pmap +from pytools import memoize +from sumpy.tools import add_mi +from itertools import accumulate +import sumpy.symbolic as sym +import logging +from typing import List +import sympy as sp +from sumpy.expansion.diff_op import LinearPDESystemOperator +from pytools.obj_array import make_obj_array + +#A similar function exists in sumpy.symbolic +def make_sympy_vec(name, n): + return make_obj_array([sp.Symbol(f"{name}{i}") for i in range(n)]) + + +__doc__ = """ +.. autoclass:: Recurrence +.. automodule:: sumpy.recurrence +""" + +#CREATE LAPLACE_3D +DerivativeIdentifier = namedtuple("DerivativeIdentifier", ["mi", "vec_idx"]) +partial2_x = DerivativeIdentifier((2,0,0), 0) +partial2_y = DerivativeIdentifier((0,2,0), 0) +partial2_z = DerivativeIdentifier((0,0,2), 0) +#Coefficients +list_pde_dict_3d = {partial2_x: 1, partial2_y: 1, partial2_z: 1} +laplace_3d = LinearPDESystemOperator(3,list_pde_dict_3d) + +#CREATE LAPLACE_2D +partial2_x = DerivativeIdentifier((2,0), 0) +partial2_y = DerivativeIdentifier((0,2), 0) +#Coefficients +list_pde_dict = {partial2_x: 1, partial2_y: 1} +laplace_2d = LinearPDESystemOperator(2,list_pde_dict) + +#CREATE HELMHOLTZ_2D +func_val = DerivativeIdentifier((0,0), 0) +#Coefficients +list_pde_dict = {partial2_x: 1, partial2_y: 1, func_val: 1} +helmholtz_2d = LinearPDESystemOperator(2,list_pde_dict) + +''' +get_pde_in_recurrence_form +Input: + - pde, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` pde such that assert(len(pde.eqs) == 1) + is true. +Output: + - ode_in_r, an ode in r which the POINT-POTENTIAL (has radial symmetry) satisfies away from the origin. + Note: to represent f, f_r, f_{rr}, we use the sympy variables f_{r0}, f_{r1}, .... So ode_in_r is a linear + combination of the sympy variables f_{r0}, f_{r1}, .... + - var, represents the variables for the input space: [x0, x1, ...] + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present + (the reason this is called n_derivs since if we have a second order PDE for example + then we might see f, f_{r}, f_{rr} in our ODE in r, which is technically 3 terms since we count + the 0th order derivative f as a "derivative." If this doesn't make sense just know that n_derivs + is the order the of the input sumpy PDE + 1) + +Description: We assume we are handed a system of 1 sumpy PDE (pde) and output the +pde in a way that allows us to easily replace derivatives with respect to r. In other words we output +a linear combination of sympy variables f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) +to represent our ODE in r for the point potential. +''' +def get_pde_in_recurrence_form(laplace): + dim = laplace.dim + n_derivs = laplace.order + assert(len(laplace.eqs) == 1) + ops = len(laplace.eqs[0]) + derivs = [] + coeffs = [] + for i in laplace.eqs[0]: + derivs.append(i.mi) + coeffs.append(laplace.eqs[0][i]) + var = make_sympy_vec("x", dim) + r = sp.sqrt(sum(var**2)) + + eps = sp.symbols("epsilon") + rval = r + eps + + f = sp.Function("f") + f_derivs = [sp.diff(f(rval),eps,i) for i in range(n_derivs+1)] + + def compute_term(a, t): + term = a + for i in range(len(t)): + term = term.diff(var[i], t[i]) + return term + + pde = 0 + for i in range(ops): + pde += coeffs[i] * compute_term(f(rval), derivs[i]) + + n_derivs = len(f_derivs) + f_r_derivs = make_sympy_vec("f_r", n_derivs) + + for i in range(n_derivs): + pde = pde.subs(f_derivs[i], f_r_derivs[i]) + + return pde, var, n_derivs + + +ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace_2d) + + +''' +generate_ND_derivative_relations +Input: + - var, a sympy vector of variables called [x0, x1, ...] + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present +Output: + - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... using the chain rule + (f, f_x, f_{xx}, ... in code is represented as f_{x0}, f_{x1}, f_{x2} and + f, f_r, f_{rr}, ... in code is represented as f_{r0}, f_{r1}, f_{r2}) + +Description: Using the chain rule outputs a vector that tells us how to write f, f_r, f_{rr}, ... as a linear +combination of f, f_x, f_{xx}, ... +''' +def generate_ND_derivative_relations(var, n_derivs): + f_r_derivs = make_sympy_vec("f_r", n_derivs) + f_x_derivs = make_sympy_vec("f_x", n_derivs) + f = sp.Function("f") + eps = sp.symbols("epsilon") + rval = sp.sqrt(sum(var**2)) + eps + f_derivs_x = [sp.diff(f(rval),var[0],i) for i in range(n_derivs)] + f_derivs = [sp.diff(f(rval),eps,i) for i in range(n_derivs)] + for i in range(len(f_derivs_x)): + for j in range(len(f_derivs)): + f_derivs_x[i] = f_derivs_x[i].subs(f_derivs[j], f_r_derivs[j]) + system = [f_x_derivs[i] - f_derivs_x[i] for i in range(n_derivs)] + + return sp.solve(system, *f_r_derivs, dict=True)[0] + + +''' +ode_in_r_to_x +Input: + - ode_in_r, a linear combination of f, f_r, f_{rr}, ... (in code represented as f_{r0}, f_{r1}, f_{r2}) + with coefficients as RATIONAL functions in var[0], var[1], ... + - var, array of sympy variables [x_0, x_1, ...] + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present +Output: + - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as rational + functions in var[0], var[1], ... + +Description: Translates an ode in the variable r into an ode in the variable x by substituting f, f_r, f_{rr}, ... + as a linear combination of f, f_x, f_{xx}, ... using the chain rule +''' +def ode_in_r_to_x(ode_in_r, var, n_derivs): + subme = generate_ND_derivative_relations(var, n_derivs) + ode_in_x = ode_in_r + f_r_derivs = make_sympy_vec("f_r", n_derivs) + for i in range(n_derivs): + ode_in_x = ode_in_x.subs(f_r_derivs[i], subme[f_r_derivs[i]]) + return ode_in_x + + +ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() +ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() + +delta_x = sp.symbols("delta_x") +c_vec = make_sympy_vec("c", len(var)) + +''' +compute_poly_in_deriv +Input: + - ode_in_x_cleared, an ode in x, i.e. a linear combination of f, f_x, f_{xx}, ... + (in code represented as f_{x0}, f_{x1}, f_{x2}) with coefficients as POLYNOMIALS in var[0], var[1], ... + (i.e. not rational functions) + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present +Output: + - a polynomial in f, f_x, f_{xx}, ... (in code represented as f_{x0}, f_{x1}, f_{x2}) with coefficients + as polynomials in \delta_x where \delta_x = x_0 - c_0 that represents the ''shifted ODE'' - i.e. the ODE + where we substitute all occurences of \delta_x with x_0 - c_0 + +Description: Converts an ode in x, to a polynomial in f, f_x, f_{xx}, ..., with coefficients as polynomials +in \delta_x = x_0 - c_0. +''' +def compute_poly_in_deriv(ode_in_x_cleared, n_derivs): + #Note that generate_ND_derivative_relations will at worst put some power of $x_0^order$ in the denominator. To clear + #the denominator we can probably? just multiply by x_0^order. + ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() + + ode_in_x_shifted = ode_in_x_cleared.subs(var[0], delta_x + c_vec[0]).simplify() + + f_x_derivs = make_sympy_vec("f_x", n_derivs) + poly = sp.Poly(ode_in_x_shifted, *f_x_derivs) + + return poly + +poly = compute_poly_in_deriv(ode_in_x, n_derivs) + +''' +compute_coefficients_of_poly +Input: + - poly, a polynomial in sympy variables f_{x0}, f_{x1}, ..., + (recall that this corresponds to f_0, f_x, f_{xx}, ...) with coefficients that are polynomials in \delta_x + where poly represents the ''shifted ODE''- i.e. we substitute all occurences of \delta_x with x_0 - c_0 +Output: + - a 2d array, each row giving the coefficient of f_0, f_x, f_{xx}, ..., + each entry in the row giving the coefficients of the polynomial in \delta_x + +Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are polynomials in \delta_x +and outputs a 2d array for easy access to the coefficients based on their degree as a polynomial in \delta_x. +''' +def compute_coefficients_of_poly(poly, n_derivs): + #Returns coefficients in lexographic order. So lowest order first + def tup(i,n=n_derivs): + a = [] + for j in range(n): + if j != i: + a.append(0) + else: + a.append(1) + return tuple(a) + + coeffs = [] + for deriv_ind in range(n_derivs): + coeffs.append(sp.Poly(poly.coeff_monomial(tup(deriv_ind)), delta_x).all_coeffs()) + + return coeffs + +coeffs = compute_coefficients_of_poly(poly, n_derivs) + +i = sp.symbols("i") +s = sp.Function("s") + +''' +compute_recurrence_relation +Input: + - coeffs a 2d array that gives access to the coefficients of poly, where poly represents the coefficients of + the ''shifted ODE'' (''shifted ODE'' = we substitute all occurences of \delta_x with x_0 - c_0) + based on their degree as a polynomial in \delta_x + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present +Output: + - a recurrence statement that equals 0 where s(i) is the ith coefficient of the Taylor polynomial for + our point potential. + +Description: Takes in coeffs which represents our ``shifted ode in x" (i.e. ode_in_x with coefficients in \delta_x) +and outputs a recurrence relation for the point potential. +''' + +def compute_recurrence_relation(coeffs, n_derivs): + #Compute symbolic derivative + def hc_diff(i, n): + retMe = 1 + for j in range(n): + retMe *= (i-j) + return retMe + + #We are differentiating deriv_ind, which shifts down deriv_ind. Do this for one deriv_ind + r = 0 + for deriv_ind in range(n_derivs): + part_of_r = 0 + pow_delta = 0 + for j in range(len(coeffs[deriv_ind])-1, -1, -1): + shift = pow_delta - deriv_ind + 1 + pow_delta += 1 + temp = coeffs[deriv_ind][j] * s(i) * hc_diff(i, deriv_ind) + part_of_r += temp.subs(i, i-shift) + r += part_of_r + + for j in range(1, len(var)): + r = r.subs(var[j], c_vec[j]) + + return r.simplify() + +r = compute_recurrence_relation(coeffs, n_derivs) + + From d5aac5ec8d7bc53274682280213c8ac0c20cc3ee Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 3 Jun 2024 16:07:17 -0500 Subject: [PATCH 002/193] Hackin with Andreas --- sumpy/recurrence.py | 111 +++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 63 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 1bf0519ff..7586cffa9 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -24,13 +24,6 @@ """ from collections import namedtuple -from pyrsistent import pmap -from pytools import memoize -from sumpy.tools import add_mi -from itertools import accumulate -import sumpy.symbolic as sym -import logging -from typing import List import sympy as sp from sumpy.expansion.diff_op import LinearPDESystemOperator from pytools.obj_array import make_obj_array @@ -45,50 +38,29 @@ def make_sympy_vec(name, n): .. automodule:: sumpy.recurrence """ -#CREATE LAPLACE_3D -DerivativeIdentifier = namedtuple("DerivativeIdentifier", ["mi", "vec_idx"]) -partial2_x = DerivativeIdentifier((2,0,0), 0) -partial2_y = DerivativeIdentifier((0,2,0), 0) -partial2_z = DerivativeIdentifier((0,0,2), 0) -#Coefficients -list_pde_dict_3d = {partial2_x: 1, partial2_y: 1, partial2_z: 1} -laplace_3d = LinearPDESystemOperator(3,list_pde_dict_3d) - -#CREATE LAPLACE_2D -partial2_x = DerivativeIdentifier((2,0), 0) -partial2_y = DerivativeIdentifier((0,2), 0) -#Coefficients -list_pde_dict = {partial2_x: 1, partial2_y: 1} -laplace_2d = LinearPDESystemOperator(2,list_pde_dict) - -#CREATE HELMHOLTZ_2D -func_val = DerivativeIdentifier((0,0), 0) -#Coefficients -list_pde_dict = {partial2_x: 1, partial2_y: 1, func_val: 1} -helmholtz_2d = LinearPDESystemOperator(2,list_pde_dict) -''' -get_pde_in_recurrence_form -Input: - - pde, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` pde such that assert(len(pde.eqs) == 1) - is true. -Output: - - ode_in_r, an ode in r which the POINT-POTENTIAL (has radial symmetry) satisfies away from the origin. - Note: to represent f, f_r, f_{rr}, we use the sympy variables f_{r0}, f_{r1}, .... So ode_in_r is a linear - combination of the sympy variables f_{r0}, f_{r1}, .... - - var, represents the variables for the input space: [x0, x1, ...] - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present - (the reason this is called n_derivs since if we have a second order PDE for example - then we might see f, f_{r}, f_{rr} in our ODE in r, which is technically 3 terms since we count - the 0th order derivative f as a "derivative." If this doesn't make sense just know that n_derivs - is the order the of the input sumpy PDE + 1) - -Description: We assume we are handed a system of 1 sumpy PDE (pde) and output the -pde in a way that allows us to easily replace derivatives with respect to r. In other words we output -a linear combination of sympy variables f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) -to represent our ODE in r for the point potential. -''' def get_pde_in_recurrence_form(laplace): + ''' + get_pde_in_recurrence_form + Input: + - pde, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` pde such that assert(len(pde.eqs) == 1) + is true. + Output: + - ode_in_r, an ode in r which the POINT-POTENTIAL (has radial symmetry) satisfies away from the origin. + Note: to represent f, f_r, f_{rr}, we use the sympy variables f_{r0}, f_{r1}, .... So ode_in_r is a linear + combination of the sympy variables f_{r0}, f_{r1}, .... + - var, represents the variables for the input space: [x0, x1, ...] + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present + (the reason this is called n_derivs since if we have a second order PDE for example + then we might see f, f_{r}, f_{rr} in our ODE in r, which is technically 3 terms since we count + the 0th order derivative f as a "derivative." If this doesn't make sense just know that n_derivs + is the order the of the input sumpy PDE + 1) + + Description: We assume we are handed a system of 1 sumpy PDE (pde) and output the + pde in a way that allows us to easily replace derivatives with respect to r. In other words we output + a linear combination of sympy variables f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) + to represent our ODE in r for the point potential. + ''' dim = laplace.dim n_derivs = laplace.order assert(len(laplace.eqs) == 1) @@ -113,20 +85,33 @@ def compute_term(a, t): term = term.diff(var[i], t[i]) return term - pde = 0 + ode_in_r = 0 for i in range(ops): - pde += coeffs[i] * compute_term(f(rval), derivs[i]) + ode_in_r += coeffs[i] * compute_term(f(rval), derivs[i]) n_derivs = len(f_derivs) f_r_derivs = make_sympy_vec("f_r", n_derivs) for i in range(n_derivs): - pde = pde.subs(f_derivs[i], f_r_derivs[i]) + ode_in_r = ode_in_r.subs(f_derivs[i], f_r_derivs[i]) - return pde, var, n_derivs + return ode_in_r, var, n_derivs + + +def test_recurrence_finder(): + from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + print(get_pde_in_recurrence_form(laplace2d)) + + assert 1 == 1 + + + + -ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace_2d) +# ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace_2d) ''' @@ -181,11 +166,11 @@ def ode_in_r_to_x(ode_in_r, var, n_derivs): return ode_in_x -ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() -ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() +# ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() +# ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() -delta_x = sp.symbols("delta_x") -c_vec = make_sympy_vec("c", len(var)) +# delta_x = sp.symbols("delta_x") +# c_vec = make_sympy_vec("c", len(var)) ''' compute_poly_in_deriv @@ -214,7 +199,7 @@ def compute_poly_in_deriv(ode_in_x_cleared, n_derivs): return poly -poly = compute_poly_in_deriv(ode_in_x, n_derivs) +# poly = compute_poly_in_deriv(ode_in_x, n_derivs) ''' compute_coefficients_of_poly @@ -246,10 +231,10 @@ def tup(i,n=n_derivs): return coeffs -coeffs = compute_coefficients_of_poly(poly, n_derivs) +# coeffs = compute_coefficients_of_poly(poly, n_derivs) -i = sp.symbols("i") -s = sp.Function("s") +# i = sp.symbols("i") +# s = sp.Function("s") ''' compute_recurrence_relation @@ -291,6 +276,6 @@ def hc_diff(i, n): return r.simplify() -r = compute_recurrence_relation(coeffs, n_derivs) +# r = compute_recurrence_relation(coeffs, n_derivs) From da538df0817de98d4b8935662f40d5c6ee668a13 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 3 Jun 2024 20:01:16 -0700 Subject: [PATCH 003/193] Fix all flake8 issues --- sumpy/recurrence.py | 270 ++++++++++++++++++++++---------------------- 1 file changed, 133 insertions(+), 137 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 7586cffa9..227ada25f 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -23,12 +23,11 @@ THE SOFTWARE. """ -from collections import namedtuple import sympy as sp -from sumpy.expansion.diff_op import LinearPDESystemOperator from pytools.obj_array import make_obj_array -#A similar function exists in sumpy.symbolic + +#A similar function exists in sumpy.symbolic def make_sympy_vec(name, n): return make_obj_array([sp.Symbol(f"{name}{i}") for i in range(n)]) @@ -42,28 +41,33 @@ def make_sympy_vec(name, n): def get_pde_in_recurrence_form(laplace): ''' get_pde_in_recurrence_form - Input: - - pde, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` pde such that assert(len(pde.eqs) == 1) + Input: + - pde, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` pde such + that assert(len(pde.eqs) == 1) is true. - Output: - - ode_in_r, an ode in r which the POINT-POTENTIAL (has radial symmetry) satisfies away from the origin. - Note: to represent f, f_r, f_{rr}, we use the sympy variables f_{r0}, f_{r1}, .... So ode_in_r is a linear - combination of the sympy variables f_{r0}, f_{r1}, .... + Output: + - ode_in_r, an ode in r which the POINT-POTENTIAL (has radial symmetry) + satisfies away from the origin. + Note: to represent f, f_r, f_{rr}, we use the sympy variables + f_{r0}, f_{r1}, .... So ode_in_r is a linear combination of the sympy + variables f_{r0}, f_{r1}, .... - var, represents the variables for the input space: [x0, x1, ...] - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present - (the reason this is called n_derivs since if we have a second order PDE for example - then we might see f, f_{r}, f_{rr} in our ODE in r, which is technically 3 terms since we count - the 0th order derivative f as a "derivative." If this doesn't make sense just know that n_derivs - is the order the of the input sumpy PDE + 1) - - Description: We assume we are handed a system of 1 sumpy PDE (pde) and output the - pde in a way that allows us to easily replace derivatives with respect to r. In other words we output - a linear combination of sympy variables f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) + - n_derivs, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present (the reason this is called n_derivs + since if we have a second order PDE for example then we might see f, f_{r}, + f_{rr} in our ODE in r, which is technically 3 terms since we count + the 0th order derivative f as a "derivative." If this doesn't make sense + just know that n_derivs is the order the of the input sumpy PDE + 1) + + Description: We assume we are handed a system of 1 sumpy PDE (pde) and output + the pde in a way that allows us to easily replace derivatives with respect to r. + In other words we output a linear combination of sympy variables + f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) to represent our ODE in r for the point potential. ''' dim = laplace.dim n_derivs = laplace.order - assert(len(laplace.eqs) == 1) + assert (len(laplace.eqs) == 1) ops = len(laplace.eqs[0]) derivs = [] coeffs = [] @@ -75,10 +79,9 @@ def get_pde_in_recurrence_form(laplace): eps = sp.symbols("epsilon") rval = r + eps - f = sp.Function("f") - f_derivs = [sp.diff(f(rval),eps,i) for i in range(n_derivs+1)] - + f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs+1)] + def compute_term(a, t): term = a for i in range(len(t)): @@ -88,76 +91,63 @@ def compute_term(a, t): ode_in_r = 0 for i in range(ops): ode_in_r += coeffs[i] * compute_term(f(rval), derivs[i]) - n_derivs = len(f_derivs) f_r_derivs = make_sympy_vec("f_r", n_derivs) for i in range(n_derivs): ode_in_r = ode_in_r.subs(f_derivs[i], f_r_derivs[i]) - return ode_in_r, var, n_derivs -def test_recurrence_finder(): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian - w = make_identity_diff_op(2) - laplace2d = laplacian(w) - print(get_pde_in_recurrence_form(laplace2d)) - - assert 1 == 1 - - - - - - -# ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace_2d) - - -''' -generate_ND_derivative_relations -Input: +def generate_ND_derivative_relations(var, n_derivs): + ''' + generate_ND_derivative_relations + Input: - var, a sympy vector of variables called [x0, x1, ...] - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present -Output: - - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... using the chain rule + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of + f that may be present + Output: + - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... + using the chain rule (f, f_x, f_{xx}, ... in code is represented as f_{x0}, f_{x1}, f_{x2} and f, f_r, f_{rr}, ... in code is represented as f_{r0}, f_{r1}, f_{r2}) -Description: Using the chain rule outputs a vector that tells us how to write f, f_r, f_{rr}, ... as a linear -combination of f, f_x, f_{xx}, ... -''' -def generate_ND_derivative_relations(var, n_derivs): + Description: Using the chain rule outputs a vector that tells us how to + write f, f_r, f_{rr}, ... as a linear + combination of f, f_x, f_{xx}, ... + ''' f_r_derivs = make_sympy_vec("f_r", n_derivs) f_x_derivs = make_sympy_vec("f_x", n_derivs) f = sp.Function("f") eps = sp.symbols("epsilon") rval = sp.sqrt(sum(var**2)) + eps - f_derivs_x = [sp.diff(f(rval),var[0],i) for i in range(n_derivs)] - f_derivs = [sp.diff(f(rval),eps,i) for i in range(n_derivs)] + f_derivs_x = [sp.diff(f(rval), var[0], i) for i in range(n_derivs)] + f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs)] for i in range(len(f_derivs_x)): for j in range(len(f_derivs)): f_derivs_x[i] = f_derivs_x[i].subs(f_derivs[j], f_r_derivs[j]) system = [f_x_derivs[i] - f_derivs_x[i] for i in range(n_derivs)] - return sp.solve(system, *f_r_derivs, dict=True)[0] -''' -ode_in_r_to_x -Input: - - ode_in_r, a linear combination of f, f_r, f_{rr}, ... (in code represented as f_{r0}, f_{r1}, f_{r2}) +def ode_in_r_to_x(ode_in_r, var, n_derivs): + ''' + ode_in_r_to_x + Input: + - ode_in_r, a linear combination of f, f_r, f_{rr}, ... + (in code represented as f_{r0}, f_{r1}, f_{r2}) with coefficients as RATIONAL functions in var[0], var[1], ... - var, array of sympy variables [x_0, x_1, ...] - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present -Output: - - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as rational - functions in var[0], var[1], ... - -Description: Translates an ode in the variable r into an ode in the variable x by substituting f, f_r, f_{rr}, ... - as a linear combination of f, f_x, f_{xx}, ... using the chain rule -''' -def ode_in_r_to_x(ode_in_r, var, n_derivs): + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of + f that may be present + Output: + - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as + rational functions in var[0], var[1], ... + + Description: Translates an ode in the variable r into an ode in the variable x + by substituting f, f_r, f_{rr}, ... as a linear combination of + f, f_x, f_{xx}, ... using the chain rule + ''' subme = generate_ND_derivative_relations(var, n_derivs) ode_in_x = ode_in_r f_r_derivs = make_sympy_vec("f_r", n_derivs) @@ -166,57 +156,54 @@ def ode_in_r_to_x(ode_in_r, var, n_derivs): return ode_in_x -# ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() -# ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() - -# delta_x = sp.symbols("delta_x") -# c_vec = make_sympy_vec("c", len(var)) - -''' -compute_poly_in_deriv -Input: - - ode_in_x_cleared, an ode in x, i.e. a linear combination of f, f_x, f_{xx}, ... - (in code represented as f_{x0}, f_{x1}, f_{x2}) with coefficients as POLYNOMIALS in var[0], var[1], ... - (i.e. not rational functions) - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present -Output: - - a polynomial in f, f_x, f_{xx}, ... (in code represented as f_{x0}, f_{x1}, f_{x2}) with coefficients - as polynomials in \delta_x where \delta_x = x_0 - c_0 that represents the ''shifted ODE'' - i.e. the ODE - where we substitute all occurences of \delta_x with x_0 - c_0 - -Description: Converts an ode in x, to a polynomial in f, f_x, f_{xx}, ..., with coefficients as polynomials -in \delta_x = x_0 - c_0. -''' -def compute_poly_in_deriv(ode_in_x_cleared, n_derivs): - #Note that generate_ND_derivative_relations will at worst put some power of $x_0^order$ in the denominator. To clear +def compute_poly_in_deriv(ode_in_x, n_derivs, var): + ''' + compute_poly_in_deriv + Input: + - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as + rational functions in var[0], var[1], ... + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives + of f that may be present + Output: + - a polynomial in f, f_x, f_{xx}, ... (in code represented as f_{x0}, f_{x1}, + f_{x2}) with coefficients as polynomials in delta_x where delta_x = x_0 - c_0 + that represents the ''shifted ODE'' - i.e. the ODE where we substitute all + occurences of delta_x with x_0 - c_0 + + Description: Converts an ode in x, to a polynomial in f, f_x, f_{xx}, ..., + with coefficients as polynomials in delta_x = x_0 - c_0. + ''' + #Note that generate_ND_derivative_relations will at worst put some power of + #$x_0^order$ in the denominator. To clear #the denominator we can probably? just multiply by x_0^order. + delta_x = sp.symbols("delta_x") + c_vec = make_sympy_vec("c", len(var)) ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() - ode_in_x_shifted = ode_in_x_cleared.subs(var[0], delta_x + c_vec[0]).simplify() - f_x_derivs = make_sympy_vec("f_x", n_derivs) poly = sp.Poly(ode_in_x_shifted, *f_x_derivs) - return poly -# poly = compute_poly_in_deriv(ode_in_x, n_derivs) - -''' -compute_coefficients_of_poly -Input: - - poly, a polynomial in sympy variables f_{x0}, f_{x1}, ..., - (recall that this corresponds to f_0, f_x, f_{xx}, ...) with coefficients that are polynomials in \delta_x - where poly represents the ''shifted ODE''- i.e. we substitute all occurences of \delta_x with x_0 - c_0 -Output: - - a 2d array, each row giving the coefficient of f_0, f_x, f_{xx}, ..., - each entry in the row giving the coefficients of the polynomial in \delta_x - -Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are polynomials in \delta_x -and outputs a 2d array for easy access to the coefficients based on their degree as a polynomial in \delta_x. -''' + def compute_coefficients_of_poly(poly, n_derivs): + ''' + compute_coefficients_of_poly + Input: + - poly, a polynomial in sympy variables f_{x0}, f_{x1}, ..., + (recall that this corresponds to f_0, f_x, f_{xx}, ...) with coefficients + that are polynomials in delta_x where poly represents the ''shifted ODE'' + - i.e. we substitute all occurences of delta_x with x_0 - c_0 + Output: + - a 2d array, each row giving the coefficient of f_0, f_x, f_{xx}, ..., + each entry in the row giving the coefficients of the polynomial in delta_x + Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are + polynomials in delta_x and outputs a 2d array for easy access to the + coefficients based on their degree as a polynomial in delta_x. + ''' + delta_x = sp.symbols("delta_x") + #Returns coefficients in lexographic order. So lowest order first - def tup(i,n=n_derivs): + def tup(i, n=n_derivs): a = [] for j in range(n): if j != i: @@ -224,42 +211,46 @@ def tup(i,n=n_derivs): else: a.append(1) return tuple(a) - + coeffs = [] for deriv_ind in range(n_derivs): - coeffs.append(sp.Poly(poly.coeff_monomial(tup(deriv_ind)), delta_x).all_coeffs()) - + coeffs.append( + sp.Poly(poly.coeff_monomial(tup(deriv_ind)), delta_x).all_coeffs()) + return coeffs -# coeffs = compute_coefficients_of_poly(poly, n_derivs) - -# i = sp.symbols("i") -# s = sp.Function("s") - -''' -compute_recurrence_relation -Input: - - coeffs a 2d array that gives access to the coefficients of poly, where poly represents the coefficients of - the ''shifted ODE'' (''shifted ODE'' = we substitute all occurences of \delta_x with x_0 - c_0) - based on their degree as a polynomial in \delta_x - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present -Output: - - a recurrence statement that equals 0 where s(i) is the ith coefficient of the Taylor polynomial for - our point potential. - -Description: Takes in coeffs which represents our ``shifted ode in x" (i.e. ode_in_x with coefficients in \delta_x) -and outputs a recurrence relation for the point potential. -''' - -def compute_recurrence_relation(coeffs, n_derivs): + +def compute_recurrence_relation(coeffs, n_derivs, var): + ''' + compute_recurrence_relation + Input: + - coeffs a 2d array that gives access to the coefficients of poly, where poly + represents the coefficients of the ''shifted ODE'' + (''shifted ODE'' = we substitute all occurences of delta_x with x_0 - c_0) + based on their degree as a polynomial in delta_x + - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives + of f that may be present + Output: + - a recurrence statement that equals 0 where s(i) is the ith coefficient of + the Taylor polynomial for our point potential. + + Description: Takes in coeffs which represents our ``shifted ode in x" + (i.e. ode_in_x with coefficients in delta_x) and outputs a recurrence relation + for the point potential. + ''' + i = sp.symbols("i") + s = sp.Function("s") + c_vec = make_sympy_vec("c", len(var)) + #Compute symbolic derivative def hc_diff(i, n): retMe = 1 for j in range(n): retMe *= (i-j) return retMe - - #We are differentiating deriv_ind, which shifts down deriv_ind. Do this for one deriv_ind + + #We are differentiating deriv_ind, which shifts down deriv_ind. + #Do this for one deriv_ind r = 0 for deriv_ind in range(n_derivs): part_of_r = 0 @@ -270,12 +261,17 @@ def hc_diff(i, n): temp = coeffs[deriv_ind][j] * s(i) * hc_diff(i, deriv_ind) part_of_r += temp.subs(i, i-shift) r += part_of_r - + for j in range(1, len(var)): r = r.subs(var[j], c_vec[j]) - + return r.simplify() -# r = compute_recurrence_relation(coeffs, n_derivs) +def test_recurrence_finder(): + from sumpy.expansion.diff_op import make_identity_diff_op, laplacian + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + print(get_pde_in_recurrence_form(laplace2d)) + assert 1 == 1 From a172fb9628b37f294da41d8a7a98963dbc0b66ca Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 4 Jun 2024 10:14:27 -0700 Subject: [PATCH 004/193] Flake8 Issues --- sumpy/recurrence.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 227ada25f..defcebf29 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -99,9 +99,9 @@ def compute_term(a, t): return ode_in_r, var, n_derivs -def generate_ND_derivative_relations(var, n_derivs): +def generate_nd_derivative_relations(var, n_derivs): ''' - generate_ND_derivative_relations + generate_nd_derivative_relations Input: - var, a sympy vector of variables called [x0, x1, ...] - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of @@ -148,7 +148,7 @@ def ode_in_r_to_x(ode_in_r, var, n_derivs): by substituting f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... using the chain rule ''' - subme = generate_ND_derivative_relations(var, n_derivs) + subme = generate_nd_derivative_relations(var, n_derivs) ode_in_x = ode_in_r f_r_derivs = make_sympy_vec("f_r", n_derivs) for i in range(n_derivs): @@ -173,7 +173,7 @@ def compute_poly_in_deriv(ode_in_x, n_derivs, var): Description: Converts an ode in x, to a polynomial in f, f_x, f_{xx}, ..., with coefficients as polynomials in delta_x = x_0 - c_0. ''' - #Note that generate_ND_derivative_relations will at worst put some power of + #Note that generate_nd_derivative_relations will at worst put some power of #$x_0^order$ in the denominator. To clear #the denominator we can probably? just multiply by x_0^order. delta_x = sp.symbols("delta_x") @@ -244,10 +244,10 @@ def compute_recurrence_relation(coeffs, n_derivs, var): #Compute symbolic derivative def hc_diff(i, n): - retMe = 1 + retme = 1 for j in range(n): - retMe *= (i-j) - return retMe + retme *= (i-j) + return retme #We are differentiating deriv_ind, which shifts down deriv_ind. #Do this for one deriv_ind From 1ef4f3ce54efcede8dda7b582cd68bd6f548807d Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 7 Jun 2024 11:58:31 -0700 Subject: [PATCH 005/193] Flake8 Docstring Issue --- sumpy/recurrence.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index defcebf29..47b247bc4 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -39,7 +39,7 @@ def make_sympy_vec(name, n): def get_pde_in_recurrence_form(laplace): - ''' + """ get_pde_in_recurrence_form Input: - pde, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` pde such @@ -64,7 +64,7 @@ def get_pde_in_recurrence_form(laplace): In other words we output a linear combination of sympy variables f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) to represent our ODE in r for the point potential. - ''' + """ dim = laplace.dim n_derivs = laplace.order assert (len(laplace.eqs) == 1) @@ -100,7 +100,7 @@ def compute_term(a, t): def generate_nd_derivative_relations(var, n_derivs): - ''' + """ generate_nd_derivative_relations Input: - var, a sympy vector of variables called [x0, x1, ...] @@ -115,7 +115,7 @@ def generate_nd_derivative_relations(var, n_derivs): Description: Using the chain rule outputs a vector that tells us how to write f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... - ''' + """ f_r_derivs = make_sympy_vec("f_r", n_derivs) f_x_derivs = make_sympy_vec("f_x", n_derivs) f = sp.Function("f") @@ -131,7 +131,7 @@ def generate_nd_derivative_relations(var, n_derivs): def ode_in_r_to_x(ode_in_r, var, n_derivs): - ''' + """ ode_in_r_to_x Input: - ode_in_r, a linear combination of f, f_r, f_{rr}, ... @@ -147,7 +147,7 @@ def ode_in_r_to_x(ode_in_r, var, n_derivs): Description: Translates an ode in the variable r into an ode in the variable x by substituting f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... using the chain rule - ''' + """ subme = generate_nd_derivative_relations(var, n_derivs) ode_in_x = ode_in_r f_r_derivs = make_sympy_vec("f_r", n_derivs) @@ -157,7 +157,7 @@ def ode_in_r_to_x(ode_in_r, var, n_derivs): def compute_poly_in_deriv(ode_in_x, n_derivs, var): - ''' + """ compute_poly_in_deriv Input: - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as @@ -172,7 +172,7 @@ def compute_poly_in_deriv(ode_in_x, n_derivs, var): Description: Converts an ode in x, to a polynomial in f, f_x, f_{xx}, ..., with coefficients as polynomials in delta_x = x_0 - c_0. - ''' + """ #Note that generate_nd_derivative_relations will at worst put some power of #$x_0^order$ in the denominator. To clear #the denominator we can probably? just multiply by x_0^order. @@ -186,7 +186,7 @@ def compute_poly_in_deriv(ode_in_x, n_derivs, var): def compute_coefficients_of_poly(poly, n_derivs): - ''' + """ compute_coefficients_of_poly Input: - poly, a polynomial in sympy variables f_{x0}, f_{x1}, ..., @@ -199,7 +199,7 @@ def compute_coefficients_of_poly(poly, n_derivs): Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are polynomials in delta_x and outputs a 2d array for easy access to the coefficients based on their degree as a polynomial in delta_x. - ''' + """ delta_x = sp.symbols("delta_x") #Returns coefficients in lexographic order. So lowest order first @@ -221,7 +221,7 @@ def tup(i, n=n_derivs): def compute_recurrence_relation(coeffs, n_derivs, var): - ''' + """ compute_recurrence_relation Input: - coeffs a 2d array that gives access to the coefficients of poly, where poly @@ -237,7 +237,7 @@ def compute_recurrence_relation(coeffs, n_derivs, var): Description: Takes in coeffs which represents our ``shifted ode in x" (i.e. ode_in_x with coefficients in delta_x) and outputs a recurrence relation for the point potential. - ''' + """ i = sp.symbols("i") s = sp.Function("s") c_vec = make_sympy_vec("c", len(var)) From 75be400c745f05890ccc5cd985620e74c95e0a68 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 7 Jun 2024 12:59:46 -0700 Subject: [PATCH 006/193] Fix pylint issues --- sumpy/recurrence.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 47b247bc4..7befcb76b 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -80,6 +80,7 @@ def get_pde_in_recurrence_form(laplace): eps = sp.symbols("epsilon") rval = r + eps f = sp.Function("f") + # pylint: disable=not-callable f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs+1)] def compute_term(a, t): @@ -121,8 +122,10 @@ def generate_nd_derivative_relations(var, n_derivs): f = sp.Function("f") eps = sp.symbols("epsilon") rval = sp.sqrt(sum(var**2)) + eps + # pylint: disable=not-callable f_derivs_x = [sp.diff(f(rval), var[0], i) for i in range(n_derivs)] f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs)] + # pylint: disable=not-callable for i in range(len(f_derivs_x)): for j in range(len(f_derivs)): f_derivs_x[i] = f_derivs_x[i].subs(f_derivs[j], f_r_derivs[j]) @@ -258,6 +261,7 @@ def hc_diff(i, n): for j in range(len(coeffs[deriv_ind])-1, -1, -1): shift = pow_delta - deriv_ind + 1 pow_delta += 1 + # pylint: disable=not-callable temp = coeffs[deriv_ind][j] * s(i) * hc_diff(i, deriv_ind) part_of_r += temp.subs(i, i-shift) r += part_of_r From 5116612abc3daeefe49a5169918683547c598e25 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 17 Jun 2024 15:41:09 -0700 Subject: [PATCH 007/193] Add test for Laplace2D --- sumpy/recurrence.py | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 7befcb76b..f42208e86 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -25,7 +25,8 @@ import sympy as sp from pytools.obj_array import make_obj_array - +from sumpy.expansion.diff_op import make_identity_diff_op, laplacian +import math #A similar function exists in sumpy.symbolic def make_sympy_vec(name, n): @@ -272,10 +273,31 @@ def hc_diff(i, n): return r.simplify() -def test_recurrence_finder(): - from sumpy.expansion.diff_op import make_identity_diff_op, laplacian +def test_recurrence_finder_laplace(): + """ + test_recurrence_finder_laplace + Description: Checks that the recurrence finder works correctly for the Laplace + 2D point potential. + """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - print(get_pde_in_recurrence_form(laplace2d)) - - assert 1 == 1 + ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace2d) + ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() + poly = compute_poly_in_deriv(ode_in_x, n_derivs, var) + coeffs = compute_coefficients_of_poly(poly, n_derivs) + i = sp.symbols("i") + s = sp.Function("s") + r = compute_recurrence_relation(coeffs, n_derivs, var) + + def coeff_laplace(i): + x, y = sp.symbols("x,y") + c_vec = make_sympy_vec("c", 2) + true_f = sp.log(sp.sqrt(x**2 + y**2)) + return sp.diff(true_f, x, i).subs(x, c_vec[0]).subs( + y, c_vec[1])/math.factorial(i) + d = 6 + # pylint: disable=not-callable + val = r.subs(i, d).subs(s(d+1),coeff_laplace(d+1)).subs( + s(d), coeff_laplace(d)).subs(s(d-1), coeff_laplace(d-1)).subs( + s(d-2), coeff_laplace(d-2)).simplify() + assert val == 0 From 63531c0e609944f76e1f4a7fc4e41d9cf8c830ae Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 18 Jun 2024 08:54:51 -0700 Subject: [PATCH 008/193] Add test Laplace3D --- sumpy/recurrence.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index f42208e86..347737aaf 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -301,3 +301,37 @@ def coeff_laplace(i): s(d), coeff_laplace(d)).subs(s(d-1), coeff_laplace(d-1)).subs( s(d-2), coeff_laplace(d-2)).simplify() assert val == 0 + + +def test_recurrence_finder_laplace_three_d(): + """ + test_recurrence_finder_laplace_three_d + Description: Checks that the recurrence finder works correctly for the Laplace + 3D point potential. + """ + w = make_identity_diff_op(3) + laplace3d = laplacian(w) + print(laplace3d) + ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace3d) + ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() + poly = compute_poly_in_deriv(ode_in_x, n_derivs, var) + coeffs = compute_coefficients_of_poly(poly, n_derivs) + i = sp.symbols("i") + s = sp.Function("s") + r = compute_recurrence_relation(coeffs, n_derivs, var) + + def coeff_laplace_three_d(i): + x, y, z = sp.symbols("x,y,z") + c_vec = make_sympy_vec("c", 3) + true_f = 1/(sp.sqrt(x**2 + y**2 + z**2)) + return sp.diff(true_f, x, i).subs(x, c_vec[0]).subs( + y, c_vec[1]).subs(z, c_vec[2])/math.factorial(i) + + + d = 6 + # pylint: disable=not-callable + val = r.subs(i, d).subs(s(d+1),coeff_laplace_three_d(d+1)).subs( + s(d), coeff_laplace_three_d(d)).subs(s(d-1), coeff_laplace_three_d(d-1)).subs( + s(d-2), coeff_laplace_three_d(d-2)).simplify() + + assert val == 0 \ No newline at end of file From a85dade2e78cc27ed568d7b5bfc94171d5315e2a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 18 Jun 2024 13:55:44 -0700 Subject: [PATCH 009/193] Flake8 --- sumpy/recurrence.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 347737aaf..7ae522c25 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -23,10 +23,11 @@ THE SOFTWARE. """ +import math import sympy as sp from pytools.obj_array import make_obj_array from sumpy.expansion.diff_op import make_identity_diff_op, laplacian -import math + #A similar function exists in sumpy.symbolic def make_sympy_vec(name, n): @@ -297,7 +298,7 @@ def coeff_laplace(i): y, c_vec[1])/math.factorial(i) d = 6 # pylint: disable=not-callable - val = r.subs(i, d).subs(s(d+1),coeff_laplace(d+1)).subs( + val = r.subs(i, d).subs(s(d+1), coeff_laplace(d+1)).subs( s(d), coeff_laplace(d)).subs(s(d-1), coeff_laplace(d-1)).subs( s(d-2), coeff_laplace(d-2)).simplify() assert val == 0 @@ -327,11 +328,11 @@ def coeff_laplace_three_d(i): return sp.diff(true_f, x, i).subs(x, c_vec[0]).subs( y, c_vec[1]).subs(z, c_vec[2])/math.factorial(i) - d = 6 # pylint: disable=not-callable - val = r.subs(i, d).subs(s(d+1),coeff_laplace_three_d(d+1)).subs( - s(d), coeff_laplace_three_d(d)).subs(s(d-1), coeff_laplace_three_d(d-1)).subs( + val = r.subs(i, d).subs(s(d+1), coeff_laplace_three_d(d+1)).subs( + s(d), coeff_laplace_three_d(d)).subs(s(d-1), + coeff_laplace_three_d(d-1)).subs( s(d-2), coeff_laplace_three_d(d-2)).simplify() assert val == 0 \ No newline at end of file From 412e1febe49e6fdd99fd08bea8199fb7c512c185 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 24 Jun 2024 15:34:51 -0500 Subject: [PATCH 010/193] Work on improving docs --- doc/expansion.rst | 5 +++ sumpy/recurrence.py | 74 +++++++++++++++++++++++++-------------------- 2 files changed, 47 insertions(+), 32 deletions(-) diff --git a/doc/expansion.rst b/doc/expansion.rst index 5d72d735a..ea2680340 100644 --- a/doc/expansion.rst +++ b/doc/expansion.rst @@ -27,3 +27,8 @@ Estimating Expansion Orders --------------------------- .. automodule:: sumpy.expansion.level_to_order + +Recurrences +----------- + +.. automodule:: sumpy.recurrence diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 7ae522c25..7e0b8636a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -1,3 +1,12 @@ +""" +.. autofunction:: get_pde_in_recurrence_form +.. autofunction:: generate_nd_derivative_relations +.. autofunction:: ode_in_r_to_x +.. autofunction:: compute_poly_in_deriv +.. autofunction:: compute_coefficients_of_poly +.. autofunction:: compute_recurrence_relation +""" + __copyright__ = """ Copyright (C) 2024 Hirish Chandrasekaran Copyright (C) 2024 Andreas Kloeckner @@ -23,35 +32,32 @@ THE SOFTWARE. """ +import numpy as np import math import sympy as sp +from typing import Tuple from pytools.obj_array import make_obj_array -from sumpy.expansion.diff_op import make_identity_diff_op, laplacian +from sumpy.expansion.diff_op import ( + make_identity_diff_op, laplacian,LinearPDESystemOperator) -#A similar function exists in sumpy.symbolic -def make_sympy_vec(name, n): +# similar to make_sym_vector in sumpy.symbolic, but returns an object array +# instead of a sympy.Matrix. +def _make_sympy_vec(name, n): return make_obj_array([sp.Symbol(f"{name}{i}") for i in range(n)]) -__doc__ = """ -.. autoclass:: Recurrence -.. automodule:: sumpy.recurrence -""" - - -def get_pde_in_recurrence_form(laplace): +def get_pde_in_recurrence_form(pde: LinearPDESystemOperator) -> Tuple[ + sp.Expr, np.ndarray, int + ]: """ - get_pde_in_recurrence_form Input: - - pde, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` pde such - that assert(len(pde.eqs) == 1) - is true. + - *pde*, representing a scalar PDE. Output: - ode_in_r, an ode in r which the POINT-POTENTIAL (has radial symmetry) satisfies away from the origin. Note: to represent f, f_r, f_{rr}, we use the sympy variables - f_{r0}, f_{r1}, .... So ode_in_r is a linear combination of the sympy + :math:`f_{r0}`, f_{r1}, .... So ode_in_r is a linear combination of the sympy variables f_{r0}, f_{r1}, .... - var, represents the variables for the input space: [x0, x1, ...] - n_derivs, the order of the original PDE + 1, i.e. the number of @@ -67,16 +73,19 @@ def get_pde_in_recurrence_form(laplace): f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) to represent our ODE in r for the point potential. """ - dim = laplace.dim - n_derivs = laplace.order - assert (len(laplace.eqs) == 1) - ops = len(laplace.eqs[0]) + if len(pde.eqs) != 1: + raise ValueError("PDE must be scalar") + + dim = pde.dim + n_derivs = pde.order + assert (len(pde.eqs) == 1) + ops = len(pde.eqs[0]) derivs = [] coeffs = [] - for i in laplace.eqs[0]: + for i in pde.eqs[0]: derivs.append(i.mi) - coeffs.append(laplace.eqs[0][i]) - var = make_sympy_vec("x", dim) + coeffs.append(pde.eqs[0][i]) + var = _make_sympy_vec("x", dim) r = sp.sqrt(sum(var**2)) eps = sp.symbols("epsilon") @@ -95,7 +104,7 @@ def compute_term(a, t): for i in range(ops): ode_in_r += coeffs[i] * compute_term(f(rval), derivs[i]) n_derivs = len(f_derivs) - f_r_derivs = make_sympy_vec("f_r", n_derivs) + f_r_derivs = _make_sympy_vec("f_r", n_derivs) for i in range(n_derivs): ode_in_r = ode_in_r.subs(f_derivs[i], f_r_derivs[i]) @@ -109,6 +118,7 @@ def generate_nd_derivative_relations(var, n_derivs): - var, a sympy vector of variables called [x0, x1, ...] - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present + Output: - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... using the chain rule @@ -119,8 +129,8 @@ def generate_nd_derivative_relations(var, n_derivs): write f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... """ - f_r_derivs = make_sympy_vec("f_r", n_derivs) - f_x_derivs = make_sympy_vec("f_x", n_derivs) + f_r_derivs = _make_sympy_vec("f_r", n_derivs) + f_x_derivs = _make_sympy_vec("f_x", n_derivs) f = sp.Function("f") eps = sp.symbols("epsilon") rval = sp.sqrt(sum(var**2)) + eps @@ -155,7 +165,7 @@ def ode_in_r_to_x(ode_in_r, var, n_derivs): """ subme = generate_nd_derivative_relations(var, n_derivs) ode_in_x = ode_in_r - f_r_derivs = make_sympy_vec("f_r", n_derivs) + f_r_derivs = _make_sympy_vec("f_r", n_derivs) for i in range(n_derivs): ode_in_x = ode_in_x.subs(f_r_derivs[i], subme[f_r_derivs[i]]) return ode_in_x @@ -182,10 +192,10 @@ def compute_poly_in_deriv(ode_in_x, n_derivs, var): #$x_0^order$ in the denominator. To clear #the denominator we can probably? just multiply by x_0^order. delta_x = sp.symbols("delta_x") - c_vec = make_sympy_vec("c", len(var)) + c_vec = _make_sympy_vec("c", len(var)) ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() ode_in_x_shifted = ode_in_x_cleared.subs(var[0], delta_x + c_vec[0]).simplify() - f_x_derivs = make_sympy_vec("f_x", n_derivs) + f_x_derivs = _make_sympy_vec("f_x", n_derivs) poly = sp.Poly(ode_in_x_shifted, *f_x_derivs) return poly @@ -245,7 +255,7 @@ def compute_recurrence_relation(coeffs, n_derivs, var): """ i = sp.symbols("i") s = sp.Function("s") - c_vec = make_sympy_vec("c", len(var)) + c_vec = _make_sympy_vec("c", len(var)) #Compute symbolic derivative def hc_diff(i, n): @@ -292,7 +302,7 @@ def test_recurrence_finder_laplace(): def coeff_laplace(i): x, y = sp.symbols("x,y") - c_vec = make_sympy_vec("c", 2) + c_vec = _make_sympy_vec("c", 2) true_f = sp.log(sp.sqrt(x**2 + y**2)) return sp.diff(true_f, x, i).subs(x, c_vec[0]).subs( y, c_vec[1])/math.factorial(i) @@ -323,7 +333,7 @@ def test_recurrence_finder_laplace_three_d(): def coeff_laplace_three_d(i): x, y, z = sp.symbols("x,y,z") - c_vec = make_sympy_vec("c", 3) + c_vec = _make_sympy_vec("c", 3) true_f = 1/(sp.sqrt(x**2 + y**2 + z**2)) return sp.diff(true_f, x, i).subs(x, c_vec[0]).subs( y, c_vec[1]).subs(z, c_vec[2])/math.factorial(i) @@ -335,4 +345,4 @@ def coeff_laplace_three_d(i): coeff_laplace_three_d(d-1)).subs( s(d-2), coeff_laplace_three_d(d-2)).simplify() - assert val == 0 \ No newline at end of file + assert val == 0 From 6476f0b01c18d7b616c4b46c32ee5aa95397e5fb Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 25 Jun 2024 13:48:13 -0700 Subject: [PATCH 011/193] Make function for producing recurrence from pde --- sumpy/recurrence.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 7e0b8636a..476f34434 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -284,6 +284,24 @@ def hc_diff(i, n): return r.simplify() +def get_recurrence_from_pde(pde): + """ + Input: + - *pde*, representing a scalar PDE. + + Output: + - r, a recurrence relation for a Line-Taylor expansion. + + Description: Takes in a pde, outputs a recurrence. + """ + ode_in_r, var, n_derivs = get_pde_in_recurrence_form(pde) + ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() + poly = compute_poly_in_deriv(ode_in_x, n_derivs, var) + coeffs = compute_coefficients_of_poly(poly, n_derivs) + r = compute_recurrence_relation(coeffs, n_derivs, var) + return r + + def test_recurrence_finder_laplace(): """ test_recurrence_finder_laplace @@ -292,13 +310,9 @@ def test_recurrence_finder_laplace(): """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace2d) - ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() - poly = compute_poly_in_deriv(ode_in_x, n_derivs, var) - coeffs = compute_coefficients_of_poly(poly, n_derivs) + r = get_recurrence_from_pde(laplace2d) i = sp.symbols("i") s = sp.Function("s") - r = compute_recurrence_relation(coeffs, n_derivs, var) def coeff_laplace(i): x, y = sp.symbols("x,y") @@ -323,13 +337,9 @@ def test_recurrence_finder_laplace_three_d(): w = make_identity_diff_op(3) laplace3d = laplacian(w) print(laplace3d) - ode_in_r, var, n_derivs = get_pde_in_recurrence_form(laplace3d) - ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() - poly = compute_poly_in_deriv(ode_in_x, n_derivs, var) - coeffs = compute_coefficients_of_poly(poly, n_derivs) + r = get_recurrence_from_pde(laplace3d) i = sp.symbols("i") s = sp.Function("s") - r = compute_recurrence_relation(coeffs, n_derivs, var) def coeff_laplace_three_d(i): x, y, z = sp.symbols("x,y,z") From 19b5a39fa893e36dc440e4b726804527a18a39d2 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 26 Jun 2024 16:00:24 -0700 Subject: [PATCH 012/193] Update documentation --- sumpy/recurrence.py | 137 +++++++++++++++++++++++--------------------- 1 file changed, 72 insertions(+), 65 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 476f34434..3aefab1f0 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -31,14 +31,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - -import numpy as np import math -import sympy as sp from typing import Tuple +import numpy as np +import sympy as sp from pytools.obj_array import make_obj_array from sumpy.expansion.diff_op import ( - make_identity_diff_op, laplacian,LinearPDESystemOperator) + make_identity_diff_op, laplacian, LinearPDESystemOperator) # similar to make_sym_vector in sumpy.symbolic, but returns an object array @@ -49,23 +48,26 @@ def _make_sympy_vec(name, n): def get_pde_in_recurrence_form(pde: LinearPDESystemOperator) -> Tuple[ sp.Expr, np.ndarray, int - ]: +]: """ Input: - *pde*, representing a scalar PDE. + Output: - - ode_in_r, an ode in r which the POINT-POTENTIAL (has radial symmetry) - satisfies away from the origin. - Note: to represent f, f_r, f_{rr}, we use the sympy variables - :math:`f_{r0}`, f_{r1}, .... So ode_in_r is a linear combination of the sympy - variables f_{r0}, f_{r1}, .... + - ode_in_r, an ode in r which the point-potential corresponding to the PDE + satisfies away from the origin. We assume that the point-potential has + radial symmetry. + Note: to represent :math:`f, f_r, f_{rr}`, we use the sympy variables + f_{r0}, f_{r1}, ... So ode_in_r is a linear combination of the + sympy variables f_{r0}, f_{r1}, ... - var, represents the variables for the input space: [x0, x1, ...] - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present (the reason this is called n_derivs - since if we have a second order PDE for example then we might see f, f_{r}, - f_{rr} in our ODE in r, which is technically 3 terms since we count - the 0th order derivative f as a "derivative." If this doesn't make sense - just know that n_derivs is the order the of the input sumpy PDE + 1) + since if we have a second order PDE for example then we might see + :math:`f, f_{r}, f_{rr}` in our ODE in r, which is technically 3 terms + since we count the 0th order derivative f as a "derivative." If this + doesn't make sense just know that n_derivs is the order the of the input + sumpy PDE + 1) Description: We assume we are handed a system of 1 sumpy PDE (pde) and output the pde in a way that allows us to easily replace derivatives with respect to r. @@ -111,23 +113,21 @@ def compute_term(a, t): return ode_in_r, var, n_derivs -def generate_nd_derivative_relations(var, n_derivs): +def generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: """ - generate_nd_derivative_relations Input: - - var, a sympy vector of variables called [x0, x1, ...] - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of - f that may be present + - *var*, a sympy vector of variables called [x0, x1, ...] + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present Output: - - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... - using the chain rule - (f, f_x, f_{xx}, ... in code is represented as f_{x0}, f_{x1}, f_{x2} and - f, f_r, f_{rr}, ... in code is represented as f_{r0}, f_{r1}, f_{r2}) + - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... + using the chain rule + (f, f_x, f_{xx}, ... in code is represented as f_{x0}, f_{x1}, f_{x2} and + f, f_r, f_{rr}, ... in code is represented as f_{r0}, f_{r1}, f_{r2}) Description: Using the chain rule outputs a vector that tells us how to - write f, f_r, f_{rr}, ... as a linear - combination of f, f_x, f_{xx}, ... + write f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... """ f_r_derivs = _make_sympy_vec("f_r", n_derivs) f_x_derivs = _make_sympy_vec("f_x", n_derivs) @@ -145,19 +145,19 @@ def generate_nd_derivative_relations(var, n_derivs): return sp.solve(system, *f_r_derivs, dict=True)[0] -def ode_in_r_to_x(ode_in_r, var, n_derivs): +def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: """ - ode_in_r_to_x Input: - - ode_in_r, a linear combination of f, f_r, f_{rr}, ... - (in code represented as f_{r0}, f_{r1}, f_{r2}) - with coefficients as RATIONAL functions in var[0], var[1], ... - - var, array of sympy variables [x_0, x_1, ...] - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives of - f that may be present + - *ode_in_r*, a linear combination of f, f_r, f_{rr}, ... + (in code represented as f_{r0}, f_{r1}, f_{r2}) + with coefficients as RATIONAL functions in var[0], var[1], ... + - *var*, array of sympy variables [x_0, x_1, ...] + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present + Output: - - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as - rational functions in var[0], var[1], ... + - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as + rational functions in var[0], var[1], ... Description: Translates an ode in the variable r into an ode in the variable x by substituting f, f_r, f_{rr}, ... as a linear combination of @@ -171,19 +171,22 @@ def ode_in_r_to_x(ode_in_r, var, n_derivs): return ode_in_x -def compute_poly_in_deriv(ode_in_x, n_derivs, var): +def compute_poly_in_deriv(ode_in_x: sp.Expr, n_derivs: int, var: + np.ndarray) -> sp.polys.polytools.Poly: """ - compute_poly_in_deriv Input: - - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as - rational functions in var[0], var[1], ... - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives - of f that may be present + - *ode_in_x*, a linear combination of f, f_x, f_{xx}, ... with coefficients + as rational functions in var[0], var[1], ... + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present + Output: - - a polynomial in f, f_x, f_{xx}, ... (in code represented as f_{x0}, f_{x1}, - f_{x2}) with coefficients as polynomials in delta_x where delta_x = x_0 - c_0 - that represents the ''shifted ODE'' - i.e. the ODE where we substitute all - occurences of delta_x with x_0 - c_0 + - a polynomial in math:`f, f_x, f_{xx}, ...` (in code represented as + math:`f_{x0}, f_{x1}, f_{x2}`) with coefficients as polynomials in + math:`\\delta_x` where + ammath:`delta_x = x_0 - c_0` that represents the ''shifted ODE'' - i.e. + the ODE where we substitute all occurences of math:`delta_x` with + math:`x_0 - c_0` Description: Converts an ode in x, to a polynomial in f, f_x, f_{xx}, ..., with coefficients as polynomials in delta_x = x_0 - c_0. @@ -200,17 +203,21 @@ def compute_poly_in_deriv(ode_in_x, n_derivs, var): return poly -def compute_coefficients_of_poly(poly, n_derivs): +def compute_coefficients_of_poly(poly: sp.polys.polytools.Poly, + n_derivs: int) -> list: """ - compute_coefficients_of_poly Input: - - poly, a polynomial in sympy variables f_{x0}, f_{x1}, ..., - (recall that this corresponds to f_0, f_x, f_{xx}, ...) with coefficients - that are polynomials in delta_x where poly represents the ''shifted ODE'' - - i.e. we substitute all occurences of delta_x with x_0 - c_0 + - *poly*, a polynomial in sympy variables math:`f_{x0}, f_{x1}, ...`, + (recall that this corresponds to math:`f_0, f_x, f_{xx}, ...`) with + coefficients that are polynomials in delta_x where poly represents the + ''shifted ODE'' i.e. we substitute all occurences of math:`\\delta_x` + with math:`x_0 - c_0` + Output: - - a 2d array, each row giving the coefficient of f_0, f_x, f_{xx}, ..., - each entry in the row giving the coefficients of the polynomial in delta_x + - coeffs, a 2d array, each row giving the coefficient of + math:`f_0, f_x, f_{xx}, ...`, each entry in the row giving the + coefficients of the polynomial in math:`\\delta_x` + Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are polynomials in delta_x and outputs a 2d array for easy access to the coefficients based on their degree as a polynomial in delta_x. @@ -237,17 +244,17 @@ def tup(i, n=n_derivs): def compute_recurrence_relation(coeffs, n_derivs, var): """ - compute_recurrence_relation Input: - - coeffs a 2d array that gives access to the coefficients of poly, where poly - represents the coefficients of the ''shifted ODE'' - (''shifted ODE'' = we substitute all occurences of delta_x with x_0 - c_0) - based on their degree as a polynomial in delta_x - - n_derivs, the order of the original PDE + 1, i.e. the number of derivatives - of f that may be present + - *coeffs* a 2d array that gives access to the coefficients of poly, where + poly represents the coefficients of the ''shifted ODE'' + (''shifted ODE'' = we substitute all occurences of delta_x with x_0 - c_0) + based on their degree as a polynomial in delta_x) + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present + Output: - - a recurrence statement that equals 0 where s(i) is the ith coefficient of - the Taylor polynomial for our point potential. + - r, a recurrence statement that equals 0 where s(i) is the ith coefficient + of the Taylor polynomial for our point potential. Description: Takes in coeffs which represents our ``shifted ode in x" (i.e. ode_in_x with coefficients in delta_x) and outputs a recurrence relation @@ -290,7 +297,8 @@ def get_recurrence_from_pde(pde): - *pde*, representing a scalar PDE. Output: - - r, a recurrence relation for a Line-Taylor expansion. + - r, a recurrence relation for a coefficients of a Line-Taylor expansion of + the point potential. Description: Takes in a pde, outputs a recurrence. """ @@ -336,7 +344,6 @@ def test_recurrence_finder_laplace_three_d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - print(laplace3d) r = get_recurrence_from_pde(laplace3d) i = sp.symbols("i") s = sp.Function("s") @@ -355,4 +362,4 @@ def coeff_laplace_three_d(i): coeff_laplace_three_d(d-1)).subs( s(d-2), coeff_laplace_three_d(d-2)).simplify() - assert val == 0 + assert val == 0 \ No newline at end of file From 3417a8d98a86f5319b05a7cdf1d7ef4adc346411 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 27 Jun 2024 13:17:15 -0700 Subject: [PATCH 013/193] List comprehension --- sumpy/recurrence.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 3aefab1f0..f50a106aa 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -234,10 +234,8 @@ def tup(i, n=n_derivs): a.append(1) return tuple(a) - coeffs = [] - for deriv_ind in range(n_derivs): - coeffs.append( - sp.Poly(poly.coeff_monomial(tup(deriv_ind)), delta_x).all_coeffs()) + coeffs = [sp.Poly(poly.coeff_monomial(tup(deriv_ind)), delta_x).all_coeffs() + for deriv_ind in range(n_derivs)] return coeffs From 2195ed0e357d308af1702c64bb42189c7c797a93 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 27 Jun 2024 14:02:08 -0700 Subject: [PATCH 014/193] From hardcode to loop --- sumpy/recurrence.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index f50a106aa..c4fe6a739 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -355,9 +355,9 @@ def coeff_laplace_three_d(i): d = 6 # pylint: disable=not-callable - val = r.subs(i, d).subs(s(d+1), coeff_laplace_three_d(d+1)).subs( - s(d), coeff_laplace_three_d(d)).subs(s(d-1), - coeff_laplace_three_d(d-1)).subs( - s(d-2), coeff_laplace_three_d(d-2)).simplify() + r_sub = r.subs(i, d) + for i in range(d-2, d+2): + r_sub = r_sub.subs(s(i), coeff_laplace_three_d(i)) + r_sub = r_sub.simplify() - assert val == 0 \ No newline at end of file + assert r_sub == 0 From c0e3f30633c17bb804b59d529374dcddd77f9dbe Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 30 Jun 2024 17:31:00 -0700 Subject: [PATCH 015/193] Added get_recurrence_order --- sumpy/recurrence.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index c4fe6a739..3b58017f3 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -289,6 +289,23 @@ def hc_diff(i, n): return r.simplify() +def get_recurrence_order(coeffs): + """ + Input: + - *coeffs*, represents coefficients of a scalar ODE. + + Output: + - true_order, the order of the recurrence relation that will be produced. + """ + orders = [] + for i in range(len(coeffs)): + for j in range(len(coeffs[i])): + if coeffs[i][j] != 0: + orders.append(i - j) + true_order = (max(orders)-min(orders)+1) + return true_order + + def get_recurrence_from_pde(pde): """ Input: From a8142840b8940b058caeb202b91becda831127cf Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 1 Jul 2024 10:49:35 -0700 Subject: [PATCH 016/193] Unit test for order --- sumpy/recurrence.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 3b58017f3..05a21de63 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -322,7 +322,7 @@ def get_recurrence_from_pde(pde): poly = compute_poly_in_deriv(ode_in_x, n_derivs, var) coeffs = compute_coefficients_of_poly(poly, n_derivs) r = compute_recurrence_relation(coeffs, n_derivs, var) - return r + return r, get_recurrence_order(coeffs) def test_recurrence_finder_laplace(): @@ -333,7 +333,7 @@ def test_recurrence_finder_laplace(): """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - r = get_recurrence_from_pde(laplace2d) + r, order = get_recurrence_from_pde(laplace2d) i = sp.symbols("i") s = sp.Function("s") @@ -348,6 +348,7 @@ def coeff_laplace(i): val = r.subs(i, d).subs(s(d+1), coeff_laplace(d+1)).subs( s(d), coeff_laplace(d)).subs(s(d-1), coeff_laplace(d-1)).subs( s(d-2), coeff_laplace(d-2)).simplify() + assert order == 4 assert val == 0 @@ -359,7 +360,7 @@ def test_recurrence_finder_laplace_three_d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - r = get_recurrence_from_pde(laplace3d) + r, order = get_recurrence_from_pde(laplace3d) i = sp.symbols("i") s = sp.Function("s") @@ -376,5 +377,5 @@ def coeff_laplace_three_d(i): for i in range(d-2, d+2): r_sub = r_sub.subs(s(i), coeff_laplace_three_d(i)) r_sub = r_sub.simplify() - - assert r_sub == 0 + assert order == 4 + assert r_sub == 0 \ No newline at end of file From c4dd7c9298d4bb0cd1f57ea751144e7dfde79a6d Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 1 Jul 2024 10:54:22 -0700 Subject: [PATCH 017/193] Flake8 --- sumpy/recurrence.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 05a21de63..ccf280953 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -117,7 +117,7 @@ def generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: """ Input: - *var*, a sympy vector of variables called [x0, x1, ...] - - *n_derivs*, the order of the original PDE + 1, i.e. the number of + - *n_derivs*, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present Output: @@ -214,8 +214,8 @@ def compute_coefficients_of_poly(poly: sp.polys.polytools.Poly, with math:`x_0 - c_0` Output: - - coeffs, a 2d array, each row giving the coefficient of - math:`f_0, f_x, f_{xx}, ...`, each entry in the row giving the + - coeffs, a 2d array, each row giving the coefficient of + math:`f_0, f_x, f_{xx}, ...`, each entry in the row giving the coefficients of the polynomial in math:`\\delta_x` Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are @@ -243,15 +243,15 @@ def tup(i, n=n_derivs): def compute_recurrence_relation(coeffs, n_derivs, var): """ Input: - - *coeffs* a 2d array that gives access to the coefficients of poly, where + - *coeffs* a 2d array that gives access to the coefficients of poly, where poly represents the coefficients of the ''shifted ODE'' (''shifted ODE'' = we substitute all occurences of delta_x with x_0 - c_0) based on their degree as a polynomial in delta_x) - - *n_derivs*, the order of the original PDE + 1, i.e. the number of + - *n_derivs*, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present Output: - - r, a recurrence statement that equals 0 where s(i) is the ith coefficient + - r, a recurrence statement that equals 0 where s(i) is the ith coefficient of the Taylor polynomial for our point potential. Description: Takes in coeffs which represents our ``shifted ode in x" @@ -312,7 +312,7 @@ def get_recurrence_from_pde(pde): - *pde*, representing a scalar PDE. Output: - - r, a recurrence relation for a coefficients of a Line-Taylor expansion of + - r, a recurrence relation for a coefficients of a Line-Taylor expansion of the point potential. Description: Takes in a pde, outputs a recurrence. @@ -327,9 +327,8 @@ def get_recurrence_from_pde(pde): def test_recurrence_finder_laplace(): """ - test_recurrence_finder_laplace - Description: Checks that the recurrence finder works correctly for the Laplace - 2D point potential. + Description: Test the recurrence relation produced for the Laplace 2D point + potential. """ w = make_identity_diff_op(2) laplace2d = laplacian(w) @@ -354,7 +353,6 @@ def coeff_laplace(i): def test_recurrence_finder_laplace_three_d(): """ - test_recurrence_finder_laplace_three_d Description: Checks that the recurrence finder works correctly for the Laplace 3D point potential. """ @@ -378,4 +376,4 @@ def coeff_laplace_three_d(i): r_sub = r_sub.subs(s(i), coeff_laplace_three_d(i)) r_sub = r_sub.simplify() assert order == 4 - assert r_sub == 0 \ No newline at end of file + assert r_sub == 0 From f095401b8b4741e1275a0d5fbabfef39fc70f1b2 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 1 Jul 2024 14:07:09 -0700 Subject: [PATCH 018/193] Update get_recurrence_order --- sumpy/recurrence.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index ccf280953..c77fec574 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -32,7 +32,7 @@ THE SOFTWARE. """ import math -from typing import Tuple +from typing import Sequence, Tuple import numpy as np import sympy as sp from pytools.obj_array import make_obj_array @@ -289,21 +289,24 @@ def hc_diff(i, n): return r.simplify() -def get_recurrence_order(coeffs): +def get_recurrence_order(coeffs: Sequence[Sequence[sp.Expr]]) -> int: """ Input: - - *coeffs*, represents coefficients of a scalar ODE. - + - *coeffs*, represents coefficients of the normalized, + center-shifted ODE (se above) + with the outer sequence reflecting the order of the derivative, + and the second expansion reflecting expansion in the shift + $\delta_x$ Output: - true_order, the order of the recurrence relation that will be produced. """ - orders = [] - for i in range(len(coeffs)): - for j in range(len(coeffs[i])): - if coeffs[i][j] != 0: - orders.append(i - j) - true_order = (max(orders)-min(orders)+1) - return true_order + orders = { + i - j + for i, deriv_order_coeff in enumerate(coeffs) + for j, shift_coeff in enumerate(deriv_order_coeff) + if shift_coeff + } + return max(orders)-min(orders)+1 def get_recurrence_from_pde(pde): From 77776f93a39cf8b56b87f9f29d2cd205be262e82 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 9 Jul 2024 21:10:30 -0700 Subject: [PATCH 019/193] Add parametric recurrence finder --- sumpy/recurrence.py | 107 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 103 insertions(+), 4 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index c77fec574..d4ce2d7ad 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -5,6 +5,10 @@ .. autofunction:: compute_poly_in_deriv .. autofunction:: compute_coefficients_of_poly .. autofunction:: compute_recurrence_relation +.. autofunction:: get_recurrence_parametric_from_pde +.. autofunction:: get_recurrence_parametric_from_coeffs +.. autofunction:: auto_product_rule_single_term +.. autofunction:: compute_coefficients_of_poly_parametric """ __copyright__ = """ @@ -293,10 +297,10 @@ def get_recurrence_order(coeffs: Sequence[Sequence[sp.Expr]]) -> int: """ Input: - *coeffs*, represents coefficients of the normalized, - center-shifted ODE (se above) + center-shifted ODE (see above) with the outer sequence reflecting the order of the derivative, and the second expansion reflecting expansion in the shift - $\delta_x$ + math:`\\delta_x` Output: - true_order, the order of the recurrence relation that will be produced. """ @@ -328,6 +332,101 @@ def get_recurrence_from_pde(pde): return r, get_recurrence_order(coeffs) +def compute_coefficients_of_poly_parametric(poly, n_derivs, var): + """ + Input: + - *poly*, a polynomial in sympy variables math:`f_{x0}, f_{x1}, ...`, + (recall that this corresponds to math:`f_0, f_x, f_{xx}, ...`) with + coefficients that are polynomials in math:`x_0` where poly represents the + TRUE ODE. + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present + - *var*, array of sympy variables [x_0, x_1, ...] + + Output: + - coeffs, a 2d array, each row giving the coefficient of + math:`f_0, f_x, f_{xx}, ...`, each entry in the row giving the + coefficients of the polynomial in math:`x_0` + + Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are + polynomials in math:`x_0` and outputs a 2d array for easy access to the + coefficients based on their degree as a polynomial in math:`x_0`. + """ + def tup(i, n=n_derivs): + a = [] + for j in range(n): + if j != i: + a.append(0) + else: + a.append(1) + return tuple(a) + + coeffs = [] + for deriv_ind in range(n_derivs): + coeffs.append(sp.Poly(poly.coeff_monomial(tup(deriv_ind)), + var[0]).all_coeffs()[::-1]) + + return coeffs + + +def auto_product_rule_single_term(p, m, var): + """ + Input: + - *p*, degree of monomial + - *m*, order of derivative + + Output: + - recurrence relation for ODE math:`x_0^p f^(m)(x_0)` + """ + n = sp.symbols("n") + s = sp.Function("s") + result = 0 + for i in range(p+1): + temp = 1 + for j in range(i): + temp *= (n - j) + # pylint: disable=not-callable + temp *= math.comb(p, i) * s(n-i+m) * var[0]**(p-i) + result += temp + return result + + +def get_recurrence_parametric_from_coeffs(coeffs, var): + """ + Input: + - *coeffs* + + Output: + - recurrence relation for full ODE + """ + final_recurrence = 0 + for m, _ in enumerate(coeffs): + for p, _ in enumerate(coeffs[m]): + final_recurrence += coeffs[m][p] * auto_product_rule_single_term(p, + m, var) + return final_recurrence + + +def get_recurrence_parametric_from_pde(pde): + """ + Input: + - *pde*, representing a scalar PDE. + + Output: + - r, a recurrence relation for a coefficients of a Line-Taylor expansion of + the point potential. + + Description: Takes in a pde, outputs a recurrence. + """ + ode_in_r, var, n_derivs = get_pde_in_recurrence_form(pde) + ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() + ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() + f_x_derivs = _make_sympy_vec("f_x", n_derivs) + poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) + coeffs = compute_coefficients_of_poly_parametric(poly, n_derivs, var) + return get_recurrence_parametric_from_coeffs(coeffs, var) + + def test_recurrence_finder_laplace(): """ Description: Test the recurrence relation produced for the Laplace 2D point @@ -361,7 +460,7 @@ def test_recurrence_finder_laplace_three_d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - r, order = get_recurrence_from_pde(laplace3d) + r, _ = get_recurrence_from_pde(laplace3d) i = sp.symbols("i") s = sp.Function("s") @@ -378,5 +477,5 @@ def coeff_laplace_three_d(i): for i in range(d-2, d+2): r_sub = r_sub.subs(s(i), coeff_laplace_three_d(i)) r_sub = r_sub.simplify() - assert order == 4 + #assert order == 4 assert r_sub == 0 From ba6d40840d14361af33400ee97f2087fa8518dfe Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 09:30:45 -0700 Subject: [PATCH 020/193] Update recurrence.py --- sumpy/recurrence.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index d4ce2d7ad..f4173da8a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -377,6 +377,7 @@ def auto_product_rule_single_term(p, m, var): Output: - recurrence relation for ODE math:`x_0^p f^(m)(x_0)` + s(i) """ n = sp.symbols("n") s = sp.Function("s") @@ -394,12 +395,14 @@ def auto_product_rule_single_term(p, m, var): def get_recurrence_parametric_from_coeffs(coeffs, var): """ Input: - - *coeffs* + - *coeffs*, take the ODE Output: - recurrence relation for full ODE """ final_recurrence = 0 + #Outer loop is derivative direction + #Inner is polynomial order of x_0 for m, _ in enumerate(coeffs): for p, _ in enumerate(coeffs[m]): final_recurrence += coeffs[m][p] * auto_product_rule_single_term(p, From 01a4d06f1d9a9f977603b11ca36d5b60a3293770 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 10:09:04 -0700 Subject: [PATCH 021/193] Added tests for parametric --- sumpy/recurrence.py | 205 +++++--------------------------------------- 1 file changed, 23 insertions(+), 182 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index f4173da8a..5a1383cb9 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -2,9 +2,6 @@ .. autofunction:: get_pde_in_recurrence_form .. autofunction:: generate_nd_derivative_relations .. autofunction:: ode_in_r_to_x -.. autofunction:: compute_poly_in_deriv -.. autofunction:: compute_coefficients_of_poly -.. autofunction:: compute_recurrence_relation .. autofunction:: get_recurrence_parametric_from_pde .. autofunction:: get_recurrence_parametric_from_coeffs .. autofunction:: auto_product_rule_single_term @@ -36,7 +33,7 @@ THE SOFTWARE. """ import math -from typing import Sequence, Tuple +from typing import Tuple import numpy as np import sympy as sp from pytools.obj_array import make_obj_array @@ -175,163 +172,6 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: return ode_in_x -def compute_poly_in_deriv(ode_in_x: sp.Expr, n_derivs: int, var: - np.ndarray) -> sp.polys.polytools.Poly: - """ - Input: - - *ode_in_x*, a linear combination of f, f_x, f_{xx}, ... with coefficients - as rational functions in var[0], var[1], ... - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present - - Output: - - a polynomial in math:`f, f_x, f_{xx}, ...` (in code represented as - math:`f_{x0}, f_{x1}, f_{x2}`) with coefficients as polynomials in - math:`\\delta_x` where - ammath:`delta_x = x_0 - c_0` that represents the ''shifted ODE'' - i.e. - the ODE where we substitute all occurences of math:`delta_x` with - math:`x_0 - c_0` - - Description: Converts an ode in x, to a polynomial in f, f_x, f_{xx}, ..., - with coefficients as polynomials in delta_x = x_0 - c_0. - """ - #Note that generate_nd_derivative_relations will at worst put some power of - #$x_0^order$ in the denominator. To clear - #the denominator we can probably? just multiply by x_0^order. - delta_x = sp.symbols("delta_x") - c_vec = _make_sympy_vec("c", len(var)) - ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() - ode_in_x_shifted = ode_in_x_cleared.subs(var[0], delta_x + c_vec[0]).simplify() - f_x_derivs = _make_sympy_vec("f_x", n_derivs) - poly = sp.Poly(ode_in_x_shifted, *f_x_derivs) - return poly - - -def compute_coefficients_of_poly(poly: sp.polys.polytools.Poly, - n_derivs: int) -> list: - """ - Input: - - *poly*, a polynomial in sympy variables math:`f_{x0}, f_{x1}, ...`, - (recall that this corresponds to math:`f_0, f_x, f_{xx}, ...`) with - coefficients that are polynomials in delta_x where poly represents the - ''shifted ODE'' i.e. we substitute all occurences of math:`\\delta_x` - with math:`x_0 - c_0` - - Output: - - coeffs, a 2d array, each row giving the coefficient of - math:`f_0, f_x, f_{xx}, ...`, each entry in the row giving the - coefficients of the polynomial in math:`\\delta_x` - - Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are - polynomials in delta_x and outputs a 2d array for easy access to the - coefficients based on their degree as a polynomial in delta_x. - """ - delta_x = sp.symbols("delta_x") - - #Returns coefficients in lexographic order. So lowest order first - def tup(i, n=n_derivs): - a = [] - for j in range(n): - if j != i: - a.append(0) - else: - a.append(1) - return tuple(a) - - coeffs = [sp.Poly(poly.coeff_monomial(tup(deriv_ind)), delta_x).all_coeffs() - for deriv_ind in range(n_derivs)] - - return coeffs - - -def compute_recurrence_relation(coeffs, n_derivs, var): - """ - Input: - - *coeffs* a 2d array that gives access to the coefficients of poly, where - poly represents the coefficients of the ''shifted ODE'' - (''shifted ODE'' = we substitute all occurences of delta_x with x_0 - c_0) - based on their degree as a polynomial in delta_x) - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present - - Output: - - r, a recurrence statement that equals 0 where s(i) is the ith coefficient - of the Taylor polynomial for our point potential. - - Description: Takes in coeffs which represents our ``shifted ode in x" - (i.e. ode_in_x with coefficients in delta_x) and outputs a recurrence relation - for the point potential. - """ - i = sp.symbols("i") - s = sp.Function("s") - c_vec = _make_sympy_vec("c", len(var)) - - #Compute symbolic derivative - def hc_diff(i, n): - retme = 1 - for j in range(n): - retme *= (i-j) - return retme - - #We are differentiating deriv_ind, which shifts down deriv_ind. - #Do this for one deriv_ind - r = 0 - for deriv_ind in range(n_derivs): - part_of_r = 0 - pow_delta = 0 - for j in range(len(coeffs[deriv_ind])-1, -1, -1): - shift = pow_delta - deriv_ind + 1 - pow_delta += 1 - # pylint: disable=not-callable - temp = coeffs[deriv_ind][j] * s(i) * hc_diff(i, deriv_ind) - part_of_r += temp.subs(i, i-shift) - r += part_of_r - - for j in range(1, len(var)): - r = r.subs(var[j], c_vec[j]) - - return r.simplify() - - -def get_recurrence_order(coeffs: Sequence[Sequence[sp.Expr]]) -> int: - """ - Input: - - *coeffs*, represents coefficients of the normalized, - center-shifted ODE (see above) - with the outer sequence reflecting the order of the derivative, - and the second expansion reflecting expansion in the shift - math:`\\delta_x` - Output: - - true_order, the order of the recurrence relation that will be produced. - """ - orders = { - i - j - for i, deriv_order_coeff in enumerate(coeffs) - for j, shift_coeff in enumerate(deriv_order_coeff) - if shift_coeff - } - return max(orders)-min(orders)+1 - - -def get_recurrence_from_pde(pde): - """ - Input: - - *pde*, representing a scalar PDE. - - Output: - - r, a recurrence relation for a coefficients of a Line-Taylor expansion of - the point potential. - - Description: Takes in a pde, outputs a recurrence. - """ - ode_in_r, var, n_derivs = get_pde_in_recurrence_form(pde) - ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() - poly = compute_poly_in_deriv(ode_in_x, n_derivs, var) - coeffs = compute_coefficients_of_poly(poly, n_derivs) - r = compute_recurrence_relation(coeffs, n_derivs, var) - return r, get_recurrence_order(coeffs) - - def compute_coefficients_of_poly_parametric(poly, n_derivs, var): """ Input: @@ -437,23 +277,25 @@ def test_recurrence_finder_laplace(): """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - r, order = get_recurrence_from_pde(laplace2d) - i = sp.symbols("i") + r = get_recurrence_parametric_from_pde(laplace2d) + n = sp.symbols("n") s = sp.Function("s") - def coeff_laplace(i): + def deriv_laplace(i): x, y = sp.symbols("x,y") - c_vec = _make_sympy_vec("c", 2) + var = _make_sympy_vec("x", 2) true_f = sp.log(sp.sqrt(x**2 + y**2)) - return sp.diff(true_f, x, i).subs(x, c_vec[0]).subs( - y, c_vec[1])/math.factorial(i) + return sp.diff(true_f, x, i).subs(x, var[0]).subs( + y, var[1]) d = 6 # pylint: disable=not-callable - val = r.subs(i, d).subs(s(d+1), coeff_laplace(d+1)).subs( - s(d), coeff_laplace(d)).subs(s(d-1), coeff_laplace(d-1)).subs( - s(d-2), coeff_laplace(d-2)).simplify() - assert order == 4 - assert val == 0 + + r_sub = r.subs(n, d) + for i in range(d-1, d+3): + r_sub = r_sub.subs(s(i), deriv_laplace(i)) + r_sub = r_sub.simplify() + + assert r_sub == 0 def test_recurrence_finder_laplace_three_d(): @@ -463,22 +305,21 @@ def test_recurrence_finder_laplace_three_d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - r, _ = get_recurrence_from_pde(laplace3d) - i = sp.symbols("i") + r = get_recurrence_parametric_from_pde(laplace3d) + n = sp.symbols("n") s = sp.Function("s") - def coeff_laplace_three_d(i): + def deriv_laplace_three_d(i): x, y, z = sp.symbols("x,y,z") - c_vec = _make_sympy_vec("c", 3) + var = _make_sympy_vec("x", 3) true_f = 1/(sp.sqrt(x**2 + y**2 + z**2)) - return sp.diff(true_f, x, i).subs(x, c_vec[0]).subs( - y, c_vec[1]).subs(z, c_vec[2])/math.factorial(i) + return sp.diff(true_f, x, i).subs(x, var[0]).subs( + y, var[1]).subs(z, var[2]) d = 6 # pylint: disable=not-callable - r_sub = r.subs(i, d) - for i in range(d-2, d+2): - r_sub = r_sub.subs(s(i), coeff_laplace_three_d(i)) + r_sub = r.subs(n, d) + for i in range(d-1, d+3): + r_sub = r_sub.subs(s(i), deriv_laplace_three_d(i)) r_sub = r_sub.simplify() - #assert order == 4 assert r_sub == 0 From 2c912b9d50545d48fdd70f6991d507839ee9dd6b Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 10:22:27 -0700 Subject: [PATCH 022/193] Add function skeletons --- sumpy/recurrence.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 5a1383cb9..34ba4129c 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -172,7 +172,8 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: return ode_in_x -def compute_coefficients_of_poly_parametric(poly, n_derivs, var): +def compute_coefficients_of_poly_parametric(poly: sp.Poly, n_derivs: int, + var: np.ndarray) -> list: """ Input: - *poly*, a polynomial in sympy variables math:`f_{x0}, f_{x1}, ...`, @@ -209,7 +210,7 @@ def tup(i, n=n_derivs): return coeffs -def auto_product_rule_single_term(p, m, var): +def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: """ Input: - *p*, degree of monomial @@ -232,12 +233,12 @@ def auto_product_rule_single_term(p, m, var): return result -def get_recurrence_parametric_from_coeffs(coeffs, var): +def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.Expr: """ - Input: + ## Input: - *coeffs*, take the ODE - Output: + ## Output: - recurrence relation for full ODE """ final_recurrence = 0 @@ -250,7 +251,7 @@ def get_recurrence_parametric_from_coeffs(coeffs, var): return final_recurrence -def get_recurrence_parametric_from_pde(pde): +def get_recurrence_parametric_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: """ Input: - *pde*, representing a scalar PDE. From 92d3bec0920a8a3e24c84f1c3e85c3d77f349c4f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 11:23:09 -0700 Subject: [PATCH 023/193] Remove all documentation --- sumpy/recurrence.py | 111 -------------------------------------------- 1 file changed, 111 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 34ba4129c..561fa24c3 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -50,32 +50,6 @@ def _make_sympy_vec(name, n): def get_pde_in_recurrence_form(pde: LinearPDESystemOperator) -> Tuple[ sp.Expr, np.ndarray, int ]: - """ - Input: - - *pde*, representing a scalar PDE. - - Output: - - ode_in_r, an ode in r which the point-potential corresponding to the PDE - satisfies away from the origin. We assume that the point-potential has - radial symmetry. - Note: to represent :math:`f, f_r, f_{rr}`, we use the sympy variables - f_{r0}, f_{r1}, ... So ode_in_r is a linear combination of the - sympy variables f_{r0}, f_{r1}, ... - - var, represents the variables for the input space: [x0, x1, ...] - - n_derivs, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present (the reason this is called n_derivs - since if we have a second order PDE for example then we might see - :math:`f, f_{r}, f_{rr}` in our ODE in r, which is technically 3 terms - since we count the 0th order derivative f as a "derivative." If this - doesn't make sense just know that n_derivs is the order the of the input - sumpy PDE + 1) - - Description: We assume we are handed a system of 1 sumpy PDE (pde) and output - the pde in a way that allows us to easily replace derivatives with respect to r. - In other words we output a linear combination of sympy variables - f_{r0}, f_{r1}, ... (which represents f, f_r, f_{rr} respectively) - to represent our ODE in r for the point potential. - """ if len(pde.eqs) != 1: raise ValueError("PDE must be scalar") @@ -115,21 +89,6 @@ def compute_term(a, t): def generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: - """ - Input: - - *var*, a sympy vector of variables called [x0, x1, ...] - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present - - Output: - - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... - using the chain rule - (f, f_x, f_{xx}, ... in code is represented as f_{x0}, f_{x1}, f_{x2} and - f, f_r, f_{rr}, ... in code is represented as f_{r0}, f_{r1}, f_{r2}) - - Description: Using the chain rule outputs a vector that tells us how to - write f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... - """ f_r_derivs = _make_sympy_vec("f_r", n_derivs) f_x_derivs = _make_sympy_vec("f_x", n_derivs) f = sp.Function("f") @@ -147,23 +106,6 @@ def generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: - """ - Input: - - *ode_in_r*, a linear combination of f, f_r, f_{rr}, ... - (in code represented as f_{r0}, f_{r1}, f_{r2}) - with coefficients as RATIONAL functions in var[0], var[1], ... - - *var*, array of sympy variables [x_0, x_1, ...] - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present - - Output: - - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as - rational functions in var[0], var[1], ... - - Description: Translates an ode in the variable r into an ode in the variable x - by substituting f, f_r, f_{rr}, ... as a linear combination of - f, f_x, f_{xx}, ... using the chain rule - """ subme = generate_nd_derivative_relations(var, n_derivs) ode_in_x = ode_in_r f_r_derivs = _make_sympy_vec("f_r", n_derivs) @@ -174,25 +116,6 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: def compute_coefficients_of_poly_parametric(poly: sp.Poly, n_derivs: int, var: np.ndarray) -> list: - """ - Input: - - *poly*, a polynomial in sympy variables math:`f_{x0}, f_{x1}, ...`, - (recall that this corresponds to math:`f_0, f_x, f_{xx}, ...`) with - coefficients that are polynomials in math:`x_0` where poly represents the - TRUE ODE. - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present - - *var*, array of sympy variables [x_0, x_1, ...] - - Output: - - coeffs, a 2d array, each row giving the coefficient of - math:`f_0, f_x, f_{xx}, ...`, each entry in the row giving the - coefficients of the polynomial in math:`x_0` - - Description: Takes in a polynomial in f_{x0}, f_{x1}, ..., w/coeffs that are - polynomials in math:`x_0` and outputs a 2d array for easy access to the - coefficients based on their degree as a polynomial in math:`x_0`. - """ def tup(i, n=n_derivs): a = [] for j in range(n): @@ -211,15 +134,6 @@ def tup(i, n=n_derivs): def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: - """ - Input: - - *p*, degree of monomial - - *m*, order of derivative - - Output: - - recurrence relation for ODE math:`x_0^p f^(m)(x_0)` - s(i) - """ n = sp.symbols("n") s = sp.Function("s") result = 0 @@ -234,13 +148,6 @@ def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.Expr: - """ - ## Input: - - *coeffs*, take the ODE - - ## Output: - - recurrence relation for full ODE - """ final_recurrence = 0 #Outer loop is derivative direction #Inner is polynomial order of x_0 @@ -252,16 +159,6 @@ def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.E def get_recurrence_parametric_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: - """ - Input: - - *pde*, representing a scalar PDE. - - Output: - - r, a recurrence relation for a coefficients of a Line-Taylor expansion of - the point potential. - - Description: Takes in a pde, outputs a recurrence. - """ ode_in_r, var, n_derivs = get_pde_in_recurrence_form(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() @@ -272,10 +169,6 @@ def get_recurrence_parametric_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: def test_recurrence_finder_laplace(): - """ - Description: Test the recurrence relation produced for the Laplace 2D point - potential. - """ w = make_identity_diff_op(2) laplace2d = laplacian(w) r = get_recurrence_parametric_from_pde(laplace2d) @@ -300,10 +193,6 @@ def deriv_laplace(i): def test_recurrence_finder_laplace_three_d(): - """ - Description: Checks that the recurrence finder works correctly for the Laplace - 3D point potential. - """ w = make_identity_diff_op(3) laplace3d = laplacian(w) r = get_recurrence_parametric_from_pde(laplace3d) From 8f6e2487bfed9c9a2c0d752eb2688db65a10f424 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 12:08:38 -0700 Subject: [PATCH 024/193] Added documentation --- sumpy/recurrence.py | 96 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 561fa24c3..04d7f489a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -50,6 +50,27 @@ def _make_sympy_vec(name, n): def get_pde_in_recurrence_form(pde: LinearPDESystemOperator) -> Tuple[ sp.Expr, np.ndarray, int ]: + """ + ## Input + - *pde*, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` such that + pde.eqs == 1 + ## Output + - ode_in_r, an ODE that the point-potential satifies w/respect to radial variable + - var, an array representing the input coordinates + - n_derivs, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present (the reason this is called n_derivs + since if we have a second order PDE for example then we might see + :math:`f, f_{r}, f_{rr}` in our ODE in r, which is technically 3 terms + since we count the 0th order derivative f as a "derivative." If this + doesn't make sense just know that n_derivs is the order the of the input + sumpy PDE + 1) + ## Description + Takes as input a scalar pde represented as the type + :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator`. Assumes that the scalar + pde has coefficients that are polynomial in the input coordinates. Then assumes + that the PDE is satisfied by a point-potential with radial symmetry and comes up + with an ODE in the radial variable that the point-potential satisfies. + """ if len(pde.eqs) != 1: raise ValueError("PDE must be scalar") @@ -89,6 +110,20 @@ def compute_term(a, t): def generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: + """ + ## Input + - *var*, a sympy vector of variables called [x0, x1, ...] + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present + ## Output + - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... + using the chain rule + (f, f_x, f_{xx}, ... in code is represented as f_{x0}, f_{x1}, f_{x2} and + f, f_r, f_{rr}, ... in code is represented as f_{r0}, f_{r1}, f_{r2}) + ## Description + Using the chain rule outputs a vector that tells us how to + write f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... + """ f_r_derivs = _make_sympy_vec("f_r", n_derivs) f_x_derivs = _make_sympy_vec("f_x", n_derivs) f = sp.Function("f") @@ -106,6 +141,22 @@ def generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: + """ + ## Input + - *ode_in_r*, a linear combination of f, f_r, f_{rr}, ... + (in code represented as f_{r0}, f_{r1}, f_{r2}) + with coefficients as RATIONAL functions in var[0], var[1], ... + - *var*, array of sympy variables [x_0, x_1, ...] + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present + ## Output + - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as + rational functions in var[0], var[1], ... + ## Description + Translates an ode in the variable r into an ode in the variable x + by substituting f, f_r, f_{rr}, ... as a linear combination of + f, f_x, f_{xx}, ... using the chain rule. + """ subme = generate_nd_derivative_relations(var, n_derivs) ode_in_x = ode_in_r f_r_derivs = _make_sympy_vec("f_r", n_derivs) @@ -116,6 +167,21 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: def compute_coefficients_of_poly_parametric(poly: sp.Poly, n_derivs: int, var: np.ndarray) -> list: + """ + ## Input + - *poly*, the original ODE for our point-potential as a polynomial + in f_{x0}, f_{x1}, f_{x2}, etc. + - *n_derivs*, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present + - *var*, array of sympy variables [x_0, x_1, ...] + ## Output + - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as + rational functions in var[0], var[1], ... + ## Description + Translates an ode in the variable r into an ode in the variable x + by substituting f, f_r, f_{rr}, ... as a linear combination of + f, f_x, f_{xx}, ... using the chain rule. + """ def tup(i, n=n_derivs): a = [] for j in range(n): @@ -148,6 +214,20 @@ def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.Expr: + """ + ## Input + - *coeffs*, a 2D array with elements :math:`b_{ij}`. + If we write the coefficients of our ODE for the point-potential as a + polynomial w/respect to f_{x0}, f_{x1}, f_{x2}, ... we can call these + coefficients :math:`a_0, a_1, a_2, ...` Since each coefficient :math:`a_i` is a + polynomial in :math:`x_0`, we can write a_i as a polynomial in :math:`x_0^j`, + and call these coefficients :math:`b_{ij}`. + + - *var*, array of sympy variables [x_0, x_1, ...] + ## Output + - final_recurrence, the recurrence relation for derivatives of our + point-potential. + """ final_recurrence = 0 #Outer loop is derivative direction #Inner is polynomial order of x_0 @@ -159,6 +239,14 @@ def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.E def get_recurrence_parametric_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: + """ + ## Input + - *pde*, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` such that + pde.eqs == 1 + ## Output + - final_recurrence, the recurrence relation for derivatives of our + point-potential. + """ ode_in_r, var, n_derivs = get_pde_in_recurrence_form(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() @@ -169,6 +257,10 @@ def get_recurrence_parametric_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: def test_recurrence_finder_laplace(): + """ + ## Description + Tests our recurrence relation generator for Lapalace 2D. + """ w = make_identity_diff_op(2) laplace2d = laplacian(w) r = get_recurrence_parametric_from_pde(laplace2d) @@ -193,6 +285,10 @@ def deriv_laplace(i): def test_recurrence_finder_laplace_three_d(): + """ + ## Description + Tests our recurrence relation generator for Laplace 3D. + """ w = make_identity_diff_op(3) laplace3d = laplacian(w) r = get_recurrence_parametric_from_pde(laplace3d) From d9b6777460c33e64488cee86ffa86d22faae3519 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 12:28:16 -0700 Subject: [PATCH 025/193] Update recurrence.py --- sumpy/recurrence.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 04d7f489a..2bccd7a4a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -216,17 +216,17 @@ def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.Expr: """ ## Input - - *coeffs*, a 2D array with elements :math:`b_{ij}`. - If we write the coefficients of our ODE for the point-potential as a - polynomial w/respect to f_{x0}, f_{x1}, f_{x2}, ... we can call these - coefficients :math:`a_0, a_1, a_2, ...` Since each coefficient :math:`a_i` is a - polynomial in :math:`x_0`, we can write a_i as a polynomial in :math:`x_0^j`, - and call these coefficients :math:`b_{ij}`. - + - *coeffs*, + Consider an ODE obeyed by a function f that can be expressed in the following + form: :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \\cdots) \\partial_{x_0}^0 f + + (b_{10} x_0^0 + b_{11} x_0^1 +\\cdots) \\partial_x^1 f`. coeffs is a sequence + of sequences, with the outer sequence iterating over derivative orders, and + each inner sequence iterating over powers of :math:`x_0`, so that, in terms of + the above form, coeffs is [[b_00, b_01, ...], [b_10, b_11, ...], ...] - *var*, array of sympy variables [x_0, x_1, ...] ## Output - - final_recurrence, the recurrence relation for derivatives of our - point-potential. + - final_recurrence, the recurrence relation for derivatives of our + point-potential. """ final_recurrence = 0 #Outer loop is derivative direction From 7102511da14defb5a4e71e2974b428f0767befd4 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 12:40:37 -0700 Subject: [PATCH 026/193] Update recurrence.py --- sumpy/recurrence.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 2bccd7a4a..f0f7b85d5 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -200,6 +200,23 @@ def tup(i, n=n_derivs): def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: + """ + ## Description + We assume that we are given the expression :math:`x_0^p f^(m)(x_0)`. We then + output the nth order derivative of the expression where n is a symbolic variable. + We let :math:`s(i)` represent the ith order derivative of f when + we output the final result. + ## Input + - *p*, see description + - *m*, see description + - *var*, array of sympy variables [x_0, x_1, ...] + ## Output + - A sympy expression is output. + We let :math:`s(i)` represent the ith order derivative of f when + we output the final result. We let n represent a symbolic variable + corresponding to how many derivatives of the original expression were + taken. + """ n = sp.symbols("n") s = sp.Function("s") result = 0 From b3d74f892b060c39ccc7551d16fe3894b1b25e1d Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 10 Jul 2024 12:42:05 -0700 Subject: [PATCH 027/193] Update recurrence.py --- sumpy/recurrence.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index f0f7b85d5..e45ea3858 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -211,7 +211,8 @@ def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: - *m*, see description - *var*, array of sympy variables [x_0, x_1, ...] ## Output - - A sympy expression is output. + - A sympy expression is output corresponding to the nth order derivative of the + input expression. We let :math:`s(i)` represent the ith order derivative of f when we output the final result. We let n represent a symbolic variable corresponding to how many derivatives of the original expression were From c2432dd868354987bf11e978f971e51b37a180e8 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 12 Jul 2024 14:26:45 -0700 Subject: [PATCH 028/193] Slight mistake in documentation --- sumpy/recurrence.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index e45ea3858..4788eabc1 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -145,7 +145,8 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: ## Input - *ode_in_r*, a linear combination of f, f_r, f_{rr}, ... (in code represented as f_{r0}, f_{r1}, f_{r2}) - with coefficients as RATIONAL functions in var[0], var[1], ... + with coefficients that are polynomials in var[0], var[1], ... + divided by some power of var[0] - *var*, array of sympy variables [x_0, x_1, ...] - *n_derivs*, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present @@ -170,7 +171,8 @@ def compute_coefficients_of_poly_parametric(poly: sp.Poly, n_derivs: int, """ ## Input - *poly*, the original ODE for our point-potential as a polynomial - in f_{x0}, f_{x1}, f_{x2}, etc. + in f_{x0}, f_{x1}, f_{x2}, etc. with polynomial coefficients + in var[0], var[1], ... - *n_derivs*, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present - *var*, array of sympy variables [x_0, x_1, ...] From a174f462154124320174e4f5a5856b4d26bb3eda Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 14 Jul 2024 14:43:41 -0700 Subject: [PATCH 029/193] Added narrative --- sumpy/recurrence.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 4788eabc1..3d233ba21 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -46,6 +46,20 @@ def _make_sympy_vec(name, n): return make_obj_array([sp.Symbol(f"{name}{i}") for i in range(n)]) +""" +Overall Narrative: +First we take an elliptic PDE represented as a sumpy +:class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` type. We then +use get_pde_in_recurrence_form to get an ODE in the radial variable +that the point-potential satisfies assuming radial symmetry of the point-potential. + +We then take the ODE in the radial variable that we get and use the chain-rule to +convert it into a ODE in a single spatial variable using ode_in_r_to_x. We then +collect the coefficients of the ODE using compute_coefficients_of_poly_parametric +and then use these coefficients to finally compute the recurrence relation via +get_recurrence_parametric_from_pde. +""" + def get_pde_in_recurrence_form(pde: LinearPDESystemOperator) -> Tuple[ sp.Expr, np.ndarray, int From 0d3728b0ca236a4dc4b5a3c5a1ead94d2c06779a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 14 Jul 2024 14:44:42 -0700 Subject: [PATCH 030/193] Flake - narrative --- sumpy/recurrence.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 3d233ba21..f29d9fa96 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -46,16 +46,17 @@ def _make_sympy_vec(name, n): return make_obj_array([sp.Symbol(f"{name}{i}") for i in range(n)]) + """ Overall Narrative: -First we take an elliptic PDE represented as a sumpy +First we take an elliptic PDE represented as a sumpy :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` type. We then use get_pde_in_recurrence_form to get an ODE in the radial variable that the point-potential satisfies assuming radial symmetry of the point-potential. We then take the ODE in the radial variable that we get and use the chain-rule to convert it into a ODE in a single spatial variable using ode_in_r_to_x. We then -collect the coefficients of the ODE using compute_coefficients_of_poly_parametric +collect the coefficients of the ODE using compute_coefficients_of_poly_parametric and then use these coefficients to finally compute the recurrence relation via get_recurrence_parametric_from_pde. """ From 175cbe97aa243f56458521ff52098b56552fa200 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 14 Jul 2024 23:23:22 -0700 Subject: [PATCH 031/193] Added helmholtz unit test --- sumpy/recurrence.py | 55 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index f29d9fa96..608ba99d1 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -344,3 +344,58 @@ def deriv_laplace_three_d(i): r_sub = r_sub.subs(s(i), deriv_laplace_three_d(i)) r_sub = r_sub.simplify() assert r_sub == 0 + + +def test_recurrence_finder_helmholtz_three_d(): + """ + ## Description + Tests our recurrence relation generator for Helmhotlz 3D. + """ + #We are creating the recurrence relation for helmholtz3d which + #seems to be an order 5 recurrence relation + w = make_identity_diff_op(3) + helmholtz3d = laplacian(w) + w + r = get_recurrence_parametric_from_pde(helmholtz3d) + + #We create that function that gives the derivatives of the point + # potential for helmholtz + #Remember! Our point-source was placed at the origin and we + # were performing a LT expansion at x_0 + def deriv_helmholtz_three_d(i, s_loc): + s_x = s_loc[0] + s_y = s_loc[1] + s_z = s_loc[2] + x, y, z = sp.symbols("x,y,z") + true_f = sp.exp(1j * sp.sqrt(x**2 + y**2 + z**2) + ) / (sp.sqrt(x**2 + y**2 + z**2)) + return sp.diff(true_f, x, i).subs(x, s_x).subs( + y, s_y).subs(z, s_z) + + #Create relevant symbols + var = _make_sympy_vec("x", 3) + n = sp.symbols("n") + s = sp.Function("s") + + #Create random source location + s_loc = np.random.rand(3) + + #Create random order to check + d = np.random.randint(0, 5) + + #Substitute random location into recurrence relation and value of n = d + r_loc = r.subs(var[0], s_loc[0]) + r_loc = r_loc.subs(var[1], s_loc[1]) + r_loc = r_loc.subs(var[2], s_loc[2]) + r_sub = r_loc.subs(n, d) + + #Checking that the recurrence holds to some machine epsilon + for i in range(max(d-3, 0), d+3): + # pylint: disable=not-callable + r_sub = r_sub.subs(s(i), deriv_helmholtz_three_d(i, s_loc)) + err = abs(abs(r_sub).evalf()) + print(err) + assert err <= 1e-10 + + + + From d35e3811a769df47d8a06786175648324fe52966 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 15 Jul 2024 16:05:02 -0500 Subject: [PATCH 032/193] Documentation tweaks --- sumpy/recurrence.py | 107 +++++++++++++++++++++++--------------------- 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 608ba99d1..ba4fd4616 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -1,13 +1,34 @@ -""" -.. autofunction:: get_pde_in_recurrence_form -.. autofunction:: generate_nd_derivative_relations +r""" +With the functionality in this module, we aim to compute a recurrence for +one-dimensional derivatives of functions :math:`f:\mathbb R^n \to \mathbb R` +for functions :math:`f` satisfying two assumptions: + +- :math:`f` satisfies a PDE is linear and has coefficients polynomial + in the coordinates. +- :math:`f` only depends on the radius :math:`r`, + i.e. :math:`f(\boldsymbol x)=f(|\boldsymbol x|_2)`. + +This process proceeds in multiple steps: + +- Convert from the PDE to an ODE in :math:`r`, using :func:`pde_to_ode_in_r`. +- Convert from an ODE in :math:`r` to one in :math:`x`, using :func:`ode_in_r_to_x`. +- Sort general-form ODE in :math:`x` into a coefficient array, using + :func:`ode_in_x_to_coeff_array`. +- Finally, get an expression for the recurrence, using + :func:`recurrence_from_coeff_array`. + +The whole process can be automated using :func:`recurrence_from_pde`. + +.. autofunction:: pde_to_ode_in_r .. autofunction:: ode_in_r_to_x -.. autofunction:: get_recurrence_parametric_from_pde -.. autofunction:: get_recurrence_parametric_from_coeffs -.. autofunction:: auto_product_rule_single_term -.. autofunction:: compute_coefficients_of_poly_parametric +.. autofunction:: ode_in_x_to_coeff_array +.. autofunction:: recurrence_from_coeff_array +.. autofunction:: recurrence_from_pde """ +from __future__ import annotations + + __copyright__ = """ Copyright (C) 2024 Hirish Chandrasekaran Copyright (C) 2024 Andreas Kloeckner @@ -33,7 +54,6 @@ THE SOFTWARE. """ import math -from typing import Tuple import numpy as np import sympy as sp from pytools.obj_array import make_obj_array @@ -47,44 +67,29 @@ def _make_sympy_vec(name, n): return make_obj_array([sp.Symbol(f"{name}{i}") for i in range(n)]) -""" -Overall Narrative: -First we take an elliptic PDE represented as a sumpy -:class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` type. We then -use get_pde_in_recurrence_form to get an ODE in the radial variable -that the point-potential satisfies assuming radial symmetry of the point-potential. - -We then take the ODE in the radial variable that we get and use the chain-rule to -convert it into a ODE in a single spatial variable using ode_in_r_to_x. We then -collect the coefficients of the ODE using compute_coefficients_of_poly_parametric -and then use these coefficients to finally compute the recurrence relation via -get_recurrence_parametric_from_pde. -""" - - -def get_pde_in_recurrence_form(pde: LinearPDESystemOperator) -> Tuple[ +def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ sp.Expr, np.ndarray, int ]: """ - ## Input - - *pde*, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` such that - pde.eqs == 1 - ## Output - - ode_in_r, an ODE that the point-potential satifies w/respect to radial variable - - var, an array representing the input coordinates - - n_derivs, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present (the reason this is called n_derivs - since if we have a second order PDE for example then we might see - :math:`f, f_{r}, f_{rr}` in our ODE in r, which is technically 3 terms - since we count the 0th order derivative f as a "derivative." If this - doesn't make sense just know that n_derivs is the order the of the input - sumpy PDE + 1) - ## Description Takes as input a scalar pde represented as the type :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator`. Assumes that the scalar pde has coefficients that are polynomial in the input coordinates. Then assumes that the PDE is satisfied by a point-potential with radial symmetry and comes up with an ODE in the radial variable that the point-potential satisfies. + + :arg pde: must satisfy ``pde.eqs == 1``` + + :returns: a tuple ``(ode_in_r, var, n_derivs)``, where + - *ode_in_r* is the ODE satisfied by :math:`f`. + - var, an array representing the input coordinates + (maybe give an example?) + - n_derivs, the order of the original PDE + 1, i.e. the number of + derivatives of f that may be present (the reason this is called n_derivs + since if we have a second order PDE for example then we might see + :math:`f, f_{r}, f_{rr}` in our ODE in r, which is technically 3 terms + since we count the 0th order derivative f as a "derivative." If this + doesn't make sense just know that n_derivs is the order the of the input + sumpy PDE + 1) """ if len(pde.eqs) != 1: raise ValueError("PDE must be scalar") @@ -124,7 +129,7 @@ def compute_term(a, t): return ode_in_r, var, n_derivs -def generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: +def _generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: """ ## Input - *var*, a sympy vector of variables called [x0, x1, ...] @@ -173,7 +178,7 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: by substituting f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... using the chain rule. """ - subme = generate_nd_derivative_relations(var, n_derivs) + subme = _generate_nd_derivative_relations(var, n_derivs) ode_in_x = ode_in_r f_r_derivs = _make_sympy_vec("f_r", n_derivs) for i in range(n_derivs): @@ -181,7 +186,7 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: return ode_in_x -def compute_coefficients_of_poly_parametric(poly: sp.Poly, n_derivs: int, +def ode_in_x_to_coeff_array(poly: sp.Poly, n_derivs: int, var: np.ndarray) -> list: """ ## Input @@ -216,7 +221,7 @@ def tup(i, n=n_derivs): return coeffs -def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: +def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: """ ## Description We assume that we are given the expression :math:`x_0^p f^(m)(x_0)`. We then @@ -248,7 +253,7 @@ def auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: return result -def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.Expr: +def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: """ ## Input - *coeffs*, @@ -268,12 +273,12 @@ def get_recurrence_parametric_from_coeffs(coeffs: list, var: np.ndarray) -> sp.E #Inner is polynomial order of x_0 for m, _ in enumerate(coeffs): for p, _ in enumerate(coeffs[m]): - final_recurrence += coeffs[m][p] * auto_product_rule_single_term(p, + final_recurrence += coeffs[m][p] * _auto_product_rule_single_term(p, m, var) return final_recurrence -def get_recurrence_parametric_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: +def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: """ ## Input - *pde*, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` such that @@ -282,13 +287,13 @@ def get_recurrence_parametric_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: - final_recurrence, the recurrence relation for derivatives of our point-potential. """ - ode_in_r, var, n_derivs = get_pde_in_recurrence_form(pde) + ode_in_r, var, n_derivs = pde_to_ode_in_r(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() f_x_derivs = _make_sympy_vec("f_x", n_derivs) poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) - coeffs = compute_coefficients_of_poly_parametric(poly, n_derivs, var) - return get_recurrence_parametric_from_coeffs(coeffs, var) + coeffs = ode_in_x_to_coeff_array(poly, n_derivs, var) + return recurrence_from_coeff_array(coeffs, var) def test_recurrence_finder_laplace(): @@ -298,7 +303,7 @@ def test_recurrence_finder_laplace(): """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - r = get_recurrence_parametric_from_pde(laplace2d) + r = recurrence_from_pde(laplace2d) n = sp.symbols("n") s = sp.Function("s") @@ -326,7 +331,7 @@ def test_recurrence_finder_laplace_three_d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - r = get_recurrence_parametric_from_pde(laplace3d) + r = recurrence_from_pde(laplace3d) n = sp.symbols("n") s = sp.Function("s") @@ -355,7 +360,7 @@ def test_recurrence_finder_helmholtz_three_d(): #seems to be an order 5 recurrence relation w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w - r = get_recurrence_parametric_from_pde(helmholtz3d) + r = recurrence_from_pde(helmholtz3d) #We create that function that gives the derivatives of the point # potential for helmholtz From c0ffbf78fd48703a2c5bbafd2960b32ff8428844 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 15 Jul 2024 16:12:39 -0700 Subject: [PATCH 033/193] Documentation --- sumpy/recurrence.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index ba4fd4616..ac5136bf9 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -81,9 +81,8 @@ def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ :returns: a tuple ``(ode_in_r, var, n_derivs)``, where - *ode_in_r* is the ODE satisfied by :math:`f`. - - var, an array representing the input coordinates - (maybe give an example?) - - n_derivs, the order of the original PDE + 1, i.e. the number of + - *var*, represents the sympy vec [x0, x1, ...] corresponding to coordinates + - *n_derivs*, the order of the original PDE + 1, i.e. the number of derivatives of f that may be present (the reason this is called n_derivs since if we have a second order PDE for example then we might see :math:`f, f_{r}, f_{rr}` in our ODE in r, which is technically 3 terms From c13027c4c99623c1215114ee458e547a03436a99 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 17 Jul 2024 10:52:08 -0500 Subject: [PATCH 034/193] Code clarity fixes --- sumpy/recurrence.py | 62 +++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 36 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index ac5136bf9..e06000eea 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -58,7 +58,7 @@ import sympy as sp from pytools.obj_array import make_obj_array from sumpy.expansion.diff_op import ( - make_identity_diff_op, laplacian, LinearPDESystemOperator) + DerivativeIdentifier, make_identity_diff_op, laplacian, LinearPDESystemOperator) # similar to make_sym_vector in sumpy.symbolic, but returns an object array @@ -70,61 +70,51 @@ def _make_sympy_vec(name, n): def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ sp.Expr, np.ndarray, int ]: - """ - Takes as input a scalar pde represented as the type - :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator`. Assumes that the scalar - pde has coefficients that are polynomial in the input coordinates. Then assumes - that the PDE is satisfied by a point-potential with radial symmetry and comes up - with an ODE in the radial variable that the point-potential satisfies. + r""" + Returns an ODE satisfied by the radial derivatives of a function + :math:`f:\mathbb R^n \to \mathbb R` satisfying + :math:`f(\boldsymbol x)=f(|\boldsymbol x|_2)` and *pde*. - :arg pde: must satisfy ``pde.eqs == 1``` + :arg pde: must satisfy ``pde.eqs == 1``` and have polynomial coefficients. :returns: a tuple ``(ode_in_r, var, n_derivs)``, where - - *ode_in_r* is the ODE satisfied by :math:`f`. - - *var*, represents the sympy vec [x0, x1, ...] corresponding to coordinates - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present (the reason this is called n_derivs - since if we have a second order PDE for example then we might see - :math:`f, f_{r}, f_{rr}` in our ODE in r, which is technically 3 terms - since we count the 0th order derivative f as a "derivative." If this - doesn't make sense just know that n_derivs is the order the of the input - sumpy PDE + 1) + - *ode_in_r* with derivatives given as :class:`sympy.Derivative`. + - *var* is an object array of :class:`sympy.Symbol`, with successive + variables representing the Cartesian coordinate directions. """ if len(pde.eqs) != 1: raise ValueError("PDE must be scalar") + # FIXME remove n_derivs dim = pde.dim n_derivs = pde.order - assert (len(pde.eqs) == 1) - ops = len(pde.eqs[0]) - derivs = [] - coeffs = [] - for i in pde.eqs[0]: - derivs.append(i.mi) - coeffs.append(pde.eqs[0][i]) + pde_eqn, = pde.eqs + var = _make_sympy_vec("x", dim) r = sp.sqrt(sum(var**2)) - eps = sp.symbols("epsilon") rval = r + eps f = sp.Function("f") - # pylint: disable=not-callable - f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs+1)] - def compute_term(a, t): - term = a - for i in range(len(t)): - term = term.diff(var[i], t[i]) - return term + def apply_deriv_id(expr: sp.Expr, deriv_id: DerivativeIdentifier) -> sp.Expr: + for i, nderivs in enumerate(deriv_id.mi): + expr = expr.diff(var[i], nderivs) + return expr + + ode_in_r = sum( + coeff * apply_deriv_id(f(rval), deriv_id) + for deriv_id, coeff in pde_eqn.items() + ) - ode_in_r = 0 - for i in range(ops): - ode_in_r += coeffs[i] * compute_term(f(rval), derivs[i]) - n_derivs = len(f_derivs) f_r_derivs = _make_sympy_vec("f_r", n_derivs) + # pylint: disable-next=not-callable + f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs+1)] + n_derivs = len(f_derivs) + # FIXME: Is this bulletproof? I.e. can non-r derivatives survive? for i in range(n_derivs): ode_in_r = ode_in_r.subs(f_derivs[i], f_r_derivs[i]) + return ode_in_r, var, n_derivs From c7e2ac7de5abe35b1abc5c851f400043dd1030c6 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 17 Jul 2024 14:51:06 -0700 Subject: [PATCH 035/193] Replaced n_derivs with ode_order --- sumpy/recurrence.py | 69 ++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 36 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index e06000eea..4dfb38f73 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -77,17 +77,17 @@ def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ :arg pde: must satisfy ``pde.eqs == 1``` and have polynomial coefficients. - :returns: a tuple ``(ode_in_r, var, n_derivs)``, where + :returns: a tuple ``(ode_in_r, var, ode_order)``, where - *ode_in_r* with derivatives given as :class:`sympy.Derivative`. - *var* is an object array of :class:`sympy.Symbol`, with successive variables representing the Cartesian coordinate directions. + - *ode_order* the order of ODE that is returned """ if len(pde.eqs) != 1: raise ValueError("PDE must be scalar") - # FIXME remove n_derivs dim = pde.dim - n_derivs = pde.order + ode_order = pde.order pde_eqn, = pde.eqs var = _make_sympy_vec("x", dim) @@ -100,30 +100,28 @@ def apply_deriv_id(expr: sp.Expr, deriv_id: DerivativeIdentifier) -> sp.Expr: for i, nderivs in enumerate(deriv_id.mi): expr = expr.diff(var[i], nderivs) return expr - + # pylint: disable-next=not-callable ode_in_r = sum( coeff * apply_deriv_id(f(rval), deriv_id) for deriv_id, coeff in pde_eqn.items() ) - f_r_derivs = _make_sympy_vec("f_r", n_derivs) + f_r_derivs = _make_sympy_vec("f_r", ode_order+1) # pylint: disable-next=not-callable - f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs+1)] - n_derivs = len(f_derivs) + f_derivs = [sp.diff(f(rval), eps, i) for i in range(ode_order+1)] - # FIXME: Is this bulletproof? I.e. can non-r derivatives survive? - for i in range(n_derivs): + # PDE ORDER = ODE ORDER + for i in range(ode_order+1): ode_in_r = ode_in_r.subs(f_derivs[i], f_r_derivs[i]) - return ode_in_r, var, n_derivs + return ode_in_r, var, ode_order -def _generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: +def _generate_nd_derivative_relations(var: np.ndarray, ode_order: int) -> dict: """ ## Input - *var*, a sympy vector of variables called [x0, x1, ...] - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present + - *ode_order*, the order of the ODE that we will be translating ## Output - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... using the chain rule @@ -133,23 +131,23 @@ def _generate_nd_derivative_relations(var: np.ndarray, n_derivs: int) -> dict: Using the chain rule outputs a vector that tells us how to write f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... """ - f_r_derivs = _make_sympy_vec("f_r", n_derivs) - f_x_derivs = _make_sympy_vec("f_x", n_derivs) + f_r_derivs = _make_sympy_vec("f_r", ode_order+1) + f_x_derivs = _make_sympy_vec("f_x", ode_order+1) f = sp.Function("f") eps = sp.symbols("epsilon") rval = sp.sqrt(sum(var**2)) + eps # pylint: disable=not-callable - f_derivs_x = [sp.diff(f(rval), var[0], i) for i in range(n_derivs)] - f_derivs = [sp.diff(f(rval), eps, i) for i in range(n_derivs)] + f_derivs_x = [sp.diff(f(rval), var[0], i) for i in range(ode_order+1)] + f_derivs = [sp.diff(f(rval), eps, i) for i in range(ode_order+1)] # pylint: disable=not-callable for i in range(len(f_derivs_x)): for j in range(len(f_derivs)): f_derivs_x[i] = f_derivs_x[i].subs(f_derivs[j], f_r_derivs[j]) - system = [f_x_derivs[i] - f_derivs_x[i] for i in range(n_derivs)] + system = [f_x_derivs[i] - f_derivs_x[i] for i in range(ode_order+1)] return sp.solve(system, *f_r_derivs, dict=True)[0] -def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: +def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr: """ ## Input - *ode_in_r*, a linear combination of f, f_r, f_{rr}, ... @@ -157,8 +155,7 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: with coefficients that are polynomials in var[0], var[1], ... divided by some power of var[0] - *var*, array of sympy variables [x_0, x_1, ...] - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present + - *ode_order*, the order of the input ODE ## Output - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as rational functions in var[0], var[1], ... @@ -167,23 +164,22 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, n_derivs: int) -> sp.Expr: by substituting f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... using the chain rule. """ - subme = _generate_nd_derivative_relations(var, n_derivs) + subme = _generate_nd_derivative_relations(var, ode_order+1) ode_in_x = ode_in_r - f_r_derivs = _make_sympy_vec("f_r", n_derivs) - for i in range(n_derivs): + f_r_derivs = _make_sympy_vec("f_r", ode_order+1) + for i in range(ode_order+1): ode_in_x = ode_in_x.subs(f_r_derivs[i], subme[f_r_derivs[i]]) return ode_in_x -def ode_in_x_to_coeff_array(poly: sp.Poly, n_derivs: int, +def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, var: np.ndarray) -> list: """ ## Input - *poly*, the original ODE for our point-potential as a polynomial in f_{x0}, f_{x1}, f_{x2}, etc. with polynomial coefficients in var[0], var[1], ... - - *n_derivs*, the order of the original PDE + 1, i.e. the number of - derivatives of f that may be present + - *ode_order*, the order of input ODE - *var*, array of sympy variables [x_0, x_1, ...] ## Output - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as @@ -193,7 +189,7 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, n_derivs: int, by substituting f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... using the chain rule. """ - def tup(i, n=n_derivs): + def tup(i, n=ode_order+1): a = [] for j in range(n): if j != i: @@ -203,7 +199,7 @@ def tup(i, n=n_derivs): return tuple(a) coeffs = [] - for deriv_ind in range(n_derivs): + for deriv_ind in range(ode_order+1): coeffs.append(sp.Poly(poly.coeff_monomial(tup(deriv_ind)), var[0]).all_coeffs()[::-1]) @@ -276,12 +272,12 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: - final_recurrence, the recurrence relation for derivatives of our point-potential. """ - ode_in_r, var, n_derivs = pde_to_ode_in_r(pde) - ode_in_x = ode_in_r_to_x(ode_in_r, var, n_derivs).simplify() - ode_in_x_cleared = (ode_in_x * var[0]**n_derivs).simplify() - f_x_derivs = _make_sympy_vec("f_x", n_derivs) + ode_in_r, var, ode_order = pde_to_ode_in_r(pde) + ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() + ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() + f_x_derivs = _make_sympy_vec("f_x", ode_order+1) poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) - coeffs = ode_in_x_to_coeff_array(poly, n_derivs, var) + coeffs = ode_in_x_to_coeff_array(poly, ode_order, var) return recurrence_from_coeff_array(coeffs, var) @@ -390,6 +386,7 @@ def deriv_helmholtz_three_d(i, s_loc): print(err) assert err <= 1e-10 - - +test_recurrence_finder_laplace() +test_recurrence_finder_laplace_three_d() +test_recurrence_finder_helmholtz_three_d() From 99a658fcf24f8187839ee9abd22dd161efa36fa9 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 17 Jul 2024 15:31:38 -0700 Subject: [PATCH 036/193] Update documentation for sphinx --- sumpy/recurrence.py | 54 +++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 4dfb38f73..d8308e464 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -75,13 +75,13 @@ def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ :math:`f:\mathbb R^n \to \mathbb R` satisfying :math:`f(\boldsymbol x)=f(|\boldsymbol x|_2)` and *pde*. - :arg pde: must satisfy ``pde.eqs == 1``` and have polynomial coefficients. + :arg pde: must satisfy ``pde.eqs == 1`` and have polynomial coefficients. :returns: a tuple ``(ode_in_r, var, ode_order)``, where - - *ode_in_r* with derivatives given as :class:`sympy.Derivative`. - - *var* is an object array of :class:`sympy.Symbol`, with successive - variables representing the Cartesian coordinate directions. - - *ode_order* the order of ODE that is returned + - *ode_in_r* with derivatives given as :class:`sympy.Derivative`. + - *var* is an object array of :class:`sympy.Symbol`, with successive variables + representing the Cartesian coordinate directions. + - *ode_order* the order of ODE that is returned """ if len(pde.eqs) != 1: raise ValueError("PDE must be scalar") @@ -118,18 +118,13 @@ def apply_deriv_id(expr: sp.Expr, deriv_id: DerivativeIdentifier) -> sp.Expr: def _generate_nd_derivative_relations(var: np.ndarray, ode_order: int) -> dict: - """ - ## Input - - *var*, a sympy vector of variables called [x0, x1, ...] - - *ode_order*, the order of the ODE that we will be translating - ## Output - - a vector that gives [f, f_r, f_{rr}, ...] in terms of f, f_x, f_{xx}, ... - using the chain rule - (f, f_x, f_{xx}, ... in code is represented as f_{x0}, f_{x1}, f_{x2} and - f, f_r, f_{rr}, ... in code is represented as f_{r0}, f_{r1}, f_{r2}) - ## Description - Using the chain rule outputs a vector that tells us how to - write f, f_r, f_{rr}, ... as a linear combination of f, f_x, f_{xx}, ... + r""" + Using the chain rule outputs a vector that gives in each component respectively + :math:`[f(r), f'(r), \dots, f^{(ode_order)}(r)]` as a linear combination of + :math:`[f(x), f'(x), \dots, f^{(ode_order)}(x)]` + + :arg var: array of sympy variables math:`[x_0, x_1, \dots]` + :arg ode_order: the order of the ODE that we will be translating """ f_r_derivs = _make_sympy_vec("f_r", ode_order+1) f_x_derivs = _make_sympy_vec("f_x", ode_order+1) @@ -148,21 +143,18 @@ def _generate_nd_derivative_relations(var: np.ndarray, ode_order: int) -> dict: def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr: - """ - ## Input - - *ode_in_r*, a linear combination of f, f_r, f_{rr}, ... - (in code represented as f_{r0}, f_{r1}, f_{r2}) - with coefficients that are polynomials in var[0], var[1], ... - divided by some power of var[0] - - *var*, array of sympy variables [x_0, x_1, ...] - - *ode_order*, the order of the input ODE - ## Output - - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as - rational functions in var[0], var[1], ... - ## Description + r""" Translates an ode in the variable r into an ode in the variable x - by substituting f, f_r, f_{rr}, ... as a linear combination of - f, f_x, f_{xx}, ... using the chain rule. + by replcaing the terms :math:`f, f_r, f_{rr}, \dots` as a linear combinations of + :math:`f, f_x, f_{xx}, \dots` using the chain rule. + + :arg ode_in_r: a linear combination of :math:`f, f_r, f_{rr}, \dots` represented + by the sympy variables :math:`f_{r0}, f_{r1}, f_{r1}, f_{r2}, \dots` + :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` + :arg ode_order: the order of the input ODE + + :returns: *ode_in_x* a linear combination of :math:`f, f_x, f_{xx}, \dots` with + coefficients as rational functions in :math:`x_0, x_1, \dots` """ subme = _generate_nd_derivative_relations(var, ode_order+1) ode_in_x = ode_in_r From a6b03afd581bc378fc789677ae93b535854763c1 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 17 Jul 2024 20:53:21 -0700 Subject: [PATCH 037/193] Format documentation for ode_in_x_to_coeff_array --- sumpy/recurrence.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index d8308e464..52477c00c 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -166,20 +166,18 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, var: np.ndarray) -> list: - """ - ## Input - - *poly*, the original ODE for our point-potential as a polynomial - in f_{x0}, f_{x1}, f_{x2}, etc. with polynomial coefficients - in var[0], var[1], ... - - *ode_order*, the order of input ODE - - *var*, array of sympy variables [x_0, x_1, ...] - ## Output - - ode_in_x, a linear combination of f, f_x, f_{xx}, ... with coefficients as - rational functions in var[0], var[1], ... - ## Description - Translates an ode in the variable r into an ode in the variable x - by substituting f, f_r, f_{rr}, ... as a linear combination of - f, f_x, f_{xx}, ... using the chain rule. + r""" + Organizes the coefficients of an ODE in the :math:`x_0` variable into a 2D array. + + :arg poly: :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) \partial_{x_0}^0 f + + (b_{10} x_0^0 + b_{11} x_0^1 +\cdots) \partial_x^1 f` + :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` + :arg ode_order: the order of the input ODE we return a sequence + + :returns: *coeffs* a sequence of of sequences, with the outer sequence iterating + over derivative orders, and each inner sequence iterating over powers of :math:`x_0`, + so that, in terms of the above form, coeffs is + :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` """ def tup(i, n=ode_order+1): a = [] From 66ce1601085e3f3ba02888227d4209bb4dd2e5cd Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 17 Jul 2024 21:12:20 -0700 Subject: [PATCH 038/193] Re-request tmrw mrning --- sumpy/recurrence.py | 75 +++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 44 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 52477c00c..68969ba74 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -77,10 +77,10 @@ def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ :arg pde: must satisfy ``pde.eqs == 1`` and have polynomial coefficients. - :returns: a tuple ``(ode_in_r, var, ode_order)``, where - - *ode_in_r* with derivatives given as :class:`sympy.Derivative`. + :returns: a tuple ``(ode_in_r, var, ode_order)``, where + - *ode_in_r* with derivatives given as :class:`sympy.Derivative` - *var* is an object array of :class:`sympy.Symbol`, with successive variables - representing the Cartesian coordinate directions. + representing the Cartesian coordinate directions. - *ode_order* the order of ODE that is returned """ if len(pde.eqs) != 1: @@ -149,12 +149,13 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr :math:`f, f_x, f_{xx}, \dots` using the chain rule. :arg ode_in_r: a linear combination of :math:`f, f_r, f_{rr}, \dots` represented - by the sympy variables :math:`f_{r0}, f_{r1}, f_{r1}, f_{r2}, \dots` + by the sympy variables :math:`f_{r0}, f_{r1}, f_{r2}, \dots` :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` :arg ode_order: the order of the input ODE - :returns: *ode_in_x* a linear combination of :math:`f, f_x, f_{xx}, \dots` with - coefficients as rational functions in :math:`x_0, x_1, \dots` + :returns: *ode_in_x* a linear combination of :math:`f, f_x, f_{xx}, \dots` + represented by the sympy variables :math:`f_{x0}, f_{x1}, f_{x2}, \dots` + with coefficients as rational functions in :math:`x_0, x_1, \dots` """ subme = _generate_nd_derivative_relations(var, ode_order+1) ode_in_x = ode_in_r @@ -169,7 +170,9 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, r""" Organizes the coefficients of an ODE in the :math:`x_0` variable into a 2D array. - :arg poly: :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) \partial_{x_0}^0 f + + :arg poly: a sympy polynomial in + :math:`\partial_{x_0}^0 f, \partial_{x_0}^1 f,\cdots` of the form + :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) \partial_{x_0}^0 f + (b_{10} x_0^0 + b_{11} x_0^1 +\cdots) \partial_x^1 f` :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` :arg ode_order: the order of the input ODE we return a sequence @@ -197,23 +200,15 @@ def tup(i, n=ode_order+1): def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: - """ - ## Description + r""" We assume that we are given the expression :math:`x_0^p f^(m)(x_0)`. We then - output the nth order derivative of the expression where n is a symbolic variable. + output the nth order derivative of the expression where :math:`n` is a symbolic + variable. We let :math:`s(i)` represent the ith order derivative of f when we output the final result. - ## Input - - *p*, see description - - *m*, see description - - *var*, array of sympy variables [x_0, x_1, ...] - ## Output - - A sympy expression is output corresponding to the nth order derivative of the - input expression. - We let :math:`s(i)` represent the ith order derivative of f when - we output the final result. We let n represent a symbolic variable - corresponding to how many derivatives of the original expression were - taken. + :arg p: see description + :arg m: see description + :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ n = sp.symbols("n") s = sp.Function("s") @@ -229,19 +224,15 @@ def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: - """ - ## Input - - *coeffs*, - Consider an ODE obeyed by a function f that can be expressed in the following - form: :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \\cdots) \\partial_{x_0}^0 f + - (b_{10} x_0^0 + b_{11} x_0^1 +\\cdots) \\partial_x^1 f`. coeffs is a sequence - of sequences, with the outer sequence iterating over derivative orders, and - each inner sequence iterating over powers of :math:`x_0`, so that, in terms of - the above form, coeffs is [[b_00, b_01, ...], [b_10, b_11, ...], ...] - - *var*, array of sympy variables [x_0, x_1, ...] - ## Output - - final_recurrence, the recurrence relation for derivatives of our - point-potential. + r""" + A function that takes in as input an organized 2D coefficient array (see above) + and outputs a recurrence relation. + + :arg coeffs: a sequence of of sequences, with the outer sequence iterating + over derivative orders, and each inner sequence iterating over powers of + :math:`x_0`, so that, in terms of the above form, coeffs is + :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` + :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ final_recurrence = 0 #Outer loop is derivative direction @@ -254,13 +245,12 @@ def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: - """ - ## Input - - *pde*, a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` such that - pde.eqs == 1 - ## Output - - final_recurrence, the recurrence relation for derivatives of our - point-potential. + r""" + A function that takes in as input a sympy PDE and outputs a recurrence relation. + + :arg pde: a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` + that must satisfy ``pde.eqs == 1`` and have polynomial coefficients. + :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ ode_in_r, var, ode_order = pde_to_ode_in_r(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() @@ -273,7 +263,6 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: def test_recurrence_finder_laplace(): """ - ## Description Tests our recurrence relation generator for Lapalace 2D. """ w = make_identity_diff_op(2) @@ -301,7 +290,6 @@ def deriv_laplace(i): def test_recurrence_finder_laplace_three_d(): """ - ## Description Tests our recurrence relation generator for Laplace 3D. """ w = make_identity_diff_op(3) @@ -328,7 +316,6 @@ def deriv_laplace_three_d(i): def test_recurrence_finder_helmholtz_three_d(): """ - ## Description Tests our recurrence relation generator for Helmhotlz 3D. """ #We are creating the recurrence relation for helmholtz3d which From 471342b2f923babddfbe5d5a944c9fd0642ca8c9 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 18 Jul 2024 17:20:05 -0700 Subject: [PATCH 039/193] Flake 8/pylint --- sumpy/recurrence.py | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 68969ba74..dd464f28f 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -77,7 +77,7 @@ def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ :arg pde: must satisfy ``pde.eqs == 1`` and have polynomial coefficients. - :returns: a tuple ``(ode_in_r, var, ode_order)``, where + :returns: a tuple ``(ode_in_r, var, ode_order)``, where - *ode_in_r* with derivatives given as :class:`sympy.Derivative` - *var* is an object array of :class:`sympy.Symbol`, with successive variables representing the Cartesian coordinate directions. @@ -100,8 +100,9 @@ def apply_deriv_id(expr: sp.Expr, deriv_id: DerivativeIdentifier) -> sp.Expr: for i, nderivs in enumerate(deriv_id.mi): expr = expr.diff(var[i], nderivs) return expr - # pylint: disable-next=not-callable + ode_in_r = sum( + # pylint: disable-next=not-callable coeff * apply_deriv_id(f(rval), deriv_id) for deriv_id, coeff in pde_eqn.items() ) @@ -153,8 +154,8 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` :arg ode_order: the order of the input ODE - :returns: *ode_in_x* a linear combination of :math:`f, f_x, f_{xx}, \dots` - represented by the sympy variables :math:`f_{x0}, f_{x1}, f_{x2}, \dots` + :returns: *ode_in_x* a linear combination of :math:`f, f_x, f_{xx}, \dots` + represented by the sympy variables :math:`f_{x0}, f_{x1}, f_{x2}, \dots` with coefficients as rational functions in :math:`x_0, x_1, \dots` """ subme = _generate_nd_derivative_relations(var, ode_order+1) @@ -169,17 +170,16 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, var: np.ndarray) -> list: r""" Organizes the coefficients of an ODE in the :math:`x_0` variable into a 2D array. - - :arg poly: a sympy polynomial in + :arg poly: a sympy polynomial in :math:`\partial_{x_0}^0 f, \partial_{x_0}^1 f,\cdots` of the form :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) \partial_{x_0}^0 f + (b_{10} x_0^0 + b_{11} x_0^1 +\cdots) \partial_x^1 f` :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` :arg ode_order: the order of the input ODE we return a sequence - :returns: *coeffs* a sequence of of sequences, with the outer sequence iterating - over derivative orders, and each inner sequence iterating over powers of :math:`x_0`, - so that, in terms of the above form, coeffs is + :returns: *coeffs* a sequence of of sequences, with the outer sequence iterating + over derivative orders, and each inner sequence iterating over powers of + :math:`x_0`, so that, in terms of the above form, coeffs is :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` """ def tup(i, n=ode_order+1): @@ -248,7 +248,7 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: r""" A function that takes in as input a sympy PDE and outputs a recurrence relation. - :arg pde: a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` + :arg pde: a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` that must satisfy ``pde.eqs == 1`` and have polynomial coefficients. :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ @@ -318,16 +318,12 @@ def test_recurrence_finder_helmholtz_three_d(): """ Tests our recurrence relation generator for Helmhotlz 3D. """ - #We are creating the recurrence relation for helmholtz3d which + #We are creating the recurrence relation for helmholtz3d which #seems to be an order 5 recurrence relation w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w r = recurrence_from_pde(helmholtz3d) - #We create that function that gives the derivatives of the point - # potential for helmholtz - #Remember! Our point-source was placed at the origin and we - # were performing a LT expansion at x_0 def deriv_helmholtz_three_d(i, s_loc): s_x = s_loc[0] s_y = s_loc[1] @@ -337,7 +333,6 @@ def deriv_helmholtz_three_d(i, s_loc): ) / (sp.sqrt(x**2 + y**2 + z**2)) return sp.diff(true_f, x, i).subs(x, s_x).subs( y, s_y).subs(z, s_z) - #Create relevant symbols var = _make_sympy_vec("x", 3) n = sp.symbols("n") @@ -362,8 +357,3 @@ def deriv_helmholtz_three_d(i, s_loc): err = abs(abs(r_sub).evalf()) print(err) assert err <= 1e-10 - -test_recurrence_finder_laplace() -test_recurrence_finder_laplace_three_d() -test_recurrence_finder_helmholtz_three_d() - From ffff8658e6450077731b1f9da2d7733aa46718ec Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 21 Jul 2024 19:12:05 -0700 Subject: [PATCH 040/193] Typos and clarification to docs --- sumpy/recurrence.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index dd464f28f..75c060b5c 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -1,9 +1,9 @@ r""" With the functionality in this module, we aim to compute a recurrence for one-dimensional derivatives of functions :math:`f:\mathbb R^n \to \mathbb R` -for functions :math:`f` satisfying two assumptions: +for functions satisfying two assumptions: -- :math:`f` satisfies a PDE is linear and has coefficients polynomial +- :math:`f` satisfies a PDE that is linear and has coefficients polynomial in the coordinates. - :math:`f` only depends on the radius :math:`r`, i.e. :math:`f(\boldsymbol x)=f(|\boldsymbol x|_2)`. @@ -146,7 +146,7 @@ def _generate_nd_derivative_relations(var: np.ndarray, ode_order: int) -> dict: def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr: r""" Translates an ode in the variable r into an ode in the variable x - by replcaing the terms :math:`f, f_r, f_{rr}, \dots` as a linear combinations of + by replacing the terms :math:`f, f_r, f_{rr}, \dots` as a linear combinations of :math:`f, f_x, f_{xx}, \dots` using the chain rule. :arg ode_in_r: a linear combination of :math:`f, f_r, f_{rr}, \dots` represented @@ -170,10 +170,12 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, var: np.ndarray) -> list: r""" Organizes the coefficients of an ODE in the :math:`x_0` variable into a 2D array. + :arg poly: a sympy polynomial in - :math:`\partial_{x_0}^0 f, \partial_{x_0}^1 f,\cdots` of the form - :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) \partial_{x_0}^0 f + - (b_{10} x_0^0 + b_{11} x_0^1 +\cdots) \partial_x^1 f` + :math:`\partial_{x_0}^0 f, \partial_{x_0}^1 f,\cdots` of the form + :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) \partial_{x_0}^0 f + + (b_{10} x_0^0 + b_{11} x_0^1 +\cdots) \partial_x^1 f` + :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` :arg ode_order: the order of the input ODE we return a sequence @@ -228,10 +230,8 @@ def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: A function that takes in as input an organized 2D coefficient array (see above) and outputs a recurrence relation. - :arg coeffs: a sequence of of sequences, with the outer sequence iterating - over derivative orders, and each inner sequence iterating over powers of - :math:`x_0`, so that, in terms of the above form, coeffs is - :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` + :arg coeffs: a sequence of of sequences, described in + :func:`ode_in_x_to_coeff_array` :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ final_recurrence = 0 @@ -249,7 +249,8 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: A function that takes in as input a sympy PDE and outputs a recurrence relation. :arg pde: a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` - that must satisfy ``pde.eqs == 1`` and have polynomial coefficients. + that must satisfy ``pde.eqs == 1`` and have polynomial coefficients + in the coordinates. :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ ode_in_r, var, ode_order = pde_to_ode_in_r(pde) From 4e09ed09b7cb93a1e4cebf06a92a1c3b8f314619 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 22 Jul 2024 16:04:33 -0500 Subject: [PATCH 041/193] Review: code quality, denominator clearing --- sumpy/recurrence.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 75c060b5c..9ae8eaa9e 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -184,21 +184,12 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, :math:`x_0`, so that, in terms of the above form, coeffs is :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` """ - def tup(i, n=ode_order+1): - a = [] - for j in range(n): - if j != i: - a.append(0) - else: - a.append(1) - return tuple(a) + def kronecker(i, n=ode_order+1): + return tuple(1 if i == j else 0 for j in range(n)) - coeffs = [] - for deriv_ind in range(ode_order+1): - coeffs.append(sp.Poly(poly.coeff_monomial(tup(deriv_ind)), - var[0]).all_coeffs()[::-1]) - - return coeffs + return [ + sp.Poly(poly.coeff_monomial(kronecker(deriv_ind)), var[0]).all_coeffs()[::-1] + for deriv_ind in range(ode_order+1) def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: @@ -256,6 +247,9 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: ode_in_r, var, ode_order = pde_to_ode_in_r(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() + + assert is_actually_cleared() + f_x_derivs = _make_sympy_vec("f_x", ode_order+1) poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) coeffs = ode_in_x_to_coeff_array(poly, ode_order, var) From bfa8372c9ae75dba401cbe82dcc2244deb7300aa Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 23 Jul 2024 19:57:27 -0700 Subject: [PATCH 042/193] Check if ode_in_x is truly cleared --- sumpy/recurrence.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 9ae8eaa9e..f422c09d5 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -187,9 +187,8 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, def kronecker(i, n=ode_order+1): return tuple(1 if i == j else 0 for j in range(n)) - return [ - sp.Poly(poly.coeff_monomial(kronecker(deriv_ind)), var[0]).all_coeffs()[::-1] - for deriv_ind in range(ode_order+1) + return [sp.Poly(poly.coeff_monomial(kronecker(deriv_ind)), + var[0]).all_coeffs()[::-1] for deriv_ind in range(ode_order+1)] def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: @@ -247,9 +246,8 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: ode_in_r, var, ode_order = pde_to_ode_in_r(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() - - assert is_actually_cleared() - + #ode_in_x_cleared shouldn't have rational function coefficients in the coord. + assert sp.together(ode_in_x_cleared) == ode_in_x_cleared f_x_derivs = _make_sympy_vec("f_x", ode_order+1) poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) coeffs = ode_in_x_to_coeff_array(poly, ode_order, var) From e363248e23f8da05e1360b7eecc62b7e52be1b95 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 29 Jul 2024 16:05:49 -0500 Subject: [PATCH 043/193] Hacking during meeting --- sumpy/recurrence.py | 82 +++++++++++++++++++++++++++++---------------- 1 file changed, 53 insertions(+), 29 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index f422c09d5..5bd5a9a3b 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -28,6 +28,8 @@ from __future__ import annotations +from typing import TypeVar + __copyright__ = """ Copyright (C) 2024 Hirish Chandrasekaran @@ -54,11 +56,18 @@ THE SOFTWARE. """ import math + import numpy as np import sympy as sp + from pytools.obj_array import make_obj_array + from sumpy.expansion.diff_op import ( - DerivativeIdentifier, make_identity_diff_op, laplacian, LinearPDESystemOperator) + DerivativeIdentifier, + LinearPDESystemOperator, + laplacian, + make_identity_diff_op, +) # similar to make_sym_vector in sumpy.symbolic, but returns an object array @@ -166,8 +175,11 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr return ode_in_x +ODECoefficients = list[list[sp.Expr]] + + def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, - var: np.ndarray) -> list: + var: np.ndarray) -> ODECoefficients: r""" Organizes the coefficients of an ODE in the :math:`x_0` variable into a 2D array. @@ -184,11 +196,26 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, :math:`x_0`, so that, in terms of the above form, coeffs is :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` """ - def kronecker(i, n=ode_order+1): - return tuple(1 if i == j else 0 for j in range(n)) + return [ + # recast ODE coefficient obtained below as polynomial in x0 + sp.Poly( + # get coefficient of deriv_ind'th derivative + poly.coeff_monomial(poly.gens[deriv_ind]), + + var[0]) + # get poly coefficients in /ascending/ order + .all_coeffs()[::-1] + for deriv_ind in range(ode_order+1)] + - return [sp.Poly(poly.coeff_monomial(kronecker(deriv_ind)), - var[0]).all_coeffs()[::-1] for deriv_ind in range(ode_order+1)] +NumberT = TypeVar("NumberT", int, float, complex) + + +def _falling_factorial(arg: NumberT, num_terms: int) -> NumberT: + result = 1 + for i in range(num_terms): + result = result * (arg - i) + return result def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: @@ -198,21 +225,15 @@ def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: variable. We let :math:`s(i)` represent the ith order derivative of f when we output the final result. - :arg p: see description - :arg m: see description :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ n = sp.symbols("n") s = sp.Function("s") - result = 0 - for i in range(p+1): - temp = 1 - for j in range(i): - temp *= (n - j) - # pylint: disable=not-callable - temp *= math.comb(p, i) * s(n-i+m) * var[0]**(p-i) - result += temp - return result + return sum( + _falling_factorial(n, i) + * math.comb(p, i) * s(n-i+m) * var[0]**(p-i) + for i in range(p+1) + ) def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: @@ -225,8 +246,8 @@ def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ final_recurrence = 0 - #Outer loop is derivative direction - #Inner is polynomial order of x_0 + # Outer loop is derivative direction + # Inner is polynomial order of x_0 for m, _ in enumerate(coeffs): for p, _ in enumerate(coeffs[m]): final_recurrence += coeffs[m][p] * _auto_product_rule_single_term(p, @@ -246,7 +267,7 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: ode_in_r, var, ode_order = pde_to_ode_in_r(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() - #ode_in_x_cleared shouldn't have rational function coefficients in the coord. + # ode_in_x_cleared shouldn't have rational function coefficients in the coord. assert sp.together(ode_in_x_cleared) == ode_in_x_cleared f_x_derivs = _make_sympy_vec("f_x", ode_order+1) poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) @@ -311,8 +332,8 @@ def test_recurrence_finder_helmholtz_three_d(): """ Tests our recurrence relation generator for Helmhotlz 3D. """ - #We are creating the recurrence relation for helmholtz3d which - #seems to be an order 5 recurrence relation + # We are creating the recurrence relation for helmholtz3d which + # seems to be an order 5 recurrence relation w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w r = recurrence_from_pde(helmholtz3d) @@ -326,24 +347,27 @@ def deriv_helmholtz_three_d(i, s_loc): ) / (sp.sqrt(x**2 + y**2 + z**2)) return sp.diff(true_f, x, i).subs(x, s_x).subs( y, s_y).subs(z, s_z) - #Create relevant symbols + # Create relevant symbols var = _make_sympy_vec("x", 3) n = sp.symbols("n") s = sp.Function("s") - #Create random source location - s_loc = np.random.rand(3) + rng = np.random.default_rng() + + # Create random source location + s_loc = rng.uniform(size=3) - #Create random order to check - d = np.random.randint(0, 5) + # Create random order to check + from random import randrange + d = randrange(0, 5) - #Substitute random location into recurrence relation and value of n = d + # Substitute random location into recurrence relation and value of n = d r_loc = r.subs(var[0], s_loc[0]) r_loc = r_loc.subs(var[1], s_loc[1]) r_loc = r_loc.subs(var[2], s_loc[2]) r_sub = r_loc.subs(n, d) - #Checking that the recurrence holds to some machine epsilon + # Checking that the recurrence holds to some machine epsilon for i in range(max(d-3, 0), d+3): # pylint: disable=not-callable r_sub = r_sub.subs(s(i), deriv_helmholtz_three_d(i, s_loc)) From 1f305672379f66cd33fc6ec2a1a6ba4a54461257 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 6 Aug 2024 00:54:30 -0700 Subject: [PATCH 044/193] Flake8 --- sumpy/recurrence.py | 65 ++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 5bd5a9a3b..81836c42c 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -11,7 +11,8 @@ This process proceeds in multiple steps: - Convert from the PDE to an ODE in :math:`r`, using :func:`pde_to_ode_in_r`. -- Convert from an ODE in :math:`r` to one in :math:`x`, using :func:`ode_in_r_to_x`. +- Convert from an ODE in :math:`r` to one in :math:`x`, +using :func:`ode_in_r_to_x`. - Sort general-form ODE in :math:`x` into a coefficient array, using :func:`ode_in_x_to_coeff_array`. - Finally, get an expression for the recurrence, using @@ -88,7 +89,8 @@ def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ :returns: a tuple ``(ode_in_r, var, ode_order)``, where - *ode_in_r* with derivatives given as :class:`sympy.Derivative` - - *var* is an object array of :class:`sympy.Symbol`, with successive variables + - *var* is an object array of :class:`sympy.Symbol`, with successive + variables representing the Cartesian coordinate directions. - *ode_order* the order of ODE that is returned """ @@ -105,7 +107,8 @@ def pde_to_ode_in_r(pde: LinearPDESystemOperator) -> tuple[ rval = r + eps f = sp.Function("f") - def apply_deriv_id(expr: sp.Expr, deriv_id: DerivativeIdentifier) -> sp.Expr: + def apply_deriv_id(expr: sp.Expr, + deriv_id: DerivativeIdentifier) -> sp.Expr: for i, nderivs in enumerate(deriv_id.mi): expr = expr.diff(var[i], nderivs) return expr @@ -129,7 +132,8 @@ def apply_deriv_id(expr: sp.Expr, deriv_id: DerivativeIdentifier) -> sp.Expr: def _generate_nd_derivative_relations(var: np.ndarray, ode_order: int) -> dict: r""" - Using the chain rule outputs a vector that gives in each component respectively + Using the chain rule outputs a vector that gives in each component + respectively :math:`[f(r), f'(r), \dots, f^{(ode_order)}(r)]` as a linear combination of :math:`[f(x), f'(x), \dots, f^{(ode_order)}(x)]` @@ -152,20 +156,23 @@ def _generate_nd_derivative_relations(var: np.ndarray, ode_order: int) -> dict: return sp.solve(system, *f_r_derivs, dict=True)[0] -def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr: +def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, + ode_order: int) -> sp.Expr: r""" Translates an ode in the variable r into an ode in the variable x - by replacing the terms :math:`f, f_r, f_{rr}, \dots` as a linear combinations of + by replacing the terms :math:`f, f_r, f_{rr}, \dots` as a linear + combinations of :math:`f, f_x, f_{xx}, \dots` using the chain rule. - :arg ode_in_r: a linear combination of :math:`f, f_r, f_{rr}, \dots` represented - by the sympy variables :math:`f_{r0}, f_{r1}, f_{r2}, \dots` + :arg ode_in_r: a linear combination of :math:`f, f_r, f_{rr}, \dots` + represented by the sympy variables :math:`f_{r0}, f_{r1}, f_{r2}, \dots` :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` :arg ode_order: the order of the input ODE :returns: *ode_in_x* a linear combination of :math:`f, f_x, f_{xx}, \dots` - represented by the sympy variables :math:`f_{x0}, f_{x1}, f_{x2}, \dots` - with coefficients as rational functions in :math:`x_0, x_1, \dots` + represented by the sympy variables :math:`f_{x0}, f_{x1}, f_{x2}, + \dots` with coefficients as rational functions in + :math:`x_0, x_1, \dots` """ subme = _generate_nd_derivative_relations(var, ode_order+1) ode_in_x = ode_in_r @@ -178,10 +185,11 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ode_order: int) -> sp.Expr ODECoefficients = list[list[sp.Expr]] -def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, - var: np.ndarray) -> ODECoefficients: +def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, var: + np.ndarray) -> ODECoefficients: r""" - Organizes the coefficients of an ODE in the :math:`x_0` variable into a 2D array. + Organizes the coefficients of an ODE in the :math:`x_0` variable into a + 2D array. :arg poly: a sympy polynomial in :math:`\partial_{x_0}^0 f, \partial_{x_0}^1 f,\cdots` of the form @@ -191,10 +199,10 @@ def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` :arg ode_order: the order of the input ODE we return a sequence - :returns: *coeffs* a sequence of of sequences, with the outer sequence iterating - over derivative orders, and each inner sequence iterating over powers of - :math:`x_0`, so that, in terms of the above form, coeffs is - :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` + :returns: *coeffs* a sequence of of sequences, with the outer sequence + iterating over derivative orders, and each inner sequence iterating + over powers of :math:`x_0`, so that, in terms of the above form, + coeffs is :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` """ return [ # recast ODE coefficient obtained below as polynomial in x0 @@ -220,16 +228,18 @@ def _falling_factorial(arg: NumberT, num_terms: int) -> NumberT: def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: r""" - We assume that we are given the expression :math:`x_0^p f^(m)(x_0)`. We then - output the nth order derivative of the expression where :math:`n` is a symbolic - variable. + We assume that we are given the expression :math:`x_0^p f^(m)(x_0)`. We + then output the nth order derivative of the expression where :math:`n` is + a symbolic variable. We let :math:`s(i)` represent the ith order derivative of f when we output the final result. :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` """ n = sp.symbols("n") s = sp.Function("s") + return sum( + # pylint: disable=not-callable _falling_factorial(n, i) * math.comb(p, i) * s(n-i+m) * var[0]**(p-i) for i in range(p+1) @@ -238,8 +248,8 @@ def _auto_product_rule_single_term(p: int, m: int, var: np.ndarray) -> sp.Expr: def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: r""" - A function that takes in as input an organized 2D coefficient array (see above) - and outputs a recurrence relation. + A function that takes in as input an organized 2D coefficient array (see + above) and outputs a recurrence relation. :arg coeffs: a sequence of of sequences, described in :func:`ode_in_x_to_coeff_array` @@ -250,14 +260,15 @@ def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: # Inner is polynomial order of x_0 for m, _ in enumerate(coeffs): for p, _ in enumerate(coeffs[m]): - final_recurrence += coeffs[m][p] * _auto_product_rule_single_term(p, - m, var) + final_recurrence += coeffs[m][p] * _auto_product_rule_single_term( + p, m, var) return final_recurrence def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: r""" - A function that takes in as input a sympy PDE and outputs a recurrence relation. + A function that takes in as input a sympy PDE and outputs a recurrence + relation. :arg pde: a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` that must satisfy ``pde.eqs == 1`` and have polynomial coefficients @@ -267,7 +278,7 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: ode_in_r, var, ode_order = pde_to_ode_in_r(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() - # ode_in_x_cleared shouldn't have rational function coefficients in the coord. + # ode_in_x_cleared shouldn't have rational function coefficients assert sp.together(ode_in_x_cleared) == ode_in_x_cleared f_x_derivs = _make_sympy_vec("f_x", ode_order+1) poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) @@ -373,4 +384,4 @@ def deriv_helmholtz_three_d(i, s_loc): r_sub = r_sub.subs(s(i), deriv_helmholtz_three_d(i, s_loc)) err = abs(abs(r_sub).evalf()) print(err) - assert err <= 1e-10 + assert err <= 1e-10 \ No newline at end of file From eef4e78c53119f98802bf993b17eca06827f6304 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 6 Aug 2024 00:57:55 -0700 Subject: [PATCH 045/193] Pylint/Flake8 --- sumpy/recurrence.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 81836c42c..722f75892 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -58,11 +58,13 @@ """ import math +from random import randrange import numpy as np import sympy as sp from pytools.obj_array import make_obj_array + from sumpy.expansion.diff_op import ( DerivativeIdentifier, LinearPDESystemOperator, @@ -369,7 +371,6 @@ def deriv_helmholtz_three_d(i, s_loc): s_loc = rng.uniform(size=3) # Create random order to check - from random import randrange d = randrange(0, 5) # Substitute random location into recurrence relation and value of n = d @@ -384,4 +385,4 @@ def deriv_helmholtz_three_d(i, s_loc): r_sub = r_sub.subs(s(i), deriv_helmholtz_three_d(i, s_loc)) err = abs(abs(r_sub).evalf()) print(err) - assert err <= 1e-10 \ No newline at end of file + assert err <= 1e-10 From 52b38526e9229af6275b0a61f566d043faab27e1 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 7 Aug 2024 13:58:54 -0700 Subject: [PATCH 046/193] Update recurrence.py --- sumpy/recurrence.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 722f75892..41e54dc21 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -386,3 +386,8 @@ def deriv_helmholtz_three_d(i, s_loc): err = abs(abs(r_sub).evalf()) print(err) assert err <= 1e-10 + +w = make_identity_diff_op(2) +laplace2d = laplacian(w) +r = recurrence_from_pde(laplace2d) +print(r) \ No newline at end of file From ee23f651c2602dc43f654aef594650928366e98a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 7 Aug 2024 13:59:49 -0700 Subject: [PATCH 047/193] Update recurrence.py --- sumpy/recurrence.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 41e54dc21..722f75892 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -386,8 +386,3 @@ def deriv_helmholtz_three_d(i, s_loc): err = abs(abs(r_sub).evalf()) print(err) assert err <= 1e-10 - -w = make_identity_diff_op(2) -laplace2d = laplacian(w) -r = recurrence_from_pde(laplace2d) -print(r) \ No newline at end of file From 6df8870b07d15d3a736c90a2ecb32a55d9514a71 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 12 Aug 2024 12:42:46 -0700 Subject: [PATCH 048/193] Added function to process recurrence relation --- sumpy/recurrence.py | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 722f75892..ec4b93af5 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -267,6 +267,58 @@ def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: return final_recurrence +def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: + r""" + A function that takes in as input a recurrence and outputs a recurrence + relation that has the nth term in terms of the n-1th, n-2th etc. + Also returns the order of the recurrence relation. + + :arg recurrence: a recurrence relation in :math:`s(n)` + """ + terms = list(r.atoms(sp.Function)) + terms = np.array(terms) + + # Sort terms and create idx_l + idx_l = [] + for i in range(len(terms)): + tms = list(terms[i].atoms(sp.Number)) + if len(tms) == 1: + idx_l.append(tms[0]) + else: + idx_l.append(0) + idx_l = np.array(idx_l, dtype='int') + idx_sort = idx_l.argsort() + idx_l = idx_l[idx_sort] + terms = terms[idx_sort] + + # Order is the max difference between highest/lowest in idx_l + order = max(idx_l) - min(idx_l) + 1 + + # How much do we need to shift the recurrence relation + shift_idx = max(idx_l) + + # Get the respective coefficients in the recurrence relation from r + n = sp.symbols("n") + s = sp.Function("s") + coeffs = sp.poly(r, list(terms)).coeffs() + + # Re-arrange the recurrence relation so we get s(n) = ____ + # in terms of s(n-1), ... + true_recurrence = sum([coeffs[i]/coeffs[-1] * terms[i] + for i in range(0, len(terms)-1)]) + true_recurrence1 = true_recurrence.subs(n, n-shift_idx) + + # Replace s(n-1) with snm_1, s(n-2) with snm_2 etc. + # because pymbolic.substitute won't recognize it + last_syms = [sp.Symbol(f"snm{i+1}") for i in range(order-1)] + # pylint: disable=not-callable + true_recurrence2 = true_recurrence1.subs(s(n-1), last_syms[0]) + true_recurrence2 = true_recurrence2.subs(s(n-2), last_syms[1]) + true_recurrence2 = true_recurrence2.subs(s(n-3), last_syms[2]) + + return order, true_recurrence2 + + def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: r""" A function that takes in as input a sympy PDE and outputs a recurrence From 05a46abad947ee534c01e45d197dcca716cadc4e Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 2 Sep 2024 16:07:33 -0500 Subject: [PATCH 049/193] Shift recurrence so origin at expansion center --- sumpy/recurrence.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index ec4b93af5..b19c1b6d9 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -340,6 +340,19 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: return recurrence_from_coeff_array(coeffs, var) +def shift_recurrence(r: sp.Expr, var: np.ndarray) -> sp.Expr: + r""" + A function that "shifts" the recurrence so it's center is placed + at the origin and source is the input for the recurrence generated. + + :arg recurrence: a recurrence relation in :math:`s(n)` + """ + r0 = r + for i in range(len(var)): + r0 = r0.subs(var[i], -var[i]) + return r0 + + def test_recurrence_finder_laplace(): """ Tests our recurrence relation generator for Lapalace 2D. From 846983576f2b2fb6aaf7e3e6ce11dc8eecce21a7 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 9 Sep 2024 10:18:09 -0500 Subject: [PATCH 050/193] Added flag to process_recurrence_relation, removed hardcode --- sumpy/recurrence.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index b19c1b6d9..06892fdc5 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -267,7 +267,8 @@ def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: return final_recurrence -def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: +def process_recurrence_relation(r: sp.Expr, + replace=True) -> tuple[int, sp.Expr]: r""" A function that takes in as input a recurrence and outputs a recurrence relation that has the nth term in terms of the n-1th, n-2th etc. @@ -308,15 +309,18 @@ def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: for i in range(0, len(terms)-1)]) true_recurrence1 = true_recurrence.subs(n, n-shift_idx) - # Replace s(n-1) with snm_1, s(n-2) with snm_2 etc. - # because pymbolic.substitute won't recognize it - last_syms = [sp.Symbol(f"snm{i+1}") for i in range(order-1)] - # pylint: disable=not-callable - true_recurrence2 = true_recurrence1.subs(s(n-1), last_syms[0]) - true_recurrence2 = true_recurrence2.subs(s(n-2), last_syms[1]) - true_recurrence2 = true_recurrence2.subs(s(n-3), last_syms[2]) + if replace: + # Replace s(n-1) with snm_1, s(n-2) with snm_2 etc. + # because pymbolic.substitute won't recognize it + last_syms = [sp.Symbol(f"anm{i+1}") for i in range(order-1)] + # pylint: disable=not-callable + # Assumes order > 1 + true_recurrence2 = true_recurrence1.subs(s(n-1), last_syms[0]) + for i in range(2, order): + true_recurrence2 = true_recurrence2.subs(s(n-i), last_syms[i-1]) + return order, true_recurrence2 - return order, true_recurrence2 + return order, true_recurrence1 def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: From aa1b651258481414409be32ebfc9024f48a1edf5 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 9 Sep 2024 12:50:35 -0500 Subject: [PATCH 051/193] Added 2 additional functions for generating hardcoded expressions --- sumpy/recurrence.py | 93 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 80 insertions(+), 13 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 06892fdc5..b53adabf9 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -274,6 +274,10 @@ def process_recurrence_relation(r: sp.Expr, relation that has the nth term in terms of the n-1th, n-2th etc. Also returns the order of the recurrence relation. + If replace=True then the recurrence is output in a form that is ideal + for pymbolic processing. If replace=False then a standard recurrence + is output. + :arg recurrence: a recurrence relation in :math:`s(n)` """ terms = list(r.atoms(sp.Function)) @@ -322,6 +326,62 @@ def process_recurrence_relation(r: sp.Expr, return order, true_recurrence1 +def __check_neg_ind(r_n): + terms = list(r_n.atoms(sp.Function)) + terms = np.array(terms) + + idx_l = [] + for i in range(len(terms)): + tms = list(terms[i].atoms(sp.Number)) + if len(tms) == 1: + idx_l.append(tms[0]) + else: + idx_l.append(0) + idx_l = np.array(idx_l, dtype='int') + idx_sort = idx_l.argsort() + idx_l = idx_l[idx_sort] + terms = terms[idx_sort] + + return np.any(idx_l < 0) + + +def get_lower_order_expressions(p, recurrence): + r""" + A function that takes in as input an order of expansion + and a recurrence relation and outputs an array of hardcoded recurrence + expressions for each order. If an expression for a certain order + doesn't exist 0 is output. Also returns the number of initial conditions + needed. + + :arg recurrence: a recurrence relation in :math:`s(n)` + :arg p: number of orders needed for recurrence expressions + """ + p = 5 + initial_c = 0 + recur_arr = [0] * p + n = sp.symbols("n") + for i in range(p): + r_c = recurrence.subs(n, i) + if __check_neg_ind(r_c): + recur_arr[i] = 0 + initial_c = i + else: + recur_arr[i] = r_c + return initial_c, recur_arr + + +def shift_recurrence(r: sp.Expr, var: np.ndarray) -> sp.Expr: + r""" + A function that "shifts" the recurrence so it's center is placed + at the origin and source is the input for the recurrence generated. + + :arg recurrence: a recurrence relation in :math:`s(n)` + """ + r0 = r + for i in range(len(var)): + r0 = r0.subs(var[i], -var[i]) + return r0 + def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: r""" @@ -344,19 +404,6 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: return recurrence_from_coeff_array(coeffs, var) -def shift_recurrence(r: sp.Expr, var: np.ndarray) -> sp.Expr: - r""" - A function that "shifts" the recurrence so it's center is placed - at the origin and source is the input for the recurrence generated. - - :arg recurrence: a recurrence relation in :math:`s(n)` - """ - r0 = r - for i in range(len(var)): - r0 = r0.subs(var[i], -var[i]) - return r0 - - def test_recurrence_finder_laplace(): """ Tests our recurrence relation generator for Lapalace 2D. @@ -455,3 +502,23 @@ def deriv_helmholtz_three_d(i, s_loc): err = abs(abs(r_sub).evalf()) print(err) assert err <= 1e-10 + + +def test_get_lower_order_expressions_laplace_2D(): + """ + Tests our expression generator for Laplace 2D. + """ + + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + r = recurrence_from_pde(laplace2d) + var = _make_sympy_vec("x", 2) + r = shift_recurrence(r, var) + _, r_processed = process_recurrence_relation(r, False) + + _, recur_arr = get_lower_order_expressions(5, r_processed) + + print(recur_arr) + + +test_get_lower_order_expressions_laplace_2D() \ No newline at end of file From 4ded696808e37903e2ba60ba91cbd71eb902449f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 12 Sep 2024 15:57:48 -0500 Subject: [PATCH 052/193] sp.cancel --- sumpy/recurrence.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index b53adabf9..c34247aa5 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -366,7 +366,7 @@ def get_lower_order_expressions(p, recurrence): recur_arr[i] = 0 initial_c = i else: - recur_arr[i] = r_c + recur_arr[i] = sp.cancel(r_c) return initial_c, recur_arr From 2e615f0d73513fafff3c82a15335b98c0f40418e Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 28 Oct 2024 14:31:25 -0500 Subject: [PATCH 053/193] Added recurrence+qbx code --- sumpy/recurrence.py | 361 ++++++++++++++++++++++++---------------- test/test_recurrence.py | 83 +++++++++ 2 files changed, 305 insertions(+), 139 deletions(-) create mode 100644 test/test_recurrence.py diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index c34247aa5..e75c19689 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -67,9 +67,7 @@ from sumpy.expansion.diff_op import ( DerivativeIdentifier, - LinearPDESystemOperator, - laplacian, - make_identity_diff_op, + LinearPDESystemOperator ) @@ -267,6 +265,27 @@ def recurrence_from_coeff_array(coeffs: list, var: np.ndarray) -> sp.Expr: return final_recurrence +def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: + r""" + A function that takes in as input a sympy PDE and outputs a recurrence + relation. + + :arg pde: a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` + that must satisfy ``pde.eqs == 1`` and have polynomial coefficients + in the coordinates. + :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` + """ + ode_in_r, var, ode_order = pde_to_ode_in_r(pde) + ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() + ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() + # ode_in_x_cleared shouldn't have rational function coefficients + assert sp.together(ode_in_x_cleared) == ode_in_x_cleared + f_x_derivs = _make_sympy_vec("f_x", ode_order+1) + poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) + coeffs = ode_in_x_to_coeff_array(poly, ode_order, var) + return recurrence_from_coeff_array(coeffs, var) + + def process_recurrence_relation(r: sp.Expr, replace=True) -> tuple[int, sp.Expr]: r""" @@ -326,10 +345,19 @@ def process_recurrence_relation(r: sp.Expr, return order, true_recurrence1 -def __check_neg_ind(r_n): - terms = list(r_n.atoms(sp.Function)) + +def extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, + np.ndarray]: + r""" + Given a recurrence extracts the variables in the recurrence + as well as the indexes in sorted order. + + :arg r: recurrence to extract terms from + """ + terms = list(r.atoms(sp.Function)) terms = np.array(terms) + idx_l = [] for i in range(len(terms)): tms = list(terms[i].atoms(sp.Number)) @@ -342,32 +370,32 @@ def __check_neg_ind(r_n): idx_l = idx_l[idx_sort] terms = terms[idx_sort] - return np.any(idx_l < 0) + return idx_l, terms -def get_lower_order_expressions(p, recurrence): +def __check_neg_ind(r_n): r""" - A function that takes in as input an order of expansion - and a recurrence relation and outputs an array of hardcoded recurrence - expressions for each order. If an expression for a certain order - doesn't exist 0 is output. Also returns the number of initial conditions - needed. + Simply checks if a negative index exists in a recurrence relation. + """ - :arg recurrence: a recurrence relation in :math:`s(n)` - :arg p: number of orders needed for recurrence expressions + idx_l, _ = extract_idx_terms_from_recurrence(r_n) + + return np.any(idx_l < 0) + + +def __get_initial_c(recurrence): + r""" + For a given recurrence checks how many initial conditions by + checking for non-negative indexed terms. """ - p = 5 - initial_c = 0 - recur_arr = [0] * p n = sp.symbols("n") - for i in range(p): + + i = 0 + r_c = recurrence.subs(n, i) + while __check_neg_ind(r_c): + i += 1 r_c = recurrence.subs(n, i) - if __check_neg_ind(r_c): - recur_arr[i] = 0 - initial_c = i - else: - recur_arr[i] = sp.cancel(r_c) - return initial_c, recur_arr + return i def shift_recurrence(r: sp.Expr, var: np.ndarray) -> sp.Expr: @@ -377,148 +405,203 @@ def shift_recurrence(r: sp.Expr, var: np.ndarray) -> sp.Expr: :arg recurrence: a recurrence relation in :math:`s(n)` """ - r0 = r - for i in range(len(var)): - r0 = r0.subs(var[i], -var[i]) - return r0 + idx_l, terms = extract_idx_terms_from_recurrence(r) + r_ret = r -def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: + n = sp.symbols('n') + for i in range(len(idx_l)): + r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) + + return r_ret*((-1)**(n+1)) + + +def get_processed_recurrence_from_pde_shift(pde, ndim) -> tuple[int, int, + sp.Expr]: r""" - A function that takes in as input a sympy PDE and outputs a recurrence - relation. + A function that "shifts" the recurrence so the expansion center is placed + at the origin and source is the input for the recurrence generated. - :arg pde: a :class:`sumpy.expansion.diff_op.LinearSystemPDEOperator` - that must satisfy ``pde.eqs == 1`` and have polynomial coefficients - in the coordinates. - :arg var: array of sympy variables :math:`[x_0, x_1, \dots]` + :arg recurrence: a recurrence relation in :math:`s(n)` """ - ode_in_r, var, ode_order = pde_to_ode_in_r(pde) - ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() - ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() - # ode_in_x_cleared shouldn't have rational function coefficients - assert sp.together(ode_in_x_cleared) == ode_in_x_cleared - f_x_derivs = _make_sympy_vec("f_x", ode_order+1) - poly = sp.Poly(ode_in_x_cleared, *f_x_derivs) - coeffs = ode_in_x_to_coeff_array(poly, ode_order, var) - return recurrence_from_coeff_array(coeffs, var) + r = recurrence_from_pde(pde) + var = _make_sympy_vec("x", ndim) + order, r_p = process_recurrence_relation(r, False) + n_initial = __get_initial_c(r_p) + r_s = shift_recurrence(r_p, var) + return n_initial, order, r_s -def test_recurrence_finder_laplace(): - """ - Tests our recurrence relation generator for Lapalace 2D. - """ - w = make_identity_diff_op(2) - laplace2d = laplacian(w) - r = recurrence_from_pde(laplace2d) - n = sp.symbols("n") - s = sp.Function("s") +# ================ Transform/Rotate ================= +def __produce_orthogonal_basis(normals): + ndim, ncenters = normals.shape + orth_coordsys = [normals] + for i in range(1, ndim): + v = np.random.rand(ndim, ncenters) + v = v/np.linalg.norm(v, 2, axis=0) + for j in range(i): + v = v - np.einsum("dc,dc->c", v, orth_coordsys[j]) * orth_coordsys[j] + v = v/np.linalg.norm(v, 2, axis=0) + orth_coordsys.append(v) - def deriv_laplace(i): - x, y = sp.symbols("x,y") - var = _make_sympy_vec("x", 2) - true_f = sp.log(sp.sqrt(x**2 + y**2)) - return sp.diff(true_f, x, i).subs(x, var[0]).subs( - y, var[1]) - d = 6 - # pylint: disable=not-callable + return orth_coordsys - r_sub = r.subs(n, d) - for i in range(d-1, d+3): - r_sub = r_sub.subs(s(i), deriv_laplace(i)) - r_sub = r_sub.simplify() - assert r_sub == 0 +def __compute_rotated_shifted_coordinates(sources, centers, normals): + cts = sources[:, None] - centers[:, :, None] + orth_coordsys = __produce_orthogonal_basis(normals) + cts_rotated_shifted = np.einsum("idc,dcs->ics", orth_coordsys, cts) -def test_recurrence_finder_laplace_three_d(): - """ - Tests our recurrence relation generator for Laplace 3D. + return cts_rotated_shifted + + +# ================ Recurrence LP Eval ================= +def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, + p) -> np.ndarray: + r""" + A function that computes a single-layer potential using a recurrence. + + :arg sources: a (ndim, nsources) array of source locations + :arg centers: a (ndim, ncenters) array of center locations + :arg normals: a (ndim, ncenters) array of normals + :arg strengths: array corresponding to quadrature weight multiplied by + density + :arg radius: expansion radius + :arg pde: pde that we are computing layer potential for + :arg g_x_y: a green's function in (x0, x1, ...) source and + (t0, t1, ...) target + :arg p: order of expansion computed """ - w = make_identity_diff_op(3) - laplace3d = laplacian(w) - r = recurrence_from_pde(laplace3d) - n = sp.symbols("n") - s = sp.Function("s") - def deriv_laplace_three_d(i): - x, y, z = sp.symbols("x,y,z") - var = _make_sympy_vec("x", 3) - true_f = 1/(sp.sqrt(x**2 + y**2 + z**2)) - return sp.diff(true_f, x, i).subs(x, var[0]).subs( - y, var[1]).subs(z, var[2]) + #------------- 2. Compute rotated/shifted coordinates + cts_r_s = __compute_rotated_shifted_coordinates(sources, centers, normals) - d = 6 - # pylint: disable=not-callable - r_sub = r.subs(n, d) - for i in range(d-1, d+3): - r_sub = r_sub.subs(s(i), deriv_laplace_three_d(i)) - r_sub = r_sub.simplify() - assert r_sub == 0 + #------------- 4. Compute green's function expression + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + + #------------ 5. Compute recurrence + n_initial, order, recurrence = get_processed_recurrence_from_pde_shift(pde, ndim=2) + + #------------ 6. Set order p = 5 + n_p = sources.shape[1] + storage = [np.zeros((n_p,n_p))] * order -def test_recurrence_finder_helmholtz_three_d(): - """ - Tests our recurrence relation generator for Helmhotlz 3D. - """ - # We are creating the recurrence relation for helmholtz3d which - # seems to be an order 5 recurrence relation - w = make_identity_diff_op(3) - helmholtz3d = laplacian(w) + w - r = recurrence_from_pde(helmholtz3d) - - def deriv_helmholtz_three_d(i, s_loc): - s_x = s_loc[0] - s_y = s_loc[1] - s_z = s_loc[2] - x, y, z = sp.symbols("x,y,z") - true_f = sp.exp(1j * sp.sqrt(x**2 + y**2 + z**2) - ) / (sp.sqrt(x**2 + y**2 + z**2)) - return sp.diff(true_f, x, i).subs(x, s_x).subs( - y, s_y).subs(z, s_z) - # Create relevant symbols - var = _make_sympy_vec("x", 3) - n = sp.symbols("n") s = sp.Function("s") + r,n = sp.symbols("r,n") + + def generate_lamb_expr(i, n_initial): + arg_list = [] + for j in range(order,0,-1): + arg_list.append(s(i-j)) + arg_list.append(var[0]) + arg_list.append(var[1]) + arg_list.append(r) + + if i < n_initial: + lamb_expr = sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + else: + lamb_expr = recurrence.subs(n, i) + return sp.lambdify(arg_list, lamb_expr) - rng = np.random.default_rng() + interactions_2d = 0 + for i in range(p+1): + lamb_expr = generate_lamb_expr(i, n_initial) + a = storage[-4:] + [cts_r_s[0],cts_r_s[1],radius] + s_new = lamb_expr(*a) + interactions_2d += s_new * radius**i/math.factorial(i) - # Create random source location - s_loc = rng.uniform(size=3) + storage.pop(0) + storage.append(s_new) - # Create random order to check - d = randrange(0, 5) + exp_res = (interactions_2d * strengths[None, :]).sum(axis=1) - # Substitute random location into recurrence relation and value of n = d - r_loc = r.subs(var[0], s_loc[0]) - r_loc = r_loc.subs(var[1], s_loc[1]) - r_loc = r_loc.subs(var[2], s_loc[2]) - r_sub = r_loc.subs(n, d) + return exp_res - # Checking that the recurrence holds to some machine epsilon - for i in range(max(d-3, 0), d+3): - # pylint: disable=not-callable - r_sub = r_sub.subs(s(i), deriv_helmholtz_three_d(i, s_loc)) - err = abs(abs(r_sub).evalf()) - print(err) - assert err <= 1e-10 +# TEST CODE +from sumpy.expansion.diff_op import ( + laplacian, + make_identity_diff_op, +) -def test_get_lower_order_expressions_laplace_2D(): - """ - Tests our expression generator for Laplace 2D. - """ - +import numpy as np +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion + + +actx_factory = _acf +expn_class = LineTaylorLocalExpansion + +actx = actx_factory() + +from sumpy.kernel import LaplaceKernel +lknl = LaplaceKernel(2) + +from sumpy.qbx import LayerPotential + +def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): + lpot = LayerPotential(actx.context, + expansion=expn_class(lknl, order), + target_kernels=(lknl,), + source_kernels=(lknl,)) + + #print(lpot.get_kernel()) + expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) + sources = actx.from_numpy(sources) + targets = actx.from_numpy(targets) + centers = actx.from_numpy(centers) + + strengths = (strengths,) + + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii) + result_qbx = actx.to_numpy(result_qbx) + + return result_qbx + +def create_ellipse(n_p): + h = 9.688 / n_p + radius = 7*h + t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) + + unit_circle_param = np.exp(1j * t) + unit_circle = np.array([2 * unit_circle_param.real, unit_circle_param.imag]) + + sources = unit_circle + normals = np.array([unit_circle_param.real, 2*unit_circle_param.imag]) + normals = normals / np.linalg.norm(normals, axis=0) + centers = sources - normals * radius + + mode_nr = 25 + density = np.cos(mode_nr * t) + + return sources, centers, normals, density, h, radius + +def test_recurrence_laplace_2d_ellipse(): + + #------------- 1. Define PDE, Green's Function w = make_identity_diff_op(2) laplace2d = laplacian(w) - r = recurrence_from_pde(laplace2d) - var = _make_sympy_vec("x", 2) - r = shift_recurrence(r, var) - _, r_processed = process_recurrence_relation(r, False) - _, recur_arr = get_lower_order_expressions(5, r_processed) - - print(recur_arr) + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + + p = 4 + err = [] + for n_p in range(200, 1001, 200): + sources, centers, normals, density, h, radius = create_ellipse(n_p) + strengths = h * density + exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, p) + qbx_res = qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) + #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) + err.append(np.max(exp_res - qbx_res)) + print(err) -test_get_lower_order_expressions_laplace_2D() \ No newline at end of file +test_recurrence_laplace_2d_ellipse() \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py new file mode 100644 index 000000000..aa9e01293 --- /dev/null +++ b/test/test_recurrence.py @@ -0,0 +1,83 @@ +from sumpy.expansion.diff_op import ( + laplacian, + make_identity_diff_op, +) + +import numpy as np +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion + + +actx_factory = _acf +expn_class = LineTaylorLocalExpansion + +actx = actx_factory() + +from sumpy.kernel import LaplaceKernel +lknl = LaplaceKernel(2) + +from sumpy.qbx import LayerPotential +from sumpy.recurrence import recurrence_qbx_lp, _make_sympy_vec + +def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): + lpot = LayerPotential(actx.context, + expansion=expn_class(lknl, order), + target_kernels=(lknl,), + source_kernels=(lknl,)) + + #print(lpot.get_kernel()) + expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) + sources = actx.from_numpy(sources) + targets = actx.from_numpy(targets) + centers = actx.from_numpy(centers) + + strengths = (strengths,) + + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii) + result_qbx = actx.to_numpy(result_qbx) + + return result_qbx + +def create_ellipse(n_p): + h = 9.688 / n_p + radius = 7*h + t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) + + unit_circle_param = np.exp(1j * t) + unit_circle = np.array([2 * unit_circle_param.real, unit_circle_param.imag]) + + sources = unit_circle + normals = np.array([unit_circle_param.real, 2*unit_circle_param.imag]) + normals = normals / np.linalg.norm(normals, axis=0) + centers = sources - normals * radius + + mode_nr = 25 + density = np.cos(mode_nr * t) + + return sources, centers, normals, density, h, radius + +def test_recurrence_laplace_2d_ellipse(): + + #------------- 1. Define PDE, Green's Function + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + + p = 4 + err = [] + for n_p in range(200, 1001, 200): + sources, centers, normals, density, h, radius = create_ellipse(n_p) + strengths = h * density + exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, p) + qbx_res = qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) + #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) + err.append(np.max(exp_res - qbx_res)) + + print(err) + From ab46c104e95c1915e5cedc2525483181fb743100 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 30 Oct 2024 13:36:47 -0500 Subject: [PATCH 054/193] Separate file/move to test file --- sumpy/recurrence.py | 173 ---------------------------------------- sumpy/recurrenceqbx.py | 100 +++++++++++++++++++++++ test/test_recurrence.py | 3 +- 3 files changed, 102 insertions(+), 174 deletions(-) create mode 100644 sumpy/recurrenceqbx.py diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index e75c19689..d3d195ab7 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -432,176 +432,3 @@ def get_processed_recurrence_from_pde_shift(pde, ndim) -> tuple[int, int, return n_initial, order, r_s -# ================ Transform/Rotate ================= -def __produce_orthogonal_basis(normals): - ndim, ncenters = normals.shape - orth_coordsys = [normals] - for i in range(1, ndim): - v = np.random.rand(ndim, ncenters) - v = v/np.linalg.norm(v, 2, axis=0) - for j in range(i): - v = v - np.einsum("dc,dc->c", v, orth_coordsys[j]) * orth_coordsys[j] - v = v/np.linalg.norm(v, 2, axis=0) - orth_coordsys.append(v) - - return orth_coordsys - - -def __compute_rotated_shifted_coordinates(sources, centers, normals): - - cts = sources[:, None] - centers[:, :, None] - orth_coordsys = __produce_orthogonal_basis(normals) - cts_rotated_shifted = np.einsum("idc,dcs->ics", orth_coordsys, cts) - - return cts_rotated_shifted - - -# ================ Recurrence LP Eval ================= -def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, - p) -> np.ndarray: - r""" - A function that computes a single-layer potential using a recurrence. - - :arg sources: a (ndim, nsources) array of source locations - :arg centers: a (ndim, ncenters) array of center locations - :arg normals: a (ndim, ncenters) array of normals - :arg strengths: array corresponding to quadrature weight multiplied by - density - :arg radius: expansion radius - :arg pde: pde that we are computing layer potential for - :arg g_x_y: a green's function in (x0, x1, ...) source and - (t0, t1, ...) target - :arg p: order of expansion computed - """ - - #------------- 2. Compute rotated/shifted coordinates - cts_r_s = __compute_rotated_shifted_coordinates(sources, centers, normals) - - - #------------- 4. Compute green's function expression - var = _make_sympy_vec("x", 2) - var_t = _make_sympy_vec("t", 2) - - #------------ 5. Compute recurrence - n_initial, order, recurrence = get_processed_recurrence_from_pde_shift(pde, ndim=2) - - #------------ 6. Set order p = 5 - n_p = sources.shape[1] - storage = [np.zeros((n_p,n_p))] * order - - s = sp.Function("s") - r,n = sp.symbols("r,n") - - def generate_lamb_expr(i, n_initial): - arg_list = [] - for j in range(order,0,-1): - arg_list.append(s(i-j)) - arg_list.append(var[0]) - arg_list.append(var[1]) - arg_list.append(r) - - if i < n_initial: - lamb_expr = sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - else: - lamb_expr = recurrence.subs(n, i) - return sp.lambdify(arg_list, lamb_expr) - - interactions_2d = 0 - for i in range(p+1): - lamb_expr = generate_lamb_expr(i, n_initial) - a = storage[-4:] + [cts_r_s[0],cts_r_s[1],radius] - s_new = lamb_expr(*a) - interactions_2d += s_new * radius**i/math.factorial(i) - - storage.pop(0) - storage.append(s_new) - - exp_res = (interactions_2d * strengths[None, :]).sum(axis=1) - - return exp_res - - -# TEST CODE -from sumpy.expansion.diff_op import ( - laplacian, - make_identity_diff_op, -) - -import numpy as np -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 -from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion - - -actx_factory = _acf -expn_class = LineTaylorLocalExpansion - -actx = actx_factory() - -from sumpy.kernel import LaplaceKernel -lknl = LaplaceKernel(2) - -from sumpy.qbx import LayerPotential - -def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): - lpot = LayerPotential(actx.context, - expansion=expn_class(lknl, order), - target_kernels=(lknl,), - source_kernels=(lknl,)) - - #print(lpot.get_kernel()) - expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) - sources = actx.from_numpy(sources) - targets = actx.from_numpy(targets) - centers = actx.from_numpy(centers) - - strengths = (strengths,) - - _evt, (result_qbx,) = lpot( - actx.queue, - targets, sources, centers, strengths, - expansion_radii=expansion_radii) - result_qbx = actx.to_numpy(result_qbx) - - return result_qbx - -def create_ellipse(n_p): - h = 9.688 / n_p - radius = 7*h - t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) - - unit_circle_param = np.exp(1j * t) - unit_circle = np.array([2 * unit_circle_param.real, unit_circle_param.imag]) - - sources = unit_circle - normals = np.array([unit_circle_param.real, 2*unit_circle_param.imag]) - normals = normals / np.linalg.norm(normals, axis=0) - centers = sources - normals * radius - - mode_nr = 25 - density = np.cos(mode_nr * t) - - return sources, centers, normals, density, h, radius - -def test_recurrence_laplace_2d_ellipse(): - - #------------- 1. Define PDE, Green's Function - w = make_identity_diff_op(2) - laplace2d = laplacian(w) - - var = _make_sympy_vec("x", 2) - var_t = _make_sympy_vec("t", 2) - g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) - - p = 4 - err = [] - for n_p in range(200, 1001, 200): - sources, centers, normals, density, h, radius = create_ellipse(n_p) - strengths = h * density - exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, p) - qbx_res = qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) - #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) - err.append(np.max(exp_res - qbx_res)) - - print(err) - -test_recurrence_laplace_2d_ellipse() \ No newline at end of file diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py new file mode 100644 index 000000000..800d18e02 --- /dev/null +++ b/sumpy/recurrenceqbx.py @@ -0,0 +1,100 @@ +r""" +With the functionality in this module, we aim to compute layer potentials +using a recurrence for one-dimensional derivatives of the corresponding +Green's function. See recurrence.py. + +.. autofunction:: recurrence_qbx_lp +""" +import numpy as np +import sympy as sp +from sumpy.recurrence import ( + _make_sympy_vec, + get_processed_recurrence_from_pde_shift) + +# ================ Transform/Rotate ================= +def __produce_orthogonal_basis(normals): + ndim, ncenters = normals.shape + orth_coordsys = [normals] + for i in range(1, ndim): + v = np.random.rand(ndim, ncenters) + v = v/np.linalg.norm(v, 2, axis=0) + for j in range(i): + v = v - np.einsum("dc,dc->c", v, orth_coordsys[j]) * orth_coordsys[j] + v = v/np.linalg.norm(v, 2, axis=0) + orth_coordsys.append(v) + + return orth_coordsys + + +def __compute_rotated_shifted_coordinates(sources, centers, normals): + + cts = sources[:, None] - centers[:, :, None] + orth_coordsys = __produce_orthogonal_basis(normals) + cts_rotated_shifted = np.einsum("idc,dcs->ics", orth_coordsys, cts) + + return cts_rotated_shifted + + +# ================ Recurrence LP Eval ================= +def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, + p) -> np.ndarray: + r""" + A function that computes a single-layer potential using a recurrence. + + :arg sources: a (ndim, nsources) array of source locations + :arg centers: a (ndim, ncenters) array of center locations + :arg normals: a (ndim, ncenters) array of normals + :arg strengths: array corresponding to quadrature weight multiplied by + density + :arg radius: expansion radius + :arg pde: pde that we are computing layer potential for + :arg g_x_y: a green's function in (x0, x1, ...) source and + (t0, t1, ...) target + :arg p: order of expansion computed + """ + + #------------- 2. Compute rotated/shifted coordinates + cts_r_s = __compute_rotated_shifted_coordinates(sources, centers, normals) + + + #------------- 4. Compute green's function expression + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + + #------------ 5. Compute recurrence + n_initial, order, recurrence = get_processed_recurrence_from_pde_shift(pde, ndim=2) + + #------------ 6. Set order p = 5 + n_p = sources.shape[1] + storage = [np.zeros((n_p,n_p))] * order + + s = sp.Function("s") + r,n = sp.symbols("r,n") + + def generate_lamb_expr(i, n_initial): + arg_list = [] + for j in range(order,0,-1): + arg_list.append(s(i-j)) + arg_list.append(var[0]) + arg_list.append(var[1]) + arg_list.append(r) + + if i < n_initial: + lamb_expr = sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + else: + lamb_expr = recurrence.subs(n, i) + return sp.lambdify(arg_list, lamb_expr) + + interactions_2d = 0 + for i in range(p+1): + lamb_expr = generate_lamb_expr(i, n_initial) + a = storage[-4:] + [cts_r_s[0],cts_r_s[1],radius] + s_new = lamb_expr(*a) + interactions_2d += s_new * radius**i/math.factorial(i) + + storage.pop(0) + storage.append(s_new) + + exp_res = (interactions_2d * strengths[None, :]).sum(axis=1) + + return exp_res \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py index aa9e01293..bff616941 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -2,6 +2,7 @@ laplacian, make_identity_diff_op, ) +from sumpy.recurrenceqbx import recurrence_qbx_lp, _make_sympy_vec import numpy as np from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 @@ -17,7 +18,7 @@ lknl = LaplaceKernel(2) from sumpy.qbx import LayerPotential -from sumpy.recurrence import recurrence_qbx_lp, _make_sympy_vec + def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): lpot = LayerPotential(actx.context, From aa1dab02c9ce2230f2818a7fa7a5e88f5bd1dd67 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 31 Oct 2024 03:45:53 -0500 Subject: [PATCH 055/193] Remove outdated code recurrence --- sumpy/recurrence.py | 46 +++++++++------------------------------------ 1 file changed, 9 insertions(+), 37 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index d3d195ab7..2f1cc0ff8 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -25,6 +25,9 @@ .. autofunction:: ode_in_x_to_coeff_array .. autofunction:: recurrence_from_coeff_array .. autofunction:: recurrence_from_pde +.. autofunction:: process_recurrence_relation +.. autofunction:: shift_recurrence + """ from __future__ import annotations @@ -293,28 +296,9 @@ def process_recurrence_relation(r: sp.Expr, relation that has the nth term in terms of the n-1th, n-2th etc. Also returns the order of the recurrence relation. - If replace=True then the recurrence is output in a form that is ideal - for pymbolic processing. If replace=False then a standard recurrence - is output. - :arg recurrence: a recurrence relation in :math:`s(n)` """ - terms = list(r.atoms(sp.Function)) - terms = np.array(terms) - - # Sort terms and create idx_l - idx_l = [] - for i in range(len(terms)): - tms = list(terms[i].atoms(sp.Number)) - if len(tms) == 1: - idx_l.append(tms[0]) - else: - idx_l.append(0) - idx_l = np.array(idx_l, dtype='int') - idx_sort = idx_l.argsort() - idx_l = idx_l[idx_sort] - terms = terms[idx_sort] - + idx_l, terms = _extract_idx_terms_from_recurrence(r) # Order is the max difference between highest/lowest in idx_l order = max(idx_l) - min(idx_l) + 1 @@ -332,21 +316,10 @@ def process_recurrence_relation(r: sp.Expr, for i in range(0, len(terms)-1)]) true_recurrence1 = true_recurrence.subs(n, n-shift_idx) - if replace: - # Replace s(n-1) with snm_1, s(n-2) with snm_2 etc. - # because pymbolic.substitute won't recognize it - last_syms = [sp.Symbol(f"anm{i+1}") for i in range(order-1)] - # pylint: disable=not-callable - # Assumes order > 1 - true_recurrence2 = true_recurrence1.subs(s(n-1), last_syms[0]) - for i in range(2, order): - true_recurrence2 = true_recurrence2.subs(s(n-i), last_syms[i-1]) - return order, true_recurrence2 - return order, true_recurrence1 -def extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, +def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, np.ndarray]: r""" Given a recurrence extracts the variables in the recurrence @@ -398,7 +371,7 @@ def __get_initial_c(recurrence): return i -def shift_recurrence(r: sp.Expr, var: np.ndarray) -> sp.Expr: +def shift_recurrence(r: sp.Expr) -> sp.Expr: r""" A function that "shifts" the recurrence so it's center is placed at the origin and source is the input for the recurrence generated. @@ -416,7 +389,7 @@ def shift_recurrence(r: sp.Expr, var: np.ndarray) -> sp.Expr: return r_ret*((-1)**(n+1)) -def get_processed_recurrence_from_pde_shift(pde, ndim) -> tuple[int, int, +def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, sp.Expr]: r""" A function that "shifts" the recurrence so the expansion center is placed @@ -425,10 +398,9 @@ def get_processed_recurrence_from_pde_shift(pde, ndim) -> tuple[int, int, :arg recurrence: a recurrence relation in :math:`s(n)` """ r = recurrence_from_pde(pde) - var = _make_sympy_vec("x", ndim) - order, r_p = process_recurrence_relation(r, False) + order, r_p = process_recurrence_relation(r) n_initial = __get_initial_c(r_p) - r_s = shift_recurrence(r_p, var) + r_s = shift_recurrence(r_p) return n_initial, order, r_s From 52a859d89f54a6f74bdb39c2a322c3b8eaba6b2f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 31 Oct 2024 04:06:30 -0500 Subject: [PATCH 056/193] Renamed function for clarity --- sumpy/recurrence.py | 2 +- sumpy/recurrenceqbx.py | 6 +++--- test/test_recurrenceqbx.py | 0 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 test/test_recurrenceqbx.py diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 2f1cc0ff8..0696ba365 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -27,7 +27,7 @@ .. autofunction:: recurrence_from_pde .. autofunction:: process_recurrence_relation .. autofunction:: shift_recurrence - +.. autofunction:: get_processed_and_shifted_recurrence """ from __future__ import annotations diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index 800d18e02..b620c6fb2 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -9,7 +9,7 @@ import sympy as sp from sumpy.recurrence import ( _make_sympy_vec, - get_processed_recurrence_from_pde_shift) + get_processed_and_shifted_recurrence) # ================ Transform/Rotate ================= def __produce_orthogonal_basis(normals): @@ -57,12 +57,12 @@ def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, cts_r_s = __compute_rotated_shifted_coordinates(sources, centers, normals) - #------------- 4. Compute green's function expression + #------------- 4. Define input variables for green's function expression var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) #------------ 5. Compute recurrence - n_initial, order, recurrence = get_processed_recurrence_from_pde_shift(pde, ndim=2) + n_initial, order, recurrence = get_processed_and_shifted_recurrence(pde) #------------ 6. Set order p = 5 n_p = sources.shape[1] diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py new file mode 100644 index 000000000..e69de29bb From 473d714722dc1fc5cc10e9dfa28196d5ac04e9bf Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 1 Nov 2024 18:13:42 -0500 Subject: [PATCH 057/193] Update recurrence.py --- sumpy/recurrence.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 0696ba365..e8a9c0fbf 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -289,8 +289,7 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: return recurrence_from_coeff_array(coeffs, var) -def process_recurrence_relation(r: sp.Expr, - replace=True) -> tuple[int, sp.Expr]: +def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: r""" A function that takes in as input a recurrence and outputs a recurrence relation that has the nth term in terms of the n-1th, n-2th etc. @@ -307,7 +306,6 @@ def process_recurrence_relation(r: sp.Expr, # Get the respective coefficients in the recurrence relation from r n = sp.symbols("n") - s = sp.Function("s") coeffs = sp.poly(r, list(terms)).coeffs() # Re-arrange the recurrence relation so we get s(n) = ____ @@ -351,7 +349,7 @@ def __check_neg_ind(r_n): Simply checks if a negative index exists in a recurrence relation. """ - idx_l, _ = extract_idx_terms_from_recurrence(r_n) + idx_l, _ = _extract_idx_terms_from_recurrence(r_n) return np.any(idx_l < 0) @@ -378,7 +376,7 @@ def shift_recurrence(r: sp.Expr) -> sp.Expr: :arg recurrence: a recurrence relation in :math:`s(n)` """ - idx_l, terms = extract_idx_terms_from_recurrence(r) + idx_l, terms = _extract_idx_terms_from_recurrence(r) r_ret = r @@ -404,3 +402,4 @@ def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, return n_initial, order, r_s +print(_generate_nd_derivative_relations(_make_sympy_vec("x", 2), 3)) \ No newline at end of file From cdd85adc0136c26b79aa4dad2793062739c60b4d Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 2 Nov 2024 20:52:13 -0500 Subject: [PATCH 058/193] Added 1 test --- sumpy/recurrence.py | 5 +-- test/playground.ipynb | 0 test/test_recurrence.py | 92 +++++++++----------------------------- test/test_recurrenceqbx.py | 84 ++++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 75 deletions(-) create mode 100644 test/playground.ipynb diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index e8a9c0fbf..6468a794a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -399,7 +399,4 @@ def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, order, r_p = process_recurrence_relation(r) n_initial = __get_initial_c(r_p) r_s = shift_recurrence(r_p) - return n_initial, order, r_s - - -print(_generate_nd_derivative_relations(_make_sympy_vec("x", 2), 3)) \ No newline at end of file + return n_initial, order, r_s \ No newline at end of file diff --git a/test/playground.ipynb b/test/playground.ipynb new file mode 100644 index 000000000..e69de29bb diff --git a/test/test_recurrence.py b/test/test_recurrence.py index bff616941..270314de1 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -1,84 +1,34 @@ +from sumpy.recurrence import get_processed_and_shifted_recurrence, _make_sympy_vec +import sympy as sp +import numpy as np + from sumpy.expansion.diff_op import ( laplacian, make_identity_diff_op, ) -from sumpy.recurrenceqbx import recurrence_qbx_lp, _make_sympy_vec - -import numpy as np -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 -from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion - - -actx_factory = _acf -expn_class = LineTaylorLocalExpansion - -actx = actx_factory() - -from sumpy.kernel import LaplaceKernel -lknl = LaplaceKernel(2) - -from sumpy.qbx import LayerPotential - - -def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): - lpot = LayerPotential(actx.context, - expansion=expn_class(lknl, order), - target_kernels=(lknl,), - source_kernels=(lknl,)) - - #print(lpot.get_kernel()) - expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) - sources = actx.from_numpy(sources) - targets = actx.from_numpy(targets) - centers = actx.from_numpy(centers) - strengths = (strengths,) - - _evt, (result_qbx,) = lpot( - actx.queue, - targets, sources, centers, strengths, - expansion_radii=expansion_radii) - result_qbx = actx.to_numpy(result_qbx) - - return result_qbx - -def create_ellipse(n_p): - h = 9.688 / n_p - radius = 7*h - t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) - - unit_circle_param = np.exp(1j * t) - unit_circle = np.array([2 * unit_circle_param.real, unit_circle_param.imag]) - - sources = unit_circle - normals = np.array([unit_circle_param.real, 2*unit_circle_param.imag]) - normals = normals / np.linalg.norm(normals, axis=0) - centers = sources - normals * radius - - mode_nr = 25 - density = np.cos(mode_nr * t) - - return sources, centers, normals, density, h, radius - -def test_recurrence_laplace_2d_ellipse(): - - #------------- 1. Define PDE, Green's Function +def test_laplace_2D(): w = make_identity_diff_op(2) laplace2d = laplacian(w) + _,_, r = get_processed_and_shifted_recurrence(laplace2d) + + n = sp.symbols("n") + s = sp.Function("s") var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) - g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(6)] + + check_2_s = r.subs(n, 2).subs(s(1), derivs[1]) - derivs[2] + check_3_s = r.subs(n, 3).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] + check_4_s = r.subs(n, 4).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] + check_5_s = r.subs(n, 5).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] - p = 4 - err = [] - for n_p in range(200, 1001, 200): - sources, centers, normals, density, h, radius = create_ellipse(n_p) - strengths = h * density - exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, p) - qbx_res = qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) - #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) - err.append(np.max(exp_res - qbx_res)) + assert abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-15 + assert abs(check_3_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-14 + assert abs(check_4_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-12 + assert abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-12 - print(err) +test_laplace_2D() \ No newline at end of file diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index e69de29bb..bff616941 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -0,0 +1,84 @@ +from sumpy.expansion.diff_op import ( + laplacian, + make_identity_diff_op, +) +from sumpy.recurrenceqbx import recurrence_qbx_lp, _make_sympy_vec + +import numpy as np +from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 +from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion + + +actx_factory = _acf +expn_class = LineTaylorLocalExpansion + +actx = actx_factory() + +from sumpy.kernel import LaplaceKernel +lknl = LaplaceKernel(2) + +from sumpy.qbx import LayerPotential + + +def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): + lpot = LayerPotential(actx.context, + expansion=expn_class(lknl, order), + target_kernels=(lknl,), + source_kernels=(lknl,)) + + #print(lpot.get_kernel()) + expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) + sources = actx.from_numpy(sources) + targets = actx.from_numpy(targets) + centers = actx.from_numpy(centers) + + strengths = (strengths,) + + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii) + result_qbx = actx.to_numpy(result_qbx) + + return result_qbx + +def create_ellipse(n_p): + h = 9.688 / n_p + radius = 7*h + t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) + + unit_circle_param = np.exp(1j * t) + unit_circle = np.array([2 * unit_circle_param.real, unit_circle_param.imag]) + + sources = unit_circle + normals = np.array([unit_circle_param.real, 2*unit_circle_param.imag]) + normals = normals / np.linalg.norm(normals, axis=0) + centers = sources - normals * radius + + mode_nr = 25 + density = np.cos(mode_nr * t) + + return sources, centers, normals, density, h, radius + +def test_recurrence_laplace_2d_ellipse(): + + #------------- 1. Define PDE, Green's Function + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + + p = 4 + err = [] + for n_p in range(200, 1001, 200): + sources, centers, normals, density, h, radius = create_ellipse(n_p) + strengths = h * density + exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, p) + qbx_res = qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) + #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) + err.append(np.max(exp_res - qbx_res)) + + print(err) + From 8beb851c2274926cce8cdb0836b5338249ec0eb3 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 2 Nov 2024 20:52:37 -0500 Subject: [PATCH 059/193] Update playground.ipynb --- test/playground.ipynb | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/test/playground.ipynb b/test/playground.ipynb index e69de29bb..8b7fa717d 100644 --- a/test/playground.ipynb +++ b/test/playground.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sympy as sp\n", + "import numpy as np\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 47844754c9ab6a92ef036f32822219510c7861fd Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 2 Nov 2024 23:03:26 -0500 Subject: [PATCH 060/193] Added helmholtz3d test --- test/test_recurrence.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 270314de1..1001d61b0 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -7,6 +7,34 @@ make_identity_diff_op, ) + + +def test_helmholtz_3D(): + w = make_identity_diff_op(3) + helmholtz3d = laplacian(w) + w + _,_, r = get_processed_and_shifted_recurrence(helmholtz3d) + + n = sp.symbols("n") + s = sp.Function("s") + + var = _make_sympy_vec("x", 3) + var_t = _make_sympy_vec("t", 3) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2 + (var[2]-var_t[2])**2) + g_x_y = sp.exp(1j * abs_dist) / abs_dist + derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0).subs(var_t[2], 0) for i in range(6)] + + + check_2_s = r.subs(n, 2).subs(s(1), derivs[1]).subs(s(0), derivs[0]) - derivs[2] + assert abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand())) <= 1e-12 + + +test_helmholtz_3D() + + + + + + def test_laplace_2D(): w = make_identity_diff_op(2) laplace2d = laplacian(w) @@ -31,4 +59,3 @@ def test_laplace_2D(): assert abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-12 -test_laplace_2D() \ No newline at end of file From c7f7be75b5a0c306d1ebd44666b8fb63ac1097cb Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 3 Nov 2024 13:16:12 -0600 Subject: [PATCH 061/193] Laplace3D test --- test/test_recurrence.py | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 1001d61b0..048890b36 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -7,12 +7,35 @@ make_identity_diff_op, ) +def test_laplace_3D(): + w = make_identity_diff_op(3) + laplace3d = laplacian(w) + _, _, r = get_processed_and_shifted_recurrence(laplace3d) + n = sp.symbols("n") + s = sp.Function("s") + + var = _make_sympy_vec("x", 3) + var_t = _make_sympy_vec("t", 3) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2 + (var[2]-var_t[2])**2) + g_x_y = 1/abs_dist + derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0).subs(var_t[2], 0) for i in range(6)] + + check_2_s = r.subs(n, 2).subs(s(0), derivs[0]).subs(s(1), derivs[1]) - derivs[2] + check_3_s = r.subs(n, 3).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] + check_4_s = r.subs(n, 4).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] + check_5_s = r.subs(n, 5).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] + + assert abs(abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-15 + assert abs(abs(check_3_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-14 + assert abs(abs(check_4_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 + #print(abs(abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand())))) + assert abs(abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 def test_helmholtz_3D(): w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w - _,_, r = get_processed_and_shifted_recurrence(helmholtz3d) + _, _, r = get_processed_and_shifted_recurrence(helmholtz3d) n = sp.symbols("n") s = sp.Function("s") @@ -24,11 +47,18 @@ def test_helmholtz_3D(): derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0).subs(var_t[2], 0) for i in range(6)] - check_2_s = r.subs(n, 2).subs(s(1), derivs[1]).subs(s(0), derivs[0]) - derivs[2] - assert abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand())) <= 1e-12 + check_2_s = r.subs(n, 2).subs(s(0), derivs[0]).subs(s(1), derivs[1]) - derivs[2] + check_3_s = r.subs(n, 3).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] + check_4_s = r.subs(n, 4).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] + check_5_s = r.subs(n, 5).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] + + assert abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand())) <= 1e-15 + assert abs(abs(check_3_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-14 + assert abs(abs(check_4_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 + assert abs(abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 -test_helmholtz_3D() + From 3bbd2f3a126482adddd8e842da218e0e121212df Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 3 Nov 2024 17:58:28 -0600 Subject: [PATCH 062/193] Check Helmholtz2D --- test/playground.ipynb | 112 +++++++++++++++++++++++++++++++++++++++- test/test_recurrence.py | 26 +++++++++- 2 files changed, 134 insertions(+), 4 deletions(-) diff --git a/test/playground.ipynb b/test/playground.ipynb index 8b7fa717d..6fffa849b 100644 --- a/test/playground.ipynb +++ b/test/playground.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -12,7 +12,115 @@ "from sumpy.expansion.diff_op import (\n", " laplacian,\n", " make_identity_diff_op,\n", - ")\n" + ")\n", + "\n", + "from sumpy.recurrence import _make_sympy_vec\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "#Create Hankel Function\n", + "\n", + "from sympy import hankel1\n", + "z = sp.symbols(\"z\")\n", + "f = hankel1(0, z)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{H^{(1)}_{-1}\\left(z\\right)}{2} - \\frac{H^{(1)}_{1}\\left(z\\right)}{2}$" + ], + "text/plain": [ + "hankel1(-1, z)/2 - hankel1(1, z)/2" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "f.diff(z)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "k = 1\n", + "abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)\n", + "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0.25 i H^{(1)}_{0}\\left(\\sqrt{\\left(- t_{0} + x_{0}\\right)^{2} + \\left(- t_{1} + x_{1}\\right)^{2}}\\right)$" + ], + "text/plain": [ + "0.25*I*hankel1(0, sqrt((-t0 + x0)**2 + (-t1 + x1)**2))" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g_x_y" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(6)]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.25*I*hankel1(0, sqrt(x0**2 + x1**2)),\n", + " -0.25*I*x0*(hankel1(-1, sqrt(x0**2 + x1**2))/2 - hankel1(1, sqrt(x0**2 + x1**2))/2)/sqrt(x0**2 + x1**2),\n", + " 0.0625*I*(x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2)),\n", + " 0.03125*I*x0*(4*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2)),\n", + " -0.25*I*(-9*x0**4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(4*(x0**2 + x1**2)**3) + 15*x0**4*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(2*(x0**2 + x1**2)**(7/2)) + 9*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(4*(x0**2 + x1**2)**2) + x0**2*(4*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 4*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 12*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 12*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(16*sqrt(x0**2 + x1**2)) + 3*x0**2*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(8*(x0**2 + x1**2)**(3/2)) - 9*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 3*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(8*sqrt(x0**2 + x1**2)) + 3*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(2*(x0**2 + x1**2)**(3/2))),\n", + " 0.0078125*I*x0*(480*x0**4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 1680*x0**4*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 576*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 8*x0**2*(4*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 4*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 12*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 12*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 72*x0**2*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 2400*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 96*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 8*(4*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 4*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 12*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 12*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (36*x0**4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 36*x0**4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 120*x0**4*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 120*x0**4*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 36*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 36*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + x0**2*(-4*x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 4*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 12*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 12*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-x0**2*(hankel1(-5, sqrt(x0**2 + x1**2)) - 2*hankel1(-3, sqrt(x0**2 + x1**2)) + hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - hankel1(-2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-4, sqrt(x0**2 + x1**2)) - hankel1(-2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 12*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 12*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - x0**2*(-4*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 4*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 12*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 12*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 4*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - 2*hankel1(3, sqrt(x0**2 + x1**2)) + hankel1(5, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(2, sqrt(x0**2 + x1**2)) - hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(2, sqrt(x0**2 + x1**2)) - hankel1(4, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 12*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 12*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 6*x0**2*(-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 6*x0**2*(-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 144*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 144*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 6*(-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 6*(-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 24*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 24*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 72*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 720*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "derivs" ] }, { diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 048890b36..41051b27d 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -1,7 +1,7 @@ from sumpy.recurrence import get_processed_and_shifted_recurrence, _make_sympy_vec import sympy as sp import numpy as np - +from sympy import hankel1 from sumpy.expansion.diff_op import ( laplacian, make_identity_diff_op, @@ -59,11 +59,33 @@ def test_helmholtz_3D(): +def test_helmholtz_2D(): + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + w + _,_, r = get_processed_and_shifted_recurrence(laplace2d) + n = sp.symbols("n") + s = sp.Function("s") + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + k = 1 + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) + g_x_y = (1j/4) * hankel1(0, k * abs_dist) + x_coord = np.random.rand() + y_coord = np.random.rand() + derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(6)] + derivs = [derivs[i].subs(var[0], x_coord).subs(var[1], y_coord).evalf() for i in range(6)] + check_2_s = r.subs(n, 2).subs(s(0), derivs[0]).subs(s(1), derivs[1]) - derivs[2] + check_3_s = r.subs(n, 3).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] + check_4_s = r.subs(n, 4).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] + check_5_s = r.subs(n, 5).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] - + assert abs(check_2_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 + assert abs(check_3_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 + assert abs(check_4_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 + assert abs(check_5_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 def test_laplace_2D(): w = make_identity_diff_op(2) From a33bd51af49ded958c05f51e5994b6f7ee283568 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 3 Nov 2024 18:05:19 -0600 Subject: [PATCH 063/193] Added helmholtz2D test --- test/test_recurrenceqbx.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index bff616941..5fdeeebe9 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -1,26 +1,22 @@ +import numpy as np + from sumpy.expansion.diff_op import ( laplacian, make_identity_diff_op, ) from sumpy.recurrenceqbx import recurrence_qbx_lp, _make_sympy_vec - -import numpy as np from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion - +from sumpy.kernel import LaplaceKernel +from sumpy.qbx import LayerPotential actx_factory = _acf expn_class = LineTaylorLocalExpansion actx = actx_factory() - -from sumpy.kernel import LaplaceKernel lknl = LaplaceKernel(2) -from sumpy.qbx import LayerPotential - - -def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): +def _qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): lpot = LayerPotential(actx.context, expansion=expn_class(lknl, order), target_kernels=(lknl,), @@ -42,7 +38,7 @@ def qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): return result_qbx -def create_ellipse(n_p): +def _create_ellipse(n_p): h = 9.688 / n_p radius = 7*h t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) @@ -73,10 +69,10 @@ def test_recurrence_laplace_2d_ellipse(): p = 4 err = [] for n_p in range(200, 1001, 200): - sources, centers, normals, density, h, radius = create_ellipse(n_p) + sources, centers, normals, density, h, radius = _create_ellipse(n_p) strengths = h * density exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, p) - qbx_res = qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) + qbx_res = _qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) err.append(np.max(exp_res - qbx_res)) From 310df005801775f3a1e2a080049b9743b9f61346 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 3 Nov 2024 18:30:24 -0600 Subject: [PATCH 064/193] Make recurrenceqbx general --- sumpy/recurrenceqbx.py | 29 +++++++++++++++++------------ test/test_recurrenceqbx.py | 9 +++++---- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index b620c6fb2..a316f8a7e 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -7,12 +7,14 @@ """ import numpy as np import sympy as sp +import math from sumpy.recurrence import ( _make_sympy_vec, get_processed_and_shifted_recurrence) + # ================ Transform/Rotate ================= -def __produce_orthogonal_basis(normals): +def _produce_orthogonal_basis(normals): ndim, ncenters = normals.shape orth_coordsys = [normals] for i in range(1, ndim): @@ -26,10 +28,10 @@ def __produce_orthogonal_basis(normals): return orth_coordsys -def __compute_rotated_shifted_coordinates(sources, centers, normals): +def _compute_rotated_shifted_coordinates(sources, centers, normals): cts = sources[:, None] - centers[:, :, None] - orth_coordsys = __produce_orthogonal_basis(normals) + orth_coordsys = _produce_orthogonal_basis(normals) cts_rotated_shifted = np.einsum("idc,dcs->ics", orth_coordsys, cts) return cts_rotated_shifted @@ -37,7 +39,7 @@ def __compute_rotated_shifted_coordinates(sources, centers, normals): # ================ Recurrence LP Eval ================= def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, - p) -> np.ndarray: + ndim, p) -> np.ndarray: r""" A function that computes a single-layer potential using a recurrence. @@ -50,16 +52,17 @@ def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, :arg pde: pde that we are computing layer potential for :arg g_x_y: a green's function in (x0, x1, ...) source and (t0, t1, ...) target + :arg ndim: number of spatial variables :arg p: order of expansion computed """ #------------- 2. Compute rotated/shifted coordinates - cts_r_s = __compute_rotated_shifted_coordinates(sources, centers, normals) + cts_r_s = _compute_rotated_shifted_coordinates(sources, centers, normals) #------------- 4. Define input variables for green's function expression - var = _make_sympy_vec("x", 2) - var_t = _make_sympy_vec("t", 2) + var = _make_sympy_vec("x", ndim) + var_t = _make_sympy_vec("t", ndim) #------------ 5. Compute recurrence n_initial, order, recurrence = get_processed_and_shifted_recurrence(pde) @@ -80,21 +83,23 @@ def generate_lamb_expr(i, n_initial): arg_list.append(r) if i < n_initial: - lamb_expr = sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + lamb_expr = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr = lamb_expr.subs(var_t[j], 0) else: lamb_expr = recurrence.subs(n, i) return sp.lambdify(arg_list, lamb_expr) - interactions_2d = 0 + interactions = 0 for i in range(p+1): lamb_expr = generate_lamb_expr(i, n_initial) - a = storage[-4:] + [cts_r_s[0],cts_r_s[1],radius] + a = storage + [cts_r_s[0],cts_r_s[1],radius] s_new = lamb_expr(*a) - interactions_2d += s_new * radius**i/math.factorial(i) + interactions += s_new * radius**i/math.factorial(i) storage.pop(0) storage.append(s_new) - exp_res = (interactions_2d * strengths[None, :]).sum(axis=1) + exp_res = (interactions * strengths[None, :]).sum(axis=1) return exp_res \ No newline at end of file diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 5fdeeebe9..4d219cb86 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -1,4 +1,5 @@ import numpy as np +import sympy as sp from sumpy.expansion.diff_op import ( laplacian, @@ -71,10 +72,10 @@ def test_recurrence_laplace_2d_ellipse(): for n_p in range(200, 1001, 200): sources, centers, normals, density, h, radius = _create_ellipse(n_p) strengths = h * density - exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, p) + exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) qbx_res = _qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) - err.append(np.max(exp_res - qbx_res)) - - print(err) + err.append(np.max(np.abs(exp_res - qbx_res))) + assert np.max(err) <= 1e-13 +test_recurrence_laplace_2d_ellipse() From e08fd824cb46408230d3ca7dc0ddf94eb8ddf5d2 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 3 Nov 2024 18:52:06 -0600 Subject: [PATCH 065/193] Helmholtz not checked --- test/test_recurrence.py | 4 +-- test/test_recurrenceqbx.py | 54 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 41051b27d..1914ab549 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -61,8 +61,8 @@ def test_helmholtz_3D(): def test_helmholtz_2D(): w = make_identity_diff_op(2) - laplace2d = laplacian(w) + w - _,_, r = get_processed_and_shifted_recurrence(laplace2d) + helmholtz2d = laplacian(w) + w + _,_, r = get_processed_and_shifted_recurrence(helmholtz2d) n = sp.symbols("n") s = sp.Function("s") diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 4d219cb86..0e19faf3c 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -1,5 +1,6 @@ import numpy as np import sympy as sp +from sympy import hankel1 from sumpy.expansion.diff_op import ( laplacian, @@ -8,7 +9,7 @@ from sumpy.recurrenceqbx import recurrence_qbx_lp, _make_sympy_vec from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion -from sumpy.kernel import LaplaceKernel +from sumpy.kernel import LaplaceKernel, HelmholtzKernel from sumpy.qbx import LayerPotential actx_factory = _acf @@ -16,6 +17,31 @@ actx = actx_factory() lknl = LaplaceKernel(2) +hlknl = HelmholtzKernel(2, "k") + +def _qbx_lp_helmholtz_general(sources,targets,centers,radius,strengths,order): + lpot = LayerPotential(actx.context, + expansion=expn_class(hlknl, order), + target_kernels=(hlknl,), + source_kernels=(hlknl,)) + + #print(lpot.get_kernel()) + expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) + sources = actx.from_numpy(sources) + targets = actx.from_numpy(targets) + centers = actx.from_numpy(centers) + + strengths = (strengths,) + extra_kernel_kwargs={"k": 1} + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii, + kwargs=extra_kernel_kwargs) + result_qbx = actx.to_numpy(result_qbx) + + return result_qbx + def _qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): lpot = LayerPotential(actx.context, @@ -78,4 +104,28 @@ def test_recurrence_laplace_2d_ellipse(): err.append(np.max(np.abs(exp_res - qbx_res))) assert np.max(err) <= 1e-13 -test_recurrence_laplace_2d_ellipse() + +def test_recurrence_helmholtz_2d_ellipse(): + + #------------- 1. Define PDE, Green's Function + w = make_identity_diff_op(2) + helmholtz2d = laplacian(w) + w + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + k = 1 + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) + g_x_y = (1j/4) * hankel1(0, k * abs_dist) + + p = 4 + err = [] + for n_p in range(200, 1001, 200): + sources, centers, normals, density, h, radius = _create_ellipse(n_p) + strengths = h * density + exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) + #qbx_res = _qbx_lp_helmholtz_general(sources, sources, centers, radius, strengths, p) + #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) + #err.append(np.max(np.abs(exp_res - qbx_res))) + #assert np.max(err) <= 1e-13 + +test_recurrence_helmholtz_2d_ellipse() From dcd96e76052ea1ebd65777b8d62723b1658b2fef Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 3 Nov 2024 19:39:14 -0600 Subject: [PATCH 066/193] Ruff formatting --- sumpy/recurrence.py | 21 ++++++++---------- sumpy/recurrenceqbx.py | 48 ++++++++++++++++++++++++------------------ 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 6468a794a..e77ad901a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -61,16 +61,14 @@ """ import math -from random import randrange import numpy as np import sympy as sp from pytools.obj_array import make_obj_array - from sumpy.expansion.diff_op import ( DerivativeIdentifier, - LinearPDESystemOperator + LinearPDESystemOperator, ) @@ -188,7 +186,7 @@ def ode_in_r_to_x(ode_in_r: sp.Expr, var: np.ndarray, ODECoefficients = list[list[sp.Expr]] -def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, var: +def ode_in_x_to_coeff_array(poly: sp.Poly, ode_order: int, var: np.ndarray) -> ODECoefficients: r""" Organizes the coefficients of an ODE in the :math:`x_0` variable into a @@ -310,15 +308,15 @@ def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: # Re-arrange the recurrence relation so we get s(n) = ____ # in terms of s(n-1), ... - true_recurrence = sum([coeffs[i]/coeffs[-1] * terms[i] - for i in range(0, len(terms)-1)]) + true_recurrence = sum(coeffs[i]/coeffs[-1] * terms[i] + for i in range(0, len(terms)-1)) true_recurrence1 = true_recurrence.subs(n, n-shift_idx) return order, true_recurrence1 def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, - np.ndarray]: + np.ndarray]: r""" Given a recurrence extracts the variables in the recurrence as well as the indexes in sorted order. @@ -328,7 +326,6 @@ def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, terms = list(r.atoms(sp.Function)) terms = np.array(terms) - idx_l = [] for i in range(len(terms)): tms = list(terms[i].atoms(sp.Number)) @@ -336,7 +333,7 @@ def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, idx_l.append(tms[0]) else: idx_l.append(0) - idx_l = np.array(idx_l, dtype='int') + idx_l = np.array(idx_l, dtype="int") idx_sort = idx_l.argsort() idx_l = idx_l[idx_sort] terms = terms[idx_sort] @@ -380,7 +377,7 @@ def shift_recurrence(r: sp.Expr) -> sp.Expr: r_ret = r - n = sp.symbols('n') + n = sp.symbols("n") for i in range(len(idx_l)): r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) @@ -388,7 +385,7 @@ def shift_recurrence(r: sp.Expr) -> sp.Expr: def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, - sp.Expr]: + sp.Expr]: r""" A function that "shifts" the recurrence so the expansion center is placed at the origin and source is the input for the recurrence generated. @@ -399,4 +396,4 @@ def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, order, r_p = process_recurrence_relation(r) n_initial = __get_initial_c(r_p) r_s = shift_recurrence(r_p) - return n_initial, order, r_s \ No newline at end of file + return n_initial, order, r_s diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index a316f8a7e..083a28fbf 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -1,16 +1,21 @@ r""" With the functionality in this module, we aim to compute layer potentials -using a recurrence for one-dimensional derivatives of the corresponding +using a recurrence for one-dimensional derivatives of the corresponding Green's function. See recurrence.py. .. autofunction:: recurrence_qbx_lp """ +from __future__ import annotations # noqa: I001 + +import math + import numpy as np import sympy as sp -import math + from sumpy.recurrence import ( - _make_sympy_vec, - get_processed_and_shifted_recurrence) + _make_sympy_vec, + get_processed_and_shifted_recurrence +) # ================ Transform/Rotate ================= @@ -18,10 +23,11 @@ def _produce_orthogonal_basis(normals): ndim, ncenters = normals.shape orth_coordsys = [normals] for i in range(1, ndim): - v = np.random.rand(ndim, ncenters) + v = np.random.rand(ndim, ncenters) # noqa: NPY002 v = v/np.linalg.norm(v, 2, axis=0) for j in range(i): - v = v - np.einsum("dc,dc->c", v, orth_coordsys[j]) * orth_coordsys[j] + v = v - np.einsum("dc,dc->c", v, + orth_coordsys[j]) * orth_coordsys[j] v = v/np.linalg.norm(v, 2, axis=0) orth_coordsys.append(v) @@ -39,61 +45,61 @@ def _compute_rotated_shifted_coordinates(sources, centers, normals): # ================ Recurrence LP Eval ================= def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, - ndim, p) -> np.ndarray: + ndim, p) -> np.ndarray: r""" A function that computes a single-layer potential using a recurrence. :arg sources: a (ndim, nsources) array of source locations :arg centers: a (ndim, ncenters) array of center locations :arg normals: a (ndim, ncenters) array of normals - :arg strengths: array corresponding to quadrature weight multiplied by + :arg strengths: array corresponding to quadrature weight multiplied by density :arg radius: expansion radius :arg pde: pde that we are computing layer potential for - :arg g_x_y: a green's function in (x0, x1, ...) source and + :arg g_x_y: a green's function in (x0, x1, ...) source and (t0, t1, ...) target :arg ndim: number of spatial variables :arg p: order of expansion computed """ - #------------- 2. Compute rotated/shifted coordinates + # ------------- 2. Compute rotated/shifted coordinates cts_r_s = _compute_rotated_shifted_coordinates(sources, centers, normals) - - #------------- 4. Define input variables for green's function expression + # ------------- 4. Define input variables for green's function expression var = _make_sympy_vec("x", ndim) var_t = _make_sympy_vec("t", ndim) - #------------ 5. Compute recurrence + # ------------ 5. Compute recurrence n_initial, order, recurrence = get_processed_and_shifted_recurrence(pde) - #------------ 6. Set order p = 5 + # ------------ 6. Set order p = 5 n_p = sources.shape[1] - storage = [np.zeros((n_p,n_p))] * order + storage = [np.zeros((n_p, n_p))] * order s = sp.Function("s") - r,n = sp.symbols("r,n") + r, n = sp.symbols("r,n") def generate_lamb_expr(i, n_initial): arg_list = [] - for j in range(order,0,-1): + for j in range(order, 0, -1): + # pylint: disable-next=not-callable arg_list.append(s(i-j)) arg_list.append(var[0]) arg_list.append(var[1]) arg_list.append(r) - + if i < n_initial: lamb_expr = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr = lamb_expr.subs(var_t[j], 0) else: lamb_expr = recurrence.subs(n, i) - return sp.lambdify(arg_list, lamb_expr) + return sp.lambdify(arg_list, lamb_expr) interactions = 0 for i in range(p+1): lamb_expr = generate_lamb_expr(i, n_initial) - a = storage + [cts_r_s[0],cts_r_s[1],radius] + a = [*storage, cts_r_s[0], cts_r_s[1], radius] s_new = lamb_expr(*a) interactions += s_new * radius**i/math.factorial(i) @@ -102,4 +108,4 @@ def generate_lamb_expr(i, n_initial): exp_res = (interactions * strengths[None, :]).sum(axis=1) - return exp_res \ No newline at end of file + return exp_res From f79b6d9220008748af552d902d8ea232576ac66f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 12:10:26 -0600 Subject: [PATCH 067/193] Formatting --- test/test_recurrence.py | 194 ++++++++++++++++++++++++------------- test/test_recurrenceqbx.py | 128 +++++++++++++----------- 2 files changed, 202 insertions(+), 120 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 1914ab549..5331604e2 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -1,13 +1,28 @@ -from sumpy.recurrence import get_processed_and_shifted_recurrence, _make_sympy_vec -import sympy as sp +r""" +With the functionality in this module, we aim to test recurrence +code. + +.. autofunction:: test_laplace3d +.. autofunction:: test_helmholtz3d +.. autofunction:: test_laplace2d +""" +from __future__ import annotations + import numpy as np -from sympy import hankel1 +import sympy as sp + +# from sympy import hankel1 from sumpy.expansion.diff_op import ( laplacian, make_identity_diff_op, ) +from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence + -def test_laplace_3D(): +def test_laplace3d(): + r""" + Tests recurrence code for orders up to 6 laplace3d. + """ w = make_identity_diff_op(3) laplace3d = laplacian(w) _, _, r = get_processed_and_shifted_recurrence(laplace3d) @@ -16,23 +31,41 @@ def test_laplace_3D(): var = _make_sympy_vec("x", 3) var_t = _make_sympy_vec("t", 3) - abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2 + (var[2]-var_t[2])**2) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2 + (var[2]-var_t[2])**2) g_x_y = 1/abs_dist - derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0).subs(var_t[2], 0) for i in range(6)] - - check_2_s = r.subs(n, 2).subs(s(0), derivs[0]).subs(s(1), derivs[1]) - derivs[2] - check_3_s = r.subs(n, 3).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] - check_4_s = r.subs(n, 4).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] - check_5_s = r.subs(n, 5).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] - - assert abs(abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-15 - assert abs(abs(check_3_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-14 - assert abs(abs(check_4_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 - #print(abs(abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand())))) - assert abs(abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 - - -def test_helmholtz_3D(): + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0).subs(var_t[2], 0) + for i in range(6)] + + # pylint: disable-next=not-callable + subs_dict = {s(0): derivs[0], s(1): derivs[1]} + check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] + # pylint: disable-next=not-callable + subs_dict[s(2)] = derivs[2] + check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] + # pylint: disable-next=not-callable + subs_dict[s(3)] = derivs[3] + check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] + # pylint: disable-next=not-callable + subs_dict[s(4)] = derivs[4] + check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + + x_coord = np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + z_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord, var[2]: z_coord} + + assert abs(check_2_s.subs(coord_dict)) <= 1e-15 + assert abs(check_3_s.subs(coord_dict)) <= 1e-14 + assert abs(check_4_s.subs(coord_dict)) <= 1e-12 + assert abs(check_5_s.subs(coord_dict)) <= 1e-12 + + +def test_helmholtz3d(): + r""" + Tests recurrence code for orders up to 6 helmholtz3d. + """ w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w _, _, r = get_processed_and_shifted_recurrence(helmholtz3d) @@ -42,27 +75,43 @@ def test_helmholtz_3D(): var = _make_sympy_vec("x", 3) var_t = _make_sympy_vec("t", 3) - abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2 + (var[2]-var_t[2])**2) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2 + (var[2]-var_t[2])**2) g_x_y = sp.exp(1j * abs_dist) / abs_dist - derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0).subs(var_t[2], 0) for i in range(6)] - - - check_2_s = r.subs(n, 2).subs(s(0), derivs[0]).subs(s(1), derivs[1]) - derivs[2] - check_3_s = r.subs(n, 3).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] - check_4_s = r.subs(n, 4).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] - check_5_s = r.subs(n, 5).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] - - assert abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand())) <= 1e-15 - assert abs(abs(check_3_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-14 - assert abs(abs(check_4_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 - assert abs(abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).subs(var[2], np.random.rand()))) <= 1e-12 - - - -def test_helmholtz_2D(): + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0).subs(var_t[2], 0) + for i in range(6)] + + # pylint: disable-next=not-callable + subs_dict = {s(0): derivs[0], s(1): derivs[1]} + check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] + # pylint: disable-next=not-callable + subs_dict[s(2)] = derivs[2] + check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] + # pylint: disable-next=not-callable + subs_dict[s(3)] = derivs[3] + check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] + # pylint: disable-next=not-callable + subs_dict[s(4)] = derivs[4] + check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + + x_coord = np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + z_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord, var[2]: z_coord} + + assert abs(abs(check_2_s.subs(coord_dict))) <= 1e-15 + assert abs(abs(check_3_s.subs(coord_dict))) <= 1e-14 + assert abs(abs(check_4_s.subs(coord_dict))) <= 1e-12 + assert abs(abs(check_5_s.subs(coord_dict))) <= 1e-12 + + +def test_helmholtz2d(): + r""" + Tests recurrence code for orders up to 6 helmholtz2d. w = make_identity_diff_op(2) helmholtz2d = laplacian(w) + w - _,_, r = get_processed_and_shifted_recurrence(helmholtz2d) + _, _, r = get_processed_and_shifted_recurrence(helmholtz2d) n = sp.symbols("n") s = sp.Function("s") @@ -74,23 +123,21 @@ def test_helmholtz_2D(): g_x_y = (1j/4) * hankel1(0, k * abs_dist) x_coord = np.random.rand() y_coord = np.random.rand() - derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(6)] - derivs = [derivs[i].subs(var[0], x_coord).subs(var[1], y_coord).evalf() for i in range(6)] - - check_2_s = r.subs(n, 2).subs(s(0), derivs[0]).subs(s(1), derivs[1]) - derivs[2] - check_3_s = r.subs(n, 3).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] - check_4_s = r.subs(n, 4).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] - check_5_s = r.subs(n, 5).subs(s(0), derivs[0]).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] - - assert abs(check_2_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 - assert abs(check_3_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 - assert abs(check_4_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 - assert abs(check_5_s.subs(var[0],x_coord).subs(var[1],y_coord)) <= 1e-12 - -def test_laplace_2D(): + derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(6)] + derivs = [derivs[i].subs(var[0], x_coord).subs(var[1], y_coord).evalf() + for i in range(6)] + """ + print("HELLO!") + + +def test_laplace2d(): + r""" + Tests recurrence code for orders up to 6 laplace2d. + """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - _,_, r = get_processed_and_shifted_recurrence(laplace2d) + _, _, r = get_processed_and_shifted_recurrence(laplace2d) n = sp.symbols("n") s = sp.Function("s") @@ -98,16 +145,31 @@ def test_laplace_2D(): var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) - derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(6)] - - check_2_s = r.subs(n, 2).subs(s(1), derivs[1]) - derivs[2] - check_3_s = r.subs(n, 3).subs(s(1), derivs[1]).subs(s(2), derivs[2]) - derivs[3] - check_4_s = r.subs(n, 4).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]) - derivs[4] - check_5_s = r.subs(n, 5).subs(s(1), derivs[1]).subs(s(2), derivs[2]).subs(s(3), derivs[3]).subs(s(4), derivs[4]) - derivs[5] - - assert abs(check_2_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-15 - assert abs(check_3_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-14 - assert abs(check_4_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-12 - assert abs(check_5_s.subs(var[0], np.random.rand()).subs(var[1], np.random.rand())) <= 1e-12 - - + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(6)] + + # pylint: disable-next=not-callable + subs_dict = {s(0): derivs[0], s(1): derivs[1]} + check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] + # pylint: disable-next=not-callable + subs_dict[s(2)] = derivs[2] + check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] + # pylint: disable-next=not-callable + subs_dict[s(3)] = derivs[3] + check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] + # pylint: disable-next=not-callable + subs_dict[s(4)] = derivs[4] + check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + + x_coord = np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord} + + assert abs(abs(check_2_s.subs(coord_dict))) <= 1e-15 + assert abs(abs(check_3_s.subs(coord_dict))) <= 1e-14 + assert abs(abs(check_4_s.subs(coord_dict))) <= 1e-12 + assert abs(abs(check_5_s.subs(coord_dict))) <= 1e-12 + + +test_laplace2d() diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 0e19faf3c..6ca09f2e2 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -1,69 +1,78 @@ +r""" +With the functionality in this module, we aim to test recurrence +code. +""" +from __future__ import annotations + import numpy as np import sympy as sp -from sympy import hankel1 +# from sympy import hankel1 +from sumpy.array_context import _acf from sumpy.expansion.diff_op import ( laplacian, make_identity_diff_op, ) -from sumpy.recurrenceqbx import recurrence_qbx_lp, _make_sympy_vec -from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf # noqa: F401 -from sumpy.expansion.local import LineTaylorLocalExpansion, VolumeTaylorLocalExpansion -from sumpy.kernel import LaplaceKernel, HelmholtzKernel +from sumpy.expansion.local import LineTaylorLocalExpansion +from sumpy.kernel import HelmholtzKernel, LaplaceKernel from sumpy.qbx import LayerPotential +from sumpy.recurrenceqbx import _make_sympy_vec, recurrence_qbx_lp + actx_factory = _acf -expn_class = LineTaylorLocalExpansion +ExpnClass = LineTaylorLocalExpansion actx = actx_factory() lknl = LaplaceKernel(2) hlknl = HelmholtzKernel(2, "k") -def _qbx_lp_helmholtz_general(sources,targets,centers,radius,strengths,order): - lpot = LayerPotential(actx.context, - expansion=expn_class(hlknl, order), - target_kernels=(hlknl,), - source_kernels=(hlknl,)) - #print(lpot.get_kernel()) - expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) - sources = actx.from_numpy(sources) - targets = actx.from_numpy(targets) - centers = actx.from_numpy(centers) +def _qbx_lp_helmholtz_general(sources, targets, centers, radius, strengths, order): + lpot = LayerPotential(actx.context, + expansion=ExpnClass(hlknl, order), + target_kernels=(hlknl,), + source_kernels=(hlknl,)) + + # print(lpot.get_kernel()) + expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) + sources = actx.from_numpy(sources) + targets = actx.from_numpy(targets) + centers = actx.from_numpy(centers) - strengths = (strengths,) - extra_kernel_kwargs={"k": 1} - _evt, (result_qbx,) = lpot( - actx.queue, - targets, sources, centers, strengths, - expansion_radii=expansion_radii, - kwargs=extra_kernel_kwargs) - result_qbx = actx.to_numpy(result_qbx) + strengths = (strengths,) + extra_kernel_kwargs = {"k": 1} + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii, + kwargs=extra_kernel_kwargs) + result_qbx = actx.to_numpy(result_qbx) - return result_qbx + return result_qbx -def _qbx_lp_laplace_general(sources,targets,centers,radius,strengths,order): - lpot = LayerPotential(actx.context, - expansion=expn_class(lknl, order), - target_kernels=(lknl,), - source_kernels=(lknl,)) +def _qbx_lp_laplace_general(sources, targets, centers, radius, strengths, order): + lpot = LayerPotential(actx.context, + expansion=ExpnClass(lknl, order), + target_kernels=(lknl,), + source_kernels=(lknl,)) - #print(lpot.get_kernel()) - expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) - sources = actx.from_numpy(sources) - targets = actx.from_numpy(targets) - centers = actx.from_numpy(centers) + # print(lpot.get_kernel()) + expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) + sources = actx.from_numpy(sources) + targets = actx.from_numpy(targets) + centers = actx.from_numpy(centers) - strengths = (strengths,) + strengths = (strengths,) - _evt, (result_qbx,) = lpot( - actx.queue, - targets, sources, centers, strengths, - expansion_radii=expansion_radii) - result_qbx = actx.to_numpy(result_qbx) + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii) + result_qbx = actx.to_numpy(result_qbx) + + return result_qbx - return result_qbx def _create_ellipse(n_p): h = 9.688 / n_p @@ -83,31 +92,40 @@ def _create_ellipse(n_p): return sources, centers, normals, density, h, radius + def test_recurrence_laplace_2d_ellipse(): + r""" + Tests recurrence code for orders up to 6 laplace3d. + """ - #------------- 1. Define PDE, Green's Function + # ------------- 1. Define PDE, Green's Function w = make_identity_diff_op(2) laplace2d = laplacian(w) var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) - g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2)) p = 4 err = [] for n_p in range(200, 1001, 200): sources, centers, normals, density, h, radius = _create_ellipse(n_p) strengths = h * density - exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) - qbx_res = _qbx_lp_laplace_general(sources, sources, centers, radius, strengths, p) - #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) + exp_res = recurrence_qbx_lp(sources, centers, normals, + strengths, radius, laplace2d, + g_x_y, 2, p) + qbx_res = _qbx_lp_laplace_general(sources, sources, centers, + radius, strengths, p) + # qbx_res,_ = lpot_eval_circle(sources.shape[1], p) err.append(np.max(np.abs(exp_res - qbx_res))) assert np.max(err) <= 1e-13 def test_recurrence_helmholtz_2d_ellipse(): - - #------------- 1. Define PDE, Green's Function + r""" + Tests recurrence code for orders up to 6 laplace3d. + # ------------- 1. Define PDE, Green's Function w = make_identity_diff_op(2) helmholtz2d = laplacian(w) + w @@ -118,14 +136,16 @@ def test_recurrence_helmholtz_2d_ellipse(): g_x_y = (1j/4) * hankel1(0, k * abs_dist) p = 4 - err = [] + # err = [] for n_p in range(200, 1001, 200): sources, centers, normals, density, h, radius = _create_ellipse(n_p) strengths = h * density - exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) - #qbx_res = _qbx_lp_helmholtz_general(sources, sources, centers, radius, strengths, p) + exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, + radius, helmholtz2d, g_x_y, 2, p) + #qbx_res = _qbx_lp_helmholtz_general(sources, sources, centers, + # radius, strengths, p) #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) #err.append(np.max(np.abs(exp_res - qbx_res))) #assert np.max(err) <= 1e-13 - -test_recurrence_helmholtz_2d_ellipse() + """ + print("Hello") From b0a6c0fba98a7f533c65877d2d64d4623dafbe20 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 12:13:55 -0600 Subject: [PATCH 068/193] Delete playground.ipynb --- test/playground.ipynb | 155 ------------------------------------------ 1 file changed, 155 deletions(-) delete mode 100644 test/playground.ipynb diff --git a/test/playground.ipynb b/test/playground.ipynb deleted file mode 100644 index 6fffa849b..000000000 --- a/test/playground.ipynb +++ /dev/null @@ -1,155 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "import sympy as sp\n", - "import numpy as np\n", - "\n", - "from sumpy.expansion.diff_op import (\n", - " laplacian,\n", - " make_identity_diff_op,\n", - ")\n", - "\n", - "from sumpy.recurrence import _make_sympy_vec\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "#Create Hankel Function\n", - "\n", - "from sympy import hankel1\n", - "z = sp.symbols(\"z\")\n", - "f = hankel1(0, z)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{H^{(1)}_{-1}\\left(z\\right)}{2} - \\frac{H^{(1)}_{1}\\left(z\\right)}{2}$" - ], - "text/plain": [ - "hankel1(-1, z)/2 - hankel1(1, z)/2" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "f.diff(z)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "k = 1\n", - "abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)\n", - "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0.25 i H^{(1)}_{0}\\left(\\sqrt{\\left(- t_{0} + x_{0}\\right)^{2} + \\left(- t_{1} + x_{1}\\right)^{2}}\\right)$" - ], - "text/plain": [ - "0.25*I*hankel1(0, sqrt((-t0 + x0)**2 + (-t1 + x1)**2))" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g_x_y" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(6)]" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[0.25*I*hankel1(0, sqrt(x0**2 + x1**2)),\n", - " -0.25*I*x0*(hankel1(-1, sqrt(x0**2 + x1**2))/2 - hankel1(1, sqrt(x0**2 + x1**2))/2)/sqrt(x0**2 + x1**2),\n", - " 0.0625*I*(x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2)),\n", - " 0.03125*I*x0*(4*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2)),\n", - " -0.25*I*(-9*x0**4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(4*(x0**2 + x1**2)**3) + 15*x0**4*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(2*(x0**2 + x1**2)**(7/2)) + 9*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(4*(x0**2 + x1**2)**2) + x0**2*(4*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 4*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 12*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 12*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(16*sqrt(x0**2 + x1**2)) + 3*x0**2*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(8*(x0**2 + x1**2)**(3/2)) - 9*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 3*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(8*sqrt(x0**2 + x1**2)) + 3*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(2*(x0**2 + x1**2)**(3/2))),\n", - " 0.0078125*I*x0*(480*x0**4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 1680*x0**4*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 576*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 8*x0**2*(4*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 4*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 12*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 12*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 72*x0**2*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 2400*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 96*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 8*(4*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 4*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 12*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 12*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 12*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 12*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (36*x0**4*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 36*x0**4*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 120*x0**4*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 120*x0**4*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 36*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 36*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + x0**2*(-4*x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 4*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 12*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 12*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-x0**2*(hankel1(-5, sqrt(x0**2 + x1**2)) - 2*hankel1(-3, sqrt(x0**2 + x1**2)) + hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - hankel1(-2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-4, sqrt(x0**2 + x1**2)) - hankel1(-2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 12*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 12*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - x0**2*(-4*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 4*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 12*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 12*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 4*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - 2*hankel1(3, sqrt(x0**2 + x1**2)) + hankel1(5, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(2, sqrt(x0**2 + x1**2)) - hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(2, sqrt(x0**2 + x1**2)) - hankel1(4, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 12*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 12*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 6*x0**2*(-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 6*x0**2*(-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 144*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 144*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 6*(-x0**2*(hankel1(-4, sqrt(x0**2 + x1**2)) - 2*hankel1(-2, sqrt(x0**2 + x1**2)) + hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-3, sqrt(x0**2 + x1**2)) - hankel1(-1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 6*(-x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - 2*hankel1(0, sqrt(x0**2 + x1**2)) + hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - 2*hankel1(2, sqrt(x0**2 + x1**2)) + hankel1(4, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2*x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*x0**2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2*(hankel1(1, sqrt(x0**2 + x1**2)) - hankel1(3, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 24*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 24*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 72*(x0**2*(hankel1(-3, sqrt(x0**2 + x1**2)) - 2*hankel1(-1, sqrt(x0**2 + x1**2)) + hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - x0**2*(hankel1(-1, sqrt(x0**2 + x1**2)) - 2*hankel1(1, sqrt(x0**2 + x1**2)) + hankel1(3, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 2*x0**2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*x0**2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 2*(hankel1(-2, sqrt(x0**2 + x1**2)) - hankel1(0, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 2*(hankel1(0, sqrt(x0**2 + x1**2)) - hankel1(2, sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 720*(hankel1(-1, sqrt(x0**2 + x1**2)) - hankel1(1, sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))]" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From e4627fd6a1242e9509072e78cb9d93dd51f8be74 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 12:56:31 -0600 Subject: [PATCH 069/193] Updated helmholtz2d to deal with inefficiecy --- sumpy/recurrence.py | 1 + test/test_recurrence.py | 46 ++++++++++++++++++++++++++++++++--------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index e77ad901a..e2974e8b2 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -323,6 +323,7 @@ def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, :arg r: recurrence to extract terms from """ + # We're assuming here that s(...) are the only function calls. terms = list(r.atoms(sp.Function)) terms = np.array(terms) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 5331604e2..9845655a0 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -10,8 +10,8 @@ import numpy as np import sympy as sp +from sympy import hankel1 -# from sympy import hankel1 from sumpy.expansion.diff_op import ( laplacian, make_identity_diff_op, @@ -109,6 +109,7 @@ def test_helmholtz3d(): def test_helmholtz2d(): r""" Tests recurrence code for orders up to 6 helmholtz2d. + """ w = make_identity_diff_op(2) helmholtz2d = laplacian(w) + w _, _, r = get_processed_and_shifted_recurrence(helmholtz2d) @@ -118,17 +119,39 @@ def test_helmholtz2d(): var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2) k = 1 - abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) g_x_y = (1j/4) * hankel1(0, k * abs_dist) - x_coord = np.random.rand() - y_coord = np.random.rand() - derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(6)] - derivs = [derivs[i].subs(var[0], x_coord).subs(var[1], y_coord).evalf() - for i in range(6)] - """ - print("HELLO!") + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(6)] + x_coord = np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord} + derivs = [derivs[i].subs(coord_dict) for i in range(6)] + + # pylint: disable-next=not-callable + subs_dict = {s(0): derivs[0], s(1): derivs[1]} + check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] + # pylint: disable-next=not-callable + subs_dict[s(2)] = derivs[2] + check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] + # pylint: disable-next=not-callable + subs_dict[s(3)] = derivs[3] + check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] + # pylint: disable-next=not-callable + subs_dict[s(4)] = derivs[4] + check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + + f2 = sp.lambdify([var[0], var[1]], check_2_s) + assert abs(f2(x_coord, y_coord)) <= 1e-13 + f3 = sp.lambdify([var[0], var[1]], check_3_s) + assert abs(f3(x_coord, y_coord)) <= 1e-13 + f4 = sp.lambdify([var[0], var[1]], check_4_s) + assert abs(f4(x_coord, y_coord)) <= 1e-13 + f5 = sp.lambdify([var[0], var[1]], check_5_s) + assert abs(f5(x_coord, y_coord)) <= 1e-12 def test_laplace2d(): @@ -173,3 +196,6 @@ def test_laplace2d(): test_laplace2d() +test_helmholtz2d() +test_helmholtz3d() +test_laplace3d() From 81e1fb62696fb70c8f9359b05e00669d3fb6481b Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 13:56:09 -0600 Subject: [PATCH 070/193] Update recurrence.py --- sumpy/recurrence.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index e2974e8b2..c553f019a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -319,7 +319,7 @@ def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, np.ndarray]: r""" Given a recurrence extracts the variables in the recurrence - as well as the indexes in sorted order. + as well as the indexes, both in sorted order. :arg r: recurrence to extract terms from """ @@ -342,7 +342,7 @@ def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, return idx_l, terms -def __check_neg_ind(r_n): +def _check_neg_ind(r_n): r""" Simply checks if a negative index exists in a recurrence relation. """ @@ -352,7 +352,7 @@ def __check_neg_ind(r_n): return np.any(idx_l < 0) -def __get_initial_c(recurrence): +def _get_initial_c(recurrence): r""" For a given recurrence checks how many initial conditions by checking for non-negative indexed terms. @@ -361,7 +361,7 @@ def __get_initial_c(recurrence): i = 0 r_c = recurrence.subs(n, i) - while __check_neg_ind(r_c): + while _check_neg_ind(r_c): i += 1 r_c = recurrence.subs(n, i) return i @@ -391,10 +391,12 @@ def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, A function that "shifts" the recurrence so the expansion center is placed at the origin and source is the input for the recurrence generated. + Also processes the recurrence so s(n) is in terms of s(n-1), etc. + :arg recurrence: a recurrence relation in :math:`s(n)` """ r = recurrence_from_pde(pde) order, r_p = process_recurrence_relation(r) - n_initial = __get_initial_c(r_p) + n_initial = _get_initial_c(r_p) r_s = shift_recurrence(r_p) return n_initial, order, r_s From b3d17eb676c9fa06b1fb1e9fbf2abad48425dcde Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 14:01:29 -0600 Subject: [PATCH 071/193] Update test_recurrenceqbx.py --- test/test_recurrenceqbx.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 6ca09f2e2..525d773c3 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -1,6 +1,6 @@ r""" With the functionality in this module, we aim to test recurrence -code. ++ qbx code. """ from __future__ import annotations @@ -95,7 +95,7 @@ def _create_ellipse(n_p): def test_recurrence_laplace_2d_ellipse(): r""" - Tests recurrence code for orders up to 6 laplace3d. + Tests recurrence + qbx code for orders up to 6 laplace3d. """ # ------------- 1. Define PDE, Green's Function From 044bedee7ba6ac3daf5dffd1dcb50c8ad64adb79 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 15:09:01 -0600 Subject: [PATCH 072/193] Update test_recurrenceqbx.py --- test/test_recurrenceqbx.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 525d773c3..603bd6dae 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -7,7 +7,7 @@ import numpy as np import sympy as sp -# from sympy import hankel1 +from sympy import hankel1 from sumpy.array_context import _acf from sumpy.expansion.diff_op import ( laplacian, @@ -45,7 +45,7 @@ def _qbx_lp_helmholtz_general(sources, targets, centers, radius, strengths, orde actx.queue, targets, sources, centers, strengths, expansion_radii=expansion_radii, - kwargs=extra_kernel_kwargs) + k=1) result_qbx = actx.to_numpy(result_qbx) return result_qbx @@ -125,6 +125,7 @@ def test_recurrence_laplace_2d_ellipse(): def test_recurrence_helmholtz_2d_ellipse(): r""" Tests recurrence code for orders up to 6 laplace3d. + """ # ------------- 1. Define PDE, Green's Function w = make_identity_diff_op(2) helmholtz2d = laplacian(w) + w @@ -136,16 +137,15 @@ def test_recurrence_helmholtz_2d_ellipse(): g_x_y = (1j/4) * hankel1(0, k * abs_dist) p = 4 - # err = [] + err = [] for n_p in range(200, 1001, 200): sources, centers, normals, density, h, radius = _create_ellipse(n_p) strengths = h * density exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) - #qbx_res = _qbx_lp_helmholtz_general(sources, sources, centers, - # radius, strengths, p) + qbx_res = _qbx_lp_helmholtz_general(sources, sources, centers, radius, strengths, p) #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) - #err.append(np.max(np.abs(exp_res - qbx_res))) - #assert np.max(err) <= 1e-13 - """ - print("Hello") + err.append(np.max(np.abs(exp_res - qbx_res))) + assert np.max(err) <= 1e-13 + +test_recurrence_helmholtz_2d_ellipse() \ No newline at end of file From ebb24222274ae77c6bc472178309f58af85add35 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 15:10:55 -0600 Subject: [PATCH 073/193] Update test_recurrenceqbx.py --- test/test_recurrenceqbx.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 603bd6dae..b36d8e83f 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -95,7 +95,7 @@ def _create_ellipse(n_p): def test_recurrence_laplace_2d_ellipse(): r""" - Tests recurrence + qbx code for orders up to 6 laplace3d. + Tests recurrence + qbx code. """ # ------------- 1. Define PDE, Green's Function @@ -124,7 +124,7 @@ def test_recurrence_laplace_2d_ellipse(): def test_recurrence_helmholtz_2d_ellipse(): r""" - Tests recurrence code for orders up to 6 laplace3d. + Tests recurrence + qbx code. """ # ------------- 1. Define PDE, Green's Function w = make_identity_diff_op(2) From 60fc51dc6952e276e1ddce039e1f15a540adee42 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 4 Nov 2024 15:44:26 -0600 Subject: [PATCH 074/193] Minor style fixes --- sumpy/recurrence.py | 3 +-- sumpy/recurrenceqbx.py | 10 +++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index c553f019a..916b9d756 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -32,8 +32,6 @@ from __future__ import annotations -from typing import TypeVar - __copyright__ = """ Copyright (C) 2024 Hirish Chandrasekaran @@ -60,6 +58,7 @@ THE SOFTWARE. """ import math +from typing import TypeVar import numpy as np import sympy as sp diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index 083a28fbf..0407ba02b 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -8,6 +8,7 @@ from __future__ import annotations # noqa: I001 import math +from typing import Sequence import numpy as np import sympy as sp @@ -19,7 +20,7 @@ # ================ Transform/Rotate ================= -def _produce_orthogonal_basis(normals): +def _produce_orthogonal_basis(normals: np.ndarray) -> Sequence[np.ndarray]: ndim, ncenters = normals.shape orth_coordsys = [normals] for i in range(1, ndim): @@ -34,8 +35,11 @@ def _produce_orthogonal_basis(normals): return orth_coordsys -def _compute_rotated_shifted_coordinates(sources, centers, normals): - +def _compute_rotated_shifted_coordinates( + sources: np.ndarray, + centers: np.ndarray, + normals: np.ndarray + ) -> np.ndarray: cts = sources[:, None] - centers[:, :, None] orth_coordsys = _produce_orthogonal_basis(normals) cts_rotated_shifted = np.einsum("idc,dcs->ics", orth_coordsys, cts) From a7e685e2d4341fe1c27562c6543c790a3c91eafc Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 4 Nov 2024 16:03:43 -0600 Subject: [PATCH 075/193] Remove function invocations from test --- test/test_recurrence.py | 6 ------ test/test_recurrenceqbx.py | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 9845655a0..8ad80f3db 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -193,9 +193,3 @@ def test_laplace2d(): assert abs(abs(check_3_s.subs(coord_dict))) <= 1e-14 assert abs(abs(check_4_s.subs(coord_dict))) <= 1e-12 assert abs(abs(check_5_s.subs(coord_dict))) <= 1e-12 - - -test_laplace2d() -test_helmholtz2d() -test_helmholtz3d() -test_laplace3d() diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index b36d8e83f..788f41494 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -148,4 +148,4 @@ def test_recurrence_helmholtz_2d_ellipse(): err.append(np.max(np.abs(exp_res - qbx_res))) assert np.max(err) <= 1e-13 -test_recurrence_helmholtz_2d_ellipse() \ No newline at end of file +# test_recurrence_helmholtz_2d_ellipse() From e1a1c034012eba078e9892384b1bf8d5aaa8dbec Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 17:01:27 -0600 Subject: [PATCH 076/193] Added license/copyright --- test/test_recurrence.py | 52 +++++++++++++++++++++++++++----------- test/test_recurrenceqbx.py | 34 ++++++++++++++++++++----- 2 files changed, 65 insertions(+), 21 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 8ad80f3db..12b32f325 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -8,6 +8,31 @@ """ from __future__ import annotations + +__copyright__ = """ +Copyright (C) 2024 Hirish Chandrasekaran +Copyright (C) 2024 Andreas Kloeckner +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" import numpy as np import sympy as sp from sympy import hankel1 @@ -25,7 +50,7 @@ def test_laplace3d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - _, _, r = get_processed_and_shifted_recurrence(laplace3d) + n_init, _, r = get_processed_and_shifted_recurrence(laplace3d) n = sp.symbols("n") s = sp.Function("s") @@ -40,26 +65,23 @@ def test_laplace3d(): # pylint: disable-next=not-callable subs_dict = {s(0): derivs[0], s(1): derivs[1]} - check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] - # pylint: disable-next=not-callable - subs_dict[s(2)] = derivs[2] - check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] - # pylint: disable-next=not-callable - subs_dict[s(3)] = derivs[3] - check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] - # pylint: disable-next=not-callable - subs_dict[s(4)] = derivs[4] - check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + check = [] + # Check that the lowest order recurrence that works is 2 + assert n_init == 2 + max_order_check = 6 + for i in range(n_init, max_order_check): + check.append(r.subs(n, i).subs(subs_dict) - derivs[i]) + # pylint: disable-next=not-callable + subs_dict[s(i)] = derivs[i] x_coord = np.random.rand() # noqa: NPY002 y_coord = np.random.rand() # noqa: NPY002 z_coord = np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord, var[2]: z_coord} - assert abs(check_2_s.subs(coord_dict)) <= 1e-15 - assert abs(check_3_s.subs(coord_dict)) <= 1e-14 - assert abs(check_4_s.subs(coord_dict)) <= 1e-12 - assert abs(check_5_s.subs(coord_dict)) <= 1e-12 + check = np.array([check[i].subs(coord_dict) for i in range(len(check))]) + + assert max(abs(check)) <= 1e-12 def test_helmholtz3d(): diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 788f41494..bc7094592 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -4,10 +4,35 @@ """ from __future__ import annotations + +__copyright__ = """ +Copyright (C) 2024 Hirish Chandrasekaran +Copyright (C) 2024 Andreas Kloeckner +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" import numpy as np import sympy as sp - from sympy import hankel1 + from sumpy.array_context import _acf from sumpy.expansion.diff_op import ( laplacian, @@ -40,7 +65,6 @@ def _qbx_lp_helmholtz_general(sources, targets, centers, radius, strengths, orde centers = actx.from_numpy(centers) strengths = (strengths,) - extra_kernel_kwargs = {"k": 1} _evt, (result_qbx,) = lpot( actx.queue, targets, sources, centers, strengths, @@ -143,9 +167,7 @@ def test_recurrence_helmholtz_2d_ellipse(): strengths = h * density exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) - qbx_res = _qbx_lp_helmholtz_general(sources, sources, centers, radius, strengths, p) - #qbx_res,_ = lpot_eval_circle(sources.shape[1], p) + qbx_res = _qbx_lp_helmholtz_general(sources, sources, + centers, radius, strengths, p) err.append(np.max(np.abs(exp_res - qbx_res))) assert np.max(err) <= 1e-13 - -# test_recurrence_helmholtz_2d_ellipse() From e52b79a9358d30aadd38a6c3f201ba17c2635d8e Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 17:07:24 -0600 Subject: [PATCH 077/193] Remove looping helmholtz3d --- sumpy/recurrence.py | 5 +++++ test/test_recurrence.py | 29 +++++++++++++---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 916b9d756..0fa0fe881 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -393,6 +393,11 @@ def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, Also processes the recurrence so s(n) is in terms of s(n-1), etc. :arg recurrence: a recurrence relation in :math:`s(n)` + + :returns: a tuple ``(n_initial, order, r_s)``, where + - *n_initial* is the number of initial derivatives needed + - *order* is the order of the recurrence r_s + - *r_s* is the shifted/processed recurrence """ r = recurrence_from_pde(pde) order, r_p = process_recurrence_relation(r) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 12b32f325..bd7c21ac9 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -66,7 +66,7 @@ def test_laplace3d(): # pylint: disable-next=not-callable subs_dict = {s(0): derivs[0], s(1): derivs[1]} check = [] - # Check that the lowest order recurrence that works is 2 + assert n_init == 2 max_order_check = 6 for i in range(n_init, max_order_check): @@ -90,7 +90,7 @@ def test_helmholtz3d(): """ w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w - _, _, r = get_processed_and_shifted_recurrence(helmholtz3d) + n_init, _, r = get_processed_and_shifted_recurrence(helmholtz3d) n = sp.symbols("n") s = sp.Function("s") @@ -106,26 +106,23 @@ def test_helmholtz3d(): # pylint: disable-next=not-callable subs_dict = {s(0): derivs[0], s(1): derivs[1]} - check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] - # pylint: disable-next=not-callable - subs_dict[s(2)] = derivs[2] - check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] - # pylint: disable-next=not-callable - subs_dict[s(3)] = derivs[3] - check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] - # pylint: disable-next=not-callable - subs_dict[s(4)] = derivs[4] - check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + check = [] + + assert n_init == 2 + max_order_check = 6 + for i in range(n_init, max_order_check): + check.append(r.subs(n, i).subs(subs_dict) - derivs[i]) + # pylint: disable-next=not-callable + subs_dict[s(i)] = derivs[i] x_coord = np.random.rand() # noqa: NPY002 y_coord = np.random.rand() # noqa: NPY002 z_coord = np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord, var[2]: z_coord} - assert abs(abs(check_2_s.subs(coord_dict))) <= 1e-15 - assert abs(abs(check_3_s.subs(coord_dict))) <= 1e-14 - assert abs(abs(check_4_s.subs(coord_dict))) <= 1e-12 - assert abs(abs(check_5_s.subs(coord_dict))) <= 1e-12 + check = np.array([check[i].subs(coord_dict) for i in range(len(check))]) + + assert max(abs(abs(check))) <= 1e-12 def test_helmholtz2d(): From a1f011f842875f29fdf48bcee9852e6d1d9bda0c Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 4 Nov 2024 17:13:57 -0600 Subject: [PATCH 078/193] Looped all test code --- test/test_recurrence.py | 54 ++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index bd7c21ac9..adfcfd244 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -131,7 +131,7 @@ def test_helmholtz2d(): """ w = make_identity_diff_op(2) helmholtz2d = laplacian(w) + w - _, _, r = get_processed_and_shifted_recurrence(helmholtz2d) + n_init, _, r = get_processed_and_shifted_recurrence(helmholtz2d) n = sp.symbols("n") s = sp.Function("s") @@ -152,24 +152,22 @@ def test_helmholtz2d(): # pylint: disable-next=not-callable subs_dict = {s(0): derivs[0], s(1): derivs[1]} - check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] - # pylint: disable-next=not-callable - subs_dict[s(2)] = derivs[2] - check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] - # pylint: disable-next=not-callable - subs_dict[s(3)] = derivs[3] - check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] - # pylint: disable-next=not-callable - subs_dict[s(4)] = derivs[4] - check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + check = [] + + assert n_init == 2 + max_order_check = 6 + for i in range(n_init, max_order_check): + check.append(r.subs(n, i).subs(subs_dict) - derivs[i]) + # pylint: disable-next=not-callable + subs_dict[s(i)] = derivs[i] - f2 = sp.lambdify([var[0], var[1]], check_2_s) + f2 = sp.lambdify([var[0], var[1]], check[0]) assert abs(f2(x_coord, y_coord)) <= 1e-13 - f3 = sp.lambdify([var[0], var[1]], check_3_s) + f3 = sp.lambdify([var[0], var[1]], check[1]) assert abs(f3(x_coord, y_coord)) <= 1e-13 - f4 = sp.lambdify([var[0], var[1]], check_4_s) + f4 = sp.lambdify([var[0], var[1]], check[2]) assert abs(f4(x_coord, y_coord)) <= 1e-13 - f5 = sp.lambdify([var[0], var[1]], check_5_s) + f5 = sp.lambdify([var[0], var[1]], check[3]) assert abs(f5(x_coord, y_coord)) <= 1e-12 @@ -179,7 +177,7 @@ def test_laplace2d(): """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - _, _, r = get_processed_and_shifted_recurrence(laplace2d) + n_init, _, r = get_processed_and_shifted_recurrence(laplace2d) n = sp.symbols("n") s = sp.Function("s") @@ -193,22 +191,18 @@ def test_laplace2d(): # pylint: disable-next=not-callable subs_dict = {s(0): derivs[0], s(1): derivs[1]} - check_2_s = r.subs(n, 2).subs(subs_dict) - derivs[2] - # pylint: disable-next=not-callable - subs_dict[s(2)] = derivs[2] - check_3_s = r.subs(n, 3).subs(subs_dict) - derivs[3] - # pylint: disable-next=not-callable - subs_dict[s(3)] = derivs[3] - check_4_s = r.subs(n, 4).subs(subs_dict) - derivs[4] - # pylint: disable-next=not-callable - subs_dict[s(4)] = derivs[4] - check_5_s = r.subs(n, 5).subs(subs_dict) - derivs[5] + check = [] + + assert n_init == 2 + max_order_check = 6 + for i in range(n_init, max_order_check): + check.append(r.subs(n, i).subs(subs_dict) - derivs[i]) + # pylint: disable-next=not-callable + subs_dict[s(i)] = derivs[i] x_coord = np.random.rand() # noqa: NPY002 y_coord = np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} - assert abs(abs(check_2_s.subs(coord_dict))) <= 1e-15 - assert abs(abs(check_3_s.subs(coord_dict))) <= 1e-14 - assert abs(abs(check_4_s.subs(coord_dict))) <= 1e-12 - assert abs(abs(check_5_s.subs(coord_dict))) <= 1e-12 + check = np.array([check[i].subs(coord_dict) for i in range(len(check))]) + assert max(abs(abs(check))) <= 1e-12 From 233d3e7e00e65cc63f5535eec270fd9e8697bca5 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 7 Nov 2024 12:44:37 -0600 Subject: [PATCH 079/193] Error --- test/playground.ipynb | 119 +++++++++++++++++++++++++++++++++++++ test/test_recurrenceqbx.py | 2 +- 2 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 test/playground.ipynb diff --git a/test/playground.ipynb b/test/playground.ipynb new file mode 100644 index 000000000..7688adf16 --- /dev/null +++ b/test/playground.ipynb @@ -0,0 +1,119 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from collections.abc import Callable, Sequence\n", + "from typing import Any\n", + "\n", + "import numpy as np\n", + "import numpy.linalg as la\n", + "\n", + "import modepy as mp\n", + "from pytools import deprecate_keyword, log_process\n", + "\n", + "from meshmode.mesh import Mesh, MeshElementGroup, make_mesh\n", + "from meshmode.mesh.refinement import Refiner\n", + "from meshmode.mesh.generation import generate_sphere\n", + "from meshmode.discretization import Discretization\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "meshy = generate_sphere(1.0, 2)\n", + "from sumpy.array_context import _acf\n", + "actx_factory = _acf\n", + "actx = actx_factory()\n", + "from meshmode.discretization.poly_element import (\n", + " default_simplex_group_factory\n", + " )\n", + "order = 4\n", + "discr = Discretization(actx, meshy, default_simplex_group_factory(order=4, base_dim=3))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "ename": "RuntimeError", + "evalue": "Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:281\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 281\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_loopy_transform_cache\u001b[49m\u001b[43m[\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n", + "\u001b[0;31mKeyError\u001b[0m: TranslationUnit(callables_table=immutables.Map({'einsum3to2_kernel': CallableKernel(arg_id_to_descr=None, arg_id_to_dtype=None, name='einsum3to2_kernel', subkernel=LoopKernel(domains=[BasicSet(\"[Ne, Ni, Nj] -> { [e, i, j] : 0 <= e < Ne and 0 <= i < Ni and 0 <= j < Nj }\")], instructions=[Assignment(assignee=Subscript(Variable('out'), (Variable('e'), Variable('i'))), atomicity=(), conflicts_with_groups=frozenset(), depends_on=frozenset(), depends_on_is_final=False, expression=Reduction(SumReductionOperation, ('j',), Product((Subscript(Variable('arg0'), (Variable('i'), Variable('j'))), Subscript(Variable('arg1'), (Variable('e'), Variable('j'))))), False), groups=frozenset(), id='insn', no_sync_with=frozenset(), predicates=frozenset(), priority=0, tags=frozenset(), temp_var_type=Optional(), within_inames=frozenset({'i', 'e'}), within_inames_is_final=False)], args=[>, >, >, , shape: (Ni, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Ni), dim_tags: (stride:auto, stride:auto), offset: out aspace: global>], assumptions=BasicSet(\"[Ne, Ni, Nj] -> { : }\"), temporary_variables={}, inames={'i': Iname(name='i', tags=frozenset()), 'j': Iname(name='j', tags=frozenset()), 'e': Iname(name='e', tags=frozenset())}, substitutions={}, options=Options(allow_fp_reordering=True, allow_terminal_colors=True, annotate_inames=False, build_options=[], check_dep_resolution=True, cl_exec_manage_array_events=True, disable_global_barriers=False, edit_code=False, enforce_array_accesses_within_bounds=True, enforce_variable_access_ordered=True, insert_gbarriers=False, no_numpy=True, return_dict=True, skip_arg_checks=False, trace_assignment_values=False, trace_assignments=False, write_code=False, write_wrapper=False), target=, tags=frozenset({FirstAxisIsElementsTag(), NameHint(name='nodes0_3d')}), state=, name='einsum3to2_kernel', preambles=(), preamble_generators=(), symbol_manglers=(), linearization=None, iname_slab_increments=immutables.Map({}), loop_priority=frozenset(), applied_iname_rewrites=(), index_dtype=np:dtype('int32'), silenced_warnings=[], overridden_get_grid_sizes_for_insn_ids=None))}), target=, entrypoints=frozenset({'einsum3to2_kernel'}))", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[25], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mdiscr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:589\u001b[0m, in \u001b[0;36mDiscretization.nodes\u001b[0;34m(self, cached)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[0;32m--> 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array(\u001b[43m[\u001b[49m\n\u001b[1;32m 590\u001b[0m \u001b[43m \u001b[49m\u001b[43m_DOFArray\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 593\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mambient_dim\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:590\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[0;32m--> 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:591\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[1;32m 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m([\n\u001b[0;32m--> 591\u001b[0m actx\u001b[38;5;241m.\u001b[39mfreeze(\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m) \u001b[38;5;28;01mfor\u001b[39;00m grp \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups\n\u001b[1;32m 592\u001b[0m ]))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:579\u001b[0m, in \u001b[0;36mDiscretization.nodes..resample_mesh_nodes\u001b[0;34m(grp, iaxis)\u001b[0m\n\u001b[1;32m 575\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (grp_unit_nodes\u001b[38;5;241m.\u001b[39mshape \u001b[38;5;241m==\u001b[39m meg_unit_nodes\u001b[38;5;241m.\u001b[39mshape\n\u001b[1;32m 576\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m np\u001b[38;5;241m.\u001b[39mlinalg\u001b[38;5;241m.\u001b[39mnorm(grp_unit_nodes \u001b[38;5;241m-\u001b[39m meg_unit_nodes) \u001b[38;5;241m<\u001b[39m tol):\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[0;32m--> 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mij,ej->ei\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 580\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtag_axis\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 581\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 582\u001b[0m \u001b[43m \u001b[49m\u001b[43mDiscretizationDOFAxisTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 583\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_mesh_interp_matrix\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 584\u001b[0m \u001b[43m \u001b[49m\u001b[43mnodes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 585\u001b[0m \u001b[43m \u001b[49m\u001b[43mtagged\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 586\u001b[0m \u001b[43m \u001b[49m\u001b[43mFirstAxisIsElementsTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 587\u001b[0m \u001b[43m \u001b[49m\u001b[43mNameHint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname_hint\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/context.py:495\u001b[0m, in \u001b[0;36mArrayContext.einsum\u001b[0;34m(self, spec, arg_names, tagged, *args)\u001b[0m\n\u001b[1;32m 492\u001b[0m arg_names \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124marg\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(args))])\n\u001b[1;32m 494\u001b[0m prg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_einsum_prg(spec, arg_names, tagged)\n\u001b[0;32m--> 495\u001b[0m out_ary \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_loopy\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 496\u001b[0m \u001b[43m \u001b[49m\u001b[43mprg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m{\u001b[49m\u001b[43marg_names\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m}\u001b[49m\n\u001b[1;32m 497\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mout\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 498\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtag(tagged, out_ary)\n", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:284\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[1;32m 283\u001b[0m orig_t_unit \u001b[38;5;241m=\u001b[39m t_unit\n\u001b[0;32m--> 284\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mexecutor(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext)\n\u001b[1;32m 285\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_loopy_transform_cache[orig_t_unit] \u001b[38;5;241m=\u001b[39m executor\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m orig_t_unit\n", + "File \u001b[0;32m~/Desktop/sumpy/sumpy/array_context.py:55\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 53\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/source/src/boxtree/boxtree/array_context.py:54\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 54\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:353\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m t_unit\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 354\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnable to reason what outer_iname and inner_iname \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 355\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mneeds to be; all_inames is given as: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mall_inames\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m )\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inner_iname \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 359\u001b[0m t_unit \u001b[38;5;241m=\u001b[39m lp\u001b[38;5;241m.\u001b[39msplit_iname(t_unit, inner_iname, \u001b[38;5;241m16\u001b[39m, inner_tag\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ml.0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mRuntimeError\u001b[0m: Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})" + ] + } + ], + "source": [ + "discr.nodes()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index bc7094592..d9cb04dae 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -160,7 +160,7 @@ def test_recurrence_helmholtz_2d_ellipse(): abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) g_x_y = (1j/4) * hankel1(0, k * abs_dist) - p = 4 + p = 5 err = [] for n_p in range(200, 1001, 200): sources, centers, normals, density, h, radius = _create_ellipse(n_p) From 2abe9980387db5bda023273c6b728707d8cf96b3 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 7 Nov 2024 12:50:10 -0600 Subject: [PATCH 080/193] Update playground.ipynb --- test/playground.ipynb | 67 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/test/playground.ipynb b/test/playground.ipynb index 7688adf16..6e75dce1b 100644 --- a/test/playground.ipynb +++ b/test/playground.ipynb @@ -75,10 +75,71 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/hirish/source/src/meshmode/meshmode/mesh/__init__.py:1086: UserWarning: Unimplemented: Cannot check element orientation for a mesh with mesh.dim != mesh.ambient_dim\n", + " check_mesh_consistency(\n", + "/Users/hirish/source/src/boxtree/boxtree/array_context.py:54: UntransformedCodeWarning: Using the base PyOpenCLArrayContext.transform_loopy_program to transform a translation unit. This is largely a no-op and unlikely to result in fast generated code.Instead, subclass PyOpenCLArrayContext and implement the specific transform logic required to transform the program for your package or application. Check higher-level packages (e.g. meshmode), which may already have subclasses you may want to build on.\n", + " return super().transform_loopy_program(t_unit)\n" + ] + }, + { + "ename": "RuntimeError", + "evalue": "Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:281\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 281\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_loopy_transform_cache\u001b[49m\u001b[43m[\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n", + "\u001b[0;31mKeyError\u001b[0m: TranslationUnit(callables_table=immutables.Map({'einsum3to2_kernel': CallableKernel(arg_id_to_descr=None, arg_id_to_dtype=None, name='einsum3to2_kernel', subkernel=LoopKernel(domains=[BasicSet(\"[Ne, Ni, Nj] -> { [e, i, j] : 0 <= e < Ne and 0 <= i < Ni and 0 <= j < Nj }\")], instructions=[Assignment(assignee=Subscript(Variable('out'), (Variable('e'), Variable('i'))), atomicity=(), conflicts_with_groups=frozenset(), depends_on=frozenset(), depends_on_is_final=False, expression=Reduction(SumReductionOperation, ('j',), Product((Subscript(Variable('arg0'), (Variable('i'), Variable('j'))), Subscript(Variable('arg1'), (Variable('e'), Variable('j'))))), False), groups=frozenset(), id='insn', no_sync_with=frozenset(), predicates=frozenset(), priority=0, tags=frozenset(), temp_var_type=Optional(), within_inames=frozenset({'i', 'e'}), within_inames_is_final=False)], args=[>, >, >, , shape: (Ni, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Ni), dim_tags: (stride:auto, stride:auto), offset: out aspace: global>], assumptions=BasicSet(\"[Ne, Ni, Nj] -> { : }\"), temporary_variables={}, inames={'i': Iname(name='i', tags=frozenset()), 'j': Iname(name='j', tags=frozenset()), 'e': Iname(name='e', tags=frozenset())}, substitutions={}, options=Options(allow_fp_reordering=True, allow_terminal_colors=True, annotate_inames=False, build_options=[], check_dep_resolution=True, cl_exec_manage_array_events=True, disable_global_barriers=False, edit_code=False, enforce_array_accesses_within_bounds=True, enforce_variable_access_ordered=True, insert_gbarriers=False, no_numpy=True, return_dict=True, skip_arg_checks=False, trace_assignment_values=False, trace_assignments=False, write_code=False, write_wrapper=False), target=, tags=frozenset({FirstAxisIsElementsTag(), NameHint(name='nodes0_3d')}), state=, name='einsum3to2_kernel', preambles=(), preamble_generators=(), symbol_manglers=(), linearization=None, iname_slab_increments=immutables.Map({}), loop_priority=frozenset(), applied_iname_rewrites=(), index_dtype=np:dtype('int32'), silenced_warnings=[], overridden_get_grid_sizes_for_insn_ids=None))}), target=, entrypoints=frozenset({'einsum3to2_kernel'}))", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[28], line 24\u001b[0m\n\u001b[1;32m 22\u001b[0m grp_factory \u001b[38;5;241m=\u001b[39m default_simplex_group_factory(\u001b[38;5;241m3\u001b[39m,target_order)\n\u001b[1;32m 23\u001b[0m discr \u001b[38;5;241m=\u001b[39m Discretization(actx, mesh, grp_factory)\n\u001b[0;32m---> 24\u001b[0m \u001b[43mdiscr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 25\u001b[0m actx\u001b[38;5;241m.\u001b[39mto_numpy(discr\u001b[38;5;241m.\u001b[39mnodes())\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:589\u001b[0m, in \u001b[0;36mDiscretization.nodes\u001b[0;34m(self, cached)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[0;32m--> 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array(\u001b[43m[\u001b[49m\n\u001b[1;32m 590\u001b[0m \u001b[43m \u001b[49m\u001b[43m_DOFArray\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 593\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mambient_dim\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:590\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[0;32m--> 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:591\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[1;32m 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m([\n\u001b[0;32m--> 591\u001b[0m actx\u001b[38;5;241m.\u001b[39mfreeze(\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m) \u001b[38;5;28;01mfor\u001b[39;00m grp \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups\n\u001b[1;32m 592\u001b[0m ]))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", + "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:579\u001b[0m, in \u001b[0;36mDiscretization.nodes..resample_mesh_nodes\u001b[0;34m(grp, iaxis)\u001b[0m\n\u001b[1;32m 575\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (grp_unit_nodes\u001b[38;5;241m.\u001b[39mshape \u001b[38;5;241m==\u001b[39m meg_unit_nodes\u001b[38;5;241m.\u001b[39mshape\n\u001b[1;32m 576\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m np\u001b[38;5;241m.\u001b[39mlinalg\u001b[38;5;241m.\u001b[39mnorm(grp_unit_nodes \u001b[38;5;241m-\u001b[39m meg_unit_nodes) \u001b[38;5;241m<\u001b[39m tol):\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[0;32m--> 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mij,ej->ei\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 580\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtag_axis\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 581\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 582\u001b[0m \u001b[43m \u001b[49m\u001b[43mDiscretizationDOFAxisTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 583\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_mesh_interp_matrix\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 584\u001b[0m \u001b[43m \u001b[49m\u001b[43mnodes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 585\u001b[0m \u001b[43m \u001b[49m\u001b[43mtagged\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 586\u001b[0m \u001b[43m \u001b[49m\u001b[43mFirstAxisIsElementsTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 587\u001b[0m \u001b[43m \u001b[49m\u001b[43mNameHint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname_hint\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/context.py:495\u001b[0m, in \u001b[0;36mArrayContext.einsum\u001b[0;34m(self, spec, arg_names, tagged, *args)\u001b[0m\n\u001b[1;32m 492\u001b[0m arg_names \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124marg\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(args))])\n\u001b[1;32m 494\u001b[0m prg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_einsum_prg(spec, arg_names, tagged)\n\u001b[0;32m--> 495\u001b[0m out_ary \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_loopy\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 496\u001b[0m \u001b[43m \u001b[49m\u001b[43mprg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m{\u001b[49m\u001b[43marg_names\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m}\u001b[49m\n\u001b[1;32m 497\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mout\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 498\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtag(tagged, out_ary)\n", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:284\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[1;32m 283\u001b[0m orig_t_unit \u001b[38;5;241m=\u001b[39m t_unit\n\u001b[0;32m--> 284\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mexecutor(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext)\n\u001b[1;32m 285\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_loopy_transform_cache[orig_t_unit] \u001b[38;5;241m=\u001b[39m executor\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m orig_t_unit\n", + "File \u001b[0;32m~/Desktop/sumpy/sumpy/array_context.py:55\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 53\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/source/src/boxtree/boxtree/array_context.py:54\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 54\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:353\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m t_unit\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 354\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnable to reason what outer_iname and inner_iname \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 355\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mneeds to be; all_inames is given as: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mall_inames\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m )\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inner_iname \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 359\u001b[0m t_unit \u001b[38;5;241m=\u001b[39m lp\u001b[38;5;241m.\u001b[39msplit_iname(t_unit, inner_iname, \u001b[38;5;241m16\u001b[39m, inner_tag\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ml.0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mRuntimeError\u001b[0m: Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})" + ] + } + ], + "source": [ + "from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf\n", + "import meshmode.mesh.generation as mgen\n", + "\n", + "actx_factory = _acf\n", + "actx = actx_factory()\n", + "\n", + "nelements = 64\n", + "target_order = 4\n", + "\n", + "mesh = mgen.generate_sphere(1.0, target_order,\n", + " uniform_refinement_rounds=0)\n", + "\n", + "\n", + "from meshmode.discretization import Discretization\n", + "from meshmode.discretization.poly_element import (\n", + " InterpolatoryQuadratureSimplexGroupFactory,\n", + " LegendreGaussLobattoTensorProductGroupFactory,\n", + " default_simplex_group_factory,\n", + ")\n", + "\n", + "\n", + "grp_factory = default_simplex_group_factory(3,target_order)\n", + "discr = Discretization(actx, mesh, grp_factory)\n", + "discr.nodes()\n", + "actx.to_numpy(discr.nodes())" + ] }, { "cell_type": "code", From d7fd6ba995d6f7ff45c5d16635093d48434ecbcd Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 8 Nov 2024 18:48:06 -0600 Subject: [PATCH 081/193] Added normals, need center --- test/playground.ipynb | 127 +++---------------------------------- test/test_recurrenceqbx.py | 63 ++++++++++++++++-- 2 files changed, 67 insertions(+), 123 deletions(-) diff --git a/test/playground.ipynb b/test/playground.ipynb index 6e75dce1b..62dae615c 100644 --- a/test/playground.ipynb +++ b/test/playground.ipynb @@ -2,104 +2,22 @@ "cells": [ { "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from collections.abc import Callable, Sequence\n", - "from typing import Any\n", - "\n", - "import numpy as np\n", - "import numpy.linalg as la\n", - "\n", - "import modepy as mp\n", - "from pytools import deprecate_keyword, log_process\n", - "\n", - "from meshmode.mesh import Mesh, MeshElementGroup, make_mesh\n", - "from meshmode.mesh.refinement import Refiner\n", - "from meshmode.mesh.generation import generate_sphere\n", - "from meshmode.discretization import Discretization\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "meshy = generate_sphere(1.0, 2)\n", - "from sumpy.array_context import _acf\n", - "actx_factory = _acf\n", - "actx = actx_factory()\n", - "from meshmode.discretization.poly_element import (\n", - " default_simplex_group_factory\n", - " )\n", - "order = 4\n", - "discr = Discretization(actx, meshy, default_simplex_group_factory(order=4, base_dim=3))" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "ename": "RuntimeError", - "evalue": "Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:281\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 281\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_loopy_transform_cache\u001b[49m\u001b[43m[\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n", - "\u001b[0;31mKeyError\u001b[0m: TranslationUnit(callables_table=immutables.Map({'einsum3to2_kernel': CallableKernel(arg_id_to_descr=None, arg_id_to_dtype=None, name='einsum3to2_kernel', subkernel=LoopKernel(domains=[BasicSet(\"[Ne, Ni, Nj] -> { [e, i, j] : 0 <= e < Ne and 0 <= i < Ni and 0 <= j < Nj }\")], instructions=[Assignment(assignee=Subscript(Variable('out'), (Variable('e'), Variable('i'))), atomicity=(), conflicts_with_groups=frozenset(), depends_on=frozenset(), depends_on_is_final=False, expression=Reduction(SumReductionOperation, ('j',), Product((Subscript(Variable('arg0'), (Variable('i'), Variable('j'))), Subscript(Variable('arg1'), (Variable('e'), Variable('j'))))), False), groups=frozenset(), id='insn', no_sync_with=frozenset(), predicates=frozenset(), priority=0, tags=frozenset(), temp_var_type=Optional(), within_inames=frozenset({'i', 'e'}), within_inames_is_final=False)], args=[>, >, >, , shape: (Ni, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Ni), dim_tags: (stride:auto, stride:auto), offset: out aspace: global>], assumptions=BasicSet(\"[Ne, Ni, Nj] -> { : }\"), temporary_variables={}, inames={'i': Iname(name='i', tags=frozenset()), 'j': Iname(name='j', tags=frozenset()), 'e': Iname(name='e', tags=frozenset())}, substitutions={}, options=Options(allow_fp_reordering=True, allow_terminal_colors=True, annotate_inames=False, build_options=[], check_dep_resolution=True, cl_exec_manage_array_events=True, disable_global_barriers=False, edit_code=False, enforce_array_accesses_within_bounds=True, enforce_variable_access_ordered=True, insert_gbarriers=False, no_numpy=True, return_dict=True, skip_arg_checks=False, trace_assignment_values=False, trace_assignments=False, write_code=False, write_wrapper=False), target=, tags=frozenset({FirstAxisIsElementsTag(), NameHint(name='nodes0_3d')}), state=, name='einsum3to2_kernel', preambles=(), preamble_generators=(), symbol_manglers=(), linearization=None, iname_slab_increments=immutables.Map({}), loop_priority=frozenset(), applied_iname_rewrites=(), index_dtype=np:dtype('int32'), silenced_warnings=[], overridden_get_grid_sizes_for_insn_ids=None))}), target=, entrypoints=frozenset({'einsum3to2_kernel'}))", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[25], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mdiscr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:589\u001b[0m, in \u001b[0;36mDiscretization.nodes\u001b[0;34m(self, cached)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[0;32m--> 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array(\u001b[43m[\u001b[49m\n\u001b[1;32m 590\u001b[0m \u001b[43m \u001b[49m\u001b[43m_DOFArray\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 593\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mambient_dim\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:590\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[0;32m--> 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:591\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[1;32m 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m([\n\u001b[0;32m--> 591\u001b[0m actx\u001b[38;5;241m.\u001b[39mfreeze(\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m) \u001b[38;5;28;01mfor\u001b[39;00m grp \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups\n\u001b[1;32m 592\u001b[0m ]))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:579\u001b[0m, in \u001b[0;36mDiscretization.nodes..resample_mesh_nodes\u001b[0;34m(grp, iaxis)\u001b[0m\n\u001b[1;32m 575\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (grp_unit_nodes\u001b[38;5;241m.\u001b[39mshape \u001b[38;5;241m==\u001b[39m meg_unit_nodes\u001b[38;5;241m.\u001b[39mshape\n\u001b[1;32m 576\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m np\u001b[38;5;241m.\u001b[39mlinalg\u001b[38;5;241m.\u001b[39mnorm(grp_unit_nodes \u001b[38;5;241m-\u001b[39m meg_unit_nodes) \u001b[38;5;241m<\u001b[39m tol):\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[0;32m--> 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mij,ej->ei\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 580\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtag_axis\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 581\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 582\u001b[0m \u001b[43m \u001b[49m\u001b[43mDiscretizationDOFAxisTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 583\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_mesh_interp_matrix\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 584\u001b[0m \u001b[43m \u001b[49m\u001b[43mnodes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 585\u001b[0m \u001b[43m \u001b[49m\u001b[43mtagged\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 586\u001b[0m \u001b[43m \u001b[49m\u001b[43mFirstAxisIsElementsTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 587\u001b[0m \u001b[43m \u001b[49m\u001b[43mNameHint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname_hint\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/context.py:495\u001b[0m, in \u001b[0;36mArrayContext.einsum\u001b[0;34m(self, spec, arg_names, tagged, *args)\u001b[0m\n\u001b[1;32m 492\u001b[0m arg_names \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124marg\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(args))])\n\u001b[1;32m 494\u001b[0m prg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_einsum_prg(spec, arg_names, tagged)\n\u001b[0;32m--> 495\u001b[0m out_ary \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_loopy\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 496\u001b[0m \u001b[43m \u001b[49m\u001b[43mprg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m{\u001b[49m\u001b[43marg_names\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m}\u001b[49m\n\u001b[1;32m 497\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mout\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 498\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtag(tagged, out_ary)\n", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:284\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[1;32m 283\u001b[0m orig_t_unit \u001b[38;5;241m=\u001b[39m t_unit\n\u001b[0;32m--> 284\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mexecutor(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext)\n\u001b[1;32m 285\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_loopy_transform_cache[orig_t_unit] \u001b[38;5;241m=\u001b[39m executor\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m orig_t_unit\n", - "File \u001b[0;32m~/Desktop/sumpy/sumpy/array_context.py:55\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 53\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/source/src/boxtree/boxtree/array_context.py:54\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 54\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:353\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m t_unit\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 354\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnable to reason what outer_iname and inner_iname \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 355\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mneeds to be; all_inames is given as: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mall_inames\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m )\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inner_iname \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 359\u001b[0m t_unit \u001b[38;5;241m=\u001b[39m lp\u001b[38;5;241m.\u001b[39msplit_iname(t_unit, inner_iname, \u001b[38;5;241m16\u001b[39m, inner_tag\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ml.0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[0;31mRuntimeError\u001b[0m: Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})" - ] - } - ], - "source": [ - "discr.nodes()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, + "execution_count": 5, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/hirish/source/src/meshmode/meshmode/mesh/__init__.py:1086: UserWarning: Unimplemented: Cannot check element orientation for a mesh with mesh.dim != mesh.ambient_dim\n", - " check_mesh_consistency(\n", - "/Users/hirish/source/src/boxtree/boxtree/array_context.py:54: UntransformedCodeWarning: Using the base PyOpenCLArrayContext.transform_loopy_program to transform a translation unit. This is largely a no-op and unlikely to result in fast generated code.Instead, subclass PyOpenCLArrayContext and implement the specific transform logic required to transform the program for your package or application. Check higher-level packages (e.g. meshmode), which may already have subclasses you may want to build on.\n", - " return super().transform_loopy_program(t_unit)\n" - ] - }, { "ename": "RuntimeError", - "evalue": "Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})", + "evalue": "Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'e', 'j'})", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:281\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 281\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_loopy_transform_cache\u001b[49m\u001b[43m[\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n", - "\u001b[0;31mKeyError\u001b[0m: TranslationUnit(callables_table=immutables.Map({'einsum3to2_kernel': CallableKernel(arg_id_to_descr=None, arg_id_to_dtype=None, name='einsum3to2_kernel', subkernel=LoopKernel(domains=[BasicSet(\"[Ne, Ni, Nj] -> { [e, i, j] : 0 <= e < Ne and 0 <= i < Ni and 0 <= j < Nj }\")], instructions=[Assignment(assignee=Subscript(Variable('out'), (Variable('e'), Variable('i'))), atomicity=(), conflicts_with_groups=frozenset(), depends_on=frozenset(), depends_on_is_final=False, expression=Reduction(SumReductionOperation, ('j',), Product((Subscript(Variable('arg0'), (Variable('i'), Variable('j'))), Subscript(Variable('arg1'), (Variable('e'), Variable('j'))))), False), groups=frozenset(), id='insn', no_sync_with=frozenset(), predicates=frozenset(), priority=0, tags=frozenset(), temp_var_type=Optional(), within_inames=frozenset({'i', 'e'}), within_inames_is_final=False)], args=[>, >, >, , shape: (Ni, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Ni), dim_tags: (stride:auto, stride:auto), offset: out aspace: global>], assumptions=BasicSet(\"[Ne, Ni, Nj] -> { : }\"), temporary_variables={}, inames={'i': Iname(name='i', tags=frozenset()), 'j': Iname(name='j', tags=frozenset()), 'e': Iname(name='e', tags=frozenset())}, substitutions={}, options=Options(allow_fp_reordering=True, allow_terminal_colors=True, annotate_inames=False, build_options=[], check_dep_resolution=True, cl_exec_manage_array_events=True, disable_global_barriers=False, edit_code=False, enforce_array_accesses_within_bounds=True, enforce_variable_access_ordered=True, insert_gbarriers=False, no_numpy=True, return_dict=True, skip_arg_checks=False, trace_assignment_values=False, trace_assignments=False, write_code=False, write_wrapper=False), target=, tags=frozenset({FirstAxisIsElementsTag(), NameHint(name='nodes0_3d')}), state=, name='einsum3to2_kernel', preambles=(), preamble_generators=(), symbol_manglers=(), linearization=None, iname_slab_increments=immutables.Map({}), loop_priority=frozenset(), applied_iname_rewrites=(), index_dtype=np:dtype('int32'), silenced_warnings=[], overridden_get_grid_sizes_for_insn_ids=None))}), target=, entrypoints=frozenset({'einsum3to2_kernel'}))", + "\u001b[0;31mKeyError\u001b[0m: TranslationUnit(callables_table=immutables.Map({'einsum3to2_kernel': CallableKernel(arg_id_to_descr=None, arg_id_to_dtype=None, name='einsum3to2_kernel', subkernel=LoopKernel(domains=[BasicSet(\"[Ne, Ni, Nj] -> { [e, i, j] : 0 <= e < Ne and 0 <= i < Ni and 0 <= j < Nj }\")], instructions=[Assignment(assignee=Subscript(Variable('out'), (Variable('e'), Variable('i'))), atomicity=(), conflicts_with_groups=frozenset(), depends_on=frozenset(), depends_on_is_final=False, expression=Reduction(SumReductionOperation, ('j',), Product((Subscript(Variable('arg0'), (Variable('i'), Variable('j'))), Subscript(Variable('arg1'), (Variable('e'), Variable('j'))))), False), groups=frozenset(), id='insn', no_sync_with=frozenset(), predicates=frozenset(), priority=0, tags=frozenset(), temp_var_type=Optional(), within_inames=frozenset({'i', 'e'}), within_inames_is_final=False)], args=[>, >, >, , shape: (Ni, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Ni), dim_tags: (stride:auto, stride:auto), offset: out aspace: global>], assumptions=BasicSet(\"[Ne, Ni, Nj] -> { : }\"), temporary_variables={}, inames={'i': Iname(name='i', tags=frozenset()), 'e': Iname(name='e', tags=frozenset()), 'j': Iname(name='j', tags=frozenset())}, substitutions={}, options=Options(allow_fp_reordering=True, allow_terminal_colors=True, annotate_inames=False, build_options=[], check_dep_resolution=True, cl_exec_manage_array_events=True, disable_global_barriers=False, edit_code=False, enforce_array_accesses_within_bounds=True, enforce_variable_access_ordered=True, insert_gbarriers=False, no_numpy=True, return_dict=True, skip_arg_checks=False, trace_assignment_values=False, trace_assignments=False, write_code=False, write_wrapper=False), target=, tags=frozenset({FirstAxisIsElementsTag(), NameHint(name='nodes0_3d')}), state=, name='einsum3to2_kernel', preambles=(), preamble_generators=(), symbol_manglers=(), linearization=None, iname_slab_increments=immutables.Map({}), loop_priority=frozenset(), applied_iname_rewrites=(), index_dtype=np:dtype('int32'), silenced_warnings=[], overridden_get_grid_sizes_for_insn_ids=None))}), target=, entrypoints=frozenset({'einsum3to2_kernel'}))", "\nDuring handling of the above exception, another exception occurred:\n", "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[28], line 24\u001b[0m\n\u001b[1;32m 22\u001b[0m grp_factory \u001b[38;5;241m=\u001b[39m default_simplex_group_factory(\u001b[38;5;241m3\u001b[39m,target_order)\n\u001b[1;32m 23\u001b[0m discr \u001b[38;5;241m=\u001b[39m Discretization(actx, mesh, grp_factory)\n\u001b[0;32m---> 24\u001b[0m \u001b[43mdiscr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 25\u001b[0m actx\u001b[38;5;241m.\u001b[39mto_numpy(discr\u001b[38;5;241m.\u001b[39mnodes())\n", + "Cell \u001b[0;32mIn[5], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtest_recurrenceqbx\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m _create_sphere\n\u001b[0;32m----> 3\u001b[0m \u001b[43m_create_sphere\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Desktop/sumpy/test/test_recurrenceqbx.py:161\u001b[0m, in \u001b[0;36m_create_sphere\u001b[0;34m(refinement_rounds)\u001b[0m\n\u001b[1;32m 159\u001b[0m grp_factory \u001b[38;5;241m=\u001b[39m default_simplex_group_factory(\u001b[38;5;241m3\u001b[39m, target_order)\n\u001b[1;32m 160\u001b[0m discr \u001b[38;5;241m=\u001b[39m Discretization(actx, mesh, grp_factory)\n\u001b[0;32m--> 161\u001b[0m nodes \u001b[38;5;241m=\u001b[39m actx_m\u001b[38;5;241m.\u001b[39mto_numpy(\u001b[43mdiscr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m)[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 163\u001b[0m area_weight_a \u001b[38;5;241m=\u001b[39m bind(discr, sym\u001b[38;5;241m.\u001b[39mQWeight()\u001b[38;5;241m*\u001b[39msym\u001b[38;5;241m.\u001b[39marea_element(\u001b[38;5;241m3\u001b[39m))(actx_m)\n\u001b[1;32m 164\u001b[0m area_weight \u001b[38;5;241m=\u001b[39m actx_m\u001b[38;5;241m.\u001b[39mto_numpy(area_weight_a)[\u001b[38;5;241m0\u001b[39m]\n", "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:589\u001b[0m, in \u001b[0;36mDiscretization.nodes\u001b[0;34m(self, cached)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[0;32m--> 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array(\u001b[43m[\u001b[49m\n\u001b[1;32m 590\u001b[0m \u001b[43m \u001b[49m\u001b[43m_DOFArray\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 593\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mambient_dim\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:590\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[0;32m--> 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:591\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[1;32m 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m([\n\u001b[0;32m--> 591\u001b[0m actx\u001b[38;5;241m.\u001b[39mfreeze(\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m) \u001b[38;5;28;01mfor\u001b[39;00m grp \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups\n\u001b[1;32m 592\u001b[0m ]))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", @@ -109,45 +27,16 @@ "File \u001b[0;32m~/Desktop/sumpy/sumpy/array_context.py:55\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 53\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/source/src/boxtree/boxtree/array_context.py:54\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 54\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:353\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m t_unit\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 354\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnable to reason what outer_iname and inner_iname \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 355\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mneeds to be; all_inames is given as: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mall_inames\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m )\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inner_iname \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 359\u001b[0m t_unit \u001b[38;5;241m=\u001b[39m lp\u001b[38;5;241m.\u001b[39msplit_iname(t_unit, inner_iname, \u001b[38;5;241m16\u001b[39m, inner_tag\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ml.0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[0;31mRuntimeError\u001b[0m: Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'j', 'e'})" + "\u001b[0;31mRuntimeError\u001b[0m: Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'e', 'j'})" ] } ], "source": [ - "from sumpy.array_context import PytestPyOpenCLArrayContextFactory, _acf\n", - "import meshmode.mesh.generation as mgen\n", - "\n", - "actx_factory = _acf\n", - "actx = actx_factory()\n", - "\n", - "nelements = 64\n", - "target_order = 4\n", - "\n", - "mesh = mgen.generate_sphere(1.0, target_order,\n", - " uniform_refinement_rounds=0)\n", - "\n", - "\n", - "from meshmode.discretization import Discretization\n", - "from meshmode.discretization.poly_element import (\n", - " InterpolatoryQuadratureSimplexGroupFactory,\n", - " LegendreGaussLobattoTensorProductGroupFactory,\n", - " default_simplex_group_factory,\n", - ")\n", - "\n", + "from test_recurrenceqbx import _create_sphere\n", "\n", - "grp_factory = default_simplex_group_factory(3,target_order)\n", - "discr = Discretization(actx, mesh, grp_factory)\n", - "discr.nodes()\n", - "actx.to_numpy(discr.nodes())" + "_create_sphere()" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index d9cb04dae..1949d45b0 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -29,8 +29,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +import meshmode.mesh.generation as mgen import numpy as np import sympy as sp +from meshmode import _acf as _acf_meshmode +from meshmode.discretization import Discretization +from meshmode.discretization.poly_element import ( + default_simplex_group_factory, +) +from pytential import bind, sym from sympy import hankel1 from sumpy.array_context import _acf @@ -50,9 +57,35 @@ actx = actx_factory() lknl = LaplaceKernel(2) hlknl = HelmholtzKernel(2, "k") +lnkl3d = LaplaceKernel(3) + -def _qbx_lp_helmholtz_general(sources, targets, centers, radius, strengths, order): + +def _qbx_lp_laplace_general3d(sources, targets, centers, radius, strengths, order): + lpot = LayerPotential(actx.context, + expansion=ExpnClass(lnkl3d, order), + target_kernels=(lnkl3d,), + source_kernels=(lnkl3d,)) + + # print(lpot.get_kernel()) + expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) + sources = actx.from_numpy(sources) + targets = actx.from_numpy(targets) + centers = actx.from_numpy(centers) + + strengths = (strengths,) + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii, + k=1) + result_qbx = actx.to_numpy(result_qbx) + + return result_qbx + + +def _qbx_lp_helmholtz_general2d(sources, targets, centers, radius, strengths, order): lpot = LayerPotential(actx.context, expansion=ExpnClass(hlknl, order), target_kernels=(hlknl,), @@ -75,7 +108,7 @@ def _qbx_lp_helmholtz_general(sources, targets, centers, radius, strengths, orde return result_qbx -def _qbx_lp_laplace_general(sources, targets, centers, radius, strengths, order): +def _qbx_lp_laplace_general2d(sources, targets, centers, radius, strengths, order): lpot = LayerPotential(actx.context, expansion=ExpnClass(lknl, order), target_kernels=(lknl,), @@ -117,6 +150,28 @@ def _create_ellipse(n_p): return sources, centers, normals, density, h, radius + +target_order = 4 + +actx_m = _acf_meshmode() +mesh = mgen.generate_sphere(1.0, target_order, + uniform_refinement_rounds=1) +grp_factory = default_simplex_group_factory(3, target_order) +discr = Discretization(actx_m, mesh, grp_factory) +nodes = actx_m.to_numpy(discr.nodes())[0] + +area_weight_a = bind(discr, sym.QWeight()*sym.area_element(3))(actx_m) +area_weight = actx_m.to_numpy(area_weight_a)[0] + +normals_a = bind(discr, sym.normal(3))(actx_m).as_vector(dtype=object) +normals = actx_m.to_numpy(normals_a) + +print(area_weight.shape) +print(normals.shape) + + + + def test_recurrence_laplace_2d_ellipse(): r""" Tests recurrence + qbx code. @@ -139,7 +194,7 @@ def test_recurrence_laplace_2d_ellipse(): exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) - qbx_res = _qbx_lp_laplace_general(sources, sources, centers, + qbx_res = _qbx_lp_laplace_general2d(sources, sources, centers, radius, strengths, p) # qbx_res,_ = lpot_eval_circle(sources.shape[1], p) err.append(np.max(np.abs(exp_res - qbx_res))) @@ -167,7 +222,7 @@ def test_recurrence_helmholtz_2d_ellipse(): strengths = h * density exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) - qbx_res = _qbx_lp_helmholtz_general(sources, sources, + qbx_res = _qbx_lp_helmholtz_general2d(sources, sources, centers, radius, strengths, p) err.append(np.max(np.abs(exp_res - qbx_res))) assert np.max(err) <= 1e-13 From f0e91020b2e6eee0efe184ec6df0298d46f25f31 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 8 Nov 2024 19:49:21 -0600 Subject: [PATCH 082/193] Added 3d code for sphere generation --- test/playground.ipynb | 133 ++++++++++++++++++++++++++++++------- test/test_recurrenceqbx.py | 31 +++++---- 2 files changed, 125 insertions(+), 39 deletions(-) diff --git a/test/playground.ipynb b/test/playground.ipynb index 62dae615c..b4b8f5563 100644 --- a/test/playground.ipynb +++ b/test/playground.ipynb @@ -2,39 +2,122 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import meshmode.mesh.generation as mgen\n", + "import numpy as np\n", + "import sympy as sp\n", + "from meshmode import _acf as _acf_meshmode\n", + "from meshmode.discretization import Discretization\n", + "from meshmode.discretization.poly_element import (\n", + " default_simplex_group_factory,\n", + ")\n", + "from pytential import bind, sym\n", + "from sympy import hankel1\n", + "\n", + "from sumpy.array_context import _acf\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "from sumpy.expansion.local import LineTaylorLocalExpansion\n", + "from sumpy.kernel import HelmholtzKernel, LaplaceKernel\n", + "from sumpy.qbx import LayerPotential\n", + "from sumpy.recurrenceqbx import _make_sympy_vec, recurrence_qbx_lp" + ] + }, + { + "cell_type": "code", + "execution_count": 48, "metadata": {}, "outputs": [ { - "ename": "RuntimeError", - "evalue": "Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'e', 'j'})", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:281\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 280\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 281\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_loopy_transform_cache\u001b[49m\u001b[43m[\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n", - "\u001b[0;31mKeyError\u001b[0m: TranslationUnit(callables_table=immutables.Map({'einsum3to2_kernel': CallableKernel(arg_id_to_descr=None, arg_id_to_dtype=None, name='einsum3to2_kernel', subkernel=LoopKernel(domains=[BasicSet(\"[Ne, Ni, Nj] -> { [e, i, j] : 0 <= e < Ne and 0 <= i < Ni and 0 <= j < Nj }\")], instructions=[Assignment(assignee=Subscript(Variable('out'), (Variable('e'), Variable('i'))), atomicity=(), conflicts_with_groups=frozenset(), depends_on=frozenset(), depends_on_is_final=False, expression=Reduction(SumReductionOperation, ('j',), Product((Subscript(Variable('arg0'), (Variable('i'), Variable('j'))), Subscript(Variable('arg1'), (Variable('e'), Variable('j'))))), False), groups=frozenset(), id='insn', no_sync_with=frozenset(), predicates=frozenset(), priority=0, tags=frozenset(), temp_var_type=Optional(), within_inames=frozenset({'i', 'e'}), within_inames_is_final=False)], args=[>, >, >, , shape: (Ni, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Nj), dim_tags: (stride:auto, stride:auto), offset: in aspace: global>, , shape: (Ne, Ni), dim_tags: (stride:auto, stride:auto), offset: out aspace: global>], assumptions=BasicSet(\"[Ne, Ni, Nj] -> { : }\"), temporary_variables={}, inames={'i': Iname(name='i', tags=frozenset()), 'e': Iname(name='e', tags=frozenset()), 'j': Iname(name='j', tags=frozenset())}, substitutions={}, options=Options(allow_fp_reordering=True, allow_terminal_colors=True, annotate_inames=False, build_options=[], check_dep_resolution=True, cl_exec_manage_array_events=True, disable_global_barriers=False, edit_code=False, enforce_array_accesses_within_bounds=True, enforce_variable_access_ordered=True, insert_gbarriers=False, no_numpy=True, return_dict=True, skip_arg_checks=False, trace_assignment_values=False, trace_assignments=False, write_code=False, write_wrapper=False), target=, tags=frozenset({FirstAxisIsElementsTag(), NameHint(name='nodes0_3d')}), state=, name='einsum3to2_kernel', preambles=(), preamble_generators=(), symbol_manglers=(), linearization=None, iname_slab_increments=immutables.Map({}), loop_priority=frozenset(), applied_iname_rewrites=(), index_dtype=np:dtype('int32'), silenced_warnings=[], overridden_get_grid_sizes_for_insn_ids=None))}), target=, entrypoints=frozenset({'einsum3to2_kernel'}))", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[5], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtest_recurrenceqbx\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m _create_sphere\n\u001b[0;32m----> 3\u001b[0m \u001b[43m_create_sphere\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Desktop/sumpy/test/test_recurrenceqbx.py:161\u001b[0m, in \u001b[0;36m_create_sphere\u001b[0;34m(refinement_rounds)\u001b[0m\n\u001b[1;32m 159\u001b[0m grp_factory \u001b[38;5;241m=\u001b[39m default_simplex_group_factory(\u001b[38;5;241m3\u001b[39m, target_order)\n\u001b[1;32m 160\u001b[0m discr \u001b[38;5;241m=\u001b[39m Discretization(actx, mesh, grp_factory)\n\u001b[0;32m--> 161\u001b[0m nodes \u001b[38;5;241m=\u001b[39m actx_m\u001b[38;5;241m.\u001b[39mto_numpy(\u001b[43mdiscr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m)[\u001b[38;5;241m0\u001b[39m][\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 163\u001b[0m area_weight_a \u001b[38;5;241m=\u001b[39m bind(discr, sym\u001b[38;5;241m.\u001b[39mQWeight()\u001b[38;5;241m*\u001b[39msym\u001b[38;5;241m.\u001b[39marea_element(\u001b[38;5;241m3\u001b[39m))(actx_m)\n\u001b[1;32m 164\u001b[0m area_weight \u001b[38;5;241m=\u001b[39m actx_m\u001b[38;5;241m.\u001b[39mto_numpy(area_weight_a)[\u001b[38;5;241m0\u001b[39m]\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:589\u001b[0m, in \u001b[0;36mDiscretization.nodes\u001b[0;34m(self, cached)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[0;32m--> 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array(\u001b[43m[\u001b[49m\n\u001b[1;32m 590\u001b[0m \u001b[43m \u001b[49m\u001b[43m_DOFArray\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 593\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mambient_dim\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:590\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[0;32m--> 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\n\u001b[1;32m 591\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfreeze\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\n\u001b[1;32m 592\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:591\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[1;32m 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39meinsum(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mij,ej->ei\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 580\u001b[0m actx\u001b[38;5;241m.\u001b[39mtag_axis(\n\u001b[1;32m 581\u001b[0m \u001b[38;5;241m0\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 586\u001b[0m FirstAxisIsElementsTag(),\n\u001b[1;32m 587\u001b[0m NameHint(name_hint)))\n\u001b[1;32m 589\u001b[0m result \u001b[38;5;241m=\u001b[39m make_obj_array([\n\u001b[1;32m 590\u001b[0m _DOFArray(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mtuple\u001b[39m([\n\u001b[0;32m--> 591\u001b[0m actx\u001b[38;5;241m.\u001b[39mfreeze(\u001b[43mresample_mesh_nodes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43miaxis\u001b[49m\u001b[43m)\u001b[49m) \u001b[38;5;28;01mfor\u001b[39;00m grp \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups\n\u001b[1;32m 592\u001b[0m ]))\n\u001b[1;32m 593\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iaxis \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mambient_dim)])\n\u001b[1;32m 594\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cached:\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cached_nodes \u001b[38;5;241m=\u001b[39m result\n", - "File \u001b[0;32m~/source/src/meshmode/meshmode/discretization/__init__.py:579\u001b[0m, in \u001b[0;36mDiscretization.nodes..resample_mesh_nodes\u001b[0;34m(grp, iaxis)\u001b[0m\n\u001b[1;32m 575\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (grp_unit_nodes\u001b[38;5;241m.\u001b[39mshape \u001b[38;5;241m==\u001b[39m meg_unit_nodes\u001b[38;5;241m.\u001b[39mshape\n\u001b[1;32m 576\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m np\u001b[38;5;241m.\u001b[39mlinalg\u001b[38;5;241m.\u001b[39mnorm(grp_unit_nodes \u001b[38;5;241m-\u001b[39m meg_unit_nodes) \u001b[38;5;241m<\u001b[39m tol):\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m actx\u001b[38;5;241m.\u001b[39mtag(NameHint(name_hint), nodes)\n\u001b[0;32m--> 579\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meinsum\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mij,ej->ei\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 580\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtag_axis\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 581\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 582\u001b[0m \u001b[43m \u001b[49m\u001b[43mDiscretizationDOFAxisTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 583\u001b[0m \u001b[43m \u001b[49m\u001b[43mactx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_mesh_interp_matrix\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 584\u001b[0m \u001b[43m \u001b[49m\u001b[43mnodes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 585\u001b[0m \u001b[43m \u001b[49m\u001b[43mtagged\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 586\u001b[0m \u001b[43m \u001b[49m\u001b[43mFirstAxisIsElementsTag\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 587\u001b[0m \u001b[43m \u001b[49m\u001b[43mNameHint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname_hint\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/context.py:495\u001b[0m, in \u001b[0;36mArrayContext.einsum\u001b[0;34m(self, spec, arg_names, tagged, *args)\u001b[0m\n\u001b[1;32m 492\u001b[0m arg_names \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124marg\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(args))])\n\u001b[1;32m 494\u001b[0m prg \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_einsum_prg(spec, arg_names, tagged)\n\u001b[0;32m--> 495\u001b[0m out_ary \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_loopy\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 496\u001b[0m \u001b[43m \u001b[49m\u001b[43mprg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m{\u001b[49m\u001b[43marg_names\u001b[49m\u001b[43m[\u001b[49m\u001b[43mi\u001b[49m\u001b[43m]\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43menumerate\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m}\u001b[49m\n\u001b[1;32m 497\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mout\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 498\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtag(tagged, out_ary)\n", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:284\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.call_loopy\u001b[0;34m(self, t_unit, **kwargs)\u001b[0m\n\u001b[1;32m 282\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[1;32m 283\u001b[0m orig_t_unit \u001b[38;5;241m=\u001b[39m t_unit\n\u001b[0;32m--> 284\u001b[0m executor \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mexecutor(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext)\n\u001b[1;32m 285\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_loopy_transform_cache[orig_t_unit] \u001b[38;5;241m=\u001b[39m executor\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m orig_t_unit\n", - "File \u001b[0;32m~/Desktop/sumpy/sumpy/array_context.py:55\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 50\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 53\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/source/src/boxtree/boxtree/array_context.py:54\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (options\u001b[38;5;241m.\u001b[39mreturn_dict \u001b[38;5;129;01mand\u001b[39;00m options\u001b[38;5;241m.\u001b[39mno_numpy):\n\u001b[1;32m 49\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLoopy kernel passed to call_loopy must \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 50\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhave return_dict and no_numpy options set. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDid you use arraycontext.make_loopy_program \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mto create this kernel?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 54\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtransform_loopy_program\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt_unit\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/source/src/arraycontext/arraycontext/impl/pyopencl/__init__.py:353\u001b[0m, in \u001b[0;36mPyOpenCLArrayContext.transform_loopy_program\u001b[0;34m(self, t_unit)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m t_unit\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 354\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUnable to reason what outer_iname and inner_iname \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 355\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mneeds to be; all_inames is given as: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mall_inames\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m )\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m inner_iname \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 359\u001b[0m t_unit \u001b[38;5;241m=\u001b[39m lp\u001b[38;5;241m.\u001b[39msplit_iname(t_unit, inner_iname, \u001b[38;5;241m16\u001b[39m, inner_tag\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ml.0\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[0;31mRuntimeError\u001b[0m: Unable to reason what outer_iname and inner_iname needs to be; all_inames is given as: frozenset({'i', 'e', 'j'})" + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/hirish/source/src/meshmode/meshmode/mesh/__init__.py:1086: UserWarning: Unimplemented: Cannot check element orientation for a mesh with mesh.dim != mesh.ambient_dim\n", + " check_mesh_consistency(\n" ] } ], "source": [ - "from test_recurrenceqbx import _create_sphere\n", + "target_order = 4\n", + "\n", + "actx_m = _acf_meshmode()\n", + "mesh = mgen.generate_sphere(1.0, target_order,\n", + " uniform_refinement_rounds=1)\n", + "grp_factory = default_simplex_group_factory(3, target_order)\n", + "discr = Discretization(actx_m, mesh, grp_factory)\n", + "nodes = actx_m.to_numpy(discr.nodes())\n", + "sources = np.array([nodes[0][0].reshape(-1),nodes[1][0].reshape(-1),nodes[2][0].reshape(-1)])\n", + "\n", + "area_weight_a = bind(discr, sym.QWeight()*sym.area_element(3))(actx_m)\n", + "area_weight = actx_m.to_numpy(area_weight_a)[0]\n", + "strengths = area_weight.reshape(-1)\n", + "\n", + "normals_a = bind(discr, sym.normal(3))(actx_m).as_vector(dtype=object)\n", + "normals_a = actx_m.to_numpy(normals_a)\n", + "normals = np.array([normals_a[0][0].reshape(-1), normals_a[1][0].reshape(-1), normals_a[2][0].reshape(-1)])\n", + "\n", + "radius = 0.01\n", + "centers = sources - radius * normals" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1200,)" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "strengths.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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4lvm9V/zio7NZiMiIkJxJRjMcu3zwTvA62JxnYZzFXUpKSkkJycrNwcmk0n5nrzFBN1VsH322WfcfvvtvP7669x0001DeASeccuzZs3i+eefVx7zegt2Nm75oYceYsuWLeTn5yuPrVu3jkOHDrF///4h2eeRim/ePp4HlZWVAB0uALGxsZw9e/ZC7NKwQhAE0tLS+MUvfsHPf/5zCgoK2LhxI2+//TYPPPAACxcuVMJrv/rVr/D39+ePf/zjgPiWCYJAcHAwwcHBjB07VplOWVxczLFjxwbFf+18qaioID8/v18DvIYbXpFJTk5WwmWhoaGEhoYyfvx45XsqLS0lPz+/ywq2L774gjvuuIOXXnqJ7373u0N6DE6nk6ysLH72s5+1eXzRokXs27ev0+fs37+fRYsWtXls8eLFvPrqq7hcLp+58RmODInQPProo/zmN7/pdpsDBw4we/bsPr9H+1CPLMsjtrR2sBAEgXHjxvHQQw/x4IMPUlxczMaNG3nvvff46U9/il6v58c//rHSsDnQn29gYCCpqamkpqZis9moqqqivLyc48ePKxezmJiYQS3Xbk1paSknT568aEYbwLkG1KSkpC7Ltlt/T3a7XSkmOHnyJDt27MDtdjNu3DgeeeQR/va3v3HrrbcO+W+xpqYGURQ7vQH13py2p7KystPtvX1jF0PIdLAYEqG59957ueWWW7rdpq+JRq9bbGVlZZsTobq6+qIJcwwGgiCQnJzM2rVr2bp1K9OmTePmm29m+/bt/OUvf2HGjBnKeIMxY8YM+IXE399fGfXc2lDy5MmThISEKKIz0OXaXoqLiykoKCA9PZ3w8PBBeQ9fwysyo0eP7rVFv9FoZPTo0YwePRqXy0VlZSXPP/88zz33HDExMRw7doz9+/czf/78C1JpeL43oJ1t39njKufHkAhNVFQUUVFRg/LaqampxMXFsX37diVH43Q62b17N08++eSgvOfFxAMPPIDL5eLLL78kJCSEhx9+mKqqKjZv3symTZv47W9/22amzmB4fRmNRpKSkkhKSsLpdCqic/r06TY9IAM1hqCoqIjCwkLS09MJCwsbkNf0dSwWC1lZWYwaNYqxY8f26TX0ej0TJkygsLCQP/3pT6SmprJ582aWL1/OypUr2bBhw8DudDd4LXfar166uwGNi4vrdHudTnfRrGgHC5/L0RQX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0qUUFxd3+7wTJ05QUVGh/Bs/fvwQ7bGKikp3qMUAKj7HvHnzmDVrFs8//7zy2KRJk1i1ahW///3vO2y/a9currzySurr67udLa+ionJhUFc0Kj5FX8YbeElPTyc+Pp6rr76anTt3DuZuqqionAeq0Kj4FH0ZbxAfH89LL73Exo0b2bRpExMnTuTqq69mz549Q7HLKioqPaCaaqr4JOcz3mDixIltbOQXLFhASUkJf/zjH7nssssGdT9VVFR6Rl3RqPgUfRlv0Bnz589XJyyqqPgIqtCo+BStxxu0Zvv27ec1ZTEnJ0edsKii4iOoQqPiczzwwAO88sorvPbaa+Tn53P//fdTXFzMunXrAHj44Ye54447lO2fffZZNm/ezKlTp8jLy+Phhx9m48aN3HvvvRfqEEYkjz/+OAsXLiQgIKDX1X2yLPPoo4+SkJCAv78/V1xxBXl5eYO7oyo+h5qjUfE5br75Zmpra/ntb39LRUUFU6dO5ZNPPiE5ORmAioqKNj01TqeTn/zkJ5SVleHv78+UKVP4+OOPWbZs2YU6hBGJ0+nku9/9LgsWLODVV1/t1XOeeuop/vznP7NhwwYmTJjAY489xrXXXsuJEyfUCZgXEWofjYqKynmxYcMG7rvvPhoaGrrdTpZlEhISuO+++3jooYcAcDgcxMbG8uSTT7J27doh2FsVX0ANnamoqAwKhYWFVFZWtumJ8vPz4/LLL++xJ0plZKEKjYqKyqDgrRw8n54olZGJKjQqKhcxjz76aKeGpK3/HTx4sF/vcT49USojE7UYQEXlIubee+/llltu6XablJSUPr12XFwc4FnZtC41P9+eKJXhjyo0KioXMVFRUURFRQ3Ka6emphIXF8f27dtJT08HPJVru3fv5sknnxyU91TxTdTQmYrKALJnzx5WrFhBQkICgiCwefPmHp+ze/duMjIyMBqNjBkzhhdeeGHwd7QPFBcXk5ubS3FxMaIokpubS25uLmazWdkmLS2N999/H/CEzO677z6eeOIJ3n//fY4ePcpdd91FQEAAt95664U6DJULgLqiUVEZQCwWCzNmzGDNmjXccMMNPW5fWFjIsmXLuPvuu3nrrbfYu3cv99xzD9HR0b16/lDyq1/9ijfeeEP5b+8qZefOnVxxxRWAZyZQY2Ojss2DDz6IzWbjnnvuob6+nnnz5rFt2za1h+YiQ+2jUVEZJARB4P3332fVqlVdbvPQQw+xZcsW8vPzlcfWrVvHoUOH2L9//xDspYrK4KOGzlRULiD79+/vMHtn8eLFHDx4EJfLdYH2SkVlYFGFRkXlAlJZWdlpn4nb7aampuYC7ZWKysCiCo2KygWmsz6Tzh5XURmuqEKjonIBiYuL63T2jk6nIzIy8gLtlYrKwKIKjYrKBWTBggUdZu9s27aN2bNno9frL9BeqagMLKrQqKgMIGazWekvAU/5srf3BDrO0lm3bh1nz57lgQceID8/n9dee41XX32Vn/zkJxdi91VUBgW1vFlFZQDZtWsXV155ZYfH77zzTjZs2MBdd91FUVERu3btUv62e/du7r//fvLy8khISOChhx5ShrypqIwEVKFRUVFRURlU1NCZioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqg8v8BYPjsaU6L4s4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", "\n", - "_create_sphere()" + "ax.scatter(sources[0], sources[1], sources[2])" ] }, { diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 1949d45b0..c34f02d4a 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -150,25 +150,28 @@ def _create_ellipse(n_p): return sources, centers, normals, density, h, radius +def _create_sphere(refinment_rounds=1, exp_radius=0.01): + target_order = 4 -target_order = 4 + actx_m = _acf_meshmode() + mesh = mgen.generate_sphere(1.0, target_order, uniform_refinement_rounds=refinment_rounds) + grp_factory = default_simplex_group_factory(3, target_order) + discr = Discretization(actx_m, mesh, grp_factory) + nodes = actx_m.to_numpy(discr.nodes()) + sources = np.array([nodes[0][0].reshape(-1),nodes[1][0].reshape(-1),nodes[2][0].reshape(-1)]) -actx_m = _acf_meshmode() -mesh = mgen.generate_sphere(1.0, target_order, - uniform_refinement_rounds=1) -grp_factory = default_simplex_group_factory(3, target_order) -discr = Discretization(actx_m, mesh, grp_factory) -nodes = actx_m.to_numpy(discr.nodes())[0] + area_weight_a = bind(discr, sym.QWeight()*sym.area_element(3))(actx_m) + area_weight = actx_m.to_numpy(area_weight_a)[0] + area_weight = area_weight.reshape(-1) -area_weight_a = bind(discr, sym.QWeight()*sym.area_element(3))(actx_m) -area_weight = actx_m.to_numpy(area_weight_a)[0] + normals_a = bind(discr, sym.normal(3))(actx_m).as_vector(dtype=object) + normals_a = actx_m.to_numpy(normals_a) + normals = np.array([normals_a[0][0].reshape(-1), normals_a[1][0].reshape(-1), normals_a[2][0].reshape(-1)]) -normals_a = bind(discr, sym.normal(3))(actx_m).as_vector(dtype=object) -normals = actx_m.to_numpy(normals_a) - -print(area_weight.shape) -print(normals.shape) + radius = exp_radius + centers = sources - radius * normals + return sources, centers, normals, area_weight, radius From 99c48fc9b91033779a6fc0107c1477975e17a689 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 8 Nov 2024 20:19:54 -0600 Subject: [PATCH 083/193] Delete playground.ipynb --- test/playground.ipynb | 152 ------------------------------------------ 1 file changed, 152 deletions(-) delete mode 100644 test/playground.ipynb diff --git a/test/playground.ipynb b/test/playground.ipynb deleted file mode 100644 index b4b8f5563..000000000 --- a/test/playground.ipynb +++ /dev/null @@ -1,152 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "import meshmode.mesh.generation as mgen\n", - "import numpy as np\n", - "import sympy as sp\n", - "from meshmode import _acf as _acf_meshmode\n", - "from meshmode.discretization import Discretization\n", - "from meshmode.discretization.poly_element import (\n", - " default_simplex_group_factory,\n", - ")\n", - "from pytential import bind, sym\n", - "from sympy import hankel1\n", - "\n", - "from sumpy.array_context import _acf\n", - "from sumpy.expansion.diff_op import (\n", - " laplacian,\n", - " make_identity_diff_op,\n", - ")\n", - "from sumpy.expansion.local import LineTaylorLocalExpansion\n", - "from sumpy.kernel import HelmholtzKernel, LaplaceKernel\n", - "from sumpy.qbx import LayerPotential\n", - "from sumpy.recurrenceqbx import _make_sympy_vec, recurrence_qbx_lp" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/hirish/source/src/meshmode/meshmode/mesh/__init__.py:1086: UserWarning: Unimplemented: Cannot check element orientation for a mesh with mesh.dim != mesh.ambient_dim\n", - " check_mesh_consistency(\n" - ] - } - ], - "source": [ - "target_order = 4\n", - "\n", - "actx_m = _acf_meshmode()\n", - "mesh = mgen.generate_sphere(1.0, target_order,\n", - " uniform_refinement_rounds=1)\n", - "grp_factory = default_simplex_group_factory(3, target_order)\n", - "discr = Discretization(actx_m, mesh, grp_factory)\n", - "nodes = actx_m.to_numpy(discr.nodes())\n", - "sources = np.array([nodes[0][0].reshape(-1),nodes[1][0].reshape(-1),nodes[2][0].reshape(-1)])\n", - "\n", - "area_weight_a = bind(discr, sym.QWeight()*sym.area_element(3))(actx_m)\n", - "area_weight = actx_m.to_numpy(area_weight_a)[0]\n", - "strengths = area_weight.reshape(-1)\n", - "\n", - "normals_a = bind(discr, sym.normal(3))(actx_m).as_vector(dtype=object)\n", - "normals_a = actx_m.to_numpy(normals_a)\n", - "normals = np.array([normals_a[0][0].reshape(-1), normals_a[1][0].reshape(-1), normals_a[2][0].reshape(-1)])\n", - "\n", - "radius = 0.01\n", - "centers = sources - radius * normals" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(1200,)" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "strengths.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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4lvm9V/zio7NZiMiIkJxJRjMcu3zwTvA62JxnYZzFXUpKSkkJycrNwcmk0n5nrzFBN1VsH322WfcfvvtvP7669x0001DeASeccuzZs3i+eefVx7zegt2Nm75oYceYsuWLeTn5yuPrVu3jkOHDrF///4h2eeRim/ePp4HlZWVAB0uALGxsZw9e/ZC7NKwQhAE0tLS+MUvfsHPf/5zCgoK2LhxI2+//TYPPPAACxcuVMJrv/rVr/D39+ePf/zjgPiWCYJAcHAwwcHBjB07VplOWVxczLFjxwbFf+18qaioID8/v18DvIYbXpFJTk5WwmWhoaGEhoYyfvx45XsqLS0lPz+/ywq2L774gjvuuIOXXnqJ7373u0N6DE6nk6ysLH72s5+1eXzRokXs27ev0+fs37+fRYsWtXls8eLFvPrqq7hcLp+58RmODInQPProo/zmN7/pdpsDBw4we/bsPr9H+1CPLMsjtrR2sBAEgXHjxvHQQw/x4IMPUlxczMaNG3nvvff46U9/il6v58c//rHSsDnQn29gYCCpqamkpqZis9moqqqivLyc48ePKxezmJiYQS3Xbk1paSknT568aEYbwLkG1KSkpC7Ltlt/T3a7XSkmOHnyJDt27MDtdjNu3DgeeeQR/va3v3HrrbcO+W+xpqYGURQ7vQH13py2p7KystPtvX1jF0PIdLAYEqG59957ueWWW7rdpq+JRq9bbGVlZZsTobq6+qIJcwwGgiCQnJzM2rVr2bp1K9OmTePmm29m+/bt/OUvf2HGjBnKeIMxY8YM+IXE399fGfXc2lDy5MmThISEKKIz0OXaXoqLiykoKCA9PZ3w8PBBeQ9fwysyo0eP7rVFv9FoZPTo0YwePRqXy0VlZSXPP/88zz33HDExMRw7doz9+/czf/78C1JpeL43oJ1t39njKufHkAhNVFQUUVFRg/LaqampxMXFsX37diVH43Q62b17N08++eSgvOfFxAMPPIDL5eLLL78kJCSEhx9+mKqqKjZv3symTZv47W9/22amzmB4fRmNRpKSkkhKSsLpdCqic/r06TY9IAM1hqCoqIjCwkLS09MJCwsbkNf0dSwWC1lZWYwaNYqxY8f26TX0ej0TJkygsLCQP/3pT6SmprJ582aWL1/OypUr2bBhw8DudDd4LXfar166uwGNi4vrdHudTnfRrGgHC5/L0RQX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0qUUFxd3+7wTJ05QUVGh/Bs/fvwQ7bGKikp3qMUAKj7HvHnzmDVrFs8//7zy2KRJk1i1ahW///3vO2y/a9currzySurr67udLa+ionJhUFc0Kj5FX8YbeElPTyc+Pp6rr76anTt3DuZuqqionAeq0Kj4FH0ZbxAfH89LL73Exo0b2bRpExMnTuTqq69mz549Q7HLKioqPaCaaqr4JOcz3mDixIltbOQXLFhASUkJf/zjH7nssssGdT9VVFR6Rl3RqPgUfRlv0Bnz589XJyyqqPgIqtCo+BStxxu0Zvv27ec1ZTEnJ0edsKii4iOoQqPiczzwwAO88sorvPbaa+Tn53P//fdTXFzMunXrAHj44Ye54447lO2fffZZNm/ezKlTp8jLy+Phhx9m48aN3HvvvRfqEEYkjz/+OAsXLiQgIKDX1X2yLPPoo4+SkJCAv78/V1xxBXl5eYO7oyo+h5qjUfE5br75Zmpra/ntb39LRUUFU6dO5ZNPPiE5ORmAioqKNj01TqeTn/zkJ5SVleHv78+UKVP4+OOPWbZs2YU6hBGJ0+nku9/9LgsWLODVV1/t1XOeeuop/vznP7NhwwYmTJjAY489xrXXXsuJEyfUCZgXEWofjYqKynmxYcMG7rvvPhoaGrrdTpZlEhISuO+++3jooYcAcDgcxMbG8uSTT7J27doh2FsVX0ANnamoqAwKhYWFVFZWtumJ8vPz4/LLL++xJ0plZKEKjYqKyqDgrRw8n54olZGJKjQqKhcxjz76aKeGpK3/HTx4sF/vcT49USojE7UYQEXlIubee+/llltu6XablJSUPr12XFwc4FnZtC41P9+eKJXhjyo0KioXMVFRUURFRQ3Ka6emphIXF8f27dtJT08HPJVru3fv5sknnxyU91TxTdTQmYrKALJnzx5WrFhBQkICgiCwefPmHp+ze/duMjIyMBqNjBkzhhdeeGHwd7QPFBcXk5ubS3FxMaIokpubS25uLmazWdkmLS2N999/H/CEzO677z6eeOIJ3n//fY4ePcpdd91FQEAAt95664U6DJULgLqiUVEZQCwWCzNmzGDNmjXccMMNPW5fWFjIsmXLuPvuu3nrrbfYu3cv99xzD9HR0b16/lDyq1/9ijfeeEP5b+8qZefOnVxxxRWAZyZQY2Ojss2DDz6IzWbjnnvuob6+nnnz5rFt2za1h+YiQ+2jUVEZJARB4P3332fVqlVdbvPQQw+xZcsW8vPzlcfWrVvHoUOH2L9//xDspYrK4KOGzlRULiD79+/vMHtn8eLFHDx4EJfLdYH2SkVlYFGFRkXlAlJZWdlpn4nb7aampuYC7ZWKysCiCo2KygWmsz6Tzh5XURmuqEKjonIBiYuL63T2jk6nIzIy8gLtlYrKwKIKjYrKBWTBggUdZu9s27aN2bNno9frL9BeqagMLKrQqKgMIGazWekvAU/5srf3BDrO0lm3bh1nz57lgQceID8/n9dee41XX32Vn/zkJxdi91VUBgW1vFlFZQDZtWsXV155ZYfH77zzTjZs2MBdd91FUVERu3btUv62e/du7r//fvLy8khISOChhx5ShrypqIwEVKFRUVFRURlU1NCZioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqgogqNioqKisqg8v8BYPjsaU6L4s4AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot(111, projection='3d')\n", - "\n", - "ax.scatter(sources[0], sources[1], sources[2])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 5c0c45b31ca0ee90e3236a31175ae1e8f4084b75 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 8 Nov 2024 20:44:09 -0600 Subject: [PATCH 084/193] Formatted code --- test/test_recurrenceqbx.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index c34f02d4a..5348a6e58 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -29,15 +29,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -import meshmode.mesh.generation as mgen +import meshmode.mesh.generation as mgen # type: ignore import numpy as np import sympy as sp -from meshmode import _acf as _acf_meshmode -from meshmode.discretization import Discretization -from meshmode.discretization.poly_element import ( +from meshmode import _acf as _acf_meshmode # type: ignore +from meshmode.discretization import Discretization # type: ignore +from meshmode.discretization.poly_element import ( # type: ignore default_simplex_group_factory, ) -from pytential import bind, sym +from pytential import bind, sym # type: ignore from sympy import hankel1 from sumpy.array_context import _acf @@ -60,8 +60,6 @@ lnkl3d = LaplaceKernel(3) - - def _qbx_lp_laplace_general3d(sources, targets, centers, radius, strengths, order): lpot = LayerPotential(actx.context, expansion=ExpnClass(lnkl3d, order), @@ -154,11 +152,13 @@ def _create_sphere(refinment_rounds=1, exp_radius=0.01): target_order = 4 actx_m = _acf_meshmode() - mesh = mgen.generate_sphere(1.0, target_order, uniform_refinement_rounds=refinment_rounds) + mesh = mgen.generate_sphere(1.0, target_order, + uniform_refinement_rounds=refinment_rounds) grp_factory = default_simplex_group_factory(3, target_order) discr = Discretization(actx_m, mesh, grp_factory) nodes = actx_m.to_numpy(discr.nodes()) - sources = np.array([nodes[0][0].reshape(-1),nodes[1][0].reshape(-1),nodes[2][0].reshape(-1)]) + sources = np.array([nodes[0][0].reshape(-1), + nodes[1][0].reshape(-1), nodes[2][0].reshape(-1)]) area_weight_a = bind(discr, sym.QWeight()*sym.area_element(3))(actx_m) area_weight = actx_m.to_numpy(area_weight_a)[0] @@ -166,7 +166,8 @@ def _create_sphere(refinment_rounds=1, exp_radius=0.01): normals_a = bind(discr, sym.normal(3))(actx_m).as_vector(dtype=object) normals_a = actx_m.to_numpy(normals_a) - normals = np.array([normals_a[0][0].reshape(-1), normals_a[1][0].reshape(-1), normals_a[2][0].reshape(-1)]) + normals = np.array([normals_a[0][0].reshape(-1), normals_a[1][0].reshape(-1), + normals_a[2][0].reshape(-1)]) radius = exp_radius centers = sources - radius * normals @@ -174,7 +175,6 @@ def _create_sphere(refinment_rounds=1, exp_radius=0.01): return sources, centers, normals, area_weight, radius - def test_recurrence_laplace_2d_ellipse(): r""" Tests recurrence + qbx code. From 4249d8b7b333706e5837175247ca0e40836573fe Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 9 Nov 2024 11:28:48 -0600 Subject: [PATCH 085/193] Debug why laplace3d doesn't agree past order 0 --- sumpy/recurrenceqbx.py | 7 ++++--- test/test_recurrenceqbx.py | 30 ++++++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index 0407ba02b..b0e1e874d 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -88,8 +88,8 @@ def generate_lamb_expr(i, n_initial): for j in range(order, 0, -1): # pylint: disable-next=not-callable arg_list.append(s(i-j)) - arg_list.append(var[0]) - arg_list.append(var[1]) + for j in range(ndim): + arg_list.append(var[j]) arg_list.append(r) if i < n_initial: @@ -103,7 +103,8 @@ def generate_lamb_expr(i, n_initial): interactions = 0 for i in range(p+1): lamb_expr = generate_lamb_expr(i, n_initial) - a = [*storage, cts_r_s[0], cts_r_s[1], radius] + coord = [cts_r_s[i] for i in range(ndim)] + a = [*storage, *coord, radius] s_new = lamb_expr(*a) interactions += s_new * radius**i/math.factorial(i) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 5348a6e58..ead9d05c6 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -76,8 +76,7 @@ def _qbx_lp_laplace_general3d(sources, targets, centers, radius, strengths, orde _evt, (result_qbx,) = lpot( actx.queue, targets, sources, centers, strengths, - expansion_radii=expansion_radii, - k=1) + expansion_radii=expansion_radii) result_qbx = actx.to_numpy(result_qbx) return result_qbx @@ -175,6 +174,33 @@ def _create_sphere(refinment_rounds=1, exp_radius=0.01): return sources, centers, normals, area_weight, radius +def test_recurrence_laplace_3d_ellipse(): + sources, centers, normals, area_weight, radius = _create_sphere(1) + radius = 0.001 + out =_qbx_lp_laplace_general3d(sources, sources, centers, radius, + np.ones(area_weight.shape), 0) + + w = make_identity_diff_op(3) + laplace3d = laplacian(w) + var = _make_sympy_vec("x", 3) + var_t = _make_sympy_vec("t", 3) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2 + + (var[2]-var_t[2])**2) + g_x_y = 1/(4*np.pi) * 1/abs_dist + + exp_res = recurrence_qbx_lp(sources, centers, normals, np.ones(area_weight.shape), + radius, laplace3d, g_x_y, 3, 0) + + print(exp_res) + print(out) + print(sources[:,0],centers[:,0]) + print(1/(4*np.pi) * 1/np.linalg.norm(sources[:,0] - centers[:,0])) + #print(np.max(abs(exp_res-out))) + + +test_recurrence_laplace_3d_ellipse() + + def test_recurrence_laplace_2d_ellipse(): r""" Tests recurrence + qbx code. From 16a2b17ae473885157f969f5db0202b3b52f34e5 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 9 Nov 2024 12:14:57 -0600 Subject: [PATCH 086/193] Damn bug still persists --- sumpy/recurrenceqbx.py | 13 ++++++------- test/test_recurrenceqbx.py | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index b0e1e874d..5205defcc 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -90,21 +90,20 @@ def generate_lamb_expr(i, n_initial): arg_list.append(s(i-j)) for j in range(ndim): arg_list.append(var[j]) - arg_list.append(r) if i < n_initial: - lamb_expr = sp.diff(g_x_y, var_t[0], i) + lamb_expr_symb = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): - lamb_expr = lamb_expr.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb.subs(var_t[j], 0) else: - lamb_expr = recurrence.subs(n, i) - return sp.lambdify(arg_list, lamb_expr) + lamb_expr_symb = recurrence.subs(n, i) + return sp.lambdify(arg_list, lamb_expr_symb) interactions = 0 for i in range(p+1): lamb_expr = generate_lamb_expr(i, n_initial) - coord = [cts_r_s[i] for i in range(ndim)] - a = [*storage, *coord, radius] + coord = [cts_r_s[j] for j in range(ndim)] + a = [*storage, *coord] s_new = lamb_expr(*a) interactions += s_new * radius**i/math.factorial(i) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index ead9d05c6..814c199bf 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -193,8 +193,8 @@ def test_recurrence_laplace_3d_ellipse(): print(exp_res) print(out) - print(sources[:,0],centers[:,0]) - print(1/(4*np.pi) * 1/np.linalg.norm(sources[:,0] - centers[:,0])) + #print(sources[:,0], centers[:,0]) + #print(1/(4*np.pi) * 1/np.linalg.norm(sources[:,0] - centers[:,0])) #print(np.max(abs(exp_res-out))) From df499709e0dd72469531eeb1ce55e306134d8b96 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 10 Nov 2024 14:16:12 -0600 Subject: [PATCH 087/193] Issue is not with my code --- sumpy/recurrenceqbx.py | 2 +- test/test_recurrenceqbx.py | 41 ++++++++++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index 5205defcc..6302f04ff 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -100,9 +100,9 @@ def generate_lamb_expr(i, n_initial): return sp.lambdify(arg_list, lamb_expr_symb) interactions = 0 + coord = [cts_r_s[j] for j in range(ndim)] for i in range(p+1): lamb_expr = generate_lamb_expr(i, n_initial) - coord = [cts_r_s[j] for j in range(ndim)] a = [*storage, *coord] s_new = lamb_expr(*a) interactions += s_new * radius**i/math.factorial(i) diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 814c199bf..04d83e1e6 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -48,7 +48,7 @@ from sumpy.expansion.local import LineTaylorLocalExpansion from sumpy.kernel import HelmholtzKernel, LaplaceKernel from sumpy.qbx import LayerPotential -from sumpy.recurrenceqbx import _make_sympy_vec, recurrence_qbx_lp +from sumpy.recurrenceqbx import _make_sympy_vec, recurrence_qbx_lp, _compute_rotated_shifted_coordinates actx_factory = _acf @@ -174,11 +174,22 @@ def _create_sphere(refinment_rounds=1, exp_radius=0.01): return sources, centers, normals, area_weight, radius +def test_compute_rotated_shifted_coordinates(): + r""" + Tests rotated shifted code. + """ + sources = np.array([[1], [2], [2]]) + centers = np.array([[0], [0], [0]]) + normals = np.array([[1], [0], [0]]) + cts = _compute_rotated_shifted_coordinates(sources, centers, normals) + assert np.sqrt(cts[1]**2 + cts[2]**2) - np.sqrt(8) <= 1e-12 + + def test_recurrence_laplace_3d_ellipse(): sources, centers, normals, area_weight, radius = _create_sphere(1) - radius = 0.001 + radius = 0.0001 out =_qbx_lp_laplace_general3d(sources, sources, centers, radius, - np.ones(area_weight.shape), 0) + np.ones(area_weight.shape), 1) w = make_identity_diff_op(3) laplace3d = laplacian(w) @@ -189,14 +200,22 @@ def test_recurrence_laplace_3d_ellipse(): g_x_y = 1/(4*np.pi) * 1/abs_dist exp_res = recurrence_qbx_lp(sources, centers, normals, np.ones(area_weight.shape), - radius, laplace3d, g_x_y, 3, 0) - - print(exp_res) - print(out) - #print(sources[:,0], centers[:,0]) - #print(1/(4*np.pi) * 1/np.linalg.norm(sources[:,0] - centers[:,0])) - #print(np.max(abs(exp_res-out))) - + radius, laplace3d, g_x_y, 3, 1) + + + res = 0 + for i in range(sources.shape[1]): + #c2s = sources[:,i] - centers[:,0] + #res += 1/(4*np.pi) * 1/np.linalg.norm(c2s) + subs_dict = {var_t[0]:centers[0,0], var_t[1]:centers[1,0], var_t[2]:centers[2,0], + var[0]:sources[0,i], var[1]:sources[1,i], var[2]:sources[2,i]} + res += g_x_y.subs(subs_dict) + grad = sp.diff(g_x_y, var_t[0], 1) * normals[0,0] + sp.diff(g_x_y, var_t[1], 1) * normals[1,0] + sp.diff(g_x_y, var_t[2], 1) * normals[2,0] + res += grad.subs(subs_dict) * radius + + print(exp_res[0]) + print(out[0]) + print(res) test_recurrence_laplace_3d_ellipse() From db671353b85033bcca2633efa6fcfa12fa611c68 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 11 Nov 2024 14:39:06 -0600 Subject: [PATCH 088/193] Passing Laplace3D --- sumpy/recurrenceqbx.py | 2 ++ test/test_recurrenceqbx.py | 29 +++++++++++++---------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index 6302f04ff..bd4a5baaa 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -112,4 +112,6 @@ def generate_lamb_expr(i, n_initial): exp_res = (interactions * strengths[None, :]).sum(axis=1) + + return exp_res diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 04d83e1e6..2114e99e1 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -147,7 +147,7 @@ def _create_ellipse(n_p): return sources, centers, normals, density, h, radius -def _create_sphere(refinment_rounds=1, exp_radius=0.01): +def _create_sphere(refinment_rounds, exp_radius): target_order = 4 actx_m = _acf_meshmode() @@ -186,9 +186,10 @@ def test_compute_rotated_shifted_coordinates(): def test_recurrence_laplace_3d_ellipse(): - sources, centers, normals, area_weight, radius = _create_sphere(1) radius = 0.0001 - out =_qbx_lp_laplace_general3d(sources, sources, centers, radius, + sources, centers, normals, area_weight, radius = _create_sphere(1, radius) + + out = _qbx_lp_laplace_general3d(sources, sources, centers, radius, np.ones(area_weight.shape), 1) w = make_identity_diff_op(3) @@ -199,23 +200,19 @@ def test_recurrence_laplace_3d_ellipse(): + (var[2]-var_t[2])**2) g_x_y = 1/(4*np.pi) * 1/abs_dist + exp_res = recurrence_qbx_lp(sources, centers, normals, np.ones(area_weight.shape), radius, laplace3d, g_x_y, 3, 1) + + assert(np.max(exp_res-out) <= 1e-8) + +def test_recurrence_helmholtz_3d_ellipse(): + radius = 0.0001 + sources, centers, normals, area_weight, radius = _create_sphere(1, radius) + - res = 0 - for i in range(sources.shape[1]): - #c2s = sources[:,i] - centers[:,0] - #res += 1/(4*np.pi) * 1/np.linalg.norm(c2s) - subs_dict = {var_t[0]:centers[0,0], var_t[1]:centers[1,0], var_t[2]:centers[2,0], - var[0]:sources[0,i], var[1]:sources[1,i], var[2]:sources[2,i]} - res += g_x_y.subs(subs_dict) - grad = sp.diff(g_x_y, var_t[0], 1) * normals[0,0] + sp.diff(g_x_y, var_t[1], 1) * normals[1,0] + sp.diff(g_x_y, var_t[2], 1) * normals[2,0] - res += grad.subs(subs_dict) * radius - - print(exp_res[0]) - print(out[0]) - print(res) + test_recurrence_laplace_3d_ellipse() From 6364e531221a4210d5df99dce92dfda07464886c Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 11 Nov 2024 15:18:32 -0600 Subject: [PATCH 089/193] Added helmholtz3d tests, formatted --- sumpy/recurrenceqbx.py | 4 +- test/test_recurrenceqbx.py | 118 ++++++++++++++++--------------------- 2 files changed, 52 insertions(+), 70 deletions(-) diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrenceqbx.py index bd4a5baaa..871614408 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrenceqbx.py @@ -81,7 +81,7 @@ def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, storage = [np.zeros((n_p, n_p))] * order s = sp.Function("s") - r, n = sp.symbols("r,n") + n = sp.symbols("n") def generate_lamb_expr(i, n_initial): arg_list = [] @@ -112,6 +112,4 @@ def generate_lamb_expr(i, n_initial): exp_res = (interactions * strengths[None, :]).sum(axis=1) - - return exp_res diff --git a/test/test_recurrenceqbx.py b/test/test_recurrenceqbx.py index 2114e99e1..cd76b4641 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrenceqbx.py @@ -48,23 +48,29 @@ from sumpy.expansion.local import LineTaylorLocalExpansion from sumpy.kernel import HelmholtzKernel, LaplaceKernel from sumpy.qbx import LayerPotential -from sumpy.recurrenceqbx import _make_sympy_vec, recurrence_qbx_lp, _compute_rotated_shifted_coordinates +from sumpy.recurrenceqbx import ( + _compute_rotated_shifted_coordinates, + _make_sympy_vec, + recurrence_qbx_lp, +) actx_factory = _acf ExpnClass = LineTaylorLocalExpansion actx = actx_factory() -lknl = LaplaceKernel(2) -hlknl = HelmholtzKernel(2, "k") -lnkl3d = LaplaceKernel(3) +lknl2d = LaplaceKernel(2) +hknl2d = HelmholtzKernel(2) +lknl3d = LaplaceKernel(3) +hknl3d = HelmholtzKernel(3) -def _qbx_lp_laplace_general3d(sources, targets, centers, radius, strengths, order): +def _qbx_lp_general(knl, sources, targets, centers, radius, + strengths, order, k=0): lpot = LayerPotential(actx.context, - expansion=ExpnClass(lnkl3d, order), - target_kernels=(lnkl3d,), - source_kernels=(lnkl3d,)) + expansion=ExpnClass(knl, order), + target_kernels=(knl,), + source_kernels=(knl,)) # print(lpot.get_kernel()) expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) @@ -73,56 +79,18 @@ def _qbx_lp_laplace_general3d(sources, targets, centers, radius, strengths, orde centers = actx.from_numpy(centers) strengths = (strengths,) - _evt, (result_qbx,) = lpot( - actx.queue, - targets, sources, centers, strengths, - expansion_radii=expansion_radii) - result_qbx = actx.to_numpy(result_qbx) - - return result_qbx - + if k == 0: + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii) + else: + _evt, (result_qbx,) = lpot( + actx.queue, + targets, sources, centers, strengths, + expansion_radii=expansion_radii, + k=1) -def _qbx_lp_helmholtz_general2d(sources, targets, centers, radius, strengths, order): - lpot = LayerPotential(actx.context, - expansion=ExpnClass(hlknl, order), - target_kernels=(hlknl,), - source_kernels=(hlknl,)) - - # print(lpot.get_kernel()) - expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) - sources = actx.from_numpy(sources) - targets = actx.from_numpy(targets) - centers = actx.from_numpy(centers) - - strengths = (strengths,) - _evt, (result_qbx,) = lpot( - actx.queue, - targets, sources, centers, strengths, - expansion_radii=expansion_radii, - k=1) - result_qbx = actx.to_numpy(result_qbx) - - return result_qbx - - -def _qbx_lp_laplace_general2d(sources, targets, centers, radius, strengths, order): - lpot = LayerPotential(actx.context, - expansion=ExpnClass(lknl, order), - target_kernels=(lknl,), - source_kernels=(lknl,)) - - # print(lpot.get_kernel()) - expansion_radii = actx.from_numpy(radius * np.ones(sources.shape[1])) - sources = actx.from_numpy(sources) - targets = actx.from_numpy(targets) - centers = actx.from_numpy(centers) - - strengths = (strengths,) - - _evt, (result_qbx,) = lpot( - actx.queue, - targets, sources, centers, strengths, - expansion_radii=expansion_radii) result_qbx = actx.to_numpy(result_qbx) return result_qbx @@ -185,11 +153,14 @@ def test_compute_rotated_shifted_coordinates(): assert np.sqrt(cts[1]**2 + cts[2]**2) - np.sqrt(8) <= 1e-12 -def test_recurrence_laplace_3d_ellipse(): +def test_recurrence_laplace_3d_sphere(): + r""" + Tests reccurrence + qbx laplace 3d on sphere + """ radius = 0.0001 sources, centers, normals, area_weight, radius = _create_sphere(1, radius) - out = _qbx_lp_laplace_general3d(sources, sources, centers, radius, + out = _qbx_lp_general(lknl3d, sources, sources, centers, radius, np.ones(area_weight.shape), 1) w = make_identity_diff_op(3) @@ -200,21 +171,34 @@ def test_recurrence_laplace_3d_ellipse(): + (var[2]-var_t[2])**2) g_x_y = 1/(4*np.pi) * 1/abs_dist - exp_res = recurrence_qbx_lp(sources, centers, normals, np.ones(area_weight.shape), radius, laplace3d, g_x_y, 3, 1) + assert np.max(exp_res-out) <= 1e-8 - assert(np.max(exp_res-out) <= 1e-8) -def test_recurrence_helmholtz_3d_ellipse(): +def test_recurrence_helmholtz_3d_sphere(): + r""" + Tests reccurrence + qbx helmholtz 3d on sphere + """ radius = 0.0001 sources, centers, normals, area_weight, radius = _create_sphere(1, radius) - + out = _qbx_lp_general(hknl3d, sources, sources, centers, radius, + np.ones(area_weight.shape), 1, 1) + + w = make_identity_diff_op(3) + helmholtz3d = laplacian(w) + w + var = _make_sympy_vec("x", 3) + var_t = _make_sympy_vec("t", 3) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2 + + (var[2]-var_t[2])**2) + g_x_y = (1/(4*np.pi)) * sp.exp(1j * abs_dist) / abs_dist + exp_res = recurrence_qbx_lp(sources, centers, normals, np.ones(area_weight.shape), + radius, helmholtz3d, g_x_y, 3, 1) -test_recurrence_laplace_3d_ellipse() + assert np.max(abs(out - exp_res)) <= 1e-8 def test_recurrence_laplace_2d_ellipse(): @@ -239,7 +223,7 @@ def test_recurrence_laplace_2d_ellipse(): exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) - qbx_res = _qbx_lp_laplace_general2d(sources, sources, centers, + qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers, radius, strengths, p) # qbx_res,_ = lpot_eval_circle(sources.shape[1], p) err.append(np.max(np.abs(exp_res - qbx_res))) @@ -267,7 +251,7 @@ def test_recurrence_helmholtz_2d_ellipse(): strengths = h * density exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) - qbx_res = _qbx_lp_helmholtz_general2d(sources, sources, - centers, radius, strengths, p) + qbx_res = _qbx_lp_general(hknl2d, sources, sources, + centers, radius, strengths, p, 1) err.append(np.max(np.abs(exp_res - qbx_res))) assert np.max(err) <= 1e-13 From 3c4845bca211ad5d9a0a9483c3d2163c3ab02a13 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 13 Nov 2024 14:06:16 -0600 Subject: [PATCH 090/193] Update based on suggestions --- sumpy/{recurrenceqbx.py => recurrence_qbx.py} | 33 ++++++++++++++++--- test/test_recurrence.py | 2 +- ...ecurrenceqbx.py => test_recurrence_qbx.py} | 22 +++++++++---- 3 files changed, 44 insertions(+), 13 deletions(-) rename sumpy/{recurrenceqbx.py => recurrence_qbx.py} (73%) rename test/{test_recurrenceqbx.py => test_recurrence_qbx.py} (93%) diff --git a/sumpy/recurrenceqbx.py b/sumpy/recurrence_qbx.py similarity index 73% rename from sumpy/recurrenceqbx.py rename to sumpy/recurrence_qbx.py index 871614408..4dbc2442a 100644 --- a/sumpy/recurrenceqbx.py +++ b/sumpy/recurrence_qbx.py @@ -5,7 +5,33 @@ .. autofunction:: recurrence_qbx_lp """ -from __future__ import annotations # noqa: I001 +from __future__ import annotations + + +__copyright__ = """ +Copyright (C) 2024 Hirish Chandrasekaran +Copyright (C) 2024 Andreas Kloeckner +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" import math from typing import Sequence @@ -13,10 +39,7 @@ import numpy as np import sympy as sp -from sumpy.recurrence import ( - _make_sympy_vec, - get_processed_and_shifted_recurrence -) +from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence # ================ Transform/Rotate ================= diff --git a/test/test_recurrence.py b/test/test_recurrence.py index adfcfd244..72ff63a60 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -148,7 +148,7 @@ def test_helmholtz2d(): x_coord = np.random.rand() # noqa: NPY002 y_coord = np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} - derivs = [derivs[i].subs(coord_dict) for i in range(6)] + derivs = [d.subs(coord_dict) for d in derivs] # pylint: disable-next=not-callable subs_dict = {s(0): derivs[0], s(1): derivs[1]} diff --git a/test/test_recurrenceqbx.py b/test/test_recurrence_qbx.py similarity index 93% rename from test/test_recurrenceqbx.py rename to test/test_recurrence_qbx.py index cd76b4641..69efc7f43 100644 --- a/test/test_recurrenceqbx.py +++ b/test/test_recurrence_qbx.py @@ -1,5 +1,5 @@ r""" -With the functionality in this module, we aim to test recurrence +With the functionality in this module, we test recurrence + qbx code. """ from __future__ import annotations @@ -48,7 +48,7 @@ from sumpy.expansion.local import LineTaylorLocalExpansion from sumpy.kernel import HelmholtzKernel, LaplaceKernel from sumpy.qbx import LayerPotential -from sumpy.recurrenceqbx import ( +from sumpy.recurrence_qbx import ( _compute_rotated_shifted_coordinates, _make_sympy_vec, recurrence_qbx_lp, @@ -161,7 +161,7 @@ def test_recurrence_laplace_3d_sphere(): sources, centers, normals, area_weight, radius = _create_sphere(1, radius) out = _qbx_lp_general(lknl3d, sources, sources, centers, radius, - np.ones(area_weight.shape), 1) + area_weight, 4) w = make_identity_diff_op(3) laplace3d = laplacian(w) @@ -171,21 +171,25 @@ def test_recurrence_laplace_3d_sphere(): + (var[2]-var_t[2])**2) g_x_y = 1/(4*np.pi) * 1/abs_dist - exp_res = recurrence_qbx_lp(sources, centers, normals, np.ones(area_weight.shape), - radius, laplace3d, g_x_y, 3, 1) + exp_res = recurrence_qbx_lp(sources, centers, normals, area_weight, + radius, laplace3d, g_x_y, 3, 4) - assert np.max(exp_res-out) <= 1e-8 + assert (np.max(exp_res-out)/np.max(abs(exp_res))) <= 1e-12 def test_recurrence_helmholtz_3d_sphere(): r""" Tests reccurrence + qbx helmholtz 3d on sphere """ + # import time radius = 0.0001 - sources, centers, normals, area_weight, radius = _create_sphere(1, radius) + sources, centers, normals, area_weight, radius = _create_sphere(2, radius) + # start = time.time() out = _qbx_lp_general(hknl3d, sources, sources, centers, radius, np.ones(area_weight.shape), 1, 1) + # end = time.time() + # length1 = end - start w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w @@ -195,8 +199,12 @@ def test_recurrence_helmholtz_3d_sphere(): + (var[2]-var_t[2])**2) g_x_y = (1/(4*np.pi)) * sp.exp(1j * abs_dist) / abs_dist + # start = time.time() exp_res = recurrence_qbx_lp(sources, centers, normals, np.ones(area_weight.shape), radius, helmholtz3d, g_x_y, 3, 1) + # end = time.time() + # length2 = end - start + # print(sources.shape[1], length1, length2) assert np.max(abs(out - exp_res)) <= 1e-8 From 2f34622602ddfa1e39ecb9a99d2ee9779c575ca6 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 16 Nov 2024 22:11:43 -0600 Subject: [PATCH 091/193] Experiments show the recurrence falls apart when the source is close to the target --- sumpy/recurrence_qbx.py | 2 ++ test/test_recurrence.py | 40 +++++++++++++++++++++++++++++++++ test/test_recurrence_qbx.py | 44 +++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 4dbc2442a..ebdd03228 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -120,6 +120,8 @@ def generate_lamb_expr(i, n_initial): lamb_expr_symb = lamb_expr_symb.subs(var_t[j], 0) else: lamb_expr_symb = recurrence.subs(n, i) + print("=============== ORDER = " + str(i)) + print(lamb_expr_symb) return sp.lambdify(arg_list, lamb_expr_symb) interactions = 0 diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 72ff63a60..2c4d82a4b 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -206,3 +206,43 @@ def test_laplace2d(): check = np.array([check[i].subs(coord_dict) for i in range(len(check))]) assert max(abs(abs(check))) <= 1e-12 + + +import matplotlib.pyplot as plt +def _plot_laplace_2d(max_order_check, max_abs): + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + n_init, _, r = get_processed_and_shifted_recurrence(laplace2d) + + n = sp.symbols("n") + s = sp.Function("s") + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(max_order_check)] + + # pylint: disable-next=not-callable + subs_dict = {s(0): derivs[0], s(1): derivs[1]} + check = [] + + assert n_init == 2 + for i in range(n_init, max_order_check): + check.append(abs(r.subs(n, i).subs(subs_dict) - derivs[i])) + # pylint: disable-next=not-callable + subs_dict[s(i)] = derivs[i] + + x_coord = np.random.rand()*max_abs # noqa: NPY002 + y_coord = np.random.rand()*max_abs # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord} + + return np.array([check[i].subs(coord_dict) for i in range(len(check))]) + +plot_me = _plot_laplace_2d(6, 0.001) +plt.title("Recurrence Accuracy, Random Source Point") +plt.scatter([i+2 for i in range(len(plot_me))], plot_me) +plt.ylabel("Error") +plt.xlabel("Order") +plt.show() \ No newline at end of file diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 69efc7f43..0dce68293 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -263,3 +263,47 @@ def test_recurrence_helmholtz_2d_ellipse(): centers, radius, strengths, p, 1) err.append(np.max(np.abs(exp_res - qbx_res))) assert np.max(err) <= 1e-13 + + +# ============ Plotting Functionality +def _construct_laplace_axis_2d(orders, resolutions): + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2)) + + err = [] + for p in orders: + err_per_order = [] + for n_p in resolutions: + sources, centers, normals, density, h, radius = _create_ellipse(n_p) + strengths = h * density + exp_res = recurrence_qbx_lp(sources, centers, normals, + strengths, radius, laplace2d, + g_x_y, 2, p) + qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers, + radius, strengths, p) + # qbx_res,_ = lpot_eval_circle(sources.shape[1], p) + err_per_order.append(np.max(np.abs(exp_res - qbx_res)/ + np.max(np.abs(qbx_res)))) + err.append(err_per_order) + + return err + +import matplotlib.pyplot as plt +orders = [7] +resolutions = range(400, 1401, 200) +err_mat = _construct_laplace_axis_2d(orders, resolutions) +for i in range(len(orders)): + plt.plot(resolutions, err_mat[i], label="order ="+str(orders[i])) +plt.xlabel("Number of Nodes") +plt.ylabel("Error") +plt.title("2D Ellipse LP Eval Error") +plt.legend() +plt.show() + + + From 19703047e2eb4cf97575953b63cd44ca147b5807 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 16 Nov 2024 23:07:50 -0600 Subject: [PATCH 092/193] Push source away from center --- test/test_recurrence.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 2c4d82a4b..8d16b827f 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -213,6 +213,7 @@ def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) laplace2d = laplacian(w) n_init, _, r = get_processed_and_shifted_recurrence(laplace2d) + print(r) n = sp.symbols("n") s = sp.Function("s") @@ -234,15 +235,18 @@ def _plot_laplace_2d(max_order_check, max_abs): # pylint: disable-next=not-callable subs_dict[s(i)] = derivs[i] - x_coord = np.random.rand()*max_abs # noqa: NPY002 - y_coord = np.random.rand()*max_abs # noqa: NPY002 + x_coord = abs(np.random.rand()*max_abs) + 3 # noqa: NPY002 + y_coord = abs(np.random.rand()*max_abs) + 3 # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} return np.array([check[i].subs(coord_dict) for i in range(len(check))]) -plot_me = _plot_laplace_2d(6, 0.001) -plt.title("Recurrence Accuracy, Random Source Point") -plt.scatter([i+2 for i in range(len(plot_me))], plot_me) +plot_me = _plot_laplace_2d(20, 1) + +fig = plt.figure() +ax = fig.add_subplot(1, 1, 1) +line, = ax.plot([i+2 for i in range(len(plot_me))], plot_me) +ax.set_yscale('log') plt.ylabel("Error") plt.xlabel("Order") plt.show() \ No newline at end of file From b06d2dccc8a57af931421f5a63865bb068a19654 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 20 Nov 2024 16:03:55 -0800 Subject: [PATCH 093/193] Recurrence by itself is fine --- sumpy/recurrence.py | 2 +- test/modified_recur.ipynb | 201 ++++++++++++++++++++++++++++++++++++ test/test_recurrence.py | 9 +- test/test_recurrence_qbx.py | 6 +- 4 files changed, 209 insertions(+), 9 deletions(-) create mode 100644 test/modified_recur.ipynb diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 0fa0fe881..2a7642040 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -307,7 +307,7 @@ def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: # Re-arrange the recurrence relation so we get s(n) = ____ # in terms of s(n-1), ... - true_recurrence = sum(coeffs[i]/coeffs[-1] * terms[i] + true_recurrence = sum(sp.cancel(coeffs[i]/coeffs[-1]) * terms[i] for i in range(0, len(terms)-1)) true_recurrence1 = true_recurrence.subs(n, n-shift_idx) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb new file mode 100644 index 000000000..58c06fb25 --- /dev/null +++ b/test/modified_recur.ipynb @@ -0,0 +1,201 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 233, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "\n", + "import sympy as sp\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 234, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "n_init, order, r = get_processed_and_shifted_recurrence(laplace2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 235, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left(-1\\right)^{n + 1} \\left(\\frac{\\left(-1\\right)^{n - 3} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) s{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) s{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) s{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" + ], + "text/plain": [ + "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*s(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*s(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*s(n - 1)/(x0**3 + x0*x1**2))" + ] + }, + "execution_count": 235, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r" + ] + }, + { + "cell_type": "code", + "execution_count": 285, + "metadata": {}, + "outputs": [], + "source": [ + "#We want to subsitute s(i) r^i_{ct} = g(i)\n", + "g = sp.Function(\"g\")\n", + "s = sp.Function(\"s\")\n", + "n = sp.symbols(\"n\")\n", + "rct = sp.symbols(\"r_{ct}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 286, + "metadata": {}, + "outputs": [], + "source": [ + "r_new = r*rct**n\n", + "for i in range(order):\n", + " r_new = r_new.subs(s(n-i),g(n-i)/(rct**(n-i)))" + ] + }, + { + "cell_type": "code", + "execution_count": 287, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left(-1\\right)^{n + 1} r_{ct}^{n} \\left(\\frac{\\left(-1\\right)^{n - 3} r_{ct}^{3 - n} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) g{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} r_{ct}^{2 - n} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) g{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} r_{ct}^{1 - n} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) g{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" + ], + "text/plain": [ + "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" + ] + }, + "execution_count": 287, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r_new" + ] + }, + { + "cell_type": "code", + "execution_count": 303, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + "derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(15)]\n", + "max_abs = .0000001\n", + "x_coord = np.random.rand()*max_abs # noqa: NPY002\n", + "y_coord = np.random.rand()*max_abs\n", + "coord_dict = {var[0]: x_coord, var[1]: y_coord}" + ] + }, + { + "cell_type": "code", + "execution_count": 304, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_recurrence(coord_dict, rct_val, recur, p):\n", + " subs_dict = {}\n", + " subs_dict[g(0)] = derivs[0].subs(coord_dict).subs(rct, rct_val)\n", + " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", + " for i in range(2, p):\n", + " subs_dict[g(i)] = recur.subs(n, i).subs(subs_dict).subs(coord_dict).subs(rct, rct_val)\n", + " return np.array(list(subs_dict.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 305, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_true(coord_dict, rct_val, p):\n", + " retMe = []\n", + " for i in range(p):\n", + " retMe.append(derivs[i].subs(coord_dict).subs(rct, rct_val)*rct_val**i)\n", + " return np.array(retMe)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 0, 2.51782700048972e-16, 4.95906080244864e-16,\n", + " 3.99749493419410e-16, 1.25768654288579e-15, 1.72518029710139e-14,\n", + " 4.46968552937884e-15, 3.38121217373531e-14, 5.13481400668422e-14],\n", + " dtype=object)" + ] + }, + "execution_count": 308, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "exp = evaluate_recurrence(coord_dict, np.sqrt(x_coord**2 + y_coord**2), r_new, 14) \n", + "true = evaluate_true(coord_dict, np.sqrt(x_coord**2 + y_coord**2), 14)\n", + "np.abs(exp-true)/np.abs(true)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 8d16b827f..57ebbae38 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -213,7 +213,6 @@ def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) laplace2d = laplacian(w) n_init, _, r = get_processed_and_shifted_recurrence(laplace2d) - print(r) n = sp.symbols("n") s = sp.Function("s") @@ -231,17 +230,17 @@ def _plot_laplace_2d(max_order_check, max_abs): assert n_init == 2 for i in range(n_init, max_order_check): - check.append(abs(r.subs(n, i).subs(subs_dict) - derivs[i])) + check.append(abs(r.subs(n, i).subs(subs_dict) - derivs[i])/abs(derivs[i])) # pylint: disable-next=not-callable subs_dict[s(i)] = derivs[i] - x_coord = abs(np.random.rand()*max_abs) + 3 # noqa: NPY002 - y_coord = abs(np.random.rand()*max_abs) + 3 # noqa: NPY002 + x_coord = abs(np.random.rand()*max_abs) # noqa: NPY002 + y_coord = abs(np.random.rand()*max_abs) # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} return np.array([check[i].subs(coord_dict) for i in range(len(check))]) -plot_me = _plot_laplace_2d(20, 1) +plot_me = _plot_laplace_2d(13, 1) fig = plt.figure() ax = fig.add_subplot(1, 1, 1) diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 0dce68293..a3a76cc4a 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -234,7 +234,7 @@ def test_recurrence_laplace_2d_ellipse(): qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers, radius, strengths, p) # qbx_res,_ = lpot_eval_circle(sources.shape[1], p) - err.append(np.max(np.abs(exp_res - qbx_res))) + err.append(np.max(np.abs(exp_res - qbx_res))/np.max(np.abs(qbx_res))) assert np.max(err) <= 1e-13 @@ -294,8 +294,8 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [7] -resolutions = range(400, 1401, 200) +orders = [6,7] +resolutions = range(2000, 3001, 200) err_mat = _construct_laplace_axis_2d(orders, resolutions) for i in range(len(orders)): plt.plot(resolutions, err_mat[i], label="order ="+str(orders[i])) From efc4793069fb1aacea0fe41f5d47f75bd308968a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 20 Nov 2024 16:29:40 -0800 Subject: [PATCH 094/193] Recurrence doesn't perform poorly when r->0, but rather ratio. of coordinates is large??? --- test/modified_recur.ipynb | 132 +++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 58c06fb25..34231b23f 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 233, + "execution_count": 321, "metadata": {}, "outputs": [], "source": [ @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 234, + "execution_count": 322, "metadata": {}, "outputs": [], "source": [ @@ -30,95 +30,66 @@ }, { "cell_type": "code", - "execution_count": 235, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left(-1\\right)^{n + 1} \\left(\\frac{\\left(-1\\right)^{n - 3} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) s{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) s{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) s{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" - ], - "text/plain": [ - "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*s(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*s(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*s(n - 1)/(x0**3 + x0*x1**2))" - ] - }, - "execution_count": 235, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "r" - ] - }, - { - "cell_type": "code", - "execution_count": 285, + "execution_count": 323, "metadata": {}, "outputs": [], "source": [ - "#We want to subsitute s(i) r^i_{ct} = g(i)\n", - "g = sp.Function(\"g\")\n", - "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")\n", - "rct = sp.symbols(\"r_{ct}\")" + "def scale_recurrence(r):\n", + " #We want to subsitute s(i) r^i_{ct} = g(i)\n", + " g = sp.Function(\"g\")\n", + " s = sp.Function(\"s\")\n", + " n = sp.symbols(\"n\")\n", + " rct = sp.symbols(\"r_{ct}\")\n", + "\n", + " r_new = r*rct**n\n", + " for i in range(order):\n", + " r_new = r_new.subs(s(n-i),g(n-i)/(rct**(n-i)))\n", + "\n", + " return r_new" ] }, { "cell_type": "code", - "execution_count": 286, + "execution_count": 324, "metadata": {}, "outputs": [], "source": [ - "r_new = r*rct**n\n", - "for i in range(order):\n", - " r_new = r_new.subs(s(n-i),g(n-i)/(rct**(n-i)))" + "r_new = scale_recurrence(r)" ] }, { "cell_type": "code", - "execution_count": 287, + "execution_count": 325, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left(-1\\right)^{n + 1} r_{ct}^{n} \\left(\\frac{\\left(-1\\right)^{n - 3} r_{ct}^{3 - n} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) g{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} r_{ct}^{2 - n} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) g{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} r_{ct}^{1 - n} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) g{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" - ], - "text/plain": [ - "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" - ] - }, - "execution_count": 287, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "r_new" + "def compute_derivatives(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "derivs = compute_derivatives(15)" ] }, { "cell_type": "code", - "execution_count": 303, + "execution_count": 326, "metadata": {}, "outputs": [], "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - "derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(15)]\n", "max_abs = .0000001\n", "x_coord = np.random.rand()*max_abs # noqa: NPY002\n", "y_coord = np.random.rand()*max_abs\n", + "var = _make_sympy_vec(\"x\", 2)\n", "coord_dict = {var[0]: x_coord, var[1]: y_coord}" ] }, { "cell_type": "code", - "execution_count": 304, + "execution_count": 327, "metadata": {}, "outputs": [], "source": [ @@ -133,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": 305, + "execution_count": 328, "metadata": {}, "outputs": [], "source": [ @@ -146,29 +117,58 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 363, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([0, 0, 2.51782700048972e-16, 4.95906080244864e-16,\n", - " 3.99749493419410e-16, 1.25768654288579e-15, 1.72518029710139e-14,\n", - " 4.46968552937884e-15, 3.38121217373531e-14, 5.13481400668422e-14],\n", + "array([0, 0, 0, 2.12051654501851e-16, 3.46279757635162e-16,\n", + " 1.22455096522596e-9, 3.67365384856080e-9, 0.0349871755639749,\n", + " 0.174935920154367, 1457799.07853295, 10204597.2972477,\n", + " 74215231574971.8, 667937431661260., 4.28164836256055e+21],\n", " dtype=object)" ] }, - "execution_count": 308, + "execution_count": 363, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "coord_dict = {var[0]: .0001, var[1]: 1}\n", "exp = evaluate_recurrence(coord_dict, np.sqrt(x_coord**2 + y_coord**2), r_new, 14) \n", "true = evaluate_true(coord_dict, np.sqrt(x_coord**2 + y_coord**2), 14)\n", "np.abs(exp-true)/np.abs(true)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 0, 3.63907034626755e-16, 0, 3.97761921240578e-16,\n", + " 2.30632677901825e-13, 6.92729901941019e-13, 6.59135170193698e-10,\n", + " 3.30367124192758e-9, 2.74821958755983e-6, 1.93084640776258e-5,\n", + " 0.0140018021588909, 0.126675562113591, 80.8527473439207],\n", + " dtype=object)" + ] + }, + "execution_count": 362, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coord_dict = {var[0]: .0001, var[1]: 1}\n", + "exp = evaluate_recurrence(coord_dict, 1, r_new, 14) \n", + "true = evaluate_true(coord_dict, 1, 14)\n", + "np.abs(exp-true)/np.abs(true)" + ] + }, { "cell_type": "code", "execution_count": null, From 0ffef66cd999b3cb91f8eccb808bbb757dbf8a78 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 20 Nov 2024 19:52:12 -0800 Subject: [PATCH 095/193] Extremely odd error behavior for close source-target points --- test/modified_recur.ipynb | 65 +++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 34231b23f..395059e56 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -117,56 +117,75 @@ }, { "cell_type": "code", - "execution_count": 363, + "execution_count": 401, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_error(pw):\n", + " x_coord = -10**(-pw) * 1\n", + " y_coord = 1\n", + " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", + "\n", + " exp = evaluate_recurrence(coord_dict, np.sqrt(x_coord**2 + y_coord**2), r_new, 14)\n", + " true = evaluate_true(coord_dict, np.sqrt(x_coord**2 + y_coord**2), 14)\n", + " return np.abs(exp-true)/np.abs(true)" + ] + }, + { + "cell_type": "code", + "execution_count": 402, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 403, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([0, 0, 0, 2.12051654501851e-16, 3.46279757635162e-16,\n", - " 1.22455096522596e-9, 3.67365384856080e-9, 0.0349871755639749,\n", - " 0.174935920154367, 1457799.07853295, 10204597.2972477,\n", - " 74215231574971.8, 667937431661260., 4.28164836256055e+21],\n", - " dtype=object)" + "array([0, 0, 1.11022302484720e-16, 2.25875452642557e-16,\n", + " 1.48029736735111e-16, 2.42222987653352e-7, 7.26668965361568e-7,\n", + " 692.065680462667, 3460.32841068733, 2883607003840.57,\n", + " 20185249101011.9, 1.46801811218522e+22, 1.32121630784017e+23,\n", + " 8.46933527026372e+31], dtype=object)" ] }, - "execution_count": 363, + "execution_count": 403, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "coord_dict = {var[0]: .0001, var[1]: 1}\n", - "exp = evaluate_recurrence(coord_dict, np.sqrt(x_coord**2 + y_coord**2), r_new, 14) \n", - "true = evaluate_true(coord_dict, np.sqrt(x_coord**2 + y_coord**2), 14)\n", - "np.abs(exp-true)/np.abs(true)" + "compute_error(5)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 409, "metadata": {}, "outputs": [ { "data": { + "image/png": "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", "text/plain": [ - "array([0, 0, 3.63907034626755e-16, 0, 3.97761921240578e-16,\n", - " 2.30632677901825e-13, 6.92729901941019e-13, 6.59135170193698e-10,\n", - " 3.30367124192758e-9, 2.74821958755983e-6, 1.93084640776258e-5,\n", - " 0.0140018021588909, 0.126675562113591, 80.8527473439207],\n", - " dtype=object)" + "
" ] }, - "execution_count": 362, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "coord_dict = {var[0]: .0001, var[1]: 1}\n", - "exp = evaluate_recurrence(coord_dict, 1, r_new, 14) \n", - "true = evaluate_true(coord_dict, 1, 14)\n", - "np.abs(exp-true)/np.abs(true)" + "x_plot = [i for i in range(len(compute_error(0)))]\n", + "for i in range(5,6):\n", + " plt.semilogy(x_plot, compute_error(i),label=str(i))\n", + "plt.legend()\n", + "plt.show()" ] }, { From 9768c900d1daa080bb80354ae48ff8ed09ee7d3c Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 20 Nov 2024 23:30:13 -0800 Subject: [PATCH 096/193] Update modified_recur.ipynb --- test/modified_recur.ipynb | 154 +++++++++++++++++++++++++++++++------- 1 file changed, 128 insertions(+), 26 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 395059e56..587d98ce5 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 321, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 322, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 323, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -50,7 +50,7 @@ }, { "cell_type": "code", - "execution_count": 324, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 325, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 326, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -84,12 +84,15 @@ "x_coord = np.random.rand()*max_abs # noqa: NPY002\n", "y_coord = np.random.rand()*max_abs\n", "var = _make_sympy_vec(\"x\", 2)\n", + "rct = sp.symbols(\"r_{ct}\")\n", + "g = sp.Function(\"g\")\n", + "n = sp.symbols(\"n\")\n", "coord_dict = {var[0]: x_coord, var[1]: y_coord}" ] }, { "cell_type": "code", - "execution_count": 327, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -98,42 +101,46 @@ " subs_dict[g(0)] = derivs[0].subs(coord_dict).subs(rct, rct_val)\n", " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", " for i in range(2, p):\n", + " print(recur.subs(n, i).subs(rct, rct_val).subs(coord_dict))\n", " subs_dict[g(i)] = recur.subs(n, i).subs(subs_dict).subs(coord_dict).subs(rct, rct_val)\n", " return np.array(list(subs_dict.values()))" ] }, { "cell_type": "code", - "execution_count": 328, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "def evaluate_true(coord_dict, rct_val, p):\n", " retMe = []\n", " for i in range(p):\n", - " retMe.append(derivs[i].subs(coord_dict).subs(rct, rct_val)*rct_val**i)\n", + " retMe.append((derivs[i]*rct_val**i).subs(coord_dict))\n", " return np.array(retMe)" ] }, { "cell_type": "code", - "execution_count": 401, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "def compute_error(pw):\n", - " x_coord = -10**(-pw) * 1\n", + " if pw == 0:\n", + " x_coord = 0\n", + " else:\n", + " x_coord = -10**(-pw) * 1\n", " y_coord = 1\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", - " exp = evaluate_recurrence(coord_dict, np.sqrt(x_coord**2 + y_coord**2), r_new, 14)\n", - " true = evaluate_true(coord_dict, np.sqrt(x_coord**2 + y_coord**2), 14)\n", + " exp = evaluate_recurrence(coord_dict, np.sqrt(x_coord**2), r_new, 14)\n", + " true = evaluate_true(coord_dict, np.sqrt(x_coord**2), 14)\n", " return np.abs(exp-true)/np.abs(true)" ] }, { "cell_type": "code", - "execution_count": 402, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -142,20 +149,38 @@ }, { "cell_type": "code", - "execution_count": 403, + "execution_count": 39, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.9999999998*g(1)\n", + "-1.9999999998e-10*g(1) - 3.9999999996e-10*g(2)\n", + "-1.9999999998e-10*g(1) - 9.999999999e-10*g(2) - 1.0000000006*g(3)\n", + "-1.19999999988e-9*g(2) - 2.39999999976e-9*g(3) - 2.0000000008*g(4)\n", + "-3.59999999964e-9*g(3) - 4.39999999956e-9*g(4) - 3.000000001*g(5)\n", + "-7.9999999992e-9*g(4) - 6.9999999993e-9*g(5) - 4.0000000012*g(6)\n", + "-1.49999999985e-8*g(5) - 1.019999999898e-8*g(6) - 5.0000000014*g(7)\n", + "-2.519999999748e-8*g(6) - 1.39999999986e-8*g(7) - 6.0000000016*g(8)\n", + "-3.919999999608e-8*g(7) - 1.839999999816e-8*g(8) - 7.0000000018*g(9)\n", + "-5.759999999424e-8*g(8) - 2.339999999766e-8*g(9) - 8.000000002*g(10)\n", + "-8.09999999919e-8*g(9) - 2.89999999971e-8*g(10) - 9.0000000022*g(11)\n", + "-1.09999999989e-7*g(10) - 3.519999999648e-8*g(11) - 10.0000000024*g(12)\n" + ] + }, { "data": { "text/plain": [ - "array([0, 0, 1.11022302484720e-16, 2.25875452642557e-16,\n", - " 1.48029736735111e-16, 2.42222987653352e-7, 7.26668965361568e-7,\n", - " 692.065680462667, 3460.32841068733, 2883607003840.57,\n", - " 20185249101011.9, 1.46801811218522e+22, 1.32121630784017e+23,\n", - " 8.46933527026372e+31], dtype=object)" + "array([0, 0, 2.58493941500369e-16, 4.01235405214419e-16,\n", + " 2.00617702740955e-16, 6.30274060973159e-7, 1.89082218631399e-6,\n", + " 1800.78303280285, 9003.91518580374, 7503262641655.71,\n", + " 52522838684473.9, 3.81984280235238e+22, 3.43785854000219e+23,\n", + " 2.20375546488790e+32], dtype=object)" ] }, - "execution_count": 403, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -166,12 +191,66 @@ }, { "cell_type": "code", - "execution_count": 409, + "execution_count": 19, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", + "4.0*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.0*g(1)/(x0**2 + x1**2)\n", + "1.0*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.0*g(1)/(x0**3 + x0*x1**2) - 10.0*g(2)/(x0**2 + x1**2)\n", + "1.0*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.0*g(2)/(x0**3 + x0*x1**2) - 24.0*g(3)/(x0**2 + x1**2)\n", + "1.0*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.0*g(3)/(x0**3 + x0*x1**2) - 44.0*g(4)/(x0**2 + x1**2)\n", + "1.0*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 80.0*g(4)/(x0**3 + x0*x1**2) - 70.0*g(5)/(x0**2 + x1**2)\n", + "1.0*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 150.0*g(5)/(x0**3 + x0*x1**2) - 102.0*g(6)/(x0**2 + x1**2)\n", + "1.0*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 252.0*g(6)/(x0**3 + x0*x1**2) - 140.0*g(7)/(x0**2 + x1**2)\n", + "1.0*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 392.0*g(7)/(x0**3 + x0*x1**2) - 184.0*g(8)/(x0**2 + x1**2)\n", + "1.0*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 576.0*g(8)/(x0**3 + x0*x1**2) - 234.0*g(9)/(x0**2 + x1**2)\n", + "1.0*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 810.0*g(9)/(x0**3 + x0*x1**2) - 290.0*g(10)/(x0**2 + x1**2)\n", + "1.0*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1100.0*g(10)/(x0**3 + x0*x1**2) - 352.0*g(11)/(x0**2 + x1**2)\n", + "1.00498756211209*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", + "4.01995024844836*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.02*g(1)/(x0**2 + x1**2)\n", + "1.00498756211209*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.03007487546642*g(1)/(x0**3 + x0*x1**2) - 10.1*g(2)/(x0**2 + x1**2)\n", + "1.00498756211209*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.1804492527985*g(2)/(x0**3 + x0*x1**2) - 24.24*g(3)/(x0**2 + x1**2)\n", + "1.00498756211209*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.5413477583955*g(3)/(x0**3 + x0*x1**2) - 44.44*g(4)/(x0**2 + x1**2)\n", + "1.00498756211209*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 81.2029950186568*g(4)/(x0**3 + x0*x1**2) - 70.7*g(5)/(x0**2 + x1**2)\n", + "1.00498756211209*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 152.255615659981*g(5)/(x0**3 + x0*x1**2) - 103.02*g(6)/(x0**2 + x1**2)\n", + "1.00498756211209*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 255.789434308769*g(6)/(x0**3 + x0*x1**2) - 141.4*g(7)/(x0**2 + x1**2)\n", + "1.00498756211209*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 397.894675591418*g(7)/(x0**3 + x0*x1**2) - 185.84*g(8)/(x0**2 + x1**2)\n", + "1.00498756211209*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 584.661564134329*g(8)/(x0**3 + x0*x1**2) - 236.34*g(9)/(x0**2 + x1**2)\n", + "1.00498756211209*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 822.1803245639*g(9)/(x0**3 + x0*x1**2) - 292.9*g(10)/(x0**2 + x1**2)\n", + "1.00498756211209*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1116.54118150653*g(10)/(x0**3 + x0*x1**2) - 355.52*g(11)/(x0**2 + x1**2)\n", + "1.00004999875006*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", + "4.00019999500025*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.0002*g(1)/(x0**2 + x1**2)\n", + "1.00004999875006*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.00030000749987*g(1)/(x0**3 + x0*x1**2) - 10.001*g(2)/(x0**2 + x1**2)\n", + "1.00004999875006*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.0018000449992*g(2)/(x0**3 + x0*x1**2) - 24.0024*g(3)/(x0**2 + x1**2)\n", + "1.00004999875006*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.0054001349977*g(3)/(x0**3 + x0*x1**2) - 44.0044*g(4)/(x0**2 + x1**2)\n", + "1.00004999875006*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 80.012000299995*g(4)/(x0**3 + x0*x1**2) - 70.007*g(5)/(x0**2 + x1**2)\n", + "1.00004999875006*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 150.022500562491*g(5)/(x0**3 + x0*x1**2) - 102.0102*g(6)/(x0**2 + x1**2)\n", + "1.00004999875006*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 252.037800944984*g(6)/(x0**3 + x0*x1**2) - 140.014*g(7)/(x0**2 + x1**2)\n", + "1.00004999875006*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 392.058801469975*g(7)/(x0**3 + x0*x1**2) - 184.0184*g(8)/(x0**2 + x1**2)\n", + "1.00004999875006*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 576.086402159964*g(8)/(x0**3 + x0*x1**2) - 234.0234*g(9)/(x0**2 + x1**2)\n", + "1.00004999875006*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 810.121503037449*g(9)/(x0**3 + x0*x1**2) - 290.029*g(10)/(x0**2 + x1**2)\n", + "1.00004999875006*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1100.16500412493*g(10)/(x0**3 + x0*x1**2) - 352.0352*g(11)/(x0**2 + x1**2)\n", + "1.00000049999988*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", + "4.0000019999995*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.000002*g(1)/(x0**2 + x1**2)\n", + "1.00000049999988*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.00000300000075*g(1)/(x0**3 + x0*x1**2) - 10.00001*g(2)/(x0**2 + x1**2)\n", + "1.00000049999988*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.0000180000045*g(2)/(x0**3 + x0*x1**2) - 24.000024*g(3)/(x0**2 + x1**2)\n", + "1.00000049999988*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.0000540000135*g(3)/(x0**3 + x0*x1**2) - 44.000044*g(4)/(x0**2 + x1**2)\n", + "1.00000049999988*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 80.00012000003*g(4)/(x0**3 + x0*x1**2) - 70.00007*g(5)/(x0**2 + x1**2)\n", + "1.00000049999988*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 150.000225000056*g(5)/(x0**3 + x0*x1**2) - 102.000102*g(6)/(x0**2 + x1**2)\n", + "1.00000049999988*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 252.000378000095*g(6)/(x0**3 + x0*x1**2) - 140.00014*g(7)/(x0**2 + x1**2)\n", + "1.00000049999988*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 392.000588000147*g(7)/(x0**3 + x0*x1**2) - 184.000184*g(8)/(x0**2 + x1**2)\n", + "1.00000049999988*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 576.000864000216*g(8)/(x0**3 + x0*x1**2) - 234.000234*g(9)/(x0**2 + x1**2)\n", + "1.00000049999987*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 810.001215000304*g(9)/(x0**3 + x0*x1**2) - 290.00029*g(10)/(x0**2 + x1**2)\n", + "1.00000049999988*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1100.00165000041*g(10)/(x0**3 + x0*x1**2) - 352.000352*g(11)/(x0**2 + x1**2)\n" + ] + }, { "data": { - "image/png": "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", + "image/png": "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N1W7dm313//+V23atElt2bJFxcbGKj8/P+Xp6anmzZun1q1bp1588UUFqOeff75Yr3dhPvvsMwWokydPmixfu3atAtTq1auVUkr9+OOPClAvvfSS2rBhg/rzzz/VvHnz1Msvv3zH1yQjI0O1atVK2dvbq48//lht2LBBvfXWW8rCwkL17t3bpG1+3a1atVI//PCD2rhxozp8+LA6cuSIsrOzU82aNVM//vij+vXXX1WvXr1UnTp1FGBybB988IHS6XRq1KhRas2aNeqXX35RnTp1Uvb29urIkSPGdiNGjFCWlpaqbt26avr06eqvv/5S69evL/QYTp8+rb788ksFqGnTpqmdO3cat/X9998rQPXs2VOtWrVKLV26VAUFBSkrKyu1bds24zbu9F4vTEmO+dbfxaSkJLVz507l4+OjunTponbu3Kl27typYmJi1M6dOxWgBg8ebFyulFLR0dGqdu3aKiAgQM2fP1/9+eef6j//+Y+ytrZWI0eONO7nTu+tkr73AwMD1UsvvaTWr1+vFi5cqFxdXVVoaKix3b59+1RgYKBq27atsdZ9+/YV+Xrt2LFD6XQ69fjjj6u1a9eqjRs3qm+++UYNGzbM2Ka4v0ObNm1SgNq0aZPJPvKP/9bjKep9lJOTo0JDQ5WFhYWaOHGiWrt2rVq9erV644031I8//mh8fnE/54qS/7661bPPPqsA9eKLL6p169apefPmKU9PT1W7dm0VFxdnbFecz/nly5ert99+W61cuVJt2bJF/fTTT6pbt27K09PTuK3Y2Fg1bdo0Bagvv/zS+POKjY01vka3/k3Q6/WqV69eysLCQr311ltqw4YN6uOPP1b29vaqbdu2KjMz09g2ICBA+fv7q2bNmqklS5ao9evXq0cffVQBasuWLcZ2zz33nLKzs1OzZs1SmzZtUmvWrFEffvih+u9//3vX17C8SECqhPJ/Yd5++22T5fkfjp988onJ8kuXLilbW1v1+uuvK6WUSklJUU5OTur+++9Xer2+yP2UNCDVr19fZWdnl2mt+XUAavfu3SZtmzVrpnr16mV8PHXqVAWo8PDwIo8pPwSsWLHCZPnevXsVoObMmVPkc5VSqkmTJqpt27YqJyfHZHmfPn2Ur6+vysvLU0rd/CMxfPjwAtvIP56//vrLZPnkyZMLPc7nn39e6XQ6deLECaXUnV/vwly/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", "text/plain": [ "
" ] @@ -182,12 +261,35 @@ ], "source": [ "x_plot = [i for i in range(len(compute_error(0)))]\n", - "for i in range(5,6):\n", - " plt.semilogy(x_plot, compute_error(i),label=str(i))\n", - "plt.legend()\n", + "for i in range(1, 4):\n", + " plt.semilogy(x_plot, compute_error(i), label=str(10**(-i)))\n", + "plt.xlabel(\"order of derivative being computed\")\n", + "plt.ylabel(\"error\")\n", + "plt.title(\"recurrence error vs order for different source-locations\")\n", + "plt.legend(title='ratio of y_{coord_src}/x_{coord_src}')\n", "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(1.0/4.4**10) * 4.4**10 - 1" + ] + }, { "cell_type": "code", "execution_count": null, From f6a31f6501c45f897589e4e896657824891d042c Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 21 Nov 2024 19:42:49 -0800 Subject: [PATCH 097/193] Isolated floating point computation that leads to steep error --- sumpy/recurrence.py | 24 +++++ test/modified_recur.ipynb | 178 ++++++++++++++++++++++++++++---------- 2 files changed, 157 insertions(+), 45 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 2a7642040..ef2b081d3 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -314,6 +314,30 @@ def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: return order, true_recurrence1 +def get_recurrence(r: sp.Expr, n_val) -> tuple[int, sp.Expr]: + r""" + A function that takes in as input a recurrence and outputs a recurrence + relation that has the nth term in terms of the n-1th, n-2th etc. + Also returns the order of the recurrence relation. + + :arg recurrence: a recurrence relation in :math:`s(n)` + """ + n = sp.symbols("n") + _, terms = _extract_idx_terms_from_recurrence(r.subs(n, n_val)) + # Order is the max difference between highest/lowest in idx_l + + # Get the respective coefficients in the recurrence relation from r + + coeffs = sp.poly(r.subs(n, n_val), list(terms)).coeffs() + + # Re-arrange the recurrence relation so we get s(n) = ____ + # in terms of s(n-1), ... + true_recurrence = sum(sp.cancel(coeffs[i]) * terms[i] + for i in range(0, len(terms))) + + return true_recurrence + + def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, np.ndarray]: r""" diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 587d98ce5..502351ba5 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -62,6 +62,95 @@ "execution_count": 5, "metadata": {}, "outputs": [], + "source": [ + "max_abs = .0000001\n", + "var = _make_sympy_vec(\"x\", 2)\n", + "rct = sp.symbols(\"r_{ct}\")\n", + "g = sp.Function(\"g\")\n", + "n = sp.symbols(\"n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left(-1\\right)^{n + 1} r_{ct}^{n} \\left(\\frac{\\left(-1\\right)^{n - 3} r_{ct}^{3 - n} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) g{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} r_{ct}^{2 - n} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) g{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} r_{ct}^{1 - n} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) g{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" + ], + "text/plain": [ + "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r_new" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 3.59999999964 \\cdot 10^{-9} g{\\left(3 \\right)} - 4.39999999956 \\cdot 10^{-9} g{\\left(4 \\right)} + 3.000000001 g{\\left(5 \\right)}$" + ], + "text/plain": [ + "3.59999999964e-9*g(3) - 4.39999999956e-9*g(4) + 3.000000001*g(5)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sumpy.recurrence import get_recurrence, _extract_idx_terms_from_recurrence\n", + "pw = 5\n", + "x_coord = -10**(-pw) * 1\n", + "y_coord = 1\n", + "var = _make_sympy_vec(\"x\", 2)\n", + "coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", + "\n", + "get_recurrence(r_new.subs(rct, var[0]).subs(coord_dict), 6)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle - 7999999.9992 g{\\left(4 \\right)} - 69.999999993 g{\\left(5 \\right)} - 400000.00012 g{\\left(6 \\right)}$" + ], + "text/plain": [ + "-7999999.9992*g(4) - 69.999999993*g(5) - 400000.00012*g(6)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_recurrence(r_new.subs(rct, 1).subs(coord_dict), 7)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], "source": [ "def compute_derivatives(p):\n", " var = _make_sympy_vec(\"x\", 2)\n", @@ -76,23 +165,7 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "max_abs = .0000001\n", - "x_coord = np.random.rand()*max_abs # noqa: NPY002\n", - "y_coord = np.random.rand()*max_abs\n", - "var = _make_sympy_vec(\"x\", 2)\n", - "rct = sp.symbols(\"r_{ct}\")\n", - "g = sp.Function(\"g\")\n", - "n = sp.symbols(\"n\")\n", - "coord_dict = {var[0]: x_coord, var[1]: y_coord}" - ] - }, - { - "cell_type": "code", - "execution_count": 25, + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ @@ -100,15 +173,16 @@ " subs_dict = {}\n", " subs_dict[g(0)] = derivs[0].subs(coord_dict).subs(rct, rct_val)\n", " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", + " var = _make_sympy_vec(\"x\", 2)\n", " for i in range(2, p):\n", - " print(recur.subs(n, i).subs(rct, rct_val).subs(coord_dict))\n", - " subs_dict[g(i)] = recur.subs(n, i).subs(subs_dict).subs(coord_dict).subs(rct, rct_val)\n", + " subs_dict[g(i)] = get_recurrence(recur.subs(rct, var[0]), i).subs(subs_dict).subs(coord_dict).subs(rct, rct_val)\n", + " print((get_recurrence(recur.subs(rct, var[0]), i).subs(coord_dict).subs(rct, rct_val)))\n", " return np.array(list(subs_dict.values()))" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 66, "metadata": {}, "outputs": [], "source": [ @@ -121,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 70, "metadata": {}, "outputs": [], "source": [ @@ -131,16 +205,20 @@ " else:\n", " x_coord = -10**(-pw) * 1\n", " y_coord = 1\n", + " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", - " exp = evaluate_recurrence(coord_dict, np.sqrt(x_coord**2), r_new, 14)\n", - " true = evaluate_true(coord_dict, np.sqrt(x_coord**2), 14)\n", + " rct_val = x_coord\n", + " exp = evaluate_recurrence(coord_dict, rct_val, r_new, 14)\n", + " true = evaluate_true(coord_dict, rct_val, 14)\n", + " print(exp)\n", + " print(true)\n", " return np.abs(exp-true)/np.abs(true)" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ @@ -149,38 +227,48 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 72, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "0.9999999998*g(1)\n", - "-1.9999999998e-10*g(1) - 3.9999999996e-10*g(2)\n", - "-1.9999999998e-10*g(1) - 9.999999999e-10*g(2) - 1.0000000006*g(3)\n", - "-1.19999999988e-9*g(2) - 2.39999999976e-9*g(3) - 2.0000000008*g(4)\n", - "-3.59999999964e-9*g(3) - 4.39999999956e-9*g(4) - 3.000000001*g(5)\n", - "-7.9999999992e-9*g(4) - 6.9999999993e-9*g(5) - 4.0000000012*g(6)\n", - "-1.49999999985e-8*g(5) - 1.019999999898e-8*g(6) - 5.0000000014*g(7)\n", - "-2.519999999748e-8*g(6) - 1.39999999986e-8*g(7) - 6.0000000016*g(8)\n", - "-3.919999999608e-8*g(7) - 1.839999999816e-8*g(8) - 7.0000000018*g(9)\n", - "-5.759999999424e-8*g(8) - 2.339999999766e-8*g(9) - 8.000000002*g(10)\n", - "-8.09999999919e-8*g(9) - 2.89999999971e-8*g(10) - 9.0000000022*g(11)\n", - "-1.09999999989e-7*g(10) - 3.519999999648e-8*g(11) - 10.0000000024*g(12)\n" + "-0.9999999998*g(1)\n", + "-1.9999999998e-10*g(1) + 3.9999999996e-10*g(2)\n", + "1.9999999998e-10*g(1) - 9.999999999e-10*g(2) + 1.0000000006*g(3)\n", + "1.19999999988e-9*g(2) - 2.39999999976e-9*g(3) + 2.0000000008*g(4)\n", + "3.59999999964e-9*g(3) - 4.39999999956e-9*g(4) + 3.000000001*g(5)\n", + "7.9999999992e-9*g(4) - 6.9999999993e-9*g(5) + 4.0000000012*g(6)\n", + "1.49999999985e-8*g(5) - 1.019999999898e-8*g(6) + 5.0000000014*g(7)\n", + "2.519999999748e-8*g(6) - 1.39999999986e-8*g(7) + 6.0000000016*g(8)\n", + "3.919999999608e-8*g(7) - 1.839999999816e-8*g(8) + 7.0000000018*g(9)\n", + "5.759999999424e-8*g(8) - 2.339999999766e-8*g(9) + 8.000000002*g(10)\n", + "8.09999999919e-8*g(9) - 2.89999999971e-8*g(10) + 9.0000000022*g(11)\n", + "1.09999999989e-7*g(10) - 3.519999999648e-8*g(11) + 10.0000000024*g(12)\n", + "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", + " 5.99999999800000e-20 -5.99999999400000e-20 -1.19999976306405e-28\n", + " 1.20000070576785e-28 2.83819141183544e-34 1.41607170595089e-33\n", + " 8.49945423577581e-33 5.94961796507997e-32 4.75969437208068e-31\n", + " 4.28372493488282e-30 4.28372493488995e-29]\n", + "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", + " 5.99999999800000e-20 -5.99999999400000e-20 -1.19999999916000e-28\n", + " 1.19999999748000e-28 5.03999999395200e-37 -5.03999998185600e-37\n", + " -3.62879999334720e-45 3.62879998004160e-45 3.99167998962164e-53\n", + " -3.99167996886490e-53 -6.22702077820543e-61]\n" ] }, { "data": { "text/plain": [ - "array([0, 0, 2.58493941500369e-16, 4.01235405214419e-16,\n", - " 2.00617702740955e-16, 6.30274060973159e-7, 1.89082218631399e-6,\n", - " 1800.78303280285, 9003.91518580374, 7503262641655.71,\n", - " 52522838684473.9, 3.81984280235238e+22, 3.43785854000219e+23,\n", - " 2.20375546488790e+32], dtype=object)" + "array([0, 0, 1.29246970750185e-16, 2.00617702607210e-16,\n", + " 4.01235405481909e-16, 1.96746626133391e-7, 5.90239878479149e-7,\n", + " 562.133217309775, 2810.66609335069, 2342221740344.40,\n", + " 16395552242621.5, 1.19240379600967e+22, 1.07316342199171e+23,\n", + " 6.87925267550574e+31], dtype=object)" ] }, - "execution_count": 39, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } @@ -191,7 +279,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -272,7 +360,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "metadata": {}, "outputs": [ { From eb2eb657a0dc277c6fb5725f7138e7844b67237f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 21 Nov 2024 19:54:07 -0800 Subject: [PATCH 098/193] Catastrophic cancellation source of error --- test/modified_recur.ipynb | 114 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 502351ba5..d5f3d0152 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -277,6 +277,120 @@ "compute_error(5)" ] }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [], + "source": [ + "# Error is caused by 5th order expression\n", + "# 1.19999999988e-9*g(2) - 2.39999999976e-9*g(3) + 2.0000000008*g(4)\n", + "g_2_recur = 9.99999999700000e-11 #no digit loss\n", + "g_3_recur = 5.99999999800000e-20 #no digit loss\n", + "g_4_recur = -5.99999999400000e-20 #no digit loss\n", + "g_5_recur = 1.19999999988e-9 * 9.99999999700000e-11 - 2.39999999976e-9*5.99999999800000e-20 + 2.0000000008 * -5.99999999400000e-20" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-1.2000000038052922e-28" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g_5_recur" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.19999999952e-19" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "abs(1.19999999988e-9 * 9.99999999700000e-11)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-1.4399999993760001e-28" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "-abs(2.39999999976e-9*5.99999999800000e-20)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-1.19999999928e-19" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "-abs(2.0000000008 * -5.99999999400000e-20)" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.2000000038052922e-28" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(abs(2.0000000008 * -5.99999999400000e-20) + abs(2.39999999976e-9*5.99999999800000e-20)) - abs(1.19999999988e-9 * 9.99999999700000e-11)" + ] + }, { "cell_type": "code", "execution_count": null, From ef8f0f6dba1f65950e714c7c9b231432c5b1bccb Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 23 Nov 2024 14:52:29 -0800 Subject: [PATCH 099/193] Lambdification not the issue --- test/modified_recur.ipynb | 347 ++++++++++-------------------------- test/test_recurrence_qbx.py | 4 +- 2 files changed, 99 insertions(+), 252 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index d5f3d0152..f3788e9ac 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -13,13 +13,15 @@ " make_identity_diff_op,\n", ")\n", "\n", + "from sumpy.recurrence import get_recurrence\n", + "\n", "import sympy as sp\n", "import numpy as np" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -30,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -50,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -72,7 +74,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -84,7 +86,7 @@ "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -95,60 +97,7 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 3.59999999964 \\cdot 10^{-9} g{\\left(3 \\right)} - 4.39999999956 \\cdot 10^{-9} g{\\left(4 \\right)} + 3.000000001 g{\\left(5 \\right)}$" - ], - "text/plain": [ - "3.59999999964e-9*g(3) - 4.39999999956e-9*g(4) + 3.000000001*g(5)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from sumpy.recurrence import get_recurrence, _extract_idx_terms_from_recurrence\n", - "pw = 5\n", - "x_coord = -10**(-pw) * 1\n", - "y_coord = 1\n", - "var = _make_sympy_vec(\"x\", 2)\n", - "coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", - "\n", - "get_recurrence(r_new.subs(rct, var[0]).subs(coord_dict), 6)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle - 7999999.9992 g{\\left(4 \\right)} - 69.999999993 g{\\left(5 \\right)} - 400000.00012 g{\\left(6 \\right)}$" - ], - "text/plain": [ - "-7999999.9992*g(4) - 69.999999993*g(5) - 400000.00012*g(6)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "get_recurrence(r_new.subs(rct, 1).subs(coord_dict), 7)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -165,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -175,41 +124,63 @@ " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", " var = _make_sympy_vec(\"x\", 2)\n", " for i in range(2, p):\n", - " subs_dict[g(i)] = get_recurrence(recur.subs(rct, var[0]), i).subs(subs_dict).subs(coord_dict).subs(rct, rct_val)\n", - " print((get_recurrence(recur.subs(rct, var[0]), i).subs(coord_dict).subs(rct, rct_val)))\n", + " subs_dict[g(i)] = get_recurrence(recur.subs(rct, rct_val), i).subs(subs_dict).subs(coord_dict)\n", + " print(get_recurrence(recur.subs(rct, 1),i))\n", " return np.array(list(subs_dict.values()))" ] }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 97, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_recurrence_lamb(coord_dict, rct_val, recur, p):\n", + " subs_dict = {}\n", + " subs_dict[g(-2)] = 0\n", + " subs_dict[g(-1)] = 0\n", + " subs_dict[g(0)] = derivs[0].subs(coord_dict).subs(rct, rct_val)\n", + " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " for i in range(2, p):\n", + " exp = get_recurrence(recur.subs(rct, rct_val), i)\n", + " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3)], exp)\n", + " subs_dict[g(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[g(i-1)],\n", + " subs_dict[g(i-2)], subs_dict[g(i-3)])\n", + " subs_dict.pop(g(-2))\n", + " subs_dict.pop(g(-1))\n", + " return np.array(list(subs_dict.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "def evaluate_true(coord_dict, rct_val, p):\n", " retMe = []\n", " for i in range(p):\n", - " retMe.append((derivs[i]*rct_val**i).subs(coord_dict))\n", + " exp = (derivs[i]*rct_val**i)\n", + " f = sp.lambdify(var, exp)\n", + " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", " return np.array(retMe)" ] }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 103, "metadata": {}, "outputs": [], "source": [ "def compute_error(pw):\n", - " if pw == 0:\n", - " x_coord = 0\n", - " else:\n", - " x_coord = -10**(-pw) * 1\n", - " y_coord = 1\n", + " x_coord = 10**-pw * np.random.rand()\n", + " y_coord = 10**-pw * np.random.rand()\n", " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", - " rct_val = x_coord\n", - " exp = evaluate_recurrence(coord_dict, rct_val, r_new, 14)\n", + " rct_val = 1\n", + " exp = evaluate_recurrence_lamb(coord_dict, rct_val, r_new, 14)\n", " true = evaluate_true(coord_dict, rct_val, 14)\n", " print(exp)\n", " print(true)\n", @@ -218,286 +189,162 @@ }, { "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 72, + "execution_count": 106, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "-0.9999999998*g(1)\n", - "-1.9999999998e-10*g(1) + 3.9999999996e-10*g(2)\n", - "1.9999999998e-10*g(1) - 9.999999999e-10*g(2) + 1.0000000006*g(3)\n", - "1.19999999988e-9*g(2) - 2.39999999976e-9*g(3) + 2.0000000008*g(4)\n", - "3.59999999964e-9*g(3) - 4.39999999956e-9*g(4) + 3.000000001*g(5)\n", - "7.9999999992e-9*g(4) - 6.9999999993e-9*g(5) + 4.0000000012*g(6)\n", - "1.49999999985e-8*g(5) - 1.019999999898e-8*g(6) + 5.0000000014*g(7)\n", - "2.519999999748e-8*g(6) - 1.39999999986e-8*g(7) + 6.0000000016*g(8)\n", - "3.919999999608e-8*g(7) - 1.839999999816e-8*g(8) + 7.0000000018*g(9)\n", - "5.759999999424e-8*g(8) - 2.339999999766e-8*g(9) + 8.000000002*g(10)\n", - "8.09999999919e-8*g(9) - 2.89999999971e-8*g(10) + 9.0000000022*g(11)\n", - "1.09999999989e-7*g(10) - 3.519999999648e-8*g(11) + 10.0000000024*g(12)\n", - "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", - " 5.99999999800000e-20 -5.99999999400000e-20 -1.19999976306405e-28\n", - " 1.20000070576785e-28 2.83819141183544e-34 1.41607170595089e-33\n", - " 8.49945423577581e-33 5.94961796507997e-32 4.75969437208068e-31\n", - " 4.28372493488282e-30 4.28372493488995e-29]\n", - "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", - " 5.99999999800000e-20 -5.99999999400000e-20 -1.19999999916000e-28\n", - " 1.19999999748000e-28 5.03999999395200e-37 -5.03999998185600e-37\n", - " -3.62879999334720e-45 3.62879998004160e-45 3.99167998962164e-53\n", - " -3.99167996886490e-53 -6.22702077820543e-61]\n" + "[-16.4793912653345 -7446016.24208662 95090046267340.2 5.89957479007560e+21\n", + " 1.46052167481843e+29 -5.88202094275608e+36 -1.03964211722783e+45\n", + " -5.65475868362143e+52 3.09919194622245e+60 1.02148424529142e+69\n", + " 9.09458487415835e+76 -5.39245944612498e+84 -2.94394795078325e+93\n", + " -3.79481490540789e+101]\n", + "[-1.64793913e+001 -7.44601624e+006 9.50900463e+013 5.89957479e+021\n", + " 1.46052167e+029 -5.88202094e+036 -1.03964212e+045 -5.65475868e+052\n", + " 3.09919195e+060 1.02148425e+069 9.09458487e+076 -5.39245945e+084\n", + " -2.94394795e+093 -3.79481491e+101]\n" ] }, { "data": { "text/plain": [ - "array([0, 0, 1.29246970750185e-16, 2.00617702607210e-16,\n", - " 4.01235405481909e-16, 1.96746626133391e-7, 5.90239878479149e-7,\n", - " 562.133217309775, 2810.66609335069, 2342221740344.40,\n", - " 16395552242621.5, 1.19240379600967e+22, 1.07316342199171e+23,\n", - " 6.87925267550574e+31], dtype=object)" + "array([0, 1.25076624108262e-16, 1.64317934561428e-16,\n", + " 1.77737555215664e-16, 1.08406247664505e-15, 2.20783094012695e-15,\n", + " 1.06690009650372e-15, 7.52203555358031e-16, 1.09374099087612e-14,\n", + " 6.56365286316817e-15, 1.83759411688817e-15, 3.15172520976218e-14,\n", + " 2.34420194715335e-14, 2.98146389490554e-14], dtype=object)" ] }, - "execution_count": 72, + "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error(5)" + "compute_error(7)" ] }, { "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [], - "source": [ - "# Error is caused by 5th order expression\n", - "# 1.19999999988e-9*g(2) - 2.39999999976e-9*g(3) + 2.0000000008*g(4)\n", - "g_2_recur = 9.99999999700000e-11 #no digit loss\n", - "g_3_recur = 5.99999999800000e-20 #no digit loss\n", - "g_4_recur = -5.99999999400000e-20 #no digit loss\n", - "g_5_recur = 1.19999999988e-9 * 9.99999999700000e-11 - 2.39999999976e-9*5.99999999800000e-20 + 2.0000000008 * -5.99999999400000e-20" - ] - }, - { - "cell_type": "code", - "execution_count": 78, + "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "-1.2000000038052922e-28" + "-0.0" ] }, - "execution_count": 78, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "g_5_recur" + "pw = 8\n", + "x0 = 1\n", + "x1 = 10**(-pw)\n", + "g_1 = -5000000000.00000\n", + "g_2 = (x0**2 - x1**2)*g_1/(x0**3 + x0*x1**2)\n", + "g_2" ] }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 72, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle - \\frac{720 x_{0} \\left(\\frac{64 x_{0}^{6}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{112 x_{0}^{4}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{56 x_{0}^{2}}{x_{0}^{2} + x_{1}^{2}} - 7\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}}$" + ], "text/plain": [ - "1.19999999952e-19" + "-720*x0*(64*x0**6/(x0**2 + x1**2)**3 - 112*x0**4/(x0**2 + x1**2)**2 + 56*x0**2/(x0**2 + x1**2) - 7)/(x0**2 + x1**2)**4" ] }, - "execution_count": 79, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "abs(1.19999999988e-9 * 9.99999999700000e-11)" + "derivs[7]" ] }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 71, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle 0.555111512312578$" + ], "text/plain": [ - "-1.4399999993760001e-28" + "0.555111512312578" ] }, - "execution_count": 80, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "-abs(2.39999999976e-9*5.99999999800000e-20)" + "derivs[2].subs(var[0], 10**(-8)).subs(var[1], 10**(-8))" ] }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "-1.19999999928e-19" + "-0.0" ] }, - "execution_count": 81, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "-abs(2.0000000008 * -5.99999999400000e-20)" + "g_2" ] }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1.2000000038052922e-28" + "'\\nx_plot = [i for i in range(len(compute_error(0)))]\\nfor i in range(1, 4):\\n plt.semilogy(x_plot, compute_error(i), label=str(10**(-i)))\\nplt.xlabel(\"order of derivative being computed\")\\nplt.ylabel(\"absolute error\")\\nplt.title(\"recurrence error vs order for different source-locations\")\\nplt.legend(title=\\'ratio of x_{coord_src}/y_{coord_src}\\')\\nplt.show()\\n'" ] }, - "execution_count": 83, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "(abs(2.0000000008 * -5.99999999400000e-20) + abs(2.39999999976e-9*5.99999999800000e-20)) - abs(1.19999999988e-9 * 9.99999999700000e-11)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1.0*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", - "4.0*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.0*g(1)/(x0**2 + x1**2)\n", - "1.0*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.0*g(1)/(x0**3 + x0*x1**2) - 10.0*g(2)/(x0**2 + x1**2)\n", - "1.0*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.0*g(2)/(x0**3 + x0*x1**2) - 24.0*g(3)/(x0**2 + x1**2)\n", - "1.0*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.0*g(3)/(x0**3 + x0*x1**2) - 44.0*g(4)/(x0**2 + x1**2)\n", - "1.0*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 80.0*g(4)/(x0**3 + x0*x1**2) - 70.0*g(5)/(x0**2 + x1**2)\n", - "1.0*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 150.0*g(5)/(x0**3 + x0*x1**2) - 102.0*g(6)/(x0**2 + x1**2)\n", - "1.0*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 252.0*g(6)/(x0**3 + x0*x1**2) - 140.0*g(7)/(x0**2 + x1**2)\n", - "1.0*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 392.0*g(7)/(x0**3 + x0*x1**2) - 184.0*g(8)/(x0**2 + x1**2)\n", - "1.0*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 576.0*g(8)/(x0**3 + x0*x1**2) - 234.0*g(9)/(x0**2 + x1**2)\n", - "1.0*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 810.0*g(9)/(x0**3 + x0*x1**2) - 290.0*g(10)/(x0**2 + x1**2)\n", - "1.0*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1100.0*g(10)/(x0**3 + x0*x1**2) - 352.0*g(11)/(x0**2 + x1**2)\n", - "1.00498756211209*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", - "4.01995024844836*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.02*g(1)/(x0**2 + x1**2)\n", - "1.00498756211209*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.03007487546642*g(1)/(x0**3 + x0*x1**2) - 10.1*g(2)/(x0**2 + x1**2)\n", - "1.00498756211209*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.1804492527985*g(2)/(x0**3 + x0*x1**2) - 24.24*g(3)/(x0**2 + x1**2)\n", - "1.00498756211209*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.5413477583955*g(3)/(x0**3 + x0*x1**2) - 44.44*g(4)/(x0**2 + x1**2)\n", - "1.00498756211209*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 81.2029950186568*g(4)/(x0**3 + x0*x1**2) - 70.7*g(5)/(x0**2 + x1**2)\n", - "1.00498756211209*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 152.255615659981*g(5)/(x0**3 + x0*x1**2) - 103.02*g(6)/(x0**2 + x1**2)\n", - "1.00498756211209*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 255.789434308769*g(6)/(x0**3 + x0*x1**2) - 141.4*g(7)/(x0**2 + x1**2)\n", - "1.00498756211209*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 397.894675591418*g(7)/(x0**3 + x0*x1**2) - 185.84*g(8)/(x0**2 + x1**2)\n", - "1.00498756211209*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 584.661564134329*g(8)/(x0**3 + x0*x1**2) - 236.34*g(9)/(x0**2 + x1**2)\n", - "1.00498756211209*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 822.1803245639*g(9)/(x0**3 + x0*x1**2) - 292.9*g(10)/(x0**2 + x1**2)\n", - "1.00498756211209*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1116.54118150653*g(10)/(x0**3 + x0*x1**2) - 355.52*g(11)/(x0**2 + x1**2)\n", - "1.00004999875006*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", - "4.00019999500025*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.0002*g(1)/(x0**2 + x1**2)\n", - "1.00004999875006*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.00030000749987*g(1)/(x0**3 + x0*x1**2) - 10.001*g(2)/(x0**2 + x1**2)\n", - "1.00004999875006*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.0018000449992*g(2)/(x0**3 + x0*x1**2) - 24.0024*g(3)/(x0**2 + x1**2)\n", - "1.00004999875006*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.0054001349977*g(3)/(x0**3 + x0*x1**2) - 44.0044*g(4)/(x0**2 + x1**2)\n", - "1.00004999875006*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 80.012000299995*g(4)/(x0**3 + x0*x1**2) - 70.007*g(5)/(x0**2 + x1**2)\n", - "1.00004999875006*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 150.022500562491*g(5)/(x0**3 + x0*x1**2) - 102.0102*g(6)/(x0**2 + x1**2)\n", - "1.00004999875006*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 252.037800944984*g(6)/(x0**3 + x0*x1**2) - 140.014*g(7)/(x0**2 + x1**2)\n", - "1.00004999875006*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 392.058801469975*g(7)/(x0**3 + x0*x1**2) - 184.0184*g(8)/(x0**2 + x1**2)\n", - "1.00004999875006*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 576.086402159964*g(8)/(x0**3 + x0*x1**2) - 234.0234*g(9)/(x0**2 + x1**2)\n", - "1.00004999875006*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 810.121503037449*g(9)/(x0**3 + x0*x1**2) - 290.029*g(10)/(x0**2 + x1**2)\n", - "1.00004999875006*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1100.16500412493*g(10)/(x0**3 + x0*x1**2) - 352.0352*g(11)/(x0**2 + x1**2)\n", - "1.00000049999988*(x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)\n", - "4.0000019999995*x0**2*g(2)/(x0**3 + x0*x1**2) - 2.000002*g(1)/(x0**2 + x1**2)\n", - "1.00000049999988*(7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) + 2.00000300000075*g(1)/(x0**3 + x0*x1**2) - 10.00001*g(2)/(x0**2 + x1**2)\n", - "1.00000049999988*(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12.0000180000045*g(2)/(x0**3 + x0*x1**2) - 24.000024*g(3)/(x0**2 + x1**2)\n", - "1.00000049999988*(13*x0**2 + 3*x1**2)*g(5)/(x0**3 + x0*x1**2) + 36.0000540000135*g(3)/(x0**3 + x0*x1**2) - 44.000044*g(4)/(x0**2 + x1**2)\n", - "1.00000049999988*(16*x0**2 + 4*x1**2)*g(6)/(x0**3 + x0*x1**2) + 80.00012000003*g(4)/(x0**3 + x0*x1**2) - 70.00007*g(5)/(x0**2 + x1**2)\n", - "1.00000049999988*(19*x0**2 + 5*x1**2)*g(7)/(x0**3 + x0*x1**2) + 150.000225000056*g(5)/(x0**3 + x0*x1**2) - 102.000102*g(6)/(x0**2 + x1**2)\n", - "1.00000049999988*(22*x0**2 + 6*x1**2)*g(8)/(x0**3 + x0*x1**2) + 252.000378000095*g(6)/(x0**3 + x0*x1**2) - 140.00014*g(7)/(x0**2 + x1**2)\n", - "1.00000049999988*(25*x0**2 + 7*x1**2)*g(9)/(x0**3 + x0*x1**2) + 392.000588000147*g(7)/(x0**3 + x0*x1**2) - 184.000184*g(8)/(x0**2 + x1**2)\n", - "1.00000049999988*(28*x0**2 + 8*x1**2)*g(10)/(x0**3 + x0*x1**2) + 576.000864000216*g(8)/(x0**3 + x0*x1**2) - 234.000234*g(9)/(x0**2 + x1**2)\n", - "1.00000049999987*(31*x0**2 + 9*x1**2)*g(11)/(x0**3 + x0*x1**2) + 810.001215000304*g(9)/(x0**3 + x0*x1**2) - 290.00029*g(10)/(x0**2 + x1**2)\n", - "1.00000049999988*(34*x0**2 + 10*x1**2)*g(12)/(x0**3 + x0*x1**2) + 1100.00165000041*g(10)/(x0**3 + x0*x1**2) - 352.000352*g(11)/(x0**2 + x1**2)\n" - ] - }, - { - "data": { - "image/png": "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N1W7dm313//+V23atElt2bJFxcbGKj8/P+Xp6anmzZun1q1bp1588UUFqOeff75Yr3dhPvvsMwWokydPmixfu3atAtTq1auVUkr9+OOPClAvvfSS2rBhg/rzzz/VvHnz1Msvv3zH1yQjI0O1atVK2dvbq48//lht2LBBvfXWW8rCwkL17t3bpG1+3a1atVI//PCD2rhxozp8+LA6cuSIsrOzU82aNVM//vij+vXXX1WvXr1UnTp1FGBybB988IHS6XRq1KhRas2aNeqXX35RnTp1Uvb29urIkSPGdiNGjFCWlpaqbt26avr06eqvv/5S69evL/QYTp8+rb788ksFqGnTpqmdO3cat/X9998rQPXs2VOtWrVKLV26VAUFBSkrKyu1bds24zbu9F4vTEmO+dbfxaSkJLVz507l4+OjunTponbu3Kl27typYmJi1M6dOxWgBg8ebFyulFLR0dGqdu3aKiAgQM2fP1/9+eef6j//+Y+ytrZWI0eONO7nTu+tkr73AwMD1UsvvaTWr1+vFi5cqFxdXVVoaKix3b59+1RgYKBq27atsdZ9+/YV+Xrt2LFD6XQ69fjjj6u1a9eqjRs3qm+++UYNGzbM2Ka4v0ObNm1SgNq0aZPJPvKP/9bjKep9lJOTo0JDQ5WFhYWaOHGiWrt2rVq9erV644031I8//mh8fnE/54qS/7661bPPPqsA9eKLL6p169apefPmKU9PT1W7dm0VFxdnbFecz/nly5ert99+W61cuVJt2bJF/fTTT6pbt27K09PTuK3Y2Fg1bdo0Bagvv/zS+POKjY01vka3/k3Q6/WqV69eysLCQr311ltqw4YN6uOPP1b29vaqbdu2KjMz09g2ICBA+fv7q2bNmqklS5ao9evXq0cffVQBasuWLcZ2zz33nLKzs1OzZs1SmzZtUmvWrFEffvih+u9//3vX17C8SECqhPJ/Yd5++22T5fkfjp988onJ8kuXLilbW1v1+uuvK6WUSklJUU5OTur+++9Xer2+yP2UNCDVr19fZWdnl2mt+XUAavfu3SZtmzVrpnr16mV8PHXqVAWo8PDwIo8pPwSsWLHCZPnevXsVoObMmVPkc5VSqkmTJqpt27YqJyfHZHmfPn2Ur6+vysvLU0rd/CMxfPjwAtvIP56//vrLZPnkyZMLPc7nn39e6XQ6deLECaXUnV/vwly/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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ + "'''\n", "x_plot = [i for i in range(len(compute_error(0)))]\n", "for i in range(1, 4):\n", " plt.semilogy(x_plot, compute_error(i), label=str(10**(-i)))\n", "plt.xlabel(\"order of derivative being computed\")\n", - "plt.ylabel(\"error\")\n", + "plt.ylabel(\"absolute error\")\n", "plt.title(\"recurrence error vs order for different source-locations\")\n", - "plt.legend(title='ratio of y_{coord_src}/x_{coord_src}')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.0" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(1.0/4.4**10) * 4.4**10 - 1" + "plt.legend(title='ratio of x_{coord_src}/y_{coord_src}')\n", + "plt.show()\n", + "'''" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index a3a76cc4a..570fbfa7a 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -294,8 +294,8 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [6,7] -resolutions = range(2000, 3001, 200) +orders = [8] +resolutions = range(200, 800, 200) err_mat = _construct_laplace_axis_2d(orders, resolutions) for i in range(len(orders)): plt.plot(resolutions, err_mat[i], label="order ="+str(orders[i])) From 39d6c8466824ccf0270bc90045e40fdad7d7ef9f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 23 Nov 2024 15:44:47 -0800 Subject: [PATCH 100/193] Much more error in recurrence+qbx vs recurrence only??? --- sumpy/recurrence_qbx.py | 20 ++++++++----- test/modified_recur.ipynb | 59 +++++++++++++++++++-------------------- 2 files changed, 42 insertions(+), 37 deletions(-) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index ebdd03228..db6644ebc 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -114,22 +114,28 @@ def generate_lamb_expr(i, n_initial): for j in range(ndim): arg_list.append(var[j]) + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + if i < n_initial: - lamb_expr_symb = sp.diff(g_x_y, var_t[0], i) - for j in range(ndim): - lamb_expr_symb = lamb_expr_symb.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv else: lamb_expr_symb = recurrence.subs(n, i) - print("=============== ORDER = " + str(i)) - print(lamb_expr_symb) - return sp.lambdify(arg_list, lamb_expr_symb) + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb), sp.lambdify(arg_list, lamb_expr_symb_deriv) interactions = 0 coord = [cts_r_s[j] for j in range(ndim)] for i in range(p+1): - lamb_expr = generate_lamb_expr(i, n_initial) + lamb_expr, true_lamb_expr = generate_lamb_expr(i, n_initial) a = [*storage, *coord] s_new = lamb_expr(*a) + s_new_true = true_lamb_expr(*a) + arg_max = np.argmax(np.max(s_new-s_new_true)) + print(np.max(s_new-s_new_true)/s_new_true.reshape(-1)[arg_max]) + print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max]) interactions += s_new * radius**i/math.factorial(i) storage.pop(0) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index f3788e9ac..c37d2b2c8 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -74,7 +74,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -86,7 +86,7 @@ "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -97,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -114,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -169,13 +169,13 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def compute_error(pw):\n", - " x_coord = 10**-pw * np.random.rand()\n", - " y_coord = 10**-pw * np.random.rand()\n", + " x_coord = 0.11302666666666661\n", + " y_coord = 0\n", " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", @@ -189,35 +189,34 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[-16.4793912653345 -7446016.24208662 95090046267340.2 5.89957479007560e+21\n", - " 1.46052167481843e+29 -5.88202094275608e+36 -1.03964211722783e+45\n", - " -5.65475868362143e+52 3.09919194622245e+60 1.02148424529142e+69\n", - " 9.09458487415835e+76 -5.39245944612498e+84 -2.94394795078325e+93\n", - " -3.79481490540789e+101]\n", - "[-1.64793913e+001 -7.44601624e+006 9.50900463e+013 5.89957479e+021\n", - " 1.46052167e+029 -5.88202094e+036 -1.03964212e+045 -5.65475868e+052\n", - " 3.09919195e+060 1.02148425e+069 9.09458487e+076 -5.39245945e+084\n", - " -2.94394795e+093 -3.79481491e+101]\n" + "[-2.18013149991004 -8.84746962368763 -78.2777187420753 -1385.11947756415\n", + " -36764.4075087807 -1301087.91466724 -57556679.0138276 -3055385815.29108\n", + " -189227032326.038 -13393443363881.4 -1.06648274986670e+15\n", + " -9.43567373363252e+16 -9.18300204110757e+18 -9.74955979355538e+20]\n", + "[-2.18013150e+00 -8.84746962e+00 -7.82777187e+01 -1.38511948e+03\n", + " -3.67644075e+04 -1.30108791e+06 -5.75566790e+07 -3.05538582e+09\n", + " -1.89227032e+11 -1.33934434e+13 -1.06648275e+15 -9.43567373e+16\n", + " -9.18300204e+18 -9.74955979e+20]\n" ] }, { "data": { "text/plain": [ - "array([0, 1.25076624108262e-16, 1.64317934561428e-16,\n", - " 1.77737555215664e-16, 1.08406247664505e-15, 2.20783094012695e-15,\n", - " 1.06690009650372e-15, 7.52203555358031e-16, 1.09374099087612e-14,\n", - " 6.56365286316817e-15, 1.83759411688817e-15, 3.15172520976218e-14,\n", - " 2.34420194715335e-14, 2.98146389490554e-14], dtype=object)" + "array([0, 2.00775692367946e-16, 0, 1.64154557874739e-16,\n", + " 7.91630613108144e-16, 2.14740886634168e-15, 1.03558172216766e-15,\n", + " 2.18490253552735e-15, 4.03187347889313e-15, 6.99969361522217e-15,\n", + " 3.30056909072257e-13, 2.10944131408974e-13, 2.03840965255176e-13,\n", + " 1.33202052553871e-12], dtype=object)" ] }, - "execution_count": 106, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } From 25b1edcf9f4189f45d08d0d61e692e1c735a8b48 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 23 Nov 2024 16:59:01 -0800 Subject: [PATCH 101/193] Cone of innacuracy --- sumpy/recurrence_qbx.py | 7 +- test/modified_recur.ipynb | 136 ++++++++++++++++++++++++------------ test/test_recurrence_qbx.py | 2 +- 3 files changed, 95 insertions(+), 50 deletions(-) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index db6644ebc..c2a2e86d1 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -133,9 +133,10 @@ def generate_lamb_expr(i, n_initial): a = [*storage, *coord] s_new = lamb_expr(*a) s_new_true = true_lamb_expr(*a) - arg_max = np.argmax(np.max(s_new-s_new_true)) - print(np.max(s_new-s_new_true)/s_new_true.reshape(-1)[arg_max]) - print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max]) + arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) + print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) + print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], + "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) interactions += s_new * radius**i/math.factorial(i) storage.pop(0) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index c37d2b2c8..8303fb9fb 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 48, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -74,7 +74,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 52, "metadata": {}, "outputs": [ { @@ -86,7 +86,7 @@ "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 8, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -97,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ @@ -114,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 56, "metadata": {}, "outputs": [], "source": [ @@ -169,13 +169,13 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "def compute_error(pw):\n", - " x_coord = 0.11302666666666661\n", - " y_coord = 0\n", + " x_coord = 1e-7\n", + " y_coord = 1\n", " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", @@ -189,54 +189,98 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 92, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[-2.18013149991004 -8.84746962368763 -78.2777187420753 -1385.11947756415\n", - " -36764.4075087807 -1301087.91466724 -57556679.0138276 -3055385815.29108\n", - " -189227032326.038 -13393443363881.4 -1.06648274986670e+15\n", - " -9.43567373363252e+16 -9.18300204110757e+18 -9.74955979355538e+20]\n", - "[-2.18013150e+00 -8.84746962e+00 -7.82777187e+01 -1.38511948e+03\n", - " -3.67644075e+04 -1.30108791e+06 -5.75566790e+07 -3.05538582e+09\n", - " -1.89227032e+11 -1.33934434e+13 -1.06648275e+15 -9.43567373e+16\n", - " -9.18300204e+18 -9.74955979e+20]\n" + "[4.88498130835068e-15 -9.99999999999990e-8 0.999999999999970\n", + " 5.99999999999980e-7 -5.99999999999940 -1.20103359222412e-5\n", + " 119.689922332713 -12403106.6899557 -620155334528027.\n", + " -3.72093200713792e+22 -2.60465240499655e+30 -2.08372192399724e+38\n", + " -1.87534973159752e+46 -1.87534973159752e+54]\n", + "[ 4.88498131e-15 -1.00000000e-07 1.00000000e+00 6.00000000e-07\n", + " -6.00000000e+00 -1.20000000e-05 1.20000000e+02 5.04000000e-04\n", + " -5.04000000e+03 -3.62880000e-02 3.62880000e+05 3.99168000e+00\n", + " -3.99168000e+07 -6.22702080e+02]\n" ] }, { "data": { "text/plain": [ - "array([0, 2.00775692367946e-16, 0, 1.64154557874739e-16,\n", - " 7.91630613108144e-16, 2.14740886634168e-15, 1.03558172216766e-15,\n", - " 2.18490253552735e-15, 4.03187347889313e-15, 6.99969361522217e-15,\n", - " 3.30056909072257e-13, 2.10944131408974e-13, 2.03840965255176e-13,\n", - " 1.33202052553871e-12], dtype=object)" + "array([0, 0, 1.11022302462519e-16, 0, 4.44089209850107e-16,\n", + " 0.000861326853504301, 0.00258398056051277, 24609338671.5500,\n", + " 123046693357.780, 1.02538911131465e+24, 7.17772377920519e+24,\n", + " 5.22016274851136e+37, 4.69814647366267e+38, 3.01163235491067e+51],\n", + " dtype=object)" ] }, - "execution_count": 14, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "compute_error(1)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(10 x_{0}^{2} + 2 x_{1}^{2}\\right) g{\\left(4 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{12 g{\\left(2 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{24 g{\\left(3 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" + ], + "text/plain": [ + "(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12*g(2)/(x0**3 + x0*x1**2) - 24*g(3)/(x0**2 + x1**2)" + ] + }, + "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error(7)" + "r_new.subs(rct, 1).subs(n, 5)" ] }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "-0.0" + "1.1399853691344745e-15" ] }, - "execution_count": 68, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(30116417561.29867 -30116417561.298637)/30116417561.298637" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-4999999999.999999" + ] + }, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -252,19 +296,19 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle - \\frac{720 x_{0} \\left(\\frac{64 x_{0}^{6}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{112 x_{0}^{4}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{56 x_{0}^{2}}{x_{0}^{2} + x_{1}^{2}} - 7\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}}$" + "$\\displaystyle - \\frac{114.591559026165 x_{0} \\left(\\frac{64 x_{0}^{6}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{112 x_{0}^{4}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{56 x_{0}^{2}}{x_{0}^{2} + x_{1}^{2}} - 7\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}}$" ], "text/plain": [ - "-720*x0*(64*x0**6/(x0**2 + x1**2)**3 - 112*x0**4/(x0**2 + x1**2)**2 + 56*x0**2/(x0**2 + x1**2) - 7)/(x0**2 + x1**2)**4" + "-114.591559026165*x0*(64*x0**6/(x0**2 + x1**2)**3 - 112*x0**4/(x0**2 + x1**2)**2 + 56*x0**2/(x0**2 + x1**2) - 7)/(x0**2 + x1**2)**4" ] }, - "execution_count": 72, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -275,19 +319,19 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 0.555111512312578$" + "$\\displaystyle 0.0883487411517643$" ], "text/plain": [ - "0.555111512312578" + "0.0883487411517643" ] }, - "execution_count": 71, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -298,16 +342,16 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "-0.0" + "-4999999999.999999" ] }, - "execution_count": 51, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -318,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -327,7 +371,7 @@ "'\\nx_plot = [i for i in range(len(compute_error(0)))]\\nfor i in range(1, 4):\\n plt.semilogy(x_plot, compute_error(i), label=str(10**(-i)))\\nplt.xlabel(\"order of derivative being computed\")\\nplt.ylabel(\"absolute error\")\\nplt.title(\"recurrence error vs order for different source-locations\")\\nplt.legend(title=\\'ratio of x_{coord_src}/y_{coord_src}\\')\\nplt.show()\\n'" ] }, - "execution_count": 14, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 570fbfa7a..7651d6de1 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -98,7 +98,7 @@ def _qbx_lp_general(knl, sources, targets, centers, radius, def _create_ellipse(n_p): h = 9.688 / n_p - radius = 7*h + radius = 7*h * 1/40 t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) unit_circle_param = np.exp(1j * t) From 8cc112454a90da12f19922bb41691bbdffc355f2 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 23 Nov 2024 17:23:55 -0800 Subject: [PATCH 102/193] possible tarylor exp in x0 could avoid cat can --- test/modified_recur.ipynb | 78 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 5 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 8303fb9fb..6941c4542 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -228,27 +228,95 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\frac{\\left(10 x_{0}^{2} + 2 x_{1}^{2}\\right) g{\\left(4 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{12 g{\\left(2 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{24 g{\\left(3 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" + "$\\displaystyle \\frac{12 x_{0}^{2} g{\\left(2 \\right)} - 24 x_{0}^{2} g{\\left(3 \\right)} + 10 x_{0}^{2} g{\\left(4 \\right)} + 2 x_{1}^{2} g{\\left(4 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" ], "text/plain": [ - "(10*x0**2 + 2*x1**2)*g(4)/(x0**3 + x0*x1**2) + 12*g(2)/(x0**3 + x0*x1**2) - 24*g(3)/(x0**2 + x1**2)" + "(12*x0**2*g(2) - 24*x0**2*g(3) + 10*x0**2*g(4) + 2*x1**2*g(4))/(x0**2 + x1**2)" ] }, - "execution_count": 90, + "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "r_new.subs(rct, 1).subs(n, 5)" + "a = sp.cancel(sp.diff(r_new.subs(rct, var[0]).subs(n, 5), var[0], 0))\n", + "a" ] }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{1440 \\left(6 g{\\left(2 \\right)} - 12 g{\\left(3 \\right)} + 4 g{\\left(4 \\right)}\\right)}{x_{1}^{6}}$" + ], + "text/plain": [ + "1440*(6*g(2) - 12*g(3) + 4*g(4))/x1**6" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.diff(a, var[0], 6).subs(var[0], 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle - \\frac{25920.010368}{x_{1}^{6}}$" + ], + "text/plain": [ + "-25920.010368/x1**6" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.diff(a, var[0], 6).subs(var[0], 0).subs(g(2), 1.00000000e+00).subs(g(3), 6.00000000e-07).subs(g(4), -6.00000000e+00)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 34, From 3f667e07f926e7d2b27c308f39db610eb0002b55 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 24 Nov 2024 23:10:50 -0800 Subject: [PATCH 103/193] Update modified_recur.ipynb --- test/modified_recur.ipynb | 248 ++++++++++++-------------------------- 1 file changed, 78 insertions(+), 170 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 6941c4542..d666f22d8 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 47, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -74,7 +74,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -86,7 +86,7 @@ "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 52, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -97,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -114,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -169,17 +169,17 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def compute_error(pw):\n", - " x_coord = 1e-7\n", + " x_coord = 10**(-pw)\n", " y_coord = 1\n", " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", - " rct_val = 1\n", + " rct_val = x_coord\n", " exp = evaluate_recurrence_lamb(coord_dict, rct_val, r_new, 14)\n", " true = evaluate_true(coord_dict, rct_val, 14)\n", " print(exp)\n", @@ -189,111 +189,130 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[4.88498130835068e-15 -9.99999999999990e-8 0.999999999999970\n", - " 5.99999999999980e-7 -5.99999999999940 -1.20103359222412e-5\n", - " 119.689922332713 -12403106.6899557 -620155334528027.\n", - " -3.72093200713792e+22 -2.60465240499655e+30 -2.08372192399724e+38\n", - " -1.87534973159752e+46 -1.87534973159752e+54]\n", - "[ 4.88498131e-15 -1.00000000e-07 1.00000000e+00 6.00000000e-07\n", - " -6.00000000e+00 -1.20000000e-05 1.20000000e+02 5.04000000e-04\n", - " -5.04000000e+03 -3.62880000e-02 3.62880000e+05 3.99168000e+00\n", - " -3.99168000e+07 -6.22702080e+02]\n" + "[4.99999750058881e-7 -9.99999000001000e-7 9.99997000005001e-7\n", + " 5.99998000004200e-12 -5.99994000021000e-12 -1.19999160001121e-16\n", + " 1.19997480020830e-16 5.03996236056665e-21 -5.03970436047030e-21\n", + " 3.22333878647354e-25 5.15931089723621e-24 3.83716481291881e-23\n", + " 3.45344442229625e-22 3.45344487898425e-21]\n", + "[ 4.99999750e-07 -9.99999000e-07 9.99997000e-07 5.99998000e-12\n", + " -5.99994000e-12 -1.19999160e-16 1.19997480e-16 5.03993952e-21\n", + " -5.03981856e-21 -3.62873347e-25 3.62860042e-25 3.99157622e-29\n", + " -3.99136865e-29 -6.22680286e-33]\n" ] }, { "data": { "text/plain": [ - "array([0, 0, 1.11022302462519e-16, 0, 4.44089209850107e-16,\n", - " 0.000861326853504301, 0.00258398056051277, 24609338671.5500,\n", - " 123046693357.780, 1.02538911131465e+24, 7.17772377920519e+24,\n", - " 5.22016274851136e+37, 4.69814647366267e+38, 3.01163235491067e+51],\n", - " dtype=object)" + "array([0, 2.11758448571812e-16, 4.23517744178265e-16,\n", + " 4.03898129797430e-16, 4.03900822467246e-16, 1.58609401692541e-11,\n", + " 4.75849247343332e-11, 4.53184684440781e-6, 2.26597825890807e-5,\n", + " 1.88828204410285, 13.2184597422124, 961314.681805742,\n", + " 8652282.26317474, 554609638070.892], dtype=object)" ] }, - "execution_count": 92, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error(1)" + "compute_error(3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Avoiding Cat Cancellation\n", + "The question is can we avoid catastrophic cancellation in the recurrence when $x_0 << 1$? Where $(x_0, y_0)$ is the location of the source?\n", + "\n", + "If we formulate a recurrence for\n", + "$$\n", + "g(i, x_0, y_0) = \\frac{d^i}{dx^i}|_{x = 0} G(x, y) r_{ct}^i\n", + "$$\n", + "we will inevitably get catastrophic cancellation when $x_0 << y_0$. Suppose we let $r_{ct} = x_0$ (we can scale up and down later with the true $r_{ct}$) and have\n", + "$$\n", + "g(n, x_0, y_0) = f_1(x_0, y_0, n-1) g(n-1, x_0, y_0) + f_2(x_0, y_0, n-2) g(n-2, x_0, y_0) + f_3(x_0, y_0, n-3) g(n-3, x_0, y_0)\n", + "$$\n", + "we could treat $g(n-1, x_0, y_0), g(n-2, x_0, y_0), g(n-3, x_0, y_0)$ as constants and taylor expand $f_i(x_0, y_0, j)$ when $x_0 << y_0$. So instead we get for example:\n", + "$$\n", + "g(2) = -g(1) + \\frac{4g(1)}{x_1^2} \\frac{x_0^2}{2!} - \\frac{48 g(1)}{x_1^4} \\frac{x_0^4}{4!} \n", + "$$\n", + "$$\n", + "g(3) = -\\frac{4(g(1)-2g(2))}{x_1^2} \\frac{x_0^2}{2!} - \\frac{48 (g(1)-2g(2))}{x_1^4} \\frac{x_0^4}{4!} \n", + "$$\n", + "$$\n", + "g(4) = g(3) - \\frac{4(g(1)-5g(2)+3g(3))}{x_1^2 } \\frac{x_0^2}{2!} - \\frac{48(g(1)-5g(2)+3g(3))}{x_1^4} \\frac{x_0^4}{4!} \n", + "$$\n", + "$$\n", + "g(5) = 2g(4) + \\frac{8(3g(2)-6g(3)+2g(4))}{x_1^2} \\frac{x_0^2}{2!}\n", + "$$" ] }, { "cell_type": "code", - "execution_count": 104, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{12 x_{0}^{2} g{\\left(2 \\right)} - 24 x_{0}^{2} g{\\left(3 \\right)} + 10 x_{0}^{2} g{\\left(4 \\right)} + 2 x_{1}^{2} g{\\left(4 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" - ], - "text/plain": [ - "(12*x0**2*g(2) - 24*x0**2*g(3) + 10*x0**2*g(4) + 2*x1**2*g(4))/(x0**2 + x1**2)" - ] - }, - "execution_count": 104, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "a = sp.cancel(sp.diff(r_new.subs(rct, var[0]).subs(n, 5), var[0], 0))\n", - "a" + "def generate_specialized_formula(i):\n", + " a = sp.cancel(r_new.subs(rct, var[0]).subs(n, 3))\n", + " for j in range(4):\n", + " " ] }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\frac{1440 \\left(6 g{\\left(2 \\right)} - 12 g{\\left(3 \\right)} + 4 g{\\left(4 \\right)}\\right)}{x_{1}^{6}}$" + "$\\displaystyle \\frac{- 2 x_{0}^{2} g{\\left(1 \\right)} + 4 x_{0}^{2} g{\\left(2 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" ], "text/plain": [ - "1440*(6*g(2) - 12*g(3) + 4*g(4))/x1**6" + "(-2*x0**2*g(1) + 4*x0**2*g(2))/(x0**2 + x1**2)" ] }, - "execution_count": 110, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sp.diff(a, var[0], 6).subs(var[0], 0)" + "a = sp.cancel(r_new.subs(rct, var[0]).subs(n, 3))\n", + "a" ] }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle - \\frac{25920.010368}{x_{1}^{6}}$" + "$\\displaystyle \\frac{4 \\left(- g{\\left(1 \\right)} + 2 g{\\left(2 \\right)}\\right)}{x_{1}^{2}}$" ], "text/plain": [ - "-25920.010368/x1**6" + "4*(-g(1) + 2*g(2))/x1**2" ] }, - "execution_count": 111, + "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sp.diff(a, var[0], 6).subs(var[0], 0).subs(g(2), 1.00000000e+00).subs(g(3), 6.00000000e-07).subs(g(4), -6.00000000e+00)" + "sp.simplify(sp.diff(a, var[0], 2).subs(var[0], 0))" ] }, { @@ -317,117 +336,6 @@ "outputs": [], "source": [] }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1.1399853691344745e-15" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "(30116417561.29867 -30116417561.298637)/30116417561.298637" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-4999999999.999999" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pw = 8\n", - "x0 = 1\n", - "x1 = 10**(-pw)\n", - "g_1 = -5000000000.00000\n", - "g_2 = (x0**2 - x1**2)*g_1/(x0**3 + x0*x1**2)\n", - "g_2" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle - \\frac{114.591559026165 x_{0} \\left(\\frac{64 x_{0}^{6}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{112 x_{0}^{4}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{56 x_{0}^{2}}{x_{0}^{2} + x_{1}^{2}} - 7\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}}$" - ], - "text/plain": [ - "-114.591559026165*x0*(64*x0**6/(x0**2 + x1**2)**3 - 112*x0**4/(x0**2 + x1**2)**2 + 56*x0**2/(x0**2 + x1**2) - 7)/(x0**2 + x1**2)**4" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs[7]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0.0883487411517643$" - ], - "text/plain": [ - "0.0883487411517643" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs[2].subs(var[0], 10**(-8)).subs(var[1], 10**(-8))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-4999999999.999999" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g_2" - ] - }, { "cell_type": "code", "execution_count": 17, From af5a1703f71df51bbb1bb26c289817ed7dda0a64 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 25 Nov 2024 01:55:15 -0800 Subject: [PATCH 104/193] spec formula no go --- test/modified_recur.ipynb | 191 +++++++++++++++++++++++--------------- 1 file changed, 115 insertions(+), 76 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index d666f22d8..8f55df455 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -16,12 +16,14 @@ "from sumpy.recurrence import get_recurrence\n", "\n", "import sympy as sp\n", - "import numpy as np" + "import numpy as np\n", + "\n", + "import math" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -52,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -61,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -74,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -86,7 +88,7 @@ "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -97,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -109,12 +111,12 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "derivs = compute_derivatives(15)" + "derivs = compute_derivatives(10)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -169,7 +171,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -180,50 +182,42 @@ " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", " rct_val = x_coord\n", - " exp = evaluate_recurrence_lamb(coord_dict, rct_val, r_new, 14)\n", - " true = evaluate_true(coord_dict, rct_val, 14)\n", - " print(exp)\n", - " print(true)\n", + " exp = evaluate_recurrence_lamb(coord_dict, rct_val, r_new, 9)\n", + " true = evaluate_true(coord_dict, rct_val, 9)\n", + "\n", " return np.abs(exp-true)/np.abs(true)" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[4.99999750058881e-7 -9.99999000001000e-7 9.99997000005001e-7\n", - " 5.99998000004200e-12 -5.99994000021000e-12 -1.19999160001121e-16\n", - " 1.19997480020830e-16 5.03996236056665e-21 -5.03970436047030e-21\n", - " 3.22333878647354e-25 5.15931089723621e-24 3.83716481291881e-23\n", - " 3.45344442229625e-22 3.45344487898425e-21]\n", - "[ 4.99999750e-07 -9.99999000e-07 9.99997000e-07 5.99998000e-12\n", - " -5.99994000e-12 -1.19999160e-16 1.19997480e-16 5.03993952e-21\n", - " -5.03981856e-21 -3.62873347e-25 3.62860042e-25 3.99157622e-29\n", - " -3.99136865e-29 -6.22680286e-33]\n" + "[0 -1.00000000000000e-16 1.00000000000000e-16 6.00000000000000e-32\n", + " -6.00000000000000e-32 -1.75162308040602e-46 -4.54869241218068e-47\n", + " -6.61947696487225e-46 -3.30973848243613e-45]\n", + "[ 0.00e+00 -1.00e-16 1.00e-16 6.00e-32 -6.00e-32 -1.20e-46 1.20e-46\n", + " 5.04e-61 -5.04e-61]\n" ] }, { "data": { "text/plain": [ - "array([0, 2.11758448571812e-16, 4.23517744178265e-16,\n", - " 4.03898129797430e-16, 4.03900822467246e-16, 1.58609401692541e-11,\n", - " 4.75849247343332e-11, 4.53184684440781e-6, 2.26597825890807e-5,\n", - " 1.88828204410285, 13.2184597422124, 961314.681805742,\n", - " 8652282.26317474, 554609638070.892], dtype=object)" + "array([nan, 0, 0, 0, 0, 0.459685900338351, 1.37905770101506,\n", + " 1.31338828668100e+15, 6.56694143340504e+15], dtype=object)" ] }, - "execution_count": 24, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error(3)" + "compute_error(8)" ] }, { @@ -258,88 +252,133 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 58, "metadata": {}, "outputs": [], "source": [ - "def generate_specialized_formula(i):\n", - " a = sp.cancel(r_new.subs(rct, var[0]).subs(n, 3))\n", - " for j in range(4):\n", - " " + "def generate_specialized_formula(i, order):\n", + " a = sp.cancel(r_new.subs(rct, var[0]).subs(n, i))\n", + " res = 0\n", + " for j in range(order+1):\n", + " res += sp.simplify(sp.diff(a, var[0], j).subs(var[0], 0)) * var[0]**j/math.factorial(j)\n", + " return res" ] }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_specialized_formula(coord_dict, p, rct_val, order_approx):\n", + " subs_dict = {}\n", + " subs_dict[g(-2)] = 0\n", + " subs_dict[g(-1)] = 0\n", + " subs_dict[g(0)] = derivs[0].subs(coord_dict)\n", + " subs_dict[g(1)] = derivs[1].subs(coord_dict) * rct_val\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " for i in range(2, p):\n", + " exp = generate_specialized_formula(i, order_approx)\n", + " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3)], exp)\n", + " subs_dict[g(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[g(i-1)],\n", + " subs_dict[g(i-2)], subs_dict[g(i-3)])\n", + " subs_dict.pop(g(-2))\n", + " subs_dict.pop(g(-1))\n", + " return np.array(list(subs_dict.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_error_using_specialized_formula(pw, order_approx):\n", + " x_coord = 10**(-pw)\n", + " y_coord = 1\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", + "\n", + " rct_val = x_coord\n", + " exp = evaluate_specialized_formula(coord_dict, 9, rct_val, order_approx)\n", + " true = evaluate_true(coord_dict, rct_val, 9)\n", + " print(exp)\n", + " print(true)\n", + " return np.abs(exp-true)/np.abs(true)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", + " 5.99999999800000e-20 -5.99999999400000e-20 -1.19999928158156e-28\n", + " 1.20000215021531e-28 8.61598124858447e-34 4.30496662438318e-33]\n", + "[ 5.00000041e-11 -1.00000000e-10 1.00000000e-10 6.00000000e-20\n", + " -5.99999999e-20 -1.20000000e-28 1.20000000e-28 5.03999999e-37\n", + " -5.03999998e-37]\n" + ] + }, { "data": { - "text/latex": [ - "$\\displaystyle \\frac{- 2 x_{0}^{2} g{\\left(1 \\right)} + 4 x_{0}^{2} g{\\left(2 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" - ], "text/plain": [ - "(-2*x0**2*g(1) + 4*x0**2*g(2))/(x0**2 + x1**2)" + "array([0, 0, 1.29246970750185e-16, 4.01235405214419e-16,\n", + " 2.00617702740955e-16, 5.97982031121250e-7, 1.79394609774367e-6,\n", + " 1708.52009105628, 8542.60047595449], dtype=object)" ] }, - "execution_count": 75, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "a = sp.cancel(r_new.subs(rct, var[0]).subs(n, 3))\n", - "a" + "compute_error_using_specialized_formula(5, 25)" ] }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 51, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", + " 5.99999999800000e-20 -5.99999999400000e-20 -1.20000024454654e-28\n", + " 1.19999926132039e-28 -2.93959842401676e-34 -1.47282321203299e-33]\n", + "[ 5.00000041e-11 -1.00000000e-10 1.00000000e-10 6.00000000e-20\n", + " -5.99999999e-20 -1.20000000e-28 1.20000000e-28 5.03999999e-37\n", + " -5.03999998e-37]\n" + ] + }, { "data": { - "text/latex": [ - "$\\displaystyle \\frac{4 \\left(- g{\\left(1 \\right)} + 2 g{\\left(2 \\right)}\\right)}{x_{1}^{2}}$" - ], "text/plain": [ - "4*(-g(1) + 2*g(2))/x1**2" + "array([0, 0, 1.29246970750185e-16, 0, 0, 2.04488779601828e-7,\n", + " 6.13466339664336e-7, 584.253656258786, 2921.26828836340],\n", + " dtype=object)" ] }, - "execution_count": 77, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sp.simplify(sp.diff(a, var[0], 2).subs(var[0], 0))" + "compute_error(5)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, "outputs": [ { "data": { From d4d818eee55dbd68f543381b1c172dfef34717e6 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 29 Nov 2024 14:06:29 -0800 Subject: [PATCH 105/193] Odd-Even Recurrence --- test/modified_recur.ipynb | 108 +++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 31 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 8f55df455..874654b6b 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -71,7 +71,8 @@ "var = _make_sympy_vec(\"x\", 2)\n", "rct = sp.symbols(\"r_{ct}\")\n", "g = sp.Function(\"g\")\n", - "n = sp.symbols(\"n\")" + "n = sp.symbols(\"n\")\n", + "coord_dict = {var[0]: 1, var[1]: 1}" ] }, { @@ -171,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -181,37 +182,37 @@ " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", - " rct_val = x_coord\n", + " rct_val = 1\n", " exp = evaluate_recurrence_lamb(coord_dict, rct_val, r_new, 9)\n", " true = evaluate_true(coord_dict, rct_val, 9)\n", "\n", + " print(true)\n", + "\n", " return np.abs(exp-true)/np.abs(true)" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[0 -1.00000000000000e-16 1.00000000000000e-16 6.00000000000000e-32\n", - " -6.00000000000000e-32 -1.75162308040602e-46 -4.54869241218068e-47\n", - " -6.61947696487225e-46 -3.30973848243613e-45]\n", - "[ 0.00e+00 -1.00e-16 1.00e-16 6.00e-32 -6.00e-32 -1.20e-46 1.20e-46\n", - " 5.04e-61 -5.04e-61]\n" + "[ 0.00e+00 -1.00e-08 1.00e+00 6.00e-08 -6.00e+00 -1.20e-06 1.20e+02\n", + " 5.04e-05 -5.04e+03]\n" ] }, { "data": { "text/plain": [ - "array([nan, 0, 0, 0, 0, 0.459685900338351, 1.37905770101506,\n", - " 1.31338828668100e+15, 6.56694143340504e+15], dtype=object)" + "array([nan, 0, 1.11022302462516e-16, 2.20581496680807e-16, 0,\n", + " 0.192092895507813, 0.576278686523440, 548836844308037.,\n", + " 2.74418422154019e+15], dtype=object)" ] }, - "execution_count": 28, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -224,7 +225,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Avoiding Cat Cancellation\n", + "# Avoiding Cat Cancellation: Attempt 1\n", "The question is can we avoid catastrophic cancellation in the recurrence when $x_0 << 1$? Where $(x_0, y_0)$ is the location of the source?\n", "\n", "If we formulate a recurrence for\n", @@ -252,7 +253,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -266,7 +267,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -289,7 +290,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -309,7 +310,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -332,7 +333,7 @@ " 1708.52009105628, 8542.60047595449], dtype=object)" ] }, - "execution_count": 55, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -343,30 +344,27 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", - " 5.99999999800000e-20 -5.99999999400000e-20 -1.20000024454654e-28\n", - " 1.19999926132039e-28 -2.93959842401676e-34 -1.47282321203299e-33]\n", - "[ 5.00000041e-11 -1.00000000e-10 1.00000000e-10 6.00000000e-20\n", - " -5.99999999e-20 -1.20000000e-28 1.20000000e-28 5.03999999e-37\n", - " -5.03999998e-37]\n" + "[ 5.00000041e-11 -1.00000000e-05 1.00000000e+00 6.00000000e-05\n", + " -5.99999999e+00 -1.20000000e-03 1.20000000e+02 5.03999999e-02\n", + " -5.03999998e+03]\n" ] }, { "data": { "text/plain": [ - "array([0, 0, 1.29246970750185e-16, 0, 0, 2.04488779601828e-7,\n", - " 6.13466339664336e-7, 584.253656258786, 2921.26828836340],\n", - " dtype=object)" + "array([0, 0, 1.11022302495822e-16, 0, 4.44089210294152e-16,\n", + " 1.45828085314177e-7, 4.37484255134502e-7, 416.651671175665,\n", + " 2083.25836091981], dtype=object)" ] }, - "execution_count": 51, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -375,9 +373,57 @@ "compute_error(5)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Avoiding Cat Cancellation Attempt 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have\n", + "$$\n", + "\\text{ Given } g(0), g(1), rct = 1\n", + "$$\n", + "$$\n", + "g(1) = \\frac{1}{2\\pi} \\frac{x_0}{x_0^2 + x_1^2}\n", + "$$\n", + "$$\n", + "g(2) = \\frac{x_0^2 -x_1^2}{x_0^3 +x_0 x_1^2} g(1)\n", + "$$\n", + "$$\n", + "g(3) = \\frac{4x_0 g(2)}{x_0^2 + x_1^2} - \\frac{2 g (1)}{x_0^2 + x_1^2}\n", + "$$\n", + "$$\n", + "g(4) = \\frac{(7 x_0^2 + x_1^2)g(3)}{x_0^3 + x_0x_1^2} - \\frac{10g(2)}{x_0^2 + x_1^2} + \\frac{2g(1)}{x_0^3 + x_0 x_1^2}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rewriting as an odd-even recurrence we get:\n", + "$$\n", + "g(2) = \\frac{1}{2\\pi} \\frac{x_0^2 -x_1^2}{(x_0^2 + x_1^2)^2} \n", + "$$\n", + "$$\n", + "g(3) = \\frac{6x_0^2 -2x_1^2}{(x_0^2 + x_1^2)^2} g(1)\n", + "$$\n", + "$$\n", + "g(4) = \\frac{(7 x_0^2 + x_1^2)}{x_0^2 + x_1^2} \\left(\\frac{4 g(2)}{x_0^2 + x_1^2} - \\frac{1 }{\\pi(x_0^2 + x_1^2)^2} \\right) - \\frac{10g(2)}{x_0^2 + x_1^2} + \\frac{1}{x_0^2 + x_1^2} \\frac{1}{\\pi} \\frac{1}{x_0^2 + x_1^2}\n", + "$$\n", + "$$\n", + "g(4) = \\frac{18x_0^2 - 6x_1^2}{(x_0^2 + x_1^2)^2} g(2) + \\frac{-(7 x_0^2 + x_1^2) + 1}{\\pi(x_0^2 + x_1^2)^2}\n", + "$$" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -386,7 +432,7 @@ "'\\nx_plot = [i for i in range(len(compute_error(0)))]\\nfor i in range(1, 4):\\n plt.semilogy(x_plot, compute_error(i), label=str(10**(-i)))\\nplt.xlabel(\"order of derivative being computed\")\\nplt.ylabel(\"absolute error\")\\nplt.title(\"recurrence error vs order for different source-locations\")\\nplt.legend(title=\\'ratio of x_{coord_src}/y_{coord_src}\\')\\nplt.show()\\n'" ] }, - "execution_count": 17, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } From 20d70716dc81a5d40122d1043725fa390b21dbb3 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 29 Nov 2024 23:27:14 -0800 Subject: [PATCH 106/193] Try with dictionary first --- test/modified_recur.ipynb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 874654b6b..8c5f29790 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -421,6 +421,25 @@ "$$" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def odd_even(i):\n", + " #Pseudocode\n", + " #Step 1 use extract_idx_terms from recurrence\n", + " #Use odd-even to recursively? substitute odd or even terms\n", + " #Should take in dictionary?\n", + " #The problem is when we try and replace the smallest even\n", + " #term, we get a smaller even term. Have we already computed\n", + " #Are we even only to a certain order????\n", + " #Yes you can assume every even/odd terms has been computed accurately\n", + " #Let us try with a dictionary first\n", + " return 0" + ] + }, { "cell_type": "code", "execution_count": 19, From cd2096ef4e4c9054aa36dde51f75d9e8811b5895 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 30 Nov 2024 12:02:06 -0800 Subject: [PATCH 107/193] Odd-Even Ideas --- test/modified_recur.ipynb | 74 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 8c5f29790..27bb79c0c 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -100,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ @@ -112,7 +112,70 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "derivs = compute_derivatives(10)" + "derivs = compute_derivatives(15)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we have $x_0 << x_1$ then the following expressions are a good approximation\\\n", + "to coefficients for a Taylor expansion of a Laplace kernel at the origin with\\\n", + "source at $(x_0, x_1)$:" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[log(sqrt(x1**2)),\n", + " -x0/x1**2,\n", + " x1**(-2),\n", + " 6*x0/x1**4,\n", + " -6/x1**4,\n", + " -120*x0/x1**6,\n", + " 120/x1**6,\n", + " 5040*x0/x1**8,\n", + " -5040/x1**8,\n", + " -362880*x0/x1**10,\n", + " 362880/x1**10,\n", + " 39916800*x0/x1**12,\n", + " -39916800/x1**12,\n", + " -6227020800*x0/x1**14,\n", + " 6227020800/x1**14]" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) + sp.diff(derivs[i], var[0], 1).subs(var[0], 0) * var[0] for i in range(0,15,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 6, 120, 5040, 362880, 39916800, 6227020800]" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[math.factorial(2*n_v+1) for n_v in range(7)]" ] }, { @@ -421,6 +484,13 @@ "$$" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, From cfdc52df5a0a3f92c21df80866abf4c93f9fb1f8 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 30 Nov 2024 14:25:58 -0800 Subject: [PATCH 108/193] Use new subs recur --- test/modified_recur.ipynb | 276 ++++++++++++++++---------------------- 1 file changed, 116 insertions(+), 160 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 27bb79c0c..6e6ef5033 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -83,10 +83,10 @@ { "data": { "text/latex": [ - "$\\displaystyle \\left(-1\\right)^{n + 1} r_{ct}^{n} \\left(\\frac{\\left(-1\\right)^{n - 3} r_{ct}^{3 - n} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) g{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} r_{ct}^{2 - n} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) g{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} r_{ct}^{1 - n} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) g{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" + "$\\displaystyle \\left(-1\\right)^{n + 1} \\left(\\frac{\\left(-1\\right)^{n - 3} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) g{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) g{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) g{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" ], "text/plain": [ - "(-1)**(n + 1)*r_{ct}**n*((-1)**(n - 3)*r_{ct}**(3 - n)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*r_{ct}**(2 - n)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*r_{ct}**(1 - n)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" + "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, "execution_count": 6, @@ -95,109 +95,65 @@ } ], "source": [ + "r_new = r_new.subs(rct, 1)\n", "r_new" ] }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "def compute_derivatives(p):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - " derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs\n", - "derivs = compute_derivatives(15)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we have $x_0 << x_1$ then the following expressions are a good approximation\\\n", - "to coefficients for a Taylor expansion of a Laplace kernel at the origin with\\\n", - "source at $(x_0, x_1)$:" + "r_new_shifted_1 = r_new.subs(n, n-1)\n", + "r_new_shifted_3 = r_new.subs(n, n-3)" ] }, { "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[log(sqrt(x1**2)),\n", - " -x0/x1**2,\n", - " x1**(-2),\n", - " 6*x0/x1**4,\n", - " -6/x1**4,\n", - " -120*x0/x1**6,\n", - " 120/x1**6,\n", - " 5040*x0/x1**8,\n", - " -5040/x1**8,\n", - " -362880*x0/x1**10,\n", - " 362880/x1**10,\n", - " 39916800*x0/x1**12,\n", - " -39916800/x1**12,\n", - " -6227020800*x0/x1**14,\n", - " 6227020800/x1**14]" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) + sp.diff(derivs[i], var[0], 1).subs(var[0], 0) * var[0] for i in range(0,15,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": 73, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(6 n^{2} x_{0}^{4} + 3 n^{2} x_{0}^{2} x_{1}^{2} + n^{2} x_{1}^{4} - 26 n x_{0}^{4} - 21 n x_{0}^{2} x_{1}^{2} - 7 n x_{1}^{4} + 26 x_{0}^{4} + 30 x_{0}^{2} x_{1}^{2} + 12 x_{1}^{4}\\right) g{\\left(n - 2 \\right)}}{x_{0}^{6} + 2 x_{0}^{4} x_{1}^{2} + x_{0}^{2} x_{1}^{4}} + \\frac{\\left(3 n^{4} x_{0}^{2} + n^{4} x_{1}^{2} - 38 n^{3} x_{0}^{2} - 14 n^{3} x_{1}^{2} + 175 n^{2} x_{0}^{2} + 73 n^{2} x_{1}^{2} - 344 n x_{0}^{2} - 168 n x_{1}^{2} + 240 x_{0}^{2} + 144 x_{1}^{2}\\right) g{\\left(n - 4 \\right)}}{x_{0}^{6} + 2 x_{0}^{4} x_{1}^{2} + x_{0}^{2} x_{1}^{4}} + \\frac{\\left(- 8 n^{3} x_{0}^{2} - 2 n^{3} x_{1}^{2} + 64 n^{2} x_{0}^{2} + 20 n^{2} x_{1}^{2} - 164 n x_{0}^{2} - 66 n x_{1}^{2} + 132 x_{0}^{2} + 72 x_{1}^{2}\\right) g{\\left(n - 3 \\right)}}{x_{0}^{5} + 2 x_{0}^{3} x_{1}^{2} + x_{0} x_{1}^{4}}$" + ], "text/plain": [ - "[1, 6, 120, 5040, 362880, 39916800, 6227020800]" + "(6*n**2*x0**4 + 3*n**2*x0**2*x1**2 + n**2*x1**4 - 26*n*x0**4 - 21*n*x0**2*x1**2 - 7*n*x1**4 + 26*x0**4 + 30*x0**2*x1**2 + 12*x1**4)*g(n - 2)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (3*n**4*x0**2 + n**4*x1**2 - 38*n**3*x0**2 - 14*n**3*x1**2 + 175*n**2*x0**2 + 73*n**2*x1**2 - 344*n*x0**2 - 168*n*x1**2 + 240*x0**2 + 144*x1**2)*g(n - 4)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (-8*n**3*x0**2 - 2*n**3*x1**2 + 64*n**2*x0**2 + 20*n**2*x1**2 - 164*n*x0**2 - 66*n*x1**2 + 132*x0**2 + 72*x1**2)*g(n - 3)/(x0**5 + 2*x0**3*x1**2 + x0*x1**4)" ] }, - "execution_count": 73, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "[math.factorial(2*n_v+1) for n_v in range(7)]" + "poly1 = sp.poly(r_new.subs(g(n-1), r_new_shifted_1), [g(n-2), g(n-3), g(n-4)])\n", + "new_recur = g(n-2) * poly1.coeffs()[0].subs((-1)**(2*n), 1) + g(n-3) * poly1.coeffs()[1].subs((-1)**(2*n), 1) + g(n-4) * poly1.coeffs()[2].subs((-1)**(2*n), 1)\n", + "new_recur" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ - "def evaluate_recurrence(coord_dict, rct_val, recur, p):\n", - " subs_dict = {}\n", - " subs_dict[g(0)] = derivs[0].subs(coord_dict).subs(rct, rct_val)\n", - " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", + "def compute_derivatives(p):\n", " var = _make_sympy_vec(\"x\", 2)\n", - " for i in range(2, p):\n", - " subs_dict[g(i)] = get_recurrence(recur.subs(rct, rct_val), i).subs(subs_dict).subs(coord_dict)\n", - " print(get_recurrence(recur.subs(rct, 1),i))\n", - " return np.array(list(subs_dict.values()))" + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "derivs = compute_derivatives(15)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -207,12 +163,13 @@ " subs_dict[g(-1)] = 0\n", " subs_dict[g(0)] = derivs[0].subs(coord_dict).subs(rct, rct_val)\n", " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", + " subs_dict[g(2)] = derivs[2].subs(coord_dict).subs(rct, rct_val) * rct_val**2\n", " var = _make_sympy_vec(\"x\", 2)\n", - " for i in range(2, p):\n", + " for i in range(3, p):\n", " exp = get_recurrence(recur.subs(rct, rct_val), i)\n", - " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3)], exp)\n", - " subs_dict[g(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[g(i-1)],\n", - " subs_dict[g(i-2)], subs_dict[g(i-3)])\n", + " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3), g(i-4)], exp)\n", + " subs_dict[g(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[g(i-1)], subs_dict[g(i-2)],\n", + " subs_dict[g(i-3)], subs_dict[g(i-4)])\n", " subs_dict.pop(g(-2))\n", " subs_dict.pop(g(-1))\n", " return np.array(list(subs_dict.values()))" @@ -220,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ @@ -235,19 +192,19 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 53, "metadata": {}, "outputs": [], "source": [ - "def compute_error(pw):\n", + "def compute_error(pw, recur):\n", " x_coord = 10**(-pw)\n", " y_coord = 1\n", " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", "\n", " rct_val = 1\n", - " exp = evaluate_recurrence_lamb(coord_dict, rct_val, r_new, 9)\n", - " true = evaluate_true(coord_dict, rct_val, 9)\n", + " exp = evaluate_recurrence_lamb(coord_dict, rct_val, recur, 10)\n", + " true = evaluate_true(coord_dict, rct_val, 10)\n", "\n", " print(true)\n", "\n", @@ -256,32 +213,62 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0.0000e+00 -1.0000e-08 1.0000e+00 6.0000e-08 -6.0000e+00 -1.2000e-06\n", + " 1.2000e+02 5.0400e-05 -5.0400e+03 -3.6288e-03]\n" + ] + }, + { + "data": { + "text/plain": [ + "array([nan, 0, 0, 0, 0, 0.0562597910563149, 0.466666666666666,\n", + " 160742260160899., 2.22222222222222e+15, 6.69759417337081e+29],\n", + " dtype=object)" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "compute_error(8, new_recur)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[ 0.00e+00 -1.00e-08 1.00e+00 6.00e-08 -6.00e+00 -1.20e-06 1.20e+02\n", - " 5.04e-05 -5.04e+03]\n" + "[ 0.0000e+00 -1.0000e-08 1.0000e+00 6.0000e-08 -6.0000e+00 -1.2000e-06\n", + " 1.2000e+02 5.0400e-05 -5.0400e+03 -3.6288e-03]\n" ] }, { "data": { "text/plain": [ - "array([nan, 0, 1.11022302462516e-16, 2.20581496680807e-16, 0,\n", - " 0.192092895507813, 0.576278686523440, 548836844308037.,\n", - " 2.74418422154019e+15], dtype=object)" + "array([nan, 0, 0, 0, 0, 0.192092895507813, 0.576278686523440,\n", + " 548836844308037., 2.74418422154019e+15, 2.28682018461682e+30],\n", + " dtype=object)" ] }, - "execution_count": 12, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error(8)" + "compute_error(8, r_new)" ] }, { @@ -316,7 +303,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -330,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -353,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -373,69 +360,56 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[5.00000041357686e-11 -9.99999999900000e-11 9.99999999700000e-11\n", - " 5.99999999800000e-20 -5.99999999400000e-20 -1.19999928158156e-28\n", - " 1.20000215021531e-28 8.61598124858447e-34 4.30496662438318e-33]\n", - "[ 5.00000041e-11 -1.00000000e-10 1.00000000e-10 6.00000000e-20\n", - " -5.99999999e-20 -1.20000000e-28 1.20000000e-28 5.03999999e-37\n", - " -5.03999998e-37]\n" - ] - }, - { - "data": { - "text/plain": [ - "array([0, 0, 1.29246970750185e-16, 4.01235405214419e-16,\n", - " 2.00617702740955e-16, 5.97982031121250e-7, 1.79394609774367e-6,\n", - " 1708.52009105628, 8542.60047595449], dtype=object)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "compute_error_using_specialized_formula(5, 25)" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 5.00000041e-11 -1.00000000e-05 1.00000000e+00 6.00000000e-05\n", - " -5.99999999e+00 -1.20000000e-03 1.20000000e+02 5.03999999e-02\n", - " -5.03999998e+03]\n" - ] - }, - { - "data": { - "text/plain": [ - "array([0, 0, 1.11022302495822e-16, 0, 4.44089210294152e-16,\n", - " 1.45828085314177e-7, 4.37484255134502e-7, 416.651671175665,\n", - " 2083.25836091981], dtype=object)" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "compute_error(5)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Avoiding Cat Cancel 1.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we have $x_0 << x_1$ then the following expressions are a good approximation\\\n", + "to coefficients for a Taylor expansion of a Laplace kernel at the origin with\\\n", + "source at $(x_0, x_1)$:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) + sp.diff(derivs[i], var[0], 1).subs(var[0], 0) * var[0] + sp.diff(derivs[i], var[0], 2).subs(var[0], 0) * var[0]**2 for i in range(0,15,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "[math.factorial(2*n_v+1) for n_v in range(7)]" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -484,13 +458,6 @@ "$$" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, @@ -512,20 +479,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'\\nx_plot = [i for i in range(len(compute_error(0)))]\\nfor i in range(1, 4):\\n plt.semilogy(x_plot, compute_error(i), label=str(10**(-i)))\\nplt.xlabel(\"order of derivative being computed\")\\nplt.ylabel(\"absolute error\")\\nplt.title(\"recurrence error vs order for different source-locations\")\\nplt.legend(title=\\'ratio of x_{coord_src}/y_{coord_src}\\')\\nplt.show()\\n'" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "'''\n", "x_plot = [i for i in range(len(compute_error(0)))]\n", From f317bf3a2e4883e343cc119ec559c3d46ad0fec2 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 1 Dec 2024 15:10:13 -0800 Subject: [PATCH 109/193] Heat map for error --- test/modified_recur.ipynb | 261 +++++++++++++++++++++++++++++--------- 1 file changed, 202 insertions(+), 59 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 6e6ef5033..39f60014d 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 48, "metadata": {}, "outputs": [], "source": [ @@ -18,12 +18,15 @@ "import sympy as sp\n", "import numpy as np\n", "\n", - "import math" + "import math\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm, ticker" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -34,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ @@ -54,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -63,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ @@ -77,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 53, "metadata": {}, "outputs": [ { @@ -89,7 +92,7 @@ "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 6, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -101,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -111,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 55, "metadata": {}, "outputs": [ { @@ -123,7 +126,7 @@ "(6*n**2*x0**4 + 3*n**2*x0**2*x1**2 + n**2*x1**4 - 26*n*x0**4 - 21*n*x0**2*x1**2 - 7*n*x1**4 + 26*x0**4 + 30*x0**2*x1**2 + 12*x1**4)*g(n - 2)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (3*n**4*x0**2 + n**4*x1**2 - 38*n**3*x0**2 - 14*n**3*x1**2 + 175*n**2*x0**2 + 73*n**2*x1**2 - 344*n*x0**2 - 168*n*x1**2 + 240*x0**2 + 144*x1**2)*g(n - 4)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (-8*n**3*x0**2 - 2*n**3*x1**2 + 64*n**2*x0**2 + 20*n**2*x1**2 - 164*n*x0**2 - 66*n*x1**2 + 132*x0**2 + 72*x1**2)*g(n - 3)/(x0**5 + 2*x0**3*x1**2 + x0*x1**4)" ] }, - "execution_count": 9, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } @@ -136,7 +139,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 56, "metadata": {}, "outputs": [], "source": [ @@ -153,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -177,7 +180,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 58, "metadata": {}, "outputs": [], "source": [ @@ -192,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 59, "metadata": {}, "outputs": [], "source": [ @@ -213,62 +216,64 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 60, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 0.0000e+00 -1.0000e-08 1.0000e+00 6.0000e-08 -6.0000e+00 -1.2000e-06\n", - " 1.2000e+02 5.0400e-05 -5.0400e+03 -3.6288e-03]\n" - ] - }, - { - "data": { - "text/plain": [ - "array([nan, 0, 0, 0, 0, 0.0562597910563149, 0.466666666666666,\n", - " 160742260160899., 2.22222222222222e+15, 6.69759417337081e+29],\n", - " dtype=object)" - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "compute_error(8, new_recur)" + "def compute_error_coord(recur, loc, order):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", + "\n", + " rct_val = 1\n", + " exp = evaluate_recurrence_lamb(coord_dict, rct_val, recur, order+1)\n", + " true = evaluate_true(coord_dict, rct_val, order+1)\n", + "\n", + " #print(true)\n", + "\n", + " return np.abs(exp-true)[order]/np.abs(true)[order]" ] }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 81, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 0.0000e+00 -1.0000e-08 1.0000e+00 6.0000e-08 -6.0000e+00 -1.2000e-06\n", - " 1.2000e+02 5.0400e-05 -5.0400e+03 -3.6288e-03]\n" - ] - }, { "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABj3ElEQVR4nO3de1yUZd4/8M/IYcADGCIoCuQ5RxR0xBJDQQsbPJSH1n12F9G01qCXKetT+vJXHh6V1srYEkzXLbNtN7LS9nHdEAuFZE1AcVOstEVBRRE0EVRAuH5/+DDrOAzOwMzcBz7v12teeV/36XuhNh+v+7rvWyOEECAiIiJSsQ5SF0BERETkaAw8REREpHoMPERERKR6DDxERESkegw8REREpHoMPERERKR6DDxERESkegw8REREpHoMPERERKR6DDxERHfZv38/NBoN9u/fL3UpNrt48SJeeOEF9O3bF56enggODsa8efNQUlIidWlEknOVugAiImq72tpajB07FlevXsWqVaug0+nwww8/YMWKFcjIyMDJkyfRpUsXqcskkgwDD8nWjRs30LFjR6nLMGpoaMDt27eh1WrN1smtVme5efMmPDw8oNFozNa19WfS0s+7rW7evAlPT0+7H7c5zvqzkZOTg1OnTmHr1q2YN28eACAqKgpeXl741a9+hX379mHatGkOr4NIrnhJi2Rh5cqV0Gg0OHLkCGbOnIkHHngA/fr1AwAIIZCWloawsDB4enrigQcewMyZM/Hvf//b7DhffvklJkyYAG9vb3Ts2BGDBw9GcnKycX1UVBSioqLM9pszZw4efPBB4/KZM2eg0Wiwfv16rFmzBn369IFWq0VWVpZdao2KikJISAjy8vIQGRmJjh07om/fvnjttdfQ2Nhosu3PP/+M3/3ud+jbty+0Wi38/PwQGxuL77//3rhNXV0d1qxZg4ceegharRbdu3fH3LlzcfnyZat+/vn5+Zg6dSp8fHzg4eGB4cOH45NPPjHZZtu2bdBoNNi7dy+eeeYZdO/eHR07dkRtba2xP9nZ2YiIiEDHjh3xzDPPAABKSkrwm9/8Bn5+ftBqtRg8eDDefPNNk3629PO25NatW1i2bBn69OkDd3d39OrVC4mJifj5559NtnvwwQcxefJkfP755xg+fDg8PDywatUqAMD333+PJ554Ah07doSvry8WLFiA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Ij09XQghxPnz50X37t3FzJkzxbfffit++uknkZGRIebOnStu377dbF+OHj0q3N3dxd/+9jchhBBbt24VXbp0ET/99JPF/ldUVIhu3bqJ6dOni7y8PPHjjz+K7du3i++//96q/tfU1IiePXuKGTNmiO+++058/fXXom/fviI+Pt54jvj4ePHkk0+anPf69evC19dX/Nd//Zc4ceKE+Pvf/y769+/POTxE7QgDD5ETFRUViYkTJ4ru3bsLrVYrBg4cKN555x3j+oaGBrFq1SrRq1cv4ebmJkJDQ8U//vEPk2N88803YujQocLDw0NERkaKHTt2WBV4bt68KRYvXix69uwp3N3dRf/+/cV7771nXP/jjz+KadOmia5duwpPT0/x0EMPiUWLFonGxsZmj6XT6cRzzz1n0j5t2jQRERFhMSQJIcSxY8dETEyM6Nixo+jSpYuIjIw0hiRr+v+vf/1LREdHCw8PD+Hj4yOeffZZcf36deP65gKPEEL885//FKGhocLd3V2EhYWJzz77jIGHqB3RCMGL20RERKRunMNDREREqsfAQ0RERKrHwENERESqx8BDREREqsfAQ0RERKrHwENERESqx8BDREREqsfAQ0RERKrHwENERESqx8BDREREqsfAQ0RERKr3/wFwWDF4XXpeZgAAAABJRU5ErkJggg==", "text/plain": [ - "array([nan, 0, 0, 0, 0, 0.192092895507813, 0.576278686523440,\n", - " 548836844308037., 2.74418422154019e+15, 2.28682018461682e+30],\n", - " dtype=object)" + "
" ] }, - "execution_count": 60, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "compute_error(8, r_new)" + "res = 10\n", + "x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + "y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + "res=len(x_grid)\n", + "order_plot = 8\n", + "plot_me = np.empty((res, res))\n", + "for i in range(res):\n", + " for j in range(res):\n", + " if abs(x_grid[i]) == abs(y_grid[j]):\n", + " plot_me[i, j] = 1e-16\n", + " else:\n", + " plot_me[i,j] = compute_error_coord(r_new, np.array([x_grid[i],y_grid[j]]), order_plot)\n", + " if plot_me[i,j] == 0:\n", + " plot_me[i, j] = 1e-16\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"recurrence error order = \"+str(order_plot))\n", + "plt.show()" ] }, { @@ -394,18 +399,156 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 66, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[log(sqrt(x0**2 + x1**2)),\n", + " -x0/(x0**2 + x1**2),\n", + " (-2*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2),\n", + " -2*x0*(4*x0**2/(x0**2 + x1**2) - 3)/(x0**2 + x1**2)**2,\n", + " 6*(-8*x0**4/(x0**2 + x1**2)**2 + 8*x0**2/(x0**2 + x1**2) - 1)/(x0**2 + x1**2)**2,\n", + " -24*x0*(16*x0**4/(x0**2 + x1**2)**2 - 20*x0**2/(x0**2 + x1**2) + 5)/(x0**2 + x1**2)**3,\n", + " 120*(-32*x0**6/(x0**2 + x1**2)**3 + 48*x0**4/(x0**2 + x1**2)**2 - 18*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2)**3,\n", + " -720*x0*(64*x0**6/(x0**2 + x1**2)**3 - 112*x0**4/(x0**2 + x1**2)**2 + 56*x0**2/(x0**2 + x1**2) - 7)/(x0**2 + x1**2)**4,\n", + " 5040*(-128*x0**8/(x0**2 + x1**2)**4 + 256*x0**6/(x0**2 + x1**2)**3 - 160*x0**4/(x0**2 + x1**2)**2 + 32*x0**2/(x0**2 + x1**2) - 1)/(x0**2 + x1**2)**4,\n", + " -40320*x0*(256*x0**8/(x0**2 + x1**2)**4 - 576*x0**6/(x0**2 + x1**2)**3 + 432*x0**4/(x0**2 + x1**2)**2 - 120*x0**2/(x0**2 + x1**2) + 9)/(x0**2 + x1**2)**5,\n", + " 362880*(-512*x0**10/(x0**2 + x1**2)**5 + 1280*x0**8/(x0**2 + x1**2)**4 - 1120*x0**6/(x0**2 + x1**2)**3 + 400*x0**4/(x0**2 + x1**2)**2 - 50*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2)**5,\n", + " -3628800*x0*(1024*x0**10/(x0**2 + x1**2)**5 - 2816*x0**8/(x0**2 + x1**2)**4 + 2816*x0**6/(x0**2 + x1**2)**3 - 1232*x0**4/(x0**2 + x1**2)**2 + 220*x0**2/(x0**2 + x1**2) - 11)/(x0**2 + x1**2)**6,\n", + " 39916800*(-2048*x0**12/(x0**2 + x1**2)**6 + 6144*x0**10/(x0**2 + x1**2)**5 - 6912*x0**8/(x0**2 + x1**2)**4 + 3584*x0**6/(x0**2 + x1**2)**3 - 840*x0**4/(x0**2 + x1**2)**2 + 72*x0**2/(x0**2 + x1**2) - 1)/(x0**2 + x1**2)**6,\n", + " -479001600*x0*(4096*x0**12/(x0**2 + x1**2)**6 - 13312*x0**10/(x0**2 + x1**2)**5 + 16640*x0**8/(x0**2 + x1**2)**4 - 9984*x0**6/(x0**2 + x1**2)**3 + 2912*x0**4/(x0**2 + x1**2)**2 - 364*x0**2/(x0**2 + x1**2) + 13)/(x0**2 + x1**2)**7,\n", + " 6227020800*(-8192*x0**14/(x0**2 + x1**2)**7 + 28672*x0**12/(x0**2 + x1**2)**6 - 39424*x0**10/(x0**2 + x1**2)**5 + 26880*x0**8/(x0**2 + x1**2)**4 - 9408*x0**6/(x0**2 + x1**2)**3 + 1568*x0**4/(x0**2 + x1**2)**2 - 98*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2)**7]" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) + sp.diff(derivs[i], var[0], 1).subs(var[0], 0) * var[0] + sp.diff(derivs[i], var[0], 2).subs(var[0], 0) * var[0]**2 for i in range(0,15,1)]" + "[sp.diff(derivs[i], var[0], 0) for i in range(0,15,1)]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 67, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[log(sqrt(x1**2)),\n", + " 0,\n", + " x1**(-2),\n", + " 0,\n", + " -6/x1**4,\n", + " 0,\n", + " 120/x1**6,\n", + " 0,\n", + " -5040/x1**8,\n", + " 0,\n", + " 362880/x1**10,\n", + " 0,\n", + " -39916800/x1**12,\n", + " 0,\n", + " 6227020800/x1**14]" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) for i in range(0,15,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[x1**(-2),\n", + " 0,\n", + " -6/x1**4,\n", + " 0,\n", + " 120/x1**6,\n", + " 0,\n", + " -5040/x1**8,\n", + " 0,\n", + " 362880/x1**10,\n", + " 0,\n", + " -39916800/x1**12,\n", + " 0,\n", + " 6227020800/x1**14,\n", + " 0,\n", + " -1307674368000/x1**16]" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[sp.diff(derivs[i], var[0], 2).subs(var[0], 0) for i in range(0,15,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-6/x1**4,\n", + " 0,\n", + " 120/x1**6,\n", + " 0,\n", + " -5040/x1**8,\n", + " 0,\n", + " 362880/x1**10,\n", + " 0,\n", + " -39916800/x1**12,\n", + " 0,\n", + " 6227020800/x1**14,\n", + " 0,\n", + " -1307674368000/x1**16,\n", + " 0,\n", + " 355687428096000/x1**18]" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[sp.diff(derivs[i], var[0], 4).subs(var[0], 0) for i in range(0,15,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 6, 120, 5040, 362880, 39916800, 6227020800]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "[math.factorial(2*n_v+1) for n_v in range(7)]" ] From 0f94ee44691a38ecde190ddbdc75f5f5889a56f5 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 1 Dec 2024 15:40:40 -0800 Subject: [PATCH 110/193] Heat map updated --- test/modified_recur.ipynb | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 39f60014d..d58bd5e2e 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 48, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -57,7 +57,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -80,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -92,7 +92,7 @@ "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 53, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -104,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -114,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -126,7 +126,7 @@ "(6*n**2*x0**4 + 3*n**2*x0**2*x1**2 + n**2*x1**4 - 26*n*x0**4 - 21*n*x0**2*x1**2 - 7*n*x1**4 + 26*x0**4 + 30*x0**2*x1**2 + 12*x1**4)*g(n - 2)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (3*n**4*x0**2 + n**4*x1**2 - 38*n**3*x0**2 - 14*n**3*x1**2 + 175*n**2*x0**2 + 73*n**2*x1**2 - 344*n*x0**2 - 168*n*x1**2 + 240*x0**2 + 144*x1**2)*g(n - 4)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (-8*n**3*x0**2 - 2*n**3*x1**2 + 64*n**2*x0**2 + 20*n**2*x1**2 - 164*n*x0**2 - 66*n*x1**2 + 132*x0**2 + 72*x1**2)*g(n - 3)/(x0**5 + 2*x0**3*x1**2 + x0*x1**4)" ] }, - "execution_count": 55, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -139,7 +139,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -156,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -180,7 +180,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -195,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -216,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -235,7 +235,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 17, "metadata": {}, "outputs": [ { From 6f86adcb52e086fc6e01ca54f9abb9a33961770c Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 2 Dec 2024 08:05:32 -0600 Subject: [PATCH 111/193] Helmholtz Recurrence Error --- test/modified_recur.ipynb | 380 +++++++++++++++++++++----------------- 1 file changed, 210 insertions(+), 170 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index d58bd5e2e..ef6004109 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 63, "metadata": {}, "outputs": [], "source": [ @@ -16,6 +16,8 @@ "from sumpy.recurrence import get_recurrence\n", "\n", "import sympy as sp\n", + "from sympy import hankel1\n", + "\n", "import numpy as np\n", "\n", "import math\n", @@ -26,18 +28,22 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "w = make_identity_diff_op(2)\n", "laplace2d = laplacian(w)\n", - "n_init, order, r = get_processed_and_shifted_recurrence(laplace2d)" + "n_init, order, r = get_processed_and_shifted_recurrence(laplace2d)\n", + "\n", + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "n_init, _, recur_helmholtz = get_processed_and_shifted_recurrence(helmholtz2d)" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ @@ -57,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 66, "metadata": {}, "outputs": [], "source": [ @@ -66,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ @@ -74,13 +80,23 @@ "var = _make_sympy_vec(\"x\", 2)\n", "rct = sp.symbols(\"r_{ct}\")\n", "g = sp.Function(\"g\")\n", + "s = sp.Function(\"s\")\n", "n = sp.symbols(\"n\")\n", "coord_dict = {var[0]: 1, var[1]: 1}" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "r_new_helmholtz = recur_helmholtz.subs(s, g)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, "metadata": {}, "outputs": [ { @@ -92,7 +108,7 @@ "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" ] }, - "execution_count": 7, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -104,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 70, "metadata": {}, "outputs": [], "source": [ @@ -114,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 71, "metadata": {}, "outputs": [ { @@ -126,7 +142,7 @@ "(6*n**2*x0**4 + 3*n**2*x0**2*x1**2 + n**2*x1**4 - 26*n*x0**4 - 21*n*x0**2*x1**2 - 7*n*x1**4 + 26*x0**4 + 30*x0**2*x1**2 + 12*x1**4)*g(n - 2)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (3*n**4*x0**2 + n**4*x1**2 - 38*n**3*x0**2 - 14*n**3*x1**2 + 175*n**2*x0**2 + 73*n**2*x1**2 - 344*n*x0**2 - 168*n*x1**2 + 240*x0**2 + 144*x1**2)*g(n - 4)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (-8*n**3*x0**2 - 2*n**3*x1**2 + 64*n**2*x0**2 + 20*n**2*x1**2 - 164*n*x0**2 - 66*n*x1**2 + 132*x0**2 + 72*x1**2)*g(n - 3)/(x0**5 + 2*x0**3*x1**2 + x0*x1**4)" ] }, - "execution_count": 9, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } @@ -139,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 72, "metadata": {}, "outputs": [], "source": [ @@ -151,28 +167,45 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "derivs = compute_derivatives(15)" + "derivs = compute_derivatives(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [], + "source": [ + "k = 1\n", + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + "derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(7)]" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 79, "metadata": {}, "outputs": [], "source": [ - "def evaluate_recurrence_lamb(coord_dict, rct_val, recur, p):\n", + "def evaluate_recurrence_lamb(coord_dict, rct_val, recur, p, derivs_list):\n", " subs_dict = {}\n", " subs_dict[g(-2)] = 0\n", " subs_dict[g(-1)] = 0\n", - " subs_dict[g(0)] = derivs[0].subs(coord_dict).subs(rct, rct_val)\n", - " subs_dict[g(1)] = derivs[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", - " subs_dict[g(2)] = derivs[2].subs(coord_dict).subs(rct, rct_val) * rct_val**2\n", + " subs_dict[g(0)] = derivs_list[0].subs(coord_dict).subs(rct, rct_val)\n", + " subs_dict[g(1)] = derivs_list[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", + " subs_dict[g(2)] = derivs_list[2].subs(coord_dict).subs(rct, rct_val) * rct_val**2\n", " var = _make_sympy_vec(\"x\", 2)\n", " for i in range(3, p):\n", " exp = get_recurrence(recur.subs(rct, rct_val), i)\n", - " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3), g(i-4)], exp)\n", + " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3), g(i-4), g(i-5)], exp)\n", " subs_dict[g(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[g(i-1)], subs_dict[g(i-2)],\n", - " subs_dict[g(i-3)], subs_dict[g(i-4)])\n", + " subs_dict[g(i-3)], subs_dict[g(i-4)], subs_dict[g(i-5)])\n", " subs_dict.pop(g(-2))\n", " subs_dict.pop(g(-1))\n", " return np.array(list(subs_dict.values()))" @@ -180,14 +213,14 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 80, "metadata": {}, "outputs": [], "source": [ - "def evaluate_true(coord_dict, rct_val, p):\n", + "def evaluate_true(coord_dict, rct_val, p, derivs_list):\n", " retMe = []\n", " for i in range(p):\n", - " exp = (derivs[i]*rct_val**i)\n", + " exp = (derivs_list[i]*rct_val**i)\n", " f = sp.lambdify(var, exp)\n", " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", " return np.array(retMe)" @@ -195,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 81, "metadata": {}, "outputs": [], "source": [ @@ -209,38 +242,35 @@ " exp = evaluate_recurrence_lamb(coord_dict, rct_val, recur, 10)\n", " true = evaluate_true(coord_dict, rct_val, 10)\n", "\n", - " print(true)\n", - "\n", " return np.abs(exp-true)/np.abs(true)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 82, "metadata": {}, "outputs": [], "source": [ - "def compute_error_coord(recur, loc, order):\n", + "def compute_error_coord(recur, loc, order, derivs_list):\n", " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", "\n", " rct_val = 1\n", - " exp = evaluate_recurrence_lamb(coord_dict, rct_val, recur, order+1)\n", - " true = evaluate_true(coord_dict, rct_val, order+1)\n", + " exp = evaluate_recurrence_lamb(coord_dict, rct_val, recur, order+1, derivs_list)[order].evalf()\n", + " \n", + " true = derivs_list[order].subs(coord_dict).evalf()\n", "\n", - " #print(true)\n", - "\n", - " return np.abs(exp-true)[order]/np.abs(true)[order]" + " return (np.abs(exp-true)/np.abs(true))" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 86, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABj3ElEQVR4nO3de1yUZd4/8M/IYcADGCIoCuQ5RxR0xBJDQQsbPJSH1n12F9G01qCXKetT+vJXHh6V1srYEkzXLbNtN7LS9nHdEAuFZE1AcVOstEVBRRE0EVRAuH5/+DDrOAzOwMzcBz7v12teeV/36XuhNh+v+7rvWyOEECAiIiJSsQ5SF0BERETkaAw8REREpHoMPERERKR6DDxERESkegw8REREpHoMPERERKR6DDxERESkegw8REREpHoMPERERKR6DDxERHfZv38/NBoN9u/fL3UpNrt48SJeeOEF9O3bF56enggODsa8efNQUlIidWlEknOVugAiImq72tpajB07FlevXsWqVaug0+nwww8/YMWKFcjIyMDJkyfRpUsXqcskkgwDD8nWjRs30LFjR6nLMGpoaMDt27eh1WrN1smtVme5efMmPDw8oNFozNa19WfS0s+7rW7evAlPT0+7H7c5zvqzkZOTg1OnTmHr1q2YN28eACAqKgpeXl741a9+hX379mHatGkOr4NIrnhJi2Rh5cqV0Gg0OHLkCGbOnIkHHngA/fr1AwAIIZCWloawsDB4enrigQcewMyZM/Hvf//b7DhffvklJkyYAG9vb3Ts2BGDBw9GcnKycX1UVBSioqLM9pszZw4efPBB4/KZM2eg0Wiwfv16rFmzBn369IFWq0VWVpZdao2KikJISAjy8vIQGRmJjh07om/fvnjttdfQ2Nhosu3PP/+M3/3ud+jbty+0Wi38/PwQGxuL77//3rhNXV0d1qxZg4ceegharRbdu3fH3LlzcfnyZat+/vn5+Zg6dSp8fHzg4eGB4cOH45NPPjHZZtu2bdBoNNi7dy+eeeYZdO/eHR07dkRtba2xP9nZ2YiIiEDHjh3xzDPPAABKSkrwm9/8Bn5+ftBqtRg8eDDefPNNk3629PO25NatW1i2bBn69OkDd3d39OrVC4mJifj5559NtnvwwQcxefJkfP755xg+fDg8PDywatUqAMD333+PJ554Ah07doSvry8WLFiA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Ij09XQghxPnz50X37t3FzJkzxbfffit++uknkZGRIebOnStu377dbF+OHj0q3N3dxd/+9jchhBBbt24VXbp0ET/99JPF/ldUVIhu3bqJ6dOni7y8PPHjjz+K7du3i++//96q/tfU1IiePXuKGTNmiO+++058/fXXom/fviI+Pt54jvj4ePHkk0+anPf69evC19dX/Nd//Zc4ceKE+Pvf/y769+/POTxE7QgDD5ETFRUViYkTJ4ru3bsLrVYrBg4cKN555x3j+oaGBrFq1SrRq1cv4ebmJkJDQ8U//vEPk2N88803YujQocLDw0NERkaKHTt2WBV4bt68KRYvXix69uwp3N3dRf/+/cV7771nXP/jjz+KadOmia5duwpPT0/x0EMPiUWLFonGxsZmj6XT6cRzzz1n0j5t2jQRERFhMSQJIcSxY8dETEyM6Nixo+jSpYuIjIw0hiRr+v+vf/1LREdHCw8PD+Hj4yOeffZZcf36deP65gKPEEL885//FKGhocLd3V2EhYWJzz77jIGHqB3RCMGL20RERKRunMNDREREqsfAQ0RERKrHwENERESqx8BDREREqsfAQ0RERKrHwENERESqx8BDREREqsfAQ0RERKrHwENERESqx8BDREREqsfAQ0RERKr3/wFwWDF4XXpeZgAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABn40lEQVR4nO3de1xUdeL/8ffIZQAVDFEUEcJrEoo6YgmiookNXspL6+4WoWJl0M9V1kof/bzkppSVuSWYrmtku9+NtKT9moVUKiZrCYqbYqUtCiqK4AVBBYTP7w9/zDrOhbmcmTkzvJ+Pxzxqzpw58zl4mZfnqhBCCBARERG5sHaOHgARERGRrTF4iIiIyOUxeIiIiMjlMXiIiIjI5TF4iIiIyOUxeIiIiMjlMXiIiIjI5TF4iIiIyOUxeIiIiMjlMXicUFZWFhQKBQoLC/W+PmnSJNx///1a0+6//34oFAq9jzFjxpi8bAA4ffq05r0rVqzQO8+cOXM089xtzJgxiIiI0Pueqqoqg8s8ceIEZs2ahZCQEHh6eiIgIAAJCQn48ssvdebdu3cvFAoFtm/fbvLP4O5HVlYWZs2a1ep89/6MieSq5c/E3r17HT0Ui5w5cwZz5sxBUFAQlEolevTogalTpzp6WORk3B09ALKfmJgYvPXWWzrTfX19LVpex44dkZWVhWXLlqFdu/+2c21tLbZt2wZfX1/U1NRYPN4Wn332GX7/+9+jV69eWLp0Kfr374+LFy/igw8+QEJCAl588UWsWbOm1eXs2LED9fX1muebN2/GX//6V3z11Vfw8/PTTO/duzdiY2Mxb948vcvJysrCxo0b+RcukR0cO3YMY8aMQa9evfDWW28hODgYFRUVyM3NdfTQyMkweNqQTp064eGHH5ZseTNnzsTmzZvxzTffYPz48Zrp2dnZaGpqwuOPP46//e1vVn3Gr7/+isTERAwcOBB79+5F+/btNa898cQTeP755/Hmm29i6NCh+O1vf2t0WUOGDNF6/tVXXwEAVCoVAgICtF7r0qULevfurbOMgwcP4oMPPsCoUaPw5ptvmr0+N27cgI+Pj9nvs5Wmpibcvn0bSqVS5zW5jdVebt68CS8vL52tk4D1PxNjP29r3bx5E97e3pIvVx97/d4QQiAxMRE9e/bE/v37tX5uM2fOtPnnk2vhLi2yWP/+/REdHY0tW7ZoTd+yZQumTZumtdXEUu+88w5u3LiB9957Tyt2Wrz99tvo1KkTVq1aZfVntebChQuYPn06unTpgk8++QTu7sb/vbBixQooFAocPnwYM2bMwH333aeJKCEEMjMzMXjwYHh7e+O+++7DjBkz8J///EdnOV999RXGjRsHPz8/+Pj4YMCAAUhPT9e8PmbMGK3dki1mzZqltdutZVfkmjVr8NprryEsLAxKpRJ79uyRZKwtuysPHTqE2NhY+Pj4oFevXnj99dfR3NysNe/Vq1fxxz/+Eb169YJSqUTXrl2RkJCAn376STNPQ0MDXnvtNTzwwANQKpXo0qULZs+ejUuXLhn9ubcoLCzElClT4O/vDy8vLwwZMgSffPKJ1jwtu3B3796NOXPmoEuXLvDx8UF9fb1mffLz8xEdHQ0fHx/MmTMHAFBWVoannnoKXbt2hVKpxIABA/D2229rraexn7cht27dwpIlSxAWFgZPT0/06NEDqampuHr1qtZ8999/PyZNmoTPPvsMQ4YMgZeXF1599VUAwE8//YRHH30UPj4+CAgIwLx583D9+nW9n/f1119j3Lhx8PX1hY+PD2JiYvDNN99ozWPs94at5efno7i4GAsWLLBJJFLbwuBxYi3/Wrz3IYTQO78Qwqz5TZGcnIycnBxcuXIFAPDzzz+joKAAycnJRt+nbxxNTU068+Xl5SEwMNDglikfHx/Ex8fj2LFjuHDhgsXr0ZrGxkY88cQTqKqqwvbt2xEYGGjye6dNm4Y+ffpg27ZteP/99wEAzz33HBYsWIBHHnkEOTk5yMzMxPHjxxEdHY2LFy9q3vvXv/4VCQkJaG5uxvvvv4///d//xfz583H27FmL1+Xdd9/Ft99+i7feegtffvklHnjgAUnGCtyJwieffBJPPfUU/vnPf0KtVmPJkiVaW/quX7+OkSNHYuPGjZg9ezb+93//F++//z769euHiooKAEBzczMee+wxvP766/j973+PL774Aq+//jry8vIwZswY3Lx50+g67tmzBzExMbh69Sref/99fP755xg8eDBmzpyJrKwsnfnnzJkDDw8PfPTRR9i+fTs8PDwAABUVFXjqqafw+9//Hrt27UJKSgouXbqE6Oho7N69G3/605/wz3/+E4888ggWLVqEF154wayf992EEHj88cfx1ltvITExEV988QXS0tLw4YcfYuzY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", "text/plain": [ "
" ] @@ -250,18 +280,18 @@ } ], "source": [ - "res = 10\n", + "res = 5\n", "x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", "y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", "res=len(x_grid)\n", - "order_plot = 8\n", + "order_plot = 6\n", "plot_me = np.empty((res, res))\n", "for i in range(res):\n", " for j in range(res):\n", " if abs(x_grid[i]) == abs(y_grid[j]):\n", " plot_me[i, j] = 1e-16\n", " else:\n", - " plot_me[i,j] = compute_error_coord(r_new, np.array([x_grid[i],y_grid[j]]), order_plot)\n", + " plot_me[i,j] = compute_error_coord(r_new_helmholtz, np.array([x_grid[i],y_grid[j]]), order_plot, derivs_helmholtz)\n", " if plot_me[i,j] == 0:\n", " plot_me[i, j] = 1e-16\n", " \n", @@ -272,7 +302,7 @@ "plt.gca().set_yscale('log')\n", "plt.xlabel(\"source x-coord\")\n", "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"recurrence error order = \"+str(order_plot))\n", + "plt.title(\"HELMHOLTZ recurrence error order = \"+str(order_plot))\n", "plt.show()" ] }, @@ -363,13 +393,37 @@ " return np.abs(exp-true)/np.abs(true)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Avoiding Cat Cancel 1.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we have $x_0 << x_1$ then the following expressions are a good approximation\\\n", + "to coefficients for a Taylor expansion of a Laplace kernel at the origin with\\\n", + "source at $(x_0, x_1)$:" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "compute_error_using_specialized_formula(5, 25)" + "k = 1\n", + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + "derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(7)]" ] }, { @@ -378,181 +432,145 @@ "metadata": {}, "outputs": [], "source": [ - "compute_error(5)" + "[sp.diff(derivs[i], var[0], 0) for i in range(0,15,1)]" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ - "# Avoiding Cat Cancel 1.5" + "[sp.diff(derivs_helmholtz[i], var[0], 0) for i in range(0,7,1)]" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ - "If we have $x_0 << x_1$ then the following expressions are a good approximation\\\n", - "to coefficients for a Taylor expansion of a Laplace kernel at the origin with\\\n", - "source at $(x_0, x_1)$:" + "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) for i in range(0,15,1)]" ] }, { "cell_type": "code", - "execution_count": 66, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[log(sqrt(x0**2 + x1**2)),\n", - " -x0/(x0**2 + x1**2),\n", - " (-2*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2),\n", - " -2*x0*(4*x0**2/(x0**2 + x1**2) - 3)/(x0**2 + x1**2)**2,\n", - " 6*(-8*x0**4/(x0**2 + x1**2)**2 + 8*x0**2/(x0**2 + x1**2) - 1)/(x0**2 + x1**2)**2,\n", - " -24*x0*(16*x0**4/(x0**2 + x1**2)**2 - 20*x0**2/(x0**2 + x1**2) + 5)/(x0**2 + x1**2)**3,\n", - " 120*(-32*x0**6/(x0**2 + x1**2)**3 + 48*x0**4/(x0**2 + x1**2)**2 - 18*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2)**3,\n", - " -720*x0*(64*x0**6/(x0**2 + x1**2)**3 - 112*x0**4/(x0**2 + x1**2)**2 + 56*x0**2/(x0**2 + x1**2) - 7)/(x0**2 + x1**2)**4,\n", - " 5040*(-128*x0**8/(x0**2 + x1**2)**4 + 256*x0**6/(x0**2 + x1**2)**3 - 160*x0**4/(x0**2 + x1**2)**2 + 32*x0**2/(x0**2 + x1**2) - 1)/(x0**2 + x1**2)**4,\n", - " -40320*x0*(256*x0**8/(x0**2 + x1**2)**4 - 576*x0**6/(x0**2 + x1**2)**3 + 432*x0**4/(x0**2 + x1**2)**2 - 120*x0**2/(x0**2 + x1**2) + 9)/(x0**2 + x1**2)**5,\n", - " 362880*(-512*x0**10/(x0**2 + x1**2)**5 + 1280*x0**8/(x0**2 + x1**2)**4 - 1120*x0**6/(x0**2 + x1**2)**3 + 400*x0**4/(x0**2 + x1**2)**2 - 50*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2)**5,\n", - " -3628800*x0*(1024*x0**10/(x0**2 + x1**2)**5 - 2816*x0**8/(x0**2 + x1**2)**4 + 2816*x0**6/(x0**2 + x1**2)**3 - 1232*x0**4/(x0**2 + x1**2)**2 + 220*x0**2/(x0**2 + x1**2) - 11)/(x0**2 + x1**2)**6,\n", - " 39916800*(-2048*x0**12/(x0**2 + x1**2)**6 + 6144*x0**10/(x0**2 + x1**2)**5 - 6912*x0**8/(x0**2 + x1**2)**4 + 3584*x0**6/(x0**2 + x1**2)**3 - 840*x0**4/(x0**2 + x1**2)**2 + 72*x0**2/(x0**2 + x1**2) - 1)/(x0**2 + x1**2)**6,\n", - " -479001600*x0*(4096*x0**12/(x0**2 + x1**2)**6 - 13312*x0**10/(x0**2 + x1**2)**5 + 16640*x0**8/(x0**2 + x1**2)**4 - 9984*x0**6/(x0**2 + x1**2)**3 + 2912*x0**4/(x0**2 + x1**2)**2 - 364*x0**2/(x0**2 + x1**2) + 13)/(x0**2 + x1**2)**7,\n", - " 6227020800*(-8192*x0**14/(x0**2 + x1**2)**7 + 28672*x0**12/(x0**2 + x1**2)**6 - 39424*x0**10/(x0**2 + x1**2)**5 + 26880*x0**8/(x0**2 + x1**2)**4 - 9408*x0**6/(x0**2 + x1**2)**3 + 1568*x0**4/(x0**2 + x1**2)**2 - 98*x0**2/(x0**2 + x1**2) + 1)/(x0**2 + x1**2)**7]" - ] - }, - "execution_count": 66, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "[sp.diff(derivs[i], var[0], 0) for i in range(0,15,1)]" + "a1 = [sp.diff(derivs_helmholtz[i], var[0], 0).subs(var[0], 0) for i in range(0,7,1)]\n", + "a1" ] }, { "cell_type": "code", - "execution_count": 67, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[log(sqrt(x1**2)),\n", - " 0,\n", - " x1**(-2),\n", - " 0,\n", - " -6/x1**4,\n", - " 0,\n", - " 120/x1**6,\n", - " 0,\n", - " -5040/x1**8,\n", - " 0,\n", - " 362880/x1**10,\n", - " 0,\n", - " -39916800/x1**12,\n", - " 0,\n", - " 6227020800/x1**14]" - ] - }, - "execution_count": 67, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) for i in range(0,15,1)]" + "r1 = sp.simplify(a1[0])\n", + "sp.diff(r1, var[1])" ] }, { "cell_type": "code", - "execution_count": 68, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[x1**(-2),\n", - " 0,\n", - " -6/x1**4,\n", - " 0,\n", - " 120/x1**6,\n", - " 0,\n", - " -5040/x1**8,\n", - " 0,\n", - " 362880/x1**10,\n", - " 0,\n", - " -39916800/x1**12,\n", - " 0,\n", - " 6227020800/x1**14,\n", - " 0,\n", - " -1307674368000/x1**16]" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "r2 = sp.simplify(a1[2])\n", + "sp.diff(r2, var[1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sp.simplify(a1[4])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "[sp.diff(derivs[i], var[0], 2).subs(var[0], 0) for i in range(0,15,1)]" ] }, { "cell_type": "code", - "execution_count": 69, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[-6/x1**4,\n", - " 0,\n", - " 120/x1**6,\n", - " 0,\n", - " -5040/x1**8,\n", - " 0,\n", - " 362880/x1**10,\n", - " 0,\n", - " -39916800/x1**12,\n", - " 0,\n", - " 6227020800/x1**14,\n", - " 0,\n", - " -1307674368000/x1**16,\n", - " 0,\n", - " 355687428096000/x1**18]" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "a = [sp.diff(derivs_helmholtz[i], var[0], 2).subs(var[0], 0) for i in range(0,7,1)]\n", + "a" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sp.simplify(a[0])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sp.simplify(a[2])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "[sp.diff(derivs[i], var[0], 4).subs(var[0], 0) for i in range(0,15,1)]" ] }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 6, 120, 5040, 362880, 39916800, 6227020800]" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "[sp.diff(derivs_helmholtz[i], var[0], 4).subs(var[0], 0) for i in range(0,4,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "[math.factorial(2*n_v+1) for n_v in range(7)]" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose\n", + "$$\n", + "f(n) = f(n-2) (2n+1)(2n) = 4n^2 f(n-2) - 2n f(n-1)\n", + "$$\n", + "what PDE do we satisfy? This isn't obvious since\n", + "$$\n", + "y = c y'' - dy'\n", + "$$\n", + "something of that form. What if it's just the old recurrence but simplified??? When $x_0 << 1$?\n" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -637,6 +655,28 @@ "plt.show()\n", "'''" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we have a relation\n", + "$$\n", + "f(1, x_0, x_1) g_1(x_0, x_1) + f(2, x_0, x_1) g_2(x_0, x_1) = 0\n", + "$$\n", + "and we know that\n", + "$$\n", + "f(1, x_0, x_1) = f_0(x_1) + f_1(x_1) x_0 + f_2(x_1) \\frac{x_0^2}{2}\n", + "$$\n", + "$$\n", + "f(2, x_0, x_1) = f_0(x_1) + f_1(x_1) x_0 + f_2(x_1) \\frac{x_0^2}{2}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] } ], "metadata": { From c0965cdd2e348c465012c3ea3a5c85c5553341f1 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 6 Dec 2024 17:46:39 -0600 Subject: [PATCH 112/193] Created notebook to perform recurrence on taylor series --- test/modified_recur.ipynb | 11 +- test/taylor_recurrence.ipynb | 339 +++++++++++++++++++++++++++++++++++ 2 files changed, 349 insertions(+), 1 deletion(-) create mode 100644 test/taylor_recurrence.ipynb diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index ef6004109..c80b08881 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -94,6 +94,15 @@ "r_new_helmholtz = recur_helmholtz.subs(s, g)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "r_new_helmholtz = recur_helmholtz.subs(s, g)" + ] + }, { "cell_type": "code", "execution_count": 69, @@ -681,7 +690,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "inteq", "language": "python", "name": "python3" }, diff --git a/test/taylor_recurrence.ipynb b/test/taylor_recurrence.ipynb new file mode 100644 index 000000000..91c4933bf --- /dev/null +++ b/test/taylor_recurrence.ipynb @@ -0,0 +1,339 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Part 1: Generalizing the Recurrence:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If\n", + "$$\n", + "s(n, \\textbf{x}) = \\frac{d^n}{d\\textbf{t}^n}|_{\\textbf{t}=0} G(\\textbf{x}, \\textbf{t}) \\cdot \\hat{\\textbf{i}}\n", + "$$\n", + "We claim that we can write\n", + "$$\n", + "s(n, \\textbf{x}) = \\sum_{i=0}^{i=k} \\frac{s_{n,i}(x_1)}{i!} x_0^i\n", + "$$\n", + "where $k$ is some constant chosen beforehand. And more-over there exists a $\\textbf{vector}?$ (rather than scalar) recurrence for the $\\{s_{n,i}\\}_{n=0}^{n=\\infty}$ where $i \\in \\{0, \\dots, k\\}$. This is a straightforward plug-and-chug. See below for an example:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we are given the recurrence where $\\textbf{x} = (x_0, x_1)$\n", + "$$\n", + "(x_0^3 + x_0 x_1^2) s(n)- (3nx_0^2 + nx_1^2 - 5x_0^2 - 3x_1^2)s(n-1) + (3n^2x_0 - 13nx_0 + 14x_0)s(n-2) - (n^3-8n^2+21n-18) s(n-3) = 0\n", + "$$\n", + "Then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(x_0^3 + x_0 x_1^2) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n,i}(x_1)}{i!} x_0^i\\right)- ((3n-5)x_0^2 + nx_1^2 - 3x_1^2)\\left(\\sum_{i=0}^{i=k} \\frac{s_{n-1,i}(x_1)}{i!} x_0^i \\right) + \\\\\n", + "(3n^2 - 13n+14)x_0 \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-2,i}(x_1)}{i!} x_0^i \\right) - (n^3-8n^2+21n-18) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-3,i}(x_1)}{i!} x_0^i \\right) = 0\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are going to break the simplifcation of the above expression into 4 parts:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(x_0^3 + x_0 x_1^2) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n,i}(x_1)}{i!} x_0^i\\right) = \\sum_{i=3}^{i=k+3} \\frac{s_{n,i-3}(x_1)}{(i-3)!} x_0^{i} +\\sum_{i=1}^{i=k+1} \\frac{x_1^2s_{n,i-1}(x_1)}{(i-1)!} x_0^{i}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "- ((3n-5)x_0^2 + nx_1^2 - 3x_1^2)\\left(\\sum_{i=0}^{i=k} \\frac{s_{n-1,i}(x_1)}{i!} x_0^i \\right) = (5-3n) \\sum_{i=2}^{i=k+2} \\frac{s_{n-1,i-2}(x_1)}{(i-2)!} x_0^{i} + \\sum_{i=0}^{i=k} \\frac{(3-n)x_1^2 s_{n-1,i}(x_1)}{i!} x_0^{i}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(3n^2 - 13n+14)x_0 \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-2,i}(x_1)}{i!} x_0^i \\right) = (3n^2 - 13n+14) \\left(\\sum_{i=1}^{i=k+1} \\frac{s_{n-2,i-1}(x_1)}{(i-1)!} x_0^i \\right)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "-(n^3-8n^2+21n-18) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-3,i}(x_1)}{i!} x_0^i \\right)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Summing the terms we get the following vector recurrence:\n", + "$$\n", + "\\frac{s_{n,i-3}(x_1)}{(i-3)!} + \\frac{x_1^2s_{n,i-1}(x_1)}{(i-1)!} = \\\\\n", + "(3n-5) \\frac{s_{n-1,i-2}(x_1)}{(i-2)!} - \\frac{(3-n)x_1^2 s_{n-1,i}(x_1)}{i!} - (3n^2 - 13n+14)\\frac{s_{n-2,i-1}(x_1)}{(i-1)!} + (n^3-8n^2+21n-18) \\frac{s_{n-3,i}(x_1)}{i!} \n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Part 2: Testing The Recurrence" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "\n", + "from sumpy.recurrence import get_recurrence\n", + "\n", + "import sympy as sp\n", + "from sympy import hankel1\n", + "\n", + "import numpy as np\n", + "\n", + "import math\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm, ticker" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "\n", + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives_h2d(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + " derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs_helmholtz" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "derivs = compute_derivatives_h2d(7)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0.25 i H^{(1)}_{0}\\left(6 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)$" + ], + "text/plain": [ + "0.25*I*hankel1(0, 6*sqrt(x0**2 + x1**2))" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "derivs[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "s = sp.Function(\"s\")\n", + "n = sp.symbols(\"n\")\n", + "var = _make_sympy_vec(\"x\", 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "order_of_rep = 4" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.25*I*hankel1(0, 6*sqrt(x1**2)),\n", + " 0,\n", + " 0.75*I*(hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/sqrt(x1**2),\n", + " 0]" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[sp.diff(derivs[0], var[0], i).subs(var[0], 0) for i in range(0,order_of_rep,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0,\n", + " -1.5*I*(hankel1(-1, 6*sqrt(x1**2))/2 - hankel1(1, 6*sqrt(x1**2))/2)/sqrt(x1**2),\n", + " 0,\n", + " I*(-(6.75*(hankel1(-2, 6*sqrt(x1**2)) - hankel1(0, 6*sqrt(x1**2)))/sqrt(x1**2) - 6.75*(hankel1(0, 6*sqrt(x1**2)) - hankel1(2, 6*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) + 2.25*(hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/(x1**2)**(3/2))]" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[sp.diff(derivs[1], var[0], i).subs(var[0], 0) for i in range(0,order_of_rep,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.75*I*(hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/sqrt(x1**2),\n", + " 0,\n", + " 2.25*I*(((hankel1(-2, 6*sqrt(x1**2)) - hankel1(0, 6*sqrt(x1**2)))/sqrt(x1**2) - (hankel1(0, 6*sqrt(x1**2)) - hankel1(2, 6*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/(x1**2)**(3/2) + 2*(hankel1(-2, 6*sqrt(x1**2)) - 2*hankel1(0, 6*sqrt(x1**2)) + hankel1(2, 6*sqrt(x1**2)))/x1**2),\n", + " 0]" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[sp.diff(derivs[2], var[0], i).subs(var[0], 0) for i in range(0,order_of_rep,1)]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 0a23e4f9f2e1935bbeec3abf43aac4eb3346e4e6 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 13 Dec 2024 22:30:18 -0600 Subject: [PATCH 113/193] Create function that gives recurrence expression equal to 0 --- sumpy/recurrence.py | 20 +++ test/taylor_recurrence.ipynb | 239 +++-------------------------------- 2 files changed, 36 insertions(+), 223 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index ef2b081d3..7ede66e33 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -390,6 +390,26 @@ def _get_initial_c(recurrence): return i +def get_shifted_recurrence_exp_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: + r""" + A function that "shifts" the recurrence so it's center is placed + at the origin and source is the input for the recurrence generated. + + :arg recurrence: a recurrence relation in :math:`s(n)` + """ + r = recurrence_from_pde(pde) + + idx_l, terms = _extract_idx_terms_from_recurrence(r) + + r_ret = r + + n = sp.symbols("n") + for i in range(len(idx_l)): + r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) + + return r_ret + + def shift_recurrence(r: sp.Expr) -> sp.Expr: r""" A function that "shifts" the recurrence so it's center is placed diff --git a/test/taylor_recurrence.ipynb b/test/taylor_recurrence.ipynb index 91c4933bf..a96b07a57 100644 --- a/test/taylor_recurrence.ipynb +++ b/test/taylor_recurrence.ipynb @@ -7,106 +7,9 @@ "# Part 1: Generalizing the Recurrence:" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If\n", - "$$\n", - "s(n, \\textbf{x}) = \\frac{d^n}{d\\textbf{t}^n}|_{\\textbf{t}=0} G(\\textbf{x}, \\textbf{t}) \\cdot \\hat{\\textbf{i}}\n", - "$$\n", - "We claim that we can write\n", - "$$\n", - "s(n, \\textbf{x}) = \\sum_{i=0}^{i=k} \\frac{s_{n,i}(x_1)}{i!} x_0^i\n", - "$$\n", - "where $k$ is some constant chosen beforehand. And more-over there exists a $\\textbf{vector}?$ (rather than scalar) recurrence for the $\\{s_{n,i}\\}_{n=0}^{n=\\infty}$ where $i \\in \\{0, \\dots, k\\}$. This is a straightforward plug-and-chug. See below for an example:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Suppose we are given the recurrence where $\\textbf{x} = (x_0, x_1)$\n", - "$$\n", - "(x_0^3 + x_0 x_1^2) s(n)- (3nx_0^2 + nx_1^2 - 5x_0^2 - 3x_1^2)s(n-1) + (3n^2x_0 - 13nx_0 + 14x_0)s(n-2) - (n^3-8n^2+21n-18) s(n-3) = 0\n", - "$$\n", - "Then" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "(x_0^3 + x_0 x_1^2) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n,i}(x_1)}{i!} x_0^i\\right)- ((3n-5)x_0^2 + nx_1^2 - 3x_1^2)\\left(\\sum_{i=0}^{i=k} \\frac{s_{n-1,i}(x_1)}{i!} x_0^i \\right) + \\\\\n", - "(3n^2 - 13n+14)x_0 \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-2,i}(x_1)}{i!} x_0^i \\right) - (n^3-8n^2+21n-18) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-3,i}(x_1)}{i!} x_0^i \\right) = 0\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We are going to break the simplifcation of the above expression into 4 parts:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "(x_0^3 + x_0 x_1^2) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n,i}(x_1)}{i!} x_0^i\\right) = \\sum_{i=3}^{i=k+3} \\frac{s_{n,i-3}(x_1)}{(i-3)!} x_0^{i} +\\sum_{i=1}^{i=k+1} \\frac{x_1^2s_{n,i-1}(x_1)}{(i-1)!} x_0^{i}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "- ((3n-5)x_0^2 + nx_1^2 - 3x_1^2)\\left(\\sum_{i=0}^{i=k} \\frac{s_{n-1,i}(x_1)}{i!} x_0^i \\right) = (5-3n) \\sum_{i=2}^{i=k+2} \\frac{s_{n-1,i-2}(x_1)}{(i-2)!} x_0^{i} + \\sum_{i=0}^{i=k} \\frac{(3-n)x_1^2 s_{n-1,i}(x_1)}{i!} x_0^{i}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "(3n^2 - 13n+14)x_0 \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-2,i}(x_1)}{i!} x_0^i \\right) = (3n^2 - 13n+14) \\left(\\sum_{i=1}^{i=k+1} \\frac{s_{n-2,i-1}(x_1)}{(i-1)!} x_0^i \\right)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "-(n^3-8n^2+21n-18) \\left(\\sum_{i=0}^{i=k} \\frac{s_{n-3,i}(x_1)}{i!} x_0^i \\right)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Summing the terms we get the following vector recurrence:\n", - "$$\n", - "\\frac{s_{n,i-3}(x_1)}{(i-3)!} + \\frac{x_1^2s_{n,i-1}(x_1)}{(i-1)!} = \\\\\n", - "(3n-5) \\frac{s_{n-1,i-2}(x_1)}{(i-2)!} - \\frac{(3-n)x_1^2 s_{n-1,i}(x_1)}{i!} - (3n^2 - 13n+14)\\frac{s_{n-2,i-1}(x_1)}{(i-1)!} + (n^3-8n^2+21n-18) \\frac{s_{n-3,i}(x_1)}{i!} \n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Part 2: Testing The Recurrence" - ] - }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -117,7 +20,7 @@ " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence\n", + "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -132,29 +35,31 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "\n", - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w" + "var = _make_sympy_vec(\"x\", 2)\n", + "s = sp.Function(\"s\")\n", + "n = sp.symbols(\"n\")" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ - "var = _make_sympy_vec(\"x\", 2)" + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "\n", + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -170,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -188,123 +93,11 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ - "derivs = compute_derivatives_h2d(7)" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0.25 i H^{(1)}_{0}\\left(6 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)$" - ], - "text/plain": [ - "0.25*I*hankel1(0, 6*sqrt(x0**2 + x1**2))" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [], - "source": [ - "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")\n", - "var = _make_sympy_vec(\"x\", 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [], - "source": [ - "order_of_rep = 4" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[0.25*I*hankel1(0, 6*sqrt(x1**2)),\n", - " 0,\n", - " 0.75*I*(hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/sqrt(x1**2),\n", - " 0]" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[sp.diff(derivs[0], var[0], i).subs(var[0], 0) for i in range(0,order_of_rep,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[0,\n", - " -1.5*I*(hankel1(-1, 6*sqrt(x1**2))/2 - hankel1(1, 6*sqrt(x1**2))/2)/sqrt(x1**2),\n", - " 0,\n", - " I*(-(6.75*(hankel1(-2, 6*sqrt(x1**2)) - hankel1(0, 6*sqrt(x1**2)))/sqrt(x1**2) - 6.75*(hankel1(0, 6*sqrt(x1**2)) - hankel1(2, 6*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) + 2.25*(hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/(x1**2)**(3/2))]" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[sp.diff(derivs[1], var[0], i).subs(var[0], 0) for i in range(0,order_of_rep,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[0.75*I*(hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/sqrt(x1**2),\n", - " 0,\n", - " 2.25*I*(((hankel1(-2, 6*sqrt(x1**2)) - hankel1(0, 6*sqrt(x1**2)))/sqrt(x1**2) - (hankel1(0, 6*sqrt(x1**2)) - hankel1(2, 6*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (hankel1(-1, 6*sqrt(x1**2)) - hankel1(1, 6*sqrt(x1**2)))/(x1**2)**(3/2) + 2*(hankel1(-2, 6*sqrt(x1**2)) - 2*hankel1(0, 6*sqrt(x1**2)) + hankel1(2, 6*sqrt(x1**2)))/x1**2),\n", - " 0]" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[sp.diff(derivs[2], var[0], i).subs(var[0], 0) for i in range(0,order_of_rep,1)]" + "recur = get_shifted_recurrence_exp_from_pde(laplace2d)" ] }, { From 646121475314f1224b89655e13145d6c563e6065 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 15 Dec 2024 19:09:21 -0800 Subject: [PATCH 114/193] Poly in s(n) and x_0 --- sumpy/recurrence.py | 10 ++- test/taylor_recurrence.ipynb | 126 ++++++++++++++++++++++++++++++++--- 2 files changed, 126 insertions(+), 10 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 7ede66e33..df0c8811a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -401,13 +401,19 @@ def get_shifted_recurrence_exp_from_pde(pde: LinearPDESystemOperator) -> sp.Expr idx_l, terms = _extract_idx_terms_from_recurrence(r) - r_ret = r + # How much do we need to shift the recurrence relation + shift_idx = max(idx_l) n = sp.symbols("n") + r = r.subs(n, n-shift_idx) + + idx_l, terms = _extract_idx_terms_from_recurrence(r) + + r_ret = r for i in range(len(idx_l)): r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) - return r_ret + return r_ret, (max(idx_l)+1-min(idx_l)) def shift_recurrence(r: sp.Expr) -> sp.Expr: diff --git a/test/taylor_recurrence.ipynb b/test/taylor_recurrence.ipynb index a96b07a57..18e115096 100644 --- a/test/taylor_recurrence.ipynb +++ b/test/taylor_recurrence.ipynb @@ -4,12 +4,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Part 1: Generalizing the Recurrence:" + "# Generalizing a Taylor Recurrence" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -75,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -93,11 +93,121 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "recur, order = get_shifted_recurrence_exp_from_pde(laplace2d)\n", + "order" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 1.55431223447522 \\cdot 10^{-15}$" + ], + "text/plain": [ + "1.55431223447522e-15" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Sanity check that recurrence is correct\n", + "derivs_lap = compute_derivatives(5)\n", + "exp = recur.subs(n, 4)\n", + "exp.subs(s(4), derivs_lap[4]).subs(s(3), derivs_lap[3]).subs(s(2), derivs_lap[2]).subs(s(1), derivs_lap[1]).subs(var[0],np.random.rand()).subs(var[1],np.random.rand())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 2: We need to arrange the terms in the recurrence as a polynomial in $x_0$, $s(n)$\n", + "$$\n", + "table[i, j]\n", + "$$\n", + "Where $i = 0$ represents the coefficient attached to $s(n)$ and $i = 1$ represents $s(n-1)$, etc. and the $j$ is for the polynomial in $x_0$." + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\operatorname{Poly}{\\left( \\left(\\left(-1\\right)^{n} x_{0}^{3} + \\left(-1\\right)^{n} x_{0} x_{1}^{2}\\right) s{\\left(n \\right)} + \\left(- 3 \\left(-1\\right)^{n} n x_{0}^{2} - \\left(-1\\right)^{n} n x_{1}^{2} + 5 \\left(-1\\right)^{n} x_{0}^{2} + 3 \\left(-1\\right)^{n} x_{1}^{2}\\right) s{\\left(n - 1 \\right)} + \\left(3 \\left(-1\\right)^{n} n^{2} x_{0} - 13 \\left(-1\\right)^{n} n x_{0} + 14 \\left(-1\\right)^{n} x_{0}\\right) s{\\left(n - 2 \\right)} + \\left(- \\left(-1\\right)^{n} n^{3} + 8 \\left(-1\\right)^{n} n^{2} - 21 \\left(-1\\right)^{n} n + 18 \\left(-1\\right)^{n}\\right) s{\\left(n - 3 \\right)}, s{\\left(n \\right)}, s{\\left(n - 1 \\right)}, s{\\left(n - 2 \\right)}, s{\\left(n - 3 \\right)}, domain=\\mathbb{Z}\\left[n, x_{0}, \\left(-1\\right)^{n}, x_{1}\\right] \\right)}$" + ], + "text/plain": [ + "Poly(((-1)**n*x0**3 + (-1)**n*x0*x1**2)*(s(n)) + (-3*(-1)**n*n*x0**2 - (-1)**n*n*x1**2 + 5*(-1)**n*x0**2 + 3*(-1)**n*x1**2)*(s(n - 1)) + (3*(-1)**n*n**2*x0 - 13*(-1)**n*n*x0 + 14*(-1)**n*x0)*(s(n - 2)) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*(s(n - 3)), s(n), s(n - 1), s(n - 2), s(n - 3), domain='ZZ[n,x0,(-1)**n,x1]')" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "recur\n", + "poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)])\n", + "poly_in_s_n" + ] + }, + { + "cell_type": "code", + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "recur = get_shifted_recurrence_exp_from_pde(laplace2d)" + "coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)]\n", + "\n", + "table = []\n", + "for i in range(len(coeff_s_n)):\n", + " table.append(sp.poly(coeff_s_n[i], var[0]).all_coeffs()[::-1])" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[0, (-1)**n*x1**2, 0, (-1)**n],\n", + " [-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2, 0, -3*(-1)**n*n + 5*(-1)**n],\n", + " [0, 3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n],\n", + " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table" ] }, { From 71274c4d30eeaeeeae359bda4a637c80a81c5134 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 15 Dec 2024 22:29:10 -0800 Subject: [PATCH 115/193] Code to produce general recurrence done --- test/taylor_recurrence.ipynb | 223 +++++++++++++++++++++++++++++------ 1 file changed, 189 insertions(+), 34 deletions(-) diff --git a/test/taylor_recurrence.ipynb b/test/taylor_recurrence.ipynb index 18e115096..bbc130d6b 100644 --- a/test/taylor_recurrence.ipynb +++ b/test/taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -20,7 +20,7 @@ " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde\n", + "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -35,18 +35,19 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "var = _make_sympy_vec(\"x\", 2)\n", "s = sp.Function(\"s\")\n", + "g = sp.Function(\"s\")\n", "n = sp.symbols(\"n\")" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -75,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -91,9 +92,16 @@ " return derivs_helmholtz" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Step 1: Get recurrence as expression that evaluates to 0 and sanity check it" + ] + }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -102,7 +110,7 @@ "4" ] }, - "execution_count": 33, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -114,19 +122,19 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 1.55431223447522 \\cdot 10^{-15}$" + "$\\displaystyle 6.48092690624935 \\cdot 10^{-15}$" ], "text/plain": [ - "1.55431223447522e-15" + "6.48092690624935e-15" ] }, - "execution_count": 34, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -142,72 +150,219 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Step 2: We need to arrange the terms in the recurrence as a polynomial in $x_0$, $s(n)$\n", + "## Step 2: After performing a Taylor expansion of the $s(n), s(n-1), \\dots$ in the 1D recurrence we need to create a 2D grid of coefficients \n", "$$\n", - "table[i, j]\n", + "grid[i, j]\n", "$$\n", "Where $i = 0$ represents the coefficient attached to $s(n)$ and $i = 1$ represents $s(n-1)$, etc. and the $j$ is for the polynomial in $x_0$." ] }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "def get_grid(recur):\n", + " poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)])\n", + " coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)]\n", + "\n", + " table = []\n", + " for i in range(len(coeff_s_n)):\n", + " table.append(sp.poly(coeff_s_n[i], var[0]).all_coeffs()[::-1])\n", + "\n", + " return table" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[0, (-1)**n*x1**2, 0, (-1)**n],\n", + " [-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2, 0, -3*(-1)**n*n + 5*(-1)**n],\n", + " [0, 3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n],\n", + " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grid = get_grid(recur)\n", + "grid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Step 3: Grid of Coefficient to Grid Recurrence\n", + "$$\n", + "f(x_1) x_0^k s(n-j) \\to f(x_1) x_0^k \\sum_{i=0}^{\\infty} s_{n-j,i} \\frac{x_0^i}{i!} = f(x_1) \\sum_{i=k}^{\\infty} s_{n-j,i-k} \\frac{x_0^i}{(i-k)!} \n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(-1\\right)^{n} x_{1}^{2} s{\\left(n,i - 1 \\right)}}{\\left(i - 1\\right)!} + \\frac{\\left(-1\\right)^{n} s{\\left(n,i - 3 \\right)}}{\\left(i - 3\\right)!} + \\frac{\\left(- 3 \\left(-1\\right)^{n} n + 5 \\left(-1\\right)^{n}\\right) s{\\left(n - 1,i - 2 \\right)}}{\\left(i - 2\\right)!} + \\frac{\\left(- \\left(-1\\right)^{n} n x_{1}^{2} + 3 \\left(-1\\right)^{n} x_{1}^{2}\\right) s{\\left(n - 1,i \\right)}}{i!} + \\frac{\\left(3 \\left(-1\\right)^{n} n^{2} - 13 \\left(-1\\right)^{n} n + 14 \\left(-1\\right)^{n}\\right) s{\\left(n - 2,i - 1 \\right)}}{\\left(i - 1\\right)!} + \\frac{\\left(- \\left(-1\\right)^{n} n^{3} + 8 \\left(-1\\right)^{n} n^{2} - 21 \\left(-1\\right)^{n} n + 18 \\left(-1\\right)^{n}\\right) s{\\left(n - 3,i \\right)}}{i!}$" + ], + "text/plain": [ + "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def convert(grid):\n", + " recur_exp = 0\n", + " i = sp.symbols(\"i\")\n", + " s_terms = []\n", + " for j in range(len(grid)):\n", + " for k in range(len(grid[j])):\n", + " recur_exp += grid[j][k] * s(n-j,i-k)/sp.factorial(i-k)\n", + " if grid[j][k] != 0:\n", + " s_terms.append((j,k))\n", + " return recur_exp, s_terms\n", + "grid_recur, s_terms = convert(grid)\n", + "s_terms\n", + "grid_recur" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Step 4: Translate grid recurrence to column recurrence\n", + "We can use the fact\n", + "$$\n", + "s_{n, i} = s_{n-j, i+j} (-1)^j\n", + "$$\n", + "to perform the following translation:\n", + "$$\n", + "s_{x, i-l} \\to s_{x+l, i} (-1)^l\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [], + "source": [ + "def grid_recur_to_column_recur(grid_recur, s_terms):\n", + " grid_recur_simp = grid_recur\n", + " bag = set()\n", + " for s_t in s_terms:\n", + " bag.add(-((0-s_t[0])-s_t[1]))\n", + " grid_recur_simp = grid_recur_simp.subs(s(n-s_t[0],i-s_t[1]), (-1)**(s_t[1])*s((n-s_t[0])-s_t[1],(i-s_t[1])+s_t[1]))\n", + " shift = min(bag)\n", + " return sp.solve(sp.simplify(grid_recur_simp * sp.factorial(i)).subs(n, n+shift), s(n,i))[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\operatorname{Poly}{\\left( \\left(\\left(-1\\right)^{n} x_{0}^{3} + \\left(-1\\right)^{n} x_{0} x_{1}^{2}\\right) s{\\left(n \\right)} + \\left(- 3 \\left(-1\\right)^{n} n x_{0}^{2} - \\left(-1\\right)^{n} n x_{1}^{2} + 5 \\left(-1\\right)^{n} x_{0}^{2} + 3 \\left(-1\\right)^{n} x_{1}^{2}\\right) s{\\left(n - 1 \\right)} + \\left(3 \\left(-1\\right)^{n} n^{2} x_{0} - 13 \\left(-1\\right)^{n} n x_{0} + 14 \\left(-1\\right)^{n} x_{0}\\right) s{\\left(n - 2 \\right)} + \\left(- \\left(-1\\right)^{n} n^{3} + 8 \\left(-1\\right)^{n} n^{2} - 21 \\left(-1\\right)^{n} n + 18 \\left(-1\\right)^{n}\\right) s{\\left(n - 3 \\right)}, s{\\left(n \\right)}, s{\\left(n - 1 \\right)}, s{\\left(n - 2 \\right)}, s{\\left(n - 3 \\right)}, domain=\\mathbb{Z}\\left[n, x_{0}, \\left(-1\\right)^{n}, x_{1}\\right] \\right)}$" + "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" ], "text/plain": [ - "Poly(((-1)**n*x0**3 + (-1)**n*x0*x1**2)*(s(n)) + (-3*(-1)**n*n*x0**2 - (-1)**n*n*x1**2 + 5*(-1)**n*x0**2 + 3*(-1)**n*x1**2)*(s(n - 1)) + (3*(-1)**n*n**2*x0 - 13*(-1)**n*n*x0 + 14*(-1)**n*x0)*(s(n - 2)) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*(s(n - 3)), s(n), s(n - 1), s(n - 2), s(n - 3), domain='ZZ[n,x0,(-1)**n,x1]')" + "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 59, + "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "recur\n", - "poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)])\n", - "poly_in_s_n" + "column_recur = grid_recur_to_column_recur(grid_recur, s_terms)\n", + "column_recur" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Part 5: Package into Big Function:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 114, "metadata": {}, "outputs": [], "source": [ - "coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)]\n", - "\n", - "table = []\n", - "for i in range(len(coeff_s_n)):\n", - " table.append(sp.poly(coeff_s_n[i], var[0]).all_coeffs()[::-1])" + "def get_taylor_recurrence(pde):\n", + " recur, order = get_shifted_recurrence_exp_from_pde(pde)\n", + " grid = get_grid(recur)\n", + " grid_recur, s_terms = convert(grid)\n", + " column_recur = grid_recur_to_column_recur(grid_recur, s_terms)\n", + " return column_recur" ] }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 115, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" + ], "text/plain": [ - "[[0, (-1)**n*x1**2, 0, (-1)**n],\n", - " [-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2, 0, -3*(-1)**n*n + 5*(-1)**n],\n", - " [0, 3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n],\n", - " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" + "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" + ] + }, + "execution_count": 115, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_recurrence(laplace2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{- n^{3} s{\\left(n - 2,0 \\right)} + 5 n^{2} s{\\left(n - 2,0 \\right)} - 8 n s{\\left(n - 2,0 \\right)} + 4 s{\\left(n - 2,0 \\right)}}{x_{1}^{2} \\left(n - 2\\right)}$" + ], + "text/plain": [ + "(-n**3*s(n - 2, 0) + 5*n**2*s(n - 2, 0) - 8*n*s(n - 2, 0) + 4*s(n - 2, 0))/(x1**2*(n - 2))" ] }, - "execution_count": 58, + "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "table" + "get_taylor_recurrence(helmholtz2d).subs(i, 0)" ] }, { From d16b9007b64b9f5f180dcb5d2da96d396280c91d Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 20 Dec 2024 11:55:01 -0800 Subject: [PATCH 116/193] Remove all failed attempts --- test/modified_recur.ipynb | 524 ++--------------------------------- test/taylor_recurrence.ipynb | 65 +++-- 2 files changed, 49 insertions(+), 540 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index c80b08881..15c2d52fe 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -28,13 +28,13 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "w = make_identity_diff_op(2)\n", "laplace2d = laplacian(w)\n", - "n_init, order, r = get_processed_and_shifted_recurrence(laplace2d)\n", + "n_init, order, recur_laplace = get_processed_and_shifted_recurrence(laplace2d)\n", "\n", "w = make_identity_diff_op(2)\n", "helmholtz2d = laplacian(w) + w\n", @@ -43,36 +43,7 @@ }, { "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [], - "source": [ - "def scale_recurrence(r):\n", - " #We want to subsitute s(i) r^i_{ct} = g(i)\n", - " g = sp.Function(\"g\")\n", - " s = sp.Function(\"s\")\n", - " n = sp.symbols(\"n\")\n", - " rct = sp.symbols(\"r_{ct}\")\n", - "\n", - " r_new = r*rct**n\n", - " for i in range(order):\n", - " r_new = r_new.subs(s(n-i),g(n-i)/(rct**(n-i)))\n", - "\n", - " return r_new" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": {}, - "outputs": [], - "source": [ - "r_new = scale_recurrence(r)" - ] - }, - { - "cell_type": "code", - "execution_count": 67, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -81,85 +52,7 @@ "rct = sp.symbols(\"r_{ct}\")\n", "g = sp.Function(\"g\")\n", "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")\n", - "coord_dict = {var[0]: 1, var[1]: 1}" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": {}, - "outputs": [], - "source": [ - "r_new_helmholtz = recur_helmholtz.subs(s, g)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "r_new_helmholtz = recur_helmholtz.subs(s, g)" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left(-1\\right)^{n + 1} \\left(\\frac{\\left(-1\\right)^{n - 3} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) g{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) g{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) g{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" - ], - "text/plain": [ - "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*g(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*g(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*g(n - 1)/(x0**3 + x0*x1**2))" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "r_new = r_new.subs(rct, 1)\n", - "r_new" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "metadata": {}, - "outputs": [], - "source": [ - "r_new_shifted_1 = r_new.subs(n, n-1)\n", - "r_new_shifted_3 = r_new.subs(n, n-3)" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(6 n^{2} x_{0}^{4} + 3 n^{2} x_{0}^{2} x_{1}^{2} + n^{2} x_{1}^{4} - 26 n x_{0}^{4} - 21 n x_{0}^{2} x_{1}^{2} - 7 n x_{1}^{4} + 26 x_{0}^{4} + 30 x_{0}^{2} x_{1}^{2} + 12 x_{1}^{4}\\right) g{\\left(n - 2 \\right)}}{x_{0}^{6} + 2 x_{0}^{4} x_{1}^{2} + x_{0}^{2} x_{1}^{4}} + \\frac{\\left(3 n^{4} x_{0}^{2} + n^{4} x_{1}^{2} - 38 n^{3} x_{0}^{2} - 14 n^{3} x_{1}^{2} + 175 n^{2} x_{0}^{2} + 73 n^{2} x_{1}^{2} - 344 n x_{0}^{2} - 168 n x_{1}^{2} + 240 x_{0}^{2} + 144 x_{1}^{2}\\right) g{\\left(n - 4 \\right)}}{x_{0}^{6} + 2 x_{0}^{4} x_{1}^{2} + x_{0}^{2} x_{1}^{4}} + \\frac{\\left(- 8 n^{3} x_{0}^{2} - 2 n^{3} x_{1}^{2} + 64 n^{2} x_{0}^{2} + 20 n^{2} x_{1}^{2} - 164 n x_{0}^{2} - 66 n x_{1}^{2} + 132 x_{0}^{2} + 72 x_{1}^{2}\\right) g{\\left(n - 3 \\right)}}{x_{0}^{5} + 2 x_{0}^{3} x_{1}^{2} + x_{0} x_{1}^{4}}$" - ], - "text/plain": [ - "(6*n**2*x0**4 + 3*n**2*x0**2*x1**2 + n**2*x1**4 - 26*n*x0**4 - 21*n*x0**2*x1**2 - 7*n*x1**4 + 26*x0**4 + 30*x0**2*x1**2 + 12*x1**4)*g(n - 2)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (3*n**4*x0**2 + n**4*x1**2 - 38*n**3*x0**2 - 14*n**3*x1**2 + 175*n**2*x0**2 + 73*n**2*x1**2 - 344*n*x0**2 - 168*n*x1**2 + 240*x0**2 + 144*x1**2)*g(n - 4)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4) + (-8*n**3*x0**2 - 2*n**3*x1**2 + 64*n**2*x0**2 + 20*n**2*x1**2 - 164*n*x0**2 - 66*n*x1**2 + 132*x0**2 + 72*x1**2)*g(n - 3)/(x0**5 + 2*x0**3*x1**2 + x0*x1**4)" - ] - }, - "execution_count": 71, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "poly1 = sp.poly(r_new.subs(g(n-1), r_new_shifted_1), [g(n-2), g(n-3), g(n-4)])\n", - "new_recur = g(n-2) * poly1.coeffs()[0].subs((-1)**(2*n), 1) + g(n-3) * poly1.coeffs()[1].subs((-1)**(2*n), 1) + g(n-4) * poly1.coeffs()[2].subs((-1)**(2*n), 1)\n", - "new_recur" + "n = sp.symbols(\"n\")" ] }, { @@ -181,19 +74,22 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "k = 1\n", - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - "derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(7)]" + "def compute_derivatives_h2d(p):\n", + " k = 1\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + " derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs_helmholtz\n", + "derivs_helmholtz = compute_derivatives_h2d(4)" ] }, { @@ -235,25 +131,6 @@ " return np.array(retMe)" ] }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_error(pw, recur):\n", - " x_coord = 10**(-pw)\n", - " y_coord = 1\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", - "\n", - " rct_val = 1\n", - " exp = evaluate_recurrence_lamb(coord_dict, rct_val, recur, 10)\n", - " true = evaluate_true(coord_dict, rct_val, 10)\n", - "\n", - " return np.abs(exp-true)/np.abs(true)" - ] - }, { "cell_type": "code", "execution_count": 82, @@ -315,373 +192,6 @@ "plt.show()" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Avoiding Cat Cancellation: Attempt 1\n", - "The question is can we avoid catastrophic cancellation in the recurrence when $x_0 << 1$? Where $(x_0, y_0)$ is the location of the source?\n", - "\n", - "If we formulate a recurrence for\n", - "$$\n", - "g(i, x_0, y_0) = \\frac{d^i}{dx^i}|_{x = 0} G(x, y) r_{ct}^i\n", - "$$\n", - "we will inevitably get catastrophic cancellation when $x_0 << y_0$. Suppose we let $r_{ct} = x_0$ (we can scale up and down later with the true $r_{ct}$) and have\n", - "$$\n", - "g(n, x_0, y_0) = f_1(x_0, y_0, n-1) g(n-1, x_0, y_0) + f_2(x_0, y_0, n-2) g(n-2, x_0, y_0) + f_3(x_0, y_0, n-3) g(n-3, x_0, y_0)\n", - "$$\n", - "we could treat $g(n-1, x_0, y_0), g(n-2, x_0, y_0), g(n-3, x_0, y_0)$ as constants and taylor expand $f_i(x_0, y_0, j)$ when $x_0 << y_0$. So instead we get for example:\n", - "$$\n", - "g(2) = -g(1) + \\frac{4g(1)}{x_1^2} \\frac{x_0^2}{2!} - \\frac{48 g(1)}{x_1^4} \\frac{x_0^4}{4!} \n", - "$$\n", - "$$\n", - "g(3) = -\\frac{4(g(1)-2g(2))}{x_1^2} \\frac{x_0^2}{2!} - \\frac{48 (g(1)-2g(2))}{x_1^4} \\frac{x_0^4}{4!} \n", - "$$\n", - "$$\n", - "g(4) = g(3) - \\frac{4(g(1)-5g(2)+3g(3))}{x_1^2 } \\frac{x_0^2}{2!} - \\frac{48(g(1)-5g(2)+3g(3))}{x_1^4} \\frac{x_0^4}{4!} \n", - "$$\n", - "$$\n", - "g(5) = 2g(4) + \\frac{8(3g(2)-6g(3)+2g(4))}{x_1^2} \\frac{x_0^2}{2!}\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def generate_specialized_formula(i, order):\n", - " a = sp.cancel(r_new.subs(rct, var[0]).subs(n, i))\n", - " res = 0\n", - " for j in range(order+1):\n", - " res += sp.simplify(sp.diff(a, var[0], j).subs(var[0], 0)) * var[0]**j/math.factorial(j)\n", - " return res" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate_specialized_formula(coord_dict, p, rct_val, order_approx):\n", - " subs_dict = {}\n", - " subs_dict[g(-2)] = 0\n", - " subs_dict[g(-1)] = 0\n", - " subs_dict[g(0)] = derivs[0].subs(coord_dict)\n", - " subs_dict[g(1)] = derivs[1].subs(coord_dict) * rct_val\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " for i in range(2, p):\n", - " exp = generate_specialized_formula(i, order_approx)\n", - " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3)], exp)\n", - " subs_dict[g(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[g(i-1)],\n", - " subs_dict[g(i-2)], subs_dict[g(i-3)])\n", - " subs_dict.pop(g(-2))\n", - " subs_dict.pop(g(-1))\n", - " return np.array(list(subs_dict.values()))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_error_using_specialized_formula(pw, order_approx):\n", - " x_coord = 10**(-pw)\n", - " y_coord = 1\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", - "\n", - " rct_val = x_coord\n", - " exp = evaluate_specialized_formula(coord_dict, 9, rct_val, order_approx)\n", - " true = evaluate_true(coord_dict, rct_val, 9)\n", - " print(exp)\n", - " print(true)\n", - " return np.abs(exp-true)/np.abs(true)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Avoiding Cat Cancel 1.5" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we have $x_0 << x_1$ then the following expressions are a good approximation\\\n", - "to coefficients for a Taylor expansion of a Laplace kernel at the origin with\\\n", - "source at $(x_0, x_1)$:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "k = 1\n", - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - "derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(7)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "[sp.diff(derivs[i], var[0], 0) for i in range(0,15,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "[sp.diff(derivs_helmholtz[i], var[0], 0) for i in range(0,7,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "[sp.diff(derivs[i], var[0], 0).subs(var[0], 0) for i in range(0,15,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a1 = [sp.diff(derivs_helmholtz[i], var[0], 0).subs(var[0], 0) for i in range(0,7,1)]\n", - "a1" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "r1 = sp.simplify(a1[0])\n", - "sp.diff(r1, var[1])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "r2 = sp.simplify(a1[2])\n", - "sp.diff(r2, var[1])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sp.simplify(a1[4])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "[sp.diff(derivs[i], var[0], 2).subs(var[0], 0) for i in range(0,15,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = [sp.diff(derivs_helmholtz[i], var[0], 2).subs(var[0], 0) for i in range(0,7,1)]\n", - "a" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sp.simplify(a[0])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sp.simplify(a[2])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "[sp.diff(derivs[i], var[0], 4).subs(var[0], 0) for i in range(0,15,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "[sp.diff(derivs_helmholtz[i], var[0], 4).subs(var[0], 0) for i in range(0,4,1)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "[math.factorial(2*n_v+1) for n_v in range(7)]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Suppose\n", - "$$\n", - "f(n) = f(n-2) (2n+1)(2n) = 4n^2 f(n-2) - 2n f(n-1)\n", - "$$\n", - "what PDE do we satisfy? This isn't obvious since\n", - "$$\n", - "y = c y'' - dy'\n", - "$$\n", - "something of that form. What if it's just the old recurrence but simplified??? When $x_0 << 1$?\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Avoiding Cat Cancellation Attempt 2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have\n", - "$$\n", - "\\text{ Given } g(0), g(1), rct = 1\n", - "$$\n", - "$$\n", - "g(1) = \\frac{1}{2\\pi} \\frac{x_0}{x_0^2 + x_1^2}\n", - "$$\n", - "$$\n", - "g(2) = \\frac{x_0^2 -x_1^2}{x_0^3 +x_0 x_1^2} g(1)\n", - "$$\n", - "$$\n", - "g(3) = \\frac{4x_0 g(2)}{x_0^2 + x_1^2} - \\frac{2 g (1)}{x_0^2 + x_1^2}\n", - "$$\n", - "$$\n", - "g(4) = \\frac{(7 x_0^2 + x_1^2)g(3)}{x_0^3 + x_0x_1^2} - \\frac{10g(2)}{x_0^2 + x_1^2} + \\frac{2g(1)}{x_0^3 + x_0 x_1^2}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Rewriting as an odd-even recurrence we get:\n", - "$$\n", - "g(2) = \\frac{1}{2\\pi} \\frac{x_0^2 -x_1^2}{(x_0^2 + x_1^2)^2} \n", - "$$\n", - "$$\n", - "g(3) = \\frac{6x_0^2 -2x_1^2}{(x_0^2 + x_1^2)^2} g(1)\n", - "$$\n", - "$$\n", - "g(4) = \\frac{(7 x_0^2 + x_1^2)}{x_0^2 + x_1^2} \\left(\\frac{4 g(2)}{x_0^2 + x_1^2} - \\frac{1 }{\\pi(x_0^2 + x_1^2)^2} \\right) - \\frac{10g(2)}{x_0^2 + x_1^2} + \\frac{1}{x_0^2 + x_1^2} \\frac{1}{\\pi} \\frac{1}{x_0^2 + x_1^2}\n", - "$$\n", - "$$\n", - "g(4) = \\frac{18x_0^2 - 6x_1^2}{(x_0^2 + x_1^2)^2} g(2) + \\frac{-(7 x_0^2 + x_1^2) + 1}{\\pi(x_0^2 + x_1^2)^2}\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def odd_even(i):\n", - " #Pseudocode\n", - " #Step 1 use extract_idx_terms from recurrence\n", - " #Use odd-even to recursively? substitute odd or even terms\n", - " #Should take in dictionary?\n", - " #The problem is when we try and replace the smallest even\n", - " #term, we get a smaller even term. Have we already computed\n", - " #Are we even only to a certain order????\n", - " #Yes you can assume every even/odd terms has been computed accurately\n", - " #Let us try with a dictionary first\n", - " return 0" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "'''\n", - "x_plot = [i for i in range(len(compute_error(0)))]\n", - "for i in range(1, 4):\n", - " plt.semilogy(x_plot, compute_error(i), label=str(10**(-i)))\n", - "plt.xlabel(\"order of derivative being computed\")\n", - "plt.ylabel(\"absolute error\")\n", - "plt.title(\"recurrence error vs order for different source-locations\")\n", - "plt.legend(title='ratio of x_{coord_src}/y_{coord_src}')\n", - "plt.show()\n", - "'''" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Suppose we have a relation\n", - "$$\n", - "f(1, x_0, x_1) g_1(x_0, x_1) + f(2, x_0, x_1) g_2(x_0, x_1) = 0\n", - "$$\n", - "and we know that\n", - "$$\n", - "f(1, x_0, x_1) = f_0(x_1) + f_1(x_1) x_0 + f_2(x_1) \\frac{x_0^2}{2}\n", - "$$\n", - "$$\n", - "f(2, x_0, x_1) = f_0(x_1) + f_1(x_1) x_0 + f_2(x_1) \\frac{x_0^2}{2}\n", - "$$" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/test/taylor_recurrence.ipynb b/test/taylor_recurrence.ipynb index bbc130d6b..c29991ea4 100644 --- a/test/taylor_recurrence.ipynb +++ b/test/taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -110,7 +110,7 @@ "4" ] }, - "execution_count": 37, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -122,19 +122,19 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 6.48092690624935 \\cdot 10^{-15}$" + "$\\displaystyle 4.14251966063262 \\cdot 10^{-15}$" ], "text/plain": [ - "6.48092690624935e-15" + "4.14251966063262e-15" ] }, - "execution_count": 38, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -159,7 +159,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -176,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -188,7 +188,7 @@ " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" ] }, - "execution_count": 40, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -222,7 +222,7 @@ "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" ] }, - "execution_count": 71, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -260,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -276,21 +276,20 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 12, "metadata": {}, "outputs": [ { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" - ] - }, - "execution_count": 110, - "metadata": {}, - "output_type": "execute_result" + "ename": "NameError", + "evalue": "name 'i' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[12], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m column_recur \u001b[38;5;241m=\u001b[39m \u001b[43mgrid_recur_to_column_recur\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrid_recur\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43ms_terms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m column_recur\n", + "Cell \u001b[0;32mIn[11], line 6\u001b[0m, in \u001b[0;36mgrid_recur_to_column_recur\u001b[0;34m(grid_recur, s_terms)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m s_t \u001b[38;5;129;01min\u001b[39;00m s_terms:\n\u001b[1;32m 5\u001b[0m bag\u001b[38;5;241m.\u001b[39madd(\u001b[38;5;241m-\u001b[39m((\u001b[38;5;241m0\u001b[39m\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m]))\n\u001b[0;32m----> 6\u001b[0m grid_recur_simp \u001b[38;5;241m=\u001b[39m grid_recur_simp\u001b[38;5;241m.\u001b[39msubs(s(n\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m0\u001b[39m],\u001b[43mi\u001b[49m\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m]), (\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m(s_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39ms((n\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m],(i\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m+\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m]))\n\u001b[1;32m 7\u001b[0m shift \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmin\u001b[39m(bag)\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m sp\u001b[38;5;241m.\u001b[39msolve(sp\u001b[38;5;241m.\u001b[39msimplify(grid_recur_simp \u001b[38;5;241m*\u001b[39m sp\u001b[38;5;241m.\u001b[39mfactorial(i))\u001b[38;5;241m.\u001b[39msubs(n, n\u001b[38;5;241m+\u001b[39mshift), s(n,i))[\u001b[38;5;241m0\u001b[39m]\n", + "\u001b[0;31mNameError\u001b[0m: name 'i' is not defined" + ] } ], "source": [ @@ -307,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -321,7 +320,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -344,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -362,7 +361,7 @@ } ], "source": [ - "get_taylor_recurrence(helmholtz2d).subs(i, 0)" + "get_taylor_recurrence(helmholtz2d)" ] }, { From 427cf030b49f092f0e82b047b69c34873ec32539 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 20 Dec 2024 12:19:28 -0800 Subject: [PATCH 117/193] Want higher order --- test/modified_recur.ipynb | 184 +++++++++++++++++++++++++++++--------- 1 file changed, 140 insertions(+), 44 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index 15c2d52fe..f9634c77a 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 63, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -43,21 +43,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "max_abs = .0000001\n", "var = _make_sympy_vec(\"x\", 2)\n", "rct = sp.symbols(\"r_{ct}\")\n", - "g = sp.Function(\"g\")\n", "s = sp.Function(\"s\")\n", "n = sp.symbols(\"n\")" ] }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -69,14 +68,69 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "derivs = compute_derivatives(10)" + "derivs_laplace = compute_derivatives(8)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[13], line 12\u001b[0m\n\u001b[1;32m 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [sp\u001b[38;5;241m.\u001b[39mdiff(g_x_y,\n\u001b[1;32m 9\u001b[0m var_t[\u001b[38;5;241m0\u001b[39m], i)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n\u001b[0;32m---> 12\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43mcompute_derivatives_h2d\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[13], line 8\u001b[0m, in \u001b[0;36mcompute_derivatives_h2d\u001b[0;34m(p)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", + "Cell \u001b[0;32mIn[13], line 8\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:2481\u001b[0m, in \u001b[0;36mdiff\u001b[0;34m(f, *symbols, **kwargs)\u001b[0m\n\u001b[1;32m 2417\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2418\u001b[0m \u001b[38;5;124;03mDifferentiate f with respect to symbols.\u001b[39;00m\n\u001b[1;32m 2419\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2478\u001b[0m \n\u001b[1;32m 2479\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2480\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(f, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdiff\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[0;32m-> 2481\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2482\u001b[0m kwargs\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 2483\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _derivative_dispatch(f, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:3575\u001b[0m, in \u001b[0;36mExpr.diff\u001b[0;34m(self, *symbols, **assumptions)\u001b[0m\n\u001b[1;32m 3573\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdiff\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39massumptions):\n\u001b[1;32m 3574\u001b[0m assumptions\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m-> 3575\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_derivative_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43massumptions\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1908\u001b[0m, in \u001b[0;36m_derivative_dispatch\u001b[0;34m(expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1906\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtensor\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray_derivatives\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ArrayDerivative\n\u001b[1;32m 1907\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ArrayDerivative(expr, \u001b[38;5;241m*\u001b[39mvariables, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1908\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDerivative\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1436\u001b[0m, in \u001b[0;36mDerivative.__new__\u001b[0;34m(cls, expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1429\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m old_v\u001b[38;5;241m.\u001b[39mis_scalar \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(\n\u001b[1;32m 1430\u001b[0m old_v, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m_eval_derivative\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m 1431\u001b[0m \u001b[38;5;66;03m# special hack providing evaluation for classes\u001b[39;00m\n\u001b[1;32m 1432\u001b[0m \u001b[38;5;66;03m# that have defined is_scalar=True but have no\u001b[39;00m\n\u001b[1;32m 1433\u001b[0m \u001b[38;5;66;03m# _eval_derivative defined\u001b[39;00m\n\u001b[1;32m 1434\u001b[0m expr \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m=\u001b[39m old_v\u001b[38;5;241m.\u001b[39mdiff(old_v)\n\u001b[0;32m-> 1436\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_dispatch_eval_derivative_n_times\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcount\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m obj \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mis_zero:\n\u001b[1;32m 1438\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1897\u001b[0m, in \u001b[0;36mDerivative._dispatch_eval_derivative_n_times\u001b[0;34m(cls, expr, v, count)\u001b[0m\n\u001b[1;32m 1891\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[1;32m 1892\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_dispatch_eval_derivative_n_times\u001b[39m(\u001b[38;5;28mcls\u001b[39m, expr, v, count):\n\u001b[1;32m 1893\u001b[0m \u001b[38;5;66;03m# Evaluate the derivative `n` times. If\u001b[39;00m\n\u001b[1;32m 1894\u001b[0m \u001b[38;5;66;03m# `_eval_derivative_n_times` is not overridden by the current\u001b[39;00m\n\u001b[1;32m 1895\u001b[0m \u001b[38;5;66;03m# object, the default in `Basic` will call a loop over\u001b[39;00m\n\u001b[1;32m 1896\u001b[0m \u001b[38;5;66;03m# `_eval_derivative`:\u001b[39;00m\n\u001b[0;32m-> 1897\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mexpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_eval_derivative_n_times\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcount\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/cache.py:72\u001b[0m, in \u001b[0;36m__cacheit..func_wrapper..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 70\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 71\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 72\u001b[0m retval \u001b[38;5;241m=\u001b[39m \u001b[43mcfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 74\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m e\u001b[38;5;241m.\u001b[39margs \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m e\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mstartswith(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124munhashable type:\u001b[39m\u001b[38;5;124m'\u001b[39m):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/mul.py:987\u001b[0m, in \u001b[0;36mMul._eval_derivative_n_times\u001b[0;34m(self, s, n)\u001b[0m\n\u001b[1;32m 985\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mntheory\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmultinomial\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m multinomial_coefficients_iterator\n\u001b[1;32m 986\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m kvals, c \u001b[38;5;129;01min\u001b[39;00m multinomial_coefficients_iterator(m, n):\n\u001b[0;32m--> 987\u001b[0m p \u001b[38;5;241m=\u001b[39m Mul(\u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43marg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mzip\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mkvals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 988\u001b[0m terms\u001b[38;5;241m.\u001b[39mappend(c \u001b[38;5;241m*\u001b[39m p)\n\u001b[1;32m 989\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Add(\u001b[38;5;241m*\u001b[39mterms)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/mul.py:987\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 985\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mntheory\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmultinomial\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m multinomial_coefficients_iterator\n\u001b[1;32m 986\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m kvals, c \u001b[38;5;129;01min\u001b[39;00m multinomial_coefficients_iterator(m, n):\n\u001b[0;32m--> 987\u001b[0m p \u001b[38;5;241m=\u001b[39m Mul(\u001b[38;5;241m*\u001b[39m[\u001b[43marg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m k, arg \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(kvals, args)])\n\u001b[1;32m 988\u001b[0m terms\u001b[38;5;241m.\u001b[39mappend(c \u001b[38;5;241m*\u001b[39m p)\n\u001b[1;32m 989\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Add(\u001b[38;5;241m*\u001b[39mterms)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:3575\u001b[0m, in \u001b[0;36mExpr.diff\u001b[0;34m(self, *symbols, **assumptions)\u001b[0m\n\u001b[1;32m 3573\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdiff\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39massumptions):\n\u001b[1;32m 3574\u001b[0m assumptions\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m-> 3575\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_derivative_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43massumptions\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1908\u001b[0m, in \u001b[0;36m_derivative_dispatch\u001b[0;34m(expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1906\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtensor\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray_derivatives\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ArrayDerivative\n\u001b[1;32m 1907\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ArrayDerivative(expr, \u001b[38;5;241m*\u001b[39mvariables, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1908\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDerivative\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1474\u001b[0m, in \u001b[0;36mDerivative.__new__\u001b[0;34m(cls, expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1472\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexprtools\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m factor_terms\n\u001b[1;32m 1473\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m signsimp\n\u001b[0;32m-> 1474\u001b[0m expr \u001b[38;5;241m=\u001b[39m \u001b[43mfactor_terms\u001b[49m\u001b[43m(\u001b[49m\u001b[43msignsimp\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1475\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1267\u001b[0m, in \u001b[0;36mfactor_terms\u001b[0;34m(expr, radical, clear, fraction, sign)\u001b[0m\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n\u001b[1;32m 1266\u001b[0m expr \u001b[38;5;241m=\u001b[39m sympify(expr)\n\u001b[0;32m-> 1267\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAdd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m [\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m Add\u001b[38;5;241m.\u001b[39mmake_args(p)]\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAdd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m [\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m Add\u001b[38;5;241m.\u001b[39mmake_args(p)]\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAdd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m [\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m Add\u001b[38;5;241m.\u001b[39mmake_args(p)]\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1230\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1227\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Pow \u001b[38;5;129;01mor\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Function \u001b[38;5;129;01mor\u001b[39;00m \\\n\u001b[1;32m 1228\u001b[0m is_iterable \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(expr, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124margs_cnc\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m 1229\u001b[0m args \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39margs\n\u001b[0;32m-> 1230\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1231\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m newargs \u001b[38;5;241m==\u001b[39m args:\n\u001b[1;32m 1232\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1230\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1227\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Pow \u001b[38;5;129;01mor\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Function \u001b[38;5;129;01mor\u001b[39;00m \\\n\u001b[1;32m 1228\u001b[0m is_iterable \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(expr, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124margs_cnc\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m 1229\u001b[0m args \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39margs\n\u001b[0;32m-> 1230\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1231\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m newargs \u001b[38;5;241m==\u001b[39m args:\n\u001b[1;32m 1232\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1257\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1255\u001b[0m \u001b[38;5;66;03m# rebuild p not worrying about the order which gcd_terms will fix\u001b[39;00m\n\u001b[1;32m 1256\u001b[0m p \u001b[38;5;241m=\u001b[39m Add\u001b[38;5;241m.\u001b[39m_from_args(list_args)\n\u001b[0;32m-> 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mgcd_terms\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1258\u001b[0m \u001b[43m \u001b[49m\u001b[43misprimitive\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 1259\u001b[0m \u001b[43m \u001b[49m\u001b[43mclear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mclear\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1260\u001b[0m \u001b[43m \u001b[49m\u001b[43mfraction\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfraction\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[1;32m 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[do(a) \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1068\u001b[0m, in \u001b[0;36mgcd_terms\u001b[0;34m(terms, isprimitive, clear, fraction)\u001b[0m\n\u001b[1;32m 1066\u001b[0m terms \u001b[38;5;241m=\u001b[39m sympify(terms)\n\u001b[1;32m 1067\u001b[0m terms, reps \u001b[38;5;241m=\u001b[39m mask(terms)\n\u001b[0;32m-> 1068\u001b[0m cont, numer, denom \u001b[38;5;241m=\u001b[39m \u001b[43m_gcd_terms\u001b[49m\u001b[43m(\u001b[49m\u001b[43mterms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43misprimitive\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfraction\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1069\u001b[0m numer \u001b[38;5;241m=\u001b[39m numer\u001b[38;5;241m.\u001b[39mxreplace(reps)\n\u001b[1;32m 1070\u001b[0m coeff, factors \u001b[38;5;241m=\u001b[39m cont\u001b[38;5;241m.\u001b[39mas_coeff_Mul()\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:953\u001b[0m, in \u001b[0;36m_gcd_terms\u001b[0;34m(terms, isprimitive, fraction)\u001b[0m\n\u001b[1;32m 950\u001b[0m cont \u001b[38;5;241m=\u001b[39m cont\u001b[38;5;241m.\u001b[39mgcd(term)\n\u001b[1;32m 952\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, term \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(terms):\n\u001b[0;32m--> 953\u001b[0m terms[i] \u001b[38;5;241m=\u001b[39m \u001b[43mterm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mquo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcont\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 955\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m fraction:\n\u001b[1;32m 956\u001b[0m denom \u001b[38;5;241m=\u001b[39m terms[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mdenom\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:868\u001b[0m, in \u001b[0;36mTerm.quo\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 867\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mquo\u001b[39m(\u001b[38;5;28mself\u001b[39m, other): \u001b[38;5;66;03m# Term\u001b[39;00m\n\u001b[0;32m--> 868\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmul\u001b[49m\u001b[43m(\u001b[49m\u001b[43mother\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minv\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:857\u001b[0m, in \u001b[0;36mTerm.mul\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 855\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mmul\u001b[39m(\u001b[38;5;28mself\u001b[39m, other): \u001b[38;5;66;03m# Term\u001b[39;00m\n\u001b[1;32m 856\u001b[0m coeff \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcoeff\u001b[38;5;241m*\u001b[39mother\u001b[38;5;241m.\u001b[39mcoeff\n\u001b[0;32m--> 857\u001b[0m numer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnumer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmul\u001b[49m\u001b[43m(\u001b[49m\u001b[43mother\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnumer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 858\u001b[0m denom \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdenom\u001b[38;5;241m.\u001b[39mmul(other\u001b[38;5;241m.\u001b[39mdenom)\n\u001b[1;32m 860\u001b[0m numer, denom \u001b[38;5;241m=\u001b[39m numer\u001b[38;5;241m.\u001b[39mnormal(denom)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:484\u001b[0m, in \u001b[0;36mFactors.mul\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 480\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 482\u001b[0m factors[factor] \u001b[38;5;241m=\u001b[39m exp\n\u001b[0;32m--> 484\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mFactors\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfactors\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:324\u001b[0m, in \u001b[0;36mFactors.__init__\u001b[0;34m(self, factors)\u001b[0m\n\u001b[1;32m 322\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(factors, Factors):\n\u001b[1;32m 323\u001b[0m factors \u001b[38;5;241m=\u001b[39m factors\u001b[38;5;241m.\u001b[39mfactors\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[0;32m--> 324\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[43mfactors\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mS\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mOne\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 325\u001b[0m factors \u001b[38;5;241m=\u001b[39m {}\n\u001b[1;32m 326\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m factors \u001b[38;5;129;01mis\u001b[39;00m S\u001b[38;5;241m.\u001b[39mZero \u001b[38;5;129;01mor\u001b[39;00m factors \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/numbers.py:1941\u001b[0m, in \u001b[0;36mInteger.__eq__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1939\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(other, Integer):\n\u001b[1;32m 1940\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mp \u001b[38;5;241m==\u001b[39m other\u001b[38;5;241m.\u001b[39mp)\n\u001b[0;32m-> 1941\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mRational\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__eq__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mother\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/numbers.py:1593\u001b[0m, in \u001b[0;36mRational.__eq__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1591\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__eq__\u001b[39m(\u001b[38;5;28mself\u001b[39m, other):\n\u001b[1;32m 1592\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1593\u001b[0m other \u001b[38;5;241m=\u001b[39m \u001b[43m_sympify\u001b[49m\u001b[43m(\u001b[49m\u001b[43mother\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1594\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m SympifyError:\n\u001b[1;32m 1595\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mNotImplemented\u001b[39m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/sympify.py:514\u001b[0m, in \u001b[0;36m_sympify\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m 488\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_sympify\u001b[39m(a):\n\u001b[1;32m 489\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 490\u001b[0m \u001b[38;5;124;03m Short version of :func:`~.sympify` for internal usage for ``__add__`` and\u001b[39;00m\n\u001b[1;32m 491\u001b[0m \u001b[38;5;124;03m ``__eq__`` methods where it is ok to allow some things (like Python\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 512\u001b[0m \n\u001b[1;32m 513\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 514\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msympify\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstrict\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/sympify.py:396\u001b[0m, in \u001b[0;36msympify\u001b[0;34m(a, locals, convert_xor, strict, rational, evaluate)\u001b[0m\n\u001b[1;32m 394\u001b[0m conv \u001b[38;5;241m=\u001b[39m _sympy_converter\u001b[38;5;241m.\u001b[39mget(superclass)\n\u001b[1;32m 395\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m conv \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 396\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mconv\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 398\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 399\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m strict:\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:332\u001b[0m, in \u001b[0;36m\u001b[0;34m(d)\u001b[0m\n\u001b[1;32m 329\u001b[0m \u001b[38;5;21m__hash__\u001b[39m : Callable[[Basic], Any] \u001b[38;5;241m=\u001b[39m Basic\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__hash__\u001b[39m\n\u001b[1;32m 331\u001b[0m \u001b[38;5;66;03m# this handles dict, defaultdict, OrderedDict\u001b[39;00m\n\u001b[0;32m--> 332\u001b[0m _sympy_converter[\u001b[38;5;28mdict\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mlambda\u001b[39;00m d: \u001b[43mDict\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43md\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mitems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mclass\u001b[39;00m \u001b[38;5;21;01mOrderedSet\u001b[39;00m(MutableSet):\n\u001b[1;32m 335\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, iterable\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:259\u001b[0m, in \u001b[0;36mDict.__new__\u001b[0;34m(cls, *args)\u001b[0m\n\u001b[1;32m 257\u001b[0m items \u001b[38;5;241m=\u001b[39m [Tuple(k, v) \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mitems()]\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m iterable(args) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mall\u001b[39m(\u001b[38;5;28mlen\u001b[39m(arg) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m2\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args):\n\u001b[0;32m--> 259\u001b[0m items \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mTuple\u001b[49m\u001b[43m(\u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 260\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 261\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mPass Dict args as Dict((k1, v1), ...) or Dict(\u001b[39m\u001b[38;5;124m{\u001b[39m\u001b[38;5;124mk1: v1, ...})\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:259\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 257\u001b[0m items \u001b[38;5;241m=\u001b[39m [Tuple(k, v) \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mitems()]\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m iterable(args) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mall\u001b[39m(\u001b[38;5;28mlen\u001b[39m(arg) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m2\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args):\n\u001b[0;32m--> 259\u001b[0m items \u001b[38;5;241m=\u001b[39m [\u001b[43mTuple\u001b[49m\u001b[43m(\u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m args]\n\u001b[1;32m 260\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 261\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mPass Dict args as Dict((k1, v1), ...) or Dict(\u001b[39m\u001b[38;5;124m{\u001b[39m\u001b[38;5;124mk1: v1, ...})\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:52\u001b[0m, in \u001b[0;36mTuple.__new__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[38;5;28;01mclass\u001b[39;00m \u001b[38;5;21;01mTuple\u001b[39;00m(Basic):\n\u001b[1;32m 22\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 23\u001b[0m \u001b[38;5;124;03m Wrapper around the builtin tuple object.\u001b[39;00m\n\u001b[1;32m 24\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 49\u001b[0m \n\u001b[1;32m 50\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 52\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__new__\u001b[39m(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m kwargs\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msympify\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[1;32m 54\u001b[0m args \u001b[38;5;241m=\u001b[39m (sympify(arg) \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args)\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], "source": [ "def compute_derivatives_h2d(p):\n", " k = 1\n", @@ -89,43 +143,43 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs_helmholtz\n", - "derivs_helmholtz = compute_derivatives_h2d(4)" + "derivs_helmholtz = compute_derivatives_h2d(10)" ] }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "def evaluate_recurrence_lamb(coord_dict, rct_val, recur, p, derivs_list):\n", + "def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list):\n", " subs_dict = {}\n", - " subs_dict[g(-2)] = 0\n", - " subs_dict[g(-1)] = 0\n", - " subs_dict[g(0)] = derivs_list[0].subs(coord_dict).subs(rct, rct_val)\n", - " subs_dict[g(1)] = derivs_list[1].subs(coord_dict).subs(rct, rct_val) * rct_val\n", - " subs_dict[g(2)] = derivs_list[2].subs(coord_dict).subs(rct, rct_val) * rct_val**2\n", + " subs_dict[s(-2)] = 0\n", + " subs_dict[s(-1)] = 0\n", + " subs_dict[s(0)] = derivs_list[0].subs(coord_dict)\n", + " subs_dict[s(1)] = derivs_list[1].subs(coord_dict)\n", + " subs_dict[s(2)] = derivs_list[2].subs(coord_dict)\n", " var = _make_sympy_vec(\"x\", 2)\n", " for i in range(3, p):\n", - " exp = get_recurrence(recur.subs(rct, rct_val), i)\n", - " f = sp.lambdify([var[0], var[1], g(i-1), g(i-2), g(i-3), g(i-4), g(i-5)], exp)\n", - " subs_dict[g(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[g(i-1)], subs_dict[g(i-2)],\n", - " subs_dict[g(i-3)], subs_dict[g(i-4)], subs_dict[g(i-5)])\n", - " subs_dict.pop(g(-2))\n", - " subs_dict.pop(g(-1))\n", + " exp = get_recurrence(recur, i)\n", + " f = sp.lambdify([var[0], var[1], s(i-1), s(i-2), s(i-3), s(i-4), s(i-5)], exp)\n", + " subs_dict[s(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[s(i-1)], subs_dict[s(i-2)],\n", + " subs_dict[s(i-3)], subs_dict[s(i-4)], subs_dict[s(i-5)])\n", + " subs_dict.pop(s(-2))\n", + " subs_dict.pop(s(-1))\n", " return np.array(list(subs_dict.values()))" ] }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "def evaluate_true(coord_dict, rct_val, p, derivs_list):\n", + "def evaluate_true(coord_dict, p, derivs_list):\n", " retMe = []\n", " for i in range(p):\n", - " exp = (derivs_list[i]*rct_val**i)\n", + " exp = derivs_list[i]\n", " f = sp.lambdify(var, exp)\n", " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", " return np.array(retMe)" @@ -133,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -141,8 +195,7 @@ " var = _make_sympy_vec(\"x\", 2)\n", " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", "\n", - " rct_val = 1\n", - " exp = evaluate_recurrence_lamb(coord_dict, rct_val, recur, order+1, derivs_list)[order].evalf()\n", + " exp = evaluate_recurrence_lamb(coord_dict, recur, order+1, derivs_list)[order].evalf()\n", " \n", " true = derivs_list[order].subs(coord_dict).evalf()\n", "\n", @@ -151,12 +204,34 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def generate_error_grid(res, order_plot, recur, derivs):\n", + " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " res=len(x_grid)\n", + " plot_me = np.empty((res, res))\n", + " for i in range(res):\n", + " for j in range(res):\n", + " if abs(x_grid[i]) == abs(y_grid[j]):\n", + " plot_me[i, j] = 1e-16\n", + " else:\n", + " plot_me[i,j] = compute_error_coord(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs)\n", + " if plot_me[i,j] == 0:\n", + " plot_me[i, j] = 1e-16\n", + " return x_grid, y_grid, plot_me" + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABn40lEQVR4nO3de1xUdeL/8ffIZQAVDFEUEcJrEoo6YgmiookNXspL6+4WoWJl0M9V1kof/bzkppSVuSWYrmtku9+NtKT9moVUKiZrCYqbYqUtCiqK4AVBBYTP7w9/zDrOhbmcmTkzvJ+Pxzxqzpw58zl4mZfnqhBCCBARERG5sHaOHgARERGRrTF4iIiIyOUxeIiIiMjlMXiIiIjI5TF4iIiIyOUxeIiIiMjlMXiIiIjI5TF4iIiIyOUxeIiIiMjlMXicUFZWFhQKBQoLC/W+PmnSJNx///1a0+6//34oFAq9jzFjxpi8bAA4ffq05r0rVqzQO8+cOXM089xtzJgxiIiI0Pueqqoqg8s8ceIEZs2ahZCQEHh6eiIgIAAJCQn48ssvdebdu3cvFAoFtm/fbvLP4O5HVlYWZs2a1ep89/6MieSq5c/E3r17HT0Ui5w5cwZz5sxBUFAQlEolevTogalTpzp6WORk3B09ALKfmJgYvPXWWzrTfX19LVpex44dkZWVhWXLlqFdu/+2c21tLbZt2wZfX1/U1NRYPN4Wn332GX7/+9+jV69eWLp0Kfr374+LFy/igw8+QEJCAl588UWsWbOm1eXs2LED9fX1muebN2/GX//6V3z11Vfw8/PTTO/duzdiY2Mxb948vcvJysrCxo0b+RcukR0cO3YMY8aMQa9evfDWW28hODgYFRUVyM3NdfTQyMkweNqQTp064eGHH5ZseTNnzsTmzZvxzTffYPz48Zrp2dnZaGpqwuOPP46//e1vVn3Gr7/+isTERAwcOBB79+5F+/btNa898cQTeP755/Hmm29i6NCh+O1vf2t0WUOGDNF6/tVXXwEAVCoVAgICtF7r0qULevfurbOMgwcP4oMPPsCoUaPw5ptvmr0+N27cgI+Pj9nvs5Wmpibcvn0bSqVS5zW5jdVebt68CS8vL52tk4D1PxNjP29r3bx5E97e3pIvVx97/d4QQiAxMRE9e/bE/v37tX5uM2fOtPnnk2vhLi2yWP/+/REdHY0tW7ZoTd+yZQumTZumtdXEUu+88w5u3LiB9957Tyt2Wrz99tvo1KkTVq1aZfVntebChQuYPn06unTpgk8++QTu7sb/vbBixQooFAocPnwYM2bMwH333aeJKCEEMjMzMXjwYHh7e+O+++7DjBkz8J///EdnOV999RXGjRsHPz8/+Pj4YMCAAUhPT9e8PmbMGK3dki1mzZqltdutZVfkmjVr8NprryEsLAxKpRJ79uyRZKwtuysPHTqE2NhY+Pj4oFevXnj99dfR3NysNe/Vq1fxxz/+Eb169YJSqUTXrl2RkJCAn376STNPQ0MDXnvtNTzwwANQKpXo0qULZs+ejUuXLhn9ubcoLCzElClT4O/vDy8vLwwZMgSffPKJ1jwtu3B3796NOXPmoEuXLvDx8UF9fb1mffLz8xEdHQ0fHx/MmTMHAFBWVoannnoKXbt2hVKpxIABA/D2229rraexn7cht27dwpIlSxAWFgZPT0/06NEDqampuHr1qtZ8999/PyZNmoTPPvsMQ4YMgZeXF1599VUAwE8//YRHH30UPj4+CAgIwLx583D9+nW9n/f1119j3Lhx8PX1hY+PD2JiYvDNN99ozWPs94at5efno7i4GAsWLLBJJFLbwuBxYi3/Wrz3IYTQO78Qwqz5TZGcnIycnBxcuXIFAPDzzz+joKAAycnJRt+nbxxNTU068+Xl5SEwMNDglikfHx/Ex8fj2LFjuHDhgsXr0ZrGxkY88cQTqKqqwvbt2xEYGGjye6dNm4Y+ffpg27ZteP/99wEAzz33HBYsWIBHHnkEOTk5yMzMxPHjxxEdHY2LFy9q3vvXv/4VCQkJaG5uxvvvv4///d//xfz583H27FmL1+Xdd9/Ft99+i7feegtffvklHnjgAUnGCtyJwieffBJPPfUU/vnPf0KtVmPJkiVaW/quX7+OkSNHYuPGjZg9ezb+93//F++//z769euHiooKAEBzczMee+wxvP766/j973+PL774Aq+//jry8vIwZswY3Lx50+g67tmzBzExMbh69Sref/99fP755xg8eDBmzpyJrKwsnfnnzJkDDw8PfPTRR9i+fTs8PDwAABUVFXjqqafw+9//Hrt27UJKSgouXbqE6Oho7N69G3/605/wz3/+E4888ggWLVqEF154wayf992EEHj88cfx1ltvITExEV988QXS0tLw4YcfYuzY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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABo6ElEQVR4nO3de1xUdeL/8ffIZQAVFFESEfKehIKOWIKoZGKDl/LSurtFqFgZ9HOVtdKHP6+rUlbmlmCaW2a7342spP2ahVQqJmsJiltipS0KKorgBUEFhc/vD39MjjMDczkz58zwfj4e86g5c+bM5+BlXp6rSgghQEREROTC2sg9ACIiIiJ7Y/AQERGRy2PwEBERkctj8BAREZHLY/AQERGRy2PwEBERkctj8BAREZHLY/AQERGRy2PwEBERkctj8DihLVu2QKVSoaCgwOjr48ePx7333qs37d5774VKpTL6GDVqlNnLBoCTJ0/q3rts2TKj88ycOVM3z51GjRqF8PBwo++prKw0ucxjx45h+vTpCAkJgaenJwICApCQkIAvvvjCYN49e/ZApVLh448/NvtncOdjy5YtmD59eovz3f0zJlKqpj8Te/bskXsoVjl16hRmzpyJoKAgqNVqdOvWDZMmTZJ7WORk3OUeADlOTEwMXnvtNYPpvr6+Vi2vffv22LJlC5YsWYI2bX5r55qaGmzbtg2+vr6orq62erxNPv30U/zxj39Ez549sXjxYvTr1w/nz5/He++9h4SEBLzwwgtYs2ZNi8vZvn076urqdM83b96Mv/3tb/jyyy/h5+enm96rVy/ExsZi9uzZRpezZcsWbNy4kX/hEjnAjz/+iFGjRqFnz5547bXXEBwcjPLycuTk5Mg9NHIyDJ5WpEOHDnjwwQclW960adOwefNmfP311xgzZoxuelZWFhoaGvDYY4/h73//u02f8euvvyIxMREDBgzAnj170LZtW91rjz/+OJ577jm8+uqrGDx4MH7/+983u6xBgwbpPf/yyy8BABqNBgEBAXqvde7cGb169TJYxoEDB/Dee+9hxIgRePXVVy1en2vXrsHHx8fi99lLQ0MDbt26BbVabfCa0sbqKNevX4eXl5fB1knA9p9Jcz9vW12/fh3e3t6SL9cYR/3eEEIgMTER3bt3x759+/R+btOmTbP755Nr4S4tslq/fv0QHR2Nd999V2/6u+++i8mTJ+ttNbHWG2+8gWvXruGtt97Si50mr7/+Ojp06IBVq1bZ/FktOXfuHKZMmYLOnTvjo48+grt78/9eWLZsGVQqFQ4dOoSpU6eiY8eOuogSQiAzMxORkZHw9vZGx44dMXXqVPz3v/81WM6XX36J0aNHw8/PDz4+Pujfvz/S09N1r48aNUpvt2ST6dOn6+12a9oVuWbNGqxcuRI9evSAWq3G7t27JRlr0+7KgwcPIjY2Fj4+PujZsydefvllNDY26s17+fJl/PnPf0bPnj2hVqvRpUsXJCQk4KefftLNU19fj5UrV+K+++6DWq1G586dMWPGDFy4cKHZn3uTgoICTJw4Ef7+/vDy8sKgQYPw0Ucf6c3TtAt3165dmDlzJjp37gwfHx/U1dXp1icvLw/R0dHw8fHBzJkzAQClpaV48skn0aVLF6jVavTv3x+vv/663no29/M25caNG1i4cCF69OgBT09PdOvWDampqbh8+bLefPfeey/Gjx+PTz/9FIMGDYKXlxeWL18OAPjpp5/wyCOPwMfHBwEBAZg9ezauXr1q9PO++uorjB49Gr6+vvDx8UFMTAy+/vprvXma+71hb3l5eSgqKsLcuXPtEonUujB4nFjTvxbvfgghjM4vhLBofnMkJycjOzsbly5dAgD8/PPPyM/PR3JycrPvMzaOhoYGg/lyc3MRGBhocsuUj48P4uPj8eOPP+LcuXNWr0dLbt68iccffxyVlZX4+OOPERgYaPZ7J0+ejN69e2Pbtm14++23AQDPPvss5s6di4cffhjZ2dnIzMzE0aNHER0djfPnz+ve+7e//Q0JCQlobGzE22+/jf/93//FnDlzcPr0aavX5c0338Q333yD1157DV988QXuu+8+ScYK3I7CJ554Ak8++ST+9a9/QavVYuHChXpb+q5evYrhw4dj48aNmDFjBv73f/8Xb7/9Nvr27Yvy8nIAQGNjIx599FG8/PLL+OMf/4jPP/8cL7/8MnJzczFq1Chcv3692XXcvXs3YmJicPnyZbz99tv47LPPEBkZiWnTpmHLli0G88+cORMeHh744IMP8PHHH8PDwwMAUF5ejieffBJ//OMfsXPnTqSkpODChQuIjo7Grl278Je//AX/+te/8PDDD2P+/Pl4/vnnLfp530kIgcceewyvvfYaEhMT8fnnnyMtLQ3vv/8+HnroIb3dsQBw6NAhvPDCC5gzZw6+/PJLTJkyBefPn8fIkSPx448/IjMzEx988AFqamqMjuvvf/874uPj4evri/fffx8fffQR/P39MXbsWIPoAYz/3jDF2J9va/7uycvLA3B793lCQgK8vLzQrl07jB8/Xi+OicwiyOm89957AkCzj9DQUL33hIaGmpz3L3/5i8GyDx48aPLzS0pKBADx6quviqtXr4p27dqJ9evXCyGEeOGFF0SPHj1EY2OjSE1NFXf/Fhs5cmSLY1+6dKlufi8vL/Hggw82+/N46aWXBADx3XffCSGE2L17twAgtm3b1uz7li5dKgCICxcuNDufEEKkpKQIAOLtt99ucd67l79kyRK96f/+978FAPH666/rTS8rKxPe3t7ixRdfFEIIcfXqVeHr6yuGDx8uGhsbTX7OyJEjxciRIw2mJyUl6f0+aPp169Wrl6ivr5d0rE3juPPXoUlYWJgYO3as7vmKFSsEAJGbm2tynf75z38KAOKTTz7Rm37w4EEBQGRmZpp8rxBC3HfffWLQoEHi5s2betPHjx8vunbtKhoaGoQQv/1+f+qppwyW0bQ+X3/9td70BQsWGF3P5557TqhUKvHzzz8LIZr/eRvz5ZdfCgBizZo1etOzsrIEALFp0ybdtNDQUOHm5qb7rCYvvfSSUKlUoqioSG/6mDFjBACxe/duIYQQtbW1wt/fX0yYMEFvvoaGBhERESGGDh2qm2bq94YpTettzqNpPKY8++yzAoDw9fUVycnJ4quvvhIffPCBCA0NFQEBAeLs2bNmjYlICCF4DI8T27p1K/r3728wfd68eSgrKzOYPnz4cLzxxhsG07t162b1GNq1a4fHH38c7777Lp599lls3boVqampRo9/aNKrVy98+OGHBtOvXLmChx9+2OIxiP//r8TmPtMWW7ZsQWZmJmbOnIlnn33W4vdPmTJF7/mOHTugUqnw5JNP4tatW7rp99xzDyIiInRn0uTn56O6uhopKSmSrtvEiRN1WzCkGuud04cOHao3beDAgSgqKtI9/+KLL9C3b99mf6137NiBDh06YMKECXqfGxkZiXvuuQd79uzBc889Z/S9J06cwE8//aQ7QP/O9yckJGDHjh34+eef9f7s3L3eTTp27IiHHnpIb9o333yDsLAwg/WcPn06NmzYgG+++QZ9+/bVTW/u5333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", "text/plain": [ "
" ] @@ -166,20 +241,8 @@ } ], "source": [ - "res = 5\n", - "x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - "y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - "res=len(x_grid)\n", "order_plot = 6\n", - "plot_me = np.empty((res, res))\n", - "for i in range(res):\n", - " for j in range(res):\n", - " if abs(x_grid[i]) == abs(y_grid[j]):\n", - " plot_me[i, j] = 1e-16\n", - " else:\n", - " plot_me[i,j] = compute_error_coord(r_new_helmholtz, np.array([x_grid[i],y_grid[j]]), order_plot, derivs_helmholtz)\n", - " if plot_me[i,j] == 0:\n", - " plot_me[i, j] = 1e-16\n", + "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace)\n", " \n", "fig, ax = plt.subplots()\n", "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", @@ -193,8 +256,41 @@ ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 12, "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "order_plot = 7\n", + "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace)\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"HELMHOLTZ recurrence error order = \"+str(order_plot))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [] } ], From 576993d2faabf55a0fbd844d335548cd03dc8ee6 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 21 Dec 2024 12:31:51 -0800 Subject: [PATCH 118/193] Make evaluate_recurrence_lamb take n_initial, n_order --- test/modified_recur.ipynb | 142 +++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 72 deletions(-) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb index f9634c77a..34a2ba3d8 100644 --- a/test/modified_recur.ipynb +++ b/test/modified_recur.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -43,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -73,64 +73,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 6, "metadata": {}, - "outputs": [ - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[13], line 12\u001b[0m\n\u001b[1;32m 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [sp\u001b[38;5;241m.\u001b[39mdiff(g_x_y,\n\u001b[1;32m 9\u001b[0m var_t[\u001b[38;5;241m0\u001b[39m], i)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n\u001b[0;32m---> 12\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43mcompute_derivatives_h2d\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m)\u001b[49m\n", - "Cell \u001b[0;32mIn[13], line 8\u001b[0m, in \u001b[0;36mcompute_derivatives_h2d\u001b[0;34m(p)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", - "Cell \u001b[0;32mIn[13], line 8\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:2481\u001b[0m, in \u001b[0;36mdiff\u001b[0;34m(f, *symbols, **kwargs)\u001b[0m\n\u001b[1;32m 2417\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2418\u001b[0m \u001b[38;5;124;03mDifferentiate f with respect to symbols.\u001b[39;00m\n\u001b[1;32m 2419\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2478\u001b[0m \n\u001b[1;32m 2479\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2480\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(f, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdiff\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[0;32m-> 2481\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2482\u001b[0m kwargs\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 2483\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _derivative_dispatch(f, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:3575\u001b[0m, in \u001b[0;36mExpr.diff\u001b[0;34m(self, *symbols, **assumptions)\u001b[0m\n\u001b[1;32m 3573\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdiff\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39massumptions):\n\u001b[1;32m 3574\u001b[0m assumptions\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m-> 3575\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_derivative_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43massumptions\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1908\u001b[0m, in \u001b[0;36m_derivative_dispatch\u001b[0;34m(expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1906\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtensor\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray_derivatives\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ArrayDerivative\n\u001b[1;32m 1907\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ArrayDerivative(expr, \u001b[38;5;241m*\u001b[39mvariables, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1908\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDerivative\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1436\u001b[0m, in \u001b[0;36mDerivative.__new__\u001b[0;34m(cls, expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1429\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m old_v\u001b[38;5;241m.\u001b[39mis_scalar \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(\n\u001b[1;32m 1430\u001b[0m old_v, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m_eval_derivative\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m 1431\u001b[0m \u001b[38;5;66;03m# special hack providing evaluation for classes\u001b[39;00m\n\u001b[1;32m 1432\u001b[0m \u001b[38;5;66;03m# that have defined is_scalar=True but have no\u001b[39;00m\n\u001b[1;32m 1433\u001b[0m \u001b[38;5;66;03m# _eval_derivative defined\u001b[39;00m\n\u001b[1;32m 1434\u001b[0m expr \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m=\u001b[39m old_v\u001b[38;5;241m.\u001b[39mdiff(old_v)\n\u001b[0;32m-> 1436\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_dispatch_eval_derivative_n_times\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcount\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m obj \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mis_zero:\n\u001b[1;32m 1438\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1897\u001b[0m, in \u001b[0;36mDerivative._dispatch_eval_derivative_n_times\u001b[0;34m(cls, expr, v, count)\u001b[0m\n\u001b[1;32m 1891\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[1;32m 1892\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_dispatch_eval_derivative_n_times\u001b[39m(\u001b[38;5;28mcls\u001b[39m, expr, v, count):\n\u001b[1;32m 1893\u001b[0m \u001b[38;5;66;03m# Evaluate the derivative `n` times. If\u001b[39;00m\n\u001b[1;32m 1894\u001b[0m \u001b[38;5;66;03m# `_eval_derivative_n_times` is not overridden by the current\u001b[39;00m\n\u001b[1;32m 1895\u001b[0m \u001b[38;5;66;03m# object, the default in `Basic` will call a loop over\u001b[39;00m\n\u001b[1;32m 1896\u001b[0m \u001b[38;5;66;03m# `_eval_derivative`:\u001b[39;00m\n\u001b[0;32m-> 1897\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mexpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_eval_derivative_n_times\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcount\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/cache.py:72\u001b[0m, in \u001b[0;36m__cacheit..func_wrapper..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 70\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 71\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 72\u001b[0m retval \u001b[38;5;241m=\u001b[39m \u001b[43mcfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 74\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m e\u001b[38;5;241m.\u001b[39margs \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m e\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mstartswith(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124munhashable type:\u001b[39m\u001b[38;5;124m'\u001b[39m):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/mul.py:987\u001b[0m, in \u001b[0;36mMul._eval_derivative_n_times\u001b[0;34m(self, s, n)\u001b[0m\n\u001b[1;32m 985\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mntheory\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmultinomial\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m multinomial_coefficients_iterator\n\u001b[1;32m 986\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m kvals, c \u001b[38;5;129;01min\u001b[39;00m multinomial_coefficients_iterator(m, n):\n\u001b[0;32m--> 987\u001b[0m p \u001b[38;5;241m=\u001b[39m Mul(\u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43marg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43marg\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mzip\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mkvals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 988\u001b[0m terms\u001b[38;5;241m.\u001b[39mappend(c \u001b[38;5;241m*\u001b[39m p)\n\u001b[1;32m 989\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Add(\u001b[38;5;241m*\u001b[39mterms)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/mul.py:987\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 985\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mntheory\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmultinomial\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m multinomial_coefficients_iterator\n\u001b[1;32m 986\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m kvals, c \u001b[38;5;129;01min\u001b[39;00m multinomial_coefficients_iterator(m, n):\n\u001b[0;32m--> 987\u001b[0m p \u001b[38;5;241m=\u001b[39m Mul(\u001b[38;5;241m*\u001b[39m[\u001b[43marg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m k, arg \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(kvals, args)])\n\u001b[1;32m 988\u001b[0m terms\u001b[38;5;241m.\u001b[39mappend(c \u001b[38;5;241m*\u001b[39m p)\n\u001b[1;32m 989\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Add(\u001b[38;5;241m*\u001b[39mterms)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:3575\u001b[0m, in \u001b[0;36mExpr.diff\u001b[0;34m(self, *symbols, **assumptions)\u001b[0m\n\u001b[1;32m 3573\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdiff\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39massumptions):\n\u001b[1;32m 3574\u001b[0m assumptions\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m-> 3575\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_derivative_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43massumptions\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1908\u001b[0m, in \u001b[0;36m_derivative_dispatch\u001b[0;34m(expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1906\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtensor\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray_derivatives\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ArrayDerivative\n\u001b[1;32m 1907\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ArrayDerivative(expr, \u001b[38;5;241m*\u001b[39mvariables, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1908\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDerivative\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1474\u001b[0m, in \u001b[0;36mDerivative.__new__\u001b[0;34m(cls, expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1472\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexprtools\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m factor_terms\n\u001b[1;32m 1473\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m signsimp\n\u001b[0;32m-> 1474\u001b[0m expr \u001b[38;5;241m=\u001b[39m \u001b[43mfactor_terms\u001b[49m\u001b[43m(\u001b[49m\u001b[43msignsimp\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1475\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1267\u001b[0m, in \u001b[0;36mfactor_terms\u001b[0;34m(expr, radical, clear, fraction, sign)\u001b[0m\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n\u001b[1;32m 1266\u001b[0m expr \u001b[38;5;241m=\u001b[39m sympify(expr)\n\u001b[0;32m-> 1267\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAdd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m [\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m Add\u001b[38;5;241m.\u001b[39mmake_args(p)]\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAdd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m [\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m Add\u001b[38;5;241m.\u001b[39mmake_args(p)]\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAdd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmake_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1242\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1240\u001b[0m cont, p \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mas_content_primitive(radical\u001b[38;5;241m=\u001b[39mradical, clear\u001b[38;5;241m=\u001b[39mclear)\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m p\u001b[38;5;241m.\u001b[39mis_Add:\n\u001b[0;32m-> 1242\u001b[0m list_args \u001b[38;5;241m=\u001b[39m [\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m Add\u001b[38;5;241m.\u001b[39mmake_args(p)]\n\u001b[1;32m 1243\u001b[0m \u001b[38;5;66;03m# get a common negative (if there) which gcd_terms does not remove\u001b[39;00m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(a\u001b[38;5;241m.\u001b[39mas_coeff_Mul()[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mextract_multiplicatively(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m list_args):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1263\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m gcd_terms(p,\n\u001b[1;32m 1258\u001b[0m isprimitive\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 1259\u001b[0m clear\u001b[38;5;241m=\u001b[39mclear,\n\u001b[1;32m 1260\u001b[0m fraction\u001b[38;5;241m=\u001b[39mfraction)\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[0;32m-> 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n\u001b[1;32m 1264\u001b[0m rv \u001b[38;5;241m=\u001b[39m _keep_coeff(cont, p, clear\u001b[38;5;241m=\u001b[39mclear, sign\u001b[38;5;241m=\u001b[39msign)\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1230\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1227\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Pow \u001b[38;5;129;01mor\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Function \u001b[38;5;129;01mor\u001b[39;00m \\\n\u001b[1;32m 1228\u001b[0m is_iterable \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(expr, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124margs_cnc\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m 1229\u001b[0m args \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39margs\n\u001b[0;32m-> 1230\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1231\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m newargs \u001b[38;5;241m==\u001b[39m args:\n\u001b[1;32m 1232\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1230\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1227\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Pow \u001b[38;5;129;01mor\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mis_Function \u001b[38;5;129;01mor\u001b[39;00m \\\n\u001b[1;32m 1228\u001b[0m is_iterable \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(expr, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124margs_cnc\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m 1229\u001b[0m args \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39margs\n\u001b[0;32m-> 1230\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mdo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1231\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m newargs \u001b[38;5;241m==\u001b[39m args:\n\u001b[1;32m 1232\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1257\u001b[0m, in \u001b[0;36mfactor_terms..do\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1255\u001b[0m \u001b[38;5;66;03m# rebuild p not worrying about the order which gcd_terms will fix\u001b[39;00m\n\u001b[1;32m 1256\u001b[0m p \u001b[38;5;241m=\u001b[39m Add\u001b[38;5;241m.\u001b[39m_from_args(list_args)\n\u001b[0;32m-> 1257\u001b[0m p \u001b[38;5;241m=\u001b[39m \u001b[43mgcd_terms\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1258\u001b[0m \u001b[43m \u001b[49m\u001b[43misprimitive\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 1259\u001b[0m \u001b[43m \u001b[49m\u001b[43mclear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mclear\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1260\u001b[0m \u001b[43m \u001b[49m\u001b[43mfraction\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfraction\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mxreplace(special)\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs:\n\u001b[1;32m 1262\u001b[0m p \u001b[38;5;241m=\u001b[39m p\u001b[38;5;241m.\u001b[39mfunc(\n\u001b[1;32m 1263\u001b[0m \u001b[38;5;241m*\u001b[39m[do(a) \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m p\u001b[38;5;241m.\u001b[39margs])\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:1068\u001b[0m, in \u001b[0;36mgcd_terms\u001b[0;34m(terms, isprimitive, clear, fraction)\u001b[0m\n\u001b[1;32m 1066\u001b[0m terms \u001b[38;5;241m=\u001b[39m sympify(terms)\n\u001b[1;32m 1067\u001b[0m terms, reps \u001b[38;5;241m=\u001b[39m mask(terms)\n\u001b[0;32m-> 1068\u001b[0m cont, numer, denom \u001b[38;5;241m=\u001b[39m \u001b[43m_gcd_terms\u001b[49m\u001b[43m(\u001b[49m\u001b[43mterms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43misprimitive\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfraction\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1069\u001b[0m numer \u001b[38;5;241m=\u001b[39m numer\u001b[38;5;241m.\u001b[39mxreplace(reps)\n\u001b[1;32m 1070\u001b[0m coeff, factors \u001b[38;5;241m=\u001b[39m cont\u001b[38;5;241m.\u001b[39mas_coeff_Mul()\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:953\u001b[0m, in \u001b[0;36m_gcd_terms\u001b[0;34m(terms, isprimitive, fraction)\u001b[0m\n\u001b[1;32m 950\u001b[0m cont \u001b[38;5;241m=\u001b[39m cont\u001b[38;5;241m.\u001b[39mgcd(term)\n\u001b[1;32m 952\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, term \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(terms):\n\u001b[0;32m--> 953\u001b[0m terms[i] \u001b[38;5;241m=\u001b[39m \u001b[43mterm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mquo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcont\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 955\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m fraction:\n\u001b[1;32m 956\u001b[0m denom \u001b[38;5;241m=\u001b[39m terms[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mdenom\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:868\u001b[0m, in \u001b[0;36mTerm.quo\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 867\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mquo\u001b[39m(\u001b[38;5;28mself\u001b[39m, other): \u001b[38;5;66;03m# Term\u001b[39;00m\n\u001b[0;32m--> 868\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmul\u001b[49m\u001b[43m(\u001b[49m\u001b[43mother\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minv\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:857\u001b[0m, in \u001b[0;36mTerm.mul\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 855\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mmul\u001b[39m(\u001b[38;5;28mself\u001b[39m, other): \u001b[38;5;66;03m# Term\u001b[39;00m\n\u001b[1;32m 856\u001b[0m coeff \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcoeff\u001b[38;5;241m*\u001b[39mother\u001b[38;5;241m.\u001b[39mcoeff\n\u001b[0;32m--> 857\u001b[0m numer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnumer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmul\u001b[49m\u001b[43m(\u001b[49m\u001b[43mother\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnumer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 858\u001b[0m denom \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdenom\u001b[38;5;241m.\u001b[39mmul(other\u001b[38;5;241m.\u001b[39mdenom)\n\u001b[1;32m 860\u001b[0m numer, denom \u001b[38;5;241m=\u001b[39m numer\u001b[38;5;241m.\u001b[39mnormal(denom)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:484\u001b[0m, in \u001b[0;36mFactors.mul\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 480\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[1;32m 482\u001b[0m factors[factor] \u001b[38;5;241m=\u001b[39m exp\n\u001b[0;32m--> 484\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mFactors\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfactors\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/exprtools.py:324\u001b[0m, in \u001b[0;36mFactors.__init__\u001b[0;34m(self, factors)\u001b[0m\n\u001b[1;32m 322\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(factors, Factors):\n\u001b[1;32m 323\u001b[0m factors \u001b[38;5;241m=\u001b[39m factors\u001b[38;5;241m.\u001b[39mfactors\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[0;32m--> 324\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[43mfactors\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mS\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mOne\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 325\u001b[0m factors \u001b[38;5;241m=\u001b[39m {}\n\u001b[1;32m 326\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m factors \u001b[38;5;129;01mis\u001b[39;00m S\u001b[38;5;241m.\u001b[39mZero \u001b[38;5;129;01mor\u001b[39;00m factors \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/numbers.py:1941\u001b[0m, in \u001b[0;36mInteger.__eq__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1939\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(other, Integer):\n\u001b[1;32m 1940\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mp \u001b[38;5;241m==\u001b[39m other\u001b[38;5;241m.\u001b[39mp)\n\u001b[0;32m-> 1941\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mRational\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__eq__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mother\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/numbers.py:1593\u001b[0m, in \u001b[0;36mRational.__eq__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 1591\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__eq__\u001b[39m(\u001b[38;5;28mself\u001b[39m, other):\n\u001b[1;32m 1592\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1593\u001b[0m other \u001b[38;5;241m=\u001b[39m \u001b[43m_sympify\u001b[49m\u001b[43m(\u001b[49m\u001b[43mother\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1594\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m SympifyError:\n\u001b[1;32m 1595\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mNotImplemented\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/sympify.py:514\u001b[0m, in \u001b[0;36m_sympify\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m 488\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_sympify\u001b[39m(a):\n\u001b[1;32m 489\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 490\u001b[0m \u001b[38;5;124;03m Short version of :func:`~.sympify` for internal usage for ``__add__`` and\u001b[39;00m\n\u001b[1;32m 491\u001b[0m \u001b[38;5;124;03m ``__eq__`` methods where it is ok to allow some things (like Python\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 512\u001b[0m \n\u001b[1;32m 513\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 514\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msympify\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstrict\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/sympify.py:396\u001b[0m, in \u001b[0;36msympify\u001b[0;34m(a, locals, convert_xor, strict, rational, evaluate)\u001b[0m\n\u001b[1;32m 394\u001b[0m conv \u001b[38;5;241m=\u001b[39m _sympy_converter\u001b[38;5;241m.\u001b[39mget(superclass)\n\u001b[1;32m 395\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m conv \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 396\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mconv\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 398\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 399\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m strict:\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:332\u001b[0m, in \u001b[0;36m\u001b[0;34m(d)\u001b[0m\n\u001b[1;32m 329\u001b[0m \u001b[38;5;21m__hash__\u001b[39m : Callable[[Basic], Any] \u001b[38;5;241m=\u001b[39m Basic\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__hash__\u001b[39m\n\u001b[1;32m 331\u001b[0m \u001b[38;5;66;03m# this handles dict, defaultdict, OrderedDict\u001b[39;00m\n\u001b[0;32m--> 332\u001b[0m _sympy_converter[\u001b[38;5;28mdict\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mlambda\u001b[39;00m d: \u001b[43mDict\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43md\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mitems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mclass\u001b[39;00m \u001b[38;5;21;01mOrderedSet\u001b[39;00m(MutableSet):\n\u001b[1;32m 335\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, iterable\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:259\u001b[0m, in \u001b[0;36mDict.__new__\u001b[0;34m(cls, *args)\u001b[0m\n\u001b[1;32m 257\u001b[0m items \u001b[38;5;241m=\u001b[39m [Tuple(k, v) \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mitems()]\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m iterable(args) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mall\u001b[39m(\u001b[38;5;28mlen\u001b[39m(arg) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m2\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args):\n\u001b[0;32m--> 259\u001b[0m items \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mTuple\u001b[49m\u001b[43m(\u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 260\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 261\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mPass Dict args as Dict((k1, v1), ...) or Dict(\u001b[39m\u001b[38;5;124m{\u001b[39m\u001b[38;5;124mk1: v1, ...})\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:259\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 257\u001b[0m items \u001b[38;5;241m=\u001b[39m [Tuple(k, v) \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mitems()]\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m iterable(args) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mall\u001b[39m(\u001b[38;5;28mlen\u001b[39m(arg) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m2\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args):\n\u001b[0;32m--> 259\u001b[0m items \u001b[38;5;241m=\u001b[39m [\u001b[43mTuple\u001b[49m\u001b[43m(\u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m args]\n\u001b[1;32m 260\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 261\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mPass Dict args as Dict((k1, v1), ...) or Dict(\u001b[39m\u001b[38;5;124m{\u001b[39m\u001b[38;5;124mk1: v1, ...})\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/containers.py:52\u001b[0m, in \u001b[0;36mTuple.__new__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[38;5;28;01mclass\u001b[39;00m \u001b[38;5;21;01mTuple\u001b[39;00m(Basic):\n\u001b[1;32m 22\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 23\u001b[0m \u001b[38;5;124;03m Wrapper around the builtin tuple object.\u001b[39;00m\n\u001b[1;32m 24\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 49\u001b[0m \n\u001b[1;32m 50\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 52\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__new__\u001b[39m(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 53\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m kwargs\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msympify\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[1;32m 54\u001b[0m args \u001b[38;5;241m=\u001b[39m (sympify(arg) \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args)\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "def compute_derivatives_h2d(p):\n", " k = 1\n", @@ -143,22 +88,21 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs_helmholtz\n", - "derivs_helmholtz = compute_derivatives_h2d(10)" + "derivs_helmholtz = compute_derivatives_h2d(8)" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list):\n", + "def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list, n_initial, n_order):\n", " subs_dict = {}\n", " subs_dict[s(-2)] = 0\n", " subs_dict[s(-1)] = 0\n", - " subs_dict[s(0)] = derivs_list[0].subs(coord_dict)\n", - " subs_dict[s(1)] = derivs_list[1].subs(coord_dict)\n", - " subs_dict[s(2)] = derivs_list[2].subs(coord_dict)\n", + " for i in range(n_initial):\n", + " subs_dict[s(i)] = derivs_list[i].subs(coord_dict)\n", " var = _make_sympy_vec(\"x\", 2)\n", " for i in range(3, p):\n", " exp = get_recurrence(recur, i)\n", @@ -172,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -187,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -204,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -226,7 +170,38 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3S4hIcHksp944gk88cQTsozzdvfeey+2bt2KP/zhD4iKikJqaqr+woObNm3Cv/71LyxYsADTpk0zeq+pdQWAESNGtLjf/89//jP27duHP/zhD/D19TW7LGuuDRITE4Onn34aM2bMQH5+PoYPH462bduirKwM33zzDfr164dnn30W7dq1w+uvv47Zs2fjoYcewlNPPYWgoCCcPHkSR48exdtvvw0ASExMxPr16/HEE0/gqaeeQmVlJVavXm1z7EgZqxTz5s1DZmYmJk6ciIULF2LIkCG4fv069u3bh3HjxiEuLg6///3v8cEHHyAhIQF//OMfMWTIEHh4eOD06dPYs2cPJk6c2OyFH9evXw+dTocxY8Zg+vTp6NatGy5evIjjx4/j8OHD2LZtm9U/k/nz52PLli0YO3Ysli9fjrCwMHz++efIyMjAs88+a3RcjaUefvhhjBkzBi+88AKqqqoQExOD//znP1iyZAkGDhyIxMTEFpcxb948bNq0CWPHjsXLL7+MoKAgfPDBBwan+wO3jr176623kJSUhIsXL2Lq1Kno3LkzLly4gKNHj+LChQtW/yPC09NTtl3nr776KoqKijB69GiEhISgvLwc7777Lnbv3o2lS5cabU0japaih0yTVVo6k2rs2LGSztLq1q2b0bLNPYqLiw3O0mqOubO07r//fpPzX7hwwegsrSbHjh0TSUlJIiQkRHh4eIiAgADxyCOPiM8//9xo3qaztMw9ms4Mae4sreZ+Xrc/mtPSWWCbNm0SDzzwgGjbtq3w8fER9957r3jyySdFfn6+wXy7du0SI0aMEG3bthW+vr4iPDxcvPLKKwbzvP/++6Jv377C29tbhIeHi8zMTLNnaZn6dZNjrOZ+be8chxBCXLp0Sfzxj38UoaGhwsPDQ3Tu3FmMHTtW/Pjjj/p56uvrxWuvvSYiIyOFt7e3aNeunbjvvvvEM888I06cOGFynLc7evSo+N3vfic6d+4sPDw8RJcuXcSoUaMMzrRr7s9Sc79Xf/31V/H444+Ljh07Cg8PD9GnTx/x6quv6s/+EqL5n7c5169fFy+88IIICwsTHh4eomvXruLZZ58Vly5dMpgvLCxMjB071uQyioqKxMMPPyy8vb1FQECAmDVrlvj0009NnhW1b98+MXbsWBEQECA8PDxEt27dxNixYw3OcJRyNqPcPvvsMzFs2DDRqVMn4e7uLtq3by9iY2PFP//5T4ePhZyfRggbLsJCRERE5AR4xBcRERG5vFYRPDt37tQfyLhx40alh0NERNRqKfWd7PK7tG7evInw8HDs2bMHfn5+GDRoEL799lsEBAQoPTQiIqJWRcnvZJffwvPdd9/h/vvvR7du3dC+fXskJCQgOztb6WERERG1Okp+J6s+eHJzczF+/HgEBwdDo9EgKyvLaJ6MjAz06NED3t7e0Gq12L9/v/61s2fPGtw6ISQkBGfOnHHE0ImIiFyKM38nqz54ampqEBkZqb/myJ0yMzMxb948vPjiizhy5AhiY2Oh0+lQUlICACbvxmuvey4RERG5Mmf+Tlb9hQd1Ol2z90pZs2YNZs2ahdmzZwMA1q5di+zsbKxbtw5paWno1q2bQT2ePn262Su31tbWora2Vv+8sbERFy9eRMeOHRlKRETULCEErl69iuDgYLvd+uLGjRuoq6uTZVlCCKPvNi8vL7O3jXH0d7KslLsEkHQAxI4dO/TPa2trhZubm/jkk08M5ps7d64YPny4EOLWxct69uwpTp8+LaqqqkTPnj1FRUWF2c9ousgWH3zwwQcffFj7KC0ttcv34PXr10WXoC6yjbNdu3ZG00xd/NUUwP7fyXJS/Rae5lRUVKChocHoJndBQUH6m+W5u7vj9ddfR1xcHBobG/H888+bvKNzk0WLFiE1NVX//MqVKwgNDcXJYyebvWEh2Vflles4U3lN6WG0er9cvgEAKLpUo/BI5HPoQrXSQ7BJ0dmrSg+h1aq+YHzsiai/gcaPFtnt+6Kurg7nzp/DiWMn4NfettvHVF2tQq/7e6G0tNTgVjTW3ijZHt/JcnLq4Gly5+Y4cccmugkTJmDChAkWLatpU156ejrS09PR0NAA4NbdmeW4NxFJU3H5OgDgcm0d2rZjcCrpxKXr8GnbDj9crIGXbzulh2PSwXLpX/7uPm1bnkmlvj9dBY2Xr9LDaHWqy08DADSePmbnsfchEH7t/WT7TvLzk29ZgLzfyXJy6uAJDAyEm5ubvhyblJeXGxWmVCkpKUhJSUFVVRX8/f1tWhZJ1xQ6AFBa4TpbE5zRiUu//Vr8cNFxvxbWxEtr8f3pKqWH0Co1hQ6ZZs/vZDk4dfB4enpCq9UiJyfH4M7JOTk5mDhxok3LvnMLDznG7aEDMHaUdHvoALbFDuNFPowdx2PoWMae38lyUH3wVFdX4+TJk/rnxcXFKCwsREBAAEJDQ5GamorExEQMHjwYQ4cOxYYNG1BSUoI5c+bY9LncwuNYDB11sTR2GDKOxdhxHEaOaUp9J8tB9cGTn5+PuLg4/fOmA4qTkpKwefNmTJs2DZWVlVi+fDnKysoQERGBXbt2ISwsTKkhk0SMHfW4M3QAx+7GIvMYO47B0GmeM38nu/y9tKx1+y6tn3/+GedLzvOgZZndGToAY0cppkIHaDl2uIXHMRg79idX6Ii662j4YD6uXLlil++Mpr0OcnwnVVVVISg0yG5jVRvVb+FRCndp2Y+p0AEYO0rhVh31YujYH7fotB4MHnIYc6EDMHaUYO1WHXIMxo79MHJaJwaPGTxLS16MHfUwFzoAY0ctGDv2wdBp3VR/81ClpKSkoKioCIcOHVJ6KE6t4vJ1xo6KyBk7PH7HPhg78qsuP83YIW7hIftoLnKaMHYcp7nQAbhlRy0YO/Ji5NDtGDxmcJeWdSwJHYCx4ygthQ7A2FEDho58GDlkDndpmcFdWtK0tOvqdowdx2DsOAfGjjy424pawi08ZDNLQwdg7DiCJaEDMHbUgLFjO0YOWYrBQ1aTEjoAY8feLA0dgLGjBowd2zB0SCoGD0nG0FEfxo5zYexYh5FDtmDwmMGDlo1JDR2AsWNvUkIHYOwojaFjHYYOyYHBYwZvLWGIsaMuUkMHYOwojbEjHUOH5MTgoWZZEzoAY8eeuFXH+TB2pGHokD0weMgka0MHYOzYC7fqOCfGjmUYOWRvDB4yYEvoAIwde7AmdADGjtIYOpZh6JCjMHgIgO2hAzB27IGx45wYOy1j6JCjMXjMaE1naTF21Mfa0AEYO0pj7DSPoUNKYfCY0RrO0pIjdADGjpxsCR2AsaM0xo55DB1SGoOnFZIrdADGjpwYO86NsWOMkUNqwuBpReQMHYCxIxdbQwdg7CiJoWOMoUNqxOBpBeQOHYCxIwc5Qgdg7CiJsWOIoUNqxuBxcdyqo06MHefH2PkNQ4ecAYPHRXGrjjrJFToAY0dJjB1GDjkfBo+LsUfoAIwdW8kZOgBjR0mtPXYYOuSsGDxmONt1eOwVOgBjx1bcquMaGDoMHXJuDB4znOk6PIwddeJWHdfRmmOHoUOugsHjxOwZOgBjx1pyhw7A2FFSa4wdRg65ojZKD4Ckq7h8nbGjUowd19LaYqe6/DRjhxRVWlqKkSNHIjw8HP3798e2bdtkWza38DgRe0dOE8aOdPYIHYCxo6TWFDuMHFILd3d3rF27FgMGDEB5eTkGDRqEhIQEtG3b1vZlyzA+sjNHhQ7A2JHKXqEDMHaUwtAhUk7Xrl3RtWtXAEDnzp0REBCAixcvyhI83KWlcowd9WLsuJ7WEDtNu60YO2SN3NxcjB8/HsHBwdBoNMjKyjKaJyMjAz169IC3tze0Wi32799v1Wfl5+ejsbER3bt3t3HUt3ALj0o5MnQAxo4U9gwdgLGjFFePHQYOyaGmpgaRkZGYMWMGpkyZYvR6ZmYm5s2bh4yMDMTExGD9+vXQ6XQoKipCaGgoAECr1aK2ttbovbt370ZwcDAAoLKyEk8++SQ2btwo29hbRfBMmjQJe/fuxejRo7F9+3alh9MsR4cOwNiRgrHjmlw5dhg61JKqKsPf/15eXvDy8jI5r06ng06nM7usNWvWYNasWZg9ezYAYO3atcjOzsa6deuQlpYGACgoKGh2PLW1tZg0aRIWLVqE6OhoKavSrFYRPHPnzsXMmTPx/vvvKz0Usxg66mbv0AEYO0pg6JCzqrxyHXWNHjYt4+rVW3+v3bnLaMmSJVi6dKnk5dXV1aGgoAALFy40mB4fH4+8vDyLliGEwPTp0zFq1CgkJiZKHkNzWkXwxMXFYe/evUoPwyzGjno5InQAxo4SXDF2GDlkjdLSUvj5+emfm9u605KKigo0NDQgKCjIYHpQUBDOnTtn0TIOHDiAzMxM9O/fX3980NatW9GvXz+rxnQ7xQ9aduQBUGrjiOvpmMLYsQxjx7yD5VeVHoJNGDtEv/Hz8zN4WBs8TTQajcFzIYTRNHOGDRuGxsZGFBYW6h9yxA6ggi08jjoASk2UiJwmjJ2WMXRcmyvGDpEaBAYGws3NzWhrTnl5udFWHyUoHjyOOABKitraWoN4uvNgLlsoGToAY6cljgodgLGjFMYOkf14enpCq9UiJycHkyZN0k/PycnBxIkTFRzZLYoHT3PkOABKqrS0NCxbtkzWZSodOgBjpyWMHdfG0CGSR3V1NU6ePKl/XlxcjMLCQgQEBCA0NBSpqalITEzE4MGDMXToUGzYsAElJSWYM2eOgqO+RdXBI8cBUAAwZswYHD58GDU1NQgJCcGOHTsQFRVlct5FixYhNTVV/7yqqsqmix4xdtTNkaEDMHaUwNghkk9+fj7i4uL0z5u+L5OSkrB582ZMmzYNlZWVWL58OcrKyhAREYFdu3YhLCxMqSHrqTp4mthyABQAZGdnWzxv0/UH0tPTkZ6ejoaGBovfezs1hA7A2DHH0aEDMHaUwNghktfIkSMhhGh2nuTkZCQnJztoRJZT/Cyt5ih5AFRKSgqKiopw6NAhSe9T6swrUxg7pjF2WgfGDhHdTtXBc/sBULfLycmR9eqLpqSnpyM8PNzsrq87qSl0AMaOKScuXWfstBKMHSK6k+K7tNR6AFRKSgpSUlJQVVUFf3//ZudVU+gAjJ07KRE5TRg7jtVaQ4fX4CFqmeLB48wHQKktdADGzp0YO61Ha40dIrKM4sGj1gOgmjtomaGjfkqGDsDYcTTGDhG1RNXH8CjJ1EHLajtOpwlj5zdKHadzO8aOYzF2iMgSDB4LVV5RX+gAjJ3bKR06AGPH0Rg7RGQpxXdpqZWt1+FxBMbOLQyd1oehQ0RScQuPGdZeh8dRGDvq2H0FMHYcjbFDRNZg8Dghxo46tuoAjB1HY+wQkbW4S8vJtPbYUUvoAIwdR2PsEJEtuIXHDKlXWnaE1h47asLYcSzGDhHZisFjhtqO4WHsqAdjx3G+P13F2CEiWTB4nABjRz0YO47D0CEiOTF4VI6xox6MHcdh7BCR3Bg8ZqjhGB7GjnowdhyHsUNE9sCztMyQcrd0uTF01IWx4xgMHSKyJ27hURnGjrowdhyDsUNE9sbgURHGjrowdhyDsUNEjsBdWirB2FEPho7jMHaIyFG4hUcFGDvqwdhxHMYOETkSt/CY4ai7pTN21IOx4xgMHSJSArfwmOGIKy0zdtSDseMYjB0iUgqDRyGMHfVg7DgGY8c+qstPKz0EIqfA4FEAY0c9GDuOwdghIqUxeByMsaMejB3HYOwQkRrwoGUHYuyoB2PHegfLr1o0H0OHiNSEW3gchLGjHowd+2PsEJEtrl27hrCwMCxYsEC2ZXILj50xdNSFsWN/jB0istWKFSvwwAMPyLpMbuExQ467pTN21IWxY3+MHSKy1YkTJ/Djjz8iISFB1uUyeMyw9To8jB35nbh03er3Mnbsj7FD5Ppyc3Mxfvx4BAcHQ6PRICsry2iejIwM9OjRA97e3tBqtdi/f7+kz1iwYAHS0tJkGvFvuEvLDhg76sHQsT+GDlHrUVNTg8jISMyYMQNTpkwxej0zMxPz5s1DRkYGYmJisH79euh0OhQVFSE0NBQAoNVqUVtba/Te3bt349ChQ+jduzd69+6NvLw8WcfO4JEZY0c9GDv2x9ghcn5VVYZ/jr28vODl5WVyXp1OB51OZ3ZZa9aswaxZszB79mwAwNq1a5GdnY1169bpt9oUFBSYff/Bgwfx4YcfYtu2baiurkZ9fT38/PywePFiqatlhMEjI8aOejB2iMiVnam8hra1bjYto6b6GgCge/fuBtOXLFmCpUuXSl5eXV0dCgoKsHDhQoPp8fHxFm+tSUtL04fR5s2b8cMPP8gSOwCDRzaMHfVg7BARWa60tBR+fn765+a27rSkoqICDQ0NCAoKMpgeFBSEc+fO2TRGOTB4ZMDYUQ/GDhGRNH5+fgbBYyuNRmPwXAhhNM0S06dPl2lEt/AsLRsxdtSDsUNEpJzAwEC4ubkZbc0pLy832uqjBAaPDRg76sHYISJSlqenJ7RaLXJycgym5+TkIDo6WqFR/cblg6e0tBQjR45EeHg4+vfvj23btsmzXMaOajB2iIgco7q6GoWFhSgsLAQAFBcXo7CwECUlJQCA1NRUbNy4EZs2bcLx48cxf/58lJSUYM6cOQqO+haXP4bH3d0da9euxYABA1BeXo5BgwYhISEBbdu2tXqZjB31YOwQETlOfn4+4uLi9M9TU1MBAElJSdi8eTOmTZuGyspKLF++HGVlZYiIiMCuXbsQFham1JD1XD54unbtiq5duwIAOnfujICAAFy8eNGq4GHoqAtjh4jIsUaOHAkhRLPzJCcnIzk52UEjspziu7QccZnqJvn5+WhsbDS65oAlzlRes+ozyT4YO0REJIXiW3jsfZnq4OBgAEBlZSWefPJJbNy4sdnx1NbWGizrzitQkvIYO0REJJXiwWPvy1QDtyJm0qRJWLRoUYtHiqelpWHZsmUS14IchbGjHrythPKqy08rPQQip6H4Lq3mNF2mOj4+3mC6lMtUCyEwffp0jBo1ComJiS3Ov2jRIly5ckX/KC0ttWrsJJ8Tl67jxKXrjB0FHSy/qn8AjB2lVZefZuwQSaT4Fp7myHGZ6gMHDiAzMxP9+/fXHx+0detW9OvXz+T8TTdNS09PR3p6OhoaGmxaB7LeiUvX9f/P2FFGU+DcjrGjHEYOkfVUHTxNbLlM9bBhw9DY2Cj5M1NSUpCSkoKqqir4+/tLfj9Z7/bQARg7SjAVOgBjRykMHSLbqTp4lLxMNbfwON6doQMwdhzJXOQ0Yew4FiOHSF6qPoZHyctUp6SkoKioCIcOHbLr59Bvx+jcibHjGLcfm2MOY8dxeHwOkX0ovoWnuroaJ0+e1D9vukx1QEAAQkNDkZqaisTERAwePBhDhw7Fhg0bVHOZarKNqchpwtixv5YipwljxzEYOUT2pXjwqPUy1dylZT/NhQ7A2LEnSyOnCWPH/hg6RI6hES1dI7qVazpoOWdvEdq2a6/0cJxaS6EDMHbsRWroAIwde2PouCZRdx0NH8zHlStX4OfnJ/vy5fxOqqm+iodHhtttrGqj+BYecn2WhA7A2LEHa0IHYOzYCyOHSDkMHjO4S8t2DB1lWBs5TRg78mPoECmPwWMGr8NjPUtDB2DsyImhoz4MHSL1YPCQbKSEDsDYkYutoQMwduTG0CFSHwYP2Uxq6ACMHVvJETlNGDvyYOQQqRuDxwwew9Mya0IHYOzYQs7QARg7cmDoEDkHBo8ZPIbHPGtDB2DsWEPuyGnC2LENQ4fIuTB4yGK2hA7A2JHKXqEDMHZswdAhck4MHmqRraEDMHaksGfoAIwdazF0iJwbg8cMHsMjT+gAjB1L2DtymjB2pGHkELkOBo8ZrfkYHrlCB2DstMRRoQMwdqRg6BC5HgYP6ckZOgBjpzmODB2AsWMphg6R62LwEEPHQRwdOU0YOy1j6BC5PgZPKyZ36ACMHVMYOurF0CFqPRg8rZA9Qgdg7NxJqdABGDvNYeQQtU4MHjNc8Swte4UOwNhpomTkNGHsmMbQIWrdGDxmuNJZWvYMHYCxA6gjdADGjikMHSLnUlxcjJkzZ+L8+fNwc3PDwYMH0bZtW5uXy+BxcYwd+1JL6ACMnTsxdIic0/Tp0/Hyyy8jNjYWFy9ehJeXlyzLZfC4KHuHDtB6Y0dNkdOEsXMLI4fIuR07dgweHh6IjY0FAAQEBMi27DayLYlU4cSl64wdOzlYfpWxo1LV5acZO0QOkJubi/HjxyM4OBgajQZZWVlG82RkZKBHjx7w9vaGVqvF/v37LV7+iRMn0K5dO0yYMAGDBg3CypUrZRs7t/C4CEdETpPWFjtqjJwmrT12GDlEjlVTU4PIyEjMmDEDU6ZMMXo9MzMT8+bNQ0ZGBmJiYrB+/XrodDoUFRUhNDQUAKDValFbW2v03t27d6O+vh779+9HYWEhOnfujEceeQRRUVF4+OGHbR47g8fJOTJ0gNYTO2qOnCatOXYYOkTyqaoy/LvEy8vL7HEzOp0OOp3O7LLWrFmDWbNmYfbs2QCAtWvXIjs7G+vWrUNaWhoAoKCgwOz7Q0JCEBUVhe7duwMAEhISUFhYyOBpzRwdOkDriB1nCB2g9cYOQ4foll8u34BPvW1f4ddrbgCAPi6aLFmyBEuXLpW8vLq6OhQUFGDhwoUG0+Pj45GXl2fRMqKionD+/HlcunQJ/v7+yM3NxTPPPCN5LKYweMxQ63V4lAgdwPVjh6GjXowcIvsqLS2Fn5+f/rm1Z0VVVFSgoaEBQUFBBtODgoJw7tw5i5bh7u6OlStXYvjw4RBCID4+HuPGjbNqPEbLlmUpLkht1+Fh6MjPWSKnSWuLHYYOkWP4+fkZBI+tNBqNwXMhhNG05rS028xaDB6VUyp0ANeNHWcLHaB1xQ5Dh8g5BQYGws3NzWhrTnl5udFWHyXwtHSVctTp5ea4Yuyo9bTylrSW2OGp5UTOzdPTE1qtFjk5OQbTc3JyEB0drdCofsMtPCqjZOQ0caXYccbAuZ2rxw4Dh8i5VFdX4+TJk/rnxcXFKCwsREBAAEJDQ5GamorExEQMHjwYQ4cOxYYNG1BSUoI5c+YoOOpbGDwqoYbQAVwndpw9dADXjh2GDpFzys/PR1xcnP55amoqACApKQmbN2/GtGnTUFlZieXLl6OsrAwRERHYtWsXwsLClBqyHoNHYWoJHcA1YscVQgdw3dhh6BA5t5EjR0II0ew8ycnJSE5OdtCILMfgUYiaQgdw7thxlchp4oqxw9AhIqUxeBxMbaEDOG/suFroAK4XOwwdIlILlw+eq1evYtSoUaivr0dDQwPmzp2Lp556yuHjUGPoAM4ZO64YOoDrxA4jh4jUyOWDx9fXF/v27YOvry+uXbuGiIgITJ48GR07dnTI56s1dADGjpq4QuwwdIhIzVw+eNzc3ODr6wsAuHHjBhoaGlo84EoOag4dwDljxxUxdIiIHMOiCw/eddddCAgIsOghVW5uLsaPH4/g4GBoNBpkZWUZzZORkYEePXrA29sbWq0W+/fvl/QZly9fRmRkJEJCQvD8888jMDBQ8jgtpfQFAy3B2FEHxg4RkeNYtIVn7dq1+v+vrKzEyy+/jDFjxmDo0KEAgH//+9/Izs7GSy+9JHkANTU1iIyMxIwZMzBlyhSj1zMzMzFv3jxkZGQgJiYG69evh06nQ1FREUJDQwEAWq0WtbW1Ru/dvXs3goOD0aFDBxw9ehTnz5/H5MmTMXXqVLOXua6trTVYVlWVZV9Kao8cgKGjJq4QO0REzkQjJO7fmTJlCuLi4vDcc88ZTH/77bfx5ZdfmtxCY/FgNBrs2LEDjz76qH7aAw88gEGDBmHdunX6aX379sWjjz6KtLQ0yZ/x7LPPYtSoUXjsscdMvr506VIsW7bMaHrO3iK0bdfeaLozhA7gOrHjCsfwuFLscAsPkSFRdx0NH8zHlStXZL0hZ5OmG1q/k3UYPm3b2bSs6zXVmPPoILuNVW0k30srOzsbjzzyiNH0MWPG4Msvv5RlUE3q6upQUFCA+Ph4g+nx8fHIy8uzaBnnz5/Xb6WpqqpCbm4u+vTpY3b+RYsW4cqVK/pHaWmpyfmcYddVE1eJHVfgSrFDRORMJAdPx44dsWPHDqPpWVlZsp/5VFFRgYaGBqPdT0FBQUZ3YzXn9OnTGD58OCIjIzFs2DA899xz6N+/v9n5vby84Ofnh61bt+LBBx/E6NGjDV53ptABGDtqwtghIlKO5LO0li1bhlmzZmHv3r36Y3gOHjyIL774Ahs3bpR9gMCtXV23E0IYTTNHq9WisLBQ8mempKQgJSVFv/nwl8s34FPvXCe1MXbUg7FDRKQsyd/g06dPR9++ffHmm2/ik08+gRAC4eHhOHDgAB544AFZBxcYGAg3NzejrTnl5eVmDzqmWxg76sHYISJSnqTgqa+vx9NPP42XXnoJH3zwgb3GpOfp6QmtVoucnBxMmjRJPz0nJwcTJ06062enp6cjPT0dDQ0Ndv0ce2DsqAdjh4hIHSQdw+Ph4WHy+B1bVFdXo7CwUL/bqbi4GIWFhSgpKQFw69bzGzduxKZNm3D8+HHMnz8fJSUlmDNnjqzjuFNKSgqKiopw6NAhu36O3Bg76sHYISJSD8m7tCZNmoSsrCykpqbKMoD8/HzExcXpnzctNykpCZs3b8a0adNQWVmJ5cuXo6ysDBEREdi1axfCwsJk+XxznHELD2NHPRg7RETqIjl4evbsib/85S/Iy8uDVqtF27ZtDV6fO3eupOWNHDmyxVs9JCcnIzk5WepQbXLnQctqx9hRh9YUOrwGDxE5E8nBs3HjRnTo0AEFBQUoKCgweE2j0UgOHrIdY0cdWlPsEBE5G8nBU1xcbI9xqI4z7NJi6KgHY4eISN0kX3jwdkIIh9x5XAlqP2iZsaMejB0iIvWzKni2bNmCfv36wcfHBz4+Pujfvz+2bt0q99jIDMaOejB2iIicg+RdWmvWrMFLL72E5557DjExMRBC4MCBA5gzZw4qKiowf/58e4yT/g9jRz0YO0REzkNy8Lz11ltYt24dnnzySf20iRMn4v7778fSpUtdJnjUeAwPY0c9GDtERM5F8i6tsrIyREdHG02Pjo5GWVmZLINSA7Udw8PYUQ/GDhGR85EcPD179sRHH31kND0zMxO9evWSZVBkiLGjHowdIiLnZNXd0qdNm4bc3FzExMRAo9Hgm2++wVdffWUyhMg2jB31YOwQETkvycEzZcoUfPvtt3jjjTeQlZWlv1v6d999h4EDB9pjjK0WY0cdGDpERM5PcvAAgFarxd///ne5x6IqSh+0zNhRB8YOEZFrsCp4GhoakJWVhePHj0Oj0SA8PBwTJkyAm5ub3ONTjJL30mLsqANjh4jI8d544w1s3LgRQgg89NBD+Otf/wqNRmPzciUHz8mTJzF27FicPn0affr0gRACP//8M7p3747PP/8c9957r82Das0YO+rA2CEicrwLFy7g7bffxrFjx+Dh4YHhw4fj4MGDGDp0qM3LlnyW1ty5c3HPPfegtLQUhw8fxpEjR1BSUoIePXrwxqE2+OFiDWNHJRg7RETKuXnzJm7cuIH6+nrU19ejc+fOsixXcvDs27cPq1evRkBAgH5ax44dsWrVKuzbt0+WQbU2DB31YOwQEZmXm5uL8ePHIzg4GBqNBllZWUbzZGRkoEePHvD29oZWq8X+/fstXn6nTp2wYMEChIaGIjg4GA899JBse44kB4+XlxeuXr1qNL26uhqenp6yDEoN0tPTER4ejqioKLt+DmNHPRg7RETNq6mpQWRkJN5++22Tr2dmZmLevHl48cUXceTIEcTGxkKn06GkpEQ/j1arRUREhNHj7NmzuHTpEnbu3IlTp07hzJkzyMvLQ25urixjl3wMz7hx4/D000/j3XffxZAhQwAA3377LebMmYMJEybIMig1cMRBy4wd9WDsEFFrVVVl+Pefl5cXvLy8TM6r0+mg0+nMLmvNmjWYNWsWZs+eDQBYu3YtsrOzsW7dOqSlpQEACgoKzL5/27Zt6Nmzp34v0tixY3Hw4EEMHz5c0jqZIjl43nzzTSQlJWHo0KHw8PAAcGt/24QJE/DXv/7V5gG1Fowd9WDsEJGzKbpUA69a285cqr1263uoe/fuBtOXLFmCpUuXSl5eXV0dCgoKsHDhQoPp8fHxyMvLs2gZ3bt3R15eHm7cuAEPDw/s3bsXTz/9tOSxmCI5eDp06IBPP/0UJ0+exPHjx/UXHuzZs6csA2oNGDvqwdghotautLQUfn5++ufmtu60pKKiAg0NDQgKCjKYHhQUhHPnzlm0jAcffBAJCQkYOHAg2rRpg9GjR8u298iq6/AAt+6pxciRjrGjHowdIiLAz8/PIHhsdec1c4QQkq6js2LFCqxYsUK28TSRfNDy1KlTsWrVKqPpr776Kh577DFZBuWqGDvq8P3pKsYOEZHMAgMD4ebmZrQ1p7y83GirjxKsOi197NixRtMfeeQR2Y6kdkWMHXVg6BAR2Yenpye0Wi1ycnIMpufk5CA6OlqhUf1G8i4tc6efe3h4GB3pTbcwdtSBsUNEZJvq6mqcPHlS/7y4uBiFhYUICAhAaGgoUlNTkZiYiMGDB2Po0KHYsGEDSkpKMGfOHAVHfYvk4ImIiEBmZiYWL15sMP3DDz9EeHi4bANTmlw3D2XsqANjh4jIdvn5+YiLi9M/T01NBQAkJSVh8+bNmDZtGiorK7F8+XKUlZUhIiICu3btQlhYmFJD1pMcPC+99BKmTJmCX375BaNGjQIAfPXVV/jnP/+Jbdu2yT5Apdh6HR6GjnowdoiI5DFy5EgIIZqdJzk5GcnJyQ4akeUkB8+ECROQlZWFlStXYvv27fDx8UH//v3x5ZdfYsSIEfYYo9Nh7KgHY4eIiAArT0sfO3asyQOXibGjJowdIiJqIvksrdslJyejoqJCrrE4PcaOejB2iIjodjYFz9///neemfV/GDvqwdghIqI72RQ8LR241FowdtSDsUNERKbYFDzE2FETxg4REZkj+aDlmpoatG3bFgBw9epV2QfkTBg76sDQISKilkjewhMUFISZM2fim2++scd47ObatWsICwvDggULZFkeY0cdGDtERGQJycHzz3/+E1euXMHo0aPRu3dvrFq1CmfPnrXH2GS1YsUKPPDAA7Isi7GjDowdIiKylOTgGT9+PD7++GOcPXsWzz77LP75z38iLCwM48aNwyeffIKbN2/aY5w2OXHiBH788UckJCTYvCzGjjowdoiISAqrD1ru2LEj5s+fj6NHj2LNmjX48ssvMXXqVAQHB2Px4sW4du2aRcvJzc3F+PHjERwcDI1Gg6ysLKN5MjIy0KNHD3h7e0Or1WL//v2SxrpgwQKkpaVJeo8pjB11YOwQEZFUVl1pGQDOnTuHLVu24L333kNJSQmmTp2KWbNm4ezZs1i1ahUOHjyI3bt3t7icmpoaREZGYsaMGZgyZYrR65mZmZg3bx4yMjIQExOD9evXQ6fToaioCKGhoQAArVaL2tpao/fu3r0bhw4dQu/evdG7d2/k5eW1OJ7a2lqDZTVdZ6joUg28fNu1+H6yL8YOERFZQ3LwfPLJJ3jvvfeQnZ2N8PBwpKSk4IknnkCHDh308wwYMAADBw60aHk6nQ46nc7s62vWrMGsWbMwe/ZsAMDatWuRnZ2NdevW6bfaFBQUmH3/wYMH8eGHH2Lbtm2orq5GfX09/Pz8jO723iQtLQ3Lli2zaOxERETkHCTv0poxYwaCg4Nx4MABFBYW4rnnnjOIHQC455578OKLL9o8uLq6OhQUFCA+Pt5genx8vEVba4BbAVNaWopTp07htddew1NPPWU2dgBg0aJFuHLliv5RWlpq0zqQPA6WX8XB8tZ9GQQ1qS4/rfQQiIgkkbyFp6ysDL6+vs3O4+PjgyVLllg9qCYVFRVoaGhAUFCQwfSgoCCcO3fO5uWb4uXlBS8vL6SnpyM9PR0NDQ12+RyyXFPocHeW8hg6ROSsJAdPS7FjDxqNxuC5EMJomiWmT59u8bwpKSlISUlBVVUV/P39JX8W2Y6hox4MHSJydlYftOwIgYGBcHNzM9qaU15ebrTVh1zH7buuGDvKY+wQkStQ9b20PD09odVqkZOTYzA9JycH0dHRdv3s9PR0hIeHIyoqyq6fQ4YYO+pRXX6asUNELkPxLTzV1dU4efKk/nlxcTEKCwsREBCA0NBQpKamIjExEYMHD8bQoUOxYcMGlJSUYM6cOXYdF3dpOdadByQzdpTDyCEiV2R18Jw8eRK//PILhg8fDh8fH6uPq8nPz0dcXJz+eWpqKgAgKSkJmzdvxrRp01BZWYnly5ejrKwMERER2LVrF8LCwqwdukV40LJjmDrzirGjHMYOEbkqjRBCSHlDZWUlpk2bhq+//hoajQYnTpzAPffcg1mzZqFDhw54/fXX7TVWRTRt4Zn73n5eeFBmjB31YOgQyUPUXUfDB/Nx5coV+Pn5yb58Ob+Taq9V480ZsXYbq9pIPoZn/vz5cHd3R0lJicEZW9OmTcMXX3wh6+DINZm7pg5jRxmMHSJqDSTv0tq9ezeys7MREhJiML1Xr1749ddfZRsYuSZzFw9k7DgeQ4eIWhPJwVNTU2PyWjwVFRXw8vKSZVBqwGN45NXcVZIZO47F0CGi1kjyLq3hw4djy5Yt+ucajQaNjY149dVXDQ4+dnYpKSkoKirCoUOHlB6KU2vplhCMHcdi7BBRayV5C8+rr76KkSNHIj8/H3V1dXj++edx7NgxXLx4EQcOHLDHGMlJtXTvK8aO4zB0iKi1kxw84eHh+M9//oN169bBzc0NNTU1mDx5MlJSUtC1a1d7jFER3KVlPUtu8snYcQyGDhHRLVZdh6dLly5YtmyZ3GNRFV54UDpL72bO2HEMxg4ROaNJkyZh7969GD16NLZv327w2s6dO/GnP/0JjY2NeOGFFzB79myLlyv5GJ733nsP27ZtM5q+bds2vP/++1IXRy7C0q06jB374y0hiMiZzZ071+BY4SY3b95Eamoqvv76axw+fBivvPIKLl68aPFyJQfPqlWrEBgYaDS9c+fOWLlypdTFkZNr6aDkJgwd+2PoEJEriIuLQ/v27Y2mf/fdd7j//vvRrVs3tG/fHgkJCcjOzrZ4uZKD59dff0WPHj2MpoeFhaGkpETq4shJWRo6AGPHERg6ROQIubm5GD9+PIKDg6HRaJCVlWU0T0ZGBnr06AFvb29otVrs379fls8+e/YsunXrpn8eEhKCM2fOWPx+ycHTuXNn/Oc//zGafvToUXTs2FHq4lSLd0s3z9LQARg79satOkTkSDU1NYiMjMTbb79t8vXMzEzMmzcPL774Io4cOYLY2FjodDqDDSJarRYRERFGj7Nnzzb72abuhCXlHp6SD1r+/e9/j7lz56J9+/YYPnw4AGDfvn344x//iN///vdSF6daPGjZmJTQARg79sbQISI5VFUZ/l3t5eVl9kLCOp0OOp3O7LLWrFmDWbNm6Q8mXrt2LbKzs7Fu3TqkpaUBAAoKCqwaZ7du3Qy26Jw+fRoPPPCAxe+XHDwvv/wyfv31V4wePRru7rfe3tjYiCeffJLH8LgoqaEDMHbsiaFDRIcuVMPdR9K9v43cvF4DAOjevbvB9CVLlmDp0qWSl1dXV4eCggIsXLjQYHp8fDzy8vKsHmeTIUOG4IcffsCZM2fg5+eHXbt2YfHixRa/X1LwCCFQVlaG9957Dy+//DIKCwvh4+ODfv36ISwsTPLgSf0YO+rB0CEieygtLTW4W7q1t4mqqKhAQ0MDgoKCDKYHBQXh3LlzFi9nzJgxOHz4MGpqahASEoIdO3YgKioK7u7ueP311xEXF4fGxkY8//zzkg6lkRw8vXr1wrFjx9CrVy/06tVLytvJiVgTOgBjx14YO0RkL35+fgbBY6s7j6sRQkg61qa5M68mTJiACRMmWDUuSQctt2nTBr169UJlZaVVH+ZMWutBy1LOvroTY0d+PCiZiJxFYGAg3NzcjLbmlJeXG231UYLks7RWr16NP//5z/jhhx/sMR7VaI03D7U2dADGjtwYOkTkbDw9PaHVapGTk2MwPScnB9HR0QqN6jeSD1p+4okncO3aNURGRsLT0xM+Pj4Gr0u56iGpgy2hAzB25MbQISK1qq6uxsmTJ/XPi4uLUVhYiICAAISGhiI1NRWJiYkYPHgwhg4dig0bNqCkpARz5sxRcNS3SA6etWvX2mEYpBTGjnowdIhI7fLz8xEXF6d/npqaCgBISkrC5s2bMW3aNFRWVmL58uUoKytDREQEdu3apYoTmyQHT1JSkj3GQQ7G0FEXxg4ROYORI0eavADg7ZKTk5GcnOygEVlOcvC0dPuI0NBQqwdD9mdr6ACMHTkxdIiIHENy8Nx9993Nnl7W0NBg04DIfhg76sHQISJyLMnBc+TIEYPn9fX1OHLkCNasWYMVK1bINjCSjxyhAzB25MLYISJyPMnBExkZaTRt8ODBCA4OxquvvorJkyfLMjCynVyhAzB25MDQISJSjuTgMad3794udc2a9PR0pKenO+0uOsaOejB0iIiUJzl47ryratP9tZYuXepSt5pw1rulyxk6AGPHVowdIiJ1kBw8HTp0MHmfjO7du+PDDz+UbWAkjdyhAzB2bMHQISJSF8nBs2fPHoPnbdq0QadOndCzZ0+4u8u2h4wkYOyoB0OHiEidJBfKiBEj7DEOsoI9Qgdg7FiLsUNEpF5WbZL55ZdfsHbtWhw/fhwajQZ9+/bFH//4R9x7771yj49MsFfoAIwdazB0iIjUT/Ld0rOzsxEeHo7vvvsO/fv3R0REBL799lvcf//9RndIJfkxdtSFsUNE5Bwkb+FZuHAh5s+fj1WrVhlNf+GFF/Dwww/LNjj6DUNHXRg6RETORfIWnuPHj2PWrFlG02fOnImioiJZBiU3d3d3DBgwAAMGDMDs2bOVHo4kB8uvMnZUpLr8NGOHiMgJSd7C06lTJxQWFhpdc6ewsBCdO3eWbWBy6tChAwoLC5UehmT2DB2AsSMVQ4eIyHlJDp6nnnoKTz/9NP73f/8X0dHR0Gg0+Oabb/DKK6/gT3/6kz3G2OrYO3QAxo4UDB0iIucneZfWSy+9hMWLF+Ott97CiBEjMHz4cLz99ttYunQpXnzxRckDyM3Nxfjx4xEcHAyNRoOsrCyjeTIyMtCjRw94e3tDq9Vi//79kj6jqqoKWq0Ww4YNw759+ySP0ZEYO+rB3VdERK5D8hYejUaD+fPnY/78+bh69daXc/v27a0eQE1NDSIjIzFjxgxMmTLF6PXMzEzMmzcPGRkZiImJwfr166HT6VBUVITQ0FAAgFarRW1trdF7d+/ejeDgYJw6dQrBwcH44YcfMHbsWHz//ffw8/Ozesz24IjQARg7lmLoEBG5FsnBc/36dQgh4Ovri/bt2+PXX3/Fu+++i/DwcMTHx0segE6ng06nM/v6mjVrMGvWLP3BxmvXrkV2djbWrVuHtLQ0AEBBQUGznxEcHAwAiIiIQHh4OH7++WcMHjzY5Ly1tbUG8XTnvcPk5qjQARg7lmDoEBG5Jsm7tCZOnIgtW7YAAC5fvowhQ4bg9ddfx8SJE7Fu3TpZB1dXV4eCggKjkIqPj0deXp5Fy7h06ZI+YE6fPo2ioiLcc889ZudPS0uDv7+//tG9e3frV6AFjB11YewQEbkuycFz+PBhxMbGAgC2b9+OLl264Ndff8WWLVvw5ptvyjq4iooKNDQ0ICgoyGB6UFAQzp07Z9Eyjh8/jsGDByMyMhLjxo3DX//6VwQEBJidf9GiRbhy5Yr+UVpaatM6mGLvU83vxNhpHo/VISJyfZJ3aV27dk1/zM7u3bsxefJktGnTBg8++CB+/fVX2QcIwOTd2e+cZk50dDS+//57iz/Ly8sLXl5eSE9PR3p6OhoaGiSNtTmOjJwmjB3zGDlERK2H5C08PXv2RFZWFkpLS5Gdna3f3VReXi77gcCBgYFwc3Mz2ppTXl5utNVHbikpKSgqKsKhQ4dkWR5jR10YO0RErYvk4Fm8eDEWLFiAu+++Gw888ACGDh0K4NbWnoEDB8o6OE9PT2i1WqN7dOXk5CA6OlrWz7pTeno6wsPDERUVZdNyHL37qgljxzTuviIiap0k79KaOnUqhg0bhrKyMkRGRuqnjx49GpMmTZI8gOrqapw8eVL/vLi4GIWFhQgICEBoaChSU1ORmJiIwYMHY+jQodiwYQNKSkowZ84cyZ8lRUpKClJSUlBVVQV/f3/J71cicgCGjjmMHCKi1k1y8ABAly5d0KVLF4NpQ4YMsWoA+fn5iIuL0z9PTU0FACQlJWHz5s2YNm0aKisrsXz5cpSVlSEiIgK7du1CWFiYVZ/nCIwddWHsEBGRVcEjp5EjR0II0ew8ycnJSE5OdtCIbrHmoGWlQgdg7JjC0CEioiaKB49aSdmlpWToAIydOzF0iIjoTpIPWiZDjB11YewQEZEpDB4zWjpLS6mzr27H2PkNz74iInINkyZNwl133YWpU6caTC8tLcXIkSMRHh6O/v37Y9u2bZKWy+Axw9x1eNQQOgBj53YMHSIi1zF37lz9Laxu5+7ujrVr16KoqAhffvkl5s+fj5qaGouXy+CRQA2hAzB2mnCrDhGR64mLi9Pf0eF2Xbt2xYABAwAAnTt3RkBAAC5evGjxchk8Zty5S+vQhWqFR3QLY4ehQ0SklNzcXIwfPx7BwcHQaDTIysoymicjIwM9evSAt7c3tFot9u/fL/s48vPz0djYKOkG3wweM+S+tYQcGDvcfUVEJLeqqiqDR21trdl5a2pqEBkZibffftvk65mZmZg3bx5efPFFHDlyBLGxsdDpdCgpKdHPo9VqERERYfQ4e/asReOtrKzEk08+iQ0bNkhaT56W7iQYO0RE1KTo7FVovGy7ubWovQYARltJlixZgqVLl5p8j06ng06nM7vMNWvWYNasWZg9ezYAYO3atcjOzsa6deuQlpYGACgoKLB6zLW1tZg0aRIWLVok+RZTDB4nwNghIiJ7KS0tNbj5t5eXl1XLqaurQ0FBARYuXGgwPT4+Hnl5eTaNEQCEEJg+fTpGjRqFxMREye9n8KgYQ4eIiOzNz8/PIHisVVFRgYaGBgQFBRlMDwoKwrlz5yxezpgxY3D48GHU1NQgJCQEO3bsQFRUFA4cOIDMzEz0799ff+zQ1q1b0a9fP4uWy+Axw5pbS8iJsUNERM5Io9EYPBdCGE1rTnZ2tsnpw4YNQ2Njo9Xj4kHLZih50DJjh4iInE1gYCDc3NyMtuaUl5cbbfVRAoNHZRg7RETkjDw9PaHVapGTk2MwPScnR/IBxvbAXVoqwtghIiI1q66uxsmTJ/XPi4uLUVhYiICAAISGhiI1NRWJiYkYPHgwhg4dig0bNqCkpARz5sxRcNS3MHhUgrFDRERql5+fj7i4OP3z1NRUAEBSUhI2b96MadOmobKyEsuXL0dZWRkiIiKwa9cuhIWFKTVkPQaPCjB2LMOLDhIRKWvkyJEQQjQ7T3JyMpKTkx00IsvxGB4zWrpbulwYO0RERPbH4DHDEWdpMXaIiIgcg8GjEMYOERGR4zB4FMDYISIiciwGj4MxdoiIiByPZ2k5CEOHiIhIOdzC4wCMHSIiImUxeOyMsUNERKQ8Bo8ZclyHh7EjH150kIiIbMHgMcPW6/AwdoiIiNSDwWMHjB0iIiJ1YfDIjLFDRESkPgweGTF2iIiI1InBIxPGDhERkXoxeGTA2CEiIlI3Bo+NGDtERETq1yqCp7i4GHFxcQgPD0e/fv1QU1Mjy3IZO0RERM6hVdxLa/r06Xj55ZcRGxuLixcvwsvLy6blMXQcixcdJCIiW7l88Bw7dgweHh6IjY0FAAQEBNi0PMYOERGR81F8l1Zubi7Gjx+P4OBgaDQaZGVlGc2TkZGBHj16wNvbG1qtFvv377d4+SdOnEC7du0wYcIEDBo0CCtXrrR6rIwdIiIi56T4Fp6amhpERkZixowZmDJlitHrmZmZmDdvHjIyMhATE4P169dDp9OhqKgIoaGhAACtVova2lqj9+7evRv19fXYv38/CgsL0blzZzzyyCOIiorCww8/LGmcRWevQuPla91KEhERkaIUDx6dTgedTmf29TVr1mDWrFmYPXs2AGDt2rXIzs7GunXrkJaWBgAoKCgw+/6QkBBERUWhe/fuAICEhAQUFhaaDZ7a2lqDeKqq4lYdIiIiZ6f4Lq3m1NXVoaCgAPHx8QbT4+PjkZeXZ9EyoqKicP78eVy6dAmNjY3Izc1F3759zc6flpYGf39//aMplEgZPGCZiIjkoOrgqaioQENDA4KCggymBwUF4dy5cxYtw93dHStXrsTw4cPRv39/9OrVC+PGjTM7/6JFi3DlyhX9o7S01KZ1IOmqy0/rH0RERHJQfJeWJTQajcFzIYTRtOa0tNvsdl5eXvDy8kJ6ejrS09PR0NAgaaxkPQYOERHZi6qDJzAwEG5ubkZbc8rLy422+sgtJSUFKSkpqKqqgr+/v10/qzVj5BARkSOoepeWp6cntFotcnJyDKbn5OQgOjrarp+dnp6O8PBwREVF2fVzWiPusiIiIkdTPHiqq6tRWFiIwsJCALduA1FYWIiSkhIAQGpqKjZu3IhNmzbh+PHjmD9/PkpKSjBnzhy7jislJQVFRUU4dOiQXT+nNWHkEBFRSyZNmoS77roLU6dONfn6tWvXEBYWhgULFkharuK7tPLz8xEXF6d/npqaCgBISkrC5s2bMW3aNFRWVmL58uUoKytDREQEdu3ahbCwMKWGTBIwcIiISIq5c+di5syZeP/9902+vmLFCjzwwAOSl6t48IwcORJCiGbnSU5ORnJysoNGdAsPWrYNQ4eIiKwRFxeHvXv3mnztxIkT+PHHHzF+/Hj88MMPkpar+C4tteIuLel4bA4RkWuz9+2gWrJgwQL9RYelUnwLDzk3xg0RkXO7844CTZdnMcXet4MKDg42O85PP/0UvXv3Ru/evS2++PDtGDxmcJdW8xg6RETKqb5wBhpPH5uWIequA4DRHQWWLFmCpUuXmnyPvW8H1ZyDBw/iww8/xLZt21BdXY36+nr4+flh8eLFFr2fwWMGr8NjjJFDROR6SktL4efnp39ubutOS5puB7Vw4UKD6VJuB9WctLQ0fTRt3rwZP/zwg8WxAzB4qAWMHCIi1+bn52cQPNaS43ZQADBmzBgcPnwYNTU1CAkJwY4dO2S5Jh6Dh0xi6BARkTVsvR1UdnZ2i/NMnz5d6rAYPOa0xmN4GDlERGQtJW8HZQmelm5GazktnaeSExGRHJS8HZQluIWnlWLgEBGRVNXV1Th58qT+edPtoAICAhAaGorU1FQkJiZi8ODBGDp0KDZs2OCQ20FZgsHTijByiIjIFs58OygGjxmudAwPQ4eIiOSg1ttBWYLBY4azX4eHkUNERPQbBo8LYeQQERGZxuBxAQwdIiKi5jF4nBQjh4iIyHIMHifCyCEiIrIOg8cMNZ2lxdAhIiKyDYPHDKXP0mLkEBERyYfBoyKMHCIiIvtg8KgAQ4eIiMi+GDwKYeQQERE5DoPHwRg6REREjsfgcQBGDhERkbIYPHbCyCEiIlIPBo8Z1l6Hh6FDRESkPgweM6Rch4eRQ0REpG4MHisxcoiIiJwHg0cihg4REZHzYfBYqPrCGWg8fZQeBhEREVmhjdIDICIiIrI3Bg8RERG5PAYPERERuTwGDxEREbk8lw+en376CQMGDNA/fHx8kJWVpfSwiIiIyIFc/iytPn36oLCwEABQXV2Nu+++Gw8//LCygyIiIiKHcvktPLf77LPPMHr0aLRt21bpoRAREZEDKR48ubm5GD9+PIKDg6HRaEzubsrIyECPHj3g7e0NrVaL/fv3W/VZH330EaZNm2bjiImIiMjZKL5Lq6amBpGRkZgxYwamTJli9HpmZibmzZuHjIwMxMTEYP369dDpdCgqKkJoaCgAQKvVora21ui9u3fvRnBwMACgqqoKBw4cwIcfftjseGpraw2WVVVVZcvqERERkQooHjw6nQ46nc7s62vWrMGsWbMwe/ZsAMDatWuRnZ2NdevWIS0tDQBQUFDQ4ud8+umnGDNmDLy9vZudLy0tDcuWLZOwBkRERCSXSZMmYe/evRg9ejS2b99u8FpxcTFmzpyJ8+fPw83NDQcPHrT4MBXFd2k1p66uDgUFBYiPjzeYHh8fj7y8PEnLsnR31qJFi3DlyhX9o7S0VNLnEBERkfXmzp2LLVu2mHxt+vTpWL58OYqKirBv3z54eXlZvFxVB09FRQUaGhoQFBRkMD0oKAjnzp2zeDlXrlzBd999hzFjxrQ4r5eXF/z8/LB161Y8+OCDGD16tORxExERkXXi4uLQvn17o+nHjh2Dh4cHYmNjAQABAQFwd7d8R5Wqg6eJRqMxeC6EMJrWHH9/f5w/fx6enp4WvyclJQVFRUU4dOiQxe8hIiJyZY480ehOJ06cQLt27TBhwgQMGjQIK1eulPR+xY/haU5gYCDc3NyMtuaUl5cbbfWRW3p6OtLT09HQ0GDXzyEiIlLSnSfneHl5md1V5KgTjUypr6/H/v37UVhYiM6dO+ORRx5BVFSUxdfWU3XweHp6QqvVIicnB5MmTdJPz8nJwcSJE+362SkpKUhJSUFVVRX8/f3t+llERERSiHM/Ae6WH79ichk3b0VH9+7dDaYvWbIES5cuNfkeR51oZEpISAiioqL0401ISEBhYaHzBE91dTVOnjypf15cXIzCwkIEBAQgNDQUqampSExMxODBgzF06FBs2LABJSUlmDNnjoKjJiIicg2lpaXw8/PTP5dyIPDtmk40WrhwocF0a040MiUqKgrnz5/HpUuX4O/vj9zcXDzzzDMWv1/x4MnPz0dcXJz+eWpqKgAgKSkJmzdvxrRp01BZWYnly5ejrKwMERER2LVrF8LCwuw6Lu7SIiKi1sDPz88geKwl14lGY8aMweHDh1FTU4OQkBDs2LEDUVFRcHd3x8qVKzF8+HAIIRAfH49x48ZZvFzFg2fkyJEQQjQ7T3JyMpKTkx00olu4S4uIiEg6W080ys7ONvtaS7vUmuMUZ2kRERGRuil5opElGDxmpKenIzw8HFFRUUoPhYiISPVuP9Hodjk5OYiOjlZoVL9RfJeWWnGXFhERkSFnPtGIwUNEREQWUeuJRpZg8BAREZFF1HqikSV4DI8ZPIaHiIjIdTB4zOC9tIiIiFwHg4eIiIhcHoOHiIiIXB6Dxwwew0NEROQ6GDxm8BgeIiIi18HgISIiIpfH4CEiIiKXx+AhIiIil8fgISIiIpfH4DGDZ2kRERG5DgaPGTxLi4iIyHUweIiIiMjlMXiIiIjI5TF4iIiIyOUxeIiIiMjlMXiIiIjI5TF4iIiIyOUxeMzgdXiIiIhcB4PHDF6Hh4iIyHUweIiIiMjlMXiIiIjI5TF4iIiIyOUxeIiIiMjlMXiIiIjI5TF4iIiIyOUxeIiIiMjltYrgeeONN3D//fcjPDwcc+fOhRBC6SERERGRCZMmTcJdd92FqVOnGr1my/e5ywfPhQsX8Pbbb6OgoADff/89CgoKcPDgQaWHRURERCbMnTsXW7ZsMZpu6/e5ywcPANy8eRM3btxAfX096uvr0blzZ6WHRERERCbExcWhffv2Jl+z5ftc8eDJzc3F+PHjERwcDI1Gg6ysLKN5MjIy0KNHD3h7e0Or1WL//v0WL79Tp05YsGABQkNDERwcjIceegj33nuvjGtARETUOtj7O7s5tn6fu8syChvU1NQgMjISM2bMwJQpU4xez8zMxLx585CRkYGYmBisX78eOp0ORUVFCA0NBQBotVrU1tYavXf37t3w8fHBzp07cerUKfj4+ECn0yE3NxfDhw83OZ7a2lqDZV25cgUAIOpvyLG6RETkwpq+K+x+rOjNOtj8CTfrAABVVVUGk728vODl5WXyLfb+zg4ODjY73EuXLkn6PjciVASA2LFjh8G0IUOGiDlz5hhMu++++8TChQstWuZHH30kkpOT9c9Xr14tXnnlFbPzL1myRADggw8++OCDD6sfv/zyi+VffhJcv35ddOnSRbZxtmvXzmjakiVLLBoLIP93dpM9e/aIKVOmGEyT+n1+J8W38DSnrq4OBQUFWLhwocH0+Ph45OXlWbSM7t27Iy8vDzdu3ICHhwf27t2Lp59+2uz8ixYtQmpqqv755cuXERYWhpKSEvj7+0teh6ioqGbvuN7c63e+JuV50/9HRUXhq6++Qvfu3VFaWgo/Pz/Z16G5eUxNt2Tcpv7f2dej6b9VVVV2XQ+51sHU2JumOfuvhaPWg3++1fNrYe/1aPrvlStXEBoaioCAAMnrYAlvb28UFxejrq5OluUJIaDRaAymmdu60xI5vrObI/X7/E6qDp6Kigo0NDQgKCjIYHpQUBDOnTtn0TIefPBBJCQkYODAgWjTpg1Gjx6NCRMmmJ3f3KY8f39/q/4Qurm5Nfu+5l6/8zUpz5v+//Zpfn5+dlmH5uYxNd2ScTf3/866HnfOb6/1kGsdzI3dFX4tHLUe/POtnl8Le6/HnfO3aWO/Q2S9vb3h7e1tt+VbS47vbAAYM2YMDh8+jJqaGoSEhGDHjh2IioqS/H1+J1UHT5M769NUkTZnxYoVWLFihdzDskhKSorVr9/5mpTnTf/f0udbwpJlmJvH1HRLxt3c/1tL6fWQYx0sWY5c63D7c1f7tbB0DC3hn2/n+bVobh41/fl2BbZ+Z2dnZ5t9zZbvc83/7YdTBY1Ggx07duDRRx8FcGvzmK+vL7Zt24ZJkybp5/vjH/+IwsJC7Nu3z+5jqqqqgr+/P65cuWLVvzrUwBXWAeB6qIkrrAPgGuvhCusAcD2ckRq/s5uj+GnpzfH09IRWq0VOTo7B9JycHERHRztkDF5eXliyZInV+zTVwBXWAeB6qIkrrAPgGuvhCusAcD1cgRq+s5uj+Bae6upqnDx5EgAwcOBArFmzBnFxcQgICEBoaCgyMzORmJiId955B0OHDsWGDRvwt7/9DceOHUNYWJiSQyciImpVnPo7W9J5YnawZ88ek6fKJSUl6edJT08XYWFhwtPTUwwaNEjs27dPuQETERG1Us78na34Fh4iIiIie1P1MTxEREREcmDwEBERkctj8BAREZHLY/DI6I033sD999+P8PBwzJ071/43j7ODn376CQMGDNA/fHx8TN4NV+2Ki4sRFxeH8PBw9OvXDzU1NUoPySru7u76X4vZs2crPRyrXbt2DWFhYViwYIHSQ7HK1atXERUVhQEDBqBfv37429/+pvSQrFJaWoqRI0ciPDwc/fv3x7Zt25QeklUmTZqEu+66C1OnTlV6KJLs3LkTffr0Qa9evbBx40alh9Pq8KBlmVy4cAEPPvggjh07Bg8PDwwfPhyvvfYahg4dqvTQrFZdXY27774bv/76K9q2bav0cCQZMWIEXn75ZcTGxuLixYvw8/ODu7tTXFjcQGBgICoqKpQehs1efPFFnDhxAqGhoXjttdeUHo5kDQ0NqK2tha+vL65du4aIiAgcOnQIHTt2VHpokpSVleH8+fMYMGAAysvLMWjQIPz0009O9+d7z549qK6uxvvvv4/t27crPRyL3Lx5E+Hh4dizZw/8/PwwaNAgfPvtt3a75xYZ4xYeGd28eRM3btxAfX096uvr0blzZ6WHZJPPPvsMo0ePdrq/DJuiMzY2FgAQEBDglLHjKk6cOIEff/wRCQkJSg/Fam5ubvD19QUA3LhxAw0NDU65Bbdr164YMGAAAKBz584ICAjAxYsXlR2UFeLi4tC+fXulhyHJd999h/vvvx/dunVD+/btkZCQ0OwtFEh+rSZ4cnNzMX78eAQHB0Oj0ZjcTZORkYEePXrA29sbWq0W+/fvt3j5nTp1woIFCxAaGorg4GA89NBDuPfee2Vcg1vsvR63++ijjzBt2jQbR2zM3utw4sQJtGvXDhMmTMCgQYOwcuVKGUf/G0f8WlRVVUGr1WLYsGF2uSy7I9ZhwYIFSEtLk2nEpjliPS5fvozIyEiEhITg+eefR2BgoEyj/40j/3zn5+ejsbER3bt3t3HUhhy5Do5k63qdPXsW3bp10z8PCQnBmTNnHDF0+j+tJnhqamoQGRmJt99+2+TrmZmZmDdvHl588UUcOXIEsbGx0Ol0KCkp0c+j1WoRERFh9Dh79iwuXbqEnTt34tSpUzhz5gzy8vKQm5vrdOvRpKqqCgcOHLDLv8rtvQ719fXYv38/0tPT8e9//xs5OTlGlzp3hvUAgFOnTqGgoADvvPMOnnzySVRVVTnVOnz66afo3bs3evfuLeu4Hb0eANChQwccPXoUxcXF+Mc//oHz58875XoAQGVlJZ588kls2LDBadfB0WxdL1NbBKXcUJNkoOBFDxUDQOzYscNg2pAhQ8ScOXMMpt13331i4cKFFi3zo48+EsnJyfrnq1evFq+88orNY22OPdajyZYtW8Qf/vAHW4fYInusQ15enhgzZoz++erVq8Xq1attHmtz7Plr0eSRRx4Rhw4dsnaILbLHOixcuFCEhISIsLAw0bFjR+Hn5yeWLVsm15BNcsSvxZw5c8RHH31k7RAtYq/1uHHjhoiNjRVbtmyRY5jNsuevxZ49e8SUKVNsHaJVrFmvAwcOiEcffVT/2ty5c8UHH3xg97HSb1rNFp7m1NXVoaCgAPHx8QbT4+PjkZeXZ9Eyunfvjry8PP3+/b1796JPnz72GK5ZcqxHE3vtzmqJHOsQFRWF8+fP49KlS2hsbERubi769u1rj+GaJcd6XLp0CbW1tQCA06dPo6ioCPfcc4/sYzVHjnVIS0tDaWkpTp06hddeew1PPfUUFi9ebI/hmiXHepw/f16/da2qqgq5ublO+edbCIHp06dj1KhRSExMtMcwmyXn31FqYsl6DRkyBD/88APOnDmDq1evYteuXRgzZowSw221eCQngIqKCjQ0NCAoKMhgelBQEM6dO2fRMh588EEkJCRg4MCBaNOmDUaPHo0JEybYY7hmybEeAHDlyhV89913+Pjjj+UeYovkWAd3d3esXLkSw4cPhxAC8fHxGDdunD2Ga5Yc63H8+HE888wzaNOmDTQaDf7617869IwOuX4/KU2O9Th9+jRmzZoFIQSEEHjuuefQv39/ewzXLDnW48CBA8jMzET//v31x6Bs3boV/fr1k3u4Jsn1e2rMmDE4fPgwampqEBISgh07diAqKkru4VrMkvVyd3fH66+/jri4ODQ2NuL55593urP8nB2D5zZ37k8VQkjax7pixQqsWLFC7mFJZut6+Pv72+X4BClsXQedTgedTif3sCSzZT2io6Px/fff22NYktj6a9Fk+vTpMo3IOrash1arRWFhoR1GJZ0t6zFs2DA0NjbaY1iS2Pp7Sq1nN7W0XhMmTHD4P4TpN9ylhVvXOnFzczP6F0Z5eblRsauZK6yHK6wD4Brr4QrrAHA91MQV1sEUV10vV8PgAeDp6QmtVmt0Jk9OTg6io6MVGpV0rrAerrAOgGushyusA8D1UBNXWAdTXHW9XE2r2aVVXV2NkydP6p8XFxejsLAQAQEBCA0NRWpqKhITEzF48GAMHToUGzZsQElJCebMmaPgqI25wnq4wjoArrEerrAOANdDTevhCutgiquuV6uiyLlhCtizZ48AYPRISkrSz5Oeni7CwsKEp6enGDRokNi3b59yAzbDFdbDFdZBCNdYD1dYByG4HmriCutgiquuV2vCe2kRERGRy+MxPEREROTyGDxERETk8hg8RERE5PIYPEREROTyGDxERETk8hg8RERE5PIYPEREROTyGDxERETk8hg8RERE5PIYPETUKp06dQoajQaFhYVKD4WIHIDBQ0RERC6PwUPk4hoaGtDY2Kj0MBRTV1en9BCISAUYPEQOtn37dvTr1w8+Pj7o2LEjHnroIdTU1AAAGhsbsXz5coSEhMDLywsDBgzAF198oX/v3r17odFocPnyZf20wsJCaDQanDp1CgCwefNmdOjQATt37kR4eDi8vLzw66+/ora2Fs8//zy6d+8OLy8v9OrVC++++65+OUVFRUhISEC7du0QFBSExMREVFRUmF2PmTNnon///qitrQUA1NfXQ6vV4g9/+EOz63/s2DGMHTsWfn5+aN++PWJjY/HLL79YtP4A8P3332PUqFH6n9/TTz+N6upq/evTp0/Ho48+irS0NAQHB6N3794AgO+++w4DBw6Et7c3Bg8ejCNHjjQ7TiJyLQweIgcqKyvDf/3Xf2HmzJk4fvw49u7di8mTJ0MIAQD461//itdffx2vvfYa/vOf/2DMmDGYMGECTpw4Ielzrl27hrS0NGzcuBHHjh1D586d8eSTT+LDDz/Em2++iePHj+Odd95Bu3bt9OMaMWIEBgwYgPz8fHzxxRc4f/48fve735n9jDfffBM1NTVYuHAhAOCll15CRUUFMjIyzL7nzJkzGD58OLy9vfH111+joKAAM2fOxM2bNy1a/2vXruGRRx7BXXfdhUOHDmHbtm348ssv8dxzzxl8zldffYXjx48jJycHO3fuRE1NDcaNG4c+ffqgoKAAS5cuxYIFCyT9TInIyQkicpiCggIBQJw6dcrk68HBwWLFihUG06KiokRycrIQQog9e/YIAOLSpUv6148cOSIAiOLiYiGEEO+9954AIAoLC/Xz/PTTTwKAyMnJMfm5L730koiPjzeYVlpaKgCIn376yez65OXlCQ8PD/HSSy8Jd3d3sW/fPrPzCiHEokWLRI8ePURdXZ3J11ta/w0bNoi77rpLVFdX61///PPPRZs2bcS5c+eEEEIkJSWJoKAgUVtbq59n/fr1IiAgQNTU1OinrVu3TgAQR44caXbMROQauIWHyIEiIyMxevRo9OvXD4899hj+9re/4dKlSwCAqqoqnD17FjExMQbviYmJwfHjxyV9jqenJ/r3769/XlhYCDc3N4wYMcLk/AUFBdizZw/atWunf9x3330AoN/dZMrQoUOxYMEC/OUvf8Gf/vQnDB8+XP+aTqfTL+v+++/XjyM2NhYeHh5Gy7Jk/Y8fP47IyEi0bdvW4PXGxkb89NNP+mn9+vWDp6en/nnT+3x9fQ3GTkSth7vSAyBqTdzc3JCTk4O8vDzs3r0bb731Fl588UV8++236NixIwBAo9EYvEcIoZ/Wpk0b/bQm9fX1Rp/j4+NjsBwfH59mx9XY2Ijx48fjlVdeMXqta9euzb7vwIEDcHNzM9rttnHjRly/fh0A9IHT0jiA5tf/9v9v7n23B1HT+4iodeMWHiIH02g0iImJwbJly3DkyBF4enpix44d8PPzQ3BwML755huD+fPy8tC3b18AQKdOnQDcOuamiSXXkenXrx8aGxuxb98+k68PGjQIx44dw913342ePXsaPO6Mh9u9+uqrOH78OPbt24fs7Gy89957+te6deumX0ZYWBgAoH///ti/f7/JSLNk/cPDw1FYWKg/yBsADhw4gDZt2ugPTjYlPDwcR48e1QcYABw8eNDs/ETkghTdoUbUyhw8eFCsWLFCHDp0SPz666/io48+Ep6enmLXrl1CCCHeeOMN4efnJz788EPx448/ihdeeEF4eHiIn3/+WQghRF1dnejevbt47LHHxE8//SR27twp+vTpY3QMj7+/v9FnT58+XXTv3l3s2LFD/O///q/Ys2ePyMzMFEIIcebMGdGpUycxdepU8e2334pffvlFZGdnixkzZoibN2+aXJcjR44IT09P8dlnnwkhhNi4caNo3769+OWXX8yuf0VFhejYsaOYPHmyOHTokPj555/Fli1bxI8//mjR+tfU1IiuXbuKKVOmiO+//158/fXX4p577hFJSUn6z0hKShITJ040+NyrV6+KwMBA8V//9V/i2LFj4vPPPxc9e/bkMTxErQiDh8iBioqKxJgxY0SnTp2El5eX6N27t3jrrbf0rzc0NIhly5aJbt26CQ8PDxEZGSn+9a9/GSzjm2++Ef369RPe3t4iNjZWbNu2zaLguX79upg/f77o2rWr8PT0FD179hSbNm3Sv/7zzz+LSZMmiQ4dOggfHx9x3333iXnz5onGxkaTywoPDxdPP/20wfRJkyaJ6Ohos5EkhBBHjx4V8fHxwtfXV7Rv317ExsbqI8mS9f/Pf/4j4uLihLe3twgICBBPPfWUuHr1qv51U8EjhBD//ve/RWRkpPD09BQDBgwQH3/8MYOHqBXRCMGd20REROTaeAwPERERuTwGDxEREbk8Bg8RERG5PAYPERERuTwGDxEREbk8Bg8RERG5PAYPERERuTwGDxEREbk8Bg8RERG5PAYPERERuTwGDxEREbm8/w/v/oUt8uQIDAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "order_plot = 5\n", + "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace)\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"HELMHOLTZ recurrence error order = \"+str(order_plot))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -257,7 +232,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -286,6 +261,29 @@ "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 1.06358757108645 \\cdot 10^{-10}$" + ], + "text/plain": [ + "1.06358757108645e-10" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "compute_error_coord(recur_laplace, np.array([10e-4,1]), 6, derivs_laplace)" + ] + }, { "cell_type": "code", "execution_count": null, From adaf9c03355c8959d4cfa2b2e6daafad0450498c Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 21 Dec 2024 21:05:09 -0800 Subject: [PATCH 119/193] Why are the Laplace/Helmhotlz errors so similar? --- test/modified_recur.ipynb | 316 --------------- test/plot_normal_recurrence.ipynb | 367 ++++++++++++++++++ ...nce.ipynb => plot_taylor_recurrence.ipynb} | 0 3 files changed, 367 insertions(+), 316 deletions(-) delete mode 100644 test/modified_recur.ipynb create mode 100644 test/plot_normal_recurrence.ipynb rename test/{taylor_recurrence.ipynb => plot_taylor_recurrence.ipynb} (100%) diff --git a/test/modified_recur.ipynb b/test/modified_recur.ipynb deleted file mode 100644 index 34a2ba3d8..000000000 --- a/test/modified_recur.ipynb +++ /dev/null @@ -1,316 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", - "\n", - "from sumpy.expansion.diff_op import (\n", - " laplacian,\n", - " make_identity_diff_op,\n", - ")\n", - "\n", - "from sumpy.recurrence import get_recurrence\n", - "\n", - "import sympy as sp\n", - "from sympy import hankel1\n", - "\n", - "import numpy as np\n", - "\n", - "import math\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib import cm, ticker" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "n_init, order, recur_laplace = get_processed_and_shifted_recurrence(laplace2d)\n", - "\n", - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "n_init, _, recur_helmholtz = get_processed_and_shifted_recurrence(helmholtz2d)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "max_abs = .0000001\n", - "var = _make_sympy_vec(\"x\", 2)\n", - "rct = sp.symbols(\"r_{ct}\")\n", - "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives(p):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - " derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs\n", - "derivs_laplace = compute_derivatives(8)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives_h2d(p):\n", - " k = 1\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - " derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs_helmholtz\n", - "derivs_helmholtz = compute_derivatives_h2d(8)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list, n_initial, n_order):\n", - " subs_dict = {}\n", - " subs_dict[s(-2)] = 0\n", - " subs_dict[s(-1)] = 0\n", - " for i in range(n_initial):\n", - " subs_dict[s(i)] = derivs_list[i].subs(coord_dict)\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " for i in range(3, p):\n", - " exp = get_recurrence(recur, i)\n", - " f = sp.lambdify([var[0], var[1], s(i-1), s(i-2), s(i-3), s(i-4), s(i-5)], exp)\n", - " subs_dict[s(i)] = f(coord_dict[var[0]], coord_dict[var[1]], subs_dict[s(i-1)], subs_dict[s(i-2)],\n", - " subs_dict[s(i-3)], subs_dict[s(i-4)], subs_dict[s(i-5)])\n", - " subs_dict.pop(s(-2))\n", - " subs_dict.pop(s(-1))\n", - " return np.array(list(subs_dict.values()))" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate_true(coord_dict, p, derivs_list):\n", - " retMe = []\n", - " for i in range(p):\n", - " exp = derivs_list[i]\n", - " f = sp.lambdify(var, exp)\n", - " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", - " return np.array(retMe)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_error_coord(recur, loc, order, derivs_list):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", - "\n", - " exp = evaluate_recurrence_lamb(coord_dict, recur, order+1, derivs_list)[order].evalf()\n", - " \n", - " true = derivs_list[order].subs(coord_dict).evalf()\n", - "\n", - " return (np.abs(exp-true)/np.abs(true))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def generate_error_grid(res, order_plot, recur, derivs):\n", - " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " res=len(x_grid)\n", - " plot_me = np.empty((res, res))\n", - " for i in range(res):\n", - " for j in range(res):\n", - " if abs(x_grid[i]) == abs(y_grid[j]):\n", - " plot_me[i, j] = 1e-16\n", - " else:\n", - " plot_me[i,j] = compute_error_coord(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs)\n", - " if plot_me[i,j] == 0:\n", - " plot_me[i, j] = 1e-16\n", - " return x_grid, y_grid, plot_me" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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3S4hIcHksp944gk88cQTsozzdvfeey+2bt2KP/zhD4iKikJqaqr+woObNm3Cv/71LyxYsADTpk0zeq+pdQWAESNGtLjf/89//jP27duHP/zhD/D19TW7LGuuDRITE4Onn34aM2bMQH5+PoYPH462bduirKwM33zzDfr164dnn30W7dq1w+uvv47Zs2fjoYcewlNPPYWgoCCcPHkSR48exdtvvw0ASExMxPr16/HEE0/gqaeeQmVlJVavXm1z7EgZqxTz5s1DZmYmJk6ciIULF2LIkCG4fv069u3bh3HjxiEuLg6///3v8cEHHyAhIQF//OMfMWTIEHh4eOD06dPYs2cPJk6c2OyFH9evXw+dTocxY8Zg+vTp6NatGy5evIjjx4/j8OHD2LZtm9U/k/nz52PLli0YO3Ysli9fjrCwMHz++efIyMjAs88+a3RcjaUefvhhjBkzBi+88AKqqqoQExOD//znP1iyZAkGDhyIxMTEFpcxb948bNq0CWPHjsXLL7+MoKAgfPDBBwan+wO3jr176623kJSUhIsXL2Lq1Kno3LkzLly4gKNHj+LChQtW/yPC09NTtl3nr776KoqKijB69GiEhISgvLwc7777Lnbv3o2lS5cabU0japaih0yTVVo6k2rs2LGSztLq1q2b0bLNPYqLiw3O0mqOubO07r//fpPzX7hwwegsrSbHjh0TSUlJIiQkRHh4eIiAgADxyCOPiM8//9xo3qaztMw9ms4Mae4sreZ+Xrc/mtPSWWCbNm0SDzzwgGjbtq3w8fER9957r3jyySdFfn6+wXy7du0SI0aMEG3bthW+vr4iPDxcvPLKKwbzvP/++6Jv377C29tbhIeHi8zMTLNnaZn6dZNjrOZ+be8chxBCXLp0Sfzxj38UoaGhwsPDQ3Tu3FmMHTtW/Pjjj/p56uvrxWuvvSYiIyOFt7e3aNeunbjvvvvEM888I06cOGFynLc7evSo+N3vfic6d+4sPDw8RJcuXcSoUaMMzrRr7s9Sc79Xf/31V/H444+Ljh07Cg8PD9GnTx/x6quv6s/+EqL5n7c5169fFy+88IIICwsTHh4eomvXruLZZ58Vly5dMpgvLCxMjB071uQyioqKxMMPPyy8vb1FQECAmDVrlvj0009NnhW1b98+MXbsWBEQECA8PDxEt27dxNixYw3OcJRyNqPcPvvsMzFs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WAdTXHW9XE2r2aVVXV2NkydP6p8XFxejsLAQAQEBCA0NRWpqKhITEzF48GAMHToUGzZsQElJCebMmaPgqI25wnq4wjoArrEerrAOANdDTevhCutgiquuV6uiyLlhCtizZ48AYPRISkrSz5Oeni7CwsKEp6enGDRokNi3b59yAzbDFdbDFdZBCNdYD1dYByG4HmriCutgiquuV2vCe2kRERGRy+MxPEREROTyGDxERETk8hg8RERE5PIYPEREROTyGDxERETk8hg8RERE5PIYPEREROTyGDxERETk8hg8RERE5PIYPETUKp06dQoajQaFhYVKD4WIHIDBQ0RERC6PwUPk4hoaGtDY2Kj0MBRTV1en9BCISAUYPEQOtn37dvTr1w8+Pj7o2LEjHnroIdTU1AAAGhsbsXz5coSEhMDLywsDBgzAF198oX/v3r17odFocPnyZf20wsJCaDQanDp1CgCwefNmdOjQATt37kR4eDi8vLzw66+/ora2Fs8//zy6d+8OLy8v9OrVC++++65+OUVFRUhISEC7du0QFBSExMREVFRUmF2PmTNnon///qitrQUA1NfXQ6vV4g9/+EOz63/s2DGMHTsWfn5+aN++PWJjY/HLL79YtP4A8P3332PUqFH6n9/TTz+N6upq/evTp0/Ho48+irS0NAQHB6N3794AgO+++w4DBw6Et7c3Bg8ejCNHjjQ7TiJyLQweIgcqKyvDf/3Xf2HmzJk4fvw49u7di8mTJ0MIAQD461//itdffx2vvfYa/vOf/2DMmDGYMGECTpw4Ielzrl27hrS0NGzcuBHHjh1D586d8eSTT+LDDz/Em2++iePHj+Odd95Bu3bt9OMaMWIEBgwYgPz8fHzxxRc4f/48fve735n9jDfffBM1NTVYuHAhAOCll15CRUUFMjIyzL7nzJkzGD58OLy9vfH111+joKAAM2fOxM2bNy1a/2vXruGRRx7BXXfdhUOHDmHbtm348ssv8dxzzxl8zldffYXjx48jJycHO3fuRE1NDcaNG4c+ffqgoKAAS5cuxYIFCyT9TInIyQkicpiCggIBQJw6dcrk68HBwWLFihUG06KiokRycrIQQog9e/YIAOLSpUv6148cOSIAiOLiYiGEEO+9954AIAoLC/Xz/PTTTwKAyMnJMfm5L730koiPjzeYVlpaKgCIn376yez65OXlCQ8PD/HSSy8Jd3d3sW/fPrPzCiHEokWLRI8ePURdXZ3J11ta/w0bNoi77rpLVFdX61///PPPRZs2bcS5c+eEEEIkJSWJoKAgUVtbq59n/fr1IiAgQNTU1OinrVu3TgAQR44caXbMROQauIWHyIEiIyMxevRo9OvXD4899hj+9re/4dKlSwCAqqoqnD17FjExMQbviYmJwfHjxyV9jqenJ/r3769/XlhYCDc3N4wYMcLk/AUFBdizZw/atWunf9x3330AoN/dZMrQoUOxYMEC/OUvf8Gf/vQnDB8+XP+aTqfTL+v+++/XjyM2NhYeHh5Gy7Jk/Y8fP47IyEi0bdvW4PXGxkb89NNP+mn9+vWDp6en/nnT+3x9fQ3GTkSth7vSAyBqTdzc3JCTk4O8vDzs3r0bb731Fl588UV8++236NixIwBAo9EYvEcIoZ/Wpk0b/bQm9fX1Rp/j4+NjsBwfH59mx9XY2Ijx48fjlVdeMXqta9euzb7vwIEDcHNzM9rttnHjRly/fh0A9IHT0jiA5tf/9v9v7n23B1HT+4iodeMWHiIH02g0iImJwbJly3DkyBF4enpix44d8PPzQ3BwML755huD+fPy8tC3b18AQKdOnQDcOuamiSXXkenXrx8aGxuxb98+k68PGjQIx44dw913342ePXsaPO6Mh9u9+uqrOH78OPbt24fs7Gy89957+te6deumX0ZYWBgAoH///ti/f7/JSLNk/cPDw1FYWKg/yBsADhw4gDZt2ugPTjYlPDwcR48e1QcYABw8eNDs/ETkghTdoUbUyhw8eFCsWLFCHDp0SPz666/io48+Ep6enmLXrl1CCCHeeOMN4efnJz788EPx448/ihdeeEF4eHiIn3/+WQghRF1dnejevbt47LHHxE8//SR27twp+vTpY3QMj7+/v9FnT58+XXTv3l3s2LFD/O///q/Ys2ePyMzMFEIIcebMGdGpUycxdepU8e2334pffvlFZGdnixkzZoibN2+aXJcjR44IT09P8dlnnwkhhNi4caNo3769+OWXX8yuf0VFhejYsaOYPHmyOHTokPj555/Fli1bxI8//mjR+tfU1IiuXbuKKVOmiO+//158/fXX4p577hFJSUn6z0hKShITJ040+NyrV6+KwMBA8V//9V/i2LFj4vPPPxc9e/bkMTxErQiDh8iBioqKxJgxY0SnTp2El5eX6N27t3jrrbf0rzc0NIhly5aJbt26CQ8PDxEZGSn+9a9/GSzjm2++Ef369RPe3t4iNjZWbNu2zaLguX79upg/f77o2rWr8PT0FD179hSbNm3Sv/7zzz+LSZMmiQ4dOggfHx9x3333iXnz5onGxkaTywoPDxdPP/20wfRJkyaJ6Ohos5EkhBBHjx4V8fHxwtfXV7Rv317ExsbqI8mS9f/Pf/4j4uLihLe3twgICBBPPfWUuHr1qv51U8EjhBD//ve/RWRkpPD09BQDBgwQH3/8MYOHqBXRCMGd20REROTaeAwPERERuTwGDxEREbk8Bg8RERG5PAYPERERuTwGDxEREbk8Bg8RERG5PAYPERERuTwGDxEREbk8Bg8RERG5PAYPERERuTwGDxEREbm8/w/v/oUt8uQIDAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 5\n", - "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace)\n", - " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"HELMHOLTZ recurrence error order = \"+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABo6ElEQVR4nO3de1xUdeL/8ffIZQAVFFESEfKehIKOWIKoZGKDl/LSurtFqFgZ9HOVtdKHP6+rUlbmlmCaW2a7342spP2ahVQqJmsJiltipS0KKorgBUEFhc/vD39MjjMDczkz58zwfj4e86g5c+bM5+BlXp6rSgghQEREROTC2sg9ACIiIiJ7Y/AQERGRy2PwEBERkctj8BAREZHLY/AQERGRy2PwEBERkctj8BAREZHLY/AQERGRy2PwEBERkctj8DihLVu2QKVSoaCgwOjr48ePx7333qs37d5774VKpTL6GDVqlNnLBoCTJ0/q3rts2TKj88ycOVM3z51GjRqF8PBwo++prKw0ucxjx45h+vTpCAkJgaenJwICApCQkIAvvvjCYN49e/ZApVLh448/NvtncOdjy5YtmD59eovz3f0zJlKqpj8Te/bskXsoVjl16hRmzpyJoKAgqNVqdOvWDZMmTZJ7WORk3OUeADlOTEwMXnvtNYPpvr6+Vi2vffv22LJlC5YsWYI2bX5r55qaGmzbtg2+vr6orq62erxNPv30U/zxj39Ez549sXjxYvTr1w/nz5/He++9h4SEBLzwwgtYs2ZNi8vZvn076urqdM83b96Mv/3tb/jyyy/h5+enm96rVy/ExsZi9uzZRpezZcsWbNy4kX/hEjnAjz/+iFGjRqFnz5547bXXEBwcjPLycuTk5Mg9NHIyDJ5WpEOHDnjwwQclW960adOwefNmfP311xgzZoxuelZWFhoaGvDYY4/h73//u02f8euvvyIxMREDBgzAnj170LZtW91rjz/+OJ577jm8+uqrGDx4MH7/+983u6xBgwbpPf/yyy8BABqNBgEBAXqvde7cGb169TJYxoEDB/Dee+9hxIgRePXVVy1en2vXrsHHx8fi99lLQ0MDbt26BbVabfCa0sbqKNevX4eXl5fB1knA9p9Jcz9vW12/fh3e3t6SL9cYR/3eEEIgMTER3bt3x759+/R+btOmTbP755Nr4S4tslq/fv0QHR2Nd999V2/6u+++i8mTJ+ttNbHWG2+8gWvXruGtt97Si50mr7/+Ojp06IBVq1bZ/FktOXfuHKZMmYLOnTvjo48+grt78/9eWLZsGVQqFQ4dOoSpU6eiY8eOuogSQiAzMxORkZHw9vZGx44dMXXqVPz3v/81WM6XX36J0aNHw8/PDz4+Pujfvz/S09N1r48aNUpvt2ST6dOn6+12a9oVuWbNGqxcuRI9evSAWq3G7t27JRlr0+7KgwcPIjY2Fj4+PujZsydefvllNDY26s17+fJl/PnPf0bPnj2hVqvRpUsXJCQk4KefftLNU19fj5UrV+K+++6DWq1G586dMWPGDFy4cKHZn3uTgoICTJw4Ef7+/vDy8sKgQYPw0Ucf6c3TtAt3165dmDlzJjp37gwfHx/U1dXp1icvLw/R0dHw8fHBzJkzAQClpaV48skn0aVLF6jVavTv3x+vv/663no29/M25caNG1i4cCF69OgBT09PdOvWDampqbh8+bLefPfeey/Gjx+PTz/9FIMGDYKXlxeWL18OAPjpp5/wyCOPwMfHBwEBAZg9ezauXr1q9PO++uorjB49Gr6+vvDx8UFMTAy+/vprvXma+71hb3l5eSgqKsLcuXPtEonUujB4nFjTvxbvfgghjM4vhLBofnMkJycjOzsbly5dAgD8/PPPyM/PR3JycrPvMzaOhoYGg/lyc3MRGBhocsuUj48P4uPj8eOPP+LcuXNWr0dLbt68iccffxyVlZX4+OOPERgYaPZ7J0+ejN69e2Pbtm14++23AQDPPvss5s6di4cffhjZ2dnIzMzE0aNHER0djfPnz+ve+7e//Q0JCQlobGzE22+/jf/93//FnDlzcPr0aavX5c0338Q333yD1157DV988QXuu+8+ScYK3I7CJ554Ak8++ST+9a9/QavVYuHChXpb+q5evYrhw4dj48aNmDFjBv73f/8Xb7/9Nvr27Yvy8nIAQGNjIx599FG8/PLL+OMf/4jPP/8cL7/8MnJzczFq1Chcv3692XXcvXs3YmJicPnyZbz99tv47LPPEBkZiWnTpmHLli0G88+cORMeHh744IMP8PHHH8PDwwMAUF5ejieffBJ//OMfsXPnTqSkpODChQuIjo7Grl278Je//AX/+te/8PDDD2P+/Pl4/vnnLfp530kIgcceewyvvfYaEhMT8fnnnyMtLQ3vv/8+HnroIb3dsQBw6NAhvPDCC5gzZw6+/PJLTJkyBefPn8fIkSPx448/IjMzEx988AFqamqMjuvvf/874uPj4evri/fffx8fffQR/P39MXbsWIPoAYz/3jDF2J9va/7uycvLA3B793lCQgK8vLzQrl07jB8/Xi+OicwiyOm89957AkCzj9DQUL33hIaGmpz3L3/5i8GyDx48aPLzS0pKBADx6quviqtXr4p27dqJ9evXCyGEeOGFF0SPHj1EY2OjSE1NFXf/Fhs5cmSLY1+6dKlufi8vL/Hggw82+/N46aWXBADx3XffCSGE2L17twAgtm3b1uz7li5dKgCICxcuNDufEEKkpKQIAOLtt99ucd67l79kyRK96f/+978FAPH666/rTS8rKxPe3t7ixRdfFEIIcfXqVeHr6yuGDx8uGhsbTX7OyJEjxciRIw2mJyUl6f0+aPp169Wrl6ivr5d0rE3juPPXoUlYWJgYO3as7vmKFSsEAJGbm2tynf75z38KAOKTTz7Rm37w4EEBQGRmZpp8rxBC3HfffWLQoEHi5s2betPHjx8vunbtKhoaGoQQv/1+f+qppwyW0bQ+X3/9td70BQsWGF3P5557TqhUKvHzzz8LIZr/eRvz5ZdfCgBizZo1etOzsrIEALFp0ybdtNDQUOHm5qb7rCYvvfSSUKlUoqioSG/6mDFjBACxe/duIYQQtbW1wt/fX0yYMEFvvoaGBhERESGGDh2qm2bq94YpTettzqNpPKY8++yzAoDw9fUVycnJ4quvvhIffPCBCA0NFQEBAeLs2bNmjYlICCF4DI8T27p1K/r3728wfd68eSgrKzOYPnz4cLzxxhsG07t162b1GNq1a4fHH38c7777Lp599lls3boVqampRo9/aNKrVy98+OGHBtOvXLmChx9+2OIxiP//r8TmPtMWW7ZsQWZmJmbOnIlnn33W4vdPmTJF7/mOHTugUqnw5JNP4tatW7rp99xzDyIiInRn0uTn56O6uhopKSmSrtvEiRN1WzCkGuud04cOHao3beDAgSgqKtI9/+KLL9C3b99mf6137NiBDh06YMKECXqfGxkZiXvuuQd79uzBc889Z/S9J06cwE8//aQ7QP/O9yckJGDHjh34+eef9f7s3L3eTTp27IiHHnpIb9o333yDsLAwg/WcPn06NmzYgG+++QZ9+/bVTW/u5333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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 6\n", - "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace)\n", - " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"HELMHOLTZ recurrence error order = \"+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 7\n", - "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace)\n", - " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"HELMHOLTZ recurrence error order = \"+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 1.06358757108645 \\cdot 10^{-10}$" - ], - "text/plain": [ - "1.06358757108645e-10" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "compute_error_coord(recur_laplace, np.array([10e-4,1]), 6, derivs_laplace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "inteq", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb new file mode 100644 index 000000000..e04b00315 --- /dev/null +++ b/test/plot_normal_recurrence.ipynb @@ -0,0 +1,367 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "\n", + "from sumpy.recurrence import get_recurrence\n", + "\n", + "import sympy as sp\n", + "from sympy import hankel1\n", + "\n", + "import numpy as np\n", + "\n", + "import math\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm, ticker" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "n_init_lap, order_lap, recur_laplace = get_processed_and_shifted_recurrence(laplace2d)\n", + "\n", + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "n_init_helm, order_helm, recur_helmholtz = get_processed_and_shifted_recurrence(helmholtz2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "max_abs = .0000001\n", + "var = _make_sympy_vec(\"x\", 2)\n", + "rct = sp.symbols(\"r_{ct}\")\n", + "s = sp.Function(\"s\")\n", + "n = sp.symbols(\"n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "derivs_laplace = compute_derivatives(8)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives_h2d(p):\n", + " k = 1\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + " derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs_helmholtz\n", + "derivs_helmholtz = compute_derivatives_h2d(8)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list, n_initial, n_order):\n", + " subs_dict = {}\n", + " for i in range(n_initial-n_order, 0):\n", + " subs_dict[s(i)] = 0\n", + " for i in range(n_initial):\n", + " subs_dict[s(i)] = derivs_list[i].subs(coord_dict)\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " for i in range(n_initial, p):\n", + " exp = get_recurrence(recur, i)\n", + " f = sp.lambdify([var[0], var[1]] + [s(i-(1+k)) for k in range(n_order-1)], exp)\n", + " subs_dict[s(i)] = f(*([coord_dict[var[0]], coord_dict[var[1]]] + [subs_dict[s(i-(1+k))] for k in range(n_order-1)]))\n", + " for i in range(n_initial-n_order, 0):\n", + " subs_dict.pop(s(i))\n", + " return np.array(list(subs_dict.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_true(coord_dict, p, derivs_list):\n", + " retMe = []\n", + " for i in range(p):\n", + " exp = derivs_list[i]\n", + " f = sp.lambdify(var, exp)\n", + " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", + " return np.array(retMe)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_error_coord(recur, loc, order, derivs_list, n_initial, n_order):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", + "\n", + " exp = evaluate_recurrence_lamb(coord_dict, recur, order+1, derivs_list, n_initial, n_order)[order].evalf()\n", + " \n", + " true = derivs_list[order].subs(coord_dict).evalf()\n", + "\n", + " \n", + "\n", + " return (np.abs(exp-true)/np.abs(true))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def generate_error_grid(res, order_plot, recur, derivs, n_initial, n_order):\n", + " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " res=len(x_grid)\n", + " plot_me = np.empty((res, res))\n", + " for i in range(res):\n", + " for j in range(res):\n", + " if abs(x_grid[i]) == abs(y_grid[j]):\n", + " plot_me[i, j] = 1e-16\n", + " else:\n", + " plot_me[i,j] = compute_error_coord(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs, n_initial, n_order)\n", + " if plot_me[i,j] == 0:\n", + " plot_me[i, j] = 1e-16\n", + " return x_grid, y_grid, plot_me" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "order_plot = 5\n", + "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"Laplace recurrence error order = \"+str(order_plot))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABo3ElEQVR4nO3de1xUdeL/8ffIZUAFFFEUESRvSQjmiAqKihY2ppZpufv9LuJty4W+rrJuq+vXG6WUlVkrmGZltvvdyDapNXeRSoVkLUFpU8zURUHlEmgiqKDw+f3hj8lxZmAuZ+Ychvfz8ZjH7pw5c+ZzUJlX56oSQggQERERObEOcg+AiIiIyN4YPEREROT0GDxERETk9Bg8RERE5PQYPEREROT0GDxERETk9Bg8RERE5PQYPEREROT0GDxERETk9Bg87diOHTugUqmQn5/v0M89cOAAVCoVDhw44NDPJWpr1qxZA5VKJfcwrPbVV19h8uTJ6Nq1Kzw9PTFgwAA8//zzcg+L2ilXuQdARETO5//+7/8QHx+Pp556Cjt37kTnzp1x9uxZXLp0Se6hUTvF4CEyw/Xr19GxY0e5h6Fz48YNeHh4GP2vf6WN1VFMrbcQAjdv3oSnp6fVy27p522LxsZG3L59G2q1WtLlmuKovxsXL17E008/jWeeeQbp6em66bGxsXb/bCJTuEuLWnTz5k387ne/w9ChQ+Hj4wNfX19ERUXhk08+MZhXpVLh2WefxdatWzFw4ECo1WqEhobigw8+aPVz8vPz8Ytf/AJ9+/aFp6cn+vbti1/+8pc4f/68wbzNv0z79OkDd3d3BAQEYObMmaioqNDNU1NTg6VLlyIkJATu7u7o3bs3Fi9ejLq6ulbHMn78eISFhSEnJwfR0dHo2LEj5s2bZ9Fym5qa8Kc//QlDhw6Fp6cnunTpglGjRuHTTz/V+3mtWbPG4PP79u2LOXPm6J4373rct28f5s2bh+7du6Njx46or6+XZKzNf27vv/8+Bg8ejI4dOyIiIgJ79uwxGNv333+PX/7yl/D394darUZQUBBmz56N+vp63Tzl5eV45plnEBgYCHd3d4SEhGDt2rW4fft2qz97AMjIyEBUVBQ6deqEzp07Y9KkSTh27JjePHPmzEHnzp3x3XffIS4uDl5eXpg4caLe+rz55psYPHgw1Go13nvvPQB3drFMnDgRXl5e6NixI6Kjo/HZZ5/pLbuln7cpJSUl+NWvfoUePXpArVZj8ODBePXVV9HU1KSb59y5c1CpVNiwYQNeeOEFhISEQK1WY//+/QCAzz77DEOHDoVarUZISAheeeUVo58lhEB6erru71bXrl0xc+ZM/Oc//9Gbr6W/G/a2fft21NXV4Q9/+INDPo/IHNzCQy2qr6/H5cuXsXTpUvTu3RsNDQ34/PPP8cQTT+Ddd9/F7Nmz9eb/9NNPsX//fqSkpKBTp05IT0/HL3/5S7i6umLmzJkmP+fcuXMYNGgQfvGLX8DX1xdlZWXYsmULIiMjUVRUBD8/PwB3YicyMhK3bt3CH//4R4SHh6O6uhpZWVm4cuUK/P39cf36dYwbNw4XLlzQzXPixAmsWrUK3333HT7//PNW/0u9rKwMv/rVr/Dcc89h/fr16NChg0XLnTNnDv785z9j/vz5SElJgbu7O44ePYpz585Z/Wcxb948PProo3j//fdRV1cHNzc3ScYK3PmyPXLkCFJSUtC5c2ds2LAB06dPx6lTp3DfffcBAL799luMGTMGfn5+SElJwYABA1BWVoZPP/0UDQ0NUKvVKC8vx4gRI9ChQwesWrUK/fr1w7/+9S+88MILOHfuHN59990W13H9+vX43//9X8ydOxf/+7//i4aGBrz88suIiYnBN998g9DQUN28DQ0NmDZtGp555hksW7ZML6gyMzORm5uLVatWoWfPnujRowcOHjyIhx9+GOHh4Xj77behVquRnp6OqVOn4q9//StmzZpl1s/7Xj/++COio6PR0NCA559/Hn379sWePXuwdOlSnD17Vm8LBwC88cYbGDhwIF555RV4e3tjwIAB+OKLL/DYY48hKioKH3zwARobG7Fhwwa9iG/2zDPPYMeOHVi0aBFeeuklXL58GSkpKYiOjsa3334Lf39/3bzG/m6YIoRAY2Nji38+zVxdW/7qyMnJga+vL77//ns89thjOH78OHx9ffHEE09gw4YN8Pb2NutziCQlqN169913BQBx5MgRs99z+/ZtcevWLTF//nzx4IMP6r0GQHh6eory8nK9+e+//37Rv39/3bT9+/cLAGL//v0tfk5tba3o1KmTeP3113XT582bJ9zc3ERRUZHJ96ampooOHToYrNdHH30kAIi9e/e2uI7jxo0TAMQXX3xh1XJzcnIEALFixYoW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G15eXpg8eTKysrLkHhYREVG7I+d3suKDJycnB1OnTkVAQABUKhUyMzMN5klPT0dISAg8PDyg0WiQm5ure+3SpUvo3bu37nlgYCAuXrzoiKETERE5lbb8naz44Kmrq0NERITJM38yMjKwePFirFixAseOHUNMTAy0Wi1KSkoAGL8iqLXX2yAiImrP2vJ3suIvPKjVanU3HjRm48aNmD9/PhYsWAAA2LRpE7KysrBlyxakpqaid+/eevV44cKFFi+4Vl9fr3e5/6amJly+fBndunVjKBERUYuEELh27RoCAgLsdguNmzdvoqGhQZJlCSEMvtvUarXRW5cAjv9OlpR8lwCyHACxe/du3fP6+nrh4uIiPv74Y735Fi1aJMaOHSuEEOLWrVuif//+4sKFC6Kmpkb0799fVFVVmfyM5gt98cEHH3zwwYe1j9LSUrt8D964cUP09O8p2Tg7d+5sMG316tVmjQWw/3eylBS/haclVVVVaGxsNLhzsL+/v+6me66urnj11VcRGxuLpqYmPPfccy1ePn358uVITk7WPb969SqCgoJw5sQZeHl52WdFyCz//o/xm2qS45z96SYAoOhKncwjIQA48mMtii5dk3sYBKD2xztbLcStm2j6cLndvi8aGhpQXlGO0ydOw9vL26Zl1VyrwYAHBqC0tBTe3j8vy9TWndbY4ztZSm06eJrduzlO3LOJbtq0aZg2bZpZy2relJeWloa0tDTdzSu9vLz0/kKQYx07U4VOnRmccjl95QYAwLNTZxy/XAd1x84yj4gOV17DyepGqNQd5R5Ku1ZbeQEAoHL31Jtu70MgvL28JftO8vaWblmAtN/JUmrTwePn5wcXFxddOTarrKw0KExLJSUlISkpCTU1NZLczJGsU/XTDZRWcWuCnJpjBwCOX+afhdwOV97ZovPdhRqZR0LNsUN32PM7WQqKP0urJe7u7tBoNMjOztab3ny3ZlukpaUhNDQUkZGRNi2HrMfYkdfpKzcYOwrD2FGG2soLjB0j7PmdLAXFb+Gpra3FmTNndM+Li4tRWFgIX19fBAUFITk5GfHx8Rg+fDiioqKwbds2lJSUYOHChTZ9LrfwyIuxI5+7I6cZY0dezaEDMHbk1t5DR67vZCkoPnjy8/MRGxure958QHFCQgJ27NiBWbNmobq6GikpKSgrK0NYWBj27t2L4OBguYZM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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "order_plot = 6\n", + "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"Laplace recurrence error order = \"+str(order_plot))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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enq6mDNnjrh9+3aj23LixAnh7OwsPv74YyGEENu3bxdubm7ixx9/NLn9ZWVlolu3bmLatGni2LFj4ocffhA7d+4U33//vVnbX1VVJXr16iWmT58uvv32W/H555+LBx54QMTGxurXERsbKx5//HGD9V6/fl14enqK3/zmN+LkyZPik08+Ef379+c5PETtCIOHqBXl5+eLCRMmiO7duwu1Wi0GDhwo/vrXv+pfr6urE2vWrBG9e/cWTk5OIjg4WPzzn/80WMYXX3whhg4dKlxcXERERITYvXu3WcFz8+ZNsXjxYtGrVy/h7Ows+vfvL95880396z/88IOYOnWq6NKli3B1dRUPPvigWLRokaivr290WQEBAeLpp582mD516lQRHh5uMpKEEOLrr78W0dHRomPHjsLNzU1EREToI8mc7f/mm29EVFSUcHFxER4eHuJ3v/uduH79uv71xoJHCCG+/PJLERwcLJydnUVISIj4+9//zuAhakdUQvDgNhEREdk3nsNDREREdo/BQ0RERHaPwUNERER2j8FDREREdo/BQ0RERHaPwUNERER2j8FDREREdo/BQ0RERHaPwUNERER2j8FDREREdo/BQ0RERHbv/wNHIFVfdXLeOwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "order_plot = 7\n", + "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"Laplace recurrence error order = \"+str(order_plot))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABncklEQVR4nO3de1xU1d4/8M/I3QsoXlDkIuYlEQEdMdFA0cKG1PLS8ZzfCfGWx6CfR8lfR4+P15PS1agE0yxNn06RldRjnhBLhSRTULqImRgKKorgBUEFhPX7w4fJcRiYgRn2Yvi8X6955V6zZ+3vwst8WnvtvVVCCAEiIiIiK9ZG6QKIiIiILI2Bh4iIiKweAw8RERFZPQYeIiIisnoMPERERGT1GHiIiIjI6jHwEBERkdVj4CEiIiKrx8BDREREVo+Bxwpt3boVKpUKmZmZdb4/fvx49OrVq1F9z5gxo9GfNWT06NHw8/Mza58qlQorV67Ubufk5GDlypU4c+aMWY9DJIPav/Mt7c/3ypUroVKpDL4+/vhjpUskK2KrdAFEzSEnJwerVq3C6NGjzR7YiKhx5syZg8cee0yv/ZlnnsHp06frfI+osRh4iMzo5s2baNu2rdJlaFVVVUGlUsHWVv+vumy1Npf6xn3r1i04OTk1uu/6ft5NIYTA7du3m1SbKZrrz4aHhwc8PDx02s6cOYPjx4/jr3/9Kzp27GjxGqj14CktAnD3H9TExEQEBgbCyckJnTp1wtSpU/H77783+FmVSoXnnnsOW7ZsQf/+/eHk5IShQ4fi0KFDEELg1VdfhY+PD9q3b48xY8YgNze3zn6OHDmCkJAQtG3bFr1798ZLL72EmpoanX3y8/Px9NNPo1u3bnBwcMCAAQPw+uuv6+13r61bt+Kpp54CAISFhWmny7du3Yr9+/cbnE5vaCZoxowZaN++PX7++WeEh4ejQ4cOGDt2LACgsrISL774Ih588EE4ODiga9eumDlzJi5fvqzXz7///W8EBwejffv2aN++PQIDA/Hee+9p3+/VqxdmzJih97nRo0dj9OjR2u3asWzfvh3PP/88evbsCQcHB+Tm5pql1l69emH8+PH4+uuvMWTIEDg5OeHBBx/E+++/r1fb+fPnMXfuXHh6esLe3h7u7u6YOnUqLl26pN2ntLQUixYtgo+PD+zt7dGzZ08sWLAA5eXl9f7ca+3duxdjx46Fs7Mz2rZti5EjR+Kbb77R2af2lMnRo0cxdepUdOrUCQ888IDOeD7//HMMHjwYjo6OWLVqFQDgl19+wRNPPIFOnTrB0dERgYGB+OCDD3T6ru/nbciVK1cQHR2Nnj17wt7eHr1798bSpUtRUVGhs1/t36l33nkHAwYMgIODg/b4hw4dwsiRI+Ho6Ah3d3csWbIEVVVVdR4vKSkJwcHBaNeuHdq3b49x48bh2LFjOvvU92dDCe+//z6EEJgzZ45iNZCVEmR1tmzZIgCIQ4cOiaqqKr1XRESE8Pb21vnMM888I+zs7MTzzz8vvv76a/Hvf/9bPPjgg8LNzU1cvHhRu19UVJTeZwEIb29vMWLECPH555+LnTt3in79+glXV1excOFC8cQTT4hdu3aJDz/8ULi5uQl/f39RU1Oj/fyoUaNE586dRd++fcU777wjUlNTRXR0tAAgPvjgA+1+RUVFomfPnqJr167inXfeEV9//bV47rnnBADx7LPP6tW0YsUK7efWrl0rAIiEhATx/fffi++//14UFRWJ69eva7drX9u2bRN2dnYiIiKi3p9zVFSUsLOzE7169RJxcXHim2++ESkpKaK6ulo89thjol27dmLVqlUiNTVVbN68WfTs2VP4+vqKmzdvavtYtmyZACAmT54sduzYIfbs2SPWrVsnli1bpt3H29tbREVF6R1/1KhRYtSoUdrtffv2CQCiZ8+eYurUqeLLL78Uu3btEiUlJWap1dvbW3h4eAhfX1+xbds2kZKSIp566ikBQBw4cEC737lz50SPHj1Ely5dxLp168TevXtFUlKSmDVrljhx4oQQQojy8nIRGBios8+bb74pXFxcxJgxY3T+fNRl+/btQqVSiSeffFJ8/vnn4n/+53/E+PHjhY2Njdi7d692vxUrVmj/fP7jH/8QqampIjk5WTueHj16iN69e4v3339f7Nu3Txw+fFj8+uuvokOHDuKBBx4Q27ZtE1999ZX4y1/+IgCIl19+2aifd11u3bol/P39Rbt27cRrr70m9uzZI5YtWyZsbW31/qzV9uvv7y/+/e9/i2+//Vb88ssv4vjx46Jt27bC19dXfPTRR+KLL74Q48aNE15eXgKAyMvL0/axZs0aoVKpxKxZs8SuXbvE559/LoKDg0W7du3E8ePHtfsZ+rNhSE1NTZ3/rtT1MlV1dbXw9PQUffr0MfmzRA1h4LFCtYGnvte9oeX7778XAMTrr7+u009BQYFwcnISL7zwgrbNUODp3r27KCsr07YlJycLACIwMFDnyys+Pl4AED/99JO2bdSoUQKA+OGHH3T69fX1FePGjdNuL168uM79nn32WaFSqcTJkyd1aqoNPEIIsWPHDgFA7Nu3z/APTghx6dIl0bt3bzFw4EBx9erVeveNiooSAMT777+v0/7RRx8JAOKzzz7TaT9y5IgAIBITE4UQQvz+++/CxsZG/PWvf633OKYGntDQULPXWluHo6OjOHv2rLbt1q1bwtXVVfztb3/Tts2aNUvY2dmJnJwcg2OKi4sTbdq0EUeOHNFp//TTTwUAsXv3boOfLS8vF66urmLChAk67dXV1SIgIEAMGzZM21YbeJYvX67Xj7e3t7CxsdH5cyOEEH/+85+Fg4ODyM/P12nXaDSibdu24tq1a0KI+n/edXnnnXcEAPHJJ5/otL/88ssCgNizZ4+2DYBwcXERV65c0dl32rRpwsnJSed/Qu7cuSMefPBBncCTn58vbG1txf/9v/9X5/M3btwQ3bt3F3/605+0bYb+bBhSO25jXvcGMGP85z//EQBEXFycSZ8jMgZPaVmxbdu24ciRI3qvhx9+WGe/Xbt2QaVS4emnn8adO3e0r+7duyMgIAD79+9v8FhhYWFo166ddnvAgAEAAI1GA5VKpdd+9uxZnc93794dw4YN02nz9/fX2e/bb7+Fr6+v3n4zZsyAEALffvttg3XWp7y8HI8//jhu376N//znP0avH5gyZYrO9q5du9CxY0dMmDBB5+cZGBiI7t27a3+eqampqK6uRkxMTJPqbqgec9RaKzAwEF5eXtptR0dH9OvXT+f36T//+Q/CwsK0v9d12bVrF/z8/BAYGKhz3HHjxkGlUtX7Zy4jIwNXrlxBVFSUzmdramrw2GOP4ciRI3qnxQz9TPz9/dGvXz+dtm+//RZjx46Fp6enTvuMGTNw8+ZNfP/990b1fb9vv/0W7dq1w9SpU/X6BaB3Om7MmDHo1KmTTtu+ffswduxYuLm5adtsbGwwbdo0nf1SUlJw584dTJ8+Xedn5OjoiFGjRtX58zV2HGq1us5/V+p6ubu7G9Vnrffeew+2trZ1nsIlaiouWrZiAwYMwNChQ/XaXVxcUFBQoN2+dOkShBA6/4jeq3fv3g0ey9XVVWfb3t6+3vbbt2/rtHfu3FmvTwcHB9y6dUu7XVJSUue6mtp/VEtKShqs05A7d+5g6tSp+O2335CWlqb3ZWdI27Zt4ezsrNN26dIlXLt2TTvW+xUXFwOAdo3M/Ys2m6pHjx51tjel1lrG/D5dvny5wTFdunQJubm5sLOzM+q4938WgF5wuNeVK1d0Arihn0ld7SUlJXW2G/pzZqjvuvrt3r27zv8AAEC3bt1ga2trVL+1fdzv/rban1FQUFCdtbRpo/v/unX92TCkdp2ZMUxZvF1cXIwvv/wSjz/+eJ1jJGoqBh5Cly5doFKpkJ6eDgcHB73362pTQufOnVFYWKjXfuHCBQB3x9FYc+fOxTfffIPdu3cjICDA6M/d/+VVW0fnzp3x9ddf1/mZDh06AAC6du0KADh37ly9AcvR0VFvUStw9wuirjHXVVNTazVF165dce7cuXr36dKlC5ycnOpc8Fz7fn2fBYC3334bw4cPr3Of+8O7KT8TU/+cGeq7rn5/+OEHCCF0PlNUVIQ7d+4Y1W/nzp1x8eJFvfb722r7+vTTT+Ht7d1gbcaOAQAOHDiAsLAwo/bNy8sz+jYQ27dvR2VlJRcrk8Uw8BDGjx+Pl156CefPn8ef/vQnpcsxaOzYsYiLi8PRo0cxZMgQbfu2bdugUqnq/Ue4NrTdOxNR67/+67+wZcsWfPDBB3jkkUeaXOf48ePx8ccfo7q6Gg899JDB/cLDw2FjY4MNGzYgODjY4H69evXCTz/9pNP222+/4eTJk00KeabUagqNRoPt27fj5MmT6N+/v8Hjrl27Fp07d4aPj49J/Y8cORIdO3ZETk4OnnvuOXOUrGPs2LHYuXMnLly4oHNKZtu2bWjbtq3BkGVMv5988gmSk5MxadIknX5r329IWFgYvvzyS1y6dEkb6qqrq5GUlKSz37hx42Bra4vTp08bfarKWLWntIxhyimt9957D+7u7tBoNI0tjaheDDyEkSNHYu7cuZg5cyYyMzMRGhqKdu3aobCwEN999x0GDRqEZ599VukysXDhQmzbtg2PP/44Vq9eDW9vb3z11VdITEzEs88+q7cW4161d3LetGkTOnToAEdHR/j4+ODbb7/FmjVrMHXqVPTr1w+HDh3SfsbBwQGDBw82uc4///nP+PDDDxEREYG///3vGDZsGOzs7HDu3Dns27cPTzzxBCZNmoRevXrhn//8J/71r3/h1q1b+Mtf/gIXFxfk5OSguLhYe4l0ZGQknn76aURHR2PKlCk4e/YsXnnlFe0MUVMYW6spVq9ejf/85z8IDQ3FP//5TwwaNAjXrl3D119/jdjYWDz44INYsGABPvvsM4SGhmLhwoXw9/dHTU0N8vPzsWfPHjz//PMGA1j79u3x9ttvIyoqCleuXMHUqVPRrVs3XL58GT/++CMuX76MDRs2NPpnsmLFCuzatQthYWFYvnw5XF1d8eGHH+Krr77CK6+8AhcXl0b1O336dCQkJCAqKgpnzpzBoEGD8N1332Ht2rWIiIgwKmz/13/9F7788kuMGTMGy5cvR9u2bZGQkKC3ZqlXr15YvXo1li5dit9//x2PPfYYOnXqhEuXLuHw4cNo166d9s+XqTp06FDnqfKm+OGHH3D8+HH885//hI2NjVn7JqrFwEMAgI0bN2L48OHYuHEjEhMTUVNTA3d3d4wcOVJvkbBSunbtioyMDCxZsgRLlixBaWkpevfujVdeeQWxsbH1ftbHxwfx8fF48803MXr0aFRXV2PLli3aW/F/+umn+PTTT3U+4+3t3ahb9dvY2ODLL7/Em2++ie3btyMuLg62trbw8PDAqFGjMGjQIO2+q1evRt++ffH222/jr3/9K2xtbdG3b1/Mnz9fu8//+T//BxcuXMA777yDLVu2wM/PDxs2bGj0F1ZjazVWz549cfjwYaxYsQIvvfQSSkpK0LVrVzz88MPaNV3t2rVDeno6XnrpJWzatAl5eXlwcnKCl5cXHnnkkQZPgzz99NPw8vLCK6+8gr/97W+4ceMGunXrhsDAwCYveO3fvz8yMjLwz3/+EzExMbh16xYGDBiALVu2NKlvR0dH7Nu3D0uXLsWrr76Ky5cvo2fPnli0aBFWrFhhVB9+fn7Yu3cvnn/+eURFRaFTp06IjIzElClTMHfuXJ19lyxZAl9fX7z55pv46KOPUFFRge7duyMoKAjz5s1r9Dgs4b333oNKpcLs2bOVLoWsmEoIIZQugoiIiMiSeFk6ERERWb1WEXh27dqF/v37o2/fvti8ebPS5RAREbVakyZN0j6+6F55eXkICwuDr68vBg0aZPRjZoxl9ae07ty5A19fX+zbtw/Ozs4YMmQIfvjhB737wxAREZHl7du3D2VlZfjggw901k6OGjUKL774IkJCQnDlyhU4Ozub9UG8Vj/Dc/jwYQwcOBA9e/ZEhw4dEBERgZSUFKXLIiIiapXCwsL07vF1/Phx2NnZISQkBMDdm9aaM+wALSDwpKWlYcKECXB3d4dKpUJycrLePomJifDx8YGjoyPUajXS09O17124cAE9e/bUbnt4eOD8+fPNUToREZFVaep3siGnTp1C+/btMXHiRAwZMgRr1641e+3SB57y8nIEBARg/fr1db6flJSEBQsWYOnSpTh27BhCQkKg0WiQn58PAKjrjJ0pdxUlIiKiu5r6nWxIVVUV0tPTkZCQgO+//x6pqalITU01a+3S34dHo9HUe+fNdevWYfbs2drbkcfHxyMlJQUbNmxAXFwcevbsqTOjc+7cuXrvKFtRUaFzG/+amhpcuXIFnTt3ZlAiIqJ6CSFw48YNuLu76z2zzFxu376NyspKs/R1/6NOgLs3XTX0SKGmficb4uHhgaCgIO1jdiIiIpCdnY1HH33U1CEZptRj2hsDgNi5c6d2u6KiQtjY2IjPP/9cZ7/58+eL0NBQIYQQVVVVok+fPuLcuXOitLRU9OnTRxQXFxs8xooVKwQAvvjiiy+++Gr0q6CgwCLfg7du3RLd3bqbrc727dvrta1YscKoWgDTv5Nr7du3T0yZMkW7XVVVJQIDA8WVK1dEdXW1GD9+vPif//mfRv+c6iL9DE99iouLUV1drfegQDc3N+3D9GxtbfH6668jLCwMNTU1eOGFF+p84nOtJUuW6Ny19/r16/Dy8kLu8dxGPUiRzOen3xv/NHQyr//J4++FLD74Uf9Bp6SMssvnIapuo+aTJRb7vqisrMTFSxdx6vgpOHcw7gn3hpTeKEXfgX1RUFAAZ+c/+mrsA6ON+U4G7j7r7ejRoygvL4eHhwd27tyJoKAgrF27FqGhoRBCIDw8HOPHj2/cwAxo0YGn1v3TceK+KbqJEydi4sSJRvVVO5WXkJCAhIQEVFdXA7j7/Jh7/0BQ8zqWW4x27Rk4ZbDzdDEc2rZXugwC8O7R81A5tFW6DAJQVnQOKnsn7ball0A4d3A223eSs7P5+gIa/k42dKV0Q6fLmkr6Rcv16dKlC2xsbHSSIwAUFRXpJUxTxcTEICcnx+inApPlHMstVroE+l87T/P3QhbvHuXVprIoKzqndAlSsOR3sjm06MBjb28PtVqtt5I7NTUVI0aMaFLfCQkJ8PX1RVBQUJP6oaZh2JEHw448GHbkwbDzB0t+J5uD9Ke0ysrKkJubq93Oy8tDdnY2XF1d4eXlhdjYWERGRmLo0KEIDg7Gpk2bkJ+f3+SnAcfExCAmJgalpaVwcXFp6jCoERh25MGwIw+GHXm0xrCj1HeyOUgfeDIzMxEWFqbdrl1QHBUVha1bt2LatGkoKSnB6tWrUVhYCD8/P+zevRve3t5KlUxmwLAjh1NXb+GXK+Z9ng01HsOOPFpj2AFa9ney1T9Lq7HuXbT822+/4VL+JS5abgYMOvJg2JELw4486gs7ovIWqj9ciOvXr1vkO6P2rIM5vpNKS0vh5uVmsVpl06LX8FgSFy03P4YdeTDsyIVhRx6tdWbHGkh/SotaB4YdeXC9jjwOFd3Az+dKlS6D/hfDTsvGwGPA/ffhIcth2JEHw448GHbkwaBjHXhKywCe0moeDDvyYNiRx7tHzzPsSIJhx3ow8JBiGHbkwbAjD67XkQfDjnVh4DGANx60LIYdeTDsyINhRx4MO9aHgccAntKyjOJrtxh2JMKwIw+GHXkw7FgnBh5qNsXXbqGgmJc6y4JhRx4MO/Jg2LFeDDzULBh25MKwIw+GHXkw7Fg3XpZOFsewIw/eUFAuDDvyYNixfpzhMYCLls2DYUceDDtyYdiRB8NO68DAYwAXLTfdsdxihh1JMOzIhWFHHgw7rQdPaZFF8EoseTDsyIN3T5YHg07rwxkeMjuGHXkw7MiDYUceDDutE2d4yGy4XkcuvBJLHgw78mDYab04w0NmwbAjF4YdeTDsyINhp3Vj4DGAV2kZj2FHLgw78mDYkQfDDjHwGMCrtIzDsCMXhh158Inn8mDYIYCBh5qAYUcuDDvy4GXn8mDYoVoMPNQoDDtyYdiRB8OOPBh26F68SotMxrAjD152LheGHXkw7ND9GHjIaMXXbgEAw44kGHbkwrAjD4YdqgsDDxmFYUcuDDtyYdiRA4MO1YeBhxrEsCMXhh158LJzeTDsUEO4aNkA3ofnLoYduTDsyINhRx4MO2QMBh4DeB+ePxYnM+zIgWFHHgw78mDYIWMx8FCdeCWWXBh25MGwIw+GHTIFAw/pYdiRC8OOPBh25MGw03JNmjQJnTp1wtSpU7VtBQUFGD16NHx9feHv748dO3aY/bgMPKRVfO0Ww45kdp4uZtiRBMOOPBh2Wrb58+dj27ZtOm22traIj49HTk4O9u7di4ULF6K83Lz/9jHwEAAuTpYR754sD4YdeTDstHxhYWHo0KGDTluPHj0QGBgIAOjWrRtcXV1x5coVsx6XgYcYdiTEsCMPPgRUHgw7yktLS8OECRPg7u4OlUqF5ORkvX0SExPh4+MDR0dHqNVqpKenm3SMzMxM1NTUwNPT00xV38XA08ox7Mjl1NVbDDsS4Q0F5VBWdI5hRxLl5eUICAjA+vXr63w/KSkJCxYswNKlS3Hs2DGEhIRAo9EgPz/fqP5LSkowffp0bNq0yZxlA2glgaeuBVLEsCMbLk6WC8OOHBh0LK+0tFTnVVFRYXBfjUaDF198EZMnT67z/XXr1mH27NmYM2cOBgwYgPj4eHh6emLDhg0N1lFRUYFJkyZhyZIlGDFiRKPHY0iruNPy/PnzMWvWLHzwwQdKlyINhh25MOzIg+t15MGwY1jJ9VuorLFrUh83btz9Hrj/1NGKFSuwcuVKk/urrKxEVlYWFi9erNMeHh6OjIyMej8rhMCMGTMwZswYREZGmnxsY7SKwBMWFob9+/crXYY0GHbkwrAjD4YdeTDsNJ+CggI4Oztrtx0cHBrVT3FxMaqrq+Hm5qbT7ubmhosXL2q3x40bh6NHj6K8vBweHh7YuXMnKioqkJSUBH9/f+26oO3bt2PQoEGNqqUuigeetLQ0vPrqq8jKykJhYSF27tyJJ598UmefxMREvPrqqygsLMTAgQMRHx+PkJAQZQpuwWqDDsCwIwuGHXkw7MiDYad5OTs76wSeplKpVDrbQgidtpSUlDo/V1NTY7Ya6qL4Gh5zLIBSq9Xw8/PTe124cKG5hiE9hh35MOzIg2FHHgw7LVeXLl1gY2OjM5sDAEVFRXqzPkpQfIZHo9FAo9EYfP/eBVAAEB8fj5SUFGzYsAFxcXEAgKysLLPVU1FRobNgq7S05f8jyLAjH4YdeTDsyINhp2Wzt7eHWq1GamoqJk2apG1PTU3FE088oWBldyk+w1Of2gVQ4eHhOu3GLIBqrLi4OLi4uGhf5r4PQHNj2JEPw448GHbkwbDTMpSVlSE7OxvZ2dkAgLy8PGRnZ2vPusTGxmLz5s14//33ceLECSxcuBD5+fmYN2+eglXfpfgMT32MXQDVkLoWSAUFBdW575IlSxAbG6vdLi0tbbGhh4uT5cOwIw+GHXkw7LQcmZmZCAsL027Xfl9GRUVh69atmDZtGkpKSrB69WoUFhbCz88Pu3fvhre3t1Ila0kdeGo1tACqIYYWSNXFwcEBDg4OSEhIQEJCAqqrq43+rEwYduTDsCMPhh15MOy0LKNHj4YQot59oqOjER0d3UwVGU/qwKPkAqiYmBjExMSgtLQULi4uFj2WuTHsyIVBRy4MO3Jg0KHmJvUannsXQN0rNTXVIndhvFdCQgJ8fX0NnvqSFcOOXBh25MKwIweGHVKC4jM8ZWVlyM3N1W7XLoBydXWFl5cXYmNjERkZiaFDhyI4OBibNm1qlgVQLW2Gh4uT5cOwIxeGHTkw7JBSFA88LXkBlCwYduTDsCMPBh15MOyQkhQPPLIugGopi5YZduTDsCMPhh15MOyQ0qRew6OkmJgY5OTk4MiRI0qXYhDDjnwYduTBsCMPhh2SAQNPC8WwIx+GHXkw7MiDYYdkwcBjgMxXaTHsyIdhRx4MO/Jg2CGZMPAYIOspLYYd+TDsyINhRx4MOyQbxRctk3HuDToAw44sGHbkwbAjD4YdkhEDTwvAsCMnhh15MOzIgUGHZMbAY4Asl6XzFJZ8Tl29+3vCsCMHhh05MOyQ7LiGxwAZ1vAw7MiHYUcuDDtyYNihloCBR1IMO/Jh2JELw44cGHaopeApLQkx7MiH63XkcajoBgAw7EiAYYdaEs7wGKDUfXgYduTDsCMPhh15MOxQS8PAY0Bzr+EpvnaLYUdCDDvyYNiRB8MOtUQ8pSUBXnYuJ4YdeXC9jjwYdqil4gyPwhh25MSwIw+GHXkw7FBLxsCjIIYdOTHsyINhRx4MO9TS8ZSWQhh25MSwIw+GHTkw6JC14AyPAZa8SothR04MO/Jg2JEDww5ZEwYeAyx1lRbDjnxOXb3FsCMRhh05MOyQteEprWZyf9ABGHZkwLsny4VhRw4MO2SNOMPTDBh25MSwIxeGHTkw7JC14gyPhfEUlpwYduTBGwrKg2GHrBlneCyIYUdODDvyYNiRB8MOWTsGHgth2JETw448GHbkwbBDzemNN97AwIED4evri/nz50MI0SzH5SktC2DYkROvxJIHw448GHaoOV2+fBnr16/H8ePHYWdnh9DQUBw6dAjBwcEWPzZneAxo7H14GHbkxLAjD4YdeTDskBLu3LmD27dvo6qqClVVVejWrVuzHJeBx4DG3IeHYUdODDvyqL0Si2FHWWVF5xh2qFHS0tIwYcIEuLu7Q6VSITk5WW+fxMRE+Pj4wNHREWq1Gunp6dr3unbtikWLFsHLywvu7u545JFH8MADDzRL7Qw8ZlB87RbDjqQYduTBy87lwKBDTVFeXo6AgACsX7++zveTkpKwYMECLF26FMeOHUNISAg0Gg3y8/MBAFevXsWuXbtw5swZnD9/HhkZGUhLS2uW2rmGp4l4jx05cXGyXBh25MCwQ3UpLdX9u+ng4AAHB4c699VoNNBoNAb7WrduHWbPno05c+YAAOLj45GSkoINGzYgLi4Oe/fuRZ8+feDq6goAePzxx3Ho0CGEhoaaaTSGMfA0AcOOnBh25MKwIweGHetyvuQm2lXYNKmP8rKbAABPT0+d9hUrVmDlypUm91dZWYmsrCwsXrxYpz08PBwZGRnaY2VkZOD27duws7PD/v37MXfu3MYNwEQMPI3EsCMnhh25MOzIgWGH6lNQUABnZ2fttqHZnYYUFxejuroabm5uOu1ubm64ePEiAGD48OGIiIjA4MGD0aZNG4wdOxYTJ05sfPEmYOBpBIYdOTHsyIVhRw4MO9QQZ2dnncDTVCqVSmdbCKHTtmbNGqxZs8ZsxzMWA4+JGHbkxLAjD152Lg+GHWpOXbp0gY2NjXY2p1ZRUZHerI8SeJWWCRh25MSwIw+GHXkw7FBzs7e3h1qtRmpqqk57amoqRowYoVBVf7D6GZ6CggJERkaiqKgItra2WLZsGZ566imT+ym5fgsdOtj90S+DjhQYduTBsCMPhh2ylLKyMuTm5mq38/LykJ2dDVdXV3h5eSE2NhaRkZEYOnQogoODsWnTJuTn52PevHkKVn2X1QceW1tbxMfHIzAwEEVFRRgyZAgiIiLQrl27RvfJsCMHhh15MOzIg2GHLCkzMxNhYWHa7djYWABAVFQUtm7dimnTpqGkpASrV69GYWEh/Pz8sHv3bnh7eytVspbVB54ePXqgR48eAIBu3brB1dUVV65caXTgYdiRA8OOPBh25MCgQ81h9OjRDT7sMzo6GtHR0c1UkfEUX8PT1NtUmyIzMxM1NTV69xwwFsOOHGrvnsywozyGHSJqKRSf4am9TfXMmTMxZcoUvfdrb1OdmJiIkSNHYuPGjdBoNMjJyYGXlxcAQK1Wo6KiQu+ze/bsgbu7OwCgpKQE06dPx+bNm+utp6KiQqev2jtQni+5iXbtOzR6nGQefFSEfBh2iKglUDzwNPU21QCQlZVV7zEqKiowadIkLFmypMGV4nFxcVi1apWJo6DmwrAjj3ePnle6BCIioyl+Sqs+tbepDg8P12m/9zbVDRFCYMaMGRgzZgwiIyMb3H/JkiW4fv269lVQUNCo2sn8dp4uVroE+l8MO3Lh+h2ihkkdeIy5TXVDDh48iKSkJCQnJyMwMBCBgYH4+eefDe7v4OAAZ2dnbN++HcOHD8fYsWObNAYyD4YdeTDsyKOs6BzDDpGRFD+lZYyGblNdn4cffhg1NTUmHzMmJgYxMTEoLS2Fi4uLyZ8n82HYkQfDjjwYdIhMI/UMj5K3qU5ISICvry+CgoIsehyqH8OOPBh25MGwQ2Q6qQOPkrepjomJQU5ODo4cOWLR45BhDDvyYNiRB8MOUeMofkqrJd+mmiyHYUceDDvyYNghajzFA4+st6lOSEhAQkICqqurLXoc0sewIw+GHXkw7BA1jUo0dI/oVq520XLq/hzeeNDCeFNBuTDsyINhp+UQlbdQ/eFCXL9+Hc7Ozmbv35zfSeVlN/DoaF+L1SobxWd4iACGHZkcKrrBuydLhGGHyDwYeAzgKa3mw7AjD4YdeTDoEJmX1FdpKYlXaTUPhh15MOzIg2GHyPw4w0OK4eJkeTDsyINhh8gyOMNDimDYkQfDjjwYdogshzM8BnANj+Uw7MiDV2LJg2GHyLI4w2MA1/BYBsOOPBh25MGwQ2R5DDzUbBh25MGwIw+GHaLmwVNaZHG8EkseXK8jF4YdoubDwGMA1/CYB8OOPBh25MGgQ9T8eErLAK7haTqGHXkw7MiDYYdIGQw8ZBEMO/Jg2JEHww6Rchh4yOwYduTBsCMPhh0iZTHwkFkx7MiDYUceDDtEymPgIbNh2JEHw448GHaI5MDAY0BCQgJ8fX0RFBSkdCktAsOOPBh25MGwQyQPBh4DeJWW8XaeLmbYkQTDjjwYdogMu3nzJry9vbFo0aJmOybvw0NNwrsny+FQ0Q0AYNiRBMMOUf3WrFmDhx56qFmPyRkeapRTV28x7EiCYUceZUXnGHaIGnDq1Cn8+uuviIiIaNbjMvCQybheRx61p7AYdpTHoEOtQVpaGiZMmAB3d3eoVCokJyfr7ZOYmAgfHx84OjpCrVYjPT1d5/1FixYhLi6umSr+AwMPmYRhRx5cryMPhh1qLcrLyxEQEID169fX+X5SUhIWLFiApUuX4tixYwgJCYFGo0F+fj4A4IsvvkC/fv3Qr1+/5iwbANfwkAkYduTBsCMPhh1q6UpLdf8tcXBwgIODQ537ajQaaDQag32tW7cOs2fPxpw5cwAA8fHxSElJwYYNGxAXF4dDhw7h448/xo4dO1BWVoaqqio4Oztj+fLl5huQAQw8ZBSGHXkw7MiDYYeUcvrabThVNe0r/Fb5bQCAp6enTvuKFSuwcuVKk/urrKxEVlYWFi9erNMeHh6OjIwMAEBcXJz2dNbWrVvxyy+/NEvYARh4DOLT0v/AsCMPhh15MOyQtSgoKICzs7N229DsTkOKi4tRXV0NNzc3nXY3NzdcvHixSTWaAwOPATExMYiJiUFpaSlcXFyULkcxDDvyYNiRB8MOWRNnZ2edwNNUKpVKZ1sIodcGADNmzDDbMY3BwEMGMezIgZedy4Vhh6huXbp0gY2Njd5sTlFRkd6sjxJ4lRbViWFHDgw78uA9dojqZ29vD7VajdTUVJ321NRUjBgxQqGq/sAZHtJx6uotAGDYkQDDjjwYdIjuKisrQ25urnY7Ly8P2dnZcHV1hZeXF2JjYxEZGYmhQ4ciODgYmzZtQn5+PubNm6dg1Xcx8JAWw448GHbkwbBD9IfMzEyEhYVpt2NjYwEAUVFR2Lp1K6ZNm4aSkhKsXr0ahYWF8PPzw+7du+Ht7a1UyVoMPASAYUcmDDvyYNgh0jV69GgIIerdJzo6GtHR0c1UkfEYeIjrdSTCsCMPhh0i68JFy60cw448GHbkwbBDZH2sPvDcuHEDQUFBCAwMxKBBg/Duu+8qXZI0GHbkwbAjD4YdIutk9ae02rZtiwMHDqBt27a4efMm/Pz8MHnyZHTu3Fnp0hTFsCMP3lBQHgw7RNbL6gOPjY0N2rZtCwC4ffs2qqurG1xwZe0YduTAWR15MOgQWT+jTml16tQJrq6uRr1MlZaWhgkTJsDd3R0qlQrJycl6+yQmJsLHxweOjo5Qq9VIT0836RjXrl1DQEAAPDw88MILL6BLly4m12ktGHbkwLAjD4YdotbBqBme+Ph47a9LSkrw4osvYty4cQgODgYAfP/990hJScGyZctMLqC8vBwBAQGYOXMmpkyZovd+UlISFixYgMTERIwcORIbN26ERqNBTk4OvLy8AABqtRoVFRV6n92zZw/c3d3RsWNH/Pjjj7h06RImT56MqVOnGrzNdUVFhU5fpaXW8YXEy87lwbAjD4YdotZDJUw8vzNlyhSEhYXhueee02lfv3499u7dW+cMjdHFqFTYuXMnnnzySW3bQw89hCFDhmDDhg3atgEDBuDJJ5/UPmLeFM8++yzGjBmDp556qs73V65ciVWrVum1p+7PQbv2HUw+ngwYduTBsCMPhh2yBFF5C9UfLsT169fN+kDOWrUPtH4n+Sic2rVvUl+3yssw78khFqtVNiZfpZWSkoLHHntMr33cuHHYu3evWYqqVVlZiaysLISHh+u0h4eHIyMjw6g+Ll26pJ2lKS0tRVpaGvr3729w/yVLluD69evaV0FBQeMHIAGGHXkw7MiDYYeo9TE58HTu3Bk7d+7Ua09OTjb7lU/FxcWorq7WO/3k5uam9zRWQ86dO4fQ0FAEBATg4YcfxnPPPQd/f3+D+zs4OMDZ2Rnbt2/H8OHDMXbs2CaNQUkMO/Jg2JEHww5R62TyVVqrVq3C7NmzsX//fu0ankOHDuHrr7/G5s2bzV4gcPdU172EEHpthqjVamRnZ5t8zJiYGMTExGinD1sahh15MOzIg2GHqPUyOfDMmDEDAwYMwFtvvYXPP/8cQgj4+vri4MGDeOihh8xaXJcuXWBjY6M3m1NUVGRw0TEx7MiEYUceDDtErZtJgaeqqgpz587FsmXL8OGHH1qqJi17e3uo1WqkpqZi0qRJ2vbU1FQ88cQTFj12QkICEhISUF1dbdHjmBvDjhxqgw7AsKM0Bh0iAkxcw2NnZ1fn+p2mKCsrQ3Z2tva0U15eHrKzs5Gfnw/g7qPnN2/ejPfffx8nTpzAwoULkZ+fj3nz5pm1jvvFxMQgJycHR44csehxzKn2HjsMO8pi2JEHww4R1TL5lNakSZOQnJyM2NhYsxSQmZmJsLAw7XZtv1FRUdi6dSumTZuGkpISrF69GoWFhfDz88Pu3bvh7e1tluMb0tJmeHhDQTkw7MiDYYeI7mVy4OnTpw/+9a9/ISMjA2q1Gu3atdN5f/78+Sb1N3r06AYf9RAdHY3o6GhTS22SlrRomWFHDgw78mDYIaL7mRx4Nm/ejI4dOyIrKwtZWVk676lUKpMDDzUe1+vIg4uT5cGwQ0R1MTnw5OXlWaIO6ch+SothRx4MO/Jg2CEiQ0y+8eC9hBBW++RxmRctM+zIg2FHHgw7RFSfRgWebdu2YdCgQXBycoKTkxP8/f2xfft2c9dGdWDYkQfDjjwYdoioISaf0lq3bh2WLVuG5557DiNHjoQQAgcPHsS8efNQXFyMhQsXWqJOAsOOTBh25MCgQ0TGMjnwvP3229iwYQOmT5+ubXviiScwcOBArFy50moCj2xreBh25MArseTBsENEpjD5lFZhYSFGjBih1z5ixAgUFhaapSgZyLSGh2FHDgw78mDYISJTmRx4+vTpg08++USvPSkpCX379jVLUfQHhh05MOzIg2GHiBqjUU9LnzZtGtLS0jBy5EioVCp89913+Oabb+oMQtR4DDtyYNiRB8MOETWWyYFnypQp+OGHH/DGG28gOTlZ+7T0w4cPY/DgwZaosdWpDToAw47SGHbkwbBDRE1hcuABALVajf/+7/82dy1SUWrRMsOOPBh25MGwQ0RN1aj78FRXV+Ozzz7Diy++iDVr1mDnzp3SXM1kLkosWr73FBbDjrIYduTBsENkXXbt2oX+/fujb9++2Lx5c7Md1+QZntzcXDz++OM4d+4c+vfvDyEEfvvtN3h6euKrr77CAw88YIk6rR7X68iDYUceDDtE1uXOnTuIjY3Fvn374OzsjCFDhmDy5MlwdXW1+LFNnuGZP38+evfujYKCAhw9ehTHjh1Dfn4+fHx8+ODQRmLYkcOhohsMO5IoKzrHsENkhQ4fPoyBAweiZ8+e6NChAyIiIpCSktIsxzY58Bw4cACvvPKKThrr3LkzXnrpJRw4cMCsxbUGDDtyuD/oMOwoh0GHSF5paWmYMGEC3N3doVKpkJycrLdPYmIifHx84OjoCLVajfT0dO17Fy5cQM+ePbXbHh4eOH/+fHOUbnrgcXBwwI0bN/Tay8rKYG9vb5aiZJCQkABfX18EBQVZ7BgMO3LgrI48GHaI5FZeXo6AgACsX7++zveTkpKwYMECLF26FMeOHUNISAg0Gg3y8/MBoM4HjqtUKovWXMvkwDN+/HjMnTsXP/zwg/Zp6YcOHcK8efMwceJES9SoCEsvWmbYkQPDjjwYdoiUUVpaqvOqqKgwuK9Go8GLL76IyZMn1/n+unXrMHv2bMyZMwcDBgxAfHw8PD09sWHDBgBAz549dWZ0zp07hx49eph3QAaYvGj5rbfeQlRUFIKDg2FnZwfg7iKkiRMn4s033zR7gdaIYUcODDvyYNghMk3O1XI4VDRtZqTi5t3vIE9PT532FStWYOXKlSb3V1lZiaysLCxevFinPTw8HBkZGQCAYcOG4ZdffsH58+fh7OyM3bt3Y/ny5Y0bgIlMDjwdO3bEF198gdzcXJw4cUJ748E+ffpYoj6rw7AjB4YdeTDsECmroKAAzs7O2m0HB4dG9VNcXIzq6mq4ubnptLu5ueHixYsAAFtbW7z++usICwtDTU0NXnjhBXTu3LnxxZugUTceBO4+U4shx3i8oaA8GHbkwbBDpDxnZ2edwNNU96/JEULotE2cOFGRJTAmr+GZOnUqXnrpJb32V199FU899ZRZirI2DDvyYNiRB8MOkXXp0qULbGxstLM5tYqKivRmfZTQqMvSH3/8cb32xx57DGlpaWYpypow7MiDYUcOvMcOkXWyt7eHWq1GamqqTntqaipGjBihUFV/MPmUlqHLz+3s7FBayi+RezHsyOHeoAMw7CiJQYeoZSsrK0Nubq52Oy8vD9nZ2XB1dYWXlxdiY2MRGRmJoUOHIjg4GJs2bUJ+fj7mzZunYNV3mRx4/Pz8kJSUpLeq+uOPP4avr6/ZClNaUx8eyrAjB4YdeTDsELV8mZmZCAsL027HxsYCAKKiorB161ZMmzYNJSUlWL16NQoLC+Hn54fdu3fD29tbqZK1TA48y5Ytw5QpU3D69GmMGTMGAPDNN9/go48+wo4dO8xeoFJiYmIQExOD0tJSuLi4mPRZhh05MOzIg2GHyDqMHj26zpsH3is6OhrR0dHNVJHxTA48EydORHJyMtauXYtPP/0UTk5O8Pf3x969ezFq1ChL1Nii8LJzOTDsyINhh4hk0KjL0h9//PE6Fy63dgw7cmDYkQfDDhHJwuSrtO4VHR2N4uJic9XSojHsyIEPAZUHww4RyaRJgee///u/W/2VWaeu3mLYkQQvO5cHww4RyabRd1oG6n7qaWvCxcnyYNiRA4MOEcmqSYGnNWPYkQPX68iDYYeIZGZy4CkvL0e7du0AADdu3Ghgb+vEsCMHhh15MOwQkexMXsPj5uaGWbNm4bvvvrNEPRZz8+ZNeHt7Y9GiRU3qh2FHDgw78mDYIaKWwOTA89FHH+H69esYO3Ys+vXrh5deegkXLlywRG1mtWbNGjz00ENN6oNhRw4MO/Jg2CGilsLkwDNhwgR89tlnuHDhAp599ll89NFH8Pb2xvjx4/H555/jzp07lqizSU6dOoVff/0VERERje7j9LXb2l8z7CiHYYeIiBqj0Zeld+7cGQsXLsSPP/6IdevWYe/evZg6dSrc3d2xfPly3Lx506h+0tLSMGHCBLi7u0OlUiE5OVlvn8TERPj4+MDR0RFqtRrp6ekm1bpo0SLExcWZ9BlDGHbkwbBDRETGavRVWhcvXsS2bduwZcsW5OfnY+rUqZg9ezYuXLiAl156CYcOHcKePXsa7Ke8vBwBAQGYOXMmpkyZovd+UlISFixYgMTERIwcORIbN26ERqNBTk4OvLy8AABqtRoVFRV6n92zZw+OHDmCfv36oV+/fsjIyGiwnoqKCp2+7r3PEMOOPBh2iIjIFCYHns8//xxbtmxBSkoKfH19ERMTg6effhodO3bU7hMYGIjBgwcb1Z9Go4FGozH4/rp16zB79mzMmTMHABAfH4+UlBRs2LBBO2uTlZVl8POHDh3Cxx9/jB07dqCsrAxVVVVwdnbWe9p7rbi4OKxatUqvPedqORzatjdqTGRZDDtERGQqk09pzZw5E+7u7jh48CCys7Px3HPP6YQdAOjduzeWLl3a5OIqKyuRlZWF8PBwnfbw8HCjZmuAuwGmoKAAZ86cwWuvvYZnnnnGYNgBgCVLluD69evaV0FBQZPGQObFsCMPLlgmopbE5BmewsJCtG3btt59nJycsGLFikYXVau4uBjV1dVwc3PTaXdzc8PFixeb3H9dHBwc4ODggISEBCQkJKC6utoixyHTvXv0vNIl0P9i2CGilsbkwNNQ2LEElUqlsy2E0GszxowZM4zeNyYmBjExMSgtLYWLi4vJxyLzOVR0gzM7kmDQIaKWSupHS3Tp0gU2NjZ6szlFRUV6sz5knTirIw+GHSJqyZr0tHRLs7e3h1qtRmpqqk57amoqRowYYdFjJyQkwNfXF0FBQRY9DhnGsCMPhh0iaukUn+EpKytDbm6udjsvLw/Z2dlwdXWFl5cXYmNjERkZiaFDhyI4OBibNm1Cfn4+5s2bZ9G6eEpLWQw78mDYISJr0OjAk5ubi9OnTyM0NBROTk6NXleTmZmJsLAw7XZsbCwAICoqClu3bsW0adNQUlKC1atXo7CwEH5+fti9eze8vb0bW7pRuGhZOQw78mDYISJroRJCCFM+UFJSgmnTpuHbb7+FSqXCqVOn0Lt3b8yePRsdO3bE66+/bqlaFVE7wzN/Szrvw9MMGHbkwbBDZDpReQvVHy7E9evX4ezsbPb+zfmdVHGzDG/NDLFYrbIxeQ3PwoULYWtri/z8fJ0rtqZNm4avv/7arMVR68KwIw+GHSKyNiaf0tqzZw9SUlLg4eGh0963b1+cPXvWbIVR68KwIw+GHSKyRiYHnvLy8jrvxVNcXAwHBwezFCUDruFpPgw7cmDQISJrZvIprdDQUGzbtk27rVKpUFNTg1dffVVn8XFLFxMTg5ycHBw5ckTpUqwaw44cGHaIyNqZPMPz6quvYvTo0cjMzERlZSVeeOEFHD9+HFeuXMHBgwctUSNZId49WR4MO0TUGpg8w+Pr64uffvoJw4YNw6OPPory8nJMnjwZx44dwwMPPGCJGhXBGw9aDsOOPBh2iKi1aNR9eLp3745Vq1aZuxap8MaDlsGwIw+GHSKS1c2bNzFgwAA89dRTeO2118zSp8kzPFu2bMGOHTv02nfs2IEPPvjALEWRdWLYkQfDDhHJbM2aNXjooYfM2qfJgeell15Cly5d9Nq7deuGtWvXmqUosj7vHj3PsCMJhh0iktmpU6fw66+/IiIiwqz9mhx4zp49Cx8fH712b29v5Ofnm6Uosi68EksOZUXnGHaIqEnS0tIwYcIEuLu7Q6VSITk5WW+fxMRE+Pj4wNHREWq1Gunp6SYdY9GiRYiLizNTxX8wOfB069YNP/30k177jz/+iM6dO5ulKBlw0bJ5MOzIgUGHiMyhvLwcAQEBWL9+fZ3vJyUlYcGCBVi6dCmOHTuGkJAQaDQanQkRtVoNPz8/vdeFCxfwxRdfoF+/fujXr5/Zazd50fKf//xnzJ8/Hx06dEBoaCgA4MCBA/j73/+OP//5z2YvUClctNx0DDtyYNghovqUluouN3BwcDB4I2GNRgONRmOwr3Xr1mH27NmYM2cOACA+Ph4pKSnYsGGDdtYmKyvL4OcPHTqEjz/+GDt27EBZWRmqqqrg7OyM5cuXmzosPSYHnhdffBFnz57F2LFjYWt79+M1NTWYPn061/CQFsOOHBh2iKzTkctlsHUy6dnfeu7cKgcAeHp66rSvWLECK1euNLm/yspKZGVlYfHixTrt4eHhyMjIMKqPuLg4bTDaunUrfvnlF7OEHcDEwCOEQGFhIbZs2YIXX3wR2dnZcHJywqBBg+Dt7W2Wgqhl45VY8mDYISJjFBQU6DwtvbGPiSouLkZ1dTXc3Nx02t3c3HDx4sUm1WgOJgeevn374vjx4+jbty/69u1rqbqoBWLYkQfDDhEZy9nZWSfwNJVKpdLZFkLotRljxowZZqroLpMWLbdp0wZ9+/ZFSUmJWYuQERctm4ZhRx4MO0SkhC5dusDGxkZvNqeoqEhv1kcJJl+l9corr+D//b//h19++cUS9UiDDw81HsOOHHjZOREpyd7eHmq1GqmpqTrtqampGDFihEJV/cHkRctPP/00bt68iYCAANjb28PJyUnn/StXrpitOJIfw44cGHSIqDmUlZUhNzdXu52Xl4fs7Gy4urrCy8sLsbGxiIyMxNChQxEcHIxNmzYhPz8f8+bNU7Dqu0wOPPHx8RYog1oihh05MOwQUXPJzMxEWFiYdjs2NhYAEBUVha1bt2LatGkoKSnB6tWrUVhYCD8/P+zevVuKC5tMDjxRUVGWqINaGIYdOTDsEFFzGj16NISo/3L46OhoREdHN1NFxjM58DT0+AgvL69GF0MtA8OOHBh2iIiMZ3Lg6dWrV72Xl1VXVzepIJIbw44cGHaIiExjcuA5duyYznZVVRWOHTuGdevWYc2aNWYrjOTDuyfLgWGHiMh0JgeegIAAvbahQ4fC3d0dr776KiZPnmyWwkgenNWRA4MOEVHjmXwfHkP69etnVfes4Y0H72LYkQPDDhFR05g8w3P/U1Vrn6+1cuVKq3rUBJ+WzrAjC4YdIqKmMznwdOzYsc7nZHh6euLjjz82W2GkLIYdOTDsEBGZh8mBZ9++fTrbbdq0QdeuXdGnTx/Y2prcHUmIYUcODDtEROZjckIZNWqUJeogSTDsyIFhh4jIvBo1JXP69GnEx8fjxIkTUKlUGDBgAP7+97/jgQceMHd91IwYduTAsENEZH4mX6WVkpICX19fHD58GP7+/vDz88MPP/yAgQMH6j0hlVoOhh3l8WnnRESWY/IMz+LFi7Fw4UK89NJLeu3/+Mc/8Oijj5qtOGoeDDvKY9AhIrIsk2d4Tpw4gdmzZ+u1z5o1Czk5OWYpytxsbW0RGBiIwMBAzJkzR+lypMKwozyGHSIiyzN5hqdr167Izs7Wu+dOdnY2unXrZrbCzKljx47Izs5WugypHCq6AQAMOwpj2CEiah4mB55nnnkGc+fOxe+//44RI0ZApVLhu+++w8svv4znn3/eEjWSmTHsyIFhh4io+Zh8SmvZsmVYvnw53n77bYwaNQqhoaFYv349Vq5ciaVLl5pcQFpaGiZMmAB3d3eoVCokJyfr7ZOYmAgfHx84OjpCrVYjPT3dpGOUlpZCrVbj4YcfxoEDB0yu0Zow7MiBYYeIqHmZPMOjUqmwcOFCLFy4EDdu3P3y7NChQ6MLKC8vR0BAAGbOnIkpU6bovZ+UlIQFCxYgMTERI0eOxMaNG6HRaJCTkwMvLy8AgFqtRkVFhd5n9+zZA3d3d5w5cwbu7u745Zdf8Pjjj+Pnn3+Gs7Nzo2tuqbheRw4MO0REzc/kwHPr1i0IIdC2bVt06NABZ8+exXvvvQdfX1+Eh4ebXIBGo4FGozH4/rp16zB79mztYuP4+HikpKRgw4YNiIuLAwBkZWXVewx3d3cAgJ+fH3x9ffHbb79h6NChde5bUVGhE57uf3ZYS8WwozwGHSIi5Zh8SuuJJ57Atm3bAADXrl3DsGHD8Prrr+OJJ57Ahg0bzFpcZWUlsrKy9IJUeHg4MjIyjOrj6tWr2gBz7tw55OTkoHfv3gb3j4uLg4uLi/bl6enZ+AFIgmFHeQw7RETKMjnwHD16FCEhIQCATz/9FN27d8fZs2exbds2vPXWW2Ytrri4GNXV1XBzc9Npd3Nzw8WLF43q48SJExg6dCgCAgIwfvx4vPnmm3B1dTW4/5IlS3D9+nXtq6CgoEljUBrDjvIYdoiIlGfyKa2bN29q1+zs2bMHkydPRps2bTB8+HCcPXvW7AUCqPPp7Pe3GTJixAj8/PPPRh/LwcEBDg4OSEhIQEJCAqqrq02qVSYMO8pj2CEikoPJMzx9+vRBcnIyCgoKkJKSoj3dVFRUZPaFwF26dIGNjY3ebE5RUZHerI+5xcTEICcnB0eOHLHocSyFYUd5DDtERPIwOfAsX74cixYtQq9evfDQQw8hODgYwN3ZnsGDB5u1OHt7e6jVar1ndKWmpmLEiBFmPdb9EhIS4Ovri6CgIIsexxIYdpTHsENEJBeTT2lNnToVDz/8MAoLCxEQEKBtHzt2LCZNmmRyAWVlZcjNzdVu5+XlITs7G66urvDy8kJsbCwiIyMxdOhQBAcHY9OmTcjPz8e8efNMPpYpYmJiEBMTg9LSUri4uFj0WObCe+zIgWGHiEg+JgceAOjevTu6d++u0zZs2LBGFZCZmYmwsDDtdmxsLAAgKioKW7duxbRp01BSUoLVq1ejsLAQfn5+2L17N7y9vRt1PGvFsKM8Bh0iInk1KvCY0+jRoyGEqHef6OhoREdHN1NFd7WkRcsMO8pj2CEikpvJa3hai5ayaJlhR3kMO0RE8mPgacEYdpTHsENE1DIw8Bgg+1VaDDvKY9ghIjK/N954AwMHDoSvry/mz5/f4LIXYzHwGCDzKa3ay84ZdpTDsENEZH6XL1/G+vXrkZWVhZ9//hlZWVk4dOiQWfpWfNEymYb32FEeww4RkeXcuXMHt2/fBgBUVVWhW7duZumXMzwGyHhKi2FHeQw7RNSapaWlYcKECXB3d4dKpUJycrLePomJifDx8YGjoyPUajXS09ON7r9r165YtGgRvLy84O7ujkceeQQPPPCAWWrnDI8BMt14kOt1lMegQ0TWqrRU97ul9pmSdSkvL0dAQABmzpyJKVOm6L2flJSEBQsWIDExESNHjsTGjRuh0WiQk5MDLy8vAIBarUZFRYXeZ/fs2QMnJyfs2rULZ86cgZOTEzQaDdLS0hAaGtrkcTLwSI5hR3kMO0Qkm5wLN6ByaNp94kTFTQCAp6enTvuKFSuwcuXKOj+j0Wig0WgM9rlu3TrMnj0bc+bMAQDEx8cjJSUFGzZsQFxcHAAgKyvL4Od37NiBPn36wNXVFQDw+OOP49ChQww81o5hR3kMO0Rk7QoKCnQe/m1odqchlZWVyMrKwuLFi3Xaw8PDkZGRYVQfnp6eyMjIwO3bt2FnZ4f9+/dj7ty5jarnfgw8kmLYUR7DDhG1Bs7OzjqBp7GKi4tRXV0NNzc3nXY3NzdcvHjRqD6GDx+OiIgIDB48GG3atMHYsWMxceLEJtcGMPAYpOSjJRh2lMewQ0TUOCqVSmdbCKHXVp81a9ZgzZo15i6LV2kZotR9eBh2lMewQ0Rkui5dusDGxkZvNqeoqEhv1kcJDDwSYdhRHsMOEVHj2NvbQ61WIzU1Vac9NTUVI0aMUKiqP/CUliQYdpTFoENE1LCysjLk5uZqt/Py8pCdnQ1XV1d4eXkhNjYWkZGRGDp0KIKDg7Fp0ybk5+dj3rx5ClZ9FwOPBBh2lMWwQ0RknMzMTISFhWm3Y2NjAQBRUVHYunUrpk2bhpKSEqxevRqFhYXw8/PD7t274e3trVTJWgw8CmPYURbDDhGR8UaPHt3gwzyjo6MRHR3dTBUZj4HHAEtfpVUbdACGHaUw7BARtR5ctGyAJa/SundWh2FHGQw7REStCwNPM+MpLOUx7BARtT4MPM2IYUd5DDtERK0T1/A0E4YdZTHoEBG1bpzhaQYMO8pi2CEiIgYeC2PYURbDDhERAQw8FsWwoyyGHSIiqsXAY0BCQgJ8fX0RFBTUqM8z7CiLYYeIiO7FwGNAU+7Dw7CjLIYdIiK6H6/SMiPePVl5DDtERFQXBh4zYdhRFoMOERHVh6e0zIBhR1kMO0RE1BAGniZi2FEWww4RERmDp7SagIuTlcWwQ0RExuIMTyMx7CiLYYeIiEzRKgJPXl4ewsLC4Ovri0GDBqG8vLxJ/THsKIthh4iITNUqTmnNmDEDL774IkJCQnDlyhU4ODg0ui+GHWUx7BARUWNYfeA5fvw47OzsEBISAgBwdXVtdF8MO0RERC2T4qe00tLSMGHCBLi7u0OlUiE5OVlvn8TERPj4+MDR0RFqtRrp6elG93/q1Cm0b98eEydOxJAhQ7B27dpG1XnkchkAhh0iIqKWSPEZnvLycgQEBGDmzJmYMmWK3vtJSUlYsGABEhMTMXLkSGzcuBEajQY5OTnw8vICAKjValRUVOh9ds+ePaiqqkJ6ejqys7PRrVs3PPbYYwgKCsKjjz5qcq0MO0RERC2T4oFHo9FAo9EYfH/dunWYPXs25syZAwCIj49HSkoKNmzYgLi4OABAVlaWwc97eHggKCgInp6eAICIiAhkZ2cbDDwVFRU64am09G7IyblwAyqHtqYNjoiIiKSg+Cmt+lRWViIrKwvh4eE67eHh4cjIyDCqj6CgIFy6dAlXr15FTU0N0tLSMGDAAIP7x8XFwcXFRfuqDUpERETUckkdeIqLi1FdXQ03Nzeddjc3N1y8eNGoPmxtbbF27VqEhobC398fffv2xfjx4w3uv2TJEly/fl37KigoaNIYyHx4hRYRETWW4qe0jKFSqXS2hRB6bfVp6LTZvRwcHODg4ICEhAQkJCSgurrapFrJMhh2iIioKaSe4enSpQtsbGz0ZnOKior0Zn3MLSYmBjk5OThy5IhFj0MNY9ghIqKmkjrw2NvbQ61WIzU1Vac9NTUVI0aMsOixExIS4Ovri6CgIIseh+rHsENEROageOApKytDdnY2srOzAdx9DER2djby8/MBALGxsdi8eTPef/99nDhxAgsXLkR+fj7mzZtn0bo4w6OssqJzDDtERK3QpEmT0KlTJ0ydOlWnvaCgAKNHj4avry/8/f2xY8cOk/pVfA1PZmYmwsLCtNuxsbEAgKioKGzduhXTpk1DSUkJVq9ejcLCQvj5+WH37t3w9vZWqmSyMAYdIqLWa/78+Zg1axY++OADnXZbW1vEx8cjMDAQRUVFGDJkCCIiItCuXTuj+lU88IwePRpCiHr3iY6ORnR0dDNVdBcXLSuDYYeIqHULCwvD/v379dp79OiBHj16AAC6desGV1dXXLlyxejAo/gpLVnxlFbzY9ghIpKbpR8HZazMzEzU1NSYdK88xWd4iACGHSIipdQ+UaBW7e1Z6mLpx0G5u7s3WG9JSQmmT5+OzZs3GzM8LQYeA3hKq/kw7BARmabs8nmo7J2a1IeovAUAerMkK1aswMqVK+v8jKUfB9WQiooKTJo0CUuWLDH5am0GHgNiYmIQExOD0tJSuLi4KF2O1WLYISJSVkFBAZydnbXbhmZ3GlL7OKjFixfrtJvyOKj6CCEwY8YMjBkzBpGRkSZ/noGHFMOwQ0SkPGdnZ53A01jmeBwUAIwbNw5Hjx5FeXk5PDw8sHPnTgQFBeHgwYNISkqCv7+/du3Q9u3bMWjQIKP6ZeAhRTDsEBFZp6Y+DiolJaXO9ocffhg1NTWNrouBxwCu4bEMBh0iIuuk5OOgjMHL0g3gZenmx7BDRGS9lHwclDE4w0PNgmGHiKjlKysrQ25urna79nFQrq6u8PLyQmxsLCIjIzF06FAEBwdj06ZNzfI4KGMw8JDFMewQEVmHlvw4KAYeA7iGxzwYdoiIrIesj4MyBtfwGMA1PE3HsENERLJg4CGLYNghIiKZMPCQ2THsEBGRbBh4yKwYdoiISEZctExmwaBDREQy4wyPAQkJCfD19UVQUJDSpUiPYYeIiGTHwGMAr9IyDsMOERG1BAw81GgMO0RE1FIw8FCjMOwQEVFLwsBDJmPYISKiloaBh0zCsENERC0RAw8ZjWGHiIhaKgYeMgrDDhERtWS88aABfFr6XQw6RERkDTjDYwDvw8OwQ0RE1oOBh+rEsENERNaEgYf0MOwQEZG1YeAhHQw7RERkjRh4SIthh4iIrBUDDwFg2CEiIuvGwEMMO0REZPUYeFo5hh0iImoNrD7wnDx5EoGBgdqXk5MTkpOTlS5LcWVF5xh2iIio1bD6Oy33798f2dnZAICysjL06tULjz76qLJFKYxBh4iIWhurn+G515dffomxY8eiXbt2SpeiGIYdIiJqjRQPPGlpaZgwYQLc3d2hUqnqPN2UmJgIHx8fODo6Qq1WIz09vVHH+uSTTzBt2rQmVtxyMewQEVFrpfgprfLycgQEBGDmzJmYMmWK3vtJSUlYsGABEhMTMXLkSGzcuBEajQY5OTnw8vICAKjValRUVOh9ds+ePXB3dwcAlJaW4uDBg/j444/rraeiokKnr9LS0qYMTxoMO0RE1JopHng0Gg00Go3B99etW4fZs2djzpw5AID4+HikpKRgw4YNiIuLAwBkZWU1eJwvvvgC48aNg6OjY737xcXFYdWqVSaMQH4MO0RE1FJMmjQJ+/fvx9ixY/Hpp5/qvJeXl4dZs2bh0qVLsLGxwaFDh4xepqL4Ka36VFZWIisrC+Hh4Trt4eHhyMjIMKkvY09nLVmyBNevX9e+CgoKTDqObBh2iIioJZk/fz62bdtW53szZszA6tWrkZOTgwMHDsDBwcHofqUOPMXFxaiuroabm5tOu5ubGy5evGh0P9evX8fhw4cxbty4Bvd1cHCAs7Mztm/fjuHDh2Ps2LEm1y0Lhh0iImppwsLC0KFDB73248ePw87ODiEhIQAAV1dX2Noaf6JK6sBTS6VS6WwLIfTa6uPi4oJLly7B3t7e6M/ExMQgJycHR44cMfozMmHYISIic2vOC43ud+rUKbRv3x4TJ07EkCFDsHbtWpM+r/ganvp06dIFNjY2erM5RUVFerM+5paQkICEhARUV1db9DjmxqBDRESmuP/iHAcHB4OniprrQqO6VFVVIT09HdnZ2ejWrRsee+wxBAUFGX1vPakDj729PdRqNVJTUzFp0iRte2pqKp544gmLHjsmJgYxMTEoLS2Fi4uLRY9lLgw7REStg7h4ErA1fv1KnX3cuRs6PD09ddpXrFiBlStX1vmZ5rrQqC4eHh4ICgrS1hsREYHs7OyWE3jKysqQm5ur3c7Ly0N2djZcXV3h5eWF2NhYREZGYujQoQgODsamTZuQn5+PefPmKVi1fBh2iIioMQoKCuDs7KzdNmUh8L1qLzRavHixTntjLjSqS1BQEC5duoSrV6/CxcUFaWlp+Nvf/mb05xUPPJmZmQgLC9Nux8bGAgCioqKwdetWTJs2DSUlJVi9ejUKCwvh5+eH3bt3w9vb26J1taRTWgw7RETUWM7OzjqBp7HMdaHRuHHjcPToUZSXl8PDwwM7d+5EUFAQbG1tsXbtWoSGhkIIgfDwcIwfP97ofhUPPKNHj4YQot59oqOjER0d3UwV3dVSTmkx7BARkUyaeqFRSkqKwfcaOqVWnxZxlRbVjWGHiIhkoeSFRsZg4DEgISEBvr6+CAoKUrqUOjHsEBGRTO690OheqampGDFihEJV/UHxU1qykvmUFsMOEREpoSVfaMTA08Iw7BARkVJkvdDIGAw8LQSDDhERKU3WC42MwTU8Bsi0hodhh4iIqGkYeAyQ5VlaDDtERERNx8AjMYYdIiIi82DgkRTDDhERkfkw8Big5Boehh0iIiLzYuAxQKk1PAw7RERE5sfAIxGGHSIiIstg4JEEww4REZHl8MaDCmPQISIisjzO8CiIYYeIiKh5MPAYYOmrtBh2iIiImg8DjwGWvEqLYYeIiKh5MfA0M4YdIiKi5sfA04wYdoiIiJTBwNNMGHaIiIiUw8DTDBh2iIiIlMXAY2EMO0RERMrjjQcthEGHiIhIHpzhMaAp9+Fh2CEiIpILA48Bjb0PD8MOERGRfBh4zIhhh4iISE4MPGbCsENERCQvBh4zYNghIiKSGwNPEzHsEBERyY+BpwkYdoiIiFoGBp5GYtghIiJqOXjjQRMx6BAREbU8rWKG54033sDAgQPh6+uL+fPnQwjRqH4YdoiIiCynoKAAo0ePhq+vL/z9/bFjxw6d93ft2oX+/fujb9++2Lx5s0l9W/0Mz+XLl7F+/XocP34cdnZ2CA0NxaFDhxAcHGxSP2WXz0Nl72ShKomIiMjW1hbx8fEIDAxEUVERhgwZgoiICLRr1w537txBbGws9u3bB2dnZwwZMgSTJ0+Gq6urUX23ihmeO3fu4Pbt26iqqkJVVRW6deumdElERER0nx49eiAwMBAA0K1bN7i6uuLKlSsAgMOHD2PgwIHo2bMnOnTogIiICKSkpBjdt+KBJy0tDRMmTIC7uztUKhWSk5P19klMTISPjw8cHR2hVquRnp5udP9du3bFokWL4OXlBXd3dzzyyCN44IEHzDgCIiKi1sHS39n3yszMRE1NDTw9PQEAFy5cQM+ePbXve3h44Pz580b3p/gprfLycgQEBGDmzJmYMmWK3vtJSUlYsGABEhMTMXLkSGzcuBEajQY5OTnw8vICAKjValRUVOh9ds+ePXBycsKuXbtw5swZODk5QaPRIC0tDaGhoXXWU1FRodPX9evXAQCi6rY5hktERFas9ruisWtFjXanEk0+wp1KAEBpaalOs4ODAxwcHOr8iKW/s93d3QEAJSUlmD59us46nbp+piqVysjB3u1AGgDEzp07ddqGDRsm5s2bp9P24IMPisWLFxvV5yeffCKio6O126+88op4+eWXDe6/YsUKAYAvvvjiiy++Gv06ffq08V9+Jrh165bo3r272eps3769XtuKFSuMqgUw/3e2EELcvn1bhISEiG3btum0Hzx4UDz55JPa7fnz54sPP/zQ6H4Vn+GpT2VlJbKysrB48WKd9vDwcGRkZBjVh6enJzIyMnD79m3Y2dlh//79mDt3rsH9lyxZgtjYWO32tWvX4O3tjfz8fLi4uJg8hqCgoHqfuF7f+/e/Z8p27a+DgoLwzTffwNPTEwUFBXB2djb7GOrbp652Y+qu69ctfRy1/y0tLbXoOMw1hrpqr21r6b8XzTUO/v2W5/fC0uOo/e/169fh5eVl9EJaUzk6OiIvLw+VlZVm6U8IoTdLYmh2pyHm+M4WQmDGjBkYM2YMIiMjdd4bNmwYfvnlF5w/fx7Ozs7YvXs3li9fbnR9Ugee4uJiVFdXw83NTafdzc0NFy9eNKqP4cOHIyIiAoMHD0abNm0wduxYTJw40eD+hqbyXFxcGvWX0MbGpt7P1ff+/e+Zsl3763vbnJ2dLTKG+vapq92Yuuv7dUsdx/37W2oc5hqDodqt4feiucbBv9/y/F5Yehz379+mjeWWyDo6OsLR0dFi/TeWOb6zDx48iKSkJPj7+2vXB23fvh2DBg2Cra0tXn/9dYSFhaGmpgYvvPACOnfubHR9UgeeWvenz7oSaX3WrFmDNWvWmLsso8TExDT6/fvfM2W79tcNHd8YxvRhaJ+62o2pu75fN5bS4zDHGIzpx1xjuHfb2n4vjK2hIfz73XJ+L+rbR6a/39agKd/ZDz/8MGpqagy+P3HixHonLeqt63/Pw0lBpVJh586dePLJJwHcnR5r27YtduzYgUmTJmn3+/vf/47s7GwcOHDA4jWVlpbCxcUF169fb9T/dcjAGsYAcBwysYYxANYxDmsYA8BxtEQyfmfXR/HL0utjb28PtVqN1NRUnfbU1FSMGDGiWWpwcHDAihUrGn1OUwbWMAaA45CJNYwBsI5xWMMYAI7DGsjwnV0fxWd4ysrKkJubCwAYPHgw1q1bh7CwMLi6usLLywtJSUmIjIzEO++8g+DgYGzatAnvvvsujh8/Dm9vbyVLJyIialVa9He20ddzWci+ffvqvFQuKipKu09CQoLw9vYW9vb2YsiQIeLAgQPKFUxERNRKteTvbMVneIiIiIgsTeo1PERERETmwMBDREREVo+Bh4iIiKweA48ZvfHGGxg4cCB8fX0xf/58yz88zgJOnjyJwMBA7cvJyanOp+HKLi8vD2FhYfD19cWgQYNQXl6udEmNYmtrq/29mDNnjtLlNNrNmzfh7e2NRYsWKV1Ko9y4cQNBQUEIDAzEoEGD8O677ypdUqMUFBRg9OjR8PX1hb+/P3bs2KF0SY0yadIkdOrUCVOnTlW6FJPs2rUL/fv3R9++fXUeiknNg4uWzeTy5csYPnw4jh8/Djs7O4SGhuK1115DcHCw0qU1WllZGXr16oWzZ8+iXbt2SpdjklGjRuHFF19ESEgIrly5AmdnZ9jatogbi+vo0qULiouLlS6jyZYuXYpTp07By8sLr732mtLlmKy6uhoVFRVo27Ytbt68CT8/Pxw5csSk29rLoLCwEJcuXUJgYCCKioowZMgQnDx5ssX9/d63bx/KysrwwQcf4NNPP1W6HKPcuXMHvr6+2LdvH5ydnTFkyBD88MMPFnvmFunjDI8Z3blzB7dv30ZVVRWqqqrQrVs3pUtqki+//BJjx45tcf8Y1obOkJAQAICrq2uLDDvW4tSpU/j1118RERGhdCmNZmNjg7Zt2wIAbt++jerq6hY5g9ujRw8EBgYCALp16wZXV1dcuXJF2aIaISwsDB06dFC6DJMcPnwYAwcORM+ePdGhQwdEREQgJSVF6bJalVYTeNLS0jBhwgS4u7tDpVLVeZomMTERPj4+cHR0hFqtRnp6utH9d+3aFYsWLYKXlxfc3d3xyCOP4IEHHjDjCO6y9Dju9cknn2DatGlNrFifpcdw6tQptG/fHhMnTsSQIUOwdu1aM1b/h+b4vSgtLYVarcbDDz9skduyN8cYFi1ahLi4ODNVXLfmGMe1a9cQEBAADw8PvPDCC+jSpYuZqv9Dc/79zszMRE1NDTw9PZtYta7mHENzauq4Lly4gJ49e2q3PTw8cP78+eYonf5Xqwk85eXlCAgIwPr16+t8PykpCQsWLMDSpUtx7NgxhISEQKPRID8/X7uPWq2Gn5+f3uvChQu4evUqdu3ahTNnzuD8+fPIyMhAWlpaixtHrdLSUhw8eNAi/1du6TFUVVUhPT0dCQkJ+P7775Gamqp3q/OWMA4AOHPmDLKysvDOO+9g+vTpKC0tbVFj+OKLL9CvXz/069fPrHU39zgAoGPHjvjxxx+Rl5eHf//737h06VKLHAcAlJSUYPr06di0aVOLHUNza+q46poRNOUh2GQGCt70UDEAxM6dO3Xahg0bJubNm6fT9uCDD4rFixcb1ecnn3wioqOjtduvvPKKePnll5tca30sMY5a27ZtE3/961+bWmKDLDGGjIwMMW7cOO32K6+8Il555ZUm11ofS/5e1HrsscfEkSNHGltigywxhsWLFwsPDw/h7e0tOnfuLJydncWqVavMVXKdmuP3Yt68eeKTTz5pbIlGsdQ4bt++LUJCQsS2bdvMUWa9LPl7sW/fPjFlypSmltgojRnXwYMHxZNPPql9b/78+eLDDz+0eK30h1Yzw1OfyspKZGVlITw8XKc9PDwcGRkZRvXh6emJjIwM7fn9/fv3o3///pYo1yBzjKOWpU5nNcQcYwgKCsKlS5dw9epV1NTUIC0tDQMGDLBEuQaZYxxXr15FRUUFAODcuXPIyclB7969zV6rIeYYQ1xcHAoKCnDmzBm89tpreOaZZ7B8+XJLlGuQOcZx6dIl7exaaWkp0tLSWuTfbyEEZsyYgTFjxiAyMtISZdbLnP9GycSYcQ0bNgy//PILzp8/jxs3bmD37t0YN26cEuW2WlzJCaC4uBjV1dVwc3PTaXdzc8PFixeN6mP48OGIiIjA4MGD0aZNG4wdOxYTJ060RLkGmWMcAHD9+nUcPnwYn332mblLbJA5xmBra4u1a9ciNDQUQgiEh4dj/PjxlijXIHOM48SJE/jb3/6GNm3aQKVS4c0332zWKzrM9edJaeYYx7lz5zB79mwIISCEwHPPPQd/f39LlGuQOcZx8OBBJCUlwd/fX7sGZfv27Rg0aJC5y62Tuf5MjRs3DkePHkV5eTk8PDywc+dOBAUFmbtcoxkzLltbW7z++usICwtDTU0NXnjhhRZ3lV9Lx8Bzj/vPpwohTDrHumbNGqxZs8bcZZmsqeNwcXGxyPoEUzR1DBqNBhqNxtxlmawp4xgxYgR+/vlnS5Rlkqb+XtSaMWOGmSpqnKaMQ61WIzs72wJVma4p43j44YdRU1NjibJM0tQ/U7Je3dTQuCZOnNjs/yNMf+ApLdy914mNjY3e/2EUFRXpJXaZWcM4rGEMgHWMwxrGAHAcMrGGMdTFWsdlbRh4ANjb20OtVutdyZOamooRI0YoVJXprGEc1jAGwDrGYQ1jADgOmVjDGOpireOyNq3mlFZZWRlyc3O123l5ecjOzoarqyu8vLwQGxuLyMhIDB06FMHBwdi0aRPy8/Mxb948BavWZw3jsIYxANYxDmsYA8BxyDQOaxhDXax1XK2KIteGKWDfvn0CgN4rKipKu09CQoLw9vYW9vb2YsiQIeLAgQPKFWyANYzDGsYghHWMwxrGIATHIRNrGENdrHVcrQmfpUVERERWj2t4iIiIyOox8BAREZHVY+AhIiIiq8fAQ0RERFaPgYeIiIisHgMPERERWT0GHiIiIrJ6DDxERERk9Rh4iIiIyOox8BBRq3TmzBmoVCpkZ2crXQoRNQMGHiIiIrJ6DDxEVq66uho1NTVKl6GYyspKpUsgIgkw8BA1s08//RSDBg2Ck5MTOnfujEceeQTl5eUAgJqaGqxevRoeHh5wcHBAYGAgvv76a+1n9+/fD5VKhWvXrmnbsrOzoVKpcObMGQDA1q1b0bFjR+zatQu+vr5wcHDA2bNnUVFRgRdeeAGenp5wcHBA37598d5772n7ycnJQUREBNq3bw83NzdERkaiuLjY4DhmzZoFf39/VFRUAACqqqqgVqvx17/+td7xHz9+HI8//jicnZ3RoUMHhISE4PTp00aNHwB+/vlnjBkzRvvzmzt3LsrKyrTvz5gxA08++STi4uLg7u6Ofv36AQAOHz6MwYMHw9HREUOHDsWxY8fqrZOIrAsDD1EzKiwsxF/+8hfMmjULJ06cwP79+zF58mQIIQAAb775Jl5//XW89tpr+OmnnzBu3DhMnDgRp06dMuk4N2/eRFxcHDZv3ozjx4+jW7dumD59Oj7++GO89dZbOHHiBN555x20b99eW9eoUaMQGBiIzMxMfP3117h06RL+9Kc/GTzGW2+9hfLycixevBgAsGzZMhQXFyMxMdHgZ86fP4/Q0FA4Ojri22+/RVZWFmbNmoU7d+4YNf6bN2/iscceQ6dOnXDkyBHs2LEDe/fuxXPPPadznG+++QYnTpxAamoqdu3ahfLycowfPx79+/dHVlYWVq5ciUWLFpn0MyWiFk4QUbPJysoSAMSZM2fqfN/d3V2sWbNGpy0oKEhER0cLIYTYt2+fACCuXr2qff/YsWMCgMjLyxNCCLFlyxYBQGRnZ2v3OXnypAAgUlNT6zzusmXLRHh4uE5bQUGBACBOnjxpcDwZGRnCzs5OLFu2TNja2ooDBw4Y3FcIIZYsWSJ8fHxEZWVlne83NP5NmzaJTp06ibKyMu37X331lWjTpo24ePGiEEKIqKgo4ebmJioqKrT7bNy4Ubi6uory8nJt24YNGwQAcezYsXprJiLrwBkeomYUEBCAsWPHYtCgQXjqqafw7rvv4urVqwCA0tJSXLhwASNHjtT5zMiRI3HixAmTjmNvbw9/f3/tdnZ2NmxsbDBq1Kg698/KysK+ffvQvn177evBBx8EAO3pproEBwdj0aJF+Ne//oXnn38eoaGh2vc0Go22r4EDB2rrCAkJgZ2dnV5fxoz/xIkTCAgIQLt27XTer6mpwcmTJ7VtgwYNgr29vXa79nNt27bVqZ2IWg9bpQsgak1sbGyQmpqKjIwM7NmzB2+//TaWLl2KH374AZ07dwYAqFQqnc8IIbRtbdq00bbVqqqq0juOk5OTTj9OTk711lVTU4MJEybg5Zdf1nuvR48e9X7u4MGDsLGx0TvttnnzZty6dQsAtAGnoTqA+sd/76/r+9y9gaj2c0TUunGGh6iZqVQqjBw5EqtWrcKxY8dgb2+PnTt3wtnZGe7u7vjuu+909s/IyMCAAQMAAF27dgVwd81NLWPuIzNo0CDU1NTgwIEDdb4/ZMgQHD9+HL169UKfPn10XveHh3u9+uqrOHHiBA4cOICUlBRs2bJF+17Pnj21fXh7ewMA/P39kZ6eXmdIM2b8vr6+yM7O1i7yBoCDBw+iTZs22sXJdfH19cWPP/6oDWAAcOjQIYP7E5EVUvSEGlErc+jQIbFmzRpx5MgRcfbsWfHJJ58Ie3t7sXv3biGEEG+88YZwdnYWH3/8sfj111/FP/7xD2FnZyd+++03IYQQlZWVwtPTUzz11FPi5MmTYteuXaJ///56a3hcXFz0jj1jxgzh6ekpdu7cKX7//Xexb98+kZSUJIQQ4vz586Jr165i6tSp4ocffhCnT58WKSkpYubMmeLOnTt1juXYsWPC3t5efPnll0IIITZv3iw6dOggTp8+bXD8xcXFonPnzmLy5MniyJEj4rfffhPbtm0Tv/76q1HjLy8vFz169BBTpkwRP//8s/j2229F7969RVRUlPYYUVFR4oknntA57o0bN0SXLl3EX/7yF3H8+HHx1VdfiT59+nAND1ErwsBD1IxycnLEuHHjRNeuXYWDg4Po16+fePvtt7XvV1dXi1WrVomePXsKOzs7ERAQIP7zn//o9PHdd9+JQYMGCUdHRxESEiJ27NhhVOC5deuWWLhwoejRo4ewt7cXffr0Ee+//772/d9++01MmjRJdOzYUTg5OYkHH3xQLFiwQNTU1NTZl6+vr5g7d65O+6RJk8SIESMMhiQhhPjxxx9FeHi4aNu2rejQoYMICQnRhiRjxv/TTz+JsLAw4ejoKFxdXcUzzzwjbty4oX2/rsAjhBDff/+9CAgIEPb29iIwMFB89tlnDDxErYhKCJ7cJiIiIuvGNTxERERk9Rh4iIiIyOox8BAREZHVY+AhIiIiq8fAQ0RERFaPgYeIiIisHgMPERERWT0GHiIiIrJ6DDxERERk9Rh4iIiIyOox8BAREZHV+/9XcsXUYSXBTAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "order_plot = 7\n", + "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"Helmholtz recurrence error order = \"+str(order_plot))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_65942/4137449632.py:6: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs = ax.contourf(x_grid, y_grid, (plot_me_hem7-plot_me_lap7).T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" + ] + }, + { + "data": { + "image/png": "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jw/i4uIwZcoU9OvXD+Hh4di4cSMKCgowd+5cs9YVGxuL2NhY1cp3IiKils5a5+yGWDzs5OTkICoqSvW8bnHwtGnTsGXLFkyePBnXr1/H8uXLUVRUhICAAOzatQu+vr6WKpmIiKhFaq5ztlXdZ8eaPLxA+cyZM7zPDhERNaip7rNjOy3ZJJee3//spRYxv1n1mh1L4gJlIiIiaWDYISIiIklj2NGBV2MRERFJA8OODjyNRUREJA0MO0RERCRpDDtEREQkaQw7OnDNDhERkTQw7OjANTtERETSwLBDREREksawQ0RERJLGsKMD1+wQERFJA8OODlyzQ0REJA0MO0RERCRpDDtEREQkaQw7REREJGkMO0RERCRpDDs68GosIiIiaWDY0YFXYxEREUkDww4RERFJGsMOERERSRrDDhEREUkaww4RERFJGsMOERERSRrDDhEREUkaw44OvM8OERGRNDDs6MD77BAREUkDww4RERFJGsMOERERSRrDDhEREUkaww4RERFJGsMOERERSRrDDhEREUkaww4RERFJmuTDzunTpxESEqJ6ODg4YMeOHZYui4iIiLQYP3482rdvj0mTJqm1FxYWYujQofD390dQUBC2b9+ud5+2pi7S2vTq1Qu5ubkAgPLycnTp0gVPPvmkZYsiIiIirebPn4+ZM2fis88+U2u3tbXFe++9h5CQEFy7dg2hoaEYOXIkWrdu3WCfkj+y87B///vfGD58uF4fDBERETW9qKgotG3bVqO9U6dOCAkJAQC4u7vDxcUFN27c0KtPi4edjIwMjBkzBp6enpDJZFpPMSUnJ8PPzw8KhQJKpRKZmZmN2tfXX3+NyZMnG1kxERFRy9SUc3Z9cnJyUFtbC29vb722t/hprIqKCgQHB2PGjBmYOHGixuspKSlYsGABkpOTMXDgQHz00UeIiYlBXl4efHx8AABKpRKVlZUa792zZw88PT0BAGVlZThw4AC++uqreuuprKxU66usrMyY4REREVm1R+c5uVwOuVyuddummrPrc/36dUydOhWbNm3SZ3gAAJkQQui9tZnJZDKkpqZi3LhxqrYBAwYgNDQU69evV7X17t0b48aNQ2Jiot59f/7559i9eze2bdtW73YJCQlYtmyZRntpaSmcnJz03h8REbU8ZWVlcHZ2NtucUdd/qyfmQWanPZDoS1RXovbHdRrt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "order_plot = 7\n", + "x_grid, y_grid, plot_me_hem7 = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", + "x_grid, y_grid, plot_me_lap7 = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + " \n", + "fig, ax = plt.subplots()\n", + "cs = ax.contourf(x_grid, y_grid, (plot_me_hem7-plot_me_lap7).T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cbar = fig.colorbar(cs)\n", + "plt.gca().set_xscale('log')\n", + "plt.gca().set_yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n", + "plt.title(\"Helmholtz-Laplace recurrence error order = \"+str(order_plot))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "(plot_me_hem7-plot_me_lap7).T" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb similarity index 100% rename from test/taylor_recurrence.ipynb rename to test/plot_taylor_recurrence.ipynb From ea51a1bcf9efe2d4698120a9015ab7281d9be85a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 21 Dec 2024 21:33:13 -0800 Subject: [PATCH 120/193] =?UTF-8?q?=E2=99=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/order4.png | Bin 0 -> 42912 bytes test/order5.png | Bin 0 -> 46382 bytes test/order6.png | Bin 0 -> 47212 bytes test/order7.png | Bin 0 -> 46876 bytes test/plot_normal_recurrence.ipynb | 173 +++++------------------------- 5 files changed, 26 insertions(+), 147 deletions(-) create mode 100644 test/order4.png create mode 100644 test/order5.png create mode 100644 test/order6.png create mode 100644 test/order7.png diff --git a/test/order4.png b/test/order4.png new file mode 100644 index 0000000000000000000000000000000000000000..24b497f98a6330a83eb40702cc6846b6f14f8ac6 GIT binary patch literal 42912 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 Mv`zKqhM$iAAFz(YTmS$7 literal 0 HcmV?d00001 diff --git a/test/order5.png b/test/order5.png new file mode 100644 index 0000000000000000000000000000000000000000..aaacae9e568e112dacbeb5379978712e7c7a58ed GIT binary patch literal 46382 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

g&SN}@5l@(i$MG($yJaJ|`QK3cxX)HNaF>!H~ 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 literal 0 HcmV?d00001 diff --git a/test/order7.png b/test/order7.png new file mode 100644 index 0000000000000000000000000000000000000000..1c188aa17238469f314452cd068a604944530978 GIT binary patch literal 46876 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 G^1lG5kc(yj literal 0 HcmV?d00001 diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb index e04b00315..5e8cae613 100644 --- a/test/plot_normal_recurrence.ipynb +++ b/test/plot_normal_recurrence.ipynb @@ -171,14 +171,14 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 41, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABN4AAALACAYAAABM/b/3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACcxUlEQVR4nOzdeXhU5d3/8c9AIIFAgIAEwxJQ3MYQoiEqKEqggkHUoljap7IoVpD4o4A+VkqVxSU+aim1BhR9CkVrRVpFaykY1AIKYkDiFqrSIotssgaCBAj37w+eTBmSSWaSmTnLvF/XlUvnzMk598ycYb75zPc+x2OMMQIAAAAAAAAQVg2sHgAAAAAAAADgRgRvAAAAAAAAQAQQvAEAAAAAAAARQPAGAAAAAAAARADBGwAAAAAAABABBG8AAAAAAABABBC8AQAAAAAAABFA8AYAAAAAAABEAMEbAAAAAAAAEAEEb2Eyb948eTwerV27ttr7Bw0apM6dO9dp2yNHjqzz7wbSp08fpaenh3WbHo9HU6dO9d0uKSnR1KlT9c0334R1P3Cuzp07a+TIkXX63ccee0yLFi2qsvwf//iHPB6P/vGPf9RrbLHkd7/7nbp27arGjRvL4/HowIEDVg+pTvr06aM+ffpYPYx6u+222+TxeDRo0CCrhwKgnmqrByOFz0JE0pk1frCOHDmiqVOnVntcVr5X+DsheL/61a/UqVMnxcXFqWXLllYPp87q8/eAXRhjdPXVV8vj8eiee+6xejhwAII3RExJSYmmTZvGByrCIlDwdumll2r16tW69NJLoz8oByouLta4ceOUk5Ojd999V6tXr1bz5s2tHlbM+tvf/qZFixYpKSnJ6qEAABBWR44c0bRp06oN3q6//nqtXr1aZ599dvQH5kBvvPGGHn30UQ0fPlzLly/XsmXLrB5STCsoKNDGjRutHgYchOANjnfkyBGrh+Dn+PHjOnHiRLX32W2s9WWHx5OUlKQrrrjCUcGFMUbff/99tfd9//33MsbUa/s1vS5ffPGFJOlnP/uZrrrqKl1xxRVq2LBhxPZXH+F4LoJV02sSKQcPHtTo0aP18MMPq1WrVlHdNwBYzQ41xOlq+syx21jrK9qfd9U566yzdMUVVyg+Pt7qoQStoqJC5eXl1d4XjmOkptfl888/lySNGzdOV155pXr06FHv/UXquI7m+6Wm1yRSvvnmG02aNEkFBQVR3S+cjeDNQsYYzZo1S5mZmWrSpIlatWqlIUOG6N///netv1vZ1jp37lxdcMEFatKkiXr06KEPP/xQxhg9+eST6tKli5o1a6a+ffsGTOSLiorUu3dvNW3aVOecc44ef/xxnTx50m+dLVu26LbbblPbtm0VHx+viy66SL/+9a+rrHe6efPm6dZbb5Uk5eTkyOPxyOPxaN68eb7pENX91DalduTIkWrWrJk+++wz9e/fX82bN1e/fv0kSceOHdMjjzyiCy+8UPHx8TrrrLN0++2367vvvquynZdfflk9e/ZUs2bN1KxZM2VmZup///d/ffcHaoE+c2pb5WN58cUXde+996p9+/aKj4/Xxo0bwzLWzp07a9CgQVqyZIkuvfRSNWnSRBdeeKF+//vfVxnbt99+q7vuuksdO3ZU48aNlZqaqiFDhmjXrl2+dUpLS3XfffepS5cuaty4sdq3b6/x48errKysxue98rGnp6drxYoV6tWrl5o2bao77rijXts9evSo7r33XmVmZqpFixZKTk5Wz5499cYbb/it5/F4VFZWpj/84Q++Y6XydThzes3MmTPl8XiqPeZ/8YtfqHHjxtqzZ49v2bJly9SvXz8lJSWpadOmuvLKK/XOO+/U+nyE8rgr36/PPvusLrroIsXHx+sPf/iDb5rF22+/rTvuuENnnXWWmjZtqvLycp08eVJPPPGE7xhp27athg8frm3btgX9upypT58+uu222yRJl19+uTwej99x/vvf/17du3dXQkKCkpOTNXjwYG3YsMFvGzUd14G8//776tevn5o3b66mTZuqV69e+tvf/ua3Tk3PhTFGTzzxhNLS0pSQkKBLL71Uf//73yPymkTTvffeq7PPPlvjxo2L6n4BWCvYzz7pP/9WPffcczr//PMVHx8vr9erV155pdb9rF27Vj/+8Y/VuXNnNWnSRJ07d9ZPfvITbd68ucq6TqghTp48qd/97ne+urlly5a64oor9Oabb/o9X9VNiTyzrqvpMyccY6183V588UVddNFFatq0qbp376633nqrytj++c9/6ic/+YlSUlIUHx+vTp06afjw4X5hws6dOzV69Gh16NBBjRs3VpcuXTRt2rSAX/Se+dgHDRqk1157TZdccokSEhI0bdq0em33u+++09ixY+X1etWsWTO1bdtW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+zfD888/r+eff16vv/66fvjDHwY9NsQWgjeLDBo0SI8//ri+/fZb/ehHP7J6OAH169dP+fn5+vjjj3XppZf6ls+fP18ej0c5OTkBf7cyPKzu0ti/+tWvNHfuXP3hD3/QD37wg3qPc9CgQXrllVdUUVGhyy+/POB6/fv3V8OGDTV79mz17Nkz4HqdO3fWp59+6rfsq6++0pdfflmvsDGUsYYiNzdXL774or788ktdcMEFAff72GOPqXXr1urSpUtY9lvf7Xo8HjVu3NjvA3Tnzp3VXtntzC6/2tx+++164okn9Kc//Unz5s1Tz549deGFF/ruv/LKK9WyZUuVlJTonnvuCWncUuSeT0m+aQAvvfSSX5FWVFSkDRs2aPLkyWHdX8+ePdWkSRO99NJLvqsRS6cC6nfffbfGrsCaJCYm6vLLL9drr72mp556Sk2aNJF0qrvrpZdeUocOHWqdYnHFFVcoISFBf/zjH/2mMaxatUqbN2/2C94i+ZpMnTo1qOOktuD8uuuuq/bqWz/+8Y/VpUsX5efnq2vXrnUeJwD7C+WzT5Leeecd7dq1y/dlUEVFhRYsWKBzzz03YLeUx+ORMabKF7kvvPCCKioq/JY5oYbIzc1Vfn6+Zs+erenTpwdcr7r67d1339Xhw4ejNtZgNWnSRNdcc40WLlyoRx99NGB9OWjQIC1evFjnnntu0KdHCEZ9tuvxeKocW59++qlWr17t98V2TX8LBHL77bfr1Vdf1eLFi/XSSy9p8ODBfqeiGTBggOLi4vSvf/0rqNNenClSz6d06u+mJ554Qi+99JImTJjgW/6Xv/xFZWVltV4FPlSRqhcvuOACtW/fXi+//LLuu+8+379VZWVl+stf/uK70mlN+vTpI0n64x//qKysLN/yV199tcpVcyP5mjz33HNBBcK1/X03cuRI32M6XU5Ojn74wx/q5z//uW86NFAdgjeLXHnllbrrrrt0++23a+3atbr66quVmJioHTt26P3331e3bt109913Wz1MTZgwQfPnz9f111+v6dOnKy0tTX/72980a9Ys3X333TX+0Vz5j8+cOXPUvHlzJSQkqEuXLnr33Xf16KOPasiQITr//PP14Ycf+n4nPj5el1xyScjj/PGPf6w//vGPGjhwoH7+85/rsssuU6NGjbRt2za99957uummmzR48GB17txZv/zlL/Xwww/r+++/109+8hO1aNFCJSUl2rNnj+8y3sOGDdNtt92msWPH6pZbbtHmzZv1xBNP1HgOjnCPNRTTp0/X3//+d1199dX65S9/qW7duunAgQNasmSJJk6cqAsvvFDjx4/XX/7yF1199dWaMGGCMjIydPLkSW3ZskVvv/227r333joFgfXZbuVl1MeOHashQ4Zo69atevjhh3X22Wfr66+/9lu3W7du+sc//qG//vWvOvvss9W8efOAfyBI0oUXXqiePXsqPz9fW7du1Zw5c/zub9asmX73u99pxIgR2rdvn4YMGaK2bdvqu+++0yeffKLvvvuuyje54Xrctbngggt011136Xe/+50aNGig3NxcffPNN3rwwQfVsWNHv2IuHFq2bKkHH3xQv/zlLzV8+HD95Cc/0d69ezVt2jQlJCRoypQpdd52fn6+rr32WuXk5Oi+++5T48aNNWvWLH3++ef605/+VOu3lq1atdJ9992nRx55RHfeeaduvfVWbd26VVOnTq0yfSGSr0nnzp2rnXYfqnbt2lU7VSohIUGtW7eutqgD4DzvvvuuvvnmmyrLBw4cGNJnn3TqD8K+ffvqwQcfVGJiombNmqV//vOfeuWVVwLuPykpSVdffbWefPJJtWnTRp07d9by5cv1v//7v1XOp+uEGqJ3794aNmyYHnnkEe3atUuDBg1SfHy81q9fr6ZNm+r//b//J+lU/fbggw/qoYce0jXXXKOSkhI988wzatGiRchjq+tYQzFjxgxdddVVuvzyy/XAAw+oa9eu2rVrl958800999xzat68uaZPn67CwkL16tVL48aN0wUXXKCjR4/qm2++0eLFi/Xss8/W6RQq9dnuoEGD9PDDD2vKlCm65ppr9OWXX2r69Onq0qWLX6jSvHlzpaWl6Y033lC/fv2UnJzsOx4D6d+/vzp06KCxY8dq586dfrMVpFOfx9OnT9fkyZP173//W9ddd51atWqlXbt26aOPPlJiYqKvng/3467NtddeqwEDBugXv/iFSktLdeWVV+rTTz/VlClTdMkll2jYsGF12m4gkaoXGzRooCeeeEI//elPNWjQII0ePVrl5eV68skndeDAAT3++OO1buOiiy7SbbfdppkzZ6pRo0b6wQ9+oM8//1xPPfVUldOVRPI1qelvhVDUVAe2b9+e+g21s/DCDq5S21Wsrr/++ipXJjXGmN///vfm8ssvN4mJiaZJkybm3HPPNcOHDzdr1671rRPoqqZnXkGl8kovTz75pN/yyitdnX7Z+WuuucZcfPHFVcZT3b42b95s/uu//su0bt3aNGrUyFxwwQXmySefrHLZZVVz1aKZM2eaLl26mIYNGxpJZu7cub6r31T3U91zdOb4EhMTq73v+PHj5qmnnjLdu3c3CQkJplmzZubCCy80o0ePNl9//bXfuvPnzzfZ2dm+9S655BIzd+5c3/0nT540TzzxhDnnnHNMQkKC6dGjh3n33XcDXtX09Oc2nGMNdKXDM8dhzKkr4t5xxx2mXbt2plGjRiY1NdX86Ec/Mrt27fKtc/jwYfOrX/3KXHDBBaZx48amRYsWplu3bmbChAl+V0yrTqBjJpTtVndV08cff9x07tzZxMfHm4suusg8//zzvmPkdMXFxebKK680TZs29bt6ZE1XcpszZ47vinAHDx6sduzLly83119/vUlOTjaNGjUy7du3N9dff321r2ldH3d171djav53o6KiwvzP//yPOf/8802jRo1MmzZtzG233ea7fHylml6X6tS0zxdeeMFkZGT4HstNN91U5WppNR3XgaxcudL07dvX9+/cFVdc4bu6bDDjOnnypMnPzzcdO3Y0jRs3NhkZGeavf/1rte+D+r4mVuGqpoA71HaV+8orOAb72Vf5b9WsWbPMueeeaxo1amQuvPBC88c//tFvveo+C7dt22ZuueUW06pVK9O8eXNz3XXXmc8//7zaz2In1BAVFRXmN7/5jUlPT/et17NnT7/Pk/LycnP//febjh07miZNmphrrrnGFBcXB7yqaXWfOeEYa6DPmOqe+5KSEnPrrbea1q1bm8aNG5tOnTqZkSNHmqNHj/rW+e6778y4ceNMly5dTKNGjUxycrLJysoykydPNocPH652rKfvM9DnS7DbPbPGLy8vN/fdd59p3769SUhIMJdeeqlZtGhRtX9HLFu2zFxyySUmPj7e7+qR1V3VtNIvf/lLI8l07Nixyt8blRYtWmRycnJMUlKSiY+PN2lpaWbIkCFm2bJlNT4fwT7uQH9XGVP9FUYrff/99+YXv/iFSUtLM40aNTJnn322ufvuu83+/fv91gv1cz/QPiNVLxpz6jm+/PLLTUJCgklMTDT9+vUzH3zwQVDjMubUcXLvvfeatm3bmoSEBHPFFVeY1atXV/s+qO9rYhW71ZOwL48xQZxtEAAAAEBUeTwe5eXl6ZlnnrF6KAAAoI5qvnwHAAAAAAAAgDqJieDtrbfe0gUXXKDzzjtPL7zwgtXDAQAADjR48GC1atWqygVHDh06pOzsbGVmZqpbt256/vnnLRphbKLOAwAA4RCo1qt05MgRpaWl6b777gtpu66fanrixAl5vV699957SkpK0qWXXqo1a9YoOTnZ6qEBAAAHee+993T48GH94Q9/0J///Gff8oqKCpWXl6tp06Y6cuSI0tPTVVRUpNatW1s42thAnQcAAMIlUK1XafLkyfr666/VqVMnPfXUU0Fv1/Udbx999JEuvvhitW/fXs2bN9fAgQO1dOlSq4cFAAAcJicnR82bN6+yvGHDhmratKkk6ejRo6qoqJDLv9e0Deo8AAAQLoFqPUn6+uuv9c9//lMDBw4Mebu2D95WrFihG264QampqfJ4PFq0aFGVdWbNmqUuXbooISFBWVlZWrlype++7du3q3379r7bHTp00LfffhuNoQMAgCipb71QXwcOHFD37t3VoUMH3X///WrTpk3Ytu1m1HkAACAYVtd69913n/Lz8+v0u7YP3srKytS9e/eAV3NasGCBxo8fr8mTJ2v9+vXq3bu3cnNztWXLFkmq9htnj8cT0TEDAIDoqm+9IElZWVlKT0+v8rN9+/Za99+yZUt98skn2rRpk15++WXt2rUrbI/NzajzAABAMKys9d544w2df/75Ov/88+s09rg6/VYU5ebmKjc3N+D9M2bM0KhRo3TnnXdKkmbOnKmlS5dq9uzZys/PV/v27f2++dy2bZsuv/zygNsrLy9XeXm57/bJkye1b98+tW7dmkIOAGALxhgdOnRIqampatAgst+hHT16VMeOHYvoPgIxxlT57I2Pj1d8fHyVdetbL0jSunXr6j3mlJQUZWRkaMWKFbr11lvrvT23o84DAMAfdV7VOk+yttb78MMP9corr2jhwoU6fPiwjh8/rqSkJD300EPBbcA4iCTz+uuv+26Xl5ebhg0bmtdee81vvXHjxpmrr77aGGPM8ePHTdeuXc22bdtMaWmp6dq1q9mzZ0/AfUyZMsVI4ocffvjhhx/b/2zdujUin7eVvv/+e5OS0s6yx9esWbMqy6ZMmVLruKXQ64Vgvffee+aWW27xW7Zz505z8OBBY4wx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/OSjjz4SEZHt27dLSEiIvPvuu3L27Fn55S9/Kb6+vnLu3DkREWlvb5eYmBh54oknpLq6WgoKCmTy5Ml9PvsjNDS0z2MvX75cYmJiJD8/X/7zn/9IUVGR7N27V0RE6urqZMyYMfL444/L8ePH5cKFC3Lo0CH5yU9+Ip2dnTazVFRUiJ+fnxw8eFBERHbt2iXBwcFy4cIFu/kbGhokPDxcHnvsMSkrK5Nz587Jnj175OzZsw7lb21tlXHjxsmSJUvk9OnT8umnn8q9994rOTk51sfIycmRRx99tMfjNjc3S0REhDz55JNSWVkpH374oUycOJGf/UFERESKYZ/HPo+I9I8Lb0Ru7syZM5KZmSljxowRf39/mTRpkrz++uvW+a6uLtm8ebOMHz9efH19JSEhQf7xj3/0OMZnn30mJpNJAgICJDU1Vfbv3+9QQ3b79m35+c9/LuPGjRM/Pz+ZOHGi/PnPf7bOnzt3ThYvXiyjRo2SwMBAmTJlirzwwgtisVhsHstoNMqzzz7bY3zx4sUye/Zsu02ciMjJkyclIyNDRowYIcHBwZKammpt4hzJf+rUKUlPT5eAgAAJCwuTZ555Rpqbm63zthoyEZFjx45JQkKC+Pn5SWJiohw4cIANGRERESmGfR77PCLSP4MI3+BORERERERERESkNH7GGxERERERERERkQq48EZERERERERERKQCLrwRERERERERERGpgAtvREREREREREREKuDCGxERERERERERkQq48EZERERERERERKQCLrwRERERERERERGpgAtvREREREREREREKuDCGxERERERERERkQq48EZERERERERERKQCLrwRERERERERERGpgAtvREREREREREREKvg/V5lb0U/VyPcAAAAASUVORK5CYII=", "text/plain": [ - "

" + "
" ] }, "metadata": {}, @@ -186,150 +186,31 @@ } ], "source": [ - "order_plot = 5\n", - "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + "order_plot = 4\n", + "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", + "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", + "cs = ax1.contourf(x_grid, y_grid, plot_me_hem, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"Laplace recurrence error order = \"+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHJCAYAAACBuOOtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABo3ElEQVR4nO3de1xUdeL/8ffIZUAFFFEUESRvSQjmiAqKihY2ppZpufv9LuJty4W+rrJuq+vXG6WUlVkrmGZltvvdyDapNXeRSoVkLUFpU8zURUHlEmgiqKDw+f3hj8lxZmAuZ+Ychvfz8ZjH7pw5c+ZzUJlX56oSQggQERERObEOcg+AiIiIyN4YPEREROT0GDxERETk9Bg8RERE5PQYPEREROT0GDxERETk9Bg8RERE5PQYPEREROT0GDxERETk9Bg87diOHTugUqmQn5/v0M89cOAAVCoVDhw44NDPJWpr1qxZA5VKJfcwrPbVV19h8uTJ6Nq1Kzw9PTFgwAA8//zzcg+L2ilXuQdARETO5//+7/8QHx+Pp556Cjt37kTnzp1x9uxZXLp0Se6hUTvF4CEyw/Xr19GxY0e5h6Fz48YNeHh4GP2vf6WN1VFMrbcQAjdv3oSnp6fVy27p522LxsZG3L59G2q1WtLlmuKovxsXL17E008/jWeeeQbp6em66bGxsXb/bCJTuEuLWnTz5k387ne/w9ChQ+Hj4wNfX19ERUXhk08+MZhXpVLh2WefxdatWzFw4ECo1WqEhobigw8+aPVz8vPz8Ytf/AJ9+/aFp6cn+vbti1/+8pc4f/68wbzNv0z79OkDd3d3BAQEYObMmaioqNDNU1NTg6VLlyIkJATu7u7o3bs3Fi9ejLq6ulbHMn78eISFhSEnJwfR0dHo2LEj5s2bZ9Fym5qa8Kc//QlDhw6Fp6cnunTpglGjRuHTTz/V+3mtWbPG4PP79u2LOXPm6J4373rct28f5s2bh+7du6Njx46or6+XZKzNf27vv/8+Bg8ejI4dOyIiIgJ79uwxGNv333+PX/7yl/D394darUZQUBBmz56N+vp63Tzl5eV45plnEBgYCHd3d4SEhGDt2rW4fft2qz97AMjIyEBUVBQ6deqEzp07Y9KkSTh27JjePHPmzEHnzp3x3XffIS4uDl5eXpg4caLe+rz55psYPHgw1Go13nvvPQB3drFMnDgRXl5e6NixI6Kjo/HZZ5/pLbuln7cpJSUl+NWvfoUePXpArVZj8ODBePXVV9HU1KSb59y5c1CpVNiwYQNeeOEFhISEQK1WY//+/QCAzz77DEOHDoVarUZISAheeeUVo58lhEB6erru71bXrl0xc+ZM/Oc//9Gbr6W/G/a2fft21NXV4Q9/+INDPo/IHNzCQy2qr6/H5cuXsXTpUvTu3RsNDQ34/PPP8cQTT+Ddd9/F7Nmz9eb/9NNPsX//fqSkpKBTp05IT0/HL3/5S7i6umLmzJkmP+fcuXMYNGgQfvGLX8DX1xdlZWXYsmULIiMjUVRUBD8/PwB3YicyMhK3bt3CH//4R4SHh6O6uhpZWVm4cuUK/P39cf36dYwbNw4XLlzQzXPixAmsWrUK3333HT7//PNW/0u9rKwMv/rVr/Dcc89h/fr16NChg0XLnTNnDv785z9j/vz5SElJgbu7O44ePYpz585Z/Wcxb948PProo3j//fdRV1cHNzc3ScYK3PmyPXLkCFJSUtC5c2ds2LAB06dPx6lTp3DfffcBAL799luMGTMGfn5+SElJwYABA1BWVoZPP/0UDQ0NUKvVKC8vx4gRI9ChQwesWrUK/fr1w7/+9S+88MILOHfuHN59990W13H9+vX43//9X8ydOxf/+7//i4aGBrz88suIiYnBN998g9DQUN28DQ0NmDZtGp555hksW7ZML6gyMzORm5uLVatWoWfPnujRowcOHjyIhx9+GOHh4Xj77behVquRnp6OqVOn4q9//StmzZpl1s/7Xj/++COio6PR0NCA559/Hn379sWePXuwdOlSnD17Vm8LBwC88cYbGDhwIF555RV4e3tjwIAB+OKLL/DYY48hKioKH3zwARobG7Fhwwa9iG/2zDPPYMeOHVi0aBFeeuklXL58GSkpKYiOjsa3334Lf39/3bzG/m6YIoRAY2Nji38+zVxdW/7qyMnJga+vL77//ns89thjOH78OHx9ffHEE09gw4YN8Pb2NutziCQlqN169913BQBx5MgRs99z+/ZtcevWLTF//nzx4IMP6r0GQHh6eory8nK9+e+//37Rv39/3bT9+/cLAGL//v0tfk5tba3o1KmTeP3113XT582bJ9zc3ERRUZHJ96ampooOHToYrNdHH30kAIi9e/e2uI7jxo0TAMQXX3xh1XJzcnIEALFixYoW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G15eXpg8eTKysrLkHhYREVG7I+d3suKDJycnB1OnTkVAQABUKhUyMzMN5klPT0dISAg8PDyg0WiQm5ure+3SpUvo3bu37nlgYCAuXrzoiKETERE5lbb8naz44Kmrq0NERITJM38yMjKwePFirFixAseOHUNMTAy0Wi1KSkoAGL8iqLXX2yAiImrP2vJ3suIvPKjVanU3HjRm48aNmD9/PhYsWAAA2LRpE7KysrBlyxakpqaid+/eevV44cKFFi+4Vl9fr3e5/6amJly+fBndunVjKBERUYuEELh27RoCAgLsdguNmzdvoqGhQZJlCSEMvtvUarXRW5cAjv9OlpR8lwCyHACxe/du3fP6+nrh4uIiPv74Y735Fi1aJMaOHSuEEOLWrVuif//+4sKFC6Kmpkb0799fVFVVmfyM5gt98cEHH3zwwYe1j9LSUrt8D964cUP09O8p2Tg7d+5sMG316tVmjQWw/3eylBS/haclVVVVaGxsNLhzsL+/v+6me66urnj11VcRGxuLpqYmPPfccy1ePn358uVITk7WPb969SqCgoJw5sQZeHl52WdFyCz//o/xm2qS45z96SYAoOhKncwjIQA48mMtii5dk3sYBKD2xztbLcStm2j6cLndvi8aGhpQXlGO0ydOw9vL26Zl1VyrwYAHBqC0tBTe3j8vy9TWndbY4ztZSm06eJrduzlO3LOJbtq0aZg2bZpZy2relJeWloa0tDTdzSu9vLz0/kKQYx07U4VOnRmccjl95QYAwLNTZxy/XAd1x84yj4gOV17DyepGqNQd5R5Ku1ZbeQEAoHL31Jtu70MgvL28JftO8vaWblmAtN/JUmrTwePn5wcXFxddOTarrKw0KExLJSUlISkpCTU1NZLczJGsU/XTDZRWcWuCnJpjBwCOX+afhdwOV97ZovPdhRqZR0LNsUN32PM7WQqKP0urJe7u7tBoNMjOztab3ny3ZlukpaUhNDQUkZGRNi2HrMfYkdfpKzcYOwrD2FGG2soLjB0j7PmdLAXFb+Gpra3FmTNndM+Li4tRWFgIX19fBAUFITk5GfHx8Rg+fDiioqKwbds2lJSUYOHChTZ9LrfwyIuxI5+7I6cZY0dezaEDMHbk1t5DR67vZCkoPnjy8/MRGxure958QHFCQgJ27NiBWbNmobq6GikpKSgrK0NYWBj27t2L4OBguYZM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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 6\n", - "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"Laplace recurrence error order = \"+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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enq6mDNnjrh9+3aj23LixAnh7OwsPv74YyGEENu3bxdubm7ixx9/NLn9ZWVlolu3bmLatGni2LFj4ocffhA7d+4U33//vVnbX1VVJXr16iWmT58uvv32W/H555+LBx54QMTGxurXERsbKx5//HGD9V6/fl14enqK3/zmN+LkyZPik08+Ef379+c5PETtCIOHqBXl5+eLCRMmiO7duwu1Wi0GDhwo/vrXv+pfr6urE2vWrBG9e/cWTk5OIjg4WPzzn/80WMYXX3whhg4dKlxcXERERITYvXu3WcFz8+ZNsXjxYtGrVy/h7Ows+vfvL95880396z/88IOYOnWq6NKli3B1dRUPPvigWLRokaivr290WQEBAeLpp582mD516lQRHh5uMpKEEOLrr78W0dHRomPHjsLNzU1EREToI8mc7f/mm29EVFSUcHFxER4eHuJ3v/uduH79uv71xoJHCCG+/PJLERwcLJydnUVISIj4+9//zuAhakdUQvDgNhEREdk3nsNDREREdo/BQ0RERHaPwUNERER2j8FDREREdo/BQ0RERHaPwUNERER2j8FDREREdo/BQ0RERHaPwUNERER2j8FDREREdo/BQ0RERHbv/wNHIFVfdXLeOwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 7\n", - "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"Laplace recurrence error order = \"+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 7\n", - "x_grid, y_grid, plot_me = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", - " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, plot_me.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"Helmholtz recurrence error order = \"+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_65942/4137449632.py:6: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs = ax.contourf(x_grid, y_grid, (plot_me_hem7-plot_me_lap7).T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" - ] - }, - { - "data": { - "image/png": "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jw/i4uIwZcoU9OvXD+Hh4di4cSMKCgowd+5cs9YVGxuL2NhY1cp3IiKils5a5+yGWDzs5OTkICoqSvW8bnHwtGnTsGXLFkyePBnXr1/H8uXLUVRUhICAAOzatQu+vr6WKpmIiKhFaq5ztlXdZ8eaPLxA+cyZM7zPDhERNaip7rNjOy3ZJJee3//spRYxv1n1mh1L4gJlIiIiaWDYISIiIklj2NGBV2MRERFJA8OODjyNRUREJA0MO0RERCRpDDtEREQkaQw7OnDNDhERkTQw7OjANTtERETSwLBDREREksawQ0RERJLGsKMD1+wQERFJA8OODlyzQ0REJA0MO0RERCRpDDtEREQkaQw7REREJGkMO0RERCRpDDs68GosIiIiaWDY0YFXYxEREUkDww4RERFJGsMOERERSRrDDhEREUkaww4RERFJGsMOERERSRrDDhEREUkaw44OvM8OERGRNDDs6MD77BAREUkDww4RERFJGsMOERERSRrDDhEREUkaww4RERFJGsMOERERSRrDDhEREUkaww4RERFJmuTDzunTpxESEqJ6ODg4YMeOHZYui4iIiLQYP3482rdvj0mTJqm1FxYWYujQofD390dQUBC2b9+ud5+2pi7S2vTq1Qu5ubkAgPLycnTp0gVPPvmkZYsiIiIirebPn4+ZM2fis88+U2u3tbXFe++9h5CQEFy7dg2hoaEYOXIkWrdu3WCfkj+y87B///vfGD58uF4fDBERETW9qKgotG3bVqO9U6dOCAkJAQC4u7vDxcUFN27c0KtPi4edjIwMjBkzBp6enpDJZFpPMSUnJ8PPzw8KhQJKpRKZmZmN2tfXX3+NyZMnG1kxERFRy9SUc3Z9cnJyUFtbC29vb722t/hprIqKCgQHB2PGjBmYOHGixuspKSlYsGABkpOTMXDgQHz00UeIiYlBXl4efHx8AABKpRKVlZUa792zZw88PT0BAGVlZThw4AC++uqreuuprKxU66usrMyY4REREVm1R+c5uVwOuVyuddummrPrc/36dUydOhWbNm3SZ3gAAJkQQui9tZnJZDKkpqZi3LhxqrYBAwYgNDQU69evV7X17t0b48aNQ2Jiot59f/7559i9eze2bdtW73YJCQlYtmyZRntpaSmcnJz03h8REbU8ZWVlcHZ2NtucUdd/qyfmQWanPZDoS1RXovbHdRrt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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 7\n", - "x_grid, y_grid, plot_me_hem7 = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", - "x_grid, y_grid, plot_me_lap7 = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - " \n", - "fig, ax = plt.subplots()\n", - "cs = ax.contourf(x_grid, y_grid, (plot_me_hem7-plot_me_lap7).T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "cs = ax2.contourf(x_grid, y_grid, plot_me_lap, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "cbar = fig.colorbar(cs)\n", - "plt.gca().set_xscale('log')\n", - "plt.gca().set_yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n", - "plt.title(\"Helmholtz-Laplace recurrence error order = \"+str(order_plot))\n", + "ax1.set_xscale('log')\n", + "ax1.set_yscale('log')\n", + "ax1.set_xlabel(\"source x-coord\")\n", + "ax1.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "ax2.set_xscale('log')\n", + "ax2.set_yscale('log')\n", + "ax2.set_xlabel(\"source x-coord\")\n", + "ax2.set_ylabel(\"source y-coord\")\n", + "\n", + "ax1.set_title(\"Helmholtz recurrence relative error for order = \"+str(order_plot))\n", + "ax2.set_title(\"Laplace recurrence relative error for order = \"+str(order_plot))\n", + "\n", + "fig.savefig('order'+str(order_plot))\n", "plt.show()" ] }, @@ -338,9 +219,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "(plot_me_hem7-plot_me_lap7).T" - ] + "source": [] } ], "metadata": { From 68cf84f5fe6716bb24c987729686bb795f4632ef Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 22 Dec 2024 23:05:43 -0800 Subject: [PATCH 121/193] Plot Odd/Even Error --- test/order5.png | Bin 46382 -> 47215 bytes test/plot_normal_recurrence.ipynb | 145 ++++++++++++++++++++++++++---- 2 files changed, 130 insertions(+), 15 deletions(-) diff --git a/test/order5.png b/test/order5.png index aaacae9e568e112dacbeb5379978712e7c7a58ed..cedbdcbdcc4634e0952dbbd1d6ae94c87ff893ad 100644 GIT binary patch literal 47215 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

g&SN}@5l@(i$MG($yJaJ|`QK3cxX)HNaF>!H~ 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" ] @@ -186,15 +186,15 @@ } ], "source": [ - "order_plot = 4\n", + "order_plot = 5\n", "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", " \n", "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs = ax1.contourf(x_grid, y_grid, plot_me_hem, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs = ax1.contourf(x_grid, y_grid, plot_me_hem.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "cbar = fig.colorbar(cs)\n", "\n", - "cs = ax2.contourf(x_grid, y_grid, plot_me_lap, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs = ax2.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "cbar = fig.colorbar(cs)\n", "ax1.set_xscale('log')\n", "ax1.set_yscale('log')\n", @@ -214,6 +214,121 @@ "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left(-1\\right)^{n + 1} \\left(\\frac{\\left(-1\\right)^{n - 3} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) s{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) s{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) s{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" + ], + "text/plain": [ + "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*s(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*s(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*s(n - 1)/(x0**3 + x0*x1**2))" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "recur_laplace" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Error vs Order (Odd Only), Slope: 149.36134613278')" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "loc = np.array([1e-8, 1])\n", + "orders_even = [i for i in range(5, 15, 2)]\n", + "err = []\n", + "for o in orders_even:\n", + " err.append(compute_error_coord(recur_laplace, loc, o, derivs_laplace, n_init_lap, order_lap))\n", + "\n", + "orders_even = np.array(orders_even)\n", + "err = np.array(err, dtype=float)\n", + "\n", + "coefficients = np.polyfit(np.log10(orders_even), np.log10(err), 1)\n", + "polynomial = np.poly1d(coefficients)\n", + "log10_y_fit = polynomial(np.log10(orders_even))\n", + "plt.plot(orders_even, 10**log10_y_fit, '*-')\n", + "plt.scatter(orders_even, err)\n", + "plt.xscale('log')\n", + "plt.yscale('log')\n", + "plt.title(\"Error vs Order (Odd Only), Slope: \"+str(coefficients[0]))" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Error vs Order (Even Only), Slope: 170.3029259672917')" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAG2CAYAAACzoLZvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABoRElEQVR4nO3deVxUVf8H8M8wwCACg4jsi7iDCChIiSsuKCqmpqI9LqX2pNmTaLaolWkaZqlYKj5UT7aLVpoaLpgW5pIbuOECiQLKIvsm28z5/UHMzxFQwJFh+bxfr3nVnHvm3u8dBubrOefer0QIIUBERETUyOloOwAiIiKi2mDSQkRERE0CkxYiIiJqEpi0EBERUZPApIWIiIiaBCYtRERE1CQwaSEiIqImgUkLERERNQlMWoiIiKhJYNJSja1bt0IikdT4+P3337UdotYIIfD9999j8ODBaNOmDWQyGTp06IB58+YhKSnpsfd/8+ZNSCQSbN269fGDraWjR49CJpPh1q1bqrZBgwbV+PNv3759g8VWXydPnsTEiRNhbW0NfX19WFlZYcKECThx4sRj7bd9+/Z4/vnn6/y63377DUZGRrh9+/ZjHT8pKQkvv/wyunTpglatWsHMzAw9evTAiy++qPb5e++99yCRSB7rWNry559/Yvbs2fD09IRMJoNEIsHNmzer9HvU36nVq1er9U9PT8fzzz8Pc3NzGBoaok+fPvjtt99qFdMPP/yAAQMGwNLSEjKZDDY2NggICMDx48er7b9t2zZ4eHjAwMAANjY2CAoKQkFBgVqfw4cPY+bMmejWrRtat24NW1tbPPPMMzh79myV/Qkh8Mknn6Bbt26QyWSwtrbG3LlzkZ2drdbv+vXrWLRoETw9PWFqagozMzP07dsXP/74Y53ev9TUVLW+paWlePfdd+Hk5AR9fX04Ojpi8eLFuHfvXrXnf+nSJUycOBHt2rWDTCZD+/bt8fLLL6v1ad++fY3HNzAwUPVLSUnB22+/jT59+sDc3BwmJibw9PREWFgYFApFlWOfOnUKw4cPh7GxMYyMjODr64tjx45V6fekPmdPmm6DHq2J+fLLL9GtW7cq7S4uLlqIRvuUSiWee+45hIeHY8qUKdi6dSvkcjkuXLiAjz76CN9//z327t2Lvn37ajvUWhNCICgoCC+++CIcHR3VtnXo0AHfffddldfIZLKGCq9ePv30UwQFBcHb2xtr1qyBo6MjEhMTsWnTJvTr1w8bNmzAK6+80qAxDRkyBN7e3liyZAm++uqreu0jOTkZvXr1gqmpKV577TV07doVubm5iI2Nxfbt23Hjxg3Y29trOPKG99tvv+HQoUPo2bMnTExMavxH0qhRo6pNQt99911ERkZi3LhxqraSkhIMGTIEOTk52LBhAywsLLBp0yaMGDEChw4dwsCBAx8aU2ZmJvr27Yv58+fD3NwcKSkpWLduHQYMGIDffvtN7fXfffcdpk6ditmzZ2P9+vW4fv063nzzTcTGxuLgwYOqfqGhocjMzMT8+fPh4uKCu3fvYu3atXj66adx4MABDB48WNV30aJFCAkJwaJFizB06FDExsbi3XffxenTp3HixAno6ekBAA4ePIhff/0V06ZNQ+/evVFeXo7w8HBMnDgRy5cvx7vvvlvl3Kr7O9+2bVu151OmTEFERATeffdd9O7dGydOnMDKlStx+fJl7N69W63vkSNHMGrUKPTv3x9btmyBubk5EhMTER0drdZv586dKCkpUWtLTExEYGCg2s/u7Nmz+PrrrzF9+nS888470NPTw759+zB37lycPHkS//vf/1R9T58+jQEDBsDb2xvffPMNhBBYs2YNhgwZgiNHjqBPnz6qvk/ic9YgBFXx5ZdfCgDi9OnTdX6tUqkURUVF1W4rKioSSqXysWIrLCx8rNc/jg8++EAAEKtXr66yLTU1VTg6OgpLS0uRnZ390P087BwSEhIEAPHll18+ZrQVHvWeR0RECADi6tWrau0DBw4U3bt310gMDenPP/8UOjo6YvTo0aKsrExtW1lZmRg9erTQ0dERf/75Z7327+joKGbMmFGv1/74449CKpWKxMTEer3+3XffFQDEjRs3qt2uUChU/79s2TLRVP+83X8eH330kQAgEhISavXagoICYWRkJPr166fWvmnTJgFAHD9+XNVWVlYmXFxchLe3d73izMnJEXp6emLatGmqtvLycmFtbS38/PzU+n733XcCgIiIiFC1paWlVdlnfn6+sLS0FEOGDFG1JScnC6lUKv7zn/+o9f3+++8FABEWFqZqu3v3brW/76NGjRKGhoaiuLhY1Vbbv/MnTpwQAMTatWvV2iv/Hh48eFDVVlhYKKytrcWoUaPq9bf+vffeEwDEoUOHVG1ZWVmitLS0St958+YJAGq/T8OHDxeWlpZqf2Pz8vKEubm58PHxUXv9k/icNQRODz0miUSCV155BVu2bIGzszNkMhm++uor1ZDawYMHMXPmTLRr1w6GhoYoKSmBUqnEmjVrVEOdFhYWmD59OpKTk9X2PWjQILi6uiIqKgo+Pj4wNDTEzJkzq40jJCQEEokE8fHxVba9+eab0NfXR0ZGBgAgOjoao0ePhoWFhWqod9SoUVWOf7/S0lJ89NFHcHZ2xhtvvFFlu6WlJYKDg5GWloYvvviiVudw584dTJo0CcbGxpDL5QgMDKwyLFvpzJkzGDNmDMzMzGBgYICePXti+/btan0e9p7XJDQ0FL1790bXrl1r7FOT8+fPQyKRqJ1vpX379kEikaj9KywuLg7PPfec6n13dnbGpk2b1F73+++/QyKR4IcffsDSpUthY2MDExMTDB06FNeuXXtkTMHBwZBIJAgNDYWurvpAqq6uLjZv3lxlSLdyKuXy5cuYMmUK5HI5LC0tMXPmTOTm5tZ4rIKCApiamuKll16qsu3mzZuQSqX46KOPVG0BAQEwMjLCZ5999sjzqE5mZiZ0dHRgYWFR7XYdnYf/Oavr793Ro0fx9NNPo1WrVrC1tcU777xTZTi+tLQUK1euVO2zXbt2eOGFF3D37t16nWNtzuNhwsPDUVBQgNmzZ6u179y5E127dlX7l7auri6mTp2KU6dO1WvaztjYGAYGBmqfs5MnTyIlJQUvvPCCWt+JEyfCyMgIO3fuVLVV93M0MjKCi4uL2lTfyZMnoVAoMHLkSLW+o0ePBgD89NNPqjZzc/NqpwW9vb1RVFSErKysOp4lVFMrtTn+jh07kJKSgtdff73O05NCCHz55Zfo0KGD2ihTmzZtVCNJ9/P29gYAtc/vsWPHMGjQIBgaGqrajI2NMWDAABw/fhwpKSmq9ifxOWsITFoeQqFQoLy8XO1R3Rzirl27EBoainfffRcHDhxA//79VdtmzpwJPT09fPPNN/jxxx+hp6eHuXPn4s0338SwYcOwe/duvP/++9i/fz98fHxUiUWllJQUTJ06Fc899xwiIiKqzItWmjp1KvT19ausBVEoFPj2228REBAAc3NzFBYWYtiwYUhLS8OmTZsQGRmJkJAQODg4ID8/v8b34uzZs8jOzsaYMWNq/GUMCAiAjo4OIiMjH3kO9+7dw9ChQ3Hw4EEEBwdjx44dsLKyQmBgYJX9HjlyBH379kVOTg62bNmCX375BR4eHggMDKx27Ut173l1SktLcejQIfj6+tZ43g/+/MvLy6FUKgEA7u7u6NmzJ7788ssqr9u6dSssLCxUf+hiY2PRu3dvXLp0CWvXrsXevXsxatQovPrqq1i+fHmV1y9ZsgS3bt3C559/jrCwMMTFxSEgIKDaz18lhUKBI0eOwMvLC3Z2dtX2sbe3h6enJw4fPlxlX88++yy6dOmCn376CW+99Ra+//57LFiwoMbjGRkZYebMmfjuu++qJDebN2+Gvr6+WpKtr68PHx8f/PrrrzXu82H69OkDpVKJ8ePH48CBA8jLy6vT6+vye5eamorJkyfjX//6F3755RdMmDABK1euxPz581V9lEolnnnmGaxevRrPPfccfv31V6xevRqRkZEYNGiQ2nqHyoT6Sa/V+uKLL2BiYoKJEyeqtV+6dAlubm5V+le2Xb58uVb7VygUKCsrw82bNzF37lwIITBv3jy149y/30p6enro1q2bantNcnNzce7cOXTv3l3VVlpaCqDqtKyenh4kEgkuXLjwyLiPHDmCdu3aVZsojR49GlKpFGZmZhg/fnyVGGs6fuXz+48fFRUFoOJ96tevH/T19dGmTRtMmTIFd+7ceWiMhw4dwq1btzBz5sxaJTyHDx+Grq4uunTpohZrddPXlW0XL1585H5ro6bPWYNo8LGdJqBy2LC6h1QqVesLQMjlcpGVlVXtPqZPn67WfuXKFQFAvPzyy2rtf/31lwAglixZomobOHCgACB+++23WsU9fvx4YWdnpzbsVzn9sWfPHiGEEGfOnBEAxK5du2q1z0rbtm0TAMSWLVse2s/S0lI4Ozs/8hxCQ0MFAPHLL7+otb/44otVpoe6desmevbsWWW6Y/To0cLa2lp1vjW95zWpfM+3bdtWZVtl3NU9Zs2aper3ySefCADi2rVrqrasrCwhk8nEa6+9pmobPny4sLOzE7m5uWrHeeWVV4SBgYHq83PkyBEBQIwcOVKt3/bt2wUAceLEiRrPJzU1VQAQkydPfuh5BwYGCgCq4fnKqZQ1a9ao9Xv55ZeFgYGB2jD3g9NDf//9t9DR0RHr169Xtd27d0+0bdtWvPDCC1WOvXTpUqGjoyMKCgoeGmN1lEqleOmll4SOjo4AICQSiXB2dhYLFiyoMqz94PRQfX7vqvts6ujoiFu3bgkhhPjhhx8EAPHTTz+p9Tt9+rQAIDZv3qxq++qrr4RUKhVfffVVnc65LsP2lef40ksvVdmmp6dXbfvx48cFAPH999/XKp6uXbuqfg+sra2rTDOuWrVKABApKSlVXuvn5ye6dOny0P3/61//Erq6uuLMmTOqtpiYGAFAvP/++2p9f/vtNwFA6OvrP3Sfn332mQAgNmzYoNa+b98+sXTpUrFnzx7xxx9/iI0bNwo7OzvRunVrERMTo+q3a9cuAUB88803aq//4osvBAC1cxo+fLgAIExNTcUbb7whDh8+LLZs2SLatm0rOnXq9NCp8cDAQCGVSkVycvJDz0cIIQ4cOCB0dHTEggUL1No9PDxEly5d1L4DysrKRIcOHR76c9bU56whMGmpRuWX39dffy1Onz6t9rj/l0mIiqRl3LhxNe7jwT98mzdvFgDEqVOnqrzG2dlZPPXUU6rnAwcOFG3atKl13Hv27BEAxIEDB1RtEydOFFZWVqK8vFwIUTEP3aZNG9G1a1cRGhoqLl++XKt91zZpsbCwEC4uLo88h0mTJgljY+Mq7ZVf2pVJS1xcnAAgPv74Y1FWVqb2qHwvY2NjhRA1v+c12blzpwAgDh8+XGXbwIEDRceOHav8/E+fPi1u3ryp6peZmSlkMplYvHixqq1y/cClS5eEEBVf4rq6uuI///lPlXOoTCor5/orz//B9/nq1as1JliVapu0TJo0SQAQ6enpQoj//4J/cF3Pli1bBACRmpqqaqtuTcuYMWNE586dVclN5R/zs2fPVjn2hg0bBAARHx//0Bgf5ubNm2Lz5s1i5syZolOnTgKAMDQ0FL///ruqz4NJS11/7x722az88vrXv/4lTE1NRWlpaZWfq5WVlZg0aVK9z7FSXb5MFi1aVOMaDT09PTFnzpwq7ZVJyw8//FCreC5duiT++usvsWPHDjFkyBBhbGwsjhw5otpembTc/5mp5OfnJ7p27Vrjvt9++20BQHz66adVtg0YMECYmJiI7du3i+zsbHHs2DHRuXNnIZVKhYGBQY37jIiIEPr6+mLChAm1WmOSkJAgjIyMxJgxY1RtJSUlolOnTsLGxkYcPHhQZGdni3379glLS0shlUpFt27dVH2HDRtW7Rd6ZeLz2WefVXvcyr8jo0aNemSMZ8+eFXK5XPj4+Kit0RHi/3/35s6dK5KTk0ViYqKYNWuWkEqlD/37oanPWUPg9NBDODs7w8vLS+3h6elZpZ+1tXWN+3hwW2ZmZo2vsbGxUW2vzb4f5O/vD2tra9V0RXZ2Nnbv3o3p06dDKpUCAORyOf744w94eHhgyZIl6N69O2xsbLBs2TKUlZXVuG8HBwcAQEJCQo19CgsLkZGRUeUKjurOITMzE5aWllXarays1J6npaUBqLh6QE9PT+1ROVX24NB+bd+zyuH7+y8vvJ+BgUGVn7+Xl5faVUZmZmYYM2YMvv76a9V0y9atW+Ht7a0a4s7MzER5eTk+/fTTKudQOX304Dk8ePVC5fBuTZdYAlBdyvqwnxFQsd7E0NAQZmZmj31MAJg/fz7i4uJU04KbNm1Cnz590KtXryp9K9/rR+3zYRwdHTF37lx88cUXiIuLQ3h4OIqLi/H666/X+Jq6/t497LNZ2TctLQ05OTnQ19ev8nNNTU2t8jN9ksrKyvD111/D3d0dXl5eVba3bdu2yjkCUK3xePCzUJPu3bvD29sbEyZMwP79++Ho6Kg2ZVb5GarpWDUdZ/ny5Vi5ciVWrVpV7ZVtO3bsQN++fTFp0iS0adMGvr6+GD9+PDw8PGBra1vtPg8cOIDx48dj2LBh+O6772o15dK+fXv069cPJ0+eVLXp6+tj3759cHBwgJ+fH9q0aYMJEyZgyZIlaNOmjdrxK89/+PDhavsdPnw4JBIJzp07V+1xv/32W5SUlDxyjUh0dDSGDRuGzp07IyIiospU0MyZM7F69Wp88803sLOzg4ODA2JjY7Fo0SIAqPG9qq1Hfc4aAi951oCH/TI8uK3yQ52SklJl3cGdO3dgbm5e630/SCqVYtq0afjkk0+Qk5OD77//HiUlJVUWxfXo0QPbtm2DEAIXLlzA1q1bsWLFCrRq1QpvvfVWtfv29PREmzZtsHv3btVizwft3r0bSqUSw4YNe+Q5tG3bFqdOnarS/uBC3Mr3Y/HixRg/fny1sT24iLa271nlvuuzOO9+L7zwAnbs2IHIyEg4ODjg9OnTCA0NVW1v06aN6mdz//z//ZycnB4rBqDi5+/r64v9+/cjOTm52nUtycnJOHv2LPz9/VWJ7OMaPHgwXF1dsXHjRhgZGeHcuXP49ttvq+1b+V4/+Dl/HJMmTUJwcPBD10vU9feuMlm+X+Vns3Jf5ubmaNu2Lfbv31/tMY2NjWt/Eo9p7969SE9PxzvvvFPt9h49elS7nqGyzdXVtc7H1NXVRa9evdQWxPfo0UO13/tvDVFeXo6rV69iypQpVfazfPlyvPfee3jvvfewZMmSao9lYWGBiIgIpKenIzU1FY6OjmjVqhU2b96MCRMmVOl/4MABjB07FgMHDsRPP/0EfX39Wp+XEKLKItVOnTrhxIkTuH37NrKystCxY0fk5uZi/vz5GDBggKqfm5sbtm3bVuO+a1r8+sUXX8DS0lK1uLc60dHRGDp0KBwdHXHw4EHI5fJq+7355psICgpCXFwcjI2N4ejoiJdeegmtW7eu9h/ddfGoz1mD0Mr4TiNXl0ueAYh58+bVeh+Vw/yvvvqqWvupU6cEALF06VJVW30uu62cb9y8ebPw8vISffr0qdXrTE1NxcSJEx/ap/ISvw8//LDKtrS0NNUlzzk5OY88h7qsaencuXOVNR7Vqeul6klJSdXOdT8s7uqUl5cLW1tbMWnSJLFo0SJhYGCg9h4IIcTQoUOFu7u7KCkpeei+KqcgduzYodZe20vBKy95DggIUE0J3h9n5SXPx44dU7VXTqXcvXtXrX/l+3n/kHFNlzyHhYUJHR0dMWDAAGFpaVnjeb744ouibdu29boc9M6dO9W25+fni7Zt24qOHTtWOadKdf29q+mzef+alm+//VYAECdPnqzzudRWbYftR40apbY26kGV02P3x1pWVia6d++uNjVWF/fu3RNdunQRrq6uqrbKS55HjBih1rdy/c++ffvU2lesWCEAiLfffrvOx9+wYYPQ0dGpMg154MABYWBgIIYOHSru3btXp33euHFDGBkZibFjxz6y74IFC0Tr1q3V1qBcuXJFSCQS8eKLL6r1/fnnn6tdFyPE/6+BeuONN2o8VnR0tDAzMxNubm4iIyOjDmckxK1bt4RcLhdBQUE19tHU56whcKTlIS5duoTy8vIq7R07dkS7du3qtc+uXbvi3//+Nz799FPo6OjA398fN2/exDvvvAN7e/uHXq1RG926dUOfPn0QHByMpKQkhIWFqW3fu3cvNm/ejLFjx6JDhw4QQuDnn39GTk5OlRGSB7355ps4f/686r+BgYFqN5fLz8/H3r17a/wXwP2mT5+O9evXY/r06Vi1apVquPPAgQNV+v73v/+Fv78/hg8fjueffx62trbIysrClStXcO7cOezYsaNub9I/7Ozs0KFDB5w8eRKvvvpqle337t1TGya+39NPP636f6lUiunTp2PdunUwMTHB+PHjq7wHGzZsQL9+/dC/f3/MnTsX7du3R35+PuLj47Fnzx4cPny4XufwoL59+yIkJARBQUHo168fXnnlFTg4OKhuLvfXX38hJCQEPj4+GjlepalTp2Lx4sWIiorC22+/XeO/bE+ePImBAweqjYZt3boVL7zwAr788suH3m131apVOHbsGAIDA+Hh4YFWrVohISEBGzduRGZmptrl1Q+q6+9d27ZtMXfuXCQmJqJLly6IiIjAZ599hrlz56qmSidPnozvvvsOI0eOxPz58+Ht7Q09PT0kJyfjyJEjeOaZZ1Q33vr6668xc+ZM/O9//8P06dMf+l7evXsXf/zxB4D/HwnZt28f2rVrh3bt2lW5EdydO3ewf/9+BAYGok2bNtXuc+bMmdi0aRMmTpyI1atXw8LCAps3b8a1a9dw6NAhtb5DhgzBH3/8ofa3z8fHB2PGjIGzszPkcjlu3ryJ0NBQ/P3332qXMUulUqxZswbTpk3DSy+9hClTpiAuLg5vvPEGhg0bhhEjRqj6rl27Fu+++y5GjBiBUaNGVfldu/93rPIy+Y4dOyInJwf79u3DF198gQ8++EBtGvLPP//E2LFjYWVlhSVLliAmJkZtny4uLjAxMQEADB06FAMGDICbmxtMTExw8eJFrFmzBhKJBO+//77a69asWQMrKys4ODggLS0N27dvx65du/DNN9+oTbl069YN8+bNw+bNm2FsbAx/f39cv34db7/9Nnr27IlJkyZV+dlU3jJh1qxZ1fzkgGvXrmHo0KEAKn4H4uLiEBcXp9p+//fRpUuX8NNPP8HLywsymQznz5/H6tWr0blz5yrn9CQ+Zw1Ca+lSI/awq4fwwGIq1HGkRYiKm/p8+OGHokuXLkJPT0+Ym5uLqVOniqSkJLV+9b3BWVhYmAAgWrVqVeVqlatXr4opU6aIjh07ilatWgm5XC68vb3F1q1ba7VvpVIpvvvuOzFo0CBhamoq9PX1hZOTk5g7d67qX6C1PYfk5GTx7LPPCiMjI2FsbCyeffZZ1cLAB0cUzp8/LyZNmiQsLCyEnp6esLKyEoMHD1ZbsFqfmwK+8847ok2bNlUWtD3s6iEAVa5kun79umpbZGRktcdKSEgQM2fOFLa2tkJPT0+0a9dO+Pj4iJUrV6r6PO5IS6UTJ06ICRMmCEtLS6GrqyssLCzE+PHj1W4uVkkTIy1CCPH8888LXV3dGq9+iI+Pr/Zqm08//VQAEPv373/oOZ08eVLMmzdPuLu7CzMzMyGVSkW7du3EiBEj1G5adv853a+uv3e///678PLyEjKZTFhbW4slS5ZUe8O+jz/+WLi7uwsDAwNhZGQkunXrJl566SURFxen6lf5Xtbm51f5GajuMXDgwCr9Kxe/Vreg/H6pqali+vTpwszMTBgYGIinn3662s9q5Wf/fq+99ppwd3cXcrlc6OrqCisrKzFu3Di1Ebv7ff/998LNzU3o6+sLKysr8eqrr4r8/Pxqj1PT437//e9/hbOzszA0NBRGRkaif//+1V4BWflzr+lx/6LhoKAg4eLiIoyNjYWurq6wsbERU6dOVbsSsNLy5ctFx44dhUwmE6ampmLEiBEiKiqq2nMvLy8Xq1evFp06dRJ6enrC2tpazJ07t9qbbhYVFQm5XC4GDBhQ7b6EePT30f2fqWvXrokBAwYIMzMzoa+vLzp16iTefvvtaq/We1KfsydNIoQQj535EDVRd+7cgZOTE77++utq7xFDtVNaWqpaxPjgTf8qvfPOO/j666/x999/q92QbNKkSUhISMDp06cbKtyHGjRoEDIyMh55TxEiani8eohatMpibqtWrVLdNI5q7+7du/jzzz8xd+5cpKWl1biQOycnB5s2bcIHH3yglrAIIfD7779j1apVDRUyETVhXNNCLd7bb78NQ0ND3L59u1kU3GtIv/76K1544QVYW1tj8+bN1V7mDFRcKr948WI899xzau0SiQTp6ekNESoRNQOcHiIiIqImgdNDRERE1CQwaSEiIqImgUkLERERNQnNZiGuUqnEnTt3YGxsXKdb3xMREZH2CCGQn58PGxubGksdVNJK0pKQkICZM2ciLS0NUqkUJ0+eROvWraGrq6uqgeHl5YXPP/+81vu8c+cOr/wgIiJqopKSkqqtmXY/rVw9NHDgQKxcuRL9+/dHVlYWTExMoKurC3Nz83pXRs3NzYWpqSmSkpJUt2kmIiKixi0vLw/29vbIycl5ZBmYBh9puXz5MvT09NC/f38AtS+J/iiVU0ImJiZMWoiIiJqY2iztqPNC3KioKAQEBMDGxgYSiQS7du2q0mfz5s1wcnKCgYEBPD09cfToUdW2uLg4GBkZYcyYMejVqxc++OAD1ba8vDx4enqiX79+qkJOREREREA9kpbCwkK4u7tj48aN1W4PDw9HUFAQli5diujoaPTv3x/+/v5ITEwEAJSVleHo0aPYtGkTTpw4gcjISERGRgIAbt68ibNnz2LLli2YPn068vLyHuPUiIiIqDmpc9Li7++PlStXYvz48dVuX7duHWbNmoXZs2fD2dkZISEhsLe3R2hoKADAzs4OvXv3hr29PWQyGUaOHKkqH25jYwMAcHV1hYuLC65fv15jHCUlJcjLy1N7EBERUfOl0fu0lJaW4uzZs/Dz81Nr9/Pzw/HjxwEAvXv3RlpaGrKzs6FUKhEVFQVnZ2dkZ2ejpKQEAJCcnIzY2Fh06NChxmMFBwdDLperHrxyiIiIqHnTaNKSkZEBhUIBS0tLtXZLS0ukpqYCAHR1dfHBBx9gwIABcHNzQ+fOnTF69GhcuXIFXl5ecHd3x+jRo7Fhw4aHLtJdvHgxcnNzVY+kpCRNngoRERE1Mk/k6qEHVwALIdTa/P394e/vr9bHx8cHFy9erPUxZDIZZDLZ4wVKRERETYZGR1rMzc0hlUpVoyqV0tPTq4y+EBEREdWFRpMWfX19eHp6qq4GqhQZGQkfHx9NHoqIiIhamDpPDxUUFCA+Pl71PCEhATExMTAzM4ODgwMWLlyIadOmwcvLC3369EFYWBgSExMxZ84cjQZORERELUudk5YzZ87A19dX9XzhwoUAgBkzZmDr1q0IDAxEZmYmVqxYgZSUFLi6uiIiIgKOjo6ai5qIiIgajEIpcCohC+n5xbAwNoC3kxmkOg1fnFgrtYeehLy8PMjlcuTm5vI2/kRERBqy/1IKlu+JRUpusarNWm6AZQEuGOFq/dj7r8v3t0bXtBAREVHzsf9SCuZ+e04tYQGA1NxizP32HPZfSmnQeJi0EBERURUKpcDyPbGobjqmsm35nlgolA03YcOkhYiIiKo4lZBVZYTlfgJASm4xTiVkNVhMTFqIiIioivT8mhOW+vTTBCYtREREVIWFsYFG+2kCkxYiIiKqwtvJDNZyA9R0YbMEFVcReTvVXCdQ05i0EBERURVSHQmWBbgAQJXEpfL5sgCXBr1fC5MWIiIiqtYIV2uETu0FK7n6FJCV3AChU3tp5D4tdfFEqjwTERFR8zDC1RrDXKwaxR1xmbQQERHRQ0l1JOjTsa22w+D0EBERETUNTFqIiIioSWDSQkRERE0CkxYiIiJqEpi0EBERUZPApIWIiIiaBCYtRERE1CQwaSEiIqJHupCcgylhJ3EhOUdrMTBpISIiokf6+dxtnLiRiZ/P3dZaDLwjLhEREVUrObsI2YVlkEiAn84lAwD2nL+DCZ52EAJo01oPdm0MGyweJi1ERERUrX4fHqnSllVYitGf/ql6fnP1qAaLh9NDREREVK0FQztXaRP//FdXR4KQQI8GjYcjLURERKSmXKFE6O9/45PD8TX22TWvL1xt5Q0YFZMWIiIiuk9SVhEWhMfgzK1sAED/zuY4GpcBiQQQAqr/agOTFiIiIoIQAj+du433dl9GQUk5jGW6eH+sK7yd2uCZjcdhbWqAwN72CD+dhJScYrQ10m/wGCVCaCtf0qy8vDzI5XLk5ubCxMRE2+EQERE1GTlFpVi68xJ+vZgCAPBub4a1k9xhb1ZxZVBJuQL6Uh1IJBIIIVCqUEKmK9XIsevy/c2RFiIiohbsWHwGXtt+Hql5xdDVkWDBsC6YM7AjpDoSVZ/7ExSJRKKxhKWumLQQERG1QCXlCnx84Bo+O5oAAOhg3hohkz3gZmeq3cAegkkLERFRC3MtNR/zt0Xjamo+AOBfTzlg6ShnGOo37rSgcUdHREREGqNUCmw9fhOr919FabkSbVvrY80ENwxxttR2aLXCpIWIiKgFSMsrxqId53E0LgMA4Nu1HdZMcEc7Y5mWI6s9Ji1ERETN3P5LqVj88wVkF5VBpquDt0c5Y+rTjpBIJI9+cSOilaRFV1cXrq6uAAAvLy98/vnnAICEhATMnDkTaWlpkEqlOHnyJFq3bq2NEImIiJq8wpJyLN9zGdvPVBQ7dLU1QUigBzpZGGs5svrRStJiamqKmJiYKu3PP/88Vq5cif79+yMrKwsyWdMZsiIiImpMziVmY0F4DG5lFkEiAeYM7IgFQ7tAX7fplh1sNNNDly9fhp6eHvr37w8AMDMz03JERERETU+5QomNR+Lx6eF4KJQCtqatsHaSO57u0FbboT22OqdbUVFRCAgIgI2NDSQSCXbt2lWlz+bNm+Hk5AQDAwN4enri6NGjatvz8vLg6emJfv364Y8//gAAxMXFwcjICGPGjEGvXr3wwQcf1O+MiIiIWqhbmYWY+N8TCDkUB4VS4BkPG0TM798sEhagHiMthYWFcHd3xwsvvIBnn322yvbw8HAEBQVh8+bN6Nu3L/773//C398fsbGxcHBwAADcvHkTNjY2uHTpEkaNGoWLFy+irKwMR48eRUxMDCwsLDBixAj07t0bw4YNe/yzJCIiasaEENhxNhnLd19GYakCxga6WDnWFc942Go7NI2qc9Li7+8Pf3//GrevW7cOs2bNwuzZswEAISEhOHDgAEJDQxEcHAwAsLGxAQC4urrCxcUF169fh52dHXr37g17e3sAwMiRIxETE1Nj0lJSUoKSkhLV87y8vLqeChERUZOXXViKxT9fxP7LqQAAbyczrJvkDrs2hlqOTPM0uhqntLQUZ8+ehZ+fn1q7n58fjh8/DgDIzs5WJRvJycmIjY1Fhw4d0Lt3b6SlpSE7OxtKpRJRUVFwdnau8VjBwcGQy+WqR2WyQ0RE1FIcjbuL4SFR2H85FXpSCd4c0Q0/vPh0s0xYAA0vxM3IyIBCoYClpfqd9SwtLZGaWpEBXrlyBS+99BJ0dCqqRW7YsEG16PaDDz7AgAEDIISAn58fRo8eXeOxFi9ejIULF6qe5+XlMXEhIqIWobhMgTX7r+F/xyrqBnVs1xobJveEq61cy5E9WU/k6qEHb1YjhFC1+fj44OLFi9W+7lFTT/eTyWS8JJqIiFqcKyl5CNoWg2tpFXWDpj3tiCUjndFKXzuVlxuSRpMWc3NzSKVS1ahKpfT09CqjL0RERFR7SqXA/44lYM3+ayhVKGFupI+PJrjDt5uFtkNrMBpd06Kvrw9PT09ERkaqtUdGRsLHx0eThyIiImoxUnOLMe1/f2Hlr1dQqlBiqLMF9gcNaFEJC1CPkZaCggLEx8ernickJCAmJgZmZmZwcHDAwoULMW3aNHh5eaFPnz4ICwtDYmIi5syZo9HAiYiIWoKIiylY/PNF5N4rg4GeDt4Z7YLnvB2aXN0gTahz0nLmzBn4+vqqnlcuhp0xYwa2bt2KwMBAZGZmYsWKFUhJSYGrqysiIiLg6OiouaiJiIiauYKScry3+zJ+PFtRN8jNTo71gR7o2M5Iy5Fpj0QIIbQdhCbk5eVBLpcjNzcXJiYm2g6HiIio3s7eysKC8PNIzCqCjgR4eVAnzB/aGXrSpls3qCZ1+f5uNLWHiIiIWroyhRKfHo7HxsNxUArA1rQV1gd6wNuJ9fgAJi1ERESNws2MQgSFxyAmKQcAML6nLd57pjtMDPS0G1gjwqSFiIhIi4QQCD+dhBV7Y1FUqoCJgS5WjeuBAHcbbYfW6DBpISIi0pKswlK89dMFHIxNAwA83cEM6yZ5wMa0lZYja5yYtBAREWnBH9fvYtGO87ibXwI9qQSL/Lrixf4doKPT8i5lri0mLURERA2ouEyB1fuuYuvxmwCAThZG2DDZA91tmnfdIE1g0kJERNRAYu/kISg8GtfTCgAAz/u0x1v+3WCg1/zrBmkCkxYiIqInTKkU+PzPG/j4wPV/6gbJ8NFEN/h2bVm34X9cTFqIiIieoDs59/Da9vM4cSMTADDMxRKrx/dAWyOZliNrepi0EBERPSF7L9zBkp8vIq+4HK30pHg3wAWTe9u3yLpBmsCkhYiISMPyi8uw7JfL+Dn6NgDA3U6OkMk94WTeWsuRNW1MWoiIiDTo9M0sLAiPQXL2PehIgFd8O+E/Q5pn3aCGxqSFiIhIA8oUSmw4FIfNv8dDKQB7s1ZYP8kDXu1ZN0hTmLQQERE9pht3CxAUHoMLybkAgGd72eG9MS4wZt0gjWLSQkREVE9CCPxwKgnv743FvTIF5K308MG4HhjlZq3t0JolJi1ERET1kFlQgjd/uohDVyrqBvXt1BYfT3SHtZx1g54UJi1ERER1dORqOl7/8QIyCkqgL9XBGyO6YmZfJ9YNesKYtBAREdXSvVIFgvddwdcnbgEAulgaISSwJ1xsTLQcWcvApIWIiKgWLt3ORVB4DOLTK+oGvdC3Pd4cwbpBDYlJCxER0UMolAJhUTewLvIayhQCFsYyfDzRHQO6tNN2aC0OkxYiIqIa3M65h4XhMfgrIQsAMLy7JYLHu8Gstb6WI2uZmLQQERFV45eY23h71yXkF5fDUF+KZQEumOTFukHaxKSFiIjoPrn3yrDsl0vYFXMHAOBhb4qQQA+0Z90grWPSQkRE9I+/bmRi4fbzuJ1TUTfoP4M745XBnVg3qJFg0kJERC1eabkS6w9dx5Y//oYQgIOZIdYHesDTsY22Q6P7MGkhIqIWLT69AEHh0bh0Ow8AMNHTDsvGdIeRjF+RjQ1/IkRE1CIJIfDtX4lY9WssisuUMDXUQ/C4HvDvwbpBjRWTFiIianHu5pfgzZ8u4PDVdABAv07m+HiiO6zkBlqOjB6GSQsREbUov11Jwxs/XkBmYSn0dXXw5ohueMGnPesGNQFMWoiIqFm7kJyD4IirWDisC3bF3MZ3fyUCALpZGSNksge6WbFuUFPBpIWIiJq1n8/dxokbmZj19Wnk3SsHAMzq54TXh3dl3aAmRmsXnhcVFcHR0RGLFi0CAFy7dg0eHh6qR6tWrbBr1y5thUdERE1YcnYRLibn4nxSDrafSQIA5N0rh1lrPbz/jCte6NueCUsTpLWRllWrVuGpp55SPe/atStiYmIAAAUFBWjfvj2GDRumpeiIiKgp6/fhkWrbswrL8M4vl4BfgJurRzVwVPS4tDLSEhcXh6tXr2LkyJHVbt+9ezeGDBmC1q15y2QiIqobIQSmPuVQ43YdCRAS6NFwAZHG1DlpiYqKQkBAAGxsbCCRSKqdwtm8eTOcnJxgYGAAT09PHD16VG37okWLEBwcXOMxtm/fjsDAwLqGRkRELVxuURle3RaDb/9ZbFsdpQAM9Hhb/qaozj+1wsJCuLu7Y+PGjdVuDw8PR1BQEJYuXYro6Gj0798f/v7+SEys+AD98ssv6NKlC7p06VLt6/Py8nDs2LEaR2GIiIiqc+LvTPhviMKe83ce2Xf5nlgolKIBoiJNqvOaFn9/f/j7+9e4fd26dZg1axZmz54NAAgJCcGBAwcQGhqK4OBgnDx5Etu2bcOOHTtQUFCAsrIymJiY4N133wVQkdQMHz4cBgYPv8FPSUkJSkpKVM/z8vLqeipERNQMlJQrsO7gdYQdvQEhACsTA6TmFT/0NSm5xTiVkIU+Hds2UJSkCRodHystLcXZs2fh5+en1u7n54fjx48DAIKDg5GUlISbN2/i448/xosvvqhKWIDaTw0FBwdDLperHvb29po8FSIiagLi0vIxbtNx/DeqImGZ3NseC4d1rtVr0/MfnthQ46PRpCUjIwMKhQKWlpZq7ZaWlkhNTX3k63Nzc3Hq1CkMHz78kX0XL16M3Nxc1SMpKanecRMRUdMihMBXx29i9Kd/IjYlD20M9fDfaZ5Y/awb7M1qdxGHhTFv2d/UPJFLniUS9VshCyGqtAHA888/r/ZcLpcjLS2tVseQyWSQyWT1jpGIiJqm9PxivL7jAv64fhcAMKBLO3w8wQ0WJhVJiLeTGazlBkjNLUZ1q1YkAKzkBvB2Mmu4oEkjNDrSYm5uDqlUWmVUJT09vcroCxERUV0dvJyKESFH8cf1u9DX1cGyABdsfb63KmEBAKmOBMsCXABUJCj3q3y+LMAFUtYaanI0mrTo6+vD09MTkZGRau2RkZHw8fHR5KGIiKgFKSotx+KfL+Df35xFVmEpulkZY+9/+uGFvk7VFjoc4WqN0Km9qlRttpIbIHRqL4xwtW6o0EmD6jw9VFBQgPj4eNXzhIQExMTEwMzMDA4ODli4cCGmTZsGLy8v9OnTB2FhYUhMTMScOXM0GjgREbUMMUk5WBAeg4SMQgDAvwd0wGt+XSDTffht+Ee4WmOYixVOJWQhPb8YFsYVU0IcYWm66py0nDlzBr6+vqrnCxcuBADMmDEDW7duRWBgIDIzM7FixQqkpKTA1dUVERERcHR01FzURETU7JUrlAj9/W+E/BYHhVLAysQA6ya5w6eTea33IdWR8LLmZkQihGgWd9fJy8uDXC5Hbm4uTExYZpyIqClLyirCgvAYnLmVDQAY5WaNVWNdYWqor+XISNPq8v2ttYKJREREDxJC4Odzt7Fs92UUlJTDSKaL5WO6Y3wv22qvQqWWhUkLERE1CjlFpVi66xJ+vZACAPBybIP1gR6wNzPUcmTUWDBpISIirTsen4GF288jNa8YujoSBA3tjDkDO0JXysKG9P+YtBARkdaUlCvw8YFr+OxoAgDAybw1QgI94G5vqt3AqFFi0kJERFpxPS0fr/4Qjaup+QCAKd4OeGe0Mwz1+dVE1eMng4iIGpRSKfDViZsI3ncVpeVKmLXWx4fPumGYC++cTg/HpIWIiBpMel4xFv14AVH/1A0a1LUd1kxwY/FCqhUmLURE1CD2X0rF4p8vILuoDDJdHSwd5YxpTzvyUmaqNSYtRET0RBWWlGPFnliEn0kCALhYm2DDZA90tjTWcmTU1DBpISKiJyY6MRtB4TG4lVkEieSfukHDukJfl5cyU90xaSEiIo0rVyix6cjf+ORwRd0gG7kB1k7yYB0geixMWoiISKNuZRZiQXgMziXmAAAC3G2w8hlXyA31tBsYNXlMWoiISCOEENhxNhnLd19GYakCxjJdvD/WFWN72mo7NGommLQQEdFjyy4sxZKdF7HvUioAwLu9GdYFusOuDesGkeYwaSEiosdyNO4uFu04j7S8EujqSLDQrwteGtARUh1eykyaxaSFiIjqpbhMgTX7r+F/xyrqBnVo1xobAnuih51cy5FRc8WkhYiI6uxqah6CtsWo6gZNfdoBS0e6oJW+VMuRUXPGpIWIiGpNqRT437EErNl/DaUKJdq21seaCW4Y4sy6QfTkMWkhIqJaSc0txqId5/FnfAYAYHA3C3z4rBvaGcu0HBm1FExaiIjokfZdTMHinReRU1QGAz0dvD3KBf96yoF1g6hBMWkhIqIaFZSU473dl/Hj2WQAgKutCUICe6KThZGWI6OWiEkLERFV6+ytLCwIP4/ErIq6QXMHdkTQ0C6sG0Raw6SFiIjUlCmU+PRwPDYejoNSALamrbA+0APeTmbaDo1aOCYtRESkcjOjEEHhMYhJygEAjPWwwYqxrjAxYN0g0j4mLUREBCEEwk8nYcXeWBSVKmBsoIuVY13xjAfrBlHjwaSFiKiFyyosxVs/XcDB2DQAwFNOZlgX6AFb01ZajoxIHZMWIqIW7I/rFXWD7uaXQE8qwWt+XfFi/w6sG0SNEpMWIqIWqLhMgdX7rmLr8ZsAgI7tWmPD5J5wtWXdIGq8mLQQEbUwsXfyEBQejetpBQCA6X0csdjfmXWDqNFj0kJE1EIolQJf/JmAjw5U1A0yN5Lhowlu8O1moe3QiGqFSQsRUQuQknsPr20/j+N/ZwIAhjpbYPWzbjA3Yt0gajqYtBARNXO/XkjBkp0XkXuvDK30pHhntAumeNuzbhA1OQ1+L+b8/Hz07t0bHh4e6NGjBz777DPVtvXr16N79+5wcXHBq6++CiFEQ4dHRNRs5BeXYeH2GMz7/hxy75XBzU6OX1/th+dY6JCaqAYfaTE0NMQff/wBQ0NDFBUVwdXVFePHj4dSqcTGjRtx+fJl6OnpYcCAATh58iT69OnT0CESETV5Z25mISg8BsnZ96AjAV4e1Anzh3aGnpR1g6jpavCkRSqVwtDQEABQXFwMhUKhGlEpLy9HcXExAKCsrAwWFlwcRkRUF2UKJT75LQ6bjsRDKQC7NhV1g3q3Z90gavrqnHJHRUUhICAANjY2kEgk2LVrV5U+mzdvhpOTEwwMDODp6YmjR4+qbc/JyYG7uzvs7OzwxhtvwNzcHO3atcOiRYvg4OAAGxsbDB06FB07dqz3iRERtTQ37hZgQuhxfHq4ImEZ38sWEfP7M2GhZqPOSUthYSHc3d2xcePGareHh4cjKCgIS5cuRXR0NPr37w9/f38kJiaq+piamuL8+fNISEjA999/j7S0NGRnZ2Pv3r24efMmbt++jePHjyMqKqr+Z0ZE1EIIIfD9X4kY9cmfOJ+cCxMDXWx8rifWTfJgoUNqVuo8PeTv7w9/f/8at69btw6zZs3C7NmzAQAhISE4cOAAQkNDERwcrNbX0tISbm5uquSkU6dOMDOr+BfBqFGjcPLkSQwYMKDa45SUlKCkpET1PC8vr66nQkTU5GUWlODNny7i0JWKukE+Hdti7SR3WMtZN4iaH42uyCotLcXZs2fh5+en1u7n54fjx48DANLS0lQJRl5eHqKiotC1a1fY29vj+PHjqnUuv//+O7p27VrjsYKDgyGXy1UPe3t7TZ4KEVGjd+RaOoaHHMWhK2nQl+pg6UhnfDvrKSYs1GxpdCFuRkYGFAoFLC0t1dotLS2RmpoKAEhOTsasWbMghIAQAq+88grc3NwAACNHjkTPnj2ho6ODIUOGYMyYMTUea/HixVi4cKHqeV5eHhMXImoRissUCI64gq9O3AIAdLYwwobJPeFiY6LlyIierCdy9dCD1/8LIVRtnp6eiImJqfZ1q1atwqpVq2p1DJlMBpmMd3Ikopbl0u1cBIXHID69om7Q8z7t8ZZ/NxjosW4QNX8aTVrMzc0hlUpVoyqV0tPTq4y+EBFR7SmUAp8dvYG1B6+hTCHQzliGjye6Y2CXdtoOjajBaHRNi76+Pjw9PREZGanWHhkZCR8fH00eioioxbidcw//+vwkVu+7ijKFgJ+LJQ4EDWDCQi1OnUdaCgoKEB8fr3qekJCAmJgYmJmZwcHBAQsXLsS0adPg5eWFPn36ICwsDImJiZgzZ45GAyciagl2n7+DpTsvIr+4HIb6UiwLcMEkL9YNopapzknLmTNn4Ovrq3peuRh2xowZ2Lp1KwIDA5GZmYkVK1YgJSUFrq6uiIiIgKOjo+aiJiJq5vKKy/DurkvYFXMHAOBub4qQQA84mbfWcmRE2iMRzaQqYV5eHuRyOXJzc2FiwhX0RNR0/XUjEwu3n8ftnIq6Qa8M7oz/DO7EukHULNXl+7vBaw8REVH1SsuVCDl0HaF//A0hAAczQ6wP9ICnYxtth0bUKDBpISJqBOLTC7AgPAYXb+cCACZ62mHZmO4wkvHPNFEl/jYQEWmREALf/ZWIlb/GorhMCXkrPQSP74GRPay1HRpRo8OkhYhISzIKSvDmjxfw29V0AEC/Tub4eKI7rOQGWo6MqHFi0kJEpAW/XUnDmz9dQEZBKfSlOnhjRFfM7OsEHR1eykxUEyYtREQN6F6pAqsiYvHtyUQAQFdLY2yY4oFuVrzqkehRmLQQET1BF5JzEBxxFYtHdoMEEswPj8aNu4UAgJl9nfDGiK6sG0RUS0xaiIieoJ/P3caJG5l4b/dlXEjORblSwMJYhrWT3NG/M2/DT1QXTFqIiDQsObsI2YVlkEiAX2JuAwDOJeYAAPp0aIu3Rzmju61cixESNU28Iy4RkYa1f+vXR/a5uXpUA0RC1PjV5fub94QmItKwD8b1QE3XAOnqSBAS6NGQ4RA1G5weIiLSoJM3MrHxcBxqGsLeNa8vXDk1RFQvTFqIiDSgtFyJdZHX8d+oirpBVnIDpOYWQyIBhIDqv0RUf5weIiJ6TPHp+Ri3+Ri2/FPoMNDLHt/OegrtjGToYSvHqnGu6GErRzsjGdoa6Ws7XKImiwtxiYjqSQiBb07ewqpfr6CkXAlTQz2sHt8DI1wr6gaVlCugL9WBRCKBEAKlCiVkurwnC9H96vL9zekhIqJ6uJtfgjd+PI8j1+4CAPp3rqgbZGny/3WD7k9QJBIJExaix8SkhYiojg7FVtQNyiwshb6uDhb7d8OMPu1ZN4joCWPSQkRUS0Wl5Vj56xV8/1dF3aBuVsbYMLknuloZazkyopaBSQsRUS1cSM5B0LYY3MioqBv0Yn8nLBrelVM+RA2ISQsR0UMolAKhv8cj5FAcypUCViYGWDvJHX07mWs7NKIWh0kLEVENkrKKsCA8BmduZQMARvWwxqpxrjA15GXLRNrApIWI6AFCCOyMvo13f7mMgpJyGMl0sXxMd4zvZQuJhIttibSFSQsR0X1yi8qwZNdF/HohBQDg6dgGIYEesDczrPO+FEqBUwlZSM8vhoWxAbydzCDlFUZE9cakhYjoH8fjM/DajvNIyS2GVEeCoCGdMXdQR+hK637z8P2XUrB8TyxScotVbdZyAywLcFHdfI6I6oZJCxG1eCXlCqw9eB2fHb0BIQAn89ZYH+gBD3vTeu1v/6UUzP32XJWiiam5xZj77TmETu3FxIWoHpi0EFGLdj0tH/O3xeBKSh4AYIq3Pd4e5YLWsvr9eVQoBZbvia22yrMAIAGwfE8shrlYcaqIqI6YtBBRiySEwFfHbyJ431WUlCth1lofq8f3gF93q8fa76mELLUpoSrHBZCSW4xTCVno07HtYx2LqKVh0kJELU56XjEW/XgBUdcr6gYN7NIOH010g4WxwSNeWYt959ecsNSnHxH9PyYtRNSiHLicird+uoDsojLIdHWwZKQzpvdx1NilzLVNfDSRIBG1NExaiKhFKCwpx/t7Y7HtdBIAwNnaBBsme6CLpWbrBnk7mcFaboDU3OJq17VIAFjJKy5/JqK6qft1fERETUx0YjZGfXIU204nQSIBXhrQAbvm+Wg8YQEAqY4EywJcAFQkKPerfL4swIWLcInqgUkLETVb5QolPvktDhO2nMDNzCJYyw3w3eynsHik8xMtdDjC1RqhU3vBSq4+BWQlN+DlzkSPocGnh5KSkjBt2jSkp6dDV1cX77zzDiZOnAgA+Pjjj/Hll19CIpHgrbfewtSpUxs6PCJqJhIzi7BgewzO/lM3aLSbNVaN7QG5oV6DHH+EqzWGuVjxjrhEGiQRQlQ37frEpKSkIC0tDR4eHkhPT0evXr1w7do13LhxAzNmzMDx48cBAEOGDMGvv/4KU1PTWu03Ly8Pcrkcubm5MDExeYJnQESNmRACP527jfd2V9QNMpbpYsXY7hjrwbpBRI1RXb6/G3ykxdraGtbWFUOjFhYWMDMzQ1ZWFq5cuQIfHx8YGFQMp3p4eGD//v2YPHlyQ4dIRE1UTlEpluy8iIiLqQCA3u3bYN2k+tUNIqLGp85rWqKiohAQEAAbGxtIJBLs2rWrSp/NmzfDyckJBgYG8PT0xNGjR6vd15kzZ6BUKmFvbw9XV1ccOXIEOTk5yMnJweHDh3H79u06nxARtUx/xmVgeEgUIi6mQldHgteHd8W2f/dhwkLUjNQ5aSksLIS7uzs2btxY7fbw8HAEBQVh6dKliI6ORv/+/eHv74/ExES1fpmZmZg+fTrCwsIAAC4uLnj11VcxePBgjBs3Dr1794auLq/IJqKHKy5TYOXeWEz94i+k5ZWgg3lr/PyyD+b5duL6EaJm5rHWtEgkEuzcuRNjx45VtT311FPo1asXQkNDVW3Ozs4YO3YsgoODAQAlJSUYNmwYXnzxRUybNq3afc+ePRvjxo3DqFGjqt1eUlKCkpIS1fO8vDzY29tzTQtRC3ItNR/zt0Xjamo+AOBfTzlg6ShnGOrzHzxETUVd1rRo9JLn0tJSnD17Fn5+fmrtfn5+qgW2Qgg8//zzGDx4cJWEJT09HQBw7do1nDp1CsOHD6/xWMHBwZDL5aqHvb29Jk+FiBoxpVLgf38mIGDjn7iamo+2rfXx+XQvrBrXgwkLUTOm0d/ujIwMKBQKWFpaqrVbWloiNbViYdyxY8cQHh4ONzc31XqYb775Bj169MDYsWORk5OD1q1b48svv3zo9NDixYuxcOFC1fPKkRYiat7S8oqxaMd5HI3LAAD4dm2HNRPc0c5YpuXIiOhJeyL/JHnwskIhhKqtX79+UCqV1b6ucjSmNmQyGWQy/pEiakn2X0rBWz9fRM4/dYPeHuWMqU9rrm4QETVuGk1azM3NIZVKVaMqldLT06uMvhAR1VZBSTlW7LmM7WeSAQCutiYICfRAJwvN34afiBovja5p0dfXh6enJyIjI9XaIyMj4ePjo8lDEVELce6fukHbzyRDIgHmDuqIn+f2ZcJC1ALVeaSloKAA8fHxqucJCQmIiYmBmZkZHBwcsHDhQkybNg1eXl7o06cPwsLCkJiYiDlz5mg0cCJq3soVSnx6OB4bj8RDoRSwNW2FtZPc8XSHttoOjYi0pM5Jy5kzZ+Dr66t6XrkYdsaMGdi6dSsCAwORmZmJFStWICUlBa6uroiIiICjo6PmoiaiZu1mRiGCwmMQk5QDAHjGwwYrnnGFvFXD1A0iosapwWsPPSmsPUTU9AkhsONMMt7bcxlFpQoYG+hi5VhXPONhq+3QiOgJadS1h4iIqpNdWIrFP1/E/ssVC/m9ncywbpI77NrwNvxEVIFJCxFpXdT1u1i04zzS80ugJ5Vg4bCu+PeADrwNPxGpYdJCRFpTXKbAh/uv4stjNwEAHdq1xieTe8LVVq7dwIioUWLSQkRacSUlD/O3ReN6WgEAYNrTjlgy0hmt9KVajoyIGismLUTUoJRKgf8dS8Ca/ddQqlDC3Egfaya4YXA33oCSiB6OSQsRNZjU3GK8tiMGx+IzAQBDulngwwluMDdiSQ4iejQmLUTUICIupmDxzxeRe68MBno6eGe0C57zdmDdICKqNSYtRPRE5ReXYfmeWPx4tqJuUA9bOUIme6BjOyMtR0ZETQ2TFiJ6Ys7eykJQeAySsu5BIgFeHtQR84d0gb6uRsueEVELwaSFiDSuTKHEp7/FYeOReCgFYGvaCusDPeDtZKbt0IioCWPSQkQalfBP3aDz/9QNGtfTFsuf6Q4TA9YNIqLHw6SFiDRCCIHw00lYsTcWRaUKmBjoYuW4HhjjbqPt0IiomWDSQkSPLauwFG/9dAEHY9MAAE93MMO6SR6wMW2l5ciIqDlh0kJEj+X3a+l4/ccLuPtP3aBFfl3xYv8O0GHdICLSMCYtRFQvxWUKrN53FVuP3wQAdLIwwobJHuhuw7pBRPRkMGkhojq7fCcXQdtiEJdeUTfoeZ/2eMu/Gwz0WDeIiJ4cJi1EVGtKpcDnf97ARweuoUwhYG4kw0cT3eDb1ULboRFRC8CkhYhq5U7OPby2/TxO3KioGzTMxRKrx/dAW9YNIqIGwqSFiB5pz/k7WLrzIvKKy9FKT4p3A1wwubc96wYRUYNi0kJENcorLsN7v1zGz9G3AQDudnKETO4JJ/PWWo6MiFoiJi1EVK3TN7MQtC0Gt3PuQUcCvOLbCf8Z0hl6UtYNIiLtYNJCRGrKFEqEHLqO0N//hlIA9matsH6SB7zas24QEWkXkxYiUvn7bgEWhMfgQnIuAODZXnZ4b4wLjFk3iIgaASYtRAQhBL4/lYiVe6/gXpkC8lZ6+GBcD4xys9Z2aEREKkxaiFq4jIISvPXTBRy6kg4A8OnYFmsnucNazrpBRNS4MGkhasGOXE3H6z+eR0ZBKfSlOnh9eFfM6ufEukFE1CgxaSFqge6VKvBBxBV8c/IWAKCLpRFCAnvCxcZEy5EREdWMSQtRC3Ppdi6CwmMQ/0/doBf6tsebI1g3iIgaPyYtRC2EQikQFnUD6yIr6ga1M5bh44nuGNilnbZDIyKqFSYtRC3A7Zx7WBgeg78SsgAAw7tbIni8G8xa62s5MiKi2mPSQtTM/RJzG2/vuoT84nIY6kuxLMAFk7xYN4iImp4Gvx93UlISBg0aBBcXF7i5uWHHjh2qbXv37kXXrl3RuXNnfP755w0dGlGzknuvDEHbojF/Wwzyi8vhYW+KiFf7I7C3AxMWImqSJEII0ZAHTElJQVpaGjw8PJCeno5evXrh2rVrkMlkcHFxwZEjR2BiYoJevXrhr7/+gplZ7W4dnpeXB7lcjtzcXJiY8AoIatn+upGJhdvPq+oG/WdwZ7wyuBPrBhFRo1OX7+8Gnx6ytraGtXXFXTYtLCxgZmaGrKwsJCUloXv37rC1tQUAjBw5EgcOHMCUKVMaOkSiJqu0XIn1h65jyx9/QwjAwcwQ6wM94OnYRtuhERE9tjr/sysqKgoBAQGwsbGBRCLBrl27qvTZvHkznJycYGBgAE9PTxw9erTafZ05cwZKpRL29va4c+eOKmEBADs7O9y+fbuu4RG1WPHpBRgfegyhv1ckLBM97RAxvz8TFiJqNuqctBQWFsLd3R0bN26sdnt4eDiCgoKwdOlSREdHo3///vD390diYqJav8zMTEyfPh1hYWEAKmqfPIjz7kSPJoTANydvYfSnR3Hpdh5MDfUQ+q9e+GiiO4xkXGtPRM1Hnf+i+fv7w9/fv8bt69atw6xZszB79mwAQEhICA4cOIDQ0FAEBwcDAEpKSjBu3DgsXrwYPj4+AABbW1u1kZXk5GQ89dRTNR6npKQEJSUlqud5eXl1PRWiJu9ufgne/OkCDl+tqBvUr5M5Pp7oDiu5gZYjIyLSPI2uyistLcXZs2fh5+en1u7n54fjx48DqPhX4fPPP4/Bgwdj2rRpqj7e3t64dOkSbt++jfz8fERERGD48OE1His4OBhyuVz1sLe31+SpEDV6v11Jw4iQKBy+mg59XR28M9oFX8/0ZsJCRM2WRseOMzIyoFAoYGlpqdZuaWmJ1NRUAMCxY8cQHh4ONzc31XqYb775Bj169MDatWvh6+sLpVKJN954A23btq3xWIsXL8bChQtVz/Py8pi4UItwr1SBlb/G4ru/KqZcu1kZI2SyB7pZ8ao5ImrensiE94NrUYQQqrZ+/fpBqVRW+7oxY8ZgzJgxtTqGTCaDTCZ7vECJmpiLybmYHx6NG3cLAQCz+jnh9eFdWTeIiFoEjSYt5ubmkEqlqlGVSunp6VVGX4io9hRKgS1//I31kddRrhSwNJFh7UQP9Otsru3QiIgajEbXtOjr68PT0xORkZFq7ZGRkaoFt0RUN0lZRZgSdhIfHbiGcqWAv6sV9s8fwISFiFqcOo+0FBQUID4+XvU8ISEBMTExMDMzg4ODAxYuXIhp06bBy8sLffr0QVhYGBITEzFnzhyNBk7U3AkhsCvmNt7ddRn5JeVorS/Fe2O6Y4KnHW8HQEQtUp2TljNnzsDX11f1vHIx7IwZM7B161YEBgYiMzMTK1asQEpKClxdXREREQFHR0fNRU3UzOUWleHtXy5hz/k7AIBeDqZYH+gBx7attRwZEZH2NHjtoSeFtYeoKbuQnIPgiKtYPLIbCksUeG17DO7kFkOqI8Grgztjnm9H6LJuEBE1Q4269hARVfXzuds4cSMTS36+iMspeRACcGxbUTeolwNvw09EBDBpIdKa5OwiZBeWQSIBdkVX3A360p2KOzsPc7bEGyO6orOlsTZDJCJqVJi0EGlJvw+P1Lgt8koaIq+k4ebqUQ0YERFR48ZJciItWfFMd9R0DZCujgQhgR4NGQ4RUaPHkRYiLYiMTUPIoTjUtAp+17y+cLWVN2hMRESNHZMWogZUVFqO9/dewQ+nKuoGtW9riJuZRZBIACGg+i8REVXF6SGiBnI+KQejPvlTlbD8e0AHfDXTG+2MZOhhK8eqca7oYStHOyMZ2hrpazlaIqLGh/dpIXrCFEqB0N/jEXIoDuVKASsTA6yb5A6fThW34S8pV0BfqgOJRAIhBEoVSsh0WQCRiFoG3qeFqJFIyirCgvAYnLmVDQAY5WaNVWNdYWr4/yMp9ycoEomECQsRUQ2YtBA9AUII/HzuNpbtvoyCknIYyXSxfEx3jO9ly7pBRET1xKSFSMNyikqxdNcl/HohBQDg5dgG6wM9YG9mqOXIiIiaNiYtRBp0PD4DC7efR2peMXR1JAga2hlzBj68bpBCKXAqIQvp+cWwMDaAt5MZpDocjSEiehCTFiINKClX4OMD1/DZ0QQAgJN5a4QEesDd3vShr9t/KQXL98QiJbdY1WYtN8CyABeMcLV+kiETETU5vOSZ6DFdT8vHMxuPqRKWKd4O+PXVfrVKWOZ+e04tYQGA1NxizP32HPZfSnlSIRMRNUkcaSGqJ6VS4KsTNxG87ypKy5Uwa62PD591wzAXy0e+VqEUWL4ntto74goAEgDL98RimIsVp4qIiP7BpIWoHtLzirHoxwuIun4XADCoazusmeAGC2ODWr3+VEJWlRGW+wkAKbnFOJWQhT4d22oiZCKiJo9JC1Ed7b+UisU/X0B2URlkujpYOsoZ0552rNOlzOn5NScs9elHRNQSMGkhqqXCknKs2BOL8DNJAAAXaxNsmOyBzpbGdd5XbUdkatuPiKglYNJCVAvRidkICo/BrX+KG/57QAe8Nqwr9HXrt5bd28kM1nIDpOYWV7uuRQLASl5x+TMREVXg1UNED1GuUGLDoThM2HICtzKLYCM3wPezn8Zif+d6JywAINWRYFmAC4CKBOV+lc+XBbhwES4R0X2YtBDV4FZmISb99wTWH7oOhVIgwN0G++YP0NjC2BGu1gid2gtWcvUpICu5AUKn9uJ9WoiIHsDpIaIHCCGw42wylu++jMJSBYxlunh/rCvG9rTV+LFGuFpjmIsV74hLRFQLTFqI7pNdWIolOy9i36VUAIB3ezOsC3SHXZsnVzdIqiPhZc1ERLXApIXoH0fj7mLRjvNIyyuBro4EC/264KUBHTnqQUTUSDBpoRavuEyBNfuv4X/HKm7D36Fda2wI7IkednItR0ZERPdj0kIt2tXUPARti8HV1HwAwNSnHbB0pAta6Uu1HBkRET2ISQu1SEqlwP+OJWDN/msoVSjRtrU+1kxwwxDnR9cNIiIi7WDSQi1Oam4xFu04jz/jMwAAg7tZ4MNn3dDOWKblyIiI6GGYtFCLsu9iChbvvIicojIY6Ong7VEu+NdTDnWqG0RERNrBpIVahIKScry3+zJ+PJsMAHC1NUFIYE90sjDScmRERFRbTFqo2Tt7KwsLws8jMauibtDcgR0RNLTLY92Gn4iIGh6TFmq2yhRKfHo4HhsPx0EpAFvTVlgf6MEihERETZRW/qk5btw4tGnTBhMmTKhVO1Fd3cwoxMQtJ/DJbxUJy1gPG+wL6s+EhYioCdNK0vLqq6/i66+/rnU7UW0JIbDtVCJGfnIUMUk5MDbQxYbJHgiZ3BMmBnraDo+IiB6DVpIWX19fGBsb17qdqDayCkvx0jdn8dbPF1FUqsBTTmbYHzQAz3hovtAhERE1vDonLVFRUQgICICNjQ0kEgl27dpVpc/mzZvh5OQEAwMDeHp64ujRo5qIlahGf1y/i+EhUTgYmwY9qQRv+XfD9y8+DVvTVtoOjYiINKTOSUthYSHc3d2xcePGareHh4cjKCgIS5cuRXR0NPr37w9/f38kJiY+drBEDyouU+C93Zcx43+ncDe/BB3btcbOl/tizkAWOiQiam7qfPWQv78//P39a9y+bt06zJo1C7NnzwYAhISE4MCBAwgNDUVwcHD9I31ASUkJSkpKVM/z8vI0tm9qGmLv5CEoPBrX0woAANP7OGKxvzPrBhERNVMaXdNSWlqKs2fPws/PT63dz88Px48f1+ShEBwcDLlcrnrY29trdP/UeCmVAmFRf2PspmO4nlYAcyMZvny+N1Y848qEhYioGdPofVoyMjKgUChgaaledM7S0hKpqamq58OHD8e5c+dQWFgIOzs77Ny5E717966xvTqLFy/GwoULVc/z8vKYuLQAKbn38Nr28zj+dyYAYKizBVY/6wZzI9YNIiJq7p7IzeUerOMihFBrO3DgQLWvq6m9OjKZDDIZv6hakl8vpGDJzovIvVeGVnpSvDPaBVO87Vk3iIiohdBo0mJubg6pVKo2qgIA6enpVUZfiGorv7gMy3Zfxs/nbgMA3OzkCAn0QId2rBtERNSSaHRNi76+Pjw9PREZGanWHhkZCR8fH00eilqIMzez4L/hKH4+dxs6EuAV3074aa4PExYiohaoziMtBQUFiI+PVz1PSEhATEwMzMzM4ODggIULF2LatGnw8vJCnz59EBYWhsTERMyZM0ejgVPzVqZQ4pPf4rDpSDyUArBrU1E3qHd73oafiKilqnPScubMGfj6+qqeVy6GnTFjBrZu3YrAwEBkZmZixYoVSElJgaurKyIiIuDo6Ki5qKlZu3G3AAvCY3A+ORcAML6XLd4b05234SciauEkQgih7SA0IS8vD3K5HLm5uTAxMdF2OFQPQgj8cCoJ7++Nxb0yBUwMdPHB+B4Y7Waj7dCIiOgJqcv39xO5eoiorjILSvDmTxdx6EoaAMCnY1usneQOazlvw09ERBWYtJDWHbmWjtd3XEBGQQn0pTp4fXhXzOrnBB3ehp+IiO7DpIW0prhMgeCIK/jqxC0AQGcLI2yY3BMuNpzeIyKiqpi0kFZcup2LoPAYxKdX1A163qc93vLvBgM93oafiIiqx6SFGpRCKfDZ0RtYe/AayhQC7Yxl+HiiOwZ2aaft0IiIqJFj0kIN5nbOPby2PQYnb2QBAPxcLLH6WTeYtdbXcmRERNQUMGmhBrH7/B0s3XkR+cXlMNSXYlmACyZ5sW4QERHVHpMWeqLyisvw7q5L2BVzBwDgbm+KkEAPOJm31nJkRETU1DBpoSfmrxuZWLj9PG7n3KuoGzS4M/4zuBP0pBoteUVERC0EkxbSuNJyJUIOXUfoH39DCMDBzBDrAz3g6dhG26EREVETxqSFNCo+vaJu0MXbFXWDJnraYdmY7jCS8aNGRESPh98kpBFCCHz3VyJW/hqL4jIl5K30EDy+B0b2sNZ2aERE1EwwaaHHllFQgjd/vIDfrqYDAPp1MsfHE91hJTfQcmRERNScMGmhx/LblTS8+dMFZBSUQl+qgzdGdMXMvqwbREREmsekherlXqkCqyJi8e3JRABAV0tjbJjigW5WrBtERERPBpMWqrOLybmYHx6NG3cLAQCz+jnh9eFdWTeIiIieKCYtVGsKpcCWP/7G+sjrKFcKWJpU1A3q35l1g4iI6Mlj0kK1kpxdhIXh53HqZkXdIH9XK3wwrgfasG4QERE1ECYt9Ei7om/jnV2XkF9Sjtb6Urw3pjsmeNqxbhARETUoJi1Uo9x7ZXhn1yXsPl9RN6iXgynWB3rAsS3rBhERUcNj0kLVOvF3Jl7bHoM7ucWQ6kjw6uDOmOfbEbqsG0RERFrCpIXUlJYrsTbyGsKibkAIwLFtRd2gXg6sG0RERNrFpIVU4tPz8eoPMYhNyQMABHrZ490AF7Rm3SAiImoE+G1EEELgm5O3sOrXKygpV6KNoR6Cx7thhKuVtkMjIiJSYdLSwqXnF+ONHy/g92t3AQD9O1fUDbI0Yd0gIiJqXJi0tGCRsRV1g7IKS6Gvq4PF/t0wo0971g0iIqJGiUlLC1RUWo73917BD6cq6gZ1szLGhsk90dXKWMuRERER1YxJSwtzPikHQeExSMioqBv0Yn8nLBreFTJd1g0iIqLGjUlLC6FQCoT+Ho+QQ3EoVwpYmRhg7SR39O1kru3QiIiIaoVJSwuQlFWEBeExOHMrGwAwqoc1Vo1zhakh6wYREVHTwaSlGRNC4Odzt7Fs92UUlJTDSKaL5WO6Y3wvW9YNIiKiJodJSzOVW1SGJbsu4tcLKQAAT8c2CAn0gL2ZoZYjIyIiqp9GU0gmKSkJgwYNgouLC9zc3LBjxw5th9RkHY/PwIgNUfj1QgqkOhK8NqwLwv/9NBMWIiJq0hrNSIuuri5CQkLg4eGB9PR09OrVCyNHjkTr1qwoXFsl5QqsPXgdnx2tqBvkZN4a6wM94GFvqu3QiIiIHlujSVqsra1hbW0NALCwsICZmRmysrKYtNTS9bR8zN8Wgyv/1A2a4m2Pt0exbhARETUfGpseioqKQkBAAGxsbCCRSLBr164qfTZv3gwnJycYGBjA09MTR48erXZfZ86cgVKphL29vabCa7aEENh6LAEBn/6JKyl5MGutj7Bpngge78aEhYiImhWNJS2FhYVwd3fHxo0bq90eHh6OoKAgLF26FNHR0ejfvz/8/f2RmJio1i8zMxPTp09HWFiYpkJrttLzijHjy9N4b08sSsqVGNilHfYH9YdfdxY6JCKi5kcihBAa36lEgp07d2Ls2LGqtqeeegq9evVCaGioqs3Z2Rljx45FcHAwAKCkpATDhg3Diy++iGnTpj30GCUlJSgpKVE9z8vLg729PXJzc2FiYqLZE2qEDlxOxVs/XUB2URlkujpYMtIZ0/s48lJmIiJqUvLy8iCXy2v1/d0gVw+Vlpbi7Nmz8PPzU2v38/PD8ePHAVRMczz//PMYPHjwIxMWAAgODoZcLlc9WspUUmFJOd766QJe+uYssovK4GJtgr3/6YcZPu2ZsBARUbPWIElLRkYGFAoFLC0t1dotLS2RmpoKADh27BjCw8Oxa9cueHh4wMPDAxcvXqxxn4sXL0Zubq7qkZSU9ETPoTGITszGqE+OYtvpJEgkwEsDO2DnPB90tmShQyIiav4adKXmgyMBQghVW79+/aBUKmu9L5lMBplMptH4GqtyhRKbjvyNTw7HQaEUsJZX1A3y6ci6QURE1HI0SNJibm4OqVSqGlWplJ6eXmX0hdQlZhYhKDwa5xJzAAAB7jZY+Ywr5IZ62g2MiIiogTXI9JC+vj48PT0RGRmp1h4ZGQkfH5+GCKHJEUJgx5kk+G+IwrnEHBjLdBES6IFPJnswYSEiohZJYyMtBQUFiI+PVz1PSEhATEwMzMzM4ODggIULF2LatGnw8vJCnz59EBYWhsTERMyZM0dTITQb2YWlWLrrIiIuVoxMebc3w9pJ7rwNPxERtWgaS1rOnDkDX19f1fOFCxcCAGbMmIGtW7ciMDAQmZmZWLFiBVJSUuDq6oqIiAg4OjpqKoQnQqEUOJWQhfT8YlgYG8DbyQxSnSd3lc6fcRl4bUcM0vJKoKsjwYJhXTBnYMcnekwiIqKm4Incp0Ub6nKdd23tv5SC5XtikZJbrGqzlhtgWYALRrhaa+QYlYrLFPjowDV88WcCAKCDeWuETPaAm52pRo9DRETUmDS6+7Q0RfsvpWDut+fUEhYASM0txtxvz2H/pRSNHetqah7GbjqmSlj+9ZQD9r7ajwkLERHRfVicphoKpcDyPbGobghKAJAAWL4nFsNcrB5r2kapFPjy+E18uP8qSsuVaNtaH2smuGGIM6+oIiIiehCTlmqcSsiqMsJyPwEgJbcYpxKy0Kdj23odIy2vGIt2nMfRuAwAwOBuFvjwWTe0M24Z954hIiKqKyYt1UjPrzlhqU+/B+27mILFOy8ip6gMBno6WDrKBVOfcuBt+ImIiB6CSUs1LIwNNNqvUkFJOZbvvowdZ5MBAK62JggJ7IlOFkZ1jpGIiKilYdJSDW8nM1jLDZCaW1ztuhYJACt5xeXPtXX2VjYWhMcgMasIEgkwd2BHBA3tAn1droUmIiKqDX5jVkOqI8GyABcAFQnK/SqfLwtwqdUi3HKFEusjr2PSf08gMasItqatsO3Fp/HGiG5MWIiIiOqA35o1GOFqjdCpvWAlV58CspIbIHRqr1rdp+VmRiEmbDmBDb9VFDoc62GDiPn98VSH+i3eJSIiask4PfQQI1ytMczFqs53xBVCYPuZJCzfE4uiUgWMDXSxcqwrnvGwbaDIiYiImh8mLY8g1ZHU6bLmrMJSLP75Ag5cTgMAPOVkhnWBHrA1bfWkQiQiImoRmLRoUNT1u1i04zzS80ugJ5XgNb+ueLF/B9YNIiIi0gAmLRpQXKbA6n1XsfX4TQBAx3atsWFyT7jayrUbGBERUTPCpOUxxd7JQ1B4NK6nFQAApvdxxGJ/Z7TSl2o5MiIiouaFSUs9KZUCX/yZgI8OXEOpQglzIxk+muAG324W2g6NiIioWWLSUg8puffw2vbzOP53JgBgqLMFVj/rBnMj1g0iIiJ6Upi01MKF5BwER1zF4pHdkJR1D0t2XkTuvTK00pPindEumOJtz7pBRERETxiTllr4+dxtnLiRiQXhMfj7biEAwM1OjpBAD3Rox7pBREREDYFJSw2Ss4uQXVgGiQTYGV1R4PDvu4WQAJjoZYeXB3VCe/PW2g2SiIioBWHSUoN+Hx6ptl0A2H4mGdvPJOPm6lENGxQREVELxtpDNQgJ9IBuDTeF09WRICTQo2EDIiIiauE40lKDsT1t0cnCCKM//bPKtl3z+vLGcURERA2MIy21UHlhEC8QIiIi0h6OtDxEWyN9tDOSwdrUAIG97RF+OgkpOcVoa6Sv7dCIiIhaHIkQQmg7CE3Iy8uDXC5Hbm4uTExMNLbfknIF9KU6kEgkEEKgVKGETJe36CciItKEunx/c6TlEe5PUCQSCRMWIiIiLeGaFiIiImoSmLQQERFRk8CkhYiIiJoEJi1ERETUJDBpISIioiaBSQsRERE1CUxaiIiIqElg0kJERERNApMWIiIiahKYtBAREVGT0Gxu419ZQikvL0/LkRAREVFtVX5v16YUYrNJWvLz8wEA9vb2Wo6EiIiI6io/Px9yufyhfZpNlWelUok7d+7A2NgYEolE4/vv3bs3Tp8+rfH9tjR8H2vWkt+b5nzueXl5sLe3R1JSkkYr0BM1F0II5Ofnw8bGBjo6D1+10mxGWnR0dGBnZ/fE9i+VSvkHRwP4PtasJb83LeHcTUxMmv05EtXXo0ZYKnEhbi3NmzdP2yE0C3wfa9aS35uWfO5EVHvNZnqIiKgxysvLg1wuR25uLkdaiB4TR1qIiJ4gmUyGZcuWQSaTaTsUoiaPIy1ERETUJHCkhYiIiJoEJi1ERETUJDBp0YK9e/eia9eu6Ny5Mz7//HNth0NERNQkcE1LAysvL4eLiwuOHDkCExMT9OrVC3/99RfMzMy0HRoREVGjxpGWBnbq1Cl0794dtra2MDY2xsiRI3HgwAFth0VEWjBu3Di0adMGEyZM0HYoRE1Cs0pabt++jalTp6Jt27YwNDSEh4cHzp49q7H9R0VFISAgADY2NpBIJNi1a1e1/TZv3gwnJycYGBjA09MTR48eVW27c+cObG1tVc/t7Oxw+/ZtjcVIRE3Hq6++iq+//lrbYRA1Gc0macnOzkbfvn2hp6eHffv2ITY2FmvXroWpqWm1/Y8dO4aysrIq7VevXkVqamq1ryksLIS7uzs2btxYYxzh4eEICgrC0qVLER0djf79+8Pf3x+JiYkAqq9i+SRqJRFR4+fr6wtjY2Nth0HUZDSbpOXDDz+Evb09vvzyS3h7e6N9+/YYMmQIOnbsWKWvUqnEvHnz8Nxzz0GhUKjar1+/Dl9f3xr/5ePv74+VK1di/PjxNcaxbt06zJo1C7Nnz4azszNCQkJgb2+P0NBQAICtra3ayEpycjKsra3re9pEpCW1GXl92KgrEdVds0ladu/eDS8vL0ycOBEWFhbo2bMnPvvss2r76ujoICIiAtHR0Zg+fTqUSiX+/vtvDB48GGPGjMEbb7xRrxhKS0tx9uxZ+Pn5qbX7+fnh+PHjAABvb29cunQJt2/fRn5+PiIiIjB8+PB6HY+ItOdRI6+PGnUlorprNknLjRs3EBoais6dO+PAgQOYM2fOQ+eLbWxscPjwYRw7dgzPPfccBg8ejCFDhmDLli31jiEjIwMKhQKWlpZq7ZaWlqopJ11dXaxduxa+vr7o2bMnXn/9dbRt27bexyQi7XjUyOujRl2JqO50tR2ApiiVSnh5eeGDDz4AAPTs2ROXL19GaGgopk+fXu1rHBwc8PXXX2PgwIHo0KEDvvjiC42sL3lwH0IItbYxY8ZgzJgxj30cImqcKkdd33rrLbX2+0ddiajums1Ii7W1NVxcXNTanJ2dHzoUm5aWhn//+98ICAhAUVERFixY8FgxmJubQyqVVlnIm56eXmX0hYiar9qMugLA8OHDMXHiRERERMDOzg6nT59u6FCJmpRmM9LSt29fXLt2Ta3t+vXrcHR0rLZ/RkYGhgwZAmdnZ+zYsQNxcXEYNGgQZDIZPv7443rFoK+vD09PT0RGRmLcuHGq9sjISDzzzDP12icRNV2PGnXlPZqI6qbZJC0LFiyAj48PPvjgA0yaNAmnTp1CWFgYwsLCqvRVKpUYMWIEHB0dER4eDl1dXTg7O+PQoUPw9fWFra1ttaMuBQUFiI+PVz1PSEhATEwMzMzM4ODgAABYuHAhpk2bBi8vL/Tp0wdhYWFITEzEnDlzntzJE1GjwlFXoidENCN79uwRrq6uQiaTiW7duomwsLAa+x48eFDcu3evSnt0dLRITEys9jVHjhwRAKo8ZsyYodZv06ZNwtHRUejr64tevXqJP/7447HOi4gaNwBi586dam3e3t5i7ty5am3Ozs7irbfeasDIiJoX1h4iIqqH+0dee/bsiXXr1sHX11c18hoeHo5p06Zhy5YtqlHXzz77DJcvX65x2pqIHo5JCxFRPfz+++/w9fWt0j5jxgxs3boVQMXN5dasWYOUlBS4urpi/fr1GDBgQANHStR8MGkhIiKiJqHZXPJMREREzRuTFiIiImoSmLQQERFRk8CkhYiIiJoEJi1ERETUJDBpISIioiaBSQsRERE1CUxaiIiIqElg0kJERERNApMWIiIiahKYtBAREVGTwKSFiIiImgQmLURERNQk/B/+/58ZkyvmdwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "loc = np.array([1e-8, 1])\n", + "orders_even = [i for i in range(6, 15, 2)]\n", + "err = []\n", + "for o in orders_even:\n", + " err.append(compute_error_coord(recur_laplace, loc, o, derivs_laplace, n_init_lap, order_lap))\n", + "\n", + "orders_even = np.array(orders_even)\n", + "err = np.array(err, dtype=float)\n", + "\n", + "coefficients = np.polyfit(np.log10(orders_even), np.log10(err), 1)\n", + "polynomial = np.poly1d(coefficients)\n", + "log10_y_fit = polynomial(np.log10(orders_even))\n", + "plt.plot(orders_even, 10**log10_y_fit, '*-')\n", + "plt.scatter(orders_even, err)\n", + "plt.xscale('log')\n", + "plt.yscale('log')\n", + "plt.title(\"Error vs Order (Even Only), Slope: \"+str(coefficients[0]))" + ] + }, { "cell_type": "code", "execution_count": null, From 080bcfe1b313fc136b6e1b896f16e9ad1ef81c4e Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 23 Dec 2024 08:52:11 -0800 Subject: [PATCH 122/193] Update plot_normal_recurrence.ipynb --- test/plot_normal_recurrence.ipynb | 235 ++++++++++++++++++++++++------ 1 file changed, 189 insertions(+), 46 deletions(-) diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb index 6b6e24bf5..a19593685 100644 --- a/test/plot_normal_recurrence.ipynb +++ b/test/plot_normal_recurrence.ipynb @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -68,14 +68,47 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "derivs_laplace = compute_derivatives(15)" + "derivs_laplace = compute_derivatives(20)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[5], line 12\u001b[0m\n\u001b[1;32m 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [sp\u001b[38;5;241m.\u001b[39mdiff(g_x_y,\n\u001b[1;32m 9\u001b[0m var_t[\u001b[38;5;241m0\u001b[39m], i)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n\u001b[0;32m---> 12\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43mcompute_derivatives_h2d\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m8\u001b[39;49m\u001b[43m)\u001b[49m\n", + "Cell \u001b[0;32mIn[5], line 8\u001b[0m, in \u001b[0;36mcompute_derivatives_h2d\u001b[0;34m(p)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", + "Cell \u001b[0;32mIn[5], line 8\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:2481\u001b[0m, in \u001b[0;36mdiff\u001b[0;34m(f, *symbols, **kwargs)\u001b[0m\n\u001b[1;32m 2417\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2418\u001b[0m \u001b[38;5;124;03mDifferentiate f with respect to symbols.\u001b[39;00m\n\u001b[1;32m 2419\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2478\u001b[0m \n\u001b[1;32m 2479\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2480\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(f, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdiff\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[0;32m-> 2481\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2482\u001b[0m kwargs\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 2483\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _derivative_dispatch(f, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:3575\u001b[0m, in \u001b[0;36mExpr.diff\u001b[0;34m(self, *symbols, **assumptions)\u001b[0m\n\u001b[1;32m 3573\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdiff\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39massumptions):\n\u001b[1;32m 3574\u001b[0m assumptions\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m-> 3575\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_derivative_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43massumptions\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1908\u001b[0m, in \u001b[0;36m_derivative_dispatch\u001b[0;34m(expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1906\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtensor\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray_derivatives\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ArrayDerivative\n\u001b[1;32m 1907\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ArrayDerivative(expr, \u001b[38;5;241m*\u001b[39mvariables, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1908\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDerivative\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1474\u001b[0m, in \u001b[0;36mDerivative.__new__\u001b[0;34m(cls, expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1472\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexprtools\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m factor_terms\n\u001b[1;32m 1473\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m signsimp\n\u001b[0;32m-> 1474\u001b[0m expr \u001b[38;5;241m=\u001b[39m factor_terms(\u001b[43msignsimp\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 1475\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/simplify/simplify.py:405\u001b[0m, in \u001b[0;36msignsimp\u001b[0;34m(expr, evaluate)\u001b[0m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n\u001b[1;32m 404\u001b[0m \u001b[38;5;66;03m# get rid of an pre-existing unevaluation regarding sign\u001b[39;00m\n\u001b[0;32m--> 405\u001b[0m e \u001b[38;5;241m=\u001b[39m \u001b[43mexpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreplace\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mis_Mul\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mand\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 406\u001b[0m e \u001b[38;5;241m=\u001b[39m sub_post(sub_pre(e))\n\u001b[1;32m 407\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(e, (Expr, Relational)) \u001b[38;5;129;01mor\u001b[39;00m e\u001b[38;5;241m.\u001b[39mis_Atom:\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1749\u001b[0m, in \u001b[0;36mBasic.replace\u001b[0;34m(self, query, value, map, simultaneous, exact)\u001b[0m\n\u001b[1;32m 1746\u001b[0m expr \u001b[38;5;241m=\u001b[39m v\n\u001b[1;32m 1747\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n\u001b[0;32m-> 1749\u001b[0m rv \u001b[38;5;241m=\u001b[39m \u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrec_replace\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1750\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (rv, mapping) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mmap\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", + " \u001b[0;31m[... skipping similar frames: at line 1724 (15 times), Basic.replace..walk at line 1724 (15 times)]\u001b[0m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1734\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1732\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rv \u001b[38;5;241m==\u001b[39m e \u001b[38;5;129;01mand\u001b[39;00m e \u001b[38;5;241m!=\u001b[39m newargs[i]:\n\u001b[1;32m 1733\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n\u001b[0;32m-> 1734\u001b[0m rv \u001b[38;5;241m=\u001b[39m \u001b[43mF\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1735\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1740\u001b[0m, in \u001b[0;36mBasic.replace..rec_replace\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1739\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrec_replace\u001b[39m(expr):\n\u001b[0;32m-> 1740\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43m_query\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1741\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m result \u001b[38;5;129;01mor\u001b[39;00m result \u001b[38;5;241m==\u001b[39m {}:\n\u001b[1;32m 1742\u001b[0m v \u001b[38;5;241m=\u001b[39m _value(expr, result)\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/simplify/simplify.py:405\u001b[0m, in \u001b[0;36msignsimp..\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n\u001b[1;32m 404\u001b[0m \u001b[38;5;66;03m# get rid of an pre-existing unevaluation regarding sign\u001b[39;00m\n\u001b[0;32m--> 405\u001b[0m e \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;28;01mlambda\u001b[39;00m x: x\u001b[38;5;241m.\u001b[39mis_Mul \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;241;43m-\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m, \u001b[38;5;28;01mlambda\u001b[39;00m x: \u001b[38;5;241m-\u001b[39m(\u001b[38;5;241m-\u001b[39mx))\n\u001b[1;32m 406\u001b[0m e \u001b[38;5;241m=\u001b[39m sub_post(sub_pre(e))\n\u001b[1;32m 407\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(e, (Expr, Relational)) \u001b[38;5;129;01mor\u001b[39;00m e\u001b[38;5;241m.\u001b[39mis_Atom:\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:520\u001b[0m, in \u001b[0;36mBasic.__ne__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 511\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__ne__\u001b[39m(\u001b[38;5;28mself\u001b[39m, other):\n\u001b[1;32m 512\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"``a != b`` -> Compare two symbolic trees and see whether they are different\u001b[39;00m\n\u001b[1;32m 513\u001b[0m \n\u001b[1;32m 514\u001b[0m \u001b[38;5;124;03m this is the same as:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 518\u001b[0m \u001b[38;5;124;03m but faster\u001b[39;00m\n\u001b[1;32m 519\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 520\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mother\u001b[49m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:500\u001b[0m, in \u001b[0;36mBasic.__eq__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 497\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mis_Number \u001b[38;5;129;01mand\u001b[39;00m other\u001b[38;5;241m.\u001b[39mis_Number) \u001b[38;5;129;01mand\u001b[39;00m (\n\u001b[1;32m 498\u001b[0m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28mtype\u001b[39m(other)):\n\u001b[1;32m 499\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m--> 500\u001b[0m a, b \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_hashable_content(), \u001b[43mother\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_hashable_content\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 501\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m a \u001b[38;5;241m!=\u001b[39m b:\n\u001b[1;32m 502\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m\n", + "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:150\u001b[0m, in \u001b[0;36mExpr._hashable_content\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 146\u001b[0m exp \u001b[38;5;241m=\u001b[39m exp\u001b[38;5;241m.\u001b[39msort_key(order\u001b[38;5;241m=\u001b[39morder)\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mclass_key(), args, exp, coeff\n\u001b[0;32m--> 150\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_hashable_content\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 151\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Return a tuple of information about self that can be used to\u001b[39;00m\n\u001b[1;32m 152\u001b[0m \u001b[38;5;124;03m compute the hash. If a class defines additional attributes,\u001b[39;00m\n\u001b[1;32m 153\u001b[0m \u001b[38;5;124;03m like ``name`` in Symbol, then this method should be updated\u001b[39;00m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;124;03m accordingly to return such relevant attributes.\u001b[39;00m\n\u001b[1;32m 155\u001b[0m \u001b[38;5;124;03m Defining more than _hashable_content is necessary if __eq__ has\u001b[39;00m\n\u001b[1;32m 156\u001b[0m \u001b[38;5;124;03m been defined by a class. See note about this in Basic.__eq__.\"\"\"\u001b[39;00m\n\u001b[1;32m 157\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_args\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], "source": [ "def compute_derivatives_h2d(p):\n", " k = 1\n", @@ -171,18 +204,19 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 10, "metadata": {}, "outputs": [ { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABN4AAALACAYAAABM/b/3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACtNElEQVR4nOzde3hU5b3//c9wSMIpaESC4RBQPMUIaIgWECW6RYOim4qlBxEUamnij0JqrdYqSNW4tWXT1kCl7kqpbaVaxdaiEI9QkRrQtNXYFlo0IIfIQUMCgoT7+cMnI8NkkpnJmln3WvN+XVeuy1mZrLknQfLmu2bNChhjjAAAAAAAAAA4qoPbCwAAAAAAAAD8iMEbAAAAAAAAkAAM3gAAAAAAAIAEYPAGAAAAAAAAJACDNwAAAAAAACABGLwBAAAAAAAACcDgDQAAAAAAAEgABm8AAAAAAABAAjB4AwAAAAAAABKAwZtDlixZokAgoPXr17f4+SuvvFIDBw6Ma99Tp06N+2sjGTNmjPLz8x3dZyAQ0Ny5c4O3a2pqNHfuXL333nuOPg68a+DAgZo6dWpcX3vfffdp+fLlYdtfeeUVBQIBvfLKK+1aWyr56U9/qsGDBystLU2BQEAfffSR20uKy5gxYzRmzBi3lxGzuXPnKhAIhH1kZGS4vTQA7dRWDyYKvwuRSMc2frT279+vuXPntvjnsvn/Ff6dEL3vf//7GjBggDp16qTjjjvO7eXErT3/HnDT1KlTW+y3M844w+2lwQM6ub0A+FdNTY3uvvtujRkzxvHBIVLPfffdp4kTJ+q///u/Q7afe+65ev3115WXl+fOwjymurpaM2fO1PTp0zVlyhR16tRJPXr0cHtZKen5559Xz549g7c7dOBYGADAP/bv36+7775bksIOlF1xxRV6/fXXddJJJ7mwMu955plndO+99+qOO+5QcXGx0tPT3V5SSurSpYteeumlsG1AWxi8wfP279+vrl27ur2MoE8//VSBQECdOoX/72XbWtvLhueTmZmpL3zhC66uIVbGGH3yySct/qI+cOCAMjIyFAgE4t5/az+Xd955R5L09a9/Xeedd17cjxHt47WHE9+LaLX2M0mUgoIC9erVK2mPBwA2saEhjtba7xzb1tpeBw4ccH1YcOKJJ+rEE090dQ2xampq0uHDh1scejnxZ6S1n8vbb78tSZo5c6Z69+7drsdplqg/18n8/6W1n0kidOjQwXP/7oAdOLzuImOMFi5cqGHDhqlLly46/vjjNXHiRP3nP/9p82sDgYBuvvlmPfroozr99NPVpUsXDR8+XOvWrZMxRg8++KAGDRqk7t276+KLL9amTZta3E9VVZVGjx6trl276uSTT9b999+vI0eOhNyntrZW1113nXr37q309HSdeeaZ+tGPfhR2v6MtWbJE1157rSSpqKgo+FLcJUuWBE+HaOmjrVfGTZ06Vd27d9ff//53jR07Vj169NAll1wiSTp06JDuuecenXHGGUpPT9eJJ56oG264QR9++GHYfn7zm99oxIgR6t69u7p3765hw4bp//7v/4Kfj/QS6GNPbWt+Lr/61a/07W9/W3379lV6ero2bdrkyFoHDhyoK6+8Us8//7zOPfdcdenSRWeccYZ+8YtfhK3tgw8+0E033aT+/fsrLS1NOTk5mjhxonbu3Bm8T319vW655RYNGjRIaWlp6tu3r2bNmqXGxsZWv+/Nzz0/P1+rV6/WyJEj1bVrV914443t2u8nn3yib3/72xo2bJh69uyprKwsjRgxQs8880zI/QKBgBobG/XLX/4y+Gel+edw7Ok1CxYsUCAQaPHP/He/+12lpaVp165dwW0vvPCCLrnkEmVmZqpr164aNWqUXnzxxTa/H7E87+b/X3/2s5/pzDPPVHp6un75y18GT7NYtWqVbrzxRp144onq2rWrDh48qCNHjuiBBx4I/hnp3bu3rr/+em3dujXqn8uxxowZo+uuu06SdP755ysQCIT8Of/FL36hoUOHKiMjQ1lZWZowYYLefffdkH209uc6kj//+c+65JJL1KNHD3Xt2lUjR47Un/70p5D7tPa9MMbogQceUG5urjIyMnTuuefqueeeS8jPBAASLdrffdLnf1c9/PDDOu2005Senq68vDw9/vjjbT7O+vXr9eUvf1kDBw5Uly5dNHDgQH3lK1/R+++/H3ZfLzTEkSNH9NOf/jTYzccdd5y+8IUv6A9/+EPI96ulUyKP7brWfuc4sdbmn9uvfvUrnXnmmeratauGDh2qZ599Nmxt//jHP/SVr3xF2dnZSk9P14ABA3T99dfr4MGDwfvs2LFD3/jGN9SvXz+lpaVp0KBBuvvuu3X48OE2v/fNLfnUU0/pnHPOUUZGRvBVaPHu98MPP1RJSYny8vLUvXt39e7dWxdffLHWrFkTvM97770XHKzdfffdwX5r/jkce6rprFmz1K1bN9XX14c93qRJk5Sdna1PP/00uG3ZsmUaMWKEunXrpu7du+uyyy7TW2+91eb3I9rn/d577ykQCOiBBx7QPffco0GDBik9PV0vv/xy8C0j3nzzTU2cOFHHH3+8TjnlFEmf/f99++23h/wZKS0tDXtbj9Z+LscaOHCgvv/970uSsrOzQ/6cJ6IXm/3hD3/QiBEj1LVrV/Xo0UOXXnqpXn/99ZD7tPa9+PTTT3XrrbeqT58+6tq1qy644AK98cYbCfmZANYzcMSjjz5qJJl169aZTz/9NOxj3LhxJjc3N+Rrvv71r5vOnTubb3/72+b55583v/nNb8wZZ5xhsrOzzY4dO4L3mzJlStjXSjK5ublm5MiR5qmnnjJPP/20Oe2000xWVpaZPXu2ufrqq82zzz5rfv3rX5vs7GwzZMgQc+TIkeDXX3TRReaEE04wp556qvnZz35mKisrTUlJiZFkfvnLXwbvV1dXZ/r27WtOPPFE87Of/cw8//zz5uabbzaSzDe/+c2wNc2ZMyf4dffdd5+RZCoqKszrr79uXn/9dVNXV2c+/vjj4O3mj6VLl5rOnTubcePGtfp9njJliuncubMZOHCgKS8vNy+++KJZuXKlaWpqMpdffrnp1q2bufvuu01lZaV55JFHTN++fU1eXp7Zv39/cB933nmnkWS++MUvmieeeMKsWrXKzJ8/39x5553B++Tm5popU6aEPf5FF11kLrroouDtl19+2Ugyffv2NRMnTjR/+MMfzLPPPmt2797tyFpzc3NNv379TF5enlm6dKlZuXKlufbaa40k8+qrrwbvt3XrVnPSSSeZXr16mfnz55sXXnjBLFu2zNx4443m3XffNcYY09jYaIYNGxZynx//+MemZ8+e5uKLLw7589GSiy66yGRlZZn+/fubn/70p+bll182r776akz7Pfb7+tFHH5mpU6eaX/3qV+all14yzz//vLnllltMhw4dQv4cvv7666ZLly5m3LhxwT8z77zzTsjP4OWXXzbGGPPhhx+atLQ0c8cdd4Ss//DhwyYnJ8d88YtfDG771a9+ZQKBgPnv//5v89RTT5k//vGP5sorrzQdO3Y0L7zwQqvfj1ied/OfkSFDhpjf/OY35qWXXjJvv/128O+Nvn37mptuusk899xz5sknnzSHDx82N910k5Fkbr75ZvP888+bn/3sZ+bEE080/fv3Nx9++GGbP5eWvPPOO+b73/++kWQeffRR8/rrr5tNmzYZY0zw/9evfOUr5k9/+pNZunSpOfnkk03Pnj3Nv/71r+A+Iv25juSVV14xnTt3NgUFBWbZsmVm+fLlZuzYsSYQCJjHH388eL/Wvhdz5swxksy0adPMc889ZxYvXmz69u1r+vTpE/L/oxM/k0iamppa/Lv92I/Dhw9H3Eez5ufTp08f06FDB9O7d28zefJk8/7777f5tQDs1vx3WVVVVcT7RPu7z5jP/q7q37+/ycvLM7/97W/NH/7wB3P55ZcbSeaJJ54I3u/Y34XGGPPEE0+Yu+66yzz99NPm1VdfNY8//ri56KKLzIknnhjye8QrDTF58mQTCATM9OnTzTPPPGOee+45c++995of//jHId+v5hY92rH90drvHCfWKskMHDjQnHfeeeZ3v/udWbFihRkzZozp1KmT+fe//x28X3V1tenevbsZOHCg+dnPfmZefPFF89hjj5kvfelLpr6+3hhjzPbt203//v1Nbm6uefjhh80LL7xgfvCDH5j09HQzderUVr/vzc/9pJNOMieffLL5xS9+YV5++WXzxhtvxLTfY7+v//jHP8w3v/lN8/jjj5tXXnnFPPvss2batGmmQ4cOwT+Dn3zyiXn++eeDv7+b+625O5p/Bps3bzbGGPPXv/7VSDI///nPQx577969Jj093ZSVlQW33XvvvSYQCJgbb7zRPPvss+app54yI0aMMN26dQv2YSTRPu/NmzcH/4wUFRWZJ5980qxatcps3rw5+Hs8NzfXfPe73zWVlZVm+fLl5siRI+ayyy4znTp1MnfeeadZtWqV+eEPf2i6detmzjnnHPPJJ5+0+XNpyZtvvmmmTZtmJJnnn3/evP7662bLli3GGJOQXjTGmF//+tdGkhk7dqxZvny5WbZsmSkoKDBpaWlmzZo1wftF+l4Y81kzBgIB853vfCf4762+ffuazMzMkP8fnfiZRHL48OGo+q2pqSniPppNmTLFdOjQwWRnZ5sOHTqYvn37mtLSUrN79+42vxZg8OaQ5l8erX0cPTx7/fXXjSTzox/9KGQ/W7ZsMV26dDG33nprcFukwVufPn1MQ0NDcNvy5cuNJDNs2LCQX/4LFiwwkszf/va34LaLLrrISDJ/+ctfQvabl5dnLrvssuDt2267rcX7ffOb3zSBQMD885//DFnT0b+Un3jiibAIbMnOnTvNySefbM466yyzd+/eVu87ZcoUI8n84he/CNn+29/+1kgyv//970O2V1VVGUlm4cKFxhhj/vOf/5iOHTuar33ta60+TqyDtwsvvNDxtTavIyMjI+Qf5AcOHDBZWVnmG9/4RnDbjTfeaDp37mxqamoiPqfy8nLToUOHsH8MPPnkk0aSWbFiRcSvbX7uksyLL74Y934jfV+bNf9ynDZtmjnnnHNCPtetW7cWv7alf2x88YtfNP369Qv5JbpixQojyfzxj380xnz2j4isrCwzfvz4kP01NTWZoUOHmvPOOy/iOmN93pJMz549zZ49e0Lu2/z3xvXXXx+y/d133zWSTElJScj2v/zlL0aS+d73vhfcFunnEklL/yjcu3dvcLB5tNraWpOenm6++tWvBrdF+nMdyRe+8AXTu3dvs2/fvuC2w4cPm/z8fNOvX7/g31WRvhd79+41GRkZZsKECSHbX3vtNSMp5P9HJ34mkTQ/77Y+jl5PJEuXLjX33nuvWbFihXnppZfM/fffb7Kyskx2drbZunVrVOsBYKdoBm/Hau13nyTTpUuXkAOyhw8fNmeccYYZPHhwcFtLvwtbepyGhgbTrVu3kGGVFxpi9erVRlLYQbVjxTp4O/Z3jhNrbV5HdnZ2cHhmjDE7duwwHTp0MOXl5cFtF198sTnuuONMXV1dxOf0jW98w3Tv3j3s4MwPf/hDI6nNQVNubq7p2LFjSLPHut9I39dmzX+GL7nkkpDf1x9++GHErz128GaMMeeee64ZOXJkyP0WLlxoJJm///3vxpjP2qRTp07m//2//xdyv3379pk+ffqYL33pSxHXGcvzbh7ynHLKKebQoUMh920eNt11110h25sHjQ888EDI9mXLlhlJZvHixcFtkX4ukTQ/5tHDtET1YlNTk8nJyTFnn312SEvv27fP9O7dO+RnFOl70by22bNnh2xvHugd/f+jEz+TSJqfd1sfrf37pNn8+fPN/PnzzapVq8yqVavMHXfcYbp27WrOOOOMkM4FWsKppg5bunSpqqqqwj4uuOCCkPs9++yzCgQCuu6663T48OHgR58+fTR06NCorkpVVFSkbt26BW+feeaZkqTi4uKQ96do3n7sqQV9+vQJe4+nIUOGhNzvpZdeUl5eXtj9pk6dKmNM2JtLxqqxsVFXXHGFPvnkEz333HNRX6HnmmuuCbn97LPP6rjjjtP48eNDvp/Dhg1Tnz59gt/PyspKNTU1qbS0tF3rbms9Tqy12bBhwzRgwIDg7YyMDJ122mkhP6fnnntORUVFwZ91S5599lnl5+dr2LBhIY972WWXRX0ltOOPP14XX3yxo/t94oknNGrUKHXv3l2dOnVS586d9X//939hpzjG4oYbbtDWrVv1wgsvBLc9+uij6tOnj4qLiyVJa9eu1Z49ezRlypSQdR85ckSXX365qqqqWj19JtbnffHFF+v4449vcV/H/hlpfsn8sac7n3feeTrzzDPDToVt6ecSi9dff10HDhwIe7z+/fvr4osvbvHU29b+zDdrbGzUX/7yF02cOFHdu3cPbu/YsaMmT56srVu36p///Ger+3399df1ySef6Gtf+1rI9pEjRyo3Nzdkm5M/k2PNnTu3xb/bj/14+OGH29zX5MmT9b3vfU/FxcUqKirSd7/7XT333HP68MMP9cADD0S1HgDeFsvvvksuuUTZ2dnB2x07dtSkSZO0adOmsNPJjtbQ0KDvfve7Gjx4sDp16qROnTqpe/fuamxsDHkcLzRE89sLJKvfnOidoqKikIsXZWdnq3fv3sF+279/v1599VV96UtfavW9zp599lkVFRUpJycn5HGbe+bVV19t83kOGTJEp512mqP7/dnPfqZzzz1XGRkZwT/DL774Yrv7be3atSFt8Oijj6qwsFD5+fmSpJUrV+rw4cO6/vrrQ9adkZGhiy66qM0/i7E+76uuukqdO3ducV/H/vlp/nfRsT117bXXqlu3bmE91dLPJRaJ6sV//vOf2rZtmyZPnhxy4afu3bvrmmuu0bp167R///6Qr4nUssf225e+9KWw98F28mdyrIcffjiqfovmqr2zZ8/W7Nmzdemll+rSSy/VPffco6VLl+of//iHfv7zn0e1HqQuLq7gsDPPPFPDhw8P296zZ09t2bIleHvnzp0yxoSE1NFOPvnkNh8rKysr5HZaWlqr2z/55JOQ7SeccELYPtPT03XgwIHg7d27d7f4vms5OTnBz8fr8OHDmjhxov71r39p9erV6t+/f1Rf17VrV2VmZoZs27lzpz766KPgcz1W83t6Nb+HWr9+/eJed0siXZGpPWttFs3P6cMPP2zzOe3cuVObNm2K+Ivq2MdtSUvPsz37feqpp/SlL31J1157rb7zne+oT58+6tSpkxYtWtTi+9hFq7i4WCeddJIeffRRjR07Vnv37tUf/vAHfetb31LHjh2D65akiRMnRtzPnj17QobbR4v1ebd21a5jP9f8/1VLX5OTkxM2RG/vFcHaerzKysqQbS39uW7J3r17ZYyJuN+jH7tZpO9Fnz59wvZx7DYnfybHGjBgQFR/b8R7IYjzzjtPp512mtatWxfX1wPwjlh/97X299/u3bsj/t301a9+VS+++KLuvPNOFRYWKjMzU4FAQOPGjfNcQ3z44Yfq2LFji9+L9oj0e8CJ3mmr3/bu3aumpqaovvd//OMfE/K9j3e/8+fP17e//W3NmDFDP/jBD9SrVy917NhRd955Z7sGb1/72td0yy23aMmSJSovL1dNTY2qqqq0cOHCkHVLUmFhYYv7aOsK4bE+71j7rVOnTmGD1EAgoD59+rTZPLFKVC+2td8jR45o7969IRdQiLbfOnXqFPb/hpM/k2MNHjxYxpg27xfvleUnTJigbt260W9oE4M3l/Tq1UuBQEBr1qxp8Sostlwi+oQTTtD27dvDtm/btk2S2nVFvptuukkvvviiVqxYoaFDh0b9dS39w7ZXr1464YQT9Pzzz7f4Nc1HHJt/EW7durXVQV9GRkbIm9o227VrV4vPOdI/ttuz1liceOKJrR71bn7cLl26RBxoRfOzjPR84t3vY489pkGDBmnZsmUh+27pex+L5ldU/eQnP9FHH32k3/zmNzp48KBuuOGGsHX99Kc/jXh1okiD8eavj+V5tzaQOfZzzUGyffv2sCDftm1bTPuOxtGPd6z2PN7xxx+vDh06xPR3SKTvxY4dO8L2sWPHjpADA07+TI514403RnXxhWiOtkdijIk7/AB4R6y/+yL9/Se1PNyRpI8//ljPPvus5syZo9tuuy3kMfbs2RNyXy80xIknnqimpibt2LGj1X90p6ent/h9jHSgONZ+a+/34GhZWVnq2LFjVN/7IUOG6N57723x880HsloT6fnEu9/HHntMY8aM0aJFi0K279u3r821tOb444/X1VdfraVLl+qee+7Ro48+qoyMDH3lK18JWbckPfnkk2GvfI9GrM871n47fPiwPvzww5DhmzFGO3bsCBsWOtlvTvZiW13YoUOHsDMGWuu3vn37BrcfPnw47P9HJ38mx7rkkkuielXolClTtGTJkqj3ezT6DdFg8OaSK6+8Uvfff78++OADfelLX3J7ORFdcsklKi8v15tvvqlzzz03uH3p0qUKBAIqKiqK+LXNw8Ojj6o2+/73v69HH31Uv/zlL/Vf//Vf7V7nlVdeqccff1xNTU06//zzI95v7Nix6tixoxYtWqQRI0ZEvN/AgQP1t7/9LWTbv/71L/3zn/9s17AxlrXGori4WL/61a/0z3/+U6effnrEx73vvvt0wgknaNCgQY48bnv3GwgElJaWFvILdMeOHS1e2e3YV/m15YYbbtADDzyg3/72t1qyZIlGjBihM844I/j5UaNG6bjjjlNNTY1uvvnmmNYtJe77KSl4GsBjjz0WEmlVVVV69913dccddzj6eCNGjFCXLl302GOPBa9GLH02oH7ppZdafVVga7p166bzzz9fTz31lH74wx+qS5cukj67Atdjjz2mfv36tXmKxRe+8AVlZGTo17/+dchpDGvXrtX7778fMnhL5M9k7ty5Uf05iWdwLknr1q3Txo0bNXPmzLi+HoB3xPK7T5JefPFF7dy5M3gwqKmpScuWLdMpp5wS8dVSgUBAxpiwA7mPPPKImpqaQrZ5oSGKi4tVXl6uRYsWad68eRHv11K/vfTSS2poaEjaWqPVpUsXXXTRRXriiSd07733RuzLK6+8UitWrNApp5wS9dsjRKM9+w0EAmF/tv72t7/p9ddfDzmw3dq/BSK54YYb9Lvf/U4rVqzQY489pgkTJoS8Fc1ll12mTp066d///ndUb3txrER9P6XP/t30wAMP6LHHHtPs2bOD23//+9+rsbGxzavAxypRvXj66aerb9+++s1vfqNbbrkl+HdVY2Ojfv/73wevdNqaMWPGSJJ+/etfq6CgILj9d7/7XdhVcxP5M3n44YejGgjH+++7J598Uvv37494EB9oxuDNJaNGjdJNN92kG264QevXr9eFF16obt26afv27frzn/+ss88+W9/85jfdXqZmz56tpUuX6oorrtC8efOUm5urP/3pT1q4cKG++c1vtvqP5ub3Yli8eLF69OihjIwMDRo0SC+99JLuvfdeTZw4MezUqvT0dJ1zzjkxr/PLX/6yfv3rX2vcuHH61re+pfPOO0+dO3fW1q1b9fLLL+vqq6/WhAkTNHDgQH3ve9/TD37wAx04cEBf+cpX1LNnT9XU1GjXrl3By3hPnjxZ1113nUpKSnTNNdfo/fff1wMPPNDqe3A4vdZYzJs3T88995wuvPBCfe9739PZZ5+tjz76SM8//7zKysp0xhlnaNasWfr973+vCy+8ULNnz9aQIUN05MgR1dbWatWqVfr2t78d1yCwPfttvox6SUmJJk6cqC1btugHP/iBTjrpJG3cuDHkvmeffbZeeeUV/fGPf9RJJ52kHj16RPwHgiSdccYZGjFihMrLy7VlyxYtXrw45PPdu3fXT3/6U02ZMkV79uzRxIkT1bt3b3344Yf661//qg8//DDsSK5Tz7stp59+um666Sb99Kc/VYcOHVRcXKz33ntPd955p/r37x8Sc0447rjjdOedd+p73/uerr/+en3lK1/R7t27dffddysjI0Nz5syJe9/l5eW69NJLVVRUpFtuuUVpaWlauHCh3n77bf32t79t86jl8ccfr1tuuUX33HOPpk+frmuvvVZbtmzR3Llzw05fSOTPZODAgS2edh+PoUOH6rrrrtOZZ56pjIwMvfHGG3rwwQfVp08f3XrrrY48BgB3vfTSS3rvvffCto8bNy6m333SZ/8gvPjii3XnnXeqW7duWrhwof7xj3/o8ccfj/j4mZmZuvDCC/Xggw+qV69eGjhwoF599VX93//9X9j76XqhIUaPHq3Jkyfrnnvu0c6dO3XllVcqPT1db731lrp27ar/9//+n6TP+u3OO+/UXXfdpYsuukg1NTV66KGH1LNnz5jXFu9aYzF//nxdcMEFOv/883Xbbbdp8ODB2rlzp/7whz/o4YcfVo8ePTRv3jxVVlZq5MiRmjlzpk4//XR98skneu+997RixQr97Gc/i+stVNqz3yuvvFI/+MEPNGfOHF100UX65z//qXnz5mnQoEEhQ5UePXooNzdXzzzzjC655BJlZWUF/zxGMnbsWPXr108lJSXasWNHyNkK0me/j+fNm6c77rhD//nPf3T55Zfr+OOP186dO/XGG2+oW7duwZ53+nm35dJLL9Vll12m7373u6qvr9eoUaP0t7/9TXPmzNE555yjyZMnx7XfSBLVix06dNADDzygr33ta7ryyiv1jW98QwcPHtSDDz6ojz76SPfff3+b+zjzzDN13XXXacGCBercubP+67/+S2+//bZ++MMfhr1dSSJ/Jq39WyEW77//vr761a/qy1/+sgYPHqxAIKBXX31VCxYs0FlnnaXp06c78jjwMfeu6+AvbV3F6oorrgi7MqkxxvziF78w559/vunWrZvp0qWLOeWUU8z1119v1q9fH7xPpKualpaWhmxrvtLLgw8+GLK9+UpXR192/qKLLjJnnXVW2Hpaeqz333/ffPWrXzUnnHCC6dy5szn99NPNgw8+GHbZZbVw1aIFCxaYQYMGmY4dOxpJ5tFHHw1e/aalj5a+R8eur1u3bi1+7tNPPzU//OEPzdChQ01GRobp3r27OeOMM8w3vvENs3HjxpD7Ll261BQWFgbvd84555hHH300+PkjR46YBx54wJx88skmIyPDDB8+3Lz00ksRr2p69PfWybXm5uaaK664Iuzrj12HMZ9dEffGG280ffr0MZ07dzY5OTnmS1/6ktm5c2fwPg0NDeb73/++Of30001aWprp2bOnOfvss83s2bNDrpjWkkh/ZmLZb0tXNb3//vvNwIEDTXp6ujnzzDPNz3/+8+CfkaNVV1ebUaNGma5du4ZcPbK1K7ktXrw4eEW4jz/+uMW1v/rqq+aKK64wWVlZpnPnzqZv377miiuuaPFnGu/zbun/V2Na/3ujqanJ/M///I857bTTTOfOnU2vXr3MddddF7x8fLPWfi4tae0xH3nkETNkyJDgc7n66qvDrpbW2p/rSNasWWMuvvji4N9zX/jCF4JXl41mXUeOHDHl5eWmf//+Ji0tzQwZMsT88Y9/bPH/g/b+TJLhy1/+shk8eLDp1q2b6dy5s8nNzTUzZsww27Ztc2U9AJzT1lXum6/gGO3vvua/qxYuXGhOOeUU07lzZ3PGGWeYX//61yH3a+l34datW80111xjjj/+eNOjRw9z+eWXm7fffrvF38VeaIimpibzv//7vyY/Pz94vxEjRoT8Pjl48KC59dZbTf/+/U2XLl3MRRddZKqrqyNe1bSl3zlOrDXS75iWvvc1NTXm2muvNSeccIJJS0szAwYMMFOnTjWffPJJ8D4ffvihmTlzphk0aJDp3LmzycrKMgUFBeaOO+4wDQ0NLa716MdsqSVj2e+xjX/w4EFzyy23mL59+5qMjAxz7rnnmuXLl7f474gXXnjBnHPOOSY9PT3k6pEtXdW02fe+9z0jyfTv3z/s3xvNli9fboqKikxmZqZJT083ubm5ZuLEieaFF15o9fsR7fOO9O8qY1q+wmizAwcOmO9+97smNzfXdO7c2Zx00knmm9/8ptm7d2/I/Vr7ubQk0mMmqheN+ex7fP7555uMjAzTrVs3c8kll5jXXnstqnUZ89mfk29/+9umd+/eJiMjw3zhC18wr7/+eov/H7T3Z5Joe/bsMRMmTDADBw40Xbp0MWlpaebUU081t956q/noo4+Svh54T8CYKN5tEAAAAEBSBQIBlZaW6qGHHnJ7KQAAIE68CyAAAAAAAACQACkxeHv22Wd1+umn69RTT9Ujjzzi9nIAAICF6AVv4ucGAACi4VYz+P5U08OHDysvL08vv/yyMjMzde655+ovf/mLsrKy3F4aAACwBL3gTfzcAABANNxsBt+/4u2NN97QWWedpb59+6pHjx4aN26cVq5c6fayAACARegFb+LnBgAAouFmM1g/eFu9erXGjx+vnJwcBQIBLV++POw+Cxcu1KBBg5SRkaGCggKtWbMm+Llt27apb9++wdv9+vXTBx98kIylAwCAJKEXvImfGwAAiIaXm8H6wVtjY6OGDh0a8WpOy5Yt06xZs3THHXforbfe0ujRo1VcXKza2lpJUktn0gYCgYSuGQAAJBe94E383AAAQDS83AydkvIo7VBcXKzi4uKIn58/f76mTZum6dOnS5IWLFiglStXatGiRSovL1ffvn1Dpphbt27V+eefH3F/Bw8e1MGDB4O3jxw5oj179uiEE04g5AAAVjDGaN++fcrJyVGHDok9hvbJJ5/o0KFDCX2MSIwxYb9709PTlZ6eHnbfZPcCnEHnAQAQis4L7zzJ461nPESSefrpp4O3Dx48aDp27GieeuqpkPvNnDnTXHjhhcYYYz799FMzePBgs3XrVlNfX28GDx5sdu3aFfEx5syZYyTxwQcffPDBh/UfW7ZsScjv22YHDhwwfbL7uPb8unfvHrZtzpw5ba5bSnwvwHnJ+LnReXzwwQcffHjlg86LTPJW61n/irfW7Nq1S01NTcrOzg7Znp2drR07dkiSOnXqpB/96EcqKirSkSNHdOutt+qEE06IuM/bb79dZWVlwdsff/yxBgwYoE3vbFKPHj0S80QQt90fH5AkfbB7v8srQVv+/dEnqtnb6PYy0IaqDxtUs22f28tAKxo+/EDm00905He3J/z30qFDh7Rj5w5tfGejMntkJvSxjlW/r16nnnWqtmzZoszMzx870lHQ1iSiF5B4dB7oPLv9+6NPQm7Tefaq+rAh+N90np0aPvz8lVh0Xuxsbz1PD96aHfvyRHPMSxavuuoqXXXVVVHtK9JLG3v06BHyBwLu2/XRAfXo0VmS1O1gR5dXg9Zs3HtA/z4YUHrX7m4vBa1YV7dP7+5uUiC9q9tLQQQNdVsVSOsSvJ2sU+Mye2S69jswM9O5x3ayF5A8dF5qovPstnHvAXXp9nnXvb2nkc6z1Lq6ferUpZsk6e9b6+k8Cx3bd83ovNjZ2nqeHrz16tVLHTt2DE4wm9XV1YVNOuEfuz46EHJ7yy6Ortls494Dbd8JrltXt09/31rv9jLQioa6rW4vwbPoBW/i55a6jm49Os8udJ23rKv7/NVtdJ59aDvn2N4M1l/VtDVpaWkqKChQZWVlyPbKykqNHDmyXfuuqKhQXl6eCgsL27UfOIuhm7c0x9nbe/g52ezoKIOdCLP2SWQvIHHovNTE0M1OG/ceiDh0o/PsRN/ZjbZzlu2tZ/0r3hoaGrRp06bg7c2bN6u6ulpZWVkaMGCAysrKNHnyZA0fPlwjRozQ4sWLVVtbqxkzZrTrcUtLS1VaWqr6+nr17NmzvU8DDjh26Aa7MXTzhuYo4yiovQiz6LjVC2gfOg9Ho/Xs1Nqr3Og8+7Q0cKPz7EHXxc/LrWf94G39+vUqKioK3m5+Q9wpU6ZoyZIlmjRpknbv3q158+Zp+/btys/P14oVK5Sbm+vWkpEALYUYR0HtxWkI3sDQzX7EWfToBW/i54ZmnNVgH3rOexi62Y2uax8vN0Pg/78UKyJoPhK6s3Ynb7rrgkhHPokxex0daRwFtRfv+WG/1uLMHDqgpl/P1scff5zQ301u/g6sr69X9oDshD9HpDY6zw4M3ewTzdCNzrNLpFNL6Tw7xDJ0o/P8x/pXvLmloqJCFRUVampqcnspKYuhm/cwdPMGhm7244gokFh0nh04tdQ+0b7Kjc6zC0M3e9F0kDx+cYVEKi0tVU1NjaqqqtxeSkoixLyNGLMXQzf7EWhA4tF57uMAq30YunnPurp9DN0sRtOhGa94g1XaGrgRY/bifUDsx9DNfgQagFTA0M0uNJw3tXbVUjrPXfQcjsXgDdZg6OZdnGIKtB+RBiAVMHSzRzwDNzrPDq0N3eAueg4t4VTTCCoqKpSXl6fCwkK3l5ISOLXUuxi6eQOvdrMbkQYkF53nDnrPHgzdvKutoRud546Guq30HCJi8BYB7/2RHLs+OhBVhHEU1E6cmuANDN3sRqQByUfnJV9rvUfnJc/GvQfoN49q7f3cmtF57qDl0BYGb3BNtEc9iTE7HRttHAW1E6ci2I1QA5AKGLrZoT0DNzrPXfScvWg5RIP3eIMrONXA2xi6ecOxkcZRULsQagBSAc3nvva+wo3Oc1e0Qzc6L7noOMSCV7wh6WIJMI6C2ofTE7yBoZvdiDUAqYALZ7mPoZu3MXSzEx2HWPGKtwgqKipUUVGhpqYmt5fiG7Ee8STG7NNSvBFk9uF0BLsRa4D76LzE4v173ceBUm+j5exEwyFevOItAt5011kM3byPoZs3tBRqHAW1B8EG2IHOSxxOLXWfU0M3Os8dsQ7d6LzkoOHQHrziDQlHgHkfR029gaGb3Qg2AH7HhbPc5WSvMXRzB0M3+9BvcAKDNyRMvAM3YswukSKOILMLpyTYjWgD4HcM3dzDAVJ/oOXsQ7/BKQzekBAM3fyBoZs3RAo1joLagWgD4Hec3eCeRAzd6LzkinfgRuclFv0GJzF4g+OIL3/g6Kk3MHSzG9EGwO+4Wr07EtVpDN2Si6GbfWg3JAIXV4igoqJCeXl5KiwsdHspnrHrowPtGroRY/ZoLeYIMnswdLMb4QbYi85zBkM3d3Bw1B8YutmHdkOiMHiLgKtdxaa9r3IjxuzB0M0beB8QuxFugN3ovPZj6JZ8G/ceSOjQjc5LHjrOLg11W2k3JBSnmqLdOLXUPxi6eUNrscZRUHcRbQD8ju5zR6Jf5UbnJUd7B250nvNoNyQDgze0ixPxxVFQO3DagvcRY+4i3AD4XTzdR+e1TzL6jKFbcjB0swvdhmRi8Ia4OHW0kxizQ1tRR5DZg1MT7ES8AfA7hm7Jx0FR/6Df7EK3IdkYvCFmnGKQWhi62YNTTO1EvAHwO9ovuZI5cKPzEs+JoRud5xy6DW5g8IaYOBleHAW1A0dTvYGhm52INwB+F2/70XmxS3aTMXRLLKde5UbnOYNmg5sYvCEqTh/pJMbswCmm3sDpCXYi4AD4HUO35OFAqL/Qbnah2eA2Bm8RVFRUqKKiQk1NTW4vxXUM3fyJoZs3tBVuHAV1BwEHeBud1zZOL00OtwZudF7iODl0o/Pah16DLTq4vQBblZaWqqamRlVVVW4vxVVElz9xVNUbGLrZiYgDvI/Oa117+o8DrNFj6OY/DN3sQa/BJrziDS1K1MCNGHNfNJFHkLmPUxTsRMQB8LP29h+dFx0OgPoP3WYPWg024hVvCMPQzb8YunlDNPHGUdDkI+QA+BlnOSSH20M3Os95iRi60XnxodVgK17xhhBEl3+5HXqIDkM3OxFyAPzMif7jAGvrbOgwhm7OY+hmD1oNNmPwhqBEDt2IMXdFG3sEmbs4TcFOhBwAP2PolngM3fyJoZsd6DR4AYM3JPxVbsSYuxi6eUO08UaQJRcxB8DPGLollg0DNziPA6X2oNPgFQzeUhynlvobQzdvYOhmJ2IOgJ/RgIlj28CNznNOIodudF70aDR4DRdXSGHJCC6OgrrHtuhDyxi62YmgA+BnTjUgnRfOtv5i6OYchm52oNHgRbziLYKKigpVVFSoqanJ7aU4LllHOIkx98QSfQSZezhVwU4EHeB/fu68tjB0SwzbBm5wFs3mPvoMXsYr3iIoLS1VTU2Nqqqq3F6Koxi6+R9DN//hKGjyEHVAavBr57WF00sTw9ahG53Xfuvq9iV86EbntY0+g9fxircUQmz5n63hh3CcYmofog6AXzndgBxg/YzN3cXQrf2S8So3Oq91tBn8gsFbCkj2wI0Yc0es8UeQuYfTFexD2AHwK4ZuicHQzd9oNffRZvATBm8+x9AtNTB0845YQo6joMlB2AHwK852cJ7NAzc4I1lDNzovMtoMfsPgzceIrdRAAHoHQzf7EHYA/CoRHZjqB1i90FwcXI1fMl/lRue1jC6DXzF48yk3hm6pHmNuiCcACTJ3cMqCfYg7AH7F0M1ZXhi4STReezB0cx9dBj9j8OYzbr3KLZVjzEsIMnfEGnMEWeIRdwD8ijMenOOVgRvah4Oj7qLJkAo6uL0AOIfQSi3EoDcwdLMPgQfArxLVgql4gNVrncXB1fgke+hG54WiyZAqeMWbT7g5dEvFGHMbp5h6A0dQ7UPgAfArhm7O8NrATaLx4uFGozF0+xw9hlTD4M3j3H6VW6rFmA0YunlDPEFHkCUWkQfAjxLZgqnWeV4cuiF2HBh1Fz2GVMTgzcPcHroh+QhCb2DoZh8iD4Af0YLO8HJfcXA1Nm4N3ei8z9BjSFUM3jzKhtBKtaOgbos3Cgmy5OIoqn2IPAB+lOgWTJXOY+iWOhi6uYcWQ6pj8OYxNgzcpNSJMVswdPOGeIOOIEscQg+AHzF0az8vD9wkGi8WHBR1Fy0GMHiLqKKiQhUVFWpqanJ7KUEM3VITQzdvYOhmH0IPQCQ2dl60bOlBr/L6wA2xcXvolsqdR4cBn+vg9gJsVVpaqpqaGlVVVbm9FElEVqoiDr2BoZt9iD0ArbGt86KVjB708wFWv3QVB1ejw9DNPXQYEIpXvHmATUM3P8eYbdoThwQZUhmxB8CPGLrFzy8DN4nGi5bbQ7dURYMBLWPwZjGbBm6Sf2PMRgzdvINXu9mF4APgR7Y1oZf4aeiGttkycEvFzqPBgMgYvFmKwEpdBKJ3MHSzC8EHwI+S1YR+O8Dqx57i4GrrGLq5hwYDWsfgzUI2Dt38FmO2am8kEmTJY0vc4TMEHwC/SWYP+q3zGLqlHlu6LNWGbvQXEB0GbxaxceAm+S/GbMXQzTvaE3epFmTJQPQB8Btbm9B2fhy4oW22DN1SDf0FRI/BmyUIrNRGKHoHQze7EH0A/CbZTeiXA6x+bikOrrbMtoFbqnQe7QXEjsGbBWweuvklxmzmRCgSZMlhW+ClMqIPgB8xdIudnwduEo0XiW1NxtANQGs6uL2AVLbrowMM3VIcQzfvaG/gpUqQJQPRBzds2bJFY8aMUV5enoYMGaInnnjC7SXBZxi6xWbj3gMM3VKUbUO3VNBQt5X+gu8lsvV4xZtLbB64Sd6PMS/weyz6CUM3exB9cEunTp20YMECDRs2THV1dTr33HM1btw4devWze2lwQds70Lb0FCpy8ahm987j/ZCqkhk6zF4cwFxBaeCkSOhiWdj4KUqwg9uOumkk3TSSSdJknr37q2srCzt2bOHwRvazY0u9OoB1lQauNF4oWztMYZugH8ksvU41TTJvDB082qMpRqCLPGciDy/B1myEH5oy+rVqzV+/Hjl5OQoEAho+fLlYfdZuHChBg0apIyMDBUUFGjNmjVxPdb69et15MgR9e/fv52rRqpj6BY9hm6py9ahm59xails5OXW4xVvSeKFgZvk3RjzEt7XzRsYutmD8EM0GhsbNXToUN1www265pprwj6/bNkyzZo1SwsXLtSoUaP08MMPq7i4WDU1NRowYIAkqaCgQAcPHgz72lWrViknJ0eStHv3bl1//fV65JFHEvuE4Gte6ULAbTYP3fzaeXQXbOXl1mPwlgTEFZql0tFaL2PoZg/iD/X1of8vpaenKz09Pex+xcXFKi4ujrif+fPna9q0aZo+fbokacGCBVq5cqUWLVqk8vJySdKGDRtaXcvBgwc1YcIE3X777Ro5cmSsTwWQ5G4XcoDVfhxc/RxDt+SiueCGaDtP8nbrMXhLMC8N3YixxOJ93bzB5shLNQSgPXZ/fECHjnRO6mPu2/fZ35nHvsR/zpw5mjt3bkz7OnTokDZs2KDbbrstZPvYsWO1du3aqPZhjNHUqVN18cUXa/LkyTE9PtCMoRtaQ+N9hhZLPportXm98yT7W4/BW4J4aeAmEWOJxtDNG5wKPT8eBU02AhDNtmzZoszMzODtSEdBW7Nr1y41NTUpOzs7ZHt2drZ27NgR1T5ee+01LVu2TEOGDAm+p8ivfvUrnX322TGvB6nJa20IuMELQzc/dR69Bbc50XmS/a2XEoO3CRMm6JVXXtEll1yiJ598MuGPR1jhaJxe6g0M3exBBOJomZmZIUHWHoFAIOS2MSZsWyQXXHCBjhw54sg64Kxkd1483G5DDrDaj4OrDN2Sjd6CDZzsPMne1kuJq5rOnDlTS5cuTcpjuR1W8SDGEsfJoRtBhlRABCIRevXqpY4dO4Yd8ayrqws7MgrvSWbnxcPtNqTz7EfjMXRLNnoLfmN766XE4K2oqEg9evRI6GPs+uiA62EVD2IscRi6eQevdrMDEYhESUtLU0FBgSorK0O2V1ZWcpEEH0hG58XLi22I5Er1xltXt88TQzc/obfgR7a3nuuDt9WrV2v8+PHKyclRIBAInkt7tIULF2rQoEHKyMhQQUGB1qxZk/yFtoKowrE4vdQ7GLrZgQhEezU0NKi6ulrV1dWSpM2bN6u6ulq1tbWSpLKyMj3yyCP6xS9+oXfffVezZ89WbW2tZsyY4eKq/c8PnRcvG/qQA6ywmZcGbnQe4D4vt57r7/HW2NiooUOH6oYbbtA111wT9vlly5Zp1qxZWrhwoUaNGqWHH35YxcXFqqmp0YABAyRJBQUFOnjwYNjXrlq1Sjk5OQldvw1RFS9iLDGcHrql+pHQRPJS8PkZQzc4Yf369SoqKgreLisrkyRNmTJFS5Ys0aRJk7R7927NmzdP27dvV35+vlasWKHc3Fy3lpwSvN558bKhD+k8+6Vy43mpwRi6AXbwcuu5PngrLi5WcXFxxM/Pnz9f06ZN0/Tp0yVJCxYs0MqVK7Vo0SKVl5dLkjZs2ODYeg4ePBgSd/X1kf+itSGq4kWMJQZDN+9wMvgIsvgxdINTxowZI2NMq/cpKSlRSUlJklYEydudFw9b2pDOs18qN56Xhm4A7OHl1nP9VNPWHDp0SBs2bNDYsWNDto8dO1Zr165NyGOWl5erZ8+ewY/+/fuH3cer7+fWjBhLDE4v9Q6GbnZg6AakNls7L15ebkMgGbz4fm50HgAnWD1427Vrl5qamsKuQpGdnR12tYrWXHbZZbr22mu1YsUK9evXT1VVVRHve/vtt+vjjz8OfmzZsiV0TUQVWpCIoVsqHwlNJK8Fn18xdANgY+fFy6Y+5ACr/VKx8bzYXwzdADjF9VNNoxEIBEJuG2PCtrVm5cqVUd83PT1d6enpLX7OpqiKFzHmPIZu3uF09BFk8WHoBuBotnRevGzqQzrPfqnYeF4cugGAk6x+xVuvXr3UsWPHsKOedXV1YUdHE233x/ZEVbyIMedxeql3MHSzA0M3AM1s6rx42TR0g/0YunkHnQfASVYP3tLS0lRQUKDKysqQ7ZWVlRo5cmRCH7uiokJ5eXkqLCxM6OPAuxI1dEvFKEs0r0af3zB0A3A0r3eebUM3DrDCJl58P7dmDN0AOM31U00bGhq0adOm4O3NmzerurpaWVlZGjBggMrKyjR58mQNHz5cI0aM0OLFi1VbW6sZM2YkdF2lpaUqLS1VfX29evbsmdDHSgZizFkM3bwjEdFHkMWOoRuQmvzaeQzdEKtUajyvDtwAIFFcH7ytX79eRUVFwdtlZWWSpClTpmjJkiWaNGmSdu/erXnz5mn79u3Kz8/XihUrlJub69aSPYcYcxZDN+9g6GYHhm5A6vJj59k2dIP9UqnxvD50o/MAJILrg7cxY8bIGNPqfUpKSlRSUpKkFQGR8Z5u3sHQzQ4M3YDU5qfOs3XgxgFWwBl0HoBEsfo93tzkl/d4I8a8IZWOhCaD14+2+gVDNwC2irXzGLohXjSeNzB0A5BIDN4iKC0tVU1NjaqqqtxeStyIMWdxiqk3JGroRpDFhqEbAJvF0nkM3RAvGg8AIDF48y1izFmcYpraGLrFhqEbAL+wdegGwDl0HoBEY/AGtCGRQzeOhDqLU0zdx9ANgF/YPHTjAKv9aDxvYOgGIBkYvEXg5fd4I8acw9DNOzjF1H0M3QB4RVudx9AN7ZGqjccBUABoGYO3CLz6Hm/EmHM4vdQ7GLq5j6EbAC9prfNsHrrBfqk6dPMiOg9AsjB4A1qQ6KEbUeYcjq66j6EbAL+wfejGAVbAGQzdACQTgzcfIcacwdDNOxI5dCPIosPQDYBfMHRDe9F4AICWMHjzCWLMGZxe6h0M3dzH0A2AX+z+mN//aB+Gbt5B5wFINgZvEXj54gqITzKGbkSZMzi91H0M3QB4mdc6L9UPsHJgFE5h6AbADQzeIvDSxRVSPcacwNDNOxI9dCPI2sbQDYDX0XlwEo3nDTQeALcwePM4Yqz9GLp5B0M39zF0AwDgczQeAKAtDN6Q0jh1wTsYurmPoRsAJBcHWAFn0HkA3MTgzcOIsfZJ1tCNI6Htx3u6uY+hGwAkF51nPxrPGxi6AXBbJ7cXgPgQY+3D0M07kjF0I8giY+AGAMlH59mPxgMARItXvEVg89WuiLH24fRS72Do5i6GbgD8yubOg/0YunkHnQfABgzeIvDS1a4QvWQO3Yiy9uH0UncxdAPgZzZ3HgdYAWcwdANgCwZvHkOMxY+hG45FkLWMoRsAuIPOsx+NBwCIFYM3DyHG4sfppd7CKaYAAMA2DN28g84DYBMGb4DDiLL24RRTAEAq4gAr4AyGbgBsw+DNI4ix+HGKqXcka+hGkAEAbELn2Y/GAwDEi8GbBxBj8eMUU+9g6AYAAGzE0M076DwANmLwBt9K9tCNKIsfp5cCAFIVB1jtRt95B0M3ALZi8BZBRUWF8vLyVFhY6Oo6iLH4MHTzjmQO3QgyAIBE5wF+Q+MBsBmDtwhKS0tVU1Ojqqoq19ZAjMWH00u9g6EbAMANNnQe7MeBVQCAExi8WYqhW3zcGLoRZfHh9FIAQCqj9exG33kHB1cB2I7BG3yDoZt3JHvoRpABAGzC0A1wBo0HwAsYvFmIGPMGhm7xYegGAEhldJ79aDwAgJMYvFmGGAOcw9ANAADEgqGbd9B5ALyCwRsQB6IMAADEigOs8CvOaACAyBi8WYQY8waGbt5AkAEAbELn2Y/GAwAkAoM3SxBjgHMYugEAgFgwdPMOOg+A1zB4i6CiokJ5eXkqLCx0eymwCFEGAID3JbvzOMBqN/rOOxi6AfAiBm8RlJaWqqamRlVVVQl/LGLMG4iy9kvG+38QZACAttB5AAAgWRi8uYwYA5zD0A0AAMSCA6veQecB8CoGb0AUiDIAABArDrDajb7zDoZuALyMwZuLiDFvIMq8gSADANiEzgOcQeMB8DoGby4hxgDnEGQAACAWHFgFACQLgzcXMHTzDqIMAADEitazG33nHRxcBeAHDN6ACIgybyDIAAA2YegGOIPGA+AXDN6SjBjzBoZu3kCQAQBsQufZj8YDACQbg7ckIsYAAAAAdzB08w4OrgLwEwZvwDGIMm8gyAAANuEAq93oO++g8QD4DYO3JCHGvIEo8waCDABgEzoPAABEwuAtCYgxwDkM3QAAQCw4sOoddB4AP2LwBvz/iDIAABArDrDajb7zDoZuAPyKwVsEFRUVysvLU2FhYbv2Q4x5A1HmDQQZALft379fubm5uuWWW9xeCtqBzgPsQuMBsEUiWo/BWwSlpaWqqalRVVVV3PsgxpJn494Dbi8BCUaQJUdD3Va3lwBY7d5779X555/v9jLQTk50HuzHgVUAQKwS0XoM3pDyiDIAQDQ2btyof/zjHxo3bpzbS4EFOMBqN/rOOzi4CsAWiWo9Bm8JQox5A1HmDQQZgLasXr1a48ePV05OjgKBgJYvXx52n4ULF2rQoEHKyMhQQUGB1qxZE9Nj3HLLLSovL3doxfAyOs9u9J130HgAouXl1mPwlgDEGOAcggxANBobGzV06FA99NBDLX5+2bJlmjVrlu644w699dZbGj16tIqLi1VbWxu8T0FBgfLz88M+tm3bpmeeeUannXaaTjvttGQ9JQAAAPz/vNx6nRzfY4pj6OYdHA0FAPvV14cO39PT05Wenh52v+LiYhUXF0fcz/z58zVt2jRNnz5dkrRgwQKtXLlSixYtCh7Z3LBhQ8SvX7dunR5//HE98cQTamho0KeffqrMzEzddddd8TwteBitZzf6zjs4uAog2s6TvN16DN6QkogybyDIADt8sHu/uh3smNTHbGzYL0nq379/yPY5c+Zo7ty5Me3r0KFD2rBhg2677baQ7WPHjtXatWuj2kd5eXkw2pYsWaK3336boVsKYuhmN/rOO2g8wB5e7zzJ/tZj8OYgYgxwDkEGQJK2bNmizMzM4O1IR0Fbs2vXLjU1NSk7Oztke3Z2tnbs2NHuNSI10HlAy9bV7XN7CQA8yonOk+xvPQZvDiHGvIOjoQDgHZmZmSFB1h6BQCDktjEmbFs0pk6d6sh6ADiHvvMODq4CaOZk50n2th4XV0BKIcq8gSAD4KRevXqpY8eOYUc86+rqwo6MAi3hAKvd6DvvoPEAJILtrcfgzQHEmDcQZd5AkAFwWlpamgoKClRZWRmyvbKyUiNHjnRpVfAKOg8AALvZ3nqcatpOxBjgHIZuAOLV0NCgTZs2BW9v3rxZ1dXVysrK0oABA1RWVqbJkydr+PDhGjFihBYvXqza2lrNmDHDxVUDaC8OrHoHnQegPbzcegzekBKIMgDwt/Xr16uoqCh4u6ysTJI0ZcoULVmyRJMmTdLu3bs1b948bd++Xfn5+VqxYoVyc3PdWjI8gAOsdqPvvIOhG4D28nLrMXhrB2LMG4gybyDIALTHmDFjZIxp9T4lJSUqKSlJ0orgdXSeHTbuPdDidvrOO2g8AE7wcuvxHm9xIsYA5xBkAAAAAAA/YvAWB4Zu3sHRUAAAECtaz270nXdwcBUAGLzBx4gybyDIAAA2YehmN/rOO2g8APiM7wdvW7Zs0ZgxY5SXl6chQ4boiSeeaN/+iDEgLuvq9oVtI8gAAO3hdOcBAAA4zfcXV+jUqZMWLFigYcOGqa6uTueee67GjRunbt26xbwvhm7ewdFQAAD8z8nOk2g929F33sHBVQD4nO8HbyeddJJOOukkSVLv3r2VlZWlPXv2xB1ksB9R5g0EGQCgvZzsPIZudqPvvIPGA4BQrp9qunr1ao0fP145OTkKBAJavnx52H0WLlyoQYMGKSMjQwUFBVqzZk1cj7V+/XodOXJE/fv3j/lrP9i9P67HBBCOIAOA1EDnAQCAVOf64K2xsVFDhw7VQw891OLnly1bplmzZumOO+7QW2+9pdGjR6u4uFi1tbXB+xQUFCg/Pz/sY9u2bcH77N69W9dff70WL16c8OcE93A0FAAAe9B5QGrh4CoAhHP9VNPi4mIVFxdH/Pz8+fM1bdo0TZ8+XZK0YMECrVy5UosWLVJ5ebkkacOGDa0+xsGDBzVhwgTdfvvtGjlyZJv3PXjwYPB2fT2/PLyCoZs3EGQAkDroPAAAkOpcf8Vbaw4dOqQNGzZo7NixIdvHjh2rtWvXRrUPY4ymTp2qiy++WJMnT27z/uXl5erZs2fwI57TFQAAANA6Og8AAKQCqwdvu3btUlNTk7Kzs0O2Z2dna8eOHVHt47XXXtOyZcu0fPlyDRs2TMOGDdPf//73iPe//fbb9fHHHwc/tmzZ0q7ngMTbuPcAr3az3Lq6fZJ4tZvtGuq2ur0EACmEzkNbNu49IImzGmy1rm5fsPEkOs8LaD3AHa6fahqNQCAQctsYE7YtkgsuuEBHjhyJ+rHS09OVnp4e0/rgnuYgg70YunkDIQbALXQeWkLj2e3ogZtE53kBrQe4x+rBW69evdSxY8ewo551dXVhR0eRejgKar9jowz2IcIAuIXOQyRHD93oPLvQdt5D6wHus/pU07S0NBUUFKiysjJke2VlZZtvntteFRUVysvLU2FhYUIfB/Fh6GY/Tj2wHyEGwE10Ho61ce8Bhm4WizR0o/PsResBdnD9FW8NDQ3atGlT8PbmzZtVXV2trKwsDRgwQGVlZZo8ebKGDx+uESNGaPHixaqtrdWMGTMSuq7S0lKVlpaqvr5ePXv2TOhjITacemA/hm72I8QAJAOdh2jRd/Zq7VVudJ69aD3AHq4P3tavX6+ioqLg7bKyMknSlClTtGTJEk2aNEm7d+/WvHnztH37duXn52vFihXKzc11a8lwEUdB7cbpB95AiAFIFjoP0Whp6Ebn2YG28yZaD7CL64O3MWPGyBjT6n1KSkpUUlKSpBXBVgzd7NZSmHEU1D6EGIBkovPQFoZudopm4Ebn2YnWA+zj+uDNVhUVFaqoqFBTU5PbS4EYutmOoZv9iDAA+Byd5z5OLbUXQzfvovcAO1l9cQU3lZaWqqamRlVVVW4vJaUd+ya7sA9DN/sRYQAQis5zV2ttxwFW96yr28fQzcPoPcBeDN5gLU49sB/v+2E/IgwAYBOGbnai6byN3gPsxqmmsBJDN/txSXn7EWEAAJswdLNPrAM3Os8+9B5gPwZvEfDeH+7h1FK7cUl5byDCACAyOi+5aDs7MXTzPnoP8AZONY2A9/5wR6Qw4yioHTgNwX4NdVuJMABoA52XPNEM3ei85Ir2vdxgN3oP8A4Gb7AGQze7tRVoHAV1HwEGALAJQzf7xDtwo/PsQvMB3sKpprACpyDYjaGb/QgwAIBNaDu7tOcVbnSeXWg+wHsYvMF1vNGu3TgVwX4EGADAFrEM3Oi85KDl/IPmA7yJwVsEvOlucjB0s1s0ocZRUHcRYAAQOzovMRi62cWJgRudZw+aD/Au3uMtAt50N/E4BcFuDN3sR4ABQHzoPOfRdXZh6OYvNB/gbbziDa5oK844CuqeaEONGHMP8QUAsEmsQzc6L3GcOq2UzrMH3Qd4H4M3JB1DN3vxHiD2I74AALaI51VudF7i0HH+Q/cB/sDgDUnF0M1escQaR0HdQXwBAGzB0M0eTg/c6Dw70H2Af/Aeb0ga3vvDXgzd7Ed8AQBsQdPZg6GbP9F9gL/wircIuNqVs6IJNI6CuoPTEuxHfAGAs+i8+LRn4EbnOYt+8y+6D/AfXvEWAVe7cg5DN3vFGm0cBU2uhrqtxBcAJACdFzuGbvZI1NCNznMf3Qf4E694Q8JwGoK94gk2Yiy5CC8AgC1oOjsk8lVudJ77aD/Av3jFGxIilkDjKGhycWqC/QgvAIAt2jt0o/OcQb/5G+0H+BuveIPjGLrZK95o4yho8hBeAAAbOPEqNzqv/ZIxcKPz3EX7Af7HK97gKE5FsBdDN/sRXgAAG9BzdmDo5n+0H5AaeMUbHBNrpHEUNHk4PcFuRBcAwBZODd3ovPglq9sYurmL/gNSB694gyMYutmrPfFGkCUe0QUAsAVDN/dxsDQ10H9AauEVbxFUVFSooqJCTU1Nbi/FepyOYC+GbnYjugDAHXReKFrOfckeuNF57qH/gNTDK94iKC0tVU1NjaqqqtxeitXiCTWOgibeurp9DN0sR3QBgHvovM85PXSj82LH0C110H9AauIVb4gbQzc7cYqC/YguAIANGLq5i2ZLLfQfkLoYvCEuDN3s5ETAcRQ0sYguAIANGLq5y62hG52XfLQfAAZviBnvA2Inhm52I7oAADag49zl5qvc6Lzko/8ASLzHG2IUb6xxFDSxOFXBbkQXAMAGiRq60XnRoddSC/0HoBmveEPUGLrZyamI4yhoYhBdAAAbMHRzjw0DNzovueg/AEdj8IaocFqCfZyMOGIsMYguAIAN6Dj3MHRLPfQfgGMxeEOb2hNrHAVNDBsiDq0jugAAbkv0wI3Oi8yWVmPollz0H4CW8B5vEVRUVCgvL0+FhYVuL8VVDN3s43TIEWTOaqjbSnQBgOVSofMYurnHlqEbkov+AxAJg7cISktLVVNTo6qqKreX4hpOS7APQze7EVwA4A1+7zwazh3r6vZZNXSj85KHBgTQGk41RRgnYo2joM6zKeQQjuACANggGUM3Oi+cbZ3G0C15aEAAbWHwhhAM3eyUiJgjyJxDcAEA3JasV7nReeFsG7oheWhAANFg8IYgTkuwE0M3uxFcAAC30XDusHXgRuclBw0IIFq8xxskORdsHAV1TqLeJ4QYcwYXUQBSz+bNm1VUVKS8vDydffbZamzkdx7cl8yhG533OYZuqY0GBPwpUa3HK97A0M1CtsYcPkNsAalp6tSpuueeezR69Gjt2bNH6enpbi8JKY6hW/LRaKADAf9KVOsxeEtxnJpgn0QGHUdB24/YAlLTO++8o86dO2v06NGSpKysLJdXhFSW7H5j6PYZ24dudF7i0YGAfyWy9TjVNIU5GW0EmTMYutmN2ALstXr1ao0fP145OTkKBAJavnx52H0WLlyoQYMGKSMjQwUFBVqzZk3U+9+4caO6d++uq666Sueee67uu+8+B1cPRI+DpsmXqLf/cBKdl3h0IOAuL7cer3hLUQzd7GN70KU6YguwW2Njo4YOHaobbrhB11xzTdjnly1bplmzZmnhwoUaNWqUHn74YRUXF6umpkYDBgyQJBUUFOjgwYNhX7tq1Sp9+umnWrNmjaqrq9W7d29dfvnlKiws1KWXXprw5wY0c2Poluqd54U+Y+iWeHQg4D4vtx6DtxTE0M0+iY46gqx9iC3APfX1oX9/paent/h+G8XFxSouLo64n/nz52vatGmaPn26JGnBggVauXKlFi1apPLycknShg0bIn59v379VFhYqP79+0uSxo0bp+rqagZvSBqGbsnlhYEbkoMOBBIn2s6TvN16DN5SDKcn2CUZUcfQLX6EFvCZf3/0ibp8mtxkOND4iSQF46fZnDlzNHfu3Jj2dejQIW3YsEG33XZbyPaxY8dq7dq1Ue2jsLBQO3fu1N69e9WzZ0+tXr1a3/jGN2JaBxAP2i35vDR0o/MSixZEKvB650n2tx6DtxTidLil8lFQJ3gp6lIRoQXYYcuWLcrMzAzejufqUrt27VJTU5Oys7NDtmdnZ2vHjh1R7aNTp0667777dOGFF8oYo7Fjx+rKK6+MeS1ALNwcuqVi53mtzRi6JRYtCCSeE50n2d96DN5SBEM3uyQr7Aiy+BBagD0yMzNDgqw9AoFAyG1jTNi21rR1igPgJIZuyeW1oRsSixYEksPJzpPsbT0GbxFUVFSooqJCTU1Nbi+l3ThFwS4M3exGaAH+06tXL3Xs2DHsiGddXV3YkVGkBts7j3ZLHq8O3Oi8xKEFAe+xvfU6uL0AW5WWlqqmpkZVVVVuL6VdEhFuqXgU1ClejbtUQWgB/pSWlqaCggJVVlaGbK+srNTIkSNdWhXcZGvnbdx7wPWhWyp1nle7jKFb4tCCgDfZ3nq84s3HGLrZJZlxR5DFhsgCvK+hoUGbNm0K3t68ebOqq6uVlZWlAQMGqKysTJMnT9bw4cM1YsQILV68WLW1tZoxY4aLqwY+5/bATUqdzvPqwA2JRQ8CdvNy6zF48ykb4g2fY+hmLyIL8If169erqKgoeLusrEySNGXKFC1ZskSTJk3S7t27NW/ePG3fvl35+flasWKFcnNz3VoyEGRDtzF08wY6LzHoQcB+Xm49Bm8+k8hwS5Ugc1Ky444Yiw2RBfjHmDFjZIxp9T4lJSUqKSlJ0oqA6NgwdEsFXh+4SXReotCDgDd4ufUYvPkIQze7+CHw/IzIAgC4yaaBm987zw9NxtAtMehBAMnA4M0nbIo3uBN4BFn0iCwAgJts6jY/D938MHBD4tCDAJKFwZsPJDre/BxkicDQzV4EFgDAbTYN3fzMT0M3Os95NCGAZGLw5nEM3ezip8jzGwILAOA224Zufuw8v7UYQzfn0YQAko3Bm4cxdLOLW6FHkLWNwAIAuMm2gZvkz87z29ANzqMJAbiBwZtH2RhwqcrNyGPo1jYCCwDgJpot8fw6cKPznEUTAnALgzcPSkbA+fEoaCL4NfT8gsACALjJ1qGbnzrPry3G0M059CAAtzF48xiGbvZwO/QIstYRWQAANzF0Syy3OwzeQA8CsAGDNw+xNeBSkduxx9AtMgILAOAmei3x3O6wRKPznEETArAFgzePSFbE+eUoaCK5HXvEWGQEFgDATbYP3bzeeW43WDLQec6gCQHYpIPbC0DbGLrZIxWCz6sILACAmxi6JRYNhmjRhABsw+DNcrZHXCqxIfg4CtoyAgsA4Cbbe83rQ7dUQee1H00IwEa+H7zt27dPhYWFGjZsmM4++2z9/Oc/d3tJUUtmxBFkka2r28fQzWIEFgCkLrc7b+PeA9YP3eANdF770YQAbOX793jr2rWrXn31VXXt2lX79+9Xfn6+vvjFL+qEE05we2mtYuhmBxsGbmgZcQUAcLPzvDJwo/Psx9Ct/ehCADbz/SveOnbsqK5du0qSPvnkEzU1NckY4/KqWueVkPM7m4ZuBFko4goAILnXeV5pNYZuSAV0IQDbuT54W716tcaPH6+cnBwFAgEtX7487D4LFy7UoEGDlJGRoYKCAq1Zsyamx/joo480dOhQ9evXT7feeqt69erl0Oqdl+yQI8haxtDNXsQVAHiH3zqPU0vhNDqvfehCAF7g+uCtsbFRQ4cO1UMPPdTi55ctW6ZZs2bpjjvu0FtvvaXRo0eruLhYtbW1wfsUFBQoPz8/7GPbtm2SpOOOO05//etftXnzZv3mN7/Rzp07k/LcYuFGyDF0a5lNQzeEIq4AwFv81HleG7jRefZj6NY+dCEAr3D9Pd6Ki4tVXFwc8fPz58/XtGnTNH36dEnSggULtHLlSi1atEjl5eWSpA0bNkT1WNnZ2RoyZIhWr16ta6+9tsX7HDx4UAcPHgzerq9P/C9EN0KOGGuZbUM3guxzxBUAeI9fOo+hG2AXuhCAl7j+irfWHDp0SBs2bNDYsWNDto8dO1Zr166Nah87d+4MRlV9fb1Wr16t008/PeL9y8vL1bNnz+BH//79438CUfBayPmVLVcuPRpDt8801G0lrgDAh7zSebQaEoHOix9dCMBrrB687dq1S01NTcrOzg7Znp2drR07dkS1j61bt+rCCy/U0KFDdcEFF+jmm2/WkCFDIt7/9ttv18cffxz82LJlS7ueQ2vcCjmOgoaybeCGzxFWAOBftneeV9/Pjc6zH0O3+NGGALzI9VNNoxEIBEJuG2PCtkVSUFCg6urqqB8rPT1d6enpsSwvLgzd7GDr0I0gI6wAIFXY2HleHLhJdB78jTYE4FVWv+KtV69e6tixY9hRz7q6urCjo17i1ZjzG4Zu9iKsAMD/bO08Og2JROfFhzYE4GVWD97S0tJUUFCgysrKkO2VlZUaOXJkQh+7oqJCeXl5KiwsdHS/bsYcR0E/x9DNXoQVAKQGGzvPy0M3Os9+dF58aEMAXuf6qaYNDQ3atGlT8PbmzZtVXV2trKwsDRgwQGVlZZo8ebKGDx+uESNGaPHixaqtrdWMGTMSuq7S0lKVlpaqvr5ePXv2dGSfDN3sYOvQDYQVAPiNVzrv3x99oi6fup7FcaPz7MfQLT60IQA/cL0w1q9fr6KiouDtsrIySdKUKVO0ZMkSTZo0Sbt379a8efO0fft25efna8WKFcrNzXVryXHx8hFUP7F56JbKQUZUAYA/pUrnuYmhG/yKPgTgF64P3saMGSNjTKv3KSkpUUlJSZJW5Dy3h24Emd0DN4mhGwDAn1Kh84C2pHLnxYs+BOAnVr/Hm5uceo83hm7us33olsqIKgCAGxL1Xr7JRufZj6Fb7OhDAH7D4C2C0tJS1dTUqKqqKu59uD10gzeGbqkaZEQVAMAtTnSe2xi6wY/oQwB+xOAtQWwYuqV6kDF0sxdRBQAA/C5VOy9e9CEAv2LwlgAM3dznhaFbqiKqAABon1TvPC9g6BYb+hCAnzF4iyDe9/6wYeiW6rwydCPIAABwh5ff442hG/yGoRsAv2PwFkE87/1hy9AtVYNsXd0+hm4AAKBNfniPN9iLzoseQzcAqaCT2wvwA1sGblLqDt0AAAD8js6zH0O36DF0A5AqeMVbOzF0Q6wIMgAAECs6z340XvQYugFIJQze2sGmoRu8IdWDjMgCACB2DN3gJ/QggFTD4C2Ctt5017ahG0Fmv1QfugEAYAsvX1wBdqLzosPQDUAqYvAWQWtvusvQDQAAwLu8dHEFOs9+DN2iw9ANQKpi8BYj24Zu8AaCDAAAxIqhG/yCoRuAVMZVTWNg49CNILMfQzcAAAB/ovNax8ANAHjFW9T+/dEnbi8hDEM3AAAAf6Lz7MfQrXUM3QDgMwzegAQiyAAAQKwYusHrGLoBwOcYvEVg+9WuCDL7MXQDAMBOtnce7EfnRcbQDQBCMXiLwOarXTF0AwAAiB+dh/Zg6BYZQzcACMfgDUgAggwAAMSKoZv9aDwAQKwYvHkMQWY/ggwAAAAAAEgM3jyFoRsAAIA/0Xn24+AqACAenaK50/HHH69AIBDVDvfs2dOuBaFlxJg3EGQAAK+h89xH59mPxgMAxCuqwduCBQuC/717927dc889uuyyyzRixAhJ0uuvv66VK1fqzjvvTMgiAS8gyAAAXkTnuYuhGwAA/hbV4G3KlCnB/77mmms0b9483XzzzcFtM2fO1EMPPaQXXnhBs2fPdn6VKY4gsx9DNwCAV9F5QOvoPABAe8T8Hm8rV67U5ZdfHrb9sssu0wsvvODIomxQUVGhvLw8FRYWuroOhm4AACBZ6LzkovPsx9ANANBeMQ/eTjjhBD399NNh25cvX64TTjjBkUXZoLS0VDU1NaqqqnJ7KbAcQQYA8As6L3kYugEAkBqiOtX0aHfffbemTZumV155JfjeH+vWrdPzzz+vRx55xPEFpjKCzH4M3QAAfkLnAZ+j8wAAToh58DZ16lSdeeaZ+slPfqKnnnpKxhjl5eXptdde0/nnn5+INaYkhm4AACDZ6LzkoPPsx9ANAOCUmAZvn376qW666Sbdeeed+vWvf52oNQGeQJABAPyEzksOhm72o/EAAE6K6T3eOnfu3OL7fsBZBJn9CDIAgN/QeQAAAM6L+eIKEyZM0PLlyxOwFEgM3QAAsNX//u//6qyzzlJeXp5mzpwpY4zbS3IcnZdYdJ79OLgKAKkrUa0X83u8DR48WD/4wQ+0du1aFRQUqFu3biGfnzlzpiMLA2xFkAFA6vnwww/10EMP6Z133lHnzp114YUXat26dcELEPgFnZc4DN3sR+MBQOpKZOvFPHh75JFHdNxxx2nDhg3asGFDyOcCgQBB1g4Emf0IMgBIXYcPH9Ynn3wi6bP3Q+vdu7fLK3IenQcgXg11W91eAgC0S6JaL+ZTTTdv3hzx4z//+Y8ji7JBRUWF8vLyVFhYmJTHY+gGAED8Vq9erfHjxysnJ0eBQKDF0yUXLlyoQYMGKSMjQwUFBVqzZk3U+z/xxBN1yy23aMCAAcrJydF//dd/6ZRTTnHwGdiBzksMOs9+HFwFALt5ufViHrwdzRjjy/c3kaTS0lLV1NSoqqoq4Y9FjHkDQQYA9mpsbNTQoUP10EMPtfj5ZcuWadasWbrjjjv01ltvafTo0SouLlZtbW3wPgUFBcrPzw/72LZtm/bu3atnn31W7733nj744AOtXbtWq1evTtbTcwWd5ww6z340HgDYz8utF/OpppK0dOlSPfjgg9q4caMk6bTTTtN3vvMdTZ482ZFFAbYhyADAHfX1oX//pqenKz09Pex+xcXFKi4ujrif+fPna9q0aZo+fbokacGCBVq5cqUWLVqk8vJySQo7tfJoTzzxhAYPHqysrCxJ0hVXXKF169bpwgsvjPk52Y7Ocw5DN2esq9vn9hIAAAkQbedJ3m69mAdv8+fP15133qmbb75Zo0aNkjFGr732mmbMmKFdu3Zp9uzZ7V5UKiHI7MfQDUCqq9nbqPSDgaQ+5sH9n/1+7N+/f8j2OXPmaO7cuTHt69ChQ9qwYYNuu+22kO1jx47V2rVro9pH//79tXbtWn3yySfq3LmzXnnlFd10000xrcML6DykGjoPQKrzeudJ9rdezIO3n/70p1q0aJGuv/764Larr75aZ511lubOnUuQxYChGwAArduyZYsyMzODtyMdBW3Nrl271NTUpOzs7JDt2dnZ2rFjR1T7+MIXvqBx48bpnHPOUYcOHXTJJZfoqquuinkttqPznEPn2Y+hGwC4y4nOk+xvvZgHb9u3b9fIkSPDto8cOVLbt293ZFGALQgyAHBXZmZmSJC1RyAQejTXGBO2rTX33nuv7r33XkfWYis6zxkM3exH4wGA+5zsPMne1ov54gqDBw/W7373u7Dty5Yt06mnnurIolIBQWY/ggwA/KFXr17q2LFj2BHPurq6sCOjqY7OAwAAXmN768X8ire7775bkyZN0urVqzVq1CgFAgH9+c9/1osvvthiqCEcQzekooa6rW4vAUCKSktLU0FBgSorKzVhwoTg9srKSl199dUursw+dF770Xn24+AqAPiL7a0X8+Dtmmuu0V/+8hf97//+r5YvXy5jjPLy8vTGG2/onHPOScQagaQjyADAWxoaGrRp06bg7c2bN6u6ulpZWVkaMGCAysrKNHnyZA0fPlwjRozQ4sWLVVtbqxkzZri4avvQee3D0M1+NB4AeJOXWy/mwZskFRQU6LHHHnN6LSmBIEsMJy8zT5ABgPesX79eRUVFwdtlZWWSpClTpmjJkiWaNGmSdu/erXnz5mn79u3Kz8/XihUrlJub69aSrUXnAQAA23i59eIavDU1NWn58uV69913FQgElJeXp6uuukodO3Z0en2+wtANAIDEGDNmjIwxrd6npKREJSUlSVqRd9F58aHz7MfBVQDwLi+3XsyDt02bNumKK67Q1q1bdfrpp8sYo3/961/q37+//vSnP+mUU05JxDqBpCDIAACpjM6LD0M3+9F4AAC3xHxV05kzZ+rkk0/Wli1b9Oabb+qtt95SbW2tBg0apJkzZyZijb5AkNmPIAMApDo6L3Y0HgAAaE3Mr3h79dVXtW7dOmVlZQW3nXDCCbr//vs1atQoRxfnFwSZ/Ri6AQBA58Gf6DwAgJtifsVbenq69u0LfyP7hoYGpaWlObIoG1RUVCgvL0+FhYXt2g9DNwAA4BV0XmzoPPsxdAMAuC3mwduVV16pm266SX/5y19kjJExRuvWrdOMGTN01VVXJWKNrigtLVVNTY2qqqrcXgoSjCADAOAzdF70GLrZj8YDANgg5sHbT37yE51yyikaMWKEMjIy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i85DLGg8b6AFAcBdMQ/eFixYkIBlwK84CuouQgsAEAs6D9GKduhG57mLFgQA98U8eJsyZUoi1gEfYujmLkILABArOg/RYOjmDbQgANgh5vd4q62tbfUDkDj1wE0NdVsJLQBIgAkTJuj444/XxIkTwz737LPP6vTTT9epp56qRx55xIXVOYPOQ1toPG+gBQEgdolqvZhf8TZw4EAFAoGIn29qaop1l/AZjoK6h8gCgMSZOXOmbrzxRv3yl78M2X748GGVlZXp5ZdfVmZmps4991x98YtfVFZWlksrjR+dh9bEMnSj89xDDwJAfBLVejEP3t56662Q259++qneeustzZ8/X/fee2+su4OPEGPuIrIAILGKior0yiuvhG1/4403dNZZZ6lv376SpHHjxmnlypX6yle+kuQVth+dh0joPG+gBwEgfolqvZhPNR06dGjIx/Dhw/X1r39dP/zhD/WTn/wk1t1Zq6KiQnl5eSosLHR7KZ7AaQfu4dRSAJBWr16t8ePHKycnR4FAQMuXLw+7z8KFCzVo0CBlZGSooKBAa9asceSxt23bFgwxSerXr58++OADR/adbHQeWkLneQM9CMDPvNx6MQ/eIjnttNNUVVXl1O5cV1paqpqaGl89p0SJNcY4CuocAgsAPtPY2KihQ4fqoYceavHzy5Yt06xZs3THHXforbfe0ujRo1VcXBzyvmUFBQXKz88P+9i2bVurj22MCdvW2umaXkTnpaZ1dfvoPA/gICyAVODl1ov5VNP6+tBfpsYYbd++XXPnztWpp54a6+7gccSYewgsAKng2O5IT09Xenp62P2Ki4tVXFwccT/z58/XtGnTNH36dEnSggULtHLlSi1atEjl5eWSpA0bNsS1xr59+4Yc9dy6davOP//8uPblNjoPzeJ5lRudl3z0IAAvi7bzJG+3XsyDt+OOOy5ssmeMUf/+/fX444/Hujt4GKcduIPAApBsVR82qFOX8CN9iXT4QKMkqX///iHb58yZo7lz58a0r0OHDmnDhg267bbbQraPHTtWa9eubdc6Jem8887T22+/rQ8++ECZmZlasWKF7rrrrnbv1w10HiQazytoQgBO8HrnSfa3XsyDt5dffjnkdocOHXTiiSdq8ODB6tQp5t3BozgK6g4CC0Cq2bJlizIzM4O3Ix0Fbc2uXbvU1NSk7OzskO3Z2dnasWNH1Pu57LLL9Oabb6qxsVH9+vXT008/rcLCQnXq1Ek/+tGPVFRUpCNHjujWW2/VCSecEPM6bUDnId6hG52XXDQhAD9wovMk+1sv5oK66KKLYv0S+AxDN3cQWABSUWZmZkiQtUdLr+SK5f05Vq5cGfFzV111la666qq412YLOi+1MXTzBpoQgF842XmSva0X16HLf//731qwYIHeffddBQIBnXnmmfrWt76lU045Ja5FwDsYuiUfcQUA7dOrVy917Ngx7IhnXV1d2JFR0HmpitNLvYEuBIBwtrdezFc1XblypfLy8vTGG29oyJAhys/P11/+8hedddZZqqysTMQaYQmCLPmIKwBov7S0NBUUFIR1SmVlpUaOHOnSquxE56Wm9jQeB1iThy4EgJbZ3noxv+Lttttu0+zZs3X//feHbf/ud7+rSy+91LHFwR6cepB8xBUARK+hoUGbNm0K3t68ebOqq6uVlZWlAQMGqKysTJMnT9bw4cM1YsQILV68WLW1tZoxY4aLq7YPnZd6GLp5A10IINV5ufViHry9++67+t3vfhe2/cYbb9SCBQucWJMVKioqVFFRoaamJreX4jqGbslFWAFA7NavX6+ioqLg7bKyMknSlClTtGTJEk2aNEm7d+/WvHnztH37duXn52vFihXKzc11a8lWovNSC0M3b6ANAcDbrRfz4O3EE09UdXW1Tj311JDt1dXV6t27t2MLc1tpaalKS0tVX1+vnj17ur0c13B6aXIRVgAQnzFjxsgY0+p9SkpKVFJSkqQVeROdlzpoPG+gDQHgM15uvZgHb1//+td100036T//+Y9GjhypQCCgP//5z/qf//kfffvb307EGuESjoImF2EFAHAbnZca2jt0o/OSgzYEAH+IefB25513qkePHvrRj36k22+/XZKUk5OjuXPnaubMmY4vEO5g6JY8RBUAwBZ0nv8xdPMG+hAA/CPmwVsgENDs2bM1e/Zs7dv32S/uHj16OL4wuIdTD5KHqAIA2ITO8zcazxvoQwDwlw6xfsGBAwe0f/9+SZ+F2J49e7RgwQKtWrXK8cUh+TgKmjxEFQDANnSefzkxdKPzEo8+BAD/iXnwdvXVV2vp0qWSpI8++kjnnXeefvSjH+nqq6/WokWLHF8gkoehW3I01G0lqgAAVqLz/ImhmzfQhwDgTzEP3t58802NHj1akvTkk0+q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5EgdPnzY788POTk5qqys1F//+le9/fbb3i6nxa5duya73a6cnByFh4dr5MiR2rt3ryIiIrxdGuDX6PP8B32ef6DP8230eb6JPs9/8RdvHnTt2jVdvXpVtbW1qq2tVZ8+fbxdkse89957mjhxot+fbK83zMnJyZKkiIgIv2/GAtHRo0d16NAhTZ482duleERwcLA6d+4sSbp69arq6ur8/i8l+vXrp4SEBElSnz59FBERoe+++867RXnAhAkT1LVrV2+X0Wr79u3TsGHD1L9/f3Xt2lWTJ0/W9u3bvV0WEBDo83wffZ5/oM/zffR5vok+z3+1m8Fbbm6upkyZosjISNlstib/lH7Dhg0aOHCgwsLClJiYqF27drl8/N69e2vp0qWKiYlRZGSkJk2apNtvv92DCRqzOtMPbd26VT/96U/drPjmrM509OhRdenSRVOnTtXIkSP1/PPPe7D6prXF81RRUaHExETdc8892rlzp4cqb1pb5Fm6dKkyMjI8VPHNtUWmixcvKj4+XlFRUVq2bJl69erloeqb1pbnh88//1z19fWKjo52s+rmtWUmb3E34+nTp9W/f3/H7aioKJWVlbVF6YBX0efR50n0eZ5An0efdyP6PM+hz2u/2s3graqqSvHx8Vq3bl2T27ds2aLFixdrxYoVKiwsVHJystLS0nTy5EnHPomJiRo+fHijr9OnT+vChQvKyspSaWmpysrKlJeXp9zcXL/OdF1FRYV2797dJr+VsjpTbW2tdu3apfXr1+uzzz5Tdna2srOz/TqTJJWWlqqgoECvvfaaZs2apYqKCr/N889//lODBw/W4MGDLctwo7Z4jrp37679+/fr+PHj+sc//qFz5875fSZJ+vbbbzVr1ixt3LjR0jxtmcmb3M3Y1G/YbTabpTUDvoA+jz6PPs8/8tDn+U8miT7P0+jz2jHTDkkymZmZDdbuuusuM3/+/AZrQ4cONcuXL3fpmFu3bjULFixw3F69erV54YUX3K7VVVZkum7z5s3m8ccfd7fEFrMiU15enklNTXXcXr16tVm9erXbtbrKyufpuvvvv9/k5+e3tsQWsSLP8uXLTVRUlBkwYIDp2bOnCQ8PN6tWrfJUyTfVFs/R/PnzzdatW1tbYotZlenq1asmOTnZbN682RNltoiVz1NOTo555JFH3C3Rba3JuHv3bjNt2jTHtkWL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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "NameError", + "evalue": "name 'derivs_helmholtz' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[10], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m order_plot \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m\n\u001b[0;32m----> 2\u001b[0m x_grid, y_grid, plot_me_hem \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_helmholtz, derivs\u001b[38;5;241m=\u001b[39m\u001b[43mderivs_helmholtz\u001b[49m, n_initial\u001b[38;5;241m=\u001b[39mn_init_helm, n_order\u001b[38;5;241m=\u001b[39morder_helm)\n\u001b[1;32m 3\u001b[0m x_grid, y_grid, plot_me_lap \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_laplace, derivs\u001b[38;5;241m=\u001b[39mderivs_laplace, n_initial\u001b[38;5;241m=\u001b[39mn_init_lap, n_order\u001b[38;5;241m=\u001b[39morder_lap)\n\u001b[1;32m 5\u001b[0m fig, (ax1, ax2) \u001b[38;5;241m=\u001b[39m plt\u001b[38;5;241m.\u001b[39msubplots(\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m2\u001b[39m, figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m15\u001b[39m, \u001b[38;5;241m8\u001b[39m))\n", + "\u001b[0;31mNameError\u001b[0m: name 'derivs_helmholtz' is not defined" + ] } ], "source": [ @@ -239,22 +273,22 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(0.5, 1.0, 'Error vs Order (Odd Only), Slope: 149.36134613278')" + "" ] }, - "execution_count": 46, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAG2CAYAAACzoLZvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABXXElEQVR4nO3de1hU1f4/8PcAMgjCKKAICIjmBUREQQ3NCk0QDdPSKBWxNNPsGJLVMTPTUrIM6aRSaGme8ohWohmJVBrmJa9Y3kMxlIsEKsNFEJj1+4Mv83OY4TIwMAzzfj0PT83ae/Zee2Rm3qy9P3tJhBACRERERK2cib47QERERNQQDC1ERERkEBhaiIiIyCAwtBAREZFBYGghIiIig8DQQkRERAaBoYWIiIgMAkMLERERGQSGFiIiIjIIDC06tHnzZkgkklp/Dhw4oO8u6o0QAlu3bsXIkSPRqVMnSKVS9OjRA/PmzcP169ebvP1r165BIpFg8+bNTe9sAx08eBBSqRR///23Snt5eTliY2Ph7+8PmUyG9u3bw8PDA//+97+Rn5/f4O13794dM2bMqHe96t+7a9euNWi7e/fuxbhx49C5c2dIpVK4uLggPDwc58+fb3DfNJFIJHjnnXe0ft7nn38OZ2dnFBcXN2n/Fy5cQFhYGHr06AELCwvY29tj0KBBePnllyGXy5XrzZgxA927d2/SvvRlz549mD59Ovr374927dpBIpE06Hk//fST8nMoLy9PbfnXX3+NgQMHKl+3KVOmNPh9+Z///AcPPvgg7O3tIZVK4erqimeeeQbnzp3TuP7ff/+N559/Hk5OTpBKpXB2dsbEiRNV1rlx4wYiIiLwyCOPoGPHjnW+txcvXoyBAwfC1tYWFhYW6NGjB2bPnq32vtT2NRFCYNOmTRgyZAisrKxgY2ODQYMGYdeuXSrrbdmyBc888wz69OkDExOTWn+3UlNTMW7cOLi6uqJ9+/awtbWFv78/vvrqK5X1KisrER0djTFjxqBbt26wtLRUfn7cuXNHZd36vnPef/99lfX379+P0aNHo0uXLujQoQO8vb3xn//8B5WVlXW+Vq0JQ0sz2LRpE44cOaL2M2jQIH13TS8UCgWeffZZTJ06FV27dsXmzZuRlJSEiIgI7N69G97e3jh06JC+u6kVIQQiIiLwwgsvwM3NTdleUlKC0aNH41//+hcGDhyI//3vf0hMTERYWBji4uIwcOBAXLp0SW/9fv311xEcHAyFQoH169cjOTkZS5cuxfHjxzFo0CB89913Ld6n8PBwWFlZ4YMPPmj0Nk6fPg1fX1+cP38eb7/9Nvbu3YtPP/0U48aNQ1JSEm7duqXDHuvPzp07cfToUXh6emLAgAENek5RURFeeOEFODk5aVz+ySefYNq0afDz88OuXbuwatUqHDhwACNGjMDt27fr3X5+fj6Cg4OxceNG7Nu3D8uWLcPp06cxdOhQtd/1s2fPwtfXF2fPnsXq1auRnJyM6OhodOrUSWW9tLQ0fP311zA3N8fYsWPr3P+dO3fw7LPP4ssvv8TevXuxcOFC7NmzB0OHDq31j4T6XhMAmDt3LubOnYtRo0Zh9+7d2LFjB6ZMmYKSkhKV9f773//i3LlzGDJkCHr27FlnP11cXLBy5UokJiZiy5Yt6N69O8LCwvDee+8p17t79y7eeecduLm5ISYmBomJiXjhhRcQFxeH4cOH4+7du8p1x40bp/G7ZvTo0QCgEgZ/+uknPPbYY6ioqMCGDRuQkJCARx99FK+88goiIyPrfI1bFUE6s2nTJgFAHD9+XOvnKhQKUVJSonFZSUmJUCgUTepbcXFxk57fFCtXrhQAxPvvv6+2LCcnR7i5uQkHBwdx+/btOrdT1zGkp6cLAGLTpk1N7G2V+l7zxMREAUBcvHhRpX327NkCgNi2bZvacy5duiRkMpno16+fqKioqLcPbm5uIjw8vN71qn/v0tPT61xv69atAoCYO3eu2rKioiLh6+srLC0txZUrV+rdpyYAxNKlSxv13NWrVwuZTNbo39Pp06cLKysrIZfLNS6//98yPDxcuLm5NWo/+lZZWan8/3nz5omGfITPmzdPDBw4ULz11lsCgPjnn3+Uy0pLS4VMJhMhISEqzzl8+LAAIN58881G9fP8+fMCgFiyZImyTaFQCB8fH+Hj4yNKS0vrfP79x3n8+HGt39vV78/PP/9c4/K6XhMhhNi5c6cAIOLj4+vd1/19HTdunNa/W0OHDhUuLi7KxxUVFSIvL09tvR07dggA4r///W+d2ysqKhIdOnQQDz30kEr71KlThVQqFUVFRSrtgYGBwsbGRqs+6xNHWvREIpHg5ZdfxqeffgoPDw9IpVJ8+eWXyuG+ffv24fnnn0fnzp1haWmJsrIyKBQKfPDBB+jbty+kUim6dOmC6dOn48aNGyrbfvTRR+Hl5YWUlBQMGzYMlpaWeP755zX2IyYmBhKJBGlpaWrL3njjDZibmyuHTk+fPo3HH38cXbp0gVQqhZOTE8aNG6e2//vdu3cPH374ITw8PPD666+rLXdwcEBUVBRu3ryJzz//vEHHkJWVhaeffhrW1taQyWQIDQ1FTk6Oxv2fOHEC48ePVw4dDxw4ENu3b1dZp67XvDaxsbEYPHgw+vTpo2zLycnBF198gaCgIISGhqo9p3fv3njjjTdw7tw5JCQkKNvLy8vx+uuvo2vXrrC0tMRDDz2EY8eOadzv0aNHMXz4cFhYWMDJyQmLFi1CeXl5rf2834oVK9CpUyesXr1abZmVlRU++eQTlJSUYM2aNcr2GTNmoEOHDkhLS8PYsWPRoUMHuLi44NVXX63z9bl27RrMzMwQFRWltiwlJQUSiQQ7duxQtk2dOhVyuRzbtm1r0LHUlJ+fDxsbG3To0EHj8vpOo5SWlmLRokVwd3eHubk5nJ2dMW/ePLXh+O7du+Pxxx/Hzp074e3trTwd8Z///Edtm3K5HAsXLlTZZkRERJNOg5mYaPeRffDgQcTFxWHjxo0wNTVVW3727FkUFBSojWb4+/vD1tYW3377baP62blzZwCAmZmZsi0lJQWpqamIiIiAVCqt8/naHmdD9l+tvtcEAD7++GN0794dTz/9dL37ampf7e3tVfppamoKOzs7tfWGDBkCAPWetouPj0dRURFmzZql0t6uXTuYm5ujffv2Ku0dO3aEhYVFY7vf8vSdmtqS6r94jx49KsrLy1V+av5lDUA4OzsLb29vsXXrVvHLL7+Is2fPKrfh7OwsZs+eLX788UfxzTffiIqKCuVf8S+//LLYu3ev+PTTT0Xnzp2Fi4uLyl8KjzzyiLC1tRUuLi7ik08+Efv37xe//vqrxj7/888/wtzcXCxevFilvaKiQjg5OYknn3xSCFGV3u3s7ISfn5/Yvn27+PXXX0V8fLyYM2eOOH/+fK2vSfVfbG+88Uat6xQWFgoTExMRFBRU7zGUlJQIDw8PIZPJxCeffCKSkpLE/Pnzhaurq9pfY7/88oswNzcXI0aMEPHx8WLv3r1ixowZauvV9ZprUlZWJtq3by9ef/11lfbqkYzY2Nhaj7X6L9AXX3xR2RYeHi4kEol47bXXxL59+0R0dLRwdnYWNjY2KiMt586dE5aWlsLT01P873//E7t27RJBQUHKY69rpCUrK0sAEKGhobWuI4QQXbp0EX369FHpm7m5ufDw8BCrV68WP/30k3j77beFRCIRy5YtU3kuaoy0TJw4Ubi6uqq9jpMnTxZOTk6ivLxcpd3Dw0P5+6at9957TwAQzz77rDhw4ECto5bVx3T/X8MKhUIEBQUJMzMzsWTJErFv3z6xevVqYWVlJQYOHKgyKuDm5iacnZ2Fq6ur+OKLL0RiYqKYOnWqACA+/PBD5XrFxcXCx8dH2Nvbi+joaPHTTz+Jjz/+WMhkMjFy5EiVkZ+lS5cKAGL//v1aHXN9Iy0lJSWiV69e4rXXXlPZz/2fFdXvzy+++ELt+Y6OjsLExETcvXu3Qf2pqKgQpaWl4sKFC+KJJ54QXbp0ERkZGcrly5cvFwDEt99+K4KDg4VUKhVWVlZi3Lhx4sKFC7Vut6EjLeXl5aKkpEScOnVKDB8+XPTu3VsUFhaqrNOQ16S8vFxIpVIxceJE8dFHHwlXV1dhYmIi3N3dxYcffljnCGxDRloqKytFeXm5yM3NFevWrRNmZmbi008/rfM5Qvz/z6ldu3bVud6wYcOEjY2N2qjl0aNHhVQqFfPmzROZmZni9u3bYsuWLaJdu3Zi9erV9e6/tWBo0aHqXypNP6ampirrAhAymUzcunVL4zamT5+u0n7hwgUBQLz00ksq7b///rvaMO4jjzwiAIiff/65Qf1+8sknRbdu3VSGOauHV7///nshhBAnTpwQAERCQkKDtllt27ZtAkC9b0oHBwfh4eFR7zHExsZqfOO+8MILah9sffv2FQMHDlT7cnz88ceFo6Oj8nhre81rU/2a1zwF9P777wsAYu/evbU+9+7duwKACA4OFkL8/3/XBQsWqKz39ddfCwAqoSU0NFS0b99e5OTkKNsqKipE37596w0tR48eFQDEv//97zqPbejQoaJ9+/bKx+Hh4QKA2L59u8p6Y8eOVQk3QqiHlv379wsAYufOncq2zMxMYWZmphZ4hKgavnZwcKizf7UpLS0VEyZMUHm/DRw4UCxevFjk5uaqrFsztOzdu1cAEB988IHKevHx8QKAiIuLU7a5ubkJiUQiUlNTVdYdPXq0yhdFVFSUMDExUTtV/M033wgAIjExUdm2bNkyYWpqKg4cOKDVMdcXWl599VXRo0cPZYDT9AWdn58vTExMxMyZM1Wem5aWpnwts7KyGtQfqVSqfE7v3r3V/ph58cUXBQBhY2MjZs6cKX766Sfx3//+V7i5uQl7e/ta99OQ0JKdna3yeTt06FCRmZnZqNekels2NjaiW7du4ssvvxQ///yzmDNnTr2nzBoSWqpfBwDC3NxcrF+/vs71hRDixo0bwsHBQfj5+al8TtdU/Xly/x9F9zt06JBwcnJSeZ/U/L1v7Xh6qBls2bIFx48fV/n5/fff1darrqTR5KmnnlJ5vH//fgBQqyYZMmQIPDw88PPPP6u0d+rUCSNHjmxQf5977jncuHEDP/30k7Jt06ZN6Nq1K4KDgwEADzzwADp16oQ33ngDn376aZMrTWoSQqgN4Ws6hv3798Pa2hrjx49XaZ8yZYrK47S0NFy8eBFTp04FAFRUVCh/xo4di+zsbLWLBGu+5rXJysoCAHTp0qVB62tSfazV/67V/az29NNPqw1t79+/H6NGjYKDg4OyzdTUVOOpqMbS9O8gkUgQEhKi0ubt7V1vdcajjz6KAQMGYN26dcq2Tz/9FBKJBLNnz1Zbv0uXLsjNzUVFRYXW/ZZKpdi5cyfOnz+PNWvW4JlnnsE///yDFStWwMPDo86Ln3/55RcA6u+tyZMnw8rKSu291a9fP7WLYKdMmQK5XI5Tp04BqKry8fLygo+Pj8rvXlBQkFol4dtvv42Kigo88sgjWh93bY4dO4aYmBh89tlnaqcD7mdra4upU6diy5Yt+Oyzz3Dr1i388ccfmDp1qvLUSUNPfxw+fBhHjhzBV199BWtrawQEBKhUECkUCgBVp542btyIUaNGYdq0aUhISEBeXp7K74m27O3tcfz4cfz222/YsGEDbt26hYCAAGRnZyvXaehrUt1PuVyOHTt2YPr06Rg5ciRiY2MxYcIEREdHo6ioqNF9ffPNN3H8+HH88MMPeP755/Hyyy9rPGVb7datWxg7diyEEIiPj6/z36P6FHvNU0MAcPLkSUycOBG+vr74/vvv8csvv2DRokV466238O677zb6eFqa+gk/ajIPDw/4+fnVu56jo2ODl1VfBa/pOU5OTmpfIHVtu6bg4GA4Ojpi06ZNCAwMxO3bt7F792688soryg8umUyGX3/9FStWrMCbb76J27dvw9HRES+88ALeeusttGvXTuO2XV1dAQDp6em17r+4uBh5eXkYOHBgvceQn5+v8qVdrWvXriqPb968CQBYuHAhFi5cqHG/NcscG/qaVV+9X/M8cEOOtXqZi4sLgP//71qz/2ZmZmrntfPz89XW0/RcTRrSN6CqHLW6b9UsLS3VjlUqlaK0tLTe/c6fPx+zZs3CpUuX0KNHD2zYsAGTJk3S2GcLCwsIIVBaWlrrtSn18fDwgIeHB4CqABYTE4PIyEgsWbJE7Vqmavn5+TAzM1NeB1FNIpGga9euahUodf0bVK978+ZNpKWl1fq+0FRiq0vPP/88nnzySfj5+Smvy6n+95LL5ZBKpbC2tgZQdX2WEAIvvfQS5syZAxMTE4SFhcHBwQFJSUkar6/QpLo68sEHH8T48ePxwAMP4M0331SWCFdvJygoSOV5Pj4+cHR0VAa+xjAzM1N+5g4fPhxjxoyBu7s73n//fXz88cdavSadOnWCRCKBtbU1HnzwQZX9BAcHIyEhAefPn1deY6ItV1dX5fux+lqiRYsWITw8XO138Pbt2xg9ejQyMzPxyy+/oEePHrVut7y8HFu2bMGAAQM0fv/MmzcPDg4O2Llzp/JzPSAgACYmJnjnnXcwderUOrffWnCkRY/qujiw5rLqN/z9fzlUy8rKgr29fYO3XZOpqSnCwsKQkJCAO3fuYOvWrSgrK8Nzzz2nsl7//v2xbds25OfnIzU1FaGhoVi+fDk++uijWrft6+uLTp06Yffu3RBCaFxn9+7dUCgUyjK9uo7Bzs5OGUjuV/NC3OrXY9GiRWqjXtU/Pj4+9e5Pk+pt1yyjDQgIgJmZmcpFtjVVL6s+1up/15r9r6ioUPuytLOz03jBcW0XId/P0dER/fr1w759+9RKNqsdOXIEN2/eVPt3aIopU6bAzs4O69atw44dO5CTk4N58+ZpXPfWrVuQSqWNDiw1SSQSLFiwAB07dsTZs2drXc/Ozg4VFRX4559/VNqFEMjJyVF7b9X1b1D972lvb4/+/fvX+ru3ZMmSph5enc6dO4cdO3agU6dOyp9Vq1YBAHr27IkRI0Yo17WyssJ///tf5OXl4cyZM7h58yY2b96MS5cuYdiwYRovZq2PtbU1+vbti8uXLyvbvL29a11fCNHkC1rv161bNzg5Oansv6GvSfv27dGrV69a+wk0/eLb+w0ZMgQVFRW4evWqSvvt27fx2GOPIT09HcnJyXW+fkDV6F5ubq7GURag6j4xvr6+ahcfDx48GAqFAhcuXGjagbQQhhYDUX2apOaNiI4fP44LFy5g1KhRTdr+c889h9LSUvzvf//D5s2b4e/vj759+2pcVyKRYMCAAVizZg06duxY519I5ubmeO2113DhwgV8+OGHastzc3OxaNEiODg41Ppmu19AQAAKCwuxe/dulfatW7eqPO7Tpw969eqFM2fOwM/PT+NP9V+a2qr+S/7KlSsq7V27dsXzzz+PpKQkxMfHqz3v8uXLWLVqFfr164cJEyYAqDqFAlTd3Ot+27dvVztNEhAQgJ9//lkltFVWVmrclyaLFy/G7du3NY48FRcXY/78+bC0tMSCBQsatL2GsLCwwOzZs/Hll18iOjoaPj4+GD58uMZ1r169Ck9Pz0btR1OYB6oCvVwur/N+HNXvnZrvrW+//RbFxcVq761z587hzJkzKm1bt26FtbW1crTh8ccfx5UrV2BnZ6fxd6+5b263f/9+tZ/w8HAAVcF548aNas/p1KkTvL29YW9vj927d+PSpUt45ZVXGrX/vLw8/Pnnn3jggQeUbcHBwbC0tMSPP/6osu6pU6eQk5OjNqrRFGlpabhx44bK/rV5TZ566inI5XIcPnxYZbuJiYno0KED+vXrp7O+7t+/HyYmJiqjHNWB5erVq9i3b5/aKLQmn3/+OSwsLNRONVdzcnLCiRMn1G4kd+TIEQBVQc8Q8PRQMzh79qzG8/I9e/ZUG/5rqD59+mD27Nn45JNPYGJiguDgYFy7dg1LliyBi4tLk79o+vbtC39/f0RFReH69euIi4tTWb5nzx6sX78eEyZMQI8ePSCEwHfffYc7d+7U+5f5G2+8gTNnzij/GxoaCplMhj/++AMffvghCgsLsWfPHshksnr7OX36dKxZswbTp0/HihUr0KtXLyQmJiIpKUlt3c8++wzBwcEICgrCjBkz4OzsjFu3buHChQs4deqUSsmtNrp164YePXrg6NGjmD9/vsqy6OhoXLp0CdOmTUNKSgpCQkIglUpx9OhRrF69GtbW1vj222+Vf+14eHhg2rRpiImJQbt27fDYY48pb7xlY2Ojsu233noLu3fvxsiRI/H222/D0tIS69ata3AJ7bPPPotTp05h9erVuHbtGp5//nk4ODjg0qVLWLNmDa5cuYKtW7fqfIj4pZdewgcffICTJ09q/LIEqq4jOHbsGGbOnKnS/s4772DZsmXYv3+/MuBpMnv2bNy5cwdPPfUUvLy8YGpqiosXL2LNmjUwMTHBG2+8UetzR48ejaCgILzxxhuQy+UYPnw4/vjjDyxduhQDBw5EWFiYyvpOTk4YP3483nnnHTg6OuKrr75CcnIyVq1aBUtLSwBAREQEvv32Wzz88MNYsGABvL29oVAokJGRgX379uHVV1/F0KFDAQDLly/H8uXL8fPPP9d7Xcvff/+N48ePA/j/ofmbb74BUFWOXX1aQNNrVX0dzfDhw1VGj7799ltkZWXBw8MDpaWlOHDgAD7++GPMmTMHTzzxhMo2qkNA9S0SCgoKMHr0aEyZMgW9evVC+/btcfnyZXz88ccoKyvD0qVLlc/t2LEjli9fjoULF2LGjBl49tlnkZOTgyVLlsDV1RUvvfSSyr6qj6t6BOLEiRPKUbhJkyYBAP744w8sWLAAkyZNQo8ePWBiYoI///wTa9asgZ2dnUpA1+Y1WbhwIb7++mtMnjwZ7777Lrp164ZvvvkGu3fvxurVq1WuiTl//rzyGr+cnByUlJQo++7p6akM4rNnz4aNjQ2GDBkCBwcH5OXlYceOHYiPj8drr72m/G64e/cugoKCcPr0acTExKCiogJHjx5V7q9z585qN7HLysrC3r17ERoaWut1kgsWLMD8+fMREhKCF198EZaWlvj555/x0Ucf4bHHHmvwzQr1Tk8XALdJdVUPARAbNmxQrgtAzJs3r9ZtaLpBXWVlpVi1apXo3bu3aNeunbC3txfTpk0T169fV1nvkUceEf369dO6/3FxcQKAaN++vSgoKFBZdvHiRfHss8+Knj17ivbt2wuZTCaGDBkiNm/e3KBtKxQK8fXXX4tHH31UdOzYUZibmwt3d3cxd+5c8ffff6utX9cx3LhxQzz11FOiQ4cOwtraWjz11FPK0s2aFQZnzpwRTz/9tOjSpYto166d6Nq1qxg5cqRKNVNjbgq4ZMkS0alTJ403ybp3755Yt26dGDp0qOjQoYOQSqWiT58+4vXXX9d406iysjLx6quvii5duggLCwvx4IMPiiNHjmi8udyhQ4fEgw8+KKRSqejatat47bXXlP9u9d1crlpiYqIYO3assLOzE+3atRPOzs4iLCxMnDt3Tm3d8PBwYWVlpdZeXXVxP9Rxc7lHH31U2Nra1lqK/PPPPwsA4uTJkyrtr776qpBIJHWWxAohRFJSknj++eeFp6enkMlkwszMTDg6Ooonn3xSHDlyRO2YalZ43L17V7zxxhvCzc1NtGvXTjg6Ooq5c+eq3fDQzc1NjBs3TnzzzTeiX79+wtzcXHTv3l1ER0er9amoqEi89dZbok+fPsLc3FzIZDLRv39/sWDBApUKMG1Knuv6jKnvRoSaKmWEqLqRmo+Pj7CyshLt27cXfn5+4vPPP9dY2uvm5qby2pWWlopZs2YJDw8P0aFDB2FmZia6desmpk2bpvH3SQghNmzYILy8vIS5ubmws7MTU6dOVfsME0LU+VlaLScnR0ybNk307NlTWFpaCnNzc9GjRw8xZ84clXJrbV8TIYTIyMgQzzzzjOjUqZMwNzcX3t7eGkvDq7eh6ef+98MXX3whRowYIezt7YWZmZno2LGjeOSRR9RuFld9o0xt/p1XrFghAIhffvmlzuP99ttvxUMPPSTs7e2FlZWV6Nevn3j33XfVbjjXmkmEqOVCAyKqVVZWFtzd3bFlyxadVu+0Rbm5uXBzc8O//vWvWm/VHxYWhqtXr6pN5zBkyBC4ubk1elRM17p37w4vLy/s2bNH310hMko8PUTUCE5OToiIiMCKFSswefJknV6Y11bcuHEDV69exYcffggTE5Nar4+4cuUK4uPjlaXH1eRyOc6cOYMvv/yyJbpLRAaAoYWokd566y1YWloiMzNTrUyYgI0bN2L58uXo3r07vv76azg7O2tcLyMjA2vXrsVDDz2k0m5jY1PnVAFEZHx4eoiIiIgMAse0iYiIyCAwtBAREZFBYGghIiIig9BmLsRVKBTIysqCtbW1VrewJyIiIv0RQqCwsBBOTk71VmLqJbSkp6fj+eefx82bN2FqaoqjR4/CysoKAFBSUgIPDw9Mnjy5zpkva8rKymIFBxERkYG6fv16vdMJ6CW0zJgxA++99x5GjBihnCSt2ooVK5S3t9ZG9Twy169fV7v9OREREbVOcrkcLi4uDZoPrsVDy7lz59CuXTvljJq2trbKZX/99RcuXryIkJCQOmdl1aT6lJCNjQ1DCxERkYFpyKUdWl+IWz0JnJOTEyQSCRISEtTWWb9+Pdzd3WFhYQFfX18cPHhQueyvv/5Chw4dMH78eAwaNAgrV65ULlu4cCGioqK07RIREREZAa1DS3FxMQYMGIC1a9dqXB4fH4+IiAgsXrwYp0+fxogRIxAcHIyMjAwAQHl5OQ4ePIh169bhyJEjSE5ORnJyMnbt2oXevXujd+/eTTsiIiIiapO0Pj0UHByM4ODgWpdHR0dj5syZmDVrFgAgJiYGSUlJiI2NRVRUFLp164bBgwcrL5odO3YsUlNTcevWLWzbtg07duxAUVERysvLYWNjg7ffflvjfsrKylRu8S2Xy7U9FCIiIjIgOr1Py71793Dy5EkEBgaqtAcGBuLw4cMAgMGDB+PmzZu4ffs2FAoFUlJS4OHhgaioKFy/fh3Xrl3D6tWr8cILL9QaWAAgKioKMplM+cPKISIiorZNp6ElLy8PlZWVcHBwUGl3cHBATk4OAMDMzAwrV67Eww8/DG9vb/Tq1QuPP/641vtatGgRCgoKlD/Xr1/XyTEQERFR69Qs1UM1rwAWQqi01XeKacaMGfXuQyqVqpRKExERUdum05EWe3t7mJqaKkdVquXm5qqNvhARERFpQ6ehxdzcHL6+vkhOTlZpT05OxrBhw3S5KyIiIjIyWp8eKioqQlpamvJxeno6UlNTYWtrC1dXV0RGRiIsLAx+fn7w9/dHXFwcMjIyMGfOHJ12nIiIiIyL1qHlxIkTCAgIUD6OjIwEAISHh2Pz5s0IDQ1Ffn4+li9fjuzsbHh5eSExMRFubm666zURERG1mEqFwLH0W8gtLEUXawsMcbeFqUnLT04sEUKIFt9rM5DL5ZDJZCgoKOBt/ImIiHRk79lsLPv+PLILSpVtjjILLA3xxBgvxyZvX5vvb51e00JERERtx96z2Zj71SmVwAIAOQWlmPvVKew9m92i/WFoISIiIjWVCoFl35+HptMx1W3Lvj+PSkXLnbBhaCEiIiI1x9JvqY2w3E8AyC4oxbH0Wy3WJ4YWIiIiUpNbWHtgacx6usDQQkRERGq6WFvodD1dYGghIiIiNUPcbeEos0Bthc0SVFURDXG3bbE+MbQQERGRGlMTCZaGeAKAWnCpfrw0xLNF79fC0EJEREQajfFyROy0QegqUz0F1FVmgdhpg3RynxZtNMssz0RERNQ2jPFyxGjPrq3ijrgMLURERFQnUxMJ/Hva6bsbPD1EREREhoGhhYiIiAwCQwsREREZBIYWIiIiMggMLURERGQQGFqIiIjIIDC0EBERkUFgaCEiIiKDwNBCREREBoGhhYiIiOr1x407eDbuKP64cUdvfWBoISIionp9dyoTR67m47tTmXrrA+ceIiIiIo1u3C7B7eJySCTA92eyAFT9d5JvNwgBdLJqh26dLFusPwwtREREpNFDq/artd0qvofHP/lN+fja++NarD88PUREREQaRT89ACYS1Tbxf/81M5EgJtSnRfvDkRYiIiJSk1NQip2nM6EQmpcnzBsOL2dZi/aJoYWIiIhU/PBHNt7c+ScK7pbD3EyCexUCEgkgBJT/1QeeHiIiIiIAgLy0HJHxqZi39RQK7pajv7MMXz43FJ07SNHfWYYVE73Q31mGzh2ksOtg3uL9kwihr7ykW3K5HDKZDAUFBbCxsdF3d4iIiAzK71fzEbn9DDLv3IWJBHjp0QfwymO90M7UBGUVlTA3NYFEIoEQAvcqFZCamepkv9p8f/P0EBERkRG7V6FAdPJlfJZyBUIALrbtseZpH/h1t1Wuc39AkUgkOgss2mJoISIiMlKXbxYiYlsqzmfLAQBP+3XD2yH90EHaOuNB6+wVERERNRuFQmDz4Wt4f+9F3KtQoJNlO0Q96Y0xXl313bU6MbQQEREZkZyCUrz2zRkc/CsPAPBI7874cJI3uthY6Lln9dNLaDEzM4OXlxcAwM/PDxs3bqyznYiIiJru/lJmi3YmWDzWA9MedINEIqn/ya2AXkJLx44dkZqa2uB2IiIiajx5aTne2XUO352umuywv7MMa0J98ECXDnrumXZ4eoiIiKgNq1nKPC/gAcwfVVXKbGi07nFKSgpCQkLg5OQEiUSChIQEtXXWr18Pd3d3WFhYwNfXFwcPHlRZLpfL4evri4ceegi//vprve1ERESknXsVCrz/40U8s+EoMu/chYtte+yY449XA/sYZGABGjHSUlxcjAEDBuC5557DU089pbY8Pj4eERERWL9+PYYPH47PPvsMwcHBOH/+PFxdXQEA165dg5OTE86ePYtx48bhzz//hI2NTa3tRERE1HCGVsrcUE26I65EIsHOnTsxYcIEZdvQoUMxaNAgxMbGKts8PDwwYcIEREVFqW0jODgY7777Lvz8/BrUXq2srAxlZWXKx3K5HC4uLrwjLhERGS1DLGXW5o64Oh0funfvHk6ePInAwECV9sDAQBw+fBgAcPv2bWXYuHHjBs6fP48ePXrU2l6bqKgoyGQy5Y+Li4suD4WIiMig5BSUInzTMSzfcx73KhR4tE9nJEU83KoDi7Z0Ok6Ul5eHyspKODg4qLQ7ODggJycHAHDhwgW8+OKLMDGpmsPg448/hq2tLQ4fPqyxvTaLFi1CZGSk8nH1SAsREZGxMfRS5oZqlpNbNV8kIYSybdiwYfjzzz/VnlNbe22kUimkUmnTOkpERGTA2kopc0PpNLTY29vD1NRUOapSLTc3V230hYiIiBqvLZUyN5ROj8zc3By+vr5ITk5WaU9OTsawYcN0uSsiIiKjVFZRiagfLyhLmV1tLQ2+lLmhtB5pKSoqQlpamvJxeno6UlNTYWtrC1dXV0RGRiIsLAx+fn7w9/dHXFwcMjIyMGfOHJ12nIiIyNi01VLmhtL6KE+cOIGAgADl4+qLYcPDw7F582aEhoYiPz8fy5cvR3Z2Nry8vJCYmAg3Nzfd9ZqIiMiIGGIpc3No0n1aWhNt6ryJiIgMRc1ZmR/t0xkfPGUYszI3hDbf38YxnkRERGSAjKWUuaEYWoiIiFoZTaXMMc/4oGfntlnK3FAMLURERK2IMZYyNxRDCxERUStQVlGJ6OTLiEu5CiEAV1tLrAkdAF+32u8Ob2wYWoiIiPTM2EuZG4qvBhERkZ6wlFk7DC1ERER60NZLmZsDQwsREVELYylz4zC0EBERtRCWMjcNQwsREVELYClz0zG0EBERNSOWMusOQwsREVEzYSmzbvFVIyIi0jFNpczvP+WNoH4sZW4KhhYiIiIdYilz82FoISIi0pE9f2Rh8c6zLGVuJgwtRERETVSzlNm7mwxrQlnKrGsMLURERE3AUuaWw9BCRETUCCxlbnkMLURERFpiKbN+8NUlIiJqoJqlzLZW5oh6sj9LmVsIQwsREVEDaCxlnuSNLtYsZW4pDC1ERET1YClz68DQQkREVAuWMrcuDC1EREQasJS59WFoISIiug9LmVsvhhYiIqL/w1Lm1o3/CkREZPRYymwYGFqIiMiosZTZcPBqIiIiMhp/3LiDZ+OO4o8bdwBUlTIHxaTg4F95sGhngncneGHTjMEMLK0UR1qIiMhofHcqE0eu5mPb8evYfOgaS5kNDEMLERG1aTdul+B2cTkkEuD7M1kAgG3HMqAQgATAdH83vPW4J0uZDQBDCxERtWkPrdqv1qYQVf8VAL488jeWPeHVsp2iRtFbrCwpKYGbmxsWLlyobEtPT0dAQAA8PT3Rv39/FBcX66t7RETURsSE+sDURPPt9s1MJIgJ9WnZDlGj6W2kZcWKFRg6dKhK24wZM/Dee+9hxIgRuHXrFqRSqZ56R0REbYFCIXCr+B4ghMblrwf1wYSBzi3cK2osvYy0/PXXX7h48SLGjh2rbDt37hzatWuHESNGAABsbW1hZsazV0RE1Dg5BaUI33QMy/ecR6XmzIKVP17E3rPZLdsxajStQ0tKSgpCQkLg5OQEiUSChIQEtXXWr18Pd3d3WFhYwNfXFwcPHlRZvnDhQkRFRam0/fXXX+jQoQPGjx+PQYMGYeXKldp2jYiICIBqKXN9ln1/HpWKWlINtSpah5bi4mIMGDAAa9eu1bg8Pj4eERERWLx4MU6fPo0RI0YgODgYGRkZAIBdu3ahd+/e6N27t8rzysvLcfDgQaxbtw5HjhxBcnIykpOTa+1HWVkZ5HK5yg8RERk3eWk5FsSn4uWtp1Fwtxw97K3qfU52QSmOpd9qgd5RU2l9/iU4OBjBwcG1Lo+OjsbMmTMxa9YsAEBMTAySkpIQGxuLqKgoHD16FNu2bcOOHTtQVFSE8vJy2NjYYPTo0Rg8eDBcXFwAAGPHjkVqaipGjx6tcT9RUVFYtmyZtt0nIqI2StOszO72Vojcfqbe5+YWlrZAD6mpdHpNy71793Dy5EkEBgaqtAcGBuLw4cMAqsLG9evXce3aNaxevRovvPAC3n77bQwePBg3b97E7du3oVAokJKSAg8Pj1r3tWjRIhQUFCh/rl+/rstDISIiA1FWUYmoHy/gmQ1HkXnnLlxtLbFjjj9eDewDR1n7Bm2Dd8A1DDq90jUvLw+VlZVwcHBQaXdwcEBOTk7dHTEzw8qVK/Hwww9DCIHAwEA8/vjjta4vlUpZXUREZOQu3yzEK9tSceH/ZmUO9XPBkhBP5azMQ9xt4SizQE5BKTRdtSIB0FVmgSHuti3XaWq0ZinPkUhU6+GFEGptQFWJ8/3qO/VEREQENHxWZlMTCZaGeGLuV6cgAVSCS/W30tIQz1rv40Kti05PD9nb28PU1FRtVCU3N1dt9IWIiKgxcgpKMf2LqlLmexUKPNqnM/ZGjFALLNXGeDkidtogdJWpngLqKrNA7LRBGOPl2BLdJh3Q6UiLubk5fH19kZycjIkTJyrbk5OT8cQTT+hyV0REZIT2/JGFxTvPouBuOSzamWDxOE9MG+qqcTT/fmO8HDHasyuOpd9CbmEpulhXnRLiCIth0Tq0FBUVIS0tTfk4PT0dqampsLW1haurKyIjIxEWFgY/Pz/4+/sjLi4OGRkZmDNnjk47TkRExkNeWo6lu85hZxNmZTY1kcC/p11zdZFagNah5cSJEwgICFA+joyMBACEh4dj8+bNCA0NRX5+PpYvX47s7Gx4eXkhMTERbm5uuus1EREZjZqlzC8HPIB/jerFWZmNkESIWiZkMDByuRwymQwFBQWwsbHRd3eIiKiJyioqEZ18GXEpVyEE4GpriTWhA+DrxkqftkSb729O7kNERK1OfaXMZJz4r09ERK2GQiGw6fA1rKqnlJmME0MLERG1CjkFpVi44wx+S6ua5DCgT2esmuTNu9WSEkMLERHpXWNLmcm4MLQQEZHe6KKUmYwHQwsREenF0av5eJWlzKQFhhYiImpRNUuZ3ewsEf20D3zdOum7a9TKMbQQEVGLqVnK/MxgFyx53BNWLGWmBuBvCRERNTuWMpMuMLQQEVGzyi64i4U7zuBQWj4AljJT4zG0EBFRs9nzRxbe/O5PyEsrYNHOBG+N88RUljJTIzG0EBGRzrGUmZoDQwsREekUS5mpuTC0EBGRTpRVVCJ632XEHWQpMzUPhhYiImqySzmFiIhnKTM1L/42ERFRo2kqZX7/yf4IZCkzNQOGFiIiahSWMlNLY2ghIiKtfX8mC4t3spSZWhZDCxERNVjB3XIs3XUWCalZAIAB/1fK3IOlzNQCGFqIiKhBjlzJx6vbU5FVUFpVyjyyF/418gGWMlOLYWghIqI6sZSZWguGFiIiqhVLmak14W8dERGpUSgEvjiUjg+SLrGUmVoNhhYiIlJRs5R5ZN8uWPWUNzpbS/XcMzJ2DC1ERKTEUmZqzRhaiIiIpcxkEBhaiIiMHEuZyVAwtBARGamyikp8tO8yNtxXyrwm1AeDXFnKTK0TQwsRkRG6lFOIV7adxsWcQgAsZSbDwN9OIiIjwlJmMmQMLURERoKlzGToWvwqq8LCQgwePBg+Pj7o378/NmzYAAC4dOkSfHx8lD/t27dHQkJCS3ePiKhN2n0mC0FrUnAoLR/t25lixUQvfB7ux8BCBkUihBAtucPKykqUlZXB0tISJSUl8PLywvHjx2FnZ6dcp6ioCN27d8fff/8NKyurBm1XLpdDJpOhoKAANjY2zdV9IiKDUnC3HG/vOotdLGWmVkqb7+8WPz1kamoKS0tLAEBpaSkqKytRMzft3r0bo0aNanBgISIidSxlprZG69/clJQUhISEwMnJCRKJROMpnPXr18Pd3R0WFhbw9fXFwYMHVZbfuXMHAwYMQLdu3fD666/D3t5eZfn27dsRGhqqbdeIiAhVpcwrEy9gysajyCoohZudJb6ZOwyRo3szsJBB0/q3t7i4GAMGDMDatWs1Lo+Pj0dERAQWL16M06dPY8SIEQgODkZGRoZynY4dO+LMmTNIT0/H1q1bcfPmTeUyuVyOQ4cOYezYsY04HCIi43YxR44n1h5CXErVvVeeGeyCxPkjeO8VahO0Pj0UHByM4ODgWpdHR0dj5syZmDVrFgAgJiYGSUlJiI2NRVRUlMq6Dg4O8Pb2RkpKCiZPngwA2LVrF4KCgmBhYVFnP8rKylBWVqZ8LJfLtT0UIqI2Q1nKvPcS7lVWlTKvesoboz0d9N01Ip3R6TjhvXv3cPLkSQQGBqq0BwYG4vDhwwCAmzdvKgOGXC5HSkoK+vTpo1y3oaeGoqKiIJPJlD8uLi46PBIiIsORXXAX0z7/He/9cAH3KhUY2bcLkiIeZmChNkenF+Lm5eWhsrISDg6qbxQHBwfk5OQAAG7cuIGZM2dCCAEhBF5++WV4e3sDAAoKCnDs2DF8++239e5r0aJFiIyMVD6Wy+UMLkRkdHafycJb/zcrc/t2pnjrcQ9MGcJZmaltapbqoZpvFiGEss3X1xepqakanyeTyVSub6mLVCqFVMr7CxCRcWIpMxkjnYYWe3t7mJqaKkdVquXm5qqNvhARUeMcvpKHhdvPIKugFKYmEswLeIClzGQUdPobbm5uDl9fXyQnJ6u0JycnY9iwYbrcFRGR0akuZZ668XdlKfOOOf4sZSajofVIS1FREdLS0pSP09PTkZqaCltbW7i6uiIyMhJhYWHw8/ODv78/4uLikJGRgTlz5ui040RExuRijhwR21I5KzMZNa1/20+cOIGAgADl4+qLYcPDw7F582aEhoYiPz8fy5cvR3Z2Nry8vJCYmAg3Nzfd9ZqIyEjULGW2szLH+yxlJiPV4nMPNRfOPUREbU3WnapZmQ9f4azM1Ha16rmHiIiofixlJlLH0EJE1IqwlJmodgwtREStBEuZierG0EJEpGdlFZX4aN9lbDhYNcmhm50l1oT6cJJDohoYWoiIWtgfN+4gKvEiFo3tC3MzE5VS5meHuOCtcSxlJtKE7woiohb23alMHLmaj3f3nMeZ6wUsZSZqIIYWIqIWcON2CW4Xl0MiAXalZgIAjl+7DQDw694Jbz/uCe9uHfXYQ6LWj/dpISJqAd3//UO961x7f1wL9ISoddHm+5uXpBMRtYCVE/ujtjusmJlIEBPq05LdITJIPD1ERNTMDl/Jw9pf/kJtw9oJ84bDy1nWon0iMkQMLUREzaSsohKrky5h42/pEALoKrNATkEpJBJACCj/S0QNw9NDRETN4GKOHE+sPYQNB6sCy7NDXPD1zKHo3EGK/s4yrJjohf7OMnTuIIVdB3N9d5fIIPBCXCIiHapvVuayikqYm5pAIpFACIF7lQpIzUz13Gsi/eGEiUREelBzVuZRfbvg/RqzMt8fUCQSCQMLkRYYWoiIdICzMhM1P4YWIqImUJuV2aUj1jw9gLMyEzUDhhYiokaqOSvzywEP4GXOykzUbBhaiIi0VLOUufv/zco8kLMyEzUrhhYiIi1czJFzVmYiPeG7jIioAeorZSai5sfQQkRUj4aUMhNR82NoISKqw67UTCxJOKssZV7yuCeeHeLS6FLmSoXAsfRbyC0sRRdrCwxxt4WpCcuiiRqCoYWISIOCknIs2XUWu8/orpR579lsLPv+PLILSpVtjjILLA3xxBgvxyb3maitY10eEVENh6/kYczHKdh9JgumJhK8MqoXvpnj3+TAMverUyqBBQByCkox96tT2Hs2u6ndJmrzONJCRPR/mquUuVIhsOz789A00ZsAIAGw7PvzGO3ZlaeKiOrA0EJEBE2lzK54a5yHTkqZj6XfUhthuZ8AkF1QimPpt+Df067J+yNqqxhaiMioKRQCn/+Wjg+Tmq+UObew9sDSmPWIjBVDCxEZraw7d/Hq9jM4crV5S5m7WFvodD0iY8XQQkRGSdelzHUZ4m4LR5kFcgpKNV7XIgHQVVZV/kxEtWP1EBEZlYKScsz/32m8si0V8tIKDHDpiMRXRmDKUNdmCSwAYGoiwdIQTwBVAeV+1Y+XhnjyIlyiejC0EJHROJymuZTZ3d6q2fc9xssRsdMGoatM9RRQV5kFYqcN4n1aiBqAp4eIqM2rLmXecDAdgP5mZR7j5YjRnl15R1yiRmrxkZbr16/j0UcfhaenJ7y9vbFjxw7lsjVr1qBfv37w9PTE/PnzIYSms79ERA13MUeOJ9YeUgaWZ4e44of5I1o8sFQzNZHAv6cdnvBxhn9POwYWIi20+EiLmZkZYmJi4OPjg9zcXAwaNAhjx45FSUkJ1q5di3PnzqFdu3Z4+OGHcfToUfj7+7d0F4moDdBUyrzqKW88xlmZiQxWi4cWR0dHODpWnbvt0qULbG1tcevWLVhYWKCiogKlpVX3KSgvL0eXLl1auntE1Aa0VCkzEbUsrU8PpaSkICQkBE5OTpBIJEhISFBbZ/369XB3d4eFhQV8fX1x8OBBjds6ceIEFAoFXFxc0LlzZyxcuBCurq5wcnLCY489hp49e2p9QERk3HalZiIoJgVHruajfTtTrJzYHxvD/RhYiNoArUNLcXExBgwYgLVr12pcHh8fj4iICCxevBinT5/GiBEjEBwcjIyMDJX18vPzMX36dMTFxQEAbt++jT179uDatWvIzMzE4cOHkZKS0ohDIiJjdH8pc2FpBXxaoJSZiFqW1qeHgoODERwcXOvy6OhozJw5E7NmzQIAxMTEICkpCbGxsYiKigIAlJWVYeLEiVi0aBGGDRsGAPjpp5/wwAMPwNa26uZK48aNw9GjR/Hwww9r3E9ZWRnKysqUj+VyubaHQkRtxOG0PLy64wyyC0phaiLBv0Y+gJcDHoCZKe/qQNSW6PQdfe/ePZw8eRKBgYEq7YGBgTh8+DAAQAiBGTNmYOTIkQgLC1Ou4+LigsOHD6O0tBSVlZU4cOAA+vTpU+u+oqKiIJPJlD8uLi66PBQiMgCl5ZV4b895TNn4O7ILStHdzhLfzPFHxGO9GViI2iCdvqvz8vJQWVkJBwfVq/MdHByQk5MDADh06BDi4+ORkJAAHx8f+Pj44M8//8SDDz6IsWPHYuDAgfD29kbPnj0xfvz4Wve1aNEiFBQUKH+uX7+uy0MholbuYo4cE9YdwsbfWkcpMxE1v2apHqp5/lgIoWx76KGHoFAoND5vxYoVWLFiRYP2IZVKIZXywjoiY8NSZiLjpdPQYm9vD1NTU+WoSrXc3Fy10RciIm3VLGV+zKOqlNm+A/+AITIGOj09ZG5uDl9fXyQnJ6u0JycnKy+4JSJqjJqlzFFP9seG6X4MLERGROuRlqKiIqSlpSkfp6enIzU1Fba2tnB1dUVkZCTCwsLg5+cHf39/xMXFISMjA3PmzNFpx4nIOBSUlOOtXWfx/ZksAICPS0esCfVpkUkOiah10Tq0nDhxAgEBAcrHkZGRAIDw8HBs3rwZoaGhyM/Px/Lly5GdnQ0vLy8kJibCzc1Nd70mIqPAUmYiup9EtJFZCeVyOWQyGQoKCmBjY6Pv7hBRE5SWV83KXF0ZpK9ZmYmo+Wnz/d3icw8REdXlQrYcC+JTcTGnEEBVKfNb4zxgJeXHFZGx46cAEbUKCoXAxt+uYnXSZZYyE5FGDC1EpHcsZSaihmBoISK92pWaibcSzqKwtALt25ni7RBPPDPYhZMcEpEahhYi0guWMhORthhaiKjFsZSZiBqDoYWIWgxLmYmoKRhaiKhF1CxlnjK0qpTZ0pwfQ0TUMPy0IKJmVbOU2b6DOd5/kqXMRKQ9hhYiajaZd+7i1e2pOHr1FgCWMhNR0zC0EFGzYCkzEekaQwsR6RRLmYmouTC0EJHOsJSZiJoTQwsRNVlpeSU+TLqEz1nKTETNiKGFiJrkQrYcEdtScekmS5mJqHnxU4WIGoWlzETU0hhaiEhrLGUmIn1gaCEirbCUmYj0haGFiBqEpcxEpG8MLURUL5YyE1FrwNBCRLWqWcrsbm+F6KcHsJSZiPSCoYWINGIpMxG1Nvz0ISIVLGUmotaKoYWIlFjKTEStGUMLEQFQLWW2NDfFksdZykxErQtDC5GR01TKHBPqg+4sZSaiVoahhciIHUrLw0KWMhORgWBoITJCLGUmIkPE0EJkZFjKTESGip9SREZCUynzqqe8McqDpcxEZBgYWoiMAEuZiagtYGghauNYykxEbYVeSgQmTpyITp06YdKkSSrtq1evRr9+/eDl5YWvvvpKH10jajMKSsrxr/+dxivbUlFYWgEfl45InD8Czw5xZWAhIoOkl9Ayf/58bNmyRaXtzz//xNatW3Hy5EmcOHECsbGxuHPnjj66R2TwDqXlYczHKfj+TBZMTSRY8FhvfDPHn/deISKDppfQEhAQAGtra5W2CxcuYNiwYbCwsICFhQV8fHywd+9efXSPyGCVllfi3T3nMXXj78guKIW7vRW+nTsMrzzWi/deISKDp/WnWEpKCkJCQuDk5ASJRIKEhAS1ddavXw93d3dYWFjA19cXBw8erHe7Xl5e2L9/P+7cuYM7d+7gl19+QWZmprbdIzJa57PkeGLtIeW9V6YMdcUP8x+Cj0tH/XaMiEhHtA4txcXFGDBgANauXatxeXx8PCIiIrB48WKcPn0aI0aMQHBwMDIyMurcrqenJ+bPn4+RI0di4sSJGDx4MMzMeJ0wUX0UCoG4lCuYsO4QLt0shH0Hc3we7oeVE/vz3itE1KZo/YkWHByM4ODgWpdHR0dj5syZmDVrFgAgJiYGSUlJiI2NRVRUVJ3bfvHFF/Hiiy8CAGbNmoUHHnig1nXLyspQVlamfCyXy7U5DKI2Qb2U2QHvP9WfpcxE1Cbp9CT3vXv3cPLkSQQGBqq0BwYG4vDhw/U+Pzc3FwBw6dIlHDt2DEFBQbWuGxUVBZlMpvxxcXFpWueJDIgQAgmnMzEmJgVHr96Cpbkp3n+yPzZM92VgIaI2S6djx3l5eaisrISDg+odNh0cHJCTk6N8HBQUhFOnTqG4uBjdunXDzp07MXjwYEyYMAF37tyBlZUVNm3aVOfpoUWLFiEyMlL5WC6XM7iQUSgoKcfihD+x549sAJyVmYiMR7Oc8K55DwghhEpbUlKSxuc1ZDSmmlQqhVTKvyjJuNSclXn+yF6YF9CTlUFEZBR0Glrs7e1hamqqMqoCVJ32qTn6QkT1++PGHUQlXkRkYG/sPZujMivzmlAfVgYRkVHR6Z9n5ubm8PX1RXJyskp7cnIyhg0bpstdERmF705l4sjVfLzw5QllYJnKUmYiMlJaj7QUFRUhLS1N+Tg9PR2pqamwtbWFq6srIiMjERYWBj8/P/j7+yMuLg4ZGRmYM2eOTjtO1FbduF2C28XlEEJg+4nrAIA7d8vRsb0Z/jWqF4L6dWUpMxEZJYkQQmjzhAMHDiAgIECtPTw8HJs3bwZQdXO5Dz74ANnZ2fDy8sKaNWvw8MMP66TDtZHL5ZDJZCgoKICNjU2z7ouoOXX/9w/1rnPt/XEt0BMiouanzfe31qGltWJoobZACIElCWfx1e+ab8ZoZiLB6skDMGGgcwv3jIioeWjz/c0xZqJWomYpsyYJ84bDy1nWgr0iImo9WCdJ1AocSstDUEwK9vyRDVMTCaYMcQUAVN8poMZdBIiIjBJHWoj0qLS8Eh8mXVIrZXawkSL5/E04drRA6GAXxB+/juw7pbDrYK7nHhMR6Q+vaSHSk/NZciyIT8Wlm4UAqkqZF4/zUFYGlVVUwtzUBBKJBEII3KtUQGpmqs8uExHpHK9pIWrFKhUCGw9exUf7LuNepQL2HczxwSRvjOyregPG+wOKRCJhYCEio8fQQtSCbtwuwavbz+D3dM7KTESkLYYWohYghMCu1CwsSTiLwrIKWJqb4u3HPRE62EVtri4iItKMoYWomdUsZR7o2hFrnuaszERE2mJoIWpGh9Ly8Or2M8iRV83K/MqoXnjpUc7KTETUGAwtRM2gtLwSH+y9hC8ONX5W5kqFwLH0W8gtLEUXawsMcbeFqQlPJRGR8WJoIdKx81lyRMSfxuWbRQDUS5kbYu/ZbCz7/jyyC0qVbY4yCywN8cQYL0ed95mIyBAwtBDpSENLmeuz92w25n51CjVvoJRTUIq5X51C7LRBDC5EZJQYWoh0oGYp82hPB7z/ZH/YaVnKXKkQWPb9ebXAAgACgATAsu/PY7RnV54qIiKjw9BC1ARCCCSkZuLthHM6KWU+ln5L5ZSQ2v4AZBeU4lj6Lfj3tGtCz4mIDA9DC1EjNUcpc25h7YGlMesREbUlDC1EjdBcpcxdrC10uh4RUVvC0EKkBV2UMtdliLstHGUWyCko1XhdiwRAV1lV+TMRkbHhHa6IGuh8lhzj1/6mDCxTh7rih/kP6SywAICpiQRLQzwBVAWU+1U/XhriyYtwicgoMbQQ1aNSIfDZr1fwxLrfcPlmEew7mOOLGX5YMbG/VvdeaagxXo6InTYIXWWqp4C6yixY7kxERo2nh4jqoKtSZm2N8XLEaM+uvCMuEdF9GFqINNBUyrw0xBNP+7XcrMymJhKWNRMR3YehhaiGOyX3sDjhLH64r5Q5JtQHbnaclZmISJ8YWoju89tfeVi4g7MyExG1RgwtRFAvZe7xf6XMA3RYGURERE3D0EJGr+aszNMedMWbY7WblZmIiJofP5XJaFUqBDYcvIqP9l1CeaVo9KzMRETUMhhayCjpq5SZiIgaj6GFjEprKGUmIqLGYWgho1GzlHmQa0esYSkzEZHBYGgho8BSZiIiw8fQQm0aS5mJiNoOhhZqs1jKTETUtuhlbHzixIno1KkTJk2apNK+Z88e9OnTB7169cLGjRv10TVqAyoVAp+qzMosxaYZg/HehOaZlZmIiFqGRAghWnqn+/fvR1FREb788kt88803AICKigp4enpi//79sLGxwaBBg/D777/D1ta2QduUy+WQyWQoKCiAjY1Nc3afWrEbt0sQuf0MjrGUmYjIIGjz/a2XkZaAgABYW1urtB07dgz9+vWDs7MzrK2tMXbsWCQlJemje2SAhBDYefoGgmMO4lj6LViam2LVU/0RF+bLwEJE1EZoHVpSUlIQEhICJycnSCQSJCQkqK2zfv16uLu7w8LCAr6+vjh48GC9283KyoKzs7Pycbdu3ZCZmalt98gI3Sm5h5f/dxoL4s+gsKwCg1w74sdXRiB0sCvvvUJE1IZoHVqKi4sxYMAArF27VuPy+Ph4REREYPHixTh9+jRGjBiB4OBgZGRk1LldTWep+IVD9fntrzyMiTmIH/7IhqmJBK+O7o3tL/rz3itERG2Q1lclBgcHIzg4uNbl0dHRmDlzJmbNmgUAiImJQVJSEmJjYxEVFVXr85ydnVVGVm7cuIGhQ4fWun5ZWRnKysqUj+VyuTaHQQautLwSq/ZexKZD1wCwlJmIyBjo9JqWe/fu4eTJkwgMDFRpDwwMxOHDh+t87pAhQ3D27FlkZmaisLAQiYmJCAoKqnX9qKgoyGQy5Y+Li4tOjoFav/NZcoxf+5sysEx70BV75j/EwEJE1MbptP4zLy8PlZWVcHBQnSXXwcEBOTk5ysdBQUE4deoUiouL0a1bN+zcuRODBw/GRx99hICAACgUCrz++uuws7OrdV+LFi1CZGSk8rFcLmdwaePUZ2WW4sNJ3gjo20XfXSMiohbQLDetqHktihBCpa22qqDx48dj/PjxDdqHVCqFVMqqEGPBUmYiItJpaLG3t4epqanKqAoA5Obmqo2+EDVEVSlzJpbu4qzMRETGTqfXtJibm8PX1xfJyckq7cnJyRg2bJgud0VGoLqUOXI7S5mJiKgRIy1FRUVIS0tTPk5PT0dqaipsbW3h6uqKyMhIhIWFwc/PD/7+/oiLi0NGRgbmzJmj045T21ZzVuaIUb0wl7MyExEZNa1Dy4kTJxAQEKB8XH0xbHh4ODZv3ozQ0FDk5+dj+fLlyM7OhpeXFxITE+Hm5qa7XlObxVJmIiKqjV7mHmoOnHvI8J3LKkDEtlT8lctZmYmIjIU239/8NiC9YykzERE1BEML6RVLmYmIqKEYWkgvWMpMRETaYmihFnen5B4W7zyLH/7MBgAMcu2INaE+nOSQiIjqxNBCLeq3v/Lw6o5U3JSXsZSZiIi0wtBCLYKlzERE1FQMLdTsWMpMRES6wG8NajYsZSYiIl1iaKFmwVJmIiLSNYYW0imWMhMRUXNhaCGdYSkzERE1J4YW0on7S5nNTCR4haXMRESkYwwt1CQsZSYiopbC0EKNxlJmIiJqSfx2Ia2xlJmIiPSBoYW0UrOUOdDTAVEsZSYiohbA0EINwlJmIiLSN4YWqhdLmYmIqDVgaKE6sZSZiIhaC4YW0kitlLmzFWJCfeDdraNe+0VERMaLoYXU1CxlDnvQDW+O9UB7c1M994yIiIwZQwspVSoE4lKuIjqZpcxERNT6MLQQAJYyExFR68fQYuRqljJbmZtiaUg/TPbrxlJmIiJqVRhajFjNUmZft05Y87QPXO0s9dwzIiIidQwtRurgX/9g4Y4zLGUmIiKDwdBiZFjKTEREhoqhxYiwlJmIiAwZQ4sRYCkzERG1BQwtbdz1WyV4dfsZHLvGUmYiIjJsDC1tFEuZiYiorWFoaYNYykxERG1Rq6tvnThxIjp16oRJkybpuysG6eBf/yAoJgU//JkNMxMJFgb2RvzsBxlYiIjI4LW60DJ//nxs2bJF390wOKXllXhn9zmEfX4MN+Vl6NHZCt+9NAwvj+zFe68QEVGb0OpODwUEBODAgQP67oZBYSkzEREZA53+CZ6SkoKQkBA4OTlBIpEgISFBbZ3169fD3d0dFhYW8PX1xcGDB3XZBaNSqRCIPXAFE9Ydwl+5RehsLcWm5wbj3QleDCxERNTm6DS0FBcXY8CAAVi7dq3G5fHx8YiIiMDixYtx+vRpjBgxAsHBwcjIyNBlN4zC9VsleDbuKFbtvYjySoFATwckRTyMgD689woREbVNOj09FBwcjODg4FqXR0dHY+bMmZg1axYAICYmBklJSYiNjUVUVJRW+yorK0NZWZnysVwub1ynDUx1KfPbu86hiKXMRERkRFrsCs179+7h5MmTCAwMVGkPDAzE4cOHtd5eVFQUZDKZ8sfFxUVXXW217pTcw8tbTyNy+xkUlVXA160TfnzlYTw92IWBhYiI2rwWCy15eXmorKyEg4ODSruDgwNycnKUj4OCgjB58mQkJiaiW7duOH78uMbtLVq0CAUFBcqf69evN2v/9Y2lzEREZOxavHqo5oiAEEKlLSkpqUHbkUqlkErb/q3oS8sr8f6PF7H58DUAnJWZiIiMV4uFFnt7e5iamqqMqgBAbm6u2uhLa1KpEDiWfgu5haXoYm2BIe62MDVpmVMxZzMLsCCepcxERERAC4YWc3Nz+Pr6Ijk5GRMnTlS2Jycn44knnmipbmhl79lsLPv+PLILSpVtjjILLA3xxBgvx2bbb81ZmTtbS/HBJG9WBhERkVHTaWgpKipCWlqa8nF6ejpSU1Nha2sLV1dXREZGIiwsDH5+fvD390dcXBwyMjIwZ84cXXZDJ/aezcbcr05B1GjPKSjF3K9OIXbaoGYJLjVnZQ7q54CoJ71ha2Wu830REREZEp2GlhMnTiAgIED5ODIyEgAQHh6OzZs3IzQ0FPn5+Vi+fDmys7Ph5eWFxMREuLm56bIbTVapEFj2/Xm1wAIAAoAEwLLvz2O0Z1ednSoSQuC7U5lYuvu+Uubx/TDZl6XMREREACARQmj6bjY4crkcMpkMBQUFsLGxadK2jlzJx7Mbjta73v9eeBD+Pe2atC+AszITEZHx0ub7u9XNPdQa5BaW1r+SFuvV5eBf/2DhjjO4KS+DmYkEEY/1wpxHenKSQyIiohoYWjToYm2h0/U0YSkzERGRdhhaNBjibgtHmQVyCko1XtciAdBVVlX+3Bg1S5mn+7thUTBLmYmIiOrCcxAamJpIsDTEE0BVQLlf9eOlIZ5aX4RbqRBYfyANE9erzsq8/AnOykxERFQfhpZajPFyROy0QegqUz0F1FVm0ahy5+pZmT/YW3XvlaB+nJWZiIhIGzw9VIcxXo4Y7dm1SXfEZSkzERGRbjC01MPURNLosubbxfewOOFPJP5ZNXUBS5mJiIgaj6GlmaRcriplzi1kKTMREZEuMLToGEuZiYiImgdDiw6xlJmIiKj5MLToQKVC4LOUK1iTfJmzMhMRETUThpYm4qzMRERELYOhpZFYykxERNSyGFoaoWYps59bJ0SzlJmIiKhZMbQ0wB837iAq8SIWje2LOyXlKqXMC0b3xpxHemp9S38iIiLSDkNLA3x3KhNHrubjjW//wIXsQgAsZSYiImppDC21uHG7BLeLyyGRADtPZwKAMrCM698VC0b3wQNdOuizi0REREaFoaUWD63aX+uyH/7MwQ9/5uDa++NasEdERETGjfeUr0VMqA/MarlOxcxEgphQn5btEBERkZHjSEstJgx0xgNdOuDxT35TW5Ywbzi8nGV66BUREZHx4khLA1TfdoW3XyEiItIfjrTUwa6DOTp3kMKxowVCB7sg/vh1ZN8phV0H3u2WiIiopUmEEELfndAFuVwOmUyGgoIC2NjY6Gy7ZRWVMDc1gUQigRAC9yoVkJpxAkQiIiJd0Ob7myMt9bg/oEgkEgYWIiIiPeE1LURERGQQGFqIiIjIIDC0EBERkUFgaCEiIiKDwNBCREREBoGhhYiIiAwCQwsREREZBIYWIiIiMggMLURERGQQGFqIiIjIILSZ2/hXT6Ekl8v13BMiIiJqqOrv7YZMhdhmQkthYSEAwMXFRc89ISIiIm0VFhZCJpPVuU6bmeVZoVAgKysL1tbWkEgkOt/+4MGDcfz4cZ1v19jxda2fMb9GbfnY28KxyeVyuLi44Pr16/XOzktUGyEECgsL4eTkBBOTuq9aaTMjLSYmJujWrVuzbd/U1JRvymbA17V+xvwateVjb0vHZmNj02aOhfSjvhGWarwQt4HmzZun7y60SXxd62fMr1FbPva2fGxEzaXNnB4iIqKWJZfLIZPJUFBQwJEWahEcaSEiokaRSqVYunQppFKpvrtCRoIjLURERGQQONJCREREBoGhhYiIiAwCQwu1GXv27EGfPn3Qq1cvbNy4Ud/dISIiHeM1LdQmVFRUwNPTE/v374eNjQ0GDRqE33//Hba2tvruGhER6QhHWqhNOHbsGPr16wdnZ2dYW1tj7NixSEpK0ne3iIzWxIkT0alTJ0yaNEnfXaE2hKGF6pWZmYlp06bBzs4OlpaW8PHxwcmTJ3W2/ZSUFISEhMDJyQkSiQQJCQka11u/fj3c3d1hYWEBX19fHDx4ULksKysLzs7OysfdunVDZmamzvpIRNqZP38+tmzZou9uUBvD0EJ1un37NoYPH4527drhxx9/xPnz5/HRRx+hY8eOGtc/dOgQysvL1dovXryInJwcjc8pLi7GgAEDsHbt2lr7ER8fj4iICCxevBinT5/GiBEjEBwcjIyMDACaZwdtjjmoiKhhAgICYG1tre9uUBvD0EJ1WrVqFVxcXLBp0yYMGTIE3bt3x6hRo9CzZ0+1dRUKBebNm4cpU6agsrJS2X758mUEBATU+ldXcHAw3nvvPTz55JO19iM6OhozZ87ErFmz4OHhgZiYGLi4uCA2NhYA4OzsrDKycuPGDTg6Ojb2sImMWkNGP+sa+SRqLgwtVKfdu3fDz88PkydPRpcuXTBw4EBs2LBB47omJiZITEzE6dOnMX36dCgUCly5cgUjR47E+PHj8frrrzeqD/fu3cPJkycRGBio0h4YGIjDhw8DAIYMGYKzZ88iMzMThYWFSExMRFBQUKP2R2Ts6hv9rG/kk6i5MLRQna5evYrY2Fj06tULSUlJmDNnTp3nqp2cnPDLL7/g0KFDmDJlCkaOHIlRo0bh008/bXQf8vLyUFlZCQcHB5V2BwcH5SknMzMzfPTRRwgICMDAgQPx2muvwc7OrtH7JDJm9Y1+1jfySdRczPTdAWrdFAoF/Pz8sHLlSgDAwIEDce7cOcTGxmL69Okan+Pq6ootW7bgkUceQY8ePfD555/r5PqSmtsQQqi0jR8/HuPHj2/yfoiodtUjn//+979V2u8f+SRqLhxpoTo5OjrC09NTpc3Dw6POYeCbN29i9uzZCAkJQUlJCRYsWNCkPtjb28PU1FTtQt7c3Fy10Rcial4NGfkEgKCgIEyePBmJiYno1q0bjh8/3tJdpTaIIy1Up+HDh+PSpUsqbZcvX4abm5vG9fPy8jBq1Ch4eHhgx44d+Ouvv/Doo49CKpVi9erVjeqDubk5fH19kZycjIkTJyrbk5OT8cQTTzRqm0TUNPWNfPI+SdQcGFqoTgsWLMCwYcOwcuVKPP300zh27Bji4uIQFxentq5CocCYMWPg5uaG+Ph4mJmZwcPDAz/99BMCAgLg7OyscdSlqKgIaWlpysfp6elITU2Fra0tXF1dAQCRkZEICwuDn58f/P39ERcXh4yMDMyZM6f5Dp6I1HDkk/RKENXj+++/F15eXkIqlYq+ffuKuLi4Wtfdt2+fuHv3rlr76dOnRUZGhsbn7N+/XwBQ+wkPD1dZb926dcLNzU2Ym5uLQYMGiV9//bVJx0VE9QMgdu7cqdI2ZMgQMXfuXJU2Dw8P8e9//7sFe0bGiHMPERGRivtHPwcOHIjo6GgEBAQoRz/j4+MRFhaGTz/9VDnyuWHDBpw7d67WU8dEusDQQkREKg4cOICAgAC19vDwcGzevBlA1c3lPvjgA2RnZ8PLywtr1qzBww8/3MI9JWPD0EJEREQGgSXPREREZBAYWoiIiMggMLQQERGRQWBoISIiIoPA0EJEREQGgaGFiIiIDAJDCxERERkEhhYiIiIyCAwtREREZBAYWoiIiMggMLQQERGRQWBoISIiIoPA0EJEREQG4f8BZIVOifWJhEIAAAAASUVORK5CYII=", + "image/png": "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557j+PHj1tvn77//PpGRkfTq1avCseXfZzc6Z32R6dC3oEuXLtYBuVFRUZjNZj766CO+/PJLHnjgAev90Tlz5lQ5DbdTp051GmNVfyVW1lb+A2A0Gisce+HCBevrqc65KzN58mSeeuopjh49yqlTpzAajTa/uAFCQ0P55z//CcCvv/7KmjVr+Otf/0pJSQkffPBBpefV6XR07dqV7777jsLCwkrHuezcuZO0tDQefPDBG76GFi1aUFZWRmZmps0vhWt/+TRv3hytVsuECROq7GVo3779Da9XU5s2beLChQv8+OOP1l4WoMrxQNd7Tdf+8rvap59+Svv27Vm9erVN/NcOAm3VqhVmsxmTyVTlB1f599CXX35JaGjo9V/gdaxcuZInnniCSZMm8cEHH9TofS0fMHyjdUVatmzJ/v37axKmVfPmzRkzZgyffPIJr732GitXrsTd3d3mw7m23pvasH79ejQaDYMGDQLU2DQaDdu2bbN+MF7t2rqb+Xo8/PDDzJo1i1WrVjF//nz+/e9/M3bsWJslJar7PXizyn9+//73v5Odnc3nn39OcXGxze+l8q/Le++9x1133VXpecp7ulu2bMmSJUtYsmQJqamprF+/ntmzZ5Oenk58fHyVMURFRREfH8+5c+cqHedy7tw59u3bh8FgsCZUt2rw4MHo9XqWLl2Kt7c3+/fv59NPP6302PLE7NrPAHuRHpda9Oabb9K8eXNeeeUVLBYLnTp14o477uDQoUOV/kXWu3dvfHx87B22VWRkJB4eHhW+ec+dO8emTZuqnDVUXQ8//DDu7u6sWrWKVatW0aZNG4YNG1bl8R07duTPf/4z4eHhN/zgePnll7l06RIvvPBChbaCggJmzJiBp6fndQetlSsfhFm+xkW5zz//3Kbs6elJVFQUBw4coFu3bpV+fa+XENyq8l/g135o/OMf/6jyOVW9put9eGs0GlxdXW0+MEwmU4UZHeVd68uXL6/yXMOHD8fZ2ZmTJ09W+TNxI6tWreKJJ57gscce46OPPqpR0pKQkMBHH31Ev379GDBgwHWP7dy5M5mZmdedqVEdkydP5sKFC8TGxvLpp58ybtw4mjVrZm2vjfemNqxcuZK4uDgefvhha2/myJEjURSF8+fPVxpXeHh4ja/XvHlzxo4dyyeffMI333yDyWSqcJuout+DoP483EzPwOTJ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", "text/plain": [ "
" ] @@ -264,43 +298,52 @@ } ], "source": [ - "loc = np.array([1e-8, 1])\n", - "orders_even = [i for i in range(5, 15, 2)]\n", - "err = []\n", - "for o in orders_even:\n", - " err.append(compute_error_coord(recur_laplace, loc, o, derivs_laplace, n_init_lap, order_lap))\n", + "orders_odd = [i for i in range(6, 20, 2)]\n", + "err1 = []\n", + "err2 = []\n", + "for o in orders_odd:\n", + " err1.append(compute_error_coord(recur_laplace, np.array([1e-4, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", + " err2.append(compute_error_coord(recur_laplace, np.array([1e-8, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", + "\n", + "orders_odd = np.array(orders_odd)\n", + "err1 = np.array(err1, dtype=float)\n", + "err2 = np.array(err2, dtype=float)\n", "\n", - "orders_even = np.array(orders_even)\n", - "err = np.array(err, dtype=float)\n", + "coefficients1 = np.polyfit(np.log10(orders_odd), np.log10(err1), 1)\n", + "coefficients2 = np.polyfit(np.log10(orders_odd), np.log10(err2), 1)\n", + "polynomial1 = np.poly1d(coefficients1)\n", + "log10_y_fit1 = polynomial1(np.log10(orders_odd))\n", + "plt.plot(orders_odd, 10**log10_y_fit1, '*-')\n", + "plt.scatter(orders_odd, err1, label='1e-4')\n", "\n", - "coefficients = np.polyfit(np.log10(orders_even), np.log10(err), 1)\n", - "polynomial = np.poly1d(coefficients)\n", - "log10_y_fit = polynomial(np.log10(orders_even))\n", - "plt.plot(orders_even, 10**log10_y_fit, '*-')\n", - "plt.scatter(orders_even, err)\n", + "polynomial2 = np.poly1d(coefficients2)\n", + "log10_y_fit2 = polynomial2(np.log10(orders_odd))\n", + "plt.plot(orders_odd, 10**log10_y_fit2, '*-')\n", + "plt.scatter(orders_odd, err2, label='1e-8')\n", "plt.xscale('log')\n", "plt.yscale('log')\n", - "plt.title(\"Error vs Order (Odd Only), Slope: \"+str(coefficients[0]))" + "plt.title(\"Rel Error vs Order Laplace 2D (Even Derivatives Only)\")\n", + "plt.legend()" ] }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(0.5, 1.0, 'Error vs Order (Even Only), Slope: 170.3029259672917')" + "" ] }, - "execution_count": 47, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAG2CAYAAACzoLZvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABoRElEQVR4nO3deVxUVf8H8M8wwCACg4jsi7iDCChIiSsuKCqmpqI9LqX2pNmTaLaolWkaZqlYKj5UT7aLVpoaLpgW5pIbuOECiQLKIvsm28z5/UHMzxFQwJFh+bxfr3nVnHvm3u8dBubrOefer0QIIUBERETUyOloOwAiIiKi2mDSQkRERE0CkxYiIiJqEpi0EBERUZPApIWIiIiaBCYtRERE1CQwaSEiIqImgUkLERERNQlMWoiIiKhJYNJSja1bt0IikdT4+P3337UdotYIIfD9999j8ODBaNOmDWQyGTp06IB58+YhKSnpsfd/8+ZNSCQSbN269fGDraWjR49CJpPh1q1bqrZBgwbV+PNv3759g8VWXydPnsTEiRNhbW0NfX19WFlZYcKECThx4sRj7bd9+/Z4/vnn6/y63377DUZGRrh9+/ZjHT8pKQkvv/wyunTpglatWsHMzAw9evTAiy++qPb5e++99yCRSB7rWNry559/Yvbs2fD09IRMJoNEIsHNmzer9HvU36nVq1er9U9PT8fzzz8Pc3NzGBoaok+fPvjtt99qFdMPP/yAAQMGwNLSEjKZDDY2NggICMDx48er7b9t2zZ4eHjAwMAANjY2CAoKQkFBgVqfw4cPY+bMmejWrRtat24NW1tbPPPMMzh79myV/Qkh8Mknn6Bbt26QyWSwtrbG3LlzkZ2drdbv+vXrWLRoETw9PWFqagozMzP07dsXP/74Y53ev9TUVLW+paWlePfdd+Hk5AR9fX04Ojpi8eLFuHfvXrXnf+nSJUycOBHt2rWDTCZD+/bt8fLLL6v1ad++fY3HNzAwUPVLSUnB22+/jT59+sDc3BwmJibw9PREWFgYFApFlWOfOnUKw4cPh7GxMYyMjODr64tjx45V6fekPmdPmm6DHq2J+fLLL9GtW7cq7S4uLlqIRvuUSiWee+45hIeHY8qUKdi6dSvkcjkuXLiAjz76CN9//z327t2Lvn37ajvUWhNCICgoCC+++CIcHR3VtnXo0AHfffddldfIZLKGCq9ePv30UwQFBcHb2xtr1qyBo6MjEhMTsWnTJvTr1w8bNmzAK6+80qAxDRkyBN7e3liyZAm++uqreu0jOTkZvXr1gqmpKV577TV07doVubm5iI2Nxfbt23Hjxg3Y29trOPKG99tvv+HQoUPo2bMnTExMavxH0qhRo6pNQt99911ERkZi3LhxqraSkhIMGTIEOTk52LBhAywsLLBp0yaMGDEChw4dwsCBAx8aU2ZmJvr27Yv58+fD3NwcKSkpWLduHQYMGIDffvtN7fXfffcdpk6ditmzZ2P9+vW4fv063nzzTcTGxuLgwYOqfqGhocjMzMT8+fPh4uKCu3fvYu3atXj66adx4MABDB48WNV30aJFCAkJwaJFizB06FDExsbi3XffxenTp3HixAno6ekBAA4ePIhff/0V06ZNQ+/evVFeXo7w8HBMnDgRy5cvx7vvvlvl3Kr7O9+2bVu151OmTEFERATeffdd9O7dGydOnMDKlStx+fJl7N69W63vkSNHMGrUKPTv3x9btmyBubk5EhMTER0drdZv586dKCkpUWtLTExEYGCg2s/u7Nmz+PrrrzF9+nS888470NPTw759+zB37lycPHkS//vf/1R9T58+jQEDBsDb2xvffPMNhBBYs2YNhgwZgiNHjqBPnz6qvk/ic9YgBFXx5ZdfCgDi9OnTdX6tUqkURUVF1W4rKioSSqXysWIrLCx8rNc/jg8++EAAEKtXr66yLTU1VTg6OgpLS0uRnZ390P087BwSEhIEAPHll18+ZrQVHvWeR0RECADi6tWrau0DBw4U3bt310gMDenPP/8UOjo6YvTo0aKsrExtW1lZmRg9erTQ0dERf/75Z7327+joKGbMmFGv1/74449CKpWKxMTEer3+3XffFQDEjRs3qt2uUChU/79s2TLRVP+83X8eH330kQAgEhISavXagoICYWRkJPr166fWvmnTJgFAHD9+XNVWVlYmXFxchLe3d73izMnJEXp6emLatGmqtvLycmFtbS38/PzU+n733XcCgIiIiFC1paWlVdlnfn6+sLS0FEOGDFG1JScnC6lUKv7zn/+o9f3+++8FABEWFqZqu3v3brW/76NGjRKGhoaiuLhY1Vbbv/MnTpwQAMTatWvV2iv/Hh48eFDVVlhYKKytrcWoUaPq9bf+vffeEwDEoUOHVG1ZWVmitLS0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", + "image/png": "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Gn7++ecK51+yZAkajYY//vjD1Fed16U13qM2b97MY489hp+fHy1btuSOO+7gwoULVZ5LURQ6derEmDFjKmzLy8vD29ubJ554wtTXt29funXrxkcffXTd59AUSHJUz1JSUgC1JFlm8+bNDB06lOzsbD766CPWrl1Lr169mDx5ssXHwBVFobS0tMK/8m8iAMXFxUyYMIGRI0eydu1a5s2bZ9q2Zs0alixZwssvv8yGDRsYPnw4W7ZsYeTIkeTk5PDpp5/yzTff4Onpyfjx41m5cmWFOB544AEcHR354osv+O677yr94GrVqhW33XYbn3/+OUaj0WzbsmXLcHJy4m9/+xsAs2bNYsmSJcyYMYP4+Hi++OIL7r77bjIzM6/7/UhISCAgIIBBgwZVut3NzY3IyEiSkpJITU294XOYN28ezz33HKNHj2bNmjWmYZujR4+aPbagoIARI0bw+eefM2PGDOLi4njuuedYvnw5EyZMqPDzqOx7XhenTp2iS5cuLFq0iA0bNrBgwQJ0Oh39+/cnIyOjwv4PPvggdnZ2fP311yxatIjdu3dzyy23kJ2dfd3znDhxgnvvvZcvvviCH374gQcffJCFCxfyyCOPmO336aefMnbsWIxGIx999BHr169nxowZZklLffyebNq0CQcHB7PfxxsZO3Ys9vb2FZKDa507d47ExEQiIiLM+hMSEgCYNGlSlY8t21a2r6IoTJo0iS+++IJnnnmG1atXM2jQIKKjoys89ueff2bixIl4enry7bffsnDhQlatWsWyZcuq/RyvZ8KECQBmz/+NN97gr3/9K2FhYaxatYovvviC3Nxchg8fTnJystnjr/feUt706dPZvn17hTmaGzdu5MKFC0yfPt3Ud+rUKR555BFWrVrF999/zx133MFTTz3Fq6++atpn9erVdOjQgd69e5uGDKsaxrvtttvw9/ev9Hu2fPly+vTpQ48ePYDqvy6t8R710EMP4ejoyNdff81bb73FL7/8wn333VfluTQaDU899RQJCQkVvu8rVqxAr9ebJUegzlmKi4ur8J7V5FivaNW0lJXmf/31V6WkpETJzc1V4uPjlcDAQOXmm29WSkpKTPt27dpV6d27t1mfoijKbbfdpgQFBSkGg0FRFMsMq1X174svvjDtN23atCqH/gDF29tbycrKMusfNGiQ4u/vr+Tm5pr6SktLFa1Wq7Rp08Y05FT2fZk6dWq1Yl63bp0CKBs3bjQ7bnBwsHLnnXea+rRarTJp0qTqfSPKcXFxUQYNGnTdfZ577jkFUH777bfrPodLly4pLi4uyu23327Wv2PHDgUwK13HxMQodnZ2FYZuvvvuOwVQYmNjTX1Vfc+rUpthtdLSUiUvL09xd3dX3nvvPVN/2XOt6jm99tprpr4bDasZDAalpKREWbFihWJvb296Prm5uYqXl5cybNiw6w5NVvf3pLo2bNig2NnZKU8//bRZ//WG1coEBAQo3bp1u+7xV65caXoPKK9sGOTIkSNVPvbw4cMKoDz22GOKoihKXFycApj9bBRFUV5//fUKw2oDBw5UgoODlcuXL5v69Hq94uvrW+dhtcpiO3PmjOLg4KA89dRTZvvl5uYqgYGByj333GN27KreW659/WRkZChOTk7KP//5T7P97rnnHiUgIKDC66BM2ets/vz5SsuWLc1eU1UNq6WkpCiAsmzZMlPfrFmzFFdXVyU7O9vUl5ycrADK+++/b+qr7uvSGu9Rjz/+uNl+b731lgIoOp3O1HftsJper1c8PT2Vf/zjH2aPDQsLUyIiIiqc+5NPPlEA5fDhwzV8ZrZFKkcWNmjQIBwdHfH09CQqKooWLVqwdu1aHBwcADh+/DhHjhwxVUDKV3PGjh2LTqerUHWoi3vuuYc9e/ZU+Dd27NgK+955552VHmPkyJG0aNHC1M7Pz+e3337jrrvuwsPDw9Rvb2/PlClTOHfuXIXnUNWxrxUdHU1gYKDZX3AbNmzgwoULPPDAA6a+AQMGEBcXx/PPP88vv/zC5cuXq3X86lCu/EV07ZU+1z6HXbt2UVhYaPpZlhkyZAihoaFmfT/88ANarZZevXqZ/czHjBlT6RWJ137P6yovL4/nnnuOm266CQcHBxwcHPDw8CA/P5/Dhw9X2L+q57R58+brnufAgQNMmDCBli1bYm9vj6OjI1OnTsVgMJiGhHbu3Iler+fxxx+v8moqS/+e7N+/n3vuuYdBgwZVGLqrDqUafyWXDV/4+/vX+vhl34+y7/O1P4d7773XrJ2fn8+ePXu44447cHFxMfWXVXEt4drnvmHDBkpLS5k6darZz8XFxYURI0ZUenVtdX7/W7Zsyfjx480qx5cuXWLt2rVMnTrV9B4KagXw1ltvxdvb2/Q6e/nll8nMzKzx1YVlHnjgAS5fvmxW+V62bBnOzs6m73tNXpfWeI8qq/KVKat2XTt8Xp6npyfTp09n+fLlpiH+TZs2kZyczJNPPllh/7LX9/nz52v/BGyAJEcWtmLFCvbs2cOmTZt45JFHOHz4MH/9619N28vmHs2ePRtHR0ezf48//jhApcMctdWqVSv69etX4Z+vr6/Zfm5ubnh5eVV6jKCgILP2pUuXUBSlQj9AcHAwQIXScWX7VsbBwYEpU6awevVq0xDO8uXLCQoKMhsX//e//81zzz3HmjVriIiIwNfXl0mTJt3wtgkhISGmoc6qnDp1CoC2bdte9zmUPcfAwMAKx7i2Ly0tjT/++KPCz9zT0xNFUSr8zKv7/aque++9lw8++ICHHnqIDRs2sHv3bvbs2UOrVq0qfdOu6jldb0jgzJkzDB8+nPPnz/Pee++xbds29uzZw4cffghgOs/FixcBaNOmTZXHsuTvyYEDBxg9ejSdOnUiNjYWZ2fnaj2uTH5+PpmZmabXdlXKnl/5JAXU1xxw3dfdta+5zMxMHBwcaNmypdl+1/5cLl26hNForNZrsLbKPljLnn/Zz6Z///4VfjYrV66s8HO53nvLtR544AHOnz9vGl785ptvKCoqMrv1yO7du4mMjATgk08+YceOHezZs4cXXngBoNZJSPfu3enfv7/pDzODwcCXX37JxIkTTe+XNXldWuM96trXS9lr/Ubfk6eeeorc3Fy++uorAD744APatGnDxIkTK+xb9vq2ZLLXGDnceBdRE926dTNNwo6IiMBgMPCf//yH7777jrvuugs/Pz8A5syZYzbBsLwuXbo0WLxlrnc/lGu3tWjRAjs7O3Q6XYV9y/56Lnue1Tn+taZPn87ChQv59ttvmTx5MuvWrWPmzJnY29ub9nF3d2fevHnMmzePtLQ0019o48eP58iRI1Uee/To0Xz44Yf8+uuvlY7pFxQUkJCQgFarrfDhcu1zKHsjunbcv6yv/GRTPz8/XF1d+eyzzyqNqy7frxvJycnhhx9+YO7cuTz//POm/qKiIrKysip9TFXP6aabbqryPGvWrCE/P5/vv//erHJ28OBBs/1atWoFXH9StKV+Tw4cOMCtt95KaGgoGzduxNvb+4aPudaPP/6IwWC44b1hymLOysoyS25Hjx7NP//5T9asWUNUVFSlj12zZo1pX1BfW6WlpWRmZpp94F37c2nRogUajabKn5clrFu3DsD0/Mue53fffVehQlqZmryWx4wZQ3BwMMuWLWPMmDEsW7aMgQMHEhYWZtrn22+/xdHRkR9++MEsES37HtbF9OnTefzxxzl8+DAnT55Ep9OZzXWqyevSGu9RtXXTTTcRHR3Nhx9+SHR0NOvWrWPevHlm77llyt4zrn3PanKsOKTXpFQ1byErK0tp0aKF0q1bN9NYdKdOnZSxY8fe8JgNdSn/9eYcVHWMwYMHK4GBgWaXmBsMBiU8PLzSOUfXm89RmYEDByoDBgxQPvjggxvO1ygzc+ZMBbjupcLHjx9XXF1dq7xM9rHHHlMA5dtvvzX1Xe9nW905R6+99pri5uamnDx58obPo7o/tzI3mnOUk5OjAEpMTIxZf9n3dtq0aaa+G805evXVV019184Z+fe//11hfoPRaFQGDBhg9jrOzc1VvL29lZtvvvm6c46q+3tSlQMHDii+vr5Kjx49lIyMjCr3q86l/N7e3kp6evp1z7d161YFUNauXVthW9ml/Nu3b6+wrexS/qioKFNfY5lztHHjRsXR0VEZMmSIqS8lJUVxcHBQFixYUKdjVzVn7bnnnlOcnZ1N38+PP/7YbPusWbMUDw8Ps1s1FBQUKCEhIQqgpKSkmPr79OmjDBgwoMI5KptzpChX5xE+++yzyl133aW0bt26wty2urwuG/o9qrLPkKou5d+4caMCKBEREYqTk5OSlpZWaXyvv/66YmdnV+05kbZKKkf1rEWLFsyZM4dnn32Wr7/+mvvuu4+PP/6Y6OhoxowZw/3330/r1q3Jysri8OHD7N+/n//+979VHm/FihU88MADfPbZZ0ydOvWG509LS+PXX3+t0O/l5WX211hNxcTEMHr0aCIiIpg9ezZOTk4sXryYpKQkvvnmmzpXPh544AEeeeQRLly4wJAhQypUCQYOHMhtt91Gjx49aNGiBYcPH+aLL75g8ODBuLm5VXncjh078sUXX/C3v/2N/v37M2vWLLp06UJaWhqfffYZcXFxzJ49m8mTJ98wxhYtWjB79mxee+01HnroIe6++27Onj3LK6+8UuEvupkzZ/K///2Pm2++maeffpoePXpgNBo5c+YMGzdu5JlnnmHgwIG1+2ahXvb93XffVehv1aoVI0aM4Oabb2bhwoX4+fnRrl07tmzZwqeffmp2yXl5e/fuNXtOL7zwAq1btzYNHVRm9OjRODk58de//pVnn32WwsJClixZUuEGqB4eHrzzzjs89NBD3HrrrTz88MMEBARw/Phxfv/9dz744AOAOv2eHD16lFtvvRWA119/nWPHjpkNZ3Ts2NFUwSqTlJRkmj+Snp7Otm3bWLZsGfb29qxevbrC/tcaOHAgrq6u/PrrrxXmfqxYsYJbb72VyMhIZsyYYbqcfdOmTbz33nt07drV7EqnyMhIbr75Zp599lny8/Pp168fO3bs4Isvvqhw3ldffZWoqChGjx7NM888g8FgYMGCBbi7u1dZGbyW0Wg0vU8UFRVx5swZ4uLiWLVqFd26dTO7TL1du3bMnz+fF154gZMnT5rmVqalpbF7925TxaS2HnjgARYsWMC9996Lq6trhd/FcePG8e6773Lvvffy97//nczMTN5+++1Kh0vDw8P59ttvWblyJR06dMDFxYXw8PAqz+3j48Ptt9/O8uXLyc7OZvbs2djZmc8+qe7rsjG8R9XE6NGjCQsLY/Pmzdx3331Vzp379ddf6dWrl0XnRDZK1s7Omorr/fV5+fJlJSQkROnUqZNSWlqqKIqi/P7778o999yj+Pv7K46OjkpgYKAycuRI5aOPPjI9rrKsv+w81/7FUxmuc7Xa0KFDTfvVpnKkKOpfvCNHjlTc3d0VV1dXZdCgQcr69eur/X25npycHMXV1VUBlE8++aTC9ueff17p16+f0qJFC8XZ2Vnp0KGD8vTTT1+3QlDeoUOHlGnTpilt2rRRHB0dFV9fXyUqKkr58ccfK+x7vedgNBqVmJgYpW3btoqTk5PSo0cPZf369ZX+dZaXl6e8+OKLSpcuXRQnJyfF29tbCQ8PV55++mmzGwxe73temREjRlT5cy6L4dy5c8qdd96ptGjRQvH09FSioqKUpKQkJTQ0tNLK0caNG5UpU6YoPj4+iqurqzJ27Fjl2LFjZuet7C//9evXKz179lRcXFyU1q1bK//3f/9nqoJcWwGNjY1VRowYobi7uytubm5KWFhYhWpEdX5PKlP2PKr6V/7359p9nZycFH9/f2XEiBHKG2+8ccOKUXlTpkxRwsLCKt2Wl5envPHGG0qvXr0UNzc3xc3NTenRo4fy2muvVVohyM7OVh544AHFx8dHcXNzU0aPHq0cOXKkQuVIUdSrPHv06KE4OTkpISEhyptvvlmjm0CWf/6urq5KSEiIMn78eOWzzz5TioqKKn3cmjVrlIiICMXLy0txdnZWQkNDlbvuukv56aefzI5d08qRoijKkCFDFED529/+Vun2zz77TOnSpYvpdz8mJkb59NNPK1SOTp06pURGRiqenp4KYDpfVZUjRblaQQGUP//8s9LzV+d12Rjeo2pSOVIURXnllVcqveKyTG5uruLm5qa888471XoOtkyjKE39ZgVCiOpavnw506dPZ8+ePaa5c6L69u7dS//+/fn111/rVAkUwhr69euHRqNhz549lW7/9NNP+cc//sHZs2ebfOVIhtWEEMJC+vXrxz333MOrr77KDz/8YO1whLghvV5PUlISP/zwA/v27avyRpmlpaUsWLCAOXPmNPnECCQ5EkIIi3rnnXf49NNPyc3NNVt8VojGaP/+/URERNCyZUvmzp1b5Z3cz549y3333cczzzzTsAFaiQyrCSGEEEKUIzeBFEIIIYQoR5IjIYQQQohyJDkSQgghhCinyU/INhqNXLhwAU9PT4suySCEEEKI+qMoCrm5uQQHB1e4GWd9a/LJ0YULFyoszieEEEII23D27NnrLlRdH5p8clR2Ke3Zs2ervTK0EEIIIaxLr9fTtm1bq9wSo8knR2VDaV5eXpIcCSGEEDbGGlNiZEK2EEIIIUQ5khwJIYQQQpQjyZEQQgghRDlNfs5RdRkMBkpKSqwdhs1xcnJq8EsshRBCiPrU7JMjRVFITU0lOzvb2qHYJDs7O9q3b4+Tk5O1QxFCCCEsotknR2WJkb+/P25ubnKjyBoou8GmTqcjJCREvndCCCGahGadHBkMBlNi1LJlS2uHY5NatWrFhQsXKC0txdHR0drhCCGEEHXWrCeLlM0xcnNzs3IktqtsOM1gMFg5EiGEEMIymnVyVEaGg2pPvndCCCGammY9rCaEEEKIOjAa4PROyEsDjwAIHQJ29taOqs4kORJCCCFEzSWvg/jnQH/hap9XMEQtgLAJ1ovLAmRYzUZt3bqV8ePHExwcjEajYc2aNRY9/o4dO3BwcKBXr14WPa4QQogmIHkdrJpqnhgB6HVqf/I668RlIZIcWYjBqLDrRCZrD55n14lMDEalXs+Xn59Pz549+eCDDyx+7JycHKZOncqoUaMsfmwhhBA2zmhQK0ZU9jl3pS/+eXU/GyXDahYQn6Rj3vpkdDmFpr4gbxfmjg8jShtUL+eMjo4mOjq6yu3FxcW8+OKLfPXVV2RnZ6PValmwYAG33HLLDY/9yCOPcO+992Jvb2/xipQQQggbd3pnxYqRGQX059X92g9vsLAsySqVo9tvv50WLVpw1113mfX/8MMPdOnShU6dOvGf//zH1H/06FF69epl+ufq6tpoPrTjk3Q89uV+s8QIIDWnkMe+3E98ks4qcU2fPp0dO3bw7bff8scff3D33XcTFRXFsWPHrvu4ZcuWceLECebOndtAkQohhLApeWmW3a8RskpyNGPGDFasWGHWV1payqxZs9i0aRP79+9nwYIFZGVlAdClSxcOHjzIwYMH2b59O+7u7owePdoaoZsxGBXmrU++XmGReeuT632I7VonTpzgm2++4b///S/Dhw+nY8eOzJ49m2HDhrFs2bIqH3fs2DGef/55vvrqKxwcpKgohBCiEh4Blt2vEbJKchQREYGnp6dZ3+7du+nevTutW7fG09OTsWPHsmHDhgqPXbduHaNGjcLd3b2hwq3S7pSsChWj8hRAl1PI7pSshgsK2L9/P4qi0LlzZzw8PEz/tmzZwokTJwDM+h999FEMBgP33nsv8+bNo3Pnzg0arxBCCBsSOkS9Ko2q7nOnAa/W6n42qsblga1bt7Jw4UL27duHTqdj9erVTJo0yWyfxYsXs3DhQnQ6Hd27d2fRokUMH379cccLFy7QunVrU7tNmzacP3++wn6rVq1i6tSpNQ27XqTnVp0Y1WY/SzEajdjb27Nv3z7s7c3vN+Hh4QHAwYMHTX1eXl7k5uayd+9eDhw4wJNPPmk6jqIoODg4sHHjRkaOHNlgz0EIIUQjZWevXq6/aipqglR+dORKwhT1pk3f76jGyVHZVVLTp0/nzjvvrLB95cqVzJw5k8WLFzN06FA+/vhjoqOjSU5OJiQkpMrjKkrFoadr776s1+tN82gaA39PF4vuZym9e/fGYDCQnp5eZVJ60003mbWNRiOJiYlmfYsXL2bTpk189913tG/fvt7iFUIIYWPCJsA9K6q4z9GbNn+foxonRze6Surdd9/lwQcf5KGHHgJg0aJFbNiwgSVLlhATE1Pl41q3bm1WKTp37hwDBw4022ft2rWMGTMGF5eqk42ioiKKiopMbb1ef8PnVFsD2vsS5O1Cak5hpfOONECgtwsD2vta/Nx5eXkcP37c1E5JSeHgwYP4+vrSuXNn/va3vzF16lTeeecdevfuTUZGBps2bSI8PJyxY8dWOJ6dnR1ardasz9/fHxcXlwr9QgghBGEToOu4JnmHbIvOOSouLmbfvn1ERkaa9UdGRrJz587rPnbAgAEkJSVx/vx5cnNziY2NZcyYMWb7rFq1ismTJ1/3ODExMXh7e5v+tW3btnZPphrs7TTMHR8GVBx5LWvPHR+GvZ3l1x/bu3cvvXv3pnfv3gDMmjWL3r178/LLLwPqVWdTp07lmWeeoUuXLkyYMIHffvutXr8fQgghmhk7e/Vy/fC71K9NIDEC0CiVjWdV98Eajdmco7J5Qzt27GDIkKsTsd544w0+//xzjh49CsCYMWPYv38/+fn5+Pr6snr1avr378+6deuYPXs2RqORZ599lr///e+mY+Tk5NC5c2fOnj1rWgm+MpVVjtq2bUtOTg5eXl5m+xYWFpKSkkL79u2vW426EWvc56ixsNT3UAghhChPr9fj7e1d6ed3fauX67WvnSukKIpZX2VXoQFMmDCBCRMqH6f09vYmLe3G90xwdnbG2dm5BtHWXZQ2iNFhgexOySI9txB/T3UorT4qRkIIIYSoXxZNjvz8/LC3tyc1NdWsPz09nYAA273fQXXY22kY3LGltcMQQgghRB1ZdM6Rk5MTffv2JSEhwaw/ISHBbJhNCCGEEKKxqnHl6HpXSYWEhDBr1iymTJlCv379GDx4MEuXLuXMmTM8+uijFg1cCCGEEKI+1Dg52rt3LxEREab2rFmzAJg2bRrLly9n8uTJZGZmMn/+fHQ6HVqtltjYWEJDQy0XtRBCCCFEPalxcnTLLbdUesPG8h5//HEef/zxWgclhBBCCGEtVllbTQghhBCisZLkSAghhBCiHEmOhBBCCCHKkeRICCGEEKIcSY5s1NatWxk/fjzBwcFoNBrWrFljkeN+9dVX9OzZEzc3N4KCgpg+fTqZmZkWObYQQghhCyQ5shSjAVK2QeJ36lejoV5Pl5+fT8+ePfnggw8sdszt27czdepUHnzwQQ4dOsR///tf9uzZw0MPPWSxcwghhBCNXb2srdbsJK+D+OdAf+Fqn1cwRC2AsMrXiqur6OhooqOjq9xeXFzMiy++yFdffUV2djZarZYFCxZwyy23VPmYX3/9lXbt2jFjxgwA2rdvzyOPPMJbb71l6fCFEEKIRksqR3WVvA5WTTVPjAD0OrU/eZ1Vwpo+fTo7duzg22+/5Y8//uDuu+8mKiqKY8eOVfmYIUOGcO7cOWJjY1EUhbS0NL777jvGjRvXgJELIYQQ1iXJUV0YDWrFiMpuinmlL/75eh9iu9aJEyf45ptv+O9//8vw4cPp2LEjs2fPZtiwYSxbtqzKxw0ZMoSvvvqKyZMn4+TkRGBgID4+Prz//vsNGL0QQghhXZIc1cXpnRUrRmYU0J9X92tA+/fvR1EUOnfujIeHh+nfli1bOHHiBIBZf9m6d8nJycyYMYOXX36Zffv2ER8fT0pKiqyLJ4QQolmROUd1kZdm2f0sxGg0Ym9vz759+7C3tzfb5uHhAcDBgwdNfV5eXgDExMQwdOhQ/u///g+AHj164O7uzvDhw3nttdcICgpqmCcghBDCdpzfDwkvw+j50LqPtaOxCEmO6sIjwLL7WUjv3r0xGAykp6czfPjwSve56aabKvQVFBTg4GD+kihLrm60np4QQohm6vdv4dQ2+GOlJEcCCB2iXpWm11H5vCONuj10iMVPnZeXx/Hjx03tlJQUDh48iK+vL507d+Zvf/sbU6dO5Z133qF3795kZGSwadMmwsPDGTt2bKXHHD9+PA8//DBLlixhzJgx6HQ6Zs6cyYABAwgODrb4cxBCCGGjss9AQSaggaT/qX1J/4OefwUUcGsJPiHWjLBOJDmqCzt79XL9VVMBDeYJkkb9EvWmup+F7d27l4iICFN71qxZAEybNo3ly5ezbNkyXnvtNZ555hnOnz9Py5YtGTx4cJWJEcD9999Pbm4uH3zwAc888ww+Pj6MHDmSBQsWWDx+IYQQNmxReMW+/AxYOuJq+5WchovHwjRKEx8v0ev1eHt7k5OTY5pbU6awsJCUlBTat2+Pi4tL7U9S6X2OWquJUT3d56ixsNj3UAghhO04+DWsfQIUY8Vtdg4waQn0uKdOp7je53d9k8qRJYRNgK7j1KvS8tLUOUahQ+qlYiSEEEJYVWoS/Lqk8sQI4KGfIbhXg4ZkaZIcWYqdPbSvfPKzEEIIYfMMJbDtXdi6EIwl4OQBxXlcnVZiB1SRMNkYuc+REEIIIa5P9wd8EgG/vKEmRl3Gwf0/goe/WiW67V8Q3FNtu7eydrR1JpUjIYQQQlSutBi2vQPb3gZjKbi2gLFvg/ZO0GhgZhLYO6n/7zsdDMXg4GztqOtMkiPkHj51Id87IYRoonS/w5onIC1RbXe9Ta0Qefhf3ad8IqTRNInECJp5cuTo6AioNz90dXW1cjS2qbi4GKDCnbiFEELYqNJidV7R9nevVIt8Ydzb0P0ONQFqBpp1cmRvb4+Pjw/p6ekAuLm5oWkmP3hLMBqNXLx4ETc3twp31hZCCGGDLhxQq0Xph9R22EQY+w542P48oppo9p9ogYGBAKYESdSMnZ0dISEhklQKIYQtKy2CLW/B9n+BYlDvcD3uHeh+u7Ujs4pmnxxpNBqCgoLw9/enpKTE2uHYHCcnJ+zs5KJHIYSwWef3w5rH4eJhtd39dnXStbufdeOyomafHJWxt7eXeTNCCCEaJ6PB8jcaLi2CX96EHe+p1SL3Vmq1KGyiZWK2YZIcCSGEEI1ZpUtUBatre9Z2iapz+2Dt43DxiNrW3gnRC8G9Zd3jbQIkORJCCCEaq+R1VxY3v+a2KXqd2n/PipolSCWF8EsM7Py3uvyHuz/c9i50G2/RsG2dJEdCCCFEY2Q0qBWjaxMjuNKngfjn1bU9qzPEdnaPWi3K+FNth98D0QvAzdeCQTcNkhwJIYQQjdHpneZDaRUooD+v7ne9tT1LLsPmN2DXB2q1yCNAvZlj13EWD7mpkORICCGEaIzy0uq+39nd6pVomcfUdo+/QFSMVItuoFFdg/3222/TvXt3tFotX375pan/9ttvp0WLFtx1111WjE4IIYRoQB4Btd+vuAA2vACfRqqJkUcg/PVbuONjSYyqodEkR4mJiXz99dfs27ePvXv3smTJErKzswGYMWMGK1assG6AQgghREMKHaJelUZVN9nVgFdrdb/yzvwKHw1Th9FQoNff4IlfoUt0PQfcdDSa5Ojw4cMMGTIEFxcXXFxc6NWrF/Hx8QBERETg6elp5QiFEEKIBmRnr16uD1RMkK60o968Ohm7uADi58BnUZB1AjyD4N7/wqTF4NqioaJuEiyWHG3dupXx48cTHByMRqNhzZo1FfZZvHgx7du3x8XFhb59+7Jt2zbTNq1Wy+bNm8nOziY7O5tNmzZx/vx5S4UnhBBC2J6wCerl+l5B5v1eweaX8Z/eCR8NhV8XAwr0vg8e/xU6RzZ4yE2BxSZk5+fn07NnT6ZPn86dd95ZYfvKlSuZOXMmixcvZujQoXz88cdER0eTnJxMSEgIYWFhzJgxg5EjR+Lt7U3//v1lMVMhhBAibIJ6ZVlld8guzoef58NvHwOKOsw2/t/Q6VZrR23TLFY5io6O5rXXXuOOO+6odPu7777Lgw8+yEMPPUS3bt1YtGgRbdu2ZcmSJaZ9HnnkEfbv38/mzZtxcnLipptuqnEcRUVF6PV6s39CCCGETbOzByd32Ldc/WpnD6e2w5Ih8NtHgAJ9psLjuyQxsoAGmXNUXFzMvn37iIw0L+9FRkayc+dOUzs9PR2Ao0ePsnv3bsaMGVPjc8XExODt7W3617Zt27oFL4QQQjQGv38Lp7bBgS8h9v9g+Ti4dAq82sB938OE98HF29pRNgkNMm6VkZGBwWAgIMD8csOAgABSU1NN7UmTJpGdnY27uzvLli0zDauNGTOG/fv3k5+fT5s2bVi9ejX9+/ev9Fxz5sxh1qxZprZer5cESQghhG3KPgMFmYAGDn2v9u1bpt7MEUB7l3pDRxcvq4XYFDXopB6Nxny2vaIoZn3lq0jlbdiwodrncHZ2xtnZuXYBCiGEEI3JovCKfWWJEUDSd3DXpw0XTzPRIMNqfn5+2Nvbm1WJQB1Gu7aaJIQQQogr7vgENFWsm2bnoG4XFtcgyZGTkxN9+/YlISHBrD8hIYEhQ4ZU8SghhBCiGSvKhTO7QDFUvv2hn6HHPQ0bUzNhsWG1vLw8jh8/bmqnpKRw8OBBfH19CQkJYdasWUyZMoV+/foxePBgli5dypkzZ3j00UctFYIQQgjRNJzYDOuegpyz5To1gIJa1zBW/jhhERZLjvbu3UtERISpXTYpetq0aSxfvpzJkyeTmZnJ/Pnz0el0aLVaYmNjCQ0NtVQIQgghhG0r1MPGF2H/52rbJxRunQfxz6r3MOozFfavAP15cG9l3VibMI2iKIq1g6hPer0eb29vcnJy8PKS2fxCCCEaqeM/w7oZoD+ntgc8AqNeBmcPKC0CeyfQaEBRwFAMDk374iNrfn7LLaiFEEIIayrMgQ0vwIEv1HaL9jDxA2g37Oo+5RMhjabJJ0bWJsmREEIIYS3HEmD9P9RhMjQw8FEY9ZJ6F2xhNZIcCSGEEA3tcrZaLTr4pdr27QATP1TXTBNWJ8mREEII0ZD+3KBWi3J1gAYGPQ4jXwQnN2tHJq6Q5EgIIYRoCJcvQfw/4fev1bZvR5i0GEIGWTcuUYEkR0IIIUR9OxoH62dCXiqggcFPqNUiR1drRyYqIcmREEIIUV8KsiB+Dvzxrdpu2UmtFrUdYN24xHVJciSEEELUhyOx8MNMyEsDjR0MfhIi/inVIhsgyZEQQghhSQVZEPccJK5S235d1GpRm37WjUtUmyRHQgghhKUcXg8/zIL8dLVaNPQfMOJ5cHSxdmSiBiQ5EkIIIeoqPxPi/g+S/qe2W3WFiYuhTV/rxiVqRZIjIYQQoi6S18KPz0D+RdDYw7CZMOI5WeLDhklyJIQQQtRGfgbEzoZDq9W2f5h6l+vWfawbl6gzSY6EEEKImjq0Wq0WFWSq1aLhs+Dm/5NqURMhyZEQQghRXXkXIfYZdSgNwL+7eiVacC+rhiUsS5IjIYQQ4kYUBQ59Dz/OhstZYOcAw5+B4bPBwcna0QkLk+RICCGEuJ68dPhxlnqZPkBAOEz6EIJ6WjcuUW8kORJCCCEqoyjqpfmxs9VFY+0c1HlFw2ZJtaiJk+RICCGEuFZuqnozx6M/qu3AcJi0RP0qmjw7awcghBBCWNX5/bD8NvWrosDvK+HDgWpiZOcIES/Cw5slMWpGpHIkhBCiefv9Wzi1DfZ+pt676M84tT+op1otCuhu3fhEg5PkSAghRPOTfUa9RxEaOHRlyY8DXwIKaBxg0GNw61ywd7RmlMJKJDkSQgjR/CyqbIhMufKlFHa9D2Nea9CQROMhc46EEEI0P7cvBU0VH4F2DnDHJw0bj2hUJDkSQgjRvOSch8T/gmKsfPuoudDjnoaNSTQqMqwmhBCieVAUdV7Rhn9Ckb7q/RJeghbtIGxCg4UmGhepHAkhhGj6cs7Bl3fCuifVxOhGE63jnwejoWFiE42OJEdCCCGaLkWBfcvhw0Fw4mdwcIG+D4Ch5PqP05+H0zsbJETR+EhyJIQQomnKPgNf3A7r/wHFudB2IDy6HdoNrd7j89LqNz7RaDWa5Ojo0aP06tXL9M/V1ZU1a9YA4ODgYOp/6KGHrBuoEEKIxk1R1Bs6Lh4MJzer1aIxb8D0OPDrBB4B1TtOdfcTTU6jmZDdpUsXDh48CEBeXh7t2rVj9OjRAPj4+Ji2CSGEEFW6dBrWPQUpW9R220Ew8UPwu+nqPqFDwCsY9DpM9zYyo1G3hw5piIhFI9RoKkflrVu3jlGjRuHu7m7tUIQQQtgCoxH2/EetFqVsAQdXiHoTpseaJ0YAdvYQteBKQ3PNga60o95U9xPNksWSo61btzJ+/HiCg4PRaDSmIbHyFi9eTPv27XFxcaFv375s27at0mOtWrWKyZMnm9p6vZ6+ffsybNgwtmzZYqmQhRBCNAWXTsGKCfDjM1CSDyFD4LEd6hIgVSU4YRPgnhXgFWTe7xWs9stl/M2axYbV8vPz6dmzJ9OnT+fOO++ssH3lypXMnDmTxYsXM3ToUD7++GOio6NJTk4mJCTEtJ9er2fHjh18++23pr5Tp04RHBxMUlIS48aNIzExES8vL0uFLoQQwhYZjbD3U0iYqyZFjm5w6yvQ/2Gwq8bf/mEToOs49aq0vDR1jlHoEKkYCTSKolQ24Fq3g2o0rF69mkmTJpn6Bg4cSJ8+fViyZImpr1u3bkyaNImYmBhT3xdffMGGDRv48ssvKz12dHQ0r776Kv369at0e1FREUVFRaa2Xq+nbdu25OTkSEIlhBBNRdZJWPsUnN6utkOHwcT3wbeDdeMSFqPX6/H29rbK53eDzDkqLi5m3759REZGmvVHRkayc6f5fSSuHVK7dOmSKdk5d+4cycnJdOhQ9Ys/JiYGb29v07+2bdta8JkIIYSwKqMRfvsYlgxVEyNHdxj7NkxbL4mRsJgGuVotIyMDg8FAQID5ZZEBAQGkpqaa2jk5OezevZv//e9/pr7Dhw/zyCOPYGdnh0aj4b333sPX17fKc82ZM4dZs2aZ2mWVIyGEEDYu8wSsfRLOXPmjut1wmPA++La3blyiyWnQS/k1GvOrAhRFMevz9vYmLc38pltDhgwhMTGx2udwdnbG2dm5boEKIYRoPIxG+O0j+Hk+lF4GJw8YPR/6Tq/e3CIhaqhBkiM/Pz/s7e3NqkQA6enpFapJQgghhEnGcVj7BJz9VW23H6FWi1qEWjcu0aQ1SMrt5ORE3759SUhIMOtPSEhgyBC5yZYQQohrGA2w8wP4aKiaGDl5wG2LYOpaSYxEvbNY5SgvL4/jx4+b2ikpKRw8eBBfX19CQkKYNWsWU6ZMoV+/fgwePJilS5dy5swZHn30UUuFIIQQoinIOAZrHodzu9V2hwiY8G/wCbn+44SwEIslR3v37iUiIsLULpsUPW3aNJYvX87kyZPJzMxk/vz56HQ6tFotsbGxhIbKXwBCCCFQq0W7PoTNr0NpITh5wpjXoc9U0Fx7J2sh6k+93OeoMbHmfRKEEEJU08Wj6tyic3vUdsdRMP498JGrjZsra35+N5qFZ4UQQjRDhlLY9QFsfgMMReDsBWPegN73SbVIWI0kR0IIIawj/QisfRzO71PbN41Wq0Xera0bl2j2JDkSQgjRsAylsPM9+OVNMBSDszdExUCve6VaJBoFSY6EEEI0nLRktVp04YDa7jQGxi8Cr2CrhiVEeZIcCSGEqH+GEtixCLa8pVaLXLwh+i3oMVmqRaLRkeRICCFE/UpNUqtFut/VdudouO1f4BVk3biEqIIkR0IIIeqHoQS2/0utFhlLwMUHxi6E8LulWiQaNUmOhBBCWF5qonqX69Q/1HaXcWq1yFPW0xSNnyxnLIQQom7O74flt6lfS4vVq9CW3qImRq4t4M5P4S9fSWIkbIZUjoQQQtTN79/CqW3q0h8Xj0JaotrfbTyMexc8/K0bnxA1JMmREEKImss+AwWZgAaS/qf2JX2nfnX2gpEvwoC/y9wiYZMkORJCCFFzi8Kr3lakh7hnYeAjDRePEBYkc46EEELU3MTFoKniI8TOAe74pGHjEcKCpHIkhBCiZs7vh53vg2KsfPtDP0NwrwYNSQhLkuRICCFE9ZQWqVei7XgPFIN636LCbNRBCGO5r0LYNhlWE0IIcWPn9sHHN8P2d9XESHsX3P+jeiVacE/1HkbBPdW2eytrRytEnUjlSAghRNVKCuGXGNj5b3UYzd0fbntXvUwfYGYS2DupV6X1na6um+bgbN2YhagjSY6EEEJU7uwedU20jD/Vdvg9EL0A3Hyv7lM+EdJoJDESTYIkR0IIIcyVXIbNr6s3dVSM4BGgDpt1HWftyIRoEJIcCSGEuOrsbnVNtMxjarvHXyAqxrxaJEQTJ8mREEIIKC64Wi1CAY9AGL8IukRbOzIhGpwkR0II0dyd3gVrn4CsE2q7570Q9Ya6aKwQzZAkR0II0VwVF8CmV+HXJYACnkEw/j3oPMbakQlhVZIcCSFEc3R655Vq0Um13fs+iHwdXH1qdhyjQT1WXpo6cTt0CNjZWzxcIRqSJEdCCNGcFOfDz/Pht48BBbxaw/h/Q6dba36s5HUQ/xzoL1zt8wqGqAUQNsFiIQvR0OQO2UII0Vyc2g5LhsBvHwEK9JkKj++qfWK0aqp5YgSg16n9yessErIQ1iCVIyGEaOqK8uDnebB7qdr2agMT3oObapEUgTqUFv8coFSyUQE0EP+8el8kGWITNkiSIyGEaMpStsLaJyH7tNruez+MfhVcvGp/zNM7K1aMzCigP6/u13547c8jhJVIciSEEE1RUR4kvAx7P1Xb3m1hwr+h48i6HzsvzbL7CdHISHIkhBBNzclfYN1TkH1Gbfd7AEbPB2dPyxzfI8Cy+wnRyDS6CdkODg706tWLXr168dBDD5n63377bbp3745Wq+XLL7+0YoRCCNFIFeph/UxYMVFNjLxDYOpadV00SyVGoF6u7xUMaKrYQaNeBRc6xHLnFKIBNbrKkY+PDwcPHjTrS0xM5Ouvv2bfvn0AjBo1ittuuw0fH5+GD1AIIRqjE5tg3QzIOau2+z8Et75i2aSojJ29ern+qqmoCVL5idlXEqaoN2UytrBZja5yVJnDhw8zZMgQXFxccHFxoVevXsTHx1s7LCGEsL5CvZoUfXG7mhj5hMK09TDunfpJjMqETYB7VoBXkHm/V7DaL/c5EjbMosnR1q1bGT9+PMHBwWg0GtasWVNhn8WLF9O+fXtcXFzo27cv27ZtM9uu1+vp27cvw4YNY8uWLQBotVo2b95MdnY22dnZbNq0ifPnz1sydCGEsD3Hf4LFg2H/52p7wN/hsZ3Q/uaGOX/YBJiZBNN+gDs/Vb/OTJTESNg8iw6r5efn07NnT6ZPn86dd95ZYfvKlSuZOXMmixcvZujQoXz88cdER0eTnJxMSEgIAKdOnSI4OJikpCTGjRtHYmIiYWFhzJgxg5EjR+Lt7U3//v1xcGh0I4JCCNEwCnNgwwtw4Au13aIdTPwQ2g1r+Fjs7OVyfdHkaBRFqewuXnU/sEbD6tWrmTRpkqlv4MCB9OnThyVLlpj6unXrxqRJk4iJialwjOjoaF599VX69etn1v/QQw9x++23M27cuAqPKSoqoqioyNTW6/W0bduWnJwcvLzqcF8PIYRoDI4lqMNouVfuMzTwURj1Mji5WzcuISxMr9fj7e1tlc/vBptzVFxczL59+4iMjDTrj4yMZOfOnQBcunTJlNicO3eO5ORkOnToAEB6ejoAR48eZffu3YwZU/mq0TExMXh7e5v+tW3btr6ekhBCNJzL2bDmCfjqLjUx8u0A0+MgeoEkRkJYWIONTWVkZGAwGAgIML/vRUBAAKmpqYA68fqRRx7Bzs4OjUbDe++9h6+vLwCTJk0iOzsbd3d3li1bVuWw2pw5c5g1a5apXVY5EkIIm/XnBlj/D8jVARoY9DiMfBGc3KwdmRBNUoNP3NFozO+LoSiKqW/IkCEkJiZW+riy6tKNODs74+zsXLcghRCiMbh8CeLnwO/fqG3fjjBpMYQMsm5cQjRxDZYc+fn5YW9vb6oSlUlPT69QTRJCiGbvaJx6Q8e8VEADg5+AiBekWiREA2iwOUdOTk707duXhIQEs/6EhASGDJG7qAohBAAFWfD93+Gbv6iJUctO8MAGGPO6JEZCNBCLVo7y8vI4fvy4qZ2SksLBgwfx9fUlJCSEWbNmMWXKFPr168fgwYNZunQpZ86c4dFHH7VkGEIIYZuO/KhWi/LTQWMHg5+EiH+Co6u1IxOiWbFocrR3714iIiJM7bKJ0dOmTWP58uVMnjyZzMxM5s+fj06nQ6vVEhsbS2hoqCXDEEII21KQBXHPQuJ/1bZfZ5i4GNr2t25cQjRT9Xafo8bCmvdJEEKIG0peBz/OgvyLarVoyAy4ZQ44ulg7MiGsypqf33KbaSGEsIb8TIidDYe+V9utuqrVojZ9rRuXEEKSIyGEaHCH1sCPz0BBBmjsYeg/YMRzUi0SopGQ5EgIIerT+f2Q8DKMng/ebdVqUfIadVurbup9i1r3sWqIQghzkhwJIUR9+v1bOLUNNr8OFw5AQaZaLRr2NIx4FhzkprVCNDaSHAkhhKVln1GTIDSQ9J3ad/wn9WuLDhD1BnSJtlp4Qojrk+RICCEsbVF41dsunVRv8PhKTsPFI4SokQa7Q7YQQjQbY98GNJVvs3OAOz5p0HCEEDUjlSMhhLAURYHE79T5RVRxC7mHfobgXg0ZlRCihiQ5EkIIS8hNhR9mwdEf1XbLmyDzOGqB3ljuqxCisZNhNSGEqAtFgd9XwocD1cTIzhEiXoD7vgcPfwjuCbf9S/3q4Q/urawdsRDiBqRyJIQQtaXXwQ9Pw59xajuop3qX60Ct2p6ZBPZOoNFA3+lgKJZL94WwAZIcCSFETSkK/P4NxD8PhTlqteiW52DoTLB3vLpf+URIo5HESAgbIcmREELUhP4CrP8HHNuotoN6waQlEBBm1bCEEJYjyZEQQlSHosDBryD+n1CUow6X3TIHhswAe3krFaIpkd9oIYS4kZxzarWo7C7XwX3UapF/V+vGJYSoF5IcCSFEVRQFDnwBG16AIj3YO0PEP2Hwk1ItEqIJk99uIYSoTPZZWD8DTmxS2637waTF0KqLdeMSQtQ7SY6EEKI8RYH9n8OGF6E4V60WjXwRBj8BdvbWjk4I0QAkORJCiDLZZ2DdDDi5WW23GQATP4RWna0blxCiQUlyJIQQigL7lsHGl6A4DxxcYORLMOgxqRYJ0QxJciSEaN4unYZ1T0LKVrXddpBaLfK7ybpxCSGsRpIjIUTzZDTCvs9g48tQkg8OrnDrXBjwd6kWCdHMSXIkhGh+slJg3VNwapvaDhkCEz+Alh0tex6jAU7vhLw08AiA0CGSeAlhAyQ5EkI0H0Yj7PkP/DQXSgrA0Q1ufQX6Pwx2dpY9V/I6iH9OXW6kjFcwRC2AsAmWPZcQwqIkORJCNA9ZJ2HtU3B6u9oOHQYT3wffDpY/V/I6WDUVUMz79Tq1/54VkiAJ0YhJciSEaNqMRti9FH6ed6Va5A6j50G/By1fLQJ1KC3+OSokRnClTwPxz0PXcTLEJmyewaiwOyWL9NxC/D1dGNDeF3s7jbXDqjNJjoQQTVfmCVj7JJzZqbbbDYcJ74Nv+/o75+md5kNpFSigP6/u1354/cUhRD2LT9Ixb30yupxCU1+Qtwtzx4cRpQ2yYmR1Vw9/NgkhhJUZDbBrMSwZqiZGju4w7h2Yuq5+EyNQJ19bcj8hGqH4JB2PfbnfLDECSM0p5LEv9xOfpLNSZJYhlSMhRNOScRzWPgFnf1Xb7W+GCR9Ai9CGOb9HgGX3E6KRMRgV5q1Pvt7AMfPWJzM6LNBmh9ikciSEaBqMBtj5AXw0VE2MnDzgtkVqtaihEiNQL9f3Ckb9iKiMBrxaq/sJYYN2p2RVqBiVpwC6nEJ2p2Q1XFAW1uiSo4KCAkJDQ5k9ezYAubm59O/fn169ehEeHs4nn3xi5QiFEI1OxjH4LAo2vgClhdAhAh7fBf2mg6aB/3K1s1cv1wcqJkhX2lFvymRsYbPSc6tOjGqzX2PU6IbVXn/9dQYOHGhqu7m5sWXLFtzc3CgoKECr1XLHHXfQsmVLK0YphGgUjAbY9SFseg0MReDkCWNehz5TGz4pKi9sgnq5fqX3OXpTLuMXNs3f08Wi+zVGjSo5OnbsGEeOHGH8+PEkJSUBYG9vj5ubGwCFhYUYDAYUpbKRTiFEs3LxqDq36Nwetd1xFIx/D3zaWjeuMmET1Mv15Q7ZookZ0N6XIG8XUnMKK513pAECvdXL+m2VxYbVtm7dyvjx4wkODkaj0bBmzZoK+yxevJj27dvj4uJC37592bZtm9n22bNnExMTU+Fx2dnZ9OzZkzZt2vDss8/i5+dnqbCFELbGUArb/wUfDVcTI2cvdcL1ff9rPIlRGTt79XL98LvUr5IYiSbA3k7D3PFhQJUDx8wdH2azk7HBgslRfn4+PXv25IMPPqh0+8qVK5k5cyYvvPACBw4cYPjw4URHR3PmzBkA1q5dS+fOnencuXOFx/r4+PD777+TkpLC119/TVqaXAIrRLOUfgQ+HQ0/vaIOo900Gh7/FfpMse4wmhDNTJQ2iCX39SHQ23zoLNDbhSX39bH5+xxplHoYo9JoNKxevZpJkyaZ+gYOHEifPn1YsmSJqa9bt25MmjSJmJgY5syZw5dffom9vT15eXmUlJTwzDPP8PLLL5sd+7HHHmPkyJHcfffdlZ67qKiIoqIiU1uv19O2bVtycnLw8vKy7BMVQjQMQynsfA9+eRMMxeDsDVEx0OteSYqEsKL6vEO2Xq/H29vbKp/fDXK1WnFxMfv27SMyMtKsPzIykp071TvXxsTEcPbsWU6dOsXbb7/Nww8/zMsvv0xaWhp6vR5Qv1Fbt26lS5cuVZ4rJiYGb29v07+2bRtZmV0IUTNpyfDprfDzfDUx6jQGnvgVev9NEiMhrMzeTsPgji2Z2Ks1gzu2tOmhtPIaZEJ2RkYGBoOBgADzm54FBASQmpp63ceeO3eOBx98EEVRUBSFJ598kh49elS5/5w5c5g1a5apXVY5EkLYGEMJ7FgEvywAYwm4eKuXyPf8iyRFQoh61aBXq2mueUNTFKVCH8D9999v+n/fvn05ePBgtc/h7OyMs7NzbUMUQjQGqUmw9nHQ/a62O0fDbf8CL9uexyCEsA0Nkhz5+flhb29foUqUnp5eoZokhGjGDCXqlWhb3rpSLfKBsQsh/G6pFgkhGkyDzDlycnKib9++JCQkmPUnJCQwZIjcQl8IAaQmwicRsPl1NTHqMg6e+A163COJkRCN2B/nsvnr0l/541y2tUOxGItVjvLy8jh+/LipnZKSwsGDB/H19SUkJIRZs2YxZcoU+vXrx+DBg1m6dClnzpzh0UcftVQIQghbVFoM29+FrQvBWAquLWDs26C9U5IiIWzA9/vPs+tkJt/vP0+PNj7WDsciLJYc7d27l4iICFO7bFL0tGnTWL58OZMnTyYzM5P58+ej0+nQarXExsYSGtqAC0IKIRoX3e+w5glIS1TbXW9T5xZ5+Fs3LiHEdZ27VMCl/BI0Glh78DwA63+/wF1926Ao0MLdkTYt3KwcZe3Vy32OGhNr3idBCFGF0mK1UrT93SvVIl8Y9zZ0v0OqRULYgHbP/1ihTwNmy4mcenNcnc5hzc/vRrW2mhCiGbhwENY8DumH1HbYRBj7Dni0smpYQojrO3Exj/ikVGITdZVuL0uMHOw0vH13z4YLrB5IciSEaBilRepVaNv/BYoB3FrCuHeg++3WjkwIUQlFUTialktcYipxSTr+TMszbbPTgLa1N3+cy6nwuDVPDEXb2rshQ7U4SY6EEPXv/H61WnTxsNrufrs66dpdFpEWojrqc5mO8hRFIem8nrgkHfFJqZzMyDdtc7TXMKSjH2PDAxkdFsiF7Mvc9v52NBpQFExfmwJJjoQQlnV+PyS8DKPnQ0B3dT20He+p1SL3Vmq1KGyitaMUwmbEJ+mYtz4ZXU6hqS/I24W548MsssCr0ahw8Fw2cYk64pJSOXfpsmmbk4MdN3dqRbQ2kFu7BeDt5mjaVlRqoJWHM0E+Lkzu35aVe86iyy6kpYdTnWOyNpmQLYSwrNhnYffH6uTq9GS4eETt194J0QvBvaV14xPChsQn6Xjsy/1c+0FdVjNacl+fWiVIBqPC3lNZxCWlEp+USqr+auLl4mhHRBd/osODGNnVHw/nqusoRaUGnOzt0Gg0KIpCscGIs4N9jeOpjEzIFkLYtuwzUJAJaCDpf2rfoe/Vry4t4Na50G+61cITwhYZjArz1idXSIxAnfysAeatT2Z0WGC1hthKDUZ+PZlFXJKODYfSyMgrMm3zcHZgZFd/orWBjOjSCjen6qUH5RMhjUZjscTI2iQ5EkLU3aLwqrcVXoIfZkpyJEQN7U7JMhtKu5YC6HIK2Z2SxeCOlVdki0uN7DiRQVyijoTkNC4VlJi2ebk4MDoskGhtIMM6+eHi2DQSG0uQ5EgIUXcTP4R1T4FirLjNzgEmLWn4mISwcem5VSdG19uvsMTA1j8vEpeUyk+H08gtLDVt83V3IjIsgOjwIAZ3aImTQ4OsImZzJDkSQtTN2d2wfVHliRHAQz9DcK+GjEiIJsHf06Xa+xUUl7L5yEXiknRsOpJOQbHBtL2VpzNR3QOJDg9kQDtfHOwlIboRSY6EELVTXKAuErvrQ0AB15ZwORN1PWtjua9CiNoY0N6XIG8XUnMKK513BODj6siyHSlsPXaRwpKrv2/B3i5EaYOIDg+kb0gL7Orhsv+mTJIjIUTNnflVvW9R1gm13fNeGPIUfDERvFpDn6mwfwXoz6uX7wshaszeTsOTER15Yc2hKvfJvlzCxuQ0AEJ83YgODyRaG0TPNt5oZCmeWpPkSAhRfcUFsOlV+HUJoIBnEIx/DzqPUbfPTAJ7J/VucH2ng6EYHJytGrIQtux6iVGZJyNuIjo8kLAgL0mILESSIyFE9ZzeCWufgKyTarv3fRD5Orj6XN2nfCKk0UhiJEQtpekLiU9K5aZW7hy/mF/pPvZ2Gt6+qwe392nTwNE1fZIcCSGurzgffp4Pv30MKOqw2fh/Q6dbrR2ZEE3KuUsFxCelEpeUyr7Tl264/9omsIZZYyXJkRCiaqe2q9WiS6fUdp+pEPkauMgbshCWcCoj/8pdqnX8fs0irn1CfIjWBtHez52HVuxtkmuYNVaSHAkhKirKg5/nwe6laturDUx4D26SapEQdXU8PZfYRLVCdFinN/VrNDCgnS/R2kDGaAMJ8nYFQJdzucmuYdZYydpqQghzKVth7ZOQfVpt970fRr8KLvL7I0RtKIrCYV0u8Uk6YpNSOZ6eZ9pmb6dhcIeWRIcHEhkWSCvPyufp1ecaZo2VrK0mhLC+ojz4aS7s+Y/a9m4LE/4NHUdaNy4hbJCiKPxxLoe4pFTiknScziwwbXO01zDsJj+itUGMDgughfuNK0BNdQ2zxkqSIyEEnPxFXf4j+4za7vcAjJ4Pzp5WDUsIW2I0Khw4e4nYRHWl+/PZl03bnB3sGNG5FdHhgYzsGoC3q6MVIxU3IsmREM1ZUS5sfAn2LVPb3iEw8X3ocItVwxLCVhiMCrtTyla6TyVNf3WlezcneyK6+BMdHkhEF3/cneUj11bIT0qI5urEZrValHNWbfd/CG59RapFQtxAicHIrhOZxCWlsvFQKpn5xaZtns4OjOrmT3R4ECM6t5KV7m2UJEdCNDeFetj4Iuz/XG37hMLED6D9zXU/ttGg3iwyLw08AiB0CNjJh4OwfUWlBnYczyA2MZWE5DRyLpeYtvm4OTK6WwDR4YEMvclP5gM1AZIcCdGcHP8J1v0D9OfU9oC/w6i54OxR92Mnr4P450B/4WqfVzBELYCwCXU/vhD15I9z2cTEHmHO2K70aONj6i8sMfDL0YvEJ+n4+XA6uUWlpm1+Hk5Edg8kWhvIoA4tcZSV7psUSY6EaA4Kc2DDC3DgC7Xdoh1M/BDaDbPM8ZPXwaqpcO3a4Xqd2n/PCkmQRKNkMCp8uPkEu05msnjzCd66qwdb/rxIfFIqm46kc7nEYNo3wMuZqO6BRIcH0b+dL/ay0n2TJfc5EqKpO5YA6/8B+vNqe+CjMOplcHK3zPGNBlikNa8YmdGoFaSZiTLEJhqNc5cK+PEPHZ9sO0lGXnGV+7X2cSVaqyZEvdv6YCcJUYOR+xwJISzvcrZaLTr4pdr27aBWi0KHWPY8p3deJzECUNTE7PROaD/csucWopaGLdh8w33WPTmU8NbestJ9MyTJkRBN0Z8b1GpRrg7QwKDHYeSL4ORm+XPlpVl2PyHqycXcIjYcUm/KeCM+ro50D5bEqLmS5EiIpuTyJYj/J/z+tdr27QiTFkPIoPo7p0eAZfcTwoJ0OZdNK93vOZVV7QVbsy+XsDsli8EdW9ZvgKJRkuRIiKbiaBysnwl5qYAGBj8BES/UT7WovNAh6pwivY4KE7IB05wjSw/nCVGFs1kFxCelEpuk48CZbLNtPdv6EOrryrrfb1w9Ss8trKcIRWPXaJKjs2fPMmXKFNLT03FwcOCll17i7rvv5ujRo0yePNm039GjR/nmm2+YNGmS9YIVojEpyIL4OfDHt2q7ZSd1blHIwIY5v529ern+qqmABvME6cqQRNSbMhlb1KuTF/OIS1KX7Ug8n2Pq12igb0gLosODiNIG0trHlV0nMquVHPl7utRnyKIRazRXq+l0OtLS0ujVqxfp6en06dOHo0eP4u5+9YqavLw82rVrx+nTp836r0euVhNN2pEf4Yen1fk8GjsY/CRE/BMcXRs+lkrvc9RaTYzkMn5hYYqicCw9j9hEHfFJqRxJzTVts9PAwPbqSvdjugcS4GWe5BiMCsMWbCI1p7CqWieB3i5sf26kXK5vRXK1GhAUFERQUBAA/v7++Pr6kpWVZZYErVu3jlGjRlU7MRKiySrIgrhnIfG/atuvM0xcDG37Wy+msAnQdZzcIVvUG0VROHRBbxoyO3kx37TNwU7DkJv8iNYGMjosAD8P5yqPY2+nYe74MB77cn9VtU7mjg+TxKgZs1hytHXrVhYuXMi+ffvQ6XSsXr26wtDX4sWLWbhwITqdju7du7No0SKGD694ae/evXsxGo20bdvWrH/VqlVMnTrVUiELYZsOr4cfZkF+ulotGjIDbpkDjo1gCMDOXi7XFxalKAoHz2abJlWfySowbXOyt2N4Jz+iw4O4tZs/Pm5O1T5ulDaIJff1Yd76ZHQ5V+cWBXq7MHd8GFHaIIs+D2FbLJYc5efn07NnT6ZPn86dd95ZYfvKlSuZOXMmixcvZujQoXz88cdER0eTnJxMSEiIab/MzEymTp3Kf/7zH7PH6/V6duzYwbfffmupkIWwLfmZEPd/kPQ/td2qq1otatPXunEJYWFGo8K+M5eITdSxISmVC+WSFxdHO27prK50P7KrP54ujrU+T5Q2iNFhgexOySI9txB/TxcGtJc7X4t6mnOk0WgqVI4GDhxInz59WLJkiamvW7duTJo0iZiYGACKiooYPXo0Dz/8MFOmTDE75hdffMGGDRv48ssvr3vuoqIiioqKTG29Xk/btm1lzpGwbclr1WpRQQZo7GHoP2DEc42jWiSEBZQajOxOyVInVR9K5WLu1fdxdyd7RnYLIFobyC1dWuHm1GhmhIh61OTnHBUXF7Nv3z6ef/55s/7IyEh27twJqKXT+++/n5EjR1ZIjEAdUvv73/9+w3PFxMQwb948ywQuhLXlZ0DsbDi0Wm236qbet6h1H+vGJYQFFJca2XUyk7hEHRuT08jKv7qMh6eLw5WV7oMY3skPF0eZuyYaToMkRxkZGRgMBgICzG8CFxAQQGpqKgA7duxg5cqV9OjRgzVr1gBqtSg8PJycnBx2797N//73vxuea86cOcyaNcvULqscCWFzDq2GH5+Bgky1WjTsaRjxLDhUPdFUiMausMTA9mMZxCbp+Ck5DX3h1ZXuW7g5EhkWSFR4IEM7+uHkICvdC+to0NrktbdhVxTF1Dds2DCMRmOlj/P29iYtrXpLDzg7O+PsLB8ewoblXYTYZ9ShNAD/7jDpQwjubd24hKily8UGfjmaTtyVle7ziq4mRH4ezkRpA4jWBjGwvS8O9pIQCetrkOTIz88Pe3t7U5WoTHp6eoVqkhDNlqLAoe/hx9lwOQvsHGD4MzB8NjhU/yocIRraH+eyiYk9wpyxXenRxgeAvKJSNh1JJy5Rxy9HL3K5xGDaP8jbhTHdAxkbHkTf0BYyAVo0Og2SHDk5OdG3b18SEhK4/fbbTf0JCQlMnDixIUIQonHLTYMfZ8GRH9R2QLhaLQrqad24hKiG7/efZ9fJTL7dfZZjaXnEJenYeiyD4tKrowFtfV2J1qp3qe7Vxgc7SYhEI2ax5CgvL4/jx4+b2ikpKRw8eBBfX19CQkKYNWsWU6ZMoV+/fgwePJilS5dy5swZHn30UUuFIITtURRI/E69RP/yJbVadPP/wbBZUi0Sjdq5SwVcyi9BX1jCf/edBeDr3Wf4evcZ0z4d/NyJDg8kWhtE92AvWeFe2AyLJUd79+4lIiLC1C6bFD1t2jSWL1/O5MmTyczMZP78+eh0OrRaLbGxsYSGhloqBCFsS26qenn+0R/VdmA4TFqifhWiEUvPLWTYgs033O/nZ0ZIQiRsUqNZW62+yNpqotFRFPhjlbr8R2E22DmqV6ENexrsa39DOyHq04Xsy1fuUq1j7+lLXO+Tw8FOw9t392RS79YNF6Bocpr8fY6EEFfodepCsX/Gqe2gnupdrgO11o1LiEqcySwgLklHXFIqB89mm23r1daHPiE+fLbjVIXHrXliKNrW3g0TpBD1QJIjIRqCosDv36qr1hfmqNWiW56DoTOlWiQalRMX84hLVBOiQxf0pn6NBvqH+hKlDSRKG0iwjytJ53P4bMcpNBr1JV72VQhbJ8mREPVNfwHWz4RjG9R2UC91blFAmDWjEgJQ7zd3NC2XuER1yOzPtDzTNjsNDOrQkujwIMZ0D8Df03y5mpYeTvh5OOPl4kC/di3Ye+oS+sJSWnrIxQTCtklyJER9URQ4+DXEz4GiHLB3glvmwJAZYC+/esJ6FEXh0AU9sYk64pNSOZmRb9rmaK9hSEc/xoYHMjosEF/3qhOd389m42AHJzPyTccI9HLm97PZBHm71vvzEKK+yDu0EPUh5zys/wccT1DbwX3UapF/V+vGJZoto1Hh4Lls05DZuUuXTducHOy4uVMrorWB3NotAG+3Gw/1xifpeOzL/Vw7ipamL+KxL/ez5L4+RGmDLPwshGgYkhwJYUmKAge+gA0vQJEe7J0h4p8w+EmpFokGZzAq7D11ZaX7pFRS9YWmba6O9kR0bUWUNoiRXf3xcK7+69NgVJi3PrlCYgSgABpg3vpkRocFyt2vhU2Sd2shLCX7LKyfASc2qe3W/WDSYmjVxbpxiWal1GDk15NZxCXp2HAojYy8ItM2D2cHRnb1Z2x4ICM6++PqVLuV7nenZKHLKaxyuwLocgrZnZLF4I4ta3UOIaxJkiMh6kpRYP/nsOFFKM5Vq0UjX4TBT4Bd7T58hKiJ4lIjO05kEJeoIyE5jUsFJaZtXi4OjA4LJFobyLBOfrg41v01mZ5bdWJUm/2EaGwkORKiLrLPwLoZcPLK3YLbDICJH0KrztaNSzR5hSUGtv55kfikVBIOp5FbeHWle193J8Z0DyBKG8TgDi1xcrDsSvfXXrVW1/2EaGwkORKiNhQF9i2DjS9BcR44uMDIl2DQY1ItEvWmoLiUzUcuEpekY9ORdAqKr65038rTmajugUSHBzKgnS8O9pZNiMob0N6XIG8XUnMKK513pAECvV0Y0N633mIQoj5JciRETV06DeuegpQtarvtILVa5HeTdeMSTVJuYQmbjqQTm6hjy58XKSy5utJ9sLcLUdogxoYH0iekRYOtdG9vp2Hu+DAe+3I/GjBLkMoimDs+TCZjC5slyZEQ1WU0wr7PYOPLUJIPDq4w6mUY+IhUi4RFZRcUk5CcRnxSKtuOZVBsuJoQhfi6mVa679nG22oLu0Zpg1hyXx/mrU82m5wd6O3C3PFhchm/sGmSHAlRHVkparXo1Da1HTJYrRa17GjduESTkZFXxMZDacQl6dh1IpNS49V6TMdW7kRrg4gODyQsyKvRrHQfpQ1idFggu1OySM8txN9THUqTipGwdZIcCXE9RiPs+Q/8NBdKCsDRDUbNhQF/B7v6m9Mhmo4/zmUTE3uEOWO70qONj9m2NH0hGw6lEpuoY3dKFuXyIboGehJ9ZcisU4BnwwZdA/Z2GrlcXzQ5khwJUZWsk7D2KTi9XW2HDoOJ74NvB+vGJWzK9/vPs+tkJt/vP0+PNj6cz75M3JVlO/aduWS2UGt4a2/TkFl7P3frBS1EMyfJkRDXMhph91L4ed7VatHo+dDvQakWiWo5d6mAS/klaDSw/vcLAKzae5YdxzM4lp5ntm+fEB+itUFEaQNp6+tmjXCFENeQ5Eg0b+f3Q8LLavLTug9knoC1T8KZner2dsNhwvvg2966cQqbMmzB5gp9BcUGs8TolfFhjNEGygKtQjRCkhyJ5u33b9VJ1r9/A2d+hZ/nQ+llcHSHyPnQ9wGpFolqURSFw7pc4pN0BHg5k6YvqnQ/ezsN79zdk0m9WzdwhEKI6pLkSDQ/2WegIBPQwKHv1b69n4Hxyh2G2wyAO/8DLUKtFqKwDYqikHg+h9jEVOKTdJzKLDBtc7CDUmPFx6x9Yija1t4NGKUQoqYkORLNz6Lwin3Gq0svcG63JEaiSkajwoGzl64kRKmcz75s2ubsYMeIzq2IDleHy/6y9Fc0GvWG6mVfhRCNnyRHovm54xNY/Sgohorb7Bxg0pKGj0k0agajwu6ULOKTdMQfSjUbMnNzsieiiz/R4YFEdPHH3Vl9W9XlXKaVhzNBPi5M7t+WlXvOossupKWHk7WehhCimiQ5Es2L0QC5qaCxqzw5euhnCO7V4GGJxqfEYGTXiUziklJJSE4lI6/YtM3T2YFR3fyJDg9iROdWla50H+TtyvbnI3Cyt0Oj0XDvgBCKDUacHeRu6kI0dpIciebj4lFY+wSc21P1PilbJTlqxopKDew4nkFsYioJyWnkXC4xbfNxc2R0twCiwwMZepNftZKc8vtoNBpJjISwEZIciabPUAq73ofNMWAoAkdXKLlc+b4JL0GLdhA2oUFDFNZTWGLgl6MXiU/S8fPhdHKLrs4/a+nuxBhtINHaQAZ1aIljDVe6LxuOk6U1hLAtkhyJpi39CKx5DC7sV9sdR0FaUtXJERqIfx66jpPFZJuw/KJSNh1JJz4plc1H0ykovjrEGuDlTFT3QKLDg+jfrvbJTHySrsKirEGyKKsQNkGSI9E0GUph53vwy5tgKAZnb4iKAe+2sGL8dR6ogP48nN4J7Yc3WLii/ukLS/j5cBqxials/fMiReWus2/t40q0Vk2Ierf1wa6O1Z34JB2Pfbmfay9OS80p5LEv97Pkvj6SIAnRiElyJJqetGRY+zhcOKC2O42B8YvAKxgSv6veMfLS6i080XAu5ReTkKyudL/9eAYlhqvpSruWbkSHBxGtDSS8tbfFVro3GBXmrU+ukBgBKIAGmLc+mdFhgTLEJkQjJcmRaDoMJbBjEfyyAIwl4OINUQug51/Um8wAeARU71jV3U80Ohdzi9hwSL0H0a6TmRjKLXXfyd/DVCHqGuhpsYSovN0pWWZDaddSAF1OIbtTsmQ1eyEaKUmORNOQmqRWi3S/q+3OUXDbIvC6ZugidIhaQdLroNK/7TXq9tAh9RywsKTUnELik3TEJqWy51SW2c0Ww4K8riREgdzk71nvsaTnVp0Y1WY/IUTDk+RI2DZDCWz/F2x560q1yAei34Ie91ytFpVnZ69Wk1ZNRR3gKJ8gXdk/6k2ZjG0DzmYVEJ+USmySjgNnss229WzjTXR4EFHdA2nn596gcfl7ulh0PyFEw2tUydHtt9/OL7/8wqhRo/juu+9u2C+audRE9Uq01ES13WUs3PYv8Ay8/uPCJsA9KyD+OdBfuNrvFawmRnIZf6N18mIecUnqkFni+Ryzbf1CWxClDSRKG0ibFm5WihAGtPclyNuF1JzCqmqTBHqrl/ULIRonjaI0ntV+Nm/eTF5eHp9//rlZElRVf3Xo9Xq8vb3JycnBy8vL0iELaygthu3vwtaF6ppori0geiGE31V5tagqRoN6VVpemjrHKHSIVIwaGUVROJaeR2yijvikVI6k5pq22WlgYPuWRIcHMqZ7IAFejacSU3a1GlRam5Sr1YSoBmt+fjeqylFERAS//PJLtftFM6T7HdY8AWlXqkVdb4Nx74JnLSZQ29nL5fqNkKIoHLqgNw2ZnbyYb9rmYKdhcMeWjA0PYnRYAH4ezlaMtGpR2iCW3Nenwn2OAuU+R0LYBIslR1u3bmXhwoXs27cPnU7H6tWrmTRpktk+ixcvZuHCheh0Orp3786iRYsYPlw+nEQ1lBarlaLt716pFvnCuLeh+x01qxaJRklRFH4/l0Ncoo64pFTOZBWYtjnZ2zG8kx9R2kBGhwXg42YbC7dGaYMYHRYod8gWwgZZLDnKz8+nZ8+eTJ8+nTvvvLPC9pUrVzJz5kwWL17M0KFD+fjjj4mOjiY5OZmQkBBLhSGaogsHYc3jkH5IbXebAOPeAQ9/q4Yl6sZoVNh35hJxianEJ+m4UK7C4uJoxy2d1ZXuR3b1x9PF0YqR1p79lUqXEMK2WCw5io6OJjo6usrt7777Lg8++CAPPfQQAIsWLWLDhg0sWbKEmJgYS4VBUVERRUVFprZer7fYsUUDKy1Sr0Lb/i9QDODWUk2Kut9u7cjEdfxxLpuY2CPMGduVHm18zLaVGozsTslSJ1UfSuVi7tXfVXcneyK6+jM2PIhburTCzalRjfoLIZqRBnn3KS4uZt++fTz//PNm/ZGRkezcudOi54qJiWHevHkWPaawgvP71WrRxcNqu/vtMPZtcPezblzihr7ff55dJzP5fv95erTxobjUyK6TmcQl6tiYnEZWfrFpX08Xhysr3QcxvJMfLo4yIV4IYX0NkhxlZGRgMBgICDCfNBsQEEBqaqqpPWbMGPbv309+fj5t2rRh9erV9O/fv8r+ysyZM4dZs2aZ2nq9nrZt29bPExOWV1qkroe2470r1SK/K9WiSdaOTFzHuUsFXMovQaOB9b+rt0f43/5znM7KZ/fJLPLLLezaws2RyLBAosIDGdrRDyeHmq10L4QQ9a1B69bX3qpfURSzvg0bNlT6uKr6K+Ps7Iyzc+O8gkXcwLl96l2uLx5R29o71Uv03WXORmM3bMHmCn25haVsPnLR1L5vUAjR2iAGtvfFwV4SIiFE49UgyZGfnx/29vZmVSKA9PT0CtUk0QyVFMIvMbDz36AYwb2Venm+3Iyx0csrKmXTkXR6tPHmj3M5le5jr9Gw8O4e3NGnTQNHJ4QQtdMgyZGTkxN9+/YlISGB22+/Opk2ISGBiRMnNkQIorE6u0etFmX8qbbD71aX/3CTuwc3VjkFJfx0WF3pfuuxDIpLjdfdf+2TQ9G29m6g6IQQou4slhzl5eVx/PhxUzslJYWDBw/i6+tLSEgIs2bNYsqUKfTr14/BgwezdOlSzpw5w6OPPmqpEIQtKbkMm1+HXR+q1SKPAHXpj67jrB2ZqERWfjEbD6USl5TKjuMZlJZb6b6DnzvR4YF08vdk5sqDaDSgKJi+CiGErbFYcrR3714iIiJM7bJJ0dOmTWP58uVMnjyZzMxM5s+fj06nQ6vVEhsbS2hoqKVCELbi7G71SrTMY2q7x2R1TTOpFjUq6bmFbDiURlyijt9SsjCUS4i6BHgSpQ1kbHgQnQM80Gg06HIu08rDmSAfFyb3b8vKPWfRZRfS0sM2btoohBBlGtXaavVB1lZrRIoLrlaLUMAjEMYvgi5V3x9LNKwL2ZeJT0olLknH3tOXzCo/3YO9GBseRJQ2kI6tPCp9fFGpASd7OzQaDYqiUGww4uwgl+cLIWpO1lYTTd/pXbD2Ccg6obZ73gtRb6iLxgqrOpNZQFySumzHwbPZZtt6tfVhbHggUd2DCGl545XuHezs+PWk+XIZQghhayQ5EvWruAA2vQq/LgEU8AyC8e9B5zHWjqxZO3Exz7SO2aELV+8ir9FA/1BforSBRGkDCfZxrfYx45N0FRZaDZKFVoUQNkiSI1F/Tu+8Ui06qbZ73QdjXgdXH6uG1RwpisLRtFziEtUhsz/T8kzb7DQwqENLosODGNM9AH9PlxofPz5Jx2Nf7ufaMfrUnEIe+3I/S+7rIwmSEMJmSHIkLK84H36eD799jFotCoYJ/4ZOo60dWbOiKApJ5/XEJemIT0rlZEa+aZujvYYhHf0YGx7I6LBAfN1rP2naYFSYtz65QmIEoAAaYN76ZEaHBcqK9EIImyDJkbCsU9vVatGlU2q79xS1WuQi97lpCEajwsFz2aYhs3OXLpu2OTnYcXOnVkRrA7m1WwDebpZZ6X53SpbZUNq1FECXU8julCxZoV4IYRMkORKWUZQHP8+D3UvVtldrtVp0063WjasZMBgV9p66stJ9Uiqp+quJiqujPRFdWxGlDWJkV388nC3/K5+eW3ViVJv9hBDC2iQ5EnWXshXWPgnZp9V23/th9KvgIrdOqC+lBiO/nswiLknHhkNpZOQVmbZ5ODswsqs/Y8MDGdHZH1en+r2UvrpzlGozl0kIIaxBkiNRe0V5kPAy7P1UbXu3VatFHUdaN64mqrjUyI4TGcQl6khITuNSQYlpm5eLA6PDAonWBjKskx8ujg13b6EB7X0J8nYhNaew0nlHGiDQWy7rF0LYDkmORO2c/AXWPQXZZ9R2vwfg1nlSLbKwwhIDW/+8SHxSKgmH08gtLDVt83V3IjIsgOjwIAZ3aImTg3VWure30zB3fBiPfbkfDZglSGXTr+eOD5PJ2EIImyHJkaiZQr1aLdq3TG17h8DE96HDLVYNqykpKC5l85GLxCXp2HQknYJig2lbK09noroHEh0eyIB2vjjYWychulaUNogl9/WpcJ+jQLnPkRDCBklyJKrvxCZYNwNyzqrt/g/Bra+As6dVw2oKcgtL2HQkndhEHVv+vEhhydWV7oO9XYjSBhEdHkjfkBbYNdIKTJQ2iNFhgexOMb9DtlSMhBC2RpIjcWOFetj4Iuz/XG37hMLED6D9zdaNy8ZlFxSTkJxGfFIq245lUGy4mhCF+LoRrQ0kOjyInm280WhsI8Gwt9PI5fpCCJsnyZG4vuM/wbp/gP6c2h7wdxg1F5wrX3hUXF9GXhEbD6URl6Rj14lMSsutdN+hlTtjr1SIwoK8bCYhEkKIpkaSI1G5whzY8AIc+EJtt2gHEz+EdsOsGpYtStMXsuFQKrGJOnanZFEuH6JroCfRVxKiTv4ekhAJIUQjIMmRqOhYAqz/B+jPq+2Bj8Kol8HJ3bpx2ZDz2ZeJS1SX7dh35hJKuYQovLU30eGBRGuDaO8n31MhhGhsJDkSV13OVqtFB79U274d1GpR6BCrhmUrTmXkX7lLtY7fz+WYbesT4kO0NogobSBtfd2sFKEQQojqkORIqP7coFaLcnWABgY9DiNfBCf5IL+e4+nqSvexSakc1ulN/RoN9G/ny1htIGO0gQR5u1oxSiGEEDUhyVFzd/kSxP8Tfv9abft2hEmLIWSQdeNqpBRF4Uhqrmlh12PpeaZt9nYaBndoSXR4IJFhgbTydLZipEIIIWpLkqPm7GgcrJ8JeamABgY/AREvSLXoGoqikHg+h9hEdcjsVGaBaZujvYZhN/kRrQ1idFgALdydrBipEEIIS5DkqLaMBji9E/LSwCNAnZdj13DrWdVJQRbEz4E/vlXbLTupc4tCBlo3Liv441w2MbFHmDO2Kz3a+Jj6jUaFA2cvEZeYSlxSKuezL5u2OTnYMaJzK8aGBzKyawDero5WiFwIIUR9keSoNpLXQfxzoL9wtc8rGKIWQNgE68VVHUd+hB+eVpM6jR0MfhIi/gmOzXNOzPf7z7PrZCbf7z9P92BvdqdkEZ+kI/5QKmn6qyvduzraM7KrP1HaQCK6+uPhLL86QgjRVGkURalsIe0mQ6/X4+3tTU5ODl5eFlgUNXkdrJoKFdYfv3J/mntWNM4EqSAL4p6FxP+qbb/OMHExtO1v3bis4NylAi7ll2BUFKZ8+hv6wlIc7TW4OdqTU25hVw9nB27t5k+UNogRnVvh6mQjlUEhhGgCLP75XQPy529NGA1qxahCYsSVPg3EPw9dxzWuIbbD6+GHWZCfrlaLhsyAW+aAo4u1I7OKYQs2V+grMSjkGK4mRp/d34+hN/nh7NCIfo5CCCEahCRHNXF6p/lQWgWKeuPE0zuh/fAGC6tK+ZkQ93+Q9D+13aqrWi1q09e6cVlBYYmBX45eJD5Jh6O9hhJD1QXT6UPbMbJrQANGJ4QQojGR5Kgm8tIsu199Sl6rVosKMkBjD0P/ASOea1bVovyiUjYfTScuMZXNR9MpKDZU63HxSam8OC5MVpMXQohmSpKjmvCoZjWhuvvVh/wMiJ0Nh1arbf8w9Uq01n2sF1MD0heW8PPhNGITU9n650WKSq+udN/ax5WebbyJTUq97jF0OYXsTsmS1eWFEKKZkuSoJkKHqFel6XVUPu9Io2631nIbh1bDj89AQaZaLRo+C27+P3Bo2jcjvJRfTEKyutL99uMZZkNm7Vq6EaUNIlobSI823qz7/cINkyOA9NzC+gxZCCFEIybJUU3Y2auX66+ainp1WvkE6coQTNSbDT8ZO+8ixD6jDqUB+HeHSR9CcO+GjaMBXcwtYmNyKnGJqew6mYmh3FL3N/l7MFYbSJQ2iG5BnmYr3ft7Vm9Ysbr7CSGEaHokOaqpsAnq5fqV3ufozYa9jF9R4ND38ONsuJwFdg4w/BkYPhscmt6dmlNzColP0hGblMqeU1lmK913C/IiWhtItDaQTgGeVR5jQHtfgrxdSM0prKr2R6C3CwPa+1o8fiGEELbBJpIjBwcHtFotAP369eM///mPdQMKm6Berm/NO2TnpsGPs+DID2o7IFytFgX1bLgYGsDZrALik1KJS9Kx/0y22baebbxNQ2bt/NyrdTx7Ow1zx4fx2Jf7q6r9MXe8TMYWQojmzCZuAunn50dGRkatHmvNm0jVC0WBxO/US/QvX1KrRTf/Hwyb1WSqRSkZ+cQl6YhLTCXxfI7Ztr6hLYjWBhKlDaRNi9qvARefpGPe+mR0OVfnFgV5uzB3fBhR2qBaH1cIIYRlyE0gRfXkpqqX5x/9UW0HhsOkJepXG6YoCsfS866sY6bjSGquaZudRh0KGxsexJjugQR4WWYuUJQ2iNFhgexOySI9txB/T3UoTSpGQggh6pwcbd26lYULF7Jv3z50Oh2rV69m0qRJZvssXryYhQsXotPp6N69O4sWLWL48OrfJFGv19O3b19cXV15/fXXGTFiRF3Dti2KAn+sUpf/KMwGO0cY8SwMexrsbXPRU0VRSNbpTQnRiYv5pm0OdhoGd2xJtDaIyO4B+HnUz9V29lfOI4QQQpRX5+QoPz+fnj17Mn36dO68884K21euXMnMmTNZvHgxQ4cO5eOPPyY6Oprk5GRCQkIA6Nu3L0VFRRUeu3HjRoKDgzl16hTBwcEkJSUxbtw4EhMTm8YQWXXodepCsX/Gqe2gnupdrgO11o2rFhRF4fdzOcQl6ohLSuVMVoFpm5O9HcM7+RGlDWR0WAA+bk1jiFAIIYTtseicI41GU6FyNHDgQPr06cOSJUtMfd26dWPSpEnExMTU+BzR0dG8+uqr9OvXr9LtRUVFZomWXq+nbdu2tjfnSFHg92/Vq+IKc9Rq0S3Pq3e6tqFqkdGosO/MJeISU4lP0nGh3BwfZwc7bunSirHhQUR09cfLxXaelxBCiPrVZOccFRcXs2/fPp5//nmz/sjISHbu3FmtY1y6dAk3NzecnZ05d+4cycnJdOjQocr9Y2JimDdvXp3itjr9BVg/E45tUNvBvdVqUUCYVcOqrlKDkd2nsohLTGXDoVTSc68mq25O9ozs6k+0NohburTC3VmmvQkhhGhc6vWTKSMjA4PBQECA+XIaAQEBpKbe+C7FAIcPH+aRRx7Bzs4OjUbDe++9h69v1fegmTNnDrNmzTK1yypHNkFR4ODXED8HinLA3glumQNDZoB9404iSgxGdp7IJC5Rx8bkNLLyi03bPF0cGN0tgChtIDd3boWLo6x0L4QQovFqkE/c8ncoBnXuybV9VRkyZAiJiYnVPpezszPOzja4XEbOeVj/DzieoLZb91WrRf5drRvXdRSWGNh+LIO4pFQSklPRF5aatvm4ORIZFkB0eBBDO/rh5GBnxUiFEEKI6qvX5MjPzw97e/sKVaL09PQK1aRmS1HgwBew4QUo0oO9M0T8EwY/2SirRZeLDfxyNJ24pFQ2HUknr+hqQuTn4cSY7oFEa4MY2MEXR3tJiIQQQtieev30dXJyom/fviQkJHD77beb+hMSEpg4cWJ9nto2ZJ+F9TPgxCa13bofTFoMrbpYN65r5BWVsulIOnGJOn45epHLJQbTtkAvF6KuLNvRr53cJ0gIIYTtq3NylJeXx/Hjx03tlJQUDh48iK+vLyEhIcyaNYspU6bQr18/Bg8ezNKlSzlz5gyPPvpoXU9tuxQF9n8OG16E4lxwcIGIF2DwEw2/aG0VcgpK+OlwGnFJqWw9dpHiUqNpW5sWruo6ZuFB9Grjg50kREIIIZqQOidHe/fuJSIiwtQumww9bdo0li9fzuTJk8nMzGT+/PnodDq0Wi2xsbGEhobW9dRWZTAqtbu7cvYZWDcDTm5W220GqNUiv071G3A1ZOUXs/FQKnFJqew4nkFpuZXu2/u5X1nYNQhta69qzxkTQgghbI1NrK1WF/Vxn4RarculKLBvGWx8CYrz1GrRyJdg0GNWrRal5xay4VAacYk6fkvJwlAuIeoc4EG0Nojo8EC6BHhKQiSEEKLBNNn7HDVF8Uk6HvtyP9dmlKk5hTz25X6W3NenYoJ06TSsewpStqjttoNg4ofgd1ODxHytC9mXiU9KJT4plT2nsyifHncP9rqysGsQN/l7WCU+IYQQwpokOaoBg1Fh3vrkCokRgAJogHnrkxkdFqgOsRmNsO8z2PgylOSDgyvcOhcG/L3Bq0VnMgvUle6TUjl4NttsW6+2PqYhs5CWtV/pXgghhGgKJDmqgd0pWWZDaddSAF1OIbtTshjsmwtrn4RT29SNIUNg4gfQsmPDBAucuJhHfFIqsYk6Dl3Qm/o1GugX2oJobRBR2kCCfVwbLCYhhBCisZPkqAbSc6tOjMpoMOL++2dw+F9qtcjRDW59Bfo/DHb1e98fRVH4My2P2EQd8UmpHE3LNW2z08CgDi2J1gYypnsg/l4u9RqLEEIIYaskOaoBf8/rJxQhmjTeclxKjz8Oqx2hw2Di++Bb9VpwdaUoCocu6E0J0cmMfNM2BzsNQ2/yI/rKSvctPWzwzuFCCCFEA5PkqAYGtPclyNuF1JxCFCBcc5I5Dl/zZulf6GN3nGcdVuKmKUJxdEczeh70e7BeqkVGo8LBc9mmIbNzly6btjk52HFzJz+itUHc2i0AbzdZ6V4IIYSoCUmOasDeTsPc8WE89uV+NMAd9tsYYp/MUrt/Eai5BEBmq4G0/OvH4Nveouc2GBX2nsoiLkld6b783CcXRzsiuvgTHR7EyK7+eMhK90IIIUStyadoDUW1KeGrcU4s3XKSu0vUS/MDNZe4jBMXutxPxzFPgG87i5yr1GDkt5QsYhN1bDiURkZekWmbu5M9o7oFEK0NZESXVrg5yY9SCCGEsAS5CWRNveJdoavsMv6r++TU+vDFpUZ2nMggPjGVjcmpXCooMW3zcnHg1rAAxmqDGNbJDxfHxrHUiBBCCGFpchNIW3LHJ7DmMTBeXY3elBjZOcCkJTU+ZGGJga1/XiQ+KZWEw2nkFl49tq+7E5FhAUSHBzG4Q0ucHGSleyGEEKI+SXJUUz3uAb/OsHRExW0P/QzBvap1mILiUjYfuUhcko7NR9LJL7660n0rT2eiuqsr3Q9o74uDvSREQgghREOR5KhO7ABjua/Xl1tYwqYj6cQm6tjy50UKS64+JsjbhShtIGPDg+gT0qJ6i9gKIYQQwuIkOaoN91bg4Q9eraHPVNi/AvTn1f5rZBcUk5CcRnxSKtuOZVBsuJoQhfi6XVnHLJCebXywk4RICCGEsDpJjmrDuzXMTOIPXQExcUeZE72aHkFu4KDeZDEzr4iNyWnEJurYdSKT0nIr3Xdo5c7YK8t2dA/2kpXuhRBCiEZGkqPacnDm+wPH2XUyk+8PXCDAuyMbDp0iNlHH7pQsyuVDdA30NA2ZdfL3kIRICCGEaMQkOaqhc5cKuJRfgkYDaw+eB+DLX0+zfOcps/3CW3sTpVUnVXdo5WGFSIUQQghRG5Ic1dCwBZsr9JUfNgPY9mwEbX3dGiokIYQQQliQXCNeQ4sm98KhionTDnYaFk3uJYmREEIIYcOkclRDk3q35iZ/D257f3uFbWueGIq2dcU7aAshhBDCdkjlqA7K5lXL/GohhBCi6ZDKUS209HCilYczQT4uTO7flpV7zqLLLqSlh5O1QxNCCCFEHcnCs7VUVGrAyd4OjUaDoigUG4w4O8hCsEIIIYQlyMKzNqh8IqTRaCQxEkIIIZoImXMkhBBCCFGOJEdCCCGEEOVIciSEEEIIUY4kR0IIIYQQ5UhyJIQQQghRjiRHQgghhBDlSHIkhBBCCFGOJEdCCCGEEOVIciSEEEIIUY4kR0IIIYQQ5TT55UPKlo7T6/VWjkQIIYQQ1VX2uW2NJWCbfHKUm5sLQNu2ba0ciRBCCCFqKjc3F29v7wY9p0axRkrWgIxGIxcuXMDT0xONRmPx4/fv3589e/ZY/LiNWVN7zrb6fBpz3I0pNr1eT9u2bTl79myDr+wthKi+a983FEUhNzeX4OBg7OwadhZQk68c2dnZ0aZNm3o7vr29fbN7w21qz9lWn09jjrsxxubl5dXoYhJCXFXZ+0ZDV4zKyITsOnriiSesHUKDa2rP2VafT2OOuzHHJoRonBrT+0aTH1YTQjRver0eb29vcnJypHIkhKgWqRwJIZo0Z2dn5s6di7Ozs7VDEULYCKkcCSGEEEKUI5UjIYQQQohyJDkSQgghhChHkiNhdT/88ANdunShU6dO/Oc//7F2OEIIIZqA22+/nRYtWnDXXXfV+LEy50hYVWlpKWFhYWzevBkvLy/69OnDb7/9hq+vr7VDE0IIYcM2b95MXl4en3/+Od99912NHiuVI2FVu3fvpnv37rRu3RpPT0/Gjh3Lhg0brB2WaCbq8pelEKJxi4iIwNPTs1aPleSoCTt//jz33XcfLVu2xM3NjV69erFv3z6LHX/r1q2MHz+e4OBgNBoNa9asqXS/xYsX0759e1xcXOjbty/btm0zbbtw4QKtW7c2tdu0acP58+ctFqMQ1zNjxgxWrFhh7TCEsBkxMTH0798fT09P/P39mTRpEkePHrXoOSzx2VJXkhw1UZcuXWLo0KE4OjoSFxdHcnIy77zzDj4+PpXuv2PHDkpKSir0HzlyhNTU1Eofk5+fT8+ePfnggw+qjGPlypXMnDmTF154gQMHDjB8+HCio6M5c+YMUPlqy/WxBp4QlanLX5ZCNEdbtmzhiSee4NdffyUhIYHS0lIiIyPJz8+vdH9rfbbUmSKapOeee04ZNmxYtfY1GAxKz549lbvuukspLS019R89elQJDAxUFixYcMNjAMrq1asr9A8YMEB59NFHzfq6du2qPP/884qiKMqOHTuUSZMmmbbNmDFD+eqrr6oVt2jetmzZotx2221KUFBQla+/Dz/8UGnXrp3i7Oys9OnTR9m6dWuFfTZv3qzceeedDRCxEE1Penq6AihbtmypsM2any1lavv7LZWjJmrdunX069ePu+++G39/f3r37s0nn3xS6b52dnbExsZy4MABpk6ditFo5MSJE4wcOZIJEybw7LPP1iqG4uJi9u3bR2RkpFl/ZGQkO3fuBGDAgAEkJSVx/vx5cnNziY2NZcyYMbU6n2hebvTXZb3/ZSmEICcnB6DSi2is+dlSZzVOp4RNcHZ2VpydnZU5c+Yo+/fvVz766CPFxcVF+fzzz6t8zOnTp5XQ0FBl8uTJSkhIiDJ16lTFaDRW63xUkt2fP39eAZQdO3aY9b/++utK586dTe21a9cqnTp1Ujp27Kh8/PHH1X+SQlxR2euvvv+yFKK5MxqNyvjx4284SmGtz5bIyEjFz89PcXV1VVq3bq3s3r27ek9MURQHy6RYorExGo3069ePN954A4DevXtz6NAhlixZwtSpUyt9TEhICCtWrGDEiBF06NCBTz/91CLzf649hqIoZn0TJkxgwoQJdT6PEGXK/rJ8/vnnzfot+pelEM3ck08+yR9//MH27duvu5+1PlvqcuWzDKs1UUFBQYSFhZn1devW7bpDCmlpafz9739n/PjxFBQU8PTTT9cpBj8/P+zt7StMuktPTycgIKBOxxbiejIyMjAYDBVeZwEBAWavxzFjxnD33XcTGxtLmzZt2LNnT0OHKoRNeuqpp1i3bh2bN2+mTZs2193XFj9bJDlqooYOHVrh8so///yT0NDQSvfPyMhg1KhRdOvWje+//55NmzaxatUqZs+eXesYnJyc6Nu3LwkJCWb9CQkJDBkypNbHFaK6qvOX5cWLFykoKODcuXP079+/oUMUwqYoisKTTz5p+pxo3779dfe31c8WGVZrop5++mmGDBnCG2+8wT333MPu3btZunQpS5curbCv0WgkKiqK0NBQVq5ciYODA926deOnn34iIiKC1q1bV5rp5+Xlcfz4cVM7JSWFgwcP4uvrS0hICACzZs1iypQp9OvXj8GDB7N06VLOnDnDo48+Wn9PXjR7UrUUon488cQTfP3116xduxZPT0/T75i3tzeurq5m+9r0Z0u1ZycJm7N+/XpFq9Uqzs7OSteuXZWlS5dWue/GjRuVy5cvV+g/cOCAcubMmUofs3nzZgWo8G/atGlm+3344YdKaGio4uTkpPTp06fSSz6FqAuqmJD92GOPmfV169atwoRsIUT1VfaeDyjLli2rdH9b/WyRtdWEEDap/F+XvXv35t133yUiIsL01+XKlSuZMmUKH330kekvy08++YRDhw5VObwshBAgC88KIWzUL7/8QkRERIX+adOmsXz5ckBdXuCtt95Cp9Oh1Wr517/+xc0339zAkQohbI0kR0IIIYQQ5cjVakIIIYQQ5UhyJIQQQghRjiRHQgghhBDlSHIkhBBCCFGOJEdCCCGEEOVIciSEEEIIUY4kR0IIIYQQ5UhyJIQQQghRjiRHQgghhBDlSHIkhBBCCFGOJEdCCCGEEOVIciSEEEIIUY4kR0IIIYQQ5fw/qUGC7AKtG6kAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -310,23 +353,123 @@ } ], "source": [ - "loc = np.array([1e-8, 1])\n", - "orders_even = [i for i in range(6, 15, 2)]\n", - "err = []\n", - "for o in orders_even:\n", - " err.append(compute_error_coord(recur_laplace, loc, o, derivs_laplace, n_init_lap, order_lap))\n", + "err1 = []\n", + "err2 = []\n", + "orders_odd = [i for i in range(5, 20, 2)]\n", + "\n", + "for o in orders_odd:\n", + " err1.append(compute_error_coord(recur_laplace, np.array([1e-4, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", + " err2.append(compute_error_coord(recur_laplace, np.array([1e-8, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", "\n", - "orders_even = np.array(orders_even)\n", - "err = np.array(err, dtype=float)\n", + "orders_even = np.array(orders_odd)\n", + "err1 = np.array(err1, dtype=float)\n", + "err2 = np.array(err2, dtype=float)\n", "\n", - "coefficients = np.polyfit(np.log10(orders_even), np.log10(err), 1)\n", - "polynomial = np.poly1d(coefficients)\n", - "log10_y_fit = polynomial(np.log10(orders_even))\n", - "plt.plot(orders_even, 10**log10_y_fit, '*-')\n", - "plt.scatter(orders_even, err)\n", + "coefficients1 = np.polyfit(np.log10(orders_even), np.log10(err1), 1)\n", + "coefficients2 = np.polyfit(np.log10(orders_even), np.log10(err2), 1)\n", + "polynomial1 = np.poly1d(coefficients1)\n", + "log10_y_fit1 = polynomial1(np.log10(orders_even))\n", + "plt.plot(orders_even, 10**log10_y_fit1, '*-')\n", + "plt.scatter(orders_even, err1, label='1e-4')\n", + "\n", + "polynomial2 = np.poly1d(coefficients2)\n", + "log10_y_fit2 = polynomial2(np.log10(orders_even))\n", + "plt.plot(orders_even, 10**log10_y_fit2, '*-')\n", + "plt.scatter(orders_even, err2, label='1e-8')\n", "plt.xscale('log')\n", "plt.yscale('log')\n", - "plt.title(\"Error vs Order (Even Only), Slope: \"+str(coefficients[0]))" + "plt.title(\"Rel. Error vs Order Laplace 2D (Odd Derivatives Only)\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "def get_slope(loc, orders):\n", + " err = []\n", + " for o in orders:\n", + " err.append(compute_error_coord(recur_laplace, loc, o, derivs_laplace, n_init_lap, order_lap))\n", + " \n", + " err = np.array(err, dtype=float)\n", + " coefficients = np.polyfit(np.log10(orders), np.log10(err), 1)\n", + "\n", + " return coefficients[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "ratios = np.array([1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1])\n", + "slopes = []\n", + "for r in ratios:\n", + " slopes.append(get_slope(np.array([r, 1]), np.array([i for i in range(6, 20, 2)])))" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Slope of Best Fit vs ratio of y0/x0 for even derivatives')" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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6NGjTUxMjLNvx44dzTXXXONW05kzZ0xUVJQZNmyYs23atGmmW7dupnHjxiYoKMh06tTJ/OMf/zDFxcXOPmXtZ0s+r2RdlexrqrJvMebs0eWEhATTuHFjY7fbTceOHc3ChQtd3nfy5Ennfrhk++rSpUuZP1t1iYBSgZJDtY8++qj5/PPPzenTp8vtW3rnfurUKdO+fXvTqFEj88ILL5g1a9aYZ555xvj5+ZnBgwe7vFeSiY6ONm3atDHz5883y5YtM4MGDXL7Qs3IyDDR0dEmJibGvPXWW2bt2rXmz3/+s7Hb7WbMmDHnHc/vfvc7I8k88sgjZtWqVebNN980TZo0MdHR0c4vsh07dpj777/f5bTNuQGmtJIvvczMTFNYWGgKCgrM3r17zciRI43dbjdff/21s+/JkydNx44dTXh4uHnxxRfN2rVrzSuvvGJCQkJMv379nD/AW7duNTabzdx+++1m5cqVZv369WbWrFnm7rvvNsacDTklAeLpp592nqqpqM6SgLJw4UJTWFjoMp3771ASULKyspxfZq+99przM8o77FpYWGgiIiLMnXfe6TavW7dupnPnzs7XV1xxhbnsssvM+++/bzZt2mQ++ugjM2nSpPOeSho9erTzCyApKcmsW7fOrF692hhz9gs2KSnJLFu2zGzatMnMmTPHdOjQwVxxxRXO7fbgwYPm0UcfNZLMxx9/7BxTdna2MaZm23BZStbfqFGjzCeffGLee+89c+mll5qQkBDnabXdu3ebp59+2rlDTklJMfv27St3mZ06dTJXX321W3vXrl1N165dna8dDocZPny4W78VK1YYSc71VuKGG24wd9xxh/P10aNHTbNmzUz37t2d62/06NGmQYMGLtt0jx49XD63RFpampFk3nrrrXLHUtHYK7PuSmoqb5so7zNDQkJMu3btzHvvvWfWrFljJk2aZHx8fMy0adOc/YYNG2aio6NNUVGRy/sff/xxExAQYI4ePWqMqfw+qeRLt0WLFmbQoEFmyZIlZsmSJaZdu3amcePG5pdffim35pK6GzZs6NxHLl261AwcONA0b97cLaA8++yzxmazmfvuu8+sWLHCfPzxx6Znz56mUaNGLqcwK1p3pQPKK6+8YiS5rHtjjFm5cqWRZJYtW+ZsGzNmjHnnnXdMcnKySU5ONn/+859NgwYNTGJiorPPjh07zKWX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H/7wB73yyisun/P222/ro48+cjndMGfOHEVFRTk/uyq8te4aNmyovn376quvvlL79u1dglZZrrzySnXv3l2zZs1SUVGRCgoK3MJ2TfZJVdG3b18tW7aszH3kuQYOHCg/Pz/t37+/UqduqqIk3L388svasmWLvvzyS7efMZvNJj8/P5cQd+rUKb3//vtuy7Pb7R7dt1xxxRVq1aqVdu3apenTp1d6uU2bNtWYMWO0a9cuvfzyy9a6Tb2Or4GxtHbt2pn4+Hjz+uuvm/Xr15u1a9eaF154wURGRpqLLrrI5Wr+8u6ACAoKMi+++KJJTk42U6dONf7+/lW6i2fBggXOfocPHzYxMTGmdevW5vXXXzfr1q0zn3zyiXnttdfMjTfeWOFdLMacvYvHZrOZCRMmmNWrV5u33nrLREREmOjoaOdV+cZU7yLZkjt+UlJSzJIlS8xNN91kJJnf//73zr55eXmmU6dOplmzZuavf/2rSU5ONqtXrzZvv/22GT58uPn888+NMcY888wz5t577zVz5841GzduNEuWLDF9+/Y1/v7+Ji0tzRhz9o6gBg0amKuvvtps2LDBpKammp9++qncOqt6m7ExxvznP/8xkszQoUPNli1bTGpqqst6Ks+oUaNMREREmRfV7dq1y1x77bXmb3/7m/nXv/5l1q1bZ5566inj4+Pj1re0ktsiSzt9+rRp2bKliYmJMfPmzTOrVq0y48ePN5dffrnbmErWw7hx48zWrVtNamqqycnJMcbUbBsuS8mdKHfffbdZuXKlef/9981ll13mdidKVS6SLVFycbfKuf0yPz/ftG3b1kRHR5sPPvjAJCcnm2HDhrk9qO3mm282Q4YMcXv/mjVrjI+Pj8u6K7nws/TF3/379zeNGzc2f//738369evN2LFjjSQzd+7c846jvLFXdt2Vt02UZ/fu3aZx48amW7duZtasWWbDhg1m2bJl5sUXXzR9+/Z16//WW28ZSaZZs2amV69ebvMru0869zbj0kpvo2X55ptvTIMGDUybNm3MggULzLJly8zAgQNNdHS020Xf06dPN35+fmbcuHFm8eLFZuPGjWbhwoVm0qRJLo89qGjdlb5ItsR3333nXB+lL1o1xph169YZSea2224za9asMfPnzzddunQxrVq1cqtz9OjRxm63mwULFpht27Y5v0/Kuki2REX7FmPO3sVjt9vNgAEDzLx588ymTZvM4sWLzfTp081tt93m7NetWzfzP//zP2bJkiVm06ZN5s033zRhYWGmZ8+eZa6PukJAqcDChQvNHXfcYVq1amUuuugi4+/vb5o3b27uvvtut+cRlPcMiQcffNBERkYaPz8/ExMTY6ZMmVLuc1Bef/1107JlS+Pv729at25d5pMof/75Z/PYY4+Z2NhY4+/vb0JDQ02XLl3MU0895fYskdJKnoNy+eWXG39/fxMeHm7uuusut2BT07t4QkNDTffu3c27777rdptiXl6eefrpp53PYim55fH3v/+98wr9FStWmPj4eHPJJZc4nxMyePBgs2XLFpdlzZ8/37Ru3dr4+/ufdydXnYBijDEvv/yyiY2NNb6+vpW+a2jNmjXOdVH6tsQjR46YMWPGmNatW5tGjRqZiy66yLRv39689NJL532CaEU71D179pj+/fuboKAg07hxYzN8+HDz448/ljmmKVOmmKioKOPj4+Nyl1JNtuHy/OMf/zDt27d3/lvffPPNbnebVSegGGNMixYtzJVXXlnu/MzMTHPPPfeY0NBQExgYaHr06GGSk5Od8/Py8kxgYKDbv+nhw4edz6Y5d/stLi42CQkJ5uKLL3b5osnNzTWPPfaYcTgcJiAgwLRv3/68d6WUqGjslVl3VQ0oxpz9Arzvvvuczy1p0qSJ6dWrl/nf//1ft77Z2dmmQYMGRpJ5++23y1xeZfZJNQ0oxhjz2WefmR49ehi73W4cDof5wx/+UO5zUEp+qQkODjZ2u93ExMSY2267zSXMViegGGNMr169jKQyb/s1xph3333XXHHFFcZut5tLL73UJCUlmXfeecetzgMHDpgBAwaYoKAgowqeg3KuivYtJXbt2mVGjBhhIiIijL+/v3E4HKZfv37mzTffdPZ58sknzVVXXeV8Vsqll15qfv/731fqF7DaZDPGGM8ek0FV2Ww2jR8/XjNnzqzrUoALwtdff60OHTrotddec14AWFWLFi3SnXfeqSNHjlTrYlYA3sVdPAAuGPv379f69ev1u9/9TpGRkW634lbFiBEjVFhYSDgBLIqAAuCC8ec//1n9+/dXXl6ePvzwQ+tczAfA4zjFAwAALIcjKAAAwHIIKAAAwHIIKAAAwHIuyCfJFhcX6/DhwwoKCqrWH+MCAAC1zxij3NxcRUVFycen4mMkF2RAOXz4sMf+Ai0AAKhdBw8edPu7cKVdkAElKChI0tkBVvYvUQIAgLqVk5Oj6Oho5/d4RS7IgFJyWic4OJiAAgDABaYyl2dwkSwAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALCcKgWUpKQkde3aVUFBQYqIiNDQoUP13XffufQxxmjatGmKiopSgwYN1KdPH+3evdulT0FBgR599FGFh4erUaNGuummm3To0KGajwYAAPwmVCmgbNq0SePHj9fnn3+u5ORknTlzRgMGDNDJkyedfWbMmKEXX3xRM2fOVGpqqhwOh/r376/c3FxnnwkTJmjx4sVasGCBPv30U+Xl5WnIkCEqKiry3MgAAMAFy2aMMdV9888//6yIiAht2rRJ1113nYwxioqK0oQJE/TEE09IOnu0pGnTpnruuec0btw4ZWdnq0mTJnr//fc1cuRISf99dP3KlSs1cODA835uTk6OQkJClJ2dzYPaAAC4QFTl+7tG16BkZ2dLkkJDQyVJ6enpyszM1IABA5x97Ha7evfura1bt0qStm/frsLCQpc+UVFRiouLc/YpraCgQDk5OS6TNxQVG6XsP6alO39Syv5jKiqudnYDAAA1UO1H3RtjNHHiRF1zzTWKi4uTJGVmZkqSmjZt6tK3adOm+uGHH5x9AgIC1LhxY7c+Je8vLSkpSYmJidUttVJWpWUocfkeZWTnO9siQwI1NaGNBsVFevWzAQCAq2ofQXnkkUf09ddfa/78+W7zSj9j3xhz3ufuV9RnypQpys7Odk4HDx6sbtllWpWWoYfm7nAJJ5KUmZ2vh+bu0Kq0DI9+HgAAqFi1Asqjjz6qZcuWacOGDS5/LtnhcEiS25GQrKws51EVh8Oh06dP68SJE+X2Kc1utzv/MKCn/0BgUbFR4vI9KutkTklb4vI9nO4BAKAWVSmgGGP0yCOP6OOPP9b69esVGxvrMj82NlYOh0PJycnOttOnT2vTpk3q1auXJKlLly7y9/d36ZORkaG0tDRnn9q0Lf2425GTcxlJGdn52pZ+vPaKAgCgnqvSNSjjx4/XvHnztHTpUgUFBTmPlISEhKhBgway2WyaMGGCpk+frlatWqlVq1aaPn26GjZsqDvuuMPZ9/7779ekSZMUFham0NBQTZ48We3atdMNN9zg+RGeR1Zu+eGkOv0AAEDNVSmgvPHGG5KkPn36uLTPmjVLY8aMkSQ9/vjjOnXqlB5++GGdOHFC3bt315o1axQUFOTs/9JLL8nPz08jRozQqVOndP3112v27Nny9fWt2WiqISIo0KP9AABAzdXoOSh1xZPPQSkqNrrmufXKzM4v8zoUmyRHSKA+faKffH0qvtAXAACUr9aeg/Jb4Otj09SENpLOhpFzlbyemtCGcAIAQC2q9wFFkgbFReqNuzrLEeJ6GscREqg37urMc1AAAKhl1X5Q22/NoLhI9W/j0Lb048rKzVdEUKC6xYZy5AQAgDpAQDmHr49NPVuG1XUZAADUe5ziAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAllPlgLJ582YlJCQoKipKNptNS5YscZlvs9nKnJ5//nlnnz59+rjNv/3222s8GAAA8NtQ5YBy8uRJdejQQTNnzixzfkZGhsv07rvvymaz6dZbb3XpN3bsWJd+b731VvVGAAAAfnP8qvqG+Ph4xcfHlzvf4XC4vF66dKn69u2rSy+91KW9YcOGbn0BAAAkL1+DcuTIEX3yySe6//773eZ98MEHCg8PV9u2bTV58mTl5uaWu5yCggLl5OS4TPC8omKjlP3HtHTnT0rZf0xFxaauSwIA1FNVPoJSFXPmzFFQUJBuueUWl/Y777xTsbGxcjgcSktL05QpU7Rr1y4lJyeXuZykpCQlJiZ6s9R6b1VahhKX71FGdr6zLTIkUFMT2mhQXGQdVgYAqI9sxphq/5pss9m0ePFiDR06tMz5rVu3Vv/+/fXqq69WuJzt27frqquu0vbt29W5c2e3+QUFBSooKHC+zsnJUXR0tLKzsxUcHFzd8vF/VqVl6KG5O1R6Q7D933/fuKszIQUAUGM5OTkKCQmp1Pe3107xbNmyRd99950eeOCB8/bt3Lmz/P39tXfv3jLn2+12BQcHu0zwjKJio8Tle9zCiSRnW+LyPZzuAQDUKq8FlHfeeUddunRRhw4dztt39+7dKiwsVGQkv6XXtm3px11O65RmJGVk52tb+vHaKwoAUO9V+RqUvLw87du3z/k6PT1dO3fuVGhoqJo3by7p7CGcDz/8UH/961/d3r9//3598MEHGjx4sMLDw7Vnzx5NmjRJnTp10tVXX12DoaA6snLLDyfV6QcAgCdUOaB8+eWX6tu3r/P1xIkTJUmjR4/W7NmzJUkLFiyQMUajRo1ye39AQIDWrVunV155RXl5eYqOjtaNN96oqVOnytfXt5rDQHVFBAV6tB8AAJ5Qo4tk60pVLrJBxYqKja55br0ys/PLvA7FJskREqhPn+gnXx9bGT0AAKgcS1wkiwuDr49NUxPaSPrvXTslSl5PTWhDOAEA1CoCCjQoLlJv3NVZjhDX0ziOkEBuMQYA1AmvPqgNF45BcZHq38ahbenHlZWbr4igQHWLDeXICQCgThBQ4OTrY1PPlmF1XQYAAJziAQAA1kNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAlkNAAQAAllPlgLJ582YlJCQoKipKNptNS5YscZk/ZswY2Ww2l6lHjx4ufQoKCvToo48qPDxcjRo10k033aRDhw7VaCAAAOC3o8oB5eTJk+rQoYNmzpxZbp9BgwYpIyPDOa1cudJl/oQJE7R48WItWLBAn376qfLy8jRkyBAVFRVVfQQAAOA3x6+qb4iPj1d8fHyFfex2uxwOR5nzsrOz9c477+j999/XDTfcIEmaO3euoqOjtXbtWg0cOLCqJQEAgN8Yr1yDsnHjRkVEROjyyy/X2LFjlZWV5Zy3fft2FRYWasCAAc62qKgoxcXFaevWrWUur6CgQDk5OS4T4A1FxUYp+49p6c6flLL/mIqKTV2XBAD1UpWPoJxPfHy8hg8frpiYGKWnp+uZZ55Rv379tH37dtntdmVmZiogIECNGzd2eV/Tpk2VmZlZ5jKTkpKUmJjo6VIBF6vSMpS4fI8ysvOdbZEhgZqa0EaD4iLrsDIAqH88fgRl5MiRuvHGGxUXF6eEhAT961//0vfff69PPvmkwvcZY2Sz2cqcN2XKFGVnZzungwcPerps1HOr0jL00NwdLuFEkjKz8/XQ3B1alZZRR5UBQP3k9duMIyMjFRMTo71790qSHA6HTp8+rRMnTrj0y8rKUtOmTctcht1uV3BwsMsEeEpRsVHi8j0q62ROSVvi8j2c7gGAWuT1gHLs2DEdPHhQkZFnD5F36dJF/v7+Sk5OdvbJyMhQWlqaevXq5e1yADfb0o+7HTk5l5GUkZ2vbenHa68oAKjnqnwNSl5envbt2+d8nZ6erp07dyo0NFShoaGaNm2abr31VkVGRurAgQP64x//qPDwcA0bNkySFBISovvvv1+TJk1SWFiYQkNDNXnyZLVr1855Vw9Qm7Jyyw8n1ekHAKi5KgeUL7/8Un379nW+njhxoiRp9OjReuONN/TNN9/ovffe0y+//KLIyEj17dtXCxcuVFBQkPM9L730kvz8/DRixAidOnVK119/vWbPni1fX18PDAmomoigQI/2AwDUnM0Yc8GdWM/JyVFISIiys7O5HgU1VlRsdM1z65WZnV/mdSg2SY6QQH36RD/5+pR9ITcA4Pyq8v3N3+JBvefrY9PUhDaSzoaRc5W8nprQhnACALWIgAJIGhQXqTfu6ixHiOtpHEdIoN64qzPPQQGAWubxB7UBF6pBcZHq38ahbenHlZWbr4igQHWLDeXICQDUAQIKcA5fH5t6tgyr6zIAoN7jFA8AALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALCcKgeUzZs3KyEhQVFRUbLZbFqyZIlzXmFhoZ544gm1a9dOjRo1UlRUlO655x4dPnzYZRl9+vSRzWZzmW6//fYaDwYAAPw2VDmgnDx5Uh06dNDMmTPd5v3666/asWOHnnnmGe3YsUMff/yxvv/+e910001ufceOHauMjAzn9NZbb1VvBAAA4DfHr6pviI+PV3x8fJnzQkJClJyc7NL26quvqlu3bvrxxx/VvHlzZ3vDhg3lcDiq+vEAAKAe8Po1KNnZ2bLZbLr44otd2j/44AOFh4erbdu2mjx5snJzc8tdRkFBgXJyclwmAJ5XVGyUsv+Ylu78SSn7j6mo2NR1SQDqqSofQamK/Px8Pfnkk7rjjjsUHBzsbL/zzjsVGxsrh8OhtLQ0TZkyRbt27XI7+lIiKSlJiYmJ3iwVqPdWpWUocfkeZWTnO9siQwI1NaGNBsVF1mFlAOojmzGm2r8i2Ww2LV68WEOHDnWbV1hYqOHDh+vHH3/Uxo0bXQJKadu3b9dVV12l7du3q3Pnzm7zCwoKVFBQ4Hydk5Oj6OhoZWdnV7hcAJWzKi1DD83dodI7A9v//feNuzoTUgDUWE5OjkJCQir1/e2VUzyFhYUaMWKE0tPTlZycfN4iOnfuLH9/f+3du7fM+Xa7XcHBwS4TAM8oKjZKXL7HLZxIcrYlLt/D6R4AtcrjAaUknOzdu1dr165VWFjYed+ze/duFRYWKjKS39CA2rYt/bjLaZ3SjKSM7HxtSz9ee0UBqPeqfA1KXl6e9u3b53ydnp6unTt3KjQ0VFFRUbrtttu0Y8cOrVixQkVFRcrMzJQkhYaGKiAgQPv379cHH3ygwYMHKzw8XHv27NGkSZPUqVMnXX311Z4bGYBKycotP5xUpx8AeEKVA8qXX36pvn37Ol9PnDhRkjR69GhNmzZNy5YtkyR17NjR5X0bNmxQnz59FBAQoHXr1umVV15RXl6eoqOjdeONN2rq1Kny9fWtwVAAVEdEUKBH+wGAJ1Q5oPTp00cVXVd7vmtuo6OjtWnTpqp+LAAv6RYbqsiQQGVm55d5HYpNkiMkUN1iQ2u7NAD1GH+LB6jnfH1smprQRtJ/79opUfJ6akIb+fqUngsA3kNAAaBBcZF6467OcoS4nsZxhARyizGAOuHVB7UBuHAMiotU/zYObUs/rqzcfEUEnT2tw5ETAHWBgALAydfHpp4tz/9oAADwNk7xAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAy6lyQNm8ebMSEhIUFRUlm82mJUuWuMw3xmjatGmKiopSgwYN1KdPH+3evdulT0FBgR599FGFh4erUaNGuummm3To0KEaDQQAAPx2VDmgnDx5Uh06dNDMmTPLnD9jxgy9+OKLmjlzplJTU+VwONS/f3/l5uY6+0yYMEGLFy/WggUL9OmnnyovL09DhgxRUVFR9UcCAAB+M2zGGFPtN9tsWrx4sYYOHSrp7NGTqKgoTZgwQU888YSks0dLmjZtqueee07jxo1Tdna2mjRpovfff18jR46UJB0+fFjR0dFauXKlBg4ceN7PzcnJUUhIiLKzsxUcHFzd8gEAQC2qyve3R69BSU9PV2ZmpgYMGOBss9vt6t27t7Zu3SpJ2r59uwoLC136REVFKS4uztmntIKCAuXk5LhMAOANRcVGKfuPaenOn5Sy/5iKiqv9OxyAGvDz5MIyMzMlSU2bNnVpb9q0qX744Qdnn4CAADVu3NitT8n7S0tKSlJiYqInSwUAN6vSMpS4fI8ysvOdbZEhgZqa0EaD4iLrsDKg/vHKXTw2m83ltTHGra20ivpMmTJF2dnZzungwYMeqxUApLPh5KG5O1zCiSRlZufrobk7tCoto44qA+onjwYUh8MhSW5HQrKyspxHVRwOh06fPq0TJ06U26c0u92u4OBglwkAPKWo2Chx+R6VdTKnpC1x+R5O9wC1yKMBJTY2Vg6HQ8nJyc6206dPa9OmTerVq5ckqUuXLvL393fpk5GRobS0NGcfAKhN29KPux05OZeRlJGdr23px2uvKKCeq/I1KHl5edq3b5/zdXp6unbu3KnQ0FA1b95cEyZM0PTp09WqVSu1atVK06dPV8OGDXXHHXdIkkJCQnT//fdr0qRJCgsLU2hoqCZPnqx27drphhtu8NzIAKCSsnLLDyfV6Qeg5qocUL788kv17dvX+XrixImSpNGjR2v27Nl6/PHHderUKT388MM6ceKEunfvrjVr1igoKMj5npdeekl+fn4aMWKETp06peuvv16zZ8+Wr6+vB4YEAFUTERTo0X4Aaq5Gz0GpKzwHBYAnFRUbXfPcemVm55d5HYpNkiMkUJ8+0U++PhVf8A+gfHX2HBQAuBD5+tg0NaGNpLNh5Fwlr6cmtCGcALWIgAIAkgbFReqNuzrLEeJ6GscREqg37urMc1CAWubRB7UBwIVsUFyk+rdxaFv6cWXl5isiKFDdYkM5cgLUAQIKAJzD18emni3D6roMoN7jFA8AALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcAgoAALAcjweUFi1ayGazuU3jx4+XJI0ZM8ZtXo8ePTxdBgAAuID5eXqBqampKioqcr5OS0tT//79NXz4cGfboEGDNGvWLOfrgIAAT5cBAAAuYB4PKE2aNHF5/Ze//EUtW7ZU7969nW12u10Oh8PTHw0AAH4jvHoNyunTpzV37lzdd999stlszvaNGzcqIiJCl19+ucaOHausrKwKl1NQUKCcnByXCQDgeUXFRin7j2npzp+Usv+YiopNXZeEesrjR1DOtWTJEv3yyy8aM2aMsy0+Pl7Dhw9XTEyM0tPT9cwzz6hfv37avn277HZ7mctJSkpSYmKiN0sFgHpvVVqGEpfvUUZ2vrMtMiRQUxPaaFBcZB1WhvrIZozxWjweOHCgAgICtHz58nL7ZGRkKCYmRgsWLNAtt9xSZp+CggIVFBQ4X+fk5Cg6OlrZ2dkKDg72eN0AUN+sSsvQQ3N3qPQXQsmx7zfu6kxIQY3l5OQoJCSkUt/fXjuC8sMPP2jt2rX6+OOPK+wXGRmpmJgY7d27t9w+dru93KMrAICaKSo2Sly+xy2cSJLR2ZCSuHyP+rdxyNfHVkYvwPO8dg3KrFmzFBERoRtvvLHCfseOHdPBgwcVGUkyB4C6sC39uMtpndKMpIzsfG1LP157RaHe80pAKS4u1qxZszR69Gj5+f33IE1eXp4mT56slJQUHThwQBs3blRCQoLCw8M1bNgwb5QCADiPrNzyw0l1+gGe4JVTPGvXrtWPP/6o++67z6Xd19dX33zzjd577z398ssvioyMVN++fbVw4UIFBQV5oxQAwHlEBAV6tB/gCV4JKAMGDFBZ1942aNBAq1ev9sZHAgCqqVtsqCJDApWZnV/mdSg2SY6QQHWLDa3t0lCP8bd4AKCe8/WxaWpCG0n/vWunRMnrqQltuEAWtYqAAgDQoLhIvXFXZzlCXE/jOEICucUYdcKrD2oDAFw4BsVFqn8bh7alH1dWbr4igs6e1uHICeoCAQUA4OTrY1PPlmF1XQbAKR4AAGA9BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5BBQAAGA5Hg8o06ZNk81mc5kcDodzvjFG06ZNU1RUlBo0aKA+ffpo9+7dni4DAABcwLxyBKVt27bKyMhwTt98841z3owZM/Tiiy9q5syZSk1NlcPhUP/+/ZWbm+uNUgAAwAXIKwHFz89PDofDOTVp0kTS2aMnL7/8sp566indcsstiouL05w5c/Trr79q3rx53igFAABcgLwSUPbu3auoqCjFxsbq9ttv13/+8x9JUnp6ujIzMzVgwABnX7vdrt69e2vr1q3lLq+goEA5OTkuEwAA+O3yeEDp3r273nvvPa1evVpvv/22MjMz1atXLx07dkyZmZmSpKZNm7q8p2nTps55ZUlKSlJISIhzio6O9nTZAACoqNgoZf8xLd35k1L2H1NRsanrkuotP08vMD4+3vn/7dq1U8+ePdWyZUvNmTNHPXr0kCTZbDaX9xhj3NrONWXKFE2cONH5Oicnh5ACAPCoVWkZSly+RxnZ+c62yJBATU1oo0FxkXVYWf3k9duMGzVqpHbt2mnv3r3Ou3lKHy3JyspyO6pyLrvdruDgYJcJAABPWZWWoYfm7nAJJ5KUmZ2vh+bu0Kq0jDqqrP7yekApKCjQt99+q8jISMXGxsrhcCg5Odk5//Tp09q0aZN69erl7VIAAHBTVGyUuHyPyjqZU9KWuHwPp3tqmccDyuTJk7Vp0yalp6friy++0G233aacnByNHj1aNptNEyZM0PTp07V48WKlpaVpzJgxatiwoe644w5PlwIAwHltSz/uduTkXEZSRna+tqUfr72i4PlrUA4dOqRRo0bp6NGjatKkiXr06KHPP/9cMTExkqTHH39cp06d0sMPP6wTJ06oe/fuWrNmjYKCgjxdCgAA55WVW344qU4/eIbNGHPBHbPKyclRSEiIsrOzuR4FAFAjKfuPadTbn5+33/yxPdSzZVgtVPTbVZXvb/4WDwCgXusWG6rIkECVdy+pTWfv5ukWG1qbZdV7BBQAQL3m62PT1IQ2kuQWUkpeT01oI1+f8h+HAc8joAAA6r1BcZF6467OcoQEurQ7QgL1xl2deQ5KHfD4RbIAAFyIBsVFqn8bh7alH1dWbr4igs6e1uHISd0goAAA8H98fWxcCGsRnOIBAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACWQ0ABAACW41fXBQAAAOsoKjbaln5cWbn5iggKVLfYUPn62Gq9Do8fQUlKSlLXrl0VFBSkiIgIDR06VN99951LnzFjxshms7lMPXr08HQpAACgClalZeia59Zr1Nuf6/8t2KlRb3+ua55br1VpGbVei8cDyqZNmzR+/Hh9/vnnSk5O1pkzZzRgwACdPHnSpd+gQYOUkZHhnFauXOnpUgAAQCWtSsvQQ3N3KCM736U9MztfD83dUeshxeOneFatWuXyetasWYqIiND27dt13XXXOdvtdrscDoenPx4AAFRRUbFR4vI9MmXMM5JskhKX71H/No5aO93j9Ytks7OzJUmhoaEu7Rs3blRERIQuv/xyjR07VllZWeUuo6CgQDk5OS4TAADwjG3px92OnJzLSMrIzte29OO1VpNXA4oxRhMnTtQ111yjuLg4Z3t8fLw++OADrV+/Xn/961+Vmpqqfv36qaCgoMzlJCUlKSQkxDlFR0d7s2wAAOqVrNzyw0l1+nmCzRhT1hEdjxg/frw++eQTffrpp2rWrFm5/TIyMhQTE6MFCxbolltucZtfUFDgEl5ycnIUHR2t7OxsBQcHe6V2AADqi5T9xzTq7c/P22/+2B7q2TKs2p+Tk5OjkJCQSn1/e+0240cffVTLli3T5s2bKwwnkhQZGamYmBjt3bu3zPl2u112u90bZQIAUO91iw1VZEigMrPzy7wOxSbJEXL2luPa4vFTPMYYPfLII/r444+1fv16xcbGnvc9x44d08GDBxUZGenpcgAAwHn4+tg0NaGNpLNh5Fwlr6cmtKnV56F4PKCMHz9ec+fO1bx58xQUFKTMzExlZmbq1KlTkqS8vDxNnjxZKSkpOnDggDZu3KiEhASFh4dr2LBhni4HAABUwqC4SL1xV2c5QgJd2h0hgXrjrs4aFFe7BxE8fg2KzVZ2upo1a5bGjBmjU6dOaejQofrqq6/0yy+/KDIyUn379tWf//znSl/8WpVzWAAAoPK8+STZqnx/e/UiWW8hoAAAcOGpyvc3fywQAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYDgEFAABYjtf+mrE3lTz8Nicnp44rAQAAlVXyvV2Zh9hfkAElNzdXkir9t3sAAIB15ObmKiQkpMI+F+Tf4ikuLtbhw4cVFBTk/OOEXbt2VWpqqku/0m0VvS75/5ycHEVHR+vgwYMe+Ts/ZdVVk/7lzbfq+CuquTp9azL+0m3lrY+63AYq05dtoH5vAxXNt+o2wH6w7n4Gymqvy23AGKPc3FxFRUXJx6fiq0wuyCMoPj4+atasmUubr6+v20os3VbR69LzgoODPfKPUlZdNelf3nyrjr+imqvTtybjL912vvVTF9tAZfqyDdTvbaCi+VbdBtgP1t3PQFntdb0NnO/ISYnfzEWy48ePP29bRa/Ler+36qpJ//LmW3X8VV22N8dfuu1868dTPDn+ivqwDdSPbaCi+VbdBtgP1t3PQFntF8I2IF2gp3i8qSp/Cvq3qL6PX2Id1PfxS6wDxl+/xy9ZYx38Zo6geIrdbtfUqVNlt9vrupQ6Ud/HL7EO6vv4JdYB46/f45essQ44ggIAACyHIygAAMByCCgAAMByCCgAAMByCCgAAMByCCg18NJLL6lt27Zq06aNHnvssUr9bYHfku+++04dO3Z0Tg0aNNCSJUvquqxalZ6err59+6pNmzZq166dTp48Wdcl1To/Pz/nNvDAAw/UdTl14tdff1VMTIwmT55c16XUqtzcXHXt2lUdO3ZUu3bt9Pbbb9d1SbXu4MGD6tOnj9q0aaP27dvrww8/rOuSat2wYcPUuHFj3XbbbR5dLnfxVNPPP/+sHj16aPfu3fL399d1112nF154QT179qzr0upEXl6eWrRooR9++EGNGjWq63JqTe/evfW///u/uvbaa3X8+HEFBwfLz++CfEBztYWHh+vo0aN1XUadeuqpp7R37141b95cL7zwQl2XU2uKiopUUFCghg0b6tdff1VcXJxSU1MVFhZW16XVmoyMDB05ckQdO3ZUVlaWOnfurO+++65e7Qc3bNigvLw8zZkzR//85z89tlyOoNTAmTNnlJ+fr8LCQhUWFioiIqKuS6ozy5Yt0/XXX1+vfihLwum1114rSQoNDa134QTS3r179e9//1uDBw+u61Jqna+vrxo2bChJys/PV1FRUb07khwZGamOHTtKkiIiIhQaGqrjx4/XbVG1rG/fvgoKCvL4cn+zAWXz5s1KSEhQVFSUbDZbmaceXn/9dcXGxiowMFBdunTRli1bKr38Jk2aaPLkyWrevLmioqJ0ww03qGXLlh4cQc15ex2ca9GiRRo5cmQNK/Ysb49/7969uuiii3TTTTepc+fOmj59uger94za2AZycnLUpUsXXXPNNdq0aZOHKveM2hj/5MmTlZSU5KGKPas2xv/LL7+oQ4cOatasmR5//HGFh4d7qHrPqM394Jdffqni4mJFR0fXsGrPqc3xe9pvNqCcPHlSHTp00MyZM8ucv3DhQk2YMEFPPfWUvvrqK1177bWKj4/Xjz/+6OzTpUsXxcXFuU2HDx/WiRMntGLFCh04cEA//fSTtm7dqs2bN9fW8CrF2+ugRE5Ojj777DPL/Qbp7fEXFhZqy5Yteu2115SSkqLk5GQlJyfX1vAqpTa2gQMHDmj79u168803dc899ygnJ6dWxlYZ3h7/0qVLdfnll+vyyy+vrSFVSW38+1988cXatWuX0tPTNW/ePB05cqRWxlZZtbUfPHbsmO655x79/e9/9/qYqqK2xu8Vph6QZBYvXuzS1q1bN/Pggw+6tLVu3do8+eSTlVrmokWLzMMPP+x8PWPGDPPcc8/VuFZv8cY6KPHee++ZO++8s6YlepU3xr9161YzcOBA5+sZM2aYGTNm1LhWb/HmNlBi0KBBJjU1tbolepU3xv/kk0+aZs2amZiYGBMWFmaCg4NNYmKip0r2qNr493/wwQfNokWLqlui13lrHeTn55trr73WvPfee54o02u8uQ1s2LDB3HrrrTUt0cVv9ghKRU6fPq3t27drwIABLu0DBgzQ1q1bK7WM6Ohobd261XnedePGjbriiiu8Ua5XeGIdlLDi6Z3z8cT4u3btqiNHjujEiRMqLi7W5s2bdeWVV3qjXK/wxDo4ceKECgoKJEmHDh3Snj17dOmll3q8Vm/wxPiTkpJ08OBBHThwQC+88ILGjh2rP/3pT94o1+M8Mf4jR444j5jl5ORo8+bN9W4/aIzRmDFj1K9fP919993eKNNrPPk94A318oq+o0ePqqioSE2bNnVpb9q0qTIzMyu1jB49emjw4MHq1KmTfHx8dP311+umm27yRrle4Yl1IEnZ2dnatm2bPvroI0+X6FWeGL+fn5+mT5+u6667TsYYDRgwQEOGDPFGuV7hiXXw7bffaty4cfLx8ZHNZtMrr7yi0NBQb5TrcZ76GbhQeWL8hw4d0v333y9jjIwxeuSRR9S+fXtvlOsVnlgHn332mRYuXKj27ds7r+94//331a5dO0+X63Ge+hkYOHCgduzYoZMnT6pZs2ZavHixunbtWuP66mVAKWGz2VxeG2Pc2iry7LPP6tlnn/V0WbWqpusgJCTEcuecq6Km44+Pj1d8fLyny6pVNVkHvXr10jfffOONsmpNTbeBEmPGjPFQRbWrJuPv0qWLdu7c6YWqaldN1sE111yj4uJib5RVa2r6M7B69WpPlyTpN3yRbEXCw8Pl6+vrlhCzsrLckuRvVX1fB/V9/BLrgPHX7/FLrAOrj79eBpSAgAB16dLF7Y6L5ORk9erVq46qql31fR3U9/FLrAPGX7/HL7EOrD7+3+wpnry8PO3bt8/5Oj09XTt37lRoaKiaN2+uiRMn6u6779ZVV12lnj176u9//7t+/PFHPfjgg3VYtWfV93VQ38cvsQ4Yf/0ev8Q6uKDH79F7gixkw4YNRpLbNHr0aGef1157zcTExJiAgADTuXNns2nTpror2Avq+zqo7+M3hnXA+Ov3+I1hHVzI4+dv8QAAAMupl9egAAAAayOgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAy/n/LMdlNErYFgUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(ratios, slopes)\n", + "plt.xscale('log')\n", + "plt.title(\"Slope of Best Fit vs ratio of y0/x0 for even derivatives\")" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "coefficients_new = np.polyfit(np.log10(ratios), slopes, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-24.8655584 , -1.18514632])" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coefficients_new" ] }, { From 11f0e3148e00e26e272410b8ddf299944fbe1468 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 23 Dec 2024 10:27:52 -0800 Subject: [PATCH 123/193] Stickw grid --- test/order4.png | Bin 42912 -> 42921 bytes test/order6.png | Bin 47212 -> 47591 bytes test/order7.png | Bin 46876 -> 46733 bytes test/plot_normal_recurrence.ipynb | 100 ++++++++++-------------------- test/plot_taylor_recurrence.ipynb | 88 ++++++++++++++------------ 5 files changed, 81 insertions(+), 107 deletions(-) diff --git a/test/order4.png b/test/order4.png index 24b497f98a6330a83eb40702cc6846b6f14f8ac6..a7552342b6619a1f62e18c3a617e84808c76bea2 100644 GIT binary patch literal 42921 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 Mv`zKqhM$iAAFz(YTmS$7 diff --git a/test/order6.png b/test/order6.png index ffa85eb997b5fe79867198f64a3ee1b9a8774199..fcaf79f69fda64612bf22666d3458bd06b341e0c 100644 GIT binary patch literal 47591 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 literal 47212 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 diff --git a/test/order7.png b/test/order7.png index 1c188aa17238469f314452cd068a604944530978..bfc3d0ff2a4181fb92254b480be92d349f816d2e 100644 GIT binary patch literal 46733 zcmeFZc{rA9+dh2BO0CM!(uB~Ul!{1MW<{h@l%c_pA%rMnW=)z%l*|;8c?_8wM9G*r zq!KbG^Zf1St)BN;&-;Gg_Wr)Ve{0*?mU7?Mbq>dQ9Q(2F$8p|LKBB<5gnbD`QH+WQ zY6|00_HNP_&&djARQ;}(Y2cDj~lDJ5O&3uYG9X6N+Q*`BquI%i?N zi(iyqX!|;2YwHVEVgdr^|MdZW3riz`^+)I%@sK|+95`u3QOvsJ4_&nM({mJ+KB*|T zSM^eGZ;SmU)%KaWx%y-t-KA^pomuzCip=FFm#MtmAjil4$4vAVEji`rC%1H#Y~_x7 zvgFuq7tJjRe>~tf70sZ7UDl+tFMgJ$<(1o@79PRjXB~ zS5JwJDDN(#enq{X4h2~ijth#`Y{Zag|5fsoO{Uq7!~VEml^*Uv0;!p(HQe!fYu_y78llA{>ye*e7T|303g{_oxQ`2Hn-EI5^Eu9Y6fEovF*F#NqL+RBStI={**;a%lp+1ebtft#VbSQZ<1 zlmX}(%DqpdVW8dzD3+VDjKbk6? z3JR0>`F3M>ZJgg7%j*r-UenD3jESmN)?0w0cMl@^pz*Fg&m~6Xo>^Ma$k`(iV7H z6?lyKQcP6us>Od;*PS#X54jkAy?!ZmrohMNuNLRA7IrafsP~Uo_R>ScbA4P5Gd2yLOd#XQYQ%s5UJ)MhhR-Q^T^gJTkzJgi3BeXNr z@yOUG$E2vEVTr-PYd3A)?2yOPdNR#W$yeVZeRI$;+=qWyCQ$OId z`AG1ZkeF9#GtV1Q-=XQuVP z6FPbZsgWA zo0aXAZTkx5u6@2Kqc&$CKkm!x8*y4Ww(NV%{CT>5e0iOXEhI*@RZvicH_R#3JiBW% zMiy6M?=m;lYWn%bWs|0igpV2L<6LGYyF>~ml)ew`*6P0Wb@82&`k&)%UOfuZliu03 zeX)gwa_2uj+q%KDuPWk({N1%N*v`Gg0Lg^Y%Eb;9%=B5r#rIVom9E{9*&IGRY`uwx zXUmQqN)ZZPb$2<%_l<4cwypZvx$2rUqoep$v}t`}pwQXdCGX#x&SY!kkABK?G;J^O zWfwNShZCI;WRahx*eQAG$0L{F2<{l20vD6k{JdkwjtO7*EF(GAY^6K4^p6F60s{2| zE@L^B6$jhLz7)Ry-dP$DA+t`ouVUKEby^?qF&^u0d8{vxH|*oi$PxAJn?bsH%c<2` z*52AK6YXLJT#WWDzH`aV%7(W z?{ZetGfS{cvUN3QrJ3gr%AbeLe`@t(W#kl76=}Y3m8a{-fNOoS?(3RFEpalWs|<`Ebmk`Olc#D%({~nq zzr2V`Szg}V$H&L|lYM8Gh3nL5)qGy-|G``3?4NyH;nrEd^>W+(*`K-F3EPMf$mF`Lk!ws)bsV`U@UZQmXadsIag2;r5f^ zm+2S9Dh2H!*3F;OD|Egg`EhxYg0s$8F}G{H%(_R5xGu@ShP)g`dt+eQdDt5g8Q``) zxlEn+xtP=L+Kk7y_I5S4R*j~yb~#Ch;mV_~lgAa0nV6U~ zRM-pu)O#X5H&Ma<_k~BqdTskYc6~S`kdXR5CnM<%hGpG!J~QT!A3yPt`GcMo-xD%F z-7Xm`T&m+T@#G=DR_uCN_h^kI?a+8SnYBXHtL>W4D-Q_ajOQXGSqZJN$KuwKmn)B3X%M*qU~DQHM!$o?--8uHg=SY4=iip-MI0!2Zu;v$q+M}P~kE*As*|gS`D4u zK8NcQwaUI%MU=sWjc6+&={PE9kif>q7Iiw)eDj)Rfp6}t4nnx`?@7!lKOmG;FzfK$ z1;5(;G}!WXS53_Q07=IT`>rQ`r9PVum6nOLnn{g+rq}lnY;SLmg2U1sn|LGOqWdw^ z!h%2Rn@@6>S2x~Y7#SJq5BE6qcB7X+0$^?K>|_t4*uX8F`U>f}W)E)ZPZ9tq9ljdc zf&#fet_18kA9xO7zMkx$HaS`Sv~mhbAcij=GqQjPfpFdLFtXo zlf!}qb29^F+mdqiJ~RH3_A798k z;Ml~h3qIzr+GSX})2H;>pRA>=v!fzuXI?I-PB+!4esah!d5(MIpk$2V{{8#Y3!08j z{|%?(*%|%rjzGRKPk>{8*3*|>3(xqKw4QzQ=FRR;PxD=;JSHaX)EpeL|75t@5%V-u z$aQuotc;i*PXHe1-f#D{b)UY+$!zPGESLlBIBC1i*bEI<9}U9U^}l~qO0;+2<~BAx z#BwssTdcf+2*2gDbt5o}7{hY-)za`{aY5IbQ4!w1OnnWA#g|LZISt*Ao_@JqC%<_a zr&!H1`wFH7x2ZprgsKns4ELe@w$&&$sMgEBX0Wc`| z2VE}5Ucn(ao`A5KUZc%|f>ki5{JJE^c2nv02gge>F%y@mrq)23-Hp_pp0_(P*N#Qf z=XYF_CzWSp&{$yHZ1<=Z(vZVsKER$1O0j+#i3hiTOhC0fM*67a; zdbzGq?9eEfRBNyrXv(bM*}OS$dV0Dt1;$hV#{xR5p)!%6&M?m7kW@=unE@LLmju-Wa~w@XvczAsJDFD^anr)7BR znXztv?$8n1M{jUByak*n8XjnET`O@ZxqRS|4RPLN*c;ywt2Bho8NPqGqi7AQZ?3V2 z;8CfGNN)poW^VI`J5C!SOy~*i+NHE_-<6Z;CTibZc02Fzm=N2=uz+r;U~a15u|pi3 z+-6Zx(cZb@15QUxEU^a;?U@)9dxgsVg-cgq;0*etuEjX98!I!*-h3vrlQ*?C{g%HW<9TPk@L;C=6$A zx>GvJeyF1(r*+0Wp`yCded^6>owbAM>WLe-ZhhzU^BwPFeV}SzMMXtH9L_P>V)Oh7 z!|K$thmHe@wVCp5*|HOh9QWam@iy)`9If{Ee)Z!GCH4I8a;Ja3_mr|w(y2e_`}oqU zYkx)|*6W6uR!1qNdnF{ky8z$hZ{Cu9{dy<9#G%+B;5u;<#HcY_z zAI4Y@4MsiLqU#DHg3#_a8hkNX(z?PHwZv9d!3zF*>Kulh3<5#;L`|d2K=H zB>OHyk8_`Lvl@X9uW~Pa!9Q~Dd02EtfwK?s)35gEt(A1B3AU*_8HLdPSig2=M|{8i z=s>Fl;u&jQr0sgyc+IR22V#GEb@7@Qzn&?a2U}vtjvtp*veNfx%y-U#?+@6zWy@mD zoNqpd4&PwnEG-WaH+51X`=Qj7asGAcBf%nx;YwNgVGxvZu7h>%a{9Bk^Pu_3KwY?$+@l zkyrg=Krq`_7JoX~h>yniF^Y)dOXMCqX1!xzo$@^Kd%_cEz4`O)s*W25ye|+8xc+hcq|jViB8e>r;{`m6Vq=IVZ&t*b!$p@Tt2#NvB~*+qUtn?#7cQR>&~b*zBun zhWNFzRY|TwGBm;%05DCKS-2cO`#@2)*}7WkW428k3E-6}*O#u2#UM)Fz4PWt(9S#M zIM!ba7T{H#Gw{6@QXM{i{=^ZX3HSW|L;P8CK)1)zJH-Z#B7c5pU@c}3ah;tY`A?ij zZcP8w2Nu)1_$tH*wf2b*)zu`^P!-pEnh`c}5X<5K-?SS66)1g=HSDK@UEDT4!@MPy zxTW+^J2(U}q;2_AEd%bH+`ykgLPD?Z?*Hj%86L39NPQ}2rqHXH%Q0TNGwzw)fHtE1 zVLu(0EM%D<9~CdSpdmXu%E+=ksHJa;d-!W3JlQd*A+EuM!6ns%$u43wYgjY8X3Gs5@jm8NKuyi?{ z=U{VU&xz+39;c?J*5ue(DC!h+zJt}-w0VlSCx|1>lXYJfGh~$VIBBY6Taqe5Pn=}^ zEoo_Ao2py(-Pt{f$Ak8qkNp#T{@tdStjk->Y_8fttwe*gZgi`JbGIl$^(MTGcSr zt6WQ|^e;-sFS7^3z4ei=JhT+(EJG9h_0(8VmetM9u9$PVX4uIPx zKMJwR7(rk+Lk(+KrdVxWc~tONfKg}_*#jV}BM7~7aWMSo{dZOcO1rwGTXpwr)LV>cNs}f1&G;nM|PA2^&o*UJN9}8(K!*YDGCb`^XQQbSWFz|I-I;$bvqPKo;+C_ z+BVK`(T068n>-^Bog$nlf&&m#1|%Em8VBSz=S;mYhco(juq5nU*HHu)K1oK^pXfiOi%teR5Q%1=j&zhwkI)R zx#QPPzNOy8No*~YhKFMa$&tG2n$Nnsed35%7Z1|X_`L9_W7jE@$r)a?)*9bPCl`uNwJLjeq6sUbvzhbJ8^{Dap%E#mwGz`jI=V7EYFu7Wyb(|Mmy?aL{Ik`A^x=MEX9+;eVJNKU(0$Mi& ztnMkfPN19R^)u%u`o_17-v#N>4x|g45C&p!&{`;D-uyQZL9}+KgwuF3m+SP!vxbJT zNNh*6mr^y080{Y2B1|AiTb(eM$(Tgs$4P$2BXnQ86En3an8|Q-90{iy``n)Fd;0#q4|{~*UgGxOb0bRd6P#DWqnJCC*2iYjymB%(E4lC4RVtI&^Qvd=JnsVyZc5 z6tZ%1djD#zNCf)m$Vj=&PY$M6>vrrP=-Il}I%|OSsKj#h;FYUa_W*xZ4tG^=oOHtX zQ~~>jv1{Mq?3Z%3lJIQb?t3a}K{V2y^VTmHuKrGZoh-9tBurh=2gGO;Z|J3cK%H?z z$GTy@$~Yko0N$_pHMH{_(xt#YCc8Td7eIzAkFT##l%0KPhEF?ydnKHbT2?N*%(Thd zRw+dXAhvXzx=QH<8mg+s$eP9ao>iMPb8;^J170rmavKuvbO4lBceC!1^-@(UJ%xS_>66crjp0DMP5O8Bs6@HyCtqz`< z;wsPbLqF8p5IXe{S%KqEk1%r1Rfo++{`_f)_`f~8Vs%39B~VwfNW&(rNTzAp% z_4DgF>Nnr!rLP*VxUN!^1!K)5LFZHN@3%PEkNy%&&tYTmvnfBBsZK8 z4q^!R!(VQ2ySHHJDrzx~sDkNs0rJnFxpUY#=zWM9aSk*9GRI0x_Su=2SCT6-!S{Me z{JaU?@+rVFK^jnJ(f|mb5W)!yr{NoN+S{SUMieZ9&HEjh-@O&MRMHH~9^Ahl;UztL z0yg**NcHvY=Lg^~uM(1A<{Phc6;i}#;ut@s8F>-@5V7-Ikq4Wnl-=IFm-+LCkDWC# zGDR|W@W6pe1k_=8;4Wm#u~vS-;31K)xGv&i3vaR7wAj?21EK>>Z0P&`LBxb)7dAG% zEj=*&r{%XlSvSiK=Tf<2I6~jsyrdH?oj`0dPB!s6w=B*^;%1HWN*HNSZlSXi6|Th5 zB@Ry9zklBbtKCC{BE;JoD3W;~c4#2Kea2GrEeo(&9gvw#h2)qqoEbZ0&c9e$({*1n z5Y>PrYto83otbd7$L(5d{M?tZg~Kk&Lc}!??k#?NWY4K{_Xkf&Bb}j5RQ6@ICc?9v z!^3D83TNanG$F$DsH&<)?!C%D)G;x#(8zt9rw5BqXC&$jK;01?z|zVp9YkMp9P5*$Ij#zv zr0Sp?$plN3d)EAsv`{bHs(5K}maN?R%vCT;55L1)#11&IPlRLlnri8y8Ab3p$o z<0$R6?QM_`$=qC3atB9~=1+(sL>4L^r?>~m&Edz(MI*%6XQu{|hSnN|IcJzZ|H4of zuuB2iM-9=va8Ml`zCXSZ>#@nBV=OY`)Z-Kq@}nU?OqSc_vkqF(yX86+tG|$6x|(0u z=kUdg7t_NEkRXC&m-lTWIbGSp)tYArQBC+BA{|&EF9-zex!%9ay!knwm#@LkpFdyS zRm-=ULeKzpLF1uI;bLWrv66b_qMgBfJu&@RaQdv^DV&O}dmE~tOMeIkh2H@iS>{+j zS+cv#UvOh@L$IjTVQ7m=AmTiE(k^^?RhiSMF{aW||GjVo!bsG|3QkeWLP88g0hetC zpF?;=LPm5F{CLg$xI!%fRZyY4r?NoNTE$EL$D~9uuBm^=Jc-MJpjb38@JE zqG`HYqhQI5$6AZFBF~QSJN!Zkr!)8X>`N;6>G*?q%9Hh17B2PRsg70KHUvkfnloCj z5`pD*GyrrVU?y?-LY|{7#+85*hiN{(^QjMJ}V^2*IX)yfJUgSLwWTO zbp?+rE1!X1A~WuSHzmybvA(%QN;9E_CD5o2PmT7KVWho{?3A2#`#@@-)E)E|NjpBT&cAobKJ{ z9u3Zg$WclIpYmkKIR3tHrlIvd0%bsxc}`j6)2BfI9|455_T&&zw=YYdDZ5p8%5;+B zcuReLWMrWxJV_Lg#OC$uUs?}*Y9X2gDAt|UVGx%C-reU7LVOFv+5`f>-VX>k2i3tG zw3bfaDKFRZ?oa6s|ToRb%eV`#E9kWn{92D@bynN5Qckc+1ZD3&F4~HA%r|l3^N2EMEB^zI& zC3GXQ#5(mOX%!;SR|(`XZM_KJ&Fu1nJ`L8NJXJgD9CJjef-ND}xU^oUjgU*I*ud~U z`U9^9hsowSMt(>Bi{1a4v-}c7QyV~8AOn-14$fs0 zFK-;ONv^~dzHc2U>XFo2`wMj9&0nqo*Z)M8I z*{IP8Pj;Bw&_hSLW#1e6yjr+ZG1)vJ98C)4D?2>==2E;{sMQz{olMK2X) zc6m9n^5!i(p#9son(>LoG$T{c*nxjv4Cgsl9xO`MrK2J&>B^M_Hhmv=oB35k8Mgt# zubB)6S@;2o>Ap-az$YM@SRAGm7bvQNO@A0<5+BMU$^!ShG8aNvu|aH%mae$vA*eRn z5Bh~qP%!1=l*sN~HIdL7OG-+PL6zbmJMr=P#Ry=Q5AOLqsvGN0dIc|{k^^)sLu-=b z70R#bR9?8z$;2%cKhjg*GumXqEG~ugiEx2F)-bysM7U~5XR)9tcIf1jBd(FqxdSk) z#jcez-G-iG`4f_aN~U>B_~hC}%v`D!T$1U|#iP+uM{NlII5RbNgEI(0->^Km@v~Je z@2(o2ZQBmPy%UbTCg0gHK{M+ZVWl~88H6>3Q@KQ$sn1s~RoEZOAZkwmL%Cum{1@t(^(y>>Rba@3ZlArM~B{M&6!)%md+CsX}Th z9u%K7s;#;pN<9>me|>|w{;l^$j#E*5e3KCI9%_~;PvaJ?aB+ESf6O55*97A) ze%*9{SNoxLyRSw!uweYygh}?b7`RPc*TrYN7=vu%luq9^Xp)?>)S8-ZLVkd_zVL zZoo~fw{>J>+~dUEf&=D$z3*CIeEarR%0eqZ_s#8=P%mm#>|~3Jbl2=B?V?1T>56Gx8d;)mqsI6v<2u!e#B);Crll2yZUyS z`PV51%TSKD_U7w48!hI_6SM_hDt=p7$jaXTLlY4T>R4RvRco-?42>k%h5Gk zulhF>xE8?SuE@@_A2Ninse-B)QZVv!Xb2$g1ml{WG9>jz3|BpMDi&ne?uo3SpFhE; zKTS;)N{1hR*D3q$d_$o*`|8|GKfOjcVP9yTUwpQPl0A7RNqs#Z48V#4~o{ENsF}m%nf5Y`ji;iusA0 zp+oZT{&ovqMAXvdW0!XAa3pUMZfbeaZ##v@S1FXIEfTFD|00vt;_^*`N`L%?Y29Z3 z&Mt-y`|Qhx;?#@HID51Mkj7nROWDwVPc|x%cS^9L8a9ae;eGP&o?nK09K7rFw<&R&O9Zt}T(%Wm$l49&#$=-ZJ;jc#nCGhU4K{%qyp zbCEtLv{zw0!;7P9HtFNF=4T!(qYAn4+wdzbP;&Lk@73ETI$d2~BbD>RGMQBu?_B?&s2gq18 zV1_6Hi;v%))SxF8KwDco6qQ)2nwq^M z$G&pG92!QxG4KmAxMh0}>D>r6Dkw1&7iBgU+oMJqFTpG}T)|4L&^13(e}866Aw^}Z z$H8mqqpblSS%ZzG=k4et4CdFM;e;-2Pq2mK^q8WOJk63sD$N#A4f7jDdB2WYLV2Th zUgo~?wJeyk3wgrzHIy_S?P-`J-q2!B=63*_PD#P`M3k>JdhJ{07S=l(9M`5vY(}`L zPoapOMG-bF%$@_w!l$tH^UFlmFBE1@?>1L?L7{ou_U)=W*QlziKde7=YugIleliuZ zC!Vt9cbKp~_*sq#n?Os&i-9b4CuY|27SW)QY27L`Aw;uc8he);O4~|iUDjLXrgLwow|EO%=Di_`!YbCp zrY_dUx;(FGU|gX~zV*TamcF4i>#EX9ve`FRviIL~yng-q5{9b)D?c5!mWMB%_YP-^ zh_yBED>r3_ujw0y0g>TPc@I*BfBol@{!LC6-k@L4O387FCJkclWT<>WecvP;tIQU$ zm|{4pckrnSmuF2qn;vm(dDW{R$ne4f#wCCQe;o(@Z!Q>@+Rn@t&K3IRD)zJG3ld|C@9KFK}7!ePk%-UN(A z1kOna-pef;mgIDoHt;qE{#_ZwExNqg!j_Yg)51Bw*bP_Q#i_q>USTeDumKez+la<~ zreC8DA`kFr>FXyh>GzVpwYS~Sly%iGXXdRPWd{HMV{732C!Uu!xUA5pMUj585G*>z z2uCY_LxcA{Pbg0^6ZvSVSi*BDQYc*vXz_fMO|)N6P8hy_^=kFobDv zKgOJBe%51VOA$5xCt2e1G>)7mI!b9TI&!wlVOa40R8VrtD|0+-QJL*j%HsuYeOO*8 zgf^xnLNu3xQ_zZ2P`HK7ZYN)*%QtZfNe$CDRc1SH4f-@|;DsfvF0&O$NqKbyA4w!` zc@;7t1V)P5qpQD=g^et?+!98+b>%8>Xe8|7*EwMqex-XKP<<#{OvqE@3P4t|N5iB} zL4v%o?T-ytgN;ONGjp!St?pCEm)&H^r3uG)Q=fPYvQ0(A@)ZLm>{C$?vDP-8Xr;T1 z?!to)gDyJ<@|I7abBw2bLTLrUYFa<+cXkU3K4lE*VGvcSCJ!U)`?9U-PrnOwI$ay z43*^ud=|kgG`Fok7?GQ+3Cge*X?5JpGzu++QTVGACZ)x($E*_RtS=bg4<9}_gt&qX z%N{J^NC%~SfS=>0sAXsfF}$B4u;IZQfPuzeMix+VtNd2yz_2;ULBB0H8QTt zH(c&7C<|f7?8n6al(}Ws6|?ILyG&mq%>$^iFuNMYkxZu{xWF3=R2XrhQ(|i>(!d*+ z;H++LB(_0dSFelZYg&#Iyf#~_x_>mg7b3yRl`Byo%_trk7#Is;_=dR-^cV+}m8ofK zCxT7tLTPs`%UxdguS{T5I5!o-) zgUo>WQnl*e?O^Zf2;mNf$1!h3+}c(%qk7g#YvCq3ahvWMMU;UsH?{L9ire+ar*bUm zU*A~^k2MMpzyvhdE0@;N`qus?uW<912Vkd6QCqAn@cI;qCS*ZY7|cTVdsJF_7^`rd zQ-F`}Ygx)yN;JsU{lvc1fB=Qhn*^B}{`?SXx6W8fB^&dyB5p@_~W z5^qE=j1J-ZdCsBqog978QcqBcbPg>Pgs%q&pQ~xxys^`sU=qCt9zpP!;f?*=zen(k zI3XP&S|AeDqzbU}L;(WnNTb+^E`Z`k@HHwB>o*b7M$G!VvTt!dw4j5B4&9kFz3^w5 zZ6+rlfheDSNC;s=o0&-C6bDGQUmy~?95~1JkPfKku zsfcy-xw7T-Ca_JigOoOUb@aZX>*Z8|OCG8`xon+4t(-#Dj%sKc1ZkK(vopv~g?9Vg z7tOYS+;;Sc0Du-qw(dwEK;2Oh`W1BCE`hESO!;qYMXUC}kS0zJX~rP}C!q^yCB$QQ z#rrE)>o_f+Y(RBnM7;$o0-(3Tat6v%q5KZE5PPtUMHB{IxJ$ld9XbtU8qVt<_SH{6 zi6fFX5H#9aGL&R*3VXNYL zEk9;i8Tqy-N3)TDm)62a5Y9rjGt%%sH<1gHh?i7#LE$hD`f=cjY1J=xZr>I*u6z_N zWv8qA7+fRhj_^r|DmeLdsQ}0_2KR3`2(ZS=a8n*2e4%Kx6 zhL!Kpjjrq5k0|O0Xtu*+$uo{dCN~gS3WX$8kY1-I&_6zr7u$-?p#_SRTcTDb0xf9g zQ2E&1l9TyRKqnD3k4X=g$*ukEh78=a-rE1zNLGyCtyRc21&K;57*#j*t)qiaL_|b> z+vF+CoaE~&D$A=oJy+Of(tGcxWe{{z_lCl6V0_h80PBEXVLSg5voHdj?dUaMM6Juv zEVuuw%r+4!Z1bh zfrV_8G|7`SJ6Dm-;sD;+4woj0Y@VV-!mGGygj z$(w;4$BYnm(rDn@dldOR&8*oYTM?1e3G)*+IIz|>wQ^5&$_FLBdBpaw7?epohx zp7bwQo*_9sLWRmbx*tpTs5jtTVJkd{@&4FN(gpt9fK~g~u$(06+Fpire`&t8F9vaQ z{og*PLpTC6*IhekhL7Ir(PYU^MGSN$mNK}(%t(JBMZXe&c|Ar4-7 z8Z%PcS7bs+ZbUj9K_BGIYVyop~3yPi;QJ-}(+H>2$|GetA&Ad0zE1$+mnJ6HH=PSBBSPLAk zrE>VOH+fxI=EglwWwK6`(?$n|LT1?o`;^l(&@M?wnaNUhIcRTTzb);p?!IB-&99nm=V9VmO7C4#*xKD1>VIg z*5fQ7@eo-eG)1;;qh+Whw$00PCFOPrd6k<0NlI7Xas!T?dn%>y;nyU0^Ikx0058Qt zM=TX@p`9kO>xe2!3TZ9o-^8e!YyXjX-!7Rrmyz=%wXqxr6AyJ+ah5V;=?mtC7h9Rr zbouT2dO8^c1cK)G@82I+RJ?Wj&K(F^Sp z5!NoJsZTc4ig|u{*Zst2JmII{J?8T=6^0iAm>b9A_DC)QB@Z-UZ5)g+{@ z1Cx*kbD^{WNT!gzQqstpMk6?{y+eqNm0g@ypPEdr>j}7RrSHUMzv+uh;CsYev8`DXq}8g=zfD z^kw0#i4Vo5>)mh{S6;Ma=a|#;fo->UDq!Mw!a=K~q%63(44Y4u)*oaK8sbR}y#os8aih72CFj@W^OD`aovr#Q z!P=E)$jO~IJgO=Km8_(qq^CZqp0pVQm6<|x))rW*^1(k?gVQpU^Q~1se9Totaq_@K zTBfxcQzw3q<|9g31W;fYi)xmGK6lrOhNFkUF?U0QJN62Z!4Z)m7f^X=!xyGtxA%9* ziODRv;sFLNypicNnk0@z$a@|;bt({bt;lWE+ogbgjw9nEm5%`S38&KehO;1#pG4ir zao|-z@F)vZaF7x>z40Yy#8X3^iEYBHHrBsXCn%WF?(^R;U1mS7oU0p_$v8u2AQh~E z;&$fgVLGV>x6t1n4%OcDwL2p_8jMKA+^JK1iYUDbBmGgNG-eV)Zo0#W38XKfhXQm= z>pMY`gT*ehZSbH850Eo9l+rx1A4ikdt7TQ{>guaTFQQ0^otA8(7fqpF(@H5lEDS|D zn-BXxLf=?7s%z^2g&%~5CZa&^kPmA7H;r`H9)e&(ns`YWnxW$c5ILjpR%G#xsJ7BH zKp>Uzxr_EGK_GGf<^XQT{Em*TRSuFZ(;szepJG1XL&~J?R{VeFonph9aT-Z=5GQK^ zX31R$+3gQcvyUxc(Rk|s!|CTjI^(I?X^~R?TY!SNw+{9P?jOfEZS{UOJuhFFZN*T^cEh~06Xrtd=)ee()Q}Xuk<{>f zQ$`GGE09My;%Zp|btq4Bcd37l+x!}`3oG|vTtV|6Z zRvzkqtVZxO7DE)eDNOhcw*DU>k^}+nE}gXg?NUX+ukjP^>(L6F+Q2!o0D8EOYVnq0-s6c?};FPoPSCQ^|xG}V+l7iGA zmm{}##?8k~;vZgMiRSe5uS0JHXT8iKaETEbDEC=)l&YZp=9yLJ5mG&OH>Guc6k9hOg^f#ZxY5RyakBFs$4R?MKM#vH_ zEEKJ9r71FWROJPa2YUh_jIJXf%&v&ds|ku+MJk8Ng2bPLU~aDWBa7y0 zxzy%)D*4Rbh`NccPyg;fMD=B1$t;ZbkYx#Q*0!Jg;2WqiTGx zjWiS)qhQtMQ^D`NTzE9qfKr19Nbz|OxsC55>v0au^5*}+Z}iyQMZJ#fp@-Y6&>dQn zq$7=hbQI+w=AL5(ZFj|oQBieG3cTuv$a=SiU&8mzrMbF%ZYS1vKF)t@Px4#pg*i6w zFzy~nZYuKUD>nJ*Y2hRbdNOXz3Rj(wGK{@FS2Kx%0?B;D;m>G#Kn8((L&_X9(Hy4s zKPTcpo-&U)w-Z?!aovs8dq{cpyvlwCDN6&Qw%&&I>-U0ALBYuqacvZzbq49}R{K{Z zMM&%WriXkJ0lCzJZ#TUWNHJZhmoqO|JC+)SGOL?SXY2htdb31_c{a(Ne3~ zZ$M;x!C~C!g%J4c-VjL%k;+Sue)<>5PF#f_VL28^sl-ZN;xbQJAik46p&@UiYiek*O9x)?QC>$;+ zEAy+n z7~po?f&lPtir(G{IXdg|hGo@{@2HU>*B>iM020Ipo^B~S=7hz5xdzO|YCM4Yb+)!l6^NG>o1aL(0m+iaG(B z@b@1>C|m@88Ge^+8A-2kTFhi2#UtyY^vLLlj4jD8m;rg3p3;;nAF9LrHgwW0e}x^m z$^A=qx43vKWroPRSm@~6!JSC4M>mps1_bA^+d)l$<{5%yU?A)mf;6q{1rMbu!zn#~-du(`(_TmXKV=J(d-RelSwC#0QW+ox z5!Nm_WdSt}!*OHyx96Q<6{3}oTqQG;#|-lR^*m1!VUd86eYxk4}z_5ew!>D$5emq@mX)4mtux*!4DGm%?QWIyEj z$Sw(FCc-*VPFZ0G$~y>6yO+2K@Iu2$C3C`E5uSihYB2uX5%f@W<64rZz{X!jj!|*&{BN4U2aQkz;LjIe zR-ai22DAHzj`07cye*lU2JS((4@<;KdYVyTCO9aALYiX>@x}PAG%0lD&P_ z+fU3-MWd=)_)NFFQf}@tnA%8l_N)vcyr?+35+=A%f125oB1VT_2u&MDZ9&98tcAP7Ez?$GvX)m?6(Q+ ztAD+P#J|AX?&64Qfck+rEfcI;&r0g{=;oh?>92>w3kN75vV3n5snc`A)KRHLC`MQm zB_j+s`gO4%8>y2cZxafot(RL{)rA|Z5V{XR_#xM~(K^oJbY@C=Hl4hobyUV68I#iU ziq}YMBPBkMx)A5xj7_1@yGyQ>F^ua5mjll-@g+!x_T3euukFakD*_ihW z4ud=ts1cf&ctVC5F*Jrb)>L{2qD zDRTnl-b6>c2?`h>Y93$5Qi+@*w%G_><)rf%4KO6#M;p-Y@1msXc%-jM1O1n@B4xBW z?>8PXCrsdx?L}vJZ6)Yr%HBGpzzB07lgnaz3$eX&a{oJ@`gqC!{k6!_)ug1RdUq)v zgYG$uYwTpv6HrHP`9h!l#?47(3+K!3@-Y8Lwg!0(kaf98#SGT(gr2+jh7EAhNE3Iv zxIiom+^Ks7wwt~f&}i!`N%a$9os(nKk;-bGAyaxG}dPj{JdVC0sP=!N9^8jM)CLkKpD z^YOme`1r#lN}=ubWRE`X_9BT#r2q8r^U{=%JWH8(#t)i=aC|C z9;GU+wGHwvmD%I?s)G*pTxm-Jc`mZ3!o#?$FXy~RjAi_0q+}?u*S{Jnfa?-*nH{5p z$D#kSdKrT^q+sC;{rpl>Ny!*ueavxQ(!gE9^c0tysW<+4J)0~QIYBP_>h3JVVeoHa z!h8U-!ukKZYu!IHvGg|tUOCcvdk^73vO>+z6r&36uHQ)kZA&i1Rk&SdK%dW>ARTY` zKX$b$I;R1bh{sn~j{@(eFf$SEIWGdOUbu!54o)~Jz-7q=T3;};MG|M)tsZcD11UM^ z?d`4XL%D(C2V5osQe}fD+b((BeNcsNL9~61{oYSN15Gy?hisXM7l7YE9C0gx z=g?xUJ%iNHwaqNyQ{NGAwhNrS`rw+&l>6dImA>-~BS`?sTo7WU6BncgU>v`;&8x z0y5~O0QjWyCmD(%W$Xq%eEz*u5KaHQuC<2sI~Sq>k!6>UY1;4FL8f;FK0oKV&k%SN zTH;MrVutuN>aFKf3XX=sKd4zf$8xL~PFox85exDDM|80E{dA-l5?fK^dxthDO(4V{ zYe-DoJ0HNxP!JHawF!a-H6Pt%=d%ftR}>GJ^U^BgMfPY=lqOCw)qVN*s8N<_j!7^&PEF&0UHpjb<=0l%@n)@f>-$%-_QQb~8R1^hk+zK{Y-I0Ox z?F6YvT0;v(fbN)O@}F!KlHVk9yy2=6!y)8eL*Qwng)ky#;;7Qh{XGJvAYcGc7OI%e zphA!cu!MnRG2MYnzV%3R*0FUg(e=(?YdP9$$Cv(!cQ4LK2#m?Y1^UPcD>+M4|*Jg^1PO*;GWRYEp4cp79aS07uyZiISpn zL6&f%^6EN&!SqkQVgX!$iLRkTT=84P{wv>pH&l(%gZcUwH~00OFDqbew{jOzH_=z+ z91rL1FxqGow^j#jcw)A_-(TJi-}tYx&ASs;yQ-^cZf@{q@M^7I^GppTXdVEd)H=}K zMa87qn$*uF;WiuNj7|dNUo92*PHrG5j=LkULYKA;GOxW+YGIfYL`rxGuK84XVJu~^ zt+qaYgB|2k;5$aQkgb=1|Ey zds0fG1Q>Tynv_g>3rW@CniVunOIIVy@CBeC7gIUAU{kpgO0`JJI=>T@D{v2)8v60I zahEZ&iXL1-RK2@iGXjm4Nq(!26Wz)Rg7PQ&O3)e4uej%U%}mx8s3T}2o;xJy6iD@2 zU6yg%7f*CfUPH$PGSiMd37OXDEhaba`a~|@C~u6GqRG+Bg1*5Ly*t6HMX`IU8_Sgt zw1ihdygL)=;dLIDniYAG`{A?&1oZx8H7jd7;g?R6M+3_KBl%SBJMjRxE5@jT^bs60 zG>k%b-O9;kG+VFYd&LujUN$0@>8DsDo85o{Ow<)oXL#p}BzY8z*0Aa4YRjwQj@4g% zEh>(*qB#;y8kuB#{&&2%Z=}f(BKpnl!1D^_rfYwO5C^yUC)a0-dBrd6G;VPqjg{nn z3y6lt!lazZwIPmq+n=u0@c>nGMALj3^$AT*OQ-%uMVlu{RB7iJ*NdX38j|B_*3E}2 z$&COwAEsyoJb3hIJt{*tDWc1Zv8n5sO^-UMrS*2+dl$t`t3)ff48%o{)_>J-CT(Ia zFL649kn|G!Y;ovG$o?LF$H1csJ*AJ)^F(gO2^6!5tv_VFgw};YmU`WugQLFN29IF}~mXzOVbb z&gD3d^Ei``zM4UvI&QG5n|oT9Yl%^Y5W#b1mn@}Ogo5F)VWPMlW(OFhywrW z-t#T{75nL@<@E~xkpBAKgmPIO5DjW;B{>Q7Ag@Omh=Wz~?q~$J+ z@693#pnM$$@TZmaEJ?cqx4J;j0`x*ItjpZkLJL zY=*JaT@t~=w5)?%{+(dQdqlyHE_dAyN;%OMNfa71Vy8rf`&5G9-p!)Qk*eAEku%zX z?{8GCh|uF>vl%3T;|jwK??dt>ClY(R9s(0Z(5I;WnANDxwMUGi5>D@+B1`N^d=>2? zriV|y)MX(u3}e@=%U(B^KQo>VjHyVEZiT#OPQXY zY=#3OuR#i5k;(3uU{zLx+aoHmNXr;zqkP%Yf^;(V#IlC=k&iWspR0YLKEGQLD(=+p zk$!(19$^9#Is`0u7Pc7sABXU&8}Ul>fk&{d$Up*apl$vZDTUn%Fv>eOM>WC7XdRHj zeRA-|k0!`ceH}>7_^Eaw@$~F2s*99C^HHX>08d_={zlekPkbVfdUgYJzMNvW+Ltt0 zz;liW;5vdh9^5ilZewPL%(I$=`YTPAXftMadp+uwqM9T;oR#%M4Dne}p7#z)Pn#4f zLGW14&r3_^Xf8$@?D0z=-RD>%jNYNFT$A9Vq^w`Vi>}Ut4{&d-=zlBBvobPrfOGS?cvnd+yZysBzEemg8b1{U*(sp@N`*J35+pBSr~0rvR3hF7eHzls zw;mqsZh*W?9tz#1l0p+9CgR4ech0{;mm9X{GzXZe<`A)%xWl-^1I z=_o0OQ5^s$(-HCx)*W@5A_90nz2s2NS03)wB0a!{TeHzo41i3)O6VZysUSU%5FGL$ zwT_5h7dj2fOVM>gp*o2wp{d0h?)o#H%qG~BCL=66;Ex}YCLfI|>AnmpAu?4sve0D% zFGzRlw%QS(KPNOjAE^$iY#eOnsdBLOc32Kl|0w9a(5MO^_;d~88=>2M9i+OSkrg3a zrSQlo5sGxNtec{Ww)B2&yP+Nhk|QORX^0|_EZT>7y8ya;J+gaUp?-;0USAFT^a zf%-t4W<>NZcSuZ8frj-3ZS9`r?7rGRfeXc zTK9Oc61X2B&@v@gFw-0%B@qSr!zNf)XjN^pvU&{55zZ%k1jMUH zFTx+3+0ily1u`&9f+lPy8m~%%DZ<_lkP-w6_?BWZNTbvjZnv1a;DzYtd~K})a4-Tp z6i#sn7lIeD46Oxh)gYo<@-`G8%-=m$7j_$n6mqPa1A+eX`%ypKcP4cgRbgU#xK731 zmjoLL|0>&YD&EH&b#wUF@J=NJp?N4uT;Ky{KjXfHy!9{?Tj-vF}V(z6@F(|`%@?ux@Q39 z2JI0Xow1DjZPS}mu7^WjuhgK^{S;`p}aEn>79Z6>^nhNo>htub@-6siY1bEu;41R6CLsWvwgJwC)3~ zJ$ofK_A4h!FUga%aR0aP)hadP$)&0z?BnRi*pyddWl>Ss+xGfp~9EsD29>D2K$}*fBIRD9jBZ}S6 zA4S0(y^{{)Lc_H0+yh$+tR7uRzp19D<3b?DJ%4#YeaoNAoR(wBj^iDcs%0N5qI*k@ zKoDXI^~vi5?4pb7grG7a+fIm1+CQ1!^F8o=CKrXs0AetJ-T*=_*-o6WM}k@xh*^W# z7x0V8KVeNPB&~!J2n3L*W6~nViTc>tCUO$A2tZteRMqZBlg3y$1^|xCbuYx# zGpCI2%$9GdgD7$l9Nay~aTsER0ZF-#oK{2tk2K^I6ff0IWGI~DG{ZKg2J+c`ScW6e zoyvujNmJ+Iis`T0p9tgOQ#h=IOn?p%4}pn%{v%KksP|&p#k#1aQo4pR65E^Grpp)jifi1nNr1zV2E zyltBqz{|eyN)B0$NEKS=yQkrPARJhpSDoqC30fA-H$qpNBO>Y!NFQ!2?<FcPX{ z=%euYDaf#|lN<-o6(+LiMZ@>W@{rx~A&D_kSzffwdGLlMl&Xk4_PR^W@8O5udBh&6 z;9@_>3P3RS$4#CK#>J`8!(#zXwZ}OR6p8dJ|~J#zW)F z8Z~?>>L3ayA6i_C1iT?Pt785qhxc^a295@uTFq9{R0ioq%O3e;pZHx07f3=BrwxPX z=}YH}7T7iv+Xl7DcE^d-j|n?<3?C*M2?d^A^nbB6qFj@3B&4@ZG$0@gEFP5@0EBe} zd7-j>hXxxo)Tjxtl)7yvt3%=V8fF_+)h?Jn-z0`FhDvYoMa_*1>_)luH)@6B7;{P5*hnDU`X#2re4SHq;5q;sLS=$NV$E+(Z2mR zD$5u~#QZ;tS{%K>iG^hB?3D|i!t}03$(>$NI6z5oQg57IlD$He6*`$~GE%mlrWcVp zp7sx1xa52(DLwR+EwgJbJ)r!xiIHRlG4E-q{g)jGRF40?@XhPjI;bMvcXkG9SyUPLiyc#*&kE z_)TA;G2&M5Ct7US;El@t0fnN*cfT#e>tV;pb$ zFxa(k|00OGV**4G-iLos&;!Wm-@hjH>Oi#u&^Oi^E)TOP9I0RT>jT)k2csvw3Sk6A zHHzD27=TD6gSWO!qAbdI(YDK%6w7lXvgT>xH+H7)g#K`5_RB4>h5rO^gOdM)>7IyX`%02Vu=1DBcICSHA_W9MeC znFISm9SuyTF#GO8)Jq&OnRWc_4^1}j5}l$+`ToikK3fH-Btv=9B9E^Mb^Wunu1i;m zjwnDqX)=YVY^&o$%PC}^P?9P#+oepqf@TU8uk zK-~0@vspDFb}R1%4EhyaxuYdar7W6i2b@a)78P^&^iM(whA~>ZdiBOVd-hxi+B_nU z2|9%Q`Su)6I0|>TVGl9#sgRE{L>yHx*j;X1(?hez457;}^l-{ka5MT*zgJ24ujP*% zVh#W#+Gsp-oKwb)z$rfT^nLW$H9e4hdjNZs;`+;`&EI&G_KDnLpg5zDqM|_KzgX3y z|CB}XZcViUWZc+&*!n9=Hg7hi$v$N70dIps19o`P9PV}-zC$W}Mp7IzcLa+u3_g1eJ$ul=^Z1eC64Fuy*y;#{I2+V_(bJHZN9Ppd z58qW4JU62bS`<(TFUmhT>iZ6nM@Jk(FA18HoseN`*>wnNrRn#7T{NtQ}2O!Ml#IHn}tE`r!eNRe`@E<87*b{~`qLM3sH<80oYOLz*6)mmhf zpzlkwA{!`@foXkkKRj*?OhLE3&6i0Ol%ZGVnj8h;v8bU%Qw%`x6PjZ#iVkA%jZT21 zVF!Y^eF(l-^V(Wp@ja1J!M&)5M**jpjs}zLLKp!O#A{oFDGCga{lo`B^L5l#K@Q$W z4+tL;arZtfK3mM=6s9}@(-V+FE~cb~3R0-p&!g6Q9i&O=_f;Q&?#H>LA!pMZ6lVi zd*8AzV^NmHxrS`BmC(o?!FMO8Q#Q>&E(Fj5DsQug&^G)RO`kD*$MNM<8mm}L&Y8-u ze=Q?Ecmcv4E$T)YE2B>KtILSX!>N7=wO14rVHsnOq9&#?fZ}1#6nb?k&f6elMT%-f zYgBOtu@bT$3}UnO;KH(%Mh`a>Q-!IIkSe(zbS7M>z9>6bAG_0Qt&8LG%2(3eEV*b3^CAhJYgB&{$olL{&Nahd`WefJ(U zP{S#(89)OXtI#0@AA#cUX!&!5-%~lwlzm`&G9;tLpe1mg0u%WVA(M2cr7C6ESD@R1 zK|}xoRt-udbk!dIsSq-;^o;z=Q&DRwg>rwrF?0c2u7RrGS8hI3G&&q*x0n?9T@_D4 z6e}nju?NgIVp0IGQ}LyZ5;_O+0-?yd9TTT4I1C0kV>wGU!j{5uMh099k8yMvTY1nk zzrGe`KH3@o!}g0`-fRN<0j**#Rs7{N3qOCnRIiVe--kO0vJIyR(XCrTZVxD(vXscLtzevv)5*G1xegNmlE9r2 z)kF(kM5iq5ov0>w_gjAE&4*OE1*G#r-}ej2S&KioyI_IWGZVIZ8JjX?vXxOI3tlF# zr)~!f@6o3&J{xQLyc8yoxD!o>g#CG*^_;+nk^>3D)JQ^806WmxbMdFd@%(UBo|TiC z3Ne&&!Kgk<-+bT&xH&q1aC0!NC=acN+goZ!8KlPwYbOz!%#=_$F$f>2SZ<4ck~Te{K=jle{G{YFz>S;HZY{mr2Zq!1)=vF`9VPNJbwH;8fkF%u6U#Uh|D2(L9OIh zU9c@WAz~M))_Gcrp*CreV_?zIxpR+0XBXFRkXWUesMb#CMI>!bJRWBK*a56DLvsr~ zJT&U>Vj|MrCr@i!`V# zf6-}L55*u_2?o?=)rDlcR8&E=S(rXAZNyCA6>z%2aLlZNk%=ss$QrMa)du0bbj+*K z_Y9i`c?9+gO#g1P_jBTIcv5+gN?9(eeeO!Dk)zM@SDZm_L7Os@f0kZ0Q$p9KaO1BQ z;R*oe9doGWQ9clApphiIW;5!pzB46lb%I4eYeM|p|7N%P<%d@(7| z9e#65<}Dg@r?YorB~kmFeJ`96c#O$ZHw8q_>E?>Dc?}r3wh5;Y>G2M zAe@L;lOfoIyU2z_@lv~H1C-~D(54h#7-1ZN+02fK3sWQrMA$I~N`(L-pL}r~!-&5) zs1B3V`Wfm_G)GDFGn7Y34nKXtN(E5;#^aGvAeM9xRL5jhgdwzC_Wv0`+^IB714$^| zLIz4mCuyHwwSB*z%lUi8;FmJC+(cQ|UnRYc@1(}i3eXeVrfoFZfy;RYAR8e* zucvlNor7JJXRvg%{k{D{2rxas?%sC>mXj zE>>!ZC53$cC?N!=E$FKsZBRx3atg7?@CIj>U2yKYHP&;6w3E`2I`^9qULjRbZXcC< z`scPbn*T9()ftktClrJL8bFS_j}?v8fq)hBWzB;l!QAg2d=+0poPyHmI2CBIK30eK zxK;wz;(9sbZ)S5jCHm+(DEsN*m=$Pnn7T`e@kscVP+_;L>5kCO_5X!7uCfpvH9N_# za|(`<*7txWg^V#@ka2BNm)6P z#6)CH){}^|DY>L5HPwzD^oy_Tz=iq2LHEdIiM0Q2rrj&^XwY9-{9Lizy*D-rc(qBF zj<~Ednmd3;z5=sm|C~cs3zUjwI}u!|Q#U@!l#rk!ldNI`1Gx#7l$GTPl_20~u`t3w zu*C5;n0?=oTnd3jUx*hz301{Wqs7KS`Dlpc+(}=F*ps>PD{>q5(@;}nl2kr^Pd_6c z)ehSS&7TP(9wRZ_*-;&!t5{zsPK8G|3`3G$Oz6 zfizS{gua*vmS4XZ!6Ex3$ut1-Cq$RDWT-2UG9Vg&@UZKlq5HSneS|99?6GjHJd;>^ z3<@QYQ0Ti!`-abx+!#~IkJ2Mu+5I8D<}CX)e_BXw+{G1lFyM*Sj>iU9oqg;;`UbS2 z+g|^IRYz0mZ#vTLAYOhfl2VZsK z#blh1Nw^F4#}GYLQN%B8;5Ndeg|XR!hv;8uj0f_oW)XWCw5DL?N13>O3|Oas$~j7J zwnJJ+lKln=S)Z@3stC_=;Q73?zuhzO9yg97yqWRPV&A_S@}p2b3K?wWMwU7D=xcaG z1E^KqMFXCpcmf{fCKb0o;XWjhoCLWe##Ljt#%Xe#?j#HcrL*kS_Au7^Ice`yG> zLqqtxXGiWAt;N@NqRCj5dSBdy5zk9c|KYnAhxkqJ3EW?A7_cNne547WGf6pt$~NwS z84ffR0EsXu_}To6zx*OaySH@YH9~kwBmWQX*G}Snv4U&LZh!Q74;kPlprx(qLd94p zmd@SH$wkO8$TTaXWh}}bARC@PZ=O1e?0QH7XiVgoapU)4d=lFHk0N|qwm~}m~Ih?23f3K*vmd^7I8H$-`n+(7liJ1Hgus2K< z&e0C;fmpnF1CrCBojeNxHr*E#1P>pMEL!^LiRNI z4J-?_U*qHWLwp&pd_+Qh_C-&H9C>_i`3j^a8#ibdFQ_CIPWQg;?an)eps zAJBRc!jK_s127|~D^q3NBj9iwh5wHt?)s>cC`Q(Sy-9NVB5haP?KQIdhu_B!i!W-B za~p{Gn9j^s9h;T)X5m}D-WgRoq33q}qN@4M$3|W-C2yPe+g9F&!=3iqUK!R@U)d(B zUwzSRZ};&+6G5vRVHwOv27!Ae$WLcHJZQ`?QHfD>)LOXpv8ag1mB2u)m_mrcrp^m6m?l$d zsR}Y?)$upuYEX*~y|Yyd*Wr!vbC^1HYHm&rC*u0~))KojMW%$>Hx9OY-@Pl4xA#pz zquV@@>#rgj%E0+(#c1}{m^TAazo z(5HDjD5@EEQ2q+o5H|6H82#np?d@$;FrHSa;?dIIf`c?>_T=cymRk6NSzUr8^9CN@ zFx(1UeZ7GD*W3r-*;fY!X>`_U)he`1$3{Ee;;+c&^7V^VVh0U7K)g z$~ieb#W9xGY3ijGcoEG*AktmGb!#4}a8gAF6Cl&EZk1rOdqGht9h5c`uzVx;9g>Ozm~BqP(3O0C6s^NDRA* zK^|QRspGT2y60dh`6qkS^h}TzwqlS-I`l**=`Q|Ww6=4REQfp9xpr}$8JfPLCnU%A ztsHqf3r`xhtLRLT3(Kk5b@2qR${W#sV^7uL)?Ry%9<&Ela+?K)fnpi^)9JgaxdV9cLF> z^zA=aD2*p$#xUo`;^%q>u!QHBh=@|a{#e35tHw=YUGt@u%Z z2b;qEpf6053;C&ZLU6bR6b|!%$*GLP831=&GbM0nt!)W!$Z31t)k=IyQ6@TmZs-^|Qx>9S=r;{1J0Vc5Bs$hM@= zWA*N=K$wm{5y?nS}`sj;1vA5#K-6`LmtP;yk_ecwHYVpT!3ve3i??2|-YdY<9RDM^` zx0jgu=hrdo(;uJm!>{@O@oTUC^wwro|M6>q__Z^C{2IFlLNjKew&6d1oLvUzWWekU z`-p2^K+)9{!r`$cAeL5MJ0&#VdaHWsBSA)7_i(w1T~nwpxVcW3#>^f$-He|YBH+ZOZbidiLG-x=U1DQJ+m5gsmyO8!Op z+pu5gg)Oe>0x0##d%u~P7vO_bu>RZ1v?U%P(dhg2K~Xoo)x2uOQcZP3L&N-n0>Q(C zS#trzS2w^kS1zu@;AN)X)4gAbky@URNKjK#J94C5I;8fL^1#m5SLJ0edCK{8_hU3;Zco+VX9yqzKxKw!_^&dHQsfwzhUz$bt~q4Dkt=gX@V7L2Rkl#P5b?wqmCxj~h9pkuC}4)JG@1!Z z2jN9E)KV~{u?mxoy)Z*>sS)PW(b83cg6{?4z%&$_1<;-(u9L~Aa2>F)@WD8=lsihD zVLdp9?{^PFr>W|SS-2;n<}`#J!ZdlAjt6WT(M7qqHfd{5$1Z7TD-IdzxI-s%u2MIO zy>t?D^YW&F^zN8|v6?=xl=kKQWdTOV=B+7wCH&Hs$vP3F5&JU^BwX@NQBA9SQxwDR z#h`bn@9yhwF?nnxCb)h#Udia)z!y< zIB?4pBX?!`dUzlzQ@U0wgs!3d!ooC=Iq`N-h{GM3%$b=Q*!dW4ITR|w{*x^vR6kwl zi{RsbI&NbShnG4#p^|Ni^$(l}!qN@`zUo{lP5i_O)jsHjMkiHb4o-rCwa z1#?U*%`Kd^N4!}JEk9V;HYI`XRV+5bK|~Kv1BS3fMggxWHLj=-je0A*8uyA#kE*Zf-t>_vhJ% zFzfWvGP5nBn$w_4;)!{M$I=bOI*tcTP`T14SF3(Aa5TJQ+!H9%WkX30zWn&q9S|S9 z)351k{mynNl6|?#B-6orOBm+rE!y3WlamEc`@+|80`3PP zl_{t>ATGWKCUmRsszSf^jA<<&H+)*Qbg7z+jSW_KW}Ls!Z$FH45C2=x2cq&G?z{6R zA--`312bcq-bhHY$=FyJPek@=WxzN_AQjMm73Sz>eJF>3BpoOe9BG3^+P7BfL!vGS zf_&1D^V7#X$b%(M7okN=C;6U)|K?W?Cz}}mC9*zN2pH7UR!(uZ>cTwj6krlZx_L0` zf{P0SSkJ)LOVKDi?0=q0^uc&TjYbltotHy-z;fNCpRa8M4wnPQOw9`{ga-_6O*8sW z&xmSzJHE#7^ci}FHoC&P-{F)o;&$|FPBE(I$pehU1kMy|-Rjx7jbQ`=St|)o(_Y`u zKt}4yl`E4Bv$$dromBLYW8~%^XD9yiHy@tma}+?6O4bwrTUl__+~-b!IKVKw;Oe>Q zUPdClnpc01^kgXvOT_7CHXfv)q_3}UpSk&2xGmOmo`%(8PM?4fj0~t=375rUIkp-QvwoTq%cKGrIzp^|0d}K75#qK9IW246}Mu z66;o(bUd14CR`={U^Pw|NyFE%@6>%d8-jk}qdN=|A7{7XmzgH?YsqG_VqQ-C`P=W6 z;bT?1zCBptZhA0(MOxE51aaxlN4|Z82Gxgi0GsMQBco4df z*7Tgk_~tKiqYvhZCn@^l!IE(I!#>}l!Hya9vDv@T9oMZL-^@AkDV3I4G1^`9LpF^G zjhKb>kGX7G47ST0-Wct|g(fc$*jD+8^6ixY_}k?r zmUkNU3AIHou%lu_W=wmwd=(7*S;P)8U>eTV^j#V79pirqV;a&il$;ldhO|RlwLN$Q z@=eC57NXKB+j=oNVICE<#_DdR0db+xaN?=%D|r~jR?x^~(RSWk3=NMd0xNz-@B9oO z#V-AIAxeokx5hB@b|t%yVM8}yKBh(ChSI3sUy`vf3UY4CJp85NxqgEE;Ri;Ea!<1NKRzLrP24Y zYTZ@2Wg;RQK*Z-&a<<3#b2m>9k91)-1+*QP@-Er44$;X{#M(Tt+VgirQS!?;uFbxo z50i5m?5z~ECJA7Iz4z(Ur|mJ3I!@p>>(6;BP;E5DJ(7P$5Y^P$t0mv`BnEXzGOOgL z?a_9^Pm;&ljfm*S_hxfPbi#6~X=rGWo`8r*uuIoFy8fYIOlrWG?T|s@0PUwZV|?>X zf*v4vJPjbKU37ndl(7)W5|@G%9*F_DmoW7lk#H*FBCB*juPNw%jxVKeB-aT6)WuH^ zeZYj8Mh{4Fro)Z)-9z-|Q!TG8&;`4jvOB)@fW^@ZuWI1JsJJ_o~g7 z=ENwaFGo320Eo|oDwJHMDREiYsM`%u@LUlQ*)Ip)@Q-s>kR9mW6ymy~`uSk)9bt6` zOE)#OCs9#0?-eiygF?<|j!e7T9zD;_SfW8MWvWamC;F>1%!RRHcNSa?#sqHrTKRH^ z{391g<>pkn!T?}q&^#wg6O;nOEy$+O-a=PLS1_0CS2reCoYdD{CWQ5q0afb1O2R3XP=I*>VjJsv$z4iJ-^# zw`{ou1UC6(ZbK8!sDCL-`hTkz-af7bcAarcq5y1b!|!qJ9M=);*IYHd)uA~_AY(0-o0_13DoF~VL_l4sxIE38mB<(w0+1RA^<6hagkzPK~uW# zs@s3T$I5fQ;$sx&JJ&2Q_Qc3u?0yZJbt`R>;xYYR6b+h)P7E?`f9&tsp~I)RdtU7f zQ!S(R>V%>-3mP&Vc6lC^clp#QmHZ)5T=@4z(WTR%B(c`VM>#LzXJnI&$A_l1Ac*o2 zvb$LoSK|7>T(LLq-o5(cs+z_f)=&CR)PLTWUKiFd_|o{<5U*lqLRqlDkp#ug>IRSL zE$qX|DR4IyMOY|p-iyO5ZU3c0$sydiVg2nG(D$$3xKZWNUyD_Ky;I6C(?PMsC_BPo zYnEEX@HQ>Qh-k6&3) z?Z88FAG^;kT8?Y3)VhU#=9nq&ei-6$u*?7C<_zwd+uTWFTl*d8nvU~lIL@ECwL!vc zP;J+5cb59EyzRa;=EYSVg|>{jl#@x8@JJf)LJq)KO>LoJ+|onwO;5i9k%v*?OM^^O zU(9AE^in2wYI^r~%<5z7enE~jig5vbC4b1QMjFcg7CG4sN&uzBft`pJfA6P+-i zfDN&vP18ty%M@Q3i5{nw0pDMqT{}a0?O5-d>ElKa2yK4(izrR1ivx zFQcn&e-L~hnX0>CVViZH{h|ljFk) zLiV#MKQr3mY~9;jORq5mv_^KSYq^ zAg8FF;jrJY-Q9Fe=<$)bWkX3>tGAsfilg;UnjTuXm{|>W7IoJJ5%g*W!IGNha@!K~ zOdP`+qoViPy>*`-^|w3&h9#!_u4J0eTBW|NXmVPNCalsy2)rzcZF*YbXlSNY)9z$l zj3)h|n_*#})z&H;!YBJ0BD7HD3PhehXO^^y+Gbtd3(lX{8n3xuZA#Axbj=qVsDl0V z`p-ZL*JI}VA!tKCVxq=XJgJ?1(|@Yc)DzEDx3Am#+?_yA5cR znVm2Zsh#1Ly>{Bx2yQ@~VzrqLz396A05s<^$Y^Y(@6W)ii%+)nq0$&YurAFm{X!1a z=LzX<+jPk1X71aaE}dp+8h)#k{|#cKl+|>8sUunzwHiyJr4Vf6%uwzwllXak7#3`Q z2PP}}76Zb8e&I3_o$YzOS84iiht{yakCl_?*%t0Ajb+|W-7|1$Cq`6Q#O<^*ks`Y zZAh|E+-O>PqYJ^XH$g2a(bbTv&dAf5W zjGqDD_n@8s{h)u}lcCZXeoGxmDS-w3L^VY;eS1o4m3T0xCVS*^I2B%)#hwmc?U5Gc z-VZIVGVoIVwz!wVkVN3xX_V^h1Hy^gdD`h23$6nMZnDx^t>q~2Z^FNo{*%>Jv*jO~ zWWorPo#)mD@D(RkTN8qW3TCFIvCE_p6zw6(DWRjLODx5-{}Ic(SC+|!U!$RrmtvxkY{w71=Tbui6)&88(CHuLD$=1d z|8eo#h6}1b$&n6gXRXQpKSTF?B-udg2gT1}mK1yc=}Mo&IN5lwLq{R&nnq~AG;wKo z+6}1Bn?o2P))WO{U(kLMZ-0e~!u6|3xKC z`U_j6q`$CVBQ6h8)L9tZef#%Ie68As=KT2rvushUsjI6Kx1RMqx(9{`899gH5I}nm zql#Fk3Om_N5uEg{jB~uOjI3XUZ}RZKr#v7GB}?o8@Fh+|G$2jOwau^8R2YVeP8Vfk zvF6xvn-G!Ht$274N(!GLlah5|!Hu{$If!a;lWvI#`ehG8MLU%;vz*XhSX5=GseEXW zU2tJxA&ZGX!Au(YAc3`*AKUNY;*1Zn5h3(jMMNqQ(-0OBGEgn%^L`law`!blj|%YV zREjhxWTQs!yTcwH^iZwA-3emd!!5ss3?8K5J$e}7s1M}~gzr-bLC%hgs}&6K^pf(S zE?xzDO9F`re7I3Kk+B3qhO}D*%h~rDWdWX$o)oc4#EaGk(Skw7x+gwtMD9_5x)V3KJE=YaM!P0!&d}V{1Ef=M+P|l8j%NgfJ$xD5)!o zE%u;K$b*6wy&~uYG+&alIY6bDR=PQfhnN7bVR^3Gy)fC8{$#NncJB zBk@Ky(Ba|p4(9pwm1PT14-|OTlPYyRHda_kcJKgXve%Ug%!;$F6M>U-WlwKo{9;|yl_h!mdePaqo*d7ARwQHVF@NV zH^Tvdezhpm;rZ#)Cs7e!=rGvEyP^Fq6Nzlz{_TkN$(7Fo6M{WmB8U~W4h#T%N5wJg~t>7H*CfGrdy*W`v-{(!q-tFH%h; zq5nfmb5{>mO&@_p5Vn47$#x_}9v-C;W9;^VW_B1lIBCkm?aJxO122_Rkk(oC1Gu!R zB~|MqHm`$Zm!Q|DxW+*7vm35K_2?C-@5wi{;M_tsr}inPIZ40*AL-^$Zibp@y$;F% z+t@w*Bmc&_u}qdaN~AX;Bc&;ZRK^~uYA_ylB>b%vf04r^04^>rloYQD(b{fDo!F}6 zM|q%+0kyLh?^=DQeafuG)pu=dP{kquk1Z$dMsbAsF0!rwXr7*utp<_0me{hN{t+h7r$HwDPIP5kZSQu45-~KO=9v<{uv=G8q3a;X9P;4Byop+U*LRYb=hJp}Np~fBwwd36| zt_uhYhFgyo1$icus+-kECkU;^JMlXu?79LwFcy%sAF{h@bS4|MAp)P%i%2q^-QQ5= zNXPNmg=Nfy)$~P&cU2}(TtCqKexmaj(A_1l{Gfh7EhNuh`C(w~JfI@0hY5MwOBN1WrnE`z?hul-vTS@EZCQ42bM>CZoh1N480k3|3ezlbX6)Bpc# d{#fDxx7jb8eu-b_6+|neslGuieC3W`{}<7YadrRz literal 46876 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 G^1lG5kc(yj diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb index a19593685..7da9577e8 100644 --- a/test/plot_normal_recurrence.ipynb +++ b/test/plot_normal_recurrence.ipynb @@ -68,47 +68,15 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "derivs_laplace = compute_derivatives(20)" + "l_max = 15\n", + "derivs_laplace = compute_derivatives(l_max)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [ - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[5], line 12\u001b[0m\n\u001b[1;32m 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [sp\u001b[38;5;241m.\u001b[39mdiff(g_x_y,\n\u001b[1;32m 9\u001b[0m var_t[\u001b[38;5;241m0\u001b[39m], i)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n\u001b[0;32m---> 12\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43mcompute_derivatives_h2d\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m8\u001b[39;49m\u001b[43m)\u001b[49m\n", - "Cell \u001b[0;32mIn[5], line 8\u001b[0m, in \u001b[0;36mcompute_derivatives_h2d\u001b[0;34m(p)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", - "Cell \u001b[0;32mIn[5], line 8\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 5\u001b[0m abs_dist \u001b[38;5;241m=\u001b[39m sp\u001b[38;5;241m.\u001b[39msqrt((var[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m+\u001b[39m\n\u001b[1;32m 6\u001b[0m (var[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m-\u001b[39mvar_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 7\u001b[0m g_x_y \u001b[38;5;241m=\u001b[39m (\u001b[38;5;241m1\u001b[39mj\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m4\u001b[39m) \u001b[38;5;241m*\u001b[39m hankel1(\u001b[38;5;241m0\u001b[39m, k \u001b[38;5;241m*\u001b[39m abs_dist)\n\u001b[0;32m----> 8\u001b[0m derivs_helmholtz \u001b[38;5;241m=\u001b[39m [\u001b[43msp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mvar_t\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m0\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var_t[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(p)]\n\u001b[1;32m 11\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m derivs_helmholtz\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:2481\u001b[0m, in \u001b[0;36mdiff\u001b[0;34m(f, *symbols, **kwargs)\u001b[0m\n\u001b[1;32m 2417\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2418\u001b[0m \u001b[38;5;124;03mDifferentiate f with respect to symbols.\u001b[39;00m\n\u001b[1;32m 2419\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2478\u001b[0m \n\u001b[1;32m 2479\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 2480\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(f, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdiff\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[0;32m-> 2481\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiff\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2482\u001b[0m kwargs\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 2483\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _derivative_dispatch(f, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:3575\u001b[0m, in \u001b[0;36mExpr.diff\u001b[0;34m(self, *symbols, **assumptions)\u001b[0m\n\u001b[1;32m 3573\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdiff\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39msymbols, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39massumptions):\n\u001b[1;32m 3574\u001b[0m assumptions\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mevaluate\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m-> 3575\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_derivative_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msymbols\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43massumptions\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1908\u001b[0m, in \u001b[0;36m_derivative_dispatch\u001b[0;34m(expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1906\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mtensor\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01marray_derivatives\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ArrayDerivative\n\u001b[1;32m 1907\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ArrayDerivative(expr, \u001b[38;5;241m*\u001b[39mvariables, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1908\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDerivative\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mvariables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/function.py:1474\u001b[0m, in \u001b[0;36mDerivative.__new__\u001b[0;34m(cls, expr, *variables, **kwargs)\u001b[0m\n\u001b[1;32m 1472\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexprtools\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m factor_terms\n\u001b[1;32m 1473\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msympy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msimplify\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m signsimp\n\u001b[0;32m-> 1474\u001b[0m expr \u001b[38;5;241m=\u001b[39m factor_terms(\u001b[43msignsimp\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 1475\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/simplify/simplify.py:405\u001b[0m, in \u001b[0;36msignsimp\u001b[0;34m(expr, evaluate)\u001b[0m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n\u001b[1;32m 404\u001b[0m \u001b[38;5;66;03m# get rid of an pre-existing unevaluation regarding sign\u001b[39;00m\n\u001b[0;32m--> 405\u001b[0m e \u001b[38;5;241m=\u001b[39m \u001b[43mexpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreplace\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mis_Mul\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mand\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 406\u001b[0m e \u001b[38;5;241m=\u001b[39m sub_post(sub_pre(e))\n\u001b[1;32m 407\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(e, (Expr, Relational)) \u001b[38;5;129;01mor\u001b[39;00m e\u001b[38;5;241m.\u001b[39mis_Atom:\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1749\u001b[0m, in \u001b[0;36mBasic.replace\u001b[0;34m(self, query, value, map, simultaneous, exact)\u001b[0m\n\u001b[1;32m 1746\u001b[0m expr \u001b[38;5;241m=\u001b[39m v\n\u001b[1;32m 1747\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n\u001b[0;32m-> 1749\u001b[0m rv \u001b[38;5;241m=\u001b[39m \u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrec_replace\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1750\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (rv, mapping) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mmap\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", - " \u001b[0;31m[... skipping similar frames: at line 1724 (15 times), Basic.replace..walk at line 1724 (15 times)]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(\u001b[43m[\u001b[49m\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1724\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1723\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args:\n\u001b[0;32m-> 1724\u001b[0m newargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m([\u001b[43mwalk\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mF\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args])\n\u001b[1;32m 1725\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m args \u001b[38;5;241m!=\u001b[39m newargs:\n\u001b[1;32m 1726\u001b[0m rv \u001b[38;5;241m=\u001b[39m rv\u001b[38;5;241m.\u001b[39mfunc(\u001b[38;5;241m*\u001b[39mnewargs)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1734\u001b[0m, in \u001b[0;36mBasic.replace..walk\u001b[0;34m(rv, F)\u001b[0m\n\u001b[1;32m 1732\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rv \u001b[38;5;241m==\u001b[39m e \u001b[38;5;129;01mand\u001b[39;00m e \u001b[38;5;241m!=\u001b[39m newargs[i]:\n\u001b[1;32m 1733\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n\u001b[0;32m-> 1734\u001b[0m rv \u001b[38;5;241m=\u001b[39m \u001b[43mF\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1735\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rv\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:1740\u001b[0m, in \u001b[0;36mBasic.replace..rec_replace\u001b[0;34m(expr)\u001b[0m\n\u001b[1;32m 1739\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrec_replace\u001b[39m(expr):\n\u001b[0;32m-> 1740\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43m_query\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexpr\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1741\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m result \u001b[38;5;129;01mor\u001b[39;00m result \u001b[38;5;241m==\u001b[39m {}:\n\u001b[1;32m 1742\u001b[0m v \u001b[38;5;241m=\u001b[39m _value(expr, result)\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/simplify/simplify.py:405\u001b[0m, in \u001b[0;36msignsimp..\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\n\u001b[1;32m 404\u001b[0m \u001b[38;5;66;03m# get rid of an pre-existing unevaluation regarding sign\u001b[39;00m\n\u001b[0;32m--> 405\u001b[0m e \u001b[38;5;241m=\u001b[39m expr\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;28;01mlambda\u001b[39;00m x: x\u001b[38;5;241m.\u001b[39mis_Mul \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;241;43m-\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m!=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m, \u001b[38;5;28;01mlambda\u001b[39;00m x: \u001b[38;5;241m-\u001b[39m(\u001b[38;5;241m-\u001b[39mx))\n\u001b[1;32m 406\u001b[0m e \u001b[38;5;241m=\u001b[39m sub_post(sub_pre(e))\n\u001b[1;32m 407\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(e, (Expr, Relational)) \u001b[38;5;129;01mor\u001b[39;00m e\u001b[38;5;241m.\u001b[39mis_Atom:\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:520\u001b[0m, in \u001b[0;36mBasic.__ne__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 511\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__ne__\u001b[39m(\u001b[38;5;28mself\u001b[39m, other):\n\u001b[1;32m 512\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"``a != b`` -> Compare two symbolic trees and see whether they are different\u001b[39;00m\n\u001b[1;32m 513\u001b[0m \n\u001b[1;32m 514\u001b[0m \u001b[38;5;124;03m this is the same as:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 518\u001b[0m \u001b[38;5;124;03m but faster\u001b[39;00m\n\u001b[1;32m 519\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 520\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mother\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/basic.py:500\u001b[0m, in \u001b[0;36mBasic.__eq__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m 497\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mis_Number \u001b[38;5;129;01mand\u001b[39;00m other\u001b[38;5;241m.\u001b[39mis_Number) \u001b[38;5;129;01mand\u001b[39;00m (\n\u001b[1;32m 498\u001b[0m \u001b[38;5;28mtype\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;28mtype\u001b[39m(other)):\n\u001b[1;32m 499\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m--> 500\u001b[0m a, b \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_hashable_content(), \u001b[43mother\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_hashable_content\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 501\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m a \u001b[38;5;241m!=\u001b[39m b:\n\u001b[1;32m 502\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m\n", - "File \u001b[0;32m~/miniforge3/envs/inteq/lib/python3.11/site-packages/sympy/core/expr.py:150\u001b[0m, in \u001b[0;36mExpr._hashable_content\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 146\u001b[0m exp \u001b[38;5;241m=\u001b[39m exp\u001b[38;5;241m.\u001b[39msort_key(order\u001b[38;5;241m=\u001b[39morder)\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m expr\u001b[38;5;241m.\u001b[39mclass_key(), args, exp, coeff\n\u001b[0;32m--> 150\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_hashable_content\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 151\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Return a tuple of information about self that can be used to\u001b[39;00m\n\u001b[1;32m 152\u001b[0m \u001b[38;5;124;03m compute the hash. If a class defines additional attributes,\u001b[39;00m\n\u001b[1;32m 153\u001b[0m \u001b[38;5;124;03m like ``name`` in Symbol, then this method should be updated\u001b[39;00m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;124;03m accordingly to return such relevant attributes.\u001b[39;00m\n\u001b[1;32m 155\u001b[0m \u001b[38;5;124;03m Defining more than _hashable_content is necessary if __eq__ has\u001b[39;00m\n\u001b[1;32m 156\u001b[0m \u001b[38;5;124;03m been defined by a class. See note about this in Basic.__eq__.\"\"\"\u001b[39;00m\n\u001b[1;32m 157\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_args\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "def compute_derivatives_h2d(p):\n", " k = 1\n", @@ -121,7 +89,8 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs_helmholtz\n", - "derivs_helmholtz = compute_derivatives_h2d(8)" + "h_max = 8\n", + "derivs_helmholtz = compute_derivatives_h2d(h_max)" ] }, { @@ -204,19 +173,18 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 22, "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'derivs_helmholtz' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[10], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m order_plot \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m\n\u001b[0;32m----> 2\u001b[0m x_grid, y_grid, plot_me_hem \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_helmholtz, derivs\u001b[38;5;241m=\u001b[39m\u001b[43mderivs_helmholtz\u001b[49m, n_initial\u001b[38;5;241m=\u001b[39mn_init_helm, n_order\u001b[38;5;241m=\u001b[39morder_helm)\n\u001b[1;32m 3\u001b[0m x_grid, y_grid, plot_me_lap \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_laplace, derivs\u001b[38;5;241m=\u001b[39mderivs_laplace, n_initial\u001b[38;5;241m=\u001b[39mn_init_lap, n_order\u001b[38;5;241m=\u001b[39morder_lap)\n\u001b[1;32m 5\u001b[0m fig, (ax1, ax2) \u001b[38;5;241m=\u001b[39m plt\u001b[38;5;241m.\u001b[39msubplots(\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m2\u001b[39m, figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m15\u001b[39m, \u001b[38;5;241m8\u001b[39m))\n", - "\u001b[0;31mNameError\u001b[0m: name 'derivs_helmholtz' is not defined" - ] + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABN4AAALACAYAAABM/b/3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACtNElEQVR4nOzde3hU5b3//c9wSMIpaESC4RBQPMUIaIgWECW6RYOim4qlBxEUamnij0JqrdYqSNW4tWXT1kCl7kqpbaVaxdaiEI9QkRrQtNXYFlo0IIfIQUMCgoT7+cMnI8NkkpnJmln3WvN+XVeuy1mZrLknQfLmu2bNChhjjAAAAAAAAAA4qoPbCwAAAAAAAAD8iMEbAAAAAAAAkAAM3gAAAAAAAIAEYPAGAAAAAAAAJACDNwAAAAAAACABGLwBAAAAAAAACcDgDQAAAAAAAEgABm8AAAAAAABAAjB4AwAAAAAAABKAwZtDlixZokAgoPXr17f4+SuvvFIDBw6Ma99Tp06N+2sjGTNmjPLz8x3dZyAQ0Ny5c4O3a2pqNHfuXL333nuOPg68a+DAgZo6dWpcX3vfffdp+fLlYdtfeeUVBQIBvfLKK+1aWyr56U9/qsGDBystLU2BQEAfffSR20uKy5gxYzRmzBi3lxGzuXPnKhAIhH1kZGS4vTQA7dRWDyYKvwuRSMc2frT279+vuXPntvjnsvn/Ff6dEL3vf//7GjBggDp16qTjjjvO7eXErT3/HnDT1KlTW+y3M844w+2lwQM6ub0A+FdNTY3uvvtujRkzxvHBIVLPfffdp4kTJ+q///u/Q7afe+65ev3115WXl+fOwjymurpaM2fO1PTp0zVlyhR16tRJPXr0cHtZKen5559Xz549g7c7dOBYGADAP/bv36+7775bksIOlF1xxRV6/fXXddJJJ7mwMu955plndO+99+qOO+5QcXGx0tPT3V5SSurSpYteeumlsG1AWxi8wfP279+vrl27ur2MoE8//VSBQECdOoX/72XbWtvLhueTmZmpL3zhC66uIVbGGH3yySct/qI+cOCAMjIyFAgE4t5/az+Xd955R5L09a9/Xeedd17cjxHt47WHE9+LaLX2M0mUgoIC9erVK2mPBwA2saEhjtba7xzb1tpeBw4ccH1YcOKJJ+rEE090dQ2xampq0uHDh1scejnxZ6S1n8vbb78tSZo5c6Z69+7drsdplqg/18n8/6W1n0kidOjQwXP/7oAdOLzuImOMFi5cqGHDhqlLly46/vjjNXHiRP3nP/9p82sDgYBuvvlmPfroozr99NPVpUsXDR8+XOvWrZMxRg8++KAGDRqk7t276+KLL9amTZta3E9VVZVGjx6trl276uSTT9b999+vI0eOhNyntrZW1113nXr37q309HSdeeaZ+tGPfhR2v6MtWbJE1157rSSpqKgo+FLcJUuWBE+HaOmjrVfGTZ06Vd27d9ff//53jR07Vj169NAll1wiSTp06JDuuecenXHGGUpPT9eJJ56oG264QR9++GHYfn7zm99oxIgR6t69u7p3765hw4bp//7v/4Kfj/QS6GNPbWt+Lr/61a/07W9/W3379lV6ero2bdrkyFoHDhyoK6+8Us8//7zOPfdcdenSRWeccYZ+8YtfhK3tgw8+0E033aT+/fsrLS1NOTk5mjhxonbu3Bm8T319vW655RYNGjRIaWlp6tu3r2bNmqXGxsZWv+/Nzz0/P1+rV6/WyJEj1bVrV914443t2u8nn3yib3/72xo2bJh69uyprKwsjRgxQs8880zI/QKBgBobG/XLX/4y+Gel+edw7Ok1CxYsUCAQaPHP/He/+12lpaVp165dwW0vvPCCLrnkEmVmZqpr164aNWqUXnzxxTa/H7E87+b/X3/2s5/pzDPPVHp6un75y18GT7NYtWqVbrzxRp144onq2rWrDh48qCNHjuiBBx4I/hnp3bu3rr/+em3dujXqn8uxxowZo+uuu06SdP755ysQCIT8Of/FL36hoUOHKiMjQ1lZWZowYYLefffdkH209uc6kj//+c+65JJL1KNHD3Xt2lUjR47Un/70p5D7tPa9MMbogQceUG5urjIyMnTuuefqueeeS8jPBAASLdrffdLnf1c9/PDDOu2005Senq68vDw9/vjjbT7O+vXr9eUvf1kDBw5Uly5dNHDgQH3lK1/R+++/H3ZfLzTEkSNH9NOf/jTYzccdd5y+8IUv6A9/+EPI96ulUyKP7brWfuc4sdbmn9uvfvUrnXnmmeratauGDh2qZ599Nmxt//jHP/SVr3xF2dnZSk9P14ABA3T99dfr4MGDwfvs2LFD3/jGN9SvXz+lpaVp0KBBuvvuu3X48OE2v/fNLfnUU0/pnHPOUUZGRvBVaPHu98MPP1RJSYny8vLUvXt39e7dWxdffLHWrFkTvM97770XHKzdfffdwX5r/jkce6rprFmz1K1bN9XX14c93qRJk5Sdna1PP/00uG3ZsmUaMWKEunXrpu7du+uyyy7TW2+91eb3I9rn/d577ykQCOiBBx7QPffco0GDBik9PV0vv/xy8C0j3nzzTU2cOFHHH3+8TjnlFEmf/f99++23h/wZKS0tDXtbj9Z+LscaOHCgvv/970uSsrOzQ/6cJ6IXm/3hD3/QiBEj1LVrV/Xo0UOXXnqpXn/99ZD7tPa9+PTTT3XrrbeqT58+6tq1qy644AK98cYbCfmZANYzcMSjjz5qJJl169aZTz/9NOxj3LhxJjc3N+Rrvv71r5vOnTubb3/72+b55583v/nNb8wZZ5xhsrOzzY4dO4L3mzJlStjXSjK5ublm5MiR5qmnnjJPP/20Oe2000xWVpaZPXu2ufrqq82zzz5rfv3rX5vs7GwzZMgQc+TIkeDXX3TRReaEE04wp556qvnZz35mKisrTUlJiZFkfvnLXwbvV1dXZ/r27WtOPPFE87Of/cw8//zz5uabbzaSzDe/+c2wNc2ZMyf4dffdd5+RZCoqKszrr79uXn/9dVNXV2c+/vjj4O3mj6VLl5rOnTubcePGtfp9njJliuncubMZOHCgKS8vNy+++KJZuXKlaWpqMpdffrnp1q2bufvuu01lZaV55JFHTN++fU1eXp7Zv39/cB933nmnkWS++MUvmieeeMKsWrXKzJ8/39x5553B++Tm5popU6aEPf5FF11kLrroouDtl19+2Ugyffv2NRMnTjR/+MMfzLPPPmt2797tyFpzc3NNv379TF5enlm6dKlZuXKlufbaa40k8+qrrwbvt3XrVnPSSSeZXr16mfnz55sXXnjBLFu2zNx4443m3XffNcYY09jYaIYNGxZynx//+MemZ8+e5uKLLw7589GSiy66yGRlZZn+/fubn/70p+bll182r776akz7Pfb7+tFHH5mpU6eaX/3qV+all14yzz//vLnllltMhw4dQv4cvv7666ZLly5m3LhxwT8z77zzTsjP4OWXXzbGGPPhhx+atLQ0c8cdd4Ss//DhwyYnJ8d88YtfDG771a9+ZQKBgPnv//5v89RTT5k//vGP5sorrzQdO3Y0L7zwQqvfj1ied/OfkSFDhpjf/OY35qWXXjJvv/128O+Nvn37mptuusk899xz5sknnzSHDx82N910k5Fkbr75ZvP888+bn/3sZ+bEE080/fv3Nx9++GGbP5eWvPPOO+b73/++kWQeffRR8/rrr5tNmzYZY0zw/9evfOUr5k9/+pNZunSpOfnkk03Pnj3Nv/71r+A+Iv25juSVV14xnTt3NgUFBWbZsmVm+fLlZuzYsSYQCJjHH388eL/Wvhdz5swxksy0adPMc889ZxYvXmz69u1r+vTpE/L/oxM/k0iamppa/Lv92I/Dhw9H3Eez5ufTp08f06FDB9O7d28zefJk8/7777f5tQDs1vx3WVVVVcT7RPu7z5jP/q7q37+/ycvLM7/97W/NH/7wB3P55ZcbSeaJJ54I3u/Y34XGGPPEE0+Yu+66yzz99NPm1VdfNY8//ri56KKLzIknnhjye8QrDTF58mQTCATM9OnTzTPPPGOee+45c++995of//jHId+v5hY92rH90drvHCfWKskMHDjQnHfeeeZ3v/udWbFihRkzZozp1KmT+fe//x28X3V1tenevbsZOHCg+dnPfmZefPFF89hjj5kvfelLpr6+3hhjzPbt203//v1Nbm6uefjhh80LL7xgfvCDH5j09HQzderUVr/vzc/9pJNOMieffLL5xS9+YV5++WXzxhtvxLTfY7+v//jHP8w3v/lN8/jjj5tXXnnFPPvss2batGmmQ4cOwT+Dn3zyiXn++eeDv7+b+625O5p/Bps3bzbGGPPXv/7VSDI///nPQx577969Jj093ZSVlQW33XvvvSYQCJgbb7zRPPvss+app54yI0aMMN26dQv2YSTRPu/NmzcH/4wUFRWZJ5980qxatcps3rw5+Hs8NzfXfPe73zWVlZVm+fLl5siRI+ayyy4znTp1MnfeeadZtWqV+eEPf2i6detmzjnnHPPJJ5+0+XNpyZtvvmmmTZtmJJnnn3/evP7662bLli3GGJOQXjTGmF//+tdGkhk7dqxZvny5WbZsmSkoKDBpaWlmzZo1wftF+l4Y81kzBgIB853vfCf4762+ffuazMzMkP8fnfiZRHL48OGo+q2pqSniPppNmTLFdOjQwWRnZ5sOHTqYvn37mtLSUrN79+42vxZg8OaQ5l8erX0cPTx7/fXXjSTzox/9KGQ/W7ZsMV26dDG33nprcFukwVufPn1MQ0NDcNvy5cuNJDNs2LCQX/4LFiwwkszf/va34LaLLrrISDJ/+ctfQvabl5dnLrvssuDt2267rcX7ffOb3zSBQMD885//DFnT0b+Un3jiibAIbMnOnTvNySefbM466yyzd+/eVu87ZcoUI8n84he/CNn+29/+1kgyv//970O2V1VVGUlm4cKFxhhj/vOf/5iOHTuar33ta60+TqyDtwsvvNDxtTavIyMjI+Qf5AcOHDBZWVnmG9/4RnDbjTfeaDp37mxqamoiPqfy8nLToUOHsH8MPPnkk0aSWbFiRcSvbX7uksyLL74Y934jfV+bNf9ynDZtmjnnnHNCPtetW7cWv7alf2x88YtfNP369Qv5JbpixQojyfzxj380xnz2j4isrCwzfvz4kP01NTWZoUOHmvPOOy/iOmN93pJMz549zZ49e0Lu2/z3xvXXXx+y/d133zWSTElJScj2v/zlL0aS+d73vhfcFunnEklL/yjcu3dvcLB5tNraWpOenm6++tWvBrdF+nMdyRe+8AXTu3dvs2/fvuC2w4cPm/z8fNOvX7/g31WRvhd79+41GRkZZsKECSHbX3vtNSMp5P9HJ34mkTQ/77Y+jl5PJEuXLjX33nuvWbFihXnppZfM/fffb7Kyskx2drbZunVrVOsBYKdoBm/Hau13nyTTpUuXkAOyhw8fNmeccYYZPHhwcFtLvwtbepyGhgbTrVu3kGGVFxpi9erVRlLYQbVjxTp4O/Z3jhNrbV5HdnZ2cHhmjDE7duwwHTp0MOXl5cFtF198sTnuuONMXV1dxOf0jW98w3Tv3j3s4MwPf/hDI6nNQVNubq7p2LFjSLPHut9I39dmzX+GL7nkkpDf1x9++GHErz128GaMMeeee64ZOXJkyP0WLlxoJJm///3vxpjP2qRTp07m//2//xdyv3379pk+ffqYL33pSxHXGcvzbh7ynHLKKebQoUMh920eNt11110h25sHjQ888EDI9mXLlhlJZvHixcFtkX4ukTQ/5tHDtET1YlNTk8nJyTFnn312SEvv27fP9O7dO+RnFOl70by22bNnh2xvHugd/f+jEz+TSJqfd1sfrf37pNn8+fPN/PnzzapVq8yqVavMHXfcYbp27WrOOOOMkM4FWsKppg5bunSpqqqqwj4uuOCCkPs9++yzCgQCuu6663T48OHgR58+fTR06NCorkpVVFSkbt26BW+feeaZkqTi4uKQ96do3n7sqQV9+vQJe4+nIUOGhNzvpZdeUl5eXtj9pk6dKmNM2JtLxqqxsVFXXHGFPvnkEz333HNRX6HnmmuuCbn97LPP6rjjjtP48eNDvp/Dhg1Tnz59gt/PyspKNTU1qbS0tF3rbms9Tqy12bBhwzRgwIDg7YyMDJ122mkhP6fnnntORUVFwZ91S5599lnl5+dr2LBhIY972WWXRX0ltOOPP14XX3yxo/t94oknNGrUKHXv3l2dOnVS586d9X//939hpzjG4oYbbtDWrVv1wgsvBLc9+uij6tOnj4qLiyVJa9eu1Z49ezRlypSQdR85ckSXX365qqqqWj19JtbnffHFF+v4449vcV/H/hlpfsn8sac7n3feeTrzzDPDToVt6ecSi9dff10HDhwIe7z+/fvr4osvbvHU29b+zDdrbGzUX/7yF02cOFHdu3cPbu/YsaMmT56srVu36p///Ger+3399df1ySef6Gtf+1rI9pEjRyo3Nzdkm5M/k2PNnTu3xb/bj/14+OGH29zX5MmT9b3vfU/FxcUqKirSd7/7XT333HP68MMP9cADD0S1HgDeFsvvvksuuUTZ2dnB2x07dtSkSZO0adOmsNPJjtbQ0KDvfve7Gjx4sDp16qROnTqpe/fuamxsDHkcLzRE89sLJKvfnOidoqKikIsXZWdnq3fv3sF+279/v1599VV96UtfavW9zp599lkVFRUpJycn5HGbe+bVV19t83kOGTJEp512mqP7/dnPfqZzzz1XGRkZwT/DL774Yrv7be3atSFt8Oijj6qwsFD5+fmSpJUrV+rw4cO6/vrrQ9adkZGhiy66qM0/i7E+76uuukqdO3ducV/H/vlp/nfRsT117bXXqlu3bmE91dLPJRaJ6sV//vOf2rZtmyZPnhxy4afu3bvrmmuu0bp167R///6Qr4nUssf225e+9KWw98F28mdyrIcffjiqfovmqr2zZ8/W7Nmzdemll+rSSy/VPffco6VLl+of//iHfv7zn0e1HqQuLq7gsDPPPFPDhw8P296zZ09t2bIleHvnzp0yxoSE1NFOPvnkNh8rKysr5HZaWlqr2z/55JOQ7SeccELYPtPT03XgwIHg7d27d7f4vms5OTnBz8fr8OHDmjhxov71r39p9erV6t+/f1Rf17VrV2VmZoZs27lzpz766KPgcz1W83t6Nb+HWr9+/eJed0siXZGpPWttFs3P6cMPP2zzOe3cuVObNm2K+Ivq2MdtSUvPsz37feqpp/SlL31J1157rb7zne+oT58+6tSpkxYtWtTi+9hFq7i4WCeddJIeffRRjR07Vnv37tUf/vAHfetb31LHjh2D65akiRMnRtzPnj17QobbR4v1ebd21a5jP9f8/1VLX5OTkxM2RG/vFcHaerzKysqQbS39uW7J3r17ZYyJuN+jH7tZpO9Fnz59wvZx7DYnfybHGjBgQFR/b8R7IYjzzjtPp512mtatWxfX1wPwjlh/97X299/u3bsj/t301a9+VS+++KLuvPNOFRYWKjMzU4FAQOPGjfNcQ3z44Yfq2LFji9+L9oj0e8CJ3mmr3/bu3aumpqaovvd//OMfE/K9j3e/8+fP17e//W3NmDFDP/jBD9SrVy917NhRd955Z7sGb1/72td0yy23aMmSJSovL1dNTY2qqqq0cOHCkHVLUmFhYYv7aOsK4bE+71j7rVOnTmGD1EAgoD59+rTZPLFKVC+2td8jR45o7969IRdQiLbfOnXqFPb/hpM/k2MNHjxYxpg27xfvleUnTJigbt260W9oE4M3l/Tq1UuBQEBr1qxp8Sostlwi+oQTTtD27dvDtm/btk2S2nVFvptuukkvvviiVqxYoaFDh0b9dS39w7ZXr1464YQT9Pzzz7f4Nc1HHJt/EW7durXVQV9GRkbIm9o227VrV4vPOdI/ttuz1liceOKJrR71bn7cLl26RBxoRfOzjPR84t3vY489pkGDBmnZsmUh+27pex+L5ldU/eQnP9FHH32k3/zmNzp48KBuuOGGsHX99Kc/jXh1okiD8eavj+V5tzaQOfZzzUGyffv2sCDftm1bTPuOxtGPd6z2PN7xxx+vDh06xPR3SKTvxY4dO8L2sWPHjpADA07+TI514403RnXxhWiOtkdijIk7/AB4R6y/+yL9/Se1PNyRpI8//ljPPvus5syZo9tuuy3kMfbs2RNyXy80xIknnqimpibt2LGj1X90p6ent/h9jHSgONZ+a+/34GhZWVnq2LFjVN/7IUOG6N57723x880HsloT6fnEu9/HHntMY8aM0aJFi0K279u3r821tOb444/X1VdfraVLl+qee+7Ro48+qoyMDH3lK18JWbckPfnkk2GvfI9GrM871n47fPiwPvzww5DhmzFGO3bsCBsWOtlvTvZiW13YoUOHsDMGWuu3vn37BrcfPnw47P9HJ38mx7rkkkuielXolClTtGTJkqj3ezT6DdFg8OaSK6+8Uvfff78++OADfelLX3J7ORFdcsklKi8v15tvvqlzzz03uH3p0qUKBAIqKiqK+LXNw8Ojj6o2+/73v69HH31Uv/zlL/Vf//Vf7V7nlVdeqccff1xNTU06//zzI95v7Nix6tixoxYtWqQRI0ZEvN/AgQP1t7/9LWTbv/71L/3zn/9s17AxlrXGori4WL/61a/0z3/+U6effnrEx73vvvt0wgknaNCgQY48bnv3GwgElJaWFvILdMeOHS1e2e3YV/m15YYbbtADDzyg3/72t1qyZIlGjBihM844I/j5UaNG6bjjjlNNTY1uvvnmmNYtJe77KSl4GsBjjz0WEmlVVVV69913dccddzj6eCNGjFCXLl302GOPBa9GLH02oH7ppZdafVVga7p166bzzz9fTz31lH74wx+qS5cukj67Atdjjz2mfv36tXmKxRe+8AVlZGTo17/+dchpDGvXrtX7778fMnhL5M9k7ty5Uf05iWdwLknr1q3Txo0bNXPmzLi+HoB3xPK7T5JefPFF7dy5M3gwqKmpScuWLdMpp5wS8dVSgUBAxpiwA7mPPPKImpqaQrZ5oSGKi4tVXl6uRYsWad68eRHv11K/vfTSS2poaEjaWqPVpUsXXXTRRXriiSd07733RuzLK6+8UitWrNApp5wS9dsjRKM9+w0EAmF/tv72t7/p9ddfDzmw3dq/BSK54YYb9Lvf/U4rVqzQY489pgkTJoS8Fc1ll12mTp066d///ndUb3txrER9P6XP/t30wAMP6LHHHtPs2bOD23//+9+rsbGxzavAxypRvXj66aerb9+++s1vfqNbbrkl+HdVY2Ojfv/73wevdNqaMWPGSJJ+/etfq6CgILj9d7/7XdhVcxP5M3n44YejGgjH+++7J598Uvv37494EB9oxuDNJaNGjdJNN92kG264QevXr9eFF16obt26afv27frzn/+ss88+W9/85jfdXqZmz56tpUuX6oorrtC8efOUm5urP/3pT1q4cKG++c1vtvqP5ub3Yli8eLF69OihjIwMDRo0SC+99JLuvfdeTZw4MezUqvT0dJ1zzjkxr/PLX/6yfv3rX2vcuHH61re+pfPOO0+dO3fW1q1b9fLLL+vqq6/WhAkTNHDgQH3ve9/TD37wAx04cEBf+cpX1LNnT9XU1GjXrl3By3hPnjxZ1113nUpKSnTNNdfo/fff1wMPPNDqe3A4vdZYzJs3T88995wuvPBCfe9739PZZ5+tjz76SM8//7zKysp0xhlnaNasWfr973+vCy+8ULNnz9aQIUN05MgR1dbWatWqVfr2t78d1yCwPfttvox6SUmJJk6cqC1btugHP/iBTjrpJG3cuDHkvmeffbZeeeUV/fGPf9RJJ52kHj16RPwHgiSdccYZGjFihMrLy7VlyxYtXrw45PPdu3fXT3/6U02ZMkV79uzRxIkT1bt3b3344Yf661//qg8//DDsSK5Tz7stp59+um666Sb99Kc/VYcOHVRcXKz33ntPd955p/r37x8Sc0447rjjdOedd+p73/uerr/+en3lK1/R7t27dffddysjI0Nz5syJe9/l5eW69NJLVVRUpFtuuUVpaWlauHCh3n77bf32t79t86jl8ccfr1tuuUX33HOPpk+frmuvvVZbtmzR3Llzw05fSOTPZODAgS2edh+PoUOH6rrrrtOZZ56pjIwMvfHGG3rwwQfVp08f3XrrrY48BgB3vfTSS3rvvffCto8bNy6m333SZ/8gvPjii3XnnXeqW7duWrhwof7xj3/o8ccfj/j4mZmZuvDCC/Xggw+qV69eGjhwoF599VX93//9X9j76XqhIUaPHq3Jkyfrnnvu0c6dO3XllVcqPT1db731lrp27ar/9//+n6TP+u3OO+/UXXfdpYsuukg1NTV66KGH1LNnz5jXFu9aYzF//nxdcMEFOv/883Xbbbdp8ODB2rlzp/7whz/o4YcfVo8ePTRv3jxVVlZq5MiRmjlzpk4//XR98skneu+997RixQr97Gc/i+stVNqz3yuvvFI/+MEPNGfOHF100UX65z//qXnz5mnQoEEhQ5UePXooNzdXzzzzjC655BJlZWUF/zxGMnbsWPXr108lJSXasWNHyNkK0me/j+fNm6c77rhD//nPf3T55Zfr+OOP186dO/XGG2+oW7duwZ53+nm35dJLL9Vll12m7373u6qvr9eoUaP0t7/9TXPmzNE555yjyZMnx7XfSBLVix06dNADDzygr33ta7ryyiv1jW98QwcPHtSDDz6ojz76SPfff3+b+zjzzDN13XXXacGCBercubP+67/+S2+//bZ++MMfhr1dSSJ/Jq39WyEW77//vr761a/qy1/+sgYPHqxAIKBXX31VCxYs0FlnnaXp06c78jjwMfeu6+AvbV3F6oorrgi7MqkxxvziF78w559/vunWrZvp0qWLOeWUU8z1119v1q9fH7xPpKualpaWhmxrvtLLgw8+GLK9+UpXR192/qKLLjJnnXVW2Hpaeqz333/ffPWrXzUnnHCC6dy5szn99NPNgw8+GHbZZbVw1aIFCxaYQYMGmY4dOxpJ5tFHHw1e/aalj5a+R8eur1u3bi1+7tNPPzU//OEPzdChQ01GRobp3r27OeOMM8w3vvENs3HjxpD7Ll261BQWFgbvd84555hHH300+PkjR46YBx54wJx88skmIyPDDB8+3Lz00ksRr2p69PfWybXm5uaaK664Iuzrj12HMZ9dEffGG280ffr0MZ07dzY5OTnmS1/6ktm5c2fwPg0NDeb73/++Of30001aWprp2bOnOfvss83s2bNDrpjWkkh/ZmLZb0tXNb3//vvNwIEDTXp6ujnzzDPNz3/+8+CfkaNVV1ebUaNGma5du4ZcPbK1K7ktXrw4eEW4jz/+uMW1v/rqq+aKK64wWVlZpnPnzqZv377miiuuaPFnGu/zbun/V2Na/3ujqanJ/M///I857bTTTOfOnU2vXr3MddddF7x8fLPWfi4tae0xH3nkETNkyJDgc7n66qvDrpbW2p/rSNasWWMuvvji4N9zX/jCF4JXl41mXUeOHDHl5eWmf//+Ji0tzQwZMsT88Y9/bPH/g/b+TJLhy1/+shk8eLDp1q2b6dy5s8nNzTUzZsww27Ztc2U9AJzT1lXum6/gGO3vvua/qxYuXGhOOeUU07lzZ3PGGWeYX//61yH3a+l34datW80111xjjj/+eNOjRw9z+eWXm7fffrvF38VeaIimpibzv//7vyY/Pz94vxEjRoT8Pjl48KC59dZbTf/+/U2XLl3MRRddZKqrqyNe1bSl3zlOrDXS75iWvvc1NTXm2muvNSeccIJJS0szAwYMMFOnTjWffPJJ8D4ffvihmTlzphk0aJDp3LmzycrKMgUFBeaOO+4wDQ0NLa716MdsqSVj2e+xjX/w4EFzyy23mL59+5qMjAxz7rnnmuXLl7f474gXXnjBnHPOOSY9PT3k6pEtXdW02fe+9z0jyfTv3z/s3xvNli9fboqKikxmZqZJT083ubm5ZuLEieaFF15o9fsR7fOO9O8qY1q+wmizAwcOmO9+97smNzfXdO7c2Zx00knmm9/8ptm7d2/I/Vr7ubQk0mMmqheN+ex7fP7555uMjAzTrVs3c8kll5jXXnstqnUZ89mfk29/+9umd+/eJiMjw3zhC18wr7/+eov/H7T3Z5Joe/bsMRMmTDADBw40Xbp0MWlpaebUU081t956q/noo4+Svh54T8CYKN5tEAAAAEBSBQIBlZaW6qGHHnJ7KQAAIE68CyAAAAAAAACQACkxeHv22Wd1+umn69RTT9Ujjzzi9nIAAICF6AVv4ucGAACi4VYz+P5U08OHDysvL08vv/yyMjMzde655+ovf/mLsrKy3F4aAACwBL3gTfzcAABANNxsBt+/4u2NN97QWWedpb59+6pHjx4aN26cVq5c6fayAACARegFb+LnBgAAouFmM1g/eFu9erXGjx+vnJwcBQIBLV++POw+Cxcu1KBBg5SRkaGCggKtWbMm+Llt27apb9++wdv9+vXTBx98kIylAwCAJKEXvImfGwAAiIaXm8H6wVtjY6OGDh0a8WpOy5Yt06xZs3THHXforbfe0ujRo1VcXKza2lpJUktn0gYCgYSuGQAAJBe94E383AAAQDS83AydkvIo7VBcXKzi4uKIn58/f76mTZum6dOnS5IWLFiglStXatGiRSovL1ffvn1Dpphbt27V+eefH3F/Bw8e1MGDB4O3jxw5oj179uiEE04g5AAAVjDGaN++fcrJyVGHDok9hvbJJ5/o0KFDCX2MSIwxYb9709PTlZ6eHnbfZPcCnEHnAQAQis4L7zzJ461nPESSefrpp4O3Dx48aDp27GieeuqpkPvNnDnTXHjhhcYYYz799FMzePBgs3XrVlNfX28GDx5sdu3aFfEx5syZYyTxwQcffPDBh/UfW7ZsScjv22YHDhwwfbL7uPb8unfvHrZtzpw5ba5bSnwvwHnJ+LnReXzwwQcffHjlg86LTPJW61n/irfW7Nq1S01NTcrOzg7Znp2drR07dkiSOnXqpB/96EcqKirSkSNHdOutt+qEE06IuM/bb79dZWVlwdsff/yxBgwYoE3vbFKPHj0S80QQt90fH5AkfbB7v8srQVv+/dEnqtnb6PYy0IaqDxtUs22f28tAKxo+/EDm0090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v/764Larr75aZ511lubOnUuQxYChGwAArduyZYsyMzODtyMdBW3Nrl271NTUpOzs7JDt2dnZ2rFjR1T7+MIXvqBx48bpnHPOUYcOHXTJJZfoqquuinkttqPznEPn2Y+hGwC4y4nOk+xvvZgHb9u3b9fIkSPDto8cOVLbt293ZFGALQgyAHBXZmZmSJC1RyAQejTXGBO2rTX33nuv7r33XkfWYis6zxkM3exH4wGA+5zsPMne1ov54gqDBw/W7373u7Dty5Yt06mnnurIolIBQWY/ggwA/KFXr17q2LFj2BHPurq6sCOjqY7OAwAAXmN768X8ire7775bkyZN0urVqzVq1CgFAgH9+c9/1osvvthiqCEcQzekooa6rW4vAUCKSktLU0FBgSorKzVhwoTg9srKSl199dUursw+dF770Xn24+AqAPiL7a0X8+Dtmmuu0V/+8hf97//+r5YvXy5jjPLy8vTGG2/onHPOScQagaQjyADAWxoaGrRp06bg7c2bN6u6ulpZWVkaMGCAysrKNHnyZA0fPlwjRozQ4sWLVVtbqxkzZri4avvQee3D0M1+NB4AeJOXWy/mwZskFRQU6LHHHnN6LSmBIEsMJy8zT5ABgPesX79eRUVFwdtlZWWSpClTpmjJkiWaNGmSdu/erXnz5mn79u3Kz8/XihUrlJub69aSrUXnAQAA23i59eIavDU1NWn58uV69913FQgElJeXp6uuukodO3Z0en2+wtANAIDEGDNmjIwxrd6npKREJSUlSVqRd9F58aHz7MfBVQDwLi+3XsyDt02bNumKK67Q1q1bdfrpp8sYo3/961/q37+//vSnP+mUU05JxDqBpCDIAACpjM6LD0M3+9F4AAC3xHxV05kzZ+rkk0/Wli1b9Oabb+qtt95SbW2tBg0apJkzZyZijb5AkNmPIAMApDo6L3Y0HgAAaE3Mr3h79dVXtW7dOmVlZQW3nXDCCbr//vs1atQoRxfnFwSZ/Ri6AQBA58Gf6DwAgJtifsVbenq69u0LfyP7hoYGpaWlObIoG1RUVCgvL0+FhYXt2g9DNwAA4BV0XmzoPPsxdAMAuC3mwduVV16pm266SX/5y19kjJExRuvWrdOMGTN01VVXJWKNrigtLVVNTY2qqqrcXgoSjCADAOAzdF70GLrZj8YDANgg5sHbT37yE51yyikaMWKEMjIy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i85DLGg8b6AFAcBdMQ/eFixYkIBlwK84CuouQgsAEAs6D9GKduhG57mLFgQA98U8eJsyZUoi1gEfYujmLkILABArOg/RYOjmDbQgANgh5vd4q62tbfUDkDj1wE0NdVsJLQBIgAkTJuj444/XxIkTwz737LPP6vTTT9epp56qRx55xIXVOYPOQ1toPG+gBQEgdolqvZhf8TZw4EAFAoGIn29qaop1l/AZjoK6h8gCgMSZOXOmbrzxRv3yl78M2X748GGVlZXp5ZdfVmZmps4991x98YtfVFZWlksrjR+dh9bEMnSj89xDDwJAfBLVejEP3t56662Q259++qneeustzZ8/X/fee2+su4OPEGPuIrIAILGKior0yiuvhG1/4403dNZZZ6lv376SpHHjxmnlypX6yle+kuQVth+dh0joPG+gBwEgfolqvZhPNR06dGjIx/Dhw/X1r39dP/zhD/WTn/wk1t1Zq6KiQnl5eSosLHR7KZ7AaQfu4dRSAJBWr16t8ePHKycnR4FAQMuXLw+7z8KFCzVo0CBlZGSooKBAa9asceSxt23bFgwxSerXr58++OADR/adbHQeWkLneQM9CMDPvNx6MQ/eIjnttNNUVVXl1O5cV1paqpqaGl89p0SJNcY4CuocAgsAPtPY2KihQ4fqoYceavHzy5Yt06xZs3THHXforbfe0ujRo1VcXBzyvmUFBQXKz88P+9i2bVurj22MCdvW2umaXkTnpaZ1dfvoPA/gICyAVODl1ov5VNP6+tBfpsYYbd++XXPnztWpp54a6+7gccSYewgsAKng2O5IT09Xenp62P2Ki4tVXFwccT/z58/XtGnTNH36dEnSggULtHLlSi1atEjl5eWSpA0bNsS1xr59+4Yc9dy6davOP//8uPblNjoPzeJ5lRudl3z0IAAvi7bzJG+3XsyDt+OOOy5ssmeMUf/+/fX444/Hujt4GKcduIPAApBsVR82qFOX8CN9iXT4QKMkqX///iHb58yZo7lz58a0r0OHDmnDhg267bbbQraPHTtWa9eubdc6Jem8887T22+/rQ8++ECZmZlasWKF7rrrrnbv1w10HiQazytoQgBO8HrnSfa3XsyDt5dffjnkdocOHXTiiSdq8ODB6tQp5t3BozgK6g4CC0Cq2bJlizIzM4O3Ix0Fbc2uXbvU1NSk7OzskO3Z2dnasWNH1Pu57LLL9Oabb6qxsVH9+vXT008/rcLCQnXq1Ek/+tGPVFRUpCNHjujWW2/VCSecEPM6bUDnId6hG52XXDQhAD9wovMk+1sv5oK66KKLYv0S+AxDN3cQWABSUWZmZkiQtUdLr+SK5f05Vq5cGfFzV111la666qq412YLOi+1MXTzBpoQgF842XmSva0X16HLf//731qwYIHeffddBQIBnXnmmfrWt76lU045Ja5FwDsYuiUfcQUA7dOrVy917Ngx7IhnXV1d2JFR0HmpitNLvYEuBIBwtrdezFc1XblypfLy8vTGG29oyJAhys/P11/+8hedddZZqqysTMQaYQmCLPmIKwBov7S0NBUUFIR1SmVlpUaOHOnSquxE56Wm9jQeB1iThy4EgJbZ3noxv+Lttttu0+zZs3X//feHbf/ud7+rSy+91LHFwR6cepB8xBUARK+hoUGbNm0K3t68ebOqq6uVlZWlAQMGqKysTJMnT9bw4cM1YsQILV68WLW1tZoxY4aLq7YPnZd6GLp5A10IINV5ufViHry9++67+t3vfhe2/cYbb9SCBQucWJMVKioqVFFRoaamJreX4jqGbslFWAFA7NavX6+ioqLg7bKyMknSlClTtGTJEk2aNEm7d+/WvHnztH37duXn52vFihXKzc11a8lWovNSC0M3b6ANAcDbrRfz4O3EE09UdXW1Tj311JDt1dXV6t27t2MLc1tpaalKS0tVX1+vnj17ur0c13B6aXIRVgAQnzFjxsgY0+p9SkpKVFJSkqQVeROdlzpoPG+gDQHgM15uvZgHb1//+td100036T//+Y9GjhypQCCgP//5z/qf//kfffvb307EGuESjoImF2EFAHAbnZca2jt0o/OSgzYEAH+IefB25513qkePHvrRj36k22+/XZKUk5OjuXPnaubMmY4vEO5g6JY8RBUAwBZ0nv8xdPMG+hAA/CPmwVsgENDs2bM1e/Zs7dv32S/uHj16OL4wuIdTD5KHqAIA2ITO8zcazxvoQwDwlw6xfsGBAwe0f/9+SZ+F2J49e7RgwQKtWrXK8cUh+TgKmjxEFQDANnSefzkxdKPzEo8+BAD/iXnwdvXVV2vp0qWSpI8++kjnnXeefvSjH+nqq6/WokWLHF8gkoehW3I01G0lqgAAVqLz/ImhmzfQhwDgTzEP3t58802NHj1akvTkk0+q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5EgdPnzY788POTk5qqys1F//+le9/fbb3i6nxa5duya73a6cnByFh4dr5MiR2rt3ryIiIrxdGuDX6PP8B32ef6DP8230eb6JPs9/8RdvHnTt2jVdvXpVtbW1qq2tVZ8+fbxdkse89957mjhxot+fbK83zMnJyZKkiIgIv2/GAtHRo0d16NAhTZ482duleERwcLA6d+4sSbp69arq6ur8/i8l+vXrp4SEBElSnz59FBERoe+++867RXnAhAkT1LVrV2+X0Wr79u3TsGHD1L9/f3Xt2lWTJ0/W9u3bvV0WEBDo83wffZ5/oM/zffR5vok+z3+1m8Fbbm6upkyZosjISNlstib/lH7Dhg0aOHCgwsLClJiYqF27drl8/N69e2vp0qWKiYlRZGSkJk2apNtvv92DCRqzOtMPbd26VT/96U/drPjmrM509OhRdenSRVOnTtXIkSP1/PPPe7D6prXF81RRUaHExETdc8892rlzp4cqb1pb5Fm6dKkyMjI8VPHNtUWmixcvKj4+XlFRUVq2bJl69erloeqb1pbnh88//1z19fWKjo52s+rmtWUmb3E34+nTp9W/f3/H7aioKJWVlbVF6YBX0efR50n0eZ5An0efdyP6PM+hz2u/2s3graqqSvHx8Vq3bl2T27ds2aLFixdrxYoVKiwsVHJystLS0nTy5EnHPomJiRo+fHijr9OnT+vChQvKyspSaWmpysrKlJeXp9zcXL/OdF1FRYV2797dJr+VsjpTbW2tdu3apfXr1+uzzz5Tdna2srOz/TqTJJWWlqqgoECvvfaaZs2apYqKCr/N889//lODBw/W4MGDLctwo7Z4jrp37679+/fr+PHj+sc//qFz5875fSZJ+vbbbzVr1ixt3LjR0jxtmcmb3M3Y1G/YbTabpTUDvoA+jz6PPs8/8tDn+U8miT7P0+jz2jHTDkkymZmZDdbuuusuM3/+/AZrQ4cONcuXL3fpmFu3bjULFixw3F69erV54YUX3K7VVVZkum7z5s3m8ccfd7fEFrMiU15enklNTXXcXr16tVm9erXbtbrKyufpuvvvv9/k5+e3tsQWsSLP8uXLTVRUlBkwYIDp2bOnCQ8PN6tWrfJUyTfVFs/R/PnzzdatW1tbYotZlenq1asmOTnZbN682RNltoiVz1NOTo555JFH3C3Rba3JuHv3bjNt2jTHtkWL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", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -273,22 +241,22 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 56, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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557j+PHj1tvn77//PpGRkfTq1avCseXfZzc6Z32R6dC3oEuXLtYBuVFRUZjNZj766CO+/PJLHnjgAev90Tlz5lQ5DbdTp051GmNVfyVW1lb+A2A0Gisce+HCBevrqc65KzN58mSeeuopjh49yqlTpzAajTa/uAFCQ0P55z//CcCvv/7KmjVr+Otf/0pJSQkffPBBpefV6XR07dqV7777jsLCwkrHuezcuZO0tDQefPDBG76GFi1aUFZWRmZmps0vhWt/+TRv3hytVsuECROq7GVo3779Da9XU5s2beLChQv8+OOP1l4WoMrxQNd7Tdf+8rvap59+Svv27Vm9erVN/NcOAm3VqhVmsxmTyVTlB1f599CXX35JaGjo9V/gdaxcuZInnniCSZMm8cEHH9TofS0fMHyjdUVatmzJ/v37axKmVfPmzRkzZgyffPIJr732GitXrsTd3d3mw7m23pvasH79ejQaDYMGDQLU2DQaDdu2bbN+MF7t2rqb+Xo8/PDDzJo1i1WrVjF//nz+/e9/M3bsWJslJar7PXizyn9+//73v5Odnc3nn39OcXGxze+l8q/Le++9x1133VXpecp7ulu2bMmSJUtYsmQJqamprF+/ntmzZ5Oenk58fHyVMURFRREfH8+5c+cqHedy7tw59u3bh8FgsCZUt2rw4MHo9XqWLl2Kt7c3+/fv59NPP6302PLE7NrPAHuRHpda9Oabb9K8eXNeeeUVLBYLnTp14o477uDQoUOV/kXWu3dvfHx87B22VWRkJB4eHhW+ec+dO8emTZuqnDVUXQ8//DDu7u6sWrWKVatW0aZNG4YNG1bl8R07duTPf/4z4eHhN/zgePnll7l06RIvvPBChbaCggJmzJiBp6fndQetlSsfhFm+xkW5zz//3Kbs6elJVFQUBw4coFu3bpV+fa+XENyq8l/g135o/OMf/6jyOVW9put9eGs0GlxdXW0+MEwmU4UZHeVd68uXL6/yXMOHD8fZ2ZmTJ09W+TNxI6tWreKJJ57gscce46OPPqpR0pKQkMBHH31Ev379GDBgwHWP7dy5M5mZmdedqVEdkydP5sKFC8TGxvLpp58ybtw4mjVrZm2vjfemNqxcuZK4uDgefvhha2/myJEjURSF8+fPVxpXeHh4ja/XvHlzxo4dyyeffMI333yDyWSqcJuout+DoP483EzPwOTJ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", + "image/png": "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Fu+//77tVljR8114q2jOnDlYLJYSfwb//ve/4+bmxokTJ2x93333HQMHDsTX1xcvLy969epV7Hfa8ePH+fOf/0xoaCju7u40atSIXr168d133130PZ85cyYWi4V58+bh4mJ/I8TFxYW5c+disVh44YUXbP3PPPMMFouF2NhY7rjjDvz8/AgKCmL8+PGkpaWV+lyZmZn4+/tz//33Fzt26NAhnJ2dmT17tq1v2LBheHt78+677170NVQlJS4VKD4+HoA2bdrY+lavXk2vXr1ITU3l7bff5quvvqJTp06MGjXqiuajFBYWUlBQUOzrQtu3b+dvf/sbEydOZPny5dxyyy22Y1OnTiUhIYG3336bpUuXEhgYyMyZM7nnnnsIDw/niy++4LXXXuPXX38lMjKy2PydvLw8hg8fzoABA/jqq6+YPn16ibEOHTqUwMBAFixYUOzYwoUL6dKlCx06dABg8ODBbNu2jRdffJFVq1Yxb948OnfuTGpqaqnvRWJiIrGxsURFReHl5VXiOZGRkQQGBrJq1apLvgbDMBgxYoQtyfjyyy+57rrriImJKXbduLg4rr32Wnbt2sXLL7/M119/zZAhQ5g4cWKJ70dJ7/mV2LdvH4MHD+Zf//oXy5cvZ9KkSXz66acMGzas2Ln5+fkMHjyYgQMHsnjxYh5++GHeeecdRo0addHnyM3N5dSpU0yZMoXFixfzn//8h969e3PzzTfzwQcf2J17991388gjj3DttdeyaNEi/vvf/zJ8+HAOHTpkO+f555/njjvuICwsjE8//ZQPP/yQjIwM+vTpU665SAUFBaxbt47w8PDLetzw4cMBLpm4rFy5kvz8/BJvzcKlfxbHjx9PdnZ2sT9WUlNT+eqrr7jrrrtwdXUFLu+9yc/PZ/jw4QwcOJCvvvqK8ePH8+qrrzJr1qzLeh9KMnz4cAzDYN26dba++++/n0mTJnHDDTewePFi5s6dS2xsLD179iz2x1piYiJ33XUXd955J8uWLePBBx8s9hyurq7cdddd/O9//yuW1P3nP/8hJyeHcePGAWX/Hty4cSOenp4MHjyYjRs3snHjxlJvT9111124ubkV+z1stVr56KOPGDZsGA0bNgTgo48+IioqCl9fX95//30+/fRTAgICiI6OtkteRo8ezeLFi3n66adZuXIl7733HjfccAMnT54s9b22Wq2s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kr+/Dh06hJeXl+33ZZELf6bd3d2B4j//F3rkkUfYt2+f7fb5W2+9RWRkJF26dCl2btH32aWuWVVUDn0F2rVrZ5uQ279/f6xWK++99x6ff/45t956q+3+6NSpU0stw73mmmsqNcbS/kos6VjRD0BiYmKxc48dO2Z7PWW5dknGjRvHgw8+yO7duzl48CCJiYl2v7gBmjdvzr/+9S8Afv/9dz799FOeeeYZ8vLyePvtt0u8bkhICOHh4axcuZLs7OwS57ls3LiR5ORkbrvttku+hgYNGlBQUMDJkyftfilc+Munfv36ODs7M3r06FJHGVq2bHnJ5yuvH374gWPHjrFmzRrbKAtQ6nygi72mC3/5ne+jjz6iZcuWLFq0yC7+CyeBNmrUCKvVSlJSUqkfXEXfQ59//jnNmze/+Au8iAULFnDvvfcyduxY3n777XK9r0UThi+1rkjDhg3Zvn17ecK0qV+/PjfddBMffPABzz33HAsWLMDDw8Puw7mi3puKsGTJEiwWC3379gXM2CwWC+vWrbN9MJ7vwr7L+fe44447mDx5MgsXLmTGjBl8+OGHjBgxwm5JibJ+D16uop/f119/ndTUVD755BNyc3Ptfi8V/bu88cYbXHfddSVep2iku2HDhsyZM4c5c+aQkJDAkiVLePzxx0lJSWH58uWlxtC/f3+WL1/OkSNHSpzncuTIEbZt20ZMTIwtobpSAwYMICIigjfffBNvb2+2b9/ORx99VOK5RYnZhZ8BjqIRlwr04osvUr9+fZ5++mkKCwu55ppruPrqq/nll19K/IusW7du+Pj4ODpsm8jISDw9PYt98x45coQffvih1Kqhsrrjjjvw8PBg4cKFLFy4kCZNmhAVFVXq+W3atOGpp56iffv2l/zgePLJJzl9+jRTpkwpdiwrK4uJEyfi5eV10UlrRYomYRatcVHkk08+sWt7eXnRv39/duzYQYcOHUr8971YQnClin6BX/ih8c4775T6mNJe08U+vC0WC25ubnYfGElJScUqOoqG1ufNm1fqtaKjo3FxceHAgQOl/kxcysKFC7n33nu56667eO+998qVtKxatYr33nuPnj170rt374ue27ZtW06ePHnRSo2yGDduHMeOHWPZsmV89NFHjBw5En9/f9vxinhvKsKCBQv49ttvueOOO2yjmUOHDsUwDI4ePVpiXO3bty/389WvX58RI0bwwQcf8PXXX5OUlFTsNlFZvwfB/Hm4nJGBcePGkZOTw3/+8x8WLlxIZGQkbdu2tR3v1asX/v7+xMXFlfrv4ubmVuy6zZo14+GHH+bGG2+85O+vqVOnYhgGDz74YLHJt1arlQceeADDMJg6dWqZX1dZTJw4kW+++YapU6cSFBRU7A+7IgcPHqRBgwbFpiI4ikZcKlD9+vWZOnUqjz32GJ988gl33XUX77zzDjExMURHR3P33XfTpEkTTp06xe7du9m+fTufffZZuZ5r3759xeZPgDlsXd6Fr/z9/fnHP/7BE088wZgxY7jjjjs4efIk06dPx8PDg2nTppXruudff+TIkSxcuJDU1FSmTJmCk9O53PnXX3/l4Ycf5rbbbuPqq6/Gzc2NH374gV9//ZXHH3/8ote+44472L59Oy+99BKHDh1i/PjxBAUFsXfvXl599VUOHDjAJ598QqtWrS4ZZ1RUFH379uWxxx4jKyuLbt26sX79ej788MNi57722mv07t2bPn368MADD9CiRQsyMjLYv38/S5cuLXFF18tx4MABPv/882L9YWFh9OzZk/r16zNhwgSmTZuGq6srH3/8Mb/88kuJ13Jzc+Pll18mMzOTa6+9lg0bNvDcc88RExNz0Q/vopL6Bx98kFtvvZXDhw/zz3/+k5CQELtKsz59+jB69Giee+45kpOTGTp0KO7u7uzYsQMvLy/+8pe/0KJFC5599lmefPJJDh48aJsblpyczObNm6lXr16p1WlgznO455576NSpE/fffz+bN2+2O965c2e7RK6wsND2c5Kbm0tCQgLffvstn376Ke3atSvTsgT9+vXDMAx+/vnnEhPthISEEn8WGzVqZLcgZFRUFE2bNuXBBx8kKSmp2Gjjlb43l+vMmTO2uM+cOcPBgwdZvHgxX3/9Nddff73dCGevXr3485//zLhx49i6dSt9+/alXr16JCYm8tNPP9G+fXseeOCBcscyfvx4Fi1axMMPP0zTpk254YYb7I6X9XsQzHkza9asYenSpYSEhODj43PRke22bdsSGRnJzJkzOXz4MPPnz7c77u3tzRtvvMHYsWM5deoUt956K4GBgRw/fpxffvmF48ePM2/ePNLS0ujfvz933nknbdu2xcfHhy1btrB8+fJLLnzZq1cv5syZw6RJk+jduzcPP/wwzZo1sy1A9/PPPzNnzhx69ux5me/sxd11111MnTqVtWvX8tRTT5WYgIG5ou/1119foSPGV8RBk4JrtNIWoDMMc2Z2s2bNjKuvvtooKCgwDMMwfvnlF+P22283AgMDDVdXVyM4ONgYMGCA8fbbb9seV1FVRedXdDRv3twYMmRIqdcobRG79957z+jQoYPh5uZm+Pn5GTfddJMRGxtrd86lKjZKs3LlSlusv//+u92x5ORk4+677zbatm1r1KtXz/D29jY6dOhgvPrqq7b38lKWLVtmDB482GjQoIHh6upqNGnSxBg9enSx+C/1GlJTU43x48cb/v7+hpeXl3HjjTcae/bsKXEBuvj4eGP8+PFGkyZNDFdXV6NRo0ZGz549jeeee852TnkWDrzYv3NRDBs2bDAiIyMNLy8vo1GjRsa9995rbN++3QCMBQsWFHutv/76q9GvXz/D09PTCAgIMB544IFilQIlVRW98MILRosWLQx3d3ejXbt2xrvvvmurajif1Wo1Xn31VSMiIsL2/RMZGWmr0CiyePFio3///oavr6/h7u5uNG/e3Lj11luN77777qLvSVE1TWlf8fHxpZ7r6elpNGvWzBg2bJjx73//28jNzS3Tv4PVajVatGhhPPjgg3b9l6oq+tOf/lTsWk888YQBGKGhoXaVLJf73pT2vVvSv0lJiip/ir7q1atntGrVyrj11luNzz77rNTY/v3vfxs9evQw6tWrZ3h6ehqtW7c2xowZY2zdutXu2qVVLF1YVVTEarUaoaGhF61KK+v34M6dO41evXoZXl5eBmB7vov9jp0/f77te+TCCsEiP/74ozFkyBAjICDA9rtlyJAhtp/pnJwcY8KECUaHDh0MX19fw9PT07jmmmuMadOmlXkBvo0bNxq33nqrERQUZLi4uBiBgYHGzTffbGzYsKHYuUWv/fjx43b9RZ9P5/8sXKxS8O677zZcXFyMI0eOlHh8//79BmD873//K9NrqAoWwyjj1HoRqbHuvvtuPv/8czIzMx0dSo308ssvM2PGDI4ePYqnp6ejwxGpEHl5ebRo0YLevXuXOvr4j3/8gw8++IADBw4UWxzPUTTHRUTkEh566CH8/PyKrYgsUhMdP36cn376iQceeIDk5ORSb8Wnpqby1ltv8fzzz1ebpAWUuIiIXJKHhwcffvhhiRU1IjXNN998Q58+ffj222+ZO3duiSXQYC4xMXXq1BI3EXUk3SoSERGRGkMjLiIiIlJjKHERERGRGkOJi4iIiNQY1WeacAUpLCzk2LFj+Pj4VJ/FckREROSiDMMgIyODxo0b2y1OeqFal7gcO3as2EZ6IiIiUjMcPnz4oivA17rEpWjvn8OHD5d552IRERFxrPT0dEJDQy+5h1+tS1yKbg/5+voqcREREalhLjXNQ5NzRUREpMZQ4iIiIiI1hhIXERERqTFq3RyXsrJareTn5zs6jBrF1dUVZ2dnR4chIiJ1WJ1LXAzDICkpidTUVEeHUiP5+/sTHBysNXJERMQh6lziUpS0BAYG4uXlpQ/gMjIMg+zsbFJSUgAICQlxcEQiIlIX1anExWq12pKWBg0aODqcGsfT0xOAlJQUAgMDddtIRESqXJ2anFs0p8XLy8vBkdRcRe+d5geJiIgj1KnEpYhuD5Wf3jsREXGkOnWrSERERMqp0Ap/bIDMZPAOguY9wanqpwwocREREZGLi1sCy/8O6cfO9fk2hkGzIGx4lYZSJ28V1URr165l2LBhNG7cGIvFwuLFiyv0+uvXr8fFxYVOnTpV6HVFRKSGi1sCn46xT1oA0hPN/rglVRqOEpdysBYabDxwkq92HmXjgZNYC41Kf86srCw6duzIm2++WeHXTktLY8yYMQwcOLDCry0iIjVYodUcaaGkz7mzfcsfN8+rIrpVdJmW70pk+tI4EtNybH0hfh5MGxbGoIjKW9skJiaGmJiYUo/n5eXx1FNP8fHHH5OamkpERASzZs2iX79+l7z2/fffz5133omzs3OFj+SIiEgN9seG4iMtdgxIP2qe17JPlYSkEZfLsHxXIg98tN0uaQFISsvhgY+2s3xXooMig3HjxrF+/Xr++9//8uuvv3LbbbcxaNAg9u3bd9HHLViwgAMHDjBt2rQqilRERGqMzOSKPa8CKHEpI2uhwfSlcRcbLGP60rgquW10oQMHDvCf//yHzz77jD59+tC6dWumTJlC7969WbBgQamP27dvH48//jgff/wxLi4afBMRkQt4B1XseRVAiUsZbY4/VWyk5XwGkJiWw+b4U1UX1Fnbt2/HMAzatGmDt7e37evHH3/kwIEDAHb9EyZMwGq1cueddzJ9+nTatGlT5TGLiEgN0LynWT1EaWt4WcC3iXleFdGf2WWUklF60lKe8ypSYWEhzs7ObNu2rdgy/N7e3gDs3LnT1ufr60tGRgZbt25lx44dPPzww7brGIaBi4sLK1euZMCAAVX2GkREpBpycjZLnj8dg5m8nH9X4WwyM+iFKl3PRYlLGQX6eFToeRWpc+fOWK1WUlJS6NOn5MlRV111lV27sLCQ3377za5v7ty5/PDDD3z++ee0bNmy0uIVEZEaJGw43P5BKeu4vFDl67gocSmj7i0DCPHzICktp8R5LhYg2M+D7i0DKuX5MzMz2b9/v60dHx/Pzp07CQgIoE2bNvzpT39izJgxvPzyy3Tu3JkTJ07www8/0L59ewYPHlzsek5OTkRERNj1BQYG4uHhUaxfRETquLDh0HaIVs6tSZydLEwbFsYDH20vbbCMacPCcHaqnL18tm7dSv/+/W3tyZMnAzB27FgWLlzIggULeO6553j00Uc5evQoDRo0IDIyssSkRURE5LI5OVdZyfPFWAzDqPoymEqUnp6On58faWlp+Pr62h3LyckhPj6eli1b4uFRvls6jlrHpbqoiPdQRETkQhf7/D6fRlwu06CIEG4MC2Zz/ClSMnII9DFvD1XWSIuIiIico8SlHJydLES2buDoMEREROocreMiIiIiNYYSFxEREakxlLiIiIhI2RzdDguHmv91ECUuIiIiUja//BcOrYNfFzksBE3OFRERkdKlJkD2ScACsV+Yfbv+Bx3vAAzwagD+zaosHCUuIiIiUro57Yv3ZR2H+defaz+TVmXhOPRWkYuLC506daJTp07ce++9tv5XX32V8PBwwsLCmDhxIrVsjTwREZGa4+Z3wVLK0v5OLubxKuTQERd/f3+7XYsBjh8/zptvvklsbCyurq707duXTZs2ERkZ6ZggRURE6qr8M5C8C0obQLj3e2jcqUpDqpaTcwsKCsjJySE/P5/8/HwCAwMdHZLDrV27lmHDhtG4cWMsFguLFy+ukOt+/PHHdOzYES8vL0JCQhg3bhwnT56skGuLiEgNFr8W5kbC+teAwrOdRavEOy59KPczl+WDdO7cubY9bbp27cq6devsjqenp9O1a1d69+7Njz/+CECjRo2YMmUKzZo1o3Hjxtxwww20bt26vGFWjkIrxK+D3z43/1torfSnzMrKomPHjrz55psVds2ffvqJMWPGcM899xAbG8tnn33Gli1b7G7biYhIHXPmNHz1MLw/DE7Hg09jGP4m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Qo4dO4aPjw8Wi6VCr33ttdeyZcuWCr1mXaX3snR19b2pza87PT2d0NBQDh8+XGG71ovUNoZhkJGRQePGjXFyKn0mS60bcXFycqJp06aVcm1nZ2f90qkgei9LV1ffm7rwun19fWv9axS5EhcbaSmiybmX4aGHHnJ0CLWG3svS1dX3pq6+bhG5PLXuVpGISHWTnp6On58faWlpGnERuUIacRERqWTu7u5MmzYNd3d3R4ciUuNpxEVERERqDI24iIiISI2hxEVERERqDCUuDvT1119zzTXXcPXVV/Pee+85OhwREZFqT3NcHKSgoICwsDBWr16Nr68vXbp04eeffyYgIMDRoYmIiFRbGnFxkM2bNxMeHk6TJk3w8fFh8ODBrFixwtFhiYgDjBw5kvr163Prrbc6OhSRaq9WJi5Hjx7lrrvuokGDBnh5edGpUye2bdtWYddfu3Ytw4YNo3HjxlgsFhYvXlzieXPnzqVly5Z4eHjQtWtX1q1bZzt27NgxmjRpYms3bdqUo0ePVliMIlJzTJw4kQ8++MDRYYjUCLUucTl9+jS9evXC1dWVb7/9lri4OF5++WX8/f1LPH/9+vXk5+cX69+zZw9JSUklPiYrK4uOHTvy5ptvlhrHokWLmDRpEk8++SQ7duygT58+xMTEkJCQAJS8+2VF760kIjVD//798fHxcXQYIjVCrUtcZs2aRWhoKAsWLKB79+60aNGCgQMH0rp162LnFhYW8tBDD3HnnXditVpt/b///jv9+/cv9S+gmJgYnnvuOW6++eZS43jllVe45557uPfee2nXrh1z5swhNDSUefPmAdCkSRO7EZYjR44QEhJS3pctIg5SlhHYi42+isjlqXWJy5IlS+jWrRu33XYbgYGBdO7cmXfffbfEc52cnFi2bBk7duxgzJgxFBYWcuDAAQYMGMDw4cN57LHHyhVDXl4e27ZtIyoqyq4/KiqKDRs2ANC9e3d27drF0aNHycjIYNmyZURHR5fr+UTEcS41Anup0VcRuTy1LnE5ePAg8+bN4+qrr2bFihVMmDDhovePGzduzA8//MD69eu58847GTBgAAMHDuTtt98udwwnTpzAarUSFBRk1x8UFGS7/eTi4sLLL79M//796dy5M3/7299o0KBBuZ9TRBzjUiOwlxp9FZHL4+LoACpaYWEh3bp14/nnnwegc+fOxMbGMm/ePMaMGVPiY5o1a8YHH3zA9ddfT6tWrfjXv/5VIfNNLryGYRh2fcOHD2f48OFX/DwiUj0Vjb4+/vjjdv3nj76KyOWpdSMuISEhhIWF2fW1a9fuosOyycnJ/PnPf2bYsGFkZ2fz17/+9YpiaNiwIc7OzsUm96akpBQbhRGR2qsso68A0dHR3HbbbSxbtoymTZuyZcuWqg5VpMaodSMuvXr1Yu/evXZ9v//+O82bNy/x/BMnTjBw4EDatWvHZ599xr59++jXrx/u7u689NJL5YrBzc2Nrl27smrVKkaOHGnrX7VqFTfddFO5rikiNdelRl+1hpNI2dW6xOWvf/0rPXv25Pnnn+f2229n8+bNzJ8/n/nz5xc7t7CwkEGDBtG8eXMWLVqEi4sL7dq147vvvqN///40adKkxNGXzMxM9u/fb2vHx8ezc+dOAgICaNasGQCTJ09m9OjRdOvWjcjISObPn09CQgITJkyovBcvItWKRl9FKoFRCy1dutSIiIgw3N3djbZt2xrz588v9dyVK1caZ86cKda/Y8cOIyEhocTHrF692gCKfY0dO9buvLfeesto3ry54ebmZnTp0sX48ccfr+h1iUj1BhhffvmlXV/37t2NBx54wK6vXbt2xuOPP16FkYnUHtqrSETkCpw/Atu5c2deeeUV+vfvbxuBXbRoEaNHj+btt9+2jb6+++67xMbGlnoLW0RKp8RFROQKrFmzhv79+xfrHzt2LAsXLgTMBehefPFFEhMTiYiI4NVXX6Vv375VHKlI7aDERURERGqMWlcOLSIiIrWXEhcRERGpMZS4iIiISI2hxEVERERqDCUuIiIiUmMocREREZEaQ4mLiIiI1BhKXERERKTGUOIiIiIiNYYSFxEREakxlLiIiIhIjaHERURERGoMJS4iIiJSY/w/JFlFKIGhHkIAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -298,7 +266,7 @@ } ], "source": [ - "orders_odd = [i for i in range(6, 20, 2)]\n", + "orders_odd = [i for i in range(6, l_max, 2)]\n", "err1 = []\n", "err2 = []\n", "for o in orders_odd:\n", @@ -328,22 +296,22 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 57, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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Gn7++ecK51+yZAkajYY//vjD1Fed16U13qM2b97MY489hp+fHy1btuSOO+7gwoULVZ5LURQ6derEmDFjKmzLy8vD29ubJ554wtTXt29funXrxkcffXTd59AUSHJUz1JSUgC1JFlm8+bNDB06lOzsbD766CPWrl1Lr169mDx5ssXHwBVFobS0tMK/8m8iAMXFxUyYMIGRI0eydu1a5s2bZ9q2Zs0alixZwssvv8yGDRsYPnw4W7ZsYeTIkeTk5PDpp5/yzTff4Onpyfjx41m5cmWFOB544AEcHR354osv+O677yr94GrVqhW33XYbn3/+OUaj0WzbsmXLcHJy4m9/+xsAs2bNYsmSJcyYMYP4+Hi++OIL7r77bjIzM6/7/UhISCAgIIBBgwZVut3NzY3IyEiSkpJITU294XOYN28ezz33HKNHj2bNmjWmYZujR4+aPbagoIARI0bw+eefM2PGDOLi4njuuedYvnw5EyZMqPDzqOx7XhenTp2iS5cuLFq0iA0bNrBgwQJ0Oh39+/cnIyOjwv4PPvggdnZ2fP311yxatIjdu3dzyy23kJ2dfd3znDhxgnvvvZcvvviCH374gQcffJCFCxfyyCOPmO336aefMnbsWIxGIx999BHr169nxowZZklLffyebNq0CQcHB7PfxxsZO3Ys9vb2FZKDa507d47ExEQiIiLM+hMSEgCYNGlSlY8t21a2r6IoTJo0iS+++IJnnnmG1atXM2jQIKKjoys89ueff2bixIl4enry7bffsnDhQlatWsWyZcuq/RyvZ8KECQBmz/+NN97gr3/9K2FhYaxatYovvviC3Nxchg8fTnJystnjr/feUt706dPZvn17hTmaGzdu5MKFC0yfPt3Ud+rUKR555BFWrVrF999/zx133MFTTz3Fq6++atpn9erVdOjQgd69e5uGDKsaxrvtttvw9/ev9Hu2fPly+vTpQ48ePYDqvy6t8R710EMP4ejoyNdff81bb73FL7/8wn333VfluTQaDU899RQJCQkVvu8rVqxAr9ebJUegzlmKi4ur8J7V5FivaNW0lJXmf/31V6WkpETJzc1V4uPjlcDAQOXmm29WSkpKTPt27dpV6d27t1mfoijKbbfdpgQFBSkGg0FRFMsMq1X174svvjDtN23atCqH/gDF29tbycrKMusfNGiQ4u/vr+Tm5pr6SktL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", + "image/png": "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", "text/plain": [ "
" ] @@ -355,7 +323,7 @@ "source": [ "err1 = []\n", "err2 = []\n", - "orders_odd = [i for i in range(5, 20, 2)]\n", + "orders_odd = [i for i in range(5, l_max, 2)]\n", "\n", "for o in orders_odd:\n", " err1.append(compute_error_coord(recur_laplace, np.array([1e-4, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", @@ -384,7 +352,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -401,19 +369,19 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "ratios = np.array([1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1])\n", "slopes = []\n", "for r in ratios:\n", - " slopes.append(get_slope(np.array([r, 1]), np.array([i for i in range(6, 20, 2)])))" + " slopes.append(get_slope(np.array([r, 1]), np.array([i for i in range(6, l_max, 2)])))" ] }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -422,13 +390,13 @@ "Text(0.5, 1.0, 'Slope of Best Fit vs ratio of y0/x0 for even derivatives')" ] }, - "execution_count": 65, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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6NGjTUxMjLNvx44dzTXXXONW05kzZ0xUVJQZNmyYs23atGmmW7dupnHjxiYoKMh06tTJ/OMf/zDFxcXOPmXtZ0s+r2RdlexrqrJvMebs0eWEhATTuHFjY7fbTceOHc3ChQtd3nfy5Ennfrhk++rSpUuZP1t1iYBSgZJDtY8++qj5/PPPzenTp8vtW3rnfurUKdO+fXvTqFEj88ILL5g1a9aYZ555xvj5+ZnBgwe7vFeSiY6ONm3atDHz5883y5YtM4MGDXL7Qs3IyDDR0dEmJibGvPXWW2bt2rXmz3/+s7Hb7WbMmDHnHc/vfvc7I8k88sgjZtWqVebNN980TZo0MdHR0c4vsh07dpj777/f5bTNuQGmtJIvvczMTFNYWGgKCgrM3r17zciRI43dbjdff/21s+/JkydNx44dTXh4uHnxxRfN2rVrzSuvvGJCQkJMv379nD/AW7duNTabzdx+++1m5cqVZv369WbWrFnm7rvvNsacDTklAeLpp592nqqpqM6SgLJw4UJTWFjoMp3771ASULKyspxfZq+99przM8o77FpYWGgiIiLMnXfe6TavW7dupnPnzs7XV1xxhbnsssvM+++/bzZt2mQ++ugjM2nSpPOeSho9erTzCyApKcmsW7fOrF692hhz9gs2KSnJLFu2zGzatMnMmTPHdOjQwVxxxRXO7fbgwYPm0UcfNZLMxx9/7BxTdna2MaZm23BZStbfqFGjzCeffGLee+89c+mll5qQkBDnabXdu3ebp59+2rlDTklJMfv27St3mZ06dTJXX321W3vXrl1N165dna8dDocZPny4W78VK1YYSc71VuKGG24wd9xxh/P10aNHTbNmzUz37t2d62/06NGmQYMGLtt0jx49XD63RFpampFk3nrrrXLHUtHYK7PuSmoqb5so7zNDQkJMu3btzHvvvWfWrFljJk2aZHx8fMy0adOc/YYNG2aio6NNUVGRy/sff/xxExAQYI4ePWqMqfw+qeRLt0WLFmbQoEFmyZIlZsmSJaZdu3amcePG5pdffim35pK6GzZs6NxHLl261AwcONA0b97cLaA8++yzxmazmfvuu8+sWLHCfPzxx6Znz56mUaNGLqcwK1p3pQPKK6+8YiS5rHtjjFm5cqWRZJYtW+ZsGzNmjHnnnXdMcnKySU5ONn/+859NgwYNTGJiorPPjh07zKWX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H/7wB73yyisun/P222/ro48+cjndMGfOHEVFRTk/uyq8te4aNmyovn376quvvlL79u1dglZZrrzySnXv3l2zZs1SUVGRCgoK3MJ2TfZJVdG3b18tW7aszH3kuQYOHCg/Pz/t37+/UqduqqIk3L388svasmWLvvzyS7efMZvNJj8/P5cQd+rUKb3//vtuy7Pb7R7dt1xxxRVq1aqVdu3apenTp1d6uU2bNtWYMWO0a9cuvfzyy9a6Tb2Or4GxtHbt2pn4+Hjz+uuvm/Xr15u1a9eaF154wURGRpqLLrrI5Wr+8u6ACAoKMi+++KJJTk42U6dONf7+/lW6i2fBggXOfocPHzYxMTGmdevW5vXXXzfr1q0zn3zyiXnttdfMjTfeWOFdLMacvYvHZrOZCRMmmNWrV5u33nrLREREmOjoaOdV+cZU7yLZkjt+UlJSzJIlS8xNN91kJJnf//73zr55eXmmU6dOplmzZuavf/2rSU5ONqtXrzZvv/22GT58uPn888+NMcY888wz5t577zVz5841GzduNEuWLDF9+/Y1/v7+Ji0tzRhz9o6gBg0amKuvvtps2LDBpKammp9++qncOqt6m7ExxvznP/8xkszQoUPNli1bTGpqqst6Ks+oUaNMREREmRfV7dq1y1x77bXmb3/7m/nXv/5l1q1bZ5566inj4+Pj1re0ktsiSzt9+rRp2bKliYmJMfPmzTOrVq0y48ePN5dffrnbmErWw7hx48zWrVtNamqqycnJMcbUbBsuS8mdKHfffbdZuXKlef/9981ll13mdidKVS6SLVFycbfKuf0yPz/ftG3b1kRHR5sPPvjAJCcnm2HDhrk9qO3mm282Q4YMcXv/mjVrjI+Pj8u6K7nws/TF3/379zeNGzc2f//738369evN2LFjjSQzd+7c846jvLFXdt2Vt02UZ/fu3aZx48amW7duZtasWWbDhg1m2bJl5sUXXzR9+/Z16//WW28ZSaZZs2amV69ebvMru0869zbj0kpvo2X55ptvTIMGDUybNm3MggULzLJly8zAgQNNdHS020Xf06dPN35+fmbcuHFm8eLFZuPGjWbhwoVm0qRJLo89qGjdlb5ItsR3333nXB+lL1o1xph169YZSea2224za9asMfPnzzddunQxrVq1cqtz9OjRxm63mwULFpht27Y5v0/Kuki2REX7FmPO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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAG2CAYAAABViX0rAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGQklEQVR4nO3deVxU9f4/8NewDUswAQrDJCoaaQiuiUuLO6iJS7e03MvK1OySu9dK6N4grWtWpla31OS6tUDq9SrkggsWJGmhXc0i0wDJpAFMEOH9+8PvnJ/DAIIMzMF5PR+P83g4n/OZM+/P8XDmxdnQiIiAiIiISEUcbF0AERERUWUMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoN/DVV19h1KhRaNmyJbRaLfz9/dGrVy/Mnj3brF/fvn3Rt29f2xTZAF544QW0bNkSTk5OuP3226vtFxMTA41Go0wODg4ICAjA0KFDcejQoQarLycnBzExMTh69Git+u/bt8+szuunhx9+GACg0WgQExOjvOfEiROIiYnBzz//bP0B2EhaWhpiYmLwxx9/WMyz5Tb89ttv484774SLiws0Gk2V9dVVfn4+Jk+ejGbNmsHd3R29evXC7t27q+3/1ltvwdfXF1evXq3T5xQXFyM6OhoGgwGurq7o3LkzNm3aVOv3N8TY7cXatWuh0Wis/jM6efJktG7d2qrLrGzlypVYu3atRfvPP/8MjUZT5Ty7I1St7du3i4ODg/Tv3182btwo+/btk40bN8rs2bPljjvuMOvbp08f6dOnj20KtbKkpCQBIIsWLZKDBw9KRkZGtX0XL14sAGTnzp1y+PBhOXTokGzcuFG6dOkiTk5OcuTIkQapMSMjQwDImjVratV/7969AkDi4uLk8OHDZtOpU6dEROTw4cNy9uxZ5T0ff/yxAJC9e/c2wAhs47XXXhMAkp2dbTHv+PHjcvz48Uav6ZtvvhEA8uSTT8qBAwfk8OHDcvXq1Xots6SkREJDQ6VFixaSkJAgycnJMmLECHFycpJ9+/ZV+Z4HHnhAHn/88Tp/1qBBg+T222+X1atXy549e+TJJ58UAPLvf//7hu9tiLHbkzVr1lS7PdfH6dOnJTMz06rLrKxDhw5VfmeUlJTI4cOHJT8/v0E/vylwslUwagqWLl2KoKAg7Nq1C05O/39VPfroo1i6dKkNK2tYWVlZAIDnnnsOfn5+tXpPt27d0KxZMwBA7969ER4ejrZt2+KTTz5B165dG6zWugoODkbPnj2rnFddu5r9+eefcHd3t8qyQkJCrLKcujp+/DgA4KmnnkJ4eLhVlvnBBx8gKysLaWlp6NWrFwCgX79+6NSpE+bNm4evvvrKrP/58+dx8OBBzJs3r06fs2PHDqSkpGDDhg147LHHlM85c+YM5s6dizFjxsDR0bHa9zfE2K25Tdgb07pr27atzWrQarVNcl/UIGydkNSsQ4cO0qNHj1r1reoIyu+//y7Tpk0Tg8Egzs7OEhQUJH/729+kpKTErB8AmTFjhqxevVqCg4PFxcVF7r77btm4caPF5+Tm5srTTz8td9xxhzg7O0vr1q0lJiZGysrKblhjeXm5LFmyRNq1aycuLi7SvHlzmTBhgtlRg1atWgkAs2nx4sXVLtN0BOW3334za79w4YIAkJdeesms3Wg0yuzZs6V169bi7OwsBoNB/vrXv0pxcbFZvy1btkh4eLh4eXmJm5ubBAUFKb/dmo6G1KVO03s+/vjjavtcvwzTb2aVp+qO2CQmJgoA+eKLLyzmrVy5UgDIsWPHRETkxx9/lDFjxkhAQIC4uLiIn5+f9O/fX7755ptqaxMRmTRpknh4eMi3334rgwYNkttuu0169uwpIiLJyckyfPhwueOOO0Sr1Urbtm3l6aefNvt/Mf1fVZ5MR4jqsw1X54MPPpCOHTuKVqsVb29vGTlypJw4cUKZ36dPH4t6Jk2aVOWy9u/fLwBkw4YNFvPWrVsnACQ9PV1ERAYOHCjt2rWz6BcXFycA5Ny5c2btq1atEi8vLykpKZGKigoZMmSI+Pj4yJkzZ5Q+ly5dkpCQEGnfvr2yvT755JNy2223Wfz8bdiwQQDIoUOHql03Nxr7jdadSM3bRHVOnToljz32mDRv3lxcXFykffv2smLFCmV+fn6+ODs7ywsvvGDx3u+//14AyJtvvqm01WaflJ2dLQDktddek3/+85/SunVr8fDwkJ49e8rhw4drrNfk8OHD0rt3b9FqtRIQECALFiyQ9957r8ojKJs2bZKePXuKu7u7eHh4SEREhMURkZrW3aRJk6RVq1ZK386dO8t9991nUdPVq1fFYDDIqFGjlLaYmBgJDw8Xb29v8fT0lC5dusi//vUvqaioUPpUtZ81fZ5pXZn2NXXZt4hcO7ocFRUl3t7eotVqpXPnzrJ582az9126dEnZD5u2r27dulX5s2VLDCg1MB2qnTlzpnz55Zdy5cqVavtW3rlfvnxZOnbsKB4eHvL6669LcnKyvPjii+Lk5CRDhw41ey8ACQwMlJCQENm4caNs3bpVBg8ebPGFmpubK4GBgdKqVSt599135YsvvpC///3votVqZfLkyTccz9NPPy0A5Nlnn5WdO3fK6tWrpXnz5hIYGKh8kWVmZsqUKVPMTttcH2AqM33p5eXlSVlZmZSWlsoPP/wgY8aMEa1WK99++63S99KlS9K5c2dp1qyZLFu2TL744gt58803RafTSf/+/ZUf4LS0NNFoNPLoo4/Kjh07ZM+ePbJmzRqZMGGCiFwLOaYA8cILLyinamqq0xRQNm/eLGVlZWbT9f8PpoCSn5+vfJm98847ymdUd9i1rKxM/Pz8ZNy4cRbzwsPDpWvXrsrrdu3ayZ133inr16+X1NRU+fTTT2X27Nk3PJU0adIk5QsgPj5edu/eLbt27RKRa1+w8fHxsnXrVklNTZV169ZJp06dpF27dsp2e/bsWZk5c6YAkM8++0wZk9FoFJH6bcNVMa2/xx57TP7zn//IRx99JG3atBGdTqecVjt+/Li88MILyg758OHDcvr06WqX2aVLF7n33nst2rt37y7du3dXXuv1ennkkUcs+m3fvl0AKOvNZODAgTJ27Fjl9YULF6RFixbSo0cPZf1NmjRJ3NzczLbpnj17mn2uSVZWlgCQd999t9qx1DT22qw7U03VbRPVfaZOp5OwsDD56KOPJDk5WWbPni0ODg4SExOj9Bs1apQEBgZKeXm52fvnzZsnLi4ucuHCBRGp/T7J9KXbunVrGTx4sCQlJUlSUpKEhYWJt7e3/PHHH9XWbKrb3d1d2Ud+/vnnEhkZKS1btrQIKK+88opoNBp54oknZPv27fLZZ59Jr169xMPDw+wUZk3rrnJAefPNNwWA2boXEdmxY4cAkK1btyptkydPlg8++EBSUlIkJSVF/v73v4ubm5vExsYqfTIzM6VNmzbSpUsX5efQFKAqB5S67Fv27NkjLi4ucv/998vmzZtl586dMnnyZItfrqZOnSru7u6ybNky2bt3r2zfvl1effVVefvtt2v8f2hsDCg1uHDhgtx3331KwnV2dpbevXtLfHy8FBUVmfWtvHNfvXq1AJAtW7aY9VuyZIkAkOTkZKUNgLi5uUleXp7SdvXqVWnfvr3ceeedStvUqVPltttuM/utTkTk9ddfFwA1Xj9g+s1n+vTpZu1fffWVAJC//e1vSlt1R0WqUt1v5V5eXvLZZ5+Z9Y2PjxcHBweLa1o++eQTASA7duwwG09NO62bvQalqumHH34QEfOAIlL3a1BmzZolbm5uZnWfOHFCACg/+KYjS8uXL6/VMq83adIkASAffvhhjf0qKiqkrKxMzpw5IwDk888/V+bVdA1KfbbhygoKCsTNzc0iyPzyyy+i1WrNwoApbNZ0rVPlvtcfbUpPTxcAsm7dOqXN2dlZpk6davH+tLQ0i6MwFy5cECcnJ/n000/N+h48eFCcnJwkOjpaPvzwQwEg//rXv8z6BAcHS2RkpMXn5OTkKNc81WY814+9LuuuttuESWRkpLRo0UIJpSbPPvusuLq6ysWLF0VEZOvWrRb/x6ajBX/5y1+Uttruk0xfumFhYWbX2Jj+76o6Wny9MWPGVLuPvH57/uWXX8TJyUlmzpxp9v6ioiLR6/UyevRopa2mdVc5oFy4cEFcXFzM9pMiIqNHjxZ/f/9qj2CXl5dLWVmZvPzyy+Lr62t2FKW6a1AqBxSR2u1bRETat28vXbp0sahn2LBhEhAQoATO0NBQGTlyZJU1qwnv4qmBr68vDhw4gIyMDLz66qsYMWIETp06hYULFyIsLAwXLlyo9r179uyBh4eHcoeIyeTJkwHA4m6CAQMGwN/fX3nt6OiIMWPG4PTp0zh37hwAYPv27ejXrx8MBgOuXr2qTEOGDAEApKamVlvP3r17zT7fJDw8HHfffXeNdzfUxhdffIGMjAykp6dj+/btGDhwIB599FEkJiYqfbZv347Q0FB07tzZrP7IyEhoNBrs27cPANC9e3cAwOjRo7Flyxb8+uuv9artekuWLEFGRobZFBgYaJVlP/HEE7h8+TI2b96stK1ZswZarRZjx44FAPj4+KBt27Z47bXXsGzZMnzzzTeoqKio0+f85S9/sWjLz8/HM888g8DAQDg5OcHZ2RmtWrUCAHz//fc3NZ66bsPXO3z4MC5fvmyxvQUGBqJ///43vb099thj8PPzwzvvvKO0vf3222jevDnGjBlj1lej0VS7nOvnff7553BxccHgwYPN+tx777145ZVXsHz5ckybNg3jx4/HlClTalxWXeZV52bWXVXbRGUlJSXYvXs3Ro0aBXd3d7OfwaFDh6KkpARffvklAGDIkCHQ6/VYs2aN8v5du3YhJycHTzzxhNJW133Sgw8+aHZNTseOHQEAZ86cqbH2vXv3VruPvN6uXbtw9epVTJw40aweV1dX9OnTR9nHXK82687X1xdRUVFYt26d8vNaUFCAzz//HBMnTjS7RnHPnj0YOHAgdDodHB0d4ezsjJdeegm///478vPzb/hZVanNvuX06dP43//+h3HjxgGAxf9vbm4uTp48CeDafv+///0vFixYgH379uHy5cs3VVdDY0CphXvuuQfz58/Hxx9/jJycHDz//PP4+eefa7xQ9vfff4der7fYQfn5+cHJyQm///67Wbter7dYhqnN1Pf8+fPYtm0bnJ2dzaYOHToAQI2BybSMgIAAi3kGg8Ginrrq1KkT7rnnHnTv3h0PPvggPv74Y9x5552YMWOG0uf8+fP49ttvLer39PSEiCj1P/DAA0hKSlJ2NC1atEBoaCg2btxYrxoBoE2bNrjnnnvMJq1WW+/lAkCHDh3QvXt3ZadeXl6OhIQEjBgxAj4+PgCufWHt3r0bkZGRWLp0Kbp27YrmzZvjueeeQ1FR0Q0/w93dHV5eXmZtFRUViIiIwGeffYZ58+Zh9+7dSE9PV75sbnbnU9dtuPJ7Aetvb1qtFlOnTsWGDRvwxx9/4LfffsOWLVvw5JNPmv0/+vr6VvkZFy9eBADl/wMAPvnkEwwZMqTKC0vHjRsHFxcXlJaWYu7cuRbz6/I5tVXXdVfVNlHdcq9evYq3337b4mdw6NChAP7/PsTJyQkTJkxAYmKictvz2rVrERAQgMjISGWZdd0n+fr6mr02/Z/daBs1bYuVVW47f/48gGu/5FSuafPmzRb11HbdAddCwq+//oqUlBQAwMaNG1FaWmoWJNPT0xEREQEAeP/993Ho0CFkZGRg0aJFtRpndWqzbzGNfc6cORZjnz59OoD////x1ltvYf78+UhKSkK/fv3g4+ODkSNH4ocffrip+hoK7+KpI2dnZyxevBhvvPGGcrdLVXx9ffHVV19BRMx28Pn5+bh69apyx4tJXl6exTJMbaYf6mbNmqFjx4545ZVXqvxMg8FQYz0AkJubixYtWpjNy8nJsainvhwcHNChQwd8/PHHyM/Ph5+fH5o1awY3Nzd8+OGHVb7n+hpGjBiBESNGoLS0FF9++SXi4+MxduxYtG7dWrkrQ40ef/xxTJ8+Hd9//z1++ukn5Obm4vHHHzfr06pVK3zwwQcAgFOnTmHLli2IiYnBlStXsHr16hqXX9Vv5FlZWTh27BjWrl2LSZMmKe2nT5+u11jqug1Xfi9wbXurrL7b27Rp0/Dqq6/iww8/RElJCa5evYpnnnnGrE9YWBi+++47i/ea2kJDQwEARqMRu3fvrvKZE+Xl5Rg3bhy8vb2h1WoxZcoUHDp0CC4uLmafs3HjRly9etXst+jKn1MXdV13tT1K4+3tDUdHR0yYMMHsF4frBQUFKf9+/PHH8dprr2HTpk0YM2YMtm7diujoaLMjIPXZJ9WFr69vjfvI6+sBroVO0xHEmtTlCFdkZCQMBgPWrFmDyMhIrFmzBj169DC7+23Tpk1wdnbG9u3b4erqqrQnJSXV+nOqc6N9i2nsCxcuxEMPPVTlMtq1awcA8PDwQGxsLGJjY3H+/HnlaEpUVBT+97//1btWa2FAqUFubm6Vv8WYDpnX9MM3YMAAbNmyBUlJSRg1apTS/tFHHynzr7d7926cP39eOYRZXl6OzZs3o23btkqgGDZsGHbs2IG2bdvC29u7TmPp378/ACAhIUE5hQIAGRkZ+P7775WEby3l5eX47rvvoNVqld9Qhg0bhri4OPj6+prtCGui1WrRp08f3H777di1axe++eYb9OrVq9a/edXHzXzGY489hlmzZmHt2rX46aefcMcddyi/UVXlrrvuwgsvvIBPP/0UmZmZN1WnaSdb+UjQu+++a9G3LmOq6zZ8vV69esHNzQ0JCQl45JFHlPZz585hz549FqeN6iIgIACPPPIIVq5ciStXriAqKgotW7Y06zNq1ChMnz4dX331FXr06AHg2iHvhIQE9OjRQ/nZ3bZtGzQaDYYNG2bxOYsXL8aBAweQnJwMDw8PPPDAA5g7dy7efPNNs895//338emnn5qdbli3bh0MBoPy2XXRUOvO3d0d/fr1wzfffIOOHTuaBa2q3H333ejRowfWrFmD8vJylJaWWoTt+uyT6qJfv37YunVrlfvI60VGRsLJyQk//vhjrU7d1IUp3C1fvhwHDhzA119/bfEzptFo4OTkZBbiLl++jPXr11ssT6vVWnXf0q5dOwQHB+PYsWOIi4ur9XL9/f0xefJkHDt2DMuXL1fXbeo2vgZG1cLCwmTIkCGycuVK2bNnj3zxxRfy+uuvS0BAgNx2221mV/NXdweEp6enLFu2TFJSUmTx4sXi7Oxcp7t4Nm3apPTLycmRVq1aSfv27WXlypWye/du+c9//iPvvPOOPPjggzXexSJy7S4ejUYj0dHRsmvXLnn33XfFz89PAgMDlavyRW7uIlnTHT+HDx+WpKQkGT58uACQ559/XulbXFwsXbp0kRYtWsg///lPSUlJkV27dsn7778vjzzyiHz55ZciIvLiiy/K448/LgkJCbJv3z5JSkqSfv36ibOzs2RlZYnItTuC3Nzc5N5775W9e/dKRkaG/Prrr9XWWdfbjEVEfvrpJwEgI0eOlAMHDkhGRobZeqrOY489Jn5+flVeVHfs2DG5//775a233pL//ve/snv3blm0aJE4ODhY9K3MdFtkZVeuXJG2bdtKq1atZMOGDbJz506ZMWOG3HXXXRZjMq2HqVOnSlpammRkZEhhYaGI1G8brorpTpQJEybIjh07ZP369XLnnXda3IlSl4tkTUwXd6Oa2y9LSkqkQ4cOEhgYKP/+978lJSVFRo0aZfGgthEjRsiwYcMs3p+cnCwODg5m68504Wfli78HDRok3t7e8t5778mePXvkqaeeEgCSkJBww3FUN/barrvqtonqHD9+XLy9vSU8PFzWrFkje/fula1bt8qyZcukX79+Fv3fffddASAtWrSQ3r17W8yv7T7p+tuMK6u8jVblu+++Ezc3NwkJCZFNmzbJ1q1bJTIyUgIDAy0u+o6LixMnJyeZOnWqJCYmyr59+2Tz5s0ye/Zss8ce1LTuKl8ka3Ly5EllfVS+aFVEZPfu3QJAHn74YUlOTpaNGzdKt27dJDg42KLOSZMmiVarlU2bNkl6erryfVLVRbImNe1bRK7dxaPVaiUiIkI2bNggqampkpiYKHFxcfLwww8r/cLDw+Xll1+WpKQkSU1NldWrV4uvr6/06tWryvVhKwwoNdi8ebOMHTtWgoOD5bbbbhNnZ2dp2bKlTJgwweJ5BNU9Q+KZZ56RgIAAcXJyklatWsnChQurfQ7KypUrpW3btuLs7Czt27ev8kmUv/32mzz33HMSFBQkzs7O4uPjI926dZNFixZZPEukMtNzUO666y5xdnaWZs2ayfjx4y2CTX3v4vHx8ZEePXrIhx9+aHGbYnFxsbzwwgvKs1hMtzw+//zzyhX627dvlyFDhsgdd9yhPCdk6NChcuDAAbNlbdy4Udq3by/Ozs433MndTEAREVm+fLkEBQWJo6Njre8aSk5OVtZF5dsSz58/L5MnT5b27duLh4eH3HbbbdKxY0d54403bvgE0Zp2qCdOnJBBgwaJp6eneHt7yyOPPCK//PJLlWNauHChGAwGcXBwMLtLqT7bcHX+9a9/SceOHZX/6xEjRljcbXYzAUVEpHXr1nL33XdXOz8vL08mTpwoPj4+4urqKj179pSUlBRlfnFxsbi6ulr8n+bk5CjPprl++62oqJCoqCi5/fbbzb5oioqK5LnnnhO9Xi8uLi7SsWPHG96VYlLT2Guz7uoaUESufQE+8cQTynNLmjdvLr1795Z//OMfFn2NRqO4ubkJAHn//ferXF5t9kn1DSgiIocOHZKePXuKVqsVvV4vc+fOrfY5KKZfary8vESr1UqrVq3k4YcfNguzNxNQRER69+4tAKq87VdE5MMPP5R27dqJVquVNm3aSHx8vHzwwQcWdf78888SEREhnp6eghqeg3K9mvYtJseOHZPRo0eLn5+fODs7i16vl/79+8vq1auVPgsWLJB77rlHeVZKmzZt5Pnnn6/VL2CNSSMiYt1jMlRXGo0GM2bMwIoVK2xdClGT8O2336JTp0545513lAsA62rLli0YN24czp8/f1MXsxJRw+JdPETUZPz444/Ys2cPnn76aQQEBFjcilsXo0ePRllZGcMJkUoxoBBRk/H3v/8dgwYNQnFxMT7++GP1XMxHRFbHUzxERESkOjyCQkRERKrDgEJERESqw4BCREREqtMknyRbUVGBnJwceHp63tQf4yIiIqLGJyIoKiqCwWCAg0PNx0iaZEDJycmx2l+gJSIiosZ19uxZi78LV1mTDCienp4Arg2wtn+JkoiIiGyrsLAQgYGByvd4TZpkQDGd1vHy8mJAISIiamJqc3kGL5IlIiIi1WFAISIiItVhQCEiIiLVYUAhIiIi1WFAISIiItVhQCEiIiLVYUAhIiIi1WFAISIiItVhQCEiIiLVaZJPkm0o5RWC9OyLyC8qgZ+nK8KDfODowD9GSERE1NgYUP7PzqxcxG47gVxjidIWoHPF4qgQDA4NsGFlRERE9oeneHAtnExLyDQLJwCQZyzBtIRM7MzKtVFlRERE9snuA0p5hSB22wlIFfNMbbHbTqC8oqoeRERE1BDsPqCkZ1+0OHJyPQGQayxBevbFxiuKiIjIztl9QMkvqj6c3Ew/IiIiqj+7Dyh+nq5W7UdERET1Z/cBJTzIBwE6V1R3M7EG1+7mCQ/yacyyiIiI7JrdBxRHBw0WR4UAgEVIMb1eHBXC56EQERE1IrsPKAAwODQAq8Z3hV5nfhpHr3PFqvFd+RwUIiKiRsYHtf2fwaEBGBSi55NkiYiIVIAB5TqODhr0autr6zKIiIjsHk/xEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6tQ5oOzfvx9RUVEwGAzQaDRISkqy6PP9999j+PDh0Ol08PT0RM+ePfHLL78o80tLSzFz5kw0a9YMHh4eGD58OM6dO1evgRAREdGto84B5dKlS+jUqRNWrFhR5fwff/wR9913H9q3b499+/bh2LFjePHFF+Hq6qr0iY6ORmJiIjZt2oSDBw+iuLgYw4YNQ3l5+c2PhIiIiG4ZGhGRm36zRoPExESMHDlSaXv00Ufh7OyM9evXV/keo9GI5s2bY/369RgzZgwAICcnB4GBgdixYwciIyNv+LmFhYXQ6XQwGo3w8vK62fKJiIioEdXl+9uq16BUVFTgP//5D+666y5ERkbCz88PPXr0MDsNdOTIEZSVlSEiIkJpMxgMCA0NRVpaWpXLLS0tRWFhodlEREREty6rBpT8/HwUFxfj1VdfxeDBg5GcnIxRo0bhoYceQmpqKgAgLy8PLi4u8Pb2Nnuvv78/8vLyqlxufHw8dDqdMgUGBlqzbCIiIlIZqx9BAYARI0bg+eefR+fOnbFgwQIMGzYMq1evrvG9IgKNRlPlvIULF8JoNCrT2bNnrVk2ERERqYxVA0qzZs3g5OSEkJAQs/a7775buYtHr9fjypUrKCgoMOuTn58Pf3//Kper1Wrh5eVlNhEREdGty6oBxcXFBd27d8fJkyfN2k+dOoVWrVoBALp16wZnZ2ekpKQo83Nzc5GVlYXevXtbsxwiIiJqopzq+obi4mKcPn1aeZ2dnY2jR4/Cx8cHLVu2xNy5czFmzBg88MAD6NevH3bu3Ilt27Zh3759AACdTocpU6Zg9uzZ8PX1hY+PD+bMmYOwsDAMHDjQagMjIiKipqvOtxnv27cP/fr1s2ifNGkS1q5dCwD48MMPER8fj3PnzqFdu3aIjY3FiBEjlL4lJSWYO3cuNmzYgMuXL2PAgAFYuXJlrS9+5W3GRERETU9dvr/r9RwUW2FAISIianps9hwUIiIiImtgQCEiIiLVYUAhIiIi1WFAISIiItVhQCEiIiLVYUAhIiIi1WFAISIiItVhQCEiIiLVYUAhIiIi1WFAISIiItVhQCEiIiLVYUAhIiIi1WFAISIiItVxsnUBpB7lFYL07IvILyqBn6crwoN84OigsXVZRERkhxhQCACwMysXsdtOINdYorQF6FyxOCoEg0MDbFgZERHZI57iIezMysW0hEyzcAIAecYSTEvIxM6sXBtVRkRE9ooBxc6VVwhit52AVDHP1Ba77QTKK6rqQURE1DAYUOxcevZFiyMn1xMAucYSpGdfbLyiiIjI7jGg2Ln8ourDyc30IyIisgYGFDvn5+lq1X5ERETWwIBi58KDfBCgc0V1NxNrcO1unvAgn8Ysi4iI7BwDip1zdNBgcVQIAFiEFNPrxVEhfB4KERE1KgYUwuDQAKwa3xV6nflpHL3OFavGd+VzUIiIqNHxQW0E4FpIGRSi55NkiYhIFRhQSOHooEGvtr62LoOIiIineIiIiEh9GFCIiIhIdRhQiIiISHUYUIiIiEh1GFCIiIhIdRhQiIiISHUYUIiIiEh1GFCIiIhIdRhQiIiISHXqHFD279+PqKgoGAwGaDQaJCUlVdt36tSp0Gg0WL58uVl7aWkpZs6ciWbNmsHDwwPDhw/HuXPn6loKERER3aLqHFAuXbqETp06YcWKFTX2S0pKwldffQWDwWAxLzo6GomJidi0aRMOHjyI4uJiDBs2DOXl5XUth4iIiG5Bdf5bPEOGDMGQIUNq7PPrr7/i2Wefxa5du/Dggw+azTMajfjggw+wfv16DBw4EACQkJCAwMBAfPHFF4iMjKxrSURERHSLsfo1KBUVFZgwYQLmzp2LDh06WMw/cuQIysrKEBERobQZDAaEhoYiLS2tymWWlpaisLDQbCIiIqJbl9UDypIlS+Dk5ITnnnuuyvl5eXlwcXGBt7e3Wbu/vz/y8vKqfE98fDx0Op0yBQYGWrtsIiIiUhGrBpQjR47gzTffxNq1a6HRaOr0XhGp9j0LFy6E0WhUprNnz1qjXCIiIlIpqwaUAwcOID8/Hy1btoSTkxOcnJxw5swZzJ49G61btwYA6PV6XLlyBQUFBWbvzc/Ph7+/f5XL1Wq18PLyMpuIiIjo1mXVgDJhwgR8++23OHr0qDIZDAbMnTsXu3btAgB069YNzs7OSElJUd6Xm5uLrKws9O7d25rlEBERURNV57t4iouLcfr0aeV1dnY2jh49Ch8fH7Rs2RK+vr5m/Z2dnaHX69GuXTsAgE6nw5QpUzB79mz4+vrCx8cHc+bMQVhYmHJXDxEREdm3OgeUr7/+Gv369VNez5o1CwAwadIkrF27tlbLeOONN+Dk5ITRo0fj8uXLGDBgANauXQtHR8e6lkNERES3II2IiK2LqKvCwkLodDoYjUZej0JERNRE1OX7m3+Lh4iIiFSHAYWIiIhUhwGFiIiIVIcBhYiIiFSHAYWIiIhUhwGFiIiIVIcBhYiIiFSHAYWIiIhUhwGFiIiIVIcBhYiIiFSHAYWIiIhUhwGFiIiIVIcBhYiIiFSHAYWIiIhUhwGFiIiIVIcBhYiIiFSHAYWIiIhUx8nWBRCpSXmFID37IvKLSuDn6YrwIB84OmhsXRYRkd1hQCH6PzuzchG77QRyjSVKW4DOFYujQjA4NMCGlRER2R+e4iHCtXAyLSHTLJwAQJ6xBNMSMrEzK9dGlRER2ScGFLJ75RWC2G0nIFXMM7XFbjuB8oqqehARUUNgQCG7l5590eLIyfUEQK6xBOnZFxuvKCIiO8eAQnYvv6j6cHIz/YiIqP4YUMju+Xm6WrUfERHVHwMK2b3wIB8E6FxR3c3EGly7myc8yKcxyyIismsMKGT3HB00WBwVAgAWIcX0enFUCJ+HQkTUiBhQiAAMDg3AqvFdodeZn8bR61yxanxXPgeFiKiR8UFtRP9ncGgABoXo+SRZIiIVYEAhuo6jgwa92vraugwiIrvHUzxERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDp1Dij79+9HVFQUDAYDNBoNkpKSlHllZWWYP38+wsLC4OHhAYPBgIkTJyInJ8dsGaWlpZg5cyaaNWsGDw8PDB8+HOfOnav3YIiIiOjWUOeAcunSJXTq1AkrVqywmPfnn38iMzMTL774IjIzM/HZZ5/h1KlTGD58uFm/6OhoJCYmYtOmTTh48CCKi4sxbNgwlJeX3/xIiIiI6JahERG56TdrNEhMTMTIkSOr7ZORkYHw8HCcOXMGLVu2hNFoRPPmzbF+/XqMGTMGAJCTk4PAwEDs2LEDkZGRN/zcwsJC6HQ6GI1GeHl53Wz5RERE1Ijq8v3d4NegGI1GaDQa3H777QCAI0eOoKysDBEREUofg8GA0NBQpKWlVbmM0tJSFBYWmk1ERER062rQgFJSUoIFCxZg7NixSlLKy8uDi4sLvL29zfr6+/sjLy+vyuXEx8dDp9MpU2BgYEOWTURERDbWYAGlrKwMjz76KCoqKrBy5cob9hcRaDRV/82ThQsXwmg0KtPZs2etXS4RERGpSIMElLKyMowePRrZ2dlISUkxO8+k1+tx5coVFBQUmL0nPz8f/v7+VS5Pq9XCy8vLbCIiIqJbl9UDiimc/PDDD/jiiy/g62v+h9e6desGZ2dnpKSkKG25ubnIyspC7969rV0OERERNUF1/mvGxcXFOH36tPI6OzsbR48ehY+PDwwGAx5++GFkZmZi+/btKC8vV64r8fHxgYuLC3Q6HaZMmYLZs2fD19cXPj4+mDNnDsLCwjBw4EDrjYyIiIiarDrfZrxv3z7069fPon3SpEmIiYlBUFBQle/bu3cv+vbtC+DaxbNz587Fhg0bcPnyZQwYMAArV66s9cWvvM2YiIio6anL93e9noNiKwwoRERETY+qnoNCREREVFcMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOk62LoCI1KO8QpCefRH5RSXw83RFeJAPHB00ti6LiOwQAwoRAQB2ZuUidtsJ5BpLlLYAnSsWR4VgcGiADSsjInvEUzxEhJ1ZuZiWkGkWTgAgz1iCaQmZ2JmVa6PKiMheMaAQ2bnyCkHsthOQKuaZ2mK3nUB5RVU9iIgaBgMKkZ1Lz75oceTkegIg11iC9OyLjVcUEdk9BhQiO5dfVH04uZl+RETWwIBCZOf8PF2t2o+IyBoYUIjsXHiQDwJ0rqjuZmINrt3NEx7k05hlEZGdY0AhsnOODhosjgoBAIuQYnq9OCqEz0MhokbFgEJEGBwagFXju0KvMz+No9e5YtX4rnwOChE1Oj6ojYgAXAspg0L0fJIsEakCAwoRKRwdNOjV1tfWZRAR8RQPERERqU+dA8r+/fsRFRUFg8EAjUaDpKQks/kigpiYGBgMBri5uaFv3744fvy4WZ/S0lLMnDkTzZo1g4eHB4YPH45z587VayBERER066hzQLl06RI6deqEFStWVDl/6dKlWLZsGVasWIGMjAzo9XoMGjQIRUVFSp/o6GgkJiZi06ZNOHjwIIqLizFs2DCUl5ff/EiIiIjolqERkZv+AxsajQaJiYkYOXIkgGtHTwwGA6KjozF//nwA146W+Pv7Y8mSJZg6dSqMRiOaN2+O9evXY8yYMQCAnJwcBAYGYseOHYiMjLzh5xYWFkKn08FoNMLLy+tmyyciIqJGVJfvb6teg5KdnY28vDxEREQobVqtFn369EFaWhoA4MiRIygrKzPrYzAYEBoaqvSprLS0FIWFhWYTERER3bqsGlDy8vIAAP7+/mbt/v7+yry8vDy4uLjA29u72j6VxcfHQ6fTKVNgYKA1yyYiIiKVaZC7eDQa8+cmiIhFW2U19Vm4cCGMRqMynT171mq1EhERkfpYNaDo9XoAsDgSkp+frxxV0ev1uHLlCgoKCqrtU5lWq4WXl5fZRERERLcuqwaUoKAg6PV6pKSkKG1XrlxBamoqevfuDQDo1q0bnJ2dzfrk5uYiKytL6UNERET2rc5Pki0uLsbp06eV19nZ2Th69Ch8fHzQsmVLREdHIy4uDsHBwQgODkZcXBzc3d0xduxYAIBOp8OUKVMwe/Zs+Pr6wsfHB3PmzEFYWBgGDhxovZERERFRk1XngPL111+jX79+yutZs2YBACZNmoS1a9di3rx5uHz5MqZPn46CggL06NEDycnJ8PT0VN7zxhtvwMnJCaNHj8bly5cxYMAArF27Fo6OjlYYEhERETV19XoOiq3wOShERERNj82eg0JERERkDQwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6TrYugIhITcorBOnZF5FfVAI/T1eEB/nA0UFj67KI7A4DChHR/9mZlYvYbSeQayxR2gJ0rlgcFYLBoQE2rIzI/vAUDxERroWTaQmZZuEEAPKMJZiWkImdWbk2qozIPjGgEJHdK68QxG47AalinqktdtsJlFdU1YOIGgIDChHZvfTsixZHTq4nAHKNJUjPvth4RRHZOQYUIrJ7+UXVh5Ob6UdE9ceAQkR2z8/T1ar9iKj+GFCIyO6FB/kgQOeK6m4m1uDa3TzhQT6NWRaRXWNAISK75+igweKoEACwCCmm14ujQvg8FKJGxIBCRARgcGgAVo3vCr3O/DSOXueKVeO78jkoRI3M6gHl6tWreOGFFxAUFAQ3Nze0adMGL7/8MioqKpQ+IoKYmBgYDAa4ubmhb9++OH78uLVLISKqk8GhATg4vz82PtUTbz7aGRuf6omD8/sznBDZgNWfJLtkyRKsXr0a69atQ4cOHfD111/j8ccfh06nw1//+lcAwNKlS7Fs2TKsXbsWd911F/7xj39g0KBBOHnyJDw9Pa1dEhFRrTk6aNCrra+tyyCye1Y/gnL48GGMGDECDz74IFq3bo2HH34YERER+PrrrwFcO3qyfPlyLFq0CA899BBCQ0Oxbt06/Pnnn9iwYYO1yyEiIqImyOoB5b777sPu3btx6tQpAMCxY8dw8OBBDB06FACQnZ2NvLw8REREKO/RarXo06cP0tLSqlxmaWkpCgsLzSYiIiK6dVn9FM/8+fNhNBrRvn17ODo6ory8HK+88goee+wxAEBeXh4AwN/f3+x9/v7+OHPmTJXLjI+PR2xsrLVLJSIiIpWy+hGUzZs3IyEhARs2bEBmZibWrVuH119/HevWrTPrp9GY364nIhZtJgsXLoTRaFSms2fPWrtsIiIiUhGrH0GZO3cuFixYgEcffRQAEBYWhjNnziA+Ph6TJk2CXq8HcO1ISkDA/78yPj8/3+KoiolWq4VWq7V2qURERKRSVj+C8ueff8LBwXyxjo6Oym3GQUFB0Ov1SElJUeZfuXIFqamp6N27t7XLISIioibI6kdQoqKi8Morr6Bly5bo0KEDvvnmGyxbtgxPPPEEgGundqKjoxEXF4fg4GAEBwcjLi4O7u7uGDt2rLXLISIioibI6gHl7bffxosvvojp06cjPz8fBoMBU6dOxUsvvaT0mTdvHi5fvozp06ejoKAAPXr0QHJyMp+BQkRERAAAjYiIrYuoq8LCQuh0OhiNRnh5edm6HCIiIqqFunx/82/xEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeo42boAIiJSj/IKQXr2ReQXlcDP0xXhQT5wdNDYuiyyQwwoREQEANiZlYvYbSeQayxR2gJ0rlgcFYLBoQE2rIzsEU/xEBERdmblYlpCplk4AYA8YwmmJWRiZ1aujSoje8WAQkRk58orBLHbTkCqmGdqi912AuUVVfUgahgMKEREdi49+6LFkZPrCYBcYwnSsy82XlFk9xhQiIjsXH5R9eHkZvoRWUODBJRff/0V48ePh6+vL9zd3dG5c2ccOXJEmS8iiImJgcFggJubG/r27Yvjx483RClERHQDfp6uVu1HZA1WDygFBQW499574ezsjP/+9784ceIE/vnPf+L2229X+ixduhTLli3DihUrkJGRAb1ej0GDBqGoqMja5RAR0Q2EB/kgQOeK6m4m1uDa3TzhQT6NWRbZOY2IWPWqpwULFuDQoUM4cOBAlfNFBAaDAdHR0Zg/fz4AoLS0FP7+/liyZAmmTp16w88oLCyETqeD0WiEl5eXNcsnIrJLprt4AJhdLGsKLavGd+WtxlRvdfn+tvoRlK1bt+Kee+7BI488Aj8/P3Tp0gXvv/++Mj87Oxt5eXmIiIhQ2rRaLfr06YO0tLQql1laWorCwkKziYiIrGdwaABWje8Kvc78NI5e58pwQjZh9Qe1/fTTT1i1ahVmzZqFv/3tb0hPT8dzzz0HrVaLiRMnIi8vDwDg7+9v9j5/f3+cOXOmymXGx8cjNjbW2qUSEdF1BocGYFCInk+SJVWwekCpqKjAPffcg7i4OABAly5dcPz4caxatQoTJ05U+mk05hu8iFi0mSxcuBCzZs1SXhcWFiIwMNDapRMR2T1HBw16tfW1dRlE1j/FExAQgJCQELO2u+++G7/88gsAQK/XA4ByJMUkPz/f4qiKiVarhZeXl9lEREREty6rB5R7770XJ0+eNGs7deoUWrVqBQAICgqCXq9HSkqKMv/KlStITU1F7969rV0OERERNUFWP8Xz/PPPo3fv3oiLi8Po0aORnp6O9957D++99x6Aa6d2oqOjERcXh+DgYAQHByMuLg7u7u4YO3astcshIiKiJsjqAaV79+5ITEzEwoUL8fLLLyMoKAjLly/HuHHjlD7z5s3D5cuXMX36dBQUFKBHjx5ITk6Gp6entcshIiKiJsjqz0FpDHwOChERUdNj0+egEBEREdUXAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREamOk60LICIiUovyCkF69kXkF5XAz9MV4UE+cHTQ2Losu8SAQkREBGBnVi5it51ArrFEaQvQuWJxVAgGhwbYsDL7xFM8RERk93Zm5WJaQqZZOAGAPGMJpiVkYmdWro0qs18NHlDi4+Oh0WgQHR2ttIkIYmJiYDAY4Obmhr59++L48eMNXQoREZGF8gpB7LYTkCrmmdpit51AeUVVPaihNGhAycjIwHvvvYeOHTuatS9duhTLli3DihUrkJGRAb1ej0GDBqGoqKghyyEiIrKQnn3R4sjJ9QRArrEE6dkXG68oariAUlxcjHHjxuH999+Ht7e30i4iWL58ORYtWoSHHnoIoaGhWLduHf78809s2LChocohIiKqUn5R9eHkZvqRdTRYQJkxYwYefPBBDBw40Kw9OzsbeXl5iIiIUNq0Wi369OmDtLS0KpdVWlqKwsJCs4mIiMga/DxdrdqPrKNBAsqmTZuQmZmJ+Ph4i3l5eXkAAH9/f7N2f39/ZV5l8fHx0Ol0yhQYGGj9oomIyC6FB/kgQOeK6m4m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", "text/plain": [ "
" ] @@ -445,7 +413,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -454,16 +422,16 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([-24.8655584 , -1.18514632])" + "array([-21.44648644, -1.55708767])" ] }, - "execution_count": 68, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index c29991ea4..79061bee2 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -35,19 +35,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "var = _make_sympy_vec(\"x\", 2)\n", "s = sp.Function(\"s\")\n", - "g = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")" + "n = sp.symbols(\"n\")\n", + "i = sp.symbols(\"i\")" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -110,7 +110,7 @@ "4" ] }, - "execution_count": 6, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -122,19 +122,19 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 4.14251966063262 \\cdot 10^{-15}$" + "$\\displaystyle 7.21644966006352 \\cdot 10^{-16}$" ], "text/plain": [ - "4.14251966063262e-15" + "7.21644966006352e-16" ] }, - "execution_count": 7, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -159,7 +159,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -176,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -188,7 +188,7 @@ " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" ] }, - "execution_count": 9, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -222,7 +222,7 @@ "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" ] }, - "execution_count": 10, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -260,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -276,20 +276,21 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 39, "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'i' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[12], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m column_recur \u001b[38;5;241m=\u001b[39m \u001b[43mgrid_recur_to_column_recur\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgrid_recur\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43ms_terms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m column_recur\n", - "Cell \u001b[0;32mIn[11], line 6\u001b[0m, in \u001b[0;36mgrid_recur_to_column_recur\u001b[0;34m(grid_recur, s_terms)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m s_t \u001b[38;5;129;01min\u001b[39;00m s_terms:\n\u001b[1;32m 5\u001b[0m bag\u001b[38;5;241m.\u001b[39madd(\u001b[38;5;241m-\u001b[39m((\u001b[38;5;241m0\u001b[39m\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m]))\n\u001b[0;32m----> 6\u001b[0m grid_recur_simp \u001b[38;5;241m=\u001b[39m grid_recur_simp\u001b[38;5;241m.\u001b[39msubs(s(n\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m0\u001b[39m],\u001b[43mi\u001b[49m\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m]), (\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m(s_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m*\u001b[39ms((n\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m],(i\u001b[38;5;241m-\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m])\u001b[38;5;241m+\u001b[39ms_t[\u001b[38;5;241m1\u001b[39m]))\n\u001b[1;32m 7\u001b[0m shift \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmin\u001b[39m(bag)\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m sp\u001b[38;5;241m.\u001b[39msolve(sp\u001b[38;5;241m.\u001b[39msimplify(grid_recur_simp \u001b[38;5;241m*\u001b[39m sp\u001b[38;5;241m.\u001b[39mfactorial(i))\u001b[38;5;241m.\u001b[39msubs(n, n\u001b[38;5;241m+\u001b[39mshift), s(n,i))[\u001b[38;5;241m0\u001b[39m]\n", - "\u001b[0;31mNameError\u001b[0m: name 'i' is not defined" - ] + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -306,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -320,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -332,7 +333,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 115, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -343,32 +344,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\frac{- n^{3} s{\\left(n - 2,0 \\right)} + 5 n^{2} s{\\left(n - 2,0 \\right)} - 8 n s{\\left(n - 2,0 \\right)} + 4 s{\\left(n - 2,0 \\right)}}{x_{1}^{2} \\left(n - 2\\right)}$" + "$\\displaystyle \\frac{- 12 s{\\left(-1,2 \\right)} - 36 s{\\left(1,2 \\right)}}{3 x_{1}^{2}}$" ], "text/plain": [ - "(-n**3*s(n - 2, 0) + 5*n**2*s(n - 2, 0) - 8*n*s(n - 2, 0) + 4*s(n - 2, 0))/(x1**2*(n - 2))" + "(-12*s(-1, 2) - 36*s(1, 2))/(3*x1**2)" ] }, - "execution_count": 117, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "get_taylor_recurrence(helmholtz2d)" + "get_taylor_recurrence(helmholtz2d).subs(i, 2).subs(n, 3)" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Part 6: Check Edge Cases for Grid Recurrence" + ] + }, + { + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [] } ], From 587504d8afc61d3f1b1c61585dc142d5a380d78a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 27 Dec 2024 23:07:24 -0800 Subject: [PATCH 124/193] Produce plots next time --- test/plot_taylor_recurrence.ipynb | 291 ++++++++++++++++++++++++++---- 1 file changed, 257 insertions(+), 34 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 79061bee2..b7a7a3288 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -76,11 +76,11 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ - "def compute_derivatives_h2d(p):\n", + "def compute_derivatives_h2d(p, k=1.0):\n", " var = _make_sympy_vec(\"x\", 2)\n", " var_t = _make_sympy_vec(\"t\", 2)\n", " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -110,39 +110,39 @@ "4" ] }, - "execution_count": 33, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "recur, order = get_shifted_recurrence_exp_from_pde(laplace2d)\n", - "order" + "recur_lap, order_lap = get_shifted_recurrence_exp_from_pde(laplace2d)\n", + "order_lap" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 7.21644966006352 \\cdot 10^{-16}$" + "$\\displaystyle -5.69422980989387 \\cdot 10^{-16}$" ], "text/plain": [ - "7.21644966006352e-16" + "-5.69422980989387e-16" ] }, - "execution_count": 34, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Sanity check that recurrence is correct\n", - "derivs_lap = compute_derivatives(5)\n", - "exp = recur.subs(n, 4)\n", + "derivs_lap = compute_derivatives(15)\n", + "exp = recur_lap.subs(n, 4)\n", "exp.subs(s(4), derivs_lap[4]).subs(s(3), derivs_lap[3]).subs(s(2), derivs_lap[2]).subs(s(1), derivs_lap[1]).subs(var[0],np.random.rand()).subs(var[1],np.random.rand())" ] }, @@ -159,11 +159,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "def get_grid(recur):\n", + "def get_grid(recur, order):\n", " poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)])\n", " coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)]\n", "\n", @@ -176,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -188,13 +188,13 @@ " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" ] }, - "execution_count": 36, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "grid = get_grid(recur)\n", + "grid = get_grid(recur_lap, order_lap)\n", "grid" ] }, @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -222,7 +222,7 @@ "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" ] }, - "execution_count": 37, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -260,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -276,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -288,7 +288,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 39, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -307,13 +307,13 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def get_taylor_recurrence(pde):\n", " recur, order = get_shifted_recurrence_exp_from_pde(pde)\n", - " grid = get_grid(recur)\n", + " grid = get_grid(recur, order)\n", " grid_recur, s_terms = convert(grid)\n", " column_recur = grid_recur_to_column_recur(grid_recur, s_terms)\n", " return column_recur" @@ -321,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -333,7 +333,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 41, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -344,19 +344,19 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\frac{- 12 s{\\left(-1,2 \\right)} - 36 s{\\left(1,2 \\right)}}{3 x_{1}^{2}}$" + "$\\displaystyle \\frac{- 8 s{\\left(-1,2 \\right)} - 12 s{\\left(1,2 \\right)}}{x_{1}^{2}}$" ], "text/plain": [ - "(-12*s(-1, 2) - 36*s(1, 2))/(3*x1**2)" + "(-8*s(-1, 2) - 12*s(1, 2))/x1**2" ] }, - "execution_count": 46, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -375,6 +375,229 @@ { "cell_type": "markdown", "metadata": {}, + "source": [ + "## Laplace" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[log(sqrt(x1**2)), 0, x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0],\n", + " [0, -1/x1**2, 0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8],\n", + " [x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0],\n", + " [0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10],\n", + " [-6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0],\n", + " [0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12],\n", + " [120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0, -39916800/x1**12, 0],\n", + " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "width_lap_grid = 8\n", + "length_lap_grid = 8\n", + "true_grid_lap = [[sp.diff(derivs_lap[i], var[0], j).subs(var[0], 0) for j in range(width_lap_grid)] for i in range(length_lap_grid)]\n", + "true_grid_lap" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_recurrence(laplace2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0$" + ], + "text/plain": [ + "0" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_recurrence(laplace2d).subs(n, 2).subs(i, 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Helmholtz" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[0.25*I*hankel1(0, 1.0*sqrt(x1**2)),\n", + " 0,\n", + " 0.25*I*(0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2),\n", + " 0],\n", + " [0,\n", + " -0.25*I*(hankel1(-1, 1.0*sqrt(x1**2))/2 - hankel1(1, 1.0*sqrt(x1**2))/2)/sqrt(x1**2),\n", + " 0,\n", + " I*(-(0.75*(0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - 0.75*(0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) + 0.375*(hankel1(-1, 1.0*sqrt(x1**2)) - hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2))],\n", + " [0.25*I*(0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2),\n", + " 0,\n", + " 0.25*I*(((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (1.0*hankel1(-1, 1.0*sqrt(x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**2),\n", + " 0],\n", + " [0,\n", + " 0.25*I*(-(1.0*(0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - 1.0*(0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) + (1.5*hankel1(-1, 1.0*sqrt(x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**2),\n", + " 0,\n", + " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "derivs_helm = compute_derivatives_h2d(5)\n", + "width_helm_grid = 4\n", + "length_helm_grid = 4\n", + "true_grid_helm = [[sp.diff(derivs_helm[i], var[0], j).subs(var[0], 0) for j in range(width_helm_grid)] for i in range(length_helm_grid)]\n", + "true_grid_helm" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{- i^{2} s{\\left(n - 4,i \\right)} - i^{2} s{\\left(n - 2,i \\right)} - 2 i n s{\\left(n - 4,i \\right)} - 2 i n s{\\left(n - 2,i \\right)} + 4 i s{\\left(n - 4,i \\right)} + 3 i s{\\left(n - 2,i \\right)} - n^{2} s{\\left(n - 4,i \\right)} - n^{2} s{\\left(n - 2,i \\right)} + 4 n s{\\left(n - 4,i \\right)} + 3 n s{\\left(n - 2,i \\right)} - 3 s{\\left(n - 4,i \\right)} - 2 s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "(-i**2*s(n - 4, i) - i**2*s(n - 2, i) - 2*i*n*s(n - 4, i) - 2*i*n*s(n - 2, i) + 4*i*s(n - 4, i) + 3*i*s(n - 2, i) - n**2*s(n - 4, i) - n**2*s(n - 2, i) + 4*n*s(n - 4, i) + 3*n*s(n - 2, i) - 3*s(n - 4, i) - 2*s(n - 2, i))/x1**2" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_recurrence(helmholtz2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{- 3 s{\\left(0,0 \\right)} - 6 s{\\left(2,0 \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "(-3*s(0, 0) - 6*s(2, 0))/x1**2" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_recurrence(helmholtz2d).subs(n, 4).subs(i, 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 38.8984483730777 + 0.0925062333610791 i$" + ], + "text/plain": [ + "38.8984483730777 + 0.0925062333610791*I" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_recurrence(helmholtz2d).subs(n, 4).subs(i, 0).subs(s(0,0), true_grid_helm[0][0]).subs(s(2,0), true_grid_helm[2][0]).subs(var[1], 0.4).evalf()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 38.8984483730777 + 0.0925062333610797 i$" + ], + "text/plain": [ + "38.8984483730777 + 0.0925062333610797*I" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sp.diff(derivs_helm[4], var[0], 0).subs(var[0], 0).subs(var[1], 0.4).evalf()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [] } ], From bc24ab23cec525acc93d1199f8014cf7d2f01ca3 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 29 Dec 2024 15:46:17 -0800 Subject: [PATCH 125/193] Code up evaluation of grid_recurrence --- test/plot_taylor_recurrence.ipynb | 203 +++++++++++++++++++++++++++--- 1 file changed, 183 insertions(+), 20 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index b7a7a3288..2df60dece 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -128,10 +128,10 @@ { "data": { "text/latex": [ - "$\\displaystyle -5.69422980989387 \\cdot 10^{-16}$" + "$\\displaystyle -1.02418074021671 \\cdot 10^{-14}$" ], "text/plain": [ - "-5.69422980989387e-16" + "-1.02418074021671e-14" ] }, "execution_count": 7, @@ -381,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -397,7 +397,7 @@ " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" ] }, - "execution_count": 29, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -423,7 +423,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 30, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -434,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -446,7 +446,7 @@ "0" ] }, - "execution_count": 31, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -455,6 +455,169 @@ "get_taylor_recurrence(laplace2d).subs(n, 2).subs(i, 0)" ] }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[log(sqrt(x1**2)), 0, x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0],\n", + " [0, -1/x1**2, 0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8]]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "initial_grid = true_grid_lap[0:2]\n", + "initial_grid" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[-0.693147180559945,\n", + " 0,\n", + " 4.00000000000000,\n", + " 0,\n", + " -96.0000000000000,\n", + " 0,\n", + " 7680.00000000000,\n", + " 0],\n", + " [0,\n", + " -4.00000000000000,\n", + " 0,\n", + " 96.0000000000000,\n", + " 0,\n", + " -7680.00000000000,\n", + " 0,\n", + " 1290240.00000000]]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# assume len(initial_grid) >= 1\n", + "initial_grid_subs = []\n", + "initial_grid_width = len(initial_grid[0])\n", + "initial_grid_length = len(initial_grid)\n", + "coord_dict = {var[1]: 0.5}\n", + "\n", + "for i_x in range(initial_grid_length):\n", + " tmp = []\n", + " for j_x in range(initial_grid_width):\n", + " tmp.append(initial_grid[i_x][j_x].subs(var[1],coord_dict[var[1]]))\n", + " initial_grid_subs.append(tmp)\n", + "\n", + "initial_grid_subs" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "grid_recurrence_laplace_2d = get_taylor_recurrence(laplace2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "n_derivs_compute = 5\n", + "grid_recurrence_laplace_2d = get_taylor_recurrence(laplace2d)\n", + "order_grid_recur = 2\n", + "\n", + "for n_x in range(initial_grid_length, n_derivs_compute):\n", + " appMe = []\n", + " for i_x in range(initial_grid_width):\n", + " exp_i_n = grid_recurrence_laplace_2d.subs(n, n_x).subs(i, i_x)\n", + " if exp_i_n == 0:\n", + " exp_i_n = sp.diff(derivs_lap[n_x], var[0], i_x).subs(var[0], 0)\n", + " kys = [s(n_x-k,i_x) for k in range(1,order_grid_recur+1)]\n", + " vals = [initial_grid_subs[n_x-k][i_x] for k in range(1, order_grid_recur+1)]\n", + " my_dict = dict(zip(kys, vals))\n", + " res = exp_i_n.subs(my_dict).subs(coord_dict)\n", + " appMe.append(res)\n", + "\n", + "\n", + " initial_grid_subs.append(appMe)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[-0.693147180559945,\n", + " 0,\n", + " 4.00000000000000,\n", + " 0,\n", + " -96.0000000000000,\n", + " 0,\n", + " 7680.00000000000,\n", + " 0],\n", + " [0,\n", + " -4.00000000000000,\n", + " 0,\n", + " 96.0000000000000,\n", + " 0,\n", + " -7680.00000000000,\n", + " 0,\n", + " 1290240.00000000],\n", + " [4.00000000000000,\n", + " 0,\n", + " -96.0000000000000,\n", + " 0,\n", + " 7680.00000000000,\n", + " 0,\n", + " -1290240.00000000,\n", + " 0],\n", + " [0,\n", + " 96.0000000000000,\n", + " 0,\n", + " -7680.00000000000,\n", + " 0,\n", + " 1290240.00000000,\n", + " 0,\n", + " -371589120.000000],\n", + " [-96.0000000000000,\n", + " 0,\n", + " 7680.00000000000,\n", + " 0,\n", + " -1290240.00000000,\n", + " 0,\n", + " 371589120.000000,\n", + " 0]]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "initial_grid_subs" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -464,7 +627,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -488,7 +651,7 @@ " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" ] }, - "execution_count": 51, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -503,7 +666,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -515,7 +678,7 @@ "(-i**2*s(n - 4, i) - i**2*s(n - 2, i) - 2*i*n*s(n - 4, i) - 2*i*n*s(n - 2, i) + 4*i*s(n - 4, i) + 3*i*s(n - 2, i) - n**2*s(n - 4, i) - n**2*s(n - 2, i) + 4*n*s(n - 4, i) + 3*n*s(n - 2, i) - 3*s(n - 4, i) - 2*s(n - 2, i))/x1**2" ] }, - "execution_count": 39, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -526,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -538,7 +701,7 @@ "(-3*s(0, 0) - 6*s(2, 0))/x1**2" ] }, - "execution_count": 41, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -549,7 +712,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -561,7 +724,7 @@ "38.8984483730777 + 0.0925062333610791*I" ] }, - "execution_count": 53, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -572,7 +735,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -584,7 +747,7 @@ "38.8984483730777 + 0.0925062333610797*I" ] }, - "execution_count": 54, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } From c0cf35cf160f0063b8ec72422ef6f2c5c5dc3b5f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 31 Dec 2024 20:20:25 -0800 Subject: [PATCH 126/193] Update plot_taylor_recurrence.ipynb --- test/plot_taylor_recurrence.ipynb | 330 +++++++++++------------------- 1 file changed, 125 insertions(+), 205 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 2df60dece..243315e22 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -128,10 +128,10 @@ { "data": { "text/latex": [ - "$\\displaystyle -1.02418074021671 \\cdot 10^{-14}$" + "$\\displaystyle 3.70536934468646 \\cdot 10^{-15}$" ], "text/plain": [ - "-1.02418074021671e-14" + "3.70536934468646e-15" ] }, "execution_count": 7, @@ -411,211 +411,135 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 41, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "get_taylor_recurrence(laplace2d)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0$" - ], - "text/plain": [ - "0" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "get_taylor_recurrence(laplace2d).subs(n, 2).subs(i, 0)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[log(sqrt(x1**2)), 0, x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0],\n", - " [0, -1/x1**2, 0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8]]" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "initial_grid = true_grid_lap[0:2]\n", - "initial_grid" + "def create_subs_grid(width, length, derivs, coord_dict):\n", + " initial_grid = [[sp.diff(derivs[i], var[0], j).subs(var[0], 0) for j in range(width)] for i in range(length)]\n", + "\n", + " # assume len(initial_grid) >= 1\n", + " initial_grid_subs = []\n", + " initial_grid_width = len(initial_grid[0])\n", + " initial_grid_length = len(initial_grid)\n", + " coord_dict = {var[1]: 1}\n", + "\n", + " for i_x in range(initial_grid_length):\n", + " tmp = []\n", + " for j_x in range(initial_grid_width):\n", + " tmp.append((initial_grid[i_x][j_x].subs(var[1],coord_dict[var[1]])).evalf())\n", + " initial_grid_subs.append(tmp)\n", + " \n", + " return initial_grid_subs\n" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[[-0.693147180559945,\n", - " 0,\n", - " 4.00000000000000,\n", - " 0,\n", - " -96.0000000000000,\n", - " 0,\n", - " 7680.00000000000,\n", - " 0],\n", - " [0,\n", - " -4.00000000000000,\n", - " 0,\n", - " 96.0000000000000,\n", - " 0,\n", - " -7680.00000000000,\n", - " 0,\n", - " 1290240.00000000]]" + "[[0, 0, 1.00000000000000, 0, -6.00000000000000, 0],\n", + " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000]]" ] }, - "execution_count": 30, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# assume len(initial_grid) >= 1\n", - "initial_grid_subs = []\n", - "initial_grid_width = len(initial_grid[0])\n", - "initial_grid_length = len(initial_grid)\n", - "coord_dict = {var[1]: 0.5}\n", - "\n", - "for i_x in range(initial_grid_length):\n", - " tmp = []\n", - " for j_x in range(initial_grid_width):\n", - " tmp.append(initial_grid[i_x][j_x].subs(var[1],coord_dict[var[1]]))\n", - " initial_grid_subs.append(tmp)\n", - "\n", - "initial_grid_subs" + "coord_dict = {var[1]: 1}\n", + "initial_grid_subs_laplace = create_subs_grid(6, 2, derivs_lap, coord_dict)\n", + "initial_grid_subs_laplace" ] }, { - "cell_type": "code", - "execution_count": 31, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "grid_recurrence_laplace_2d = get_taylor_recurrence(laplace2d)" + "### Package into Function" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ - "n_derivs_compute = 5\n", - "grid_recurrence_laplace_2d = get_taylor_recurrence(laplace2d)\n", - "order_grid_recur = 2\n", + "def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur):\n", + " initial_grid_subs = [row[:] for row in initial_grid_in] #deep copy\n", + "\n", + " initial_grid_width = len(initial_grid_subs[0])\n", + " initial_grid_length = len(initial_grid_subs)\n", "\n", - "for n_x in range(initial_grid_length, n_derivs_compute):\n", - " appMe = []\n", - " for i_x in range(initial_grid_width):\n", - " exp_i_n = grid_recurrence_laplace_2d.subs(n, n_x).subs(i, i_x)\n", - " if exp_i_n == 0:\n", - " exp_i_n = sp.diff(derivs_lap[n_x], var[0], i_x).subs(var[0], 0)\n", - " kys = [s(n_x-k,i_x) for k in range(1,order_grid_recur+1)]\n", - " vals = [initial_grid_subs[n_x-k][i_x] for k in range(1, order_grid_recur+1)]\n", - " my_dict = dict(zip(kys, vals))\n", - " res = exp_i_n.subs(my_dict).subs(coord_dict)\n", - " appMe.append(res)\n", + " for n_x in range(initial_grid_length, n_derivs_compute):\n", + " appMe = []\n", + " for i_x in range(initial_grid_width):\n", + " exp_i_n = grid_recur.subs(n, n_x).subs(i, i_x)\n", + " if exp_i_n == 0:\n", + " exp_i_n = sp.diff(derivs_lap[n_x], var[0], i_x).subs(var[0], 0)\n", + " assert n_x-order_grid_recur >= 0\n", + " kys = [s(n_x-k,i_x) for k in range(1,order_grid_recur+1)]\n", + " vals = [initial_grid_subs[n_x-k][i_x] for k in range(1, order_grid_recur+1)]\n", + " my_dict = dict(zip(kys, vals))\n", + " res = exp_i_n.subs(my_dict).subs(coord_dict)\n", + " appMe.append(res)\n", "\n", + " initial_grid_subs.append(appMe)\n", "\n", - " initial_grid_subs.append(appMe)\n" + " return initial_grid_subs\n" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[[-0.693147180559945,\n", + "[[-0.0220642410539192 + 0.191299421639492*I,\n", " 0,\n", - " 4.00000000000000,\n", + " -0.195303205325072 - 0.110012646436233*I,\n", " 0,\n", - " -96.0000000000000,\n", - " 0,\n", - " 7680.00000000000,\n", + " 1.23801195511219 + 0.0861776136989254*I,\n", " 0],\n", " [0,\n", - " -4.00000000000000,\n", - " 0,\n", - " 96.0000000000000,\n", + " 0.195303205325072 + 0.110012646436233*I,\n", " 0,\n", - " -7680.00000000000,\n", + " -1.23801195511219 - 0.0861776136989254*I,\n", " 0,\n", - " 1290240.00000000],\n", - " [4.00000000000000,\n", + " 21.8306910223677 + 0.0733625774350065*I],\n", + " [1,\n", " 0,\n", - " -96.0000000000000,\n", + " 1.17181923195043 + 0.6600758786174*I,\n", " 0,\n", - " 7680.00000000000,\n", - " 0,\n", - " -1290240.00000000,\n", + " -24.7602391022438 - 1.72355227397851*I,\n", " 0],\n", " [0,\n", - " 96.0000000000000,\n", - " 0,\n", - " -7680.00000000000,\n", + " -1.17181923195043 - 0.6600758786174*I,\n", " 0,\n", - " 1290240.00000000,\n", + " 24.7602391022438 + 1.72355227397851*I,\n", " 0,\n", - " -371589120.000000],\n", - " [-96.0000000000000,\n", + " -916.889022939445 - 3.08122825227027*I],\n", + " [-6,\n", " 0,\n", - " 7680.00000000000,\n", + " -23.4363846390087 - 13.201517572348*I,\n", " 0,\n", - " -1290240.00000000,\n", - " 0,\n", - " 371589120.000000,\n", + " 1039.93004229424 + 72.3891955070973*I,\n", " 0]]" ] }, - "execution_count": 33, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "initial_grid_subs" + "extend_grid(initial_grid_subs_laplace, get_taylor_recurrence(laplace2d), coord_dict, 5, 2)" ] }, { @@ -627,7 +551,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 64, "metadata": {}, "outputs": [ { @@ -651,7 +575,7 @@ " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" ] }, - "execution_count": 19, + "execution_count": 64, "metadata": {}, "output_type": "execute_result" } @@ -666,94 +590,90 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{- i^{2} s{\\left(n - 4,i \\right)} - i^{2} s{\\left(n - 2,i \\right)} - 2 i n s{\\left(n - 4,i \\right)} - 2 i n s{\\left(n - 2,i \\right)} + 4 i s{\\left(n - 4,i \\right)} + 3 i s{\\left(n - 2,i \\right)} - n^{2} s{\\left(n - 4,i \\right)} - n^{2} s{\\left(n - 2,i \\right)} + 4 n s{\\left(n - 4,i \\right)} + 3 n s{\\left(n - 2,i \\right)} - 3 s{\\left(n - 4,i \\right)} - 2 s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "(-i**2*s(n - 4, i) - i**2*s(n - 2, i) - 2*i*n*s(n - 4, i) - 2*i*n*s(n - 2, i) + 4*i*s(n - 4, i) + 3*i*s(n - 2, i) - n**2*s(n - 4, i) - n**2*s(n - 2, i) + 4*n*s(n - 4, i) + 3*n*s(n - 2, i) - 3*s(n - 4, i) - 2*s(n - 2, i))/x1**2" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "get_taylor_recurrence(helmholtz2d)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{- 3 s{\\left(0,0 \\right)} - 6 s{\\left(2,0 \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "(-3*s(0, 0) - 6*s(2, 0))/x1**2" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "get_taylor_recurrence(helmholtz2d).subs(n, 4).subs(i, 0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 68, "metadata": {}, "outputs": [ { "data": { - "text/latex": [ - "$\\displaystyle 38.8984483730777 + 0.0925062333610791 i$" - ], "text/plain": [ - "38.8984483730777 + 0.0925062333610791*I" + "[[-0.0220642410539192 + 0.191299421639492*I,\n", + " 0,\n", + " -0.195303205325072 - 0.110012646436233*I,\n", + " 0],\n", + " [0,\n", + " 0.195303205325072 + 0.110012646436233*I,\n", + " 0,\n", + " -1.23801195511219 - 0.0861776136989254*I],\n", + " [-0.195303205325072 - 0.110012646436233*I,\n", + " 0,\n", + " 1.23801195511219 + 0.0861776136989254*I,\n", + " 0],\n", + " [0,\n", + " -1.23801195511219 - 0.0861776136989254*I,\n", + " 0,\n", + " 21.8306910223677 + 0.0733625774350065*I]]" ] }, - "execution_count": 22, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "get_taylor_recurrence(helmholtz2d).subs(n, 4).subs(i, 0).subs(s(0,0), true_grid_helm[0][0]).subs(s(2,0), true_grid_helm[2][0]).subs(var[1], 0.4).evalf()" + "coord_dict = {var[1]: 1}\n", + "initial_grid_subs_helmholtz = create_subs_grid(4, 4, derivs_helm, coord_dict)\n", + "initial_grid_subs_helmholtz" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 70, "metadata": {}, "outputs": [ { "data": { - "text/latex": [ - "$\\displaystyle 38.8984483730777 + 0.0925062333610797 i$" - ], "text/plain": [ - "38.8984483730777 + 0.0925062333610797*I" + "[[-0.0220642410539192 + 0.191299421639492*I,\n", + " 0,\n", + " -0.195303205325072 - 0.110012646436233*I,\n", + " 0],\n", + " [0,\n", + " 0.195303205325072 + 0.110012646436233*I,\n", + " 0,\n", + " -1.23801195511219 - 0.0861776136989254*I],\n", + " [-0.195303205325072 - 0.110012646436233*I,\n", + " 0,\n", + " 1.23801195511219 + 0.0861776136989254*I,\n", + " 0],\n", + " [0,\n", + " -1.23801195511219 - 0.0861776136989254*I,\n", + " 0,\n", + " 21.8306910223677 + 0.0733625774350065*I],\n", + " [1.23801195511219 + 0.0861776136989253*I,\n", + " 0,\n", + " -21.8306910223677 - 0.0733625774350066*I,\n", + " 0],\n", + " [0,\n", + " 21.8306910223677 + 0.0733625774350066*I,\n", + " 0,\n", + " -873.558604510518 - 0.0650117728078867*I],\n", + " [-21.8306910223677 - 0.0733625774350053*I,\n", + " 0,\n", + " 873.558604510518 + 0.0650117728078907*I,\n", + " 0],\n", + " [0,\n", + " -873.558604510518 - 0.0650117728078907*I,\n", + " 0,\n", + " 61520.8859903481 + 0.0590052637624332*I]]" ] }, - "execution_count": 23, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sp.diff(derivs_helm[4], var[0], 0).subs(var[0], 0).subs(var[1], 0.4).evalf()" + "extend_grid(initial_grid_subs_helmholtz, get_taylor_recurrence(helmholtz2d), coord_dict, 8, 4)" ] }, { From ca86b252ca4b027d96196740631ef1d2902cc7b0 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 31 Dec 2024 20:53:43 -0800 Subject: [PATCH 127/193] Added code to compute taylor lp. Need plot now --- test/plot_taylor_recurrence.ipynb | 137 +++++++++++------------------- 1 file changed, 49 insertions(+), 88 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 243315e22..c923ddf0f 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -128,10 +128,10 @@ { "data": { "text/latex": [ - "$\\displaystyle 3.70536934468646 \\cdot 10^{-15}$" + "$\\displaystyle 5.10702591327572 \\cdot 10^{-15}$" ], "text/plain": [ - "3.70536934468646e-15" + "5.10702591327572e-15" ] }, "execution_count": 7, @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -435,7 +435,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -445,13 +445,13 @@ " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000]]" ] }, - "execution_count": 42, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "coord_dict = {var[1]: 1}\n", + "coord_dict = {var[0]: 2, var[1]: 1}\n", "initial_grid_subs_laplace = create_subs_grid(6, 2, derivs_lap, coord_dict)\n", "initial_grid_subs_laplace" ] @@ -465,7 +465,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -495,45 +495,20 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[[-0.0220642410539192 + 0.191299421639492*I,\n", - " 0,\n", - " -0.195303205325072 - 0.110012646436233*I,\n", - " 0,\n", - " 1.23801195511219 + 0.0861776136989254*I,\n", - " 0],\n", - " [0,\n", - " 0.195303205325072 + 0.110012646436233*I,\n", - " 0,\n", - " -1.23801195511219 - 0.0861776136989254*I,\n", - " 0,\n", - " 21.8306910223677 + 0.0733625774350065*I],\n", - " [1,\n", - " 0,\n", - " 1.17181923195043 + 0.6600758786174*I,\n", - " 0,\n", - " -24.7602391022438 - 1.72355227397851*I,\n", - " 0],\n", - " [0,\n", - " -1.17181923195043 - 0.6600758786174*I,\n", - " 0,\n", - " 24.7602391022438 + 1.72355227397851*I,\n", - " 0,\n", - " -916.889022939445 - 3.08122825227027*I],\n", - " [-6,\n", - " 0,\n", - " -23.4363846390087 - 13.201517572348*I,\n", - " 0,\n", - " 1039.93004229424 + 72.3891955070973*I,\n", - " 0]]" + "[[0, 0, 1.00000000000000, 0, -6.00000000000000, 0],\n", + " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000],\n", + " [1, 0, -6.00000000000000, 0, 120.000000000000, 0],\n", + " [0, 6.00000000000000, 0, -120.000000000000, 0, 5040.00000000000],\n", + " [-6, 0, 120.000000000000, 0, -5040.00000000000, 0]]" ] }, - "execution_count": 63, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -551,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -575,7 +550,7 @@ " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" ] }, - "execution_count": 64, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -590,7 +565,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -614,7 +589,7 @@ " 21.8306910223677 + 0.0733625774350065*I]]" ] }, - "execution_count": 68, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -627,53 +602,39 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 23, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[-0.0220642410539192 + 0.191299421639492*I,\n", - " 0,\n", - " -0.195303205325072 - 0.110012646436233*I,\n", - " 0],\n", - " [0,\n", - " 0.195303205325072 + 0.110012646436233*I,\n", - " 0,\n", - " -1.23801195511219 - 0.0861776136989254*I],\n", - " [-0.195303205325072 - 0.110012646436233*I,\n", - " 0,\n", - " 1.23801195511219 + 0.0861776136989254*I,\n", - " 0],\n", - " [0,\n", - " -1.23801195511219 - 0.0861776136989254*I,\n", - " 0,\n", - " 21.8306910223677 + 0.0733625774350065*I],\n", - " [1.23801195511219 + 0.0861776136989253*I,\n", - " 0,\n", - " -21.8306910223677 - 0.0733625774350066*I,\n", - " 0],\n", - " [0,\n", - " 21.8306910223677 + 0.0733625774350066*I,\n", - " 0,\n", - " -873.558604510518 - 0.0650117728078867*I],\n", - " [-21.8306910223677 - 0.0733625774350053*I,\n", - " 0,\n", - " 873.558604510518 + 0.0650117728078907*I,\n", - " 0],\n", - " [0,\n", - " -873.558604510518 - 0.0650117728078907*I,\n", - " 0,\n", - " 61520.8859903481 + 0.0590052637624332*I]]" - ] - }, - "execution_count": 70, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "extended_grid_helmholtz = extend_grid(initial_grid_subs_helmholtz, get_taylor_recurrence(helmholtz2d), coord_dict, 8, 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "inp_grid = np.array(extended_grid_helmholtz, dtype=complex)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "r, c = inp_grid.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], "source": [ - "extend_grid(initial_grid_subs_helmholtz, get_taylor_recurrence(helmholtz2d), coord_dict, 8, 4)" + "def compute_taylor_lp(inp_grid, coord_dict):\n", + " return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i for i in range(c)]), (1, c)), axis = 1)" ] }, { From f74e8edf82ea6ef1cb6daf836a2cc47d680bcb67 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 1 Jan 2025 12:55:14 -0800 Subject: [PATCH 128/193] Produced plot --- test/plot_taylor_recurrence.ipynb | 576 +++++++++++++++++++++++++++--- 1 file changed, 522 insertions(+), 54 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index c923ddf0f..0fac5fefc 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -35,9 +35,19 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "var = _make_sympy_vec(\"x\", 2)\n", "s = sp.Function(\"s\")\n", @@ -47,9 +57,19 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "w = make_identity_diff_op(2)\n", "laplace2d = laplacian(w)\n", @@ -60,9 +80,19 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def compute_derivatives(p):\n", " var = _make_sympy_vec(\"x\", 2)\n", @@ -76,9 +106,19 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def compute_derivatives_h2d(p, k=1.0):\n", " var = _make_sympy_vec(\"x\", 2)\n", @@ -101,7 +141,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -110,9 +150,18 @@ "4" ] }, - "execution_count": 6, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -122,21 +171,30 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 5.10702591327572 \\cdot 10^{-15}$" + "$\\displaystyle 5.55111512312578 \\cdot 10^{-16}$" ], "text/plain": [ - "5.10702591327572e-15" + "5.55111512312578e-16" ] }, - "execution_count": 7, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -159,9 +217,19 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def get_grid(recur, order):\n", " poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)])\n", @@ -176,7 +244,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -188,9 +256,18 @@ " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" ] }, - "execution_count": 9, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -210,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -222,9 +299,18 @@ "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" ] }, - "execution_count": 10, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -260,9 +346,19 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def grid_recur_to_column_recur(grid_recur, s_terms):\n", " grid_recur_simp = grid_recur\n", @@ -276,7 +372,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -288,9 +384,18 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 12, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -307,9 +412,19 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def get_taylor_recurrence(pde):\n", " recur, order = get_shifted_recurrence_exp_from_pde(pde)\n", @@ -321,7 +436,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -333,9 +448,18 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 14, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -344,7 +468,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -356,9 +480,18 @@ "(-8*s(-1, 2) - 12*s(1, 2))/x1**2" ] }, - "execution_count": 15, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -381,7 +514,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -397,9 +530,18 @@ " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" ] }, - "execution_count": 16, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -411,9 +553,19 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def create_subs_grid(width, length, derivs, coord_dict):\n", " initial_grid = [[sp.diff(derivs[i], var[0], j).subs(var[0], 0) for j in range(width)] for i in range(length)]\n", @@ -435,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -445,9 +597,18 @@ " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000]]" ] }, - "execution_count": 33, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -465,9 +626,19 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur):\n", " initial_grid_subs = [row[:] for row in initial_grid_in] #deep copy\n", @@ -495,7 +666,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -508,9 +679,18 @@ " [-6, 0, 120.000000000000, 0, -5040.00000000000, 0]]" ] }, - "execution_count": 20, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -526,7 +706,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -550,9 +730,18 @@ " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" ] }, - "execution_count": 21, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -565,7 +754,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -589,9 +778,18 @@ " 21.8306910223677 + 0.0733625774350065*I]]" ] }, - "execution_count": 22, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -602,46 +800,316 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "extended_grid_helmholtz = extend_grid(initial_grid_subs_helmholtz, get_taylor_recurrence(helmholtz2d), coord_dict, 8, 4)" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "inp_grid = np.array(extended_grid_helmholtz, dtype=complex)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "r, c = inp_grid.shape" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 52, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "def compute_taylor_lp(inp_grid, coord_dict):\n", - " return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i for i in range(c)]), (1, c)), axis = 1)" + " inp_grid = np.array(inp_grid)\n", + " _, c = inp_grid.shape\n", + " return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i/math.factorial(i) for i in range(c)]), (1, c)), axis = 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Step Final: Create an Interface that Ignores the Taylor Series Grid Structure" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "def compute_lp_orders(pde, loc, num_of_derivs, derivs_list, recur_order, taylor_order):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " coord_dict_t = {var[0]: loc[0], var[1]: loc[1]}\n", + "\n", + " initial_grid_subs = create_subs_grid(taylor_order, recur_order, derivs_list, coord_dict_t)\n", + "\n", + " extended_grid = extend_grid(initial_grid_subs, get_taylor_recurrence(pde), coord_dict_t, num_of_derivs, recur_order)\n", + "\n", + " return compute_taylor_lp(extended_grid, coord_dict_t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Test for Laplace 2D" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "def evaluate_true(coord_dict, p, derivs_list):\n", + " retMe = []\n", + " for i in range(p):\n", + " exp = derivs_list[i]\n", + " f = sp.lambdify(var, exp)\n", + " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", + " return np.array(retMe)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "def compute_error_coord_tg(loc, pde, derivs_list, n_of_derivs, taylor_order, recur_order):\n", + " exp = compute_lp_orders(pde, loc, n_of_derivs+1, derivs_list, recur_order, taylor_order)\n", + " coord_dict_test = {var[0]: loc[0], var[1]: loc[1]}\n", + " true = evaluate_true(coord_dict_test, n_of_derivs+1, derivs_lap)\n", + "\n", + " return (np.abs(exp[-1]-true[-1])/np.abs(true[-1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 1.29081957436961 \\cdot 10^{-14}$" + ], + "text/plain": [ + "1.29081957436961e-14" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "loc = np.array([1e-4, 1])\n", + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 6, 4, 2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "def generate_error_grid(res, order_plot, pde, derivs, taylor_order, recur_order):\n", + " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " res=len(x_grid)\n", + " plot_me = np.empty((res, res))\n", + " for i in range(res):\n", + " for j in range(res):\n", + " if abs(x_grid[i]) == abs(y_grid[j]):\n", + " plot_me[i, j] = 1e-16\n", + " else:\n", + " plot_me[i,j] = compute_error_coord_tg(np.array([x_grid[i],y_grid[j]]), pde, derivs, order_plot, taylor_order, recur_order)\n", + " if plot_me[i,j] == 0:\n", + " plot_me[i, j] = 1e-16\n", + " return x_grid, y_grid, plot_me" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'source y-coord')" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "x_grid, y_grid, plot_me_lap = generate_error_grid(8, 8, laplace2d, derivs_lap, 2, 2)\n", + "plt.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "plt.colorbar()\n", + "plt.xscale('log')\n", + "plt.yscale('log')\n", + "plt.xlabel(\"source x-coord\")\n", + "plt.ylabel(\"source y-coord\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [] } ], From b3364f8117b49ec483bd43fd115771486f38f0a7 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 1 Jan 2025 17:03:10 -0800 Subject: [PATCH 129/193] Plot working --- test/plot_taylor_recurrence.ipynb | 512 ++++++------------------------ 1 file changed, 102 insertions(+), 410 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 0fac5fefc..9fbe639a6 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -35,19 +35,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "var = _make_sympy_vec(\"x\", 2)\n", "s = sp.Function(\"s\")\n", @@ -57,19 +47,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "w = make_identity_diff_op(2)\n", "laplace2d = laplacian(w)\n", @@ -80,19 +60,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def compute_derivatives(p):\n", " var = _make_sympy_vec(\"x\", 2)\n", @@ -106,19 +76,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def compute_derivatives_h2d(p, k=1.0):\n", " var = _make_sympy_vec(\"x\", 2)\n", @@ -141,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -150,18 +110,9 @@ "4" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -171,30 +122,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 5.55111512312578 \\cdot 10^{-16}$" + "$\\displaystyle 4.44089209850063 \\cdot 10^{-16}$" ], "text/plain": [ - "5.55111512312578e-16" + "4.44089209850063e-16" ] }, - "execution_count": 10, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -217,19 +159,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def get_grid(recur, order):\n", " poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)])\n", @@ -244,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -256,18 +188,9 @@ " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" ] }, - "execution_count": 12, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -287,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -299,18 +222,9 @@ "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" ] }, - "execution_count": 13, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -346,19 +260,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def grid_recur_to_column_recur(grid_recur, s_terms):\n", " grid_recur_simp = grid_recur\n", @@ -372,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -384,18 +288,9 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 15, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -412,19 +307,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def get_taylor_recurrence(pde):\n", " recur, order = get_shifted_recurrence_exp_from_pde(pde)\n", @@ -436,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -448,18 +333,9 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 17, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -468,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -480,18 +356,9 @@ "(-8*s(-1, 2) - 12*s(1, 2))/x1**2" ] }, - "execution_count": 18, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -514,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -530,18 +397,9 @@ " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" ] }, - "execution_count": 19, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -553,19 +411,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def create_subs_grid(width, length, derivs, coord_dict):\n", " initial_grid = [[sp.diff(derivs[i], var[0], j).subs(var[0], 0) for j in range(width)] for i in range(length)]\n", @@ -587,7 +435,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -597,18 +445,9 @@ " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000]]" ] }, - "execution_count": 21, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -626,19 +465,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur):\n", " initial_grid_subs = [row[:] for row in initial_grid_in] #deep copy\n", @@ -666,7 +495,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -679,18 +508,9 @@ " [-6, 0, 120.000000000000, 0, -5040.00000000000, 0]]" ] }, - "execution_count": 23, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -706,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -730,18 +550,9 @@ " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" ] }, - "execution_count": 24, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -754,7 +565,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -778,18 +589,9 @@ " 21.8306910223677 + 0.0733625774350065*I]]" ] }, - "execution_count": 25, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ @@ -800,76 +602,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "extended_grid_helmholtz = extend_grid(initial_grid_subs_helmholtz, get_taylor_recurrence(helmholtz2d), coord_dict, 8, 4)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "inp_grid = np.array(extended_grid_helmholtz, dtype=complex)" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 25, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "r, c = inp_grid.shape" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 26, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def compute_taylor_lp(inp_grid, coord_dict):\n", " inp_grid = np.array(inp_grid)\n", @@ -886,19 +648,9 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 27, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def compute_lp_orders(pde, loc, num_of_derivs, derivs_list, recur_order, taylor_order):\n", " var = _make_sympy_vec(\"x\", 2)\n", @@ -920,19 +672,9 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 28, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def evaluate_true(coord_dict, p, derivs_list):\n", " retMe = []\n", @@ -945,37 +687,9 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 36, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def compute_error_coord_tg(loc, pde, derivs_list, n_of_derivs, taylor_order, recur_order):\n", " exp = compute_lp_orders(pde, loc, n_of_derivs+1, derivs_list, recur_order, taylor_order)\n", @@ -987,52 +701,33 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 1.29081957436961 \\cdot 10^{-14}$" + "$\\displaystyle 2.10000031158992 \\cdot 10^{-7}$" ], "text/plain": [ - "1.29081957436961e-14" + "2.10000031158992e-7" ] }, - "execution_count": 85, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ "loc = np.array([1e-4, 1])\n", - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 6, 4, 2)" + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 6, 2, 2)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 65, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [ "def generate_error_grid(res, order_plot, pde, derivs, taylor_order, recur_order):\n", " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", @@ -1052,64 +747,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 8, laplace2d, derivs_lap, 2, 2)\n", + "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 6, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, "metadata": {}, "outputs": [ { "data": { + "image/png": "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AH5Hf+IfJk8bAgAAuE3KweFPfvITXXTRRZo8ebJyc3OVm5urqVOn6uKLL9aPf/zjdNSIASA0tCc05HxDAHA3+hN4HdOGAADAjVI+43DEiBH6zW9+o71792rPnj2yLEvBYFAXX3xxOurDABAaAgBMQX/iD0wbAgAAuEvKwWG3iy++mGYcrscWZQAwC/0JvIhpQwAA4FYpb1W+7bbb9J3vfCfu+ve//3195StfsaUoDBzThoSGAGAS+hPvM3XakNAQAAC4WcrB4bZt23TDDTfEXf/yl7+shoYGW4rCwBAa2hsacr4hALgf/QkAAABgv5SDw7a2NmVnZ8ddP+OMMxSNRm0pCv1HaAgAMBH9ibcxbQgAAOBOKQeHJSUl2rhxY9z1X/3qVwoGg7YUBQwEW5QBwDz0J/AaQkMAAOAFKX84yoMPPqjZs2frjTfe0Be+8AVJ0u9//3v953/+p5544gnbC0TymDYkNAQAU9GfeJep04YAAABekHJweNNNN2nz5s369re/rSeffFJDhgzRhAkT9PTTT+vzn/98OmpEEggN0xMacr4hAHgD/Qm8hGlDAADgFSkHh5J0ww039HoAOQAAgFPoT7zHxGlDQkMAAOAlKZ9xeLLFixertbXVrlrQT0wbskUZAPAp+hNvMDE0BAAA8JoBBYf//u//zicVOozQkNAQANAT/QncimlDAACQDq+++qomTpwYuw0ZMkSbN2+25bX7tVW5m2VZthSB/iE0TG9oyPmGAOBN9Cfux7QhAACAfS677DI1NzdLktra2nTBBRfoS1/6ki2vPaCJQwAAAACnx7QhAADIhN/+9re67rrrdOaZ9gxDpRwctre3x/752LFjuvDCC20pBKlh2pAtygCAT9GfeIeJ04aEhgAAmK2hoUEzZ85UYWGhAoFAr9uIa2trNW7cOOXm5ioUCmn79u39eq/HH39cc+bMGWDFn0o5OCwoKNCdd96pP/7xj7YVkQkffvihiouLde+99zpdyoARGhIaAgB6oj8BAABAJkWj0R63jo6OhM9tb29XaWmpHn744V4f37hxo5YuXaoHHnhAu3fv1rRp01RZWamWlpbYc0KhkEpKSuJu7777bo+aduzYoeuvv962daZ8xuF//ud/asOGDbruuutUXFysO++8U7fffrsKCwttKyodHnroIX32s591uowBIzTMTGjI+YYA4C30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6KKLbFxBctK9zpM9/vjjmjNnzgArTl261/j666/rrLPO0k033aSrrrpK3/72t22sPnmZ+F5Go1GFQiFdc8012rZtm02VJy8Ta7z33ntVU1NjU8X9k4l1fvDBByotLdWYMWN03333adSoUTZVn5xM/tmza9cuHT9+XGPHjh1g1anL5DrdYqBrfvfdd3X++efH7o8ZM0bvvPNOJkr3BPqTT9Gf9I3+JHPoTz7l9f5EMqNHMbE/kehRgEwxJjhsb29XaWmpHn744V4f37hxo5YuXaoHHnhAu3fv1rRp01RZWamWlpbYc0KhkEpKSuJu7777rt5//3099dRTevPNN/XOO+9o586damhoyNTyYtK9zm7RaFQ7duxw5Lek6V7jxx9/rO3btyscDut//ud/VF9fr/r6+kwtLyYT38s333xTTU1N+tnPfqbbb79d0Wg0I2vrlu41/uY3v9Gll16qSy+9NFNL6lUmvpcjRozQSy+9pH379umXv/ylDh06lJG1dcvUnz1HjhzR7bffrvXr16d9Tb3J1DrdZKBr7m26JBAIpLVmL6E/OYH+5AT6E/qTTDKhP5HM6FFM7E8kehQgYywDSbI2bdrU49rVV19tLVq0qMe1z3zmM9ayZcuSes3HH3/cWrx4cez+9773Peu73/3ugGsdiHSss9tjjz1m/f3f//1ASxywdKxx586d1owZM2L3v/e971nf+973BlzrQKTze9nty1/+stXY2NjfEgcsHWtctmyZNWbMGKu4uNgaOXKklZeXZ61cudKukvslE9/LRYsWWY8//nh/SxywdK3xo48+sqZNm2Y99thjdpQ5YOn8Xj7zzDPW7NmzB1qi7fqz5h07dli33HJL7LElS5ZY//Ef/5H2Wr2I/oT+pC/0J86gP/FPf2JZZvQoJvYnlkWPAqSTMROHfens7FRTU5MqKip6XK+oqNDOnTuTeo2xY8dq586dsfM7nn32WV122WXpKLff7FhnN6e2AZ2OHWssKyvToUOH9P777+v48eNqaGjQ5Zdfno5y+82Odb7//vvq6OiQJL399tuKRCK68MILba+1v+xYY01Njfbv368333xTP/jBD/TVr35V3/zmN9NRbr/Zsc5Dhw7FpjGi0agaGhpc9eePHWu0LEt33HGHvvCFL2ju3LnpKHPA7Pwz1iuSWfPVV1+tP//5z3rnnXd07NgxbdmyRTNmzHCiXM+hP6E/ORn9iTvQn/inP5HM6FFM7E8kehTATpyoLKm1tVVdXV0qKCjocb2goEAHDx5M6jU+97nP6frrr9eVV16pQYMG6brrrtNNN92UjnL7zY51StLRo0f1wgsv6Ne//rXdJQ6YHWscPHiwvv3tb+vaa6+VZVmqqKjQjTfemI5y+82Ode7Zs0df+9rXNGjQIAUCAf34xz921SeI2fXfq9vZsc63335bCxYskGVZsixLd999tyZMmJCOcvvFjjXu2LFDGzdu1IQJE2Ln1/zbv/2bxo8fb3e5/WbXf7MzZszQiy++qPb2do0ZM0abNm1SWVmZ3eXaIpk1Dx48WD/84Q9VXl6u48eP67777vPdJ2qmC/0J/cnJ6E/cgf7EP/2JZEaPYmJ/ItGjAHYiODzJqecZWJaV0hkHDz30kB566CG7y7LdQNc5fPhwR84nScVA11hZWanKykq7y7LdQNY5ZcoUvfzyy+koy1YD/V52u+OOO2yqKD0Gss5QKKTm5uY0VGWvgazxmmuu0fHjx9NRlu0G+t+sFz/N73Rrvummm1wXVnkJ/Uly6E/cg/4kefQn7mBCj2JifyLRowB2YKuypFGjRikrKyvuNy6HDx+O+w2Fl5mwThPWKJmxThPWKJmxThPWKJmzzpOZuOZMMuXfrwnrNGGNkhnrNGGNEuv00zpNWGNvTF03kA4Eh5Kys7MVCoXiPpmuvr5eU6ZMcagq+5mwThPWKJmxThPWKJmxThPWKJmzzpOZuOZMMuXfrwnrNGGNkhnrNGGNEuv00zpNWGNvTF03kA7GbFVua2vT3r17Y/f37dun5uZm5efnq6ioSNXV1Zo7d64mTZqkyZMna/369WppadGiRYscrDp1JqzThDVKZqzThDVKZqzThDVK5qzzZCauOZNM+fdrwjpNWKNkxjpNWKPEOv20ThPW2BtT1w1kXKY+vtlpzzzzjCUp7jZv3rzYc8LhsFVcXGxlZ2dbV111lbVt2zbnCu4nE9Zpwhoty4x1mrBGyzJjnSas0bLMWefJTFxzJpny79eEdZqwRssyY50mrNGyWKef1mnCGntj6rqBTAtYlmUlGzICAAAAAAAAMANnHAIAAAAAAACIQ3AIAAAAAAAAIA7BIQAAAAAAAIA4BIcAAAAAAAAA4hAcAgAAAAAAAIhDcAgAAAAAAAAgDsEhAAAAAAAAgDgEhwAAAAAAAADiEBwCAAAAAAAAiENwCAAOePPNNxUIBNTc3Ox0KQAAAJLoTwAA8QgOAQAAAAAAAMQhOASQVl1dXTp+/LjTZTims7PT6RIAAMAp6E/oTwAAySE4BAzz5JNPavz48RoyZIhGjhypL37xi2pvb5ckHT9+XKtWrdKYMWOUk5OjiRMn6ne/+13sa5999lkFAgF98MEHsWvNzc0KBAJ68803JUkbNmzQiBEj9NRTTykYDConJ0dvvfWWOjo6dN9992ns2LHKycnRJZdcon/913+NvU4kEtH111+vs846SwUFBZo7d65aW1sTruPOO+/UhAkT1NHRIUn6+OOPFQqF9Pd///d9rv+VV17RDTfcoLy8PA0bNkzTpk3TG2+8kdT6Jenll1/WF77whdi/v7vuukttbW2xx++44w7dcsstqqmpUWFhoS699FJJ0gsvvKArr7xSubm5mjRpknbv3t1nnQAAmIT+hP4EAOBOBIeAQQ4cOKC/+7u/05133qk9e/bo2Wef1a233irLsiRJP/7xj/XDH/5QP/jBD/SnP/1JM2bM0E033aTXX389pff58MMPVVNTo0ceeUSvvPKKRo8erdtvv12/+tWv9JOf/ER79uzRz372M5111lmxuj7/+c9r4sSJ2rVrl373u9/p0KFD+pu/+ZuE7/GTn/xE7e3tWrZsmSTpwQcfVGtrq2praxN+zTvvvKNrr71Wubm5+sMf/qCmpibdeeed+uSTT5Ja/4cffqgvf/nLOvvss9XY2KgnnnhCTz/9tO6+++4e7/P73/9ee/bsUX19vZ566im1t7frxhtv1GWXXaampiatWLFC9957b0r/TgEA8Cv6E/oTAICLWQCM0dTUZEmy3nzzzV4fLywstB566KEe18rKyqzFixdblmVZzzzzjCXJev/992OP796925Jk7du3z7Isy3r00UctSVZzc3PsOa+++qolyaqvr+/1fR988EGroqKix7X9+/dbkqxXX3014Xp27txpnXHGGdaDDz5oDR482Nq2bVvC51qWZd1///3WuHHjrM7Ozl4fP936169fb5199tlWW1tb7PH//u//tgYNGmQdPHjQsizLmjdvnlVQUGB1dHTEnrNu3TorPz/fam9vj11bu3atJcnavXt3nzUDAOB39Cf0JwAA92LiEDBIaWmprrvuOo0fP15f+cpX9POf/1zvv/++JCkajerdd9/V1KlTe3zN1KlTtWfPnpTeJzs7WxMmTIjdb25uVlZWlj7/+c/3+vympiY988wzOuuss2K3z3zmM5IU26bTm8mTJ+vee+/Vv/zLv+gf//Efde2118Yeq6ysjL3WFVdcEatj2rRpOuOMM+JeK5n179mzR6WlpTrzzDN7PH78+HG9+uqrsWvjx49XdnZ27H731w0dOrRH7QAAgP6E/gQA4GaDnS4AQOZkZWWpvr5eO3fu1NatW/XTn/5UDzzwgJ5//nmNHDlSkhQIBHp8jWVZsWuDBg2KXev28ccfx73PkCFDerzOkCFD+qzr+PHjmjlzpr773e/GPXbeeef1+XU7duxQVlZW3HalRx55RH/9618lKdaIn64Oqe/1n/zPfX3dyY1799cBAIDe0Z/QnwAA3IuJQ8AwgUBAU6dO1cqVK7V7925lZ2dr06ZNysvLU2Fhof74xz/2eP7OnTt1+eWXS5LOOeccSSfO/OnW3Nx82vccP368jh8/rm3btvX6+FVXXaVXXnlFF1xwgS6++OIet1Ob3JN9//vf1549e7Rt2zbV1dXp0UcfjT12/vnnx16juLhYkjRhwgRt3769179MJLP+YDCo5ubm2GHtkrRjxw4NGjQodsh4b4LBoF566aXYXxQk6bnnnkv4fAAATEN/Qn8CAHApp/ZIA8i85557znrooYesxsZG66233rIef/xxKzs729qyZYtlWZb1ox/9yMrLy7N+9atfWX/5y1+sf/7nf7bOOOMM67XXXrMsy7I6OzutsWPHWl/5ylesV1991Xrqqaesyy67LO4MoeHDh8e99x133GGNHTvW2rRpk/W///u/1jPPPGNt3LjRsizLeuedd6xzzjnHuu2226znn3/eeuONN6y6ujpr/vz51ieffNLrWnbv3m1lZ2dbv/3tby3LsqxHHnnEGjZsmPXGG28kXH9ra6s1cuRI69Zbb7UaGxut1157zXrsscesv/zlL0mtv7293TrvvPOs2bNnWy+//LL1hz/8wbrwwgutefPmxd5j3rx51s0339zjfY8dO2aNGjXK+ru/+zvrlVdesf77v//buvjiizlDCAAAi/6E/gQA4GYEh4BBIpGINWPGDOucc86xcnJyrEsvvdT66U9/Gnu8q6vLWrlypXX++edbZ5xxhlVaWmr9f//f/9fjNf74xz9a48ePt3Jzc61p06ZZTzzxRFKN+V//+lfrnnvusc477zwrOzvbuvjii63/9//+X+zx1157zZo1a5Y1YsQIa8iQIdZnPvMZa+nSpdbx48d7fa1gMGjdddddPa7PmjXLmjJlSsJm3rIs66WXXrIqKiqsoUOHWsOGDbOmTZsWa+aTWf+f/vQnq7y83MrNzbXy8/Otr371q9axY8dij/fWmFuWZf3P//yPVVpaamVnZ1sTJ060fv3rX9OYAwBg0Z9YFv0JAMC9ApbF4RYAAAAAAAAAeuKMQwAAAAAAAABxCA4BAAAAAAAAxCE4BAAAAAAAABCH4BAAAAAAAABAHIJDAAAAAAAAAHEIDgEAAAAAAADEITgEAAAAAAAAEIfgEAAAAAAAAEAcgkMAAAAAAAAAcQgOAQAAAAAAAMQhOAQAAAAAAAAQ5/8HNedrepFtV+QAAAAASUVORK5CYII=", "text/plain": [ - "Text(0, 0.5, 'source y-coord')" - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAG9CAYAAAARC6x6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNpklEQVR4nO3dfVhUdd4/8PcIAj6BIkKiQJYP28iTDlSokGRhQ2mZdrt77SKW1rLQ5Rrrunp7meWm9GhUDm7k3rm2D6GVtLfrHVKZkGQJgVtipS0KKsiCCoI64PD9/eGPWcdhYAbOcOaceb+ua671PHDO5xu58+7z/c4ZjRBCgIiIiEjFBshdABEREZGzMfAQERGR6jHwEBERkeox8BAREZHqMfAQERGR6jHwEBERkeox8BAREZHqMfAQERGR6jHwEBERkeox8BAREZHqMfAQERGR6rlF4Nm9ezcmTZqECRMmYOvWrXKXQ0RE5JYuXryI2NhYREdHIyIiAm+99Zb52KuvvorJkydDq9Vi2bJlkPqrPjVq//LQq1evQqvVYt++ffD19cXUqVPx5Zdfwt/fX+7SiIiI3IrJZILRaMTgwYNx6dIlhIeH49ChQ+jo6MCdd96JI0eOYODAgUhISMDLL7+MuLg4ye6t+g7PV199hcmTJ2PMmDEYNmwYkpOTUVBQIHdZREREbsfDwwODBw8GAFy5cgUmk8ncybl69SquXLmC9vZ2tLe3IzAwUNJ7u3zgKSoqwpw5cxAcHAyNRoP8/Hyrc3JycjBu3Dj4+PhAp9OhuLjYfOzMmTMYM2aMeXvs2LE4ffp0f5RORESkKn19TwaACxcuICoqCmPHjsXKlSsREBCAUaNGYcWKFQgNDUVwcDDuuece3HrrrZLW7vKBp7W1FVFRUdi8eXOXx/Py8rB8+XKsWbMG5eXliI+Ph16vR3V1NQB0OQeo0WicWjMREZEa9fU9GQCGDx+Ow4cPo6qqCn/9619x9uxZnD9/Hrt378aJEydw+vRplJSUoKioSNLaPSW9mhPo9Xro9Xqbxzdt2oQlS5Zg6dKlAIDs7GwUFBRgy5YtyMrKwpgxYyw6OqdOncIdd9xh83pGoxFGo9G83dHRgXPnzmHkyJEMSkRE1C0hBC5evIjg4GAMGOCcnsKVK1fQ1tYmybWEEFbvbd7e3vD29u7y/L6+J18vKCgIkZGR5mAzfvx48/ra+++/HwcPHkRCQkKvx2ZFKAgAsWvXLvO20WgUHh4e4oMPPrA4b9myZSIhIUEIIUR7e7sYP368OHXqlGhubhbjx48XDQ0NNu+xbt06AYAvvvjiiy++ev2qqalxyvvg5cuXxU1BN0lW59ChQ632rVu3zq5aAMffk+vq6kRTU5MQQoimpiah1WrF4cOHxRdffCGio6PF5cuXxdWrV0VycrLIz8+X5J9ZJ5fv8HSnoaEBJpMJQUFBFvuDgoJQV1cHAPD09MQrr7yCxMREdHR0YOXKlRg5cqTNa65evRqZmZnm7aamJoSGhmLi6nfh4TPYOQMhIiJFixg1BADQfrkVu34zF8OGDXPKfdra2lB3tg7HK4/Dd5hvn67VfLEZ47XjUVNTA1/f/1zLVnenJ/a8J586dQpLliyBEAJCCDz55JOIjIwEACQnJ2PKlCkYMGAAZs2ahblz5/ZyZF1TdODpdGM7TtzQops7d67d/+A6W3kGgwEGgwEmkwkA4OEzGB4+Q6QrmoiIFC86cGiX+529BMJ3mK9FSOnTtXyluxbQ/XuyTqdDRUVFlz+3YcMGbNiwQbI6buTyi5a7ExAQAA8PD3Ny7FRfX2+VMB2VkZGByspKHDp0qE/XISIidbIVdtyVM9+TpaDowOPl5QWdTofCwkKL/YWFhZg2bVqfrm0wGKDVahEbG9un6xARkfow7Fhz5nuyFFx+SqulpQXHjx83b1dVVaGiogL+/v4IDQ1FZmYmUlJSEBMTg7i4OOTm5qK6uhppaWl9um9GRgYyMjLQ3NwMPz+/vg6DiIhUwp3DjlzvyVJw+cBTWlqKxMRE83bnguLU1FRs27YNCxcuRGNjI9avX4/a2lqEh4djz549CAsLk6tkIiJSKXcOO4Cy35NV/11avXX9ouUffvgBtz37dy5aJiJyY/aEnbbLLdiRPgtNTU2SLgTu1DnrUF9T3+frNzc3IzAk0Gm1uhpFr+FxJi5aJiKiTu7e2VEDBh4iIqJuMOyoAwOPDfyUFhERMeyoBwOPDZzSIiJybww76sLAQ0REdAOGHfVh4LGBU1pERO6JYUedGHhs4JQWEZH7YdhRLwYeIiIiMOyoncs/aZmIiMiZGHTcAzs8RETkthh23AcDjw1ctExEpG4MO+6FgccGLlomIlIvhh33w8BDRERuhWHHPTHwEBGR22DYcV8MPERE5BYYdtwbAw8REakeww4x8NjAT2kREakDww4BDDw28VNaRETKx7BDnRh4iIhIlRh26HoMPEREpDoMO3QjBh4iIlIVhh3qCgMPERGpBsMO2cJvSyciIsVj0KGesMNDRESKxrBD9mDgsYHP4SEicn0MO2QvBh4b+BweIiLXxrBDjmDgISIixWHYIUcx8BARkaIw7FBv8FNaRESkGAw711y4eAUmePXpGhcvXpGoGmVgh4eIiBSBYYf6goGHiIhcHsMO9RUDDxERuTSGHZKCWwSeefPmYcSIEViwYIHcpRARkQMYdkgqbhF4li1bhu3bt8tdBhEROYBhh6TkFoEnMTERw4YNk7sMIiKyE8MOSU32wFNUVIQ5c+YgODgYGo0G+fn5Vufk5ORg3Lhx8PHxgU6nQ3Fxcf8XSkRE/YJhh5xB9ufwtLa2IioqCo8++ijmz59vdTwvLw/Lly9HTk4Opk+fjjfffBN6vR6VlZUIDQ0FAOh0OhiNRquf3bt3L4KDg50+BiIi6jsGHXIm2QOPXq+HXq+3eXzTpk1YsmQJli5dCgDIzs5GQUEBtmzZgqysLABAWVmZZPUYjUaL8NTc3CzZtYmIqGsMO+Rssk9pdaetrQ1lZWVISkqy2J+UlISSkhKn3DMrKwt+fn7mV0hIiFPuQ0RE1zDsUH9w6cDT0NAAk8mEoKAgi/1BQUGoq6uz+zqzZ8/GI488gj179mDs2LHdfgP66tWr0dTUZH7V1NT0un4iIuoeww71F9mntOyh0WgstoUQVvu6U1BQYPe53t7e8Pb2hsFggMFggMlksvtniYjIfgw71J9cusMTEBAADw8Pq25OfX29VddHahkZGaisrOy2G0RERL3DsEP9zaUDj5eXF3Q6HQoLCy32FxYWYtq0aU69t8FggFarRWxsrFPvQ0Tkbhh2SA6yT2m1tLTg+PHj5u2qqipUVFTA398foaGhyMzMREpKCmJiYhAXF4fc3FxUV1cjLS3NqXVlZGQgIyMDzc3N8PPzc+q9iIjcBcMOyUX2wFNaWorExETzdmZmJgAgNTUV27Ztw8KFC9HY2Ij169ejtrYW4eHh2LNnD8LCwuQqmYiIqEvaEUPkLoFskD3wzJw5E0KIbs9JT09Henp6P1V0DRctExFJS+3dnXD/IbhyqUXuMsgGl17DIycuWiYiInuF+7Oz4+oYeIiIyOnU3N1h2FEGBh4b+CktIiJpMOyQK2DgsYFTWkRE1B2GHWVh4CEiIqdRa3eHYUd5GHiIiMgpGHbIlTDw2MA1PEREvcewQ66GgccGruEhIuodhh1yRQw8REREPWDYUT4GHiIikowauzsMO+rAwGMD1/AQETmGYYdcGQOPDVzDQ0RkP4YdcnUMPERERDdg2FEfBh4iIuoTtXV3GHbUiYGHiIh6jWGHHFFTU4OZM2dCq9UiMjISO3fuNB+rqqpCYmIitFotIiIi0NraKum9PSW9GhERuQ2GHXKUp6cnsrOzER0djfr6ekydOhXJyckYMmQIFi9ejOeeew7x8fE4d+4cvL29pb23pFdTEYPBAIPBAJPJJHcpREQuh2GHemP06NEYPXo0ACAwMBD+/v44d+4cTpw4gYEDByI+Ph4A4O/vL/m9OaVlAz+lRUTkHhh27FdUVIQ5c+YgODgYGo0G+fn5Vufk5ORg3Lhx8PHxgU6nQ3FxcZfXKi0tRUdHB0JCQnDs2DEMHToUc+fOxdSpU7Fx40bJa2fgISIih6ipu8OwAzQ3N1u8jEajzXNbW1sRFRWFzZs3d3k8Ly8Py5cvx5o1a1BeXo74+Hjo9XpUV1dbnNfY2IhFixYhNzcXANDe3o7i4mIYDAZ88cUXKCwsRGFhoXSDBKe0iIjIAQw7ruHfFy7j8tW+vYW3tFwGAISEhFjsX7duHZ555pkuf0av10Ov19u85qZNm7BkyRIsXboUAJCdnY2CggJs2bIFWVlZAACj0Yh58+Zh9erVmDZtGgBg7NixiI2NNdeSnJyMiooK3HvvvX0a4/UYeIiIyC4MO+pUU1MDX19f83ZvFwu3tbWhrKwMq1atstiflJSEkpISAIAQAosXL8bdd9+NlJQU8zmxsbE4e/Yszp8/Dz8/PxQVFeGXv/xlr+qwhYGHiIjcCsOOJV9fX4vA01sNDQ0wmUwICgqy2B8UFIS6ujoAwIEDB5CXl4fIyEjz+p933nkHERER2LhxIxISEiCEQFJSEh544IE+13Q9Bh4iIuqRWro7DDvOp9FoLLaFEOZ9M2bMQEdHR5c/19N0WV9x0TIREXWLYYfsERAQAA8PD3M3p1N9fb1V10cODDw28NvSiYgYdsh+Xl5e0Ol0Vp+uKiwsNC9OlhOntGzIyMhARkYGmpub4efnJ3c5RETUSww70mlpacHx48fN21VVVaioqIC/vz9CQ0ORmZmJlJQUxMTEIC4uDrm5uaiurkZaWpqMVV/DwENERF1SQ3eHYUdapaWlSExMNG9nZmYCAFJTU7Ft2zYsXLgQjY2NWL9+PWpraxEeHo49e/YgLCxMrpLNGHiIiMgKww51ZebMmRBCdHtOeno60tPT+6ki+zHwEBGRBaWHHQYd6goXLRMRkRnDDqkVAw8REakCww51h4GHiIgAKLu7w7BDPVF94KmpqcHMmTOh1WoRGRmJnTt3yl0SEZHLYdghtVP9omVPT09kZ2cjOjoa9fX1mDp1KpKTkzFkCP+CEBEBDDvkHlQfeEaPHo3Ro0cDAAIDA+Hv749z584x8BARKRzDDjlC9imtoqIizJkzB8HBwdBoNOZvT71eTk4Oxo0bBx8fH+h0OhQXF/fqXqWlpejo6EBISEgfqyYiUgeldncYdshRsgee1tZWREVFYfPmzV0ez8vLw/Lly7FmzRqUl5cjPj4eer0e1dXV5nN0Oh3Cw8OtXmfOnDGf09jYiEWLFiE3N9fpYyIiUgKGHXInsk9p9fR18Js2bcKSJUuwdOlSAEB2djYKCgqwZcsWZGVlAQDKysq6vYfRaMS8efOwevXqHr/AzGg0wmg0mrebm5vtHQoRkWIw7JC7kb3D0522tjaUlZUhKSnJYn9SUhJKSkrsuoYQAosXL8bdd9+NlJSUHs/PysqCn5+f+cXpLyJSG4YdckcuHXgaGhpgMpkQFBRksT8oKAh1dXV2XePAgQPIy8tDfn4+oqOjER0djW+++cbm+atXr0ZTU5P5VVNT06cxEBFR3zHsUF/JPqVlD41GY7EthLDaZ8uMGTPQ0dFh9728vb3h7e0Ng8EAg8EAk8nkUK1ERK5Mid0dhh2Sgkt3eAICAuDh4WHVzamvr7fq+kgtIyMDlZWVOHTokFPvQ0TUXxh2yJ25dODx8vKCTqdDYWGhxf7CwsIeFx/3lcFggFarRWxsrFPvQ0TUHxh2yN3JPqXV0tKC48ePm7erqqpQUVEBf39/hIaGIjMzEykpKYiJiUFcXBxyc3NRXV2NtLQ0p9aVkZGBjIwMNDc3w8/Pz6n3IiIiSww7JDXZA09paSkSExPN25mZmQCA1NRUbNu2DQsXLkRjYyPWr1+P2tpahIeHY8+ePQgLC5OrZCIiRVFad4dhh5xB9sAzc+ZMCCG6PSc9PR3p6en9VNE1XLRMRGrAsEN0jUuv4ZETFy0TkdIx7BD9BwMPERHJjmGHnI2BxwZ+SouIlExJ3R2GHeoPDDw2cEqLiJSKYYfIGgMPEZGKMOwQdY2Bh4iIiFSPgccGruEhIqVRUneHqL8x8NjANTxERETqwcBDREREqsfAQ0RERKon+1dLuCp+tQQRKQnX77iXExcuY3B7397CL7VelqgaZWCHxwau4SEiIlIPBh4iIiJSPQYeIiKFU+J0Fh86SP2NgYeIiEgiE/x85C6BbGDgISIiksCk4YPkLoG6wcBjA5+0TERKoMTpLCI5MPDYwE9pERERqQcDDxERUR9xOsv1MfAQESkUp7OI7MfAQ0RE1Afs7igDAw8RERGpHgMPEZECcTrLNbC7oxwMPERERKR6DDw28Dk8RERE6sHAYwOfw0NErorTWa6B01nKwsBDREREqsfAQ0RE5CB2d5SHgYeISEHUMJ0V7j9E7hLIDTHwEBERkeox8BARETmA01nKxMBDRKQQapjOIpKL6gPPxYsXERsbi+joaEREROCtt96SuyQiIlIodneUy1PuApxt8ODB2L9/PwYPHoxLly4hPDwcDz/8MEaOHCl3aURERNRPVN/h8fDwwODBgwEAV65cgclkghBC5qqIiBzD6Sz5sbujbLIHnqKiIsyZMwfBwcHQaDTIz8+3OicnJwfjxo2Dj48PdDodiouLHbrHhQsXEBUVhbFjx2LlypUICAiQqHoiIiJSArumtEaMGAGNRmPXBc+dO+dQAa2trYiKisKjjz6K+fPnWx3Py8vD8uXLkZOTg+nTp+PNN9+EXq9HZWUlQkNDAQA6nQ5Go9HqZ/fu3Yvg4GAMHz4chw8fxtmzZ/Hwww9jwYIFCAoKcqhOIiIiUi67Ak92drb5z42NjXjuuecwe/ZsxMXFAQC++OILFBQUYO3atQ4XoNfrodfrbR7ftGkTlixZgqVLl5prKSgowJYtW5CVlQUAKCsrs+teQUFBiIyMRFFRER555JEuzzEajRbhqbm52d6hEBE5Baez5MfpLOWzK/Ckpqaa/zx//nysX78eTz75pHnfsmXLsHnzZnz88cd46qmnJCuura0NZWVlWLVqlcX+pKQklJSU2HWNs2fPYtCgQfD19UVzczOKiorwq1/9yub5WVlZePbZZ/tUNxEREbkWh9fwFBQU4L777rPaP3v2bHz88ceSFNWpoaEBJpPJavopKCgIdXV1dl3j1KlTSEhIQFRUFGbMmIEnn3wSkZGRNs9fvXo1mpqazK+ampo+jYGIiJSN3R11cPhj6SNHjsSuXbvw29/+1mJ/fn6+0z7qfeP6ISGE3WuKdDodKioq7L6Xt7c3vL29YTAYYDAYYDKZHCmViEhSnM4ikobDgefZZ5/FkiVL8Nlnn5nX8Bw8eBAfffQRtm7dKmlxAQEB8PDwsOrm1NfXO33RcUZGBjIyMtDc3Aw/Pz+n3ouIiMhdzJs3D5999hlmzZqF9957z+LYpUuXcNttt+GRRx7Byy+/LOl9HZ7SWrx4MUpKSjB8+HB88MEHeP/99+Hn54cDBw5g8eLFkhbn5eUFnU6HwsJCi/2FhYWYNm2apPciIiLnU9o3pXM6S3rLli3D9u3buzy2YcMG3HHHHU65r0Mdnvb2djzxxBNYu3Yt/vKXv0hSQEtLC44fP27erqqqQkVFBfz9/REaGorMzEykpKQgJiYGcXFxyM3NRXV1NdLS0iS5vy2c0iIiuXE6i9QoMTERn332mdX+Y8eO4bvvvsOcOXPw7bffSn5fhzo8AwcOxK5duyQtoLS0FFOmTMGUKVMAAJmZmZgyZQqefvppAMDChQuRnZ2N9evXIzo6GkVFRdizZw/CwsIkreNGGRkZqKysxKFDh5x6HyIick3s7lhz5sOCV6xYYX7cjDM4PKU1b968LgfYWzNnzoQQwuq1bds28znp6ek4ceIEjEYjysrKkJCQINn9bTEYDNBqtYiNjXX6vYiIiJSg82HBmzdv7vJ458OC16xZg/LycsTHx0Ov16O6urrb63744YeYOHEiJk6c6IyyAfRi0fL48ePx+9//HiUlJdDpdBgyxHI+dtmyZZIVJycuWiYiOXE6i/rLjQ/Y7fy0clekeFhwVw4ePIh3330XO3fuREtLC9rb2+Hr62ue7ZGCw4Fn69atGD58OMrKyqyecKzRaFQTeIiIyH25+nTWsaYr8Gl3+C3cwpVLVwAAISEhFvvXrVuHZ555xuHr9eVhwVlZWeZAtG3bNnz77beShh2gF4GnqqpK0gJcFRctExGRO6ipqYGvr69521Z3pyf2Pix49uzZ+Prrr9Ha2oqxY8di165d/bJ8pE/xUAgBwPrBgGrAKS0ikguns+Tl6t0dqfn6+loEnr7q6WHBBQUF3f681I+46eTwomUA2L59OyIiIjBo0CAMGjQIkZGReOedd6SujYiIiBRCzocF28PhwLNp0yb86le/QnJyMnbs2IG8vDzcd999SEtLw6uvvuqMGomIiPqFu3V3pOTqDwt2eErrjTfewJYtW7Bo0SLzvgcffBCTJ0/GM888I+m3pcuJa3iISA6cziJX5qoPC7aHw4Gntra2y6Q2bdo01NbWSlKUK+AaHiIiIkulpaVITEw0b2dmZgIAUlNTsW3bNixcuBCNjY1Yv349amtrER4e3i8PC7ZHr57Ds2PHDvz3f/+3xf68vDxMmDBBssKIiIj6E6ezetb5sODupKenIz09vZ8qsl+vvi194cKFKCoqwvTp06HRaPD555/jk08+wY4dO5xRIxGRW+B0FpHzOLxoef78+fjyyy8REBCA/Px8fPDBBwgICMBXX32FefPmOaNGIiJSAVf+pnR2d9SvV8/h0el0+POf/yx1LS6Fi5aJiIjUo1eBx2QyIT8/H0ePHoVGo4FWq8XcuXPh4eEhdX2y4aJlIupPap/OYneH5OZw4Dl+/Djuv/9+nDp1CpMmTYIQAj/88ANCQkLwj3/8A7feeqsz6iQiUi2GHfkw7LgPh9fwLFu2DLfccgtqamrw9ddfo7y8HNXV1Rg3bhy/OJSIyEEMO0T9w+EOz/79+3Hw4EH4+/ub940cORLPP/88pk+fLmlxRERqpfagA7h+2GF3x7043OHx9vbGxYsXrfa3tLTAy8tLkqJcgcFggFar7ZdvcCUi98KwIz+GHffjcOB54IEH8MQTT+DLL7+EEAJCCBw8eBBpaWmYO3euM2qURUZGBiorK3Ho0CG5SyEiFWHYIZKHw4Hn9ddfx6233oq4uDj4+PjAx8cH06dPx/jx4/Haa685o0YiIlVg2HEN7O64J4fX8AwfPhwffvghjh8/jqNHj0IIAa1Wi/HjxzujPiIiVWDYcQ0MO+6rV8/hAa59pxZDDhFRzxh2XAPDjntzeEprwYIFeP755632v/TSS3jkkUckKYqISC0Ydohcg8OBZ//+/bj//vut9t93330oKiqSpCgiIjVg2HEd7O6Qw4HH1sfPBw4ciObmZkmKIiJSOoYd18GwQ0AvAk94eDjy8vKs9r/77rvQarWSFOUK+BweIuottYedcP8hDDukOA4vWl67di3mz5+PH3/8EXfffTcA4JNPPsHf/vY37Ny5U/IC5cIvDyWi3nCHsEOkRA4Hnrlz5yI/Px8bN27Ee++9h0GDBiEyMhIff/wx7rrrLmfUSESkCAw7roXdHbperz6Wfv/993e5cJmIyF0x7LgWhh26kcNreK6Xnp6OhoYGqWohIlIkhh0i19enwPPnP/+Zn8wiIrcVHTiUYccFsbtDXelT4BFCSFUHEZGiqD3oAAw7pC59CjxERO6IYcc1MexQdxwOPK2treY/X7x4EbfccoukBTnLpUuXEBYWhhUrVshdChEpGMMOkTI5HHiCgoLw2GOP4fPPP3dGPU6zYcMG3HHHHXKXQUQKxrDjutjdoZ44HHj+9re/oampCbNmzcLEiRPx/PPP48yZM86oTTLHjh3Dd999h+TkZLlLISKFYthxXQw7ZA+HA8+cOXPw/vvv48yZM/jVr36Fv/3tbwgLC8MDDzyADz74AFevXnXoekVFRZgzZw6Cg4Oh0WiQn59vdU5OTg7GjRsHHx8f6HQ6FBcXO3SPFStWICsry6GfISLqxLDjuhh2yF69XrQ8cuRIPPXUUzh8+DA2bdqEjz/+GAsWLEBwcDCefvppXLp0ya7rtLa2IioqCps3b+7yeF5eHpYvX441a9agvLwc8fHx0Ov1qK6uNp+j0+kQHh5u9Tpz5gw+/PBDTJw4ERMnTuztUInIjTHsEKlDr560DAB1dXXYvn073n77bVRXV2PBggVYsmQJzpw5g+effx4HDx7E3r17e7yOXq+HXq+3eXzTpk1YsmQJli5dCgDIzs5GQUEBtmzZYu7alJWV2fz5gwcP4t1338XOnTvR0tKC9vZ2+Pr64umnn+7yfKPRCKPRaN7mc4aI3BfDjmtjd4cc4XDg+eCDD/D222+joKAAWq0WGRkZ+MUvfoHhw4ebz4mOjsaUKVP6XFxbWxvKysqwatUqi/1JSUkoKSmx6xpZWVnmYLRt2zZ8++23NsNO5/nPPvts74smIlVQe9hRctABGHYqz7fC64qmT9dou9za80kq4vCU1qOPPorg4GAcOHAAFRUVePLJJy3CDgDccsstWLNmTZ+La2hogMlkQlBQkMX+oKAg1NXV9fn6XVm9ejWamprMr5qaGqfch4hcF8MOkfo43OGpra3F4MGDuz1n0KBBWLduXa+LupFGY5lihRBW++yxePHiHs/x9vaGt7c3DAYDDAYDTCaTw/chIuVi2HF97t7dod5xuMPTU9iRUkBAADw8PKy6OfX19VZdH6llZGSgsrIShw4dcup9iMh1MOy4PoYd6i2X/moJLy8v6HQ6FBYWWuwvLCzEtGnTZKqKiNSIYcf1MexQX/T6U1pSaWlpwfHjx83bVVVVqKiogL+/P0JDQ5GZmYmUlBTExMQgLi4Oubm5qK6uRlpamlPr4pQWkXtQe9AB1BF2iPpK9sBTWlqKxMRE83ZmZiYAIDU1Fdu2bcPChQvR2NiI9evXo7a2FuHh4dizZw/CwsKcWldGRgYyMjLQ3NwMPz8/p96LiOTBsKMc7O5QX/U68Bw/fhw//vgjEhISMGjQoF4vJJ45cyaEEN2ek56ejvT09N6W2ivs8BCpG8OOcjDskBQcXsPT2NiIe+65BxMnTkRycjJqa2sBAEuXLsVvfvMbyQuUCxctE6kXw45yMOyQVBwOPE899RQ8PT1RXV1t8YmthQsX4qOPPpK0OCIiqTHsELknh6e09u7di4KCAowdO9Zi/4QJE3Dy5EnJCiMikhrDjrKwu0NScrjD09ra2uWzeBoaGuDt7S1JUa7AYDBAq9UiNjZW7lKISAIMO8rCsENSczjwJCQkYPv27eZtjUaDjo4OvPTSSxaftlI6ruEhUg+GHWVh2CFncHhK66WXXsLMmTNRWlqKtrY2rFy5EkeOHMG5c+dw4MABZ9RIRNRrag87ago6RM7kcIdHq9Xin//8J26//Xbce++9aG1txcMPP4zy8nLceuutzqhRFpzSIlI+hh3lYXeHnKVXz+G56aab8Oyzz0pdi0vhgweJlI1hR3kYdsiZHO7wvP3229i5c6fV/p07d+JPf/qTJEUREfUFww4R3cjhwPP8888jICDAan9gYCA2btwoSVFERL3FsKNM7O6QszkceE6ePIlx48ZZ7Q8LC0N1dbUkRRER9QbDjjIx7FB/cDjwBAYG4p///KfV/sOHD2PkyJGSFOUKuGiZSDmiA4cy7CgUww71F4cDz09/+lMsW7YM+/btg8lkgslkwqeffopf//rX+OlPf+qMGmXB5/AQKYPagw6g3rBD1J8c/pTWc889h5MnT2LWrFnw9Lz24x0dHVi0aBHX8BBRv2LYUTZ2d6g/ORR4hBCora3F22+/jeeeew4VFRUYNGgQIiIiEBYW5qwaiYisMOwoG8MO9TeHA8+ECRNw5MgRTJgwARMmTHBWXURENjHsKBvDDsnBoTU8AwYMwIQJE9DY2OiselwGFy0TuSaGHSLqDYcXLb/44ov47W9/i2+//dYZ9bgMLlomcj0MO8rH7g7JxeFFy7/4xS9w6dIlREVFwcvLC4MGWf7Le+7cOcmKIyLqxLCjfO4Qdm52gzEqlcOBJzs72wllEBG5N4Yd5btlxCC0tFyUuwyyweHAk5qa6ow6iIjcFsOO8t0yQv1jVDqHA09PXx8RGhra62KIiLqi5ukshh3lY9hRBocDz8033wyNRmPzuMlk6lNBRETXY9hRLoYdciUOB57y8nKL7fb2dpSXl2PTpk3YsGGDZIUREakZw47yMew4rqamBikpKaivr4enpyfWrl2LRx55pF/u7XDgiYqKstoXExOD4OBgvPTSS3j44YclKYyISK3dHYYdZWPQ6T1PT09kZ2cjOjoa9fX1mDp1KpKTkzFkiPP/Tjj8HB5bJk6cqKpn1vDBg0TyYthRJoYd6s7o0aMRHR0NAAgMDIS/v3+/Pc7G4cDT3Nxs8WpqasJ3332HtWvXquqrJvjgQSL5MOwoE8OO+hUVFWHOnDkIDg6GRqNBfn6+1Tk5OTkYN24cfHx8oNPpUFxc3OW1SktL0dHRgZCQECdXfY3DU1rDhw+3WrQshEBISAjeffddyQojIlIThh1lY9i5prW1FVFRUXj00Ucxf/58q+N5eXlYvnw5cnJyMH36dLz55pvQ6/WorKy0+BR3Y2MjFi1ahK1bt/Zb7Q4Hnn379llsDxgwAKNGjcL48ePh6enw5YiILKixu8Owo2xqDzvNzc0W297e3vD29u7yXL1eD71eb/NamzZtwpIlS7B06VIA1x5WXFBQgC1btiArKwsAYDQaMW/ePKxevRrTpk2TaBQ9czih3HXXXc6og4iIYUeBGHbk8c2/W+Hh07drmK60AoDVlNK6devwzDPPOHy9trY2lJWVYdWqVRb7k5KSUFJSAuDajNDixYtx9913IyUlpXeF91KvWjI//vgjsrOzcfToUWg0Gtx222349a9/jVtvvVXq+ojITTDsKIvagw7gumFHajU1NfD19TVv2+ru9KShoQEmkwlBQUEW+4OCglBXVwcAOHDgAPLy8hAZGWle//POO+8gIiKid8U7wOHAU1BQgLlz5yI6OhrTp0+HEAIlJSWYPHky/vd//xf33nuvM+okIlIUhh1lc5ewAwC+vr4Wgaevulrn27lvxowZ6OjokOxejnA48KxatQpPPfUUnn/+eav9v/vd7xh4iMhhauvuMOwomzuFHSkFBATAw8PD3M3pVF9fb9X1kYPDH0s/evQolixZYrX/scceQ2VlpSRFSc3T0xPR0dGIjo42L6QiItfAsKMcDDvUHS8vL+h0OhQWFlrsLyws7NfFybY43OEZNWoUKioqrJ65U1FRgcDAQMkKk9Lw4cNRUVEhdxlEdAOGHeVg2CEAaGlpwfHjx83bVVVVqKiogL+/P0JDQ5GZmYmUlBTExMQgLi4Oubm5qK6uRlpamoxVX+Nw4Hn88cfxxBNP4F//+hemTZsGjUaDzz//HC+88AJ+85vfOKNGIiKXx7CjbAw79iktLUViYqJ5OzMzEwCQmpqKbdu2YeHChWhsbMT69etRW1uL8PBw7NmzB2FhYXKVbObwlNbatWvx9NNP44033sBdd92FhIQEbN68Gc888wzWrFnjcAFSPrXRlubmZuh0OsyYMQP79+93uEYikp6aujsMO8rGsGO/mTNnQghh9dq2bZv5nPT0dJw4cQJGoxFlZWVISEiQr+DrONzh0Wg0eOqpp/DUU0/h4sWLAIBhw4b1ugApntqo0+lgNBqtfnbv3r0IDg7GiRMnEBwcjG+//Rb3338/vvnmG0lXpBORYxh2lIFhh9TE4cBz+fJlCCEwePBgDBs2DCdPnsQf//hHaLVaJCUlOVyAFE9tLCsr6/YewcHBAIDw8HBotVr88MMPiImJ6fJco9FoEZ5ufAIlEfUNw44yqD3sMOi4H4entB588EFs374dAHDhwgXcfvvteOWVV/Dggw9iy5YtkhbX+dTGG4PU9U9t7Mn58+fNAebUqVOorKzELbfcYvP8rKws+Pn5mV/99aVmRKQsDDvKxbDjnhwOPF9//TXi4+MBAO+99x5uuukmnDx5Etu3b8frr78uaXH2PLWxJ0ePHkVMTAyioqLwwAMP4LXXXoO/v7/N81evXo2mpibzq6ampk9jIKL/UEt3h2FHuRh23JfDU1qXLl0yr9nZu3cvHn74YQwYMAB33nknTp48KXmBQPdPbezJtGnT8M0339h9r84vTTMYDDAYDDCZTA7VSkRdY9hxfQw7pGYOd3jGjx+P/Px81NTUoKCgwDzdVF9fL/lCYDmf2piRkYHKykocOnTIqfchcgcMO66PYYfUzuHA8/TTT2PFihW4+eabcccddyAuLg7AtW7PlClTJC1Ozqc2GgwGaLVaxMbGOvU+RGrHsOP6GHbIHTg8pbVgwQLMmDEDtbW1iIqKMu+fNWsW5s2b53ABrvrUxoyMDGRkZKC5uRl+fn5OvRcRuTaGHeVi2KFODgceALjppptw0003Wey7/fbbe1WAkp/aSETdU0N3h2FHuRh26Hq9CjxS6nxqY3fS09ORnp7eTxVdw0XLRH3DsOO61B50AIYdsubwGh53wUXLRL3HsOO6GHbIXTHwEBHdgGFHuRh2yBYGHhv4KS2i3lF6d4dhR7kYdqg7DDw2cEqLyHEMO66JYYeIgYeIJMKw45oYdoiukf1TWq6Kn9Iicg9qDTqA+sMOgw45gh0eGzilRWQ/pXZ3GHaUi2GHHMXAQ0R9wrDjehh2iKwx8BBRrzHsuB6GHaKuMfAQkVth2FEuhh3qCwYeG/gcHqLuKbG7w7CjXAw71FcMPDZw0TKRbQw7roVhh6hnDDxE5BCGHdfCsENkHwYeIlI1hh3lYtghKfHBg0RkN6V1d9QadtQedACGHZIeOzxEZBeGHdfAsEPUOww8NvBTWkT/wbDjGhh2iHqPgccGfkqLSJkYdpSLYYeciYGHiLqlpO4Ow45yMeyQs3HRMhHZxLAjP7WHHQad3jlW1wKNd0efriGMlySqRhnY4SGiLjHsyI9hh0g6DDxEpGgMO8rEsEP9jYGHiKwopbvDsKNMDDskBwYeIrLAsCMvhh0i52DgsYHP4SF3pJSwo1YMO8o3SuW/QyVj4LGBz+EhIiJHBI4YLHcJ1A0GHiIicjq1d3cYdlwfAw8RAVDWdJZa1++oFcMOuQIGHiIichqGHXIVDDxERES9wLCjLAw8RKSo6SxSDjV3dxh2lIeBh4iIJMewQ67GLQJPVVUVEhMTodVqERERgdbWVrlLIiJSLYYdckVu8W3pixcvxnPPPYf4+HicO3cO3t7ecpdE5DI4nUVSUmvYYdBRPtUHniNHjmDgwIGIj48HAPj7+8tcERGRNTU8ZZlhh1yZ7FNaRUVFmDNnDoKDg6HRaJCfn291Tk5ODsaNGwcfHx/odDoUFxfbff1jx45h6NChmDt3LqZOnYqNGzdKWD0REQEMO+T6ZO/wtLa2IioqCo8++ijmz59vdTwvLw/Lly9HTk4Opk+fjjfffBN6vR6VlZUIDQ0FAOh0OhiNRquf3bt3L9rb21FcXIyKigoEBgbivvvuQ2xsLO69916nj43I1XE6yzUovbvDsENKIHvg0ev10Ov1No9v2rQJS5YswdKlSwEA2dnZKCgowJYtW5CVlQUAKCsrs/nzY8eORWxsLEJCQgAAycnJqKiosBl4jEajRXhqbm52eExERKRsDDvqI/uUVnfa2tpQVlaGpKQki/1JSUkoKSmx6xqxsbE4e/Yszp8/j46ODhQVFeG2226zeX5WVhb8/PzMr86gRETkDOzuuB6GHXVy6cDT0NAAk8mEoKAgi/1BQUGoq6uz6xqenp7YuHEjEhISEBkZiQkTJuCBBx6wef7q1avR1NRkftXU1PRpDESuitNZ1FcMO6Qksk9p2UOj0VhsCyGs9nWnp2mz63l7e8Pb2xsGgwEGgwEmk8mhWomI3AHDDimNS3d4AgIC4OHhYdXNqa+vt+r6SC0jIwOVlZU4dOiQU+9DRO5LqdNZDDukRC4deLy8vKDT6VBYWGixv7CwENOmTXPqvQ0GA7RaLWJjY516HyI5KHk6K9x/iNwluDWGHVIq2ae0WlpacPz4cfN2VVUVKioq4O/vj9DQUGRmZiIlJQUxMTGIi4tDbm4uqqurkZaW5tS6MjIykJGRgebmZvj5+Tn1XkTkfpTY3WHYISWTPfCUlpYiMTHRvJ2ZmQkASE1NxbZt27Bw4UI0NjZi/fr1qK2tRXh4OPbs2YOwsDC5SiYicjsMO6R0sgeemTNnQgjR7Tnp6elIT0/vp4qu4aJlUislT2cRSYVhx/249BoeOXHRMhE5i9Kms9TW3WHYcU8MPERuhN0dchTDDqkFA48N/JQWETmDkro7DDukJgw8NnBKi4jcGcMOqQ0DD5Gb4HQW2Ythh+Q0b948jBgxAgsWLLA6tnv3bkyaNAkTJkzA1q1bHbouAw8RUT9RwnQWww7JbdmyZdi+fbvV/qtXryIzMxOffvopvv76a7zwwgs4d+6c3ddl4LGBa3iIyN0w7JArSExMxLBhw6z2f/XVV5g8eTLGjBmDYcOGITk5GQUFBXZfl4HHBq7hITXhdJb8lNDdUROGHecoKirCnDlzEBwcDI1Gg/z8fKtzcnJyMG7cOPj4+ECn06G4uFiSe585cwZjxowxb48dOxanT5+2++cZeIiISFXdHYYd52ltbUVUVBQ2b97c5fG8vDwsX74ca9asQXl5OeLj46HX61FdXW0+R6fTITw83Op15syZbu/d1UOKNRqN3bXL/qRlIiK1c/XuDsOOe2tubrbY9vb2hre3d5fn6vV66PV6m9fatGkTlixZgqVLlwIAsrOzUVBQgC1btiArKwsAUFZW1qs6x4wZY9HROXXqFO644w67f56BxwZ+tQSphZqms/hN6dJj2FEmcf404NW3351ouwwACAkJsdi/bt06PPPMMw5fr62tDWVlZVi1apXF/qSkJJSUlPS6zk633347vv32W5w+fRq+vr7Ys2cPnn76abt/noHHBn5bOhGpHcMOAUBNTQ18fX3N27a6Oz1paGiAyWRCUFCQxf6goCDU1dXZfZ3Zs2fj66+/RmtrK8aOHYtdu3YhNjYWnp6eeOWVV5CYmIiOjg6sXLkSI0eOtPu6DDxERE7kqtNZDDvUydfX1yLw9NWN62qEEA6ttenuk1dz587F3Llze1UXAw+RiqlpOouko5aww6DjWgICAuDh4WHVzamvr7fq+siBn9IiInISV+zuMOyQs3h5eUGn06GwsNBif2FhIaZNmyZTVf/BDg8RESkKw458WlpacPz4cfN2VVUVKioq4O/vj9DQUGRmZiIlJQUxMTGIi4tDbm4uqqurkZaWJmPV1zDw2MBPaZHScTqLbqSG7g7DjrxKS0uRmJho3s7MzAQApKamYtu2bVi4cCEaGxuxfv161NbWIjw8HHv27EFYWJhcJZtpRFdP8iGzzk9p3fbs3+Hhw4/EknKoMfAo6WPprjadxbDTPy5ebMZEbSiampokXQjcqfM9yeOnL0EjwcfSTe/+1mm1uhqu4SEiUjmGHSIGHiJVUmN3R0lcqbvDsEN0DQMPEZFKMewQ/QcDDxGRhFylu8OwQ2SJgYdIZTidRQw7RNYYeIiIyKUw7JAzMPDYYDAYoNVqERsbK3cpRKQQrjCdpfTuDsMOOQsDjw0ZGRmorKzEoUOH5C6FyG5qns5S0jN45MKwQ2QbAw8RkQTk7u4w7BB1j4GHiEjhGHaIesbAQ6QSap7OItsYdojsw8BDRNRHck1nMewQ2Y+Bh4hIgRh2iBzDwEOkAmqfznLlT2jJvVhZiRh2SA6qDzzff/89oqOjza9BgwYhPz9f7rKIJMOwIx+GHSLl8JS7AGebNGkSKioqAAAtLS24+eabce+998pbFJFEGHaIiOyj+g7P9f7+979j1qxZGDKE/ydKysewIy85uztKX79DJAfZA09RURHmzJmD4OBgaDSaLqebcnJyMG7cOPj4+ECn06G4uLhX99qxYwcWLlzYx4qJ5BUdOJRhR2acyiJbhg/zkbsEskH2wNPa2oqoqChs3ry5y+N5eXlYvnw51qxZg/LycsTHx0Ov16O6utp8jk6nQ3h4uNXrzJkz5nOam5tx4MABJCcnO31MRM6i9qADMOyQco3wZdhxZbKv4dHr9dDr9TaPb9q0CUuWLMHSpUsBANnZ2SgoKMCWLVuQlZUFACgrK+vxPh9++CFmz54NH5/u/4U0Go0wGo3m7ebmZnuGQeR0DDtERL0ne4enO21tbSgrK0NSUpLF/qSkJJSUlDh0LXuns7KysuDn52d+hYSEOHQfImdg2HENrtDd4fod18Tujutz6cDT0NAAk8mEoKAgi/1BQUGoq6uz+zpNTU346quvMHv27B7PXb16NZqamsyvmpoah+smkhLDjmtwhbBDrolhRxlkn9Kyh0ajsdgWQljt646fnx/Onj1r17ne3t7w9vaGwWCAwWCAyWRyqFYiKTHsEBFJw6U7PAEBAfDw8LDq5tTX11t1faSWkZGByspKHDp0yKn3IbKFYcd1sLtDtrC7oxwuHXi8vLyg0+lQWFhosb+wsBDTpk1z6r0NBgO0Wi1iY2Odeh+irjDsuA6GHSJ1kH1Kq6WlBcePHzdvV1VVoaKiAv7+/ggNDUVmZiZSUlIQExODuLg45Obmorq6GmlpaU6tKyMjAxkZGWhuboafn59T70V0PYYd1+FqYYcLll0LuzvKInvgKS0tRWJionk7MzMTAJCamopt27Zh4cKFaGxsxPr161FbW4vw8HDs2bMHYWFhcpVM5DRqDztKCTpEPWHYUR7ZA8/MmTMhhOj2nPT0dKSnp/dTRddw0TL1N4Yd1+Jq3R0i6huXXsMjJy5apv7EsONaGHaoO+zuKJPsHR4id8ew41oYdkgJxNljgKdX365xtU2iapSBHR4b+Ckt6g8MO2QvLlh2DezuKBcDjw2c0iJn4jeeuyZ2d6g7DDvKxsBD1M/UHnQAhh0icj0MPET9iGGHSJnY3VE+Bh4buIaHpMaw47pcvbvD9TtEfcfAYwPX8JCUGHZcl6uHHZIfuzvqwMBD5GQMO66LYYd6wrCjHgw8RE7EsENkKXDEYLlLIDfFwGMD1/BQXzHsuDZ2d6gn7O6oCwOPDVzDQ33BsOPalBR2uGCZSBr8agkiiak97Cg56ADKCjskH3Z31IcdHiIJMewQKR/Djjox8BBJhGHH9bG7Q+S+GHiIJMCw4/oYdsge7O6oFwOPDfyUFtmLYYechQuWiaTDwGMDP6VFPeE3nisHuztkD3Z31I2Bh6gX1B50AIYdci8MO+rHwEPkIIYd5WDYIaJODDxEDmDYof7C9Tv9h90d98DAQ2Qnhh1lYXeHiK7HwENkB4YdZWHYIXuxu+M+GHiIesCwoywMO2Qvhh33wsBjA5/DQwDDDhGRWjDw2MDn8JDaw064/xDVhR21dHe4YNn52N1xPww8RF1wh7CjNmoJO0TkHAw8RDdg2FEehh1yBLs77omBh+g6DDtE6saw474YeIj+P4YdZWJ3h4jswcBDBIYdpVJj2OGCZedhd8e9ecpdAJGc1B50APWGHSIiR7hFh+fVV1/F5MmTodVqsWzZMggh5C6JXADDjrKpsbtDzsPujjLU1NRg5syZ0Gq1iIyMxM6dO+06Zg/Vd3j+/e9/Y/PmzThy5AgGDhyIhIQEHDx4EHFxcXKXRjJi2FE2hh1yBMOOcnh6eiI7OxvR0dGor6/H1KlTkZycjCFDhnR7zK5rO7l2l3D16lVcuXIFANDe3o7AwECZKyI5Mewom5rDDtfvkLsbPXo0Ro8eDQAIDAyEv78/zp07hyFDhnR7zB6yT2kVFRVhzpw5CA4OhkajQX5+vtU5OTk5GDduHHx8fKDT6VBcXGz39UeNGoUVK1YgNDQUwcHBuOeee3DrrbdKOAJSEoYdIvfC7o60nP2efb3S0lJ0dHQgJCTEoWO2yB54WltbERUVhc2bN3d5PC8vD8uXL8eaNWtQXl6O+Ph46PV6VFdXm8/R6XQIDw+3ep05cwbnz5/H7t27ceLECZw+fRolJSUoKirqr+GRC2HYUT41d3fcQeCIwXKXQH3k7PfsTo2NjVi0aBFyc3Ot7tHdse5ohAut4NVoNNi1axceeugh87477rgDU6dOxZYtW8z7brvtNjz00EPIysrq8Zo7d+7EZ599BoPBAAB46aWXIITAypUruzzfaDTCaDSat5uamhAaGoqJq9+Fhw//sipVxCh1BwEA0I5Q9xgn+Kn/v9RvVnmgG9XP4xs+rP//nbl48SJu1d6KCxcuwM/PT/LrNzc3w8/PDwPiFwOeXn272NU2dBRvQ01NDXx9fc27vb294e3t3eOPO+M9G7j2Pnzvvffi8ccfR0pKit3HeiRcCACxa9cu87bRaBQeHh7igw8+sDhv2bJlIiEhwa5rfvHFFyI6OlpcvnxZXL16VSQnJ4v8/Hyb569bt04A4Isvvvjii69ev3788cdevQ/25PLly+Kmm26SrM6hQ4da7Vu3bp1dtQDSv2d3dHSIn/70p13W0N0xe7j0ouWGhgaYTCYEBQVZ7A8KCkJdXZ1d17jzzjuRnJyMKVOmYMCAAZg1axbmzp1r8/zVq1cjMzPTvH3hwgWEhYWhurq6V2k9Nja2229c7+74jccc2e78c2xsLD755BOEhIRYpXipxtDdOV3tt6furv6s9HF0/m9zc7NTxyHVGLqqvXOf0n8X/TUO/v12nd+Fs8fR+b+dswL+/v4Oj8EePj4+qKqqQltbmyTXE0JAo9FY7LOnu9MVKd6zDxw4gLy8PERGRprXB73zzjuIiIjo9pg9XDrwdLrxl9HVL6g7GzZswIYNG+w611Yrz8/Pr1d/CT08PLr9ue6O33jMke3OP1+/z9fX1ylj6O6crvbbU3d3f1bqOG4831njkGoMtmpXw++iv8bBv9+u87tw9jhuPH/AAOctkfXx8YGPj+tO8fblPXvGjBno6Ohw+Jg9ZF+03J2AgAB4eHhYJcP6+nqrBOmqMjIyen38xmOObHf+uaf728Oea9g6p6v99tTd3Z97S+5xSDEGe64j1Riu31bb78LeGnrCv9/K+V10d44r/f1WMld/z1bEomWdToecnBzzPq1WiwcffNDuBVB90blArKmpqVf/1eEK1DAGgONwJWoYA6COcahhDADHoUSu+J7dHdmntFpaWnD8+HHzdlVVFSoqKuDv74/Q0FBkZmYiJSUFMTExiIuLQ25uLqqrq5GWltYv9Xl7e2PdunW9ntN0BWoYA8BxuBI1jAFQxzjUMAaA41AKV3/P7lavljpLaN++fV2uHE9NTTWfYzAYRFhYmPDy8hJTp04V+/fvl69gIiIiN6Xk92yXmtIiIiIicgaXXrRMREREJAUGHiIiIlI9Bh4iIiJSPQYeIiIiUj0GHgm9+uqrmDx5MrRaLZYtWwYlrgf//vvvER0dbX4NGjTI/AhvJamqqkJiYiK0Wi0iIiLQ2toqd0m94unpaf5dLF26VO5yeu3SpUsICwvDihUr5C6lVy5evIjY2FhER0cjIiICb731ltwl9UpNTQ1mzpwJrVaLyMhI7Ny5U+6SemXevHkYMWIEFixYIHcpDtm9ezcmTZqECRMmYOvWrXKX43b4KS2J/Pvf/8add96JI0eOYODAgUhISMDLL7+MuLg4uUvrtZaWFtx88804efIkhgxR1jdx33XXXXjuuecQHx+Pc+fOwdfXF56esj92ymEBAQFoaGiQu4w+W7NmDY4dO4bQ0FC8/PLLcpfjMJPJBKPRiMGDB+PSpUsIDw/HoUOHMHLkSLlLc0htbS3Onj2L6Oho1NfXY+rUqfj+++8V9/d73759aGlpwZ/+9Ce89957cpdjl6tXr0Kr1WLfvn3w9fXF1KlT8eWXXzrtO7fIGjs8Erp69SquXLmC9vZ2tLe3IzAwUO6S+uTvf/87Zs2apbj/M+wMnfHx8QAAf39/RYYdtTh27Bi+++47JCcny11Kr3l4eGDw4MEAgCtXrsBkMimygzt69GhER0cDAAIDA+Hv749z587JW1QvJCYmYtiwYXKX4ZCvvvoKkydPxpgxYzBs2DAkJyejoKBA7rLcitsEnqKiIsyZMwfBwcHQaDRdTtPk5ORg3Lhx8PHxgU6nQ3Fxsd3XHzVqFFasWIHQ0FAEBwfjnnvuwa233irhCK5x9jiut2PHDixcuLCPFVtz9hiOHTuGoUOHYu7cuZg6dSo2btwoYfX/0R+/i+bmZuh0OsyYMQP79++XqPL/6I8xrFixwumPlO+PcVy4cAFRUVEYO3YsVq5ciYCAAImq/4/+/PtdWlqKjo4OhISE9LFqS/05hv7U13GdOXMGY8aMMW+PHTsWp0+f7o/S6f9zm8DT2tqKqKgobN68ucvjeXl5WL58OdasWYPy8nLEx8dDr9ejurrafI5Op0N4eLjV68yZMzh//jx2796NEydO4PTp0ygpKUFRUZHixtGpubkZBw4ccMp/lTt7DO3t7SguLobBYMAXX3yBwsJCFBYWKm4cAHDixAmUlZXhD3/4AxYtWoTm5mZFjeHDDz/ExIkTMXHiREnr7u9xAMDw4cNx+PBhVFVV4a9//SvOnj2ryHEAQGNjIxYtWoTc3FzFjqG/9XVcXXUE7f0GcZKIjE95lg0AsWvXLot9t99+u0hLS7PY95Of/ESsWrXKrmvu2LFDpKenm7dffPFF8cILL/S51u44Yxydtm/fLn7+85/3tcQeOWMMJSUlYvbs2ebtF198Ubz44ot9rrU7zvxddLrvvvvEoUOHeltij5wxhlWrVomxY8eKsLAwMXLkSOHr6yueffZZqUruUn/8LtLS0sSOHTt6W6JdnDWOK1euiPj4eLF9+3YpyuyWM38X+/btE/Pnz+9rib3Sm3EdOHBAPPTQQ+Zjy5YtE3/5y1+cXiv9h9t0eLrT1taGsrIyJCUlWexPSkpCSUmJXdcICQlBSUmJeX7/s88+w6RJk5xRrk1SjKOTs6azeiLFGGJjY3H27FmcP38eHR0dKCoqwm233eaMcm2SYhznz5+H0WgEAJw6dQqVlZW45ZZbJK/VFinGkJWVhZqaGpw4cQIvv/wyHn/8cTz99NPOKNcmKcZx9uxZc3etubkZRUVFivz7LYTA4sWLcffddyMlJcUZZXZLyv+PciX2jOv222/Ht99+i9OnT+PixYvYs2cPZs+eLUe5bosrOQE0NDTAZDIhKCjIYn9QUBDq6ursusadd96J5ORkTJkyBQMGDMCsWbMwd+5cZ5RrkxTjAICmpiZ89dVXeP/996UusUdSjMHT0xMbN25EQkIChBBISkrCAw884IxybZJiHEePHsUvf/lLDBgwABqNBq+99lq/fqJDqn+f5CbFOE6dOoUlS5ZACAEhBJ588klERkY6o1ybpBjHgQMHkJeXh8jISPMalHfeeQcRERFSl9slqf6dmj17Nr7++mu0trZi7Nix2LVrF2JjY6Uu1272jMvT0xOvvPIKEhMT0dHRgZUrVyruU35Kx8BznRvnU4UQDs2xbtiwARs2bJC6LIf1dRx+fn5OWZ/giL6OQa/XQ6/XS12Ww/oyjmnTpuGbb75xRlkO6evvotPixYslqqh3+jIOnU6HiooKJ1TluL6MY8aMGejo6HBGWQ7p679Trvrppp7GNXfu3H7/D2H6D05p4dqzTjw8PKz+C6O+vt4qsbsyNYxDDWMA1DEONYwB4DhciRrG0BW1jkttGHgAeHl5QafTWX2Sp7CwENOmTZOpKsepYRxqGAOgjnGoYQwAx+FK1DCGrqh1XGrjNlNaLS0tOH78uHm7qqoKFRUV8Pf3R2hoKDIzM5GSkoKYmBjExcUhNzcX1dXVSEtLk7Fqa2oYhxrGAKhjHGoYA8BxuNI41DCGrqh1XG5Fls+GyWDfvn0CgNUrNTXVfI7BYBBhYWHCy8tLTJ06Vezfv1++gm1QwzjUMAYh1DEONYxBCI7DlahhDF1R67jcCb9Li4iIiFSPa3iIiIhI9Rh4iIiISPUYeIiIiEj1GHiIiIhI9Rh4iIiISPUYeIiIiEj1GHiIiIhI9Rh4iIiISPUYeIjILZ04cQIajcZlvgWdiJyLgYeIiIhUj4GHSOVMJhM6OjrkLkM2bW1tcpdARC6AgYeon7333nuIiIjAoEGDMHLkSNxzzz1obW0FAHR0dGD9+vUYO3YsvL29ER0djY8++sj8s5999hk0Gg0uXLhg3ldRUQGNRoMTJ04AALZt24bhw4dj9+7d0Gq18Pb2xsmTJ2E0GrFy5UqEhITA29sbEyZMwB//+EfzdSorK5GcnIyhQ4ciKCgIKSkpaGhosDmOxx57DJGRkTAajQCA9vZ26HQ6/PznP+92/EeOHMH9998PX19fDBs2DPHx8fjxxx/tGj8AfPPNN7j77rvN//yeeOIJtLS0mI8vXrwYDz30ELKyshAcHIyJEycCAL766itMmTIFPj4+iImJQXl5ebd1EpG6MPAQ9aPa2lr87Gc/w2OPPYajR4/is88+w8MPP4zO7/B97bXX8Morr+Dll1/GP//5T8yePRtz587FsWPHHLrPpUuXkJWVha1bt+LIkSMIDAzEokWL8O677+L111/H0aNH8Yc//AFDhw4113XXXXchOjoapaWl+Oijj3D27Fn813/9l817vP7662htbcWqVasAAGvXrkVDQwNycnJs/szp06eRkJAAHx8ffPrppygrK8Njjz2Gq1ev2jX+S5cu4b777sOIESNw6NAh7Ny5Ex9//DGefPJJi/t88sknOHr0KAoLC7F79260trbigQcewKRJk1BWVoZnnnkGK1ascOifKREpnMzf1k7kVsrKygQAceLEiS6PBwcHiw0bNljsi42NFenp6UIIIfbt2ycAiPPnz5uPl5eXCwCiqqpKCCHE22+/LQCIiooK8znff/+9ACAKCwu7vO/atWtFUlKSxb6amhoBQHz//fc2x1NSUiIGDhwo1q5dKzw9PcX+/fttniuEEKtXrxbjxo0TbW1tXR7vafy5ublixIgRoqWlxXz8H//4hxgwYICoq6sTQgiRmpoqgoKChNFoNJ/z5ptvCn9/f9Ha2mret2XLFgFAlJeXd1szEakDOzxE/SgqKgqzZs1CREQEHnnkEbz11ls4f/48AKC5uRlnzpzB9OnTLX5m+vTpOHr0qEP38fLyQmRkpHm7oqICHh4euOuuu7o8v6ysDPv27cPQoUPNr5/85CcAYJ5u6kpcXBxWrFiB3//+9/jNb36DhIQE8zG9Xm++1uTJk811xMfHY+DAgVbXsmf8R48eRVRUFIYMGWJxvKOjA99//715X0REBLy8vMzbnT83ePBgi9qJyH14yl0AkTvx8PBAYWEhSkpKsHfvXrzxxhtYs2YNvvzyS4wcORIAoNFoLH5GCGHeN2DAAPO+Tu3t7Vb3GTRokMV1Bg0a1G1dHR0dmDNnDl544QWrY6NHj+725w4cOAAPDw+rabetW7fi8uXLAGAOOD3VAXQ//uv/3N3PXR+IOn+OiNwbOzxE/Uyj0WD69Ol49tlnUV5eDi8vL+zatQu+vr4IDg7G559/bnF+SUkJbrvtNgDAqFGjAFxbc9PJnufIREREoKOjA/v37+/y+NSpU3HkyBHcfPPNGD9+vMXrxvBwvZdeeglHjx7F/v37UVBQgLffftt8bMyYMeZrhIWFAQAiIyNRXFzcZUizZ/xarRYVFRXmRd4AcODAAQwYMMC8OLkrWq0Whw8fNgcwADh48KDN84lIhWSdUCNyMwcPHhQbNmwQhw4dEidPnhQ7duwQXl5eYs+ePUIIIV599VXh6+sr3n33XfHdd9+J3/3ud2LgwIHihx9+EEII0dbWJkJCQsQjjzwivv/+e7F7924xadIkqzU8fn5+VvdevHixCAkJEbt27RL/+te/xL59+0ReXp4QQojTp0+LUaNGiQULFogvv/xS/Pjjj6KgoEA8+uij4urVq12Opby8XHh5eYm///3vQgghtm7dKoYNGyZ+/PFHm+NvaGgQI0eOFA8//LA4dOiQ+OGHH8T27dvFd999Z9f4W1tbxejRo8X8+fPFN998Iz799FNxyy23iNTUVPM9UlNTxYMPPmhx34sXL4qAgADxs5/9TBw5ckT84x//EOPHj+caHiI3wsBD1I8qKyvF7NmzxahRo4S3t7eYOHGieOONN8zHTSaTePbZZ8WYMWPEwIEDRVRUlPi///s/i2t8/vnnIiIiQvj4+Ij4+Hixc+dOuwLP5cuXxVNPPSVGjx4tvLy8xPjx48X//M//mI//8MMPYt68eWL48OFi0KBB4ic/+YlYvny56Ojo6PJaWq1WPPHEExb7582bJ6ZNm2YzJAkhxOHDh0VSUpIYPHiwGDZsmIiPjzeHJHvG/89//lMkJiYKHx8f4e/vLx5//HFx8eJF8/GuAo8QQnzxxRciKipKeHl5iejoaPH+++8z8BC5EY0QnNwmIiIideMaHiIiIlI9Bh4iIiJSPQYeIiIiUj0GHiIiIlI9Bh4iIiJSPQYeIiIiUj0GHiIiIlI9Bh4iIiJSPQYeIiIiUj0GHiIiIlI9Bh4iIiJSPQYeIiIiUr3/B7DjuLviWtDsAAAAAElFTkSuQmCC", - "text/plain": [ - "
" + "
" ] }, "metadata": {}, "output_type": "display_data" - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] } ], "source": [ - "x_grid, y_grid, plot_me_lap = generate_error_grid(8, 8, laplace2d, derivs_lap, 2, 2)\n", - "plt.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "plt.colorbar()\n", - "plt.xscale('log')\n", - "plt.yscale('log')\n", - "plt.xlabel(\"source x-coord\")\n", - "plt.ylabel(\"source y-coord\")\n" + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", + "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap1.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap2.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "fig.subplots_adjust(right=0.8)\n", + "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", + "fig.colorbar(cs1, cax=cbar_ax)\n", + "\n", + "\n", + "ax1.set_xscale('log')\n", + "ax1.set_yscale('log')\n", + "ax1.set_xlabel(\"source x-coord\")\n", + "ax1.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "ax2.set_xscale('log')\n", + "ax2.set_yscale('log')\n", + "ax2.set_xlabel(\"source x-coord\")\n", + "ax2.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mnotebook controller is DISPOSED. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], + "outputs": [], "source": [] } ], From b48fffc6d895d2cfa8c00908da3a171762e38473 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 2 Jan 2025 15:43:15 -0800 Subject: [PATCH 130/193] More does not equal better for taylor recurrence --- test/plot_taylor_recurrence.ipynb | 61 +++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 9fbe639a6..dbbb64c34 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -128,10 +128,10 @@ { "data": { "text/latex": [ - "$\\displaystyle 4.44089209850063 \\cdot 10^{-16}$" + "$\\displaystyle -5.55805401702969 \\cdot 10^{-15}$" ], "text/plain": [ - "4.44089209850063e-16" + "-5.55805401702969e-15" ] }, "execution_count": 7, @@ -687,7 +687,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -701,31 +701,54 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 2.10000031158992 \\cdot 10^{-7}$" + "$\\displaystyle 8.26446325111216 \\cdot 10^{-8}$" ], "text/plain": [ - "2.10000031158992e-7" + "8.26446325111216e-8" ] }, - "execution_count": 52, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "loc = np.array([1e-4, 1])\n", - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 6, 2, 2)" + "loc = np.array([1e-4, 1.1])\n", + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 4, 2, 2)" ] }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 1.73553721858137 \\cdot 10^{-8}$" + ], + "text/plain": [ + "1.73553721858137e-8" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 4, 8, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ @@ -747,22 +770,30 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 47, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "BOMB\n" + ] + } + ], "source": [ "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 8, laplace2d, derivs_lap, 2, 2)\n", - "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 6, 2)" + "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 4, 2)" ] }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 38, "metadata": {}, "outputs": [ { "data": { - "image/png": "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AH5Hf+IfJk8bAgAAuE3KweFPfvITXXTRRZo8ebJyc3OVm5urqVOn6uKLL9aPf/zjdNSIASA0tCc05HxDAHA3+hN4HdOGAADAjVI+43DEiBH6zW9+o71792rPnj2yLEvBYFAXX3xxOurDABAaAgBMQX/iD0wbAgAAuEvKwWG3iy++mGYcrscWZQAwC/0JvIhpQwAA4FYpb1W+7bbb9J3vfCfu+ve//3195StfsaUoDBzThoSGAGAS+hPvM3XakNAQAAC4WcrB4bZt23TDDTfEXf/yl7+shoYGW4rCwBAa2hsacr4hALgf/QkAAABgv5SDw7a2NmVnZ8ddP+OMMxSNRm0pCv1HaAgAMBH9ibcxbQgAAOBOKQeHJSUl2rhxY9z1X/3qVwoGg7YUBQwEW5QBwDz0J/AaQkMAAOAFKX84yoMPPqjZs2frjTfe0Be+8AVJ0u9//3v953/+p5544gnbC0TymDYkNAQAU9GfeJep04YAAABekHJweNNNN2nz5s369re/rSeffFJDhgzRhAkT9PTTT+vzn/98OmpEEggN0xMacr4hAHgD/Qm8hGlDAADgFSkHh5J0ww039HoAOQAAgFPoT7zHxGlDQkMAAOAlKZ9xeLLFixertbXVrlrQT0wbskUZAPAp+hNvMDE0BAAA8JoBBYf//u//zicVOozQkNAQANAT/QncimlDAACQDq+++qomTpwYuw0ZMkSbN2+25bX7tVW5m2VZthSB/iE0TG9oyPmGAOBN9Cfux7QhAACAfS677DI1NzdLktra2nTBBRfoS1/6ki2vPaCJQwAAAACnx7QhAADIhN/+9re67rrrdOaZ9gxDpRwctre3x/752LFjuvDCC20pBKlh2pAtygCAT9GfeIeJ04aEhgAAmK2hoUEzZ85UYWGhAoFAr9uIa2trNW7cOOXm5ioUCmn79u39eq/HH39cc+bMGWDFn0o5OCwoKNCdd96pP/7xj7YVkQkffvihiouLde+99zpdyoARGhIaAgB6oj8BAABAJkWj0R63jo6OhM9tb29XaWmpHn744V4f37hxo5YuXaoHHnhAu3fv1rRp01RZWamWlpbYc0KhkEpKSuJu7777bo+aduzYoeuvv962daZ8xuF//ud/asOGDbruuutUXFysO++8U7fffrsKCwttKyodHnroIX32s591uowBIzTMTGjI+YYA4C30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6KKLbFxBctK9zpM9/vjjmjNnzgArTl261/j666/rrLPO0k033aSrrrpK3/72t22sPnmZ+F5Go1GFQiFdc8012rZtm02VJy8Ta7z33ntVU1NjU8X9k4l1fvDBByotLdWYMWN03333adSoUTZVn5xM/tmza9cuHT9+XGPHjh1g1anL5DrdYqBrfvfdd3X++efH7o8ZM0bvvPNOJkr3BPqTT9Gf9I3+JHPoTz7l9f5EMqNHMbE/kehRgEwxJjhsb29XaWmpHn744V4f37hxo5YuXaoHHnhAu3fv1rRp01RZWamWlpbYc0KhkEpKSuJu7777rt5//3099dRTevPNN/XOO+9o586damhoyNTyYtK9zm7RaFQ7duxw5Lek6V7jxx9/rO3btyscDut//ud/VF9fr/r6+kwtLyYT38s333xTTU1N+tnPfqbbb79d0Wg0I2vrlu41/uY3v9Gll16qSy+9NFNL6lUmvpcjRozQSy+9pH379umXv/ylDh06lJG1dcvUnz1HjhzR7bffrvXr16d9Tb3J1DrdZKBr7m26JBAIpLVmL6E/OYH+5AT6E/qTTDKhP5HM6FFM7E8kehQgYywDSbI2bdrU49rVV19tLVq0qMe1z3zmM9ayZcuSes3HH3/cWrx4cez+9773Peu73/3ugGsdiHSss9tjjz1m/f3f//1ASxywdKxx586d1owZM2L3v/e971nf+973BlzrQKTze9nty1/+stXY2NjfEgcsHWtctmyZNWbMGKu4uNgaOXKklZeXZ61cudKukvslE9/LRYsWWY8//nh/SxywdK3xo48+sqZNm2Y99thjdpQ5YOn8Xj7zzDPW7NmzB1qi7fqz5h07dli33HJL7LElS5ZY//Ef/5H2Wr2I/oT+pC/0J86gP/FPf2JZZvQoJvYnlkWPAqSTMROHfens7FRTU5MqKip6XK+oqNDOnTuTeo2xY8dq586dsfM7nn32WV122WXpKLff7FhnN6e2AZ2OHWssKyvToUOH9P777+v48eNqaGjQ5Zdfno5y+82Odb7//vvq6OiQJL399tuKRCK68MILba+1v+xYY01Njfbv368333xTP/jBD/TVr35V3/zmN9NRbr/Zsc5Dhw7FpjGi0agaGhpc9eePHWu0LEt33HGHvvCFL2ju3LnpKHPA7Pwz1iuSWfPVV1+tP//5z3rnnXd07NgxbdmyRTNmzHCiXM+hP6E/ORn9iTvQn/inP5HM6FFM7E8kehTATpyoLKm1tVVdXV0qKCjocb2goEAHDx5M6jU+97nP6frrr9eVV16pQYMG6brrrtNNN92UjnL7zY51StLRo0f1wgsv6Ne//rXdJQ6YHWscPHiwvv3tb+vaa6+VZVmqqKjQjTfemI5y+82Ode7Zs0df+9rXNGjQIAUCAf34xz921SeI2fXfq9vZsc63335bCxYskGVZsixLd999tyZMmJCOcvvFjjXu2LFDGzdu1IQJE2Ln1/zbv/2bxo8fb3e5/WbXf7MzZszQiy++qPb2do0ZM0abNm1SWVmZ3eXaIpk1Dx48WD/84Q9VXl6u48eP67777vPdJ2qmC/0J/cnJ6E/cgf7EP/2JZEaPYmJ/ItGjAHYiODzJqecZWJaV0hkHDz30kB566CG7y7LdQNc5fPhwR84nScVA11hZWanKykq7y7LdQNY5ZcoUvfzyy+koy1YD/V52u+OOO2yqKD0Gss5QKKTm5uY0VGWvgazxmmuu0fHjx9NRlu0G+t+sFz/N73Rrvummm1wXVnkJ/Uly6E/cg/4kefQn7mBCj2JifyLRowB2YKuypFGjRikrKyvuNy6HDx+O+w2Fl5mwThPWKJmxThPWKJmxThPWKJmzzpOZuOZMMuXfrwnrNGGNkhnrNGGNEuv00zpNWGNvTF03kA4Eh5Kys7MVCoXiPpmuvr5eU6ZMcagq+5mwThPWKJmxThPWKJmxThPWKJmzzpOZuOZMMuXfrwnrNGGNkhnrNGGNEuv00zpNWGNvTF03kA7GbFVua2vT3r17Y/f37dun5uZm5efnq6ioSNXV1Zo7d64mTZqkyZMna/369WppadGiRYscrDp1JqzThDVKZqzThDVKZqzThDVK5qzzZCauOZNM+fdrwjpNWKNkxjpNWKPEOv20ThPW2BtT1w1kXKY+vtlpzzzzjCUp7jZv3rzYc8LhsFVcXGxlZ2dbV111lbVt2zbnCu4nE9Zpwhoty4x1mrBGyzJjnSas0bLMWefJTFxzJpny79eEdZqwRssyY50mrNGyWKef1mnCGntj6rqBTAtYlmUlGzICAAAAAAAAMANnHAIAAAAAAACIQ3AIAAAAAAAAIA7BIQAAAAAAAIA4BIcAAAAAAAAA4hAcAgAAAAAAAIhDcAgAAAAAAAAgDsEhAAAAAAAAgDgEhwAAAAAAAADiEBwCAAAAAAAAiENwCAAOePPNNxUIBNTc3Ox0KQAAAJLoTwAA8QgOAQAAAAAAAMQhOASQVl1dXTp+/LjTZTims7PT6RIAAMAp6E/oTwAAySE4BAzz5JNPavz48RoyZIhGjhypL37xi2pvb5ckHT9+XKtWrdKYMWOUk5OjiRMn6ne/+13sa5999lkFAgF98MEHsWvNzc0KBAJ68803JUkbNmzQiBEj9NRTTykYDConJ0dvvfWWOjo6dN9992ns2LHKycnRJZdcon/913+NvU4kEtH111+vs846SwUFBZo7d65aW1sTruPOO+/UhAkT1NHRIUn6+OOPFQqF9Pd///d9rv+VV17RDTfcoLy8PA0bNkzTpk3TG2+8kdT6Jenll1/WF77whdi/v7vuukttbW2xx++44w7dcsstqqmpUWFhoS699FJJ0gsvvKArr7xSubm5mjRpknbv3t1nnQAAmIT+hP4EAOBOBIeAQQ4cOKC/+7u/05133qk9e/bo2Wef1a233irLsiRJP/7xj/XDH/5QP/jBD/SnP/1JM2bM0E033aTXX389pff58MMPVVNTo0ceeUSvvPKKRo8erdtvv12/+tWv9JOf/ER79uzRz372M5111lmxuj7/+c9r4sSJ2rVrl373u9/p0KFD+pu/+ZuE7/GTn/xE7e3tWrZsmSTpwQcfVGtrq2praxN+zTvvvKNrr71Wubm5+sMf/qCmpibdeeed+uSTT5Ja/4cffqgvf/nLOvvss9XY2KgnnnhCTz/9tO6+++4e7/P73/9ee/bsUX19vZ566im1t7frxhtv1GWXXaampiatWLFC9957b0r/TgEA8Cv6E/oTAICLWQCM0dTUZEmy3nzzzV4fLywstB566KEe18rKyqzFixdblmVZzzzzjCXJev/992OP796925Jk7du3z7Isy3r00UctSVZzc3PsOa+++qolyaqvr+/1fR988EGroqKix7X9+/dbkqxXX3014Xp27txpnXHGGdaDDz5oDR482Nq2bVvC51qWZd1///3WuHHjrM7Ozl4fP936169fb5199tlWW1tb7PH//u//tgYNGmQdPHjQsizLmjdvnlVQUGB1dHTEnrNu3TorPz/fam9vj11bu3atJcnavXt3nzUDAOB39Cf0JwAA92LiEDBIaWmprrvuOo0fP15f+cpX9POf/1zvv/++JCkajerdd9/V1KlTe3zN1KlTtWfPnpTeJzs7WxMmTIjdb25uVlZWlj7/+c/3+vympiY988wzOuuss2K3z3zmM5IU26bTm8mTJ+vee+/Vv/zLv+gf//Efde2118Yeq6ysjL3WFVdcEatj2rRpOuOMM+JeK5n179mzR6WlpTrzzDN7PH78+HG9+uqrsWvjx49XdnZ27H731w0dOrRH7QAAgP6E/gQA4GaDnS4AQOZkZWWpvr5eO3fu1NatW/XTn/5UDzzwgJ5//nmNHDlSkhQIBHp8jWVZsWuDBg2KXev28ccfx73PkCFDerzOkCFD+qzr+PHjmjlzpr773e/GPXbeeef1+XU7duxQVlZW3HalRx55RH/9618lKdaIn64Oqe/1n/zPfX3dyY1799cBAIDe0Z/QnwAA3IuJQ8AwgUBAU6dO1cqVK7V7925lZ2dr06ZNysvLU2Fhof74xz/2eP7OnTt1+eWXS5LOOeccSSfO/OnW3Nx82vccP368jh8/rm3btvX6+FVXXaVXXnlFF1xwgS6++OIet1Ob3JN9//vf1549e7Rt2zbV1dXp0UcfjT12/vnnx16juLhYkjRhwgRt3769179MJLP+YDCo5ubm2GHtkrRjxw4NGjQodsh4b4LBoF566aXYXxQk6bnnnkv4fAAATEN/Qn8CAHApp/ZIA8i85557znrooYesxsZG66233rIef/xxKzs729qyZYtlWZb1ox/9yMrLy7N+9atfWX/5y1+sf/7nf7bOOOMM67XXXrMsy7I6OzutsWPHWl/5ylesV1991Xrqqaesyy67LO4MoeHDh8e99x133GGNHTvW2rRpk/W///u/1jPPPGNt3LjRsizLeuedd6xzzjnHuu2226znn3/eeuONN6y6ujpr/vz51ieffNLrWnbv3m1lZ2dbv/3tby3LsqxHHnnEGjZsmPXGG28kXH9ra6s1cuRI69Zbb7UaGxut1157zXrsscesv/zlL0mtv7293TrvvPOs2bNnWy+//LL1hz/8wbrwwgutefPmxd5j3rx51s0339zjfY8dO2aNGjXK+ru/+zvrlVdesf77v//buvjiizlDCAAAi/6E/gQA4GYEh4BBIpGINWPGDOucc86xcnJyrEsvvdT66U9/Gnu8q6vLWrlypXX++edbZ5xxhlVaWmr9f//f/9fjNf74xz9a48ePt3Jzc61p06ZZTzzxRFKN+V//+lfrnnvusc477zwrOzvbuvjii63/9//+X+zx1157zZo1a5Y1YsQIa8iQIdZnPvMZa+nSpdbx48d7fa1gMGjdddddPa7PmjXLmjJlSsJm3rIs66WXXrIqKiqsoUOHWsOGDbOmTZsWa+aTWf+f/vQnq7y83MrNzbXy8/Otr371q9axY8dij/fWmFuWZf3P//yPVVpaamVnZ1sTJ060fv3rX9OYAwBg0Z9YFv0JAMC9ApbF4RYAAAAAAAAAeuKMQwAAAAAAAABxCA4BAAAAAAAAxCE4BAAAAAAAABCH4BAAAAAAAABAHIJDAAAAAAAAAHEIDgEAAAAAAADEITgEAAAAAAAAEIfgEAAAAAAAAEAcgkMAAAAAAAAAcQgOAQAAAAAAAMQhOAQAAAAAAAAQ5/8HNedrepFtV+QAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAAKzCAYAAABf1JARAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACMYElEQVR4nOzdf3TU9Z3v8dcAJsEfgBFJjRLE+qOO/KohtoBY0DU0WqwUe+meXUQLVS7psZh1u3I8VqFV2tpS2nXCSr1X1u52RdtKe1xuMbYqFKqGlLTWUBUXBRVkQSUk1KDhe/947zdkMpmQSWbm++v5OCfndCaTyecrVp++35NJzHEcRwAAAAAAAADQyQCvDwAAAAAAAADAfxgcAgAAAAAAAEjB4BAAAAAAAABACgaHAAAAAAAAAFIwOAQAAAAAAACQgsEhAAAAAAAAgBQMDgEAAAAAAACkYHAIAAAAAAAAIAWDQwAAAAAAAAApGBwCAAAAAAAASMHgEAAAAAAAAECKSAwOn3jiCV1wwQU677zz9OCDD3p9HAAAAPoEAAAAvhdzHMfx+hC59NFHHykej+vpp5/WkCFDdPHFF+v5559XcXGx10cDAAARRZ8AAAAgCEL/isMXXnhBF110kc4880ydcsopuuqqq7RhwwavjwUAACKMPgEAAEAQ+H5wuHHjRs2cOVOlpaWKxWJat25dymNqa2s1evRoFRUVqby8XJs2ber43Ntvv60zzzyz4/ZZZ52lt956Kx9HBwAAIUWfAAAAIAoGeX2A42ltbdX48eN14403avbs2SmfX7t2rRYvXqza2lpNmTJFDzzwgKqqqtTU1KSysjJ195PYsVgs7fdra2tTW1tbx+2jR4/q3Xff1Wmnndbj1wEAEGWO4+jQoUMqLS3VgAG+30v2G30CAID/Ra1PgJxwAkSS8/jjjyfdd8kllzgLFy5Muu8Tn/iEc/vttzuO4zibN292rr322o7P3XLLLc6///u/p/0ed911lyOJDz744IMPPvjow8fu3buz9y/+gJDoEz744IMPPvjw80cU+wTIlkD9cpRYLKbHH39c1157rSTpyJEjOvHEE/XYY49p1qxZHY/72te+psbGRj377LP66KOPdOGFF+qZZ57pePPx5557Tqeddlq336PrRv/gwYMqKyvTgNnfVOyEopxeHxAEsVPPPP6DAETKeR87We0fHNYry7+k999/X0OHDvX6SHlFnwDIBhoLyK6o9wmQLb7/UeWe7N+/X+3t7SopKUm6v6SkRHv37pUkDRo0SN///vc1ffp0HT16VF//+tfTRrkkFRYWqrCwMOX+2AlFihUMzu4FAAETKz7L6yMA8JkLzjgl6TY/NkufAEhFQwH5N7DopI7/TZ8AfRfowaGr6z8EHMdJuu+aa67RNddck+9jAaFC8AJAZugTIPzoI8Cfui42AfRdoAeHw4cP18CBAzu29659+/albPkzlUgklEgk1N7e3q/nAQAgrIjy7tEnQPAxEASCiz4BsivQv1aooKBA5eXlqqurS7q/rq5OkydP7tdzV1dXq6mpSfX19f16HiAMiGcAXRHl6dEngL/Fis867geAYKJPgOzz/SsOW1patGPHjo7bO3fuVGNjo4qLi1VWVqaamhrNnTtXEydO1KRJk7R69Wrt2rVLCxcu9PDUQHgQzwC6IsrpE8CPaBYAALLP94PDrVu3avr06R23a2pqJEnz5s3TmjVrNGfOHB04cEDLli3Tnj17NGbMGK1fv16jRo3y6shAaBDgANA9+gTwF5oFAItNIDdijuM4Xh/Cjzq/h9Arr7yigV+6j99aiMghwgF0lS7K2z9o1fa7rtHBgwc1ZMiQPJ8qOugToHs0CxBt9AmQO4F+j8Nc4j2EEHUEOICu2OR7jz4BACAZfQLkFoNDACkYGgLoiigH4Fd0CwAAucPgEAAAAAAABA6LTSD3GBymkUgkFI/HVVFR4fVRgLxiaw+gK6LcP+gTIBndAkQXfQLkB4PDNHgPIUQR8Q2gK6LcX+gTAAAA5BODQwAA0C2GhgAAwI9oFCB/GBwCkMSrDQEAQLDQLkA0MTQE8ovBIQDCG0AKohwAAPgNfQLkH4PDNHjzcUQFQ0MAXRHl/kWfAIZ+AQAgPxgcpsGbjwMAooihob/RJwCAqKJRAG8wOAQijG09AAAIGvoFiB6GhoC0c+dOTZ8+XfF4XGPHjlVra6skadCgQZowYYImTJigBQsWZP37Dsr6MwIIBKIbQFdEOQAA8Bv6BDA33HCDvvWtb2nq1Kl69913VVhYKEkaNmyYGhsbc/Z9GRwCAACiHAAAAPCpl156SSeccIKmTp0qSSouLs7b9+ZHlYEI4tWGAAAgiGgYIFpYbCIsNm7cqJkzZ6q0tFSxWEzr1q1LeUxtba1Gjx6toqIilZeXa9OmTR2fe/XVV3XyySfrmmuu0cUXX6x7772343PNzc0qLy/XpZdeqmeffTbrZ+cVh2kkEgklEgm1t7d7fRQgqwhuAF0R5cFBnwAAooI+yb8PPvhAR44c8foYgeA4jmKxWNJ9hYWFHT8+3FVra6vGjx+vG2+8UbNnz075/Nq1a7V48WLV1tZqypQpeuCBB1RVVaWmpiaVlZXpww8/1KZNm9TY2KgRI0bos5/9rCoqKnTllVfq9ddfV2lpqf785z/r6quv1osvvqghQ4Zk7VpjjuM4WXu2EGpubtbQoUM18Ev3KVYw2OvjAP3C0BBAV9mK8vYPWrX9rmt08ODBrIYKukefIIroGCA66JP8++CDDzT67NHa+85er48SCCeffLJaWlqS7rvrrrt09913H/drY7GYHn/8cV177bUd933qU5/SxRdfrFWrVnXcd+GFF+raa6/V8uXL9fvf/15Lly7Vr3/9a0nSfffdJ0n6x3/8x6Tnrqqq0je/+U1NnDixj1eWilccAgAQUWzyAQAAIElHjhzR3nf2akfTDg05hSFrT5oPNevc+LnavXt30kA63asNj+fIkSNqaGjQ7bffnnR/ZWWltmzZIkmqqKjQO++8o/fee09Dhw7Vxo0bdfPNN+u9997TiSeeqMLCQr355ptqamrSOeec0/eL6waDQyAi2NIDAICgomOA6GCx6a0hpwzh1Zm9NGRIdv5a7d+/X+3t7SopKUm6v6SkRHv32itABw0apHvvvVeXXXaZHMdRZWWlPve5z2nLli26+eabNWDAAMViMf3whz/M+i9OYXAIRACxDaArohwAAPgNfYIo6/qeiV3fR7GqqkpVVVVJj5k8ebJefPHFnJ6L36oMAEDEEOUAAMBv6BNE1fDhwzVw4MCOVxe69u3bl/IqRC8wOARCjlcbAuiMKAcQNLQMACDMCgoKVF5errq6uqT76+rqNHnyZI9OdQw/qgyEGKENAAAAwO9YbCLsWlpatGPHjo7bO3fuVGNjo4qLi1VWVqaamhrNnTtXEydO1KRJk7R69Wrt2rVLCxcu9PDUhsFhGolEQolEQu3t7V4fBQCArCDKg48+QdSwBAXCjz5BFGzdulXTp0/vuF1TUyNJmjdvntasWaM5c+bowIEDWrZsmfbs2aMxY8Zo/fr1GjVqlFdH7hBzHMfx+hB+1tzcrKFDh2rgl+5TrGCw18cBeo3QBtBZrqO8/YNWbb/rGh08eJDfxJcH9Amigp4Bwo0+8Q+3Lfbt3sdfq+Nobm7WiJEjIvP3Fe9xCIQQkQ2gMzb5AIKIngEAwHsMDoGQIbIBAAAA+B2LTSAYGBwCABBiRDkAAPAb+gQIDgaHQIjwakMAnRHlAIKKpgHCiz4BgoXBIRASBDaAzohyAAAAAP3F4BAAAACAb7AMBcKLxSYQPAwOgRAgsAF0RpQDAAC/oU+AYGJwmEYikVA8HldFRYXXRwF6xNAQQGdEebjRJwCAIKJPgOBicJhGdXW1mpqaVF9f7/VRAADoFaI8/OgThB0LUQAA/IXBIRBgxDUAAAAAP2OxCQQbg0MgoBgaAuiMKAcQdLQNED70CRB8DA6BACKsAXRGlAMAAL+hT4BwYHAIAECAEeUAwoClKAAA/sTgEAgYwhoAAACAn7HYBMKDwSEQIAwNAXRGlAMAAL+hT4BwYXAIAEAAEeUAwoLFKBAe9AkQPgwOgYAgqgG4iHIAAAAA+cDgEAgAhoYAACCMaBwgPFhsAuHE4BAAgAAhygEAgN/QJ0B4MTgEfI5NPAAXUQ4gTGgcIBzoEyDcGBwCPkZQA3AR5QAAAADyjcFhGolEQvF4XBUVFV4fBRHF0BAA0BV9AgDwExabQPgxOEyjurpaTU1Nqq+v9/ooAICII8rhok8QFixIgeCjT4BoYHAI+BAxDcBFlAMAAL+hT4DoYHAI+AxDQwAuohxAGNE6AAAEB4NDAAAAAADQKyw2gWhhcAj4CBt4AC6iHAAA+A19AkQPg0PAJxgaAnAR5QDCit4Bgos+AaKJwSEAAD5ClAMAAADwCwaHgA+wfQcAAGFH7wDBxWITiC4Gh4DHiGgALqIcAAD4DX0CRBuDQ8BDDA0BuIhyAGFG8wDBRJ8AYHAIAIDHiHIAAAAAfsTgEPAIm3cAAAAAfsViE4DE4BDwBENDAC6iHEDY0T1A8NAnAFwMDgEA8AhRDgAA/IY+AdAZg0Mgz9i6A5CIcgDRQPcAABBsDA6BPCKeAQAAAPgVi00AXTE4BAAgz4hyAFHAwhQIFvoEQHciMTicNWuWTj31VF133XVeHwURRjwDkIhyHEOfAAD8gj4BkE4kBoe33HKLHn74Ya+PgQhjaAhAIsqRjD4BAACA30VicDh9+nSdcgr/sQZvMDQEAHSHPkGY0T9AcLDYBNATzweHGzdu1MyZM1VaWqpYLKZ169alPKa2tlajR49WUVGRysvLtWnTpvwfFACAfiDKg4U+AQBEAX0C4HgGeX2A1tZWjR8/XjfeeKNmz56d8vm1a9dq8eLFqq2t1ZQpU/TAAw+oqqpKTU1NKisrkySVl5erra0t5WuffPJJlZaWZnSetra2pOdqbm7O8IqAY9i2A5CI8iCiT4C+o3+AYKBPAPSG54PDqqoqVVVVpf38ihUrNH/+fC1YsECStHLlSm3YsEGrVq3S8uXLJUkNDQ1ZO8/y5cu1dOnSrD0footoBiAR5UFFnwAAAAA++FHlnhw5ckQNDQ2qrKxMur+yslJbtmzJyfdcsmSJDh482PGxe/funHwfAAAQTPQJACDoWGwC6C3PX3HYk/3796u9vV0lJSVJ95eUlGjv3r29fp4ZM2boD3/4g1pbW3XWWWfp8ccfV0VFRbePLSwsVGFhYb/ODfBqQwASUR5W9AmQHg0E+B99AiATvh4cumKxWNJtx3FS7uvJhg0bsn0kIC2CGYBElEcBfQIACBr6BMfz/qEP1K4Cr4/ha4cOfeD1EfLK1z+qPHz4cA0cODBle79v376ULX+2JRIJxePxtJt/AADSIcrDjT4BusfyFACA8PH14LCgoEDl5eWqq6tLur+urk6TJ0/O6feurq5WU1OT6uvrc/p9EC4EMwCEH30CAAgiFpsA+sLzH1VuaWnRjh07Om7v3LlTjY2NKi4uVllZmWpqajR37lxNnDhRkyZN0urVq7Vr1y4tXLjQw1MDqRgaApCI8rCgT4DM0EGAv9EnAPrK88Hh1q1bNX369I7bNTU1kqR58+ZpzZo1mjNnjg4cOKBly5Zpz549GjNmjNavX69Ro0Z5dWQgBbEMQCLKw4Q+AQCEBX0CoD88HxxOmzZNjuP0+JhFixZp0aJFeTqRSSQSSiQSam9vz+v3BQAEE1EeLvQJAAAA4PP3OPQS7yGE3uLVhgCAfKFP4Ee0EOBfLDYB9BeDQ6AfCGUAElEOAAD8hz4BkA2e/6gyECQMCgF0RZSbsaefpO1eHwJAXtBDgP/RJ4Y+AfqPwWEavIcQuiKSAXRFlJsJI07Wkb+2eH2MSKBPkG/0D4Cgok+A7OBHldPgPYTQGdEMAN2bMOJkr48QKfQJcilWfFbKB4DgYbEJIJt4xSFwHEQzgO4Q5QCCjsYBwoc+MSw2gexhcAgAQIaIckOUA8HBkBAIP/rE0CdAdjE4BHpAZAPoiig3RDngX/QLgKiiT4DsY3CYBm8+DqIbALpHlHuHPkF3aBYALDYB5Aq/HCUN3nwcANAVUQ6v0ScAgK7oE8NiE8gNBodAN9jcA+iKKDdEOeAvNAsQbfSJoU+A3GFwCHRBgAPoiig3RDkAAPAb+gTILQaHAADguIhywH9YdgLRxmITQD4wOAQ6IcABdEWUAwAAv6FPDItNIPcYHKaRSCQUj8dVUVHh9VGQJwwNAXRFlBui3D/oEwAADH0C5AeDwzT4rYXRwtAQQFcMDQ1R7i/0CVy0CxBdNAqAfGJwCAAAusXQEAAAf2FoaGgUIH8YHCLy2NgD6IooB+BntAsQTfSJYWgI5BeDQ0Qa4Q2gK6LcEOUAAMBv6BMg/xgcAgDwPxgaGqIc8C+WnkA00SgAvMLgEJFFeANAKoaGAAD4C0NDQ6MA3mBwiEhiaAigK6IcAAD4DX1iGBoC3mFwmEYikVA8HldFRYXXRwEA5BhRbohy/6NPoo3FJ4Aook8AbzE4TKO6ulpNTU2qr6/3+ijIMqIbAFIR5cFAnwBAdLDYBOAHDA4RKQwNAXRFlAMIAhoGiBb6xLDYBLzH4BCRQXAD6IooN0Q5AAD+QZ8Y+gTwBwaHAIBIIsoNUQ74H8tPAFFDnwD+weAQkUBwA0AqohwAAH9hsQnAbxgcIvQYGgLoiigHAAB+Q58YFpuAvzA4BABEClFuiHIgGFiAAtFAnxj6BPAfBocINWIbQGdEuSHKAQCA39AngD8xOEwjkUgoHo+roqLC66OgjxgaAkAqojzY6JNooWWAaGCxCcDPGBymUV1draamJtXX13t9FABAFhDlCAP6BADChT4xLDYB/2JwiFBiQw+gM6LcEOUAAPgHfWLoE8DfGBwidBgaAuiMKDdEORAs9AyAKKBPAP9jcIhQIbIBIBVRDgCAv7DYBBAUDA4BAKFFlAMIIhahQLjRJ4bFJhAMDA4RGkQ2gM6IckOUAwDgH/SJoU+A4GBwiFBgaAigM6LcEOVA8NA0AMKOPgGChcEhAAAhRJQDAOAvLDYBBBGDQwQem3kAnRHlAADAb+gTw2ITCB4Ghwg0hoYAOiPKDVEOBBNdA4QTfWLoEyCYGBwCAEKBKDdEOQAA8Bv6BAguBocILLbyAJCMKAeCi64BwonFJoCgY3CIQCKuAXRGlAMAAL+hTwyLTSDYGBymkUgkFI/HVVFR4fVR0AVDQwCdEeWGKI8G+iScaBsgfOgTQ58A2XX48GGNGjVKt912myTp5Zdf1oQJEzo+Bg8erHXr1mX1ezI4TKO6ulpNTU2qr6/3+igAgDSIckOURwd9AgAICvoEyL577rlHn/rUpzpuX3DBBWpsbFRjY6N+97vf6aSTTtKVV16Z1e/J4BCBwkYeAJIR5QAA+AuLTQC58Oqrr+ovf/mLrrrqqm4//6tf/UpXXHGFTjrppKx+XwaHCAyGhgA6I8oBhAF9A4QLfWJYbALJNm7cqJkzZ6q0tFSxWKzbHyeura3V6NGjVVRUpPLycm3atCnp87fddpuWL1+e9ns8+uijmjNnTraPzuAQABA8RLkhygEA8A/6xNAniIrm5uakj7a2trSPbW1t1fjx43X//fd3+/m1a9dq8eLFuuOOO7Rt2zZNnTpVVVVV2rVrlyTpl7/8pc4//3ydf/75ac+yefPmtK9G7I9BWX9GIAfYxgNwEeWGKAeCj74BEDb0SfD99/t/1V8/YlTUk5aWv0qSRo4cmXT/XXfdpbvvvrvbr6mqqlJVVVXa51yxYoXmz5+vBQsWSJJWrlypDRs2aNWqVVq+fLmee+45PfLII3rsscfU0tKiDz/8UEOGDNE3vvENSTZYnDFjhoqKirJwhcn4uwG+R1QDQDKiHAAAf2GxCUTP7t27NWTIkI7bhYWFfXqeI0eOqKGhQbfffnvS/ZWVldqyZYskafny5R0/prxmzRr9+c9/7hgaSvZjyjfddFOfvv/xMDgEAAQGUQ4gLFiMAuFBnxgWm4iaIUOGJA0O+2r//v1qb29XSUlJ0v0lJSXau3fvcb/+4MGDeuGFF/Tzn/+832fpDoND+BpRDcBFlBuiHAAA/6BPDH0C9F8sFku67ThOyn2SdMMNNyTdHjp0qN55552cnYtfjgLfYmgIwEWUG6IcAAD4DX0C9M/w4cM1cODAlFcX7tu3L+VViF5gcAhfYmgIAMmIciA86BwgHFhsAsiGgoIClZeXq66uLun+uro6TZ482aNTHcOPKgMAfI0oBwAAfkOfGBabQO+0tLRox44dHbd37typxsZGFRcXq6ysTDU1NZo7d64mTpyoSZMmafXq1dq1a5cWLlzo4akNg0P4Dlt4AC6i3BDlQHjQOUDw0SeGPgF6b+vWrZo+fXrH7ZqaGknSvHnztGbNGs2ZM0cHDhzQsmXLtGfPHo0ZM0br16/XqFGjvDpyBwaH8BViGoCLKDdEOQAA8Bv6BMjMtGnT5DhOj49ZtGiRFi1alKcT9R7vcQgAgE8R5QAA+AuLTQBRw+AQvsGrDQG4iHIAYUTrAMFGnxgWm0C0MDiELxDSAFxEuSHKAQDwD/rE0CdA9DA4BAD4BlFuiHIgfFiSAgg6+gSIptAPDnfv3q1p06YpHo9r3Lhxeuyxx7w+ErogpAHgGKI8GugTAAgOFpsAoiz0v1V50KBBWrlypSZMmKB9+/bp4osv1lVXXaWTTjrJ66NBDA0BHEOUI0rok2ihd4Dgok8Mi00gukI/ODzjjDN0xhlnSJJGjBih4uJivfvuu4S5DxDRAFxEuSHKo4M+AQD/o08MfQJEm+c/qrxx40bNnDlTpaWlisViWrduXcpjamtrNXr0aBUVFam8vFybNm3q0/faunWrjh49qpEjR/bz1ACAbCHKDVHuL/QJAAD0CQAfvOKwtbVV48eP14033qjZs2enfH7t2rVavHixamtrNWXKFD3wwAOqqqpSU1OTysrKJEnl5eVqa2tL+donn3xSpaWlkqQDBw7o+uuv14MPPtjjedra2pKeq7m5uT+XhzR4tSEAHEOU+w99gmyheYBgYrEJAMbzwWFVVZWqqqrSfn7FihWaP3++FixYIElauXKlNmzYoFWrVmn58uWSpIaGhh6/R1tbm2bNmqUlS5Zo8uTJPT52+fLlWrp0aYZXgUwQ0ABcRDn8ij4BgOiiTwyLTQCSD35UuSdHjhxRQ0ODKisrk+6vrKzUli1bevUcjuPohhtu0OWXX665c+ce9/FLlizRwYMHOz52797dp7MDAHpGlBuiPHjoE/QWy1IgeOgTQ58AcHn+isOe7N+/X+3t7SopKUm6v6SkRHv37u3Vc2zevFlr167VuHHjOt6f6Cc/+YnGjh3b7eMLCwtVWFjYr3MjPQIagESUu4jyYKJPAABhRp8A6MzXg0NXLBZLuu04Tsp96Vx66aU6evRoLo6FDDE0BIBjiPLgo0/QE7oHCB4WmwCQytc/qjx8+HANHDgwZXu/b9++lC1/tiUSCcXjcVVUVOT0+wBA1BDlCDr6BADChz4xLDYBdOXrwWFBQYHKy8tVV1eXdH9dXd1x30S8v6qrq9XU1KT6+vqcfp+oYOsOQCLKXUR5sNEnABAu9ImhTwB0x/MfVW5padGOHTs6bu/cuVONjY0qLi5WWVmZampqNHfuXE2cOFGTJk3S6tWrtWvXLi1cuNDDUyMTDA0BSES5iygPBvoE/UH7AAga+gRAOp4PDrdu3arp06d33K6pqZEkzZs3T2vWrNGcOXN04MABLVu2THv27NGYMWO0fv16jRo1yqsjIwOEMwAcQ5QHB30CANHAYhMAeub54HDatGlyHKfHxyxatEiLFi3K04lMIpFQIpFQe3t7Xr8vAIQRUY6goU/QVyxNgeCgTwyLTQA98fV7HHqJ9xDqP8IZgESUu4hyZAN9AgDZQZ8Y+gTA8TA4RE4wNAQgEeUuohwAAPgNfQKgNxgcAgCQQ0Q5EB0sToFgYLEJAL3H4DCNRCKheDyuiooKr48SOEQzAIkoB3KBPgGA/qFPDItNAL3F4DAN3kOobxgaApCIchdRjmyjT/yLBgL8jz4x9AmATDA4RNYQzAAkotxFlAMAAL+hTwBkisEhAABZRpQD0cLyFPA/FpsA0DcMDpEVBDMAiSgHAAD+Q58YFpsA+oLBYRq8+XjvMTQEIBHlLqIcuUSfAEBm6BNDnwDoKwaHafDm4wDQe0S5IcqRa/SJ/7BABeB39AmA/mBwiH4hlgHAEOUAAPgLi00A6D8Gh+gzhoYAJKIcQHTRQoB/0SeGxSaA/mJwCADoM6LcEOUAAPgHfWLoEwDZMMjrAyAY2KgD6IooN0S5iZ96ktdHAHKOHgIQFPSJoU+A/mNwmEYikVAikVB7e7vXR/EckQwA3SPKzZjik/TB4RavjxEJ9En+0D9AMLHYhIs+AbKDH1VOg99aaIhmAN0hyuEaU8wmP5/ok9yIFZ+V8gEgeOgTw2ITQDbxikMAQEaIckOUA8HFYBAIH/rE0CeGxSaQPQwOkRZRDaArotwQ5YYoRxDQMwCigj4x9AmQXQwO0S0iGwC6R5Qbohx+RL8A0cRiEy76BMg+BocAgF4hyuEiyuEXDAoB0CeGxSaAXOGXoyAFEQ6gK6LcEOUAAPgHfWLoE8NiE8gNBodIwtAQQFdEuSHKDVEOv6BZAIA+cdEnQO4wOEwjkUgoHo+roqLC66MAADxGlBui3Hv0CQAYFptw0SdAbjE4TKO6ulpNTU2qr6/3+ih5w+YeQFdEOVxEuT9EsU8AoCv6xLDYBJAPDA4hiaEhgFREuSHKAf+hWwBEHX1iWGwCucfgEMQ3gBQMDQ1RbohyAIBf0Chw0SdAfjA4BACgGwwNDVEOv2HhCUQXQ0NDowDIJwaHEUd8A+iKKIeLoSEAwC/oE8PQ0NAoQP4wOIwwhoYAuiLKDVEOAAD8hj4xDA2B/Brk9QEAAP7A0NAQ5YYohx+x9ASiiUaBiz7Jvdff/6tO/JBRUU8Ot/7V6yPkFa84jCjCGwBSMTQ0RDkAwC8YGhoaBYBXGBymkUgkFI/HVVFR4fVRso6hIYCuiHK4GBr6W5j75HjoFyB66BPD0NDQKIA3GBymUV1draamJtXX13t9FADIKaLcEOUIAvoEAKKFPjEMDQHvMDiMGLb1AJCKKDdEOfyKfgGih8UmXPQJ4C0GhxFCdAPoiiiHiygHAPgFfWJYbALwAwaHEcHQEEBXRLkhygEA8A/6xNAnhsUm4D0GhwAQQUS5IcoNUQ4/Y/kJIGroE0OfAP7A4DACCG4ASEWUG6IcAOAXLDbhok8A/2BwGHIMDQF0RZTDRZTD7+gYIDroE8NiE4DfMDgEgAghyg1RDgCAf9Anhj4xLDYBf2FwGGJs6QF0RpQbotwQ5fA7OgZAlNAnhj4B/IfBYUgR2wCQiig3RDkAwC9YbMJFnwD+xOAwhBgaAuiKKIeLKAcA+AV9YlhsAvAzBocAEHJEuSHKgeBgCQqEH31i6BPDYhPwLwaHIUNoA+iMKDdEuSHKAQDwD/rE0CeAvzE4TCORSCgej6uiosLro/QaQ0MASEWUG6I8HILYJ5miZ4DwY7EJF30C+B+DwzSqq6vV1NSk+vp6r48CAH1ClMNFlIcHfQIg6OgTw2ITQFAwOAwJtvMAOiPKDVEOBAs9A4QbfWLoE8NiEwgGBochQGQD6IwoN0S5IcoBAPAP+sTQJ0BwMDgEAIQOUW6IcgCAX7DYhIs+AYKFwWHA8WpDAJ0R5XAR5QgamgYIL/rEsNgEEEQMDgOMwAbQGVFuiHIAAPyDPjH0iWGxCQQPg8OAYmgIoDOi3BDlhihH0NA1AMKMPjH0CRBMDA4BAKFAlBuiHADgFyw24aJPgOBicBhAbOUBdEaUw0WUAwD8gj4xLDYBBB2Dw4BhaAigM6LcEOVAcNE2QPjQJ4Y+MSw2gWBjcAgAAUWUG6LcEOUAAPgHfWLoEyD4GBwGCBt5AEhGlBuiHEFF2wDhw2ITLvoECAcGhwFBWAPojCiHiygHAPgFfWJYbAIIEwaHABAwRLkhyoFgYykKhAt9YugTw2ITCA8GhwFAWANwEeWGKDdEOQAA/kGfGPoECBcGhz7H0BAAkhHlhigHAPgFi0246BMgfBgc+hhDQwCdEeVwEeUIOhoHCA/6xLDYBBBWoR8cHjp0SBUVFZowYYLGjh2rH//4x14fCQAyRpQbohxhQZ8ACAP6xNAnhsUmEE6DvD5Arp144ol69tlndeKJJ+rw4cMaM2aMvvCFL+i0007z+mg9YhMPwEWUG6LcEOXhENQ+yQYaB0CY0CeGPgHCK/SvOBw4cKBOPPFESdIHH3yg9vZ2OY7j8al6RlADQDKi3BDl4RHEPgGAzlhswkWfAOHm+eBw48aNmjlzpkpLSxWLxbRu3bqUx9TW1mr06NEqKipSeXm5Nm3alNH3eP/99zV+/HidddZZ+vrXv67hw4dn6fQAkFtEOVxEeX7RJ7nBchQIB/rEsNgEEAWeDw5bW1s1fvx43X///d1+fu3atVq8eLHuuOMObdu2TVOnTlVVVZV27drV8Zjy8nKNGTMm5ePtt9+WJA0bNkx//OMftXPnTv30pz/VO++8k/Y8bW1tam5uTvrIJ4IagIsoN0Q5vECfAED36BNDnxgWm0D4ef4eh1VVVaqqqkr7+RUrVmj+/PlasGCBJGnlypXasGGDVq1apeXLl0uSGhoaevW9SkpKNG7cOG3cuFFf/OIXu33M8uXLtXTp0gyvIjsYGgJwEeWGKDdEef7RJwCAdOgTQ58A0eD5Kw57cuTIETU0NKiysjLp/srKSm3ZsqVXz/HOO+90bOWbm5u1ceNGXXDBBWkfv2TJEh08eLDjY/fu3X2/AABAnxHlhij3H/qkb1iQAsHHYhMu+gSIDs9fcdiT/fv3q729XSUlJUn3l5SUaO/evb16jjfffFPz58+X4zhyHEdf/epXNW7cuLSPLywsVGFhYb/O3RfENAAXUQ4XUe5PUeoTAHDRJ4bFJoCo8fXg0BWLxZJuO46Tcl865eXlamxszMGpsoehIQAXUW6IcgRB2Pskm2gdINjoE0OfGBabQLT4+keVhw8froEDB6Zs7/ft25ey5c+2RCKheDyuioqKnH4fQhqAiyg3RLkhyv0rCn0CAEhGnxj6BIgeXw8OCwoKVF5errq6uqT76+rqNHny5Jx+7+rqajU1Nam+vj6n3wcAcAxRbohyf6NPAEQJi0246BMgmjz/UeWWlhbt2LGj4/bOnTvV2Nio4uJilZWVqaamRnPnztXEiRM1adIkrV69Wrt27dLChQs9PHV28GpDAC6iHC6i3B+i3CfZRu8AwUWfGBabAKLM88Hh1q1bNX369I7bNTU1kqR58+ZpzZo1mjNnjg4cOKBly5Zpz549GjNmjNavX69Ro0Z5deSsIKIBuIhyQ5TDT6LaJwDgok8MfWJYbALR5fngcNq0aXIcp8fHLFq0SIsWLcrTiUwikVAikVB7e3tevy+AaCHKDVFuiHL/oE+yg0UpgCCjTwx9AkSbr9/j0Eu5fA8hIhoAjiHKDVGO3uA9DgHkA4tNuOgTAAwO84yhIQAXUQ4XUY4wonmAYKJPDItNADAMDgHAA0S5IcoBAPAP+sTQJ4bFJgCJwWFaiURC8XhcFRUVWXtONu8AJKLcRZQbohyZyEWfAACOoU8MfQL4y+7duzVt2jTF43GNGzdOjz32WMfnvve97+miiy7SmDFj9G//9m9Z/94MDtPI9nsIMTQEgGOIckOUI1NBeY9DugcIHhabcNEngP8MGjRIK1euVFNTk5566indeuutam1t1Ysvvqif/vSnamho0NatW7Vq1Sq9//77Wf3eDA7zgHgG4CLK4SLKAQB+QZ8YFpsA/OqMM87QhAkTJEkjRoxQcXGx3n33XW3fvl2TJ09WUVGRioqKNGHCBP3617/O6vdmcAgAeUKUG6IcCDcWpkCw0CeGPjEsNoHc2Lhxo2bOnKnS0lLFYjGtW7cu5TG1tbUaPXq0ioqKVF5erk2bNnX7XFu3btXRo0c1cuRIjRkzRk8//bTef/99vf/++/rtb3+rt956K6tnZ3CYY8QzAIkodxHlhigHAMA/6BNDnwCZaW5uTvpoa2tL+9jW1laNHz9e999/f7efX7t2rRYvXqw77rhD27Zt09SpU1VVVaVdu3YlPe7AgQO6/vrrtXr1aklSPB7XLbfcossvv1yzZs1SRUWFBg0alL2LlJTdZwuRRCKhRCKh9vb2Pj8HQ0MAOIYoN0Q5+iMbfZJLtA8QLCw24aJP4Hr14Acq+pBRUU8+OPyBJGnkyJFJ99911126++67u/2aqqoqVVVVpX3OFStWaP78+VqwYIEkaeXKldqwYYNWrVql5cuXS5La2to0a9YsLVmyRJMnT+742ptvvlk333yzJGnBggU699xz+3xt3eEVh2kE5c3HAfgfUQ4XUY7+ok8AZAt9YlhsAuir3bt36+DBgx0fS5Ys6dPzHDlyRA0NDaqsrEy6v7KyUlu2bJEkOY6jG264QZdffrnmzp2b9Lh9+/ZJkl5++WW98MILmjFjRp/OkQ5j5Bxh4w5AIspdRDkAAP5Bnxj6xLDYBPpmyJAhGjJkSL+fZ//+/Wpvb1dJSUnS/SUlJdq7d68kafPmzVq7dq3GjRvX8f6IP/nJTzR27Fhde+21ev/993XSSSfpoYce4keVg4ChIQCJKHcR5YYoR9jRPwCChD4x9AngH7FYLOm24zgd91166aU6evRot1/nvioxV/hRZQBAzhDlhigHAPgFi0246BPAH4YPH66BAwd2vLrQtW/fvpRXIXqBwWGWsW0HIBHlOIYoRxTQP0Aw0CeGxSYAPykoKFB5ebnq6uqS7q+rq0v6JShe4UeV0+jLby0kmgFIRLmLKAeyz++/VRmAf9Enhj4xLDaB/GppadGOHTs6bu/cuVONjY0qLi5WWVmZampqNHfuXE2cOFGTJk3S6tWrtWvXLi1cuNDDUxsGh2lUV1erurpazc3NGjp06HEfz9AQgESUu4hyQ5Qj2zLtEwDAMfSJoU+A/Nu6daumT5/ecbumpkaSNG/ePK1Zs0Zz5szRgQMHtGzZMu3Zs0djxozR+vXrNWrUKK+O3IHBIQAgq4hyQ5QjKlieAv7HYhMu+gTwxrRp0+Q4To+PWbRokRYtWpSnE/Ue73GYBQQzAIkoxzFEOQDAL+gTw2ITAPqGwWE/MTQEIBHlLqIciBY6CPA3+sTQJ4bFJoC+YHAIAP1ElBui3BDlAAD4B31i6BMAfdWr9zg89dRTFYvFevWE7777br8OFCRs2QHAEOWGKM8v+sRbdBDgbyw24aJPAPRHrwaHK1eu7PjfBw4c0Le+9S3NmDFDkyZNkiT9/ve/14YNG3TnnXfm5JB+RCwDkIhyHEOU5x99AgDdo08Mi00A6L9eDQ7nzZvX8b9nz56tZcuW6atf/WrHfbfccovuv/9+PfXUU7r11luzf0oPJBIJJRIJtbe3e30UAD5FlBuiHF6hTwAgFX1i6BPDYhNAf2X8HocbNmzQZz/72ZT7Z8yYoaeeeiorh/KD6upqNTU1qb6+PuVzvNoQAFFuiHJDlHuPPskvWgiAn9Enhj4BkA0ZDw5PO+00Pf744yn3r1u3TqeddlpWDuVHsVPPVKz4LEIZAP4HUW6IcnPe0CJPv39U+yRf3AaihQB/Y7EJF31ivO4TIAx69aPKnS1dulTz58/XM8880/EeQs8995x+/etf68EHH8z6AQHAb4hyuIhyc8GwwTrcesjTM9An2cNgEAgm+sSw2ITLD30ChEHGg8MbbrhBF154oX70ox/pF7/4hRzHUTwe1+bNm/WpT30qF2cEAN8gyg1RDtcFwwZ7fQRJ9El/MCgEgo8+MfSJYbEJIJsyGhx++OGHuummm3TnnXfq3//933N1JgDwJaLcEOWGKPcP+qT3GBICCCv6xNAnxi+LTSAMMnqPwxNOOKHb9w8CAEQDUW6IcuOXKKdPutf1fQkZGgLhxGITLvrE+KVPgLDI+JejzJo1S+vWrcvBUQDAv4hyuIhy47cop0/4BSZAFNEnhsUmXH7rEyAMMn6Pw3PPPVff/OY3tWXLFpWXl+ukk5L/A+qWW27J2uEAwA+IckOUw+XHKI9qn8ROPVOxwhO9PgYAD9Anhj4xLDYB5ErGg8MHH3xQw4YNU0NDgxoaGpI+F4vFQhPmiURCiURC7e3tXh8FgIeIckOUG6Lcv+gTAIge+sTQJ8aPi00gDDIeHO7cuTMX5/Cd6upqVVdXq7m5WUOHDvX6OADgGaLcEOXGr1FOnwCIEhabQDK/9gkQBhm/x2FnjuPIcZxsnQUAfIUoh4uhoQlKlNMnAMKMPjEsNg2NEpw+AYKqT4PDhx9+WGPHjtXgwYM1ePBgjRs3Tj/5yU+yfTYA8AxRbohyuIIQ5fQJAEQDfWIYGgLIh4x/VHnFihW688479dWvflVTpkyR4zjavHmzFi5cqP379+vWW2/NxTkBIG8YGhqi3BDlwUCfAIgCGgUu+sQEYbEJBF3Gg8N//ud/1qpVq3T99dd33Pf5z39eF110ke6++27CHABCgKGhIcpNEKKcPgEQdgwNDY0CVxD6BAiDjH9Uec+ePZo8eXLK/ZMnT9aePXuycigA8ApRDhdDQxOUKKdPAIQZfWIYGhoaBUA+ZTw4PPfcc/Xoo4+m3L927Vqdd955WTkUAHiBKDdEOVxBGRpK9AkAhB19YhgamiA1ChB0Gf+o8tKlSzVnzhxt3LhRU6ZMUSwW0+9+9zv95je/6TbYASAIGBoaotwQ5cFDnwAIKxoFLvrEMDQE8ivjVxzOnj1bzz//vIYPH65169bpF7/4hYYPH64XXnhBs2bNysUZAQB5wNDQEOUmaFFOnwAII4aGhkaBK2h9AoRBxq84lKTy8nL927/9W7bPAgCeIMrhYmhoghrl9AmAMKFPDENDQ6MA8EqfBoft7e1at26dtm/frlgspng8rmuuuUYDBw7M9vkAIKeIckOUwxXUoaFEnwBA2NAnhqGhCXKjAEGW8eBwx44duvrqq/Xmm2/qggsukOM4euWVVzRy5Ej953/+pz7+8Y/n4pwAgBwhyg1RHmz0CYAwYbEJF31iGBoC3sn4PQ5vueUWnXPOOdq9e7f+8Ic/aNu2bdq1a5dGjx6tW265JRdnBICcIMrhIspNkKOcPgEQFvSJYbEJV5D7BAiDjF9x+Oyzz+q5555TcXFxx32nnXaavv3tb2vKlClZPZyXEomEEomE2tvbvT4KgBwgyg1RDlfQo5w+ARAG9ImhTwyLTQB+kPErDgsLC3Xo0KGU+1taWlRQUJCVQ/lBdXW1mpqaVF9f7/VRAGQZUW6IckOUhwN9AgDhQJ8Y+sQEfbEJhEHGg8PPfe5zuummm/T888/LcRw5jqPnnntOCxcu1DXXXJOLMwIAsowoN0S5CUOU0ycAgo7FJlz0iQlDnwBhkPHg8Ec/+pE+/vGPa9KkSSoqKlJRUZGmTJmic889Vz/84Q9zcUYAyBqiHC6i3IQlyukTAEFGnxgWm3CFpU+AMMj4PQ6HDRumX/7yl9qxY4e2b98ux3EUj8d17rnn5uJ8AJA1RLkhyuEKU5TTJwCCij4x9IlhsQnAbzIeHLrOPfdcYhxAYBDlhig3RHl40ScAEDz0iaFPTJgWm0AYZPyjytddd52+/e1vp9x/33336Ytf/GJWDgUAyD6i3BDlJmxRTp8ACCIWm3DRJyZsfQKEQcaDw2effVZXX311yv2f/exntXHjxqwcCgCyiSiHiyg3YYxy+gRA0NAnhsUmXGHsEyAMMh4ctrS0qKCgIOX+E044Qc3NzVk5FABkC1FuiHK4whrl9AmAIKFPDH1iWGwC8LOMB4djxozR2rVrU+5/5JFHFI/Hs3IoAMgGotwQ5YYoDzf6BACChT4x9IkJ62ITCIOMfznKnXfeqdmzZ+u1117T5ZdfLkn6zW9+o//4j//QY489lvUDAgD6jig3RLkJc5TTJwCCgsUmXPSJCXOfAGGQ8eDwmmuu0bp163TvvffqZz/7mQYPHqxx48bpqaee0mc+85lcnBEAMkaUw0WUm7BHOX0CIAjoE8NiE66w9wkQBhkPDiXp6quv7vYNyAHAD4hyQ5TDFZUop08A+Bl9YugTw2ITQFBk/B6HnS1atEj79+/P1lkAoN+IckOUG6I8mugTAPAn+sTQJyYqi00g6Po1OPy3f/s3flMhAPgMUW6IchPFKKdPAPgNi0246BMTxT4Bgqpfg0PHcbJ1DgDoN6IcLqLcRDXK6RMAfkKfGBabcEW1T4Cg6tfgEAD8gig3RDlcRDkAeI8+MfSJYbEJIIgy/uUora2tOukk+wfeoUOHsn4gAMgUUW6IckOURxN9AgD+RJ8Y+sSw2ASCJ+NXHJaUlOjLX/6yfve73+XiPDlz+PBhjRo1SrfddpvXRwGArCPKDVFuohjl9AkAv2GxCRd9YqLYJ0AYZPyKw//4j//QmjVrdMUVV2jUqFH68pe/rOuvv16lpaW5OF/W3HPPPfrUpz7l9TEAZBlRDhdRbqIa5fQJAD+hTwyLTbii2idB1PReqwo+iHl9DF878tdWr4+QVxm/4nDmzJn6+c9/rrffflv/+3//b/3Hf/yHRo0apc997nP6xS9+oY8++igX5+yXV199VX/5y1901VVXeX0UAFlElBuiHK4oRzl9AsAv6BNDnxgWmwCCrs+/HOW0007Trbfeqj/+8Y9asWKFnnrqKV133XUqLS3VN77xDR0+fLhXz7Nx40bNnDlTpaWlisViWrduXcpjamtrNXr0aBUVFam8vFybNm3K6Ky33Xabli9fntHXAPA3otwQ5YYoh4s+AQDv0SeGPjFRXmwCYZDxjyq79u7dq4cfflgPPfSQdu3apeuuu07z58/X22+/rW9/+9t67rnn9OSTTx73eVpbWzV+/HjdeOONmj17dsrn165dq8WLF6u2tlZTpkzRAw88oKqqKjU1NamsrEySVF5erra2tpSvffLJJ1VfX6/zzz9f559/vrZs2XLc87S1tSU9V3Nz83G/BgC8QJQbotwQ5YY+AeAlFptw0SeGPgGCL+PB4S9+8Qs99NBD2rBhg+LxuKqrq/X3f//3GjZsWMdjJkyYoE9+8pO9er6qqipVVVWl/fyKFSs0f/58LViwQJK0cuVKbdiwQatWrerY0jc0NKT9+ueee06PPPKIHnvsMbW0tOjDDz/UkCFD9I1vfKPbxy9fvlxLly7t1dkBeIMoh4soN0Q5fQLAe/SJYbEJF30ChEPGP6p84403qrS0VJs3b1ZjY6O++tWvJkW5JJ1zzjm64447+n24I0eOqKGhQZWVlUn3V1ZW9mo7L1lo7969W6+//rq+973v6Stf+UraKJekJUuW6ODBgx0fu3fv7tc1AMguotwQ5XAR5YY+AeAl+sTQJ4bFJoAwyfgVh3v27NGJJ57Y42MGDx6su+66q8+Hcu3fv1/t7e0qKSlJur+kpER79+7t9/N3p7CwUIWFhTl5bgD9Q5QbotwQ5eiMPgEAb9Enhj4xLDaB8Mh4cHi8KM+FWCz5V4E7jpNyX2/ccMMNWToRAHiDKDdEuSHKj6FPAHiFxSZc9ImhT4Bw6fNvVc6H4cOHa+DAgSnb+3379qVs+bMtkUgoHo+roqIip98HQO8Q5XAR5YYo9w59AsBFnxgWm3DRJ0D4+HpwWFBQoPLyctXV1SXdX1dXp8mTJ+f0e1dXV6upqUn19fU5/T4Ajo8oN0Q5XES5t+gTABJ94qJPDItNAGGV8Y8qZ1tLS4t27NjRcXvnzp1qbGxUcXGxysrKVFNTo7lz52rixImaNGmSVq9erV27dmnhwoUenhpAvhDlhig3RDnyhT4BgOOjTwx9YlhsAuHU58Hhjh079Nprr+myyy7T4MGD+/y+Plu3btX06dM7btfU1EiS5s2bpzVr1mjOnDk6cOCAli1bpj179mjMmDFav369Ro0a1dejA0CgEOWGKDdEec/oEwD5wGITLvrE0CdAeGU8ODxw4IDmzJmj3/72t4rFYnr11Vd1zjnnaMGCBRo2bJi+//3vZ/R806ZNk+M4PT5m0aJFWrRoUaZH7ZdEIqFEIqH29va8fl8AxxDlcBHlhihPjz4BkC/0iWGxCRd9AoRbxu9xeOutt2rQoEHatWtX0m8wnDNnjn79619n9XBe4j2EAG8R5YYoh4so7xl9AiAf6BNDnxgWmwCiIONXHD755JPasGGDzjrrrKT7zzvvPL3xxhtZOxiA6CLKDVFuiHL0Bn0CAPlBnxj6xLDYBMIv41cctra2Jm3yXfv371dhYWFWDgUAUUeUG6LcEOXHR58AyDUWm3DRJ4Y+AaIh48HhZZddpocffrjjdiwW09GjR3XfffclvYl40CUSCcXjcVVUVHh9FCBSiHK4iHJDlPcOfQIgl+gTw2ITLvoEiI6Mf1T5vvvu07Rp07R161YdOXJEX//61/XSSy/p3Xff1ebNm3NxRk9UV1erurpazc3NGjp0qNfHASKBKDdEOVxEee/RJwByhT4x9IlhsQkgajJ+xWE8Htef/vQnXXLJJbryyivV2tqqL3zhC9q2bZs+/vGP5+KMACKAKDdEuSHKkSn6BAByhz4x9IlhsQlES8avOJSkj33sY1q6dGm2zwIAkUaUG6LcEOWZo08AZBuLTbjoE0OfANGT8SsOH3roIT322GMp9z/22GP613/916wcCkC0EOVwEeWGKM8cfQIg2+gTw2ITLvoEiKaMB4ff/va3NXz48JT7R4wYoXvvvTcrh/ID3nwcyA+i3BDlcBHlfUOfAMgm+sTQJ4bFJoAoy3hw+MYbb2j06NEp948aNUq7du3KyqH8oLq6Wk1NTaqvr/f6KEBoEeWGKDdEOfqDPgGA7KJPDH1iWGwC0ZXx4HDEiBH605/+lHL/H//4R5122mlZORQARAVRbohyQ5T3HX0CIFtYbALJ6BMg2jIeHH7pS1/SLbfcoqefflrt7e1qb2/Xb3/7W33ta1/Tl770pVycEUAIEeVwMTQ0RHn/0CcAsoE+MSw2DY1CnwDow29V/ta3vqU33nhDV1xxhQYNsi8/evSorr/++lC9hxCA3CHKDVEOF1Hef/QJgP6iTwx9YhgaAoDJaHDoOI727Nmjhx56SN/61rfU2NiowYMHa+zYsRo1alSuzgggRIhyQ5QbohzZQJ8AQHbQJ4Y+MSw2AUh9GByed955eumll3TeeefpvPPOy9W5PJdIJJRIJNTe3u71UQCEDFFuiHJDlPcffQKgv1hsAsnoEwCujN7jcMCAATrvvPN04MCBXJ3HN/ithUD2EeVwMTQ0RHl20CcA+oM+MSw2DY1CnwBIlvEvR/nud7+rf/zHf9Sf//znXJwHQEgR5YYoh4sozy76BEBf0CeGPjEMDQEgVca/HOXv//7vdfjwYY0fP14FBQUaPDj5P3zefffdrB0OQDgQ5YYoN0Q5coE+AYC+oU8MfWJYbALoKuPB4cqVK3NwDAAIN6LcEOWGKM8++gRAplhsAsnoEwDdyXhwOG/evFycA0BIEeVwMTQ0RHlu0CcAMkGfGBabhkahTwCkl/HgcNeuXT1+vqysrM+HARAuRLkhyuEiynOHPgHQW/SJoU8MQ0MA6FnGg8Ozzz5bsVgs7efb29v7dSAA4UCUG6LcEOXINfoEAHqPPjH0iWGxCaAnGQ8Ot23blnT7ww8/1LZt27RixQrdc889WTuY1xKJhBKJBP+hAaDPiHJDlBuiPLfoEwC9wWITSEafADiejAeH48ePT7lv4sSJKi0t1X333acvfOELWTmY16qrq1VdXa3m5mYNHTrU6+MAgUKUw8XQ0BDluUefADge+sSw2DQ0Cn0CoHcGZOuJzj//fNXX12fr6QAEFFFuiHK4iHJv0ScAJPrERZ8YhoYA0HsZv+Kwubk56bbjONqzZ4/uvvtunXfeeVk7GIDgIcoNUW6IcuQTfQIAPaNPDH1iWGwC6K2MB4fDhg1LefNxx3E0cuRIPfLII1k7GAAEEVFuiHJDlOcPfQIgHRabQDL6BEAmMh4cPv3000m3BwwYoNNPP13nnnuuBg3K+OkAhARRDhdDQ0OU5xd9AqA79IlhsWloFPoEQOYyLunPfOYzuTgHgAAjyg1RDhdRnn/0CYCu6BNDnxiGhgDQN31awb/22mtauXKltm/frlgspgsvvFBf+9rX9PGPfzzb5wPgc0S5IcoNUQ4v0ScAkIw+MfSJYbEJoC8y/q3KGzZsUDwe1wsvvKBx48ZpzJgxev7553XRRReprq4uF2cEAF8jyg1Rbohyb9AnADpjsQkko08A9FXGrzi8/fbbdeutt+rb3/52yv3/9E//pCuvvDJrh/NSIpFQIpFQe3u710cBfIsoh4uhoSHKvUOfAHDRJ4bFpqFR6BMA/ZPxKw63b9+u+fPnp9z/5S9/WU1NTVk5lB9UV1erqalJ9fX1Xh8F8CWi3BDlcBHl3qJPAEj0iYs+MQwNAaD/Mh4cnn766WpsbEy5v7GxUSNGjMjGmQD4HFFuiHJDlMMP6BMAMPSJoU8Mi00A/ZXxjyp/5Stf0U033aT/+q//0uTJkxWLxfS73/1O3/nOd/QP//APuTgjAPgOUW6IckOUe48+AcBiE0hGnwDIhowHh3feeadOOeUUff/739eSJUskSaWlpbr77rt1yy23ZP2AAPyFKIeLoaEhys3ZHv91oE+AaKNPDItNQ6PA5XWfAGGQ8eAwFovp1ltv1a233qpDhw5Jkk45hX9RA1FAlBuiHC6GhuacUwerpeWQp2egT4Dook8MfWIYGhoaxR99AoRBxu9x+Ne//lWHDx+WZEH+7rvvauXKlXryySezfjgA/kGUG6LcEOVwnXOqP/7DhD4BEGX0iaFPDENDANmU8eDw85//vB5++GFJ0vvvv69LLrlE3//+9/X5z39eq1atyvoBAcAviHJDlBui3F/oEyCaWGzCRZ8Y+sT4ZbEJZNOsWbN06qmn6rrrruvV/dmS8eDwD3/4g6ZOnSpJ+tnPfqaPfexjeuONN/Twww/rRz/6UdYPCMB7RDlcRLkhyo2fopw+AaKHPjEsNoFkfuoTIJtuueWWjkV5b+7PlowHh4cPH+54z6Ann3xSX/jCFzRgwAB9+tOf1htvvJH1AwLwFlFuiHK4GBoav0U5fQJEC31i6BPDYtPQKP7rEyCbpk+f3u17eKe7P1syHhyee+65WrdunXbv3q0NGzaosrJSkrRv3z4NGTIk6wcE4B2i3BDlhiiHy49RTp8AiBr6xNAnhqEh4G8bN27UzJkzVVpaqlgspnXr1qU8pra2VqNHj1ZRUZHKy8u1adOm/B+0GxkPDr/xjW/otttu09lnn61PfepTmjRpkiTb7n/yk5/M+gEBwEtEuSHKDVHuX/QJEB0sNoFk9Inx42IT4dbc3Jz00dbWlvaxra2tGj9+vO6///5uP7927VotXrxYd9xxh7Zt26apU6eqqqpKu3btytXxe21Qpl9w3XXX6dJLL9WePXs0fvz4jvuvuOIKzZo1K6uHA+AdohwuhoaGKDd+jXL6BIgG+sSw2DQ0Clx+7ZMgevG/WzWwyOtT+Fv7B62SpJEjRybdf9ddd+nuu+/u9muqqqpUVVWV9jlXrFih+fPna8GCBZKklStXasOGDVq1apWWL1+enYP3UcaDQ0n62Mc+po997GNJ911yySVZORAA7xHlhiiHi6Gh8XuU0ycAooA+MQwNDY3i/z5BeO3evTvpLXEKCwv79DxHjhxRQ0ODbr/99qT7KysrtWXLln6dMRv6NDiMgkQioUQiofb2dq+PAuQVQ0NDlBuiHC6i3B/oE0QZjQIXfWIYGgLeGjJkSFbeS3v//v1qb29XSUlJ0v0lJSXau3dvx+0ZM2boD3/4g1pbW3XWWWfp8ccfV0VFRdr7s4XBYRrV1dWqrq5Wc3Ozhg4d6vVxAOQRQ0NDlBuiHH5CnyCqGBoaGgUu+sSw2ESYxGKxpNuO4yTdt2HDhm6/Lt392ZLxL0cBEF5EOVwMDQ1RbohyAF6iTwxDQ0OjwEWfICyGDx+ugQMHJr26UJL27duX8ipELzA4BCCJKHcR5XAxNDREOQB4jz4xDA0NjQKES0FBgcrLy1VXV5d0f11dnSZPnuzRqY7hR5UBMDT8H0S5IcrhYmgIwGs0Clz0iWFoaGgUBE1LS4t27NjRcXvnzp1qbGxUcXGxysrKVFNTo7lz52rixImaNGmSVq9erV27dmnhwoUentowOAQAMTR0EeWGKAcA7zE0NDQKkIyhIYJo69atmj59esftmpoaSdK8efO0Zs0azZkzRwcOHNCyZcu0Z88ejRkzRuvXr9eoUaO8OnIHBodAxBHlcDE0NAwNDVEOwEv0iWFoaGgUQ6PQJwiuadOmyXGcHh+zaNEiLVq0KE8n6j3e4xCIMKLcEOVwEeSGKAcA79EnhqGhoVEAeIXBIYBII8oNUQ4XQ0MAXmOxCRd9YhgaGhoF8AaDQyCiiHK4iHJDlAOA9+gTw2ITSMbQEPAOg0MggohyQ5TDxdDQEOUAvESfGPrEsNg0NAp9AniNwSEQMUS5IcoNUQ4XUQ4A3qNPDH1iGBoC8AMGhwAihyg3RLkhygHAeyw24aJPDH1iWGwC3mNwCEQIUQ4XUW6IckOUA/ASfWJYbALJ6BPAHxgcAhFBlBuiHC6GhoYoB+Al+sTQJ4bFpqFR6BPATxgcAhFAlBui3BDlcBHlAOA9+sTQJ4ahIQC/YXAIIBKIckOUG6IcALzHYhMu+sTQJ4bFJuAvDA6BkCPK4SLKDVFuiHIAXqJPDItNIBl9AvhPJAaHgwYN0oQJEzRhwgQtWLDA6+MAeUOUG6IcLoaGhij3B/oEUUWfGPrEsNg0NAp9AvjVIK8PkA/Dhg1TY2Oj18cA8oooN0S5IcrhIsr9gz4Boos+MfSJYWgIwM8i8YpDANFElBui3BDlAOA9Fptw0SeGPjEsNgH/8nxwuHHjRs2cOVOlpaWKxWJat25dymNqa2s1evRoFRUVqby8XJs2bcroezQ3N6u8vFyXXnqpnn322SydHPAvohwuotwQ5YYo7z36BMg++sSw2ASS0SeAv3n+o8qtra0aP368brzxRs2ePTvl82vXrtXixYtVW1urKVOm6IEHHlBVVZWamppUVlYmSSovL1dbW1vK1z755JMqLS3V66+/rtLSUv35z3/W1VdfrRdffFFDhgzp9jxtbW1Jz9Xc3JylKwXygyg3RDlcDA0NUZ4Z+gTILvrE0CeGxaahUegTIAg8HxxWVVWpqqoq7edXrFih+fPnd7xp+MqVK7VhwwatWrVKy5cvlyQ1NDT0+D1KS0slSWPGjFE8Htcrr7yiiRMndvvY5cuXa+nSpX25FMBzRLkhyg1RDhdRnjn6BEC20SeGPjEMDQEEhec/qtyTI0eOqKGhQZWVlUn3V1ZWasuWLb16jvfee69jQ//mm2+qqalJ55xzTtrHL1myRAcPHuz42L17d98vAEDeEeWGKDdEOXKBPgEyw2ITLvoEnbHYBILB81cc9mT//v1qb29XSUlJ0v0lJSXau3dvr55j+/btuvnmmzVgwADFYjH98Ic/VHFxcdrHFxYWqrCwsF/nBrxAlMNFlBuGhoYozz76BOg9+sSw2ERnNAp9AgSJrweHrlgslnTbcZyU+9KZPHmyXnzxxVwcC/ANotwQ5XAR5IYozy36BOgZfWLoE8Ni09Ao9AkQNL7+UeXhw4dr4MCBKdv7ffv2pWz5sy2RSCgej6uioiKn3wfoL6LcEOWGKIeLKM8d+gRAb9Enhj4xDA0BBJGvB4cFBQUqLy9XXV1d0v11dXWaPHlyTr93dXW1mpqaVF9fn9PvA6D/iHJDlBuiHLlGnwDHx2ITLvoEnbHYBILH8x9Vbmlp0Y4dOzpu79y5U42NjSouLlZZWZlqamo0d+5cTZw4UZMmTdLq1au1a9cuLVy40MNTA/5AlMNFlBuGhoYo7z/6BOg7+sSw2ERnNAp9AgSV54PDrVu3avr06R23a2pqJEnz5s3TmjVrNGfOHB04cEDLli3Tnj17NGbMGK1fv16jRo3y6siALxDlhiiHiyA3RHl20CdA39Anhj4xLDYNjUKfAEHm+eBw2rRpchynx8csWrRIixYtytOJTCKRUCKRUHt7e16/L9AbRLkhyg1RDhdRnj30CYC+ok8MfWIYGgIIOl+/x6GXeA8hwN+IckOUG6IcUUGfwM9YbMJFn6AzFptAsDE4BAKGKIeLKDcMDQ1RDsBL9IlhsYnOaBT6BAgDBodAgBDlhiiHiyA3RDkAL9Enhj4xLDYNjUKfAGHB4DCNRCKheDyuiooKr48CSCLKXUS5IcrhIsqjhT4B/Ik+MfSJYWgIIEwYHKbBewgB/kOUG6LcEOWIIvoEfsNiEy76BJ2x2ATCg8EhEABEOVxEuWFoaIhyAF6iTwyLTXRGo9AnQNgwOAR8jig3RDlcBLkhygF4iT4x9IlhsWloFPoECCMGh4CPEeWGKDdEOVxEOQB4jz4x9IlhaAggrBgcpsGbjwP+QJQbotwQ5Yg6+gR+wGITLvoEnbHYBMKJwWEavPk4vEaUw0WUG4aGhiiPNvoEXqNPDItNdEaj0CdAmDE4BHyIKDdEOVwEuSHKAXiJPjH0iWGxaWgU+gQIOwaHgM8Q5YYoN0Q5XEQ5AHiPPjH0CQBEB4NDAL5DlBui3LDJBwDvsdiEiz45hkZhsQlEAYNDwEeIcriIckOQG6IcgJfoE8NiE53RKPQJEBUMDtPgtxYi34hyQ5TDRZAbohyd0SfIN/rE0CeGxaahUegTIEoYHKbBby1EPhHlhig3RDlcRDm6ok+A/KNPDH0CANHE4BCALxDlhig3bPIBwHssNuGiT46hUVhsAlHD4BDwGFEOF1FuCHJDlAPwEn1iWGyiMxqFPgGiiMEh4CGi3BDlcBHkhigH4CX6xNAnhsWmoVHoEyCqGBwCHiHKDVFuiHK4iHIA8B59YugTAACDQwCeIcoNUW7Y5AOA91hswkWfHEOjsNgEoozBIeABohwuotwQ5IYoB+Al+sSw2ERnNAp9AkTdIK8P4FeJREKJRELt7e1eHwUhQ5QbohwugtwQ5egN+gS5Qp8Y+sSw2DQ0Cn0SRa/ubVGs8KjXx/A1p+2w10fIK15xmEZ1dbWamppUX1/v9VEQIkS5IcoNUQ4XUY7eok+A3KFPDH0CAOiMwSGAvCLKDVFu2OQDgPdYbAKpaBQWmwAMg0MgT4hyuBgaGoLcEOUAvESfGBabhkYxNAp9AuAYBodAHhDlhiiHiyA3RDkAL9Enhj4xDA0NjUKfAEjG4BDIMaLcEOWGKIeLKAcA79Enhj4BAKTD4BBAzhHlhig3bPIBwHssNoFUNAqLTQCpGBwCOUSUw8XQ0BDkhigH4CX6xLDYNDSKoVHoEwDdY3AI5AhRbohyuAhyQ5QD8BJ9YugTw9AQLvoEQDoMDtNIJBKKx+OqqKjw+igIIKLcEOWGKIeLKEd/0SdA/9Enhj45huUmAKTH4DCN6upqNTU1qb6+3uujAIFElBui3BDkQHbQJ+gPFptAKhqFxSaAnjE4BLKMKIeLoaEhyA1RDsBL9IlhsWloFEOj0CcAjo/BIZBFRLkhyuEiyA1RDsBL9ImhTwxDQ7joEwC9weAQyBKi3BDlhiiHiygHAO/RJ4Y+OYblJgD0DoNDAFlDlBui3BDkAOA9FptAKhqFxSaA3mNwCGQBUQ4XQ0NDkBuiHICX6BPDYtPQKIZGoU8AZIbBIdBPRLkhyuEiyA1RDsBL9ImhTwxDQ7joEwCZYnAI9ANRbohyQ5TDRZQDgPfoE0OfHMNyEwAyx+AQQL8Q5YYoNwQ5AHiPxSaQikZhsQmgbxgcAn1ElMPF0NAQ5IYoB+Al+sSw2DQ0iqFR6BMAfcfgEOgDotwQ5XAR5IYoB+Al+sTQJ4ahIVz0CYD+YHAIZIgoN0S5IcrhIsoBwHv0iaFPjmG5CQD9w+AQQMaIckOUG4IcALzHYhNIRaOw2ATQfwwO00gkEorH46qoqPD6KPARohwuhoaGIDdEOfKFPkF36BPDYtPQKIZGoU8AZAeDwzSqq6vV1NSk+vp6r48CnyDKDVEOF0FuiHJzOn8/5AV9gq7oE0OfGIaGhkaBiz4B+o/BIdALRLkhyg1RDhdDQzPi1BO9PgKACKNPDH1iGBoaGoU+AbKFwSGAXiHKDVFuiHK4iHLAOyw24aJPDH0CANnH4BA4DqIcLqLcEOWGTT4AL9EnhsUmkIpGYbEJZBODQ6AHRLkhyuFiaGgIckOUA96gTwx9YlhsGhrF0Cj0CZBtDA6BNIhyQ5QbohwugtwQ5QC8RJ8Y+sQwNASA3GFwCCAtotwQ5YYoh4uhIeAdFptAMvrkGJabNAqQCwwOgW4Q5XAxNDREuSHIAXiJPjEsNg2Ngs5oFIaGQK4wOAS6IMoNUQ4XQ0NDkBuiHICX6BPD0NDQKHDRJ0DuMDgEOmFoaIhyQ5TDxdDQEOWAd2gUuOgTw9DwGDoFQC4xOASQhKGhIcoNUQ4XQ0PAOwwNDY0CF31yDENDGgXINQaHwP8gyuFiaGiIckOQA/ASfWIYGhoaBUjG0BDIPQaHgIhyF1EOF0NDw9DQEOUAvESfGIaGhkY5JuqdQp8A+cHgEJHH0NAQ5YYohyvqMe4iygHv0Chw0SeGoeExdAqAfGFwCICh4f8gyg1RDhdDQ8A7DA0NjQIXfYLOaBQgfxgcItKIcrgYGhqi3LDFB+Al+sQwNDQ0CrqKeqcwNATyi8EhIosoN0Q5XAwNTdRj3EWUA/ASfWIYGhoa5Ziodwp9AuRfJAaHO3fu1PTp0xWPxzV27Fi1trZ6fSTAF4hyQ5TDFfUYdxHl+UGfoDssNuGiTwxDQwDw1iCvD5APN9xwg771rW9p6tSpevfdd1VYWOj1keAxohwuotwQ5XAxNMwf+gRd0SeGxSbQvagvOGkUwBuhHxy+9NJLOuGEEzR16lRJUnFxsccngteIckOUw8XQ0EQ9xpFf9Am6ok8MfWJYbBoa5ZiodwpDQ8A7nv+o8saNGzVz5kyVlpYqFotp3bp1KY+pra3V6NGjVVRUpPLycm3atKnXz//qq6/q5JNP1jXXXKOLL75Y9957bxZPj6Ahyg1RbohyuKIe4y6i/Bj6BMg/+sTQJ4ah4TFR7xT6BPCW5684bG1t1fjx43XjjTdq9uzZKZ9fu3atFi9erNraWk2ZMkUPPPCAqqqq1NTUpLKyMklSeXm52traUr72ySef1IcffqhNmzapsbFRI0aM0Gc/+1lVVFToyiuv7PY8bW1tSc/V3NycpSsF/IEoN0S5IcrhIsqT0SfIJxabcNEnhj4BAP/wfHBYVVWlqqqqtJ9fsWKF5s+frwULFkiSVq5cqQ0bNmjVqlVavny5JKmhoSHt15911lmqqKjQyJEjJUlXXXWVGhsb04b58uXLtXTp0r5eDnyMKIeLKDdEuYn6Fh/do0+QL/SJYbEJdC/qncJiE/Ce5z+q3JMjR46ooaFBlZWVSfdXVlZqy5YtvXqOiooKvfPOO3rvvfd09OhRbdy4URdeeGHaxy9ZskQHDx7s+Ni9e3e/rgH+QJQbohwuhoYm6jHuIsozQ58gW+gTQ58YFpuGRjkm6p1CnwD+4PkrDnuyf/9+tbe3q6SkJOn+kpIS7d27t1fPMWjQIN1777267LLL5DiOKisr9bnPfS7t4wsLC/mthiFDlBui3BDlcEU9xl1EeeboEyB76BNDnxiGhnDRJ4B/+Hpw6IrFYkm3HcdJua8nx/txIyDsiHJDlBuiHC6ivH/oE/QHi0246BNDnyRjwQnAL3z9o8rDhw/XwIEDU7b3+/btS9nyZ1sikVA8HldFRUVOvw9yiyiHiyg3RLkhxtEf9An6iz4xLDaB7kW9U1hsAv7i68FhQUGBysvLVVdXl3R/XV2dJk+enNPvXV1draamJtXX1+f0+yB3iHJDlMPF0NBEPcZdRHnf0SfoD/rE0CeGxaahUeCiT4C+efnllzVhwoSOj8GDB2vdunVZeW7Pf1S5paVFO3bs6Li9c+dONTY2qri4WGVlZaqpqdHcuXM1ceJETZo0SatXr9auXbu0cOFCD08NvyPKDVFuiHK4GBoaovz46BMgd+gTQ58YhobJotwq9AnQdxdccIEaGxslWceeffbZuvLKK7Py3J4PDrdu3arp06d33K6pqZEkzZs3T2vWrNGcOXN04MABLVu2THv27NGYMWO0fv16jRo1yqsjA4FAlBui3BDlcBHlvUOfIBdYbMJFnxj6JFmUh4YAsudXv/qVrrjiCp10Unb+XeP5jypPmzZNjuOkfKxZs6bjMYsWLdLrr7+utrY2NTQ06LLLLsv5uXgPoeAiyuEiyg1RbohxZII+QbbRJ4bFJoDusNhE2G3cuFEzZ85UaWmpYrFYtz9GXFtbq9GjR6uoqEjl5eXatGlTn77Xo48+qjlz5vTzxMd4Pjj0K95DKJiIckOUw8XQ0DA0NER58NEnwUSfGPrEsNg0NEqyKLcKfYKgam5uTvpoa2tL+9jW1laNHz9e999/f7efX7t2rRYvXqw77rhD27Zt09SpU1VVVaVdu3Z1PKa8vFxjxoxJ+Xj77beTzrR582ZdddVVWbtOz39UGcgWotwQ5YYohyvKId4ZUQ7AS/SJoU8MQ8NkUW4V+sR/nPfekgqi+/dkbzhH/ipJGjlyZNL9d911l+6+++5uv6aqqkpVVVVpn3PFihWaP3++FixYIElauXKlNmzYoFWrVmn58uWSpIaGhuOe7Ze//KVmzJihoqKi3lxKrzA4BEKEKDdEuSHK4SLKAe+w2ISLPjH0CYCw2L17t4YMGdJxu7CwsE/Pc+TIETU0NOj2229Pur+yslJbtmzJ6LkeffRR3XTTTX06Rzr8qHIavIdQsBDlcBHlhig3Ud7gI5zok2ChTwyLTSC9KLcKi00E3ZAhQ5I++jo43L9/v9rb21VSUpJ0f0lJifbu3dvr5zl48KBeeOEFzZgxo0/nSIfBYRq8h1BwEOWGKIeLoaGJcoh3RpSHC30SHPSJoU8Mi01DoySLcqvQJ0CqWCyWdNtxnJT7ejJ06FC98847KigoyOq5GBwi0IhyQ5QbohyuKId4Z0Q5AC/RJ4Y+MQwN4aJPgGTDhw/XwIEDU15duG/fvpRXIXqBwSEQcES5IcoNUQ4XUQ54h8UmXPSJoU9SseQE4CooKFB5ebnq6uqS7q+rq9PkyZM9OtUx/HIUBBZRDhdRbohyQ4gD8BJ9YlhsAulFuVVYbCKqWlpatGPHjo7bO3fuVGNjo4qLi1VWVqaamhrNnTtXEydO1KRJk7R69Wrt2rVLCxcu9PDUhsFhGolEQolEQu3t7V4fBd0gyg1RDhdDQxPlEO+MKA8v+sTf6BNDnxgWm4ZGgYs+QZRt3bpV06dP77hdU1MjSZo3b57WrFmjOXPm6MCBA1q2bJn27NmjMWPGaP369Ro1apRXR+4QcxzH8foQftbc3KyhQ4dq0P/+qWKF/IPOD4hyQ5QbotwQ5QwNXV5F+aFDzTo/XqaDBw9qyJAhnpwhSugTf6JR6BMXfWLok1RR7RX6xP/cthj4pfsUK4jm36e95Rz5q9of+cfI/H3FexwCAUSUG6LcEOVwsckHvMPQEC76BOlEdWgIINgYHCJQiHK4iHLD0NAQ4gC8RJ8YFpvojEaBi8UmEGwMDhEYRLkhyuEiyA1DQ0OUA96gTwx9YlhsGholVVR7hT4Bgo/BIQKBKDdEuSHK4YpqhHdFlAPwEn1i6BPD0DBVVHuFPgHCgcFhGolEQvF4XBUVFV4fBZBElLuIckOUw0WURwt94i8sNuGiTwAAYcXgMI3q6mo1NTWpvr7e66NEHlEOF1FuGBqaqG7vEW30iX/QJ4bFJjqjUVJFtVdYbALhweAQvkaUG6IcLoLcRDXCuyLKAW/QJ4Y+MSw2DY2SKqq9Qp8A4cLgEL5FlBui3BDlcEU1wrsiygF4iT4x9IlhaJgqqr1CnwDhw+AQ8DGi3BDlhiiHiygHvMNiEy76BAAQBQwO4UtEOVxEuWFoaKK6vQfgD/SJYbGJzmiUVFHtFRabQDgxOITvEOWGKIeLIDdRjfCuiHLAG/SJoU8Mi01Do6SKaq/QJ0B4MTiErxDlhig3RDlcUY3wrohyAF6iTwx9YhgawkWfAOHG4DCNRCKheDyuiooKr4+CiCHKDVFuiHK4iHJI9IlXWGzCRZ+gJyw6AYQRg8M0qqur1dTUpPr6eq+PEhlEOVxEuWFoaIhw4Bj6JP/oE8NiE53RKKmi2issNoHwY3AIXyDKDVEOF0FuohrhXRHlgDfoE0OfGBabhkaBiz4BooHBITxHlBui3BDlcDE0NEQ5AC/RJ4Y+MQwNuxfFZqFPgOhgcAj4AFFuiHJDlMNFlAPeYbEJF32CnkRxaAggWhgcwlNEOVxEuWFoaIhwAF6iTwyLTXRGo8DFYhOIFgaH8AxRbohyuAhyw9DQEOWAN+gTQ58YFpuGRuleFJuFPgGih8EhPEGUG6LcEOVwRTHAu0OUA/ASfWLoE/Qkis1CnwDRxOAQ8AhRbohywyYfLqIc8A6LTbjok2NoFACINgaHaSQSCcXjcVVUVHh9lNAhyuEiyg1BbqK4uQcyRZ/kDn1iWGyiMxqle1FsFhabQHQxOEyjurpaTU1Nqq+v9/oooUKUG6IcLoLcRDHAu0OU43jok9ygTwx9YlhsGhqle1FsFvoEiDYGh8gbotwQ5YYohyuKAd4dohyAl+gTQ58AAJCMwSGQR0S5IcoNm3y4GBoC3mGxCaSiUboXxWUnjQKAwSHygiiHi6GhIchNFAMcgH/QJ4bFpqFRDI3SvSg2C0NDABKDQ+QBUW6IcrgIchPFAO8OUQ54gz4x9IlhaGhoFLjoEwAuBofIKaLcEOWGKIeLoaEhygF4iT4x9AmOh24BEGUMDoEcI8oNUW7Y5MPF0BDwDotNIBWN0r0oDg1pFACdMThEzhDlcDE0NAS5iWKAA/AP+sSw2DQ0iqFR4GJoCKArBofICaLcEOVwEeSGoaEhygFv0CeGPjEMDQ2Nkl7UuoU+AdAdBofIOqLcEOWGKIcravGdDlEOwEv0iaFPcDx0CwAYBodADhDlhig3bPLhYmgIeIfFJpCKRoGLRgGQDoNDZBVRDhdDQ0OQG7b2ALxEnxgWm4ZGMTRKelHrFoaGAHrC4BBZQ5QbohwugtxELb7TIcoBb9Anhj4xDA0NjZJe1LqFPgFwPAwO00gkEorH46qoqPD6KIFAlBui3BDlcEUtvtMhypEt9An6gj4x9AkAAJljcJhGdXW1mpqaVF9f7/VREBBEuSHKDZt8uBgaIpvok8yw2ARS0SjpRW3hSaMA6A0Gh+g3ohwuhoaGIDdRi28A/kKfGBabhkYxNEp6UesWhoYAeovBIfqFKDdEOVwEuYlafKdDlAPeoE8MfWIYGhoaJb2odQt9AiATDA7RZ0S5IcoNUQ5X1OI7HaIcgJfoE0OfAADQPwwOgX4gyg1Rbtjkw8XQEPAOi00gFY2SXtQWnjQKgEwxOESfEOVwMTQ0BLmJWnwD8Bf6xLDYNDSKoVHSi1q3MDQE0BcMDpExotwQ5XAR5CZq8Z0OUQ54gz4x9IlhaAgko08A9BWDQ2SEKDdEuSHK4WJoaIhyAF6iTwx9cgzLzfRoFwDoHQaHQIaIckOUG4IcLoaGgHdYbAKpaJT0ojY0pFEA9AeDQ/QaUQ4XQ0NDkJuoxTcAf6FPDItNQ6MYGgUuhoYA+ovBIXqFKDdEOVwEuWFoaIhywBv0iaFPDEND9EaU2oU+AZANg7w+APyPKDdEuSHK4YpSePeEKDfDTiny+ghAJNEnhj4xLDYNjQIXfZI5551XpUEFXh/D15yPjnh9hLziFYdALxDlhig3RDlcDA3NqUOIcuQfi0246BNDnxiGhgCQXQwO0SOiHC6i3BDlhiiHi6EhvECfGBabAJAejQJkB4NDpEWUG6IcLoaGhqGh4dWGgDfoE0OfGBabhkYxNApcDA2B7GFwiG4R5YYoN0Q5XAS5YWhoiHLAG/SJoU8MQ0NDo8BFnwDZxeAQSIMoN0S5IcrhYmhoiHJ4gcUmkIw+AQDkWugHhy+//LImTJjQ8TF48GCtW7fO62P5GlEOF0NDQ5QbNvlwMTTsP/okc/SJYbFpaBR0RqPARaMA2TfI6wPk2gUXXKDGxkZJUktLi84++2xdeeWV3h7Kx4hyQ5TDxdDQEOSGVxsiW+gT9AV9YhgaGhrF0Cjdi2KzMDQEciP0rzjs7Fe/+pWuuOIKnXQSsdEdhoaGKDdEOVwEuYligHeHKM8++uT4aBS46BPD0BBIRp8AueP54HDjxo2aOXOmSktLFYvFuv0xndraWo0ePVpFRUUqLy/Xpk2b+vS9Hn30Uc2ZM6efJ0aYMTQ0RLkhyuFiaGiiFOX0iX8wNDQ0Clz0yTEsN7tHtwDIJs9/VLm1tVXjx4/XjTfeqNmzZ6d8fu3atVq8eLFqa2s1ZcoUPfDAA6qqqlJTU5PKysokSeXl5Wpra0v52ieffFKlpaWSpObmZm3evFmPPPJIj+dpa2tLeq7m5ub+XF5gEOVwMTQ0RLkhyOGK0tBQok/8gj4xDA0NjYLOaBS4otYoQL55PjisqqpSVVVV2s+vWLFC8+fP14IFCyRJK1eu1IYNG7Rq1SotX75cktTQ0HDc7/PLX/5SM2bMUFFRz/9QWb58uZYuXZrBFQQfUW6IcrgYGhqC3LC1jyb6BH5BnxiGhoZGwfFErVsYGgK55/mPKvfkyJEjamhoUGVlZdL9lZWV2rJlS0bP1dsfA1qyZIkOHjzY8bF79+6Mvk/QMDQ0RLkhyuFiaGiiFt/pEOXJ6JP8oFHgok8MQ8Nj6BRI9AmQL56/4rAn+/fvV3t7u0pKSpLuLykp0d69e3v9PAcPHtQLL7ygn//858d9bGFhoQoLCzM+K4KLoaEhyg1RDhdDQ0OUp6JPco+hoaFR4KJPjmFomB7tAiAXfD04dMVisaTbjuOk3NeToUOH6p133sn2sQKPKIeLoaEhyg1BDhdDw57RJ7lBnxiGhoZGAdAdGgXIH1//qPLw4cM1cODAlO39vn37Urb82ZZIJBSPx1VRUZHT7+MVotwQ5XAxNDQMDQ0be/SEPkGu0SeGoaGhUY6hUyAxNATyzdeDw4KCApWXl6uuri7p/rq6Ok2ePDmn37u6ulpNTU2qr6/P6feBd4hyQ5TDRYwbhoaGKE+PPskdFptw0SeGoeExdErP6BcAueL5jyq3tLRox44dHbd37typxsZGFRcXq6ysTDU1NZo7d64mTpyoSZMmafXq1dq1a5cWLlzo4amDjSiHiyg3RDlcRLdhaEifeIE+MSw24aJPjmFoCBeNAuSf54PDrVu3avr06R23a2pqJEnz5s3TmjVrNGfOHB04cEDLli3Tnj17NGbMGK1fv16jRo3y6siBRpQbohwuotwQ5HAR5IY+yS/6xNAnhsUmkJmoLD5pFMAbng8Op02bJsdxenzMokWLtGjRojydyCQSCSUSCbW3t+f1++YSUW6IckOUw8XQ0EQlutE79AnyjT4x9IlhsXkMnQKJoSHgJV+/x6GXwv4eQlFFlBui3BDlcDE0NES5/4WxT1hswkWfGPrkGIaGx0fDAMg1BocRQZTDRZQbotwQ5HAxNIQX6BPDYhMA0qNRAG8xOIwAotwQ5XAxNDQMDQ2besAb9ImhTwyLTUOjHEOnHF8UGoahIeA9BodpJBIJxeNxVVRUeH2UfiHKDVFuiHK4iHETheDuDaI8OMLSJzD0iaFPDEPDY+gUSPQJ4BcMDtMI43sIRRVRbohyQ5TDxdDQEOXBEpY+YbEJF31i6BMAgF8xOAwxohwuotwQ5YYtPlwMDeEF+sSw2AS6R6f0TtgXoDQK4B8MDkOKKDdEOVwMDQ0xbsIe24Bf0SeGPjEsNg2NcgydAomhIeA3DA5DiCg3RLkhyuEixg1DQ0OUA96gTwx9Yhgaoi/C3DL0CeA/DA7T4M3Hg40oN0S5IcrhCnNoZ4IoD64g9wmLTbjoE0OfJGPBCQD+xOAwjaC++ThRDhdRbohyQ4zDxdAw2OiTYGOxCXSPTum9MC9BaRTAnxgchghRbohyuBgaGmLchDm0AT+jTwx9YlhsGhoFSMbQEPAvBochQZQbotwQ5XAxNDQMDQ1RDniDPjH0iWFomIxW6b2w9gx9Avgbg0OEBlFuiHJDlMMV1sjOFFEOL7DYhIs+MfRJMoaGAOB/DA5DgCiHiyg3RLkhxuFiaAgv0CeGxSbQPTolM2FdhNIogP8xOEwjKL+1kCg3RDlcDA0NMW7CGtmILvokWOgTw2LT0ChAMoaGQDAwOEwjCL+1kCg3RLkhyuFiaGgYGhqiPFyC0Ccw9ImhTwxDw2S0CgAEB4NDBBpRbohyQ5TDxdDQMDSEF1hswkWfGPokGUPDzIWxa2gUIDgYHAYUUQ4XUW6IckOMw0WQwwv0iWGxCQDp0ShAsDA4DCCi3BDlcDE0NAwNTRi38kAQ0CeGPjEsNg2NkoxWyVzYuoahIRA8DA4Dhig3RLkhyuEixE3Y4rqviHLAG/SJoU8MQ8NktAoABBODQwQOUW6IckOUw8XQ0DA0hBdYbMJFnwDZE7a2oVGAYGJwGCBEOVxEuWFoaNjgw0WQwwv0iWGxic5olGS0CmgUILgYHKaRSCQUj8dVUVHh9VEkEeUuohwugtwQ4iZsG3kgHfrEn+gTw2LT0CjJaJW+CVPbMDQEgo3BYRrV1dVqampSfX2910chyv8HUW6IcrgIcROmsO4Pojwa/NQnMPSJoU8MQ0MAQNgwOEQgEOWGKDdEOVwMDQ1DQ3iBxSZc9AnSYckJGgUIPgaHPkeUw0WUG4aGhhCHiyCHF+gTw2ITndEoyWiVvgvLYpRGAcKBwaGPEeWGKIeLIDeEuAlLVANBQ58Y+sSw2DQ0CpCMoSEQHgwOfYooN0S5IcrhYmhoGBoaohzwBn1i6BPD0DAVvdJ3NA4Av2FwCN8iyg1RbohyuAhqw9AQXmCxCRd9gnQYGoJGAcKFwaEPEeVwEeWGoaEhxOEiyOEF+sSw2ERnNEoyWqV/wrAcpVGA8GFw6DNEuSHK4SLIDSFuwhDUQBDRJ4Y+MSw2DY0CAIgCBodpJBIJxeNxVVRU5O17EuWGKDdEOVwMDQ1DQ8MmP9q86BMY+sTQJ4ahYSp6pX/C0Dk0CuCd3bt3a9q0aYrH4xo3bpwee+yxpM8PGjRIEyZM0IQJE7RgwYKMnntQNg8aJtXV1aqurlZzc7OGDh3q9XEigyg3RLkhyuEKQ0xnA0EOL/qExSZc9AnSYWgIGgXw1qBBg7Ry5UpNmDBB+/bt08UXX6yrrrpKJ51k/+4eNmyYGhsb+/bcWTwn+oEoh4soNwwNDSEOF0EOL9AnhsUmOqNRgGQ0CuC9M844Q2eccYYkacSIESouLta7777bMTjsD35U2QeIckOUw0WQG4aGhlcbAt6gTwx9YlhsGholFb3Sf7QOEH4bN27UzJkzVVpaqlgspnXr1qU8pra2VqNHj1ZRUZHKy8u1adOmPn2vrVu36ujRoxo5cmTHfc3NzSovL9ell16qZ599NqPn4xWHHiPKDVFuiHK4iHBDSBs2+YA36BNDnxiGhqnoFdAoIfTRETlen8HvPjoiyYZxnRUWFqqwsLDbL2ltbdX48eN14403avbs2SmfX7t2rRYvXqza2lpNmTJFDzzwgKqqqtTU1KSysjJJUnl5udra2lK+9sknn1Rpaakk6cCBA7r++uv14IMPJj3m9ddfV2lpqf785z/r6quv1osvvqghQ4b06nIZHMJzRLkhyg1RDhdDQ0OQwwssNuGiT4DcCnLv0CjhUlBQoI997GPau2mN10cJhJNPPjnpFX2SdNddd+nuu+/u9vFVVVWqqqpK+3wrVqzQ/PnzO35xycqVK7VhwwatWrVKy5cvlyQ1NDT0eKa2tjbNmjVLS5Ys0eTJk5M+5w4Wx4wZo3g8rldeeUUTJ07s8flcDA49RJTDRZQbhoaG7T1cBDm8QJ8YFpvojEZJRa9EG40SPkVFRdq5c6eOHDni9VECwXEcxWKxpPvSvdrweI4cOaKGhgbdfvvtSfdXVlZqy5YtvT7PDTfcoMsvv1xz585N+tx7772nE088UYWFhXrzzTfV1NSkc845p9fnY3DoEaLcEOVwEeSGCDdB3r4DQUafGPrEsNg0NEoqeiU76B34TVFRkYqKGArn2/79+9Xe3q6SkpKk+0tKSrR3795ePcfmzZu1du1ajRs3ruP9E3/yk59o7Nix2r59u26++WYNGDBAsVhMP/zhD1VcXNzr8zE49ABRbohyQ5TDRYQbItqwyQe8QZ8Y+sQwNARS0ShAbnR9BWN3r2pM59JLL9XRo0e7/dzkyZP14osv9vlc/FZleIIoN0S5IcrhYmhoCHJ4gcUmXPQJesKiMzuC2jw0CpB9w4cP18CBA1NeXbhv376UVyF6gcFhnhHlcBHlhqGhIcLhIsjhBfrEsNhEZzRKKnol2mgUIDcKCgpUXl6uurq6pPvr6upSfsmJF/hR5Twiyg1RDhdBbohwE9TNOxB09ImhTwyLTUOjpKJXAKDvWlpatGPHjo7bO3fuVGNjo4qLi1VWVqaamhrNnTtXEydO1KRJk7R69Wrt2rVLCxcu9PDUhsFhnhDlhig3RDlcRLhhaGjY5APeoE8MfQLkRxC7h0YB+mfr1q2aPn16x+2amhpJ0rx587RmzRrNmTNHBw4c0LJly7Rnzx6NGTNG69ev16hRo7w6cgcGh8gbotwQ5YZNPlxBjOdcIMjhBRabQCoaJRWLzmijUYD+mzZtmhzH6fExixYt0qJFi/J0ot7jPQ7TSCQSisfjqqio6PdzEeVwMTQ0BLkhwuEiyNFb9En2sdg0NIqhUVLRK9kVtIUpjQKAwWEa1dXVampqUn19fb+ehyg3RDlcBLkhwk3Q4hnwGn2SXfSJYWhoaBQAAFIxOMwhotwQ5YYoh4uhoWFoaNjkA96gTwx9gp7QLNkVtPahUQBIDA6RY0S5IcoNm3y4ghbOuUKQwwssNoFUNEoqhobRRqMAcDE4zBGiHC6GhoYgN0Q4XAQ5vECfGBabhkYxNArygaUpgKBicJgDRLkhyuEiyA1DQ0M4A96gTwx9YhgaGhqlezRLtLHcBNAZg8MsI8oNUW6IcrgIcMPQ0BDkgDfoE0OfoCc0S/YFqX9oFABdMThE1hHlhig3bPLhClI05xJBDi+w2ARS0ShAMhoFQHcYHGYRUQ4XQ0NDkBs293AR5PACfWJYbBoaxdAo3aNZAABdMTjMEqLcEOVwEeSGADe82hDwBn1i6BPD0NDQKN2jWXIjKA3EchNAOgwOs4AoN0S5IcrhIsBNUII51whywBv0iaFPAKRDowDoCYNDZAVRbohywyYfLoaGhiCHF1hsAqlolO6x7MyNIHQQjQLgeBgc9hNRDhdDQ0OQGwIcLoIcXqBPDItNQ6MYGqV7NAsAoCcMDvuBKDdEOVwEuSHATRC27EAY0SeGPjEMDQ2N0j2aJXeC0EEsNwH0BoPDPiLKDVFuiHK4CHAThFjOB4Ic8AZ9YugTAOnQKAB6i8Eh+owoN0S5YZMPF0NDQ5DDCyw2gVQ0SvdYduaO31uIRgGQCQaHfUCUw8XQ0BDkhgCHiyCHF+gTw2LT0CiGRukezQIA6C0Ghxkiyg1RDhdBbghw4/cNOxBW9ImhTwxDQwDpsNwEkKlIDA5/8IMf6KKLLlI8Htctt9wix3H69DxEuSHKDVEOF0NDw9DQEOTorWz1CQx9YuiTY1hudo9uyS0/9xCNAqAvQj84/O///m/df//9amho0IsvvqiGhgY999xzXh8rsIhyQ5QbghwuP0dyPhHk6K1s9gmLTSAVjdI9hobRRaMA6KtBXh8gHz766CN98MEHkqQPP/xQI0aMyPg5zvsYAzMYhoaGIDcEOFwEOTJFn2QPi01DoxgaBV5hkQogjDx/xeHGjRs1c+ZMlZaWKhaLad26dSmPqa2t1ejRo1VUVKTy8nJt2rSp189/+umn67bbblNZWZlKS0v1N3/zN/r4xz+exSuIDqIcLoLcMDQ0RDLCiD4JDvrEMDTE8dAt0cVyE0B/eP6Kw9bWVo0fP1433nijZs+enfL5tWvXavHixaqtrdWUKVP0wAMPqKqqSk1NTSorK5MklZeXq62tLeVrn3zySQ0ePFhPPPGEXn/9dQ0ePFhVVVXauHGjLrvssm7P09bWlvRcBw8elCS1f3A4G5cbWGNPP0lH/tri9TE8Fz/1JH1wmL8Oh0/4yOsjeO7sYYPV0nLI62N47vRhg3XoULPXx/DcsFOK1Nx8xOtjeOrQIfv/Q1jep48+CY4jf/X6BN6jT445b2iRDrfy7+eu6Jbc82sTRb1RwtYngCccH5HkPP7440n3XXLJJc7ChQuT7vvEJz7h3H777b16zkcffdRZtGhRx+3vfve7zne+8520j7/rrrscSXzwwQcffPDBRx8+Xnvttd7/iz8gJPqEDz744IMPPoL8EcY+AfLF81cc9uTIkSNqaGjQ7bffnnR/ZWWltmzZ0qvnGDlypLZs2aIPPvhAJ5xwgp555hnddNNNaR+/ZMkS1dTUdNx+//33NWrUKO3atUtDhw7t24VIqqioUH19fb8el+5z3d3f+b6un+/6ud/85jcaOXKkdu/erSFDhvT6mjI9f28f19vrPN51df3fzc3NWblO/ix7/7go/Fmm+3xv7uvpOvmzzAx/lr1/XK7+LA8ePKiysjIVFxdndE1BFMU+Od5jc/H/Hb/9MyIb/9/pfNurazzeY/mzzPzP0v3fQfjnPX+Wx7/Nn2Xm/PzfR0899VRk+gTIFV8PDvfv36/29naVlJQk3V9SUqK9e/f26jk+/elP66qrrtInP/lJDRgwQFdccYWuueaatI8vLCxUYWFhyv1Dhw7t1z9MBw4c2Kuv7+lx6T7X3f2d7+v6+XSfGzJkSL//xZjP6+ztdXV9XH+vkz/L3j8uCn+W6T7fm/t6c538WfYOf5a9f1yu/ywHDPD87ZNzLop9crzH5vL/O5I//hmRjf/vdL7t1TUe77H8WWb+Z9n1f/v5n/f8WR7/Nn+WmfPzfx+5y7Uo9AmQK74eHLpisVjSbcdxUu7ryT333KN77rkn28fKSHV1db8fl+5z3d3f+b6un+/pc/2Vz+vs7XUF+Rq73sefpf+uMd3ne3NfkK6TP8ue7wvSdfr9zzJIotQnx3ss/9/J/LZX13i8x/Jn2bfbQblO/iyPfzso1xnVP8uu9+XzzxKIqpjj+OddQmOxmB5//HFde+21kuxHgU488UQ99thjmjVrVsfjvva1r6mxsVHPPvtszs/U3NysoUOH6uDBg/3eNvlVFK5RisZ1RuEapWhcZxSuUYrGdUbhGqVwXyd94p0oXGcUrlGKxnVG4RqlaFxnFK5RisZ1RuEagVzz9et1CwoKVF5errq6uqT76+rqNHny5LycobCwUHfddVe3Px4UFlG4Rika1xmFa5SicZ1RuEYpGtcZhWuUonOdEn2ST1G4zihcoxSN64zCNUrRuM4oXKMUjeuMwjUCueb5Kw5bWlq0Y8cOSdInP/lJrVixQtOnT1dxcbHKysq0du1azZ07V//yL/+iSZMmafXq1frxj3+sl156SaNGjfLy6AAAIKToEwAAAMAHg8NnnnlG06dPT7l/3rx5WrNmjSSptrZW3/3ud7Vnzx6NGTNGP/jBD3TZZZfl+aQAACAq6BMAAADAB4NDAAAAAAAAAP7j6/c4BAAAAAAAAOANBocAAAAAAAAAUjA4BAAAAAAAAJCCwWEW/eAHP9BFF12keDyuW265RWF8+8iXX35ZEyZM6PgYPHiw1q1b5/Wxsm7nzp2aPn264vG4xo4dq9bWVq+PlBODBg3q+LNcsGCB18fJmcOHD2vUqFG67bbbvD5KThw6dEgVFRWaMGGCxo4dqx//+MdeHynrdu/erWnTpikej2vcuHF67LHHvD5SzsyaNUunnnqqrrvuOq+PkjVPPPGELrjgAp133nl68MEHvT5O5NAn4UGfhAt9Eg5RaZQw9olEowC9wS9HyZL//u//1qc//Wm99NJLOuGEE3TZZZfpe9/7niZNmuT10XKmpaVFZ599tt544w2ddNJJXh8nqz7zmc/oW9/6lqZOnap3331XQ4YM0aBBg7w+VtYNHz5c+/fv9/oYOXfHHXfo1VdfVVlZmb73ve95fZysa29vV1tbm0488UQdPnxYY8aMUX19vU477TSvj5Y1e/bs0TvvvKMJEyZo3759uvjii/Xyyy+H7p89kvT000+rpaVF//qv/6qf/exnXh+n3z766CPF43E9/fTTGjJkiC6++GI9//zzKi4u9vpokUCfhOufEfRJuNAn4RCVRglbn0g0CtBbvOIwiz766CN98MEH+vDDD/Xhhx9qxIgRXh8pp371q1/piiuuCN2/FN3/uJo6daokqbi4OJRRHhWvvvqq/vKXv+iqq67y+ig5M3DgQJ144omSpA8++EDt7e2he0XRGWecoQkTJkiSRowYoeLiYr377rveHipHpk+frlNOOcXrY2TNCy+8oIsuukhnnnmmTjnlFF111VXasGGD18eKFPokHOiTcKFPwiMqjRK2PpFoFKC3IjM43Lhxo2bOnKnS0lLFYrFuf3yltrZWo0ePVlFRkcrLy7Vp06ZeP//pp5+u2267TWVlZSotLdXf/M3f6OMf/3gWr6B3cn2dnT366KOaM2dOP0+cuVxf46uvvqqTTz5Z11xzjS6++GLde++9WTx97+Xjz7K5uVnl5eW69NJL9eyzz2bp5L2Xj2u87bbbtHz58iyduG/ycZ3vv/++xo8fr7POOktf//rXNXz48Cydvnfy+c+erVu36ujRoxo5cmQ/T525fF6nX/T3mt9++22deeaZHbfPOussvfXWW/k4eiDQJ8fQJz2jT/KHPjkm6H0iRaNRotgnEo0C5EtkBoetra0aP3687r///m4/v3btWi1evFh33HGHtm3bpqlTp6qqqkq7du3qeEx5ebnGjBmT8vH222/rvffe0xNPPKHXX39db731lrZs2aKNGzfm6/I65Po6Xc3Nzdq8ebMnW9JcX+OHH36oTZs2KZFI6Pe//73q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5fq7v/u7Hq//pZde0tVXX60hQ4bolFNO0dSpU/Xaa6/16vol6cUXX9Tll1/e8dfvpptuUktLS8fnb7jhBl177bVavny5SktLdf7550uSXnjhBX3yk59UUVGRJk6cqG3btvV4TgAAooQ+oU8AAP7E4BCIkD179uhv//Zv9eUvf1nbt2/XM888oy984QtyHEeS9MMf/lDf//739b3vfU9/+tOfNGPGDF1zzTV69dVXM/o+hw8f1vLly/Xggw/qpZde0ogRI3T99dfrkUce0Y9+9CNt375d//Iv/6KTTz6541yf+cxnNGHCBG3dulW//vWv9c477+h//a//lfZ7/OhHP1Jra6tuv/12SdKdd96p/fv3q7a2Nu3XvPXWW7rssstUVFSk3/72t2poaNCXv/xlffTRR726/sOHD+uzn/2sTj31VNXX1+uxxx7TU089pa9+9atJ3+c3v/mNtm/frrq6Oj3xxBNqbW3V5z73OV1wwQVqaGjQ3Xffrdtuuy2jv6YAAIQVfUKfAAB8zAEQGQ0NDY4k5/XXX+/286Wlpc4999yTdF9FRYWzaNEix3Ec5+mnn3YkOe+9917H57dt2+ZIcnbu3Ok4juM89NBDjiSnsbGx4zEvv/yyI8mpq6vr9vveeeedTmVlZdJ9u3fvdiQ5L7/8ctrr2bJli3PCCSc4d955pzNo0CDn2WefTftYx3GcJUuWOKNHj3aOHDnS7eePd/2rV692Tj31VKelpaXj8//5n//pDBgwwNm7d6/jOI4zb948p6SkxGlra+t4zAMPPOAUFxc7ra2tHfetWrXKkeRs27atxzMDABB29Al9AgDwL15xCETI+PHjdcUVV2js2LH64he/qB//+Md67733JEnNzc16++23NWXKlKSvmTJlirZv357R9ykoKNC4ceM6bjc2NmrgwIH6zGc+0+3jGxoa9PTTT+vkk0/u+PjEJz4hSR0/ptOdSZMm6bbbbtM3v/lN/cM//IMuu+yyjs9VVVV1PNdFF13UcY6pU6fqhBNOSHmu3lz/9u3bNX78eJ100klJnz969KhefvnljvvGjh2rgoKCjtvu15144olJZwcAAPQJfQIA8LNBXh8AQP4MHDhQdXV12rJli5588kn98z//s+644w49//zzOu200yRJsVgs6Wscx+m4b8CAAR33uT788MOU7zN48OCk5xk8eHCP5zp69Khmzpyp73znOymfO+OMM3r8us2bN2vgwIEpP6704IMP6q9//askdYT48c4h9Xz9nf93T1/XOdzdrwMAAN2jT+gTAIB/8YpDIGJisZimTJmipUuXatu2bSooKNDjjz+uIUOGqLS0VL/73e+SHr9lyxZdeOGFkqTTTz9dkr3nj6uxsfG433Ps2LE6evSonn322W4/f/HFF+ull17S2WefrXPPPTfpo2vkdnbfffdp+/btevbZZ7VhwwY99NBDHZ8788wzO55j1KhRkqRx48Zp06ZN3f7HRG+uPx6Pq7GxsePN2iVp8+bNGjBgQMebjHcnHo/rj3/8Y8d/KEjSc889l/bxAABEDX1CnwAAfMqrn5EGkH/PPfecc8899zj19fXOG2+84Tz66KNOQUGBs379esdxHOcHP/iBM2TIEOeRRx5x/vKXvzj/9E//5JxwwgnOK6+84jiO4xw5csQZOXKk88UvftF5+eWXnSeeeMK54IILUt5DaOjQoSnf+4YbbnBGjhzpPP74485//dd/OU8//bSzdu1ax3Ec56233nJOP/1057rrrnOef/5557XXXnM2bNjg3Hjjjc5HH33U7bVs27bNKSgocH71q185juM4Dz74oHPKKac4r732Wtrr379/v3Paaac5X/jCF5z6+nrnlVdecR5++GHnL3/5S6+uv7W11TnjjDOc2bNnOy+++KLz29/+1jnnnHOcefPmdXyPefPmOZ///OeTvu+hQ4ec4cOHO3/7t3/rvPTSS85//ud/Oueeey7vIQQAgEOf0CcAAD9jcAhESFNTkzNjxgzn9NNPdwoLC53zzz/f+ed//ueOz7e3tztLly51zjzzTOeEE05wxo8f7/y///f/kp7jd7/7nTN27FinqKjImTp1qvPYY4/1Ksz/+te/OrfeeqtzxhlnOAUFBc65557r/N//+387Pv/KK684s2bNcoYNG+YMHjzY+cQnPuEsXrzYOXr0aLfPFY/HnZtuuinp/lmzZjmTJ09OG/OO4zh//OMfncrKSufEE090TjnlFGfq1KkdMd+b6//Tn/7kTJ8+3SkqKnKKi4udr3zlK86hQ4c6Pt9dmDuO4/z+9793xo8f7xQUFDgTJkxwfv7znxPmAAA49Inj0CcAAP+KOQ5vbgEAAAAAAAAgGe9xCAAAAAD/vx07EAAAAAAQ5G89wAqFEQAw4hAAAAAAGHEIAAAAAIw4BAAAAABGHAIAAAAAIw4BAAAAgBGHAAAAAMCIQwAAAABgxCEAAAAAMOIQAAAAABhxCAAAAABMUZ+MTt1OF24AAAAASUVORK5CYII=", "text/plain": [ "
" ] From de7a3901c2ae05194927f5d6602d2ffff472e3a8 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 2 Jan 2025 16:20:01 -0800 Subject: [PATCH 131/193] Bug in create_subs_grid --- test/plot_taylor_recurrence.ipynb | 80 +++++++++++++++++++++---------- 1 file changed, 56 insertions(+), 24 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index dbbb64c34..b8c0d7c89 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ @@ -435,7 +435,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 72, "metadata": {}, "outputs": [ { @@ -445,13 +445,13 @@ " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000]]" ] }, - "execution_count": 18, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "coord_dict = {var[0]: 2, var[1]: 1}\n", + "coord_dict = {var[0]: 1e-1, var[1]: 1.2}\n", "initial_grid_subs_laplace = create_subs_grid(6, 2, derivs_lap, coord_dict)\n", "initial_grid_subs_laplace" ] @@ -465,7 +465,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ @@ -495,7 +495,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 66, "metadata": {}, "outputs": [ { @@ -503,18 +503,48 @@ "text/plain": [ "[[0, 0, 1.00000000000000, 0, -6.00000000000000, 0],\n", " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000],\n", - " [1, 0, -6.00000000000000, 0, 120.000000000000, 0],\n", + " [0.826446280991735, 0, -4.95867768595041, 0, 99.1735537190083, 0],\n", + " [0, 4.95867768595041, 0, -99.1735537190083, 0, 4165.28925619835],\n", + " [-4.09808073219042, 0, 81.9616146438085, 0, -3442.38781503996, 0],\n", + " [0, -81.9616146438085, 0, 3442.38781503996, 0, -247851.922682877],\n", + " [67.7368716064533, 0, -2844.94860747104, 0, 204836.299737915, 0],\n", + " [0, 2844.94860747104, 0, -204836.299737915, 0, 22531992.9711706]]" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "extend_grid(initial_grid_subs_laplace, get_taylor_recurrence(laplace2d), coord_dict, 8, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[0, 0, 1.00000000000000, 0, -6.00000000000000, 0],\n", + " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000],\n", + " [1.00000000000000, 0, -6.00000000000000, 0, 120.000000000000, 0],\n", " [0, 6.00000000000000, 0, -120.000000000000, 0, 5040.00000000000],\n", - " [-6, 0, 120.000000000000, 0, -5040.00000000000, 0]]" + " [-6.00000000000000, 0, 120.000000000000, 0, -5040.00000000000, 0],\n", + " [0, -120.000000000000, 0, 5040.00000000000, 0, -362880.000000000],\n", + " [120.000000000000, 0, -5040.00000000000, 0, 362880.000000000, 0],\n", + " [0, 5040.00000000000, 0, -362880.000000000, 0, 39916800.0000000]]" ] }, - "execution_count": 20, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "extend_grid(initial_grid_subs_laplace, get_taylor_recurrence(laplace2d), coord_dict, 5, 2)" + "create_subs_grid(6, 8, derivs_lap, coord_dict)" ] }, { @@ -701,49 +731,49 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 8.26446325111216 \\cdot 10^{-8}$" + "$\\displaystyle 0.0873119521523848$" ], "text/plain": [ - "8.26446325111216e-8" + "0.0873119521523848" ] }, - "execution_count": 53, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "loc = np.array([1e-4, 1.1])\n", + "loc = np.array([1e-1, 1.1])\n", "compute_error_coord_tg(loc, laplace2d, derivs_lap, 4, 2, 2)" ] }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 1.73553721858137 \\cdot 10^{-8}$" + "$\\displaystyle 0.0177032219793687$" ], "text/plain": [ - "1.73553721858137e-8" + "0.0177032219793687" ] }, - "execution_count": 54, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 4, 8, 2)" + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 4, 16, 2)" ] }, { @@ -770,7 +800,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -783,17 +813,17 @@ ], "source": [ "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 8, laplace2d, derivs_lap, 2, 2)\n", - "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 4, 2)" + "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 6, 2)" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 58, "metadata": {}, "outputs": [ { "data": { - "image/png": "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vD5KThw6dEgVFRWaMGGCxo4dqx//+MdeHynrdu/erWnTpikej2vcuHF67LHHvD5SzsyaNUunnnqqrrvuOq+PkjVPPPGELrjgAp133nl68MEHvT5O5NAn4UGfhAt9Eg5RaZQw9olEowC9wS9HyZL//u//1qc//Wm99NJLOuGEE3TZZZfpe9/7niZNmuT10XKmpaVFZ599tt544w2ddNJJXh8nqz7zmc/oW9/6lqZOnap3331XQ4YM0aBBg7w+VtYNHz5c+/fv9/oYOXfHHXfo1VdfVVlZmb73ve95fZysa29vV1tbm0488UQdPnxYY8aMUX19vU477TSvj5Y1e/bs0TvvvKMJEyZo3759uvjii/Xyyy+H7p89kvT000+rpaVF//qv/6qf/exnXh+n3z766CPF43E9/fTTGjJkiC6++GI9//zzKi4u9vpokUCfhOufEfRJuNAn4RCVRglbn0g0CtBbvOIwiz766CN98MEH+vDDD/Xhhx9qxIgRXh8pp371q1/piiuuCN2/FN3/uJo6daokqbi4OJRRHhWvvvqq/vKXv+iqq67y+ig5M3DgQJ144omSpA8++EDt7e2he0XRGWecoQkTJkiSRowYoeLiYr377rveHipHpk+frlNOOcXrY2TNCy+8oIsuukhnnnmmTjnlFF111VXasGGD18eKFPokHOiTcKFPwiMqjRK2PpFoFKC3IjM43Lhxo2bOnKnS0lLFYrFuf3yltrZWo0ePVlFRkcrLy7Vp06ZeP//pp5+u2267TWVlZSotLdXf/M3f6OMf/3gWr6B3cn2dnT366KOaM2dOP0+cuVxf46uvvqqTTz5Z11xzjS6++GLde++9WTx97+Xjz7K5uVnl5eW69NJL9eyzz2bp5L2Xj2u87bbbtHz58iyduG/ycZ3vv/++xo8fr7POOktf//rXNXz48Cydvnfy+c+erVu36ujRoxo5cmQ/T525fF6nX/T3mt9++22deeaZHbfPOussvfXWW/k4eiDQJ8fQJz2jT/KHPjkm6H0iRaNRotgnEo0C5EtkBoetra0aP3687r///m4/v3btWi1evFh33HGHtm3bpqlTp6qqqkq7du3qeEx5ebnGjBmT8vH222/rvffe0xNPPKHXX39db731lrZs2aKNGzfm6/I65Po6Xc3Nzdq8ebMnW9JcX+OHH36oTZs2KZFI6Pe//73q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5fq7v/u7Hq//pZde0tVXX60hQ4bolFNO0dSpU/Xaa6/16vol6cUXX9Tll1/e8dfvpptuUktLS8fnb7jhBl177bVavny5SktLdf7550uSXnjhBX3yk59UUVGRJk6cqG3btvV4TgAAooQ+oU8AAP7E4BCIkD179uhv//Zv9eUvf1nbt2/XM888oy984QtyHEeS9MMf/lDf//739b3vfU9/+tOfNGPGDF1zzTV69dVXM/o+hw8f1vLly/Xggw/qpZde0ogRI3T99dfrkUce0Y9+9CNt375d//Iv/6KTTz6541yf+cxnNGHCBG3dulW//vWv9c477+h//a//lfZ7/OhHP1Jra6tuv/12SdKdd96p/fv3q7a2Nu3XvPXWW7rssstUVFSk3/72t2poaNCXv/xlffTRR726/sOHD+uzn/2sTj31VNXX1+uxxx7TU089pa9+9atJ3+c3v/mNtm/frrq6Oj3xxBNqbW3V5z73OV1wwQVqaGjQ3Xffrdtuuy2jv6YAAIQVfUKfAAB8zAEQGQ0NDY4k5/XXX+/286Wlpc4999yTdF9FRYWzaNEix3Ec5+mnn3YkOe+9917H57dt2+ZIcnbu3Ok4juM89NBDjiSnsbGx4zEvv/yyI8mpq6vr9vveeeedTmVlZdJ9u3fvdiQ5L7/8ctrr2bJli3PCCSc4d955pzNo0CDn2WefTftYx3GcJUuWOKNHj3aOHDnS7eePd/2rV692Tj31VKelpaXj8//5n//pDBgwwNm7d6/jOI4zb948p6SkxGlra+t4zAMPPOAUFxc7ra2tHfetWrXKkeRs27atxzMDABB29Al9AgDwL15xCETI+PHjdcUVV2js2LH64he/qB//+Md67733JEnNzc16++23NWXKlKSvmTJlirZv357R9ykoKNC4ceM6bjc2NmrgwIH6zGc+0+3jGxoa9PTTT+vkk0/u+PjEJz4hSR0/ptOdSZMm6bbbbtM3v/lN/cM//IMuu+yyjs9VVVV1PNdFF13UcY6pU6fqhBNOSHmu3lz/9u3bNX78eJ100klJnz969KhefvnljvvGjh2rgoKCjtvu15144olJZwcAAPQJfQIA8LNBXh8AQP4MHDhQdXV12rJli5588kn98z//s+644w49//zzOu200yRJsVgs6Wscx+m4b8CAAR33uT788MOU7zN48OCk5xk8eHCP5zp69Khmzpyp73znOymfO+OMM3r8us2bN2vgwIEpP6704IMP6q9//askdYT48c4h9Xz9nf93T1/XOdzdrwMAAN2jT+gTAIB/8YpDIGJisZimTJmipUuXatu2bSooKNDjjz+uIUOGqLS0VL/73e+SHr9lyxZdeOGFkqTTTz9dkr3nj6uxsfG433Ps2LE6evSonn322W4/f/HFF+ull17S2WefrXPPPTfpo2vkdnbfffdp+/btevbZZ7VhwwY99NBDHZ8788wzO55j1KhRkqRx48Zp06ZN3f7HRG+uPx6Pq7GxsePN2iVp8+bNGjBgQMebjHcnHo/rj3/8Y8d/KEjSc889l/bxAABEDX1CnwAAfMqrn5EGkH/PPfecc8899zj19fXOG2+84Tz66KNOQUGBs379esdxHOcHP/iBM2TIEOeRRx5x/vKXvzj/9E//5JxwwgnOK6+84jiO4xw5csQZOXKk88UvftF5+eWXnSeeeMK54IILUt5DaOjQoSnf+4YbbnBGjhzpPP74485//dd/OU8//bSzdu1ax3Ec56233nJOP/1057rrrnOef/5557XXXnM2bNjg3Hjjjc5HH33U7bVs27bNKSgocH71q185juM4Dz74oHPKKac4r732Wtrr379/v3Paaac5X/jCF5z6+nrnlVdecR5++GHnL3/5S6+uv7W11TnjjDOc2bNnOy+++KLz29/+1jnnnHOcefPmdXyPefPmOZ///OeTvu+hQ4ec4cOHO3/7t3/rvPTSS85//ud/Oueeey7vIQQAgEOf0CcAAD9jcAhESFNTkzNjxgzn9NNPdwoLC53zzz/f+ed//ueOz7e3tztLly51zjzzTOeEE05wxo8f7/y///f/kp7jd7/7nTN27FinqKjImTp1qvPYY4/1Ksz/+te/OrfeeqtzxhlnOAUFBc65557r/N//+387Pv/KK684s2bNcoYNG+YMHjzY+cQnPuEsXrzYOXr0aLfPFY/HnZtuuinp/lmzZjmTJ09OG/OO4zh//OMfncrKSufEE090TjnlFGfq1KkdMd+b6//Tn/7kTJ8+3SkqKnKKi4udr3zlK86hQ4c6Pt9dmDuO4/z+9793xo8f7xQUFDgTJkxwfv7znxPmAAA49Inj0CcAAP+KOQ5vbgEAAAAAAAAgGe9xCAAAAAD/vx07EAAAAAAQ5G89wAqFEQAw4hAAAAAAGHEIAAAAAIw4BAAAAABGHAIAAAAAIw4BAAAAgBGHAAAAAMCIQwAAAABgxCEAAAAAMOIQAAAAABhxCAAAAABMUZ+MTt1OF24AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACju0lEQVR4nOzde3xU9Z3/8XckJkGQYKBEoxDwRo0R0JBaUBR0hQbFe6WXRVSssow/itS2UlYFvMRdW0q3DihtV6qtW7RrqbXUGKsrVGoNkVg1rkpFg5VLCUokKGg4vz8+e0ImkwkzyUzOmTmv5+ORx+5MJjPf4KUvP5+5ZDmO4wgAAAAAAAAA2jjE6wMAAAAAAAAA8B8GhwAAAAAAAACiMDgEAAAAAAAAEIXBIQAAAAAAAIAoDA4BAAAAAAAARGFwCAAAAAAAACAKg0MAAAAAAAAAURgcAgAAAAAAAIjC4BAAAAAAAABAFAaHSIpnnnlG11xzjT7/+c+rT58+Ovroo3XRRReptra2058bP368srKyDvq1YMGCnvlF4hTPmbOysvQ///M/SXvM8ePHa/z48Um7v858+umnuv/++1VeXq6CggIddthhKi4u1kUXXaTf/OY3SX88P/01dhxHDz/8sM455xwdccQRys3N1bHHHqtQKKTNmzd3+/7feecdZWVlacWKFd0/bBy2bt2qG264Qccee6x69+6t4uJizZgxQw0NDV2+z6FDh+qCCy5I4inj05P/DADILH/60580efJkHXHEEerdu7dOOOEE3X777TFvT5/Ejz7pGfTJwdEnAJAa2V4fAJlh2bJlamxs1De/+U2VlJToH//4h37wgx/oi1/8oqqqqnTOOed0+HNLly5VU1NT6+Xf//73uuOOO/TAAw/o85//fOv1xxxzTMp/h0T8+c9/jrh8++2369lnn9UzzzwTcX1JSUlPHitppk2bpscee0xz5szRwoULlZubq7fffltPPvmkqqqqdMkllyT18f785z/74q/x/v379bWvfU0rV67UV7/6Va1YsUL5+fn661//qnvuuUcPP/ywnnjiCZ1xxhleHzUue/fu1VlnnaUPPvhACxcuVElJid544w3ddtttqqqq0uuvv67DDz/c62MCQEo9/PDDmjZtmq644go9+OCD6tu3r/72t7/p/fffj/kz9Ik/0Sf0CQDAAw6QBNu2bYu67qOPPnIKCwudc889N+77eeCBBxxJTk1NTVLO1dzcnJT7OZjp06c7ffr0SeljnH322c7ZZ5+dlPvav3+/s2fPng6/9/bbbzuSnFtvvbXD77e0tKT8DF656667HEnO3XffHfW9rVu3OsXFxU5hYaHzwQcfdHo/nf19t2nTJkeS88ADD3TztGbPnj3O/v37O/xedXW1I8n56U9/GnH9ww8/7EhyHnvssS49ZnFxsXP++ed36We7I5n/DAAIhvfee8/p06eP8y//8i/duh/6JDb6JPXok/jQJwCQGrxUGUkxaNCgqOv69u2rkpKSpLx8YuXKlRozZoz69Omjvn37atKkSdqwYUPEba666ir17dtXr7zyiiZOnKjDDz9c5557riR7qckNN9ygBx54QMOHD1fv3r01evRovfDCC3IcR/fcc4+GDRumvn376pxzztHGjRu7feZwOKyzzjpLgwYNUp8+fXTKKafo3//93/Xpp5+23ub2229XdnZ2h39G11xzjQYMGKBPPvkk5mPs3LlTs2bN0tFHH62cnBwde+yxmj9/vvbu3RtxO/f3v++++3TSSScpNzdXP//5zzu8z8bGRknSUUcd1eH3Dzkk8l8bTU1NuummmzRs2DDl5OTo6KOP1pw5c9Tc3Bz3GTp6KdDWrVt1/fXX65hjjlFOTo6GDRumhQsX6rPPPou43bJlyzRy5Ej17dtXhx9+uD7/+c/re9/7Xsw/s1j27dune+65RyeddJK+853vRH2/sLBQlZWV2rZtm372s5+1Xj9+/HiVlpZqzZo1Gjt2rA477DBdc801kqT3339fV1xxhQ4//HDl5+dr6tSp2rp1a4ePv379el144YUqKChQXl6eTj31VD3yyCMRt1mxYoWysrL01FNP6ZprrtHnPvc5HXbYYVF/vV2HHnqoJCk/Pz/i+v79+0uS8vLy4vvD6YLq6mpddNFFOuaYY5SXl6fjjz9e119/vXbs2BFxuwULFigrK0sbNmzQpZdeqn79+ik/P1///M//rH/84x8HfZyFCxfq9NNPV0FBgfr166fTTjtNP/vZz+Q4TtRtH374YY0ZM0Z9+/ZV3759NWrUqIi/lpL09NNP69xzz1W/fv102GGH6YwzztAf//jH7v1hAPDMT3/6UzU3N+u73/1uSu6fPukYfUKf0Cf0CYAM4u3cEpnsww8/dPLz851LLrkk7p/paKN/5513OllZWc4111zjPPHEE85jjz3mjBkzxunTp4/z2muvtd5u+vTpzqGHHuoMHTrUqaysdP74xz86VVVVjuM4jiSnuLjYGTt2rPPYY485v/nNb5wTTzzRKSgocG688Ubnoosucp544gnnl7/8pVNYWOiMGDEi5pa0Ix1t9G+88UZn2bJlzpNPPuk888wzzg9/+ENn4MCBztVXX916m23btjm5ubnO/PnzI362sbHR6d27t/Ptb3+79br228yPP/7YGTFihNOnTx/n+9//vvPUU085t9xyi5Odne1Mnjw54v4kOUcffbQzYsQI5+GHH3aeeeYZ59VXX+3wd9m9e7fTv39/58gjj3Tuv/9+Z9OmTTF/7+bmZmfUqFHOwIEDncWLFztPP/2086Mf/cjJz893zjnnnIg/w87OIMm57bbbWm+7ZcsWZ/DgwU5xcbFz//33O08//bRz++23O7m5uc5VV13Verv/+q//ciQ5/+///T/nqaeecp5++mnnvvvuc2bPnh3zzLGsW7fOkeR897vfjXmbjz76yDnkkEOcSZMmtV539tlnOwUFBc7gwYOdH//4x86zzz7rPPfcc86ePXuck046ycnPz3d+/OMfO1VVVc7s2bOdIUOGRG30n3nmGScnJ8cZN26cs3LlSufJJ590rrrqqqjbuf98HH300c51113n/OEPf3B+/etfO5999lmH5/3000+dsrIy5+STT3ZefPFF56OPPnJqa2udUaNGOaeddpqzb9++hP+cHCe+jf6yZcucyspK5/HHH3eee+455+c//7kzcuRIZ/jw4RGPe9ttt7X+8/ntb3/bqaqqchYvXuz06dPHOfXUUyNu29FG/6qrrnJ+9rOfOdXV1U51dbVz++23O71793YWLlwYcbtbbrnFkeRceumlzqOPPuo89dRTzuLFi51bbrml9TYPPfSQk5WV5Vx88cXOY4895vzud79zLrjgAqdXr17O008/3aU/KwDeOuecc5yCggLnySefdEaOHOn06tXL+dznPudcf/31zq5du+K+H/rE0Cf0CX1CnwAIHgaHSJmvf/3rTnZ2trN+/fq4f6Z9mDc0NDjZ2dnO//t//y/idh999JFz5JFHOldccUXrddOnT3ckOf/5n/8Zdb+SnCOPPNLZvXt363WrVq1yJDmjRo2KCMglS5Y4kpy//vWvcZ/7YC8FamlpcT799FPnwQcfdHr16uXs3Lkz4mcHDRrk7N27t/W6f/u3f3MOOeSQiChuHyX33XefI8l55JFHIh7r3/7t3xxJzlNPPRXx++fn50c8bmd+//vfOwMHDnQkOZKcAQMGOF/+8pedxx9/POJ2lZWVziGHHBL10q1f//rXjiRn9erVcZ2hfZhff/31Tt++fZ1333034nbf//73HUmt/0F2ww03OP3794/rdzqYX/3qV44k57777uv0doWFhc5JJ53Uevnss892JDl//OMfI263bNkyR5Lz29/+NuL6b3zjG1HB/fnPf9459dRTnU8//TTithdccIFz1FFHtb78yv3n48orr4z792pqanKmTJnS+tdSkjN+/HinsbEx7vtoL9GXAu3fv9/59NNPnXfffTfqz8QN8xtvvDHiZ375y186kpxf/OIXrdcd7KVA7j9nixYtcgYMGND6z/Xbb7/t9OrVy/n6178e82ebm5udgoICZ8qUKVH3OXLkSOcLX/hC3L8vAP8YPny4k5eX5xx++OHOXXfd5Tz77LPOv//7vzu9e/d2zjjjjLiHcPSJoU/oE8ehT+gTAEHDS5WRErfccot++ctf6oc//KHKyspar9+/f78+++yz1q+WlpZO76eqqkqfffaZrrzyyoify8vL09lnn93hpwJedtllHd7XhAkT1KdPn9bLJ510kiSpoqJCWVlZUde/++67cf++HdmwYYMuvPBCDRgwQL169dKhhx6qK6+8Ui0tLXrzzTdbb/fNb35T27dv16OPPirJ/oyWLVum888/X0OHDo15/88884z69Omjyy+/POL6q666SpKiXr7gfgpfPCZPnqyGhgb95je/0U033aSTTz5Zq1at0oUXXqgbbrih9XZPPPGESktLNWrUqIi/PpMmTerwUxvjPcMTTzyhCRMmqKioKOJ+KyoqJEnPPfecJOkLX/iCPvzwQ331q1/Vb3/726iXmaSC4zgRf79I0hFHHBH1AUDPPvusDj/8cF144YUR13/ta1+LuLxx40b97//+r77+9a9LUsTvO3nyZG3ZskVvvPFGxM/E+nu8vU8//VRTp05VXV2dfvKTn2jNmjX6+c9/rr///e8677zztGvXrrjupyu2b9+umTNnavDgwcrOztahhx6q4uJiSdLrr78edXv393ddccUVys7O1rPPPtvp4zzzzDP6p3/6J+Xn57f+c3brrbeqsbFR27dvl2QvS2ppaVEoFIp5P+vWrdPOnTs1ffr0iL8G+/fv15e+9CXV1NREvbwNgP/t379fn3zyib73ve9p3rx5Gj9+vL797W+rsrJSzz//fOv/VtIn9Al9Qp/QJwDQMT5VGUm3cOFC3XHHHbrzzjsjIk6SFi1apIULF7ZeLi4u1jvvvBPzvrZt2yZJKi8v7/D77d/P5rDDDlO/fv06vG1BQUHE5ZycnE6v7+y9ew6moaFB48aN0/Dhw/WjH/1IQ4cOVV5enl588UWFQiF9/PHHrbc99dRTNW7cOIXDYX3961/XE088oXfeeUf3339/p4/R2NioI488MioSBw0apOzs7Nb3AnLFek+gWHr37q2LL75YF198cevvVFFRoXA4rH/5l3/RySefrG3btmnjxo2t71XTXvtQjvcM27Zt0+9+97uD3u+0adP02Wef6Sc/+Ykuu+wy7d+/X+Xl5brjjjt03nnnxfmbmiFDhkiSNm3aFPM2zc3N2rFjh0499dSI6zv6vRobG1VYWBh1/ZFHHhlx2f17/KabbtJNN93U4eN29c/xZz/7mf7whz+opqZGo0ePliSNGzdOZ555po477jgtWbJEt912W1z3lYj9+/dr4sSJev/993XLLbfolFNOUZ8+fbR//3598YtfjPj739X+zyU7O1sDBgyI+vu4rRdffFETJ07U+PHj9ZOf/KT1/aZWrVqlO++8s/Vx3Pci6uyTMd2/Du3/Q7etnTt3RvzHPQD/GzBggN566y1NmjQp4vqKigrNmTNHL730kv7pn/6JPqFP4nps+iQSfdIx+gRApmFwiKRauHChFixYoAULFnT4BtDXXXedLrjggtbLubm5nd7fwIEDJUm//vWvW7eBnWkfqV5ZtWqVmpub9dhjj0Wcu66ursPbz549W1/+8pf10ksv6d5779WJJ5540LAcMGCA/vKXv0RtmLdv367PPvus9c/O1d0/myFDhui6667TnDlz9Nprr+nkk0/WwIED1bt3b/3nf/5nhz/T1TMMHDhQI0aM0J133tnh94uKilr//6uvvlpXX321mpubtWbNGt1222264IIL9Oabb8b194yrrKxMRxxxhB5//HFVVlZ2eNbHH39c+/fvj/pr09FtBwwYoBdffDHq+vZvPu7+Gc2bN0+XXnpph2cbPnz4QR+vI3V1derVq5dOO+20iOuPPfZYDRgwQK+++mpc95OoV199VS+//LJWrFih6dOnt17f2Zv6b926VUcffXTr5c8++0yNjY0aMGBAzJ/51a9+pUMPPVRPPPFExBupr1q1KuJ2n/vc5yRJ7733ngYPHtzhfbl/HX784x/ri1/8Yoe36eg/tAD424gRI/TCCy9EXe/83wcUuAM++qSuw9vTJ9E/R58cQJ90jD4BkGkYHCJpbr/9di1YsED/+q//GnNLWFRUFBFVBzNp0iRlZ2frb3/7W9wvf/ADN5za/oeH4zj6yU9+0uHtL7nkEg0ZMkTf+ta39Nxzz+mHP/zhQePr3HPP1SOPPKJVq1bpkksuab3+wQcfbP1+V3z00UfKyspS3759o77nvoTD/Wt4wQUX6K677tKAAQM0bNiwLj1eRy644AKtXr1axx13XNwvX+rTp48qKiq0b98+XXzxxXrttdcSCvOcnBx9+9vf1ve+9z3dc889UZ9cuH37ds2bN0+FhYW69tprD3p/EyZM0COPPKLHH3884uVADz/8cMTthg8frhNOOEEvv/yy7rrrrrjPG4+ioiK1tLSopqZGp59+euv1b775phobGzvdcHdHR3//S+r0WSq//OUvI97W4JFHHtFnn32m8ePHd/o42dnZ6tWrV+t1H3/8sR566KGI202cOFG9evXSsmXLNGbMmA7v64wzzlD//v1VX18f9UxpAOnrsssu0/Lly/WHP/wh4tlYq1evlqTW/xCnT+iTeNAnyUGfGPoEQLpgcIik+MEPfqBbb71VX/rSl3T++edHbfdjbcgOZujQoVq0aJHmz5+vt99+W1/60pd0xBFHaNu2bXrxxRfVp0+fiJcW+cV5552nnJwcffWrX9V3vvMdffLJJ1q2bJk++OCDDm/fq1cvhUIhffe731WfPn1a3weoM1deeaXC4bCmT5+ud955R6eccor+9Kc/6a677tLkyZP1T//0T106+xtvvKFJkybpK1/5is4++2wdddRR+uCDD/T73/9ey5cv1/jx4zV27FhJ0pw5c/Tf//3fOuuss3TjjTdqxIgR2r9/vxoaGvTUU0/pW9/6VkQQxmvRokWqrq7W2LFjNXv2bA0fPlyffPKJ3nnnHa1evVr33XefjjnmGH3jG99Q7969dcYZZ+ioo47S1q1bVVlZqfz8/IiXj7nvxdTZy84k6bvf/a5efvnl1v87depU5efn669//avuueceffTRR3riiSeUn59/0N/hyiuv1A9/+ENdeeWVuvPOO3XCCSdo9erVqqqqirrt/fffr4qKCk2aNElXXXWVjj76aO3cuVOvv/66Xnrppdb3l0rU1VdfrR/+8Ie67LLL9K//+q8aPny43n77bd11113q06ePZs6c2Xrbd955R8OGDdP06dO1YsWKg9731q1b9etf/zrq+qFDh2rkyJE67rjjdPPNN8txHBUUFOh3v/udqqurY97fY489puzsbJ133nl67bXXdMstt2jkyJG64oorYv7M+eefr8WLF+trX/uarrvuOjU2Nur73/9+1H8QDB06VN/73vd0++236+OPP9ZXv/pV5efnq76+Xjt27NDChQvVt29f/fjHP9b06dO1c+dOXX755Ro0aJD+8Y9/6OWXX9Y//vEPLVu27KB/LgD8ZeLEiZoyZYoWLVrU+nLE9evXa+HChbrgggt05plndul+6ZPY6BP65GDokwNnok8ApAXPPpYFGcX95LZYX/Fq/6mFrlWrVjkTJkxw+vXr5+Tm5jrFxcXO5Zdf7jz99NOtt+nskwMlOaFQKOK6TZs2OZKce+65J+L6Z5991pHkPProo3Gfu6PH/t3vfueMHDnSycvLc44++mjn29/+tvOHP/zBkeQ8++yzUffxzjvvOJKcmTNndvgYHX1iW2NjozNz5kznqKOOcrKzs53i4mJn3rx5zieffBJxu45+/1g++OAD54477nDOOecc5+ijj3ZycnKcPn36OKNGjXLuuOMOZ8+ePRG33717t/Ov//qvzvDhw52cnBwnPz/fOeWUU5wbb7zR2bp1a1xnULtPLXQcx/nHP/7hzJ492xk2bJhz6KGHOgUFBU5ZWZkzf/781k+f/PnPf+5MmDDBKSwsdHJycpyioiLniiuuiPrEyYEDBzpf/OIX4/r99+/f7/zyl790xo8f7/Tv39/Jyclxhg0b5vzLv/xL1KcoOo79dTn55JM7vK/33nvPueyyy5y+ffs6hx9+uHPZZZc569ati/rUQsdxnJdfftm54oornEGDBjmHHnqoc+SRRzrnnHNOxKcoxvrnozNvvfWWM23aNGfo0KFObm6uM2TIEGfq1Kmtn/zoeuWVVxxJzs0333zQ+ywuLo75z/r06dMdx3Gc+vp657zzznMOP/xw54gjjnC+/OUvOw0NDVF/rd1PLaytrXWmTJnS+mf11a9+1dm2bVvE43b0z8B//ud/OsOHD3dyc3OdY4891qmsrHR+9rOfOZIiPvXTcRznwQcfdMrLy528vDynb9++zqmnnhr11+G5555zzj//fKegoMA59NBDnaOPPto5//zzE/r3AQB/2bNnj/Pd737XGTx4sJOdne0MGTKkw/+t7Ax9Qp+46BP6hD4BEDRZjvN/b/ICwFM//vGPNXv2bL366qs6+eSTvT5Oxqivr9fJJ5+sJ554Queff77Xx/GtpUuX6jvf+Y7+9re/9eh75SxYsEALFy7UP/7xj6j3nAIAeI8+SQ36JD70CQB4j5cqAx7bsGGDNm3apEWLFumiiy4iypPs2Wef1ZgxY4jyg3j22Wc1e/Zs3mAbACCJPkk1+iQ+9AkAeC8Qzzh84okn9K1vfUv79+/Xd7/73bjeOBjoKUOHDtXWrVs1btw4PfTQQzryyCO9PhLQY9joI8joE/gZfYIgo08A4ICMHxx+9tlnKikp0bPPPqt+/frptNNO01/+8hcVFBR4fTQAABBQ9AkAAADSwSFeHyDVXnzxRZ188sk6+uijdfjhh2vy5MkdfmoYAABAT6FPAAAAkA58Pzhcs2aNpkyZoqKiImVlZWnVqlVRt1m6dKmGDRumvLw8lZWVae3ata3fe//993X00Ue3Xj7mmGP097//vSeODgAAMhR9AgAAgCDw/eCwublZI0eO1L333tvh91euXKk5c+Zo/vz52rBhg8aNG6eKigo1NDRIkjp6JXZWVlZKzwwAADIbfQIAAIAg8P2nKldUVKiioiLm9xcvXqwZM2a0vqH4kiVLVFVVpWXLlqmyslJHH310xAb/vffe0+mnnx7z/vbu3au9e/e2Xt6/f7927typAQMGEPQAAMTgOI4++ugjFRUV6ZBDfL+X7Db6BAAA/wtanwCp4PvBYWf27dun2tpa3XzzzRHXT5w4UevWrZMkfeELX9Crr76qv//97+rXr59Wr16tW2+9NeZ9VlZWauHChSk9NwAAmWrz5s065phjvD6Gp+gTAAD8hT4Bui6tB4c7duxQS0uLCgsLI64vLCzU1q1bJUnZ2dn6wQ9+oAkTJmj//v36zne+owEDBsS8z3nz5mnu3Lmtl3ft2qUhQ4bokMtuV9ahean5RYA0knXE0Qe/EYBAOeHIvmr5ZI/erPyKDj/8cK+P4zn6BEBX0FhActEnQHKk9eDQ1f4lOo7jRFx34YUX6sILL4zrvnJzc5Wbmxv9GIfmKSund/cOCqS5rAK2dAAiDT8qMsR52ewB9AkAFw0F9LxeeX1a/3/6BOi6tB4cDhw4UL169Wrd3ru2b98eteUH0D0ELwDEhz4BgoM+Avyp/WITQNel9buD5uTkqKysTNXV1RHXV1dXa+zYsd2673A4rJKSEpWXl3frfgAAyFREecfoEyD9ZRUcE9cXAP+hT4Dk8v0zDnfv3q2NGze2Xt60aZPq6upUUFCgIUOGaO7cuZo2bZpGjx6tMWPGaPny5WpoaNDMmTO79bihUEihUEhNTU3Kz8/v7q8BpDXCGEB7QY9y+gRIX3QNkLmC3idAKvh+cLh+/XpNmDCh9bL7xuDTp0/XihUrNHXqVDU2NmrRokXasmWLSktLtXr1ahUXF3t1ZCCjENcA2iPK6RPAj2gWAACSL8txHMfrQ/iZu9Hv9ZV7ePNxBA4BDqAjHQ0OWz5p1uu3Xahdu3apX79+HpwqWOgTIBLNAoA+AVIjrd/jMJV4DyEAAKLxbENv0ScAAESjT4DUYXAYQygUUn19vWpqarw+CuAJNvcA2iPKvUefAAAQiT4BUovBIYAoDA0BtEeUA/ArugUAgNRhcAgAAAAAANIOi00g9RgcxsB7CCGo2NoDaI8o9w/6BIhEtwDBRZ8APYPBYQy8hxCCiPgG0B5R7i/0CQAAAHoSg0MAANAhhoYAAMCPaBSg5zA4BCCJZxsCAID0QrsAwcTQEOhZDA4BEN4AohDlAADAb+gToOcxOIyBNx9HUDA0BNAeUe5f9Alg6BcAAHoGg8MYePNxAEAQMTT0N/oEABBUNAqCbtOmTZowYYJKSkp0yimnqLm5WZKUnZ2tUaNGadSoUbr22muT/rjZSb9HAGmDbT0AAEg39AsQPAwNAemqq67SHXfcoXHjxmnnzp3Kzc2VJPXv3191dXUpe1wGh0BAEd0A2iPKAQCA39AngPTaa6/p0EMP1bhx4yRJBQUFPfbYvFQZAAAQ5QAAAECKrFmzRlOmTFFRUZGysrK0atWqqNssXbpUw4YNU15ensrKyrR27drW77311lvq27evLrzwQp122mm66667Wr/X1NSksrIynXnmmXruueeSfnYGh0AA8WxDAACQjmgYIFhYbCJTNDc3a+TIkbr33ns7/P7KlSs1Z84czZ8/Xxs2bNC4ceNUUVGhhoYGSdKnn36qtWvXKhwO689//rOqq6tVXV0tSXrnnXdUW1ur++67T1deeaWampqSenZeqhxDOBxWOBxWS0uL10cBkorgBtAeUZ4+6BMAQFDQJz3vk08+0b59+7w+RlpwHEdZWVkR1+Xm5ra+72B7FRUVqqioiHl/ixcv1owZM1o/3GTJkiWqqqrSsmXLVFlZqWOOOUbl5eUaPHiwJGny5Mmqq6vTeeedp6KiIklSaWmpSkpK9Oabb2r06NHJ+DUlMTiMKRQKKRQKqampSfn5+V4fB0gKhoYA2iPK0wt9giCjY4DgoE963ieffKJhQ4dp67atXh8lLfTt21e7d++OuO62227TggULEr6vffv2qba2VjfffHPE9RMnTtS6deskSeXl5dq2bZs++OAD5efna82aNbr++uv1wQcf6LDDDlNubq7ee+891dfX69hjj+3y79URBocAAAQUUQ4AAADJhldbt23VxvqN6nd4P6+P42tNHzXp+JLjtXnzZvXrd+DPKtazDQ9mx44damlpUWFhYcT1hYWF2rrVBrnZ2dm66667dNZZZ8lxHE2cOFEXXHCB1q1bp+uvv16HHHKIsrKy9KMf/SjpH5zC4BAICLb0AAAgXdExQHCw2PRWv8P7RQzDEFu/fsn9s2r/0uf2L4fu6OXOY8eO1SuvvJK0M3SED0cBAoDYBtAeUQ4AAPyGPkEQDRw4UL169Wp9dqFr+/btUc9C9AKDQwAAAoYoBwAAfkOfIKhycnJUVlbW+inJrurqao0dO9ajUx3AS5WBDMezDQG0RZQDSDe0DAAg3e3evVsbN25svbxp0ybV1dWpoKBAQ4YM0dy5czVt2jSNHj1aY8aM0fLly9XQ0KCZM2d6eGrD4BDIYIQ2AAAAAL9jsYlMt379ek2YMKH18ty5cyVJ06dP14oVKzR16lQ1NjZq0aJF2rJli0pLS7V69WoVFxd7deRWDA5jCIfDCofDamlp8fooAAAkBVGe/ugTBA1LUCDz0ScIgvHjx8txnE5vM2vWLM2aNauHThQ/3uMwhlAopPr6etXU1Hh9FKBLCG0AbRHlmYE+AQBkEvoE8D8Gh0AGYmgIoC2iHEA6omcAAPAeg0MgwxDZAAAAAPyOxSaQHhgcAgCQwYhyAADgN/QJkD4YHAIZhGcbAmiLKAeQrmgaIHPRJ0B6YXAIZAgCG0BbRDkAAACA7mJwCAAAAMA3WIYCmYvFJpB+GBwCGYDABtAWUQ4AAPyGPgHSE4PDGMLhsEpKSlReXu71UYBOMTQE0BZRntnoEwBAOqJPgPTF4DCGUCik+vp61dTUeH0UAADiQpRnPvoEmY6FKAAA/sLgEEhjxDUAAAAAP2OxCaQ3BodAmmJoCKAtohxAuqNtgMxDnwDpj8EhkIYIawBtEeUAAMBv6BMgMzA4BAAgjRHlADIBS1EAAPyJwSGQZghrAAAAAH7GYhPIHAwOgTTC0BBAW0Q5AADwG/oEyCwMDgEASENEOYBMwWIUyBz0CZB5GBwCaYKoBuAiygEAAAD0BAaHQBpgaAgAADIRjQNkDhabQGZicAgAQBohygEAgN/QJ0DmYnAI+BybeAAuohxAJqFxgMxAnwCZjcEh4GMENQAXUQ4AAACgpzE4jCEcDqukpETl5eVeHwUBxdAQANAefQIA8BMWm0DmY3AYQygUUn19vWpqarw+CgAg4IhyuOgTZAoWpED6o0+AYGBwCPgQMQ3ARZQDAAC/oU+A4GBwCPgMQ0MALqIcQCaidQAASB8MDgEAAAAAQFxYbALBwuAQ8BE28ABcRDkAAPAb+gQIHgaHgE8wNATgIsoBZCp6B0hf9AkQTAwOAQDwEaIcAAAAgF8wOAR8gO07AADIdPQOkL5YbALBxeAQ8BgRDcBFlAMAAL+hT4BgY3AIeIihIQAXUQ4gk9E8QHqiTwAwOAQAwGNEOQAAAAA/YnAIeITNOwAAAAC/YrEJQGJwCHiCoSEAF1EOINPRPUD6oU8AuBgcAgDgEaIcAAD4DX0CoC0Gh0APY+sOQCLKAQQD3QMAQHpjcAj0IOIZAAAAgF+x2ATQXiAGh5dccomOOOIIXX755V4fBQAAohyS6BNkPhamQHqhTwB0JBCDw9mzZ+vBBx/0+hgIOOIZgESU4wD6BADgF/QJgFgCMTicMGGCDj+cfxHCOwwNAUhEOSLRJwAAAPA7zweHa9as0ZQpU1RUVKSsrCytWrUq6jZLly7VsGHDlJeXp7KyMq1du7bnDwp0EUNDAEg/9AnQPfQPkD5YbALojOeDw+bmZo0cOVL33ntvh99fuXKl5syZo/nz52vDhg0aN26cKioq1NDQ0HqbsrIylZaWRn29//77PfVrAADQKaI8vdAnAIAgoE8AHEy21weoqKhQRUVFzO8vXrxYM2bM0LXXXitJWrJkiaqqqrRs2TJVVlZKkmpra5N2nr1792rv3r2tl5uampJ23wgetu0AJKI8HdEnQNfRP0B6oE8AxMPzZxx2Zt++faqtrdXEiRMjrp84caLWrVuXksesrKxUfn5+69fgwYNT8jjIfEQzAIkoz0T0CQAAAILC14PDHTt2qKWlRYWFhRHXFxYWauvWrXHfz6RJk/TlL39Zq1ev1jHHHKOampqYt503b5527drV+rV58+Yunx8AAGQe+gQAkO5YbAKIl+cvVY5HVlZWxGXHcaKu60xVVVXct83NzVVubm7ctwc6wrMNAUhEeaajT4BoNBDgf/QJgET4enA4cOBA9erVK2p7v3379qgtP+AXBDMAiSjPZPQJACBd0Sc4mA8/+kQtyvH6GL720UefeH2EHuXrlyrn5OSorKxM1dXVEddXV1dr7NixKX3scDiskpISlZeXp/RxAACZhyjPbPQJ0DGWpwAAZB7Pn3G4e/dubdy4sfXypk2bVFdXp4KCAg0ZMkRz587VtGnTNHr0aI0ZM0bLly9XQ0ODZs6cmdJzhUIhhUIhNTU1KT8/P6WPhcxBMANAZqBPAACZhsUmgK7wfHC4fv16TZgwofXy3LlzJUnTp0/XihUrNHXqVDU2NmrRokXasmWLSktLtXr1ahUXF3t1ZKBDDA0BSER5pqBPgMTQQYC/0ScAusrzweH48ePlOE6nt5k1a5ZmzZrVQycCEkcsA5CI8kxCnwAAMgV9AqA7fP0eh17iPYQAAIkgytET6BMAAAD0JAaHMYRCIdXX16umpsbro8DneLYhAKCn0CfwI1oI8C8WmwC6i8Eh0A2EMgCJKAcAAP5DnwBIBs/f4xBIJwwKAbRHlJtTPtdHr3t9CAA9gh4C/I8+MfQJ0H0MDmMIh8MKh8NqaWnx+ijwCSIZQHtEuRk1qK/2fbzb62MEAn2Cnkb/AEhX9AmQHLxUOQbeQwhtEc0A0LFRg/p6fYRAoU+QSlkFx0R9AUg/LDYBJBPPOAQOgmgG0BGiHEC6o3GAzEOfGBabQPIwOAQAIEFEuSHKgfTBkBDIfPSJoU+A5GJwCHSCyAbQHlFuiHLAv+gXAEFFnwDJx+AwBt58HEQ3AHSMKPcOfYKO0CwAWGwCSBU+HCUG3nwcANAeUQ6v0ScAgPboE8NiE0gNBodAB9jcA2iPKDdEOeAvNAsQbPSJoU+A1GFwCLRDgANojyg3RDkAAPAb+gRILQaHAADgoIhywH9YdgLBxmITQE9gcAi0QYADaI8oBwAAfkOfGBabQOoxOIwhHA6rpKRE5eXlXh8FPYShIYD2iHJDlPsHfQIAgKFPgJ7B4DAGPrUwWBgaAmiPoaEhyv2FPoGLdgGCi0YB0JMYHAIAgA4xNAQAwF8YGhoaBeg5DA4ReGzsAbRHlAPwM9oFCCb6xDA0BHoWg0MEGuENoD2i3BDlAADAb+gToOcxOAQA4P8wNDREOeBfLD2BYKJRAHiFwSECi/AGgGgMDQEA8BeGhoZGAbzB4BCBxNAQQHtEOQAA8Bv6xDA0BLzD4DCGcDiskpISlZeXe30UAECKEeWGKPc/+iTYWHwCCCL6BPAWg8MYQqGQ6uvrVVNT4/VRkGRENwBEI8rTA30CAMHBYhOAHzA4RKAwNATQHlEOIB3QMECw0CeGxSbgPQaHCAyCG0B7RLkhygEA8A/6xNAngD8wOAQABBJRbohywP9YfgIIGvoE8A8GhwgEghsAohHlAAD4C4tNAH7D4BAZj6EhgPaIcgAA4Df0iWGxCfgLg0MAQKAQ5YYoB9IDC1AgGOgTQ58A/sPgEBmN2AbQFlFuiHIAAOA39AngTwwOYwiHwyopKVF5ebnXR0EXMTQEgGhEeXqjT4KFlgGCgcUmAD9jcBhDKBRSfX29ampqvD4KACAJiHJkAvoEADILfWJYbAL+xeAQGYkNPYC2iHJDlAMA4B/0iaFPAH9jcIiMw9AQQFtEuSHKgfRCzwAIAvoE8D8Gh8goRDYARCPKAQDwFxabANIFg0MAQMYiygGkIxahQGajTwyLTSA9MDhExiCyAbRFlBuiHAAA/6BPDH0CpA8Gh8gIDA0BtEWUG6IcSD80DYBMR58A6YXBIQAAGYgoBwDAX1hsAkhHDA6R9tjMA2iLKAcAAH5DnxgWm0D6YXCItMbQEEBbRLkhyoH0RNcAmYk+MfQJkJ4YHAIAMgJRbohyAADgN/QJkL4YHCJtsZUHgEhEOZC+6BogM7HYBJDuGBwiLRHXANoiygEAgN/QJ4bFJpA8e/bsUXFxsW666SZJ0htvvKFRo0a1fvXu3VurVq1K6mNmJ/XeMkg4HFY4HFZLS4vXR0E7DA0BtEWUG6I8GOiTzETbAJmHPjH0CZBcd955p04//fTWy8OHD1ddXZ0kaffu3Ro6dKjOO++8pD4mzziMIRQKqb6+XjU1NV4fBQAQA1FuiPLgoE8AAOmCPgGS66233tL//u//avLkyR1+//HHH9e5556rPn36JPVxGRwirbCRB4BIRDkAAP7CYhNAe2vWrNGUKVNUVFSkrKysDl9OvHTpUg0bNkx5eXkqKyvT2rVrI75/0003qbKyMuZjPPLII5o6dWqyj87gEOmDoSGAtohyAJmAvgEyC31iWGwCkZqbmzVy5Ejde++9HX5/5cqVmjNnjubPn68NGzZo3LhxqqioUENDgyTpt7/9rU488USdeOKJHf58U1OTnn/++ZjPRuwO3uMQAJB2iHJDlAMA4B/0iaFPEBRNTU0Rl3Nzc5Wbm9vhbSsqKlRRURHzvhYvXqwZM2bo2muvlSQtWbJEVVVVWrZsmSorK/XCCy/oV7/6lR599FHt3r1bn376qfr166dbb71Vkg0WJ02apLy8vCT9dgcwOERaYBsPwEWUG6IcSH/0DYBMQ5+kv398+LE+/oxRUWd27/5YkjR48OCI62+77TYtWLAg4fvbt2+famtrdfPNN0dcP3HiRK1bt06SVFlZ2foy5RUrVujVV19tHRpK9jLl6667LuHHjgd/N8D3iGoAiESUAwDgLyw2geDZvHmz+vXr13o51rMND2bHjh1qaWlRYWFhxPWFhYXaunXrQX9+165devHFF/Xf//3fXXr8g2FwCABIG0Q5gEzBYhTIHPSJYbGJoOnXr1/E4LC7srKyIi47jhN1nSRdddVVEZfz8/O1bdu2pJ2jPT4cBb5GVANwEeWGKAcAwD/oE0OfAF03cOBA9erVK+rZhdu3b496FqIXGBzCtxgaAnAR5YYoBwAAfkOfAN2Tk5OjsrIyVVdXR1xfXV2tsWPHenSqA3ipMnyJoSEARCLKgcxB5wCZgcUmgHjt3r1bGzdubL28adMm1dXVqaCgQEOGDNHcuXM1bdo0jR49WmPGjNHy5cvV0NCgmTNnenhqw+AQAOBrRDkAAPAb+sSw2ATis379ek2YMKH18ty5cyVJ06dP14oVKzR16lQ1NjZq0aJF2rJli0pLS7V69WoVFxd7deRWDA7hO2zhAbiIckOUA5mDzgHSH31i6BMgfuPHj5fjOJ3eZtasWZo1a1YPnSh+vMchfIWYBuAiyg1RDgAA/IY+AYKDwSEAAD5FlAMA4C8sNgEEDYND+AbPNgTgIsoBZCJaB0hv9IlhsQkEC4ND+AIhDcBFlBuiHAAA/6BPDH0CBE/GDw43b96s8ePHq6SkRCNGjNCjjz7q9ZEAADEQ5YYoz3z0SfCwJAWQ7ugTIJgy/lOVs7OztWTJEo0aNUrbt2/XaaedpsmTJ6tPnz5eHw3/h5AGgAOI8mCgTwAgfbDYBBBkGT84POqoo3TUUUdJkgYNGqSCggLt3LmTMPcJhoYAXEQ5goQ+CRZ6B0hf9IlhsQkEl+cvVV6zZo2mTJmioqIiZWVladWqVVG3Wbp0qYYNG6a8vDyVlZVp7dq1XXqs9evXa//+/Ro8eHA3T41kIKIBuIhyQ5T7B30CAKBPDH0CBJvng8Pm5maNHDlS9957b4ffX7lypebMmaP58+drw4YNGjdunCoqKtTQ0NB6m7KyMpWWlkZ9vf/++623aWxs1JVXXqnly5en/HcCAMSPKDdEub/QJwAA0CcAfPBS5YqKClVUVMT8/uLFizVjxgxde+21kqQlS5aoqqpKy5YtU2VlpSSptra208fYu3evLrnkEs2bN09jx4496G337t3bermpqSneXwUJ4NmGAHAAUe4/9AmSheYB0hOLTQAwnj/jsDP79u1TbW2tJk6cGHH9xIkTtW7durjuw3EcXXXVVTrnnHM0bdq0g96+srJS+fn5rV+8bCj5CGgALqIc6Yg+AYDMRp8YFpsAJJ8PDnfs2KGWlhYVFhZGXF9YWKitW7fGdR/PP/+8Vq5cqVWrVmnUqFEaNWqUXnnllZi3nzdvnnbt2tX6tXnz5m79DgCAjhHlhihPP/QJ4sWyFEg/9ImhTwC4PH+pcjyysrIiLjuOE3VdLGeeeab2798f92Pl5uYqNzc3ofMhfgQ0AIkodxHl6Y0+AQBkIvoEQFu+fsbhwIED1atXr6jt/fbt26O2/PA/hoYAcABRnr7oE8SD7gHSD4tNAIjm68FhTk6OysrKVF1dHXF9dXX1Qd9EvLvC4bBKSkpUXl6e0scBgKAhypHu6BMAyDz0iWGxCaA9z1+qvHv3bm3cuLH18qZNm1RXV6eCggINGTJEc+fO1bRp0zR69GiNGTNGy5cvV0NDg2bOnJnSc4VCIYVCITU1NSk/Pz+ljxUEbN0BSES5iyj3P/oEAIKDPjH0CYCOeD44XL9+vSZMmNB6ee7cuZKk6dOna8WKFZo6daoaGxu1aNEibdmyRaWlpVq9erWKi4u9OjISxNAQgESUu4jy9ECfoDtoHwDphj4BEIvng8Px48fLcZxObzNr1izNmjWrh06EZCKcAeAAojx90CcAEAwsNgGgc75+j0Mv8R5CAJA8RDmQHPSJ/7E0BdIHfWJYbALoDIPDGEKhkOrr61VTU+P1UdIW4QxAIspdRDmSgT4BgOSgTwx9AuBgGBwiJRgaApCIchdRDgAA/IY+ARAPBocAAKQQUQ4EB4tTID2w2ASA+DE4jIH3EOo6ohmARJQDqUCfAED30CeGxSaAeDE4jIH3EOoahoYAJKLcRZQj2egT/6KBAP+jTwx9AiARDA6RNAQzAIkodxHlAADAb+gTAIlicAgAQJIR5UCwsDwF/I/FJgB0DYNDJAXBDEAiygEAgP/QJ4bFJoCuYHAYA28+Hj+GhgAkotxFlCOV6BMASAx9YugTAF3F4DAG3nwcAOJHlBuiHKlGn/gPC1QAfkefAOgOBofoFmIZAAxRDgCAv7DYBIDuY3CILmNoCEAiygEEFy0E+Bd9YlhsAuguBocAgC4jyg1RDgCAf9Anhj4BkAzZXh8A6YGNOoD2iHJDlJuSI/p4fQQg5eghAOmCPjH0CdB9DA5jCIfDCofDamlp8fooniOSAaBjRLkpLeijT/bs9voYgUCf9Bz6B0hPLDbhok+A5OClyjHwqYWGaAbQEaIcrtICNvk9iT5JjayCY6K+AKQf+sSw2ASQTDzjEACQEKLcEOVA+mIwCGQe+sTQJ4bFJpA8DA4RE1ENoD2i3BDlhihHOqBnAAQFfWLoEyC5GByiQ0Q2AHSMKDdEOfyIfgGCicUmXPQJkHwMDgEAcSHK4SLK4RcMCgHQJ4bFJoBU4cNREIUIB9AeUW6IcgAA/IM+MfSJYbEJpAaDQ0RgaAigPaLcEOWGKIdf0CwAQJ+46BMgdRgcxhAOh1VSUqLy8nKvjwIA8BhRbohy79EnAGBYbMJFnwCpxeAwhlAopPr6etXU1Hh9lB7D5h5Ae0Q5XES5PwSxTwCgPfrEsNgE0BMYHEISQ0MA0YhyQ5QD/kO3AAg6+sSw2ARSj8EhiG8AURgaGqLcEOUAAL+gUeCiT4CeweAQAIAOMDQ0RDn8hoUnEFwMDQ2NAqAnMTgMOOIbQHtEOVwMDQEAfkGfGIaGhkYBeg6DwwBjaAigPaLcEOUAAMBv6BPD0BDoWdleHwAA4A8MDQ1Rbohy+BFLTyCYaBS46JPUe+fDj3XYp4yKOrOn+WOvj9CjeMZhQBHeABCNoaEhygEAfsHQ0NAoALzC4DCGcDiskpISlZeXe32UpGNoCKA9ohwuhob+lsl9cjD0CxA89IlhaGhoFMAbDA5jCIVCqq+vV01NjddHAYCUIsoNUY50QJ8AQLDQJ4ahIeAdBocBw7YeAKIR5YYoh1/RL0DwsNiEiz4BvMXgMECIbgDtEeVwEeUAAL+gTwyLTQB+wOAwIBgaAmiPKDdEOQAA/kGfGPrEsNgEvMfgEAACiCg3RLkhyuFnLD8BBA19YugTwB8YHAYAwQ0A0YhyQ5QDAPyCxSZc9AngHwwOMxxDQwDtEeVwEeXwOzoGCA76xLDYBOA3DA4BIECIckOUAwDgH/SJoU8Mi03AXxgcZjC29ADaIsoNUW6IcvgdHQMgSOgTQ58A/sPgMEMR2wAQjSg3RDkAwC9YbMJFnwD+xOAwAzE0BNAeUQ4XUQ4A8Av6xLDYBOBnDA4BIMMR5YYoB9IHS1Ag89Enhj4xLDYB/2JwmGEIbQBtEeWGKDdEOQAA/kGfGPoE8DcGhzGEw2GVlJSovLzc66PEjaEhAEQjyg1RnhnSsU8SRc8AmY/FJlz0CeB/DA5jCIVCqq+vV01NjddHAYAuIcrhIsozB30CIN3RJ4bFJoB0weAwQ7CdB9AWUW6IciC90DNAZqNPDH1iWGwC6YHBYQYgsgG0RZQbotwQ5QAA+Ad9YugTIH0wOAQAZByi3BDlAAC/YLEJF30CpBcGh2mOZxsCaIsoh4soR7qhaYDMRZ8YFpsA0hGDwzRGYANoiyg3RDkAAP5Bnxj6xLDYBNIPg8M0xdAQQFtEuSHKDVGOdEPXAMhk9ImhT4D0xOAQAJARiHJDlAMA/ILFJlz0CZC+GBymIbbyANoiyuEiygEAfkGfGBabANIdg8M0w9AQQFtEuSHKgfRF2wCZhz4x9IlhsQmkNwaHAJCmiHJDlBuiHAAA/6BPDH0CpD8Gh2mEjTwARCLKDVGOdEXbAJmHxSZc9AmQGRgcpgnCGkBbRDlcRDkAwC/oE8NiE0AmYXAIAGmGKDdEOZDeWIoCmYU+MfSJYbEJZA4Gh2mAsAbgIsoNUW6IcgAA/IM+MfQJkFkYHPocQ0MAiESUG6IcAOAXLDbhok+AzJPxg8OPPvpI5eXlGjVqlE455RT95Cc/8fpIcWNoCKAtohwuojz9pXOfJAONA2QO+sSw2ASQqbK9PkCqHXbYYXruued02GGHac+ePSotLdWll16qAQMGeH00AIgbUW6IcmQK+gRAJqBPDH1iWGwCmSnjn3HYq1cvHXbYYZKkTz75RC0tLXIcx+NTHRybeAAuotwQ5YYozwzp2ifJQOMAyCT0iaFPgMzl+eBwzZo1mjJlioqKipSVlaVVq1ZF3Wbp0qUaNmyY8vLyVFZWprVr1yb0GB9++KFGjhypY445Rt/5znc0cODAJJ0+NQhqAIhElBuivOfQJwDQORabcNEnQGbzfHDY3NyskSNH6t577+3w+ytXrtScOXM0f/58bdiwQePGjVNFRYUaGhpab1NWVqbS0tKor/fff1+S1L9/f7388svatGmTHn74YW3btq1HfjcA6C6iHC6ivGfRJ6nBchTIDPSJYbEJIAg8f4/DiooKVVRUxPz+4sWLNWPGDF177bWSpCVLlqiqqkrLli1TZWWlJKm2tjauxyosLNSIESO0Zs0affnLX+7wNnv37tXevXtbLzc1NcX7qyQFQQ3ARZQbohxeoE8AoGP0iaFPDItNIPN5/ozDzuzbt0+1tbWaOHFixPUTJ07UunXr4rqPbdu2tcZ1U1OT1qxZo+HDh8e8fWVlpfLz81u/Bg8e3PVfIEEMDQG4iHJDlBui3F+C1icAgEj0iaFPgGDw9eBwx44damlpUWFhYcT1hYWF2rp1a1z38d577+mss87SyJEjdeaZZ+qGG27QiBEjYt5+3rx52rVrV+vX5s2bu/U7AAC6hig3RLn/0Cddw4IUSH8sNuGiT4Dg8PylyvHIysqKuOw4TtR1sZSVlamuri7ux8rNzVVubm4ix0sKYhqAiyiHiyj3tyD0CQC46BPDYhNA0Pj6GYcDBw5Ur169orb327dvj9rypzOGhgBcRLkhyuFnQemTZKJ1gPRGnxj6xLDYBILF14PDnJwclZWVqbq6OuL66upqjR07NqWPHQ6HVVJSovLy8pQ+DiENwEWUG6LcEOX+FYQ+AQBEok8MfQIEj+cvVd69e7c2btzYennTpk2qq6tTQUGBhgwZorlz52ratGkaPXq0xowZo+XLl6uhoUEzZ85M6blCoZBCoZCampqUn5+f0scCABii3BDl3qNPAMCw2ISLPgGCyfPB4fr16zVhwoTWy3PnzpUkTZ8+XStWrNDUqVPV2NioRYsWacuWLSotLdXq1atVXFzs1ZGThmcbAnAR5XAR5f4Q5D5JNnoHSF/0iWGxCSDIPB8cjh8/Xo7jdHqbWbNmadasWT10op5BRANwEeWGKIefBLVPAMBFnxj6xLDYBILL1+9x6CXeQwhATyDKDVFuiHIcTLr1CYtSAOmMPjH0CRBsDA5jCIVCqq+vV01NTdLvm4gGgAOIckOUIx6p7BMAcLHYhIs+AcDgsIcxNATgIsrhIsqRiWgeID3RJ4bFJgAYBocA4AGi3BDlAAD4B31i6BPDYhPwj82bN2v8+PEqKSnRiBEj9Oijj7Z+7/vf/75OPvlklZaW6he/+EXSH9vzD0fxq3A4rHA4rJaWlqTdJ5t3ABJR7iLKDVGORKSiTwAAB9Anhj4B/CU7O1tLlizRqFGjtH37dp122mmaPHmy3n77bT388MOqra2VJJ177rm64IIL1L9//6Q9Ns84jCHZ7yHE0BAADiDKDVGORKXLexzSPUD6YbEJF30C+M9RRx2lUaNGSZIGDRqkgoIC7dy5U6+//rrGjh2rvLw85eXladSoUXryySeT+tgMDnsA8QzARZTDRZQDAPyCPjEsNgGkypo1azRlyhQVFRUpKytLq1atirrN0qVLNWzYMOXl5amsrExr167t8L7Wr1+v/fv3a/DgwSotLdWzzz6rDz/8UB9++KGeeeYZ/f3vf0/q2RkcAkAPIcoNUQ5kNhamQHqhTwx9YlhsAqnR3NyskSNH6t577+3w+ytXrtScOXM0f/58bdiwQePGjVNFRYUaGhoibtfY2Kgrr7xSy5cvlySVlJRo9uzZOuecc3TJJZeovLxc2dnJfVdCBocpRjwDkIhyF1FuiHIAAPyDPjH0CZCYpqamiK+9e/fGvG1FRYXuuOMOXXrppR1+f/HixZoxY4auvfZanXTSSVqyZIkGDx6sZcuWtd5m7969uuSSSzRv3jyNHTu29frrr79eL730kp599lnl5OTo+OOPT94vKT4cJaZkvPk4Q0MAOIAoN0Q5usPvH45C+wDphcUmXPQJXG/t+kR5nzIq6swnez6RJA0ePDji+ttuu00LFixI+P727dun2tpa3XzzzRHXT5w4UevWrZMkOY6jq666Suecc46mTZsWcbvt27dr0KBBeuONN/Tiiy/qvvvuS/gMneHvhhhCoZBCoZCampqUn5/v9XEApDGiHC6iHN1FnwBIFvrEsNgE0FWbN29Wv379Wi/n5uZ26X527NihlpYWFRYWRlxfWFiorVu3SpKef/55rVy5UiNGjGh9f8SHHnpIp5xyii6++GJ9+OGH6tOnjx544IGkv1SZwWGKsHEHIBHlLqIcAAD/oE8MfWJYbAJd069fv4jBYXdlZWVFXHYcp/W6M888U/v37+/w59xnJaYK73GYAgwNAUhEuYsoN0Q5Mh39AyCd0CeGPgG8N3DgQPXq1av12YWu7du3Rz0L0QsMDgEAKUOUG6IcAOAXLDbhok8Af8jJyVFZWZmqq6sjrq+uro74EBSv8FLlJGPbDkAiynEAUY4goH+A9ECfGBabAHra7t27tXHjxtbLmzZtUl1dnQoKCjRkyBDNnTtX06ZN0+jRozVmzBgtX75cDQ0NmjlzpoenNgwOY+jKpxYSzQAkotxFlAPJ5/dPVQbgX/SJoU8Mi02gZ61fv14TJkxovTx37lxJ0vTp07VixQpNnTpVjY2NWrRokbZs2aLS0lKtXr1axcXFXh25FYPDGBL91EKGhgAkotxFlBuiHMnGpyoDQNfRJ4Y+AXre+PHj5ThOp7eZNWuWZs2a1UMnih/vcQgASCqi3BDlCAqWp4D/sdiEiz4BkCgGh0lAMAOQiHIcQJQDAPyCPjEsNgGgaxgcdhNDQwASUe4iyoFgoYMAf6NPDH1iWGwC6Iq43uPwiCOOUFZWVlx3uHPnzm4dCADSDVFuiHJDlPcc+gQAcDD0iaFPAHRVXIPDJUuWtP7/jY2NuuOOOzRp0iSNGTNGkvTnP/9ZVVVVuuWWW1JySL9iyw4Ahig3RHnPok+8RQcB/sZiEy76BEB3xDU4nD59euv/f9lll2nRokW64YYbWq+bPXu27r33Xj399NO68cYbk39KHyKWAUhEOQ4gynsefQIAHaNPDItNAOi+hN/jsKqqSl/60peirp80aZKefvrppBzKD8LhsEpKSlReXu71UQD4FFFuiHL4AX0CAIY+MfSJYbEJoLsSHhwOGDBAv/nNb6KuX7VqlQYMGJCUQ/lBKBRSfX29ampqor7Hsw0BEOWGKDdEuffok55FCwHwM/rE0CcAkiGulyq3tXDhQs2YMUP/8z//0/oeQi+88IKefPJJ/fSnP036Af0i64ijlZV7mNfHAADfIMoNUW5OyM/z9PGD2ic9hUEhkB5YbMJFnxiv+wTIBAkPDq+66iqddNJJ+o//+A899thjchxHJSUlev7553X66aen4owA4CtEOVxEuRnev7f2NH/k6Rnok+RhSAikJ/rEsNiEyw99AmSChAaHn376qa677jrdcsst+uUvf5mqMwGAbxHlhiiHa3j/3l4fgT7pJgaFQPqjTwx9YlhsAkimhN7j8NBDD+3w/YMAIAiIckOUG6LcP+iT+GUVHBP1BQCZgD4x9Inxw2ITyBQJfzjKJZdcolWrVqXgKAAAvyPKDVFu/BTl9Ek0hoRAMLDYhIs+MX7qEyATJPweh8cff7xuv/12rVu3TmVlZerTJ/JfTrNnz07a4QDAL4hyuIhy47cop094yTEQRPSJYbEJl9/6BMgECQ8Of/rTn6p///6qra1VbW1txPeysrICEeYAgoUoN0Q5XH6M8qD2SdYRRysr9zCvjwHAA/SJoU8Mi00AqZLw4HDTpk2pOIfvhMNhhcNhtbS0eH0UAB4iyg1Rbohy/6JPACB46BNDnxg/LjaBTJDwexy25TiOHMdJ1ll8JRQKqb6+XjU1NV4fBQA8RZQbotykQ5TTJwAyHYtNIFI69AmQrro0OHzwwQd1yimnqHfv3urdu7dGjBihhx56KNlnAwBPEeVwMTQ0fo9y+gRAENAnhsWmoVH83ydAukv4pcqLFy/WLbfcohtuuEFnnHGGHMfR888/r5kzZ2rHjh268cYbU3FOAOhRRLkhyuHye5TTJwAQHPSJYWgIoCckPDj88Y9/rGXLlunKK69sve6iiy7SySefrAULFhDmANIeQ0NDlBuiPD3QJwCCgEaBiz4xfl9sApkg4Zcqb9myRWPHjo26fuzYsdqyZUtSDgUA8BZDQ0OUm3SIcvoEQKZjaGhoFLjSoU+ATJDw4PD444/XI488EnX9ypUrdcIJJyTlUADgFaIcLoaGJl2inD4BkMnoE8PQ0NAoAHpSwi9VXrhwoaZOnao1a9bojDPOUFZWlv70pz/pj3/8Y4fBDgDpgig3RDlc6TI0lOgTAMh09IlhaGjSqVGAdJfwMw4vu+wy/eUvf9HAgQO1atUqPfbYYxo4cKBefPFFXXLJJak4IwCkHENDQ5Qbojz90CcAMhWNAhd9YhgaAj0r4WccSlJZWZl+8YtfJPssAAAPMTQ0RLlJxyinTwBkGoaGhkaBKx37BEh3XRoctrS0aNWqVXr99deVlZWlkpISXXjhherVq1eyzwcAKUeUw8XQ0KRrlNMnADIJfWIYGhoaBYBXEh4cbty4Ueeff77ee+89DR8+XI7j6M0339TgwYP1+9//Xscdd1wqzgkAKUGUG6IcrnQdGtInAJB56BPD0NCka6MA6S7h9zicPXu2jj32WG3evFkvvfSSNmzYoIaGBg0bNkyzZ89OxRkBAClElBuiPL3RJwAyCYtNuOgTw9AQ8E7Czzh87rnn9MILL6igoKD1ugEDBujuu+/WGWeckdTDAUAqEeVwEeUmnaOcPgGQKegTw2ITrnTuEyATJPyMw9zcXH300UdR1+/evVs5OTlJOZQfhMNhlZSUqLy83OujAEgBotwQ5XCle5TTJwAyAX1i6BPDYhOAHyQ8OLzgggt03XXX6S9/+Yscx5HjOHrhhRc0c+ZMXXjhhak4oydCoZDq6+tVU1Pj9VEAJBlRbohyQ5RnBvoEADIDfWLoE5Pui00gEyQ8OPyP//gPHXfccRozZozy8vKUl5enM844Q8cff7x+9KMfpeKMAIAkI8oNUW4yIcrpEwDpjsUmXPSJyYQ+ATJBwu9x2L9/f/32t7/Vxo0b9frrr8txHJWUlOj4449PxfkAIKmIcriIcpMpUU6fAEhn9IlhsQlXpvQJkAkSHhy6jj/+eGIcQFohyg1RDlcmRjl9AiDd0CeGPjEsNgH4TcIvVb788st19913R11/zz336Mtf/nJSDgUAyUaUG6LcEOWZhz4BgPRFnxj6xGTiYhNIZwkPDp977jmdf/75Udd/6Utf0po1a5JyKABA8hHlhig3mRbl9AmAdMRiEy76xGRanwCZIOHB4e7du5WTkxN1/aGHHqqmpqakHAoAkokoh4soN5kY5fQJgHRDnxgWm3BlYp8AmSDhwWFpaalWrlwZdf2vfvUrlZSUJOVQAJAsRLkhyuHK1CinTwCkE/rE0CeGxSYAP0v4w1FuueUWXXbZZfrb3/6mc845R5L0xz/+Uf/1X/+lRx99NOkHBICuIsoNUW6I8sxGnwBAeqFPDH1iMnWxCWSChAeHF154oVatWqW77rpLv/71r9W7d2+NGDFCTz/9tM4+++xUnBEA0EVEuSHKTSZHOX0CIF2w2ISLPjGZ3CdAJkh4cChJ559/fodvQA4AfkGUw0WUmyBEOX0CwO/oE8NiE64g9AmQ7hJ+j8O2Zs2apR07diTrLACQFES5IcrhClqU0ycA/Ig+MfSJYbEJIF10a3D4i1/8gk8qBOArRLkhyg1RHkz0CQD4E31i6BMTtMUmkK66NTh0HCdZ5wAAJAlRbohyE8Qop08A+A2LTbjoExPEPgHSVbcGhwDgJ0Q5XES5IcoBwHv0iWGxCRd9AqSXhD8cpbm5WX362H+QffTRR0k/EAB0BVFuiHK4ghbl9AkAP6JPDH1iWGwCSEcJP+OwsLBQ11xzjf70pz+l4jwps2fPHhUXF+umm27y+igAkowoN0S5IcqDiT4BAH+iTwx9YoK22AQyQcKDw//6r//Srl27dO655+rEE0/U3Xffrffffz8VZ0uqO++8U6effrrXxwCAlCDKDVFughjl9AkAv2GxCRd9YoLYJ0AmSPilylOmTNGUKVPU2NioBx98UCtWrNAtt9yiSZMm6ZprrtGFF16o7OyE7zal3nrrLf3v//6vpkyZoldffdXr4wBIIqIcLqLcBDXK6RMAfkKfGBabcAW1T9JR/QfNyvkky+tj+Nq+j5u9PkKP6vKHowwYMEA33nijXn75ZS1evFhPP/20Lr/8chUVFenWW2/Vnj174rqfNWvWaMqUKSoqKlJWVpZWrVoVdZulS5dq2LBhysvLU1lZmdauXZvQWW+66SZVVlYm9DMA/I8oN0Q5XEQ5fQLAe/SJoU8Mi00A6a7Lq/etW7fqwQcf1AMPPKCGhgZdfvnlmjFjht5//33dfffdeuGFF/TUU08d9H6am5s1cuRIXX311brsssuivr9y5UrNmTNHS5cu1RlnnKH7779fFRUVqq+v15AhQyRJZWVl2rt3b9TPPvXUU6qpqdGJJ56oE088UevWrevqrwvAZ4hyQ5Qbohwu+gQAvEefGPrEsNgE0lvCg8PHHntMDzzwgKqqqlRSUqJQKKR//ud/Vv/+/VtvM2rUKJ166qlx3V9FRYUqKipifn/x4sWaMWOGrr32WknSkiVLVFVVpWXLlrVu6Wtra2P+/AsvvKBf/epXevTRR7V79259+umn6tevn2699dYOb793796IyG9qaorr9wCAnkaUG6LcBD3K6RMAfsBiEy76xAS9T4BMkPBLla+++moVFRXp+eefV11dnW644YaIKJekY489VvPnz+/24fbt26fa2lpNnDgx4vqJEyfGvZ2vrKzU5s2b9c477+j73/++vvGNb8SMcvf2+fn5rV+DBw/u1u8AIPmIcriIckOU0ycAvEefGBabcNEnQGZI+BmHW7Zs0WGHHdbpbXr37q3bbruty4dy7dixQy0tLSosLIy4vrCwUFu3bu32/Xdk3rx5mjt3buvlpqYm4hzwEaLcEOVwEeWGPgHgJfrE0CeGxSaATJLw4PBgUZ4KWVmRn+jjOE7UdfG46qqrDnqb3Nxc5ebmJnzfAFKPKDdEuSHK0RZ9AgDeok8MfWJYbAKZo8ufqtwTBg4cqF69ekVt77dv3x615QeAICDKDVFuiHJv0CcA2mKxCRd9YugTILP4enCYk5OjsrIyVVdXR1xfXV2tsWPHpvSxw+GwSkpKVF5entLHARAfohwuotwQ5d6hTwC46BPDYhMu+gTIPAm/VDnZdu/erY0bN7Ze3rRpk+rq6lRQUKAhQ4Zo7ty5mjZtmkaPHq0xY8Zo+fLlamho0MyZM1N6rlAopFAopKamJuXn56f0sQB0jig3RDlcRHnq0ScADoY+MfSJYbEJIFN1eXC4ceNG/e1vf9NZZ52l3r17d/l9fdavX68JEya0Xnbf+Hv69OlasWKFpk6dqsbGRi1atEhbtmxRaWmpVq9ereLi4q4eHUAaIcoNUW6IchwMfQIAPYc+MfSJYbEJZKaEB4eNjY2aOnWqnnnmGWVlZemtt97Sscceq2uvvVb9+/fXD37wg4Tub/z48XIcp9PbzJo1S7NmzUr0qACQEYhyQ5Qborxj9AmAnsRiEy76xNAnQOZK+D0Ob7zxRmVnZ6uhoSHiEwynTp2qJ598MqmH8xLvIQR4jyiHiyg3RHls9AmAnkKfGBabcNEnQGZL+BmHTz31lKqqqnTMMcdEXH/CCSfo3XffTdrBvMZ7CAHeIsoNUQ4XUd45+gRAT6BPDH1iWGwCCIKEn3HY3Nwcscl37dixQ7m5uUk5FIBgI8oNUW6IcsSDPgGAnkGfGPrEsNgEMl/Cg8OzzjpLDz74YOvlrKws7d+/X/fcc0/Em4gDALqOKDdEuSHKD44+AZBqLDbhok8MfQIEQ8IvVb7nnns0fvx4rV+/Xvv27dN3vvMdvfbaa9q5c6eef/75VJzRE+FwWOFwWC0tLV4fBQgUohwuotwQ5fGhTwCkEn1iWGzCRZ8AwZHwMw5LSkr017/+VV/4whd03nnnqbm5WZdeeqk2bNig4447LhVn9EQoFFJ9fb1qamq8PgoQGES5IcrhIsrjR58ASBX6xNAnhsUmgKBJ+BmHknTkkUdq4cKFyT4LgAAjyg1RbohydAV9AgCpQZ8Y+sSw2ASCJeFnHD7wwAN69NFHo65/9NFH9fOf/zwphwKAICLKDVFuiPLE0CcAUoHFJlz0iaFPgOBJeHB49913a+DAgVHXDxo0SHfddVdSDgUgWIhyuIhyQ5Qnjj4BkGz0iWGxCRd9AgRTwoPDd999V8OGDYu6vri4WA0NDUk5lB+Ew2GVlJSovLzc66MAGY0oN0Q5XER519AnAJKJPjH0iWGxCSDIEh4cDho0SH/961+jrn/55Zc1YMCApBzKD3jzcSD1iHJDlBuiHN1BnwBActEnhj4xLDaB4Ep4cPiVr3xFs2fP1rPPPquWlha1tLTomWee0Te/+U195StfScUZASBjEeWGKDdEedfRJwCShcUmEIk+AYIt4U9VvuOOO/Tuu+/q3HPPVXa2/fj+/ft15ZVX8h5CAOJGlMPF0NAQ5d1DnwBIBvrEsNg0NAp9AiDBwaHjONqyZYseeOAB3XHHHaqrq1Pv3r11yimnqLi4OFVnBJBhiHJDlMNFlHcPfQIgGegTQ58YhoYAYBIeHJ5wwgl67bXXdMIJJ+iEE05I1bkAZCii3BDlhihHMtAnAJAc9ImhTwyLTQBSgu9xeMghh+iEE05QY2Njqs7jG3xqIYBUIcoNUW6I8u6jTwB0F4tNIBJ9AsCV8Iej/Pu//7u+/e1v69VXX03FeXyDTy0Eko8oh4uhoSHKk4c+AdBV9IlhsWloFPoEQKSEPxzln//5n7Vnzx6NHDlSOTk56t078l8qO3fuTNrhAGQOotwQ5XAR5clFnwDoCvrE0CeGoSEAREt4cLhkyZIUHANAJiPKDVFuiHKkAn0CAF1Dnxj6xLDYBNBewoPD6dOnp+IcAJDRiHJDlBuiPPnoEwCJYrEJRKJPAHQk4cFhQ0NDp98fMmRIlw8DIPMQ5XAxNDREeWrQJwASQZ8YFpuGRqFPAMSW8OBw6NChysrKivn9lpaWbh0IQOYgyg1RDhdRnjr0CYB40SeGPjEMDQGgcwkPDjds2BBx+dNPP9WGDRu0ePFi3XnnnUk7GID0RpQbotwQ5Ug1+gQA4kefGPrEsNgE0JmEB4cjR46Mum706NEqKirSPffco0svvTQpB/NaOBxWOBzmGQoAuowoN0S5IcpTiz4BEA8Wm0Ak+gTAwRySrDs68cQTVVNTk6y781woFFJ9fX1G/U5ATyHK4WJoaIhy79AnAFz0iWGxaWgU+gRAfBJ+xmFTU1PEZcdxtGXLFi1YsEAnnHBC0g4GID0R5YYoh4so7xn0CYDO0CeGPjEMDQEgfgkPDvv37x/15uOO42jw4MH61a9+lbSDAUg/RLkhyg1Rjp5EnwBA5+gTQ58YFpsA4pXw4PDZZ5+NuHzIIYfoc5/7nI4//nhlZyd8dwCQUYhyQ5Qborzn0CcAYmGxCUSiTwAkIuGSPvvss1NxDgBpjiiHi6GhIcp7Fn0CoCP0iWGxaWgU+gRA4rq0gv/b3/6mJUuW6PXXX1dWVpZOOukkffOb39Rxxx2X7PMBSANEuSHK4SLKvUGfAGiLPjH0iWFoCABdk/CnKldVVamkpEQvvviiRowYodLSUv3lL3/RySefrOrq6lScEYCPEeWGKDdEObxCnwBANPrE0CeGxSaArkj4GYc333yzbrzxRt19991R13/3u9/Veeedl7TDAUA6IMoNUW6Icm/QJwDaYrEJRKJPAHRVws84fP311zVjxoyo66+55hrV19cn5VB+EA6HVVJSovLycq+PAvgWUQ4XQ0NDlHuHPgHgok8Mi01Do9AnALon4cHh5z73OdXV1UVdX1dXp0GDBiXjTL4QCoVUX1+vmpoar48C+BJRbohyuIhyb9EnACT6xEWfGIaGANB9Cb9U+Rvf+Iauu+46vf322xo7dqyysrL0pz/9Sf/2b/+mb33rW6k4IwCfIcoNUW6IcvgBfQIAhj4x9IlhsQmguxIeHN5yyy06/PDD9YMf/EDz5s2TJBUVFWnBggWaPXt20g8IAH5ElBui3BDl3qNPALDYBCLRJwCSIeHBYVZWlm688UbdeOON+uijjyRJhx/O/0gDQUGUw8XQ0BDlZqjHfw70CRBs9IlhsWloFLi87hMgEyT8Hocff/yx9uzZI8mCfOfOnVqyZImeeuqppB8OgL8Q5YYoh4uhoTn2CO//HOgTILjoE0OfGIaGhkbxR58AmSDhweFFF12kBx98UJL04Ycf6gtf+IJ+8IMf6KKLLtKyZcuSfkAA/kCUG6LcEOVw+SXK6RMAQUafGPrEMDQEMtMll1yiI444Qpdffnlc1ydLwoPDl156SePGjZMk/frXv9aRRx6pd999Vw8++KD+4z/+I+kHBAC/IMoNUW6Icn+hT4BgYrEJF31i6BPjl8UmkEyzZ89uXZTHc32yJDw43LNnT+t7Bj311FO69NJLdcghh+iLX/yi3n333aQfEID3iHK4iHJDlBs/RTl9AgQPfWJYbAKR/NQnQDJNmDChw/fwjnV9siQ8ODz++OO1atUqbd68WVVVVZo4caIkafv27erXr1/SDwjAW0S5IcrhYmho/Bbl9AkQLPSJoU8Mi01DowD+tWbNGk2ZMkVFRUXKysrSqlWrom6zdOlSDRs2THl5eSorK9PatWt7/qAdSHhweOutt+qmm27S0KFDdfrpp2vMmDGSbLt/6qmnJv2AALxDlBui3BDlcPltaCjRJwCChz4x9IlhaGj82CiAJDU3N2vkyJG69957O/z+ypUrNWfOHM2fP18bNmzQuHHjVFFRoYaGhh4+abTsRH/g8ssv15lnnqktW7Zo5MiRrdefe+65uuSSS5J6OADwGlFuiHJDlPsXfQIEB4tNIBJ9Yhgaoqc1NTVFXM7NzVVubm6Ht62oqFBFRUXM+1q8eLFmzJiha6+9VpK0ZMkSVVVVadmyZaqsrEzeobsg4cGhJB155JE68sgjI677whe+kJQDAfAHohwuhoaGKDd+jnL6BMh89IlhsWloFLj83Cfp5pV/NKtXnten8LeWT5olSYMHD464/rbbbtOCBQsSvr99+/aptrZWN998c8T1EydO1Lp167p8zmTp0uAQQGYjyg1RDhdDQ0OUA4D36BPD0NDQKIB3Nm/eHPFe2rGebXgwO3bsUEtLiwoLCyOuLyws1NatW1svT5o0SS+99JKam5t1zDHH6De/+Y3Ky8tjXp8sDA5jCIfDCofDamlp8fooQI9iaGiIckOUw8XQ0B/oEwQZjQIXfWIYGhoaBV7p169fUj+ELysrK+Ky4zgR11VVVXX4c7GuT5aEPxwlKEKhkOrr61VTU+P1UQD0MIaGhig3RDn8hD5BUDE0NDQKXPSJYWiITDBw4ED16tUr4tmFkrR9+/aoZyF6gcEhgFZEOVwMDQ1RbohyAF6iTwxDQ0OjwEWfIFPk5OSorKxM1dXVEddXV1dr7NixHp3qAF6qDEASUe4iyuFiaGiIcgDwHn1iGBoaGgVIP7t379bGjRtbL2/atEl1dXUqKCjQkCFDNHfuXE2bNk2jR4/WmDFjtHz5cjU0NGjmzJkentowOATA0PD/EOWGKIeLoSEAr9EocNEnhqGhoVGQbtavX68JEya0Xp47d64kafr06VqxYoWmTp2qxsZGLVq0SFu2bFFpaalWr16t4uJir47cisEhAIihoYsoN0Q5AHiPoaGhUYBIDA2RjsaPHy/HcTq9zaxZszRr1qweOlH8eI9DIOCIcrgYGhqGhoYoB+Al+sQwNDQ0iqFR6BPACwwOgQAjyg1RDhdBbohyAPAefWIYGhoaBYBXGBwCCDSi3BDlcDE0BOA1Fptw0SeGoaGhUQBvMDgEAoooh4soN0Q5AHiPPjEsNoFIDA0B7zA4BAKIKDdEOVwMDQ1RDsBL9ImhTwyLTUOj0CeA1xgcAgFDlBui3BDlcBHlAOA9+sTQJ4ahIQA/YHAIIHCIckOUG6IcALzHYhMu+sTQJ4bFJuA9BodAgBDlcBHlhig3RDkAL9EnhsUmEIk+AfyBwSEQEES5IcrhYmhoiHIAXqJPDH1iWGwaGoU+AfyEwSEQAES5IcoNUQ4XUQ4A3qNPDH1iGBoC8BsGhwACgSg3RLkhygHAeyw24aJPDH1iWGwC/hKIwWF2drZGjRqlUaNG6dprr/X6OECPIsrhIsoNUW6Icu/RJwgy+sSw2AQi0SeA/2R7fYCe0L9/f9XV1Xl9DKDHEeWGKIeLoaEhyv2BPkFQ0SeGPjEsNg2NQp8AfhWIZxwCQUSUG6LcEOVwEeUA4D36xNAnhqEhAD/zfHC4Zs0aTZkyRUVFRcrKytKqVauibrN06VINGzZMeXl5Kisr09q1axN6jKamJpWVlenMM8/Uc889l6STA/A7otwQ5YYoRyLoEyA1WGzCRZ8Y+sSw2AT8y/OXKjc3N2vkyJG6+uqrddlll0V9f+XKlZozZ46WLl2qM844Q/fff78qKipUX1+vIUOGSJLKysq0d+/eqJ996qmnVFRUpHfeeUdFRUV69dVXdf755+uVV15Rv379Uv67AV4hyuEiyg1Rbojy+NEnQPLRJ4bFJhCJPgH8zfPBYUVFhSoqKmJ+f/HixZoxY0brm4YvWbJEVVVVWrZsmSorKyVJtbW1nT5GUVGRJKm0tFQlJSV68803NXr06A5vu3fv3ojIb2pqSuj3AbxGlBuiHC6GhoYoTwx9AiQXfWLoE8Ni09Ao9AmQDjx/qXJn9u3bp9raWk2cODHi+okTJ2rdunVx3ccHH3zQGtrvvfee6uvrdeyxx8a8fWVlpfLz81u/Bg8e3PVfAOhhRLkhyg1RDhdRnlz0CYCuoE8MfWIYGgJIF74eHO7YsUMtLS0qLCyMuL6wsFBbt26N6z5ef/11jR49WiNHjtQFF1ygH/3oRyooKIh5+3nz5mnXrl2tX5s3b+7W7wCgZxHlhig3RDlSgT4BEsNiEy76BG2x2ATSg+cvVY5HVlZWxGXHcaKui2Xs2LF65ZVX4n6s3Nxc5ebmJnQ+wA+IcriIcsPQ0BDlqUOfAAdHnxgWm2iLRqFPgHTi62ccDhw4UL169Yra3m/fvj1qyw8EGVFuiHK4CHJDlKcGfQLEhz4x9IlhsWloFPoESDe+Hhzm5OSorKxM1dXVEddXV1dr7NixKX3scDiskpISlZeXp/RxgO4iyg1RbohyuIjy1KFPAMSLPjH0iWFoCCAdef5S5d27d2vjxo2tlzdt2qS6ujoVFBRoyJAhmjt3rqZNm6bRo0drzJgxWr58uRoaGjRz5syUnisUCikUCqmpqUn5+fkpfSwA3UOUG6LcEOVIBvoE6B4Wm3DRJ2iLxSaQfjwfHK5fv14TJkxovTx37lxJ0vTp07VixQpNnTpVjY2NWrRokbZs2aLS0lKtXr1axcXFXh0Z8A2iHC6i3DA0NER599EnQNfRJ4bFJtqiUegTIF15PjgcP368HMfp9DazZs3SrFmzeuhEQHogyg1RDhdBbojy5KBPgK6hTwx9YlhsGhqFPgHSma/f49BLvIcQ/IwoN0S5IcrhIsozH30C+B99YugTw9AQQLpjcBhDKBRSfX29ampqvD4KgA4Q5YYoN0Q5goI+gZ+x2ISLPkFbLDaB9MbgEEgzRDlcRLlhaGiIcgBeok8Mi020RaPQJ0AmYHAIpBGi3BDlcBHkhigH4CX6xNAnhsWmoVHoEyBTMDiMgfcQgt8Q5YYoN0Q5XER5sNAngD/RJ4Y+MQwNAWQSBocx8B5CgP8Q5YYoN0Q5gog+gd+w2ISLPkFbLDaBzMHgEEgDRDlcRLlhaGiIcgBeok8Mi020RaPQJ0CmYXAI+BxRbohyuAhyQ5QD8BJ9YugTw2LT0Cj0CZCJGBwCPkaUG6LcEOVwEeUA4D36xNAnhqEhgEzF4DAG3nwc8Aei3BDlhihH0NEn8AMWm3DRJ2iLxSaQmRgcxsCbj8NrRDlcRLlhaGiI8mCjT+A1+sSw2ERbNAp9AmQyBoeADxHlhiiHiyA3RDkAL9Enhj4xLDYNjUKfAJmOwSHgM0S5IcoNUQ4XUQ4A3qNPDH0CAMHB4BCA7xDlhig3bPIBwHssNuGiTw6gUVhsAkHA4BDwEaIcLqLcEOSGKAfgJfrEsNhEWzQKfQIEBYPDGPjUQvQ0otwQ5XAR5IYoR1v0CXoafWLoE8Ni09Ao9AkQJAwOY+BTC9GTiHJDlBuiHC6iHO3RJ0DPo08MfQIAwcTgEIAvEOWGKDds8gHAeyw24aJPDqBRWGwCQcPgEPAYUQ4XUW4IckOUA/ASfWJYbKItGoU+AYKIwSHgIaLcEOVwEeSGKAfgJfrE0CeGxaahUQAEFYNDwCNEuSHKDVEOF0NDAPAefWLoE7RFowDBxOAQgGeIckOUGzb5AOA9Fptw0ScH0CgMDYEgY3AIeIAoh4soNwS5IcoBeIk+MSw20RaNQp8AQZft9QH8KhwOKxwOq6WlxeujIMMQ5YYoh4sgN0Q54kGfIFXoE0OfGBabhkZBEL21dbeycvd7fQxfc/bu8foIPYpnHMYQCoVUX1+vmpoar4+CDEKUG6LcEOVwMTREvOgTIHXoE0OfoC0aBQCDQwA9iig3RLlhkw8A3mOxCUSjURgaAjAMDoEeQpTDxdDQEOSGKAfgJfrEsNg0NIqhUegTAAcwOAR6AFFuiHK4CHJDlAPwEn1i6BPD0NDQKAAQicEhkGJEuSHKDVEOF0NDAPAefWLoE7RFowBoi8EhgJQjyg1RbtjkA4D3WGwC0WgUhoYAojE4BFKIKIeLoaEhyA1RDsBL9IlhsWloFEOj0CcAOsbgEEgRotwQ5XAR5IYoB+Al+sTQJ4ahIQDgYBgcxhAOh1VSUqLy8nKvj4I0RJQbotwQ5XAxNER30SdA99Enhj45gOUmjQIgNgaHMYRCIdXX16umpsbrowBpiSg3RLkhyIHkoE/QHSw2gWg0CkNDAJ1jcAgkGVEOF0NDQ5AbohyAl+gTw2LT0CiGRqFPABwcg0MgiYhyQ5TDRZAbohyAl+gTQ58YhoYAgEQwOASShCg3RLkhyuFiaAgA3qNPDH1yAMtNGgVAfBgcAkgaotwQ5YYgBwDvsdgEotEoDA0BxI/BIZAERDlcDA0NQW6IcgBeok8Mi01DoxgahT4BkBgGh0A3EeWGKIeLIDdEOQAv0SeGPjEMDQEAXcXgEOgGotwQ5YYoh4uhIQB4jz4x9MkBLDdpFACJY3AIoFuIckOUG4IcALzHYhOIRqMwNATQNQwOgS4iyuFiaGgIckOUA/ASfWJYbBoaxdAo9AmArmNwCHQBUW6IcrgIckOUA/ASfWLoE8PQEACQDAwOgQQR5YYoN0Q5XAwNAcB79ImhTw5guUmjAOgeBocAEkaUG6LcEOQA4D0Wm0A0GoWhIYDuY3AYQzgcVklJicrLy70+CnyEKIeLoaEhyA1Rjp5Cn6Aj9IlhsWloFLjoEwDJwOAwhlAopPr6etXU1Hh9FPgEUW6IcrgYGhqi3HyOvx96BH2C9ugTQ58YhoZmeP/edAok0SdAMjA4BOJAlBui3BDlcDE0NIOOOMzrIwAIMPrE0CeGgaGhUQAkC4NDAHEhyg1RbohyuBgaAt5hsQkXfWLoE7RFowDJweAQOAiiHC6i3BDlhk0+AC/RJ4bFJhCNRmFoCCQTg0OgE0S5IcrhYmhoCHJDlAPeoE8MfWJYbBoaxdAo9AmQbAwOgRiIckOUG6IcLoLcEOUAvESfGPrEMDQEgNRhcAggJqLcEOWGKIeLoSHgHRabQCT65ACWmzQKkAoMDoEOEOVwMTQ0RLkhyAF4iT4xLDYNjYK2aBSGhkCqMDgE2iHKDVEOF0NDQ5AbohyAl+gTw9DQ0Chw0SdA6jA4BNpgaGiIckOUw8XQ0BDlgHdoFLjoE8PQ8AA6BUAqMTgEEIGhoSHKDVEOF0NDwDsMDQ2NAhd9cgBDQxoFSDUGh8D/IcrhYmhoiHJDkAPwEn1iGBoaGgWIxNAQSD0Gh4CIchdRDhdDQ8PQ0BDlALxEnxiGhoZGOYBOAdATGBwi8BgaGqLcEOVwEeOGoSHgHRoFLvrEMDQ8gE6hUYCewuAQAEPD/0OUG6IcLoIc8A5DQ0OjwEWfoC0aBeg5DA4RaEQ5XAwNDVFu2OID8BJ9YhgaGhoF7QW9UxgaAj0rEIPDTZs2acKECSopKdEpp5yi5uZmr48EHyDKDVEOF0NDE/QYdxHlqUefALHRJ4ahoaFRDqBTAPS0bK8P0BOuuuoq3XHHHRo3bpx27typ3Nxcr48E+AJRbohyuIhxw9CwZ9An6AiLTbjoE8PQEG3RKEDPy/jB4WuvvaZDDz1U48aNkyQVFBR4fCL4AVEOF1FuiHK4CPKeQZ+gI/SJYbEJdCzoC04aBfCG5y9VXrNmjaZMmaKioiJlZWVp1apVUbdZunSphg0bpry8PJWVlWnt2rVx3/9bb72lvn376sILL9Rpp52mu+66K4mnRzoiyg1RDhdDQxP0GEck+gQ9jT4x9IlhsWlolAOC3ikMDQHveP6Mw+bmZo0cOVJXX321Lrvssqjvr1y5UnPmzNHSpUt1xhln6P7771dFRYXq6+s1ZMgQSVJZWZn27t0b9bNPPfWUPv30U61du1Z1dXUaNGiQvvSlL6m8vFznnXdeyn83+A9RbohyQ5TDFfQYdxHlB9AnQM+jTwx9YhgaHkCnAPCS54PDiooKVVRUxPz+4sWLNWPGDF177bWSpCVLlqiqqkrLli1TZWWlJKm2tjbmzx9zzDEqLy/X4MGDJUmTJ09WXV1dzDDfu3dvROQ3NTUl/DsBfkaUG6LcEOVwMTSMRJ+gJ7HYhIs+MfQJ2qJRAG95/lLlzuzbt0+1tbWaOHFixPUTJ07UunXr4rqP8vJybdu2TR988IH279+vNWvW6KSTTop5+8rKSuXn57d+uUGP9EeUw0WUG6LcsMVHougTJBN9YlhsAh0LeqcwNAS85+vB4Y4dO9TS0qLCwsKI6wsLC7V169a47iM7O1t33XWXzjrrLI0YMUInnHCCLrjggpi3nzdvnnbt2tX6tXnz5m79DvAHotwQ5XAxNDRBj3EXUZ4Y+gTJQp8Y+sSw2DQ0ygFB7xT6BPAHz1+qHI+srKyIy47jRF3XmYO93Kit3Nxc5ebmJnQ++BtRbohyQ5TDFfQYdxHlXUefAN1Hnxj6xDA0BAD/8fUzDgcOHKhevXpFbe+3b98eteUHEBtRbohyQ5TDxdCwa+gTJAOLTbjoE0OfRAr6gpNGAfzD14PDnJwclZWVqbq6OuL66upqjR07NqWPHQ6HVVJSovLy8pQ+DlKLKIeLKDdEuQl6jKN76BN0F31iWGwCHQt6pzA0BBL3xhtvaNSoUa1fvXv31qpVq5Jy356/VHn37t3auHFj6+VNmzaprq5OBQUFGjJkiObOnatp06Zp9OjRGjNmjJYvX66GhgbNnDkzpecKhUIKhUJqampSfn5+Sh8LqUGUG6IcLoaGJugx7iLKO0efIFXoE0OfGBabhkYBgO4ZPny46urqJFnHDh06VOedd15S7tvzweH69es1YcKE1stz586VJE2fPl0rVqzQ1KlT1djYqEWLFmnLli0qLS3V6tWrVVxc7NWRkQaIckOUG6IcLoaGhqHhwdEnQOrQJ4Y+MQwNIwW9VWgUoPsef/xxnXvuuerTJzn/O+P5S5XHjx8vx3GivlasWNF6m1mzZumdd97R3r17VVtbq7POOsu7AwNpgig3RLkhyuEiyONDnyAVWGzCRZ8Y+iQSQ0MaBZlrzZo1mjJlioqKipSVldXhy4iXLl2qYcOGKS8vT2VlZVq7dm2XHuuRRx7R1KlTu3niAzwfHPoV7yGUvohyuIhyQ5SboMc4MgN9kr7oE8NiE0BHGBoi0zU3N2vkyJG69957O/z+ypUrNWfOHM2fP18bNmzQuHHjVFFRoYaGhtbblJWVqbS0NOrr/fffb71NU1OTnn/+eU2ePDlpZ89yHMdJ2r1lIPc9hLL/5WFl5fIvM78jyg1RbhgcMjR0MTQ0qYzyjz5q0oklQ7Rr1y7169cvZY8DQ5+kF/rE0CeGPjE0SqSgt0qqGoU+iR9tET9n7x59tuxr2rx5c8TfV7m5ucrNzT3oz2dlZek3v/mNLr744tbrTj/9dJ122mlatmxZ63UnnXSSLr74YlVWVsZ9toceekhVVVX6xS9+EffPHIzn73EIJAtRbohyQ5TDFfQQd7HJB+Al+sTQJ4ahYaSgtwqN4i/OB3+XcoL99+TBOPs+liQNHjw44vrbbrtNCxYsSPj+9u3bp9raWt18880R10+cOFHr1q1L6L4eeeQRXXfddQmfoTMMDoEMQpQbotwQ5XAR5IB3WGzCRZ8Y+gRt0ShIZx0947ArduzYoZaWFhUWFkZcX1hYqK1bt8Z9P7t27dKLL76o//7v/+7SOWJhcBhDOBxWOBxWS0uL10dBHIhyuIhyQ5SboG/wkXnok/RCnxgWm0BsQW4VhoZId/369UvqS+CzsrIiLjuOE3VdZ/Lz87Vt27akncfFh6PEEAqFVF9fr5qaGq+PgoMgyg1RDhdDQxPkEG+LKM8s9En6oE8MfWJYbBoaJRKtAkCSBg4cqF69ekU9u3D79u1Rz0L0AoNDpDWi3BDlhiiHixA3DA0BeIk+MfSJYWiItmgU4ICcnByVlZWpuro64vrq6mqNHTvWo1MdwEuVgTRHlBui3BDlcBHkgHdYbMJFnxj6JFqQl5w0CoJo9+7d2rhxY+vlTZs2qa6uTgUFBRoyZIjmzp2radOmafTo0RozZoyWL1+uhoYGzZw508NTGwaHSFtEOVxEuSHKTZBDHID36BPDYhOILcitwtAQQbV+/XpNmDCh9fLcuXMlSdOnT9eKFSs0depUNTY2atGiRdqyZYtKS0u1evVqFRcXe3XkVgwOY+DNx/2NKDdEOVwMDU2QQ7wtojxz0Sf+Rp8Y+sSw2DQ0CgBI48ePl+M4nd5m1qxZmjVrVg+dKH68x2EMvPm4fxHlhig3RDlcDA0NQ8PMRp/A7+gTQ58YhobRgtwrNAqQnhgcAmmIKDdEuSHK4SLIAe+w2ISLPkEsDA0BpCMGh0grRDlcRLlhaGiCHOIAvEefGBabaItGgYuhIZDeGBwibRDlhiiHiyA3DA0NUQ54gz4x9IlhsWlolGj0CoB0xeAQaYEoN0S5IcrhIsINQ0MAXqJPDH1iGBpGC3Kv0ChA+mNwGEM4HFZJSYnKy8u9PgogiSh3EeWGKIeLIA8W+sRfWGzCRZ8A0WgUIDMwOIyBTy30D6IcLqLcMDQ0Qd7eI7joE/+gTwyLTbRFo0SjVwCkOwaH8DWi3BDlcBHkhgg3bPIBb9Anhj4xLDYNjRItyL1CowCZg8EhfIsoN0S5IcrhCnKEt0WQA/ASfWLoE8PQEG3RKEBmYXAI+BhRbohyQ5TDRZAD3mGxCRd9gs4EddFJowCZh8EhfIkoh4soNwwNTVAjHIA/0CeGxSbaolGi0SsAMgmDQ/gOUW6IcrgIckOEGzb5gDfoE0OfGBabhkZBWzQKkJkYHMJXiHJDlBuiHC6GhoYgB+Al+sTQJ4ahYceC2iw0CpC5GBzGEA6HVVJSovLycq+PgoAhyg1RbohyuAhySPSJV1hswkWfoDMMDQFkIgaHMYRCIdXX16umpsbrowQGUQ4XUW4YGpqgRjjQEfqk59EnhsUm2qJRotErADIVg0P4AlFuiHK4CHJDhBs2+YA36BNDnxgWm4ZGQVs0CpD5GBzCc0S5IcoNUQ4XQ0NDkAPwEn1i6BPD0LBjQW0WGgUIBgaHgA8Q5YYoN0Q5XAQ54B0Wm3DRJ+gMQ0MAmY7BITxFlMNFlBuGhiaoEQ7AH+gTw2ITbdEoABBMDA7hGaLcEOVwEeSGoaFhkw94gz4x9IlhsWlolI4FtVloFCBYGBzCE0S5IcoNUQ5XUAO8PYIcgJfoE0OfoDNBbRYaBQgeBoeAR4hyQ5QbNvlwEeSAd1hswkWfHECjAECwMTiMIRwOq6SkROXl5V4fJeMQ5XAR5YYgN0Hd3AOJoE9Shz4xLDbRFo3SsaA2C8tNIJgYHMYQCoVUX1+vmpoar4+SUYhyQ5TDRZCboAZ4ewQ5DoY+SQ36xNAnhsWmoVE6FtRmoVGA4GJwiB5DlBui3BDlcAU1wNsjyAF4iT4x9AkQjUYBgo3BIdCDiHJDlBs2+XAR5IB3WGwC0WiUjrHsBBBEDA7RI4hyuBgaGoLcEOAAvESfGBabhkYxNErHgtosLDcBMDhEyhHlhiiHiyA3QQ3w9ghywBv0iaFPDENDQ6OgLRoFgMTgEClGlBui3BDlcDE0NAQ5AC/RJ4Y+wcEEsVtoFAAuBodAihHlhig3bPLhIsgB77DYBKLRKB0L4tAQANpicIiUIcrhYmhoCHJDgAPwEn1iWGwaGsXQKGiL5SaAthgcIiWIckOUw0WQG4aGhiAHvEGfGPrEMDQ0NEpsQewWGgVAewwOkXREuSHKDVEOVxDjuyMEOQAv0SeGPsHBBLFbaBQAHWFwCKQAUW6IcsMmHy6CHPAOi00gGo0CADgYBodIKqIcLoaGhiA3QdzaA/AP+sSw2DQ0iqFRYgtit7DcBBALg0MkDVFuiHK4CHITxPjuCEEOeIM+MfSJYWhoaJTYgtgtNAqAzjA4jCEcDqukpETl5eVeHyUtEOWGKDdEOVxBjO+OEORIFvoEXUGfGPoEAIDEMTiMIRQKqb6+XjU1NV4fBWmCKDdEuWGTDxdDQyQTfZIYFptANBoltiAuPOkUAAfD4BDdRpTDxdDQEOQmiPENwD/oE8Ni09AohkaJLYjdwtAQQDwYHKJbiHJDlMNFkJsgxndHCHLAG/SJoU8MQ0NDo6AtGgVAvBgcosuIckOUG6IcLoaGhiAH4CX6xNAniAftAgCxMTgEuoEoN0S5YZMPF0NDwDssNoFoNEpsQRwa0ikAEsHgEF1ClMPF0NAQ5CaI8Q3AP+gTw2LT0CiGRkFbDA0BJIrBIRJGlBuiHC6C3DA0NAQ54A36xNAnhqEh4hG0dqFRAHQFg0MkhCg3RLkhyuEKWnjHQpAD8BJ9YuiTA1huxka7AEB8GBwCCSLKDVFuCHK4GBoC3mGxCUSjUWIL4tCQTgHQVQwOETeiHC6GhoYgN0GMbwD+QZ8YFpuGRjE0CtpiaAigOxgcIi5EuSHK4SLIDUNDQ5AD3qBPDH1iGBoiHkFrFxoFQHdle30A+B9RbohyQ5TDFbTwjoUgN/0Pz/P6CEAg0SeGPjEsNg2NAnSds+0tKTvH62P4mvPZPq+P0KN4xiEQB6LcEOWGKIeLoaE5oh9DQ/Q8Fptw0SeGPjEMDdEWi02g+xgcolNEOVxEuSHKDVEOF0NDeIE+MSw2AQBAqjE4RExEuSHK4WJoaBgaGp5tCHiDPjH0iWGxaWgUQ6OgLZabQHIwOESHiHJDlBuiHC6C3DA0NAQ54A36xNAnhqGhoVGiBblXaBQgeTJ+cPjGG29o1KhRrV+9e/fWqlWrvD4W0gBRbohyQ5TDFeQIb4sg7x76pGtYbAKR6BMAQKpl/KcqDx8+XHV1dZKk3bt3a+jQoTrvvPO8PZTPEeVwMTQ0RLlhkw8XQ8Puo08SR58YFpuGRkFbNAraolOA5Mr4Zxy29fjjj+vcc89Vnz6ERixEuSHK4WJoaAhyw7MNkQr0CeJFnxiGhoZGMTRKx4LaLAwNgeTzfHC4Zs0aTZkyRUVFRcrKyurwZTpLly7VsGHDlJeXp7KyMq1du7ZLj/XII49o6tSp3Txx5mJoaIhyQ5TDRZCboAZ4e0EJcvrEX2gUuOgTw9AQANBTPB8cNjc3a+TIkbr33ns7/P7KlSs1Z84czZ8/Xxs2bNC4ceNUUVGhhoaG1tuUlZWptLQ06uv9999vvU1TU5Oef/55TZ48OeW/E9IXQ0NDlBuiHC6GhiYoQ0OJPvEThoaGRoGLPjmA5WbHgtotQeoUoCd5/h6HFRUVqqioiPn9xYsXa8aMGbr22mslSUuWLFFVVZWWLVumyspKSVJtbe1BH+e3v/2tJk2apLy8zv9lsnfvXu3du7f1clNTUzy/RtojyuFiaGiIckOQwxW0GKdP/IE+MQwNDY2CtmgUtBW0TgF6kufPOOzMvn37VFtbq4kTJ0ZcP3HiRK1bty6h+4r3ZUCVlZXKz89v/Ro8eHBCj5OOiHJDlMPF0NAQ5CaoW3vERp+gJ9EnhqGhoVFwMHQLgGTz9eBwx44damlpUWFhYcT1hYWF2rp1a9z3s2vXLr344ouaNGnSQW87b9487dq1q/Vr8+bNCZ87nTA0NES5IcrhYmhoiG/DFj8SfdIzaBS46BPD0PAAOgVt0SlAann+UuV4ZGVlRVx2HCfqus7k5+dr27Ztcd02NzdXubm5CZ0P6Y2hoSHKDVEOF0NDQ4zHRp+kDkNDQ6PARZ8cwNAwtiC2C50CpJ6vn3E4cOBA9erVK2p7v3379qgtPxJHlMPF0NAQ5YYgh4sY7xh9klr0iWFoaGgUAAC85evBYU5OjsrKylRdXR1xfXV1tcaOHZvSxw6HwyopKVF5eXlKH8crRLkhyuFiaGgYGpogbuwRP/oEqUafGIaGhkY5gE5BWyw4gZ7h+UuVd+/erY0bN7Ze3rRpk+rq6lRQUKAhQ4Zo7ty5mjZtmkaPHq0xY8Zo+fLlamho0MyZM1N6rlAopFAopKamJuXn56f0seANotwQ5XAR44ahoQl6jNMn3mCxCRd9YhgaHkCndC5o/RL0TgF6kueDw/Xr12vChAmtl+fOnStJmj59ulasWKGpU6eqsbFRixYt0pYtW1RaWqrVq1eruLjYqyOnPaIcLqLcEOVwBS26YyHG6RMv0CeGxSZc9MkBDA0BwDueDw7Hjx8vx3E6vc2sWbM0a9asHjpRZiPKDVEOF1FuCHK4GBoa+qRn0SeGPjEsNoHEBG3xSasAPcvX73HopUx8DyGi3BDlhiiHi6GhCVp0Iz1lYp/A0CeGPjEsNg+gU9AWQ0Og5zE4jCEUCqm+vl41NTVeHwVJRJQbotwQ5XAxNDTEuP9lYp+w2ISLPjH0yQEMDQ+OhgGQagwOA4Ioh4soN0S5IcjhYmgIL9AnhsUmABwcrQJ4g8FhABDlhiiHi6GhYWho2NQD3qBPDH1iWGwaGuUAOuXggtQwDA0B7zA4jCFT3kOIKDdEuSHK4SLGTZCCuzPEePrIlD6BoU8MfWIYGh5ApwCAfzA4jCET30MoqIhyQ5QbohwuhoaGoWF6yZQ+YbEJF31i6BMgNloF8BaDwwxGlMNFlBui3LDFh4sQhxfoE8NiE+gYnRKfoCxAaRXAewwOMxRRbohyuBgaGmLcBCW2Ab+hTwx9YlhsGhrlADoFAPyHwWEGIsoNUW6IcriIccPQ0LDBB7xBnxj6xDA0RFcEpWVoFcAfGBzGwJuPpzei3BDlhiiHKyihfTCEePpK5z5hsQkXfWLok0gsONEWrQL4B4PDGNL1zceJcriIckOUG2IcLkI8vdEn6Y3FJtAxOiV+LEEB9DQGhxmEKDdEOVwMDQ0xbghtwBv0iaFPDItNQ6MAsbHkBPyFwWGGIMoNUW6IcrgYGhqGhoYQB7xBnxj6xDA0jESrxC8IPUOrAP7D4BAZgyg3RLkhyuEKQmTHgxCHF1hswkWfGPokEkNDAPA/BocZgCiHiyg3RLkhxuFiaAgv0CeGxSbQMToF7dErgD8xOIwhXT61kCg3RDlcDA0NMW54tiEyDX2SXugTw2LT0CjojkxvGoaGgH8xOIwhHT61kCg3RLkhyuFiaGgyPbDjRYhnlnToExj6xNAnhqFhJFoFANIHg0OkNaLcEOWGKIeLoaFhaAgvsNiEiz4x9EkkhoaJy/SuoVcAf2NwmKaIcriIckOUG2IcLiIcXqBPDItNAIgPvQL4H4PDNESUG6IcLoaGhqGhyfStPOBX9ImhTwyLTUOjRKJVEkfXAPAag8M0Q5QbotwQ5XAR4oa4NmzvAW/QJ4Y+MQwNI9EqaI9eAdIDg0OkHaLcEOWGKIeLoaEhwuEFFptw0SdA8mRy29ArQPpgcJhGiHK4iHLD0NCwwYeLCIcX6BPDYhNt0SiRaBUASF8MDmMIh8MqKSlReXm510eRRJS7iHK4CHJDiJtM3sgDbdEn/kSfGBabhkaJRKugPRadQHphcBhDKBRSfX29ampqvD4KUf5/iHJDlMNFiBuGhoYIDwY/9QkMfWLoE8PQEMmSqX1DrwDph8Eh0gJRbohyQ5TDlalRnSgiHF5gsQkXfYJYWHICQPpjcOhzRDlcRLlhaGgIcbgYGsIL9IlhsYm2aJRItErXZepilGYB0hODQx8jyg1RDhdBbghxk6lRDfgdfWLoE8Ni09AoQOcYGgLpi8GhTxHlhig3RDlcDA0NQ0NDhAPeoE8MfWIYGkajV7qOxgHgNwwO4VtEuSHKDVEOF0FtGBrCCyw24aJPEAtDQ7RHswDpjcGhDxHlcBHlhqGhIcThIsDhBfrEsNhEWzRKJFqlezJxOUqzAOmPwaHPEOWGKIeLIDeEuMnEoAbSAX1i6BPDYtPQKAAAv9i8ebPGjx+vkpISjRgxQo8++mjE97OzszVq1CiNGjVK1157bUL3nZ3Mg2aScDiscDislpaWHntMotwQ5YYoh4uhoWFoaNjcB5sXfQJDnxj6xDA0jEavoD2aBeg52dnZWrJkiUaNGqXt27frtNNO0+TJk9Wnj/3vdv/+/VVXV9el++YZhzGEQiHV19erpqbG66MEClFuiHJDlMPF0NAQ4PCiT1hswkWfIBaGht2Xaa1DswA966ijjtKoUaMkSYMGDVJBQYF27tyZlPtmcOgTRDlcRLlhaGgIcbgIcHiBPjEsNtEWjQIASNSaNWs0ZcoUFRUVKSsrS6tWrYq6zdKlSzVs2DDl5eWprKxMa9eu7dJjrV+/Xvv379fgwYNbr2tqalJZWZnOPPNMPffccwndHy9V9gGi3BDlcBHkhqGhybQNPJAu6BNDnxgWm4ZGiUavdF+mtQ7LTiBac3OzRo4cqauvvlqXXXZZ1PdXrlypOXPmaOnSpTrjjDN0//33q6KiQvX19RoyZIgkqaysTHv37o362aeeekpFRUWSpMbGRl155ZX66U9/GnGbd955R0VFRXr11Vd1/vnn65VXXlG/fv3iOjuDQ48R5YYoN0Q5XES4ybSQ7ioCHPAGfWLoE8PQMBq9gvZolgzw2T45Xp/B7z7bJ8mexddWbm6ucnNzO/yRiooKVVRUxLzLxYsXa8aMGa0fXLJkyRJVVVVp2bJlqqyslCTV1tZ2eqy9e/fqkksu0bx58zR27NiI77mDxdLSUpWUlOjNN9/U6NGjO70/F4NDeI4oN0S5IcrhYmhoCHB4gcUmXPQJkFr0DvwiJydHRx55pLauXeH1UdJC3759I14KLEm33XabFixYkPB97du3T7W1tbr55psjrp84caLWrVsX1304jqOrrrpK55xzjqZNmxbxvQ8++ECHHXaYcnNz9d5776m+vl7HHnts3OdjcOghohwuotwwNDRs7+FiaAgv0CeGxSbaolGi0Stoj25Jb3l5edq0aZP27dvn9VHSguM4ysrKirgu1rMND2bHjh1qaWlRYWFhxPWFhYXaunVrXPfx/PPPa+XKlRoxYkTr+yc+9NBDOuWUU/T666/r+uuv1yGHHKKsrCz96Ec/UkFBQdznY3DoEaLcEOVwEeSGCDds3wFv0CeGPjEsNg2NEo1eSY5M6h2GhpkhLy9PeXn8tfRK+0FkR8PJWM4880zt37+/w++NHTtWr7zySpfPxacqe4AoN0S5IcrhIsJNJkV0dxDggDfoE0OfGIaGAIBUGzhwoHr16hX17MLt27dHPQvRCwwO4Qmi3BDlhiiHi6GhYWgIL7DYhIs+QWdYdKI9ugXonpycHJWVlam6ujri+urq6qgPOfECL1XuYUQ5XES5YWhoiHC4iG94gT4xLDbRFo0SjV5JnkxZltItQHx2796tjRs3tl7etGmT6urqVFBQoCFDhmju3LmaNm2aRo8erTFjxmj58uVqaGjQzJkzPTy1YXDYg4hyQ5TDRZAbItxkSkAD6YY+MfSJYbFpaJRo9AoAdN369es1YcKE1stz586VJE2fPl0rVqzQ1KlT1djYqEWLFmnLli0qLS3V6tWrVVxc7NWRWzE47CFEuSHKDVEOFxFuGBoatvaAN+gTQ58APSNTuoduAeI3fvx4OY7T6W1mzZqlWbNm9dCJ4sd7HKLHEOWGKDds8uHKlHjuLuIbXmCxCUSjUaKx6ER7dAsQHAwOYwiHwyopKVF5eXm374soh4uhoSHIDREOF/GNeNEnycdi09AohkaJRq8kFwtTAOmGwWEMoVBI9fX1qqmp6db9EOWGKIeLIDdEuCGegcTQJ8lFnxiGhoZGAeLDwhMIFgaHKUSUG6LcEOVwMTQ0DA0N8Q14gz4x9Ak6Q7MkVya0D90CBA+DQ6QUUW6IcsMmH65MCOdkIL7hBRabQDQaJRpDQwCAxOAwZYhyuBgaGoLcEOFwMTSEF+gTw2LT0CiGRgHiQ7sAwcTgMAWIckOUw0WQG4aGhmcbAt6gTwx9YhgaGhqlYzRL8qV7/zA0BIKLwWGSEeWGKDdEOVwEuEn3aE4W4hvwBn1i6BN0hmYBALTF4BBJR5QbotywyYeLoaFhaAgvsNgEotEo6Cnp3kC0CxBsDA6TiCiHi6GhIcgNm3u4CG94gT4xLDYNjWJolI7RLGiPdgHA4DBJiHJDlMNFkBsC3KT7ph1IV/SJoU8MQ0NDo3SMZkkNGghAumNwmAREuSHKDVEOFwFuCGbDxh7wBn1i6BMAiaJdAEgMDpEkRLkhyg2bfLgYGhrCG15gsQlEo1E6xrIzNdK5g2gXAC4Gh91ElMPF0NAQ5IYAh4vwhhfoE8Ni09AohkbpGM0CAOgMg8NuIMoNUQ4XQW4IcJPOW3YgndEnhj4xDA0NjdIxmgUdYekJoC0Gh11ElBui3BDlcBHghqGhIbwBb9Anhj4BvJOuLUS7AGiPwSG6jCg3RLlhkw9XuoZyshHe8AKLTSAajdIxlp0AgHgwOOwCohwuhoaGIDcEOFwMDeEF+sSw2DQ0iqFROkazpFa6LlHpFwAdCcTg8Ic//KFOPvlklZSUaPbs2XIcp8v3RZQbohwugtwQ4Ob/t3fnQVHf9//An8uNEVAO+YkcMd6rHIKkHgFLdCDQSDRH+81kFGsb66SZjLWMNePY1raEiTHjJFGSGtukdtqJmgxphqSxJOEwbFRCwVhENBbEoGJIUA7Dua/fHwxbcBdY2JN9Px8zzLCfz2d3X08+sj5577JM1KJM5AjsJ9bHftKPi4ZENFZcNCSi4bj8wuHXX3+N/fv3o6KiAmfPnkVFRQVOnjw5rttiKe/HUt6PpZwGcNGwHxcN+7F4kzms2U+oH/tJP/aT/+GTm6axt9gW+xARuRoPRw9gD729vejs7AQA9PT0YNq0aQ6eaOJiKe/HUt6PhZwGsCT346IhjYW1+gmf2CQyxo5iGhcNyRT2FyIaicNfcVhaWoo1a9YgLCwMGo0G7777rtExeXl5mDlzJnx8fJCQkIATJ06YffshISHIzs5GZGQkwsLCsHr1asyaNWvMc875f1wwo35cNOzHQt6PBZwGsHS7FvaTiYVPbPZjR+nHjkKOMhGfSGV/IaLROHzhsKOjA7Gxsdi/f7/J/UeOHMHWrVuxc+dOVFZWIikpCenp6WhoaDAck5CQgEWLFhl9XL16FS0tLSgoKEB9fT0aGxuh0+lQWlpqr3guhaWcBrCQ9+OiYb+JWJKJRsN+MnGwn/TjoiGNhr2FiIjGQyOWvBO3lWk0GuTn52Pt2rWGbd/73vcQHx+PV1991bBtwYIFWLt2LXJzc0e9zWPHjqG4uBgHDhwAALzwwgsQEWzfvt3k8V1dXejq6jJcvnXrFiIjIzH32bfg7qPuD8fRISyjAKCdyq8DAMwJ4DOTd3PxFAAQwq8DAGCKH78n2traMEs7Czdv3kRAQICjx7Eq9hPnxo7CfjIYO4pp7C22NxE7kQr9xZX7CZG9OPV7HHZ3d6OiogI7duwYsj01NRU6nc6s24iIiIBOp0NnZyc8PT1RXFyMzZs3D3t8bm4udu/ebbT9Qu7/jW14F1Pj6AGIiGhC+Oabb1y+mLOfOBd2FCIiGo0K/YTIVpx64bC5uRl9fX0IDQ0dsj00NBTXr1836zaWLl2KjIwMLF68GG5ubli1ahUyMzOHPf7ZZ5/Ftm3bDJdv3ryJqKgoNDQ0WPRAk5iYiPLycouOG26fqe2Dt925/859H3/8MSIiInDlyhX4+/ubnWms85t7nLk5R8t15+etra1Wyclzaf5xKpzL4fabs22knDyXY8Nzaf5xtjqXA6+ACwwMHFOmiUjFfjLasbb43nG2xwhrfO8MvuyojKMdy3M59nM58PlEeLznuRz9Ms/l2Dnzz0cfffSRMv2EyFaceuFwgEajGXJZRIy2jSQnJwc5OTlmHevt7Q1vb2+j7QEBARY9mLq7u5t1/ZGOG26fqe2Dt925f7h9/v7+Fv/HaM+c5ua68zhLc/Jcmn+cCudyuP3mbDMnJ8+leXguzT/O1ufSzc3hb59sNyr1k9GOteX3DuAcjxHW+N4ZfNlRGUc7ludy7Ofyzs+d+fGe53L0yzyXY+fMPx8NPLmmUj8hsjan/u4JDg6Gu7u70bP3N27cMHqW39n9/Oc/t/i44faZ2j542537R9pnKXvmNDfXRM545zaeS+fLONx+c7ZNpJw8lyNvm0g5nf1cTgQq9pPRjuX3ztgvOyrjaMfyXI7v8kTJyXM5+uWJklPVc3nnNnueSyJVTYg/jpKQkIC8vDzDNq1Wi4ceesisNx+3VGtrKwICAnDr1i2Ln21yVipkBNTIqUJGQI2cKmQE1MipQkbAtXOynziOCjlVyAiokVOFjIAaOVXICKiRU4WMRLbm8F9Vbm9vx5dffmm4XFdXh6qqKgQGBiIyMhLbtm3D+vXrsWTJEixbtgwHDx5EQ0MDtmzZYpf5vL298Zvf/Mbkrwe5ChUyAmrkVCEjoEZOFTICauRUISPgejnZT5yDCjlVyAiokVOFjIAaOVXICKiRU4WMRLbm8FccFhcXIyUlxWh7VlYW3nzzTQBAXl4e9uzZg2vXrmHRokXYt28fkpOT7TwpERERqYL9hIiIiIjICRYOiYiIiIiIiIiIyPk49R9HISIiIiIiIiIiIsfgwiEREREREREREREZ4cIhERERERERERERGeHCIRERERERERERERnhwqEV7du3DwsXLoRWq8UzzzwDV/y7M7W1tYiLizN8+Pr64t1333X0WFZXV1eHlJQUaLVaREdHo6Ojw9Ej2YSHh4fhXP70pz919Dg2c/v2bURFRSE7O9vRo9hEW1sbEhMTERcXh+joaLz++uuOHsnqrly5gu9///vQarWIiYnBsWPHHD2Szaxbtw5Tp07Fo48+6uhRrKagoADz5s3DnDlzcOjQIUePoxz2E9fBfuJa2E9cgyodxRX7CcCOQmQO/lVlK/n666+xdOlSVFdXw9PTE8nJydi7dy+WLVvm6NFspr29HXfffTcuX76Mu+66y9HjWNXKlSvxhz/8AUlJSfj222/h7+8PDw8PR49ldcHBwWhubnb0GDa3c+dOXLx4EZGRkdi7d6+jx7G6vr4+dHV1YdKkSbh9+zYWLVqE8vJyBAUFOXo0q7l27RqampoQFxeHGzduID4+HrW1tS732AMARUVFaG9vx1/+8he8/fbbjh7HYr29vdBqtSgqKoK/vz/i4+Nx6tQpBAYGOno0JbCfuNZjBPuJa2E/cQ2qdBRX6ycAOwqRufiKQyvq7e1FZ2cnenp60NPTg2nTpjl6JJt67733sGrVKpf7T3Hgh6ukpCQAQGBgoEuWclVcvHgR58+fR0ZGhqNHsRl3d3dMmjQJANDZ2Ym+vj6Xe0XR9OnTERcXBwCYNm0aAgMD8e233zp2KBtJSUmBn5+fo8ewmtOnT2PhwoWYMWMG/Pz8kJGRgePHjzt6LKWwn7gG9hPXwn7iOlTpKK7WTwB2FCJzKbNwWFpaijVr1iAsLAwajcbkr6/k5eVh5syZ8PHxQUJCAk6cOGH27YeEhCA7OxuRkZEICwvD6tWrMWvWLCsmMI+tcw529OhR/OhHP7Jw4rGzdcaLFy9i8uTJyMzMRHx8PJ577jkrTm8+e5zL1tZWJCQk4L777kNJSYmVJjefPTJmZ2cjNzfXShOPjz1y3rx5E7GxsQgPD8f27dsRHBxspenNY8/Hns8//xx6vR4REREWTj129szpLCzNfPXqVcyYMcNwOTw8HI2NjfYYfUJgP/kf9pORsZ/YD/vJ/0z0fgKo0VFU7CcAOwqRvSizcNjR0YHY2Fjs37/f5P4jR45g69at2LlzJyorK5GUlIT09HQ0NDQYjklISMCiRYuMPq5evYqWlhYUFBSgvr4ejY2N0Ol0KC0ttVc8A1vnHNDa2oqysjKHPEtq64w9PT04ceIEDhw4gM8++wyFhYUoLCy0VzwDe5zL+vp6VFRU4LXXXsOGDRvQ2tpql2wDbJ3xH//4B+bOnYu5c+faK5JJ9jiXU6ZMwZkzZ1BXV4e///3vaGpqsku2AfZ67Pnmm2+wYcMGHDx40OaZTLFXTmdiaWZTry7RaDQ2nXkiYT/px37Sj/2E/cSeVOgngBodRcV+ArCjENmNKAiA5OfnD9l27733ypYtW4Zsmz9/vuzYscOs2zx69Kg89dRThst79uyR559/3uJZLWGLnAMOHz4sTzzxhKUjWswWGXU6naSlpRku79mzR/bs2WPxrJaw5bkc8MADD0h5efl4R7SYLTLu2LFDwsPDJSoqSoKCgsTf3192795trZHHxR7ncsuWLXL06NHxjmgxW2Xs7OyUpKQkOXz4sDXGtJgtz2VRUZE88sgjlo5odePJXFZWJmvXrjXse+aZZ+Rvf/ubzWediNhP2E9Gwn7iGOwnrtNPRNToKCr2ExF2FCJbUuYVhyPp7u5GRUUFUlNTh2xPTU2FTqcz6zYiIiKg0+kM799RXFyMefPm2WLccbNGzgGO+jWg0VgjY2JiIpqamtDS0gK9Xo/S0lIsWLDAFuOOmzVytrS0oKurCwDw1Vdf4dy5c7jnnnusPut4WSNjbm4urly5gvr6euzduxdPPvkkfv3rX9ti3HGzRs6mpibDqzFaW1tRWlrqVI8/1sgoIti4cSPuv/9+rF+/3hZjWsyaj7EThTmZ7733XvznP/9BY2Mj2tra8MEHHyAtLc0R40447CfsJ4OxnzgH9hPX6SeAGh1FxX4CsKMQWRPfURlAc3Mz+vr6EBoaOmR7aGgorl+/btZtLF26FBkZGVi8eDHc3NywatUqZGZm2mLccbNGTgC4desWTp8+jXfeecfaI1rMGhk9PDzw3HPPITk5GSKC1NRUPPjgg7YYd9yskbOmpgY/+9nP4ObmBo1Gg5deesmp/oKYtf69Ojtr5Pzqq6/wk5/8BCICEcHTTz+NmJgYW4w7LtbIWFZWhiNHjiAmJsbw/jV//etfER0dbe1xx81a/2bT0tLw73//Gx0dHQgPD0d+fj4SExOtPa5VmJPZw8MDL774IlJSUqDX67F9+3aX+4uatsJ+wn4yGPuJc2A/cZ1+AqjRUVTsJwA7CpE1ceFwkDvfz0BExvQeBzk5OcjJybH2WFZnac6AgACHvD/JWFiaMT09Henp6dYey+osybl8+XKcPXvWFmNZlaXncsDGjRutNJFtWJIzISEBVVVVNpjKuizJeN9990Gv19tiLKuz9N/sRPxrfqNlzszMdLrFqomE/cQ87CfOg/3EfOwnzkGFjqJiPwHYUYisgb+qDCA4OBju7u5Gz7jcuHHD6BmKiUyFnCpkBNTIqUJGQI2cKmQE1Mk5mIqZ7UmVr68KOVXICKiRU4WMAHO6Uk4VMpqiam4iW+DCIQAvLy8kJCQY/WW6wsJCLF++3EFTWZ8KOVXICKiRU4WMgBo5VcgIqJNzMBUz25MqX18VcqqQEVAjpwoZAeZ0pZwqZDRF1dxEtqDMryq3t7fjyy+/NFyuq6tDVVUVAgMDERkZiW3btmH9+vVYsmQJli1bhoMHD6KhoQFbtmxx4NRjp0JOFTICauRUISOgRk4VMgLq5BxMxcz2pMrXV4WcKmQE1MipQkaAOV0ppwoZTVE1N5Hd2evPNztaUVGRADD6yMrKMhxz4MABiYqKEi8vL4mPj5eSkhLHDTxOKuRUIaOIGjlVyCiiRk4VMoqok3MwFTPbkypfXxVyqpBRRI2cKmQUYU5XyqlCRlNUzU1kbxoREXMXGYmIiIiIiIiIiEgNfI9DIiIiIiIiIiIiMsKFQyIiIiIiIiIiIjLChUMiIiIiIiIiIiIywoVDIiIiIiIiIiIiMsKFQyIiIiIiIiIiIjLChUMiIiIiIiIiIiIywoVDIiIiIiIiIiIiMsKFQyIiIiIiIiIiIjLChUMiIgeor6+HRqNBVVWVo0chIiIiAsB+QkRExrhwSEREREREREREREa4cEhENtXX1we9Xu/oMRymu7vb0SMQERHRHdhP2E+IiMg8XDgkUszbb7+N6Oho+Pr6IigoCKtXr0ZHRwcAQK/X43e/+x3Cw8Ph7e2NuLg4fPjhh4brFhcXQ6PR4ObNm4ZtVVVV0Gg0qK+vBwC8+eabmDJlCgoKCqDVauHt7Y3Lly+jq6sL27dvR0REBLy9vTFnzhz86U9/MtzOuXPnkJGRgcmTJyM0NBTr169Hc3PzsDk2bdqEmJgYdHV1AQB6enqQkJCAJ554YsT81dXV+MEPfgB/f3/4+fkhKSkJly5dMis/AJw9exb333+/4eu3efNmtLe3G/Zv3LgRa9euRW5uLsLCwjB37lwAwOnTp7F48WL4+PhgyZIlqKysHHFOIiIilbCfsJ8QEZFz4sIhkUKuXbuGxx9/HJs2bUJNTQ2Ki4vx8MMPQ0QAAC+99BJefPFF7N27F1988QXS0tKQmZmJixcvjul+bt++jdzcXBw6dAjV1dWYNm0aNmzYgLfeegsvv/wyampq8Nprr2Hy5MmGuVauXIm4uDh8/vnn+PDDD9HU1IQf/vCHw97Hyy+/jI6ODuzYsQMAsGvXLjQ3NyMvL2/Y6zQ2NiI5ORk+Pj745JNPUFFRgU2bNqG3t9es/Ldv38YDDzyAqVOnory8HMeOHcNHH32Ep59+esj9fPzxx6ipqUFhYSEKCgrQ0dGBBx98EPPmzUNFRQV++9vfIjs7e0xfUyIiIlfFfsJ+QkRETkyISBkVFRUCQOrr603uDwsLk5ycnCHbEhMT5amnnhIRkaKiIgEgLS0thv2VlZUCQOrq6kRE5I033hAAUlVVZTimtrZWAEhhYaHJ+921a5ekpqYO2XblyhUBILW1tcPm0el04unpKbt27RIPDw8pKSkZ9lgRkWeffVZmzpwp3d3dJvePlv/gwYMydepUaW9vN+x///33xc3NTa5fvy4iIllZWRIaGipdXV2GY/74xz9KYGCgdHR0GLa9+uqrAkAqKytHnJmIiMjVsZ+wnxARkfPiKw6JFBIbG4tVq1YhOjoajz32GF5//XW0tLQAAFpbW3H16lWsWLFiyHVWrFiBmpqaMd2Pl5cXYmJiDJerqqrg7u6OlStXmjy+oqICRUVFmDx5suFj/vz5AGD4NR1Tli1bhuzsbPz+97/HL3/5SyQnJxv2paenG25r4cKFhjmSkpLg6elpdFvm5K+pqUFsbCzuuuuuIfv1ej1qa2sN26Kjo+Hl5WW4PHC9SZMmDZmdiIiI2E/YT4iIyJl5OHoAIrIfd3d3FBYWQqfT4V//+hdeeeUV7Ny5E6dOnUJQUBAAQKPRDLmOiBi2ubm5GbYN6OnpMbofX1/fIbfj6+s74lx6vR5r1qzB888/b7Rv+vTpI16vrKwM7u7uRr+udOjQIXz33XcAYCjio80BjJx/8OcjXW9wcR+4HhEREZnGfsJ+QkREzouvOCRSjEajwYoVK7B7925UVlbCy8sL+fn58Pf3R1hYGD799NMhx+t0OixYsAAAEBISAqD/PX8GVFVVjXqf0dHR0Ov1KCkpMbk/Pj4e1dXVuPvuuzF79uwhH3eW3MFeeOEF1NTUoKSkBMePH8cbb7xh2DdjxgzDbURFRQEAYmJicOLECZM/TJiTX6vVoqqqyvBm7QBQVlYGNzc3w5uMm6LVanHmzBnDDwoAcPLkyWGPJyIiUg37CfsJERE5KUf9jjQR2d/JkyclJydHysvL5fLly3L06FHx8vKSDz74QERE9u3bJ/7+/vLWW2/J+fPn5Ve/+pV4enrKhQsXRESku7tbIiIi5LHHHpPa2lopKCiQefPmGb2HUEBAgNF9b9y4USIiIiQ/P1/++9//SlFRkRw5ckRERBobGyUkJEQeffRROXXqlFy6dEmOHz8uP/7xj6W3t9dklsrKSvHy8pL33ntPREQOHTokfn5+cunSpWHzNzc3S1BQkDz88MNSXl4uFy5ckMOHD8v58+fNyt/R0SHTp0+XRx55RM6ePSuffPKJ3HPPPZKVlWW4j6ysLHnooYeG3G9bW5sEBwfL448/LtXV1fL+++/L7Nmz+R5CREREwn7CfkJERM6MC4dECjl37pykpaVJSEiIeHt7y9y5c+WVV14x7O/r65Pdu3fLjBkzxNPTU2JjY+Wf//znkNv49NNPJTo6Wnx8fCQpKUmOHTtmVjH/7rvv5Be/+IVMnz5dvLy8ZPbs2fLnP//ZsP/ChQuybt06mTJlivj6+sr8+fNl69atotfrTd6WVquVzZs3D9m+bt06Wb58+bBlXkTkzJkzkpqaKpMmTRI/Pz9JSkoylHlz8n/xxReSkpIiPj4+EhgYKE8++aS0tbUZ9psq5iIin332mcTGxoqXl5fExcXJO++8w2JOREQk7Cci7CdEROS8NCJ8cwsiIiIiIiIiIiIaiu9xSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERrhwSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERrhwSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERrhwSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERv4/045TXlIYiGwAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -824,6 +854,8 @@ "ax2.set_xlabel(\"source x-coord\")\n", "ax2.set_ylabel(\"source y-coord\")\n", "\n", + "ax1.set_title('2-Term Taylor Series, Order 8, Laplace')\n", + "ax2.set_title('6-Term Taylor Series, Order 8, Laplace')\n", "\n", "plt.show()" ] From c5b598bdca43e6240ed8a81017a3808f076a0fb4 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 2 Jan 2025 16:30:16 -0800 Subject: [PATCH 132/193] Debugged, now investigate k!=1 --- test/plot_taylor_recurrence.ipynb | 96 +++++++++---------------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index b8c0d7c89..e1538aef1 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -122,23 +122,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle -5.55805401702969 \\cdot 10^{-15}$" - ], - "text/plain": [ - "-5.55805401702969e-15" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "#Sanity check that recurrence is correct\n", "derivs_lap = compute_derivatives(15)\n", @@ -176,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -276,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -321,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -344,7 +330,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -381,7 +367,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -411,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ @@ -422,7 +408,6 @@ " initial_grid_subs = []\n", " initial_grid_width = len(initial_grid[0])\n", " initial_grid_length = len(initial_grid)\n", - " coord_dict = {var[1]: 1}\n", "\n", " for i_x in range(initial_grid_length):\n", " tmp = []\n", @@ -435,17 +420,17 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[[0, 0, 1.00000000000000, 0, -6.00000000000000, 0],\n", - " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000]]" + "[[0.182321556793955, 0, 0.694444444444445, 0, -2.89351851851852, 0],\n", + " [0, -0.694444444444445, 0, 2.89351851851852, 0, -40.1877572016461]]" ] }, - "execution_count": 72, + "execution_count": 74, "metadata": {}, "output_type": "execute_result" } @@ -465,7 +450,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 75, "metadata": {}, "outputs": [], "source": [ @@ -495,23 +480,23 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[[0, 0, 1.00000000000000, 0, -6.00000000000000, 0],\n", - " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000],\n", - " [0.826446280991735, 0, -4.95867768595041, 0, 99.1735537190083, 0],\n", - " [0, 4.95867768595041, 0, -99.1735537190083, 0, 4165.28925619835],\n", - " [-4.09808073219042, 0, 81.9616146438085, 0, -3442.38781503996, 0],\n", - " [0, -81.9616146438085, 0, 3442.38781503996, 0, -247851.922682877],\n", - " [67.7368716064533, 0, -2844.94860747104, 0, 204836.299737915, 0],\n", - " [0, 2844.94860747104, 0, -204836.299737915, 0, 22531992.9711706]]" + "[[0.182321556793955, 0, 0.694444444444445, 0, -2.89351851851852, 0],\n", + " [0, -0.694444444444445, 0, 2.89351851851852, 0, -40.1877572016461],\n", + " [0.694444444444445, 0, -2.89351851851852, 0, 40.1877572016461, 0],\n", + " [0, 2.89351851851852, 0, -40.1877572016461, 0, 1172.14291838134],\n", + " [-2.89351851851852, 0, 40.1877572016461, 0, -1172.14291838134, 0],\n", + " [0, -40.1877572016461, 0, 1172.14291838134, 0, -58607.1459190672],\n", + " [40.1877572016461, 0, -1172.14291838134, 0, 58607.1459190672, 0],\n", + " [0, 1172.14291838134, 0, -58607.1459190672, 0, 4476934.75770653]]" ] }, - "execution_count": 66, + "execution_count": 76, "metadata": {}, "output_type": "execute_result" } @@ -520,33 +505,6 @@ "extend_grid(initial_grid_subs_laplace, get_taylor_recurrence(laplace2d), coord_dict, 8, 2)" ] }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[0, 0, 1.00000000000000, 0, -6.00000000000000, 0],\n", - " [0, -1.00000000000000, 0, 6.00000000000000, 0, -120.000000000000],\n", - " [1.00000000000000, 0, -6.00000000000000, 0, 120.000000000000, 0],\n", - " [0, 6.00000000000000, 0, -120.000000000000, 0, 5040.00000000000],\n", - " [-6.00000000000000, 0, 120.000000000000, 0, -5040.00000000000, 0],\n", - " [0, -120.000000000000, 0, 5040.00000000000, 0, -362880.000000000],\n", - " [120.000000000000, 0, -5040.00000000000, 0, 362880.000000000, 0],\n", - " [0, 5040.00000000000, 0, -362880.000000000, 0, 39916800.0000000]]" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "create_subs_grid(6, 8, derivs_lap, coord_dict)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -556,7 +514,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -595,7 +553,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -731,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -818,7 +776,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": {}, "outputs": [ { From 56041c1a8eb54fa08939c0b6231f5e089dc15d81 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 2 Jan 2025 19:08:43 -0800 Subject: [PATCH 133/193] Improve naming --- sumpy/recurrence.py | 2 + test/plot_taylor_recurrence.ipynb | 76 +++++++++++++++++-------------- 2 files changed, 43 insertions(+), 35 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index df0c8811a..bd35693fc 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -394,6 +394,8 @@ def get_shifted_recurrence_exp_from_pde(pde: LinearPDESystemOperator) -> sp.Expr r""" A function that "shifts" the recurrence so it's center is placed at the origin and source is the input for the recurrence generated. + Outputs an expression that evaluates to 0 rather than s(n) in terms + of s(n-1), etc. :arg recurrence: a recurrence relation in :math:`s(n)` """ diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index e1538aef1..d9a279d80 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -122,9 +122,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle -1.55431223447522 \\cdot 10^{-15}$" + ], + "text/plain": [ + "-1.55431223447522e-15" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "#Sanity check that recurrence is correct\n", "derivs_lap = compute_derivatives(15)\n", @@ -162,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -196,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -262,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -307,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -330,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -367,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -397,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -420,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -430,7 +444,7 @@ " [0, -0.694444444444445, 0, 2.89351851851852, 0, -40.1877572016461]]" ] }, - "execution_count": 74, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -450,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -480,7 +494,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -496,7 +510,7 @@ " [0, 1172.14291838134, 0, -58607.1459190672, 0, 4476934.75770653]]" ] }, - "execution_count": 76, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -514,7 +528,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -553,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -689,7 +703,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -701,7 +715,7 @@ "0.0873119521523848" ] }, - "execution_count": 59, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -713,19 +727,19 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 0.0177032219793687$" + "$\\displaystyle 2.26227346778715 \\cdot 10^{-14}$" ], "text/plain": [ - "0.0177032219793687" + "2.26227346778715e-14" ] }, - "execution_count": 62, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -736,7 +750,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -758,17 +772,9 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "BOMB\n" - ] - } - ], + "outputs": [], "source": [ "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 8, laplace2d, derivs_lap, 2, 2)\n", "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 6, 2)" @@ -776,12 +782,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACju0lEQVR4nOzde3xU9Z3/8XckJkGQYKBEoxDwRo0R0JBaUBR0hQbFe6WXRVSssow/itS2UlYFvMRdW0q3DihtV6qtW7RrqbXUGKsrVGoNkVg1rkpFg5VLCUokKGg4vz8+e0ImkwkzyUzOmTmv5+ORx+5MJjPf4KUvP5+5ZDmO4wgAAAAAAAAA2jjE6wMAAAAAAAAA8B8GhwAAAAAAAACiMDgEAAAAAAAAEIXBIQAAAAAAAIAoDA4BAAAAAAAARGFwCAAAAAAAACAKg0MAAAAAAAAAURgcAgAAAAAAAIjC4BAAAAAAAABAFAaHSIpnnnlG11xzjT7/+c+rT58+Ovroo3XRRReptra2058bP368srKyDvq1YMGCnvlF4hTPmbOysvQ///M/SXvM8ePHa/z48Um7v858+umnuv/++1VeXq6CggIddthhKi4u1kUXXaTf/OY3SX88P/01dhxHDz/8sM455xwdccQRys3N1bHHHqtQKKTNmzd3+/7feecdZWVlacWKFd0/bBy2bt2qG264Qccee6x69+6t4uJizZgxQw0NDV2+z6FDh+qCCy5I4inj05P/DADILH/60580efJkHXHEEerdu7dOOOEE3X777TFvT5/Ejz7pGfTJwdEnAJAa2V4fAJlh2bJlamxs1De/+U2VlJToH//4h37wgx/oi1/8oqqqqnTOOed0+HNLly5VU1NT6+Xf//73uuOOO/TAAw/o85//fOv1xxxzTMp/h0T8+c9/jrh8++2369lnn9UzzzwTcX1JSUlPHitppk2bpscee0xz5szRwoULlZubq7fffltPPvmkqqqqdMkllyT18f785z/74q/x/v379bWvfU0rV67UV7/6Va1YsUL5+fn661//qnvuuUcPP/ywnnjiCZ1xxhleHzUue/fu1VlnnaUPPvhACxcuVElJid544w3ddtttqqqq0uuvv67DDz/c62MCQEo9/PDDmjZtmq644go9+OCD6tu3r/72t7/p/fffj/kz9Ik/0Sf0CQDAAw6QBNu2bYu67qOPPnIKCwudc889N+77eeCBBxxJTk1NTVLO1dzcnJT7OZjp06c7ffr0SeljnH322c7ZZ5+dlPvav3+/s2fPng6/9/bbbzuSnFtvvbXD77e0tKT8DF656667HEnO3XffHfW9rVu3OsXFxU5hYaHzwQcfdHo/nf19t2nTJkeS88ADD3TztGbPnj3O/v37O/xedXW1I8n56U9/GnH9ww8/7EhyHnvssS49ZnFxsXP++ed36We7I5n/DAAIhvfee8/p06eP8y//8i/duh/6JDb6JPXok/jQJwCQGrxUGUkxaNCgqOv69u2rkpKSpLx8YuXKlRozZoz69Omjvn37atKkSdqwYUPEba666ir17dtXr7zyiiZOnKjDDz9c5557riR7qckNN9ygBx54QMOHD1fv3r01evRovfDCC3IcR/fcc4+GDRumvn376pxzztHGjRu7feZwOKyzzjpLgwYNUp8+fXTKKafo3//93/Xpp5+23ub2229XdnZ2h39G11xzjQYMGKBPPvkk5mPs3LlTs2bN0tFHH62cnBwde+yxmj9/vvbu3RtxO/f3v++++3TSSScpNzdXP//5zzu8z8bGRknSUUcd1eH3Dzkk8l8bTU1NuummmzRs2DDl5OTo6KOP1pw5c9Tc3Bz3GTp6KdDWrVt1/fXX65hjjlFOTo6GDRumhQsX6rPPPou43bJlyzRy5Ej17dtXhx9+uD7/+c/re9/7Xsw/s1j27dune+65RyeddJK+853vRH2/sLBQlZWV2rZtm372s5+1Xj9+/HiVlpZqzZo1Gjt2rA477DBdc801kqT3339fV1xxhQ4//HDl5+dr6tSp2rp1a4ePv379el144YUqKChQXl6eTj31VD3yyCMRt1mxYoWysrL01FNP6ZprrtHnPvc5HXbYYVF/vV2HHnqoJCk/Pz/i+v79+0uS8vLy4vvD6YLq6mpddNFFOuaYY5SXl6fjjz9e119/vXbs2BFxuwULFigrK0sbNmzQpZdeqn79+ik/P1///M//rH/84x8HfZyFCxfq9NNPV0FBgfr166fTTjtNP/vZz+Q4TtRtH374YY0ZM0Z9+/ZV3759NWrUqIi/lpL09NNP69xzz1W/fv102GGH6YwzztAf//jH7v1hAPDMT3/6UzU3N+u73/1uSu6fPukYfUKf0Cf0CYAM4u3cEpnsww8/dPLz851LLrkk7p/paKN/5513OllZWc4111zjPPHEE85jjz3mjBkzxunTp4/z2muvtd5u+vTpzqGHHuoMHTrUqaysdP74xz86VVVVjuM4jiSnuLjYGTt2rPPYY485v/nNb5wTTzzRKSgocG688Ubnoosucp544gnnl7/8pVNYWOiMGDEi5pa0Ix1t9G+88UZn2bJlzpNPPuk888wzzg9/+ENn4MCBztVXX916m23btjm5ubnO/PnzI362sbHR6d27t/Ptb3+79br228yPP/7YGTFihNOnTx/n+9//vvPUU085t9xyi5Odne1Mnjw54v4kOUcffbQzYsQI5+GHH3aeeeYZ59VXX+3wd9m9e7fTv39/58gjj3Tuv/9+Z9OmTTF/7+bmZmfUqFHOwIEDncWLFztPP/2086Mf/cjJz893zjnnnIg/w87OIMm57bbbWm+7ZcsWZ/DgwU5xcbFz//33O08//bRz++23O7m5uc5VV13Verv/+q//ciQ5/+///T/nqaeecp5++mnnvvvuc2bPnh3zzLGsW7fOkeR897vfjXmbjz76yDnkkEOcSZMmtV539tlnOwUFBc7gwYOdH//4x86zzz7rPPfcc86ePXuck046ycnPz3d+/OMfO1VVVc7s2bOdIUOGRG30n3nmGScnJ8cZN26cs3LlSufJJ590rrrqqqjbuf98HH300c51113n/OEPf3B+/etfO5999lmH5/3000+dsrIy5+STT3ZefPFF56OPPnJqa2udUaNGOaeddpqzb9++hP+cHCe+jf6yZcucyspK5/HHH3eee+455+c//7kzcuRIZ/jw4RGPe9ttt7X+8/ntb3/bqaqqchYvXuz06dPHOfXUUyNu29FG/6qrrnJ+9rOfOdXV1U51dbVz++23O71793YWLlwYcbtbbrnFkeRceumlzqOPPuo89dRTzuLFi51bbrml9TYPPfSQk5WV5Vx88cXOY4895vzud79zLrjgAqdXr17O008/3aU/KwDeOuecc5yCggLnySefdEaOHOn06tXL+dznPudcf/31zq5du+K+H/rE0Cf0CX1CnwAIHgaHSJmvf/3rTnZ2trN+/fq4f6Z9mDc0NDjZ2dnO//t//y/idh999JFz5JFHOldccUXrddOnT3ckOf/5n/8Zdb+SnCOPPNLZvXt363WrVq1yJDmjRo2KCMglS5Y4kpy//vWvcZ/7YC8FamlpcT799FPnwQcfdHr16uXs3Lkz4mcHDRrk7N27t/W6f/u3f3MOOeSQiChuHyX33XefI8l55JFHIh7r3/7t3xxJzlNPPRXx++fn50c8bmd+//vfOwMHDnQkOZKcAQMGOF/+8pedxx9/POJ2lZWVziGHHBL10q1f//rXjiRn9erVcZ2hfZhff/31Tt++fZ1333034nbf//73HUmt/0F2ww03OP3794/rdzqYX/3qV44k57777uv0doWFhc5JJ53Uevnss892JDl//OMfI263bNkyR5Lz29/+NuL6b3zjG1HB/fnPf9459dRTnU8//TTithdccIFz1FFHtb78yv3n48orr4z792pqanKmTJnS+tdSkjN+/HinsbEx7vtoL9GXAu3fv9/59NNPnXfffTfqz8QN8xtvvDHiZ375y186kpxf/OIXrdcd7KVA7j9nixYtcgYMGND6z/Xbb7/t9OrVy/n6178e82ebm5udgoICZ8qUKVH3OXLkSOcLX/hC3L8vAP8YPny4k5eX5xx++OHOXXfd5Tz77LPOv//7vzu9e/d2zjjjjLiHcPSJoU/oE8ehT+gTAEHDS5WRErfccot++ctf6oc//KHKyspar9+/f78+++yz1q+WlpZO76eqqkqfffaZrrzyyoify8vL09lnn93hpwJedtllHd7XhAkT1KdPn9bLJ510kiSpoqJCWVlZUde/++67cf++HdmwYYMuvPBCDRgwQL169dKhhx6qK6+8Ui0tLXrzzTdbb/fNb35T27dv16OPPirJ/oyWLVum888/X0OHDo15/88884z69Omjyy+/POL6q666SpKiXr7gfgpfPCZPnqyGhgb95je/0U033aSTTz5Zq1at0oUXXqgbbrih9XZPPPGESktLNWrUqIi/PpMmTerwUxvjPcMTTzyhCRMmqKioKOJ+KyoqJEnPPfecJOkLX/iCPvzwQ331q1/Vb3/726iXmaSC4zgRf79I0hFHHBH1AUDPPvusDj/8cF144YUR13/ta1+LuLxx40b97//+r77+9a9LUsTvO3nyZG3ZskVvvPFGxM/E+nu8vU8//VRTp05VXV2dfvKTn2jNmjX6+c9/rr///e8677zztGvXrrjupyu2b9+umTNnavDgwcrOztahhx6q4uJiSdLrr78edXv393ddccUVys7O1rPPPtvp4zzzzDP6p3/6J+Xn57f+c3brrbeqsbFR27dvl2QvS2ppaVEoFIp5P+vWrdPOnTs1ffr0iL8G+/fv15e+9CXV1NREvbwNgP/t379fn3zyib73ve9p3rx5Gj9+vL797W+rsrJSzz//fOv/VtIn9Al9Qp/QJwDQMT5VGUm3cOFC3XHHHbrzzjsjIk6SFi1apIULF7ZeLi4u1jvvvBPzvrZt2yZJKi8v7/D77d/P5rDDDlO/fv06vG1BQUHE5ZycnE6v7+y9ew6moaFB48aN0/Dhw/WjH/1IQ4cOVV5enl588UWFQiF9/PHHrbc99dRTNW7cOIXDYX3961/XE088oXfeeUf3339/p4/R2NioI488MioSBw0apOzs7Nb3AnLFek+gWHr37q2LL75YF198cevvVFFRoXA4rH/5l3/RySefrG3btmnjxo2t71XTXvtQjvcM27Zt0+9+97uD3u+0adP02Wef6Sc/+Ykuu+wy7d+/X+Xl5brjjjt03nnnxfmbmiFDhkiSNm3aFPM2zc3N2rFjh0499dSI6zv6vRobG1VYWBh1/ZFHHhlx2f17/KabbtJNN93U4eN29c/xZz/7mf7whz+opqZGo0ePliSNGzdOZ555po477jgtWbJEt912W1z3lYj9+/dr4sSJev/993XLLbfolFNOUZ8+fbR//3598YtfjPj739X+zyU7O1sDBgyI+vu4rRdffFETJ07U+PHj9ZOf/KT1/aZWrVqlO++8s/Vx3Pci6uyTMd2/Du3/Q7etnTt3RvzHPQD/GzBggN566y1NmjQp4vqKigrNmTNHL730kv7pn/6JPqFP4nps+iQSfdIx+gRApmFwiKRauHChFixYoAULFnT4BtDXXXedLrjggtbLubm5nd7fwIEDJUm//vWvW7eBnWkfqV5ZtWqVmpub9dhjj0Wcu66ursPbz549W1/+8pf10ksv6d5779WJJ5540LAcMGCA/vKXv0RtmLdv367PPvus9c/O1d0/myFDhui6667TnDlz9Nprr+nkk0/WwIED1bt3b/3nf/5nhz/T1TMMHDhQI0aM0J133tnh94uKilr//6uvvlpXX321mpubtWbNGt1222264IIL9Oabb8b194yrrKxMRxxxhB5//HFVVlZ2eNbHH39c+/fvj/pr09FtBwwYoBdffDHq+vZvPu7+Gc2bN0+XXnpph2cbPnz4QR+vI3V1derVq5dOO+20iOuPPfZYDRgwQK+++mpc95OoV199VS+//LJWrFih6dOnt17f2Zv6b926VUcffXTr5c8++0yNjY0aMGBAzJ/51a9+pUMPPVRPPPFExBupr1q1KuJ2n/vc5yRJ7733ngYPHtzhfbl/HX784x/ri1/8Yoe36eg/tAD424gRI/TCCy9EXe/83wcUuAM++qSuw9vTJ9E/R58cQJ90jD4BkGkYHCJpbr/9di1YsED/+q//GnNLWFRUFBFVBzNp0iRlZ2frb3/7W9wvf/ADN5za/oeH4zj6yU9+0uHtL7nkEg0ZMkTf+ta39Nxzz+mHP/zhQePr3HPP1SOPPKJVq1bpkksuab3+wQcfbP1+V3z00UfKyspS3759o77nvoTD/Wt4wQUX6K677tKAAQM0bNiwLj1eRy644AKtXr1axx13XNwvX+rTp48qKiq0b98+XXzxxXrttdcSCvOcnBx9+9vf1ve+9z3dc889UZ9cuH37ds2bN0+FhYW69tprD3p/EyZM0COPPKLHH3884uVADz/8cMTthg8frhNOOEEvv/yy7rrrrrjPG4+ioiK1tLSopqZGp59+euv1b775phobGzvdcHdHR3//S+r0WSq//OUvI97W4JFHHtFnn32m8ePHd/o42dnZ6tWrV+t1H3/8sR566KGI202cOFG9evXSsmXLNGbMmA7v64wzzlD//v1VX18f9UxpAOnrsssu0/Lly/WHP/wh4tlYq1evlqTW/xCnT+iTeNAnyUGfGPoEQLpgcIik+MEPfqBbb71VX/rSl3T++edHbfdjbcgOZujQoVq0aJHmz5+vt99+W1/60pd0xBFHaNu2bXrxxRfVp0+fiJcW+cV5552nnJwcffWrX9V3vvMdffLJJ1q2bJk++OCDDm/fq1cvhUIhffe731WfPn1a3weoM1deeaXC4bCmT5+ud955R6eccor+9Kc/6a677tLkyZP1T//0T106+xtvvKFJkybpK1/5is4++2wdddRR+uCDD/T73/9ey5cv1/jx4zV27FhJ0pw5c/Tf//3fOuuss3TjjTdqxIgR2r9/vxoaGvTUU0/pW9/6VkQQxmvRokWqrq7W2LFjNXv2bA0fPlyffPKJ3nnnHa1evVr33XefjjnmGH3jG99Q7969dcYZZ+ioo47S1q1bVVlZqfz8/IiXj7nvxdTZy84k6bvf/a5efvnl1v87depU5efn669//avuueceffTRR3riiSeUn59/0N/hyiuv1A9/+ENdeeWVuvPOO3XCCSdo9erVqqqqirrt/fffr4qKCk2aNElXXXWVjj76aO3cuVOvv/66Xnrppdb3l0rU1VdfrR/+8Ie67LLL9K//+q8aPny43n77bd11113q06ePZs6c2Xrbd955R8OGDdP06dO1YsWKg9731q1b9etf/zrq+qFDh2rkyJE67rjjdPPNN8txHBUUFOh3v/udqqurY97fY489puzsbJ133nl67bXXdMstt2jkyJG64oorYv7M+eefr8WLF+trX/uarrvuOjU2Nur73/9+1H8QDB06VN/73vd0++236+OPP9ZXv/pV5efnq76+Xjt27NDChQvVt29f/fjHP9b06dO1c+dOXX755Ro0aJD+8Y9/6OWXX9Y//vEPLVu27KB/LgD8ZeLEiZoyZYoWLVrU+nLE9evXa+HChbrgggt05plndul+6ZPY6BP65GDokwNnok8ApAXPPpYFGcX95LZYX/Fq/6mFrlWrVjkTJkxw+vXr5+Tm5jrFxcXO5Zdf7jz99NOtt+nskwMlOaFQKOK6TZs2OZKce+65J+L6Z5991pHkPProo3Gfu6PH/t3vfueMHDnSycvLc44++mjn29/+tvOHP/zBkeQ8++yzUffxzjvvOJKcmTNndvgYHX1iW2NjozNz5kznqKOOcrKzs53i4mJn3rx5zieffBJxu45+/1g++OAD54477nDOOecc5+ijj3ZycnKcPn36OKNGjXLuuOMOZ8+ePRG33717t/Ov//qvzvDhw52cnBwnPz/fOeWUU5wbb7zR2bp1a1xnULtPLXQcx/nHP/7hzJ492xk2bJhz6KGHOgUFBU5ZWZkzf/781k+f/PnPf+5MmDDBKSwsdHJycpyioiLniiuuiPrEyYEDBzpf/OIX4/r99+/f7/zyl790xo8f7/Tv39/Jyclxhg0b5vzLv/xL1KcoOo79dTn55JM7vK/33nvPueyyy5y+ffs6hx9+uHPZZZc569ati/rUQsdxnJdfftm54oornEGDBjmHHnqoc+SRRzrnnHNOxKcoxvrnozNvvfWWM23aNGfo0KFObm6uM2TIEGfq1Kmtn/zoeuWVVxxJzs0333zQ+ywuLo75z/r06dMdx3Gc+vp657zzznMOP/xw54gjjnC+/OUvOw0NDVF/rd1PLaytrXWmTJnS+mf11a9+1dm2bVvE43b0z8B//ud/OsOHD3dyc3OdY4891qmsrHR+9rOfOZIiPvXTcRznwQcfdMrLy528vDynb9++zqmnnhr11+G5555zzj//fKegoMA59NBDnaOPPto5//zzE/r3AQB/2bNnj/Pd737XGTx4sJOdne0MGTKkw/+t7Ax9Qp+46BP6hD4BEDRZjvN/b/ICwFM//vGPNXv2bL366qs6+eSTvT5Oxqivr9fJJ5+sJ554Queff77Xx/GtpUuX6jvf+Y7+9re/9eh75SxYsEALFy7UP/7xj6j3nAIAeI8+SQ36JD70CQB4j5cqAx7bsGGDNm3apEWLFumiiy4iypPs2Wef1ZgxY4jyg3j22Wc1e/Zs3mAbACCJPkk1+iQ+9AkAeC8Qzzh84okn9K1vfUv79+/Xd7/73bjeOBjoKUOHDtXWrVs1btw4PfTQQzryyCO9PhLQY9joI8joE/gZfYIgo08A4ICMHxx+9tlnKikp0bPPPqt+/frptNNO01/+8hcVFBR4fTQAABBQ9AkAAADSwSFeHyDVXnzxRZ188sk6+uijdfjhh2vy5MkdfmoYAABAT6FPAAAAkA58Pzhcs2aNpkyZoqKiImVlZWnVqlVRt1m6dKmGDRumvLw8lZWVae3ata3fe//993X00Ue3Xj7mmGP097//vSeODgAAMhR9AgAAgCDw/eCwublZI0eO1L333tvh91euXKk5c+Zo/vz52rBhg8aNG6eKigo1NDRIkjp6JXZWVlZKzwwAADIbfQIAAIAg8P2nKldUVKiioiLm9xcvXqwZM2a0vqH4kiVLVFVVpWXLlqmyslJHH310xAb/vffe0+mnnx7z/vbu3au9e/e2Xt6/f7927typAQMGEPQAAMTgOI4++ugjFRUV6ZBDfL+X7Db6BAAA/wtanwCp4PvBYWf27dun2tpa3XzzzRHXT5w4UevWrZMkfeELX9Crr76qv//97+rXr59Wr16tW2+9NeZ9VlZWauHChSk9NwAAmWrz5s065phjvD6Gp+gTAAD8hT4Bui6tB4c7duxQS0uLCgsLI64vLCzU1q1bJUnZ2dn6wQ9+oAkTJmj//v36zne+owEDBsS8z3nz5mnu3Lmtl3ft2qUhQ4bokMtuV9ahean5RYA0knXE0Qe/EYBAOeHIvmr5ZI/erPyKDj/8cK+P4zn6BEBX0FhActEnQHKk9eDQ1f4lOo7jRFx34YUX6sILL4zrvnJzc5Wbmxv9GIfmKSund/cOCqS5rAK2dAAiDT8qMsR52ewB9AkAFw0F9LxeeX1a/3/6BOi6tB4cDhw4UL169Wrd3ru2b98eteUH0D0ELwDEhz4BgoM+Avyp/WITQNel9buD5uTkqKysTNXV1RHXV1dXa+zYsd2673A4rJKSEpWXl3frfgAAyFREecfoEyD9ZRUcE9cXAP+hT4Dk8v0zDnfv3q2NGze2Xt60aZPq6upUUFCgIUOGaO7cuZo2bZpGjx6tMWPGaPny5WpoaNDMmTO79bihUEihUEhNTU3Kz8/v7q8BpDXCGEB7QY9y+gRIX3QNkLmC3idAKvh+cLh+/XpNmDCh9bL7xuDTp0/XihUrNHXqVDU2NmrRokXasmWLSktLtXr1ahUXF3t1ZCCjENcA2iPK6RPAj2gWAACSL8txHMfrQ/iZu9Hv9ZV7ePNxBA4BDqAjHQ0OWz5p1uu3Xahdu3apX79+HpwqWOgTIBLNAoA+AVIjrd/jMJV4DyEAAKLxbENv0ScAAESjT4DUYXAYQygUUn19vWpqarw+CuAJNvcA2iPKvUefAAAQiT4BUovBIYAoDA0BtEeUA/ArugUAgNRhcAgAAAAAANIOi00g9RgcxsB7CCGo2NoDaI8o9w/6BIhEtwDBRZ8APYPBYQy8hxCCiPgG0B5R7i/0CQAAAHoSg0MAANAhhoYAAMCPaBSg5zA4BCCJZxsCAID0QrsAwcTQEOhZDA4BEN4AohDlAADAb+gToOcxOIyBNx9HUDA0BNAeUe5f9Alg6BcAAHoGg8MYePNxAEAQMTT0N/oEABBUNAqCbtOmTZowYYJKSkp0yimnqLm5WZKUnZ2tUaNGadSoUbr22muT/rjZSb9HAGmDbT0AAEg39AsQPAwNAemqq67SHXfcoXHjxmnnzp3Kzc2VJPXv3191dXUpe1wGh0BAEd0A2iPKAQCA39AngPTaa6/p0EMP1bhx4yRJBQUFPfbYvFQZAAAQ5QAAAECKrFmzRlOmTFFRUZGysrK0atWqqNssXbpUw4YNU15ensrKyrR27drW77311lvq27evLrzwQp122mm66667Wr/X1NSksrIynXnmmXruueeSfnYGh0AA8WxDAACQjmgYIFhYbCJTNDc3a+TIkbr33ns7/P7KlSs1Z84czZ8/Xxs2bNC4ceNUUVGhhoYGSdKnn36qtWvXKhwO689//rOqq6tVXV0tSXrnnXdUW1ur++67T1deeaWampqSenZeqhxDOBxWOBxWS0uL10cBkorgBtAeUZ4+6BMAQFDQJz3vk08+0b59+7w+RlpwHEdZWVkR1+Xm5ra+72B7FRUVqqioiHl/ixcv1owZM1o/3GTJkiWqqqrSsmXLVFlZqWOOOUbl5eUaPHiwJGny5Mmqq6vTeeedp6KiIklSaWmpSkpK9Oabb2r06NHJ+DUlMTiMKRQKKRQKqampSfn5+V4fB0gKhoYA2iPK0wt9giCjY4DgoE963ieffKJhQ4dp67atXh8lLfTt21e7d++OuO62227TggULEr6vffv2qba2VjfffHPE9RMnTtS6deskSeXl5dq2bZs++OAD5efna82aNbr++uv1wQcf6LDDDlNubq7ee+891dfX69hjj+3y79URBocAAAQUUQ4AAADJhldbt23VxvqN6nd4P6+P42tNHzXp+JLjtXnzZvXrd+DPKtazDQ9mx44damlpUWFhYcT1hYWF2rrVBrnZ2dm66667dNZZZ8lxHE2cOFEXXHCB1q1bp+uvv16HHHKIsrKy9KMf/SjpH5zC4BAICLb0AAAgXdExQHCw2PRWv8P7RQzDEFu/fsn9s2r/0uf2L4fu6OXOY8eO1SuvvJK0M3SED0cBAoDYBtAeUQ4AAPyGPkEQDRw4UL169Wp9dqFr+/btUc9C9AKDQwAAAoYoBwAAfkOfIKhycnJUVlbW+inJrurqao0dO9ajUx3AS5WBDMezDQG0RZQDSDe0DAAg3e3evVsbN25svbxp0ybV1dWpoKBAQ4YM0dy5czVt2jSNHj1aY8aM0fLly9XQ0KCZM2d6eGrD4BDIYIQ2AAAAAL9jsYlMt379ek2YMKH18ty5cyVJ06dP14oVKzR16lQ1NjZq0aJF2rJli0pLS7V69WoVFxd7deRWDA5jCIfDCofDamlp8fooAAAkBVGe/ugTBA1LUCDz0ScIgvHjx8txnE5vM2vWLM2aNauHThQ/3uMwhlAopPr6etXU1Hh9FKBLCG0AbRHlmYE+AQBkEvoE8D8Gh0AGYmgIoC2iHEA6omcAAPAeg0MgwxDZAAAAAPyOxSaQHhgcAgCQwYhyAADgN/QJkD4YHAIZhGcbAmiLKAeQrmgaIHPRJ0B6YXAIZAgCG0BbRDkAAACA7mJwCAAAAMA3WIYCmYvFJpB+GBwCGYDABtAWUQ4AAPyGPgHSE4PDGMLhsEpKSlReXu71UYBOMTQE0BZRntnoEwBAOqJPgPTF4DCGUCik+vp61dTUeH0UAADiQpRnPvoEmY6FKAAA/sLgEEhjxDUAAAAAP2OxCaQ3BodAmmJoCKAtohxAuqNtgMxDnwDpj8EhkIYIawBtEeUAAMBv6BMgMzA4BAAgjRHlADIBS1EAAPyJwSGQZghrAAAAAH7GYhPIHAwOgTTC0BBAW0Q5AADwG/oEyCwMDgEASENEOYBMwWIUyBz0CZB5GBwCaYKoBuAiygEAAAD0BAaHQBpgaAgAADIRjQNkDhabQGZicAgAQBohygEAgN/QJ0DmYnAI+BybeAAuohxAJqFxgMxAnwCZjcEh4GMENQAXUQ4AAACgpzE4jCEcDqukpETl5eVeHwUBxdAQANAefQIA8BMWm0DmY3AYQygUUn19vWpqarw+CgAg4IhyuOgTZAoWpED6o0+AYGBwCPgQMQ3ARZQDAAC/oU+A4GBwCPgMQ0MALqIcQCaidQAASB8MDgEAAAAAQFxYbALBwuAQ8BE28ABcRDkAAPAb+gQIHgaHgE8wNATgIsoBZCp6B0hf9AkQTAwOAQDwEaIcAAAAgF8wOAR8gO07AADIdPQOkL5YbALBxeAQ8BgRDcBFlAMAAL+hT4BgY3AIeIihIQAXUQ4gk9E8QHqiTwAwOAQAwGNEOQAAAAA/YnAIeITNOwAAAAC/YrEJQGJwCHiCoSEAF1EOINPRPUD6oU8AuBgcAgDgEaIcAAD4DX0CoC0Gh0APY+sOQCLKAQQD3QMAQHpjcAj0IOIZAAAAgF+x2ATQXiAGh5dccomOOOIIXX755V4fBQAAohyS6BNkPhamQHqhTwB0JBCDw9mzZ+vBBx/0+hgIOOIZgESU4wD6BADgF/QJgFgCMTicMGGCDj+cfxHCOwwNAUhEOSLRJwAAAPA7zweHa9as0ZQpU1RUVKSsrCytWrUq6jZLly7VsGHDlJeXp7KyMq1du7bnDwp0EUNDAEg/9AnQPfQPkD5YbALojOeDw+bmZo0cOVL33ntvh99fuXKl5syZo/nz52vDhg0aN26cKioq1NDQ0HqbsrIylZaWRn29//77PfVrAADQKaI8vdAnAIAgoE8AHEy21weoqKhQRUVFzO8vXrxYM2bM0LXXXitJWrJkiaqqqrRs2TJVVlZKkmpra5N2nr1792rv3r2tl5uampJ23wgetu0AJKI8HdEnQNfRP0B6oE8AxMPzZxx2Zt++faqtrdXEiRMjrp84caLWrVuXksesrKxUfn5+69fgwYNT8jjIfEQzAIkoz0T0CQAAAILC14PDHTt2qKWlRYWFhRHXFxYWauvWrXHfz6RJk/TlL39Zq1ev1jHHHKOampqYt503b5527drV+rV58+Yunx8AAGQe+gQAkO5YbAKIl+cvVY5HVlZWxGXHcaKu60xVVVXct83NzVVubm7ctwc6wrMNAUhEeaajT4BoNBDgf/QJgET4enA4cOBA9erVK2p7v3379qgtP+AXBDMAiSjPZPQJACBd0Sc4mA8/+kQtyvH6GL720UefeH2EHuXrlyrn5OSorKxM1dXVEddXV1dr7NixKX3scDiskpISlZeXp/RxAACZhyjPbPQJ0DGWpwAAZB7Pn3G4e/dubdy4sfXypk2bVFdXp4KCAg0ZMkRz587VtGnTNHr0aI0ZM0bLly9XQ0ODZs6cmdJzhUIhhUIhNTU1KT8/P6WPhcxBMANAZqBPAACZhsUmgK7wfHC4fv16TZgwofXy3LlzJUnTp0/XihUrNHXqVDU2NmrRokXasmWLSktLtXr1ahUXF3t1ZKBDDA0BSER5pqBPgMTQQYC/0ScAusrzweH48ePlOE6nt5k1a5ZmzZrVQycCEkcsA5CI8kxCnwAAMgV9AqA7fP0eh17iPYQAAIkgytET6BMAAAD0JAaHMYRCIdXX16umpsbro8DneLYhAKCn0CfwI1oI8C8WmwC6i8Eh0A2EMgCJKAcAAP5DnwBIBs/f4xBIJwwKAbRHlJtTPtdHr3t9CAA9gh4C/I8+MfQJ0H0MDmMIh8MKh8NqaWnx+ijwCSIZQHtEuRk1qK/2fbzb62MEAn2Cnkb/AEhX9AmQHLxUOQbeQwhtEc0A0LFRg/p6fYRAoU+QSlkFx0R9AUg/LDYBJBPPOAQOgmgG0BGiHEC6o3GAzEOfGBabQPIwOAQAIEFEuSHKgfTBkBDIfPSJoU+A5GJwCHSCyAbQHlFuiHLAv+gXAEFFnwDJx+AwBt58HEQ3AHSMKPcOfYKO0CwAWGwCSBU+HCUG3nwcANAeUQ6v0ScAgPboE8NiE0gNBodAB9jcA2iPKDdEOeAvNAsQbPSJoU+A1GFwCLRDgANojyg3RDkAAPAb+gRILQaHAADgoIhywH9YdgLBxmITQE9gcAi0QYADaI8oBwAAfkOfGBabQOoxOIwhHA6rpKRE5eXlXh8FPYShIYD2iHJDlPsHfQIAgKFPgJ7B4DAGPrUwWBgaAmiPoaEhyv2FPoGLdgGCi0YB0JMYHAIAgA4xNAQAwF8YGhoaBeg5DA4ReGzsAbRHlAPwM9oFCCb6xDA0BHoWg0MEGuENoD2i3BDlAADAb+gToOcxOAQA4P8wNDREOeBfLD2BYKJRAHiFwSECi/AGgGgMDQEA8BeGhoZGAbzB4BCBxNAQQHtEOQAA8Bv6xDA0BLzD4DCGcDiskpISlZeXe30UAECKEeWGKPc/+iTYWHwCCCL6BPAWg8MYQqGQ6uvrVVNT4/VRkGRENwBEI8rTA30CAMHBYhOAHzA4RKAwNATQHlEOIB3QMECw0CeGxSbgPQaHCAyCG0B7RLkhygEA8A/6xNAngD8wOAQABBJRbohywP9YfgIIGvoE8A8GhwgEghsAohHlAAD4C4tNAH7D4BAZj6EhgPaIcgAA4Df0iWGxCfgLg0MAQKAQ5YYoB9IDC1AgGOgTQ58A/sPgEBmN2AbQFlFuiHIAAOA39AngTwwOYwiHwyopKVF5ebnXR0EXMTQEgGhEeXqjT4KFlgGCgcUmAD9jcBhDKBRSfX29ampqvD4KACAJiHJkAvoEADILfWJYbAL+xeAQGYkNPYC2iHJDlAMA4B/0iaFPAH9jcIiMw9AQQFtEuSHKgfRCzwAIAvoE8D8Gh8goRDYARCPKAQDwFxabANIFg0MAQMYiygGkIxahQGajTwyLTSA9MDhExiCyAbRFlBuiHAAA/6BPDH0CpA8Gh8gIDA0BtEWUG6IcSD80DYBMR58A6YXBIQAAGYgoBwDAX1hsAkhHDA6R9tjMA2iLKAcAAH5DnxgWm0D6YXCItMbQEEBbRLkhyoH0RNcAmYk+MfQJkJ4YHAIAMgJRbohyAADgN/QJkL4YHCJtsZUHgEhEOZC+6BogM7HYBJDuGBwiLRHXANoiygEAgN/QJ4bFJpA8e/bsUXFxsW666SZJ0htvvKFRo0a1fvXu3VurVq1K6mNmJ/XeMkg4HFY4HFZLS4vXR0E7DA0BtEWUG6I8GOiTzETbAJmHPjH0CZBcd955p04//fTWy8OHD1ddXZ0kaffu3Ro6dKjOO++8pD4mzziMIRQKqb6+XjU1NV4fBQAQA1FuiPLgoE8AAOmCPgGS66233tL//u//avLkyR1+//HHH9e5556rPn36JPVxGRwirbCRB4BIRDkAAP7CYhNAe2vWrNGUKVNUVFSkrKysDl9OvHTpUg0bNkx5eXkqKyvT2rVrI75/0003qbKyMuZjPPLII5o6dWqyj87gEOmDoSGAtohyAJmAvgEyC31iWGwCkZqbmzVy5Ejde++9HX5/5cqVmjNnjubPn68NGzZo3LhxqqioUENDgyTpt7/9rU488USdeOKJHf58U1OTnn/++ZjPRuwO3uMQAJB2iHJDlAMA4B/0iaFPEBRNTU0Rl3Nzc5Wbm9vhbSsqKlRRURHzvhYvXqwZM2bo2muvlSQtWbJEVVVVWrZsmSorK/XCCy/oV7/6lR599FHt3r1bn376qfr166dbb71Vkg0WJ02apLy8vCT9dgcwOERaYBsPwEWUG6IcSH/0DYBMQ5+kv398+LE+/oxRUWd27/5YkjR48OCI62+77TYtWLAg4fvbt2+famtrdfPNN0dcP3HiRK1bt06SVFlZ2foy5RUrVujVV19tHRpK9jLl6667LuHHjgd/N8D3iGoAiESUAwDgLyw2geDZvHmz+vXr13o51rMND2bHjh1qaWlRYWFhxPWFhYXaunXrQX9+165devHFF/Xf//3fXXr8g2FwCABIG0Q5gEzBYhTIHPSJYbGJoOnXr1/E4LC7srKyIi47jhN1nSRdddVVEZfz8/O1bdu2pJ2jPT4cBb5GVANwEeWGKAcAwD/oE0OfAF03cOBA9erVK+rZhdu3b496FqIXGBzCtxgaAnAR5YYoBwAAfkOfAN2Tk5OjsrIyVVdXR1xfXV2tsWPHenSqA3ipMnyJoSEARCLKgcxB5wCZgcUmgHjt3r1bGzdubL28adMm1dXVqaCgQEOGDNHcuXM1bdo0jR49WmPGjNHy5cvV0NCgmTNnenhqw+AQAOBrRDkAAPAb+sSw2ATis379ek2YMKH18ty5cyVJ06dP14oVKzR16lQ1NjZq0aJF2rJli0pLS7V69WoVFxd7deRWDA7hO2zhAbiIckOUA5mDzgHSH31i6BMgfuPHj5fjOJ3eZtasWZo1a1YPnSh+vMchfIWYBuAiyg1RDgAA/IY+AYKDwSEAAD5FlAMA4C8sNgEEDYND+AbPNgTgIsoBZCJaB0hv9IlhsQkEC4ND+AIhDcBFlBuiHAAA/6BPDH0CBE/GDw43b96s8ePHq6SkRCNGjNCjjz7q9ZEAADEQ5YYoz3z0SfCwJAWQ7ugTIJgy/lOVs7OztWTJEo0aNUrbt2/XaaedpsmTJ6tPnz5eHw3/h5AGgAOI8mCgTwAgfbDYBBBkGT84POqoo3TUUUdJkgYNGqSCggLt3LmTMPcJhoYAXEQ5goQ+CRZ6B0hf9IlhsQkEl+cvVV6zZo2mTJmioqIiZWVladWqVVG3Wbp0qYYNG6a8vDyVlZVp7dq1XXqs9evXa//+/Ro8eHA3T41kIKIBuIhyQ5T7B30CAKBPDH0CBJvng8Pm5maNHDlS9957b4ffX7lypebMmaP58+drw4YNGjdunCoqKtTQ0NB6m7KyMpWWlkZ9vf/++623aWxs1JVXXqnly5en/HcCAMSPKDdEub/QJwAA0CcAfPBS5YqKClVUVMT8/uLFizVjxgxde+21kqQlS5aoqqpKy5YtU2VlpSSptra208fYu3evLrnkEs2bN09jx4496G337t3bermpqSneXwUJ4NmGAHAAUe4/9AmSheYB0hOLTQAwnj/jsDP79u1TbW2tJk6cGHH9xIkTtW7durjuw3EcXXXVVTrnnHM0bdq0g96+srJS+fn5rV+8bCj5CGgALqIc6Yg+AYDMRp8YFpsAJJ8PDnfs2KGWlhYVFhZGXF9YWKitW7fGdR/PP/+8Vq5cqVWrVmnUqFEaNWqUXnnllZi3nzdvnnbt2tX6tXnz5m79DgCAjhHlhihPP/QJ4sWyFEg/9ImhTwC4PH+pcjyysrIiLjuOE3VdLGeeeab2798f92Pl5uYqNzc3ofMhfgQ0AIkodxHl6Y0+AQBkIvoEQFu+fsbhwIED1atXr6jt/fbt26O2/PA/hoYAcABRnr7oE8SD7gHSD4tNAIjm68FhTk6OysrKVF1dHXF9dXX1Qd9EvLvC4bBKSkpUXl6e0scBgKAhypHu6BMAyDz0iWGxCaA9z1+qvHv3bm3cuLH18qZNm1RXV6eCggINGTJEc+fO1bRp0zR69GiNGTNGy5cvV0NDg2bOnJnSc4VCIYVCITU1NSk/Pz+ljxUEbN0BSES5iyj3P/oEAIKDPjH0CYCOeD44XL9+vSZMmNB6ee7cuZKk6dOna8WKFZo6daoaGxu1aNEibdmyRaWlpVq9erWKi4u9OjISxNAQgESUu4jy9ECfoDtoHwDphj4BEIvng8Px48fLcZxObzNr1izNmjWrh06EZCKcAeAAojx90CcAEAwsNgGgc75+j0Mv8R5CAJA8RDmQHPSJ/7E0BdIHfWJYbALoDIPDGEKhkOrr61VTU+P1UdIW4QxAIspdRDmSgT4BgOSgTwx9AuBgGBwiJRgaApCIchdRDgAA/IY+ARAPBocAAKQQUQ4EB4tTID2w2ASA+DE4jIH3EOo6ohmARJQDqUCfAED30CeGxSaAeDE4jIH3EOoahoYAJKLcRZQj2egT/6KBAP+jTwx9AiARDA6RNAQzAIkodxHlAADAb+gTAIlicAgAQJIR5UCwsDwF/I/FJgB0DYNDJAXBDEAiygEAgP/QJ4bFJoCuYHAYA28+Hj+GhgAkotxFlCOV6BMASAx9YugTAF3F4DAG3nwcAOJHlBuiHKlGn/gPC1QAfkefAOgOBofoFmIZAAxRDgCAv7DYBIDuY3CILmNoCEAiygEEFy0E+Bd9YlhsAuguBocAgC4jyg1RDgCAf9Anhj4BkAzZXh8A6YGNOoD2iHJDlJuSI/p4fQQg5eghAOmCPjH0CdB9DA5jCIfDCofDamlp8fooniOSAaBjRLkpLeijT/bs9voYgUCf9Bz6B0hPLDbhok+A5OClyjHwqYWGaAbQEaIcrtICNvk9iT5JjayCY6K+AKQf+sSw2ASQTDzjEACQEKLcEOVA+mIwCGQe+sTQJ4bFJpA8DA4RE1ENoD2i3BDlhihHOqBnAAQFfWLoEyC5GByiQ0Q2AHSMKDdEOfyIfgGCicUmXPQJkHwMDgEAcSHK4SLK4RcMCgHQJ4bFJoBU4cNREIUIB9AeUW6IcgAA/IM+MfSJYbEJpAaDQ0RgaAigPaLcEOWGKIdf0CwAQJ+46BMgdRgcxhAOh1VSUqLy8nKvjwIA8BhRbohy79EnAGBYbMJFnwCpxeAwhlAopPr6etXU1Hh9lB7D5h5Ae0Q5XES5PwSxTwCgPfrEsNgE0BMYHEISQ0MA0YhyQ5QD/kO3AAg6+sSw2ARSj8EhiG8AURgaGqLcEOUAAL+gUeCiT4CeweAQAIAOMDQ0RDn8hoUnEFwMDQ2NAqAnMTgMOOIbQHtEOVwMDQEAfkGfGIaGhkYBeg6DwwBjaAigPaLcEOUAAMBv6BPD0BDoWdleHwAA4A8MDQ1Rbohy+BFLTyCYaBS46JPUe+fDj3XYp4yKOrOn+WOvj9CjeMZhQBHeABCNoaEhygEAfsHQ0NAoALzC4DCGcDiskpISlZeXe32UpGNoCKA9ohwuhob+lsl9cjD0CxA89IlhaGhoFMAbDA5jCIVCqq+vV01NjddHAYCUIsoNUY50QJ8AQLDQJ4ahIeAdBocBw7YeAKIR5YYoh1/RL0DwsNiEiz4BvMXgMECIbgDtEeVwEeUAAL+gTwyLTQB+wOAwIBgaAmiPKDdEOQAA/kGfGPrEsNgEvMfgEAACiCg3RLkhyuFnLD8BBA19YugTwB8YHAYAwQ0A0YhyQ5QDAPyCxSZc9AngHwwOMxxDQwDtEeVwEeXwOzoGCA76xLDYBOA3DA4BIECIckOUAwDgH/SJoU8Mi03AXxgcZjC29ADaIsoNUW6IcvgdHQMgSOgTQ58A/sPgMEMR2wAQjSg3RDkAwC9YbMJFnwD+xOAwAzE0BNAeUQ4XUQ4A8Av6xLDYBOBnDA4BIMMR5YYoB9IHS1Ag89Enhj4xLDYB/2JwmGEIbQBtEeWGKDdEOQAA/kGfGPoE8DcGhzGEw2GVlJSovLzc66PEjaEhAEQjyg1RnhnSsU8SRc8AmY/FJlz0CeB/DA5jCIVCqq+vV01NjddHAYAuIcrhIsozB30CIN3RJ4bFJoB0weAwQ7CdB9AWUW6IciC90DNAZqNPDH1iWGwC6YHBYQYgsgG0RZQbotwQ5QAA+Ad9YugTIH0wOAQAZByi3BDlAAC/YLEJF30CpBcGh2mOZxsCaIsoh4soR7qhaYDMRZ8YFpsA0hGDwzRGYANoiyg3RDkAAP5Bnxj6xLDYBNIPg8M0xdAQQFtEuSHKDVGOdEPXAMhk9ImhT4D0xOAQAJARiHJDlAMA/ILFJlz0CZC+GBymIbbyANoiyuEiygEAfkGfGBabANIdg8M0w9AQQFtEuSHKgfRF2wCZhz4x9IlhsQmkNwaHAJCmiHJDlBuiHAAA/6BPDH0CpD8Gh2mEjTwARCLKDVGOdEXbAJmHxSZc9AmQGRgcpgnCGkBbRDlcRDkAwC/oE8NiE0AmYXAIAGmGKDdEOZDeWIoCmYU+MfSJYbEJZA4Gh2mAsAbgIsoNUW6IcgAA/IM+MfQJkFkYHPocQ0MAiESUG6IcAOAXLDbhok+AzJPxg8OPPvpI5eXlGjVqlE455RT95Cc/8fpIcWNoCKAtohwuojz9pXOfJAONA2QO+sSw2ASQqbK9PkCqHXbYYXruued02GGHac+ePSotLdWll16qAQMGeH00AIgbUW6IcmQK+gRAJqBPDH1iWGwCmSnjn3HYq1cvHXbYYZKkTz75RC0tLXIcx+NTHRybeAAuotwQ5YYozwzp2ifJQOMAyCT0iaFPgMzl+eBwzZo1mjJlioqKipSVlaVVq1ZF3Wbp0qUaNmyY8vLyVFZWprVr1yb0GB9++KFGjhypY445Rt/5znc0cODAJJ0+NQhqAIhElBuivOfQJwDQORabcNEnQGbzfHDY3NyskSNH6t577+3w+ytXrtScOXM0f/58bdiwQePGjVNFRYUaGhpab1NWVqbS0tKor/fff1+S1L9/f7388svatGmTHn74YW3btq1HfjcA6C6iHC6ivGfRJ6nBchTIDPSJYbEJIAg8f4/DiooKVVRUxPz+4sWLNWPGDF177bWSpCVLlqiqqkrLli1TZWWlJKm2tjauxyosLNSIESO0Zs0affnLX+7wNnv37tXevXtbLzc1NcX7qyQFQQ3ARZQbohxeoE8AoGP0iaFPDItNIPN5/ozDzuzbt0+1tbWaOHFixPUTJ07UunXr4rqPbdu2tcZ1U1OT1qxZo+HDh8e8fWVlpfLz81u/Bg8e3PVfIEEMDQG4iHJDlBui3F+C1icAgEj0iaFPgGDw9eBwx44damlpUWFhYcT1hYWF2rp1a1z38d577+mss87SyJEjdeaZZ+qGG27QiBEjYt5+3rx52rVrV+vX5s2bu/U7AAC6hig3RLn/0Cddw4IUSH8sNuGiT4Dg8PylyvHIysqKuOw4TtR1sZSVlamuri7ux8rNzVVubm4ix0sKYhqAiyiHiyj3tyD0CQC46BPDYhNA0Pj6GYcDBw5Ur169orb327dvj9rypzOGhgBcRLkhyuFnQemTZKJ1gPRGnxj6xLDYBILF14PDnJwclZWVqbq6OuL66upqjR07NqWPHQ6HVVJSovLy8pQ+DiENwEWUG6LcEOX+FYQ+AQBEok8MfQIEj+cvVd69e7c2btzYennTpk2qq6tTQUGBhgwZorlz52ratGkaPXq0xowZo+XLl6uhoUEzZ85M6blCoZBCoZCampqUn5+f0scCABii3BDl3qNPAMCw2ISLPgGCyfPB4fr16zVhwoTWy3PnzpUkTZ8+XStWrNDUqVPV2NioRYsWacuWLSotLdXq1atVXFzs1ZGThmcbAnAR5XAR5f4Q5D5JNnoHSF/0iWGxCSDIPB8cjh8/Xo7jdHqbWbNmadasWT10op5BRANwEeWGKIefBLVPAMBFnxj6xLDYBILL1+9x6CXeQwhATyDKDVFuiHIcTLr1CYtSAOmMPjH0CRBsDA5jCIVCqq+vV01NTdLvm4gGgAOIckOUIx6p7BMAcLHYhIs+AcDgsIcxNATgIsrhIsqRiWgeID3RJ4bFJgAYBocA4AGi3BDlAAD4B31i6BPDYhPwj82bN2v8+PEqKSnRiBEj9Oijj7Z+7/vf/75OPvlklZaW6he/+EXSH9vzD0fxq3A4rHA4rJaWlqTdJ5t3ABJR7iLKDVGORKSiTwAAB9Anhj4B/CU7O1tLlizRqFGjtH37dp122mmaPHmy3n77bT388MOqra2VJJ177rm64IIL1L9//6Q9Ns84jCHZ7yHE0BAADiDKDVGORKXLexzSPUD6YbEJF30C+M9RRx2lUaNGSZIGDRqkgoIC7dy5U6+//rrGjh2rvLw85eXladSoUXryySeT+tgMDnsA8QzARZTDRZQDAPyCPjEsNgGkypo1azRlyhQVFRUpKytLq1atirrN0qVLNWzYMOXl5amsrExr167t8L7Wr1+v/fv3a/DgwSotLdWzzz6rDz/8UB9++KGeeeYZ/f3vf0/q2RkcAkAPIcoNUQ5kNhamQHqhTwx9YlhsAqnR3NyskSNH6t577+3w+ytXrtScOXM0f/58bdiwQePGjVNFRYUaGhoibtfY2Kgrr7xSy5cvlySVlJRo9uzZOuecc3TJJZeovLxc2dnJfVdCBocpRjwDkIhyF1FuiHIAAPyDPjH0CZCYpqamiK+9e/fGvG1FRYXuuOMOXXrppR1+f/HixZoxY4auvfZanXTSSVqyZIkGDx6sZcuWtd5m7969uuSSSzRv3jyNHTu29frrr79eL730kp599lnl5OTo+OOPT94vKT4cJaZkvPk4Q0MAOIAoN0Q5usPvH45C+wDphcUmXPQJXG/t+kR5nzIq6swnez6RJA0ePDji+ttuu00LFixI+P727dun2tpa3XzzzRHXT5w4UevWrZMkOY6jq666Suecc46mTZsWcbvt27dr0KBBeuONN/Tiiy/qvvvuS/gMneHvhhhCoZBCoZCampqUn5/v9XEApDGiHC6iHN1FnwBIFvrEsNgE0FWbN29Wv379Wi/n5uZ26X527NihlpYWFRYWRlxfWFiorVu3SpKef/55rVy5UiNGjGh9f8SHHnpIp5xyii6++GJ9+OGH6tOnjx544IGkv1SZwWGKsHEHIBHlLqIcAAD/oE8MfWJYbAJd069fv4jBYXdlZWVFXHYcp/W6M888U/v37+/w59xnJaYK73GYAgwNAUhEuYsoN0Q5Mh39AyCd0CeGPgG8N3DgQPXq1av12YWu7du3Rz0L0QsMDgEAKUOUG6IcAOAXLDbhok8Af8jJyVFZWZmqq6sjrq+uro74EBSv8FLlJGPbDkAiynEAUY4goH+A9ECfGBabAHra7t27tXHjxtbLmzZtUl1dnQoKCjRkyBDNnTtX06ZN0+jRozVmzBgtX75cDQ0NmjlzpoenNgwOY+jKpxYSzQAkotxFlAPJ5/dPVQbgX/SJoU8Mi02gZ61fv14TJkxovTx37lxJ0vTp07VixQpNnTpVjY2NWrRokbZs2aLS0lKtXr1axcXFXh25FYPDGBL91EKGhgAkotxFlBuiHMnGpyoDQNfRJ4Y+AXre+PHj5ThOp7eZNWuWZs2a1UMnih/vcQgASCqi3BDlCAqWp4D/sdiEiz4BkCgGh0lAMAOQiHIcQJQDAPyCPjEsNgGgaxgcdhNDQwASUe4iyoFgoYMAf6NPDH1iWGwC6Iq43uPwiCOOUFZWVlx3uHPnzm4dCADSDVFuiHJDlPcc+gQAcDD0iaFPAHRVXIPDJUuWtP7/jY2NuuOOOzRp0iSNGTNGkvTnP/9ZVVVVuuWWW1JySL9iyw4Ahig3RHnPok+8RQcB/sZiEy76BEB3xDU4nD59euv/f9lll2nRokW64YYbWq+bPXu27r33Xj399NO68cYbk39KHyKWAUhEOQ4gynsefQIAHaNPDItNAOi+hN/jsKqqSl/60peirp80aZKefvrppBzKD8LhsEpKSlReXu71UQD4FFFuiHL4AX0CAIY+MfSJYbEJoLsSHhwOGDBAv/nNb6KuX7VqlQYMGJCUQ/lBKBRSfX29ampqor7Hsw0BEOWGKDdEuffok55FCwHwM/rE0CcAkiGulyq3tXDhQs2YMUP/8z//0/oeQi+88IKefPJJ/fSnP036Af0i64ijlZV7mNfHAADfIMoNUW5OyM/z9PGD2ic9hUEhkB5YbMJFnxiv+wTIBAkPDq+66iqddNJJ+o//+A899thjchxHJSUlev7553X66aen4owA4CtEOVxEuRnev7f2NH/k6Rnok+RhSAikJ/rEsNiEyw99AmSChAaHn376qa677jrdcsst+uUvf5mqMwGAbxHlhiiHa3j/3l4fgT7pJgaFQPqjTwx9YlhsAkimhN7j8NBDD+3w/YMAIAiIckOUG6LcP+iT+GUVHBP1BQCZgD4x9Inxw2ITyBQJfzjKJZdcolWrVqXgKAAAvyPKDVFu/BTl9Ek0hoRAMLDYhIs+MX7qEyATJPweh8cff7xuv/12rVu3TmVlZerTJ/JfTrNnz07a4QDAL4hyuIhy47cop094yTEQRPSJYbEJl9/6BMgECQ8Of/rTn6p///6qra1VbW1txPeysrICEeYAgoUoN0Q5XH6M8qD2SdYRRysr9zCvjwHAA/SJoU8Mi00AqZLw4HDTpk2pOIfvhMNhhcNhtbS0eH0UAB4iyg1Rbohy/6JPACB46BNDnxg/LjaBTJDwexy25TiOHMdJ1ll8JRQKqb6+XjU1NV4fBQA8RZQbotykQ5TTJwAyHYtNIFI69AmQrro0OHzwwQd1yimnqHfv3urdu7dGjBihhx56KNlnAwBPEeVwMTQ0fo9y+gRAENAnhsWmoVH83ydAukv4pcqLFy/WLbfcohtuuEFnnHGGHMfR888/r5kzZ2rHjh268cYbU3FOAOhRRLkhyuHye5TTJwAQHPSJYWgIoCckPDj88Y9/rGXLlunKK69sve6iiy7SySefrAULFhDmANIeQ0NDlBuiPD3QJwCCgEaBiz4xfl9sApkg4Zcqb9myRWPHjo26fuzYsdqyZUtSDgUA8BZDQ0OUm3SIcvoEQKZjaGhoFLjSoU+ATJDw4PD444/XI488EnX9ypUrdcIJJyTlUADgFaIcLoaGJl2inD4BkMnoE8PQ0NAoAHpSwi9VXrhwoaZOnao1a9bojDPOUFZWlv70pz/pj3/8Y4fBDgDpgig3RDlc6TI0lOgTAMh09IlhaGjSqVGAdJfwMw4vu+wy/eUvf9HAgQO1atUqPfbYYxo4cKBefPFFXXLJJak4IwCkHENDQ5Qbojz90CcAMhWNAhd9YhgaAj0r4WccSlJZWZl+8YtfJPssAAAPMTQ0RLlJxyinTwBkGoaGhkaBKx37BEh3XRoctrS0aNWqVXr99deVlZWlkpISXXjhherVq1eyzwcAKUeUw8XQ0KRrlNMnADIJfWIYGhoaBYBXEh4cbty4Ueeff77ee+89DR8+XI7j6M0339TgwYP1+9//Xscdd1wqzgkAKUGUG6IcrnQdGtInAJB56BPD0NCka6MA6S7h9zicPXu2jj32WG3evFkvvfSSNmzYoIaGBg0bNkyzZ89OxRkBAClElBuiPL3RJwAyCYtNuOgTw9AQ8E7Czzh87rnn9MILL6igoKD1ugEDBujuu+/WGWeckdTDAUAqEeVwEeUmnaOcPgGQKegTw2ITrnTuEyATJPyMw9zcXH300UdR1+/evVs5OTlJOZQfhMNhlZSUqLy83OujAEgBotwQ5XCle5TTJwAyAX1i6BPDYhOAHyQ8OLzgggt03XXX6S9/+Yscx5HjOHrhhRc0c+ZMXXjhhak4oydCoZDq6+tVU1Pj9VEAJBlRbohyQ5RnBvoEADIDfWLoE5Pui00gEyQ8OPyP//gPHXfccRozZozy8vKUl5enM844Q8cff7x+9KMfpeKMAIAkI8oNUW4yIcrpEwDpjsUmXPSJyYQ+ATJBwu9x2L9/f/32t7/Vxo0b9frrr8txHJWUlOj4449PxfkAIKmIcriIcpMpUU6fAEhn9IlhsQlXpvQJkAkSHhy6jj/+eGIcQFohyg1RDlcmRjl9AiDd0CeGPjEsNgH4TcIvVb788st19913R11/zz336Mtf/nJSDgUAyUaUG6LcEOWZhz4BgPRFnxj6xGTiYhNIZwkPDp977jmdf/75Udd/6Utf0po1a5JyKABA8hHlhig3mRbl9AmAdMRiEy76xGRanwCZIOHB4e7du5WTkxN1/aGHHqqmpqakHAoAkokoh4soN5kY5fQJgHRDnxgWm3BlYp8AmSDhwWFpaalWrlwZdf2vfvUrlZSUJOVQAJAsRLkhyuHK1CinTwCkE/rE0CeGxSYAP0v4w1FuueUWXXbZZfrb3/6mc845R5L0xz/+Uf/1X/+lRx99NOkHBICuIsoNUW6I8sxGnwBAeqFPDH1iMnWxCWSChAeHF154oVatWqW77rpLv/71r9W7d2+NGDFCTz/9tM4+++xUnBEA0EVEuSHKTSZHOX0CIF2w2ISLPjGZ3CdAJkh4cChJ559/fodvQA4AfkGUw0WUmyBEOX0CwO/oE8NiE64g9AmQ7hJ+j8O2Zs2apR07diTrLACQFES5IcrhClqU0ycA/Ig+MfSJYbEJIF10a3D4i1/8gk8qBOArRLkhyg1RHkz0CQD4E31i6BMTtMUmkK66NTh0HCdZ5wAAJAlRbohyE8Qop08A+A2LTbjoExPEPgHSVbcGhwDgJ0Q5XES5IcoBwHv0iWGxCRd9AqSXhD8cpbm5WX362H+QffTRR0k/EAB0BVFuiHK4ghbl9AkAP6JPDH1iWGwCSEcJP+OwsLBQ11xzjf70pz+l4jwps2fPHhUXF+umm27y+igAkowoN0S5IcqDiT4BAH+iTwx9YoK22AQyQcKDw//6r//Srl27dO655+rEE0/U3Xffrffffz8VZ0uqO++8U6effrrXxwCAlCDKDVFughjl9AkAv2GxCRd9YoLYJ0AmSPilylOmTNGUKVPU2NioBx98UCtWrNAtt9yiSZMm6ZprrtGFF16o7OyE7zal3nrrLf3v//6vpkyZoldffdXr4wBIIqIcLqLcBDXK6RMAfkKfGBabcAW1T9JR/QfNyvkky+tj+Nq+j5u9PkKP6vKHowwYMEA33nijXn75ZS1evFhPP/20Lr/8chUVFenWW2/Vnj174rqfNWvWaMqUKSoqKlJWVpZWrVoVdZulS5dq2LBhysvLU1lZmdauXZvQWW+66SZVVlYm9DMA/I8oN0Q5XEQ5fQLAe/SJoU8Mi00A6a7Lq/etW7fqwQcf1AMPPKCGhgZdfvnlmjFjht5//33dfffdeuGFF/TUU08d9H6am5s1cuRIXX311brsssuivr9y5UrNmTNHS5cu1RlnnKH7779fFRUVqq+v15AhQyRJZWVl2rt3b9TPPvXUU6qpqdGJJ56oE088UevWrevqrwvAZ4hyQ5Qbohwu+gQAvEefGPrEsNgE0lvCg8PHHntMDzzwgKqqqlRSUqJQKKR//ud/Vv/+/VtvM2rUKJ166qlx3V9FRYUqKipifn/x4sWaMWOGrr32WknSkiVLVFVVpWXLlrVu6Wtra2P+/AsvvKBf/epXevTRR7V79259+umn6tevn2699dYOb793796IyG9qaorr9wCAnkaUG6LcBD3K6RMAfsBiEy76xAS9T4BMkPBLla+++moVFRXp+eefV11dnW644YaIKJekY489VvPnz+/24fbt26fa2lpNnDgx4vqJEyfGvZ2vrKzU5s2b9c477+j73/++vvGNb8SMcvf2+fn5rV+DBw/u1u8AIPmIcriIckOU0ycAvEefGBabcNEnQGZI+BmHW7Zs0WGHHdbpbXr37q3bbruty4dy7dixQy0tLSosLIy4vrCwUFu3bu32/Xdk3rx5mjt3buvlpqYm4hzwEaLcEOVwEeWGPgHgJfrE0CeGxSaATJLw4PBgUZ4KWVmRn+jjOE7UdfG46qqrDnqb3Nxc5ebmJnzfAFKPKDdEuSHK0RZ9AgDeok8MfWJYbAKZo8ufqtwTBg4cqF69ekVt77dv3x615QeAICDKDVFuiHJv0CcA2mKxCRd9YugTILP4enCYk5OjsrIyVVdXR1xfXV2tsWPHpvSxw+GwSkpKVF5entLHARAfohwuotwQ5d6hTwC46BPDYhMu+gTIPAm/VDnZdu/erY0bN7Ze3rRpk+rq6lRQUKAhQ4Zo7ty5mjZtmkaPHq0xY8Zo+fLlamho0MyZM1N6rlAopFAopKamJuXn56f0sQB0jig3RDlcRHnq0ScADoY+MfSJYbEJIFN1eXC4ceNG/e1vf9NZZ52l3r17d/l9fdavX68JEya0Xnbf+Hv69OlasWKFpk6dqsbGRi1atEhbtmxRaWmpVq9ereLi4q4eHUAaIcoNUW6IchwMfQIAPYc+MfSJYbEJZKaEB4eNjY2aOnWqnnnmGWVlZemtt97Sscceq2uvvVb9+/fXD37wg4Tub/z48XIcp9PbzJo1S7NmzUr0qACQEYhyQ5Qborxj9AmAnsRiEy76xNAnQOZK+D0Ob7zxRmVnZ6uhoSHiEwynTp2qJ598MqmH8xLvIQR4jyiHiyg3RHls9AmAnkKfGBabcNEnQGZL+BmHTz31lKqqqnTMMcdEXH/CCSfo3XffTdrBvMZ7CAHeIsoNUQ4XUd45+gRAT6BPDH1iWGwCCIKEn3HY3Nwcscl37dixQ7m5uUk5FIBgI8oNUW6IcsSDPgGAnkGfGPrEsNgEMl/Cg8OzzjpLDz74YOvlrKws7d+/X/fcc0/Em4gDALqOKDdEuSHKD44+AZBqLDbhok8MfQIEQ8IvVb7nnns0fvx4rV+/Xvv27dN3vvMdvfbaa9q5c6eef/75VJzRE+FwWOFwWC0tLV4fBQgUohwuotwQ5fGhTwCkEn1iWGzCRZ8AwZHwMw5LSkr017/+VV/4whd03nnnqbm5WZdeeqk2bNig4447LhVn9EQoFFJ9fb1qamq8PgoQGES5IcrhIsrjR58ASBX6xNAnhsUmgKBJ+BmHknTkkUdq4cKFyT4LgAAjyg1RbohydAV9AgCpQZ8Y+sSw2ASCJeFnHD7wwAN69NFHo65/9NFH9fOf/zwphwKAICLKDVFuiPLE0CcAUoHFJlz0iaFPgOBJeHB49913a+DAgVHXDxo0SHfddVdSDgUgWIhyuIhyQ5Qnjj4BkGz0iWGxCRd9AgRTwoPDd999V8OGDYu6vri4WA0NDUk5lB+Ew2GVlJSovLzc66MAGY0oN0Q5XER519AnAJKJPjH0iWGxCSDIEh4cDho0SH/961+jrn/55Zc1YMCApBzKD3jzcSD1iHJDlBuiHN1BnwBActEnhj4xLDaB4Ep4cPiVr3xFs2fP1rPPPquWlha1tLTomWee0Te/+U195StfScUZASBjEeWGKDdEedfRJwCShcUmEIk+AYIt4U9VvuOOO/Tuu+/q3HPPVXa2/fj+/ft15ZVX8h5CAOJGlMPF0NAQ5d1DnwBIBvrEsNg0NAp9AiDBwaHjONqyZYseeOAB3XHHHaqrq1Pv3r11yimnqLi4OFVnBJBhiHJDlMNFlHcPfQIgGegTQ58YhoYAYBIeHJ5wwgl67bXXdMIJJ+iEE05I1bkAZCii3BDlhihHMtAnAJAc9ImhTwyLTQBSgu9xeMghh+iEE05QY2Njqs7jG3xqIYBUIcoNUW6I8u6jTwB0F4tNIBJ9AsCV8Iej/Pu//7u+/e1v69VXX03FeXyDTy0Eko8oh4uhoSHKk4c+AdBV9IlhsWloFPoEQKSEPxzln//5n7Vnzx6NHDlSOTk56t078l8qO3fuTNrhAGQOotwQ5XAR5clFnwDoCvrE0CeGoSEAREt4cLhkyZIUHANAJiPKDVFuiHKkAn0CAF1Dnxj6xLDYBNBewoPD6dOnp+IcAJDRiHJDlBuiPPnoEwCJYrEJRKJPAHQk4cFhQ0NDp98fMmRIlw8DIPMQ5XAxNDREeWrQJwASQZ8YFpuGRqFPAMSW8OBw6NChysrKivn9lpaWbh0IQOYgyg1RDhdRnjr0CYB40SeGPjEMDQGgcwkPDjds2BBx+dNPP9WGDRu0ePFi3XnnnUk7GID0RpQbotwQ5Ug1+gQA4kefGPrEsNgE0JmEB4cjR46Mum706NEqKirSPffco0svvTQpB/NaOBxWOBzmGQoAuowoN0S5IcpTiz4BEA8Wm0Ak+gTAwRySrDs68cQTVVNTk6y781woFFJ9fX1G/U5ATyHK4WJoaIhy79AnAFz0iWGxaWgU+gRAfBJ+xmFTU1PEZcdxtGXLFi1YsEAnnHBC0g4GID0R5YYoh4so7xn0CYDO0CeGPjEMDQEgfgkPDvv37x/15uOO42jw4MH61a9+lbSDAUg/RLkhyg1Rjp5EnwBA5+gTQ58YFpsA4pXw4PDZZ5+NuHzIIYfoc5/7nI4//nhlZyd8dwCQUYhyQ5Qborzn0CcAYmGxCUSiTwAkIuGSPvvss1NxDgBpjiiHi6GhIcp7Fn0CoCP0iWGxaWgU+gRA4rq0gv/b3/6mJUuW6PXXX1dWVpZOOukkffOb39Rxxx2X7PMBSANEuSHK4SLKvUGfAGiLPjH0iWFoCABdk/CnKldVVamkpEQvvviiRowYodLSUv3lL3/RySefrOrq6lScEYCPEeWGKDdEObxCnwBANPrE0CeGxSaArkj4GYc333yzbrzxRt19991R13/3u9/Veeedl7TDAUA6IMoNUW6Icm/QJwDaYrEJRKJPAHRVws84fP311zVjxoyo66+55hrV19cn5VB+EA6HVVJSovLycq+PAvgWUQ4XQ0NDlHuHPgHgok8Mi01Do9AnALon4cHh5z73OdXV1UVdX1dXp0GDBiXjTL4QCoVUX1+vmpoar48C+BJRbohyuIhyb9EnACT6xEWfGIaGANB9Cb9U+Rvf+Iauu+46vf322xo7dqyysrL0pz/9Sf/2b/+mb33rW6k4IwCfIcoNUW6IcvgBfQIAhj4x9IlhsQmguxIeHN5yyy06/PDD9YMf/EDz5s2TJBUVFWnBggWaPXt20g8IAH5ElBui3BDl3qNPALDYBCLRJwCSIeHBYVZWlm688UbdeOON+uijjyRJhx/O/0gDQUGUw8XQ0BDlZqjHfw70CRBs9IlhsWloFLi87hMgEyT8Hocff/yx9uzZI8mCfOfOnVqyZImeeuqppB8OgL8Q5YYoh4uhoTn2CO//HOgTILjoE0OfGIaGhkbxR58AmSDhweFFF12kBx98UJL04Ycf6gtf+IJ+8IMf6KKLLtKyZcuSfkAA/kCUG6LcEOVw+SXK6RMAQUafGPrEMDQEMtMll1yiI444Qpdffnlc1ydLwoPDl156SePGjZMk/frXv9aRRx6pd999Vw8++KD+4z/+I+kHBAC/IMoNUW6Icn+hT4BgYrEJF31i6BPjl8UmkEyzZ89uXZTHc32yJDw43LNnT+t7Bj311FO69NJLdcghh+iLX/yi3n333aQfEID3iHK4iHJDlBs/RTl9AgQPfWJYbAKR/NQnQDJNmDChw/fwjnV9siQ8ODz++OO1atUqbd68WVVVVZo4caIkafv27erXr1/SDwjAW0S5IcrhYmho/Bbl9AkQLPSJoU8Mi01DowD+tWbNGk2ZMkVFRUXKysrSqlWrom6zdOlSDRs2THl5eSorK9PatWt7/qAdSHhweOutt+qmm27S0KFDdfrpp2vMmDGSbLt/6qmnJv2AALxDlBui3BDlcPltaCjRJwCChz4x9IlhaGj82CiAJDU3N2vkyJG69957O/z+ypUrNWfOHM2fP18bNmzQuHHjVFFRoYaGhh4+abTsRH/g8ssv15lnnqktW7Zo5MiRrdefe+65uuSSS5J6OADwGlFuiHJDlPsXfQIEB4tNIBJ9Yhgaoqc1NTVFXM7NzVVubm6Ht62oqFBFRUXM+1q8eLFmzJiha6+9VpK0ZMkSVVVVadmyZaqsrEzeobsg4cGhJB155JE68sgjI677whe+kJQDAfAHohwuhoaGKDd+jnL6BMh89IlhsWloFLj83Cfp5pV/NKtXnten8LeWT5olSYMHD464/rbbbtOCBQsSvr99+/aptrZWN998c8T1EydO1Lp167p8zmTp0uAQQGYjyg1RDhdDQ0OUA4D36BPD0NDQKIB3Nm/eHPFe2rGebXgwO3bsUEtLiwoLCyOuLyws1NatW1svT5o0SS+99JKam5t1zDHH6De/+Y3Ky8tjXp8sDA5jCIfDCofDamlp8fooQI9iaGiIckOUw8XQ0B/oEwQZjQIXfWIYGhoaBV7p169fUj+ELysrK+Ky4zgR11VVVXX4c7GuT5aEPxwlKEKhkOrr61VTU+P1UQD0MIaGhig3RDn8hD5BUDE0NDQKXPSJYWiITDBw4ED16tUr4tmFkrR9+/aoZyF6gcEhgFZEOVwMDQ1RbohyAF6iTwxDQ0OjwEWfIFPk5OSorKxM1dXVEddXV1dr7NixHp3qAF6qDEASUe4iyuFiaGiIcgDwHn1iGBoaGgVIP7t379bGjRtbL2/atEl1dXUqKCjQkCFDNHfuXE2bNk2jR4/WmDFjtHz5cjU0NGjmzJkentowOATA0PD/EOWGKIeLoSEAr9EocNEnhqGhoVGQbtavX68JEya0Xp47d64kafr06VqxYoWmTp2qxsZGLVq0SFu2bFFpaalWr16t4uJir47cisEhAIihoYsoN0Q5AHiPoaGhUYBIDA2RjsaPHy/HcTq9zaxZszRr1qweOlH8eI9DIOCIcrgYGhqGhoYoB+Al+sQwNDQ0iqFR6BPACwwOgQAjyg1RDhdBbohyAPAefWIYGhoaBYBXGBwCCDSi3BDlcDE0BOA1Fptw0SeGoaGhUQBvMDgEAoooh4soN0Q5AHiPPjEsNoFIDA0B7zA4BAKIKDdEOVwMDQ1RDsBL9ImhTwyLTUOj0CeA1xgcAgFDlBui3BDlcBHlAOA9+sTQJ4ahIQA/YHAIIHCIckOUG6IcALzHYhMu+sTQJ4bFJuA9BodAgBDlcBHlhig3RDkAL9EnhsUmEIk+AfyBwSEQEES5IcrhYmhoiHIAXqJPDH1iWGwaGoU+AfyEwSEQAES5IcoNUQ4XUQ4A3qNPDH1iGBoC8BsGhwACgSg3RLkhygHAeyw24aJPDH1iWGwC/hKIwWF2drZGjRqlUaNG6dprr/X6OECPIsrhIsoNUW6Icu/RJwgy+sSw2AQi0SeA/2R7fYCe0L9/f9XV1Xl9DKDHEeWGKIeLoaEhyv2BPkFQ0SeGPjEsNg2NQp8AfhWIZxwCQUSUG6LcEOVwEeUA4D36xNAnhqEhAD/zfHC4Zs0aTZkyRUVFRcrKytKqVauibrN06VINGzZMeXl5Kisr09q1axN6jKamJpWVlenMM8/Uc889l6STA/A7otwQ5YYoRyLoEyA1WGzCRZ8Y+sSw2AT8y/OXKjc3N2vkyJG6+uqrddlll0V9f+XKlZozZ46WLl2qM844Q/fff78qKipUX1+vIUOGSJLKysq0d+/eqJ996qmnVFRUpHfeeUdFRUV69dVXdf755+uVV15Rv379Uv67AV4hyuEiyg1Rbojy+NEnQPLRJ4bFJhCJPgH8zfPBYUVFhSoqKmJ+f/HixZoxY0brm4YvWbJEVVVVWrZsmSorKyVJtbW1nT5GUVGRJKm0tFQlJSV68803NXr06A5vu3fv3ojIb2pqSuj3AbxGlBuiHC6GhoYoTwx9AiQXfWLoE8Ni09Ao9AmQDjx/qXJn9u3bp9raWk2cODHi+okTJ2rdunVx3ccHH3zQGtrvvfee6uvrdeyxx8a8fWVlpfLz81u/Bg8e3PVfAOhhRLkhyg1RDhdRnlz0CYCuoE8MfWIYGgJIF74eHO7YsUMtLS0qLCyMuL6wsFBbt26N6z5ef/11jR49WiNHjtQFF1ygH/3oRyooKIh5+3nz5mnXrl2tX5s3b+7W7wCgZxHlhig3RDlSgT4BEsNiEy76BG2x2ATSg+cvVY5HVlZWxGXHcaKui2Xs2LF65ZVX4n6s3Nxc5ebmJnQ+wA+IcriIcsPQ0BDlqUOfAAdHnxgWm2iLRqFPgHTi62ccDhw4UL169Yra3m/fvj1qyw8EGVFuiHK4CHJDlKcGfQLEhz4x9IlhsWloFPoESDe+Hhzm5OSorKxM1dXVEddXV1dr7NixKX3scDiskpISlZeXp/RxgO4iyg1RbohyuIjy1KFPAMSLPjH0iWFoCCAdef5S5d27d2vjxo2tlzdt2qS6ujoVFBRoyJAhmjt3rqZNm6bRo0drzJgxWr58uRoaGjRz5syUnisUCikUCqmpqUn5+fkpfSwA3UOUG6LcEOVIBvoE6B4Wm3DRJ2iLxSaQfjwfHK5fv14TJkxovTx37lxJ0vTp07VixQpNnTpVjY2NWrRokbZs2aLS0lKtXr1axcXFXh0Z8A2iHC6i3DA0NER599EnQNfRJ4bFJtqiUegTIF15PjgcP368HMfp9DazZs3SrFmzeuhEQHogyg1RDhdBbojy5KBPgK6hTwx9YlhsGhqFPgHSma/f49BLvIcQ/IwoN0S5IcrhIsozH30C+B99YugTw9AQQLpjcBhDKBRSfX29ampqvD4KgA4Q5YYoN0Q5goI+gZ+x2ISLPkFbLDaB9MbgEEgzRDlcRLlhaGiIcgBeok8Mi020RaPQJ0AmYHAIpBGi3BDlcBHkhigH4CX6xNAnhsWmoVHoEyBTMDiMgfcQgt8Q5YYoN0Q5XER5sNAngD/RJ4Y+MQwNAWQSBocx8B5CgP8Q5YYoN0Q5gog+gd+w2ISLPkFbLDaBzMHgEEgDRDlcRLlhaGiIcgBeok8Mi020RaPQJ0CmYXAI+BxRbohyuAhyQ5QD8BJ9YugTw2LT0Cj0CZCJGBwCPkaUG6LcEOVwEeUA4D36xNAnhqEhgEzF4DAG3nwc8Aei3BDlhihH0NEn8AMWm3DRJ2iLxSaQmRgcxsCbj8NrRDlcRLlhaGiI8mCjT+A1+sSw2ERbNAp9AmQyBoeADxHlhiiHiyA3RDkAL9Enhj4xLDYNjUKfAJmOwSHgM0S5IcoNUQ4XUQ4A3qNPDH0CAMHB4BCA7xDlhig3bPIBwHssNuGiTw6gUVhsAkHA4BDwEaIcLqLcEOSGKAfgJfrEsNhEWzQKfQIEBYPDGPjUQvQ0otwQ5XAR5IYoR1v0CXoafWLoE8Ni09Ao9AkQJAwOY+BTC9GTiHJDlBuiHC6iHO3RJ0DPo08MfQIAwcTgEIAvEOWGKDds8gHAeyw24aJPDqBRWGwCQcPgEPAYUQ4XUW4IckOUA/ASfWJYbKItGoU+AYKIwSHgIaLcEOVwEeSGKAfgJfrE0CeGxaahUQAEFYNDwCNEuSHKDVEOF0NDAPAefWLoE7RFowDBxOAQgGeIckOUGzb5AOA9Fptw0ScH0CgMDYEgY3AIeIAoh4soNwS5IcoBeIk+MSw20RaNQp8AQZft9QH8KhwOKxwOq6WlxeujIMMQ5YYoh4sgN0Q54kGfIFXoE0OfGBabhkZBEL21dbeycvd7fQxfc/bu8foIPYpnHMYQCoVUX1+vmpoar4+CDEKUG6LcEOVwMTREvOgTIHXoE0OfoC0aBQCDQwA9iig3RLlhkw8A3mOxCUSjURgaAjAMDoEeQpTDxdDQEOSGKAfgJfrEsNg0NIqhUegTAAcwOAR6AFFuiHK4CHJDlAPwEn1i6BPD0NDQKAAQicEhkGJEuSHKDVEOF0NDAPAefWLoE7RFowBoi8EhgJQjyg1RbtjkA4D3WGwC0WgUhoYAojE4BFKIKIeLoaEhyA1RDsBL9IlhsWloFEOj0CcAOsbgEEgRotwQ5XAR5IYoB+Al+sTQJ4ahIQDgYBgcxhAOh1VSUqLy8nKvj4I0RJQbotwQ5XAxNER30SdA99Enhj45gOUmjQIgNgaHMYRCIdXX16umpsbrowBpiSg3RLkhyIHkoE/QHSw2gWg0CkNDAJ1jcAgkGVEOF0NDQ5AbohyAl+gTw2LT0CiGRqFPABwcg0MgiYhyQ5TDRZAbohyAl+gTQ58YhoYAgEQwOASShCg3RLkhyuFiaAgA3qNPDH1yAMtNGgVAfBgcAkgaotwQ5YYgBwDvsdgEotEoDA0BxI/BIZAERDlcDA0NQW6IcgBeok8Mi01DoxgahT4BkBgGh0A3EeWGKIeLIDdEOQAv0SeGPjEMDQEAXcXgEOgGotwQ5YYoh4uhIQB4jz4x9MkBLDdpFACJY3AIoFuIckOUG4IcALzHYhOIRqMwNATQNQwOgS4iyuFiaGgIckOUA/ASfWJYbBoaxdAo9AmArmNwCHQBUW6IcrgIckOUA/ASfWLoE8PQEACQDAwOgQQR5YYoN0Q5XAwNAcB79ImhTw5guUmjAOgeBocAEkaUG6LcEOQA4D0Wm0A0GoWhIYDuY3AYQzgcVklJicrLy70+CnyEKIeLoaEhyA1Rjp5Cn6Aj9IlhsWloFLjoEwDJwOAwhlAopPr6etXU1Hh9FPgEUW6IcrgYGhqi3HyOvx96BH2C9ugTQ58YhoZmeP/edAok0SdAMjA4BOJAlBui3BDlcDE0NIOOOMzrIwAIMPrE0CeGgaGhUQAkC4NDAHEhyg1RbohyuBgaAt5hsQkXfWLoE7RFowDJweAQOAiiHC6i3BDlhk0+AC/RJ4bFJhCNRmFoCCQTg0OgE0S5IcrhYmhoCHJDlAPeoE8MfWJYbBoaxdAo9AmQbAwOgRiIckOUG6IcLoLcEOUAvESfGPrEMDQEgNRhcAggJqLcEOWGKIeLoSHgHRabQCT65ACWmzQKkAoMDoEOEOVwMTQ0RLkhyAF4iT4xLDYNjYK2aBSGhkCqMDgE2iHKDVEOF0NDQ5AbohyAl+gTw9DQ0Chw0SdA6jA4BNpgaGiIckOUw8XQ0BDlgHdoFLjoE8PQ8AA6BUAqMTgEEIGhoSHKDVEOF0NDwDsMDQ2NAhd9cgBDQxoFSDUGh8D/IcrhYmhoiHJDkAPwEn1iGBoaGgWIxNAQSD0Gh4CIchdRDhdDQ8PQ0BDlALxEnxiGhoZGOYBOAdATGBwi8BgaGqLcEOVwEeOGoSHgHRoFLvrEMDQ8gE6hUYCewuAQAEPD/0OUG6IcLoIc8A5DQ0OjwEWfoC0aBeg5DA4RaEQ5XAwNDVFu2OID8BJ9YhgaGhoF7QW9UxgaAj0rEIPDTZs2acKECSopKdEpp5yi5uZmr48EHyDKDVEOF0NDE/QYdxHlqUefALHRJ4ahoaFRDqBTAPS0bK8P0BOuuuoq3XHHHRo3bpx27typ3Nxcr48E+AJRbohyuIhxw9CwZ9An6AiLTbjoE8PQEG3RKEDPy/jB4WuvvaZDDz1U48aNkyQVFBR4fCL4AVEOF1FuiHK4CPKeQZ+gI/SJYbEJdCzoC04aBfCG5y9VXrNmjaZMmaKioiJlZWVp1apVUbdZunSphg0bpry8PJWVlWnt2rVx3/9bb72lvn376sILL9Rpp52mu+66K4mnRzoiyg1RDhdDQxP0GEck+gQ9jT4x9IlhsWlolAOC3ikMDQHveP6Mw+bmZo0cOVJXX321Lrvssqjvr1y5UnPmzNHSpUt1xhln6P7771dFRYXq6+s1ZMgQSVJZWZn27t0b9bNPPfWUPv30U61du1Z1dXUaNGiQvvSlL6m8vFznnXdeyn83+A9RbohyQ5TDFfQYdxHlB9AnQM+jTwx9YhgaHkCnAPCS54PDiooKVVRUxPz+4sWLNWPGDF177bWSpCVLlqiqqkrLli1TZWWlJKm2tjbmzx9zzDEqLy/X4MGDJUmTJ09WXV1dzDDfu3dvROQ3NTUl/DsBfkaUG6LcEOVwMTSMRJ+gJ7HYhIs+MfQJ2qJRAG95/lLlzuzbt0+1tbWaOHFixPUTJ07UunXr4rqP8vJybdu2TR988IH279+vNWvW6KSTTop5+8rKSuXn57d+uUGP9EeUw0WUG6LcsMVHougTJBN9YlhsAh0LeqcwNAS85+vB4Y4dO9TS0qLCwsKI6wsLC7V169a47iM7O1t33XWXzjrrLI0YMUInnHCCLrjggpi3nzdvnnbt2tX6tXnz5m79DvAHotwQ5XAxNDRBj3EXUZ4Y+gTJQp8Y+sSw2DQ0ygFB7xT6BPAHz1+qHI+srKyIy47jRF3XmYO93Kit3Nxc5ebmJnQ++BtRbohyQ5TDFfQYdxHlXUefAN1Hnxj6xDA0BAD/8fUzDgcOHKhevXpFbe+3b98eteUHEBtRbohyQ5TDxdCwa+gTJAOLTbjoE0OfRAr6gpNGAfzD14PDnJwclZWVqbq6OuL66upqjR07NqWPHQ6HVVJSovLy8pQ+DlKLKIeLKDdEuQl6jKN76BN0F31iWGwCHQt6pzA0BBL3xhtvaNSoUa1fvXv31qpVq5Jy356/VHn37t3auHFj6+VNmzaprq5OBQUFGjJkiObOnatp06Zp9OjRGjNmjJYvX66GhgbNnDkzpecKhUIKhUJqampSfn5+Sh8LqUGUG6IcLoaGJugx7iLKO0efIFXoE0OfGBabhkYBgO4ZPny46urqJFnHDh06VOedd15S7tvzweH69es1YcKE1stz586VJE2fPl0rVqzQ1KlT1djYqEWLFmnLli0qLS3V6tWrVVxc7NWRkQaIckOUG6IcLoaGhqHhwdEnQOrQJ4Y+MQwNIwW9VWgUoPsef/xxnXvuuerTJzn/O+P5S5XHjx8vx3GivlasWNF6m1mzZumdd97R3r17VVtbq7POOsu7AwNpgig3RLkhyuEiyONDnyAVWGzCRZ8Y+iQSQ0MaBZlrzZo1mjJlioqKipSVldXhy4iXLl2qYcOGKS8vT2VlZVq7dm2XHuuRRx7R1KlTu3niAzwfHPoV7yGUvohyuIhyQ5SboMc4MgN9kr7oE8NiE0BHGBoi0zU3N2vkyJG69957O/z+ypUrNWfOHM2fP18bNmzQuHHjVFFRoYaGhtbblJWVqbS0NOrr/fffb71NU1OTnn/+eU2ePDlpZ89yHMdJ2r1lIPc9hLL/5WFl5fIvM78jyg1RbhgcMjR0MTQ0qYzyjz5q0oklQ7Rr1y7169cvZY8DQ5+kF/rE0CeGPjE0SqSgt0qqGoU+iR9tET9n7x59tuxr2rx5c8TfV7m5ucrNzT3oz2dlZek3v/mNLr744tbrTj/9dJ122mlatmxZ63UnnXSSLr74YlVWVsZ9toceekhVVVX6xS9+EffPHIzn73EIJAtRbohyQ5TDFfQQd7HJB+Al+sTQJ4ahYaSgtwqN4i/OB3+XcoL99+TBOPs+liQNHjw44vrbbrtNCxYsSPj+9u3bp9raWt18880R10+cOFHr1q1L6L4eeeQRXXfddQmfoTMMDoEMQpQbotwQ5XAR5IB3WGzCRZ8Y+gRt0ShIZx0947ArduzYoZaWFhUWFkZcX1hYqK1bt8Z9P7t27dKLL76o//7v/+7SOWJhcBhDOBxWOBxWS0uL10dBHIhyuIhyQ5SboG/wkXnok/RCnxgWm0BsQW4VhoZId/369UvqS+CzsrIiLjuOE3VdZ/Lz87Vt27akncfFh6PEEAqFVF9fr5qaGq+PgoMgyg1RDhdDQxPkEG+LKM8s9En6oE8MfWJYbBoaJRKtAkCSBg4cqF69ekU9u3D79u1Rz0L0AoNDpDWi3BDlhiiHixA3DA0BeIk+MfSJYWiItmgU4ICcnByVlZWpuro64vrq6mqNHTvWo1MdwEuVgTRHlBui3BDlcBHkgHdYbMJFnxj6JFqQl5w0CoJo9+7d2rhxY+vlTZs2qa6uTgUFBRoyZIjmzp2radOmafTo0RozZoyWL1+uhoYGzZw508NTGwaHSFtEOVxEuSHKTZBDHID36BPDYhOILcitwtAQQbV+/XpNmDCh9fLcuXMlSdOnT9eKFSs0depUNTY2atGiRdqyZYtKS0u1evVqFRcXe3XkVgwOY+DNx/2NKDdEOVwMDU2QQ7wtojxz0Sf+Rp8Y+sSw2DQ0CgBI48ePl+M4nd5m1qxZmjVrVg+dKH68x2EMvPm4fxHlhig3RDlcDA0NQ8PMRp/A7+gTQ58YhobRgtwrNAqQnhgcAmmIKDdEuSHK4SLIAe+w2ISLPkEsDA0BpCMGh0grRDlcRLlhaGiCHOIAvEefGBabaItGgYuhIZDeGBwibRDlhiiHiyA3DA0NUQ54gz4x9IlhsWlolGj0CoB0xeAQaYEoN0S5IcrhIsINQ0MAXqJPDH1iGBpGC3Kv0ChA+mNwGEM4HFZJSYnKy8u9PgogiSh3EeWGKIeLIA8W+sRfWGzCRZ8A0WgUIDMwOIyBTy30D6IcLqLcMDQ0Qd7eI7joE/+gTwyLTbRFo0SjVwCkOwaH8DWi3BDlcBHkhgg3bPIBb9Anhj4xLDYNjRItyL1CowCZg8EhfIsoN0S5IcrhCnKEt0WQA/ASfWLoE8PQEG3RKEBmYXAI+BhRbohyQ5TDRZAD3mGxCRd9gs4EddFJowCZh8EhfIkoh4soNwwNTVAjHIA/0CeGxSbaolGi0SsAMgmDQ/gOUW6IcrgIckOEGzb5gDfoE0OfGBabhkZBWzQKkJkYHMJXiHJDlBuiHC6GhoYgB+Al+sTQJ4ahYceC2iw0CpC5GBzGEA6HVVJSovLycq+PgoAhyg1RbohyuAhySPSJV1hswkWfoDMMDQFkIgaHMYRCIdXX16umpsbrowQGUQ4XUW4YGpqgRjjQEfqk59EnhsUm2qJRotErADIVg0P4AlFuiHK4CHJDhBs2+YA36BNDnxgWm4ZGQVs0CpD5GBzCc0S5IcoNUQ4XQ0NDkAPwEn1i6BPD0LBjQW0WGgUIBgaHgA8Q5YYoN0Q5XAQ54B0Wm3DRJ+gMQ0MAmY7BITxFlMNFlBuGhiaoEQ7AH+gTw2ITbdEoABBMDA7hGaLcEOVwEeSGoaFhkw94gz4x9IlhsWlolI4FtVloFCBYGBzCE0S5IcoNUQ5XUAO8PYIcgJfoE0OfoDNBbRYaBQgeBoeAR4hyQ5QbNvlwEeSAd1hswkWfHECjAECwMTiMIRwOq6SkROXl5V4fJeMQ5XAR5YYgN0Hd3AOJoE9Shz4xLDbRFo3SsaA2C8tNIJgYHMYQCoVUX1+vmpoar4+SUYhyQ5TDRZCboAZ4ewQ5DoY+SQ36xNAnhsWmoVE6FtRmoVGA4GJwiB5DlBui3BDlcAU1wNsjyAF4iT4x9AkQjUYBgo3BIdCDiHJDlBs2+XAR5IB3WGwC0WiUjrHsBBBEDA7RI4hyuBgaGoLcEOAAvESfGBabhkYxNErHgtosLDcBMDhEyhHlhiiHiyA3QQ3w9ghywBv0iaFPDENDQ6OgLRoFgMTgEClGlBui3BDlcDE0NAQ5AC/RJ4Y+wcEEsVtoFAAuBodAihHlhig3bPLhIsgB77DYBKLRKB0L4tAQANpicIiUIcrhYmhoCHJDgAPwEn1iWGwaGsXQKGiL5SaAthgcIiWIckOUw0WQG4aGhiAHvEGfGPrEMDQ0NEpsQewWGgVAewwOkXREuSHKDVEOVxDjuyMEOQAv0SeGPsHBBLFbaBQAHWFwCKQAUW6IcsMmHy6CHPAOi00gGo0CADgYBodIKqIcLoaGhiA3QdzaA/AP+sSw2DQ0iqFRYgtit7DcBBALg0MkDVFuiHK4CHITxPjuCEEOeIM+MfSJYWhoaJTYgtgtNAqAzjA4jCEcDqukpETl5eVeHyUtEOWGKDdEOVxBjO+OEORIFvoEXUGfGPoEAIDEMTiMIRQKqb6+XjU1NV4fBWmCKDdEuWGTDxdDQyQTfZIYFptANBoltiAuPOkUAAfD4BDdRpTDxdDQEOQmiPENwD/oE8Ni09AohkaJLYjdwtAQQDwYHKJbiHJDlMNFkJsgxndHCHLAG/SJoU8MQ0NDo6AtGgVAvBgcosuIckOUG6IcLoaGhiAH4CX6xNAniAftAgCxMTgEuoEoN0S5YZMPF0NDwDssNoFoNEpsQRwa0ikAEsHgEF1ClMPF0NAQ5CaI8Q3AP+gTw2LT0CiGRkFbDA0BJIrBIRJGlBuiHC6C3DA0NAQ54A36xNAnhqEh4hG0dqFRAHQFg0MkhCg3RLkhyuEKWnjHQpAD8BJ9YuiTA1huxka7AEB8GBwCCSLKDVFuCHK4GBoC3mGxCUSjUWIL4tCQTgHQVQwOETeiHC6GhoYgN0GMbwD+QZ8YFpuGRjE0CtpiaAigOxgcIi5EuSHK4SLIDUNDQ5AD3qBPDH1iGBoiHkFrFxoFQHdle30A+B9RbohyQ5TDFbTwjoUgN/0Pz/P6CEAg0SeGPjEsNg2NAnSds+0tKTvH62P4mvPZPq+P0KN4xiEQB6LcEOWGKIeLoaE5oh9DQ/Q8Fptw0SeGPjEMDdEWi02g+xgcolNEOVxEuSHKDVEOF0NDeIE+MSw2AQBAqjE4RExEuSHK4WJoaBgaGp5tCHiDPjH0iWGxaWgUQ6OgLZabQHIwOESHiHJDlBuiHC6C3DA0NAQ54A36xNAnhqGhoVGiBblXaBQgeTJ+cPjGG29o1KhRrV+9e/fWqlWrvD4W0gBRbohyQ5TDFeQIb4sg7x76pGtYbAKR6BMAQKpl/KcqDx8+XHV1dZKk3bt3a+jQoTrvvPO8PZTPEeVwMTQ0RLlhkw8XQ8Puo08SR58YFpuGRkFbNAraolOA5Mr4Zxy29fjjj+vcc89Vnz6ERixEuSHK4WJoaAhyw7MNkQr0CeJFnxiGhoZGMTRKx4LaLAwNgeTzfHC4Zs0aTZkyRUVFRcrKyurwZTpLly7VsGHDlJeXp7KyMq1du7ZLj/XII49o6tSp3Txx5mJoaIhyQ5TDRZCboAZ4e0EJcvrEX2gUuOgTw9AQANBTPB8cNjc3a+TIkbr33ns7/P7KlSs1Z84czZ8/Xxs2bNC4ceNUUVGhhoaG1tuUlZWptLQ06uv9999vvU1TU5Oef/55TZ48OeW/E9IXQ0NDlBuiHC6GhiYoQ0OJPvEThoaGRoGLPjmA5WbHgtotQeoUoCd5/h6HFRUVqqioiPn9xYsXa8aMGbr22mslSUuWLFFVVZWWLVumyspKSVJtbe1BH+e3v/2tJk2apLy8zv9lsnfvXu3du7f1clNTUzy/RtojyuFiaGiIckOQwxW0GKdP/IE+MQwNDY2CtmgUtBW0TgF6kufPOOzMvn37VFtbq4kTJ0ZcP3HiRK1bty6h+4r3ZUCVlZXKz89v/Ro8eHBCj5OOiHJDlMPF0NAQ5CaoW3vERp+gJ9EnhqGhoVFwMHQLgGTz9eBwx44damlpUWFhYcT1hYWF2rp1a9z3s2vXLr344ouaNGnSQW87b9487dq1q/Vr8+bNCZ87nTA0NES5IcrhYmhoiG/DFj8SfdIzaBS46BPD0PAAOgVt0SlAann+UuV4ZGVlRVx2HCfqus7k5+dr27Ztcd02NzdXubm5CZ0P6Y2hoSHKDVEOF0NDQ4zHRp+kDkNDQ6PARZ8cwNAwtiC2C50CpJ6vn3E4cOBA9erVK2p7v3379qgtPxJHlMPF0NAQ5YYgh4sY7xh9klr0iWFoaGgUAAC85evBYU5OjsrKylRdXR1xfXV1tcaOHZvSxw6HwyopKVF5eXlKH8crRLkhyuFiaGgYGpogbuwRP/oEqUafGIaGhkY5gE5BWyw4gZ7h+UuVd+/erY0bN7Ze3rRpk+rq6lRQUKAhQ4Zo7ty5mjZtmkaPHq0xY8Zo+fLlamho0MyZM1N6rlAopFAopKamJuXn56f0seANotwQ5XAR44ahoQl6jNMn3mCxCRd9YhgaHkCndC5o/RL0TgF6kueDw/Xr12vChAmtl+fOnStJmj59ulasWKGpU6eqsbFRixYt0pYtW1RaWqrVq1eruLjYqyOnPaIcLqLcEOVwBS26YyHG6RMv0CeGxSZc9MkBDA0BwDueDw7Hjx8vx3E6vc2sWbM0a9asHjpRZiPKDVEOF1FuCHK4GBoa+qRn0SeGPjEsNoHEBG3xSasAPcvX73HopUx8DyGi3BDlhiiHi6GhCVp0Iz1lYp/A0CeGPjEsNg+gU9AWQ0Og5zE4jCEUCqm+vl41NTVeHwVJRJQbotwQ5XAxNDTEuP9lYp+w2ISLPjH0yQEMDQ+OhgGQagwOA4Ioh4soN0S5IcjhYmgIL9AnhsUmABwcrQJ4g8FhABDlhiiHi6GhYWho2NQD3qBPDH1iWGwaGuUAOuXggtQwDA0B7zA4jCFT3kOIKDdEuSHK4SLGTZCCuzPEePrIlD6BoU8MfWIYGh5ApwCAfzA4jCET30MoqIhyQ5QbohwuhoaGoWF6yZQ+YbEJF31i6BMgNloF8BaDwwxGlMNFlBui3LDFh4sQhxfoE8NiE+gYnRKfoCxAaRXAewwOMxRRbohyuBgaGmLcBCW2Ab+hTwx9YlhsGhrlADoFAPyHwWEGIsoNUW6IcriIccPQ0LDBB7xBnxj6xDA0RFcEpWVoFcAfGBzGwJuPpzei3BDlhiiHKyihfTCEePpK5z5hsQkXfWLok0gsONEWrQL4B4PDGNL1zceJcriIckOUG2IcLkI8vdEn6Y3FJtAxOiV+LEEB9DQGhxmEKDdEOVwMDQ0xbghtwBv0iaFPDItNQ6MAsbHkBPyFwWGGIMoNUW6IcrgYGhqGhoYQB7xBnxj6xDA0jESrxC8IPUOrAP7D4BAZgyg3RLkhyuEKQmTHgxCHF1hswkWfGPokEkNDAPA/BocZgCiHiyg3RLkhxuFiaAgv0CeGxSbQMToF7dErgD8xOIwhXT61kCg3RDlcDA0NMW54tiEyDX2SXugTw2LT0CjojkxvGoaGgH8xOIwhHT61kCg3RLkhyuFiaGgyPbDjRYhnlnToExj6xNAnhqFhJFoFANIHg0OkNaLcEOWGKIeLoaFhaAgvsNiEiz4x9EkkhoaJy/SuoVcAf2NwmKaIcriIckOUG2IcLiIcXqBPDItNAIgPvQL4H4PDNESUG6IcLoaGhqGhyfStPOBX9ImhTwyLTUOjRKJVEkfXAPAag8M0Q5QbotwQ5XAR4oa4NmzvAW/QJ4Y+MQwNI9EqaI9eAdIDg0OkHaLcEOWGKIeLoaEhwuEFFptw0SdA8mRy29ArQPpgcJhGiHK4iHLD0NCwwYeLCIcX6BPDYhNt0SiRaBUASF8MDmMIh8MqKSlReXm510eRRJS7iHK4CHJDiJtM3sgDbdEn/kSfGBabhkaJRKugPRadQHphcBhDKBRSfX29ampqvD4KUf5/iHJDlMNFiBuGhoYIDwY/9QkMfWLoE8PQEMmSqX1DrwDph8Eh0gJRbohyQ5TDlalRnSgiHF5gsQkXfYJYWHICQPpjcOhzRDlcRLlhaGgIcbgYGsIL9IlhsYm2aJRItErXZepilGYB0hODQx8jyg1RDhdBbghxk6lRDfgdfWLoE8Ni09AoQOcYGgLpi8GhTxHlhig3RDlcDA0NQ0NDhAPeoE8MfWIYGkajV7qOxgHgNwwO4VtEuSHKDVEOF0FtGBrCCyw24aJPEAtDQ7RHswDpjcGhDxHlcBHlhqGhIcThIsDhBfrEsNhEWzRKJFqlezJxOUqzAOmPwaHPEOWGKIeLIDeEuMnEoAbSAX1i6BPDYtPQKAAAv9i8ebPGjx+vkpISjRgxQo8++mjE97OzszVq1CiNGjVK1157bUL3nZ3Mg2aScDiscDislpaWHntMotwQ5YYoh4uhoWFoaNjcB5sXfQJDnxj6xDA0jEavoD2aBeg52dnZWrJkiUaNGqXt27frtNNO0+TJk9Wnj/3vdv/+/VVXV9el++YZhzGEQiHV19erpqbG66MEClFuiHJDlMPF0NAQ4PCiT1hswkWfIBaGht2Xaa1DswA966ijjtKoUaMkSYMGDVJBQYF27tyZlPtmcOgTRDlcRLlhaGgIcbgIcHiBPjEsNtEWjQIASNSaNWs0ZcoUFRUVKSsrS6tWrYq6zdKlSzVs2DDl5eWprKxMa9eu7dJjrV+/Xvv379fgwYNbr2tqalJZWZnOPPNMPffccwndHy9V9gGi3BDlcBHkhqGhybQNPJAu6BNDnxgWm4ZGiUavdF+mtQ7LTiBac3OzRo4cqauvvlqXXXZZ1PdXrlypOXPmaOnSpTrjjDN0//33q6KiQvX19RoyZIgkqaysTHv37o362aeeekpFRUWSpMbGRl155ZX66U9/GnGbd955R0VFRXr11Vd1/vnn65VXXlG/fv3iOjuDQ48R5YYoN0Q5XES4ybSQ7ioCHPAGfWLoE8PQMBq9gvZolgzw2T45Xp/B7z7bJ8mexddWbm6ucnNzO/yRiooKVVRUxLzLxYsXa8aMGa0fXLJkyRJVVVVp2bJlqqyslCTV1tZ2eqy9e/fqkksu0bx58zR27NiI77mDxdLSUpWUlOjNN9/U6NGjO70/F4NDeI4oN0S5IcrhYmhoCHB4gcUmXPQJkFr0DvwiJydHRx55pLauXeH1UdJC3759I14KLEm33XabFixYkPB97du3T7W1tbr55psjrp84caLWrVsX1304jqOrrrpK55xzjqZNmxbxvQ8++ECHHXaYcnNz9d5776m+vl7HHnts3OdjcOghohwuotwwNDRs7+FiaAgv0CeGxSbaolGi0Stoj25Jb3l5edq0aZP27dvn9VHSguM4ysrKirgu1rMND2bHjh1qaWlRYWFhxPWFhYXaunVrXPfx/PPPa+XKlRoxYkTr+yc+9NBDOuWUU/T666/r+uuv1yGHHKKsrCz96Ec/UkFBQdznY3DoEaLcEOVwEeSGCDds3wFv0CeGPjEsNg2NEo1eSY5M6h2GhpkhLy9PeXn8tfRK+0FkR8PJWM4880zt37+/w++NHTtWr7zySpfPxacqe4AoN0S5IcrhIsJNJkV0dxDggDfoE0OfGIaGAIBUGzhwoHr16hX17MLt27dHPQvRCwwO4Qmi3BDlhiiHi6GhYWgIL7DYhIs+QWdYdKI9ugXonpycHJWVlam6ujri+urq6qgPOfECL1XuYUQ5XES5YWhoiHC4iG94gT4xLDbRFo0SjV5JnkxZltItQHx2796tjRs3tl7etGmT6urqVFBQoCFDhmju3LmaNm2aRo8erTFjxmj58uVqaGjQzJkzPTy1YXDYg4hyQ5TDRZAbItxkSkAD6YY+MfSJYbFpaJRo9AoAdN369es1YcKE1stz586VJE2fPl0rVqzQ1KlT1djYqEWLFmnLli0qLS3V6tWrVVxc7NWRWzE47CFEuSHKDVEOFxFuGBoatvaAN+gTQ58APSNTuoduAeI3fvx4OY7T6W1mzZqlWbNm9dCJ4sd7HKLHEOWGKDds8uHKlHjuLuIbXmCxCUSjUaKx6ER7dAsQHAwOYwiHwyopKVF5eXm374soh4uhoSHIDREOF/GNeNEnycdi09AohkaJRq8kFwtTAOmGwWEMoVBI9fX1qqmp6db9EOWGKIeLIDdEuCGegcTQJ8lFnxiGhoZGAeLDwhMIFgaHKUSUG6LcEOVwMTQ0DA0N8Q14gz4x9Ak6Q7MkVya0D90CBA+DQ6QUUW6IcsMmH65MCOdkIL7hBRabQDQaJRpDQwCAxOAwZYhyuBgaGoLcEOFwMTSEF+gTw2LT0CiGRgHiQ7sAwcTgMAWIckOUw0WQG4aGhmcbAt6gTwx9YhgaGhqlYzRL8qV7/zA0BIKLwWGSEeWGKDdEOVwEuEn3aE4W4hvwBn1i6BN0hmYBALTF4BBJR5QbotywyYeLoaFhaAgvsNgEotEo6Cnp3kC0CxBsDA6TiCiHi6GhIcgNm3u4CG94gT4xLDYNjWJolI7RLGiPdgHA4DBJiHJDlMNFkBsC3KT7ph1IV/SJoU8MQ0NDo3SMZkkNGghAumNwmAREuSHKDVEOFwFuCGbDxh7wBn1i6BMAiaJdAEgMDpEkRLkhyg2bfLgYGhrCG15gsQlEo1E6xrIzNdK5g2gXAC4Gh91ElMPF0NAQ5IYAh4vwhhfoE8Ni09AohkbpGM0CAOgMg8NuIMoNUQ4XQW4IcJPOW3YgndEnhj4xDA0NjdIxmgUdYekJoC0Gh11ElBui3BDlcBHghqGhIbwBb9Anhj4BvJOuLUS7AGiPwSG6jCg3RLlhkw9XuoZyshHe8AKLTSAajdIxlp0AgHgwOOwCohwuhoaGIDcEOFwMDeEF+sSw2DQ0iqFROkazpFa6LlHpFwAdCcTg8Ic//KFOPvlklZSUaPbs2XIcp8v3RZQbohwugtwQ4Ob/t3fnQVHf9//An8uNEVAO+YkcMd6rHIKkHgFLdCDQSDRH+81kFGsb66SZjLWMNePY1raEiTHjJFGSGtukdtqJmgxphqSxJOEwbFRCwVhENBbEoGJIUA7Dua/fHwxbcBdY2JN9Px8zzLCfz2d3X08+sj5577JM1KJM5AjsJ9bHftKPi4ZENFZcNCSi4bj8wuHXX3+N/fv3o6KiAmfPnkVFRQVOnjw5rttiKe/HUt6PpZwGcNGwHxcN+7F4kzms2U+oH/tJP/aT/+GTm6axt9gW+xARuRoPRw9gD729vejs7AQA9PT0YNq0aQ6eaOJiKe/HUt6PhZwGsCT346IhjYW1+gmf2CQyxo5iGhcNyRT2FyIaicNfcVhaWoo1a9YgLCwMGo0G7777rtExeXl5mDlzJnx8fJCQkIATJ06YffshISHIzs5GZGQkwsLCsHr1asyaNWvMc875f1wwo35cNOzHQt6PBZwGsHS7FvaTiYVPbPZjR+nHjkKOMhGfSGV/IaLROHzhsKOjA7Gxsdi/f7/J/UeOHMHWrVuxc+dOVFZWIikpCenp6WhoaDAck5CQgEWLFhl9XL16FS0tLSgoKEB9fT0aGxuh0+lQWlpqr3guhaWcBrCQ9+OiYb+JWJKJRsN+MnGwn/TjoiGNhr2FiIjGQyOWvBO3lWk0GuTn52Pt2rWGbd/73vcQHx+PV1991bBtwYIFWLt2LXJzc0e9zWPHjqG4uBgHDhwAALzwwgsQEWzfvt3k8V1dXejq6jJcvnXrFiIjIzH32bfg7qPuD8fRISyjAKCdyq8DAMwJ4DOTd3PxFAAQwq8DAGCKH78n2traMEs7Czdv3kRAQICjx7Eq9hPnxo7CfjIYO4pp7C22NxE7kQr9xZX7CZG9OPV7HHZ3d6OiogI7duwYsj01NRU6nc6s24iIiIBOp0NnZyc8PT1RXFyMzZs3D3t8bm4udu/ebbT9Qu7/jW14F1Pj6AGIiGhC+Oabb1y+mLOfOBd2FCIiGo0K/YTIVpx64bC5uRl9fX0IDQ0dsj00NBTXr1836zaWLl2KjIwMLF68GG5ubli1ahUyMzOHPf7ZZ5/Ftm3bDJdv3ryJqKgoNDQ0WPRAk5iYiPLycouOG26fqe2Dt925/859H3/8MSIiInDlyhX4+/ubnWms85t7nLk5R8t15+etra1Wyclzaf5xKpzL4fabs22knDyXY8Nzaf5xtjqXA6+ACwwMHFOmiUjFfjLasbb43nG2xwhrfO8MvuyojKMdy3M59nM58PlEeLznuRz9Ms/l2Dnzz0cfffSRMv2EyFaceuFwgEajGXJZRIy2jSQnJwc5OTlmHevt7Q1vb2+j7QEBARY9mLq7u5t1/ZGOG26fqe2Dt925f7h9/v7+Fv/HaM+c5ua68zhLc/Jcmn+cCudyuP3mbDMnJ8+leXguzT/O1ufSzc3hb59sNyr1k9GOteX3DuAcjxHW+N4ZfNlRGUc7ludy7Ofyzs+d+fGe53L0yzyXY+fMPx8NPLmmUj8hsjan/u4JDg6Gu7u70bP3N27cMHqW39n9/Oc/t/i44faZ2j542537R9pnKXvmNDfXRM545zaeS+fLONx+c7ZNpJw8lyNvm0g5nf1cTgQq9pPRjuX3ztgvOyrjaMfyXI7v8kTJyXM5+uWJklPVc3nnNnueSyJVTYg/jpKQkIC8vDzDNq1Wi4ceesisNx+3VGtrKwICAnDr1i2Ln21yVipkBNTIqUJGQI2cKmQE1MipQkbAtXOynziOCjlVyAiokVOFjIAaOVXICKiRU4WMRLbm8F9Vbm9vx5dffmm4XFdXh6qqKgQGBiIyMhLbtm3D+vXrsWTJEixbtgwHDx5EQ0MDtmzZYpf5vL298Zvf/Mbkrwe5ChUyAmrkVCEjoEZOFTICauRUISPgejnZT5yDCjlVyAiokVOFjIAaOVXICKiRU4WMRLbm8FccFhcXIyUlxWh7VlYW3nzzTQBAXl4e9uzZg2vXrmHRokXYt28fkpOT7TwpERERqYL9hIiIiIjICRYOiYiIiIiIiIiIyPk49R9HISIiIiIiIiIiIsfgwiEREREREREREREZ4cIhERERERERERERGeHCIRERERERERERERnhwqEV7du3DwsXLoRWq8UzzzwDV/y7M7W1tYiLizN8+Pr64t1333X0WFZXV1eHlJQUaLVaREdHo6Ojw9Ej2YSHh4fhXP70pz919Dg2c/v2bURFRSE7O9vRo9hEW1sbEhMTERcXh+joaLz++uuOHsnqrly5gu9///vQarWIiYnBsWPHHD2Szaxbtw5Tp07Fo48+6uhRrKagoADz5s3DnDlzcOjQIUePoxz2E9fBfuJa2E9cgyodxRX7CcCOQmQO/lVlK/n666+xdOlSVFdXw9PTE8nJydi7dy+WLVvm6NFspr29HXfffTcuX76Mu+66y9HjWNXKlSvxhz/8AUlJSfj222/h7+8PDw8PR49ldcHBwWhubnb0GDa3c+dOXLx4EZGRkdi7d6+jx7G6vr4+dHV1YdKkSbh9+zYWLVqE8vJyBAUFOXo0q7l27RqampoQFxeHGzduID4+HrW1tS732AMARUVFaG9vx1/+8he8/fbbjh7HYr29vdBqtSgqKoK/vz/i4+Nx6tQpBAYGOno0JbCfuNZjBPuJa2E/cQ2qdBRX6ycAOwqRufiKQyvq7e1FZ2cnenp60NPTg2nTpjl6JJt67733sGrVKpf7T3Hgh6ukpCQAQGBgoEuWclVcvHgR58+fR0ZGhqNHsRl3d3dMmjQJANDZ2Ym+vj6Xe0XR9OnTERcXBwCYNm0aAgMD8e233zp2KBtJSUmBn5+fo8ewmtOnT2PhwoWYMWMG/Pz8kJGRgePHjzt6LKWwn7gG9hPXwn7iOlTpKK7WTwB2FCJzKbNwWFpaijVr1iAsLAwajcbkr6/k5eVh5syZ8PHxQUJCAk6cOGH27YeEhCA7OxuRkZEICwvD6tWrMWvWLCsmMI+tcw529OhR/OhHP7Jw4rGzdcaLFy9i8uTJyMzMRHx8PJ577jkrTm8+e5zL1tZWJCQk4L777kNJSYmVJjefPTJmZ2cjNzfXShOPjz1y3rx5E7GxsQgPD8f27dsRHBxspenNY8/Hns8//xx6vR4REREWTj129szpLCzNfPXqVcyYMcNwOTw8HI2NjfYYfUJgP/kf9pORsZ/YD/vJ/0z0fgKo0VFU7CcAOwqRvSizcNjR0YHY2Fjs37/f5P4jR45g69at2LlzJyorK5GUlIT09HQ0NDQYjklISMCiRYuMPq5evYqWlhYUFBSgvr4ejY2N0Ol0KC0ttVc8A1vnHNDa2oqysjKHPEtq64w9PT04ceIEDhw4gM8++wyFhYUoLCy0VzwDe5zL+vp6VFRU4LXXXsOGDRvQ2tpql2wDbJ3xH//4B+bOnYu5c+faK5JJ9jiXU6ZMwZkzZ1BXV4e///3vaGpqsku2AfZ67Pnmm2+wYcMGHDx40OaZTLFXTmdiaWZTry7RaDQ2nXkiYT/px37Sj/2E/cSeVOgngBodRcV+ArCjENmNKAiA5OfnD9l27733ypYtW4Zsmz9/vuzYscOs2zx69Kg89dRThst79uyR559/3uJZLWGLnAMOHz4sTzzxhKUjWswWGXU6naSlpRku79mzR/bs2WPxrJaw5bkc8MADD0h5efl4R7SYLTLu2LFDwsPDJSoqSoKCgsTf3192795trZHHxR7ncsuWLXL06NHxjmgxW2Xs7OyUpKQkOXz4sDXGtJgtz2VRUZE88sgjlo5odePJXFZWJmvXrjXse+aZZ+Rvf/ubzWediNhP2E9Gwn7iGOwnrtNPRNToKCr2ExF2FCJbUuYVhyPp7u5GRUUFUlNTh2xPTU2FTqcz6zYiIiKg0+kM799RXFyMefPm2WLccbNGzgGO+jWg0VgjY2JiIpqamtDS0gK9Xo/S0lIsWLDAFuOOmzVytrS0oKurCwDw1Vdf4dy5c7jnnnusPut4WSNjbm4urly5gvr6euzduxdPPvkkfv3rX9ti3HGzRs6mpibDqzFaW1tRWlrqVI8/1sgoIti4cSPuv/9+rF+/3hZjWsyaj7EThTmZ7733XvznP/9BY2Mj2tra8MEHHyAtLc0R40447CfsJ4OxnzgH9hPX6SeAGh1FxX4CsKMQWRPfURlAc3Mz+vr6EBoaOmR7aGgorl+/btZtLF26FBkZGVi8eDHc3NywatUqZGZm2mLccbNGTgC4desWTp8+jXfeecfaI1rMGhk9PDzw3HPPITk5GSKC1NRUPPjgg7YYd9yskbOmpgY/+9nP4ObmBo1Gg5deesmp/oKYtf69Ojtr5Pzqq6/wk5/8BCICEcHTTz+NmJgYW4w7LtbIWFZWhiNHjiAmJsbw/jV//etfER0dbe1xx81a/2bT0tLw73//Gx0dHQgPD0d+fj4SExOtPa5VmJPZw8MDL774IlJSUqDX67F9+3aX+4uatsJ+wn4yGPuJc2A/cZ1+AqjRUVTsJwA7CpE1ceFwkDvfz0BExvQeBzk5OcjJybH2WFZnac6AgACHvD/JWFiaMT09Henp6dYey+osybl8+XKcPXvWFmNZlaXncsDGjRutNJFtWJIzISEBVVVVNpjKuizJeN9990Gv19tiLKuz9N/sRPxrfqNlzszMdLrFqomE/cQ87CfOg/3EfOwnzkGFjqJiPwHYUYisgb+qDCA4OBju7u5Gz7jcuHHD6BmKiUyFnCpkBNTIqUJGQI2cKmQE1Mk5mIqZ7UmVr68KOVXICKiRU4WMAHO6Uk4VMpqiam4iW+DCIQAvLy8kJCQY/WW6wsJCLF++3EFTWZ8KOVXICKiRU4WMgBo5VcgIqJNzMBUz25MqX18VcqqQEVAjpwoZAeZ0pZwqZDRF1dxEtqDMryq3t7fjyy+/NFyuq6tDVVUVAgMDERkZiW3btmH9+vVYsmQJli1bhoMHD6KhoQFbtmxx4NRjp0JOFTICauRUISOgRk4VMgLq5BxMxcz2pMrXV4WcKmQE1MipQkaAOV0ppwoZTVE1N5Hd2evPNztaUVGRADD6yMrKMhxz4MABiYqKEi8vL4mPj5eSkhLHDTxOKuRUIaOIGjlVyCiiRk4VMoqok3MwFTPbkypfXxVyqpBRRI2cKmQUYU5XyqlCRlNUzU1kbxoREXMXGYmIiIiIiIiIiEgNfI9DIiIiIiIiIiIiMsKFQyIiIiIiIiIiIjLChUMiIiIiIiIiIiIywoVDIiIiIiIiIiIiMsKFQyIiIiIiIiIiIjLChUMiIiIiIiIiIiIywoVDIiIiIiIiIiIiMsKFQyIiIiIiIiIiIjLChUMiIgeor6+HRqNBVVWVo0chIiIiAsB+QkRExrhwSEREREREREREREa4cEhENtXX1we9Xu/oMRymu7vb0SMQERHRHdhP2E+IiMg8XDgkUszbb7+N6Oho+Pr6IigoCKtXr0ZHRwcAQK/X43e/+x3Cw8Ph7e2NuLg4fPjhh4brFhcXQ6PR4ObNm4ZtVVVV0Gg0qK+vBwC8+eabmDJlCgoKCqDVauHt7Y3Lly+jq6sL27dvR0REBLy9vTFnzhz86U9/MtzOuXPnkJGRgcmTJyM0NBTr169Hc3PzsDk2bdqEmJgYdHV1AQB6enqQkJCAJ554YsT81dXV+MEPfgB/f3/4+fkhKSkJly5dMis/AJw9exb333+/4eu3efNmtLe3G/Zv3LgRa9euRW5uLsLCwjB37lwAwOnTp7F48WL4+PhgyZIlqKysHHFOIiIilbCfsJ8QEZFz4sIhkUKuXbuGxx9/HJs2bUJNTQ2Ki4vx8MMPQ0QAAC+99BJefPFF7N27F1988QXS0tKQmZmJixcvjul+bt++jdzcXBw6dAjV1dWYNm0aNmzYgLfeegsvv/wyampq8Nprr2Hy5MmGuVauXIm4uDh8/vnn+PDDD9HU1IQf/vCHw97Hyy+/jI6ODuzYsQMAsGvXLjQ3NyMvL2/Y6zQ2NiI5ORk+Pj745JNPUFFRgU2bNqG3t9es/Ldv38YDDzyAqVOnory8HMeOHcNHH32Ep59+esj9fPzxx6ipqUFhYSEKCgrQ0dGBBx98EPPmzUNFRQV++9vfIjs7e0xfUyIiIlfFfsJ+QkRETkyISBkVFRUCQOrr603uDwsLk5ycnCHbEhMT5amnnhIRkaKiIgEgLS0thv2VlZUCQOrq6kRE5I033hAAUlVVZTimtrZWAEhhYaHJ+921a5ekpqYO2XblyhUBILW1tcPm0el04unpKbt27RIPDw8pKSkZ9lgRkWeffVZmzpwp3d3dJvePlv/gwYMydepUaW9vN+x///33xc3NTa5fvy4iIllZWRIaGipdXV2GY/74xz9KYGCgdHR0GLa9+uqrAkAqKytHnJmIiMjVsZ+wnxARkfPiKw6JFBIbG4tVq1YhOjoajz32GF5//XW0tLQAAFpbW3H16lWsWLFiyHVWrFiBmpqaMd2Pl5cXYmJiDJerqqrg7u6OlStXmjy+oqICRUVFmDx5suFj/vz5AGD4NR1Tli1bhuzsbPz+97/HL3/5SyQnJxv2paenG25r4cKFhjmSkpLg6elpdFvm5K+pqUFsbCzuuuuuIfv1ej1qa2sN26Kjo+Hl5WW4PHC9SZMmDZmdiIiI2E/YT4iIyJl5OHoAIrIfd3d3FBYWQqfT4V//+hdeeeUV7Ny5E6dOnUJQUBAAQKPRDLmOiBi2ubm5GbYN6OnpMbofX1/fIbfj6+s74lx6vR5r1qzB888/b7Rv+vTpI16vrKwM7u7uRr+udOjQIXz33XcAYCjio80BjJx/8OcjXW9wcR+4HhEREZnGfsJ+QkREzouvOCRSjEajwYoVK7B7925UVlbCy8sL+fn58Pf3R1hYGD799NMhx+t0OixYsAAAEBISAqD/PX8GVFVVjXqf0dHR0Ov1KCkpMbk/Pj4e1dXVuPvuuzF79uwhH3eW3MFeeOEF1NTUoKSkBMePH8cbb7xh2DdjxgzDbURFRQEAYmJicOLECZM/TJiTX6vVoqqqyvBm7QBQVlYGNzc3w5uMm6LVanHmzBnDDwoAcPLkyWGPJyIiUg37CfsJERE5KUf9jjQR2d/JkyclJydHysvL5fLly3L06FHx8vKSDz74QERE9u3bJ/7+/vLWW2/J+fPn5Ve/+pV4enrKhQsXRESku7tbIiIi5LHHHpPa2lopKCiQefPmGb2HUEBAgNF9b9y4USIiIiQ/P1/++9//SlFRkRw5ckRERBobGyUkJEQeffRROXXqlFy6dEmOHz8uP/7xj6W3t9dklsrKSvHy8pL33ntPREQOHTokfn5+cunSpWHzNzc3S1BQkDz88MNSXl4uFy5ckMOHD8v58+fNyt/R0SHTp0+XRx55RM6ePSuffPKJ3HPPPZKVlWW4j6ysLHnooYeG3G9bW5sEBwfL448/LtXV1fL+++/L7Nmz+R5CREREwn7CfkJERM6MC4dECjl37pykpaVJSEiIeHt7y9y5c+WVV14x7O/r65Pdu3fLjBkzxNPTU2JjY+Wf//znkNv49NNPJTo6Wnx8fCQpKUmOHTtmVjH/7rvv5Be/+IVMnz5dvLy8ZPbs2fLnP//ZsP/ChQuybt06mTJlivj6+sr8+fNl69atotfrTd6WVquVzZs3D9m+bt06Wb58+bBlXkTkzJkzkpqaKpMmTRI/Pz9JSkoylHlz8n/xxReSkpIiPj4+EhgYKE8++aS0tbUZ9psq5iIin332mcTGxoqXl5fExcXJO++8w2JOREQk7Cci7CdEROS8NCJ8cwsiIiIiIiIiIiIaiu9xSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERrhwSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERrhwSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERrhwSEREREREREREREa4cEhERERERERERERGuHBIRERERERERERERv4/045TXlIYiGwAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACjT0lEQVR4nOzdfXiU5Z328TMSkyBIMFCiUQj4Ro0R0JBaUBR0DQ2K75V2uwgKVcr4UExtK2VVwJe4a0vp1oDSdqXaukW7NrWWGmJlhUqtIRKrxlWpaLDyUoISiQoa7ueP316RIZmQSWZy3zPz/RyHx/NkCMmN2u6353UlSfM8zxMAAAAAAAAAHOAwvx8AAAAAAAAAQPAwHAIAAAAAAABog+EQAAAAAAAAQBsMhwAAAAAAAADaYDgEAAAAAAAA0AbDIQAAAAAAAIA2GA4BAAAAAAAAtMFwCAAAAAAAAKANhkMAAAAAAAAAbTAcIiaefvppXXvttfr85z+vPn366Nhjj9Ull1yi2traDn/f+PHjlZaWdsi/FixY0DN/kE7qzDOnpaXpf/7nf2L2OcePH6/x48fH7ON15JNPPtH999+v4uJi5eTk6IgjjlB+fr4uueQS/eY3v4n55wvSP2PP8/Twww/rvPPO01FHHaXMzEwdf/zxCoVC2rJlS7c//ltvvaW0tDStWLGi+w/bCdu2bdMNN9yg448/Xr1791Z+fr5mzJihhoaGLn/MoUOH6qKLLorhU3ZOT/5nAEBy+dOf/qRJkybpqKOOUu/evXXSSSfp9ttvj/j+9Enn0Sc9gz45NPoEAOIj3e8HQHJYtmyZGhsb9c1vflMFBQX6xz/+oR/84Af64he/qKqqKp133nnt/r6lS5eqqamp9e3f//73uuOOO/TAAw/o85//fOvrxx13XNz/DNH485//HPb27bffrjVr1ujpp58Oe72goKAnHytmpk6dqscee0xz587VwoULlZmZqTfffFNPPvmkqqqqdNlll8X08/35z38OxD/j/fv365//+Z+1cuVKffWrX9WKFSuUnZ2tv/71r7rnnnv08MMP64knntBZZ53l96N2yt69e3XOOefovffe08KFC1VQUKDXXntNt912m6qqqvTqq6/qyCOP9PsxASCuHn74YU2dOlVXXXWVHnzwQfXt21d/+9vf9O6770b8PfRJMNEn9AkAwAceEAPbt29v89oHH3zg5ebmeueff36nP84DDzzgSfJqampi8lzNzc0x+TiHMm3aNK9Pnz5x/Rznnnuud+6558bkY+3fv9/78MMP2/21N99805Pk3Xrrre3+ektLS9yfwS933XWXJ8m7++672/zatm3bvPz8fC83N9d77733Ovw4Hf17t3nzZk+S98ADD3Tzac2HH37o7d+/v91fq66u9iR5P/3pT8Nef/jhhz1J3mOPPdalz5mfn+9deOGFXfq93RHL/wwASA3vvPOO16dPH+8b3/hGtz4OfRIZfRJ/9Enn0CcAEB98qTJiYtCgQW1e69u3rwoKCmLy5RMrV67UmDFj1KdPH/Xt21cTJ07Uxo0bw95n+vTp6tu3r1566SWVlJToyCOP1Pnnny/JvtTkhhtu0AMPPKDhw4erd+/eGj16tJ577jl5nqd77rlHw4YNU9++fXXeeedp06ZN3X7miooKnXPOORo0aJD69Omj0047Tf/+7/+uTz75pPV9br/9dqWnp7f79+jaa6/VgAED9PHHH0f8HLt27dLs2bN17LHHKiMjQ8cff7zmz5+vvXv3hr2f+/Pfd999OuWUU5SZmamf//zn7X7MxsZGSdIxxxzT7q8fdlj4f200NTXppptu0rBhw5SRkaFjjz1Wc+fOVXNzc6efob0vBdq2bZuuv/56HXfcccrIyNCwYcO0cOFCffrpp2Hvt2zZMo0cOVJ9+/bVkUceqc9//vP63ve+F/HvWST79u3TPffco1NOOUXf+c532vx6bm6uysvLtX37dv3sZz9rfX38+PEqLCzU2rVrNXbsWB1xxBG69tprJUnvvvuurrrqKh155JHKzs7WlClTtG3btnY//4YNG3TxxRcrJydHWVlZOv300/XII4+Evc+KFSuUlpam1atX69prr9XnPvc5HXHEEW3+eTuHH364JCk7Ozvs9f79+0uSsrKyOvc3pwuqq6t1ySWX6LjjjlNWVpZOPPFEXX/99dq5c2fY+y1YsEBpaWnauHGjLr/8cvXr10/Z2dn6l3/5F/3jH/845OdZuHChzjzzTOXk5Khfv34644wz9LOf/Uye57V534cfflhjxoxR37591bdvX40aNSrsn6UkPfXUUzr//PPVr18/HXHEETrrrLP0xz/+sXt/MwD45qc//amam5v13e9+Ny4fnz5pH31Cn9An9AmAJOLvbolk9v7773vZ2dneZZdd1unf096J/p133umlpaV51157rffEE094jz32mDdmzBivT58+3iuvvNL6ftOmTfMOP/xwb+jQoV55ebn3xz/+0auqqvI8z/Mkefn5+d7YsWO9xx57zPvNb37jnXzyyV5OTo534403epdccon3xBNPeL/85S+93Nxcb8SIERFPSdvT3on+jTfe6C1btsx78sknvaefftr74Q9/6A0cONC75pprWt9n+/btXmZmpjd//vyw39vY2Oj17t3b+/a3v9362sGnmR999JE3YsQIr0+fPt73v/99b/Xq1d4tt9zipaene5MmTQr7eJK8Y4891hsxYoT38MMPe08//bT38ssvt/tn2bNnj9e/f3/v6KOP9u6//35v8+bNEf/czc3N3qhRo7yBAwd6ixcv9p566invRz/6kZedne2dd955YX8PO3oGSd5tt93W+r5bt271Bg8e7OXn53v333+/99RTT3m33367l5mZ6U2fPr31/f7rv/7Lk+T9v//3/7zVq1d7Tz31lHffffd5c+bMifjMkaxfv96T5H33u9+N+D4ffPCBd9hhh3kTJ05sfe3cc8/1cnJyvMGDB3s//vGPvTVr1njPPPOM9+GHH3qnnHKKl52d7f34xz/2qqqqvDlz5nhDhgxpc6L/9NNPexkZGd64ceO8lStXek8++aQ3ffr0Nu/n/vNx7LHHetddd533hz/8wfv1r3/tffrpp+0+7yeffOIVFRV5p556qvf88897H3zwgVdbW+uNGjXKO+OMM7x9+/ZF/ffJ8zp3or9s2TKvvLzce/zxx71nnnnG+/nPf+6NHDnSGz58eNjnve2221r/8/ntb3/bq6qq8hYvXuz16dPHO/3008Pet70T/enTp3s/+9nPvOrqaq+6utq7/fbbvd69e3sLFy4Me79bbrnFk+Rdfvnl3qOPPuqtXr3aW7x4sXfLLbe0vs9DDz3kpaWleZdeeqn32GOPeb/73e+8iy66yOvVq5f31FNPdenvFQB/nXfeeV5OTo735JNPeiNHjvR69erlfe5zn/Ouv/56b/fu3Z3+OPSJoU/oE/qEPgGQehgOETdf+9rXvPT0dG/Dhg2d/j0Hh3lDQ4OXnp7u/b//9//C3u+DDz7wjj76aO+qq65qfW3atGmeJO8///M/23xcSd7RRx/t7dmzp/W1yspKT5I3atSosIBcsmSJJ8n761//2unnPtSXArW0tHiffPKJ9+CDD3q9evXydu3aFfZ7Bw0a5O3du7f1tX/7t3/zDjvssLAoPjhK7rvvPk+S98gjj4R9rn/7t3/zJHmrV68O+/NnZ2eHfd6O/P73v/cGDhzoSfIkeQMGDPC+/OUve48//njY+5WXl3uHHXZYmy/d+vWvf+1J8latWtWpZzg4zK+//nqvb9++3ttvvx32ft///vc9Sa3/g+yGG27w+vfv36k/06H86le/8iR59913X4fvl5ub651yyimtb5977rmeJO+Pf/xj2PstW7bMk+T99re/DXv961//epvg/vznP++dfvrp3ieffBL2vhdddJF3zDHHtH75lfvPx9VXX93pP1dTU5M3efLk1n+Wkrzx48d7jY2Nnf4YB4v2S4H279/vffLJJ97bb7/d5u+JC/Mbb7wx7Pf88pe/9CR5v/jFL1pfO9SXArn/nC1atMgbMGBA63+u33zzTa9Xr17e1772tYi/t7m52cvJyfEmT57c5mOOHDnS+8IXvtDpPy+A4Bg+fLiXlZXlHXnkkd5dd93lrVmzxvv3f/93r3fv3t5ZZ53V6RGOPjH0CX3iefQJfQIg1fClyoiLW265Rb/85S/1wx/+UEVFRa2v79+/X59++mnrXy0tLR1+nKqqKn366ae6+uqrw35fVlaWzj333HZ/KuAVV1zR7seaMGGC+vTp0/r2KaecIkkqLS1VWlpam9fffvvtTv9527Nx40ZdfPHFGjBggHr16qXDDz9cV199tVpaWvT666+3vt83v/lN7dixQ48++qgk+3u0bNkyXXjhhRo6dGjEj//000+rT58+uvLKK8Nenz59uiS1+fIF91P4OmPSpElqaGjQb37zG91000069dRTVVlZqYsvvlg33HBD6/s98cQTKiws1KhRo8L++UycOLHdn9rY2Wd44oknNGHCBOXl5YV93NLSUknSM888I0n6whe+oPfff19f/epX9dvf/rbNl5nEg+d5Yf++SNJRRx3V5gcArVmzRkceeaQuvvjisNf/+Z//OeztTZs26X//93/1ta99TZLC/ryTJk3S1q1b9dprr4X9nkj/jh/sk08+0ZQpU1RXV6ef/OQnWrt2rX7+85/r73//uy644ALt3r27Ux+nK3bs2KFZs2Zp8ODBSk9P1+GHH678/HxJ0quvvtrm/d2f37nqqquUnp6uNWvWdPh5nn76af3TP/2TsrOzW/9zduutt6qxsVE7duyQZF+W1NLSolAoFPHjrF+/Xrt27dK0adPC/hns379fX/rSl1RTU9Pmy9sABN/+/fv18ccf63vf+57mzZun8ePH69vf/rbKy8v17LPPtv7fSvqEPqFP6BP6BADax09VRswtXLhQd9xxh+68886wiJOkRYsWaeHCha1v5+fn66233or4sbZv3y5JKi4ubvfXD/5+NkcccYT69evX7vvm5OSEvZ2RkdHh6x19755DaWho0Lhx4zR8+HD96Ec/0tChQ5WVlaXnn39eoVBIH330Uev7nn766Ro3bpwqKir0ta99TU888YTeeust3X///R1+jsbGRh199NFtInHQoEFKT09v/V5ATqTvCRRJ7969demll+rSSy9t/TOVlpaqoqJC3/jGN3Tqqadq+/bt2rRpU+v3qjnYwaHc2WfYvn27fve73x3y406dOlWffvqpfvKTn+iKK67Q/v37VVxcrDvuuEMXXHBBJ/+kZsiQIZKkzZs3R3yf5uZm7dy5U6effnrY6+39uRobG5Wbm9vm9aOPPjrsbffv+E033aSbbrqp3c/b1b+PP/vZz/SHP/xBNTU1Gj16tCRp3LhxOvvss3XCCSdoyZIluu222zr1saKxf/9+lZSU6N1339Utt9yi0047TX369NH+/fv1xS9+Mezff+fgvy/p6ekaMGBAm3+PD/T888+rpKRE48eP109+8pPW7zdVWVmpO++8s/XzuO9F1NFPxnT/HA7+H7oH2rVrV9j/uAcQfAMGDNAbb7yhiRMnhr1eWlqquXPn6oUXXtA//dM/0Sf0Sac+N30Sjj5pH30CINkwHCKmFi5cqAULFmjBggXtfgPo6667ThdddFHr25mZmR1+vIEDB0qSfv3rX7eeBnbk4Ej1S2VlpZqbm/XYY4+FPXddXV277z9nzhx9+ctf1gsvvKB7771XJ5988iHDcsCAAfrLX/7S5oR5x44d+vTTT1v/3jnd/XszZMgQXXfddZo7d65eeeUVnXrqqRo4cKB69+6t//zP/2z393T1GQYOHKgRI0bozjvvbPfX8/LyWv//11xzja655ho1Nzdr7dq1uu2223TRRRfp9ddf79S/M05RUZGOOuooPf744yovL2/3WR9//HHt37+/zT+b9t53wIABev7559u8fvA3H3d/j+bNm6fLL7+83WcbPnz4IT9fe+rq6tSrVy+dccYZYa8ff/zxGjBggF5++eVOfZxovfzyy3rxxRe1YsUKTZs2rfX1jr6p/7Zt23Tssce2vv3pp5+qsbFRAwYMiPh7fvWrX+nwww/XE088EfaN1CsrK8Pe73Of+5wk6Z133tHgwYPb/Vjun8OPf/xjffGLX2z3fdr7H1oAgm3EiBF67rnn2rzu/d8PKHADH31S1+770ydtfx998hn6pH30CYBkw3CImLn99tu1YMEC/eu//mvEU8K8vLywqDqUiRMnKj09XX/72986/eUPQeDC6cD/4eF5nn7yk5+0+/6XXXaZhgwZom9961t65pln9MMf/vCQ8XX++efrkUceUWVlpS677LLW1x988MHWX++KDz74QGlpaerbt2+bX3NfwuH+GV500UW66667NGDAAA0bNqxLn689F110kVatWqUTTjih01++1KdPH5WWlmrfvn269NJL9corr0QV5hkZGfr2t7+t733ve7rnnnva/OTCHTt2aN68ecrNzdXMmTMP+fEmTJigRx55RI8//njYlwM9/PDDYe83fPhwnXTSSXrxxRd11113dfp5OyMvL08tLS2qqanRmWee2fr666+/rsbGxg5PuLujvX//JXV4S+WXv/xl2Lc1eOSRR/Tpp59q/PjxHX6e9PR09erVq/W1jz76SA899FDY+5WUlKhXr15atmyZxowZ0+7HOuuss9S/f3/V19e3uSkNIHFdccUVWr58uf7whz+E3cZatWqVJLX+D3H6hD7pDPokNugTQ58ASBQMh4iJH/zgB7r11lv1pS99SRdeeGGb0/1IJ2SHMnToUC1atEjz58/Xm2++qS996Us66qijtH37dj3//PPq06dP2JcWBcUFF1ygjIwMffWrX9V3vvMdffzxx1q2bJnee++9dt+/V69eCoVC+u53v6s+ffq0fh+gjlx99dWqqKjQtGnT9NZbb+m0007Tn/70J911112aNGmS/umf/qlLz/7aa69p4sSJ+spXvqJzzz1XxxxzjN577z39/ve/1/LlyzV+/HiNHTtWkjR37lz993//t8455xzdeOONGjFihPbv36+GhgatXr1a3/rWt8KCsLMWLVqk6upqjR07VnPmzNHw4cP18ccf66233tKqVat033336bjjjtPXv/519e7dW2eddZaOOeYYbdu2TeXl5crOzg778jH3vZg6+rIzSfrud7+rF198sfX/nTJlirKzs/XXv/5V99xzjz744AM98cQTys7OPuSf4eqrr9YPf/hDXX311brzzjt10kknadWqVaqqqmrzvvfff79KS0s1ceJETZ8+Xccee6x27dqlV199VS+88ELr95eK1jXXXKMf/vCHuuKKK/Sv//qvGj58uN58803ddddd6tOnj2bNmtX6vm+99ZaGDRumadOmacWKFYf82Nu2bdOvf/3rNq8PHTpUI0eO1AknnKCbb75ZnucpJydHv/vd71RdXR3x4z322GNKT0/XBRdcoFdeeUW33HKLRo4cqauuuiri77nwwgu1ePFi/fM//7Ouu+46NTY26vvf/36b/0EwdOhQfe9739Ptt9+ujz76SF/96leVnZ2t+vp67dy5UwsXLlTfvn314x//WNOmTdOuXbt05ZVXatCgQfrHP/6hF198Uf/4xz+0bNmyQ/59ARAsJSUlmjx5shYtWtT65YgbNmzQwoULddFFF+nss8/u0selTyKjT+iTQ6FPPnsm+gRAQvDtx7Igqbif3Bbpr846+KcWOpWVld6ECRO8fv36eZmZmV5+fr535ZVXek899VTr+3T0kwMleaFQKOy1zZs3e5K8e+65J+z1NWvWeJK8Rx99tNPP3d7n/t3vfueNHDnSy8rK8o499ljv29/+tveHP/zBk+StWbOmzcd46623PEnerFmz2v0c7f3EtsbGRm/WrFneMccc46Wnp3v5+fnevHnzvI8//jjs/dr780fy3nvveXfccYd33nnneccee6yXkZHh9enTxxs1apR3xx13eB9++GHY++/Zs8f713/9V2/48OFeRkaGl52d7Z122mnejTfe6G3btq1Tz6CDfmqh53neP/7xD2/OnDnesGHDvMMPP9zLycnxioqKvPnz57f+9Mmf//zn3oQJE7zc3FwvIyPDy8vL86666qo2P3Fy4MCB3he/+MVO/fn379/v/fKXv/TGjx/v9e/f38vIyPCGDRvmfeMb32jzUxQ9z/65nHrqqe1+rHfeece74oorvL59+3pHHnmkd8UVV3jr169v81MLPc/zXnzxRe+qq67yBg0a5B1++OHe0Ucf7Z133nlhP0Ux0n8+OvLGG294U6dO9YYOHeplZmZ6Q4YM8aZMmdL6kx+dl156yZPk3XzzzYf8mPn5+RH/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9dvf/laZmZlt+poCABCs6Cf0EwBAADMALKO4uNhIMhUVFa3uj42NNVlZWS22jRkzxjz99NPGGGPy8vKMJFNdXe3YX1JSYiSZ48ePG2OMeeONN4wkU1pa6jimvLzcSDK5ubmt3u/KlStNRkZGi22nTp0ykkx5eflN8xQWFpqwsDCzcuVK06lTJ7Nz586bHmuMMc8++6wZNGiQuXr1aqv7b5d/48aNpmfPnqa2ttax//333zchISHm7Nmzxhhj5s2bZ2JiYkx9fb3jmD/+8Y8mOjra1NXVOba9+uqrRpIpKSm55cwAAAQ7+gn9BAAQuHjFIWAhycnJmjx5shITE/X444/r9ddfV3V1tSSppqZGp0+f1n333dfiOvfdd5/KysradD/h4eFKSkpyXC4tLVVoaKgmTpzY6vHFxcXKy8tT165dHR/Dhg2TJMev6bRm3LhxyszM1O9//3v98pe/1IQJExz7pk2b5ritESNGOOZIT09XWFiY0225kr+srEzJycm64447WuxvampSeXm5Y1tiYqLCw8Mdl5uv16VLlxazAwAA+gn9BAAQyDr5ewAAvhMaGqrc3FwVFhbqX//6l1555RWtWLFCe/fuVa9evSRJNputxXWMMY5tISEhjm3NGhoanO6nc+fOLW6nc+fOt5yrqalJM2bM0PPPP++0r1+/fre83u7duxUaGur060qbNm3Sd999J0mOIn67OaRb57/+81td7/ri3nw9AADQOvoJ/QQAELh4xSFgMTabTffdd59WrVqlkpIShYeHa/v27YqKilJsbKw+/fTTFscXFhZq+PDhkqQ+ffpIsr/nT7PS0tLb3mdiYqKampq0c+fOVvenpqbq4MGDuvPOOzV48OAWHzeW3Ou98MILKisr086dO7Vjxw698cYbjn39+/d33MbAgQMlSUlJSdq1a1erP0y4kj8hIUGlpaWON2uXpN27dyskJMTxJuOtSUhI0P79+x0/KEjSnj17bno8AABWQz+hnwAAApS/fkcagO/t2bPHZGVlmaKiInPixAmzdetWEx4ebj744ANjjDFr1641UVFR5q233jKHDx82v/rVr0xYWJg5cuSIMcaYq1evmri4OPP444+b8vJyk5OTY4YOHer0HkLdu3d3uu/58+ebuLg4s337dvPf//7X5OXlmS1bthhjjKmsrDR9+vQxjz32mNm7d685duyY2bFjh/nxj39srl271mqWkpISEx4ebt577z1jjDGbNm0y3bp1M8eOHbtp/qqqKtOrVy/zyCOPmKKiInPkyBGzefNmc/jwYZfy19XVmX79+plHH33UHDhwwHzyySfmrrvuMvPmzXPcx7x588zDDz/c4n4vXbpkevfubZ544glz8OBB8/7775vBgwfzHkIAABj6Cf0EABDIWDgELOTQoUNm6tSppk+fPiYiIsIMGTLEvPLKK479jY2NZtWqVaZ///4mLCzMJCcnm3/+858tbuPTTz81iYmJJjIy0qSnp5tt27a5VMy/++4784tf/ML069fPhIeHm8GDB5s///nPjv1Hjhwxs2fPNj169DCdO3c2w4YNM0uWLDFNTU2t3lZCQoJZuHBhi+2zZ88248ePv2mZN8aY/fv3m4yMDNOlSxfTrVs3k56e7ijzruT/4osvzKRJk0xkZKSJjo42Tz31lLl06ZJjf2vF3BhjPvvsM5OcnGzCw8NNSkqKeeeddyjmAAAY+okx9BMAQOCyGcObWwAAAAAAAABoifc4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATv4PDbmAkzvMEZoAAAAASUVORK5CYII=", "text/plain": [ "
" ] From 899fb435e40d39d3d368cb61582197950b09b163 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 3 Jan 2025 14:23:23 -0800 Subject: [PATCH 134/193] Added recurrence_grid --- sumpy/recurrence.py | 1 + sumpy/recurrence_grid.py | 161 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 sumpy/recurrence_grid.py diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index bd35693fc..ad4330942 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -28,6 +28,7 @@ .. autofunction:: process_recurrence_relation .. autofunction:: shift_recurrence .. autofunction:: get_processed_and_shifted_recurrence +.. autofunction:: get_shifted_recurrence_exp_from_pde """ from __future__ import annotations diff --git a/sumpy/recurrence_grid.py b/sumpy/recurrence_grid.py new file mode 100644 index 000000000..d5a9d3e46 --- /dev/null +++ b/sumpy/recurrence_grid.py @@ -0,0 +1,161 @@ +r""" +With the functionality in this module, we aim to compute layer potentials +using a recurrence for one-dimensional derivatives of the corresponding +Green's function. See recurrence.py. + +.. autofunction:: get_grid +.. autofunction:: convert +.. autofunction:: grid_recur_to_column_recur +.. autofunction:: get_taylor_recurrence +.. autofunction:: create_subs_grid +.. autofunction:: extend_grid +.. autofunction:: compute_taylor_lp +.. autofunction:: compute_lp_orders + + +""" +from __future__ import annotations + + +__copyright__ = """ +Copyright (C) 2024 Hirish Chandrasekaran +Copyright (C) 2024 Andreas Kloeckner +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + + +from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence + +from sumpy.expansion.diff_op import ( + laplacian, + make_identity_diff_op, +) + +from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence + +import sympy as sp +from sympy import hankel1 + +import numpy as np + +import math + +import matplotlib.pyplot as plt +from matplotlib import cm, ticker + + +def get_grid(recur, order): + poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)]) + coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)] + + table = [] + for i in range(len(coeff_s_n)): + table.append(sp.poly(coeff_s_n[i], var[0]).all_coeffs()[::-1]) + + return table + + +def convert(grid): + recur_exp = 0 + i = sp.symbols("i") + s_terms = [] + for j in range(len(grid)): + for k in range(len(grid[j])): + recur_exp += grid[j][k] * s(n-j,i-k)/sp.factorial(i-k) + if grid[j][k] != 0: + s_terms.append((j,k)) + return recur_exp, s_terms + + +def grid_recur_to_column_recur(grid_recur, s_terms): + grid_recur_simp = grid_recur + bag = set() + for s_t in s_terms: + bag.add(-((0-s_t[0])-s_t[1])) + grid_recur_simp = grid_recur_simp.subs(s(n-s_t[0],i-s_t[1]), (-1)**(s_t[1])*s((n-s_t[0])-s_t[1],(i-s_t[1])+s_t[1])) + shift = min(bag) + return sp.solve(sp.simplify(grid_recur_simp * sp.factorial(i)).subs(n, n+shift), s(n,i))[0] + + +def get_taylor_recurrence(pde): + recur, order = get_shifted_recurrence_exp_from_pde(pde) + grid = get_grid(recur, order) + grid_recur, s_terms = convert(grid) + column_recur = grid_recur_to_column_recur(grid_recur, s_terms) + return column_recur + + +def create_subs_grid(width, length, derivs, coord_dict): + initial_grid = [[sp.diff(derivs[i], var[0], j).subs(var[0], 0) for j in range(width)] for i in range(length)] + + # assume len(initial_grid) >= 1 + initial_grid_subs = [] + initial_grid_width = len(initial_grid[0]) + initial_grid_length = len(initial_grid) + + for i_x in range(initial_grid_length): + tmp = [] + for j_x in range(initial_grid_width): + tmp.append((initial_grid[i_x][j_x].subs(var[1],coord_dict[var[1]])).evalf()) + initial_grid_subs.append(tmp) + + return initial_grid_subs + + +def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur): + initial_grid_subs = [row[:] for row in initial_grid_in] #deep copy + + initial_grid_width = len(initial_grid_subs[0]) + initial_grid_length = len(initial_grid_subs) + + for n_x in range(initial_grid_length, n_derivs_compute): + appMe = [] + for i_x in range(initial_grid_width): + exp_i_n = grid_recur.subs(n, n_x).subs(i, i_x) + if exp_i_n == 0: + exp_i_n = sp.diff(derivs_lap[n_x], var[0], i_x).subs(var[0], 0) + assert n_x-order_grid_recur >= 0 + kys = [s(n_x-k,i_x) for k in range(1,order_grid_recur+1)] + vals = [initial_grid_subs[n_x-k][i_x] for k in range(1, order_grid_recur+1)] + my_dict = dict(zip(kys, vals)) + res = exp_i_n.subs(my_dict).subs(coord_dict) + appMe.append(res) + + initial_grid_subs.append(appMe) + + return initial_grid_subs + +def compute_taylor_lp(inp_grid, coord_dict): + inp_grid = np.array(inp_grid) + _, c = inp_grid.shape + return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i/math.factorial(i) for i in range(c)]), (1, c)), axis = 1) + + +def compute_lp_orders(pde, loc, num_of_derivs, derivs_list, recur_order, taylor_order): + var = _make_sympy_vec("x", 2) + coord_dict_t = {var[0]: loc[0], var[1]: loc[1]} + + initial_grid_subs = create_subs_grid(taylor_order, recur_order, derivs_list, coord_dict_t) + + extended_grid = extend_grid(initial_grid_subs, get_taylor_recurrence(pde), coord_dict_t, num_of_derivs, recur_order) + + return compute_taylor_lp(extended_grid, coord_dict_t) \ No newline at end of file From 35ae5c157dadf977a767963c8c4cdc60c97c0345 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 3 Jan 2025 14:39:18 -0800 Subject: [PATCH 135/193] Fix up documentation --- sumpy/recurrence_grid.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sumpy/recurrence_grid.py b/sumpy/recurrence_grid.py index d5a9d3e46..5c7d2efd9 100644 --- a/sumpy/recurrence_grid.py +++ b/sumpy/recurrence_grid.py @@ -64,6 +64,15 @@ def get_grid(recur, order): + r""" + A function that takes in a recurrence as a polynomial + in s(n), s(n-1), ..., and gets the coefficients of this polynomial as + a polynomial in 1, x_0, x_0^2, ... where x_i is the source location. + + :arg recur: A recurrence for derivatives s(n), etc. where s(n) represents + the nth derivative of the Green's function w/respect to the target at the origin. + :arg order: The order of the input recurrence + """ poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)]) coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)] @@ -75,6 +84,9 @@ def get_grid(recur, order): def convert(grid): + r""" + Given a grid of coefficients, produce a grid recurrence. + """ recur_exp = 0 i = sp.symbols("i") s_terms = [] From c75adeba47888c4f15d9f4959583266ac047d976 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 7 Jan 2025 15:04:50 -0800 Subject: [PATCH 136/193] Added more documentation to grid_recurrence --- sumpy/recurrence.py | 2 +- sumpy/recurrence_grid.py | 88 ++++++++++++++++----- sumpy/recurrence_qbx.py | 2 +- test/plot_taylor_recurrence.ipynb | 122 +++++++++++++++--------------- 4 files changed, 133 insertions(+), 81 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index ad4330942..42d3b5834 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -396,7 +396,7 @@ def get_shifted_recurrence_exp_from_pde(pde: LinearPDESystemOperator) -> sp.Expr A function that "shifts" the recurrence so it's center is placed at the origin and source is the input for the recurrence generated. Outputs an expression that evaluates to 0 rather than s(n) in terms - of s(n-1), etc. + of s(n-1), etc. :arg recurrence: a recurrence relation in :math:`s(n)` """ diff --git a/sumpy/recurrence_grid.py b/sumpy/recurrence_grid.py index 5c7d2efd9..b21aa7c30 100644 --- a/sumpy/recurrence_grid.py +++ b/sumpy/recurrence_grid.py @@ -1,7 +1,15 @@ r""" -With the functionality in this module, we aim to compute layer potentials -using a recurrence for one-dimensional derivatives of the corresponding -Green's function. See recurrence.py. +With the functionality in this module, we aim to compute a recurrence for +one-dimensional derivatives of functions :math:`f:\mathbb R^n \to \mathbb R` +for functions satisfying two assumptions: + +- :math:`f` satisfies a PDE that is linear and has coefficients polynomial + in the coordinates. +- :math:`f` only depends on the radius :math:`r`, + i.e. :math:`f(\boldsymbol x)=f(|\boldsymbol x|_2)`. + + However, unlike recurrence.py, the recurrences produced here are numerically + stable in a different source-location space. .. autofunction:: get_grid .. autofunction:: convert @@ -63,17 +71,29 @@ from matplotlib import cm, ticker -def get_grid(recur, order): +def get_grid(recur_exp, order): r""" - A function that takes in a recurrence as a polynomial - in s(n), s(n-1), ..., and gets the coefficients of this polynomial as - a polynomial in 1, x_0, x_0^2, ... where x_i is the source location. + Organizes the coefficients of recur into a 2D array, called a grid. + + :arg recur_exp: A recurrence expression for derivatives s(n), etc. where s(n) + represents the nth derivative of the Green's function w/respect to the target at + the origin. + recur_exp looks like :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) s(n) + + (b_{10} x_0^0 + b_{11} x_0^1 +\cdots) s(n-1) + \cdots` - :arg recur: A recurrence for derivatives s(n), etc. where s(n) represents - the nth derivative of the Green's function w/respect to the target at the origin. - :arg order: The order of the input recurrence + :arg order: The order of the input recurrence expression + + :returns: *table* a sequence of of sequences, with the outer sequence + iterating over s(n), s(n-1),.. and each inner sequence iterating + over powers of :math:`x_0`, so that, in terms of the above form, + coeffs is :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` """ - poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)]) + var = _make_sympy_vec("x", 2) + s = sp.Function("s") + n = sp.symbols("n") + i = sp.symbols("i") + + poly_in_s_n = sp.poly(recur_exp, [s(n-i) for i in range(order)]) coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)] table = [] @@ -85,20 +105,44 @@ def get_grid(recur, order): def convert(grid): r""" - Given a grid of coefficients, produce a grid recurrence. + Given a grid of coefficients, produce a grid recurrence. Suppose that + :math:`s(n) = \sum_i s(n,i) x_0^i`. A grid recurrence is an expression + involving s(n,i) instead of s(n). + + :arg grid: The coefficients of a recurrence expression organized into a grid + see :func:`get_grid` + + :returns: a tuple ``(recur_exp, s_terms)``, where + - *grid_recur_exp* a grid recurrence for terms s(n,i) + - *s_terms* are the terms s(n,i) that exist in recur_exp """ - recur_exp = 0 + s = sp.Function("s") + n = sp.symbols("n") + i = sp.symbols("i") + + grid_recur_exp = 0 i = sp.symbols("i") s_terms = [] for j in range(len(grid)): for k in range(len(grid[j])): - recur_exp += grid[j][k] * s(n-j,i-k)/sp.factorial(i-k) + grid_recur_exp += grid[j][k] * s(n-j,i-k)/sp.factorial(i-k) if grid[j][k] != 0: s_terms.append((j,k)) - return recur_exp, s_terms + return grid_recur_exp, s_terms def grid_recur_to_column_recur(grid_recur, s_terms): + r""" + Given a grid recurrence, produce a recurrence that only involves + terms of the form s(n,i), s(n-1,i), ..., s(n-k,i). + + :arg grid_recur: A grid recurrence see :func:`get_grid` + :arg s_terms: The s(i,j) terms in grid_recur + """ + s = sp.Function("s") + n = sp.symbols("n") + i = sp.symbols("i") + grid_recur_simp = grid_recur bag = set() for s_t in s_terms: @@ -117,6 +161,7 @@ def get_taylor_recurrence(pde): def create_subs_grid(width, length, derivs, coord_dict): + var = _make_sympy_vec("x", 2) initial_grid = [[sp.diff(derivs[i], var[0], j).subs(var[0], 0) for j in range(width)] for i in range(length)] # assume len(initial_grid) >= 1 @@ -133,18 +178,23 @@ def create_subs_grid(width, length, derivs, coord_dict): return initial_grid_subs -def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur): +def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur, derivs): initial_grid_subs = [row[:] for row in initial_grid_in] #deep copy initial_grid_width = len(initial_grid_subs[0]) initial_grid_length = len(initial_grid_subs) + var = _make_sympy_vec("x", 2) + s = sp.Function("s") + n = sp.symbols("n") + i = sp.symbols("i") + for n_x in range(initial_grid_length, n_derivs_compute): appMe = [] for i_x in range(initial_grid_width): exp_i_n = grid_recur.subs(n, n_x).subs(i, i_x) if exp_i_n == 0: - exp_i_n = sp.diff(derivs_lap[n_x], var[0], i_x).subs(var[0], 0) + exp_i_n = sp.diff(derivs[n_x], var[0], i_x).subs(var[0], 0) assert n_x-order_grid_recur >= 0 kys = [s(n_x-k,i_x) for k in range(1,order_grid_recur+1)] vals = [initial_grid_subs[n_x-k][i_x] for k in range(1, order_grid_recur+1)] @@ -156,7 +206,9 @@ def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order return initial_grid_subs + def compute_taylor_lp(inp_grid, coord_dict): + var = _make_sympy_vec("x", 2) inp_grid = np.array(inp_grid) _, c = inp_grid.shape return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i/math.factorial(i) for i in range(c)]), (1, c)), axis = 1) @@ -168,6 +220,6 @@ def compute_lp_orders(pde, loc, num_of_derivs, derivs_list, recur_order, taylor_ initial_grid_subs = create_subs_grid(taylor_order, recur_order, derivs_list, coord_dict_t) - extended_grid = extend_grid(initial_grid_subs, get_taylor_recurrence(pde), coord_dict_t, num_of_derivs, recur_order) + extended_grid = extend_grid(initial_grid_subs, get_taylor_recurrence(pde), coord_dict_t, num_of_derivs, recur_order, derivs_list) return compute_taylor_lp(extended_grid, coord_dict_t) \ No newline at end of file diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index c2a2e86d1..c81bbe448 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -1,5 +1,5 @@ r""" -With the functionality in this module, we aim to compute layer potentials +With the functionality in this module, we compute layer potentials using a recurrence for one-dimensional derivatives of the corresponding Green's function. See recurrence.py. diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index d9a279d80..fd385ebfd 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -110,7 +110,7 @@ "4" ] }, - "execution_count": 6, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -122,19 +122,19 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle -1.55431223447522 \\cdot 10^{-15}$" + "$\\displaystyle -2.22044604925031 \\cdot 10^{-16}$" ], "text/plain": [ - "-1.55431223447522e-15" + "-2.22044604925031e-16" ] }, - "execution_count": 7, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -159,7 +159,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -176,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -188,7 +188,7 @@ " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" ] }, - "execution_count": 9, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -222,7 +222,7 @@ "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" ] }, - "execution_count": 10, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -260,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -276,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -288,7 +288,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 12, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -307,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -321,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -333,7 +333,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 14, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -344,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -356,7 +356,7 @@ "(-8*s(-1, 2) - 12*s(1, 2))/x1**2" ] }, - "execution_count": 15, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -381,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -397,7 +397,7 @@ " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" ] }, - "execution_count": 16, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -434,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -444,7 +444,7 @@ " [0, -0.694444444444445, 0, 2.89351851851852, 0, -40.1877572016461]]" ] }, - "execution_count": 18, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -494,7 +494,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -510,7 +510,7 @@ " [0, 1172.14291838134, 0, -58607.1459190672, 0, 4476934.75770653]]" ] }, - "execution_count": 20, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -528,7 +528,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -552,7 +552,7 @@ " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" ] }, - "execution_count": 21, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -567,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -591,7 +591,7 @@ " 21.8306910223677 + 0.0733625774350065*I]]" ] }, - "execution_count": 22, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -604,7 +604,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -613,7 +613,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -622,7 +622,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -631,7 +631,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -650,7 +650,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -674,7 +674,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -689,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -703,54 +703,54 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 0.0873119521523848$" + "$\\displaystyle 9.30286424095774 \\cdot 10^{-5}$" ], "text/plain": [ - "0.0873119521523848" + "9.30286424095774e-5" ] }, - "execution_count": 30, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "loc = np.array([1e-1, 1.1])\n", - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 4, 2, 2)" + "loc = np.array([1e-8, 1e-7])\n", + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 8, 8, 2)" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 2.26227346778715 \\cdot 10^{-14}$" + "$\\displaystyle 0.48954387615017$" ], "text/plain": [ - "2.26227346778715e-14" + "0.489543876150170" ] }, - "execution_count": 31, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 4, 16, 2)" + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 8, 2, 2)" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -761,7 +761,7 @@ " plot_me = np.empty((res, res))\n", " for i in range(res):\n", " for j in range(res):\n", - " if abs(x_grid[i]) == abs(y_grid[j]):\n", + " if abs(x_grid[i]) >= abs(y_grid[j]):\n", " plot_me[i, j] = 1e-16\n", " else:\n", " plot_me[i,j] = compute_error_coord_tg(np.array([x_grid[i],y_grid[j]]), pde, derivs, order_plot, taylor_order, recur_order)\n", @@ -772,22 +772,22 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 64, "metadata": {}, "outputs": [], "source": [ - "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 8, laplace2d, derivs_lap, 2, 2)\n", + "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 5, laplace2d, derivs_lap, 6, 2)\n", "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 6, 2)" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 66, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACjT0lEQVR4nOzdfXiU5Z328TMSkyBIMFCiUQj4Ro0R0JBaUBR0DQ2K75V2uwgKVcr4UExtK2VVwJe4a0vp1oDSdqXaukW7NrWWGmJlhUqtIRKrxlWpaLDyUoISiQoa7ueP316RIZmQSWZy3zPz/RyHx/NkCMmN2u6353UlSfM8zxMAAAAAAAAAHOAwvx8AAAAAAAAAQPAwHAIAAAAAAABog+EQAAAAAAAAQBsMhwAAAAAAAADaYDgEAAAAAAAA0AbDIQAAAAAAAIA2GA4BAAAAAAAAtMFwCAAAAAAAAKANhkMAAAAAAAAAbTAcIiaefvppXXvttfr85z+vPn366Nhjj9Ull1yi2traDn/f+PHjlZaWdsi/FixY0DN/kE7qzDOnpaXpf/7nf2L2OcePH6/x48fH7ON15JNPPtH999+v4uJi5eTk6IgjjlB+fr4uueQS/eY3v4n55wvSP2PP8/Twww/rvPPO01FHHaXMzEwdf/zxCoVC2rJlS7c//ltvvaW0tDStWLGi+w/bCdu2bdMNN9yg448/Xr1791Z+fr5mzJihhoaGLn/MoUOH6qKLLorhU3ZOT/5nAEBy+dOf/qRJkybpqKOOUu/evXXSSSfp9ttvj/j+9Enn0Sc9gz45NPoEAOIj3e8HQHJYtmyZGhsb9c1vflMFBQX6xz/+oR/84Af64he/qKqqKp133nnt/r6lS5eqqamp9e3f//73uuOOO/TAAw/o85//fOvrxx13XNz/DNH485//HPb27bffrjVr1ujpp58Oe72goKAnHytmpk6dqscee0xz587VwoULlZmZqTfffFNPPvmkqqqqdNlll8X08/35z38OxD/j/fv365//+Z+1cuVKffWrX9WKFSuUnZ2tv/71r7rnnnv08MMP64knntBZZ53l96N2yt69e3XOOefovffe08KFC1VQUKDXXntNt912m6qqqvTqq6/qyCOP9PsxASCuHn74YU2dOlVXXXWVHnzwQfXt21d/+9vf9O6770b8PfRJMNEn9AkAwAceEAPbt29v89oHH3zg5ebmeueff36nP84DDzzgSfJqampi8lzNzc0x+TiHMm3aNK9Pnz5x/Rznnnuud+6558bkY+3fv9/78MMP2/21N99805Pk3Xrrre3+ektLS9yfwS933XWXJ8m7++672/zatm3bvPz8fC83N9d77733Ovw4Hf17t3nzZk+S98ADD3Tzac2HH37o7d+/v91fq66u9iR5P/3pT8Nef/jhhz1J3mOPPdalz5mfn+9deOGFXfq93RHL/wwASA3vvPOO16dPH+8b3/hGtz4OfRIZfRJ/9Enn0CcAEB98qTJiYtCgQW1e69u3rwoKCmLy5RMrV67UmDFj1KdPH/Xt21cTJ07Uxo0bw95n+vTp6tu3r1566SWVlJToyCOP1Pnnny/JvtTkhhtu0AMPPKDhw4erd+/eGj16tJ577jl5nqd77rlHw4YNU9++fXXeeedp06ZN3X7miooKnXPOORo0aJD69Omj0047Tf/+7/+uTz75pPV9br/9dqWnp7f79+jaa6/VgAED9PHHH0f8HLt27dLs2bN17LHHKiMjQ8cff7zmz5+vvXv3hr2f+/Pfd999OuWUU5SZmamf//zn7X7MxsZGSdIxxxzT7q8fdlj4f200NTXppptu0rBhw5SRkaFjjz1Wc+fOVXNzc6efob0vBdq2bZuuv/56HXfcccrIyNCwYcO0cOFCffrpp2Hvt2zZMo0cOVJ9+/bVkUceqc9//vP63ve+F/HvWST79u3TPffco1NOOUXf+c532vx6bm6uysvLtX37dv3sZz9rfX38+PEqLCzU2rVrNXbsWB1xxBG69tprJUnvvvuurrrqKh155JHKzs7WlClTtG3btnY//4YNG3TxxRcrJydHWVlZOv300/XII4+Evc+KFSuUlpam1atX69prr9XnPvc5HXHEEW3+eTuHH364JCk7Ozvs9f79+0uSsrKyOvc3pwuqq6t1ySWX6LjjjlNWVpZOPPFEXX/99dq5c2fY+y1YsEBpaWnauHGjLr/8cvXr10/Z2dn6l3/5F/3jH/845OdZuHChzjzzTOXk5Khfv34644wz9LOf/Uye57V534cfflhjxoxR37591bdvX40aNSrsn6UkPfXUUzr//PPVr18/HXHEETrrrLP0xz/+sXt/MwD45qc//amam5v13e9+Ny4fnz5pH31Cn9An9AmAJOLvbolk9v7773vZ2dneZZdd1unf096J/p133umlpaV51157rffEE094jz32mDdmzBivT58+3iuvvNL6ftOmTfMOP/xwb+jQoV55ebn3xz/+0auqqvI8z/Mkefn5+d7YsWO9xx57zPvNb37jnXzyyV5OTo534403epdccon3xBNPeL/85S+93Nxcb8SIERFPSdvT3on+jTfe6C1btsx78sknvaefftr74Q9/6A0cONC75pprWt9n+/btXmZmpjd//vyw39vY2Oj17t3b+/a3v9362sGnmR999JE3YsQIr0+fPt73v/99b/Xq1d4tt9zipaene5MmTQr7eJK8Y4891hsxYoT38MMPe08//bT38ssvt/tn2bNnj9e/f3/v6KOP9u6//35v8+bNEf/czc3N3qhRo7yBAwd6ixcv9p566invRz/6kZedne2dd955YX8PO3oGSd5tt93W+r5bt271Bg8e7OXn53v333+/99RTT3m33367l5mZ6U2fPr31/f7rv/7Lk+T9v//3/7zVq1d7Tz31lHffffd5c+bMifjMkaxfv96T5H33u9+N+D4ffPCBd9hhh3kTJ05sfe3cc8/1cnJyvMGDB3s//vGPvTVr1njPPPOM9+GHH3qnnHKKl52d7f34xz/2qqqqvDlz5nhDhgxpc6L/9NNPexkZGd64ceO8lStXek8++aQ3ffr0Nu/n/vNx7LHHetddd533hz/8wfv1r3/tffrpp+0+7yeffOIVFRV5p556qvf88897H3zwgVdbW+uNGjXKO+OMM7x9+/ZF/ffJ8zp3or9s2TKvvLzce/zxx71nnnnG+/nPf+6NHDnSGz58eNjnve2221r/8/ntb3/bq6qq8hYvXuz16dPHO/3008Pet70T/enTp3s/+9nPvOrqaq+6utq7/fbbvd69e3sLFy4Me79bbrnFk+Rdfvnl3qOPPuqtXr3aW7x4sXfLLbe0vs9DDz3kpaWleZdeeqn32GOPeb/73e+8iy66yOvVq5f31FNPdenvFQB/nXfeeV5OTo735JNPeiNHjvR69erlfe5zn/Ouv/56b/fu3Z3+OPSJoU/oE/qEPgGQehgOETdf+9rXvPT0dG/Dhg2d/j0Hh3lDQ4OXnp7u/b//9//C3u+DDz7wjj76aO+qq65qfW3atGmeJO8///M/23xcSd7RRx/t7dmzp/W1yspKT5I3atSosIBcsmSJJ8n761//2unnPtSXArW0tHiffPKJ9+CDD3q9evXydu3aFfZ7Bw0a5O3du7f1tX/7t3/zDjvssLAoPjhK7rvvPk+S98gjj4R9rn/7t3/zJHmrV68O+/NnZ2eHfd6O/P73v/cGDhzoSfIkeQMGDPC+/OUve48//njY+5WXl3uHHXZYmy/d+vWvf+1J8latWtWpZzg4zK+//nqvb9++3ttvvx32ft///vc9Sa3/g+yGG27w+vfv36k/06H86le/8iR59913X4fvl5ub651yyimtb5977rmeJO+Pf/xj2PstW7bMk+T99re/DXv961//epvg/vznP++dfvrp3ieffBL2vhdddJF3zDHHtH75lfvPx9VXX93pP1dTU5M3efLk1n+Wkrzx48d7jY2Nnf4YB4v2S4H279/vffLJJ97bb7/d5u+JC/Mbb7wx7Pf88pe/9CR5v/jFL1pfO9SXArn/nC1atMgbMGBA63+u33zzTa9Xr17e1772tYi/t7m52cvJyfEmT57c5mOOHDnS+8IXvtDpPy+A4Bg+fLiXlZXlHXnkkd5dd93lrVmzxvv3f/93r3fv3t5ZZ53V6RGOPjH0CX3iefQJfQIg1fClyoiLW265Rb/85S/1wx/+UEVFRa2v79+/X59++mnrXy0tLR1+nKqqKn366ae6+uqrw35fVlaWzj333HZ/KuAVV1zR7seaMGGC+vTp0/r2KaecIkkqLS1VWlpam9fffvvtTv9527Nx40ZdfPHFGjBggHr16qXDDz9cV199tVpaWvT666+3vt83v/lN7dixQ48++qgk+3u0bNkyXXjhhRo6dGjEj//000+rT58+uvLKK8Nenz59uiS1+fIF91P4OmPSpElqaGjQb37zG91000069dRTVVlZqYsvvlg33HBD6/s98cQTKiws1KhRo8L++UycOLHdn9rY2Wd44oknNGHCBOXl5YV93NLSUknSM888I0n6whe+oPfff19f/epX9dvf/rbNl5nEg+d5Yf++SNJRRx3V5gcArVmzRkceeaQuvvjisNf/+Z//OeztTZs26X//93/1ta99TZLC/ryTJk3S1q1b9dprr4X9nkj/jh/sk08+0ZQpU1RXV6ef/OQnWrt2rX7+85/r73//uy644ALt3r27Ux+nK3bs2KFZs2Zp8ODBSk9P1+GHH678/HxJ0quvvtrm/d2f37nqqquUnp6uNWvWdPh5nn76af3TP/2TsrOzW/9zduutt6qxsVE7duyQZF+W1NLSolAoFPHjrF+/Xrt27dK0adPC/hns379fX/rSl1RTU9Pmy9sABN/+/fv18ccf63vf+57mzZun8ePH69vf/rbKy8v17LPPtv7fSvqEPqFP6BP6BADax09VRswtXLhQd9xxh+68886wiJOkRYsWaeHCha1v5+fn66233or4sbZv3y5JKi4ubvfXD/5+NkcccYT69evX7vvm5OSEvZ2RkdHh6x19755DaWho0Lhx4zR8+HD96Ec/0tChQ5WVlaXnn39eoVBIH330Uev7nn766Ro3bpwqKir0ta99TU888YTeeust3X///R1+jsbGRh199NFtInHQoEFKT09v/V5ATqTvCRRJ7969demll+rSSy9t/TOVlpaqoqJC3/jGN3Tqqadq+/bt2rRpU+v3qjnYwaHc2WfYvn27fve73x3y406dOlWffvqpfvKTn+iKK67Q/v37VVxcrDvuuEMXXHBBJ/+kZsiQIZKkzZs3R3yf5uZm7dy5U6effnrY6+39uRobG5Wbm9vm9aOPPjrsbffv+E033aSbbrqp3c/b1b+PP/vZz/SHP/xBNTU1Gj16tCRp3LhxOvvss3XCCSdoyZIluu222zr1saKxf/9+lZSU6N1339Utt9yi0047TX369NH+/fv1xS9+Mezff+fgvy/p6ekaMGBAm3+PD/T888+rpKRE48eP109+8pPW7zdVWVmpO++8s/XzuO9F1NFPxnT/HA7+H7oH2rVrV9j/uAcQfAMGDNAbb7yhiRMnhr1eWlqquXPn6oUXXtA//dM/0Sf0Sac+N30Sjj5pH30CINkwHCKmFi5cqAULFmjBggXtfgPo6667ThdddFHr25mZmR1+vIEDB0qSfv3rX7eeBnbk4Ej1S2VlpZqbm/XYY4+FPXddXV277z9nzhx9+ctf1gsvvKB7771XJ5988iHDcsCAAfrLX/7S5oR5x44d+vTTT1v/3jnd/XszZMgQXXfddZo7d65eeeUVnXrqqRo4cKB69+6t//zP/2z393T1GQYOHKgRI0bozjvvbPfX8/LyWv//11xzja655ho1Nzdr7dq1uu2223TRRRfp9ddf79S/M05RUZGOOuooPf744yovL2/3WR9//HHt37+/zT+b9t53wIABev7559u8fvA3H3d/j+bNm6fLL7+83WcbPnz4IT9fe+rq6tSrVy+dccYZYa8ff/zxGjBggF5++eVOfZxovfzyy3rxxRe1YsUKTZs2rfX1jr6p/7Zt23Tssce2vv3pp5+qsbFRAwYMiPh7fvWrX+nwww/XE088EfaN1CsrK8Pe73Of+5wk6Z133tHgwYPb/Vjun8OPf/xjffGLX2z3fdr7H1oAgm3EiBF67rnn2rzu/d8PKHADH31S1+770ydtfx998hn6pH30CYBkw3CImLn99tu1YMEC/eu//mvEU8K8vLywqDqUiRMnKj09XX/72986/eUPQeDC6cD/4eF5nn7yk5+0+/6XXXaZhgwZom9961t65pln9MMf/vCQ8XX++efrkUceUWVlpS677LLW1x988MHWX++KDz74QGlpaerbt2+bX3NfwuH+GV500UW66667NGDAAA0bNqxLn689F110kVatWqUTTjih01++1KdPH5WWlmrfvn269NJL9corr0QV5hkZGfr2t7+t733ve7rnnnva/OTCHTt2aN68ecrNzdXMmTMP+fEmTJigRx55RI8//njYlwM9/PDDYe83fPhwnXTSSXrxxRd11113dfp5OyMvL08tLS2qqanRmWee2fr666+/rsbGxg5PuLujvX//JXV4S+WXv/xl2Lc1eOSRR/Tpp59q/PjxHX6e9PR09erVq/W1jz76SA899FDY+5WUlKhXr15atmyZxowZ0+7HOuuss9S/f3/V19e3uSkNIHFdccUVWr58uf7whz+E3cZatWqVJLX+D3H6hD7pDPokNugTQ58ASBQMh4iJH/zgB7r11lv1pS99SRdeeGGb0/1IJ2SHMnToUC1atEjz58/Xm2++qS996Us66qijtH37dj3//PPq06dP2JcWBcUFF1ygjIwMffWrX9V3vvMdffzxx1q2bJnee++9dt+/V69eCoVC+u53v6s+ffq0fh+gjlx99dWqqKjQtGnT9NZbb+m0007Tn/70J911112aNGmS/umf/qlLz/7aa69p4sSJ+spXvqJzzz1XxxxzjN577z39/ve/1/LlyzV+/HiNHTtWkjR37lz993//t8455xzdeOONGjFihPbv36+GhgatXr1a3/rWt8KCsLMWLVqk6upqjR07VnPmzNHw4cP18ccf66233tKqVat033336bjjjtPXv/519e7dW2eddZaOOeYYbdu2TeXl5crOzg778jH3vZg6+rIzSfrud7+rF198sfX/nTJlirKzs/XXv/5V99xzjz744AM98cQTys7OPuSf4eqrr9YPf/hDXX311brzzjt10kknadWqVaqqqmrzvvfff79KS0s1ceJETZ8+Xccee6x27dqlV199VS+88ELr95eK1jXXXKMf/vCHuuKKK/Sv//qvGj58uN58803ddddd6tOnj2bNmtX6vm+99ZaGDRumadOmacWKFYf82Nu2bdOvf/3rNq8PHTpUI0eO1AknnKCbb75ZnucpJydHv/vd71RdXR3x4z322GNKT0/XBRdcoFdeeUW33HKLRo4cqauuuiri77nwwgu1ePFi/fM//7Ouu+46NTY26vvf/36b/0EwdOhQfe9739Ptt9+ujz76SF/96leVnZ2t+vp67dy5UwsXLlTfvn314x//WNOmTdOuXbt05ZVXatCgQfrHP/6hF198Uf/4xz+0bNmyQ/59ARAsJSUlmjx5shYtWtT65YgbNmzQwoULddFFF+nss8/u0selTyKjT+iTQ6FPPnsm+gRAQvDtx7Igqbif3Bbpr846+KcWOpWVld6ECRO8fv36eZmZmV5+fr535ZVXek899VTr+3T0kwMleaFQKOy1zZs3e5K8e+65J+z1NWvWeJK8Rx99tNPP3d7n/t3vfueNHDnSy8rK8o499ljv29/+tveHP/zBk+StWbOmzcd46623PEnerFmz2v0c7f3EtsbGRm/WrFneMccc46Wnp3v5+fnevHnzvI8//jjs/dr780fy3nvveXfccYd33nnneccee6yXkZHh9enTxxs1apR3xx13eB9++GHY++/Zs8f713/9V2/48OFeRkaGl52d7Z122mnejTfe6G3btq1Tz6CDfmqh53neP/7xD2/OnDnesGHDvMMPP9zLycnxioqKvPnz57f+9Mmf//zn3oQJE7zc3FwvIyPDy8vL86666qo2P3Fy4MCB3he/+MVO/fn379/v/fKXv/TGjx/v9e/f38vIyPCGDRvmfeMb32jzUxQ9z/65nHrqqe1+rHfeece74oorvL59+3pHHnmkd8UVV3jr169v81MLPc/zXnzxRe+qq67yBg0a5B1++OHe0Ucf7Z133nlhP0Ux0n8+OvLGG294U6dO9YYOHeplZmZ6Q4YM8aZMmdL6kx+dl156yZPk3XzzzYf8mPn5+RH/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9dvf/laZmZlt+poCABCs6Cf0EwBAADMALKO4uNhIMhUVFa3uj42NNVlZWS22jRkzxjz99NPGGGPy8vKMJFNdXe3YX1JSYiSZ48ePG2OMeeONN4wkU1pa6jimvLzcSDK5ubmt3u/KlStNRkZGi22nTp0ykkx5eflN8xQWFpqwsDCzcuVK06lTJ7Nz586bHmuMMc8++6wZNGiQuXr1aqv7b5d/48aNpmfPnqa2ttax//333zchISHm7Nmzxhhj5s2bZ2JiYkx9fb3jmD/+8Y8mOjra1NXVOba9+uqrRpIpKSm55cwAAAQ7+gn9BAAQuHjFIWAhycnJmjx5shITE/X444/r9ddfV3V1tSSppqZGp0+f1n333dfiOvfdd5/KysradD/h4eFKSkpyXC4tLVVoaKgmTpzY6vHFxcXKy8tT165dHR/Dhg2TJMev6bRm3LhxyszM1O9//3v98pe/1IQJExz7pk2b5ritESNGOOZIT09XWFiY0225kr+srEzJycm64447WuxvampSeXm5Y1tiYqLCw8Mdl5uv16VLlxazAwAA+gn9BAAQyDr5ewAAvhMaGqrc3FwVFhbqX//6l1555RWtWLFCe/fuVa9evSRJNputxXWMMY5tISEhjm3NGhoanO6nc+fOLW6nc+fOt5yrqalJM2bM0PPPP++0r1+/fre83u7duxUaGur060qbNm3Sd999J0mOIn67OaRb57/+81td7/ri3nw9AADQOvoJ/QQAELh4xSFgMTabTffdd59WrVqlkpIShYeHa/v27YqKilJsbKw+/fTTFscXFhZq+PDhkqQ+ffpIsr/nT7PS0tLb3mdiYqKampq0c+fOVvenpqbq4MGDuvPOOzV48OAWHzeW3Ou98MILKisr086dO7Vjxw698cYbjn39+/d33MbAgQMlSUlJSdq1a1erP0y4kj8hIUGlpaWON2uXpN27dyskJMTxJuOtSUhI0P79+x0/KEjSnj17bno8AABWQz+hnwAAApS/fkcagO/t2bPHZGVlmaKiInPixAmzdetWEx4ebj744ANjjDFr1641UVFR5q233jKHDx82v/rVr0xYWJg5cuSIMcaYq1evmri4OPP444+b8vJyk5OTY4YOHer0HkLdu3d3uu/58+ebuLg4s337dvPf//7X5OXlmS1bthhjjKmsrDR9+vQxjz32mNm7d685duyY2bFjh/nxj39srl271mqWkpISEx4ebt577z1jjDGbNm0y3bp1M8eOHbtp/qqqKtOrVy/zyCOPmKKiInPkyBGzefNmc/jwYZfy19XVmX79+plHH33UHDhwwHzyySfmrrvuMvPmzXPcx7x588zDDz/c4n4vXbpkevfubZ544glz8OBB8/7775vBgwfzHkIAABj6Cf0EABDIWDgELOTQoUNm6tSppk+fPiYiIsIMGTLEvPLKK479jY2NZtWqVaZ///4mLCzMJCcnm3/+858tbuPTTz81iYmJJjIy0qSnp5tt27a5VMy/++4784tf/ML069fPhIeHm8GDB5s///nPjv1Hjhwxs2fPNj169DCdO3c2w4YNM0uWLDFNTU2t3lZCQoJZuHBhi+2zZ88248ePv2mZN8aY/fv3m4yMDNOlSxfTrVs3k56e7ijzruT/4osvzKRJk0xkZKSJjo42Tz31lLl06ZJjf2vF3BhjPvvsM5OcnGzCw8NNSkqKeeeddyjmAAAY+okx9BMAQOCyGcObWwAAAAAAAABoifc4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATlg4BAAAAAAAAOCEhUMAAAAAAAAATv4PDbmAkzvMEZoAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACxQUlEQVR4nOzdf3zWdb3/8edkbCCwyUAGAzbxZ04UdCwDRJnmaCiUYnHqhKCQ0S4PB5eZ5PEXqbNDEZ0cBGmSnSzSo1RGjZkmJMcck5k6KzF0qIzF8Dg2E3B8vn9c381du3Zt14/PdX3en8/ncb/ddjtdn+uzz/UeaOfdc6/X651mWZYlAAAAAAAAAOjmOKcXAAAAAAAAAMA8BIcAAAAAAAAAwhAcAgAAAAAAAAhDcAgAAAAAAAAgDMEhAAAAAAAAgDAEhwAAAAAAAADCEBwCAAAAAAAACENwCAAAAAAAACAMwSEAAAAAAACAMASHsNUf//hHzZ49W8OHD9fgwYN12mmn6Zvf/GbE+2fOnKm0tLR+v+64447U/RBRiGbNaWlp+sMf/mDbZ86cOVMzZ8607Xl9OXr0qNavX6/i4mLl5OTo+OOPV0FBgT796U/r8ccft/3zTPo7tixLDz/8sC6++GINHz5cmZmZOvnkkxUIBLR3796En//GG28oLS1NGzduTHyxUYj0z+a9994b9zNPOukkXX755TauMjqp/HcAgLewP2F/Eg+T/o69tj9pamrS9ddfr5NPPlmDBw9WQUGBFi9erMbGxrifyf4EAJIj3ekFwDsefvhhLViwQJ/73Of00EMPaejQoXr99df1zjvvRPyetWvXqrW1tev1b37zG91111168MEH9bGPfazr+rhx45K69lj97//+b8jrb37zm3r66af11FNPhVwvLCxM5bJss2DBAj322GNavny57rzzTmVmZurvf/+7fve736m6ulpXXHGFrZ/3v//7v0b8HR87dkxf+MIXtGnTJn3+85/Xxo0blZ2drT//+c9atWqVHn74YT3xxBOaPn2600uNyVVXXaWvfvWrIdfy8/MdWg0ApBb7E/Yn8WJ/khyHDx/WhRdeqHfffVd33nmnCgsL9de//lW33367qqur9eqrr2rYsGFOLxMA0MkCbPDWW29ZQ4YMsb7yla8k9JwHH3zQkmTV1tbasq729nZbntOfhQsXWkOGDEnqZ1x00UXWRRddZMuzjh07Zr3//vu9vvf3v//dkmTddtttvb7f0dGR9DU45Z577rEkWffee2/Ye01NTVZBQYGVm5trvfvuu30+p69/7vbs2WNJsh588MEEVxv0/vvvW8eOHYv4viQrEAjY8lmdCgoKrMsuu8zWZ0bDzn8HAPgD+xP2J3auwSle25/U1NRYkqz7778/5PrDDz9sSbIee+yxuD6T/QkAJAetyrDF/fffr/b2dn39619PyvM3bdqkqVOnasiQIRo6dKhmzZqlXbt2hdyzaNEiDR06VC+99JJKS0s1bNgwXXLJJZKCrSbXX3+9HnzwQZ1xxhkaPHiwpkyZoueee06WZWnVqlWaMGGChg4dqosvvli7d+9OeM1VVVW68MILNWrUKA0ZMkRnn322/vM//1NHjx7tuueb3/ym0tPTe20xufbaazVixAh98MEHET/j4MGDKi8v19ixY5WRkaGTTz5Zt9xyiw4fPhxyX+fP/4Mf/EBnnnmmMjMz9eMf/7jXZ7a0tEiSxowZ0+v7xx0X+l8bra2tuvHGGzVhwgRlZGRo7NixWr58udrb26NeQ2+tQE1NTfryl7+scePGKSMjQxMmTNCdd96pDz/8MOS+devWadKkSRo6dKiGDRumj33sY/rGN74R8c8skiNHjmjVqlU688wzddNNN4W9n5ubq8rKSu3fv18PPPBA1/WZM2dq4sSJ2rZtm6ZNm6bjjz9e1157rSTpnXfe0ec+9zkNGzZM2dnZmj9/vpqamnr9/J07d2ru3LnKycnRoEGDdO655+oXv/hFyD0bN25UWlqatm7dqmuvvVYnnniijj/++LC/bxPU1NTo05/+tMaNG6dBgwbp1FNP1Ze//GUdOHAg5L477rhDaWlp2rVrl6688kplZWUpOztbX/ziF/WPf/yj38+58847df755ysnJ0dZWVk677zz9MADD8iyrLB7H374YU2dOlVDhw7V0KFDNXny5JC/S0l68skndckllygrK0vHH3+8pk+frt///veJ/WEAcAz7k3DsT9ifOL0/GThwoCQpOzs75PoJJ5wgSRo0aFB0fzhxYH8CAHFwNreEV1x88cVWTk6O9bvf/c6aNGmSNWDAAOvEE0+0vvzlL1vvvfde1M/p7Tf6d999t5WWlmZde+211hNPPGE99thj1tSpU60hQ4ZYr7zyStd9CxcutAYOHGiddNJJVmVlpfX73//eqq6utiwrWHVVUFBgTZs2zXrsscesxx9/3Dr99NOtnJwc64YbbrA+/elPW0888YT105/+1MrNzbXOOeecPqu4eurtN/o33HCDtW7dOut3v/ud9dRTT1nf/e53rZEjR1rXXHNN1z379++3MjMzrVtuuSXke1taWqzBgwdbX/va17qu9fxt5j//+U/rnHPOsYYMGWJ9+9vftrZu3WrdeuutVnp6ujV79uyQ50myxo4da51zzjnWww8/bD311FPWyy+/3OvP0tbWZp1wwgnW6NGjrfXr11t79uyJ+HO3t7dbkydPtkaOHGmtXr3aevLJJ63vfe97VnZ2tnXxxReH/Bn2tQZJ1u2339517759+6zx48dbBQUF1vr1660nn3zS+uY3v2llZmZaixYt6rrvZz/7mSXJ+rd/+zdr69at1pNPPmn94Ac/sJYtWxZxzZHs2LHDkmR9/etfj3jPoUOHrOOOO86aNWtW17WLLrrIysnJscaPH299//vft55++mnrmWeesd5//33rzDPPtLKzs63vf//7VnV1tbVs2TIrPz8/7Df6Tz31lJWRkWHNmDHD2rRpk/W73/3OWrRoUdh9nf9+jB071rruuuus3/72t9ajjz5qffjhhxHXLMkaPny4NWjQICsjI8M677zzrB/96Ecx//l0F81v9NetW2dVVlZav/rVr6xnnnnG+vGPf2xNmjTJOuOMM6wjR4503Xf77bd3/fv5ta99zaqurrZWr15tDRkyxDr33HND7u3tN/qLFi2yHnjgAaumpsaqqamxvvnNb1qDBw+27rzzzpD7br31VkuSdeWVV1qPPPKItXXrVmv16tXWrbfe2nXPT37yEystLc36zGc+Yz322GPWr3/9a+vyyy+3BgwYYD355JMJ/IkBcAr7E/Yn7E/M258cPXrUKioqss466yzr+eeftw4dOmTV1dVZkydPts4777yQ/98fC/YnAJAcBIewxRlnnGENGjTIGjZsmHXPPfdYTz/9tPWf//mf1uDBg63p06dHvcntuTFvbGy00tPTrX/7t38Lue/QoUPW6NGjrc997nNd1xYuXGhJ6jUUkWSNHj3aamtr67q2efNmS5I1efLkkPWtWbPGkmT9+c9/jvrn768VqKOjwzp69Kj10EMPWQMGDLAOHjwY8r2jRo2yDh8+3HXtW9/6lnXc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9yckJJicnJw22zIyMszChQuNMcYUFBQYSaa2tta1v7S01EgyFRUVxhhjXnrpJSPJlJWVuY7Zt2+fkWTy8/PbfdxHH33UZGVltdl28OBBI8ns27evwzxOp9NERkaaRx991ERERJjt27d3eKwxxjzyyCPmkksuMU1NTe3uP1/+DRs2mIsuusjU19e79r/11lsmLCzMHDlyxBhjzNy5c018fLxpbGx0HfOnP/3JxMXFmYaGBte29evXG0mmtLS005oBAAh19Cf0JwCA4MUrDgEbSU1N1bRp05SSkqI77rhDL774omprayVJdXV1OnTokK6++uo297n66qtVXl7epceJiorSmDFjXLfLysoUHh6uKVOmtHt8SUmJCgoK1KdPH9fXFVdcIUmut+m0Z+LEiVqyZIl+//vf6ze/+Y0mT57s2pedne0616hRo1x1ZGZmKjIy0u1cnuQvLy9XamqqLrjggjb7W1tbtW/fPte2lJQURUVFuW6fuV/v3r3b1A4AAOhP6E8AAMEsItAFAPCf8PBw5efny+l06t///reef/55LV++XB999JH69+8vSXI4HG3uY4xxbQsLC3NtO+P06dNuj9OrV6825+nVq1endbW2tuqmm27SU0895bZv8ODBnd5v586dCg8Pd3u70saNG/Xjjz9KkqsRP18dUuf5z/5zZ/c7u3E/cz8AANA++hP6EwBA8OIVh4DNOBwOXX311VqxYoVKS0sVFRWlrVu3KjY2VgkJCfrggw/aHO90OnXllVdKkgYOHCjppzV/zigrKzvvY6akpKi1tVXbt29vd/+4ceO0Z88eXXzxxRo+fHibr3Ob3LM9/fTTKi8v1/bt27Vt2za99NJLrn1DhgxxnWPYsGGSpDFjxmjHjh3t/mfCk/zJyckqKytzLdYuSTt37lRYWJhrkfH2JCcn67PPPnP9R0GSdu3a1eHxAADYDf0J/QkAIEgF6j3SAPxv165dJicnxxQXF5uvv/7abN682URFRZm3337bGGPM6tWrTWxsrHn11VfNF198YX7729+ayMhI8+WXXxpjjGlqajKJiYnmjjvuMPv27TN5eXlm5MiRbmsI9evXz+2x582bZxITE83WrVvNf//7X1NQUGA2bdpkjDGmurraDBw40Nx+++3mo48+MgcOHDDbtm0zv/zlL01zc3O7WUpLS01UVJR58803jTHGbNy40fTt29ccOHCgw/w1NTWmf//+5tZbbzXFxcXmyy+/NK+88or54osvPMrf0NBgBg8ebG677Taze/du8/7775tLL73UzJ071/UYc+fONTfffHObxz1x4oQZMGCAueuuu8yePXvMW2+9ZYYPH84aQgAAGPoT+hMAQDBjcAjYyN69e82MGTPMwIEDTXR0tBkxYoR5/vnnXftbWlrMihUrzJAhQ0xkZKRJTU01//rXv9qc44MPPjApKSkmJibGZGZmmi1btnjUmP/444/m17/+tRk8eLCJiooyw4cPN3/5y19c+7/88ktzyy23mAsvvND06tXLXHHFFWbRokWmtbW13XMlJyeb+fPnt9l+yy23mEmTJnXYzBtjzGeffWaysrJM7969Td++fU1mZqarmfck/+eff26mTp1qYmJiTFxcnHnggQfMiRMnXPvba8yNMebDDz80qampJioqyqSlpZnXX3+dxhwAAEN/Ygz9CQAgeDmMYXELAAAAAAAAAG2xxiEAAAAAAAAANwwOAQAAAAAAALhhcAgAAAAAAADADYNDAAAAAAAAAG4YHAIAAAAAAABww+AQAAAAAAAAgBsGhwAAAAAAAADcMDgEAAAAAAAA4IbBIQAAAAAAAAA3DA4BAAAAAAAAuGFwCAAAAAAAAMANg0MAAAAAAAAAbv4fpJ3bUBENaPMAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -818,7 +818,7 @@ "ax2.set_xlabel(\"source x-coord\")\n", "ax2.set_ylabel(\"source y-coord\")\n", "\n", - "ax1.set_title('2-Term Taylor Series, Order 8, Laplace')\n", + "ax1.set_title('6-Term Taylor Series, Order 5, Laplace')\n", "ax2.set_title('6-Term Taylor Series, Order 8, Laplace')\n", "\n", "plt.show()" From edb8547bc9e6cac46ac4d2d733787a126996be36 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 7 Jan 2025 15:33:12 -0800 Subject: [PATCH 137/193] Don't know how to rigoroulsly check --- test/plot_taylor_recurrence.ipynb | 175 +++++++++++++++++++----------- 1 file changed, 111 insertions(+), 64 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index fd385ebfd..01dbc8514 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -110,7 +110,7 @@ "4" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -122,19 +122,19 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle -2.22044604925031 \\cdot 10^{-16}$" + "$\\displaystyle 2.61457522299224 \\cdot 10^{-14}$" ], "text/plain": [ - "-2.22044604925031e-16" + "2.61457522299224e-14" ] }, - "execution_count": 9, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -159,7 +159,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -176,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -188,7 +188,7 @@ " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" ] }, - "execution_count": 11, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -222,7 +222,7 @@ "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" ] }, - "execution_count": 12, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -260,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -276,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -288,7 +288,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 14, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -307,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -321,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -333,7 +333,7 @@ "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" ] }, - "execution_count": 16, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -344,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -356,7 +356,7 @@ "(-8*s(-1, 2) - 12*s(1, 2))/x1**2" ] }, - "execution_count": 17, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -381,7 +381,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -397,7 +397,7 @@ " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" ] }, - "execution_count": 18, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -411,7 +411,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -434,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -444,7 +444,7 @@ " [0, -0.694444444444445, 0, 2.89351851851852, 0, -40.1877572016461]]" ] }, - "execution_count": 20, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -494,7 +494,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -510,7 +510,7 @@ " [0, 1172.14291838134, 0, -58607.1459190672, 0, 4476934.75770653]]" ] }, - "execution_count": 22, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -528,7 +528,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -552,7 +552,7 @@ " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" ] }, - "execution_count": 23, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -567,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -591,7 +591,7 @@ " 21.8306910223677 + 0.0733625774350065*I]]" ] }, - "execution_count": 24, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -604,7 +604,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -613,7 +613,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -622,7 +622,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -631,7 +631,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -650,7 +650,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -674,7 +674,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -689,7 +689,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -703,54 +703,54 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 9.30286424095774 \\cdot 10^{-5}$" + "$\\displaystyle 0.00263326606293773$" ], "text/plain": [ - "9.30286424095774e-5" + "0.00263326606293773" ] }, - "execution_count": 55, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loc = np.array([1e-8, 1e-7])\n", - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 8, 8, 2)" + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 5, 4, 2)" ] }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 0.48954387615017$" + "$\\displaystyle 0.0466919192638915$" ], "text/plain": [ - "0.489543876150170" + "0.0466919192638915" ] }, - "execution_count": 56, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 8, 2, 2)" + "compute_error_coord_tg(loc, laplace2d, derivs_lap, 8, 4, 2)" ] }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -761,7 +761,7 @@ " plot_me = np.empty((res, res))\n", " for i in range(res):\n", " for j in range(res):\n", - " if abs(x_grid[i]) >= abs(y_grid[j]):\n", + " if abs(x_grid[i]) == abs(y_grid[j]):\n", " plot_me[i, j] = 1e-16\n", " else:\n", " plot_me[i,j] = compute_error_coord_tg(np.array([x_grid[i],y_grid[j]]), pde, derivs, order_plot, taylor_order, recur_order)\n", @@ -772,22 +772,34 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 41, "metadata": {}, "outputs": [], "source": [ - "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 5, laplace2d, derivs_lap, 6, 2)\n", - "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 8, laplace2d, derivs_lap, 6, 2)" + "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 4, laplace2d, derivs_lap, 4, 2)\n", + "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 7, laplace2d, derivs_lap, 4, 2)" ] }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 50, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_5026/3325410114.py:2: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_5026/3325410114.py:4: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_5026/3325410114.py:8: UserWarning: Attempt to set non-positive ylim on a log-scaled axis will be ignored.\n", + " fig.colorbar(cs1, cax=cbar_ax)\n" + ] + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACxQUlEQVR4nOzdf3zWdb3/8edkbCCwyUAGAzbxZ04UdCwDRJnmaCiUYnHqhKCQ0S4PB5eZ5PEXqbNDEZ0cBGmSnSzSo1RGjZkmJMcck5k6KzF0qIzF8Dg2E3B8vn9c381du3Zt14/PdX3en8/ncb/ddjtdn+uzz/UeaOfdc6/X651mWZYlAAAAAAAAAOjmOKcXAAAAAAAAAMA8BIcAAAAAAAAAwhAcAgAAAAAAAAhDcAgAAAAAAAAgDMEhAAAAAAAAgDAEhwAAAAAAAADCEBwCAAAAAAAACENwCAAAAAAAACAMwSEAAAAAAACAMASHsNUf//hHzZ49W8OHD9fgwYN12mmn6Zvf/GbE+2fOnKm0tLR+v+64447U/RBRiGbNaWlp+sMf/mDbZ86cOVMzZ8607Xl9OXr0qNavX6/i4mLl5OTo+OOPV0FBgT796U/r8ccft/3zTPo7tixLDz/8sC6++GINHz5cmZmZOvnkkxUIBLR3796En//GG28oLS1NGzduTHyxUYj0z+a9994b9zNPOukkXX755TauMjqp/HcAgLewP2F/Eg+T/o69tj9pamrS9ddfr5NPPlmDBw9WQUGBFi9erMbGxrifyf4EAJIj3ekFwDsefvhhLViwQJ/73Of00EMPaejQoXr99df1zjvvRPyetWvXqrW1tev1b37zG91111168MEH9bGPfazr+rhx45K69lj97//+b8jrb37zm3r66af11FNPhVwvLCxM5bJss2DBAj322GNavny57rzzTmVmZurvf/+7fve736m6ulpXXHGFrZ/3v//7v0b8HR87dkxf+MIXtGnTJn3+85/Xxo0blZ2drT//+c9atWqVHn74YT3xxBOaPn2600uNyVVXXaWvfvWrIdfy8/MdWg0ApBb7E/Yn8WJ/khyHDx/WhRdeqHfffVd33nmnCgsL9de//lW33367qqur9eqrr2rYsGFOLxMA0MkCbPDWW29ZQ4YMsb7yla8k9JwHH3zQkmTV1tbasq729nZbntOfhQsXWkOGDEnqZ1x00UXWRRddZMuzjh07Zr3//vu9vvf3v//dkmTddtttvb7f0dGR9DU45Z577rEkWffee2/Ye01NTVZBQYGVm5trvfvuu30+p69/7vbs2WNJsh588MEEVxv0/vvvW8eOHYv4viQrEAjY8lmdCgoKrMsuu8zWZ0bDzn8HAPgD+xP2J3auwSle25/U1NRYkqz7778/5PrDDz9sSbIee+yxuD6T/QkAJAetyrDF/fffr/b2dn39619PyvM3bdqkqVOnasiQIRo6dKhmzZqlXbt2hdyzaNEiDR06VC+99JJKS0s1bNgwXXLJJZKCrSbXX3+9HnzwQZ1xxhkaPHiwpkyZoueee06WZWnVqlWaMGGChg4dqosvvli7d+9OeM1VVVW68MILNWrUKA0ZMkRnn322/vM//1NHjx7tuueb3/ym0tPTe20xufbaazVixAh98MEHET/j4MGDKi8v19ixY5WRkaGTTz5Zt9xyiw4fPhxyX+fP/4Mf/EBnnnmmMjMz9eMf/7jXZ7a0tEiSxowZ0+v7xx0X+l8bra2tuvHGGzVhwgRlZGRo7NixWr58udrb26NeQ2+tQE1NTfryl7+scePGKSMjQxMmTNCdd96pDz/8MOS+devWadKkSRo6dKiGDRumj33sY/rGN74R8c8skiNHjmjVqlU688wzddNNN4W9n5ubq8rKSu3fv18PPPBA1/WZM2dq4sSJ2rZtm6ZNm6bjjz9e1157rSTpnXfe0ec+9zkNGzZM2dnZmj9/vpqamnr9/J07d2ru3LnKycnRoEGDdO655+oXv/hFyD0bN25UWlqatm7dqmuvvVYnnniijj/++LC/bxPU1NTo05/+tMaNG6dBgwbp1FNP1Ze//GUdOHAg5L477rhDaWlp2rVrl6688kplZWUpOztbX/ziF/WPf/yj38+58847df755ysnJ0dZWVk677zz9MADD8iyrLB7H374YU2dOlVDhw7V0KFDNXny5JC/S0l68skndckllygrK0vHH3+8pk+frt///veJ/WEAcAz7k3DsT9ifOL0/GThwoCQpOzs75PoJJ5wgSRo0aFB0fzhxYH8CAHFwNreEV1x88cVWTk6O9bvf/c6aNGmSNWDAAOvEE0+0vvzlL1vvvfde1M/p7Tf6d999t5WWlmZde+211hNPPGE99thj1tSpU60hQ4ZYr7zyStd9CxcutAYOHGiddNJJVmVlpfX73//eqq6utiwrWHVVUFBgTZs2zXrsscesxx9/3Dr99NOtnJwc64YbbrA+/elPW0888YT105/+1MrNzbXOOeecPqu4eurtN/o33HCDtW7dOut3v/ud9dRTT1nf/e53rZEjR1rXXHNN1z379++3MjMzrVtuuSXke1taWqzBgwdbX/va17qu9fxt5j//+U/rnHPOsYYMGWJ9+9vftrZu3WrdeuutVnp6ujV79uyQ50myxo4da51zzjnWww8/bD311FPWyy+/3OvP0tbWZp1wwgnW6NGjrfXr11t79uyJ+HO3t7dbkydPtkaOHGmtXr3aevLJJ63vfe97VnZ2tnXxxReH/Bn2tQZJ1u2339517759+6zx48dbBQUF1vr1660nn3zS+uY3v2llZmZaixYt6rrvZz/7mSXJ+rd/+zdr69at1pNPPmn94Ac/sJYtWxZxzZHs2LHDkmR9/etfj3jPoUOHrOOOO86aNWtW17WLLrrIysnJscaPH299//vft55++mnrmWeesd5//33rzDPPtLKzs63vf//7VnV1tbVs2TIrPz8/7Df6Tz31lJWRkWHNmDHD2rRpk/W73/3OWrRoUdh9nf9+jB071rruuuus3/72t9ajjz5qffjhhxHXLMkaPny4NWjQICsjI8M677zzrB/96Ecx//l0F81v9NetW2dVVlZav/rVr6xnnnnG+vGPf2xNmjTJOuOMM6wjR4503Xf77bd3/fv5ta99zaqurrZWr15tDRkyxDr33HND7u3tN/qLFi2yHnjgAaumpsaqqamxvvnNb1qDBw+27rzzzpD7br31VkuSdeWVV1qPPPKItXXrVmv16tXWrbfe2nXPT37yEystLc36zGc+Yz322GPWr3/9a+vyyy+3BgwYYD355JMJ/IkBcAr7E/Yn7E/M258cPXrUKioqss466yzr+eeftw4dOmTV1dVZkydPts4777yQ/98fC/YnAJAcBIewxRlnnGENGjTIGjZsmHXPPfdYTz/9tPWf//mf1uDBg63p06dHvcntuTFvbGy00tPTrX/7t38Lue/QoUPW6NGjrc997nNd1xYuXGhJ6jUUkWSNHj3aamtr67q2efNmS5I1efLkkPWtWbPGkmT9+c9/jvrn768VqKOjwzp69Kj10EMPWQMGDLAOHjwY8r2jRo2yDh8+3HXtW9/6lnXc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9yckJJicnJw22zIyMszChQuNMcYUFBQYSaa2tta1v7S01EgyFRUVxhhjXnrpJSPJlJWVuY7Zt2+fkWTy8/PbfdxHH33UZGVltdl28OBBI8ns27evwzxOp9NERkaaRx991ERERJjt27d3eKwxxjzyyCPmkksuMU1NTe3uP1/+DRs2mIsuusjU19e79r/11lsmLCzMHDlyxBhjzNy5c018fLxpbGx0HfOnP/3JxMXFmYaGBte29evXG0mmtLS005oBAAh19Cf0JwCA4MUrDgEbSU1N1bRp05SSkqI77rhDL774omprayVJdXV1OnTokK6++uo297n66qtVXl7epceJiorSmDFjXLfLysoUHh6uKVOmtHt8SUmJCgoK1KdPH9fXFVdcIUmut+m0Z+LEiVqyZIl+//vf6ze/+Y0mT57s2pedne0616hRo1x1ZGZmKjIy0u1cnuQvLy9XamqqLrjggjb7W1tbtW/fPte2lJQURUVFuW6fuV/v3r3b1A4AAOhP6E8AAMEsItAFAPCf8PBw5efny+l06t///reef/55LV++XB999JH69+8vSXI4HG3uY4xxbQsLC3NtO+P06dNuj9OrV6825+nVq1endbW2tuqmm27SU0895bZv8ODBnd5v586dCg8Pd3u70saNG/Xjjz9KkqsRP18dUuf5z/5zZ/c7u3E/cz8AANA++hP6EwBA8OIVh4DNOBwOXX311VqxYoVKS0sVFRWlrVu3KjY2VgkJCfrggw/aHO90OnXllVdKkgYOHCjppzV/zigrKzvvY6akpKi1tVXbt29vd/+4ceO0Z88eXXzxxRo+fHibr3Ob3LM9/fTTKi8v1/bt27Vt2za99NJLrn1DhgxxnWPYsGGSpDFjxmjHjh3t/mfCk/zJyckqKytzLdYuSTt37lRYWJhrkfH2JCcn67PPPnP9R0GSdu3a1eHxAADYDf0J/QkAIEgF6j3SAPxv165dJicnxxQXF5uvv/7abN682URFRZm3337bGGPM6tWrTWxsrHn11VfNF198YX7729+ayMhI8+WXXxpjjGlqajKJiYnmjjvuMPv27TN5eXlm5MiRbmsI9evXz+2x582bZxITE83WrVvNf//7X1NQUGA2bdpkjDGmurraDBw40Nx+++3mo48+MgcOHDDbtm0zv/zlL01zc3O7WUpLS01UVJR58803jTHGbNy40fTt29ccOHCgw/w1NTWmf//+5tZbbzXFxcXmyy+/NK+88or54osvPMrf0NBgBg8ebG677Taze/du8/7775tLL73UzJ071/UYc+fONTfffHObxz1x4oQZMGCAueuuu8yePXvMW2+9ZYYPH84aQgAAGPoT+hMAQDBjcAjYyN69e82MGTPMwIEDTXR0tBkxYoR5/vnnXftbWlrMihUrzJAhQ0xkZKRJTU01//rXv9qc44MPPjApKSkmJibGZGZmmi1btnjUmP/444/m17/+tRk8eLCJiooyw4cPN3/5y19c+7/88ktzyy23mAsvvND06tXLXHHFFWbRokWmtbW13XMlJyeb+fPnt9l+yy23mEmTJnXYzBtjzGeffWaysrJM7969Td++fU1mZqarmfck/+eff26mTp1qYmJiTFxcnHnggQfMiRMnXPvba8yNMebDDz80qampJioqyqSlpZnXX3+dxhwAAEN/Ygz9CQAgeDmMYXELAAAAAAAAAG2xxiEAAAAAAAAANwwOAQAAAAAAALhhcAgAAAAAAADADYNDAAAAAAAAAG4YHAIAAAAAAABww+AQAAAAAAAAgBsGhwAAAAAAAADcMDgEAAAAAAAA4IbBIQAAAAAAAAA3DA4BAAAAAAAAuGFwCAAAAAAAAMANg0MAAAAAAAAAbv4fpJ3bUBENaPMAAAAASUVORK5CYII=", + "image/png": "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SoqZM2eOueKKK8yqVavMc889Z1JTU03//v1NdXV1yO2uq69z5swxy5cvN6+99pp54403zMMPP2w6duxobrjhBr9jlpiYaBYsWOD3uwcPHjQtW7Y0P/vZz3zbLr74YnPxxRf7Hn/zzTemf//+pnXr1ubBBx80a9asMQsXLjTx8fFm3Lhxfs8nyXTp0sX079/fPP/88+aNN94wH3zwQZ19OXLkiGnfvr3p3Lmzeeyxx8yOHTuC9ruiosIMHDjQdOzY0SxZssSsXbvW/PKXvzTJycnmkksu8TuG9bVBkrnjjjt8++7Zs8d069bNpKenm8cee8ysXbvW3HXXXSYxMdFMmzbNt9/vf/97I8n8z//8j1mzZo1Zu3atefTRR82sWbOCtjmYTZs2GUnm5z//edB9vvrqK9OsWTMzduxY37aLL77YpKSkmG7duplf//rXZt26dWb9+vXm66+/Nueee65JTk42v/71r01BQYGZNWuW6d69u5FknnnmGd9zvPHGGyYhIcEMHz7crFy50rz22mtm2rRptfareX906dLF3Hzzzeavf/2reemll8yJEyeCtlmSOe2000xSUpJJSEgw5513nnn66afDPj6nSk9PN5dffnm9+yxfvtzk5uaaV1991axfv9785je/MQMGDDC9e/c2x44d8+13xx13+N6fP/vZz0xBQYFZsmSJad26tRk0aJDfvoHvAWOMmTZtmnnqqadMYWGhKSwsNHfddZdp2bKlWbRokd9+CxcuNJLM1VdfbV588UWzZs0as2TJErNw4ULfPr/97W9NXFycufLKK83LL79s/vznP5vx48eb5s2bm7Vr1zbhiAGwEvmEfEI+sVc+OX78uMnMzDR9+vQxmzdvNl999ZUpLi42AwcONOedd57f3B8O8gkA1I8CICJm0qRJZujQob5QFYmAXVZWZuLj483//M//+O331Vdfmc6dO5vrrrvOt23q1KlGUp3FDUmmc+fO5siRI75t+fn5RpIZOHCgXxBcunSpkWTee++9kNvdUF+rqqrM8ePHzbPPPmuaN29uDh065Pe7nTp1MpWVlb5tv/jFL0yzZs38wm1guHj00UeNJPPCCy/4vdYvfvELI8msWbPGr//Jycl+r1ufv/zlL6Zjx45GkpFkOnToYK699lrz6quv+u2Xm5trmjVr5vcfRMYY89JLLxlJZvXq1SG1ITBg//jHPzZt2rQxn3zyid9+Dz74oJHk+w+rW265xbRv3z6kPjXkD3/4g5FkHn300Xr3S01NNeeee67v8cUXX2wkmddff91vv+XLlxtJ5k9/+pPf9h/96Ee1gvN3vvMdM2jQIHP8+HG/fcePH2/OOOMMU1VVZYz59v1x/fXXh9yv73//++a5554zGzZsMC+99JLJzs42ksz//d//hfwcgUIJ2Keqrq42x48fN5988kmtY1ITsOfMmeP3O88995yRZH73u9/5ttUVsE9V8z5bvHix6dChg+99/Z///Mc0b97c/OAHPwj6uxUVFSYlJcVMmDCh1nMOGDDAnH/++SH3F4C9kE/IJzXIJ/bJJ+Xl5WbChAm+cynJjBw50hw8eDDk5whEPgGA+vERYETEH//4R/35z3/WE088Ue+9yKqrq3XixAnfv6qqqnqft6CgQCdOnND111/v93tJSUm6+OKL6/wWu0mTJtX5XKNGjVLr1q19j88991xJUnZ2tl+ba7Z/8skn9batIVu3btXEiRPVoUMHNW/eXC1atND111+vqqoq/etf//Lt95Of/ET79+/Xiy++KOnkMVq+fLkuv/xy9ejRI+jzv/HGG2rdurWuueYav+3Tpk2TpFofC6j51rhQjBs3TmVlZXrllVc0b9489enTR/n5+Zo4caJuueUW336rVq1S3759NXDgQL/zM3bs2Dq/ZTDUNqxatUqjRo1SWlqa3/NmZ2dLktavXy9JOv/88/Xll1/qe9/7nv70pz/V+vhGNBhjal3jp512mi655BK/bevWrVPbtm01ceJEv+3f//73/R5v375d//znP/WDH/xAkvz6O27cOO3Zs0cfffSR3+8Eu8br8txzz+n73/++hg8frkmTJmn16tUaP3687rvvvpA+wtJY+/fv14wZM9StWzfFx8erRYsWSk9PlyRt27at1v41/a9x3XXXKT4+XuvWrav3dd544w1997vfVXJysu99dvvtt+vgwYPav3+/pJMf96mqqlJOTk7Q59m0aZMOHTqkqVOn+p2D6upqXXbZZSoqKqr1sTEA9kc+qY18Qj6xOp8cP35ckydPVklJiZ544glt2LBBv/nNb/TZZ5/p0ksvbfBLepqCfALAy/gSEDTZkSNHlJOTo//5n/9RWlqavvzyS0kn71kiSV9++aVatGih1q1ba/HixX43bk5PT9fOnTuDPve+ffskSVlZWXX+PPB+L61atVK7du3q3DclJcXvcUJCQr3b67u3TUPKyso0fPhw9e7dW7/85S/Vo0cPJSUlafPmzcrJydE333zj23fQoEEaPny48vLy9IMf/ECrVq3Szp079dhjj9X7GgcPHlTnzp1rhb1OnTopPj7ed6+cGsHumRNMy5YtdeWVV+rKK6/09Sk7O1t5eXn67//+b/Xp00f79u3T9u3bffdyCRQYeENtw759+/TnP/+5weedMmWKTpw4oSeeeEKTJk1SdXW1srKydPfdd+vSSy8Nsacn1Xwr7o4dO4LuU1FRoQMHDmjQoEF+2+vq18GDB5Wamlpre+fOnf0e11zj8+bN07x58+p83cYex2B++MMfatWqVdqyZYvvP1oiqbq6WmPGjNHu3bu1cOFC9evXT61bt1Z1dbUuvPBCv+u/RuBxiY+PV4cOHWpdx6favHmzxowZo5EjR+qJJ57w3Y8pPz9f99xzj+91agqd9X2TY815CPwP1lMdOnTI7z/SAdgb+aQ28slJ5BNr88lTTz2lv/71ryoqKvJ9qc7w4cN10UUX6ayzztLSpUt1xx13hPRc4SCfAPA6CoBosgMHDmjfvn166KGH9NBDD9X6+WmnnaYrrrhC+fn5uvnmmzV+/HjfzxITE+t97o4dO0qSXnrpJd/qXH3qW92Ppfz8fFVUVOjll1/2a3dJSUmd+8+aNUvXXnut/vGPf+iRRx7ROeec02BA7NChg955551aK7779+/XiRMnfMeuRlOPTffu3XXzzTdr9uzZ+vDDD9WnTx917NhRLVu21NNPP13n7zS2DR07dlT//v11zz331PnztLQ03/+/4YYbdMMNN6iiokIbNmzQHXfcofHjx+tf//pXSNdMjczMTJ122ml69dVXlZubW2dbX331VVVXV9c6N3Xt26FDB23evLnW9sCbbNcco/nz5+vqq6+us229e/du8PXCYf7/DagD/wM1Uj744AO9++67WrFihaZOnerbXt/N6/fu3asuXbr4Hp84cUIHDx5Uhw4dgv7OH/7wB7Vo0UKrVq3yu2F4fn6+336nn366JOnTTz9Vt27d6nyumvPw61//Oui3Ptb1H0wA7It8Uhv55CTyibX5pKSkRM2bN9d5553nt/3MM89Uhw4d9MEHH4T0POEinwDwOgqAaLLOnTvX+Wfw9913n9avX6+//vWvvskrLS3NLxw1ZOzYsYqPj9e///3vsD72aLWaAHTqf0AYY/TEE0/Uuf9VV12l7t2766c//anWr1+vhx9+uMEQNXr0aL3wwgvKz8/XVVdd5dv+7LPP+n7eGF999ZXi4uLUpk2bWj+r+WhEzTkcP3687r33XnXo0EE9e/Zs1OvVZfz48Vq9erXOOuuskD8W1Lp1a2VnZ+vYsWO68sor9eGHH4YVsBMSEvSzn/1M//u//6sHHnig1jft7d+/X/Pnz1dqaqpuuummBp9v1KhReuGFF/Tqq6/6fczm+eef99uvd+/e6tWrl959913de++9Ibe3KX7729+qRYsWyszMjMrz13X9S6r3r0aee+45v/a88MILOnHihEaOHFnv68THx6t58+a+bd98841++9vf+u03ZswYNW/eXMuXL9eQIUPqfK5hw4apffv2Ki0t9fsYGQDnIp/URj5pGvJJZKSlpamqqkpFRUW64IILfNv/9a9/6eDBg/X+RVxTkE8AeB0FQDRZUlJSnZPgihUr1Lx583onyIb06NFDixcv1oIFC/Sf//xHl112mU477TTt27dPmzdvVuvWrf0+smMXl156qRISEvS9731Pt956q44eParly5friy++qHP/5s2bKycnRz//+c/VunVr331y6nP99dcrLy9PU6dO1c6dO9WvXz/97W9/07333qtx48bpu9/9bqPa/tFHH2ns2LH6r//6L1188cU644wz9MUXX+gvf/mLHn/8cY0cOVJDhw6VJM2ePVt//OMfNWLECM2ZM0f9+/dXdXW1ysrKtGbNGv30pz/1C3ahWrx4sQoLCzV06FDNmjVLvXv31tGjR7Vz506tXr1ajz76qLp27aof/ehHatmypYYNG6YzzjhDe/fuVW5urpKTk/0+llVzr6L6Ps4lST//+c/17rvv+v538uTJSk5O1nvvvacHHnhAX331lVatWqXk5OQG+3D99dfr4Ycf1vXXX6977rlHvXr10urVq1VQUFBr38cee0zZ2dkaO3aspk2bpi5duujQoUPatm2b/vGPf/juvxSuBx54QKWlpRo9erS6du2q/fv366mnntKaNWt05513+v0FxM6dO9WzZ09NnTpVK1asaPC59+7dq5deeqnW9h49emjAgAE666yzdNttt8kYo5SUFP35z39WYWFh0Od7+eWXFR8fr0svvVQffvihFi5cqAEDBui6664L+juXX365lixZou9///u6+eabdfDgQT344IO1gn2PHj30v//7v7rrrrv0zTff6Hvf+56Sk5NVWlqqAwcOaNGiRWrTpo1+/etfa+rUqTp06JCuueYaderUSZ9//rneffddff7551q+fHmDxwWAfZBPaiOfkE/skE9uuOEGPfzww5o0aZL+7//+T71799Z//vMf3XvvvWrdurVmzJjh25d8Qj4BEEGWff0IXC8S37JXIz8/34waNcq0a9fOJCYmmvT0dHPNNdeYtWvXhvR6kkxOTo7fth07dhhJ5oEHHvDbvm7dOiPJvPjiiyG3u67X/vOf/2wGDBhgkpKSTJcuXczPfvYz89e//tVIMuvWrav1HDt37jSSzIwZM+p8jbq+YezgwYNmxowZ5owzzjDx8fEmPT3dzJ8/3xw9etRvv7r6H8wXX3xh7r77bnPJJZeYLl26mISEBNO6dWszcOBAc/fdd5uvv/7ab/8jR46Y//u//zO9e/c2CQkJJjk52fTr18/MmTPH7N27N6Q2KOBb9owx5vPPPzezZs0yPXv2NC1atDApKSkmMzPTLFiwwPdtib/5zW/MqFGjTGpqqklISDBpaWnmuuuuq/UNiR07djQXXnhhSP2vrq42zz33nBk5cqRp3769SUhIMD179jT//d//Xetb/4w5eV769OlT53N9+umnZtKkSaZNmzambdu2ZtKkSWbTpk21vmXPGGPeffddc91115lOnTqZFi1amM6dO5tLLrnE71v/gr0/gnn11VfNRRddZE4//XQTHx9v2rZta4YPH25+//vf19r3/fffN5LMbbfd1uDzpqen+31r36n/pk6daowxprS01Fx66aWmbdu25rTTTjPXXnutKSsrq3Wua75lr7i42EyYMMF3rL73ve+Zffv2+b1uXe+Bp59+2vTu3dskJiaaM8880+Tm5pqnnnrKSPL7lkpjjHn22WdNVlaWSUpKMm3atDGDBg2qdR7Wr19vLr/8cpOSkmJatGhhunTpYi6//PKwxgMA9kY+IZ+QT6zNJ8YY8/HHH5spU6aYHj16mMTERNO9e3czefJk3zcp1yCfnEQ+ARAJccb8/5tBAbDUr3/9a82aNUsffPCB+vTpY3VzXKO0tFR9+vTRqlWrdPnll1vdHNtatmyZbr31Vv373/+O6b1k7rzzTi1atEiff/55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4yorK9OMGTMsbHX4vNBPL/RR8kY/vdBHyRv99EIfJe/081Re7HMseeX4eqGfXuij5I1+eqGPEv10Uz+90Me6eLXfQKPF6uuGrbZu3Tojqda/qVOn+vbJy8sz6enpJiEhwZx33nlm/fr11jW4kbzQTy/00Rhv9NMLfTTGG/30Qh+N8U4/T+XFPseSV46vF/rphT4a441+eqGPxtBPN/XTC32si1f7DTRWnDHGhFosBAAAAAAAAOAs3AMQAAAAAAAAcDEKgAAAAAAAAICLUQAEAAAAAAAAXIwCIAAAAAAAAOBiFAABAAAAAAAAF6MACAAAAAAAALgYBUAAAAAAAADAxSgAAgAAAAAAAC5GARAALLBz507FxcWppKTE6qYAAABIIp8AgJtRAAQAAAAAAABcjAIggKiqqqpSdXW11c2wzLFjx6xuAgAACEA+IZ8AgNdQAAQ85qWXXlK/fv3UsmVLdejQQd/97ndVUVEhSaqurtbixYvVtWtXJSYmauDAgXrttdd8v/vmm28qLi5OX375pW9bSUmJ4uLitHPnTknSihUr1L59e61atUoZGRlKTEzUJ598osrKSt16663q1q2bEhMT1atXLz311FO+5yktLdW4cePUpk0bpaamasqUKTpw4EDQftx4443q37+/KisrJUnHjx9XZmamfvCDH9Tb/w8//FCXX3652rVrp7Zt22r48OH697//HVL/Jen999/XJZdc4jt+N998s44cOeL7+bRp03TllVcqNzdXaWlpOueccyRJmzdv1qBBg5SUlKTBgwdr69at9bYTAAAvIZ+QTwAA0UUBEPCQPXv26Hvf+55uvPFGbdu2TW+++aauvvpqGWMkSb/85S/10EMP6cEHH9R7772nsWPHauLEifr444/Dep2vv/5aubm5evLJJ/Xhhx+qU6dOuv766/WHP/xBv/rVr7Rt2zY9+uijatOmja9dF198sQYOHKgtW7botdde0759+3TdddcFfY1f/epXqqio0G233SZJWrhwoQ4cOKBly5YF/Z3PPvtMI0aMUFJSkt544w0VFxfrxhtv1IkTJ0Lq/9dff63LLrtMp512moqKivTiiy9q7dq1uuWWW/xe5/XXX9e2bdtUWFioVatWqaKiQuPHj1fv3r1VXFysO++8U/PmzQvrmAIA4FbkE/IJACAGDADPKC4uNpLMzp076/x5Wlqaueeee/y2ZWVlmZkzZxpjjFm3bp2RZL744gvfz7du3WokmR07dhhjjHnmmWeMJFNSUuLb56OPPjKSTGFhYZ2vu3DhQjNmzBi/bbt27TKSzEcffRS0P5s2bTItWrQwCxcuNPHx8Wb9+vVB9zXGmPnz55uePXuaY8eO1fnzhvr/+OOPm9NOO80cOXLE9/O//OUvplmzZmbv3r3GGGOmTp1qUlNTTWVlpW+fxx57zKSkpJiKigrftuXLlxtJZuvWrfW2GQAAtyOfkE8AANHHXwACHjJgwACNHj1a/fr107XXXqsnnnhCX3zxhSSpvLxcu3fv1rBhw/x+Z9iwYdq2bVtYr5OQkKD+/fv7HpeUlKh58+a6+OKL69y/uLhY69atU5s2bXz//l879w7SZhuGcfyOfnk1irZUM0QRRYLalBhxa0sEl5YOImodnNShzi0KHTpJ6VA6dHCVCp2qpQilVbTQIvWIg4fiKaDg4OYmIlSb6xs+fDGf0brUwuv/B4HkefKctis3eZ+qqiozM/fxl3Ru375tPT099vz5c+vu7ra6ujq378GDB+5ct27dcvcRj8fN7/efmusi519bW7NYLGa5ubkp/clk0jY2Nty2aDRqjuO4n4/H5eTkpOwdAACQT8gnAIDL8M/f3gCAy5OZmWlfvnyx6elpGx8ft76+Pnv27JnNzc1ZQUGBmZn5fL6UMZLctoyMDLft2OHh4al1AoFAyjyBQODcfSWTSWtoaLCXL1+e6guFQueOm5qasszMzFOPAfX399vBwYGZmRuof7cPs/PPf/L9eeNOBvDjcQAAID3yCfkEAPDn8Q9A4Irx+Xx29+5d6+3ttYWFBXMcx4aHhy0/P9+KiopscnIy5fvT09N28+ZNMzMLBoNm9t+dOMcWFxd/u2Y0GrVkMmkTExNp+2tra21lZcXKysosHA6nvP4fVk969eqVra2t2cTEhI2NjdnAwIDbV1xc7M5RWlpqZmbV1dX2/fv3tD8KLnL+SCRii4uL7qXkZmZTU1OWkZHhXqadTiQSsaWlJTfwm5nNzs6e+X0AAK4a8gn5BADwh/2tZ48BXL7Z2Vm9ePFC8/Pz2t7e1tDQkBzH0cjIiCTp9evXys/P17t377S+vq6nT5/K7/crkUhIkn7+/KmSkhK1trZqY2NDnz59UmVl5ak7dq5du3Zq7Y6ODpWUlGh4eFhbW1v69u2bBgcHJUk7OzsKBoN6+PCh5ubmtLm5qbGxMXV2duro6CjtWRYWFuQ4jj5+/ChJ6u/vV15enjY3N888/+7urgoKCtTc3Kz5+XklEgm9fftW6+vrFzr//v6+QqGQWlpa9OPHD339+lXl5eVqb29312hvb1djY2PKunt7eyosLFRbW5tWVlb0+fNnhcNh7tgBAEDkE/IJAOAyUAAErpDV1VXdv39fwWBQWVlZqqioUF9fn9v/69cv9fb2qri4WH6/X7FYTKOjoylzTE5OKhqNKjs7W/F4XO/fv79QwD44ONCTJ08UCoXkOI7C4bDevHnj9icSCTU1Nen69esKBAKqqqrS48ePlUwm084ViUTU1dWV0t7U1KQ7d+6cGcolaWlpSffu3VNOTo7y8vIUj8fdUH6R8y8vL6u+vl7Z2dm6ceOGHj16pL29Pbc/XcCWpJmZGcViMTmOo5qaGn348IGADQCAyCcS+QQA8Of5JC5/AAAAAAAAALyKOwABAAAAAAAAD6MACAAAAAAAAHgYBUAAAAAAAADAwygAAgAAAAAAAB5GARAAAAAAAADwMAqAAAAAAAAAgIdRAAQAAAAAAAA8jAIgAAAAAAAA4GEUAAEAAAAAAAAPowAIAAAAAAAAeBgFQAAAAAAAAMDDKAACAAAAAAAAHvYvMJH8Q5nZy5AAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -798,9 +810,9 @@ ], "source": [ "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap1.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap2.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", "fig.subplots_adjust(right=0.8)\n", "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", @@ -818,12 +830,47 @@ "ax2.set_xlabel(\"source x-coord\")\n", "ax2.set_ylabel(\"source y-coord\")\n", "\n", - "ax1.set_title('6-Term Taylor Series, Order 5, Laplace')\n", - "ax2.set_title('6-Term Taylor Series, Order 8, Laplace')\n", + "ax1.set_title('4-Term Taylor Series, Order 5, Laplace')\n", + "ax2.set_title('4-Term Taylor Series, Order 8, Laplace')\n", "\n", "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1.00000000e+00, 2.89514005e-06, 8.56354551e-11, 2.29844392e-15,\n", + " 6.16604120e-20, 1.65416130e-24, 4.43761157e-29, 1.19047619e-33],\n", + " [5.28523776e-01, 1.00000000e+00, 2.89514005e-06, 8.56354551e-11,\n", + " 2.29844392e-15, 6.16604120e-20, 1.65416130e-24, 4.43761157e-29],\n", + " [5.30293276e-01, 5.28523776e-01, 1.00000000e+00, 2.89514005e-06,\n", + " 8.56354551e-11, 2.29844392e-15, 6.16604120e-20, 1.65416130e-24],\n", + " [5.30475650e-01, 5.30293279e-01, 5.28523776e-01, 1.00000000e+00,\n", + " 2.89514005e-06, 8.56354551e-11, 2.29844392e-15, 6.16604120e-20],\n", + " [8.05901688e-01, 5.30353964e-01, 5.30293278e-01, 5.28523776e-01,\n", + " 1.00000000e+00, 2.89514005e-06, 8.56354551e-11, 2.29844392e-15],\n", + " [7.12387827e-01, 1.14390958e+00, 5.30265663e-01, 5.30293278e-01,\n", + " 5.28523776e-01, 1.00000000e+00, 2.89514005e-06, 8.56354551e-11],\n", + " [4.17490497e-01, 3.10768481e-01, 3.62945854e-01, 5.30267821e-01,\n", + " 5.30293275e-01, 5.28523776e-01, 1.00000000e+00, 2.89514005e-06],\n", + " [5.50502400e-01, 1.00000000e+00, 4.15177240e-01, 1.00000000e+00,\n", + " 5.30333992e-01, 5.30293280e-01, 5.28523776e-01, 1.00000000e+00]])" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot_me_lap1.T/plot_me_lap2.T" + ] + }, { "cell_type": "code", "execution_count": null, From 12dfa17c2798c24cf7e21450a7bb15b313a7d95f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 8 Jan 2025 13:36:07 -0800 Subject: [PATCH 138/193] Problematic error increasing as order increases --- test/order5.png | Bin 47215 -> 44702 bytes test/order6.png | Bin 47591 -> 45722 bytes test/plot_normal_recurrence.ipynb | 233 ++++++++++++++++++------------ test/plot_taylor_recurrence.ipynb | 46 +++--- 4 files changed, 160 insertions(+), 119 deletions(-) diff --git a/test/order5.png b/test/order5.png index cedbdcbdcc4634e0952dbbd1d6ae94c87ff893ad..8b8eaecc8d328366d5e3e56cabae01632839bfd4 100644 GIT binary patch literal 44702 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 literal 47215 zcmeFZcT`o`_BD8r5-cT{5s)CDU?K;}ASxmf6cCi0kt{ibB8W;x1&IohlYrz)5+n;E zS+XEka=7H!Yg1M4_ul)uM}Ix~&+a#duN3Y*XP>oKm}}0p&vQk2Y4U?K2QdsIm$`ZE zE{5&z$1q~X10?Vh!Tfh3=s$MX)$Ek4jO-kBZ45CvT{~-YD?9UtdW;T+HntC~EP2=k z*|{${d3$9B1T-d*LE~THm~Hi(!&u6FVwF|NGVI~{}eCz?b(a(*Z=T&aLbKN(JcR-WLmBC zWl9Tjw&nB3^Iv~|@Z-Vpp9fE*KE9;-+#Bpe1!k` z48=QZ(!c*+NpyVnpC4cG`b_uF-$@mVi2wfkFm}-KpC6z8|1bXko8>QO`2VW6SU>SO zM0Mf#!G|+H^6fo5YW$8&wk1ek#nX#>xP8`Ek2@pfo8mY(7#Pa~pBZm{JJR>-*RM!H z+a$5Ac`0cI(!tIIY03Zwak2N=?!VtZ`(!uqJ!LezVyEQl`(Q24?d5Zsmv4G(w8y2X zW^3J&l~rOp{+%_>?dMA9QEr3!!{pT5H8X}a7I5K%K3DHBP*YP|a*#_L<9kCI=2LMf z#?;a zMCj`^j+ zaf;Jd-fhlRXotq{Jl={l%W6}%Doa#S5bgAN?c6%&x$7#rHtb!3k9Ad6Q%hM|vMUTf zelzny{`d6kavFOwEc)sQMI{X>#c9QT!miB1!5<$8^g?zw_tpRl%(oiSx_|#Z4X2Km$L{8kbU(-O zgQ+DY4=UEaaD1+~m@oe9nDz~E>oqON|$^c{jHG@Xp;kyBjsf6n;nBw%l=XDe+i%sr^)2zD)1S!2y@4Oyoix zCH7`?Vs2`6fpqQ6K_W+Y=q5T+!z|0!jVuOA_{QU!p8Jwf$46O~$b{OpU8g#K{NVMi z*j+G*>QK4+>yVK585x%XX!vf;RqT4y2-0knWwplbZW(Jn`f|dwJ1gcvp=IV{V$w+k z&kdy-cbW~YQ~FEw%t34d0;-TTN`{{tTKf5tRfeOSZEsUi38RG#-l*T=$y2+cgN zV`H;$I1$m+e%k=C7KrEN*V%5@MO~H@)9+<=Kmv1LPS@^~W^g}lugziLr(YL1ku1Lb z@QOejWS5e)pD&l6iEo|xxvA2fs36~LPre;9TJyln(^5fv`%{Y`{xtGb_sx~gLmarn z`30Ukgt(1K)rz#~X>;(2bl26{lJ)T@`?dLzd3T5Dp7&NBgs90M`RQnf^NbY+Ja@N+ zzylJ7Hh)}N-y*b5!5`HdH*Pp}JICV(^3B4}Da2;L`tvRN?!^e%fBzM(ou!g~&u5M> z@{Gav&@$v8@#rB_PYPD8yGD~8siy5o0T(V_OrW=Fj^Ju+Y3YK*a#F0oX+dw#oqv3~ z1MY0!siHa&<2d+mY4gYwVQ0RY^29+OWYOP`N$C|^V?~kCy0u&{yFDzb*jdh|5q0?_ zFSc$F`|$zd*Vjqdz~3olCCw57zuk1hXhlM-L6qGXZj?d?5Mfp4gPnZGmt zOx&c>i^z1KBp>Xad@&n$*Q#v!-rf$nt@Ij~5L$#gi*1dO3BxsPo)3C#&V1Oqja3Se zc^x=(@)Bogb0nWxGkSt$F1I!7u&5~71-_xRT7lb5Z!UjzEGN(rzRPmF)!tbQAD_-^ z<%fG4feVgo2G9zyPnw;5+uyIjV?8WE0Ha0?ZO=N6H}kaeLW~&w`1EkRWGah?12_M~ z8I~gF;7~Bpo*X3TFs-&W1zFZy$nLjJ%au_w0(gGJ_wRRkoEHt48@7H@RU8<~j*tHg z#qLWqWYF>Ftg)ONWlN#O+bewmEQCxe_lu@-JVwn2JO`vGMGaWqhK3#`bg5gtEgW=d zQdU-u0MFrdD_zlVi@%;^*!0E-e1qI0t}cMq_(6gBLzkuBx-VY7{0i36d&8k^37NUM zQ&rmnR;)h@;Q?vGG}dMEd^_Zau<&qWC`5dICJ%~;+-)@m|p2t8}`<;4l3mFeDb zC=cXAtO5ev{>UH;=($KJ=}(t$|1is@mPwKgXE%bZKThen=IuPU#RVnWbgc z1h{BJQxnh2lb5-h!Z`#4`mMb~31Ln62EC)>GMVFP^bM&QoTvyBqkiDb6yrhbP z64;4@a$9>!KP^37uEJxRX_hd`u-o&=YG_cyWBu2W3I=;>5vPw0jg8!p0eQr?CltP# zWtSPD3m3Jx{#;!SQxM}CtqT%B;pM#Csrprxqs(BoXq2Ko<9?psP&G2*C)3VGG6pe` zEnxyY;PovsE!P=7eSa=U-P{i!J{*sAoqevh3uQ=7UOsSrF}&im*veA7LX;w#!Om30 zPLs&)7GXTdb1Q)w67|DDT(L7`KiVyi8UoJDQ+i`*Lf>P(Njp+i+r1Oj!4YwR61xdK z%hDNs0;HM9p{;R&@!xF;;{|<|JfY1qg+rDo+wVDwlDyy-yQ!|P(_p{0I9W|tpD4kb zVXN{cH*#oj|2Mrwj}o|QpYD2YL!L0*SxOdvd;R6fx9#%6Uy+@*Hivd8;u6Y-rZ#Xp z8&k+b&WVc;UDCq!T+%G*Afx4PetPu`q2IREXRiC(s$Q)>^^MTCoVrh(7rsz^-C8He zg|lnk#<#>U?|9n%G`<@b85t?GYc9Sp3QJy&O}IBhnCLIgd)Srn7UgJaVTX+M-w8o9 z+Yc~@^zFP1_}}1W&4yzfSKRLX&P;Uy-{k$r?Fn3ko z|9-B)^WwSk&E`3eRbfIctyKhoo)$8CkscHsM?8a^&Pw^y33tJwc^>_|Mu5i~#6eme zuOemOg{mCHT&|sef60k;Jji#a<&j=y=gb=s5U!1Z@l3M;5(#*M`{@7L(h z^%b^$NKTG|-1004LBey#55C=tlljkw#@F$20>mU_oDkf9;;T1mHgEzKKaTIvQ486n ztbeug(7%_Vrpu3h^A2*#FLnqXf*LXal9u-e>^Qci~I6}Pn@fRuG#l<^n9GB zbLwtK@mn;*g{>&)ggSn=CbD~i6~8|H^O!%&Ua~|1WZs+m<&=JCC{+O0I3Q-e(B_Z2 z)y>}%WxxLX@>0&jqg+N-mIun?!J+K(IUlY#<5~!v^38!cUwkIJW=TYIbF<$rL(JOS z4m>y&*RMkGF_+dmW&oO#034nZ7VhIU>uN?R^7x4pZ$({KcsKH~!xs-a4*!w=KIeVV zs4M}k<0iNGMq3b5OP*oV$#wvTw)hxF-=I#_BFEYOUS$;(pP*tQ*S z<_c{d+TB^5&#CezrIi^+D6Phsu(;T)qN;hK+`U`VvD3N2%6&>5nHfF!5i=n%e~$aP zET(JeO)W9Pd)wV2x~h?9HB?SACv4e&1(G_#W>H`e zj5d@Iw;M73H7Y6_u1GE>kMr3y4A&fAdtlZb5)yLcP7R%i(>DV{!?&omkLbgLr9bS= zO+3%Rk-aK-f{H52=xgNl*H{JYs6R^{*xse0V5L}=I~%un>oY!cZu3Dp|8a!~&Z=n7 zo%JJeX5dCK+Ulwe^S?Med+la^@G*&Ss24QfwwWlhv=6UY!%;zLX2SpB+ zxkhDamiq2yq|LeJSPhAVg@owd2%tIfXzQ!M5N{~c-&yAeexRprVJfvX{`$*iZ%Q$f zH<#6owA`0f2!J-C0Pcmw#8^Njp=o!)dd|Q3ynT&)dw{h8Qu_rx=32(H~ zfP)c~(ds((iY*)4?=q}!U%YtX64x$Ju`bsR*(1gCl{-X>|A!lg#sMX?oY1?$=KVMvA+9@B*H&ZRscGVlP^yfm&BJ~w(oto|OmKZ3uXg6vjTJvO}MmBry zu6j!MTkY;_C)wg##vu)6IL0i9%>A%gg~}r!9eDbAk(EV*+mQR}_0!qgq`uPh&MZII zAlw32cszHu=5sbY*q2k?n@44r41RryjHC$*3)62Ap2PWFD)Zd+fK5pDi@W1K^zui( zTonK1pH3Dbo?E*?@>{njl{Rs-nSaz#hU^Hc42|^qBJ|dp*n1=%+QvL+>r96pi6`N z^VBNNwnZ@X!{^VR{iYPU=*1V#*2D-q2A25R#)-Kz&8|XKxWK`|G3f!NJDls>q@4aw z6-~`dv#jD9&nW1=zvL)S36mE(pOjq+C5_p#0+OH5#D_3mo3VPoIb#3{9mTfz`PIBn zpOpFd_%2+yVEVm;Rz2vLStjbd?B@nW-GrH$rHo^pjcQsapegQv^jj@HRf2;nO%9Y6 zZY)nxEflG0+N;!@y-#Da*uXjksKjvzC;R478#FT=1s3Z0CT&+Qs~2?aLML}!vyp|q zu;1n-xL{hiwuhjbIW(!0@aP8*9XczMuA1Eip3Z04U*u=cAnb4(ut0ueVp>Ul-N%tHE~qnT4bkr zmxQ&`p(O*Hri~guK=u4?;CkaUP=?V`P|hNcU4`cEJ2d=D%h{fyKi4WB6Tb%N`>44g zuHm^+OZ0tw+zhLS2sAhWv1ZdfIU75x71^IZUnQp#QXbkITt&?gv`v~WVBi~ow6t63OC9N|9D5de@JSI`1lT^hg)3V1 zhx5aa$f|hQGR=|E3Gx1vYskyX>jY=C_7Jun_5$2SJ^t}VcU`t@a{jKv)Wbdr($DfX5JFsLfxfcMW$An5EJbswT}|}_wPp= z$?|Z0@fUPNDbPHQ``H^C7?{itR|V{_*KXpn%T^xbL;h^Bjal1N5~hlYNVY5*A<2K( ze(r)o=d$f{>D~bo6BUGoS4Yxv;~GaQYUQp z`>=frkU_{V++3m0ve!}-Wo2dETE9jo>Y@z!wX0%x+bUC|_%6WXmlIQ{@kPZ}U)XWB z1J-%eBa1by%*b(u?>m6q$oY~fo5|GVE@#|%v&<7stq)<-1H_VH9i~7=ER%E`V<=>| z7i~?7UIj$Z4Lg!TYgr_TI-$M33j%^L{xzK-w48I{(xr~nXcdS0 zx8Hq3I|Y#fR`gnhECKYQC4+?Nfl`5=4EcdnbA+rp#}8SpojaZ?-Q8njW7oDv?@QqW zuj>b?K6pU$C?jiVs${yaP@y)$rPXyyzZ(ih8-#g^ZM4&#Czm+R(YMFZJ}R4U%I_8|5vsD0vsk5V_W~po!`j3cLbMEo@7*W@Pazf0U$@dR3 z8zYpSDL{>-LFknLdWupmLXp=^=h*)qIMKACA~oOyp^t9wFScdwx-0|UX&*bf_N0h? zL2S;6pbj}SeuwBR5G;`H1B_yw&R*o;cNhexdkEF^h?PH$nTHuPcpba6@;kTXQE*Y~ z)0AoJR|qUq^O?SaZcfUBc=*&o$9K<#9Hvu%`h%{%b3JP^)g^hk*6#N=$-Y9XAfa+d z5HfM%LDvQx`Yc?2y;l8X-pjo_(OKtDuk}7HMble_S-qmd7OHA zx>xBX6-VF|N6n#4r;gcoI}HjR@d{$=*DAJtaR7m#J7Cjv`OehFgo0-pB=n*dLdPnl zUcNR%E5S0wPjtaH-@ATgrZ0hH0mAQ#{jA#QT_;x4#?ctJ#RgNr%o?7)9jj#kTctao z%kDX{K=}lj#%?OJuy!daEoV9_J&5bv$YV+`$C^z?ZFkQd8T;^((4~pwxJi^-{Hb~D z0N`C0sfEnUJUit>hMp%SDd~o=!?ejqb6Ew2Y{I765J?E^k5UC`T~lM@U2t#xjloq& zLeM+t#Kb}AorYz&9TlAee@lSI!ekKVe57u5ZfNNDgTD#~@B;0CT9zt_DNUd#G}hOD zQ?1zO^s|@!ju2joYRMO-K|Gz6hcKimhnXKI?v&8#e}b(~@no^)t`K}nMcd@_HInb8 zi;s@fdL}g4Bcs3y25juMp#+{)^z%i8)_!h)o|iR>IL8U}L0cr1GRJ2njs=|Jx=Ja& z^-*kRO&_IIOO9kMRgFhJ0A!ZCD|S=>f=I5d!P<@=^x*{`K|qp$JaFi`$`q;i+T)X# z)ZS?WL$UEayu4$~J`k=32p}49yFj{ix>o2``=)}&Lp;ZlkeyPT+Xk}XJ!G7@BXv95 zbDmS$yBn%uJ0WLc^J^16epEy~IIusS6B&6eX{(PITz;Ri2gd|BZ#VWR%4HCo_S2_N ze#1EZI*M(mK|v*R&r3IGZJRC^{tl6*Z_D;rz6g(~2rbSxKy!3ETTqFCRbx%X;WP?| zJX|%V-h{4hzdG(wjCSJ~SM=-GuP3%whq{5S8~r_s7%N07qn(1hb;ivN$Z{7T1!&z) zNJv2lCA?%Wx!Eedi=%g)=E^tiycKFU-NPjctRGNpW(gdL<f-yJr6A>N?N7qStWFF)h1@N2qyaU3UWoa41F~?SHvP`^I)oO#Dp?dd#hLTbO zFdS2W<+2?e?bwcoa-B0Jt^>Y55n3NVeW;T@K0X)N*}I^aL+g{_GN-EQ;R;Jt0oa3kncWn8Mv6tI zRcte3kwB=fLwRuuy1XN+a^tOIfO`BV7@i!BnS)3e`VGir*>aG`%jr%Lu^g|-H%64E zN`Adj|Ku?9K+~bu5Yds4jI%%wXcd~n5tdL(J!5DJn}_OZR`ECuM2c*2aWUvbJ0GAt zOsWrU-19cPKa+nF-x`+<@pT@MANX7cNGEAvJ4GmyfhA9`LZ{LqzPnY_y^aW7v|cC( zSyrB#eF%zm<{HWZ_pAb#Au_9URtT}nK>B`Lt=M(nhQihX9prLnwucJzORCP!#gHg7 zk)HD%->p_Ykrc%Xbe|?@SR25NAZC=;DL^i{n$T2MjarZCY%lHPwWz5qZqIc)sJ zne1#q>uA+ikck90q+b0fbw$s`)Zvk-0MZZF5D)P#scm&!kdULOXu;=gc z)`r{j9PCUAVe!H9-+hJImL(JCVxZkXdAHB1A`=2u84yhu@YNIb`j~Y$@&m|{oRdJD zR*!C!Ds12mlx!_F+0T`&rU8136n4zo18l|k*!0x}9v&Y1Uc>N-HfaVGAcv7=S+-D1 zyHT;bS&_2Zv~bn8Xz9Bw9}vH2eLsqAlW+K+dJibA3~Z0M>z&PtUG?wy^%<~Dr~B$a zGPq7UWUwIdog%-3vKL>Y(zFYiEtz6pp6rxGs0~;rQlv#79RrAf zM4*z9grk&nyA8#n)H8~SYD)2rT*Ia%V47L%Qfrc;9YKoSgD7BO1b;Um`6q(sr5d-! z9x*fp7kCvFm5!SD66jN3y?%XS$33GJIGhgXSCKD4Mf7vBk6&6Js>?I_`W@0~0#aK_ zHYU^Up*J!Ede8-gxy~fHDC=0q4e$qm;~hYvB+j|dxu#`gbRYo;Vnq{(>~DY_vvc(8 z&e;uaumH?4>$)8zvglV1ImrwybX=e!wfY(56d1S@wmSY9gGW)DEr>;eB`AXGRc0~Jn(JkA~c>`zWJ`-uw9C754c}uil66{416w@1__dn`Lt_@62ZKO=O+Wp*s zRVd-{Vw=-EgdY8%x8?4ek^cTYPtojQo*)VwCa4vUe z1*wYe<@@=juZto0t36vZ-4?zeT3^3;3LtgFd3JVwBr<>^kfabNw)dNuT?XD|qApGm4M+bFZ<^ff`SdW1>)cAkrs-}5N-BceOYL$< zc|z1wEa=95o1M#!BfzkH1%lWLDP-+gn!>hF_M;q!+zVSOUX}%)K?2V1&fG4d&YsN) z=u~?7RVYv}h?&pg2=a)eM$9LV)4Wce$M!}FzW>`En^j(+Ke;g&9v&VA$fpXhUe$-h z#J95prBMr`by1KteCG0?^WiaUJl+mEA~JB;>(_=*vcG~S>!+oqO=?Un1l?DCo&XZ&PmmP(@o}EzG71U;p`TkTR*V%lcWV~P0TNr#`zM+k-!e$5urrGXqz)LTS8s#p=bH#ZEag_XKLNp?ZUqHtP3FA># zwV&Aa#dbwOUN6@dvY#~I=H_k&-p3qhl}w>sag)hbmfn@w0W+W;4UuGq;vO{BW@_VT zU1V4S)Z`CtqS)3&gWF_tB73uAH*c~XzkBCS2)*alqr&ig80N(?N_Xa;fiN^yCNhdT z4V0I8TCPYTr|WBiufAd8aXKb0fMMTGE$+j4$u?FV1F9?yWZANnA7+g(r?H<(;~nag zfFrVTg>kw{CIb?ypLm$uqmk0`QvFy>7dyYwXEg<~jSA>99pEP93}PA}tvR~hhmUjr z$Hx_mn9ttJ(nt+qmcGEsDh=!$G!X$MtrG%7qfb5AU`;DIhVlC1yxzUDmcFH|s+ta*x69T--PG0=5RZKJlga}?5xM~B zZU+M{X@K})$l?u4r~R)4MYdNRe8iYn2lKx@`IC5`zC#k6$4{Pw&wds!}w)m?FT5%EJywhR9M|Mq%?WgW(Li0f`Ha=4QY)=KBK|M0eGE9DZPwdG^ zjARi}Nu9CNlWX{L)U!MG_i&YWlC6WWYOFRGI3e(B z1Q&CXy=-a&nf1L39+qPwe|-TrKe8IldNy{M#fE~i7n>h3$wYY#yY+;9ys7-8)*xHz4 zjfG8YS)+rB%u&HsJ(W_iA$JQg;jztVR>7#{dgu9L2OZT$Yr+}d9@BbbHGF4#7v7g+etO z*60fNH?Oo8nFsTmgJ1oak~b=7vimhx*?ilWp?jj)tHXK`f1`yE_#;EQC9l=jJ#JU( zW;(z2Sc&86y)eS1{3N}K2cJxtWyVAfsi>I0X7Ty{;QDFGt1V&CUtPvT)`)zBHM)Uf zKyJ9j@g^Ur`KsZAtiBz)IGsBzEZ z)U897r_pN=k;c?l+#^8Pn;&3Je8^hK!cUjXoYSEZsg;A9=3#Em1>Aa~!Q; zt5%&c7+$pAZZJ1VPu#HdOWK8k(3#WMTD;>RRh+-0qLK(B48B%YKR(G!b!V&IyY~h; z2UI}B_f8H~R6zg!Zk>QP1A-%x_u<_zhSHRjo7b;j2kfQ{gk+SP7_XeBaLlRC)AxiU za;6$A>nQa<9wWYQ-rr1iGg=+(ehgdROuJf}d`li>Z;RzvNlh@}@bTlbH=hG+GX4GS z{YYQFl?_nfh^A1~uk~*OHV%5*OBO@rnq{u5T>x1DhE8>bhWznrW>BhkmOP)Bx-@qB zi{eRPZf}7FTdB+J%=!$C4s)sL=3qx}jqodr`<^fv_;Xou?7Nu+a}lp!y+Q;I0NILs zTY~)H?TcS%XmD)(GuPp2uVz-#t=M>^DbmJ!A8tVF9k#Q2cV>1-d6!P@{{7VH+1~Tc zfd|gn#A+59ywlVxb|VvP6@xFmNHzh7NOw2Sr9T{CR#d$T$WK{ID=RmbyD!5#y_-;@%o}$q~nB~EzFhaj{QXZ8vh1W5scI7pC ztEAU7xDP$0@STyGDu4Kn?iJ#G$rf2r?l?O5;l($(G4SQZ(^xY2m_%3&j~%Q;4EIOx z-b$=tB{YrhuoA{nXIiup8!Wn(!V&v3!F;u#goNKgwD(!~>AnCWatTGng3|0%Lt(*I zO#>m}kY5-Jv2Z^T%hTKePjEP;ZXIMX&UZuy4ze?kva>qm!&;9ifTzjQ*_`$=(0eBA zmi^(wHD_mMU~{cq&zDzy`{j;1-5Ukpt_mjUc^nAzD zfrlW=e0fL0ctG!~yLpCnY`gG}2Io}iUQ1T)(_YF6)})HrNylf%bR9;{HVjJiT5^!^ zVUiNPvlKRw;)(@*&w$vwtO3S`P}@!@KNAR>G9nbWqNhfD7-DAj=Dl99$z_{p_j)U= zzlOqbO-n}R`K?>Gl$Df5SMG{<%hs=v8kP!l2z-F8awjwM8mM<}VcbmA;&ud^-c3G_ z7A;tBiJ4cTF9WuLG^BFx-uTMhj6z6xa`Z(#%LbHMvC}A;^mK@)rCZEOoN^fiTd7~o z?7)f{a%nMj@CPpzV+Ve&r@aa9B?Bd!>2X^lZo*V<%u_xnjkpx>MbyHcp%2%Xd1KxQU`fwV#Ct1 zQ$MgZO{U(U=Kf_#S9bVd0s5dH_!>C%`y5?}j#*u6;$cUP8|UorYC>FuHl-q0C*!8YIN*H1 zK40A?&mPfVdnQ01d_FGDf3K!4;P#E)SPifXV>Z$J(S!eGe2v%s@iAwb-E+ts$n<7M z4eM9*oQQD&(cM=XS2}cvpH>79OkdR^9_B+Q7J|(o^@0Mb3gfGNvX96OOU3ULY?7A7 z_E*i5I57xj>*8{`*7>J}e?LGwPLT{Y()x*#emCZH6k;b%|Jx#~!yRW*@XTY?w3xV= z=??flWNZCbGYyixmXx_P7zaGK+ok)4!cq~XdUUg=YWnM%LS||((#lr0zOdGr07?Vg z*gNw=VnK2*1~~N~_NrMEoO3qbd^J$bm!Bl3L*I{h*cdK|cj%?S=SY60ALGS5Bu6OL z$ijmGRcwO0*Bpk+)q6D<%0j%_-pg%-m2TBP#I~M(rkf8jpnNdxViSJZo1W$dM1k)W z%wzl-2@AgSYtk0v>`RcEg4?jQBR;~z#Hl@PHHXL9+0TxW<5+s-$!xGK|6EaL^9y|= zm$;+o>P@gM$aM2p8Xa~a#rUd`3OI-+p7cJAiH~w~H|Xl4``^fY3HLXzH^#QI-u4~B zLNot8Zv^VsFN)KWid{=EFFaO#df3yW#W~>71=8FcrqF=im$?Jr5glMU=vc{oSF?cUX)*I)Rgh#e9qtmC%MQ$wJKzjq zdgGogLot~|Fp#WoZ1vF+gwYZPi6Eb(Rw<$-_$1_+bNpztOT7fu#-2Hx=ztJhRgX-q zs%jn&j_;tC0{3sIenc?)B1loN1POPUc0Xms%$q zHd76k1+R*MvhJDM^6=G6TfHGRzaK7o_0>$3WbdptnO?(}zdtmR7*F?HU+HOSy#aO@ za`eXo;lY2N^p%(!zRT^P`w@I@Ow!ni%Qz>M$;0y1%ovU%xB+`-d3@IEY(IV0lcK2x zx#tv*(Ver-mvZ(H&8Hg}RWbe&;W#;Sl$zrRWJ;zmB8hD{0(3~RfE3`ABMWyum)}`R zZ#t|Z-rSMI(3SHe^=Hj7F3jXKxE@pCONaAnQW4}}ChyzBKg;+F7!Hc9-zI5i_Pv)J|f)cup0aYV-))<#Qz2I9{0)q znU`oz`T4NX%Oo;ySofEvS2LfzNZ*~|AIGWPDG>PT>rQ&UkNBzEIDPIZtR@J`ma4My zhs8x3P&kUqj?287@uT!sGd(NRyx+ZBDVKAY$i&}5kmFv#m?X!dR9j#Vz|%Pw*pz5h zm7Ld?NU%SDhH^{1;8fdBCG}naN{bH>rI&Uh)3FVEeV;h)6Hymv@D6S4`vveJ)!4g- zZ2gaqf6O#rojPp9jN*@<%x-O;6g@JQf`8l#hv)uOhiG%D4TUkrJ0LuT-YFmj@FBo! z`0mgotX?<-{mS>}*8Jtlt3@Z3^+ z?ZFD8^ZY6utx55sCW1j^Bv?zlHEC#NSMGpHNo+A%{{J+?mY zx+IO0A97>1_G1l@f384c=t1c`RZ26MBu81Nhj>`})yx9Htc^WnfkscMm!4&e1G^b( zWXXZeA8TCEArOLpvw~mi_DH26E?LT#?2eXJEc8+dXJy|Mm9eY^XTJSrG?t>1n`w^V zU|P?uohMcy1f4?;MZ^?3DNl|`F$u>V<|T8rmI5^w(Uj;A!-*3o&^$RWj2pvTLG4Up z73w%{e3inXu+RH3rKKQ@ z721O=e=8J-ix0ql%?y-=OOge?GY`@{jBKw80^tfHqwARi_0Avn1JI20%B6#PiqbrZ z7_Y&v#@950HXne*1D$X0RLy2{jIb(bAn5D|P&^=Yr9GuLgR=~X=z{r@t{N5M75vqx zKN8KQdDWX7#PK5RXNaQ^pr5uTJz6QT|G93PEM)hp%4fBIGXY4ZvD;qmmUj18`1vJL z$UY6`n$jh`NhW|gQP$Oc4^W~LdSscqFc1iQ)#>GY5HA#Aq?Y9&5&>YW9UfHS?CPIq z4)@plY7M9z`LI=!^a22Os`Ts=i+bk+2M;YE7ZULh?KUq z%Do$JsDWFAqZiqPawMKzx|9K9dB&|>FssN5lcF-;qXlh0xvks4z>30`FJD4Gz;p5y z#R8LM){%0j1SWI&tcNR|Vhrygns|Jd&%e3-P+0T!h7 zv&IXLhiq9hZ2U|#j=m#A|FY7G)8?w@4*u73j$bic`o1t&L%q5lcv>(X?lS?J(Tgi$ z<~^KfLM6!-PPuq&IcdTSGfe83_nTp+&S$CiS>~3Ruj;oj+wNCQvyB}y?_$PRDL|B* z;!>78*wyr|EHHO~p3DQ03fw$A)rC`i1A`F*rH<*)^8h(;qz;B@@_`SDXjuTt%M`X@ z5^RPD@>4KwfM!ARn^NQB znM?(a<5)WdIgV&G`QE(DJ%|@s#l*s1Y`)Hg;;JNU|>9z?QGB&37-cVH)^45 z%~Z`lGq?$d!N95DOc+dBzIn5lq$U>J7#)6~Fz*cQMIGVn<1-!&&MGI=8`S4dplbo) zri4b(y0tw;Q-elUIA62*ejKwdF*n95Ejk(2AKK?D&U+nbZhp)DQ{`na50t50fzHBA z4wjVy`I`mmMH-ASqN6e6AS!}KnZXnYdlrrS&Fd|)ulm-5qm3)x8H;3(aaO#V@lp-h z3!G>A|3SjBZIPU)ivk`Pomv7){}&!_)|sY~s%=8tPoH%3%i(cyNrsxxhK4gik{J)# z`r4F%3++VW387V7JCxUb!!8CUJWF6$nnecn)8OBzpGIltqG}eBfKWd@p6lL9Dadih z5-(*FyZt0~0e826*qT9*QnHG|@k&xj$=-33%Z2^%Q`r?_lLQ#r=;}yS;)7FI=QF%B9-ocMbv2}IM4=zfG*C2&mYzQZM53^P*S&0!|j+2t17rl|#5_ z!ckpWegl11W&dvbCCxp{fafyTzhW}pUg#o=Ly`a7H+dj~XiDr^`G{iLs!Bl=zp=>GXSkXD$w z4I2J(xnXYZs%yQm09i4p^w*q48JO%5#)u}xZt}68_kQ)Sn4`&cTVITri-LnROG`^a z;&q%pB`gW%l#`rq%(YIhZ29HVRW6t}I6u!l&j2-iKP@e;DIFjy9X3qj0Q4^!3W9lD z=^2}}loY=ojkOc zJP^bn#U81Xm6b(l@`IQIw3dsDi^__M!5wunCww{a&{%`zfEyq>-8v=Mnv_eoa_B)V z!3J6sVywsqqK*s37k(5y(qCHvrSOx-wu_;mVJb`)M~bTSQIMLg#hhmBE{tX*ZiU-P$eFr09}0 zUAZvODvA54AV6Z_P*gI$_`;&Qd0!DASsgck_X`BGA%G9I1xE)sGAjm-?xAPfORPsd$twyY+gLb%M+1dCQOcA-e|$i*u)I`EQH zx6;--VOZ21pyY5%NvY^IB{PFni3a`G;o+xnuLwHg=;^KZ!NawtTSdO8u^w&*8uzbpUIdg^7nTHHVXxw7or9w!S$U0IA990D!nb7U3T!0 zn(&apF6J3nv}7*@_Ajd7uV5Npxf{>(?!?A_=s!ueLn_cMR)+rdSxonfQBa(!)+< z`p;zyVOP8?den%nc%%F&fI1q^rx0kadZ?}TBf`wDB6vuNK~{qY-sj6%DY*9#^ndR- zA}qWr^-jUv7WDLe2I?Kb`(dl$#7dwFLH8GZ|_`|l54c3ka=E*XY--ZTVH{-3)D!(GlmG=MmvbGNni-|l6M z5|AXksp5*)88T}M?^BQ(NNF#Caw!MfeGZ5n3SX{2WPqb649Bo?iLN}_^%mhCWg-k= zZ|w2E)(t73g>jS!djh!31fCy)WR>K9b{jNKTG;15|9KAVCj>v;mvLI~kdDY#!@u0$I_Dc5_U_?N%6Jce-F5W7gq|0FIoV98)pVV%FjvX)q}={ZP{-f>`jR-FR` z5?`*>jMN?mf;)8$cJr>0kx|XzF6H-%Y(ER&yo=hU+8~CxZ!d;V>^&m>udWJYnc*wQ zd!aC1$%H=76lRS(*poqzN*PeZaL>q3pn5aR`&Yl@h3E7qlHdf?_Fv#lBK+R|?0;6) zOTkEu1X=d;#9N;KlbVhKQu}|V8HT=0_niT?i+RYIl$ugP=`Z!q3*4KP%a6$9#lKWQ zXi39aK#r70?^!@6M~qwP(auv62M&QukrDcd;>@THD1xr(73@c!V9pqmAn5d z{HmI&ciFpZ)CG+91nO(}`iY$ORYwRwSV5}pwG>#4aYUKVkIqMUU%)?^4=#@q!XGE0 zSbp666K?i0!x(+^W9mN4YfZ7Jny0|LHy&oX**G{9+&7lmV7jYc>*!stztfA{h#dgL zLX;v=$*c(ykn=JA1T(ZSyKn~%At~Rv^B(46Bp{$wVKC^Y7?sqi;nR>MC6q!?-XEqq zK0EIZL%%9$K9dDb!N|kB$9I_P8Ktig8?=?M_)#ERdvt`;L7WIXOeX(Jq$ddSrFj~Z zOD>JOB!Tz;w{pSzx(B5WndrqGmhkd~N1Y!}{AC&mPN%bYcN|{gYS5pIN1>W|)c};@ zg7Mu+7@LHlmIWd43OMMG-WmaiR)Yqe@pPIl6N%_(2ecB^s|~HKXu}f3;84uTa!5d~ zb}%Jp2BV`gp7PeHiGmG~u->b2UOjMD>`D^Mga9|Q?BM}OJQ5DSo|BJelR>k2a5Oy& zrr%QGq(tZ^SSJa?C`@C*Z1Stw@=Z&aaQxV|NiXJh#jP|q)aEc4;K-N=;}ukyB-)Y0 z{b;QI2)t-Q9=f}i|Cc;V!YT(l`#tpD6$T9t5~zO>1E86dl>LDbU2P%8S;>9zKy}Z{ z3JuJl30^oiXJ~9JeYzE1d;kX26RL}{Do=&UZ8JDBJK3Eb2j|3+(ZRjt!Cja|?1D)( z8Z`4E8x~6(YE@nCts!4)L#Dq1STWdiOoZ16eiT|{{w@;$!PPEeZ1a%}^#^6P<1dOV z{GSWmi$epS&_%vn&-uPLr9$7mF-!r~HHEIWX8_bdPRx=CKXNUfS^+SKw6Q=g zJ?2F0BYZdhzZ1fNH>0FnJrirX{%4xC$aJv&t1VKR^-c}|i0ILmK$4dH@79jiT`42! z!uj)v`#gB?VCcpbKL(KC>ty}Q9utvyMb$fBX?u=@T6(h!D`9gYei@|L;Ag}mKzgPX zup}EAgdw-CZ0&5|DdC)*CIovoFh!jeo}Os@9)|k5!FTu`e*f?xEB!x448k_l{ODk^ zLH=|t2z;#Ytf>+$QW-$;bSk2u0;>Czkm5em1>Og52KI)gTof1(neQ-O_{n765-$JVAQ1V+|qJm@_v716L@ld$o%k9fq%IOBlOtK(PNd$?;4(O)hP)u&7m5^|Q zmhK%+(-%~A2-69x1&J+I7-m7F$BD7sch=A57K|RuzBeyam-0sQ6qUpKF>+>nBIG^y zqvzpTD`yBqUKQ5x03iDRqR=um7ie_YdC7_E0sl`6=i1pP619jo;0fp+2%?(v%e zr-q#EQ#cGO@XJSPH^u!H@p?CGSOM7KVc-u+`S{=MDa`QlHFZ!IlFuWbVK)%N<~e{a zwG+5}ScL2om#@PY2-PcSjC zjh0%#*xg&*KnDbtYw#w}48NvuQn#Cn)QKrRkHZE$553@gD2K-dp7 zrh%W-9X-phT*x%RCM+fCpeW-Ej>CmkL*PP1f44s<_JC9BlU)$evNX?jBIWb_*nzH! z4&M}N0Q$eX z0}}Nu14aFAB~vc+)F2Z)GdKwgafAzFM?pXMc0kLZ3E(12~1TbmxTCZjHHBzJ!>kNZYp5zX=n}^Pe zqu*bH-^b7A>I?H3>VOtcPQs3PU9PvCg%%k!TFPEZOpyu@{*j+_EnqPkSg$_1L}ddc zyzmI+SyNVg@v~`CEJc9_U?z+DznCa!o-@!ih1Lsmak!{8sUXKukfG}>sw7s3Fkz79ab_cG>1 zUjJwo$)bYtR}#3cxdKQx%6Xy772;mmyjx)6lk2FM_5!M#tsw@5L+6T8h_ zKtCp{S<32@SS1N4kv4fKfaupLvBQ+mop?D-1NAw)!&TwC)DsA%{8J^s3R?Qep= z*z|B$zPBWMfaz2)j^Tg?8N+S#hIX>`DZPXXn?P6gpDw8ZuEm;6dWD3`n9GF7OJGe9 zZvnG3xdUgRdZ;TEFz45MVHhhQgUULm^&Iz5F5I00;g^z!uwj1gXjdT3U^+&MO^9+v79He2or{ z!R=21P9MOmX+X*4f$=1<2AZEe%VT7|ml&PkFglu|gi#9x7+Z}^OFz#rlBKMXU3SuN zlghmO9;6t)`o~_o!2}&*K*(!;O5QZy5dgqvYJ>Ox(Z04Yx(vtqe#2XXIsvx9TcZvujhCqyL zxmc~C$fZLxo0{Q&DFkrPR9UPM$cG?8Oo?_+_vZ2Ge*OcFaoh<-8tY~4at-KCl^#9H zVSytA_RAjbFu1IusQ3;*q)aF}!UcK=kKdWI{TKSYqY1cBG}{t%=>UsD#{HnZ=7LnD zenR(hy;OwKU9M)t`4b&l>nDvneK)=JF4Zo@J%-Q^^WT)r{%_kyxF1MEtDQzjn&pw0F9(o;Lc`s)XHAh7KIt! z7C&p3T)W_*qm3v_8MD=yb6}Ae%{ZmCc`TR072H<9`;piuH$QaDZqov-p)K^F>To7u zw9V;}Mm`{^cusEo?#KSfnTJ%s&#qN?=*T+G&A}`HVbYurmAcgVr3wJ;=|j`c_&XM5 zD?gFbQ3>^?>)^=ZSYEmyb=YKtE&_3=1c~3eUOr_C3QX>}~Ww;0CUQGhbcfM1$?5Q)8KT z!vMVp?4DY22tceU&w7SYJYEv|5bS9^UUdce&3pI zW-q)|#bVL)p^Wng+$}$*<%1_$(IpB-983kuYQ|Rbx&AALGtE$b(FC^D@M8HIZ&7~|x;7@FjE_`O^O0=5vA7_Oa- zH_3+$`Udav<<_gO`6_ZHcGK%Whu5|Ze_u8RlVrXSeK$9j*kR;X*YU@p7oqBj1v4OD zAY#KSdA#mYgJg**xMNLwsd|@Kgbm1NGV2PDFibY+Xtuczf0LOHrNoEY+8HotMTWbk z^VHwU({^h4B+7&C<{GM-Z0P|Ozwi1cRdDryXxX65Av)K>;>m##10|+5k6zvO$h~QGvxD~r2Vn%r|@tW|Zs`>gGgKuzQn>g)bj8`v+ zQ(O1nC`^`z0utnZVTpYII^f_qv1gipgQ4;bn=i8#vW5kkswp*sWWf<2? zrg?gKlIeNnC)SkTc!oEu)LJkUbVZel1-fKmn;zXX7@U_gXVuPJ`Mbqc6cB7XyBL$ZQi#du!Ktq{H+vz&WTJ{gy2TG=t$jF zT1g>o<8hM>dX%Y3$jvInUZ$9sJtD=1=UoIlJ6j-A`c!V5Zbl z?VlgIm}Wpc_|UOy^0%=Jk(GQUAYCJGn&t*bd3VD33(=MV&er(=4~_|`tcN191iI&W z2m0JePaQUW<+AQK#PA2d4i2g?L9IN#@2+yLf}cn6>+>ck$(A^hZ#r-3r=5Ko}&`@?umn5`sw!j3p zA;ms4ZF^@cZ$U0_D{VLLLLX_S`HJXPwUiJHW0|lQ6*)edgISa}|JTyt z#`~;-kWMY$EGP^QV@4U2?xX}8Ajm_wp|V4&1$F^oDT z>VHHN7JXBYY`I+8jT&mBo+PVGyioax%#3nNl&_f_eoBg4vQ7c1=*d{iuDrd&WA5A) zvM+i=NDI}t8BIyJz$xMDnyLPTsuEuQ2&xu6Lmt!*5<=9X$5@zvTU%NlUKc2GNj!%y zW0OT^pkBy?xP#ZRCbC8#xF~{cTXD%BgKaisj?+~CW`8mZG z-~etPdy6WwOh+?{;P+S6X5^zv&OB9O1IqY0V{kBXyT-!~_K(L3;>V$TwyI~Ff39Zp}MV;Bge9NRU( zy2O^vcwI(pYRs<3p-L%giXl1<{9JPm4)cVEr~P~P$}Jklt{$?-fZ3Fq$y|I5p5Kkt zGbX(7!16j%`)cTT?~~vc(AiqdIYk$RaHeRU)e)Q{;_0SDrbv6M#jcS0T;PtFODK=O*5nX}cOB$%0y?Vet+ z=d|GRp~iWrAvVvnk9K1}+Ufx7RPIu!2_2A#=n7?jzIOd9Jh##l&ezfk8o)Y@O}Gc| z*Aqn)aYE=dudPnyHiF~W*Yv7h+0R|jMZP+x#m&DyeCi)1cx!7S2oSCaHA*!5fi-8^ z>78QI$tfJUN+vwY-dnrHZM?OFd|krE8M#hyL}&Zu#5>yaq7chv-!eEUWP1$carz57=P=?P9)hm02#sHs`{AT}Zf6lza| zbrZ}*^vO4r4D&rOh?_E9?;wsib?pjkBz-B~2|IB~y|^L=Ov$C>i4NZnQ9UZtw!dxi z+<+p1gUeQ^>#)7Nohc)+JYnEGFL9}Y;~Q$duifIxZf&=|e|Q90Ye?>dHNmDV_cR2R zSK!Q{=YRL`!xnO#G0k+9mXTQ=x*rn!9Vp+?d#rX{WeT8s412F)-bEYT0#R)GhMQj>oC{a0e9svZ z5sr`u^&E(5e~(n2+t?i*999FPCy}o&7eZ1*Sig+=nTtP#2 zDBqKkmpQ2%0I=4;0=uZr(kq5QmB^%OIc#4O)K7_b{Gfm=U7}F+MuB*`x6xF*rUERF z#xW8mV=i}TkueFVlUGevfq=dy{oJ9T$ddiQQ6*{+7*H<$ z#g;dL{Aq|cN^w8Dc0ecSg)iM}^3`T}`Rw4a=&&4%3c?@k+WEU)UTvn#9K-J*8~0e9 zs?+bL4L%*)-UiY6c``(Ng-v8@AZ@L1;od_$)xC00Txm~I`fu{{JtFp|FAxwFTpr0Z z3$xdk+B+l(?J(d@&Eyf4#sQe)_BzhwI?y~H8wBtsq4WNQ)bu9kx;%jPQNMk+lAWBp z<-q7|2a+Gx{@za5n1@G1T!E$ZdT@N5+;*;qj7$V0?EK>I8GDmBD~~o(&DMd^H%GEv z%@Pw>RJ=h@PF@+4Ex&>`u^Ceu-b7!e$o+h;+_PmEXFA`83IWp4p;I#18kozwXqZQR zg7M!AGVvj|E+S+QD-tK?E^MqA&t){8Iim_)S|li!1Dna2L#2ZA3#>Yx!l00hT-0CV zz*76({9p<^HUeZg$I-lIl;unZCIiF7oBO(XQM&5@M{-GCs?vOj4 zy9};}92U)J#!F>J1?O&9wcKq;F8>PWC!KtO$(Go}r>s0ZPY>=LH_IRGTk$jU02hX~ zMX!jEHVcTb2hO4h99yOOo~`3)6o^L+LxynhSD+V&MSG9#mf!4W)r!i!<6o)ZOSPetk)nEYo2Dv(|piu?-G)9VKBRudw6-0izDBb~0|l00VZ z?1S2LN%3{)6+wWHhf#JFF`JAsXxy}ia zyBSd$V7PGu{zK`Rsv8EQL$7=`Ie{HmRLn0iHe?CzLU@={Ug%Gr)E0xfDOm8Hgvma)+vcMMx3T z`!RZ<6ilR2@QsvHnRfx5{Rm4?{dtY0raQ<)(_Hc6^?T-?xy)q*AOUBFgx;I%1KE$R z+fm>~5wIUv?YOWlHx|Jx6_w3oo!keXqV&x0lhpYInbuv$V|`cPz>xgz^w zpzmG9K}Ml0d4KN&Rl*g9^7G;E3TWn2R!`##xCBg5EBJSK&CRwTmB!U}c6P>Qh7qkq zuw_IA*y~txSIgztr^wEMDvQsCXDanX!Cg|&3fyHSJwA*UFHDqKKhHU6kSInbx0r+7 zSAPOH2$SgeAX6$(L)OCl4Bi5=dO&hZVA63R%MslJ$odkN>ajGcaLsf4c=W-hFYZH_ z92{(TW1@GkqkJJx(L=*Vkw%9SeXs+_L>RH(#bys8S|A+Gezp%W%Kyu`)KCHse)aFq5WF6a!PZWjAR~ExkaL*RR*Kk& zcu$CF1T*xnufI7D2l8~a;(wx(6~7HhZ_3&XMg?zG+>IMn0=FuViGg8a0dmJXuq#V_ zkijKkJ{F(F>7MT+f8{5}pD2JHOe;F!X}Q7G)wP1hd&?;1 z(9uX=D^ZpUCyMh-XTk%u9CAbj7gbxx3|%UyZ&50SghT73i9j+Vda}@EDVKe;Vn{!x zHa}(tg@jpj1!K4Ia)G)4Ll|gEDm773&k>%`$k9Pomt-A?2=_9`ZU}upp*hT}lv% zhOK-tRWQ+9F5`U+yrY7UVc>-*^CtQ`5S7HF7NeTsjju)jx|)u0@Axt@N=Jv;coGE~ihCo=mwRz1)EBWopdHfo^rSNt=G+PoAqC(q!DPbxQS9O%B?<>z z4lE&XU5N7;F~p~&r^*9unaIO*9M7L$sdApGaiv{x=~{EYIqRJVNouVSen)eeM%_q9$+Vh>#>a^QQS z1Z&lNd*M}N)l<8O@m#`Y*GoL4P={>~^#0^P!Mo?P^0ZNM3XT-e;_15j(a`7>W`T~O59_Vlw(SBWLyFha?xu<%ZK61>hMgMgHQpeqO>#S-O^`7Qn`0tw z%5A_wUKeh-Y7Mf&m*c|NX0PreAGjs}5o4}p$vm&iLSp&kuTI}4NyT>A-4Yv{HAJWV@D5!ojCV`z=4NVQK zceyOAg_nS@C7kD4TvU0BvG+doCTRC;g!dVdbj~!t*}bTE)B;-Tqd2;b4Dc@y%B5m$ zXp$cu0GoJ(7;r+>twL(xz&_jNNrKdA5RBUAY4W=KlO{lvHEi8^;z`~?m3J&SMH)NV z(87mD5i$tRY_fZk$>9J8Z9NXm05VAZ?ZgS}zmj~QtiTX$>(wC)_kjFUW9Ah=15}HX zz4;LJ4s)o5xa`FkZ4#+d91Bb+0tMR3@M~52+|`-YsYX7&vNw5(a+e1h1{@s8R2%*m zqJm_Imz@ipD>WAk9cwiJ(RgJ7TJMIFxRAqlbV7Rt;j=;ZSxM=i)i4~E^ci52{^knh3H&@JR8BIpl z-BABrz>$F#s&)9Ex5&p-m%1@lmm6{savEzlo54C&NT~#egv14Yj!mCtKLqr zE-C)7?w%ez7w(DTPf+yBCW&YuzD$1pJ~s~ACz#R>?{YZwVtCD=+@-OczOX9+k~#UflahSL3-uiOCfd{L?ZP z&eJjURd7_x^I3#vl(CQQS6YWca%cb^lcB#yv!v@JN77@%7Y>aT8_8K00q4b-@3m60 z@nep{i$vXVHVCV_#clkw6j7;Uj^0;$N-gcOPOuREenktUjR31(!20tBMZX_jiNOx0 zr~uE}Jj6cw0MxEFq7smQY{Gs{aBjRrpfjRXmnFTiR>J z&B5P`v0T6nR}A6fU~-O9DJ^w75UIPhq08A!c64WO|L!jn_w?$T3&zHiA*G8p=2^oq za^fs9R#OZaj||oXV-yD+7+TKk%T2_l`Sj8&QBzo0r3st|%!NR6dTZ3cM?Fwg47T4T zfZF{$t{K2VxY+hl_8}8-9WAyv`6u=VGqs>|yY+?Xa~TixslF&!=+7``75+-*npcJ} zKjX2|QGv4nL?&f}$%yZxOU_EY$n%cxi|aCBA1Qp>38KcTvX1lPS2w_&b!N7@waSyD zY6@AYx$pr*@`mTnR5^uJ1Aj4zc0~Gk2Cig|NivPwdpu%n!=wQ=QXl{XJ}}Q`>6ArJ zAo6+FcSz$1ci5kG%76spQ`FmtlpfoZjuq>}a$xQUTq2hYmcY89E6LmwxRY7+gN zT(}~p?GqSP9Vf*#9e( zZ~|b#Xvjp^A1{LSS=xTu*+hUFz1J$>ai*8`) zFfd>AcjCN4^$5o;JRS!sj}t^pw|(L9nFbKA;JPvdMWbtVQ3juh7a9(*h5R9r2aR|? z`gY{KgrSU=hKmC0QWAOIET7a$7oLU-69Z~4`yOXwdpP(Vi_`!{P5)An6jyK+wvs4p z$)?qgBX{mGH&w~RDh?d%2jdtLDOnW0sE1iC{CBqOZliSn1JeLYRDafkxjskS#B2 zq-ZMy&KL5=*EUM9Jj7moD{c~$2|dCCK^Q8cV+#H?d8p)_CA!uu4JF1FM5MjwOt>Ba zXnjT#U@!@vyAL0}93vAuCI7qXVTBnS4C;lIEE+uaH~o)36`%}(YjxlI72+i_;Xq%< zo0UEMu*5~9w)eqcxlZdFTCH7HInQ`87sE6SUj|KDC)XTF%t6cy1B-v;ky2Ytni53E z;*(hN38O*ng+6EYzjdm*NgYMMC!&xxUCr0XZt`T%DkM=y#g@)S&==s1ER98_->zI> zyu%H3Kt3<2^WsSn=sQhd!ee(cKGr}vFtHwESehHJ{Nxw}5&Rkix{_Ve-`yxatYgEH ze%~WeL4}nj(BM*#^`(!WIB^*fFk+G=Q{`sQeue%JVcn%aQ@BOXg}oyt!&dlgt7Y+K z!^9YO7It&2{{^Iui@kR3Ik24vDQJRt5hP$4lq)eeN z4KiT?51^0ylUz;I5f*0q$~rRL#(&s0esXa+1-N;*KT@ZpC@1n>V9xwSY*ec3!a17( zMxp#$TZJsZl|(jSf{YC@Gsa-^5&7|r8DOIOd6#qIoidSH$!);3@au^XA_rDXDJ*Tr zf_tYbNIYUxT&QRR8Du9MB&iH`=+L3VPjLDyL|Da$u0Q$_l)olo3o-HMpfZ}@{`+k< z-Qr95QksJUm)4mLKST4mf?PQ17$xuBtkDzb4L!on|MJ1_2ccNO&x?~Tfy+NXkX^!p zNOLtpY5cgKHZ%4O60tGUxeDIu2f<%qMh8q|9dF2BPZSdRyURr@zOZ)_wJgE8p!o%0 z!`|)bHOJdNQ?Z?GHQ3c(Aq=?>wy$GrE-b054bvy2TO!Ej?_OWG7c1Rs*zKf>N)0{E zDsk35F0f?2Oew^*?N^?f1N-IK{tGM7F`is%09CW$d6?e=E=x~XJa1xIu^{^|5gFqz zhpXb@9o2w#Ed;Dj4L8mQ#khWsCH>&9qEABvLBEYIYjm#7xJv|{(1VfOF#nK907E*( zLez3NC-ZI;8T%krB719O0;uRLdAl83AT{}>3L2Of02-9Df)Ml)^n@(yObu&EYk0#o zd$$pM?1~b%m$^7wF#U_)!lJH|qjgZ9@>>t=4ExPzIDf~t{qO>EK--^B=$G*fa)oQ4 z34kc4>>l%LYN~K^%b0`GiPynm#BP!W9aIRu6=3npee6y6H7&T#7op}fJ2XP z08A(@##ZZFa_`7XB^ST6Jbup^I>Eu?@z3nl<{viMk8Q^2i`|VTNY_w0A;2IT9ZzAG zbCxO#a9LW9HZJ!|CU_u=a{vmGm$`l@Kvm|Q&svshQP~f%I96KhPhkM8f2K#F4ZBXo zf_!Zu>p}n_^{SqOZd@xj31WgiRXRlm+nghvMDu7l4~ND6V?VK3YtZ(7EtC=$9F@UH z(Qfb=QlW`r^U&kt*);$6QyMi#DjdcnO}%}49!}5e_33{|?Zs(vJWc)2^E8OHxEU`ex~Q0Cpq(3^=FGM0 z*I&cIIHkETVAr#2E0>9!5u4>W$UVAvSlNE{{3okkK&Jb-u>E&IgB~aIp4ja5Gcp|v zMCzSCHgk9^WaWpe>JAlDexg$73f|&yWqt8_j&=+Wo}2wo2|MUg_If5(o}BuZy&yu7 zrv`b7;2FW*!{^unw!y!cO1~VD9*zGbT@OCf4dJF9O)5wx*#$6?rr8S6-_yUbEB?yx z!w+*7K{*1`7`$W48GmAOJ{JiP!>%amz^>{gjE2r>tdBfCctD&At)lB8w;TLNH*d@Q zdMnPjm6f@_+)8f1eH_07|G4RwIkY-|T#FAU#Ua{9e>{pdD1n2Ye#cyL4wx z730BwG~DwJvCkD$G;niXFF*z5lE>txHwG-9DZ)nvKkdbdU%DnxsFD-I9>ArO&_!obyxw9=Sgo-t(PpP#X-f8bahc+(e09#Iix-#JWu=& zd(^*g#sPpcvAs9U_0u`uai-STI7b{nfTH=7eS2P|(2fLM9iYHDP7N z?sJeTHluOv!{Xu~rRb=ro7lT^_Xh#&z<3Hjr(R*|9^Ib;=N3N&xnRoo(^MBm$A_I= zmUxpRG`J<%v|QA7wPw+j7F~*T*8n}N2hWYAmU7$G*P!7U)OD6w8Wj(){Jm0+x2+bT zRXcnNLiD=78pa)Yw*>)64%oOm!1-jDp|Cg#mHm77g6X|2%YTN87d0kT|K;K{NsxhF z+&jVKeP0e+40?rdvAu+nH?^*y&b8g0P4Va+M@`7yWVqY{O)&iH9T3@w5`d4A#O}FB zQ~w>O{(BCuw)W-3eAPWIzVgz9yWxFfb)G(bzRYiA>0<58hQoC1CKud0f3|$*)XR=4 zvOE{Qm(CX2ICQPSgpCbJH9^Co&U@dOziX!q--vT-BrhE*e`C=7z+#%@(#_A?dLP)_ zI(%{G^T;!9O-1$d_xV=r13Kz*`eSRKs#;n^R^o6@uWC`&GiZ<)`S8i9Vg69Hr~=hj zX@amtNn9MhkRtFm^+V6LS*9pVrlNP11vvzwIlD7nqXodjZ!=G+Ceek&SkE@h5oWv& zsz|57EmmAF)HHZws_m9p#;LX;GrKh$930kc*uXC&B;?&!v46W57n7$`d_m3%ep=aW z!i`p@d-m)>>qKo!OUta~lUrxyGG6nFT#m4Pur%Uqx$TR^c^J_%SoL0U#_z|}hU*A0 znhT0BHQr86^FCci=4x+)HfFiIMA|=;UbBAvB+QINv^;tleE?*r zMA-AZEau)QR>L6=Cb8C$gDN3YMkz2{*D^EJsOc6YN85vYHpCfErf9xCE?t%ySq2YL}V_&rr^v0V+@>hxp`S|P#gq(80l&%5q^mB$qY;0`Z z)z9ugsKlm2z-o5+j z)2Biw=~G+9xK>Yn)0d&PY?&_ao3?2^{ge3kASY~0>ZRQkU7yZXvC3h?F>n6-JkYvc zZ0!Mbd;Z+H_gCvxtx#2o3P=OdCzn`t0SQB-SRYOVa<5k9Qeo*_JkyTcGnc;d=FMYx z!X10|9D@bw$Mnb*SO;h2$o~atP*f+clS9vONOYwZE?j5<3b9Et`p}D^Ygiep4VJ@- z(azOJci7kj!`LwoOpNpBDs^?2cy?_@1-8;p*XJccgLFb5l~XrQoX0B*eDkKH;euB~ zLqlad!zAmHZz_U2q+YFn9;P}69vym&Ir%Ag-YxvmB>YkDHcVsnKoJdfsD3LOW?n(E z@031e9ZGK>V`mm}(MLnu z3de0o<@DGl#-$l|=gyrx^gAziIe_5#Sw+QE>{|gq)^pMFs0Jc}U}}aA#(rcfAYV&V z$r8=)9a3FCI&Wn@r@4Hg3(rI@tWOgYlb5ev>FDa}W-XWAg*)K!`7ig2&^9j2JM#p( z@-)3r$#1elxU{UTtpkNr7Uav`m0Pw%D6Gle-~Wh!W_M`sfq418GFz*$`nHsB zpNP`;uoPXrx=)enCDx<21@r8&uY3k=hrQ*D+Kk~FdB+sErE+E_f%jV|JeijfRphBS z_~4KKbjt8mc`AW*F6T{d)$r1W=e=+tJH`QRvufr3vIh=*6`t8zsYWW zx)BV|jSJT9iw4Jcbt+FqQ3frAojZ@_=jXde%(+Ut?hV0R%JF+T_t6y(&b9UBVGrG; zZ)2FVN&=}``G4GwDo=%&)*m-3%heddH^~wsCtk(DOo-vbR22}Qf&N0u8~-qwigSK+ z2UbKeUY&tmT<0MT{N`E}#;Y2SK4bCEKezHes4`)4z>l|-^dLvb-!JdSIF(tv8>4gI z;>X{9!GnvND_|UEw+i7@`0ImzxJozu^@h>DXbfYB3BAN$kDI!PpYWZ%=FfxL!VQ{fngnJhv=!g%4$Un&ngD3{z#?~(-{NN(1AD3q0 zKVW`H{v4!cSIm#$Ki|MvsY(Mb`#-MiS~JqAP;As3ynqk@R!ZYIoeKGW{^zGroKF7t zQSG!q^*So$*#+GKPF~fJrlc{C4)HK&n?|bD7XiWg`dg>%l^KzsIMdF-$A@uixvZEe zU5O4wtdy${640>hQ_SLGSGxP&_amMBi_vhfCKUvYn$b4ST3O5M@^L+L^O4d6*NZr) z5^I#Q*Tfi2&=l;db0J@4-Fm|;yYFgrJ(!{a2tRgvO}ug) za}ooixovdb4JjI%c{~+*I&N-mID;in#4Z-@j5ki3L;NlD#5RFZvKY$e6LEGWLP}h0 z2@u5+b;7rM(H+^HrEv4+%@#DV&4t9kzS7W)-u_0#@TBNb(hMUoyy^X_nUEx&zkK;) zLXS;)LvkueSv3%P`TO~yXP^X>8bT-*ZqqN~!|*l)W^70e+t<_C6ny#e<&$%_uZn0uef+48 zkB?{6b&YI`44nP~Fji;nLD99>HBKTC16`>9`jHO%&zE9-D5s#|CeBX35#y)tFH_%g z|8QyAzU?tj+NuNO@-2haCZU+t@S+85_B|Qs`W%%4Mr`}_#!4fw*uI;nCz-xc)(1!@ zI-9GJ=kzZp6iV>N(85dy2TV+m2zo06Idw|AbPuo5zkFJR@i-j)#>TKwd)q-U8seY} zpoqX!T)3g3!R2a#(&%lkm(OKk_Jjxxgj!o(C72#&jNF|tw?Er_-bw7ROLA|8Tk0<=tH%D$I(ScDrTdND2)L2C-%iJ zp1*l>_USWcE~KR?i}&?eFZ})Y-)Zjn`59$6+o4aPT1!-uyA(O9n|0miw-`JrBTLqA z-YhtK_Uvb+rOq!|SP)+K5>eDh1=qx)I``-r1A}p3nQ5k2LL2y(Ij;U2%afu<@NJKw zgS-+n7B^BM=P^{anKWV7Yn9WHCCNR?K!95{i!HA<>nmTZ2CNy3hb!)(*7SaU=y+Cu zvT$|MBiR6cQ)e+6LZGI)=;JwC7|H9&g$}#2mNkyYRw`hO_oD!!XV=#&8bTsHr3H5z z%+l<)&VnI5-5N-XrtbBdt0;V=w}22qTU#58@e9oK$}JCc+=|HqCzQ9Rg2FnKBXrRl zH4^bq%RyduQH*^x+9Drt9X%=bhLsxKvo7vg-d1WNHEEaBdtR>qyTm~7RL2 zUvcv3)*ke5ut1Yx4|VEUS#wk>+OMOd<0Kl@-GJFC2G0U&6g!v?79jYP&#B!dB_w#2JGNK+}R0SZsF7COoWb|$YBLjoyA3Q@P z-zK+jL$77uw@w$$94@C8Vja5eq?mh_ysdBl6D(u<3mF+1kHo+10BZb~P!mUzz|@^q z^ywB#%MkVr1Us*`1Y-;Gy1xN5X`~fv%*?8`x*_L-YL(YwG}rJ(Jt|AjqSoh5{Eq2%JYDAuK@SRbl+n zky<6&p%Y{QN`{vA4h?g;aoXL*qu9Eqtz(9?P*hVA<0U*0nDXrOX<$|xk=G;On8pm) zJy!eqozytsdBZ4C97Y03$XxlWL1pwO2;%n67u5hD{84xPcpb-VH?1pq+wFyOc5{2( z-v{2GcBo{g@GaZ-_l;6*-;1sr%4klhRrMLk>Etstdlyx1nA$_UE2p(}x1Nh-m(EuU{{L?0?>Z1s~HVpqMNPY;5%oo(cd_z%Pbz4Ir2yNC)W$%+iAgar)!m z#lPjF_}NmRerKOjzKQ7l+4JY)jvYJpO?DXLHGxvz2~+;zA_I`8f%&@uTu@rxmcTFk z1riJTADSa6;6u7~754dQ@RARI8kRrDp1_Ff$gzGDB}FXghWQLmkVdY-)WqoEXaS z3HCVO%+lyrreJBuu3i2xL79VHuo_*;e|Or*X!21r^csko8ePTzeGJL}G$JC=?mu2%RiO$%tj^WDcNfA}>P3yZi-gAaG)`t`$iQK00S2YrGaY_9 zGN8nh6n1`haBsmZvnsE@=%*x*p!WcjF0d5ROd@g$2c^Drgrx~JL_rm;(Cwe zYKhabH^_-;>zD9YBoabHY*y8^J*0709K#PSaB zPLuM^Y7Wr?Li#B1TorQx^|QYBB7I_xalNZn#axjp5O&**b|`6&lBv%MdCPdl$Q)bo z?97ECL9Hn47rqhgk^IL^UxxvH;B>Ozi-PL2XV3W15&2V+2f&m>M5O9bHBfOoJwBr- zSJ@Kelne9f>ieVQ0ulbCmJ}GfHQY(W7GB(Q0J>mHAdD1&UFa4u#o>&tRk+Y#6CcF*J+(XQz+@zJg-OZ0u4>Yg6hym@o`T1HK%uKr+0?R>dT zwO%Ocf)Up2H{BYx9Dz+D5W7+UO2rt9P|2ed1DB5>0O;azY2cs5QG)uaE!wwJQVK5W zg;}7p&6;)V9M-y6UJYyOPVtzL{c)@G__|mn*N4lBWpbl4J{Gye|F(Yc>A8NdH}i6H zUDNnGbi|fW<9ev~*=FCL=lG@cLU#=0)(?8VrallVdC?)Ur~Xk1z$aayWn34oR5r4% zU#SdwX4u)|o8{T7;QHAu(?j`kwp#m#dcO-zMb@T`ZVTs4n7UxMt-8S#c+_GUaeYX$ z-*fhq1^d)5smi!lRpjDPt{!gImK1)}wEs?Yx2cU;(DAl0Am6&So(3`&3c#uB>00}} z-@95A+`F3h_KT;XM6tKueq$kyZSMWX`sKm5Z_1hR=9+(fS>Eg3{<0jm;@SVSWM}(} zl6`e`pZek^zNmjtpHg>JqG;LW!q6M;`t~i|PhU93yKoxL_;xP-&etQ+-N`mHSQ#ai za^V=B_Fn65S(#Hq#Ko6|F6tf1?Q;ktZggkYI`>)$k-CbGIHyb*O4Gn8jw%O_rTT$L zpDl~qtaj5NIz%YYg}x1Ki$m{tiho@@>+9O7Nv{oGcONa>roU6>bMjUj@>GT0=vBp+4p*BvN^PR=jrMTdY*Lxw6n`;8%_+vnEQLM0-czuW?1Az? zqD3B(N+Y1a750y21CtCoxnR$x3eTPf1(*RZikra9u$rUuz6AxX=c0!4Yk!{R?mOU! z@jsoEzQS|`JIEunarhdewzTGph(p587ne`MK%TV+?93K;m(-@;;3&&**@p&by7=6R z7hTA&%I#EcfQSS|EqNyKBPy!%z#u^0pc8^Br83@^9gXelBSpy(18LpxLpu= zMm2?U?M6UqM==zx6$xv7J8Xum^owha?Te<_A&$>O8SiwHLC_m?78gJX+cl&8rp++~ zkWy72G`AJHxCN-W1bp{@i|L=N(RGiv)nrw6CeBqt;m`|! z`VA>TxKgc{{cUBSprUNmrA2GP+WdWQY?xY`aeq2%;&f%+q$d*_pL%aF^O$c6`neLE z7N#oMimp;^$#stiKP}SVRbYphc9KKk!rM!u=UcDW*2b0MKJlAxBr}0r=zoQP^geQu zjulXMcb>ZMu>v1o%R`xXZ9LdBv&k+HInd2Zh*#&1*AJxGZ`Riu@qN;7hX%9etVc?_ zAUH9K#00WyEs`pL$GrudCMXSaj~I4Jlr>R(W4uzK%MtxznHBcJRxyYXw*UFSzgS>) z%H;304fUA*!{b-^L4uY`OAh&QOIBy5TxIKtl#8W{oYETW?!bmTD-}vdE+e}p`?pW% z?a;|%jK$9$>)#ctA}!k01OuDaU|#?Rp6^!K7HyR7xM$gKB9-P}Z(9|G8YS=ExNM?G znfX^T9)NAtNj~^u`O87^rr`O#EBsnhnR%AFDzqzh&F}7=RCQ@(t~b6l?+BOUY-oXs zHyEYcw6;Fl_JQJfuUT08TjYi=Wx2(#WqfWRy>y9(f>2X9|Dv)|c<#2xerQj3 ztDqPBra-kd>8n)y?0J0vRfYU^@NY z_411PMBrLFZ(jsM;i1%U`$aX}7ar{tiJvb}bp;&#V=c&M7mz6n8C(c~$2GG%T3not zeD)uMi{!MbXY%9d)}3e7I`-?Bph~sM+GjD|w`Z|nV6;`{{U+UFndoTo+Kk&pE;)SD zR_BU~Z^RBBv8TzMr4lx5)TI4o9my$~v(rAFw(j0vjEaIBl>u43;Jr@!_HaYioOhdg zX7Z~E*`v}norv$;n=G-)5xPX5<^v)`9qn9T zP5eNVT0SafE4O33jzzsc-}RBV$yxF8^a??8?3j@WQD4nWuu7 zPGG@qBV$Y{@|9touTa;!aK+D$-^^V>*zHSV*L&UrCmoOWhAz>NSQ6-mW(3OHo)B+gaY_AVw$l*|X*5m^0%ZY};8E2P z7#BdYc4}a}p?f@zE;C!{42o*f_-5AMZbs+S?MDq^xBD7F&-jNr-pmI3;ALj6Qxz<< z-C?6}411xHbF;ZSG_rv;!5Zo!9~R#WX&V#2+TQf=4JV}|;qA2<(U=r8Gw4_j(~CdQ ze@jxYyFGfx@(9^uU^ZUHVZ(F#3Kbf^s}1k5Jll&@LK~aGo2{b@HC-2?Cq)e`#~$l! z4g|o1(!`6U7_iE?Z%D3j~_oyT{~Z%v#w69$whyvs8&LdZ+;jeT~iPo3uP*_Q&MJDmO97;6{_pz%Wtfgw(iyb6l?S;R>>;yN{Qe|wZ*blE!%Z}L|+Jm0%mo5 zb=5kj`>qfrES)RBS>f?jR@?)-h9EqqfZ|@`6{qG*BNq{xtdaPo9V(K!SjIwVZFmf8 zx;F81<<^^5ZnTd-C#CiwINJZhuV3Z*5P=r`W?~Q?L|${mgj4gaUrX{mYgllg?|ZQ& zUS=pTpXt!C7H!-f_1g`T^aTfobuN1C`f!tm-ueIOieZwj&kf%Tj8q%KX&4F!v*bPT zxFE5Z+cZeO`bU`Mze57d3xRGfhqzN4xN6pN4n|Z5#Dj0!egSj}6M}+*XjW!DDm(+< zM^-xI4Ur*jKygNf9aPB??Y_tBITrp3!Bo!yR4jt^-*X;>0des$!m0vrqcEhsbIGwO z6X$L(4upx%m8f73a*jcY-q&4{?YP$(5i#O&I$5-}2}G;x%2&*%hz(eS0)pT!c>hem z))BxyO_5v*phm!sE=aAT^rZZj#m49nn}|}ygN~L{Pu!;$tF}EZ zg>Y0`o6a@F`!!)P->u?%HQHYqw&3>V;e$iO3I&8qT{R;8rC0hS#37C-qP?vA8>=(z ziH9s=_=TNj&}_FH4|bQN%@I8}1EDOKEiO*mjB|lXB_A?8yNwDiOj7YT9D@-6L4vC{3nY>F(}! zhUv})%mwwY=XmpQItgPZvU@OEk+7HU_U$8?r-I7*#hhNNMljyz@ij;NtN;+GHO45} zStRYRdoEj!m_HN%{&ZCB@pkmY#mnFT%IX7UOp@>TZWM#4oZsk_eMVdRc|}Eq%VWgF zp?*sdu(-Kb%6Zf+FTyT=m(qmIJm35`k$!h91wZArvqpYCj9yt3F!Mk#klN1qSCIC1HC0(&_uFMs<}C`vVgu7?~6i^9p&)&^n4kBGi43N z9(4zB+f=7jIOXH*a3<6VHxYSh!hyR1N)(K;kGJVo1H0ExW6V7g)RpLswtnSO~f1U9~5W5~N3x zXfN}%10oYDURBGOeOs2|Ar-aXAU@a)L6QYfi?^Oa-8g%XW+QCj3VkXX?z6phNFEt0Qn+X z$F-6joNXzf349TT)<%F6+bNDI$$nnPmUrA^zS9n{Uww zsmKs2!WPjUQ;V9rWfHQpTI|jHTft=OD1C&{4t@Uoc`cMtb~wE3A%T#@tkUc2D$o#4 z?uSu_B&D>iAcf7_xqJ7DzGhzyNw`wj&|P=N_M<*k3zxEG>K%!})6hiOsul6(9GA8; zRgqX~*=@=o2*$W~JrHSZ&487Q!5k!3wX~6ew5i#vRS%_=|$bglIPB1pUy zD?wqhn(O{nN=`Q3-T_yUclU&!tbR^Cs|+$U^kBsgR(-Bq7Cf%VImk> z;t8RF7A;n3y>T|KVEE!6=LfZaQy}`kUkdq8$`Aj~-_4fP@DI0r(b4HY!fsK{9rH%RN6HD!k&RL(fwAj31 z+lJrPFEz2Tv9gvH7eDj!0~;*Q8H+DdXZ?tW%(41i+nS=d49NdjqUEDbQ`A#-m0ddy zIs|prJ3Acw`i$P&sIYX&N|UX-SXUn4tlG3h@!-Bcyu){dDkY^@`h@ON<&zRvQM)I` zWPYQ#%i(=$lqO`vwi zy@9b~)yK4q-@nzNuiW3$QY}+5w7%%+OstFfpTI|#%V$mhgPUu19m~`|5?Rj6O#gh# zQY-eUzvr{f?4JHH%_CoM`tJhV8LU%(Kh8SCe)`Ae3Qe3-fA`?{{}2EF$1-^W|F235 zf1+vSx?vZ&Gc_q|Bk8WqzEWTMhWiTzEDQQ`zq5suL|vZ8yM@u=CnOt-zg01u9T_3F z9>~~l$&yPLdZXbMo{}Q5YURq-I_nbK%pj4h?=R*_+O{8zDl$n)Z*WpAkJ8XObt>|g z1q(Vx$HrdEkB4ou{D?Y#Sk+f{s{`Je3HJdh-wFPW%Nv+l^f1HpTyW=9; z+O=zAiak1RY3Y?sjQ32K{`m6d?c28>-rQK7>NH?l@6z`^vnO{%!hL*{wuqBbm|r&W z(QCZKv9huqJEl9Xl5H_U)diB3ACzFf6ohtz{9W)lVLj z8(nf4{(8r>Jkr-iPT#k>?y#A)EBQffT6~10P1^@0-AtRaDV~L~Po7la)n>Y#v|gD5 zjU`4MRq+82wUbZ9m{mV{pILIcjFIE_RbG5xY;UJsPY&Jm`Gr{l50!-+9~S42)i#c& z%{Z?>%Tqmf?wrl{rX6FQ#`5LkFjjb-LrS^&BmVU%_ZB*n_Rb?sd;GWK2n;_uP6yuMkA2v0O6;Th0b{!eKT)b9XygF!`bw#qVMyf@< zPJO0rdFRLE6%6-5Wxpjc*RIW9xM&fP0&=JpSzT$nb?Fr`nvBW>w@2q$**(W^_WURk zuMQdSk4o&(I^)i88VuPOJZ@d3rRS)WUT=3l)21!luB#>{Humjp9gT^)V5j!Ax-Px1 z$n)6dFAlw<=M=O1jIjG?Qf}Xao;9mhDP6g8WsjabsebG$#ZjU4T3ItE;>lBw-0fV!yol`$*1{A{_c^ z4ngUIT{WqiUYvq9U8&XW59}M}$VBD#yt=YrwGB4dG1^z6m1Wmu^YxZid%b<5@7t1< zi*!=F<2c&uo>|8~fB)!?UTlQ2e|u?|qTL;~e5&8Q-`zNTqIT_-asTm>v9U&Rx88Za zi#IJ_Z_Z9-ZTiGX3yqE4gV%i^QWJkvN>JYISVAr%)*`!iw`_00g3PbCkG?3LC=VHb zSgr4_>$6Dgz{p@%s>|>>*A|(^{X2JFfb1P@QS#NK5yT zhWwa>O|h4-Tl8>WOUFenxl))K9kYC!NIbOFxp5@8J9orF_Ip07X<4{Z#1k19OWCph z^1v-;0vCztJgka8+JQ?ls}lNyh^$4%CpOuE3eDKKxPy-m$D79-3K*xmPiQGADe0t` zTrb|%vP8DORFPPt@o{=yhnfCJ;L5f!dSf+gT1@c+88f`4y*$c)u=8Vt{8*cYwA*L~ ztZ}M+kDjhm+aoOE^0$(Z1ic)mHr!VkzL@}tY`?NP*yOuwF1^8-(Hi03eiegc1Kn9YZ+qy~+RlcJbaD4#)q$>BE&uI5yaNIPDxx%m&(vk?53qsjY9~hU z)VsT3FvHrnA6dHf-FJc{O4xTF;}DiR2CLMVa{T#>oW5cirtDY#2Fs@Zb@cqjYkAm;4&-YR?>oG{)ilrSrCkiNbAla6A`SRu4E6p0R9S0he15%Gazrg>xyu3Vqt!Ct<;E?fc_2-Jj(yE;@ z{chg;^>KFgb{lgn<}lPXE;~EBGzl71BTcWfjvpJLR}TlfeZMGtgxJ1;H>*P~3A%r| zuDo8Q3MzM`r8?NHN9<@?3eg3r;Y?dseGQp0neC<(Ys_9;niJN{&bcJI&rD-tzFjAc zM|z9H_v2>pCk8EI`nh!hCtbfkXTNQvefae0m|K7RaeVBx`=~O_5xys>SboB#<7gw} z@B`Z|-&}iWNiPFV4zyPmL7Ng_F2 z#n&J`Cz0vZ@e<#TPkZlx2Iez2cC=ER&v-7B3S;(vRk=-Rb!;E<}4OXSSHwzM2w zuv$H?H+h!Fx8tgO`66ajab*j&j)hqlZ&RK#XO3xQ>@6r$BW!_O?Ah+<{Sh|<0)BC7 zcxt3doKtPOWkRpT)3o#W~kXY~Y;Q+8-xae6XDuZIM?EKv;8;e)`&d zi_ABJIvPdA#fM?@ca~@#H~?2#T^eE|EbDa8GIuyKcOc%fGV9J)Rq>pMot@^7A|pNP zrB<(24(R`O-*U^4+z7oVA=h=J#;Kk}dsR)(FIK`rmG*om>e$g^_0S?`;P4q*;tuzT zkw(SW!49A27#SInbp{Yqe`B>q`|YC^a~@}@-QSYg9{ZSoRM)(7L`dGv#pG$bx$(sK z=vQ&~>kkv<_3u2qZ<(tNm8r&~7ujW}g{T?^jce8<_t>{Ry3_vINBqgzyc)Lzvp#y> zgl?97PZiYiWuzN1==C<`YBd>WBM@`*4@w%lA3@9t5#l`cpmgX{zkIw zAkA>yx^<@C_tzetX*b*#G7+b+G!&}cEXWhHfAyMG^5m2 z7^X#`(9$-XN)<6#oyjGp-PxUOO=?KcSqEGZ@&NL)Rk*w|1?HT!@BY;k7b2 z1U~7W{PV1~dd(>a_D;i-*lyXz&LtE_?^xA#VcrIlAGXkr(A#21s~9;Zel@1C9S(+h z><^@EW6!FeIB}xY*?s7{!67Xz<^G(Bkcr`tXqTS*PW7u)Z?_@_`f!bJb3gq2K{&6& zMYqLl5gu}3)3W~dt}OP@v$L$Sw%~b`Y2}W7{Bq^M|*EZWM#KZ0Frd{<}=?$kuH*HF)>S_MyYvC#>nO^n#s@1C> z8x`H=aqS^m^U8;}n&D(>YI>0#+c73Fkcl`ag?N1k!zDp^XUoDu>7MMqeqT!$MdIVS z^CsL#1V)k`5=>vJ6jLdYr5`)eED(d!X3Y4Itlv=)b3;9Ndkk#AC9%x)MIRb+oXyt% za$g`fc)Z0O5wPT{gPPwbkhDukkvm>ppkvUM?@M-#GeB$`8Rq$UaJ3iEmw2o8e_Kh16QNd1o zh-I-YQ{t_3%0Y(Jj<9E6l==gtJSEw(ii`=N+8XZ*e$t8VG59I9s^ zAc`azv8+@7Y(W{<;(H5hIi3wv9c8LK5-cZ1Ta={1iES*b4y0Su_m4DA=s^SLjAg|>eR{xsv{@MGOQ|%kaFp+oZ3hDSvl_?L@7=o>)?6Yt z5(jbMv$K$J7x9-JJhE$tf+6b-&+H#>MHvWgVh~ClKq4I9TQZO837b|U^@xcPDMp^> z$I1z^bb-bp&tT{7Z6q|})pH1YnDAndM58%Q15b0jW;UtK>{hrm{^L%b334S#KYzZ> zyA5CaRT5(dhiv+};7U!Z*&R1Vc}P2qQYlo%)I|*+wH>I`>OjnQXgYxy?S1X^?VfRa zw)=qt0lTj)4kG~wtWOo9$!MuY7tOrk_m(dLwNyx)J`O)-R^ZLU==FDxa~or{;eFLb z;(2j(b;n3nRgFA%0O-j66}zvMA`Xuk9~*&sXs#0ztHid$v$``?@95fTN91W-*Rvn` z{wZ*~<5Qwz@Gu%!{~=^$TPz#mklkJ$R0<})gb98hBCoHdYkOe^iQ z6O@U>4ox99j2?JUwu$x6w!DAVjnH_2*j~gzr6dQ+n;7dMUw0bph%i{5NpTmike?TAnJ%yIj4nU{o;fl`*i;{yrqZHPgu9a|nm z!DF-`VHd4 zBVFkoT6v6HSXEe1&=MjXNNp0F`dfL@TFtHzqY~yN^ua!FM3*G+@Mvvjvz!1%r6|(rw78svrYrfE>Lf&>6Ak+DFsO zV|s%%CW5YBy&8U?qb;QNqv=S)otrn0Kn0U4V>DMkhKD$;qZ3F_$qqLmm6551Qa(i@9^c<@V+N~JMPPy+`ic+q9K+X~NSwaE ziQJtN$`khdV~sZxt<_p5P}PweYGUp16tGB?wrS;d(l8#EnN0;28Ef;n{Fq7A!lyzG zk+8jML$QnEX6<*!|1~_1+A#^rQxvJ(EN%uc^g)SN_o19CqqX<7uzltdifTFm$mNie zQzp{s1=53vevjQbcJ9ikTi&Vnfvd(#%XM1^D8#a@yvJvx-8|0&*RnRRF@fMfDk>`c z+Z__e8P$2~aQAH=D9U5r`}F`^@)FX9;LbQ6X%NTk?yR_F9E6qg0h9RL%_S=%`Law2$d_|nzS?b<;I5$ zefc(vbPmBN!3=MDu=VWD)#^d}kk<*uavMifqf*5Yrth(Kb{)?GB+L9#7C{FzHNW-^ zr@*B1x2)ICJx1`C`&-W3ymv2VprhJLuQtayJ=3;hkrT|Pz3bpd`uL&-T4!bu?hVG8fU{oy;xl%%c*PS}E^6c=)hsz6Xm=nz?p- z0&Ic~0+On1$G#NDzEcD`*|u#Pe9^6kI`ks|fA`1p;Z1th&YrL;`ypzF8gpG==5|98 znE@zp60#tI*3X?cFJjy+`+^=9MM+$8W6`_bWW(~^6Gj+_e8n&$V3n%GnHmYT5INm| z6ojfsMa>BGR#c>k=;6h`>Z07xh_qR=nFf??dF)YBmlCVU)xi!gGLa-h zr{WOMz2=8i82EZeUuU&Oa7y7dKErt3th6_cnicVD<cRWz; zEW36K);&|C?o$Td8=IM_1CM3!8aZ?dqG*)^z(R#w`}Z3e88Fpr1!*>Yl?b>_@nP40HztiNr+?Cp2#9xN&GR|(j|sU>}E4*$-O7B^+P3C*bB z2Ljcu!6z*fc;n4yTg^BxbF8^je#g^dM)Jen=GRiD2FI#HHbO6#b;{4Q@_%2;6+5}bbwsR*Dc-hSlGFRBl5Qr4hg6< zwDzrZc9zXbUY0+{#bn)*>Sxx*kd~)~Cu))OyG>*i5 zxc>e_zW=YMr9L|XSkQY$aF z#%$ayf)P>F)@IF`W$=0)Gj>Znr7ypDKEP8^QPIaAt7lN@E6k->eUc)t*p+y+dVeeN zl`9z|FR>F``KRsUas!z<|HS&S)}BBwIj-JIVn*BxkTBQex;nQG!*iz?6)i#lCn_eU z_Uzd+5`=or=OZ@J^y}MOBv?fn9_ZQw7y^HO{5VHK&X3g>$L?B4v6gpv$R4>?S@I^B zMXjZRytsaLZGG3f#0PD5_GDAoCriKm^{|qQTHF~cL`Wg2v$M0buUzEW(3hM0 zFBzMW{Q}nFs|}BW#H@=u@CS%O2Oxc~!CT$UFH??P%C8@re30j6-jh|m;)lkvWCl=3 z+%=Y`8WrVkIM$etjXiq!sNjq2i~A6OHXB;8O_t1q9N+opvz&R-vh;NgvUnNU<@CsE zR?`z)_60dOj7j8So9^7=oit9`#l-sgd*xXMBTB4=U)Yf~ve*8ZA)F)VkqOp<)l7pd zzPlFeozE}KrQ*jWehrERY7R`0i?+7&@xh+a7P0V-owc~`d*&4TlV9ess4dnq?~ z4x3)v$QhRA`CyMItLk z5dJx}96M>jWg?AX~_`1HcDa^h#m^R7-X%*Ay8E6GIJ?m>=OqU8UqJOAKEC^vT6D) z#U8Y<5^Fa6{^ge6z8Q$}*++!1mM)pu?d|Mx_jWSwGM~9UV+HfFmRCXsStAm^lI_Wv zuWGjFx26Kgf-1;@$epCKQbBg7Xq@&-&80NX7|7tUJ7}EwoP=VMu>_}nB$UP5n0YcX z{%20UQ>1lU^q-?TcQ$b@UH4PU$!Boz3si_?WF`7u%PK2kNnC(k)$;u9MFm@a>sF*$ z1ZTb=hjczs(4(Gg@51v?L@`gFJ`LJ1i{ihGWv%}}wUo9fX)za6yxd%h%OESO>@|xw z8@bKDN!QiY8|#S%usA3F&Kjf?!h7^mSMiAwyFTU`@P$PXkTjept{D<$FTdzC^_lPJ zn+(;5%)Rc{CoAr2ZKigS)jG_^$7a{EQ0gaeuJ{^xFHah)_ZIS)YvjtlaZRfj-~mQr9Wwr{+mgy;l?KW%&hCaP*uUmmyg)K0=%dafqKNp-HvH zYYa;4=s5WWQ?FTt*Svo*EzU<+x&7Pc*50%5mreU)6ZuS89*ei+zX7PQv01C|j@$`^+Jv8x{ml>?#R_c~vM;p_(#VDlvSi8n!bAS34Z3)Z@|?HkPYYXGlTEY z!_(J2Z!6V%DY0JLjwxIbNkpKNb|kRnuf*XWUxOFHGEv^EuyE`tojdI{n}G~fj#G`s z?dJ=T=kTyE)!Rj6MMxHVlp8!_FU*jjM3!5zb9+vjhe3QMUv+kE#Oq?_(I#4Ejg&^Q zY+ML+Sv>U_>co}!lR?mI<^x{XQ6ekwfS+>w2P?NYPH`J~1MGH~GV5_^2ztOzOMH&{ zJj)=}ughC=FV65A2slPIW=4N4p_bqmOm-eu+H zTF!y*rwbco4MT#w#^)<+hk$JNo8HGJ_N7AHX)<22weMdOL*&l3v;ls%8$NM(%nk58 zoK@+{$F7yAm}dqH5;U8hRzxyS5fl4lE10Jzis( zgIEEpk2Do&wwK7EEN!QV99}w7dWYrvT=GIbrp1iLJ-isC`Ph*U!8)c3yYf-uY0?2+KmwyB8sVZtELvRYbxcP~!VaAF0f9caPUjE^G^E+7GkS#PU-`0Fe-by%ejr4Hth#Mlp1^=^?;zDAnAnElW%@O zIZ+KvxjQSxbTbbQ4-e}kow!Vj0B4(b%l5t7OmKdvmkl^^P&5KN&been*a^^{S|+RaR>0#}mx9eca>0?7H(?cTJi)=fr&LJfKlXSJ(Du zKWQ8ET(aF^AD}eCO_B)?2nf${rdN%mqHgEZU#5KP!Gm~Godad$FbXSy2icoez8H*z z(hfa`mD?%KCgYUzt=};!XKb)mC&ww3LGKZ+5gw0;3OPx;XyLEFUJ?{vv!+Qg z>9fZj#&#GrgX#SXvt^aFEDKJ2H2+!vj!LS*;bq%z9wL+0&BGdEM#{6LeS$J}CP1e5 zsH+q3^qjS|q~nj19DKj+LhfG)O2Z)?omjrjr?wuE>}n zPZU&B3Smz;{z5Qq?ca5tm*H`BGw2ro0%yI>E#3Ol+n4(21L*n?y5pjRN$FCR0~Quf z2%rx_m1=;9THwP+s&`10fIuLCmq=CaQB;(Swq0FBNiw@L@$1emh>duiHcGI&3T0oI zV^51j?TM9berbGqLoDFzn8J?7S_xICx)3s$?%7uhojQ|V--J#gPkZ#}kxIaCn>Pb$ zI@D~Y@A!2ghy>8*yNF;(hA?O-jbLHu_50BoWMtpUlD0FGH%DN33(&B@` zGfY&{b=+1y-wMIsWRULUvAMM`5OT03h#3S4k(^3sKDGSy?ccnwfGPDjBjX4h59hRY zE?Y-`2L$c4pP-^Ykmp@r<5x_Orz&DrLAU?VBZ%~ow2AOG8L^PIuW!1F%e$JjD;Hszg zeh!Je<{LPVLX5ba#3>UYK*(qQx5}|A^~v9nkWI1l8Mp={P4ndP1zY=;E7OEr%~vdN zheMHV&7nevXV)3rhc8$wBO}wlT}nzTK;nPKJp``&6`XKyV`TrC=)1Rn8#w}tJd;bv zA*47E=F*Uwr}1q&_Yim}J&05~A-9`iTScEA--kair<-ytC4Ryqfz zg0V5a@TVsnWieSF#n?V*?l1JhPGXUPb91RBi$XuPu>mm4WM)0YdVDTGi^y6tTwop| zdBN6nYUvh`1VXP&ZxwqsYl*~3ki>bZIlBi9apW=YsjGrsAE9P!oOSfgF0Wehq%PnH zoc%f!_ffK>NLQ0}22&UgHM4X{QfD7+kBIc_+Gdiam71|AbP_=3-e_2i)oNzwiccL& zYVSi@@)8(9=gZ)(ZiR$dR54P5V}A=?DPR$MZ8A2IC_$) z^Jg-1C@)00`Y;g+A$Sr}AdlHh&_!t}wSYTK*-PN19qrJGfC-4 zexhKwslLG_iQKj2V!R@Q^*m%}<6`i{wZNk-e^hZbaSA<{JtI*wg|R)dHs@ku4oOwc z3(ceIAg^b|xo1Z|e7Fm|0`)sH6qzr-yp+mPiYNirwVWg^3jVXGZaBoP(+15+bube-_N`~pDU_){o$t%a_Qgv65V6{(zMHi8wCJK5l zL88ezwvfu;JulNl{bh3C^b_lyC*dB7(u8zu+C7cx>9bgE9yF&5y%;256sZz5aTZL) zfJnMI^HmA%GX2}-FufVP^Vtyo-@0|{tIgVt)MU6w{r@K!iqe` zQW_~K#qW>p79d~b#lI}D{9S&sc#R4F4Ev>TnM<5Zm`ym-uJ?+-rHfRN7>Dv80mv?% zDfvW7ogW|01C=6+QBx#u?!%kEOAxt)J+TrcFQW=bBCrZ@A~Hb&ZBmr)D`t|#P8F=c z8|MN9!N-|6j0Jup#l*=3Dei=SMZ`8t<HKobmB~=z223x^LV48Uklq*A zWQ|OLPk?vQYAtI&wRR?P(cvVhrd0^hH&0t+BG*#*GSXd&N`NiluAa=Qrsc_we3Z%t zykoNbZ-QC}naAdf@|u^(ZB69d$%W{{euH!g1CyrhJ!tg2}qAgRmrq5H>Z461Yc)+-;`(*(Yy#& z8!3caXU=z6yr7%<3>29JG6qkRUpsSuD zA(Mk8cz+#RAbMy;FI`kjabU7Yaqq(Y`kV#PBVbZn0vYD3ya%3cF@(|T}a*g49 zo~cuN(}9u;Dy-~m?L&Ng>-zQm%}LI5i@&GLkJD#XT$Qb3S?oXQ(YBMEhMg;K;QkCyk!cg`y=_BQlQi%{i{wf`8Na?um`s&dnR~53ek=W#YI{fiPxsRMg<&pO zJ+wPJ2iiOO_zl}DV$v#DC1wc+&aJrcSJ2s6FWf z(|4;99k7uFNAn>9bm)>(BRF7(zC8mEG*QLJ! z55*^0CNGA?VGh$ov%<+DUV(Q*pfG8pDee&BR+gTd*}bt45SzrgFTVq&C3*s?{@Kix z)Wno$Z8}`m$~1D3q#Q~Df$w248+W6=PiSlClQTsMMd&Xe4Mc#WB{dvKj%#WK8Taa4 zNsSB_k3}doaT*>2w3pd*VcyEW8NP}ymjSI!yDkOmkM%7qiR{EjNeCT%o4@5hVz5ZH z>5(iS;#PswRm4^HFVhwJZ11F@p56mc`j=Y}An|WJ?g2qP+%cWLlh#hOziFcjOAE|d z5EK+!PM$ioZpDg-LPL6YeV8>U+%`pG=_V*p?|0X*;+)zj?fFf)p5&(yY7FTDPU79Y z?akM+)_y^o=<3x`#npG#Ylovl<}{%bxwJsh`BPcL|7Oh!gVgEI(%r_odr zC}aP`lS81Y=@~3lSj*S1`f4VlUHV3*?&@CN4GV&%5c_ z(=XjivfTg5>S*wO(hF7>;U(*2*~JrwjO%YlPg-=}DBMcBk9h8ES@4T07tFddAD=3{dGiK>q6t_@L?bwEnWCpjYiXFyvvZH|Q%R7wqN^6p zp7|?kT6%grt`Wa`X-P%j# zub{KLEi1|Q z8uQ!RJ3sxi7WZ761c}dg&iBwlX`d8t9}r*wC2I%jxCkmAepA^4we&#LOS=rzRFTrN zY+nq?bTu`pQCs_xkcf$>zn3{2~u}`Q9^vj%*L3%MfwzjYwb)RmbcyxKU6 zDp-wk`@R()NLP7`xgFY6f>6*0qa+7#QZO4=~YS8C06?wRTZUa}g1G&z-jC z?chULFzeu13t)Z<krJ#8iZTWsyTDbDa!@3-uChh**%r=cJEW`IWwSPTimgHI zlV@bNA|-f0+ll!gbVGuF{4HVrJZG|eL~(Ng%0ad10ka-xznX0=l`n&p(nz(Ed}coz zWwlcmMI0a;TNu*RcR~{Q&ONo3tzo(3a$DfOd~-ReY+SL281n$bK~9;8DmeHB$z|0n z9#Yt#$(HF2ngY^L_a#7@Jpd%?`v&q*f~qHOWTguDozs~6roI7KC|y65ZBYd}isYb+ zj|=eikw>Nzoa1i=$vt(1yTHssl|rfk@pV^_Vvrpj@dd?9N@lR2Di$3b{b$<&kGllb zp0}A<*pDR41lSs3SwTvHymJ>5$u(f3ydV8eU;;xz=TO#Qr?wLLj+ipEl$8i}Xu5|$ zM_I(!7ViT8=Bzi4ZhbMuEW>v1B3^bBIa%qNpZnOu5b&gkL!ucvd3)K|zW6<8_fvX)9e z2(lMR7JJBOm6zmE_!sv)<`w#LycitXAV7umx{CBHA3?Dwz&8^V!02P67uA0O$d26L4#1VIv&*8OF>_Z)l5U<%5s=>9jE-%6Fg z(RvG?&t(~bk?^NEtEh$ zeE5*q_qVVq;Njm`z7gX>9wuf)ADsIWFYg@4O5VLA6^n1&O^L~CWBwZ6Qk6O2(^ zICktMe97c*u>qWkd7Cx+H7#KBrqmJ^rbPu9I;VvAH{a&q`Ad%)m$;cppH2Q}8a~ntz5f8eUC@TkITQSK4nda>$;934CgBiOYdB~DfmT7Bd zbm~-WXz0>T2gp|I%l)6k^iU!rJSPiz>{O%wtcOhLWTCTZ|D-4Ms0QK71VbW<6kj4fxGu@(cfOC%rv61!GaYk4;HAxcSsOt3=bKfZgj?@H4#<(8d!!$mam2 zIS@pbScsh*iPitxbn<*O{2O>~{u=#O3Y}#w&qd*m^Dj?5uJOOde+r$Ft4Rc;2TOij zn6ceqmU9NH&@?EgfVxc1JUIOk? z%$W8_91GP+LM~EPWU?X)woL)SROd-$vJP3=Zjs!wmn_r?_*rkmsUU^2L=@+5LV|Z0 z62&#mgf23v6XcQH?x=kTj0sTrYk%?22uvxR8{Mw&Oe|S{o_K;t#YjD69mG7e#vgpq%Bze*rWQu*}|%rsZ>)5?WKS3U$e+ zMGsUZ$E5kFklT}NGhghkl@||6nlVVfR05D>M4}NFykx6G3eCjz&Jv&s4rdQK!DMWI zVP_d?j|PM}NHz8!ITC%gxp1wd7H?EQ<^S=( z0Ge6NFgJvB6H)juolLy;Wm_d+Kw*K^O*SggfPlh>L50`!F93v#n(*Qj`R8A}Bgb z=;@%=fx4O&s0=hI=VAi~)pQv7MCQNGyW65dOwsR2@CwpsIR)6c=jd-nKLu&j4tot0 zCva4#4nQ5U92yncMqWT``N*tZJK*94`z-+a8>;dZTq|jr=M4IZuc7UmNvMwBHgB@0 zWlOu+-f3;u<0;ZBIYaQ9z93S0vnK?{{I0uJ$`!bOZS+~iZTghrJ~7UJV;{(XPzIkZ zC~YUur^KuWR8{IOc!v9{|7l>)1K?ORFv32~3{)D^OJbH`7M-C=UDOAi)aj08%v#?P z6pJ_+P_eZr`llfdF9pP;Sb~PcFuZ;Zh+(HspMLxPeI@DGKKUm%nHdCx`5;DaU~UV~ zKn<9=_=ENz_`=uGjp8*^Vc62(jMQqMbTCbF&N4|5DEuG*_7eNqCV*C2l@B-9YNlYI z85v3e1|w-gC4+A;I*Je&(5I(Gz`QCV>KH}I+Hi^!5yhyq++q5Sq~ zoKwlYZPt;eii7wfu8xZ>p1*GKe6-9+f1{@fFf}NJMWGq%v5qYPU)UJ=cY0|$3$^#9 z&_C&rH&0EQfC9e-E=0B<} zjE5N;L|q?mA-{zwV^Y!KpQ)v8JZUm0xii!6(#0gfMLFLsPahGE`kf0~NjNU@h*~;c z5MF|!yfIIjGZ(1B`GgqZEaGmmj=7x-76q59b|Jj)$%|0(XMP6k(7&qQl(zYTK> zawmZXKclMEv~ybTq!8YdWq@b^%B@l!a;nwH1xlIv-;2$yM=%eb61_Bmh5C$S=X3CB z;lQ_~rUV8u_e5uRUpSF^J$Wf&lSu^Pmtp+DEAp4gf*@7*ycic>uWiBPWr(q@q^Mq0 zx+s3a*N%|*@*1*a zb(A>1<5K^^%iqH>{Wg13(-38vUpXQ&LC+NwMS=-xVESzjX}j5?K)K)qyBRFwIu54Y?5UaBD6>>0iH^ zPQq+HTd5%_Ms{YB@BCtr83p<=_A_C*75y&oP0w+AG}e%oa$Wm+TYhPq=#^w36zOB^ zMk~43x@+#t9D;|P`qbKI%3DN44#i}sA%cqTO`4H==Zy7$TBSk&bV2(%jMp)%S`Ve) zOD1xWZr{~=u9;08!|~;e>_9Bnc;jLg>ichlR`kTtQ5VwSEa|6@_d5aq6pUUY{j(Kf zNjwk?CR%|73=jf=v>Gy|dnJq$?Ah=>wRGP~3KoVsfP~TA%Z_=6N7{tyIrXf6(f`h){92Q*Dk-*Te@u_;KV*BCz|ecTdf zKNlo6!&&dcJRVY#9q5R9`*w%}2z5A!4WLda3&V4y4`XD{6V(mRcEO$`pL!o)1d}q8 z>x3#FR|iIhkQoW4FFiTXI!)$+z0?aq@1x=^mLw)Td5+>oVM3d8~F@ek7y0UidxGb0AHt0f_HA6^xP; zLwIE&y!|FrT?hP*v|Z=jhY51kkqDnSwPuQw4b>v^df-pyuc+TKzCYa`6?d0(!{Izw zJ!Hu2!JqZp$F@grel5B~2JDduCy0hpQR`+)$U0NIfMjNTXPq7g_E=EmLZuGwVqEsd3PG-7IMytF;ZyovS z^KmTJ&u!tp!Pc@BokM8AO|km)Vz+(|2)~fIDp`8n0y`IkhUjfp%+bGp>((RCWyvfc zGBplt)Pak_qoHMzcQ445AX@|DL^cz4&VDN2my9ZriO04{XEX`=$rK6LoYJoJ#)fEV z!mDtmCAbZU#ve)AnO=8JwUs87+smPQ?#(JNv6s!;Q~(A9Y3}%3g6Q!k5`U-QyLV|1 zJN^wN+B2AGNU{He+S)OMJx|8mftVrW(8PiviaT!`oyI=+W$et$8~$K{L`XspmE74v zTgx7_9&1F+|puHrs4Nh`5UrI+ha+!D>%+(}hT2I;r{Nm+x`0FPQ~qW!^D94^P_1 z4#|oZ$&-NUbg~_i#8N4>S3=!FRTxYnJJOjf=|_6fT^apnLzi!!LOD0;gNR!B)ToGG zQ=N<`+QjkIw%-w?9j|KGRPTk1?F9=&>SQ}}N4m=&s@yn; zb$CrYVu(^*;8aljtIlKsGa1&5CR#?JRPLwaM%{`b)l;2p7<^zBMoj!xq5Z(nZ{h%eiy))HBXIv2qJjcQxMHA4bRX7^zBFPs-)wv(3jwhzaEA~U`24)&(K$dYdw zX%7T%w*I#FebBbeyK&!g38$z07-{cWH2Fj?Y*!c4WG@oZ0vY@PWDG+yr`MaHudsYW+Yj>v(*a2MDP6BgJ`Ba}+VAK)x#G^9P2C20m>Gve zTbyJFd%0d$-D_V3yMUwvast) zX7Eu7t%*`)6-~eg9Vn*A|F^j|r za}dpzxDS2uvc+-A?7I$ho5{?hP%x9cHu+SFw9YxxkdMa*SY(71_F~Gc9t!`Q2WLtk z(;?`g2Q3^h9$~?e7CL(3>y(pJpHyw!Iy+$t3UpN5-GBSp%6p=*~AoN(|$0YnD<7J@6hEr-x6{9a5 z#sUj$!vecK1uUWmSW~m7dIG4@jf`w795x`OML;(K9)e@t-n7Hg>pfmLwe%*TejpQ( zgoTLCw;A@o2Lxk+?yWoJO)u(kt%R-7y)%S;0l6v<2P6h6%#f>T&D33aj5y?!5N;sw zIFz9f1W%p_sVCKwYCx)xG4t6A$hn~ST#3GYl@Hffq)O#^2u$6f6&GXs-3vs73j|;u z*MsU$CbJSMQIzTx+Fw-|+Bvk?F*%$bS*4`k8m~1bS1vsMot;1!WNZw&q#m;iyX*t( zZP{h7#h22jH>dlRsV zT%07vBqO3S9UmQ*2C99rdd=VaPyX9l%YNJ9dz+QXyk$mUCNtv4OX}V;TNtr(t6xBS zA}~8?yCH)iiLr*Rkh#5NE*&`p0V#_LGNi0W5@#=YJf9-NY%|*;@0(`lVx0JU%ycfg zGdZa0wUF~(GE)V?9olPFu0{C-^byJ2K@hMAy_cLT7-uBDe(#hwksPu2N>}meDoJiv zB4ed4dL4ZjgYlt-5A^{g1>m&Gb^`LNUZAl(44D+DK^Uy#+T+|<4htb5ZH(4DOxD&*O=DC}ab%;>yB|IZT3zO>cBNiWyC1Bq2&d1vGsGYU zuMrXn_Wr5~at-j%M_`GxUso0?!)VMgCtic7yhzY6!|)kd0A|!Bl62aWku0EOJ-;*= zh`@h6rU#K}ZRlFVsC4i?Q7(^17?RkG4z3zl#N;QsAz;0%lai9^$5`2*S9e(mf)YB6 z&}TQHKq)Q+e@Pe;Dw#4n`TkGH?fPA5Thm=FC=ISdv8t@v%bJMd&iPawdSWdUF@*$d z3NU*xE5r7`@>}c;m$3nZbQM~jbasL#N)?Ot=9^)^OBaJHZlQVb!i5WoB-S9@#)=-{ zX(sr>0q3x`yG}Ex{O$dYCVv)=DWlJTntuq`f-qW9#QxW2WXhmtKD>8BB%Zn)o zEH03kG3GWf4FS_Wvc{465df30T5k;2)uo)i@iaMEu|&h&yYhd+*wS)&@1pl-{`vwc zA5&Yb=7NlK9%LM9geSxK2v7#n!$sU4_=lv7nmd@9KzLSU#P0xtklilv|ANAOta~c( zcNC88GYcp~8(|89Y@|t@q8{WKW|s&(k<6+>FCd1I971dD&eyB)G7NJ1`21}rSUo@6 z)S1+n|I^-k$8){+;p1;DorY4HR!KucQHsnH5*4A6GRi2GM7FFZ5eglY*+PRfQK77q zP-Y?`du4`<-}U_HoYNWi?{VMX@4w$3_kGTZ&v?II@7H)fujh4LPiEeFJbV~z*wUPu z=RlzVnZ+Ym1#o`6q@4_>{M2MDqL$i0kv(VEc{bM|yo2kpFRY#PGBNo;vOT+1D#Qkc z`&2yM#>uQBE`lYN!!M=_4aYg4Y0Fhl95rMSi2O;ks|+^m$b}tnyr#;`o_G(4BEu-m za^f=>3AXSTeqa(M$b#=+99X(m)Ef!KcfxxpcP7vN$TtrrgQOvail-;B0%d~}ca1RL57F6A`y*CIjKwo#-42x}*m)<94T&xLU8KY2L45vFrnXKu_1W?R7 zd3fkM7^{AxXDG7&VDx~nghP)$7MZqH{ z3bJ#YM3#yEQ9si}a#;Zg3`Jh3j##`*KgEU5XUE8smwbQhaQ{l^cncdet}gutp$KH5 zb}yMJHWbo0VF+7a{wB)T^SsST4f}JUE8FM-Wap1?b~krJDJrpj&K828>28MWJM(nl zc`yzXBc{v^4-16UMyp>KgY$}W7&|0Z%^AoD^NQJ+N>$)tYoUFM+$_ff92fK^jG`r= zSQat0QV+j|EOmEV6RHU!x5nK3LG;mUCmT2)*`auhu~@OrHT{9AS=eP%17>Jq8(m7U zd)A^Yf#Hz7%3s^)^&Tj&@BX=S-IGJ)Gyy z^2*wGT!)gj8?Kgc-&RKDs0hh_6d28JOBJOSU@n4*;U+B$Dg)KqNGpnbm}AG-eB#iV zUm^c#I2igSH6F!0Z!}koQvw_D)(YAIov@U`oqr%;hj?7jZ^1fiVL%kL*}m7I=U+lD zxP3Xc20HVfg`>eziUj1aPuerAg% zUnYQL(g1>`AWQb*LE@6_%h}b?;oy@78yIF=N-jm?|{~ z@YCGkqoKyy1eFo{#qHL~Uuegznw0XvgJb)Wh$C+sLQN$4jBf~%SY%)3tmV7HSuK1V zGJW{9EG*(6_6WUK4aRj5ih3Kq{TmYXaNXWj*y>JV_nzmRmYD0;+(IIP%hhz0kl`sh zI3TD}MhKHn0t+YI@U>Wx)G@$K`Y1X|&?Lb5xorLk{mCgt*!aqfAOHecWrB3<;l$_j zVSKk8-3~M~G+uf~UcYVvmptF=u*20Mt8mD^3$7|o^qMQCf~xINhxW7B=;c`lgcY-8 zuTtzR<*-@j$S)q)Rw!jT@IQQxZZn`P{RbPnjm5txoHYBGN=BoRn_W*(+_z>YzP?1@ zPQsxpWip*5@Yi@`*KY8!^?*RXR6%46l{aj0l0)iw{Q24bXJ^0E)fM-Z0tS?pa6eIk z#TxH2)ETxr(JES|zkUJM1a*?>&mA661K;`$tTm`Sw%20ZJiR|^uQjaNYyLK@gcdwB zIa&6U!`R~0cGF4X7Z$b>rd+laPFj$2XhF_I{*;ZdMOFXx*Aw|QY$l^-9$>1pN8(29 zYidGEmgL>rm&$YNbx3{ZHg2$UM}vj8l2Yz{IR5dR`O4v)JCe)~zw>dv4xUp{#A^z6 zM?)|8zY8ni1;#fQ40fdA>{D|Q2hE_Tj&24Gm=Jd@1|EMj%YT1kv!VVr|1qb2c&kb3 zdLTO`)}NeI$?s95rKROUWmJsFmVM2^_kv*dAB3QvKt#B{l5qqH`gh!4_O9-;DV=HN zb6GMDobQ-fs43COwlDJuxLd$M*KfZx_;cAM<>bOhi=YT_* zCiw%ga)K>)F;LhTf^w*z6Poc*O3Z4ago;=Vf&hUuP%zEc_DcotWZ7gL&&vfh1!QFD zW-^9`<4G5y*Fz90`Ci91398sOR85Y>uaAem1Bemm+T>|QNs{|Yj9hJJpB0)pG{O&} z;Nk*(v1;D+R_5_b<5`hrI2&^aGJRyud2fgS!cM-Tw*g=E+sOr0+%9&^C|yWi*!z5m=;$wm1*=U66cic_d9#hiMGIeQfW zW?{>j+)~pA*Nb{Gr9mms3cijMAX&t(XRP;~Krwi{Q|P+FS&vhtS=ULGFG6{7qUgM zO8=n=hw{RI<jBN?lps{9r%*%)QWn-Ku8%lUDIbX8FqQ~h49xZ?1?ixGiI5LReoZ{`8eFad zyl7bHTFT(GU}47OJk=TjURWefV!>I{HE;)C(ut>-El1xl_Y`=-?(=7w;@Y6|*UWp0 zd&m$lcRPYYkeFGSIAAC!W)1?J5X;d{a!i0BdNlYd)c>xjIQD3PG8{dP8JS+XH@dKC#4mHZwk&;cLqZ8mYfL*)m-zA06ar%pRPwo*%oaXp*F#WB<~Z>o&!j5)f6_tWkUIG4!hGUm5ok|& z0jzCe{-J{!IUJct7)n8YvU=4L%-zeLfOa&&rf5!}5V6o0^{)QPQ&R+zs2LgxmfSnS zlNf<@UdFj0doSNX+mz^GyqnbUZ~Q@YoJXu)m-+p*{7X0BZ-5 zD=#BZ+-w|?k%*o!Vh{p86JrOLjyd(k`0;Y=Zo;Iq`0J1F;Ky>)@7dvMpW?a}Jf;_q zxEO5tzG?+)dlslx2rDM{#-0+wlNePxAS_ee4k{8uA3>o)`^ufS`St0fh)pJWEdloTqt`l6w%?L|F{{O>`kDKgS); z6pT9qn@4xAmoGO^837q4vU^ltk9b-Bwo*R^u*xlnq_Ktyz-f_>ZTa+k4@7qprIBDf zmHB>t*pPcG29-BXK6V__3WKy<;Xfs)Q$EH{-ZZB5tLyLV54ht-&!CfGV9$T0n$Vzf zjaX7fU8mxs{o;#Do%Ae;D`W_I7L%PvZfrlXW?S74fpYx2TU=>JsB5Vp(txQ);HHTG z)zs7wp&-BJG;7<$J%{|amg$R1WvT3n)*kAy+&S+1K{rEq_8ciUi%sj-rvFz(yov}@S{s|Qf=o2<&Mi^aZ6Gv;L7 zX&%b^Tu%`9zU#Leq^?0DFY0Y|#Ys9`24;gC1m{dWyzr^dtAJg+558;fP+AzBF%(F> zLtdVl$nEs}pM=`~Xit9gIh!3s?PRp!>hhG^2X2Ue2`!3)%)5PrIU5lFQ4 z{w|Q%9wH}*NQIp?Kd`(?41dp6)wXOgE$Yts~r#K*_L&tPkYA3lByVBTPoe;#noVjmn;Xg$3Ti=yoCK3g$)j%m0NRHi0 zzE-*ORA`gSM-H?b#2jd6#!KpL+m^zvAMpXCb#O;v8H(t>%ieu4MpJ~fxg29E(f{Iq zB^gZ4r;v$nGLyZLrE6zt$yh2=?-n<=U;?9;e_>Lzu|hO#Y;5Z7p_dgr_}X6x(xyuU z;orY63R=jf<2}vl$X0<1M532Pq{`V-W$){V)rOL&l--%!`^(=n2)OQoog2nD2wE2jOB3}5B^>E^(kV?NP=0smBHFYO

?N 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 literal 47591 zcmeFZXH-?$)-Ady6f7l}$w5&uk`a)oD2PfjVFHvW8Oa$G6G{-o01{LbkSHJ^851B9 zRI+42kSrn~albyX&bi0FAV5_^!(YgZKX!WgImrob_EPAu?p$pfFTg%rhr<333`;c*;ndUyN_;+uW*JU2J zSo8MatZU~-^M{8uch??&d+N)n)m>}0erC9QJizMdK6<;`H&rgRyq=!xd>^{5L2aT! z&wXTa!1bq`iK$pd2>+CaV$#V~VkPW!7!>)($Hc62;;%nHQ`8UorOyBQnOmuo<)5E@ z=r_0g>jSpb71@7X!t&6T@t>cI=~fT_>(|mguX+CUGo#i^`hR}zp#Ja8|L?Rc%)tL& zqvc}P_ERtRKhoN7(U6in-W8)7bi6uB{((dL?M>?DKYQzqfB)$0uZatandDe{MZ%&! zscgpB*f?C$;;zE{Z$ni+#7pA$&{k0o(D^>>~R~blzNbv z#qav-lWJX_v(3{dPd2Y!+Ba6M=ZW_sr)g_?E|<)V26-p( z%DZirkvYk;%fZ%NM!i15wb<$!D_?ztjJ?A|lWF3y#N+)RANew{@+Q?K>f{wjPzu3= z$TE$oNlAyC+dZ?dvhof8R%GXQ87`uE1#n4e(59kk9FCsFK6GxqkhGm zUvUWu2MkLC>-cEDRa@N#k~!sEo^Rc@Ez`Pn*RkWra|`4sh25Pj#hiGE&Om)~tDef+ z&NtWAEWHvMab_&_Ky&?TJ}dwS!&Gb<-c8K~2Zx7Gz7YaihzkHbxm?eS`_>wUXQv(`^A>U%$@!Lehpq)1pTe5Y0TF6ZHvq|#?=QxzNhW@%3gqy1`lJ%4Ez{Q7**ZDuGt z#w6&2P~P_8AZC7P>B9`RKB6jPJ(Wi=k#z~jwnf^${+mG8_(-`f z*U=)<apIc$UEWT3F6gqM}p*j?hk0@vH0|OU+#2& z;zl(A6@RVGs}FBp{rT~}o9i{*Q-+csMgG8^IozCOHQwevV%A+2Y~GL(DOC8|K<)D* zqdVIY)>e<8yDqvpq(~9S(j;{^E5WrysIQ2Fe%ftI*L=??S-D#lrb~Ah!S~g z4%3K7`mQ_ehl<;$4pI8dM4d6g^Nv51j{`{QI0&2xODU4N)KTSrCZ zDg!g;(XJB#TAQDgmmiRy>b@PUxUEj{T357+qVw>XD|;TDqE*m-TvI%H;J^*1p)YH4 zCi)Xo`@h~4KJMn0dn(&Hd7bjr@0ksH7C&ZId}z>}qYYGhO^8Rj_Jkc!SFgLRsleg7 zYkXU3{$nodm%9a{Tpp9p_%gEgfBzKY_Tv?!fVT?bCutxhj|8XLuj+3uZ?3U6;EvnW zc8%nZA+R6MN6@~q6=@ZD&4u2*8|&}S6u={UoX_j`xmwTK$=+Nc@7XRs$I*9eWD}dW z=4O)gpg7yfs-698#QmKACtp^D_`yNTr%#`nkv!1%^xoH>;%b+pXS)Uan=(v~HnH$a zbI#;xPEWQU3sRhasUbTgfyLR%%`(tr8g2FCLVb#EqK((s16&=4ZTB=v-o5{H`}AD} z%ok_&_@1lMZolFY^Pl!x4m13#E61KwIWg2c-a6u? z)0*pe1dBkHI&Y-#v}z!?*$;R9$c_3gor@#wt7HxwJa}_(mrehi7cymeb+wK(_i+-2 zIrgTy4xjdsbkV(&51apqRuPhvz*O>dukCEG7y?G;!A`5A+S=M(qa{InsTCE6coaOO z?X2F1Y~++Uf9uN&vzRQa=Khd_LZ7C`2e@XvBqj#te|H5TMg8jVW$nj4IhLwdfOMB2 z)#jp{VNywU6b6}ip{u0t@+yswTjCMV4;uQrJFJ3GeIFdNhYnM-^vQ%+C zZNnCEaq<3YSGk`CneCW7@?a7wh`Bzl_TN|ATzezqn`dZ3OXroS=I`{yhD<)2QH~@+Dp2PtkWwx312`qijZ95d zJ*!BDtVuUMI5s!p-JU=D^Fzc1UH;;SOiW^%3O(JsomL5IB#q{T9CC8X;y})J z?YzQPfiU2*|6&#whAiIP2%D;zlNF{xaHj>eono)$}G+! z>m-3apD@)_?PYS{z=1)&J4Ype^VrCw z>({q_vBn?n#v-M}#>bcCPkga3d3R$?Y(hf$8AN`p`h%T4!+9e+H*Vb6gUl|1EhE`! z+c?->q-e*7d&dPErR4uSkm1mGc&vO|>U|mep8K*R`QmmDu!F=ee0|Fqq-fbFB90PT zHe-`NdNtUHyhBLg(w1b5$CFN+ODUW-7kHmP zUVl2c*{Ui1T?8s;?2$MPld1@ro;n?U$%A*di%PZF`cD0L!x|u3a`gD|@cFqJ)z%(C z#VJ3t_QHak?~iXjp7*FVX?%WelYqb*hmp2cx#{mQJpoc}A~pz%LzC{aljDFUQpnT zY@baVH@<7RP|Bk{plH{9{e5}4n2w&Sarc)an)1eb9^IO%rp;=Oyawr1_IDnEiRLNFudpKGzk9O2FI3VdzU;3!c*R^q!trwIVHF1~<%+YsZluZ3?Gi&6?7mzJLE-luYo4yF0{D z$t50XmC4NvW&}6aO%`CCV}p%0X+~Mv=IeE@s6u4~XvuDpt1{>3Qf>n7%<=uXX06K{jxQ&ak%Ky^xrSbjs{PcLc zG4ifsTWngaKW#ToRPwr z3S@xW@gq8pYvt=lr(zcJ?y-eE9qHETyDPcE60yN2W9u{w_5fJi3^wwbAB$F%pJ*#^ zR|odkvVFV%8Kl^mLz`ENkuBqjd{DVeIR7jvx)D=wBYS|_a76q&x!E6Y z7E(rpeU&KC!}%Y*haUiEHynzRYuYa+Tr``GyzE@jQ~4l3bd!+lCw9Xq*B%am_x{{6 zpSPdRs@Q%q{cU%5_kDnq4D-5#vZ4NIJ@zq26Q(PBdKeXd?>1`d|B{)grl}b;P5a~* zt)>ga{W*U2IM8OVC%fSxSJ#|iqxqR4T62rn%uuX-Zxz{Tm*1SrIRELfn<5)!0O-se zw@ada(#g_n9to0NjYOkgZgk}XsRzfCPlcVfDUh^FPI+B$@Sc!Kd!c8r1=#>0hX6oh z_Rv~#>;pE8H5AQD+F2o|sDw<_M9;5wEJ98^WA}bz@T5)NP}V6M=NfgXFs;o-^YfEM zs>ywgB83ippE=*?TR9Cjo+B%6Uw_gxtiXM;-o4pxl^~~D4_ndieYNBIbNxEFC%`R_ zW5J6Twfn_@eZ@=I$5OrLK5W>yF$_`BJg%UTbYrW$qgWkQKNl5*fUe;C{-`vsBGs|@xSi2_b9`?e9Fp|Vd?x%k6B{j{Y z;(q*0VnTx0-1NA3Za(tG|^aWJ0n@=L}n4X^X;Uh;Xz2_Rd_odX4l!Q<$>}$!% znELraSfBxGZZQ3;&yb91DlZ{rVf?WSuN)$FtkLn)l!MCq5F2hOf2->S|h% z4Y?ug*Dr^ffn?+$0&?-{D#<^%lw+6$B-+ta-lvQ!|d2sF7R}t7=AwcV5 z?n#rU8zwVPjYoIh6fTtRpBy)h_B`I(%d7vA%domdKy;y`U$wklXBhx%u>%I*GPZ_ZA>{^Y*2${lS+{o3NV`XAh_}n>jE-enWaGX2Se|YYG>D}+6#cUyPtNFH^1wU}*h>+m}^{i8sC0Pu+@GJD%{9r_-7%}wtMERC7;DNG|Dx0!xmv-;r`k8{R5?nS6<=`C97-HP#^*7$@tBbF757E8+pB>Y5^=-e5mPlaKNPN` zT3R2I9Hn0HVoj61Y4iP`VpO~5Uc8WqboyeZtr&Mt&y7&Q>$6D~Bq=9oMl1BU7kSrq z=^+JZtESiX5)iwOO}G2|oRDtrQRS;l+JM$~A|jIR?l|4=O`G(#;5J@)b0D=y4=m(*TWHK5 z3Y3Bxbc$xJI6pL6%9lFnl@RnbAwK>i3bJFXV?!Sq+U(TWcr=uhaB(2<6CNxB~? zC%h(g0Yb|wD*W@KLqng8c9mLy&PoObNY@v7&is1AH?M_+cpRaOQd^g0bsFPTkq=}O z+dD35;8$*=(H)7hw6|chD-btGAoqJ4NFWW!*H0}{a$?&uD)c=@_XV(v?m2n#q;}Bh zNYgf`Ck#bZxO@ML8V&njUf!tIgwql3Gt1#Ml-Up-*?v4#kLM0Ekq}y1&W!ifsD`{S zc(;^C#%?c2m2Pcr&F9Y&fUgX+?IqKW`d(At%prCqPdd&@@c>+R!ZVBoBHB@+nz8} z^N!++k}26X?RpQSYy$I(3`d>fic0OwmMvSx^%QM8lxoKVd1UKf zRs(`~V$8vl&LeHQ13CSeuHYc4x?llS3F{W=xh_81$MQSd>aZ9po_b)OccP+r9j!_O zd8TK_ss;21MiZ(BQxpUWPG?)I>p5F#?CN`RDpkrfxsG$po@g7Kv*9RnkAOJqIkbYj zTfWpzIPUEABE*xtGm%opefegUbaNfFvD!V=(fR{2;{kW>-HW@eu}h6ef@Q%1na(46 zgca9J7Ea28e(bB?p@w)#9P=V&WjyFq>5cJ$l!5B~R(y%`w1li`!0v?6Ak*U~`6<7qJ0s?*-?o##A~GBy%Rn@**Dwn#0A1=Tr{laq5mQ&R^? zEM7ZC?%q0unL%+py>7bTd|<8@t8}n4XSt30WDRU!TKMO#-tHQ)pNiCIh z>_6IyHSVu{b{jRo0SIYlqAd+LHTkr4&c2&#cN~VcSYBR!^wg;Y*RdY(*bqB=dy9e~ z!)0H;yq$I|4R6Pmv6!Vl0CDP`kS=G1T-psCJiU--E0$hy0HTYJkKZrrJnS&I*otlu+ZEZ5D3XqZp(h+m zH1|9rUX_k_EGti1Y$u4_%{k|oqIKf&=N&<=*1{YcOv^q2 zlt8|+Xeq`2#?0^jNJ7N=W#?6uf_QV~yaA%+fYN2wr^dPQTb}<;-(i(DKb$x)qWEm$ zuue$f@2|^8CM9$4beDmjw~KNSX)UTu^k7w)Un7>*b%o)m>vRIj(I&6_sY-)LOTLJTzYkg!ZMsJ%o@s*>*VFDt#q z#PJwFAs+n#2+j6~2JU{HoC{s;nmYo$nMX1LQ{MlERk4=Gxux@a7m;&`8jHUrBYE$# z^F*u@JTl<9R>_kHV<^g+!udZg@j{NwG_O1Gxk2-T=X76O9keNi=mVbfQ@z`E>`};D_Mh*2i{zn}96fq;0Ve$DcojVG;hwM#wxc6h zg``C?HMsV}h=Q6M>e~x!zB0wXbP#)x=XQMyJ<{L8!?W~?k^i%_i(OE3v=ElHlEOyU z^Yi6EUCriar^b0(wN87vW7s@02_O1Kc4IH10*dSal$mUG){mUBL)tu5=#ir#^DR_` z&$phvGN)Z@^U<#AdVSioP61w0o9k5ngT?)JG7bODZjg#wq8JH6?JW_U|xuo_P+I>t!L`2y*_=pCCPrqC%Iqyx7YF%RH*Tp}Y z5<<&J=gfsGQQq^ep0lH+!Lw%mpMY?aj%dg{Z4zHk?O#2tl)=m)wio(jOiIzbTe5E6 zaW*}dM`Q_6%lm@7XJe`qW-MDBYSgWTkAMYz{QB-DftzNiPUTfq^?dU`7(ppDrCJ@1 z6d0czKY4T6+U;6-PD4bK)+=!98*k8W@SJRoBbq1BNex8D_0hMXiGqF!_BcX5Zm%UT zq8+2s=iWXORV6=pCeyO%FaeBQHu;aXrM%pO#XSa?I3B|{w;yObsBpS}8}@(uVdNR0 zr&vr@AJn_M8`STM>;~US2KjQVJEqeIp`FOwCq_6PXrxN6%`mO52f};;JwQuw`cn{T zo((`0Yao;I`t_d33nd)k3ZA)M*m(ocv1$STYqM?idF0)We*5;#?b{ulU)XjLJ!6MTW_xgu>Y5Q*9>4&-bko-klunGTf39nS4y?lj(F4D$*<8e(T#lP^K1Nw z0wXi$lgE$OTean%#Dra+c0pK=<5T8PD!*iy1`*I&6)8Iaji*L`{wEvBYLZUYGUJX? z-3YJ-2z&9We4a;jMV<&^?m;=t|f*fW75eD$epF+hsRpeDb6moLm-CvGgdDx{;&7933V_+B6 z7zWA5A}yBYXT_#SuC?!}_(Y^~lCQE`ogTPN4ktsL{togQNjid=77ZGRn&Ti$q^V2%g58zd6)5`)ddNZ0uxA?5 zor{JV)0DlTcGZC^?vHYw9HeuGu_GR9e?A-QnHsx*^spFIYgQt;Ueeu+#b#r z0?$RDd?XzoLUl-2t#GDwq#qpH?fau^zovSl2QD)5p8ugxg^aB0K9m_Q>zo4p{2A?c z5bYy+nyJ_Lyk3^1T^^kctCiaJwm-^!_!HSmgs_p$2HIXxE?@ti`zGxD2^g=pv5Q(F z-JqAU=6NkDcEE-sr%s(3C>72d6uTW6soOOz>@~W~9^H#Dh;)1JWE*Tj+6bnRj>iMWYbQ=bd;Ij9N~KK; z*Q6P$lKzD~YR!Xdyl$KOj}0U?NMM=cEufM~5*1cWO%1}(OWSkZb%Pe}i9_xVv(rd; zM+Qn+_!KNj#i~IM>NfNyqJE-2GL50p)Zl?Ozjn4R)a3V-l>sfoMEe7V_xG4ZIq!MJ z$R{Bf?UAl_@Sr$7Bg=xm&9T$+KK?z??UdYICHILEhxXqq zAoX`IESo+X85@Uz;gz6v2-rRFoS6tiYrM1v@g@as6N_K;05t4G5*8uQ#xc26!Nkhj z#2}~rpB_YfwI|xVhma|W6e@$xOC@yHG3cCz5b<6yafrQrVcq&={|%41Iz?ZS^GkBq zZa;B$K@18LF8uwtKC=j2h@SKhLgK(`3mp?UC&>R#95?+^o0^wJ(+_w?8wp5A*g8g= zZ>NdJMLLBO`K=G2J_lWuN@$)j);jIgPj`;X_pH*CJ2yQs#5Hv)<>l9&F_$=#d`1RNbmWn9@2h|X>f$tdgSO)BcdoH7af8uS&7^^bBd;TezbxVJEtG=fu-8GXbPXhMktR?u%t?w8Pp6X)~H+wxs|LXT*O?l_$#VH$Da zDjKh*kF9l@M_%JM_Y+fc%OlWXCxv4{Xdi(sBDv@$5G*iR1#PyPc3;7Bdat$A`Hv6d z+XW#ENMyIUC6eaDLVpAc+w}aLazJX%pB83HyC|^whw}0YBtWZOPJ`#k@WDzdo~Yff zK(<()O_~-Jkkt;MC3pyMNgZ8g(t04Kh$hsSWDEHTQHu{DX)Pn895igqp1Y^5MKM50 zFbETnc@xm_%&HYoKNDnnBkT`hiGx>9O(%LY)X_A#2UHcOgVA&Xn>1{T&w_F-Zt!-= z?WicCF{+bR9oz)2pu+=mq)(Y*ks?;IcV2%EqcZmx1c(zOtzmK@SxuR~C$~wn&1hn{ zmCG@2+Dj<&*??%*9kzg}X?G8@ZJ`ojzPaonuRnkinWsG<)-#|eNPwz3tOZ1-lz{?U zNwWI@jj?hrY(qK9h^Y`VKuwBnURi^KN9YrrhY|<`3}6-CZy4vPw~kqCPJF`B%P=fN{s) zKttNn-1P)NKno@A0q^OW=+NNc&WX>s@xC&qwzt*H6f}l>D)sC&S-DQ^l#Hrf1KWvN z04b;jB$wzT+4mMx)OKZ)ADg_aDeB?6?!_*PugI=6_*Q<0Q{2QqJv|+*cmaQ;dU>FE7%u0U9(yQky&B2p=rlf>8tY92?Ik0c*7<;~@E!75;-n}muUtIb z2P$of=-8w7#6Us$$tFe>JC?8$r4^+7@XfWO?erHqis|4&+B_U&FK2itpgj*27mkMH z@d;}q1_}Mg-qzi6luzZQkg+F?>AW(m7ti@Dx@|;2-rhDvmmd$+4jd2zFW6H%gd%1l zgr5xmw9LTXcLMT}wo)uey9toexI$G$n0Ua3HqwD?bIF*tLX#knmLlJ#qwi^)Yvgp{ z+kgdNQ-B2;!j`qUPv06bNN-!AC}qcs4lGKAp39hf)$Q=8@eOvovp0E$ZCep|M`753 zd>ua!78drU&@*qt7NBG}V6Ln9vp+%w@2@{?a||NTKtX%6O_A=ED_4Rii@?F8QPVHO-|mUcbX4ge;=1OnOCq#XLf9i-dcFwaQOtROP5XDe+oCZ=>5fcmStGy z-K^T*Q;`neKd!TCPt)b|{1N=Q`Dy9gXu>g%laG#6?>Yui>$ux=5npyn>kzY_j){`T zyRKf9si9+Y(nW2|{UWkuv$n@SybiSvs_%;p4- z<(tlx=w7VQ(9@0_ZEHW$H^trU+$}dV)SR>L(Ot8UOTl9sOf#_jUhuRwIQG|~)G6UJBJk^21wJJwhW(=#__+uv+H_+!IDY%AN_ z^L`zODbS~RlpUQA=xqw}Z*b^d{QK`KvS;q0j}Q^TeJ3>ZJW6Kp0K}-=uQ#@Zd(z&$ zd$(0ch;+*`MwX3Um|d>oY8}^qZu<)M-{FDlD!iBs)Y(QVe12c=tqzDVEz*tl-j|he zV*MCT__g#_FQfdPb-k}N$*u&yr~wie7_s^CLXB&ur52Jlw6sUy3WRE)(APfP?fU|K zVW@f*5Vk741}|OuYt8D_@vtDlOJp-K_v&QmP+Lc>h)OW8zJ-%l-^9v~6hqq8oG^}$ z4%TxmWv)&!mf6i|Q-S^_QeshaWiA2ARmxggF9p^Se+`j>+fu!P6VX01CzM^$E8l6P zEg86y#6B@E5(yOuAp5TWqKB4~SFe^kF-XWhA9#<~4EU3{qWfML)*+muL z5vqDhT9?t)AKFKaIt(5OpuuH$UUiB^@6d<8FkJ1^omFQ|*vg%3q`lb1uN5Ay6Bqx5 z-1~NJ^6>a@`(7GLQhdCYNl?XQkANkc?4lwQ?0KiEG)hfn?IH^{HxKFPH1S@J(3xvA zl7ASx)>@dlo{ecij(dh?-_X+z+VigWvbavQX_$G?1ONWU zR%_vMr;&%2*?dzhO3H9jZ&*}X=Ax==EbAMli-#^;h5x=&Svu0e&M^}_LP;=Ok@ZM@ z`SL`k?Fs0d*1{W~_it_HD9iUvZxv!PoG@gkUx_g?mOHs$*!$3#J9?z?#5um7JU%6l zZLf`t8k`z_Y&p61s@TZcCG?bC6tm0Pm`H^$Gi!3Hlo#HTg?}vu`}Hba#c7w^G%4Fq z|2g(DYSFv2lR=fMC-`ezml@~Hl{rxc`#M?ph5EPQ(SvVthT4j?#U>2->6fn#9db%Y zwG?b>fYGOBEd(`(ZOq{ z_fqYqCKe@o2w}E+m5pWT!#p=P7hG%|qNvl)b6zVTV2+$_(x}Q{ zG?t|VVL(5>6AOTmF_b&ah=$TFxzRO-@bKgo=#s~a2sF^yF1;e_V{$I;_M}LJE4`*< z7N0VQ&qFMkrr}R+t}TOmvNE`GSbT0{@gzr8OCBWyhj1tKv&+J`_|KwTd-Om1K1Q8GP?Gvh%5#%!QcB%$I3OxqgQBQ zaM^f(lAPAdHBTY}!jAe7Gc*no(+IjqCP&$v29Omo#->UCj zSdH_fY_0R=*ej?-i&ft@UP*6t$AYND(l56`Sa4!z>a&**zFlr2$RJMb-rZ!)78pFr z8vR=63V_QZo>=7FTEtV)x^gfm-_b2a^(5Q>k zV<{|rz#&HdPn%mh-H}O`UVBqsS?TD$CF+fappAjn7(-w%ollQI?>kmw_pg#0-=qcq z70-v2m-_FM`E^TL=n#`p+bb;-K_~g9Yn@C#80_@M(q6r0!C>AEJGlqGo7a{T}p3dQQy)0 z-f38%rpa$RV=)6JbG^%fH0Lz&a;`wWipFsxHUOb`}Y3x|rU&aKp!i6{>{?xe*?ZEwfkQI(1y9mF3Q@`W~3E1mQ_vedw1^U~t+h zylyiBov!rAje>xSm0U5&olPIOCCJ2BmVC2jF#%ZncT z^s%@^%LI8OPxJ{LH6`@VJ89suERssru(569X4xhs)iCt*1mdKbY&0@FGoQ)eF-~mS zmeP!s1vd?i2KNTipB2X**8^n!(=_RyIGnV*Y1k%oNa+pxXUdzuSJFSd)w6P8j{Kfl zni}r=daH|S41CSAguQCymx9xNSNgnWI?7sLGAAg#H4j0#w~3{A89|ahZ_WBYz8e;F z$C5}P*aCJlD=n7@ohfr3eaG;(O&2?dY;Y&#vRJm|q7U-20>bI6QU;eVrw{)_OXqt> zjAfguc+yN{b{^lrz`^2kkIYtajbA~K?%_7AW}lMfCaesSn6P1cHe>hax5ifbGBFlg zV8UztS~V9!=BkLhNIcz=OC_O0-Fd&y`Cgv9V4de#W=rK?f6enl23uPJ|1uyuvH5aR z9swR~iW+x^jAWf}eH&E1O5bs8^{`LSXsE$R48lAxgpPU{(9+9`)$M9=n$gOl{~@;2 zxi~Id+#zk|J&W9qCN8{w$#Vw&B?vJ2Zb^JBn{|rWrvckoVQjqv|GmD5?#D7b zRFyq<_F~*7cd|cko+IFwQ-*J^SoBF9fTQnF3eG&%bg*kytif=C=fSU)48akgCw6B zp!D@Hrne5w&!=fh)&MVvF2!+LPOAcHU zMXosflL0%o^>F8NhMZLYT}^KPGc)pbc)+M~y=h$@1Fx_8!IiMaL<*kgOQ10tbkVFN~8WqO&Ko_-k4 zD59<&A1J-I{p91mnz(^L+2N0{MoT(;*8+EahSrPS10Z&o58_IiVH^<1ZYprkhEZqN zjuX%MhxJ!|WDgzk+qZL!_2&a1HEljS-bG`;yv+5-Dg^ZULF=CceRr6Z zO&HjY1wks@CND4l(@Qt6nJe9*K?u}l!5Qubk4TnHdt3aB3(k~eLN^#6YL>FI{tkiU zDS8KaY8HR33`j5N!!A`UvvFFN@yahrwaPad>G*EPW{zToK{q>A-v>oc;^I`9&sD;^ z{@8aN&>V+=`K&}J4%VvrM&`vMqZU<(04N(+ zu>DY5u2e7x;$DJ)aG{Xc&ETD~7Jj2WX!#Qu&!*#9na|`C9Ig@+R9&z;96WHqMSDBn z4@2ApJKfgb-}_eU;GQOyIC2vNzb1#M!DZql&A!)p-vt=NaM&Pz?CMp9olf#O*E*U1 zk7=Dy3a7@8(+iI?cp3b@@z4rVYP$1#1X3S8D|214)am6L(QP^@wf990L+{*qiqkW$ z7jGDn#uyam!w|#ZNq7OL=Ud_0m7zoPt3I49RWcF2Dl#dOzdMBRJc#wGQ1t>gJbV6J zi~KO0J0PU?`S)m-Bo3TZM#-O^o0)8YUnSFH%Ffu-G%v@pU7%OS7qQELY(XY5|7s6^ z@4C&6oh+rmvkCAfzIn(7^n$C> z#<}HOM9kw8&sYL!&5dilIXj4=ove8ZSIyTDf)g(tQOs z{?9HXD+rtwF0qejwu>Ihmzh%^ zB?fI(_c;7fP$ZpXhTsk@vEE$dXG+p9bLh~pfpcCYdj~~ZVpo;O$|dx*x-vb|gN;w) z9>OzLAdya~MjKKB-AP=Ln21`{X4 zam&9!8Ud@^WX+n+NlCD(mKTfuA8(%vx;g-bVxTHj5y?sDND~iYzW#|5o7G?xd<Kx zR0NFDrA+@lw7*;Y4+&`xFQ9Qz3-6B(?yDlyb!Hji`7#$~d)b@XS+e*Gcoo&bT}7}v zR3G>!5GNPBQIn4v^4qg&s%5QG=Js*fZ&YQmMD_jKd(FnO5vnE`j52sM$iDRDxaBik z|CBbrbu2#Z!Sr1pu3`y$lK`B$^BaR}sA5+jOZt_fMrmX3$!h^K30{?^yc$}#_m?E{ z8RyZk{e2@CsL@v(!%E`XSu+oqm3cdkF+oR@ZLnoa zH__zSv+QFGS4Ag*C6#P*?u<1$tU$nDUn3*D6SJ}08@7T~U~@%H5`&Md0g?=E(RY|? z7%7SA4Oy1!hYnR?;bm`qqWDEOw_Mx=_8>)oJcE?1Xc?Un6tK*UXO`D8fO}btB&hw| zOP%>u^!$oBGWoBcfor4QZhY8=0PinOb@CHBVu0_f4~n=4A%Gx1~h< zbBMz6hM%#R+0WzC(ZCQtR9YH{-NMyDlr1Yv zWIlUYP7Zq5F@o}AQT)!a_(aRxp?~l434;fDWg*wWY^Fs9lX0PgKK~NAL_4dLvFSq* ziuA$-e7JxyO2Plj^O^TNgVx!sZ@8&q;WFpSd)LXsM1FEmjTi9-|6a%z6>p8lADo;N za(rWq$QD*$vZpLRg+?^64_dRb{L~!-slVvKKutXSk3bE`l{a=50mY@)RA-=S1?%wv zu*a_8x`m@(w-FZD^k;sL6J6Xyi(<66RaIu%PysEi9^hSxX zxO#K*#S($Iri+#s-(y?V4(%*PMr;Y??aJJFQ7e5fE=&+3E7#WiixG^}4+vX}I7`bG zk!yg;pheOB<~S+hg86xaWuzqhU-Ml2R`2t!Dh|wNk`KGq$EwU_LZDp|AQD|7>Hm<5 zR8q+Epbv<=ZMp_c%TnibmBn`OMNZ*hnSg*b6qOqDACngHq*Wi0p9Ps{fks~Hvez@b z5PImx^GA>SFc{>BE3#BO5;F;bYf$T=WpuML7G?s7kCEbc!Up+E60yjRmnu&E4_!#T(NOIA#40>BEOgI8P5Byn0!eC@#Y+gB}XuirI%L5o}P&+LTJh7H(S&hQ_F! zMW0D#Xu|;%Zo8;CqJEGim&JghAQ;(P&$LvXP0Qo)(I1+>lrA4%hOf^khPLXX%>H&I z_E%Bk_-Z5=YB`q}ZwEJq%fE!&7jsRXO_&~8Ag{fD9!gqobkqeRxZy3Y^E}u(2(m~~ zmI!ExRlX+-KotpaAOl`5D;6~t9^TdAX_*9yi3Y?+CME;FeNeE~w={FS#=It#xwI)& z(Nl}C{vY>($-E2POfy(=Q`jk+UTLt*b%F>HWK7rb*b}KTWbq7;Sjd?8off9;JV`iz zv%ke2mQRyDfUiZ_@E1olSD7p2^AIwU!QQ5*6J*uM#fto-9n#B;j+@dgEa`Ksf;)X_ z8AZ+dq?0cM(OB5*|5B8)nc|3~+$Jk~n)rU25AGJ14jVhGC>AAk zYYaL`1Y_K}kG#?2_-FQS1cwv_f3^Y{J%{ z^u|A_^7X-P@&IQrzfBxIO9wR=3rum|j9}yf{|G4N?_p*#^sA{&kJQzqIMeOE9SGnM zSAkC(9Zr}}P6jkr{7(q_K5rKq<2aQYth|kZ+K-oK769r+v@?)A1|6OKH6@{9Z2T0= zGp>}^J*hrO80Y$Np0@$+#Yf`<4Hn-&K7y6t2>PVmJ3)QXM9~b$2Au4N|0tOpb0!BM z{H8wq)yv)S_h?KY-R}ZPLjMgTf-^ zYb<84UF8mCH9t-X;+8oK-;s5#=jt_U_Az9^``U*Cv!+Xy@s~Rl%XG^Xv-nlHhGd)! zieMyKQ$JaYL63AkWp@f9x3r#tC+O>5kUT>-5_J4Qhgtu=G-Jl*JtqpfIA#9oM zlh%Z=p*?pbTEX+hKZGsQ$b~}Yrocd!uf{G(`uV9X6+Pl`KLmfcA&k#rCAIDkW@kNM zC=@)uk6L+AeGSPcAGr~Fi%nnB8#LV35xL$Jw2p~7%k}Tbq#j<_+_J)j>0DbeKk|ja zzN!p94m^j5gH-Vf>~(z4kRZ|y6#zh8-3Xf^&UvN)0OG)iIlNSrMVe0Xu7Al!leMGH zv)Jj0{Fz8f$In?cfwS>w_Kr6vi!yzIpc7`4@LHQ4~#}cQNb2 zW7iO$2DB=C`$yykwSEv5F)^_hIC#B@)!;cFS;c|BsgGw6f*RPoltF2*m~91!t)xi> zJBr1Y)l1<(F_yFzhZAwUzwRLHFXivwe}XGN{MQM%k?L?ti5%M40zhf@Ld$vSs)u0 z9BnL;c|M#Pl6DV>MKX6FrRLJ&W#KQXG@VCmKKHIm!+KNC8D&^C)^)*dQq;AdLweKy zj?W?lcB@=BzAnTkr>s+wbL$L6%4yE!-h4xIH(G~y zpX099!gSQx6?VLwXp5q3I6qJOiyABm7TX^W?PI)9G`1u&_l)hU#SjzE$M9|YlO;uy zS%)!1zPzaXi|d$tP}br}<8z@aJ%<{1R?!Ju^?ynRm-=7;$SGJP;X_i)Yia|h4D0y1 zt|qWAS$wL4dG+xA>o`ga*G>GBCmZ_R;5P6TzEOAP-`%T#fv$&r(Bu`P3)u!_}hD0p$@XS5@ z`O{84a+hSvz}C&1wLoqmXw+gqy;N8WW!qX28;TyO)Mb6|y5o=nWV66G>A(}0I!hCS zBd4gr-tIZL2-H5m^;?yB{?qyZK1Ds8x~U&*%E+{8-bv195wkn|Sf>wO{Qw-~yRHIM ziu#J${2P;&eQTU5J`E^#AK&2cf&Ivc6+F*(qNAf9uJKF;ug9yC;|1Tl9(zUf_Ay5^ zTPre%P=0vt?W9+Q{^Htn6d6|2|61nJ0KL>Da=9ts96Sa zY8-oW&^e@xw>Qw(%KRp~^EgE`%h2LP8Dw|1^JiD zyET$eZZVI_%D;}}FI`P11B#w%yo~WUf^^Hd2V-*e0n*+wYl>&_p-U4)hn&0WXXL-0 zKM#bs@cdWk(04s6nJ}d2eWruQRwlx-5Mjzn@Rt*TU+@O_As~vn7{y2n6u;+GsUkhb zygD6d&4c^eFj649j?GafmO$Y%q8@aV<(|R}E^ve3NvgOA!;rqp_A#B0w8`JF;WZY< zD0^!t-!C7pfxZjB5c})FBh5-BDS~+-3!iVY&V~;J#*8v|ssntS;(nDggmnV^{{iZW z&M%|SS<+Zm%16sF5di~5*;@Erwsb=cnZRO-fl4DSUbrgWt^lcO4B|n5{lA(xey;@R zuOxU`T^XI7awl2Rcs9I39=RN@0xBHMM=!9~KZ8aLXyC>wZS+280XRNxK%*T?{O6D3 zBnn=_eA7%mEQb#p9B&pukC3fu^2MJ^AS0}=apiJlr7j_vDP@RWZhD&XiWncx{>C?5 zVeK@~ZH5Wy)+ELMlC0fj;&8xTyedrjsFyi85%N=Q|H91Z!n$xG>iW4zGntV=n6l-SNd?IpT5UlL53FIV6f92d+mHlKo(#iz z%T~P`rlUs91!U{WkpZ0v|Bips>I zEWZ-R)eJX+7n2@EJ-9VAsN6KnYNS9Z>0)GiYo%_X8|8^~X8425IFVOG#TM>gd+oof z5ofaR8Ay^AcSKXrt7X*6pa>l)M7D%rHIe}@xgT6Po$l~&PFA@fs8nJ4UcxVEiCH%hV5h>kkX1aYW?I0Cpg z8Y*Ia(A#ewQocLJD#k}WOam*RFj)}T8p%k`E+fOpCYBN33P$QWoSe(GxCIQ!=tN!U z+A?wKot%Y$3kavtv$k&A!q;ily$dXVhB1uw$67mH%Uk4o)i&rUE5nJ>^6p5`P-(|v zmu6Cv@eNq!AQt5C1}wL&dMiH~fm@^NEAU~8e3}=ZMy&8JRlc9cDfW4(aNcNWR4k+GB*rV($g)vU7_h|P27E@Abr{RRi z69}aJ_&$LKoT+!f7p};@bmPBJ=HPTPW9(qLQ}nt?x+=n-&^1^DfwJ*t9B*^bqhk=T9ie~v;pC`>U8S+3NB7cNp_8BLbqxnq16)fSE9|KVi@}$JSd@ou33-xZ-)oMO_c$e+tEKwPVU0& ztJ11!ZJk1n0Rxc|j&TZ&R&unWB!6u&v(c_R(z(oG)w}y2?Y&-3@%v=` z@3d)4`t|Eq*^J|mwN2UoY*KZP85V#`b+X;Nh*)Mh3?OJWQ z^1ZPAryBg*fI_Vxd;Q+3v(f*(gLmcZk^@zM0q%IcRXMD-e1ACLf8@afdq|_5+~NCQ zgQ5RR#@4d>azq2ze?+ew0EwU--&sb&_R#U=gHX%n8$QRLOF0AIYH~?g`{x&7dtxzn z<7fiDs^HqvWy{FPb7pR7EgXyc49I>|PcP-!k+|HK=KKms11o}YmfT zKH*s3oyf?c`jCq+;TZhqt@q3Q(;;5LAnuMGi*57#&5zDE#{SPHcTP=B;Yg3>#~VIx zEi_^c4X}cjotyA<0SLvh z=Q>b(i1o{Fb92*)|EIk-kH>Od--mBmE3L@TL>WU-iX=tGqNG7er3rW_dfd-FT=#XI*Et-= zalRL!lftj`;y@xbom^YikmWlZLivqhI^Z3x>xKC{6CO?hY)k9C;xZB+N(wzaKY`nV z?h-o{jH;JYuUd=pCirCM0goIE9OPi`ETw$U^vkIJL17`OG{w>Cb4{iRO$cbkTn9!z zB|R~jW-5F5JAnuA#|I<2r7Pcs=2zun-UW@|-4M56#_ZX;$S$3g6jrj;grBt_H#u!i z>ij=u>Ny-=bo@@QS;ZIzCGj#~s(>`$VDICBuZc+EKO-5)tL1_O9S1Ry>)?^4fWPzl zx`CAUW*aHMfLU&c&n%%ywa{dE z10)w$=9hmUAQsA*74%l?j^5%&2B+s#<&oc8F_3%+Gx&bk@OmQMH57y>?tVI1_a&5u z?t^FXJW9g^Dl)-WFxZNp5*8>Zye3l2j)xln_IJFHqypdu3IDldUV1E;s)tEcT1CaZ zjyz2A4zulL_mrE~KS-4uO^;(%3Ag#Aeou)_SGG4V?IylA@(KPafgt#4kG&4M9G(7J zl!t426j(<;3&+)oa$>(@Wx`!$`BFW}r@Hq)cQIF{m%~9XM`pZJ_TO*`V5ZH$>`D3Z zn3IwZMhJgXAQg)Tsd3e4`fKGl^SJijr(RfsUb{G%st+s5?#VZyN)XaziiqaX(qV)n zCna_VLCs70lRKCeR*uM2ynx!5scRa9Euh1g`&HTaG4ELvc#;I4Ol2x0PHioI0I*Y= zI@}riNR@m~hN(m~Mjw-W;t8&C3?ZGw z^e|%TxEr$)m~}5MfV02V&R`$I45A8_(Uf~4#{Tq4_x%FZ`isZTV>AtvE_Bt=D*2>i z4E7Y!OKMhsJrT13{_@B7m?8*N9~ICdkljw9m1)AqF-)xvwuht6W@ zfOS3UOE+=TJc*y_UGBi4h*#-7k6mbA9-i2CyEuLSbH3%HYz(9C*nJcl@*;|R3b|5T?c5+m*aERnhZnNEpvY%(z@;;bRsBjgg^=T5x697Rc@Bw*P|PF0Sd zg-U^NgC=TVcE{bksMvyN!_vQn?t{)F2eEsIp^7d{fvHIZht zS3JF!-s#8Oyr4I(OHyDSpe%lZ{#}s#3Phw3iG2V{ziLuw(-Opi+4uHalpA!>In<7v z?;7swW4pia)uLU2Iz=d`8V|D0wixeb2`R&-b*!M5;0hXSl`(e-ia@NZtL4*tpz*(i z!PA89!rd|lwGKsaM2?wJ_5>IJFd)V%^Yl*N%FB4|o!rK@=uqnxB#WPY-n|82r7acR zrK((8n6zfk;U>?65ayUI#BBvSHJqGu$-Gk#4vRpE5>YVcm^*8E?L}IV?`JE61|CTP z0UmiDI}NFy#RjemU-bOynTJv@p7= zRf5wahvRhse8Zg@<9islI$tUBPY4=@VDLo$7EItOu@B~NisGa!@aFwzaC#Y%<`q;M zgT8iSNK~8-xhzKroWrBcBgQf2j^U4cd;lcklA2*?6h2H>&71sV_e(0O#Cg0OU>Spc z6*DF^X?e3;X&IT-7xiPy%+~)as`hgG2nmMIORBnry^oHB3e3nwBD_C}&*H||h&2&V zx$cC}xM&udaJ2)t#emEZVTKnMR~?-l3J&q!YHjQ<{+2daJBa{FgouF{sQ)lwc` z4%Kgp%OSL$e}KmJ+PbLeHt-BzLmHwRGH#!M{VRjlbA!a!Kx6go@7#g03_{^I%b4O5 zou|K4LFJ=*PYB)15U!%hNMdlLT}P@NAe{j>S6I_MBHxwDn=lg;oWeDWvvY?w4x|dgIb~J}fsueb zGnELdK>ij{{6i6nUFmM95Y%sThxmv3JLr@K+|FCEw8%w|_>>X+gqN6JXHKaD9_JUO zOv}5}B*;5Fg#81K8$jaM$EM88)zHwWZ62Z>AV`3Ovhd??qz3`5TM2@5nqh$=R$xKG zp;$SYVtC;;wnGrnu^Q~{pp?jQ=nFwio#b~(u4kWciT)(5(Nf^x42Yhg3O@&h+=>J< ziE_Yu4?;dVIeEcAP}liDG9RcIvoZsZ)v}O`nll7h&6mW|--}A&f?R1RlC$XB%1uH^ zp&Uv_@bqcB|Jz#5>zqxM-Vxqn;E91t$fo4aLb~%L0~)IaRW1OML#R&Y)%D*Oeyspx z4Z!J;ndRl7C3eg$3qB;(Ir|~$4A3dlc)K`oiY~_US)3YXg(OQzOpjnE^VF)8)2!UCmvcm+z_*o^OVhh?3 zvf1QrGYk1us@PjejRj&paOwFTmO*xd{oXg)d%cvEZ*g>zh$8YjXL?THi~kLu_o3S$*PdtjRs!(g4}$8 z%ZgTId%?9Ort>@FNVC77RKO3UDt1fB^oxJ+sLBFXzzutH%DH~a^1?=%BR?zP>#chwPNa`Y~2I;oY%0k;IKQ3Pp)RpgIOch*KG@#4U zB=Z|TMz%E<(|}M{U&hc}C*Bops@8IkHjSQ}HhqkX*iZBXrNek->?4iJS_kizwa`?r zl}g*Y&kGV$H&74`z5(J@ALT`rTxJX$J!d1;kPg~2$Kc)PC=Fn%G z>5BVK1LSptCV2@KG1fBX>!2UzD|F-FS6|E=Y?LD%Q}UQG)%5_v0uCZI5wfsj+s*zX zwF~*%U8BgX^=qOG_`mN$L=?p+Grl<|VwM3|Uk=aWJ|tj?FAvcy@{=D}zq`R9;;c!I zGFoD6Xm|hrMqdEj@U`W&3o)yGpUba~^80*fJL86vf=3_Wrrb&*ba z?KedRvVDX3)-lLjz3%IyrvUMWxMKUT1(Ej+G!!XNz3x+nkj%;Ht#js#`)2%zre{}B z*G?JM^i&Br{o5VV=fl90YjYo!6LNOeYlTUY$|DDKivB>*z+GSyJ(5{no`wX zZ-cr@c_(Kvt@AXC@4u%pm~8(mjbW&RSMd1!0eLSr%{!;MN;WpA+K9E_Nl>WW z3#?gxlg7w(5;22T;=Y&X!U?vI%F}F%qlT3E)J7YBB<{wBK)W zzyXo2V&4z;14%)!G@+NxK#vujB@joal&WKM$x`a*bGe@FI8U+ssSJFjle7KIhnzu5#HLgo4NoH)=N9D8)VKF!kZ$6Ls~@e zUT#1NQxmC;7XUha{?;k<s$-+{8>GGS`v8dN1gZxRF?fsq_b1|B{p#Mo|#(1S(A0cK}vYIWXNMT!}~tuHtmZtEaM3} z>I9AwZ+deg4VW*}gePiQq|FSoQI-r9{SDM~NcPq^4{-M7fMEC{XD>35u+WVDBrG!8 zE8qed__q+H4#>{-$9}boRdc9r!_?X|sAdb&-5t>6*3iG@&6_un5^~zL zykq@O76{26bo7L7MUI)r$3EB_YHzCx2y_F3lEDE(~ z^bPASHRy&oSu^?&y}o`e679)q?YMRwGW{~fs}@=?mO?YJ370ryW$2TR9uBzyq+n|L z>10|^=qQ9DFhC6RAT@yqNOL|G!@^;Z?f2>tU`hsb^Rei-c|-8xJfUyB0s=72*A% zZraIeO}Z9TQP>s%b(|E+1e)>Q2s=biBw)sui?d0*sY z^bzZTJNPEB3g#tU2~!aZzr~&X(_`K}qQ_;Ky=e(%d7nt^J=v}va$*0h!o_*h0VyIt zWZ4<#t*rbBT>Tbw7eUqef@nN&Xtn!lry$ixWCEY(P(eHRWWwTRyyKH89+2#vGIi=F zc=-Ad5gf}U5KT@1YP_>W?TF~me$F9pw9J5m$G?X)A8y7MOu)KU=Q3gjWB&t|_3{g= zBLT&Lr(fz^iHc=<-~nPDW|(bF^NH}TCuDCGM-~sojr6R*up7zb3Q#TqGLA24^1r;X zQ-ZK+7dgE`g`$)JW+4zp%YiPm?h6eyY;u48_dd{JXm{xb10qp=#SvCqao@F92uKb> zEl%-cMisIH4nbY5%i7p?rv4yTt7R<#HN4)W>!dt{OH(7=ziq{PWaZZ`a%vi!@p!PV z;P$?@Hs4SQlTE9FiPY)n4g?6o&dtwyoW65Fq1(CrXL)a}vBiBP77d~3mjN+tgR9rB zkxD1|vgh41!H&NuPmod3KcnAy?m%8l;?oeAh0Vy+ZA34OGZD{3Cw!S~CWz(y<D<6o3UYz`XfV(^Y4>bIQ$t0I3OGP1n6B= zAER|`sC3tELVv^cT3Z}mKX6bvtDt0fYs>nkJlV`ady@KEYaBig5ZZN6Hc~E@1$Myr z{b&{k4niA6ZiL!K=M8;`Qd2%TqbI%nBUBOX+$?RUt&@Mi$Rs5GUkBxZK`z6K*)G{HiCWuDiNk$SUb z7f&a)abR6Vc2XNNgwNM>L|nAVsh32{oYl1GVUKqh3s3ZY_xamSd|3%@2CBm{R6y?K zgu#Vk#PcwDE%<~b$lVC%R^GR2>bw!O7xi)0@j$HuQYtnA&sSq!l`&J*1rd>jio$I3KZUCmFP&NgVYQtc!qZAmt= zjB12<=+G?Ul%<`7jSapO!f!KvuykL-Jwoeu1Fh6&mWv4mcs-KoMfL|(7*U8*&?e}Rki*K)Dj>~Yel5i)fW z`O1OBFBKZcXny%;wWnZPNJ)sI(8zR5Dvc-)V*!@z>1I&Z?uGX?Kt)QgSH$U~6WF3) zO}aYjbn4oL0Dz5U9Sy`zFW1qq(WAFlY(eN+D~n3;PL#!w0Y`WN*&Jtfl%p7wnAL$8 zYBSA3G~a=O_XP8$$mrn28Ng-#_!why7q<~hCuRt>=>w_4 z-;fSY{t;Z&8Fgdtj>%?D@;h-8zwpx~OGzaLE<8SP<|OSTCJoHvFVX?QcKj;mk*QLp zcgH&N7(N%H&)G31J{$`$`F>?%G~EG`3fxs5k}7bA4$t0z;$M~4)L$S5ilVJ5fXqgy zr!iuf5b3|q9mg=!kK#n*z+8|Wi;?2xAw$YJ27*)&jJhU?CcVhfkirapqvg4$h z=!SVc8`6%mR!VCqK&xI`pg_448iuxR(|!Zp8L~tiAYdN}qYAWO{!v_UYAb|YP&*en zjvOSf9LxM*cz6MKQQGsLrGV5{z`CL8MANkyF_!(_#&4#)4m?jlqa_Ic=3CPO{in2v z@!P5Ahf)Ncd7ZnN+w*JO<2q(6xdjLGow@pGHx=2Nq@h z=FO~5&EO3Yy{&wAs8I|xCdRI5H}bYB%i!d@C$_&bnhSw|qv2G=aGpoj>t6&agk1P; z{T-ULM;;2VlDdF=k(?~b7d-F_@076!JS1B2rRdJG?*q0^9C92qbug6C%KuKJ0vw(M zRKD_e-rrp~74jP&(V{D^>l>g?lr3twjXKoYkukjExC}ATSy?(}P>=*?A&81VYQvsA zdrG^}iu3@wKCbWSc<(K`53CfDj$IKba+`X$qNoZ6Q`(L0dSF5+#RVGuh(fE9 z)%6^pS}Dx6nG#9L@z$W#0$!m*x2ae6{}VfBvjHF~M<0#H>Osku<>&l?)ELAAZJ%Lp zR5Z=@$sd5`Yw(r-L~ql}6vIN9U~EUk!uub|IE%)nR!$<;ffvdmrVw1P5#z^7aIXDl zq|hb(2T~$hSTw_?W<@mS_84;?e%PsB*G|iZT*xM@*J`4s%3^prU|}T%z?BcYI3Ckx zJ4@-y^b{wo4R96gXU)c0i5#DUl?-XP(Qo*&SPOrOUEf!I`^7AF40w(EpR&?~+V2CH zJB>MsO0N_WXm|LcA!sj>iZ!$!YiJ^D+e)VBz`D6(aoV79blOF@5ntR$_O#t@rt)OP>yo(!Oxe)d{KxxIS1c6ve<`d7HPE$p9(e?I(WkSn!OZwF~5$t{rEK)?!1e}2g zPHxueVN-RW6~vC=cyzj%^t`Z-9Eb6@%X)Qk5^-vHZ~iGjy%cAICIyHOsnstQ)qP}B zLN||#R?hckc)>fY03^p&KrZ@>5|;t2P#Ai3qZ8|nde`qfM7FgXbSzc!YuH0e+T;B?L`+s z${#0s47pAaUa}EDOyqz9t7bt^36|}8#{;CUSKQu(oMH-Ohe*y=Cu3Ijx-t@Er%YDn%s(qN?-hUgEqhnk7{&(jLHAG>kZ8Xa6SJsg_#g26d!{*l z+u}{WQz!40jb+IfcFtfbo{Zx3G4I!EzKNvCTkAd=9vb{h);xN)(wq{Scsu!}SPbpQ z)4({+!JJjv{8x16AN(21?m_qLUV`{Aj;~!u=mLm33M8be$qU3VVqwHlM@eW!bxopW z2%5r1qaP+wK42y>)JMj03&k!yI@S`c6)~&Ik(4yrp_s-ptvDSr*C=<7itDmCiTj36 zc*D4jeKMK(rTo7(xm^6p=eo{Q1wiu&O~@d5z>LO;@r}|i-PUeTUWGzW?qFY<*XBBm z)VMJY%`%(R6tqBOJtolxlYJff>|(GH$h2S0`(9It+15gi2CEeU)L$1>djOkn~t;Xp4^sY=gc+_ zpRjb)Sci{_ko-U)EuIlbMHFB${GXF-B&oGP_JOd5z|X>hp<&Y^=k26=$$SaOZBXsJ z05K9=H50(WVU`RE(|aO>IAR`T-MvTY=WR*r`Q-wQVT4bfE;HEML5K5fi z3(_ozKs8EXZ$(l z7zxR+cJSz_RB``t^CS|Sw~K1Lqa1zKe88_+KOA@|c{|G|VN5hwo_x?aOpTF0A5J?l z!-(#yd>CH28rOR|O8>?#TZJ>5;=7)g4su}o!3jwt>37z&p;e9#B&XA(spra$j_yRT z_#zYjnFA*i?jFS&AY%F8OCF~vn#etmCZuif6lp_25oJB381J61y=f>1 zw8m^~RY-mB`#R)_QrEu92e&B+MtvPXit@Zy2FL@m^vPC`PW@P~f1!v90Nnq_IBXy8 zpFJ?N;bLi7g6Aow)=p?1d-QD9Ox3K1ZpweobU?ir$wC8E50KlG)ul2$46J^;*dai= zVjsm_I`U2rL!Q8zYm7gjlmC{~0LB|N2txco0txq#mcD?dC*2-;P)b3%Nz~=0NF7d9 z%f)&tys$cUNq;K{uu@Nt3QF-*xCF9<>LE99#_|E>zs3}UiemCgpT^i0VaDxqXNUSm zSIL$^ZmguG!2Yic`>6xazwqn95A~xJ;QKF7d|P*0xR4+qw|N|bZ$6Iz$hk@G%I-_tCy zy}~7wU{j-hpek9ua~Kd)Vk1I2H5Q78bLP%1g%syP+geR(W=B2C0C|ehyD+`yKIymt zcZqB^g=AHtJPEYmve4OL;S^c{zwjMX5lT4pc^jyr;+-B45RtS**Dhp`PUQxQ#-lJ~ zg`^h&^5Az}Mw>{;>{Q;K`D6^Od-C04sN79@KHd^g;*d34lb%#iTx{s!;c;a1R~zh- z-Jcr@n*v3vN&O zV@J}4qvD*~Ru$fLIG=kbF~CkRPbub=-BVGg{DyPe9&Y(?rs?^+KgxFcyS&&e-LNN4 zX8Q+mOOB<|0xNFa`fXg)z-6=I-J!cZ4`*bm*W{V)$s6*>$gGx|TGll1FlxwyZ6$cR zhp~vGt7cdIo_6;)b|!xo?h_^&tDAQ=HWs3%H~9MtFgdkHIAwjz0+eSF(9<~H6L2>( z;Di&*3xZYSxfrjDL0!^g$2%>EPe_o5F}V~M7gw@+wiUJ+KcE43@S*Wr@veB2l!KOO zK(rLs`w7fdj#t8}o6M;kXc}!R)s=Q`^ZPe{u<5Ts-dhm9<>&4cq`hZFdh~zXa%bn# zNW+|+`7XyG#Gt>XLDdf%T>k9v`OH{T@H_2LrN{w`_Y%MqZJ8s(B1zOaJOWPr`c0dr z+`oSx@B3|Oq$j{r2>?l#ityZBQ^dYgtU>iD3~>H5I?s)J_Y}}qZ5oz|TYP!^mIQGW zh@U2-L$xUuxjc+yYQu3-B3QMPg zm&tWHLg%5t`sQDmH|CSZW-S#K7Jes7z0)AR^19_fOH0e;jEvzsfrK&2z8Y#gov>5d z+Es@t4*rDukWnWJ*fP(%Zg|gS$FcqjQ1H z%ly%+aBSEuF*fVsjhi=94?I4818=*s5i|v%mO_w~1DwNG%RV%ZEfo zLT9S;tBqoci%gk@mn7W_M1@+By({nst`QTESo#R~8T^Bw@$lsyZr-|e8m7t%prJoI zL*tWrivPN8ia8!uGp@kJ+&AOUF!O_A@y{Z<4dr8|2P?9UG->J?T7QqQnmSOC&PDEj{C)HBD~k%}Df4(O zEO0q}0z~TIWpZOWFJ8VZf#xUt^>Jy7=d2Lk)ZA!(WUW9}?M%0k=>sEOUC@(>+gPKY zxR_%^RB3Qh63vbX^>V95hZRr5BSO`cd3JtzI-_ZMzN@X0@e_C{Ug*5Qcs(*mW-`1?<8$NL-$6a z{*)DcCH%4Q(;%2)&2Rb64JTd-Gu-R&tz3KyKlXG6sQ)uTYwbn)KFr1O7s$1Y{sZcE zHy)jBqBH2?n8)9*!g$qT2V1c7`^e;E;i4t@%7UWr2l)Bo62npW8jc6e}0pr0~XyY{fM-;49B$#qU9URxQrOG>s;xKIogZ^9`m1!+#q2kub53WfQXvkw zV(UF|&-W+W3I{s63dd;wJZ3hoEX9gRq_zBPnU#3RRY3|-40Bf}SEBIr0CO5$LQV_( zxC;)9-Bav0t9-tXK3)nKxD$7Mzd~a!#?BmLx614L0jFiIsxVt)Y`w)TejKCsky~@~ z>?-)poh#`z;W<}5CPFCsUmHHLL`r%jMg*=ZTA>iI6ZrJuUU_?QSN!_|KRvGGjC!O6T3;7BHl{ zfGs+#o|UfBU2b7v z@hn1F0XkXVjN?rbOqcI)X*^?xcFWmFx|qVLT5n<^3TxPwvi87%18btx)ARChYvqpN z0RaKd4X1QWk%Ul=y3R|B#ZC5hyQvS97hV$X!&699AA;b10#wZ63b7IEq^+AllOg9u#a-jsjjFI*(P>IgE<{v< z*p&F-K`tVfe{6!y31d5Da={Ef0WPeg` zCxPE8SSIkT+D;K7qxS{aVx zojQRH{kg-Th-eDPz-^5pvA3?jI`(z2smi%~#y^94Xe+Wwk8rE$`67Dk$ls;@^ z*=T`_jrATQGk0y@GuNERt_Br9qlD16IT`BF&IK-$q4TM{c-P}U1k?{Z2P#CMA?`5| zi)Cj7>9mY1OPPGQblt`c_eS05n7WQeQcZkBiPNX_l}1S z$h(ggnRnY zu7(Oo@|G{JJW=lf_<}gqFUrcM!mBu(HZs&62)D`^7{1VIubHdLR2E>`_s?otk6v9@ z>d+$9NmBP^(*XqLoyp(;bR}LIDX*vyz*d)l3T2u`&qXZDXq)ctZY*QZiWZxPjc1d; zzFb|8_M#_zd`MRXjbNvs>7mZt?GNUPi*MV$ouj)7XzKu6H*CS~RodEf(I?{V+qe6( zFFD^cPH4cwv$uHG5i%rr^d!Oue&Y?tpUIpxQJgxFP1=wgW_4E;nd=(V#q##;+w!Oj zSm!l859fdW{JEB~g^`ib{+bLmNKQ@z9nc2};OyTrJ)u{7W z$K}L$EjYEml2_hz<8WmA>&ycWxFdBBmH?n92z2*5FHsw`4Wvg6gKL^pKS@gOB)}rw z19l*YiK1Dh_CdTF=pGQ7e!Za~KgpU4+N8-N`8-KCI2$IT?x^Tstyj5jpZ)`_VWn5X z{b$=F_)l4vg|M8=hTnIN(^RfRciWAIhE7Hziu?A4KZ5R!b!dp>N4r~c$d4>(b=2wK zWTCV&{dy%kgHlw9{JCO*EwAESd6(sVn6$=tS&?Fw6Y^6CPoP?63)aq47Zkp(|s>8kY@=k44afK)N z<*@dTaq{OPMK8>6bZ~tdDxY@1`eXyrAqsWZKy+N6j|{-(*qH_^%vGhijkk?m6*79Z zr@v@00%>UY{O**bZdB4kOx=12h7`Z@tF^(Qva6h=Q9)>YY?X{;#n+|Rk$U!=jYmA3 zaqjGMI8(z75={k8`e|vu&tY;_l2f{Hp|+cwTVi5j!&jI6x!A8|%9Yn;NLbz7qHke0 zi&+IfY{O0@e1qn73ZLf2MxTSSnU?wYPZ;JX+>;r1rr~nZsumB~_2*7*o4=A=XSjON z2g&#NYn&{5KQ9r^jC5L}LnNH$EPc8?dIL5#foIR2T_*P{<2Cu}xvtZngC-Q&b3~Wm ze43aK%p38V_1sUd`^a9~$|kKo-bsLg)%MzthIq`%kjKLP1$*GMZf{V@m!;c~9`Dr5 z@%;d?fzxfwWTf^2vTzI&y%2YmzxbHSS1K{H9DC*=E2#T9g~q2(W|$2N!y>Nj_wKBR zd)cY`m$Bk%_MltJIS`GpI@$?8TMSU|63*`zl(u-fhslT2EA;sLO^H3`5n=M7xt?~M zUc-ZYrz|VF3&mq9gQDNR{!y0&N7hc3FNiPv$~uRa7C8`)kTJ#=zApR7ouxT? z0Jj$XT^ds&H#ax-`gLCz)6pqGVbWxP3(l37l<?IJ{z?t&}8s{^U0fNEbqeTbB*u5kW4bde-;89wu%5?o{YuSy}65HltA<2vcE99U)<)a9@42V#YXpIN{0Mzl2IqXC&*>z zQRRhViyx>PD;yjgpf5ekq@Im&32s^Qg5Tw`lf6h*t#YC8aMbq-Q9EFa&gR=2AoN7*z3ga${}8`s?W z_&WVmdD3xLM;mSJgZNQV-B%hbptx^iyimRjn5OWV;r)7Iy5 zo`2vw&$ru}cL(Y0KGikct}M|X)y>M@{ljVBWN7sIb1(McOW>lK1X6};ueEgm;DIyA z#pF@@s(<*~y{OM!>g3CVtd)`1!QNy1ZX}0YGawyXj=XhMa)i1L+}Oc)HA6=G-FhpP z-6N~vLeBy?>*Z$x^MCghWc=5>2z}JxZ!gufwByYtWciHlMj{Zctrben;h^l= z(dQ7J`>Xea!s6|pKuTGT=P-_xDL;OGHe64~ik7kG7xxM($9v`#_PH6KUGU;!RQUCg zme0ip8q%Ja7|vDbi$wA=cr-0&Zw(1%`NO?mL^Mtvri|cV!`(1!{#+jqr3-7kOc*|_ zKDjUKdVJxr^Vj1m!>%_q9*w%DxXx3waLv(y)Xl4EM7h=W%nFc{IVZmQZl_{FPLFqW zz(C~Ug*m~Z{i$b%=NpW~$uvduye-UGfbkg`i5MqQ>N^p53mjt38BQ}BnybaeQ-i+sUbRlYrQrtFzB zVQctot1fMGhnU1ERx#2RIsJ+SZ!@pmdOm4a%!XYtFN5x%ySr$e_9BZ_+Y|PTUwJh2 z^bA%2McSAxok$H*CIKZ6QG;uG{y8W3^8iZ~LdJbhgk#xOJ7~Y;0()kLro}GX>mhAW z_tq+2_-jk<)bPK#g4S$vKYN4mCLyuDw3IS*VrS8Yk_yI7kj7kTk zVC|5+nCfbI^c$ou@=$;77=^^rb>To=i%c6V>bXLw7krbfy}%fP!^WS zS!98g{F+_`C~P{&nMT;J`fP+m)`@S+1Q8TGB*VWVt>CiFHcv{|EyKMO&M;dU=n*UK*nv70a*g1iL^U zwtJbJSqYSD5|lnCzN!PMP{k^6335j|uL#7J zy0osM6X=!zd%8S6b3y9izD}i&S3)k`xG@Kzml-1RA&)`Sc4W`a-8zv*9mnRlAt-kS zD>1C@7qv#$nDP{WU@7N6z0PmoY>P`IstE!Ld)7pF4))(xjNOFG?zMYi)0$%oN~c8ua<0^oJtn?o%s^V8k{rB zyXgHxxI+-xhz^JrF2EAIgfRAsg`ZDFqNM@l>=tKq`1dwQX-vb`H&g8ukH?pzN{y!t z>cE&O_$U;ACNTb0i*Zj%FBXe1m2F1)<461;P8vG6hK~J{QXS(KE)-?L+zfPfEF&On903Gb`MT`GZ-?uQm{&^ z1JEVmN=nL-hv*jgYFj5?V|`2F-WQh|&;>xabt1=HLxptswgvFYLg;$_yK$*ZJ*-nb z_5K%u+>X9li^8Ufx-^_>cp^G%Tkc4HcW2Z{UzDh$L^R0HMvIsD$__Xx%i(HfikLy!_eE7zRdOw-~VPfT>?kJ(?P0B#UIralH z{m&t5|M~3{l6^WnGElS5&6hnmSM~4HNIPZER?1mE1LU*6*W0t#TVT=tEgLs(%r?yI ze|;olwfi>Dc0b+e3PT-%o+lwMvM^ZES5mjmA!=Yp1j^;#M;siSiRf79^J<+&dP}#| zNWI3e1U9Tw-*7j#Gu{5)$6M|8@aW5^X*$r=HR*e5XbOX92Z(y_WBv?YD7o#Qah7wr zR*_1YX@Lvh-Rk#~QK#r~g;y0B0aq9sbcn8Z#_-l)Np{z@iC{zLzP!5n6*gKf#~3)A zjf0BgIMB5(&kiD|lozs2{oIM&6AJV*^*D^sx^edHz0JoL7@$s& zc>jLm&P`ehr_WV`&zXx(FZKzyW=#83lMayW)$}W+!j`$@Ku0eZn=GRof6cUzZtS9; zJQ88=3S9b--f;nA`jI-d$u+_Q7|) z!S(qDmicvSyytjNo56p#*Cubx)frX_yAMQ;Q#j){x9DK3eHfq80=d~*1!$h@q>2=r zQRrgpDgitxZA4*E(VT0XrX&mWzf#vTh5B3fiu}kZLEc9Q9ct#(-WWK`a_s&%_iUrm zo;m*KxHoYtER!|ws0qL) zorOZjEJ|c|f?CIK{b*>^RSXU*SaS>y9`;cm-)>kob>uUB5_I1sIQz#b7lI=yIW&*J zb4ZRd1mXLjPZg;B@yl~+HA0N$S6ww7u z5!J{e@FX{25UMY2DeYQ3YE%I02+bV4+Oh?u1zK#4S zreaMt`Z1G53#2$fv$zYH);u^Gb!Ys%}|?Dy_Lzpwp*ZkV`sL>#`{Pq z>yC3um!W3Mff~ckH0}Y|f%9rchH6B=DQA4UA5TTZ9cX&X$Jdb~=RvL*9~!A>w7SCy znGPSu7uCGpzG6>Ss)ufxd`pk#BXlDJ7$>ClQgSt%q2|!{b#e<=R z(Cs<|fKf0^+98$Ah7ifbmX4)R0MLJk&q@>_-Z&0ngoAxnF0!r)0|w(Tgj_I&mR43R zDbG>p#c$xXxVl%%d32m8U{x3?VwlKRfM0T}ti$%X0J<;@Crk!S7r<3-069p#^+1TE zZd^wHrv}txSD_G6+0w0Zegs02YpC95&YA!t%{m&ZaFVkC)Xc*@ZAHat0a6a;sCgPC z^?g{JdG4gBhWf|W*48D5@`Rlv`A*&1o)lNC$j*HAhS_GzS_-6ee#kimi(FLu1i=*b z33P8Y>$q*>E<@!NK0f$V9dNmGP=9*$Sse|I_3&OjG>Z*@nSs0QTHZ(~7zFldEk^C1 zy1yY2mjDGa@>FYr*uSop)K6g z>(~rZsLU|^mX5jYET|#Rvmw4@A9O|#ful`Q5DO_M+yC|#OrM0b6oVdZ?EKwasbGQRDG^5S^L~-s3mjQiq;&ogx+sKQ+S$&A5+>8!?e1d zgk?n}^zmAh2&&Pa9lI)``mBJ}!`o_ko(GcwFOWQq^6)*~s1MEZz^FML;F1s*0RZhu zwFt9wKAb=vMx3fC4TXp{&m+6D5G}rR$r?%`Y_Zt@aT(R#+M~2Kz#u%2$CDys5JFK| z-!;$vYvyRIUeNB*lZr)R4zhj$#F&CZuYn2=fxTB7~>Nloq_uZ9LA!jcpn>CFqFSJa1Z zosNJClyT)GW~Kk=iW~3brD|zovkne_ln{!h1xT?3ljZKie5!UFf`1u;9HqK4!mtno z{Q=16L#*&rs%O7i581DlBrLXWJS$AN5`inHj>LMG`c%^=PtC21QfYlaV% zccVhq9!x+1mv=43p|mr)z@SGEMxy|GsjK@fn5Tw&QA7Ka>iKurF13eSCVHsrtfX!y zq{^0@10>KMk@QR;GuL8`zPs1`}0B52I9QOy3|rg#4D jA%CCt`tQf3)|2g2@>t&shHb>@V04%3X~!+wdF1~AC0AZ- diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb index 7da9577e8..5460a2289 100644 --- a/test/plot_normal_recurrence.ipynb +++ b/test/plot_normal_recurrence.ipynb @@ -95,7 +95,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -117,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -132,7 +132,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -173,20 +173,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABN4AAALACAYAAABM/b/3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACtNElEQVR4nOzde3hU5b3//c9wSMIpaESC4RBQPMUIaIgWECW6RYOim4qlBxEUamnij0JqrdYqSNW4tWXT1kCl7kqpbaVaxdaiEI9QkRrQtNXYFlo0IIfIQUMCgoT7+cMnI8NkkpnJmln3WvN+XVeuy1mZrLknQfLmu2bNChhjjAAAAAAAAAA4qoPbCwAAAAAAAAD8iMEbAAAAAAAAkAAM3gAAAAAAAIAEYPAGAAAAAAAAJACDNwAAAAAAACABGLwBAAAAAAAACcDgDQAAAAAAAEgABm8AAAAAAABAAjB4AwAAAAAAABKAwZtDlixZokAgoPXr17f4+SuvvFIDBw6Ma99Tp06N+2sjGTNmjPLz8x3dZyAQ0Ny5c4O3a2pqNHfuXL333nuOPg68a+DAgZo6dWpcX3vfffdp+fLlYdtfeeUVBQIBvfLKK+1aWyr56U9/qsGDBystLU2BQEAfffSR20uKy5gxYzRmzBi3lxGzuXPnKhAIhH1kZGS4vTQA7dRWDyYKvwuRSMc2frT279+vuXPntvjnsvn/Ff6dEL3vf//7GjBggDp16qTjjjvO7eXErT3/HnDT1KlTW+y3M844w+2lwQM6ub0A+FdNTY3uvvtujRkzxvHBIVLPfffdp4kTJ+q///u/Q7afe+65ev3115WXl+fOwjymurpaM2fO1PTp0zVlyhR16tRJPXr0cHtZKen5559Xz549g7c7dOBYGADAP/bv36+7775bksIOlF1xxRV6/fXXddJJJ7mwMu955plndO+99+qOO+5QcXGx0tPT3V5SSurSpYteeumlsG1AWxi8wfP279+vrl27ur2MoE8//VSBQECdOoX/72XbWtvLhueTmZmpL3zhC66uIVbGGH3yySct/qI+cOCAMjIyFAgE4t5/az+Xd955R5L09a9/Xeedd17cjxHt47WHE9+LaLX2M0mUgoIC9erVK2mPBwA2saEhjtba7xzb1tpeBw4ccH1YcOKJJ+rEE090dQ2xampq0uHDh1scejnxZ6S1n8vbb78tSZo5c6Z69+7drsdplqg/18n8/6W1n0kidOjQwXP/7oAdOLzuImOMFi5cqGHDhqlLly46/vjjNXHiRP3nP/9p82sDgYBuvvlmPfroozr99NPVpUsXDR8+XOvWrZMxRg8++KAGDRqk7t276+KLL9amTZta3E9VVZVGjx6trl276uSTT9b999+vI0eOhNyntrZW1113nXr37q309HSdeeaZ+tGPfhR2v6MtWbJE1157rSSpqKgo+FLcJUuWBE+HaOmjrVfGTZ06Vd27d9ff//53jR07Vj169NAll1wiSTp06JDuuecenXHGGUpPT9eJJ56oG264QR9++GHYfn7zm99oxIgR6t69u7p3765hw4bp//7v/4Kfj/QS6GNPbWt+Lr/61a/07W9/W3379lV6ero2bdrkyFoHDhyoK6+8Us8//7zOPfdcdenSRWeccYZ+8YtfhK3tgw8+0E033aT+/fsrLS1NOTk5mjhxonbu3Bm8T319vW655RYNGjRIaWlp6tu3r2bNmqXGxsZWv+/Nzz0/P1+rV6/WyJEj1bVrV914443t2u8nn3yib3/72xo2bJh69uyprKwsjRgxQs8880zI/QKBgBobG/XLX/4y+Gel+edw7Ok1CxYsUCAQaPHP/He/+12lpaVp165dwW0vvPCCLrnkEmVmZqpr164aNWqUXnzxxTa/H7E87+b/X3/2s5/pzDPPVHp6un75y18GT7NYtWqVbrzxRp144onq2rWrDh48qCNHjuiBBx4I/hnp3bu3rr/+em3dujXqn8uxxowZo+uuu06SdP755ysQCIT8Of/FL36hoUOHKiMjQ1lZWZowYYLefffdkH209uc6kj//+c+65JJL1KNHD3Xt2lUjR47Un/70p5D7tPa9MMbogQceUG5urjIyMnTuuefqueeeS8jPBAASLdrffdLnf1c9/PDDOu2005Senq68vDw9/vjjbT7O+vXr9eUvf1kDBw5Uly5dNHDgQH3lK1/R+++/H3ZfLzTEkSNH9NOf/jTYzccdd5y+8IUv6A9/+EPI96ulUyKP7brWfuc4sdbmn9uvfvUrnXnmmeratauGDh2qZ599Nmxt//jHP/SVr3xF2dnZSk9P14ABA3T99dfr4MGDwfvs2LFD3/jGN9SvXz+lpaVp0KBBuvvuu3X48OE2v/fNLfnUU0/pnHPOUUZGRvBVaPHu98MPP1RJSYny8vLUvXt39e7dWxdffLHWrFkTvM97770XHKzdfffdwX5r/jkce6rprFmz1K1bN9XX14c93qRJk5Sdna1PP/00uG3ZsmUaMWKEunXrpu7du+uyyy7TW2+91eb3I9rn/d577ykQCOiBBx7QPffco0GDBik9PV0vv/xy8C0j3nzzTU2cOFHHH3+8TjnlFEmf/f99++23h/wZKS0tDXtbj9Z+LscaOHCgvv/970uSsrOzQ/6cJ6IXm/3hD3/QiBEj1LVrV/Xo0UOXXnqpXn/99ZD7tPa9+PTTT3XrrbeqT58+6tq1qy644AK98cYbCfmZANYzcMSjjz5qJJl169aZTz/9NOxj3LhxJjc3N+Rrvv71r5vOnTubb3/72+b55583v/nNb8wZZ5xhsrOzzY4dO4L3mzJlStjXSjK5ublm5MiR5qmnnjJPP/20Oe2000xWVpaZPXu2ufrqq82zzz5rfv3rX5vs7GwzZMgQc+TIkeDXX3TRReaEE04wp556qvnZz35mKisrTUlJiZFkfvnLXwbvV1dXZ/r27WtOPPFE87Of/cw8//zz5uabbzaSzDe/+c2wNc2ZMyf4dffdd5+RZCoqKszrr79uXn/9dVNXV2c+/vjj4O3mj6VLl5rOnTubcePGtfp9njJliuncubMZOHCgKS8vNy+++KJZuXKlaWpqMpdffrnp1q2bufvuu01lZaV55JFHTN++fU1eXp7Zv39/cB933nmnkWS++MUvmieeeMKsWrXKzJ8/39x5553B++Tm5popU6aEPf5FF11kLrroouDtl19+2Ugyffv2NRMnTjR/+MMfzLPPPmt2797tyFpzc3NNv379TF5enlm6dKlZuXKlufbaa40k8+qrrwbvt3XrVnPSSSeZXr16mfnz55sXXnjBLFu2zNx4443m3XffNcYY09jYaIYNGxZynx//+MemZ8+e5uKLLw7589GSiy66yGRlZZn+/fubn/70p+bll182r776akz7Pfb7+tFHH5mpU6eaX/3qV+all14yzz//vLnllltMhw4dQv4cvv7666ZLly5m3LhxwT8z77zzTsjP4OWXXzbGGPPhhx+atLQ0c8cdd4Ss//DhwyYnJ8d88YtfDG771a9+ZQKBgPnv//5v89RTT5k//vGP5sorrzQdO3Y0L7zwQqvfj1ied/OfkSFDhpjf/OY35qWXXjJvv/128O+Nvn37mptuusk899xz5sknnzSHDx82N910k5Fkbr75ZvP888+bn/3sZ+bEE080/fv3Nx9++GGbP5eWvPPOO+b73/++kWQeffRR8/rrr5tNmzYZY0zw/9evfOUr5k9/+pNZunSpOfnkk03Pnj3Nv/71r+A+Iv25juSVV14xnTt3NgUFBWbZsmVm+fLlZuzYsSYQCJjHH388eL/Wvhdz5swxksy0adPMc889ZxYvXmz69u1r+vTpE/L/oxM/k0iamppa/Lv92I/Dhw9H3Eez5ufTp08f06FDB9O7d28zefJk8/7777f5tQDs1vx3WVVVVcT7RPu7z5jP/q7q37+/ycvLM7/97W/NH/7wB3P55ZcbSeaJJ54I3u/Y34XGGPPEE0+Yu+66yzz99NPm1VdfNY8//ri56KKLzIknnhjye8QrDTF58mQTCATM9OnTzTPPPGOee+45c++995of//jHId+v5hY92rH90drvHCfWKskMHDjQnHfeeeZ3v/udWbFihRkzZozp1KmT+fe//x28X3V1tenevbsZOHCg+dnPfmZefPFF89hjj5kvfelLpr6+3hhjzPbt203//v1Nbm6uefjhh80LL7xgfvCDH5j09HQzderUVr/vzc/9pJNOMieffLL5xS9+YV5++WXzxhtvxLTfY7+v//jHP8w3v/lN8/jjj5tXXnnFPPvss2batGmmQ4cOwT+Dn3zyiXn++eeDv7+b+625O5p/Bps3bzbGGPPXv/7VSDI///nPQx577969Jj093ZSVlQW33XvvvSYQCJgbb7zRPPvss+app54yI0aMMN26dQv2YSTRPu/NmzcH/4wUFRWZJ5980qxatcps3rw5+Hs8NzfXfPe73zWVlZVm+fLl5siRI+ayyy4znTp1MnfeeadZtWqV+eEPf2i6detmzjnnHPPJJ5+0+XNpyZtvvmmmTZtmJJnnn3/evP7662bLli3GGJOQXjTGmF//+tdGkhk7dqxZvny5WbZsmSkoKDBpaWlmzZo1wftF+l4Y81kzBgIB853vfCf4762+ffuazMzMkP8fnfiZRHL48OGo+q2pqSniPppNmTLFdOjQwWRnZ5sOHTqYvn37mtLSUrN79+42vxZg8OaQ5l8erX0cPTx7/fXXjSTzox/9KGQ/W7ZsMV26dDG33nprcFukwVufPn1MQ0NDcNvy5cuNJDNs2LCQX/4LFiwwkszf/va34LaLLrrISDJ/+ctfQvabl5dnLrvssuDt2267rcX7ffOb3zSBQMD885//DFnT0b+Un3jiibAIbMnOnTvNySefbM466yyzd+/eVu87ZcoUI8n84he/CNn+29/+1kgyv//970O2V1VVGUlm4cKFxhhj/vOf/5iOHTuar33ta60+TqyDtwsvvNDxtTavIyMjI+Qf5AcOHDBZWVnmG9/4RnDbjTfeaDp37mxqamoiPqfy8nLToUOHsH8MPPnkk0aSWbFiRcSvbX7uksyLL74Y934jfV+bNf9ynDZtmjnnnHNCPtetW7cWv7alf2x88YtfNP369Qv5JbpixQojyfzxj380xnz2j4isrCwzfvz4kP01NTWZoUOHmvPOOy/iOmN93pJMz549zZ49e0Lu2/z3xvXXXx+y/d133zWSTElJScj2v/zlL0aS+d73vhfcFunnEklL/yjcu3dvcLB5tNraWpOenm6++tWvBrdF+nMdyRe+8AXTu3dvs2/fvuC2w4cPm/z8fNOvX7/g31WRvhd79+41GRkZZsKECSHbX3vtNSMp5P9HJ34mkTQ/77Y+jl5PJEuXLjX33nuvWbFihXnppZfM/fffb7Kyskx2drbZunVrVOsBYKdoBm/Hau13nyTTpUuXkAOyhw8fNmeccYYZPHhwcFtLvwtbepyGhgbTrVu3kGGVFxpi9erVRlLYQbVjxTp4O/Z3jhNrbV5HdnZ2cHhmjDE7duwwHTp0MOXl5cFtF198sTnuuONMXV1dxOf0jW98w3Tv3j3s4MwPf/hDI6nNQVNubq7p2LFjSLPHut9I39dmzX+GL7nkkpDf1x9++GHErz128GaMMeeee64ZOXJkyP0WLlxoJJm///3vxpjP2qRTp07m//2//xdyv3379pk+ffqYL33pSxHXGcvzbh7ynHLKKebQoUMh920eNt11110h25sHjQ888EDI9mXLlhlJZvHixcFtkX4ukTQ/5tHDtET1YlNTk8nJyTFnn312SEvv27fP9O7dO+RnFOl70by22bNnh2xvHugd/f+jEz+TSJqfd1sfrf37pNn8+fPN/PnzzapVq8yqVavMHXfcYbp27WrOOOOMkM4FWsKppg5bunSpqqqqwj4uuOCCkPs9++yzCgQCuu6663T48OHgR58+fTR06NCorkpVVFSkbt26BW+feeaZkqTi4uKQ96do3n7sqQV9+vQJe4+nIUOGhNzvpZdeUl5eXtj9pk6dKmNM2JtLxqqxsVFXXHGFPvnkEz333HNRX6HnmmuuCbn97LPP6rjjjtP48eNDvp/Dhg1Tnz59gt/PyspKNTU1qbS0tF3rbms9Tqy12bBhwzRgwIDg7YyMDJ122mkhP6fnnntORUVFwZ91S5599lnl5+dr2LBhIY972WWXRX0ltOOPP14XX3yxo/t94oknNGrUKHXv3l2dOnVS586d9X//939hpzjG4oYbbtDWrVv1wgsvBLc9+uij6tOnj4qLiyVJa9eu1Z49ezRlypSQdR85ckSXX365qqqqWj19JtbnffHFF+v4449vcV/H/hlpfsn8sac7n3feeTrzzDPDToVt6ecSi9dff10HDhwIe7z+/fvr4osvbvHU29b+zDdrbGzUX/7yF02cOFHdu3cPbu/YsaMmT56srVu36p///Ger+3399df1ySef6Gtf+1rI9pEjRyo3Nzdkm5M/k2PNnTu3xb/bj/14+OGH29zX5MmT9b3vfU/FxcUqKirSd7/7XT333HP68MMP9cADD0S1HgDeFsvvvksuuUTZ2dnB2x07dtSkSZO0adOmsNPJjtbQ0KDvfve7Gjx4sDp16qROnTqpe/fuamxsDHkcLzRE89sLJKvfnOidoqKikIsXZWdnq3fv3sF+279/v1599VV96UtfavW9zp599lkVFRUpJycn5HGbe+bVV19t83kOGTJEp512mqP7/dnPfqZzzz1XGRkZwT/DL774Yrv7be3atSFt8Oijj6qwsFD5+fmSpJUrV+rw4cO6/vrrQ9adkZGhiy66qM0/i7E+76uuukqdO3ducV/H/vlp/nfRsT117bXXqlu3bmE91dLPJRaJ6sV//vOf2rZtmyZPnhxy4afu3bvrmmuu0bp167R///6Qr4nUssf225e+9KWw98F28mdyrIcffjiqfovmqr2zZ8/W7Nmzdemll+rSSy/VPffco6VLl+of//iHfv7zn0e1HqQuLq7gsDPPPFPDhw8P296zZ09t2bIleHvnzp0yxoSE1NFOPvnkNh8rKysr5HZaWlqr2z/55JOQ7SeccELYPtPT03XgwIHg7d27d7f4vms5OTnBz8fr8OHDmjhxov71r39p9erV6t+/f1Rf17VrV2VmZoZs27lzpz766KPgcz1W83t6Nb+HWr9+/eJed0siXZGpPWttFs3P6cMPP2zzOe3cuVObNm2K+Ivq2MdtSUvPsz37feqpp/SlL31J1157rb7zne+oT58+6tSpkxYtWtTi+9hFq7i4WCeddJIeffRRjR07Vnv37tUf/vAHfetb31LHjh2D65akiRMnRtzPnj17QobbR4v1ebd21a5jP9f8/1VLX5OTkxM2RG/vFcHaerzKysqQbS39uW7J3r17ZYyJuN+jH7tZpO9Fnz59wvZx7DYnfybHGjBgQFR/b8R7IYjzzjtPp512mtatWxfX1wPwjlh/97X299/u3bsj/t301a9+VS+++KLuvPNOFRYWKjMzU4FAQOPGjfNcQ3z44Yfq2LFji9+L9oj0e8CJ3mmr3/bu3aumpqaovvd//OMfE/K9j3e/8+fP17e//W3NmDFDP/jBD9SrVy917NhRd955Z7sGb1/72td0yy23aMmSJSovL1dNTY2qqqq0cOHCkHVLUmFhYYv7aOsK4bE+71j7rVOnTmGD1EAgoD59+rTZPLFKVC+2td8jR45o7969IRdQiLbfOnXqFPb/hpM/k2MNHjxYxpg27xfvleUnTJigbt260W9oE4M3l/Tq1UuBQEBr1qxp8Sostlwi+oQTTtD27dvDtm/btk2S2nVFvptuukkvvviiVqxYoaFDh0b9dS39w7ZXr1464YQT9Pzzz7f4Nc1HHJt/EW7durXVQV9GRkbIm9o227VrV4vPOdI/ttuz1liceOKJrR71bn7cLl26RBxoRfOzjPR84t3vY489pkGDBmnZsmUh+27pex+L5ldU/eQnP9FHH32k3/zmNzp48KBuuOGGsHX99Kc/jXh1okiD8eavj+V5tzaQOfZzzUGyffv2sCDftm1bTPuOxtGPd6z2PN7xxx+vDh06xPR3SKTvxY4dO8L2sWPHjpADA07+TI514403RnXxhWiOtkdijIk7/AB4R6y/+yL9/Se1PNyRpI8//ljPPvus5syZo9tuuy3kMfbs2RNyXy80xIknnqimpibt2LGj1X90p6ent/h9jHSgONZ+a+/34GhZWVnq2LFjVN/7IUOG6N57723x880HsloT6fnEu9/HHntMY8aM0aJFi0K279u3r821tOb444/X1VdfraVLl+qee+7Ro48+qoyMDH3lK18JWbckPfnkk2GvfI9GrM871n47fPiwPvzww5DhmzFGO3bsCBsWOtlvTvZiW13YoUOHsDMGWuu3vn37BrcfPnw47P9HJ38mx7rkkkuielXolClTtGTJkqj3ezT6DdFg8OaSK6+8Uvfff78++OADfelLX3J7ORFdcsklKi8v15tvvqlzzz03uH3p0qUKBAIqKiqK+LXNw8Ojj6o2+/73v69HH31Uv/zlL/Vf//Vf7V7nlVdeqccff1xNTU06//zzI95v7Nix6tixoxYtWqQRI0ZEvN/AgQP1t7/9LWTbv/71L/3zn/9s17AxlrXGori4WL/61a/0z3/+U6effnrEx73vvvt0wgknaNCgQY48bnv3GwgElJaWFvILdMeOHS1e2e3YV/m15YYbbtADDzyg3/72t1qyZIlGjBihM844I/j5UaNG6bjjjlNNTY1uvvnmmNYtJe77KSl4GsBjjz0WEmlVVVV69913dccddzj6eCNGjFCXLl302GOPBa9GLH02oH7ppZdafVVga7p166bzzz9fTz31lH74wx+qS5cukj67Atdjjz2mfv36tXmKxRe+8AVlZGTo17/+dchpDGvXrtX7778fMnhL5M9k7ty5Uf05iWdwLknr1q3Txo0bNXPmzLi+HoB3xPK7T5JefPFF7dy5M3gwqKmpScuWLdMpp5wS8dVSgUBAxpiwA7mPPPKImpqaQrZ5oSGKi4tVXl6uRYsWad68eRHv11K/vfTSS2poaEjaWqPVpUsXXXTRRXriiSd07733RuzLK6+8UitWrNApp5wS9dsjRKM9+w0EAmF/tv72t7/p9ddfDzmw3dq/BSK54YYb9Lvf/U4rVqzQY489pgkTJoS8Fc1ll12mTp066d///ndUb3txrER9P6XP/t30wAMP6LHHHtPs2bOD23//+9+rsbGxzavAxypRvXj66aerb9+++s1vfqNbbrkl+HdVY2Ojfv/73wevdNqaMWPGSJJ+/etfq6CgILj9d7/7XdhVcxP5M3n44YejGgjH+++7J598Uvv37494EB9oxuDNJaNGjdJNN92kG264QevXr9eFF16obt26afv27frzn/+ss88+W9/85jfdXqZmz56tpUuX6oorrtC8efOUm5urP/3pT1q4cKG++c1vtvqP5ub3Yli8eLF69OihjIwMDRo0SC+99JLuvfdeTZw4MezUqvT0dJ1zzjkxr/PLX/6yfv3rX2vcuHH61re+pfPOO0+dO3fW1q1b9fLLL+vqq6/WhAkTNHDgQH3ve9/TD37wAx04cEBf+cpX1LNnT9XU1GjXrl3By3hPnjxZ1113nUpKSnTNNdfo/fff1wMPPNDqe3A4vdZYzJs3T88995wuvPBCfe9739PZZ5+tjz76SM8//7zKysp0xhlnaNasWfr973+vCy+8ULNnz9aQIUN05MgR1dbWatWqVfr2t78d1yCwPfttvox6SUmJJk6cqC1btugHP/iBTjrpJG3cuDHkvmeffbZeeeUV/fGPf9RJJ52kHj16RPwHgiSdccYZGjFihMrLy7VlyxYtXrw45PPdu3fXT3/6U02ZMkV79uzRxIkT1bt3b3344Yf661//qg8//DDsSK5Tz7stp59+um666Sb99Kc/VYcOHVRcXKz33ntPd955p/r37x8Sc0447rjjdOedd+p73/uerr/+en3lK1/R7t27dffddysjI0Nz5syJe9/l5eW69NJLVVRUpFtuuUVpaWlauHCh3n77bf32t79t86jl8ccfr1tuuUX33HOPpk+frmuvvVZbtmzR3Llzw05fSOTPZODAgS2edh+PoUOH6rrrrtOZZ56pjIwMvfHGG3rwwQfVp08f3XrrrY48BgB3vfTSS3rvvffCto8bNy6m333SZ/8gvPjii3XnnXeqW7duWrhwof7xj3/o8ccfj/j4mZmZuvDCC/Xggw+qV69eGjhwoF599VX93//9X9j76XqhIUaPHq3Jkyfrnnvu0c6dO3XllVcqPT1db731lrp27ar/9//+n6TP+u3OO+/UXXfdpYsuukg1NTV66KGH1LNnz5jXFu9aYzF//nxdcMEFOv/883Xbbbdp8ODB2rlzp/7whz/o4YcfVo8ePTRv3jxVVlZq5MiRmjlzpk4//XR98skneu+997RixQr97Gc/i+stVNqz3yuvvFI/+MEPNGfOHF100UX65z//qXnz5mnQoEEhQ5UePXooNzdXzzzzjC655BJlZWUF/zxGMnbsWPXr108lJSXasWNHyNkK0me/j+fNm6c77rhD//nPf3T55Zfr+OOP186dO/XGG2+oW7duwZ53+nm35dJLL9Vll12m7373u6qvr9eoUaP0t7/9TXPmzNE555yjyZMnx7XfSBLVix06dNADDzygr33ta7ryyiv1jW98QwcPHtSDDz6ojz76SPfff3+b+zjzzDN13XXXacGCBercubP+67/+S2+//bZ++MMfhr1dSSJ/Jq39WyEW77//vr761a/qy1/+sgYPHqxAIKBXX31VCxYs0FlnnaXp06c78jjwMfeu6+AvbV3F6oorrgi7MqkxxvziF78w559/vunWrZvp0qWLOeWUU8z1119v1q9fH7xPpKualpaWhmxrvtLLgw8+GLK9+UpXR192/qKLLjJnnXVW2Hpaeqz333/ffPWrXzUnnHCC6dy5szn99NPNgw8+GHbZZbVw1aIFCxaYQYMGmY4dOxpJ5tFHHw1e/aalj5a+R8eur1u3bi1+7tNPPzU//OEPzdChQ01GRobp3r27OeOMM8w3vvENs3HjxpD7Ll261BQWFgbvd84555hHH300+PkjR46YBx54wJx88skmIyPDDB8+3Lz00ksRr2p69PfWybXm5uaaK664Iuzrj12HMZ9dEffGG280ffr0MZ07dzY5OTnmS1/6ktm5c2fwPg0NDeb73/++Of30001aWprp2bOnOfvss83s2bNDrpjWkkh/ZmLZb0tXNb3//vvNwIEDTXp6ujnzzDPNz3/+8+CfkaNVV1ebUaNGma5du4ZcPbK1K7ktXrw4eEW4jz/+uMW1v/rqq+aKK64wWVlZpnPnzqZv377miiuuaPFnGu/zbun/V2Na/3ujqanJ/M///I857bTTTOfOnU2vXr3MddddF7x8fLPWfi4tae0xH3nkETNkyJDgc7n66qvDrpbW2p/rSNasWWMuvvji4N9zX/jCF4JXl41mXUeOHDHl5eWmf//+Ji0tzQwZMsT88Y9/bPH/g/b+TJLhy1/+shk8eLDp1q2b6dy5s8nNzTUzZsww27Ztc2U9AJzT1lXum6/gGO3vvua/qxYuXGhOOeUU07lzZ3PGGWeYX//61yH3a+l34datW80111xjjj/+eNOjRw9z+eWXm7fffrvF38VeaIimpibzv//7vyY/Pz94vxEjRoT8Pjl48KC59dZbTf/+/U2XLl3MRRddZKqrqyNe1bSl3zlOrDXS75iWvvc1NTXm2muvNSeccIJJS0szAwYMMFOnTjWffPJJ8D4ffvihmTlzphk0aJDp3LmzycrKMgUFBeaOO+4wDQ0NLa716MdsqSVj2e+xjX/w4EFzyy23mL59+5qMjAxz7rnnmuXLl7f474gXXnjBnHPOOSY9PT3k6pEtXdW02fe+9z0jyfTv3z/s3xvNli9fboqKikxmZqZJT083ubm5ZuLEieaFF15o9fsR7fOO9O8qY1q+wmizAwcOmO9+97smNzfXdO7c2Zx00knmm9/8ptm7d2/I/Vr7ubQk0mMmqheN+ex7fP7555uMjAzTrVs3c8kll5jXXnstqnUZ89mfk29/+9umd+/eJiMjw3zhC18wr7/+eov/H7T3Z5Joe/bsMRMmTDADBw40Xbp0MWlpaebUU081t956q/noo4+Svh54T8CYKN5tEAAAAEBSBQIBlZaW6qGHHnJ7KQAAIE68CyAAAAAAAACQACkxeHv22Wd1+umn69RTT9Ujjzzi9nIAAICF6AVv4ucGAACi4VYz+P5U08OHDysvL08vv/yyMjMzde655+ovf/mLsrKy3F4aAACwBL3gTfzcAABANNxsBt+/4u2NN97QWWedpb59+6pHjx4aN26cVq5c6fayAACARegFb+LnBgAAouFmM1g/eFu9erXGjx+vnJwcBQIBLV++POw+Cxcu1KBBg5SRkaGCggKtWbMm+Llt27apb9++wdv9+vXTBx98kIylAwCAJKEXvImfGwAAiIaXm8H6wVtjY6OGDh0a8WpOy5Yt06xZs3THHXforbfe0ujRo1VcXKza2lpJUktn0gYCgYSuGQAAJBe94E383AAAQDS83AydkvIo7VBcXKzi4uKIn58/f76mTZum6dOnS5IWLFiglStXatGiRSovL1ffvn1Dpphbt27V+eefH3F/Bw8e1MGDB4O3jxw5oj179uiEE04g5AAAVjDGaN++fcrJyVGHDok9hvbJJ5/o0KFDCX2MSIwxYb9709PTlZ6eHnbfZPcCnEHnAQAQis4L7zzJ461nPESSefrpp4O3Dx48aDp27GieeuqpkPvNnDnTXHjhhcYYYz799FMzePBgs3XrVlNfX28GDx5sdu3aFfEx5syZYyTxwQcffPDBh/UfW7ZsScjv22YHDhwwfbL7uPb8unfvHrZtzpw5ba5bSnwvwHnJ+LnReXzwwQcffHjlg86LTPJW61n/irfW7Nq1S01NTcrOzg7Znp2drR07dkiSOnXqpB/96EcqKirSkSNHdOutt+qEE06IuM/bb79dZWVlwdsff/yxBgwYoE3vbFKPHj0S80QQt90fH5AkfbB7v8srQVv+/dEnqtnb6PYy0IaqDxtUs22f28tAKxo+/EDm0090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v/764Larr75aZ511lubOnUuQxYChGwAArduyZYsyMzODtyMdBW3Nrl271NTUpOzs7JDt2dnZ2rFjR1T7+MIXvqBx48bpnHPOUYcOHXTJJZfoqquuinkttqPznEPn2Y+hGwC4y4nOk+xvvZgHb9u3b9fIkSPDto8cOVLbt293ZFGALQgyAHBXZmZmSJC1RyAQejTXGBO2rTX33nuv7r33XkfWYis6zxkM3exH4wGA+5zsPMne1ov54gqDBw/W7373u7Dty5Yt06mnnurIolIBQWY/ggwA/KFXr17q2LFj2BHPurq6sCOjqY7OAwAAXmN768X8ire7775bkyZN0urVqzVq1CgFAgH9+c9/1osvvthiqCEcQzekooa6rW4vAUCKSktLU0FBgSorKzVhwoTg9srKSl199dUursw+dF770Xn24+AqAPiL7a0X8+Dtmmuu0V/+8hf97//+r5YvXy5jjPLy8vTGG2/onHPOScQagaQjyADAWxoaGrRp06bg7c2bN6u6ulpZWVkaMGCAysrKNHnyZA0fPlwjRozQ4sWLVVtbqxkzZri4avvQee3D0M1+NB4AeJOXWy/mwZskFRQU6LHHHnN6LSmBIEsMJy8zT5ABgPesX79eRUVFwdtlZWWSpClTpmjJkiWaNGmSdu/erXnz5mn79u3Kz8/XihUrlJub69aSrUXnAQAA23i59eIavDU1NWn58uV69913FQgElJeXp6uuukodO3Z0en2+wtANAIDEGDNmjIwxrd6npKREJSUlSVqRd9F58aHz7MfBVQDwLi+3XsyDt02bNumKK67Q1q1bdfrpp8sYo3/961/q37+//vSnP+mUU05JxDqBpCDIAACpjM6LD0M3+9F4AAC3xHxV05kzZ+rkk0/Wli1b9Oabb+qtt95SbW2tBg0apJkzZyZijb5AkNmPIAMApDo6L3Y0HgAAaE3Mr3h79dVXtW7dOmVlZQW3nXDCCbr//vs1atQoRxfnFwSZ/Ri6AQBA58Gf6DwAgJtifsVbenq69u0LfyP7hoYGpaWlObIoG1RUVCgvL0+FhYXt2g9DNwAA4BV0XmzoPPsxdAMAuC3mwduVV16pm266SX/5y19kjJExRuvWrdOMGTN01VVXJWKNrigtLVVNTY2qqqrcXgoSjCADAOAzdF70GLrZj8YDANgg5sHbT37yE51yyikaMWKEMjIy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i85DLGg8b6AFAcBdMQ/eFixYkIBlwK84CuouQgsAEAs6D9GKduhG57mLFgQA98U8eJsyZUoi1gEfYujmLkILABArOg/RYOjmDbQgANgh5vd4q62tbfUDkDj1wE0NdVsJLQBIgAkTJuj444/XxIkTwz737LPP6vTTT9epp56qRx55xIXVOYPOQ1toPG+gBQEgdolqvZhf8TZw4EAFAoGIn29qaop1l/AZjoK6h8gCgMSZOXOmbrzxRv3yl78M2X748GGVlZXp5ZdfVmZmps4991x98YtfVFZWlksrjR+dh9bEMnSj89xDDwJAfBLVejEP3t56662Q259++qneeustzZ8/X/fee2+su4OPEGPuIrIAILGKior0yiuvhG1/4403dNZZZ6lv376SpHHjxmnlypX6yle+kuQVth+dh0joPG+gBwEgfolqvZhPNR06dGjIx/Dhw/X1r39dP/zhD/WTn/wk1t1Zq6KiQnl5eSosLHR7KZ7AaQfu4dRSAJBWr16t8ePHKycnR4FAQMuXLw+7z8KFCzVo0CBlZGSooKBAa9asceSxt23bFgwxSerXr58++OADR/adbHQeWkLneQM9CMDPvNx6MQ/eIjnttNNUVVXl1O5cV1paqpqaGl89p0SJNcY4CuocAgsAPtPY2KihQ4fqoYceavHzy5Yt06xZs3THHXforbfe0ujRo1VcXBzyvmUFBQXKz88P+9i2bVurj22MCdvW2umaXkTnpaZ1dfvoPA/gICyAVODl1ov5VNP6+tBfpsYYbd++XXPnztWpp54a6+7gccSYewgsAKng2O5IT09Xenp62P2Ki4tVXFwccT/z58/XtGnTNH36dEnSggULtHLlSi1atEjl5eWSpA0bNsS1xr59+4Yc9dy6davOP//8uPblNjoPzeJ5lRudl3z0IAAvi7bzJG+3XsyDt+OOOy5ssmeMUf/+/fX444/Hujt4GKcduIPAApBsVR82qFOX8CN9iXT4QKMkqX///iHb58yZo7lz58a0r0OHDmnDhg267bbbQraPHTtWa9eubdc6Jem8887T22+/rQ8++ECZmZlasWKF7rrrrnbv1w10HiQazytoQgBO8HrnSfa3XsyDt5dffjnkdocOHXTiiSdq8ODB6tQp5t3BozgK6g4CC0Cq2bJlizIzM4O3Ix0Fbc2uXbvU1NSk7OzskO3Z2dnasWNH1Pu57LLL9Oabb6qxsVH9+vXT008/rcLCQnXq1Ek/+tGPVFRUpCNHjujWW2/VCSecEPM6bUDnId6hG52XXDQhAD9wovMk+1sv5oK66KKLYv0S+AxDN3cQWABSUWZmZkiQtUdLr+SK5f05Vq5cGfFzV111la666qq412YLOi+1MXTzBpoQgF842XmSva0X16HLf//731qwYIHeffddBQIBnXnmmfrWt76lU045Ja5FwDsYuiUfcQUA7dOrVy917Ngx7IhnXV1d2JFR0HmpitNLvYEuBIBwtrdezFc1XblypfLy8vTGG29oyJAhys/P11/+8hedddZZqqysTMQaYQmCLPmIKwBov7S0NBUUFIR1SmVlpUaOHOnSquxE56Wm9jQeB1iThy4EgJbZ3noxv+Lttttu0+zZs3X//feHbf/ud7+rSy+91LHFwR6cepB8xBUARK+hoUGbNm0K3t68ebOqq6uVlZWlAQMGqKysTJMnT9bw4cM1YsQILV68WLW1tZoxY4aLq7YPnZd6GLp5A10IINV5ufViHry9++67+t3vfhe2/cYbb9SCBQucWJMVKioqVFFRoaamJreX4jqGbslFWAFA7NavX6+ioqLg7bKyMknSlClTtGTJEk2aNEm7d+/WvHnztH37duXn52vFihXKzc11a8lWovNSC0M3b6ANAcDbrRfz4O3EE09UdXW1Tj311JDt1dXV6t27t2MLc1tpaalKS0tVX1+vnj17ur0c13B6aXIRVgAQnzFjxsgY0+p9SkpKVFJSkqQVeROdlzpoPG+gDQHgM15uvZgHb1//+td100036T//+Y9GjhypQCCgP//5z/qf//kfffvb307EGuESjoImF2EFAHAbnZca2jt0o/OSgzYEAH+IefB25513qkePHvrRj36k22+/XZKUk5OjuXPnaubMmY4vEO5g6JY8RBUAwBZ0nv8xdPMG+hAA/CPmwVsgENDs2bM1e/Zs7dv32S/uHj16OL4wuIdTD5KHqAIA2ITO8zcazxvoQwDwlw6xfsGBAwe0f/9+SZ+F2J49e7RgwQKtWrXK8cUh+TgKmjxEFQDANnSefzkxdKPzEo8+BAD/iXnwdvXVV2vp0qWSpI8++kjnnXeefvSjH+nqq6/WokWLHF8gkoehW3I01G0lqgAAVqLz/ImhmzfQhwDgTzEP3t58802NHj1akvTkk0+q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5EgdPnzY788POTk5qqys1F//+le9/fbb3i6nxa5duya73a6cnByFh4dr5MiR2rt3ryIiIrxdGuDX6PP8B32ef6DP8230eb6JPs9/8RdvHnTt2jVdvXpVtbW1qq2tVZ8+fbxdkse89957mjhxot+fbK83zMnJyZKkiIgIv2/GAtHRo0d16NAhTZ482duleERwcLA6d+4sSbp69arq6ur8/i8l+vXrp4SEBElSnz59FBERoe+++867RXnAhAkT1LVrV2+X0Wr79u3TsGHD1L9/f3Xt2lWTJ0/W9u3bvV0WEBDo83wffZ5/oM/zffR5vok+z3+1m8Fbbm6upkyZosjISNlstib/lH7Dhg0aOHCgwsLClJiYqF27drl8/N69e2vp0qWKiYlRZGSkJk2apNtvv92DCRqzOtMPbd26VT/96U/drPjmrM509OhRdenSRVOnTtXIkSP1/PPPe7D6prXF81RRUaHExETdc8892rlzp4cqb1pb5Fm6dKkyMjI8VPHNtUWmixcvKj4+XlFRUVq2bJl69erloeqb1pbnh88//1z19fWKjo52s+rmtWUmb3E34+nTp9W/f3/H7aioKJWVlbVF6YBX0efR50n0eZ5An0efdyP6PM+hz2u/2s3graqqSvHx8Vq3bl2T27ds2aLFixdrxYoVKiwsVHJystLS0nTy5EnHPomJiRo+fHijr9OnT+vChQvKyspSaWmpysrKlJeXp9zcXL/OdF1FRYV2797dJr+VsjpTbW2tdu3apfXr1+uzzz5Tdna2srOz/TqTJJWWlqqgoECvvfaaZs2apYqKCr/N889//lODBw/W4MGDLctwo7Z4jrp37679+/fr+PHj+sc//qFz5875fSZJ+vbbbzVr1ixt3LjR0jxtmcmb3M3Y1G/YbTabpTUDvoA+jz6PPs8/8tDn+U8miT7P0+jz2jHTDkkymZmZDdbuuusuM3/+/AZrQ4cONcuXL3fpmFu3bjULFixw3F69erV54YUX3K7VVVZkum7z5s3m8ccfd7fEFrMiU15enklNTXXcXr16tVm9erXbtbrKyufpuvvvv9/k5+e3tsQWsSLP8uXLTVRUlBkwYIDp2bOnCQ8PN6tWrfJUyTfVFs/R/PnzzdatW1tbYotZlenq1asmOTnZbN682RNltoiVz1NOTo555JFH3C3Rba3JuHv3bjNt2jTHtkWL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", - "text/plain": [ - "

" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "order_plot = 5\n", "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", @@ -218,53 +207,160 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 17, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_14919/1312385240.py:6: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_14919/1312385240.py:7: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs2 = ax2.contourf(x_grid, y_grid, plot_me_hem.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" + ] + }, { "data": { - "text/latex": [ - "$\\displaystyle \\left(-1\\right)^{n + 1} \\left(\\frac{\\left(-1\\right)^{n - 3} \\left(n + \\left(n - 2\\right)^{3} - 2 \\left(n - 2\\right)^{2} - 2\\right) s{\\left(n - 3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 2} \\left(- n + 3 \\left(n - 2\\right)^{2} + 2\\right) s{\\left(n - 2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(-1\\right)^{n - 1} \\left(3 x_{0}^{2} \\left(n - 2\\right) + x_{0}^{2} + x_{1}^{2} \\left(n - 2\\right) - x_{1}^{2}\\right) s{\\left(n - 1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}\\right)$" - ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABOEAAALACAYAAADVBWZCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACO2klEQVR4nOzde1xUBf7/8feIMngDUxSjBKmsJFILyQUztRLD1C620bdNzbQyp68ptZXrZulW2EVzW0Fzs6ztxtYaW8Y3pbbSzS7oSrVhu1kWlqALFngpVDy/P/wx6zgMzMAczlxez8eDx+6cOTPzOVzGd+9zGZthGIYAAAAAAAAAmKad1QMAAAAAAAAAoY4SDgAAAAAAADAZJRwAAAAAAABgMko4AAAAAAAAwGSUcAAAAAAAAIDJKOEAAAAAAAAAk1HCAQAAAAAAACajhAMAAAAAAABMRgkHAAAAAAAAmIwSzksfffSRrrjiCiUkJMhutysuLk7p6em6/fbbXdbLz8/XqlWrrBny/7vvvvtks9na5LW++eYb2Wy2Zrf53Xfflc1mc35FRESoZ8+eGjdunDZt2tQms8JVdXW15syZo+TkZHXq1EnR0dH6xS9+oby8PB06dKjVz9+Wv4cjRoxw+f06/quystLn52z4nX3llVdMmNgzb/+mrHbDDTfokksucd725fvVlr8boWLv3r268847lZmZqZ49e8pms+m+++4z5bWOf78+9uvDDz90WfeCCy7QrFmzTJkDnpFJGkcmCS2GYeiFF17QhRdeqBNOOEF2u12nnHKKHA6HduzY0ernb+t/b5csWaIrr7xSSUlJstlsGjFihFeP++1vfyubzaaUlJQWvzaZpmlkmuDTt2/fRnPK9OnTXdZbuXKlTjrpJO3fv9+iSQF37a0eIBi88cYbGj9+vEaMGKGHH35YJ554oioqKrRp0ya99NJLWrRokXPd/Px8xcbG6vrrr7du4AD24IMPauTIkTp06JC2bNmi+fPna/jw4SotLVW/fv2sHi9sfPHFF8rMzNS+fft0++23KyMjQz/99JPWrFmj2267TS+//LKKiorUqVMnq0f1Sn5+vmpra12WHThwQJdccolSU1PVu3dviyYLTVu2bNEzzzyjjz76yOpRwkZ1dbVWrFihgQMH6vLLL9eTTz5p+ms2vF8f6/j/CPzd736nUaNG6ZZbbtEZZ5xh+kwgk/gTmSRwHTlyRNdee60KCgr0P//zP1q1apViYmL06aef6pFHHtELL7ygNWvWaOjQoVaP6rXly5erc+fOuvDCC/X666979ZjS0lI9+uijiouLM3m68EWmCV5Dhw7Vo48+6rLs+L+VyZMn66GHHtLDDz+s+fPnt+V4gEeUcF54+OGHlZSUpLVr16p9+/9+y6655ho9/PDDFk7WNg4cOOC3MqZfv376xS9+IUkaNmyYunXrpsmTJ+u5554LyDdGT9tuGIZ+/vlndezY0YKpWqe+vl4TJkxQbW2tPv74Y51++unO+8aMGaPhw4frmmuuUU5OjpYvX97k8xw+fFh2u70txm7y9zA5Odlt2TPPPKNDhw5p2rRpZo8WdhYuXKjzzjtPgwcPtnqUgNLU+8JPP/2kqKgor/eWV1RUqHPnzoqOjpYkJSYm6ocffpDNZlNVVVWblHDHvl97Mnz4cJ1xxhlatGiRVqxYYfpMIJOQSUIrk3jy0EMPqaCgQAsXLtRdd93lXD5ixAhlZ2dryJAhmjBhgr744gt169bN4/P48/elOc29z5eVlaldu6MnIXlzVNvhw4c1ZcoU3Xzzzfrkk09UVVXl13lxFJmmcWZmGn/p1q1bszmlffv2uvnmm/W73/1Od911V9AcYIDQxumoXqiurlZsbKxL2G3Q8I+pdPSw2M8//1zvvfee85DYvn37SpJ+/vln3X777Ro0aJBiYmLUvXt3paen669//avbc9psNt16663605/+pP79+6tTp04aOHCg1qxZ47buG2+8oUGDBslutyspKcltb0CDvLw8XXDBBerVq5c6d+6ss88+Ww8//LDbaYcjRoxQSkqK1q9fr4yMDHXq1Ek33HCDJGnnzp26+uqr1bVrV8XExCg7O7tFp/kdq+EfvF27drks//LLL3XttdeqV69estvt6t+/v/Ly8twe/+OPP+r222/XKaecIrvdrl69emnMmDH64osvJP33cPJ3333X5XGNHR5//fXXq0uXLvrss8+UmZmprl276qKLLpL035/J8uXL1b9/f9ntdj3zzDNez9owx4svvqi5c+cqPj5e0dHRuvjii/Wvf/3LbbvefPNNXXTRRYqJiVGnTp3Uv39/5ebmuqyzadMmjR8/Xt27d1dUVJTOOecc/fnPf272e/7qq6+qrKxMd999t0sB1yA7O1uZmZlauXKl8+fb8P16+OGHdf/99yspKUl2u13vvPOOJO9/Dw3DUH5+vgYNGqSOHTvqhBNO0FVXXaWvv/7aZb2mfg+9tXLlSnXp0kXZ2dk+Pc5X8+fP15AhQ9S9e3dFR0fr3HPP1cqVK2UYhst6ffv21dixY/Xqq69qwIABioqK0imnnKLHH3+82dfYtm2bpkyZon79+qlTp0466aSTNG7cOH322Wdu6zb3NyFJBw8e1P33368zzzxTdrtdPXv21JQpU/Sf//yn2Vl27dqlV199VRMnTmz0/p9//lk5OTnq3bu3OnbsqOHDh2vLli3NPq+n0yv79u3rdhRPZWWlbr75Zp188smKjIxUUlKS5s+fr8OHDzf7Ot6ora3VHXfcoaSkJEVGRuqkk07SrFmz3E5l8PS+sGrVKtlsNq1bt0433HCDevbsqU6dOqmurq7J1/3hhx+0cuVKXXzxxTr55JNd/i4a/k3xVkFBgdLT09W5c2d16dJFo0eP9urn0BITJ07UCy+8oL1795ry/HBFJiGThFImaczBgwf1yCOPqH///rrzzjvd7o+Li1Nubq527dqllStXOpf76/fFm21pyfv8sX+f3li4cKH27NmjBx54wKfHtQaZxhWZxpxMI3n/vuoPv/rVr1RbW6uXXnrJlOcHfMWRcF5IT0/Xk08+qZkzZ+pXv/qVzj33XHXo0MFtvVdffVVXXXWVYmJilJ+fL0nOo4Tq6uq0Z88e3XHHHTrppJN08OBBvfXWW7ryyiv19NNPa9KkSS7P9cYbb6ikpEQLFixQly5d9PDDD+uKK67Qv/71L51yyimSpLfffluXXXaZ0tPT9dJLL6m+vl4PP/ywW3iUpK+++krXXnut8w34k08+0QMPPKAvvvhCTz31lMu6FRUVuu6663TnnXfqwQcfVLt27fTTTz/p4osv1s6dO5Wbm6vTTz9db7zxRqsLju3bt0uSSxlUVlamjIwMJSQkaNGiRerdu7fWrl2rmTNnqqqqSvfee6+ko9dIOv/88/XNN9/orrvu0pAhQ7Rv3z6tX79eFRUVOvPMM32e5+DBgxo/frxuvvlm3X333S7/ABYWFmrDhg2aN2+eevfurV69enk9a4Pf/OY3Gjp0qJ588knV1tbqrrvu0rhx47R161ZFRERIOloe3XjjjRo+fLiWL1+uXr166d///rf++c9/Op/nnXfe0SWXXKIhQ4Zo+fLliomJ0UsvvaTs7GwdOHCgyVOPiouLJUmXX365x3Uuv/xyrVu3Tu+++66uueYa5/LHH39cp59+uh599FFFR0erX79+Pv0e3nzzzVq1apVmzpyphx56SHv27NGCBQuUkZGhTz75xOUQ8sZ+D7315ZdfasOGDZo2bZq6dOni9eNa4ptvvtHNN9+shIQESdKHH36o//3f/9X333+vefPmuaxbWlqqWbNm6b777lPv3r31/PPP67bbbtPBgwd1xx13eHyNnTt3qkePHlq4cKF69uypPXv26JlnntGQIUO0ZcsW52mA3vxNHDlyRJdddpk2bNigO++8UxkZGfr222917733asSIEdq0aVOTR1OsW7dOhw4dcjtNscFvfvMbnXvuuXryySdVU1Oj++67TyNGjNCWLVuc712tUVlZqfPOO0/t2rXTvHnzdOqpp+qDDz7Q/fffr2+++UZPP/20c936+nq3/3BoTLt27Zy/XwcOHNDw4cP13Xff6Te/+Y0GDBigzz//XPPmzdNnn32mt956y6UMa+x9oaSkRNLRa8xceuml+tOf/qT9+/c3+u/GgQMH9Prrr+uFF17Qm2++qYiICI0ZM0YFBQWNHuHpjQcffFC//e1vNWXKFP32t791/gftsGHD9PHHH3v9vA6HQ9dcc406deqk9PR03XPPPTr//PPd1hsxYoTuuusuvfvuuxo3blyLZob3yCRkEil0MkljNm/erB9++EE33XSTx50P48aNU7t27VRcXOxyLcTW/r74ui3evM+3RFlZme6//36tXr3a9BxzLDKNKzKNOZnG1/cqT9avX6+uXbvq559/Vr9+/TR16lTNmjXL+f7VoHfv3jrzzDP1xhtv+LxTHzCFgWZVVVUZ559/viHJkGR06NDByMjIMHJzc429e/e6rHvWWWcZw4cPb/Y5Dx8+bBw6dMiYOnWqcc4557jcJ8mIi4szamtrncsqKyuNdu3aGbm5uc5lQ4YMMeLj442ffvrJuay2ttbo3r270dSPtr6+3jh06JDx7LPPGhEREcaePXuc9w0fPtyQZLz99tsuj1m2bJkhyfjrX//qsvzGG280JBlPP/10k9v7zjvvGJKMgoIC49ChQ8aBAweM999/3zjjjDOM5ORk44cffnCuO3r0aOPkk082ampqXJ7j1ltvNaKiopzzLliwwJBkFBcXN/u677zzjsvy7du3u809efJkQ5Lx1FNPuT2PJCMmJsble+XLrA1zjBkzxmW9P//5z4Yk44MPPjAMwzD27t1rREdHG+eff75x5MgRj9t15plnGuecc45x6NAhl+Vjx441TjzxRKO+vt7jYy+55BJDkvHzzz97XOf//u//DEnGQw89ZBjGf79fp556qnHw4EGXdb39Pfzggw8MScaiRYtcHr9jxw6jY8eOxp133ulc5un30Ft33XWXy/e1JRp+Zi+//LLXj2n421qwYIHRo0cPl59hYmKiYbPZjNLSUpfHjBo1yoiOjjb2799vGEbjv5vHO3z4sHHw4EGjX79+xuzZs53LvfmbePHFFw1Jxl/+8heX5SUlJYYkIz8/v8ltvOWWW4yOHTu6/X42fL/OPfdcl/u++eYbo0OHDsa0adOcy+6991639yhJxr333uv2eomJicbkyZOdt2+++WajS5cuxrfffuuy3qOPPmpIMj7//HOXxza8bzf1dezr5ubmGu3atTNKSkpcnv+VV14xJBlFRUUuMzf2vvD0008bkoxJkya5bY9hGMbBgweNNWvWGNdee63RuXNnIzIy0hg7dqzx3HPPuf2b0pj//Oc/Hr9f5eXlRvv27Y3//d//dVm+d+9eo3fv3sbVV1/d7PP/4x//MG677Tbj1VdfNdavX2889dRTRv/+/Y2IiAjjzTffbHR7bDabcddddzX73Gg9MgmZJJQySWNeeuklQ5KxfPnyJteLi4sz+vfv77ztj98Xb7eluff55jT1t1lfX28MGTLE+J//+R+XbTvrrLNa9FqGQabxhExjTabx9r2qKTNmzDCeeuop47333jMKCwuNX/3qV4Yk47rrrmt0/V/96ldGXFxcs88LtAVOR/VCjx49tGHDBpWUlGjhwoW67LLL9O9//1tz5szR2Wef7fU1Gl5++WUNHTpUXbp0Ufv27dWhQwetXLlSW7dudVt35MiR6tq1q/N2XFycevXqpW+//VaStH//fpWUlOjKK69UVFSUc72uXbs2eiTCli1bNH78ePXo0UMRERHq0KGDJk2apPr6ev373/92WfeEE07QhRde6LLsnXfeUdeuXTV+/HiX5ddee61X294gOztbHTp0UKdOnTR06FDV1tbqjTfecF7P4+eff9bbb7+tK664Qp06ddLhw4edX2PGjNHPP//s/HS+//u//9Ppp5+u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KisrG/0kMm907txZ5513nlavXq1HHnnE+Y/l3r179frrr7u9dsNsDQzD0B//+EevX2/kyJH685//rNdee83lcP4XXnihRfM3uPPOO7Vq1SotXLhQN998s7p27aqRI0dqy5YtGjBggMc9W5KUlZWlefPm6W9/+5vH0xYbjur49NNPNXr0aOfy1157rVVzS0f3UHs7q7cyMjIUExOj5cuX65prrmn0H7wzzjhD/fr10yeffOIWYLxxxRVXKDk5WQsXLtSVV17p9gmpBQUFWrdunaZPn95sGeDL7+HYsWO1cOFCff/997r66qt9ntsblZWVKioq0pVXXtlsQPIHm82m9u3bu1wA9qefftKf/vSnRtf//PPP9cknn7icvvHCCy+oa9euOvfcc5t8neNLyjfeeEPff/+9TjvtNOcyb/4mxo4d67xo+pAhQ7zazmOdeeaZevHFF1VTU6OYmBi3+1988UXl5OQ4f3e//fZbbdy40e1C78fr27evPv30U5dlf/vb37Rv3z63+YuKinTqqad6PGWiwfHhzZNj38PHjh2rBx98UD169PD5P1h9kZ6ervT0dC1ZskRvv/22XnjhBc2dO1e33Xabhg8fruzsbE2aNMnnox1Gjx6t9u3b66uvvmryNKmuXbs6ywdv/PDDD1qzZo0GDRrkdtTAzp079fPPP7f4gyTgGzIJmaQxwZpJGhMZGalf//rX+s1vfqNHHnnE7TT43bt3a86cOYqLi9O0adOafT5vf1/M2BZfDRo0qNFTHWfNmqWamho9/fTTTR6Z2BpkGjJNS/mSaXx5rzr77LN9muPZZ5+VpEYvR/P111+TUxAwKOG8MHr0aJ188skaN26c85N4SktLtWjRInXp0sVlT9XZZ5+tl156SQUFBTrllFMUFRWls88+W2PHjtXq1as1Y8YMXXXVVdqxY4d+97vf6cQTT9SXX37Zorl+97vf6ZJLLtGoUaN0++23q76+Xg899JA6d+6sPXv2ONcbNWqUIiMj9T//8z+688479fPPP2vZsmX64YcfvH6tSZMm6bHHHtOkSZP0wAMPqF+/fioqKtLatWtbNHuDDh066MEHH9TVV1+t3//+9/rtb3+r3//+9zr//PM1bNgw3XLLLerbt6/27t2rbdu26fXXX9ff/vY3SUcDSUFBgS677DLdfffdOu+88/TTTz/pvffe09ixYzVy5Ej17t1bF198sXJzc3XCCScoMTFRb7/9tlavXt2quRt4O6u3unTpokWLFmnatGm6+OKLdeONNyouLk7btm3TJ598oqVLl0qSnnjiCWVlZWn06NG6/vrrddJJJ2nPnj3aunWr/vGPf+jll1/2+BoRERH6y1/+olGjRik9PV2333670tPTVVdXp9dff10rVqzQ8OHDtWjRIq9m9vb3cOjQobrppps0ZcoUbdq0SRdccIE6d+6siooK/f3vf9fZZ5+tW265xafv1/GeeeYZHT58uMlQft9992n+/Pl655133I70a8zx19BpMHz4cF166aVavHixrr32Wt10002qrq7Wo48+2uiRftLRYDR+/Hjdd999OvHEE/Xcc8+puLhYDz30kDp16uRxhrFjx2rVqlU688wzNWDAAG3evFmPPPKIWxD35m/immuu0fPPP68xY8botttu03nnnacOHTrou+++0zvvvKPLLrtMV1xxhcdZRowYIcMw9NFHHykzM9Pt/t27d+uKK67QjTfeqJqaGt17772KiorSnDlzPD6nJE2cOFH33HOP5s2bp+HDh6usrExLly51C8ULFixQcXGxMjIyNHPmTJ1xxhn6+eef9c0336ioqEjLly93fl98DW8N38O//OUvuuCCCzR79mwNGDBAR44cUXl5udatW6fbb7+9RUHfk4iICGVmZiozM1PLly/XG2+8oRdeeEGzZs3SkCFDNGjQIOe6//d//6f9+/dr7969ko5+utgrr7wiSRozZow6deqkvn37asGCBZo7d66+/vprXXLJJTrhhBO0a9cuffzxx+rcubPmz5/f5EzXXnutEhISNHjwYMXGxurLL7/UokWLtGvXLq1atcpt/Ya/EU+fLgf/IpOQSTwJhkzSUEQ2XPbCk7vuukuffPKJ83+zs7MVExOjTz/9VI888oj27t2rNWvWNFqcHM+X35fW5KvmbNq0ybndtbW1MgzD+R6elpamxMREdevWrdFs0q1bNx0+fNjtPjINmaYpgZppWvte9cILL2j16tW69NJLlZiYqB9//FEvv/yyXnrpJV1//fVu1yo8cuSIPv74Y02dOtVv2wq0ihWfBhFsCgoKjGuvvdbo16+f0aVLF6NDhw5GQkKCMXHiRKOsrMxl3W+++cbIzMw0unbtakgyEhMTnfctXLjQ6Nu3r2G3243+/fsbf/zjHz1+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kZEhm82mv//973rooYd0++23mzEjQgShCABgFvIJAAAAAp3PJdw999yjrl27atGiRZozZ44kKT4+Xvfdd59mzpzp9wEBAACaQz4BwA5fAECg87mEs9lsmj17tmbPnq29e/dKkrp27er3wRBaCEUAADORT4DwRtYEAAQDn68J99NPP+nAgQOSjobbPXv2aMmSJVq3bp3fh0NoIBQBAMxGPgHCF1kTABAsfC7hLrvsMj377LOSpB9//FHnnXeeFi1apMsuu0zLli3z+4AIboQiAEBbIJ8AAAAg0Plcwv3jH//QsGHDJEmvvPKKevfurW+//VbPPvusHn/8cb8PCAAA0BzyCRCe2OELAAgmPpdwBw4ccF5jZd26dbryyivVrl07/eIXv9C3337r9wERvAhFAIC2Qj4Bwg9ZE0Aoy8/PV1JSkqKiopSamqoNGzZ49bj3339f7du316BBg8wdEC3icwl32mmnqbCwUDt27NDatWuVmZkpSdq9e7eio6P9PiCCE6EIANCWyCdAeCFrAghlBQUFmjVrlubOnastW7Zo2LBhysrKUnl5eZOPq6mp0aRJk3TRRRe10aTwlc8l3Lx583THHXeob9++GjJkiNLT0yUd3et8zjnn+H1ABB9CEQCgrZFPAABAqFi8eLGmTp2qadOmqX///lqyZIn69OnT7HVub775Zl177bXOHITA097XB1x11VU6//zzVVFRoYEDBzqXX3TRRbriiiv8OhwAAIA3yCdA+GCHL4BQdvDgQW3evFl33323y/LMzExt3LjR4+OefvppffXVV3ruued0//33N/s6dXV1qqurc96ura1t+dDwms8lnCT17t1bvXv3dll23nnn+WUgBDdCEQDAKuQTIPSRNQGEuqqqKtXX1ysuLs5leVxcnCorKxt9zJdffqm7775bGzZsUPv23tU8ubm5mj9/fqvnhW98Ph0V8IRQBAAAAABA69lsNpfbhmG4LZOk+vp6XXvttZo/f75OP/10r59/zpw5qqmpcX7t2LGj1TOjeS06Ei4c5OXlKS8vT/X19VaPEhQo4AAAMB/5BOGMvAkgHMTGxioiIsLtqLfdu3e7HR0nSXv37tWmTZu0ZcsW3XrrrZKkI0eOyDAMtW/fXuvWrdOFF17o9ji73S673W7ORsAjjoTzwOFwqKysTCUlJVaPAgAAIIl8gvBFAQcgXERG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cPTo0Sden4iISDXsJ+wnRERKsNXnYInI+o4ePSpLliyRnJwcuXTpkqSkpIher5c9e/aIiMinn34qnp6esnXrVjl79qy888474uzsLOfOnRMRkQcPHkhgYKBMmjRJCgsLJS0tTYKDgx8750qbNm0eu++kpCQJDAyU1NRU+eOPPyQjI0O2bdsmIiLFxcXi4+MjEydOlGPHjsmFCxdk37598sorr0hNTU29WfLy8kSv18uuXbtERGTTpk3i4eEhFy5ceGL+0tJS8fb2lvHjx0tOTo6cO3dOtmzZImfPnm1Q/srKSunYsaNMmDBBTp8+Lfv375du3brJ9OnTzfcxffp0efHFF+vc7507d6R9+/YyefJkyc/Pl927d0v37t15zhUiIiJhP2E/ISJSBxfhiBRy5swZiYuLEx8fH3FxcZGgoCBZs2aNeX9tba0sXrxY/P39xdnZWcLCwuTHH3+sc4zDhw+LwWAQV1dXiY6Olu3btzeo5N67d0/efPNN6dixo+j1eunevbt89dVX5v3nzp2TcePGSdu2bcXNzU169uwp8+bNE5PJVO+xQkJCZNasWXW2jxs3TgYNGvTEYiwicvLkSYmNjZVWrVqJh4eHREdHm4txQ/KfOnVKYmJixNXVVby8vGTmzJly584d8/76Sq6IyJEjRyQsLEz0er2Eh4fLzp07WXKJiIiE/USE/YSISBU6EZ4MgIiIiIiIiIiISEs8JxwREREREREREZHGuAhHRERERERERESkMS7CERERERERERERaYyLcERERERERERERBrjIhwREREREREREZHGuAhHRERERERERESkMS7CERERERERERERaYyLcERERERERERERBrjIhwREREREREREZHGuAhHRERERERERESkMS7CERERERERERERaYyLcERERERERERERBr7H8rrXYYrh/iBAAAAAElFTkSuQmCC", "text/plain": [ - "(-1)**(n + 1)*((-1)**(n - 3)*(n + (n - 2)**3 - 2*(n - 2)**2 - 2)*s(n - 3)/(x0**3 + x0*x1**2) + (-1)**(n - 2)*(-n + 3*(n - 2)**2 + 2)*s(n - 2)/(x0**2 + x1**2) + (-1)**(n - 1)*(3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*s(n - 1)/(x0**3 + x0*x1**2))" + "
" ] }, - "execution_count": 11, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "recur_laplace" + "order_plot = 7\n", + "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=2*order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + " \n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", + "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_hem.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "fig.subplots_adjust(right=0.8)\n", + "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", + "#fig.colorbar(cs1, cax=cbar_ax)\n", + "\n", + "ax1.set_xscale('log')\n", + "ax1.set_yscale('log')\n", + "ax1.set_xlabel(\"source x-coord\")\n", + "ax1.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "ax2.set_xscale('log')\n", + "ax2.set_yscale('log')\n", + "ax2.set_xlabel(\"source x-coord\")\n", + "ax2.set_ylabel(\"source y-coord\")\n", + "\n", + "ax1.set_title('Standard Recurrence Order 7, Laplace (blue=err<1e-5)')\n", + "ax2.set_title('Standard Recurrence, Order 14, Laplace (blue=err" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_14919/1892395105.py:6: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_14919/1892395105.py:7: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs2 = ax2.contourf(x_grid, y_grid, plot_me_hem.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" + ] }, { "data": { - "image/png": "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Fu+//77tVljR8114q2jOnDlYLJYSfwb//ve/4+bmxokTJ2x93333HQMHDsTX1xcvLy969epV7Hfa8ePH+fOf/0xoaCju7u40atSIXr168d133130PZ85cyYWi4V58+bh4mJ/I8TFxYW5c+disVh44YUXbP3PPPMMFouF2NhY7rjjDvz8/AgKCmL8+PGkpaWV+lyZmZn4+/tz//33Fzt26NAhnJ2dmT17tq1v2LBheHt78+677170NVQlJS4VKD4+HoA2bdrY+lavXk2vXr1ITU3l7bff5quvvqJTp06MGjXqiuajFBYWUlBQUOzrQtu3b+dvf/sbEydOZPny5dxyyy22Y1OnTiUhIYG3336bpUuXEhgYyMyZM7nnnnsIDw/niy++4LXXXuPXX38lMjKy2PydvLw8hg8fzoABA/jqq6+YPn16ibEOHTqUwMBAFixYUOzYwoUL6dKlCx06dABg8ODBbNu2jRdffJFVq1Yxb948OnfuTGpqaqnvRWJiIrGxsURFReHl5VXiOZGRkQQGBrJq1apLvgbDMBgxYoQtyfjyyy+57rrriImJKXbduLg4rr32Wnbt2sXLL7/M119/zZAhQ5g4cWKJ70dJ7/mV2LdvH4MHD+Zf//oXy5cvZ9KkSXz66acMGzas2Ln5+fkMHjyYgQMHsnjxYh5++GHeeecdRo0addHnyM3N5dSpU0yZMoXFixfzn//8h969e3PzzTfzwQcf2J17991388gjj3DttdeyaNEi/vvf/zJ8+HAOHTpkO+f555/njjvuICwsjE8//ZQPP/yQjIwM+vTpU665SAUFBaxbt47w8PDLetzw4cMBLpm4rFy5kvz8/BJvzcKlfxbHjx9PdnZ2sT9WUlNT+eqrr7jrrrtwdXUFLu+9yc/PZ/jw4QwcOJCvvvqK8ePH8+qrrzJr1qzLeh9KMnz4cAzDYN26dba++++/n0mTJnHDDTewePFi5s6dS2xsLD179iz2x1piYiJ33XUXd955J8uWLePBBx8s9hyurq7cdddd/O9//yuW1P3nP/8hJyeHcePGAWX/Hty4cSOenp4MHjyYjRs3snHjxlJvT9111124ubkV+z1stVr56KOPGDZsGA0bNgTgo48+IioqCl9fX95//30+/fRTAgICiI6OtkteRo8ezeLFi3n66adZuXIl7733HjfccAMnT54s9b22Wq2s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kr+/Dh06hJeXl+33ZZELf6bd3d2B4j//F3rkkUfYt2+f7fb5W2+9RWRkJF26dCl2btH32aWuWVVUDn0F2rVrZ5uQ279/f6xWK++99x6ff/45t956q+3+6NSpU0stw73mmmsqNcbS/kos6VjRD0BiYmKxc48dO2Z7PWW5dknGjRvHgw8+yO7duzl48CCJiYl2v7gBmjdvzr/+9S8Afv/9dz799FOeeeYZ8vLyePvtt0u8bkhICOHh4axcuZLs7OwS57ls3LiR5ORkbrvttku+hgYNGlBQUMDJkyftfilc+Munfv36ODs7M3r06FJHGVq2bHnJ5yuvH374gWPHjrFmzRrbKAtQ6nygi72mC3/5ne+jjz6iZcuWLFq0yC7+CyeBNmrUCKvVSlJSUqkfXEXfQ59//jnNmze/+Au8iAULFnDvvfcyduxY3n777XK9r0UThi+1rkjDhg3Zvn17ecK0qV+/PjfddBMffPABzz33HAsWLMDDw8Puw7mi3puKsGTJEiwWC3379gXM2CwWC+vWrbN9MJ7vwr7L+fe44447mDx5MgsXLmTGjBl8+OGHjBgxwm5JibJ+D16uop/f119/ndTUVD755BNyc3Ptfi8V/bu88cYbXHfddSVep2iku2HDhsyZM4c5c+aQkJDAkiVLePzxx0lJSWH58uWlxtC/f3+WL1/OkSNHSpzncuTIEbZt20ZMTIwtobpSAwYMICIigjfffBNvb2+2b9/ORx99VOK5RYnZhZ8BjqIRlwr04osvUr9+fZ5++mkKCwu55ppruPrqq/nll19K/IusW7du+Pj4ODpsm8jISDw9PYt98x45coQffvih1Kqhsrrjjjvw8PBg4cKFLFy4kCZNmhAVFVXq+W3atOGpp56iffv2l/zgePLJJzl9+jRTpkwpdiwrK4uJEyfi5eV10UlrRYomYRatcVHkk08+sWt7eXnRv39/duzYQYcOHUr8971YQnClin6BX/ih8c4775T6mNJe08U+vC0WC25ubnYfGElJScUqOoqG1ufNm1fqtaKjo3FxceHAgQOl/kxcysKFC7n33nu56667eO+998qVtKxatYr33nuPnj170rt374ue27ZtW06ePHnRSo2yGDduHMeOHWPZsmV89NFHjBw5En9/f9vxinhvKsKCBQv49ttvueOOO2yjmUOHDsUwDI4ePVpiXO3bty/389WvX58RI0bwwQcf8PXXX5OUlFTsNlFZvwfB/Hm4nJGBcePGkZOTw3/+8x8WLlxIZGQkbdu2tR3v1asX/v7+xMXFlfrv4ubmVuy6zZo14+GHH+bGG2+85O+vqVOnYhgGDz74YLHJt1arlQceeADDMJg6dWqZX1dZTJw4kW+++YapU6cSFBRU7A+7IgcPHqRBgwbFpiI4ikZcKlD9+vWZOnUqjz32GJ988gl33XUX77zzDjExMURHR3P33XfTpEkTTp06xe7du9m+fTufffZZuZ5r3759xeZPgDlsXd6Fr/z9/fnHP/7BE088wZgxY7jjjjs4efIk06dPx8PDg2nTppXruudff+TIkSxcuJDU1FSmTJmCk9O53PnXX3/l4Ycf5rbbbuPqq6/Gzc2NH374gV9//ZXHH3/8ote+44472L59Oy+99BKHDh1i/PjxBAUFsXfvXl599VUOHDjAJ598QqtWrS4ZZ1RUFH379uWxxx4jKyuLbt26sX79ej788MNi57722mv07t2bPn368MADD9CiRQsyMjLYv38/S5cuLXFF18tx4MABPv/882L9YWFh9OzZk/r16zNhwgSmTZuGq6srH3/8Mb/88kuJ13Jzc+Pll18mMzOTa6+9lg0bNvDcc88RExNz0Q/vopL6Bx98kFtvvZXDhw/zz3/+k5CQELtKsz59+jB69Giee+45kpOTGTp0KO7u7uzYsQMvLy/+8pe/0KJFC5599lmefPJJDh48aJsblpyczObNm6lXr16p1WlgznO455576NSpE/fffz+bN2+2O965c2e7RK6wsND2c5Kbm0tCQgLffvstn376Ke3atSvTsgT9+vXDMAx+/vnnEhPthISEEn8WGzVqZLcgZFRUFE2bNuXBBx8kKSmp2Gjjlb43l+vMmTO2uM+cOcPBgwdZvHgxX3/9Nddff73dCGevXr3485//zLhx49i6dSt9+/alXr16JCYm8tNPP9G+fXseeOCBcscyfvx4Fi1axMMPP0zTpk254YYb7I6X9XsQzHkza9asYenSpYSEhODj43PRke22bdsSGRnJzJkzOXz4MPPnz7c77u3tzRtvvMHYsWM5deoUt956K4GBgRw/fpxffvmF48ePM2/ePNLS0ujfvz933nknbdu2xcfHhy1btrB8+fJLLnzZq1cv5syZw6RJk+jduzcPP/wwzZo1sy1A9/PPPzNnzhx69ux5me/sxd11111MnTqVtWvX8tRTT5WYgIG5ou/1119foSPGV8RBk4JrtNIWoDMMc2Z2s2bNjKuvvtooKCgwDMMwfvnlF+P22283AgMDDVdXVyM4ONgYMGCA8fbbb9seV1FVRedXdDRv3twYMmRIqdcobRG79957z+jQoYPh5uZm+Pn5GTfddJMRGxtrd86lKjZKs3LlSlusv//+u92x5ORk4+677zbatm1r1KtXz/D29jY6dOhgvPrqq7b38lKWLVtmDB482GjQoIHh6upqNGnSxBg9enSx+C/1GlJTU43x48cb/v7+hpeXl3HjjTcae/bsKXEBuvj4eGP8+PFGkyZNDFdXV6NRo0ZGz549jeeee852TnkWDrzYv3NRDBs2bDAiIyMNLy8vo1GjRsa9995rbN++3QCMBQsWFHutv/76q9GvXz/D09PTCAgIMB544IFilQIlVRW98MILRosWLQx3d3ejXbt2xrvvvmurajif1Wo1Xn31VSMiIsL2/RMZGWmr0CiyePFio3///oavr6/h7u5uNG/e3Lj11luN77777qLvSVE1TWlf8fHxpZ7r6elpNGvWzBg2bJjx73//28jNzS3Tv4PVajVatGhhPPjgg3b9l6oq+tOf/lTsWk888YQBGKGhoXaVLJf73pT2vVvSv0lJiip/ir7q1atntGrVyrj11luNzz77rNTY/v3vfxs9evQw6tWrZ3h6ehqtW7c2xowZY2zdutXu2qVVLF1YVVTEarUaoaGhF61KK+v34M6dO41evXoZXl5eBmB7vov9jp0/f77te+TCCsEiP/74ozFkyBAjICDA9rtlyJAhtp/pnJwcY8KECUaHDh0MX19fw9PT07jmmmuMadOmlXkBvo0bNxq33nqrERQUZLi4uBiBgYHGzTffbGzYsKHYuUWv/fjx43b9RZ9P5/8sXKxS8O677zZcXFyMI0eOlHh8//79BmD873//K9NrqAoWwyjj1HoRqbHuvvtuPv/8czIzMx0dSo308ssvM2PGDI4ePYqnp6ejwxGpEHl5ebRo0YLevXuXOvr4j3/8gw8++IADBw4UWxzPUTTHRUTkEh566CH8/PyKrYgsUhMdP36cn376iQceeIDk5ORSb8Wnpqby1ltv8fzzz1ebpAWUuIiIXJKHhwcffvhhiRU1IjXNN998Q58+ffj222+ZO3duiSXQYC4xMXXq1BI3EXUk3SoSERGRGkMjLiIiIlJjKHERERGRGkOJi4iIiNQY1WeacAUpLCzk2LFj+Pj4VJ/FckREROSiDMMgIyODxo0b2y1OeqFal7gcO3as2EZ6IiIiUjMcPnz4oivA17rEpWjvn8OHD5d552IRERFxrPT0dEJDQy+5h1+tS1yKbg/5+voqcREREalhLjXNQ5NzRUREpMZQ4iIiIiI1hhIXERERqTFq3RyXsrJareTn5zs6jBrF1dUVZ2dnR4chIiJ1WJ1LXAzDICkpidTUVEeHUiP5+/sTHBysNXJERMQh6lziUpS0BAYG4uXlpQ/gMjIMg+zsbFJSUgAICQlxcEQiIlIX1anExWq12pKWBg0aODqcGsfT0xOAlJQUAgMDddtIRESqXJ2anFs0p8XLy8vBkdRcRe+d5geJiIgj1KnEpYhuD5Wf3jsREXGkOnWrSERERMqp0Ap/bIDMZPAOguY9wanqpwwocREREZGLi1sCy/8O6cfO9fk2hkGzIGx4lYZSJ28V1URr165l2LBhNG7cGIvFwuLFiyv0+uvXr8fFxYVOnTpV6HVFRKSGi1sCn46xT1oA0hPN/rglVRqOEpdysBYabDxwkq92HmXjgZNYC41Kf86srCw6duzIm2++WeHXTktLY8yYMQwcOLDCry0iIjVYodUcaaGkz7mzfcsfN8+rIrpVdJmW70pk+tI4EtNybH0hfh5MGxbGoIjKW9skJiaGmJiYUo/n5eXx1FNP8fHHH5OamkpERASzZs2iX79+l7z2/fffz5133omzs3OFj+SIiEgN9seG4iMtdgxIP2qe17JPlYSkEZfLsHxXIg98tN0uaQFISsvhgY+2s3xXooMig3HjxrF+/Xr++9//8uuvv3LbbbcxaNAg9u3bd9HHLViwgAMHDjBt2rQqilRERGqMzOSKPa8CKHEpI2uhwfSlcRcbLGP60rgquW10oQMHDvCf//yHzz77jD59+tC6dWumTJlC7969WbBgQamP27dvH48//jgff/wxLi4afBMRkQt4B1XseRVAiUsZbY4/VWyk5XwGkJiWw+b4U1UX1Fnbt2/HMAzatGmDt7e37evHH3/kwIEDAHb9EyZMwGq1cueddzJ9+nTatGlT5TGLiEgN0LynWT1EaWt4WcC3iXleFdGf2WWUklF60lKe8ypSYWEhzs7ObNu2rdgy/N7e3gDs3LnT1ufr60tGRgZbt25lx44dPPzww7brGIaBi4sLK1euZMCAAVX2GkREpBpycjZLnj8dg5m8nH9X4WwyM+iFKl3PRYlLGQX6eFToeRWpc+fOWK1WUlJS6NOn5MlRV111lV27sLCQ3377za5v7ty5/PDDD3z++ee0bNmy0uIVEZEaJGw43P5BKeu4vFDl67gocSmj7i0DCPHzICktp8R5LhYg2M+D7i0DKuX5MzMz2b9/v60dHx/Pzp07CQgIoE2bNvzpT39izJgxvPzyy3Tu3JkTJ07www8/0L59ewYPHlzsek5OTkRERNj1BQYG4uHhUaxfRETquLDh0HaIVs6tSZydLEwbFsYDH20vbbCMacPCcHaqnL18tm7dSv/+/W3tyZMnAzB27FgWLlzIggULeO6553j00Uc5evQoDRo0IDIyssSkRURE5LI5OVdZyfPFWAzDqPoymEqUnp6On58faWlp+Pr62h3LyckhPj6eli1b4uFRvls6jlrHpbqoiPdQRETkQhf7/D6fRlwu06CIEG4MC2Zz/ClSMnII9DFvD1XWSIuIiIico8SlHJydLES2buDoMEREROocreMiIiIiNYYSFxEREakxlLiIiIhI2RzdDguHmv91ECUuIiIiUja//BcOrYNfFzksBE3OFRERkdKlJkD2ScACsV+Yfbv+Bx3vAAzwagD+zaosHCUuIiIiUro57Yv3ZR2H+defaz+TVmXhOPRWkYuLC506daJTp07ce++9tv5XX32V8PBwwsLCmDhxIrVsjTwREZGa4+Z3wVLK0v5OLubxKuTQERd/f3+7XYsBjh8/zptvvklsbCyurq707duXTZs2ERkZ6ZggRURE6qr8M5C8C0obQLj3e2jcqUpDqpaTcwsKCsjJySE/P5/8/HwCAwMdHZLDrV27lmHDhtG4cWMsFguLFy+ukOt+/PHHdOzYES8vL0JCQhg3bhwnT56skGuLiEgNFr8W5kbC+teAwrOdRavEOy59KPczl+WDdO7cubY9bbp27cq6devsjqenp9O1a1d69+7Njz/+CECjRo2YMmUKzZo1o3Hjxtxwww20bt26vGFWjkIrxK+D3z43/1torfSnzMrKomPHjrz55psVds2ffvqJMWPGcM899xAbG8tnn33Gli1b7G7biYhIHXPmNHz1MLw/DE7Hg09jGP4m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Qo4dO4aPjw8Wi6VCr33ttdeyZcuWCr1mXaX3snR19b2pza87PT2d0NBQDh8+XGG71ovUNoZhkJGRQePGjXFyKn0mS60bcXFycqJp06aVcm1nZ2f90qkgei9LV1ffm7rwun19fWv9axS5EhcbaSmiybmX4aGHHnJ0CLWG3svS1dX3pq6+bhG5PLXuVpGISHWTnp6On58faWlpGnERuUIacRERqWTu7u5MmzYNd3d3R4ciUuNpxEVERERqDI24iIiISI2hxEVERERqDCUuDvT1119zzTXXcPXVV/Pee+85OhwREZFqT3NcHKSgoICwsDBWr16Nr68vXbp04eeffyYgIMDRoYmIiFRbGnFxkM2bNxMeHk6TJk3w8fFh8ODBrFixwtFhiYgDjBw5kvr163Prrbc6OhSRaq9WJi5Hjx7lrrvuokGDBnh5edGpUye2bdtWYddfu3Ytw4YNo3HjxlgsFhYvXlzieXPnzqVly5Z4eHjQtWtX1q1bZzt27NgxmjRpYms3bdqUo0ePVliMIlJzTJw4kQ8++MDRYYjUCLUucTl9+jS9evXC1dWVb7/9lri4OF5++WX8/f1LPH/9+vXk5+cX69+zZw9JSUklPiYrK4uOHTvy5ptvlhrHokWLmDRpEk8++SQ7duygT58+xMTEkJCQAJS8+2VF760kIjVD//798fHxcXQYIjVCrUtcZs2aRWhoKAsWLKB79+60aNGCgQMH0rp162LnFhYW8tBDD3HnnXditVpt/b///jv9+/cv9S+gmJgYnnvuOW6++eZS43jllVe45557uPfee2nXrh1z5swhNDSUefPmAdCkSRO7EZYjR44QEhJS3pctIg5SlhHYi42+isjlqXWJy5IlS+jWrRu33XYbgYGBdO7cmXfffbfEc52cnFi2bBk7duxgzJgxFBYWcuDAAQYMGMDw4cN57LHHyhVDXl4e27ZtIyoqyq4/KiqKDRs2ANC9e3d27drF0aNHycjIYNmyZURHR5fr+UTEcS41Anup0VcRuTy1LnE5ePAg8+bN4+qrr2bFihVMmDDhovePGzduzA8//MD69eu58847GTBgAAMHDuTtt98udwwnTpzAarUSFBRk1x8UFGS7/eTi4sLLL79M//796dy5M3/7299o0KBBuZ9TRBzjUiOwlxp9FZHL4+LoACpaYWEh3bp14/nnnwegc+fOxMbGMm/ePMaMGVPiY5o1a8YHH3zA9ddfT6tWrfjXv/5VIfNNLryGYRh2fcOHD2f48OFX/DwiUj0Vjb4+/vjjdv3nj76KyOWpdSMuISEhhIWF2fW1a9fuosOyycnJ/PnPf2bYsGFkZ2fz17/+9YpiaNiwIc7OzsUm96akpBQbhRGR2qsso68A0dHR3HbbbSxbtoymTZuyZcuWqg5VpMaodSMuvXr1Yu/evXZ9v//+O82bNy/x/BMnTjBw4EDatWvHZ599xr59++jXrx/u7u689NJL5YrBzc2Nrl27smrVKkaOHGnrX7VqFTfddFO5rikiNdelRl+1hpNI2dW6xOWvf/0rPXv25Pnnn+f2229n8+bNzJ8/n/nz5xc7t7CwkEGDBtG8eXMWLVqEi4sL7dq147vvvqN///40adKkxNGXzMxM9u/fb2vHx8ezc+dOAgICaNasGQCTJ09m9OjRdOvWjcjISObPn09CQgITJkyovBcvItWKRl9FKoFRCy1dutSIiIgw3N3djbZt2xrz588v9dyVK1caZ86cKda/Y8cOIyEhocTHrF692gCKfY0dO9buvLfeesto3ry54ebmZnTp0sX48ccfr+h1iUj1BhhffvmlXV/37t2NBx54wK6vXbt2xuOPP16FkYnUHtqrSETkCpw/Atu5c2deeeUV+vfvbxuBXbRoEaNHj+btt9+2jb6+++67xMbGlnoLW0RKp8RFROQKrFmzhv79+xfrHzt2LAsXLgTMBehefPFFEhMTiYiI4NVXX6Vv375VHKlI7aDERURERGqMWlcOLSIiIrWXEhcRERGpMZS4iIiISI2hxEVERERqDCUuIiIiUmMocREREZEaQ4mLiIiI1BhKXERERKTGUOIiIiIiNYYSFxEREakxlLiIiIhIjaHERURERGoMJS4iIiJSY/w/JFlFKIGhHkIAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABOEAAALACAYAAADVBWZCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOlklEQVR4nOzde1iUdf7/8deIMngCUxQjBamsJDwUkoGZWonhqYNttJaaaeUyZUpt5boddC3sZNQ6aG6W23ZiK2M7uCkddbMDklQb9t0sC0vQBQs8FCrevz/6Mes4MzADM8zp+bgurpp77rnnfQ84n/f9ms99j8kwDEMAAAAAAAAAfKadvwsAAAAAAAAAQh0hHAAAAAAAAOBjhHAAAAAAAACAjxHCAQAAAAAAAD5GCAcAAAAAAAD4GCEcAAAAAAAA4GOEcAAAAAAAAICPEcIBAAAAAAAAPkYIBwAAAAAAAPgYIZybPvroI11yySVKSEiQ2WxWXFyc0tPTdfPNN9utV1BQoNWrV/unyP/v7rvvlslkapPn+vbbb2UymZrd53fffVcmk8n2ExERoZ49e2rixInavHlzm9QKezU1NZo/f76Sk5PVqVMnRUdH6+yzz5bVatWhQ4davf22/Dts9I9//EMjR45UdHS0OnfurNNPP10rV65s0bYa/2ZffPFFL1fZNHf/TfnbNddcowsvvNB225PXyx9/G8Fu7969uvXWW5WZmamePXvKZDLp7rvv9slzHft+ffTPhx9+aLfuueeeq7lz5/qkDrhGT+IcPUloMQxDzz77rM477zwdd9xxMpvNOvHEE2WxWLRjx45Wb7+tx9v8/HxdeumlSkpKkslk0qhRo5yut2bNGv32t7/VySefrI4dO6pfv3668sor9dVXX7X4uelpmkZPE3z69evntE+ZPXu23XqrVq3SCSecoP379/upUsARIZwbXn/9dWVkZKiurk7333+/1q9fr0ceeUTDhw9XYWGh3bqB0PAGsnvvvVcffPCB3n33Xd1xxx3atGmTRo4c2arGAp778ssvdcYZZ+ixxx7TlVdeqddff13PP/+8zjzzTN10000aM2aMDhw44O8yPbJkyRJdeumlSklJ0d///ne98sorysnJ0cGDB/1dWsjZsmWL/vrXv2rx4sX+LiVs1NTUaOXKlaqvr9fFF1/cJs/Z+H599E9KSordOn/6059UUFCg//u//2uTmkBP4k30JIHryJEj+u1vf6srr7xSvXv31urVq7Vu3TrNnTtXr7zyigYNGqT333/f32V6ZMWKFfruu+903nnnqWfPni7Xu++++3TgwAEtWLBAb7zxhhYvXqwtW7bozDPP1BdffNGGFYcHeprgNXz4cIc+5bbbbrNbZ/r06ercubPuv/9+P1UJOGrv7wKCwf3336+kpCStW7dO7dv/7yW74oorwuIf9IEDB9SpUyevbKt///46++yzJUkjRoxQt27dNH36dD399NNauHChV57Dm1ztu2EY+uWXX9SxY0c/VNU6DQ0Nmjx5surq6vTxxx/rlFNOsd03btw4jRw5UldccYVyc3O1YsWKJrdz+PBhmc3mtii7yb/D0tJSLViwQHl5ebr11ltty88///w2qS3cLFmyRGeddZaGDh3q71ICSlPvCz///LOioqLc/rS8srJSnTt3VnR0tCQpMTFRP/74o0wmk6qrq/X44497tXZnjn6/dmXkyJE69dRT9dBDD7V41ik8Q09CT3KsYO5JXLnvvvtUWFioJUuW2B1Ujxo1StnZ2Ro2bJgmT56sL7/8Ut26dXO5HW/+vTSnuff58vJytWv36/yHYz/QONqrr76qXr162S0777zz1K9fPz388MNt8v4fTuhpnPNlT+Mt3bp1a7ZPad++va6//nr96U9/0m233dZm7wdAU5gJ54aamhrFxsbaNbuNGgdT6ddpsV988YXee+8925TYfv36SZJ++eUX3XzzzRoyZIhiYmLUvXt3paen6x//+IfDNk0mk2644Qb97W9/04ABA9SpUycNHjxYr732msO6r7/+uoYMGSKz2aykpCQ9+OCDTvfBarXq3HPPVa9evdS5c2cNHDhQ999/v8Nph6NGjVJKSoo2bNigjIwMderUSddcc40kaefOnbr88svVtWtXxcTEKDs7W1VVVW6/js40Dni7du2yW/7VV19pypQp6tWrl8xmswYMGCCr1erw+J9++kk333yzTjzxRJnNZvXq1Uvjxo3Tl19+Kel/08nfffddu8c5mx5/9dVXq0uXLvr888+VmZmprl272kKcxt/JihUrNGDAAJnNZv31r391u9bGOp577jktWLBA8fHxio6O1gUXXOB0Bskbb7yh888/XzExMerUqZMGDBigvLw8u3U2b96sSZMmqXv37oqKitIZZ5yhv//9782+5i+//LLKy8t1++232wVwjbKzs5WZmalVq1bZfr+Nr9f999+vxYsXKykpSWazWe+8844k9/8ODcNQQUGBhgwZoo4dO+q4447TZZddpm+++cZuvab+Dp1ZtmyZzGazbrzxxmb339sWLlyoYcOGqXv37oqOjtaZZ56pVatWyTAMu/X69eunCRMm6OWXX9agQYMUFRWlE088UY8++mizz7Ft2zbNmDFD/fv3V6dOnXTCCSdo4sSJ+vzzzx3Wbe7fhCQdPHhQixcv1mmnnSaz2ayePXtqxowZ+u9//9tsLbt27dLLL7+sqVOnOr3/l19+UW5urnr37q2OHTtq5MiR2rJlS7PbdXV6Zb9+/XT11VfbLauqqtL111+vPn36KDIyUklJSVq4cKEOHz7c7PO4o66uTrfccouSkpIUGRmpE044QXPnznU4lcHV+8Lq1atlMpm0fv16XXPNNerZs6c6deqk+vr6Jp/3xx9/1KpVq3TBBReoT58+dv8uGscUdxUWFio9PV2dO3dWly5dNHbsWLd+Dy0xdepUPfvss9q7d69Ptg979CT0JKHUkzhz8OBBPfDAAxowYIDdB2uN4uLilJeXp127dmnVqlW25d76e3FnX1ryPn/0v8+mHBvASVJ8fLz69OnjldNwm0JPY4+exjc9jeT++6o3XHnllaqrq9Pzzz/vk+0DnmImnBvS09P1+OOPa86cObryyit15plnqkOHDg7rvfzyy7rssssUExOjgoICSbLNEqqvr9eePXt0yy236IQTTtDBgwf15ptv6tJLL9WTTz6padOm2W3r9ddfV0lJiRYtWqQuXbro/vvv1yWXXKL/+7//04knnihJeuutt3TRRRcpPT1dzz//vBoaGnT//fc7NI+S9PXXX2vKlCm2N+BPP/1U99xzj7788ks98cQTdutWVlbqqquu0q233qp7771X7dq1088//6wLLrhAO3fuVF5enk455RS9/vrrys7ObtVru337dkmyC4PKy8uVkZGhhIQEPfTQQ+rdu7fWrVunOXPmqLq6WnfddZekX6+RdM455+jbb7/VbbfdpmHDhmnfvn3asGGDKisrddppp3lcz8GDBzVp0iRdf/31uv322+0GwKKiIm3cuFF33nmnevfurV69erlda6M//OEPGj58uB5//HHV1dXptttu08SJE7V161ZFRERI+vXaBddee61GjhypFStWqFevXvrPf/6jf//737btvPPOO7rwwgs1bNgwrVixQjExMXr++eeVnZ2tAwcOOAzwRysuLpakJk9pu/jii7V+/Xq9++67uuKKK2zLH330UZ1yyil68MEHFR0drf79+3v0d3j99ddr9erVmjNnju677z7t2bNHixYtUkZGhj799FPFxcXZ1nX2d+jKhg0bNGDAAL300kv605/+pG3btun444/XVVddpUWLFikyMtLlY1vr22+/1fXXX6+EhARJ0ocffqgbb7xRP/zwg+688067dcvKyjR37lzdfffd6t27t5555hnddNNNOnjwoG655RaXz7Fz50716NFDS5YsUc+ePbVnzx799a9/1bBhw7Rlyxadeuqpktz7N3HkyBFddNFF2rhxo2699VZlZGTou+++01133aVRo0Zp8+bNTc6mWL9+vQ4dOqTRo0c7vf8Pf/iDzjzzTD3++OOqra3V3XffrVGjRmnLli22967WqKqq0llnnaV27drpzjvv1EknnaQPPvhAixcv1rfffqsnn3zStm5DQ4PDgYMz7dq1s/19HThwQCNHjtT333+vP/zhDxo0aJC++OIL3Xnnnfr888/15ptv2oVhzt4XSkpKJP16jZnx48frb3/7m/bv3+903Dhw4IBeffVVPfvss3rjjTcUERGhcePGqbCwUMnJyS16je6991798Y9/1IwZM/THP/7RdkA7YsQIffzxx25v12Kx6IorrlCnTp2Unp6uO+64Q+ecc47DeqNGjdJtt92md999VxMnTmxRzXAfPQk9iRQ6PYkzpaWl+vHHH3Xddde5/PBh4sSJateunYqLi+2uhdjavxdP98Wd93lv+Oabb/Tdd9/5/HIE9DT26Gl809N4+l7lyoYNG9S1a1f98ssv6t+/v2bOnKm5c+fa3r8a9e7dW6eddppef/31Jj/UB9qMgWZVV1cb55xzjiHJkGR06NDByMjIMPLy8oy9e/farXv66acbI0eObHabhw8fNg4dOmTMnDnTOOOMM+zuk2TExcUZdXV1tmVVVVVGu3btjLy8PNuyYcOGGfHx8cbPP/9sW1ZXV2d0797daOpX29DQYBw6dMh46qmnjIiICGPPnj22+0aOHGlIMt566y27xyxfvtyQZPzjH/+wW37ttdcakownn3yyyf195513DElGYWGhcejQIePAgQPG+++/b5x66qlGcnKy8eOPP9rWHTt2rNGnTx+jtrbWbhs33HCDERUVZat30aJFhiSjuLi42ed955137JZv377doe7p06cbkownnnjCYTuSjJiYGLvXypNaG+sYN26c3Xp///vfDUnGBx98YBiGYezdu9eIjo42zjnnHOPIkSMu9+u0004zzjjjDOPQoUN2yydMmGAcf/zxRkNDg8vHXnjhhYYk45dffnG5zj//+U9DknHfffcZhvG/1+ukk04yDh48aLeuu3+HH3zwgSHJeOihh+wev2PHDqNjx47Grbfealvm6u/QFbPZbHTt2tU47rjjjGXLlhlvv/22sWDBAiMiIsKYMmWKW9s4VuPv7IUXXnD7MY3/thYtWmT06NHD7neYmJhomEwmo6yszO4xY8aMMaKjo439+/cbhuH8b/NYhw8fNg4ePGj079/fmDdvnm25O/8mnnvuOUOS8dJLL9ktLykpMSQZBQUFTe7j7373O6Njx44Of5+Nr9eZZ55pd9+3335rdOjQwZg1a5Zt2V133eXwHiXJuOuuuxyeLzEx0Zg+fbrt9vXXX2906dLF+O677+zWe/DBBw1JxhdffGH32Mb37aZ+jn7evLw8o127dkZJSYnd9l988UVDkrF27Vq7mp29Lzz55JOGJGPatGkO+2MYhnHw4EHjtddeM6ZMmWJ07tzZiIyMNCZMmGA8/fTTDmOKM//9739dvl4VFRVG+/btjRtvvNFu+d69e43evXsbl19+ebPb/+STT4ybbrrJePnll40NGzYYTzzxhDFgwAAjIiLCeOONN5zuj8lkMm677bZmt43WoyehJwmlnsSZ559/3pBkrFixosn14uLijAEDBthue+Pvxd19ae59vjnu/ts0DMM4dOiQMWrUKCM6OtqoqKho0fPR0zhHT+Ofnsbd96qm5OTkGE888YTx3nvvGUVFRcaVV15pSDKuuuoqp+tfeeWVRlxcXLPbBdoCp6O6oUePHtq4caNKSkq0ZMkSXXTRRfrPf/6j+fPna+DAgaqurnZrOy+88IKGDx+uLl26qH379urQoYNWrVqlrVu3Oqw7evRode3a1XY7Li5OvXr10nfffSdJ2r9/v0pKSnTppZcqKirKtl7Xrl2dzkTYsmWLJk2apB49eigiIkIdOnTQtGnT1NDQoP/85z926x533HE677zz7Ja988476tq1qyZN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l5bsiye9iicaA7gnn3xSq1at0lVXXeWT5zkaPY0jepqm72tJT+PJe9Wrr75q9zq626c46/v37Nkjs9lMAIeAQAjnhsrKSqfpf+OU6aPfEI7+ZPhoJpNJkZGRdm9gVVVVTr+JzB2dO3fWWWedpTVr1uiBBx6wDZZ79+7Vq6++6vDcjbU1MgxDf/nLX9x+vtGjR+vvf/+7XnnlFbvp/M8++2yL6m906623avXq1VqyZImuv/56de3aVaNHj9aWLVs0aNCgJi+on5WVpTvvvFNvv/22y9MWG2d1fPbZZ3azpF555ZVW1S39+gm1u7W6KyMjQzExMVqxYoWuuOIKpwPeqaeeqv79++vTTz91aGDccckllyg5OVlLlizRpZde6vANqYWFhVq/fr1mz57dbBjgyd/hhAkTtGTJEv3www+6/PLLPa67KZMnT9b69ev1z3/+0+70krVr16pdu3YuZwW1lslkUvv27e0uAPvzzz/rb3/7m9P1v/jiC3366ad2p288++yz6tq1q84888wmn+fYkPL111/XDz/8YDfDz51/ExMmTLBdNH3YsGFu7efRTjvtND333HOqra1VTEyMw/3PPfeccnNzbX+73333nTZt2uRwofdj9evXT5999pndsrffflv79u1zqH/t2rU66aSTXJ4y0ejY5s2Vo9/DJ0yYoHvvvVc9evTw+IDVE+np6UpPT1d+fr7eeustPfvss1qwYIFuuukmjRw5UtnZ2Zo2bVqTF5R2ZuzYsWrfvr2+/vrrJk+T6tq1qy18cMePP/6o1157TUOGDHGYNbBz50798ssvLf4iCXiGnoSexJlg7UmciYyM1O9//3v94Q9/0AMPPOBwGvzu3bs1f/58xcXFadasWc1uz92/F1/sS0sYhqFrr71WTz75pB577DHNmDGjTZ6XnoaepqU86Wk8ea8aOHCgR3U89dRTkqSzzz7b4b5vvvmGPgUBgxDODWPHjlWfPn00ceJE2zfxlJWV6aGHHlKXLl1000032dYdOHCgnn/+eRUWFurEE09UVFSUBg4cqAkTJmjNmjXKycnRZZddph07duhPf/qTjj/+eH311VctqutPf/qTLrzwQo0ZM0Y333yzGhoadN9996lz587as2ePbb0xY8YoMjJSv/3tb3Xrrbfql19+0fLly/Xjjz+6/VzTpk3Tww8/rGnTpumee+5R//79tXbtWq1bt65FtTfq0KGD7r33Xl1++eV65JFH9Mc//lGPPPKIzjnnHI0YMUK/+93v1K9fP+3du1fbtm3Tq6++qrfffluSNHfuXBUWFuqiiy7S7bffrrPOOks///yz3nvvPU2YMEGjR49W7969dcEFFygvL0/HHXecEhMT9dZbb2nNmjWtqruRu7W6q0uXLnrooYc0a9YsXXDBBbr22msVFxenbdu26dNPP9WyZcskSY899piysrI0duxYXX311TrhhBO0Z88ebd26VZ988oleeOEFl88RERGhl156SWPGjFF6erpuvvlmpaenq76+Xq+++qpWrlypkSNH6qGHHnKrZnf/DocPH67rrrtOM2bM0ObNm3Xuueeqc+fOqqys1L/+9S8NHDhQv/vd7zx6vRrNmDFDjz32mHJyclRdXa3k5GS9+eabslqtysnJsZttcffdd2vhwoV65513HGb6OXPsNXQajRw5UuPHj9fSpUs1ZcoUXXfddaqpqdGDDz7odKaf9GtjNGnSJN199906/vjj9fTTT6u4uFj33XefOnXq5LKGCRMmaPXq1TrttNM0aNAglZaW6oEHHnA4RcidfxNXXHGFnnnmGY0bN0433XSTzjrrLHXo0EHff/+93nnnHV100UW65JJLXNYyatQoGYahjz76SJmZmQ737969W5dccomuvfZa1dbW6q677lJUVJTmz5/vcpuSNHXqVN1xxx268847NXLkSJWXl2vZsmUOTfGiRYtUXFysjIwMzZkzR6eeeqp++eUXffvtt1q7dq1WrFhhe108bd4aX8OXXnpJ5557rubNm6dBgwbpyJEjqqio0Pr163XzzTe3qNF3JSIiQpmZmcrMzNSKFSv0+uuv69lnn9XcuXM1bNgwDRkyxLbuP//5T+3fv1979+6V9Ou3i7344ouSpHHjxqlTp07q16+fFi1apAULFuibb77RhRdeqOOOO067du3Sxx9/rM6dO2vhwoVN1jRlyhQlJCRo6NChio2N1VdffaWHHnpIu3bt0urVqx3Wb/w34urb5eBd9CT0JK4EQ0/SGEQ2XvbCldtuu02ffvqp7b/Z2dmKiYnRZ599pgceeEB79+7Va6+95jQ4OZYnfy+t6a+as3nzZtt+19XVyTAM23t4WlqarVeZM2eOVq1apWuuuUYDBw6060PMZrPdaXb0NPQ0TQnUnqa171XP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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, "output_type": "display_data" } ], + "source": [ + "order_plot = 6\n", + "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=2*order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + " \n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", + "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_hem.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "fig.subplots_adjust(right=0.8)\n", + "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", + "#fig.colorbar(cs1, cax=cbar_ax)\n", + "\n", + "ax1.set_xscale('log')\n", + "ax1.set_yscale('log')\n", + "ax1.set_xlabel(\"source x-coord\")\n", + "ax1.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "ax2.set_xscale('log')\n", + "ax2.set_yscale('log')\n", + "ax2.set_xlabel(\"source x-coord\")\n", + "ax2.set_ylabel(\"source y-coord\")\n", + "\n", + "ax1.set_title('Standard Recurrence Order 6, Laplace (blue=err<1e-5)')\n", + "ax2.set_title('Standard Recurrence, Order 12, Laplace (blue=err" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "err1 = []\n", "err2 = []\n", @@ -381,30 +456,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Slope of Best Fit vs ratio of y0/x0 for even derivatives')" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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ZmINrt3NEx7k05hlEZGdY0AhsnOODhosjgoBAIuQYnq9OCqEz0MhokbFgEJEGBwagFXju0KvMz+No9e5YtX4rnwOChE1Oj6ojYgAXAspg0L0fJIsEakCAwoRKRwdNOjV1tfWZRAR8RQPERERqU+dA8r+/fsRFRUFg8EAjUaDpKQks/kigpiYGBgMBri5uaFv3744fvy4WZ/S0lLMnDkTzZo1g4eHB4YPH45z587VayBERER066hzQLl06RI6deqEFStWVDl/6dKlWLZsGVasWIGMjAzo9XoMGjQIRUVFSp/o6GgkJiZi06ZNOHjwIIqLizFs2DCUl5ff/EiIiIjolqERkZv+AxsajQaJiYkYOXIkgGtHTwwGA6KjozF//nwA146W+Pv7Y8mSJZg6dSqMRiOaN2+O9evXY8yYMQCAnJwcBAYGYseOHYiMjLzh5xYWFkKn08FoNMLLy+tmyyciIqJGVJfvb6teg5KdnY28vDxEREQobVqtFn369EFaWhoA4MiRIygrKzPrYzAYEBoaqvSprLS0FIWFhWYTERER3bqsGlDy8vIAAP7+/mbt/v7+yry8vDy4uLjA29u72j6VxcfHQ6fTKVNgYKA1yyYiIiKVaZC7eDQa8+cmiIhFW2U19Vm4cCGMRqMynT171mq1EhERkfpYNaDo9XoAsDgSkp+frxxV0ev1uHLlCgoKCqrtU5lWq4WXl5fZRERERLcuqwaUoKAg6PV6pKSkKG1XrlxBamoqevfuDQDo1q0bnJ2dzfrk5uYiKytL6UNERET2rc5Pki0uLsbp06eV19nZ2Th69Ch8fHzQsmVLREdHIy4uDsHBwQgODkZcXBzc3d0xduxYAIBOp8OUKVMwe/Zs+Pr6wsfHB3PmzEFYWBgGDhxovZERERFRk1XngPL111+jX79+yutZs2YBACZNmoS1a9di3rx5uHz5MqZPn46CggL06NEDycnJ8PT0VN7zxhtvwMnJCaNHj8bly5cxYMAArF27Fo6OjlYYEhERETV19XoOiq3wOShERERNj82eg0JERERkDQwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6DChERESkOgwoREREpDoMKERERKQ6TrYugIhITcorBOnZF5FfVAI/T1eEB/nA0UFj67KI7A4DChHR/9mZlYvYbSeQayxR2gJ0rlgcFYLBoQE2rIzI/vAUDxERroWTaQmZZuEEAPKMJZiWkImdWbk2qozIPjGgEJHdK68QxG47AalinqktdtsJlFdU1YOIGgIDChHZvfTsixZHTq4nAHKNJUjPvth4RRHZOQYUIrJ7+UXVh5Ob6UdE9ceAQkR2z8/T1ar9iKj+GFCIyO6FB/kgQOeK6m4m1uDa3TzhQT6NWRaRXWNAISK75+igweKoEACwCCmm14ujQvg8FKJGxIBCRARgcGgAVo3vCr3O/DSOXueKVeO78jkoRI3M6gHl6tWreOGFFxAUFAQ3Nze0adMGL7/8MioqKpQ+IoKYmBgYDAa4ubmhb9++OH78uLVLISKqk8GhATg4vz82PtUTbz7aGRuf6omD8/sznBDZgNWfJLtkyRKsXr0a69atQ4cOHfD111/j8ccfh06nw1//+lcAwNKlS7Fs2TKsXbsWd911F/7xj39g0KBBOHnyJDw9Pa1dEhFRrTk6aNCrra+tyyCye1Y/gnL48GGMGDECDz74IFq3bo2HH34YERER+PrrrwFcO3qyfPlyLFq0CA899BBCQ0Oxbt06/Pnnn9iwYYO1yyEiIqImyOoB5b777sPu3btx6tQpAMCxY8dw8OBBDB06FACQnZ2NvLw8REREKO/RarXo06cP0tLSqlxmaWkpCgsLzSYiIiK6dVn9FM/8+fNhNBrRvn17ODo6ory8HK+88goee+wxAEBeXh4AwN/f3+x9/v7+OHPmTJXLjI+PR2xsrLVLJSIiIpWy+hGUzZs3IyEhARs2bEBmZibWrVuH119/HevWrTPrp9GY364nIhZtJgsXLoTRaFSms2fPWrtsIiIiUhGrH0GZO3cuFixYgEcffRQAEBYWhjNnziA+Ph6TJk2CXq8HcO1ISkDA/78yPj8/3+KoiolWq4VWq7V2qURERKRSVj+C8ueff8LBwXyxjo6Oym3GQUFB0Ov1SElJUeZfuXIFqamp6N27t7XLISIioibI6kdQoqKi8Morr6Bly5bo0KEDvvnmGyxbtgxPPPEEgGundqKjoxEXF4fg4GAEBwcjLi4O7u7uGDt2rLXLISIioibI6gHl7bffxosvvojp06cjPz8fBoMBU6dOxUsvvaT0mTdvHi5fvozp06ejoKAAPXr0QHJyMp+BQkRERAAAjYiIrYuoq8LCQuh0OhiNRnh5edm6HCIiIqqFunx/82/xEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeowoBAREZHqMKAQERGR6jCgEBERkeo42boAIiJSj/IKQXr2ReQXlcDP0xXhQT5wdNDYuiyyQwwoREQEANiZlYvYbSeQayxR2gJ0rlgcFYLBoQE2rIzsEU/xEBERdmblYlpCplk4AYA8YwmmJWRiZ1aujSoje8WAQkRk58orBLHbTkCqmGdqi912AuUVVfUgahgMKEREdi49+6LFkZPrCYBcYwnSsy82XlFk9xhQiIjsXH5R9eHkZvoRWUODBJRff/0V48ePh6+vL9zd3dG5c2ccOXJEmS8iiImJgcFggJubG/r27Yvjx483RClERHQDfp6uVu1HZA1WDygFBQW499574ezsjP/+9784ceIE/vnPf+L2229X+ixduhTLli3DihUrkJGRAb1ej0GDBqGoqMja5RAR0Q2EB/kgQOeK6m4m1uDa3TzhQT6NWRbZOY2IWPWqpwULFuDQoUM4cOBAlfNFBAaDAdHR0Zg/fz4AoLS0FP7+/liyZAmmTp16w88oLCyETqeD0WiEl5eXNcsnIrJLprt4AJhdLGsKLavGd+WtxlRvdfn+tvoRlK1bt+Kee+7BI488Aj8/P3Tp0gXvv/++Mj87Oxt5eXmIiIhQ2rRaLfr06YO0tLQql1laWorCwkKziYiIrGdwaABWje8Kvc78NI5e58pwQjZh9Qe1/fTTT1i1ahVmzZqFv/3tb0hPT8dzzz0HrVaLiRMnIi8vDwDg7+9v9j5/f3+cOXOmymXGx8cjNjbW2qUSEdF1BocGYFCInk+SJVWwekCpqKjAPffcg7i4OABAly5dcPz4caxatQoTJ05U+mk05hu8iFi0mSxcuBCzZs1SXhcWFiIwMNDapRMR2T1HBw16tfW1dRlE1j/FExAQgJCQELO2u+++G7/88gsAQK/XA4ByJMUkPz/f4qiKiVarhZeXl9lEREREty6rB5R7770XJ0+eNGs7deoUWrVqBQAICgqCXq9HSkqKMv/KlStITU1F7969rV0OERERNUFWP8Xz/PPPo3fv3oiLi8Po0aORnp6O9957D++99x6Aa6d2oqOjERcXh+DgYAQHByMuLg7u7u4YO3astcshIiKiJsjqAaV79+5ITEzEwoUL8fLLLyMoKAjLly/HuHHjlD7z5s3D5cuXMX36dBQUFKBHjx5ITk6Gp6entcshIiKiJsjqz0FpDHwOChERUdNj0+egEBEREdUXAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREakOAwoRERGpDgMKERERqQ4DChEREamOk60LICIiUovyCkF69kXkF5XAz9MV4UE+cHTQ2Losu8SAQkREBGBnVi5it51ArrFEaQvQuWJxVAgGhwbYsDL7xFM8RERk93Zm5WJaQqZZOAGAPGMJpiVkYmdWro0qs18NHlDi4+Oh0WgQHR2ttIkIYmJiYDAY4Obmhr59++L48eMNXQoREZGF8gpB7LYTkCrmmdpit51AeUVVPaihNGhAycjIwHvvvYeOHTuatS9duhTLli3DihUrkJGRAb1ej0GDBqGoqKghyyEiIrKQnn3R4sjJ9QRArrEE6dkXG68oariAUlxcjHHjxuH999+Ht7e30i4iWL58ORYtWoSHHnoIoaGhWLduHf78809s2LChocohIiKqUn5R9eHkZvqRdTRYQJkxYwYefPBBDBw40Kw9OzsbeXl5iIiIUNq0Wi369OmDtLS0KpdVWlqKwsJCs4mIiMga/DxdrdqPrKNBAsqmTZuQmZmJ+Ph4i3l5eXkAAH9/f7N2f39/ZV5l8fHx0Ol0yhQYGGj9oomIyC6FB/kgQOeK6m4m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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.scatter(ratios, slopes)\n", "plt.xscale('log')\n", @@ -422,20 +476,9 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([-21.44648644, -1.55708767])" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "coefficients_new" ] diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 01dbc8514..56a908629 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -128,10 +128,10 @@ { "data": { "text/latex": [ - "$\\displaystyle 2.61457522299224 \\cdot 10^{-14}$" + "$\\displaystyle 4.44089209850063 \\cdot 10^{-16}$" ], "text/plain": [ - "2.61457522299224e-14" + "4.44089209850063e-16" ] }, "execution_count": 7, @@ -703,7 +703,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -715,7 +715,7 @@ "0.00263326606293773" ] }, - "execution_count": 43, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -727,7 +727,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -739,7 +739,7 @@ "0.0466919192638915" ] }, - "execution_count": 44, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -772,34 +772,32 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ - "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 4, laplace2d, derivs_lap, 4, 2)\n", - "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 7, laplace2d, derivs_lap, 4, 2)" + "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 5, laplace2d, derivs_lap, 8, 2)\n", + "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 12, laplace2d, derivs_lap, 8, 2)" ] }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_5026/3325410114.py:2: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_5026/3325410114.py:4: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_5026/3325410114.py:8: UserWarning: Attempt to set non-positive ylim on a log-scaled axis will be ignored.\n", - " fig.colorbar(cs1, cax=cbar_ax)\n" + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_12605/3462362177.py:2: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap1.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_12605/3462362177.py:4: UserWarning: Log scale: values of z <= 0 have been masked\n", + " cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap2.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" ] }, { "data": { - "image/png": "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SoqZM2eOueKKK8yqVavMc889Z1JTU03//v1NdXV1yO2uq69z5swxy5cvN6+99pp54403zMMPP2w6duxobrjhBr9jlpiYaBYsWOD3uwcPHjQtW7Y0P/vZz3zbLr74YnPxxRf7Hn/zzTemf//+pnXr1ubBBx80a9asMQsXLjTx8fFm3Lhxfs8nyXTp0sX079/fPP/88+aNN94wH3zwQZ19OXLkiGnfvr3p3Lmzeeyxx8yOHTuC9ruiosIMHDjQdOzY0SxZssSsXbvW/PKXvzTJycnmkksu8TuG9bVBkrnjjjt8++7Zs8d069bNpKenm8cee8ysXbvW3HXXXSYxMdFMmzbNt9/vf/97I8n8z//8j1mzZo1Zu3atefTRR82sWbOCtjmYTZs2GUnm5z//edB9vvrqK9OsWTMzduxY37aLL77YpKSkmG7duplf//rXZt26dWb9+vXm66+/Nueee65JTk42v/71r01BQYGZNWuW6d69u5FknnnmGd9zvPHGGyYhIcEMHz7crFy50rz22mtm2rRptfareX906dLF3Hzzzeavf/2reemll8yJEyeCtlmSOe2000xSUpJJSEgw5513nnn66afDPj6nSk9PN5dffnm9+yxfvtzk5uaaV1991axfv9785je/MQMGDDC9e/c2x44d8+13xx13+N6fP/vZz0xBQYFZsmSJad26tRk0aJDfvoHvAWOMmTZtmnnqqadMYWGhKSwsNHfddZdp2bKlWbRokd9+CxcuNJLM1VdfbV588UWzZs0as2TJErNw4ULfPr/97W9NXFycufLKK83LL79s/vznP5vx48eb5s2bm7Vr1zbhiAGwEvmEfEI+sVc+OX78uMnMzDR9+vQxmzdvNl999ZUpLi42AwcONOedd57f3B8O8gkA1I8CICJm0qRJZujQob5QFYmAXVZWZuLj483//M//+O331Vdfmc6dO5vrrrvOt23q1KlGUp3FDUmmc+fO5siRI75t+fn5RpIZOHCgXxBcunSpkWTee++9kNvdUF+rqqrM8ePHzbPPPmuaN29uDh065Pe7nTp1MpWVlb5tv/jFL0yzZs38wm1guHj00UeNJPPCCy/4vdYvfvELI8msWbPGr//Jycl+r1ufv/zlL6Zjx45GkpFkOnToYK699lrz6quv+u2Xm5trmjVr5vcfRMYY89JLLxlJZvXq1SG1ITBg//jHPzZt2rQxn3zyid9+Dz74oJHk+w+rW265xbRv3z6kPjXkD3/4g5FkHn300Xr3S01NNeeee67v8cUXX2wkmddff91vv+XLlxtJ5k9/+pPf9h/96Ee1gvN3vvMdM2jQIHP8+HG/fcePH2/OOOMMU1VVZYz59v1x/fXXh9yv73//++a5554zGzZsMC+99JLJzs42ksz//d//hfwcgUIJ2Keqrq42x48fN5988kmtY1ITsOfMmeP3O88995yRZH73u9/5ttUVsE9V8z5bvHix6dChg+99/Z///Mc0b97c/OAHPwj6uxUVFSYlJcVMmDCh1nMOGDDAnH/++SH3F4C9kE/IJzXIJ/bJJ+Xl5WbChAm+cynJjBw50hw8eDDk5whEPgGA+vERYETEH//4R/35z3/WE088Ue+9yKqrq3XixAnfv6qqqnqft6CgQCdOnND111/v93tJSUm6+OKL6/wWu0mTJtX5XKNGjVLr1q19j88991xJUnZ2tl+ba7Z/8skn9batIVu3btXEiRPVoUMHNW/eXC1atND111+vqqoq/etf//Lt95Of/ET79+/Xiy++KOnkMVq+fLkuv/xy9ejRI+jzv/HGG2rdurWuueYav+3Tpk2TpFofC6j51rhQjBs3TmVlZXrllVc0b9489enTR/n5+Zo4caJuueUW336rVq1S3759NXDgQL/zM3bs2Dq/ZTDUNqxatUqjRo1SWlqa3/NmZ2dLktavXy9JOv/88/Xll1/qe9/7nv70pz/V+vhGNBhjal3jp512mi655BK/bevWrVPbtm01ceJEv+3f//73/R5v375d//znP/WDH/xAkvz6O27cOO3Zs0cfffSR3+8Eu8br8txzz+n73/++hg8frkmTJmn16tUaP3687rvvvpA+wtJY+/fv14wZM9StWzfFx8erRYsWSk9PlyRt27at1v41/a9x3XXXKT4+XuvWrav3dd544w1997vfVXJysu99dvvtt+vgwYPav3+/pJMf96mqqlJOTk7Q59m0aZMOHTqkqVOn+p2D6upqXXbZZSoqKqr1sTEA9kc+qY18Qj6xOp8cP35ckydPVklJiZ544glt2LBBv/nNb/TZZ5/p0ksvbfBLepqCfALAy/gSEDTZkSNHlJOTo//5n/9RWlqavvzyS0kn71kiSV9++aVatGih1q1ba/HixX43bk5PT9fOnTuDPve+ffskSVlZWXX+PPB+L61atVK7du3q3DclJcXvcUJCQr3b67u3TUPKyso0fPhw9e7dW7/85S/Vo0cPJSUlafPmzcrJydE333zj23fQoEEaPny48vLy9IMf/ECrVq3Szp079dhjj9X7GgcPHlTnzp1rhb1OnTopPj7ed6+cGsHumRNMy5YtdeWVV+rKK6/09Sk7O1t5eXn67//+b/Xp00f79u3T9u3bffdyCRQYeENtw759+/TnP/+5weedMmWKTpw4oSeeeEKTJk1SdXW1srKydPfdd+vSSy8Nsacn1Xwr7o4dO4LuU1FRoQMHDmjQoEF+2+vq18GDB5Wamlpre+fOnf0e11zj8+bN07x58+p83cYex2B++MMfatWqVdqyZYvvP1oiqbq6WmPGjNHu3bu1cOFC9evXT61bt1Z1dbUuvPBCv+u/RuBxiY+PV4cOHWpdx6favHmzxowZo5EjR+qJJ57w3Y8pPz9f99xzj+91agqd9X2TY815CPwP1lMdOnTI7z/SAdgb+aQ28slJ5BNr88lTTz2lv/71ryoqKvJ9qc7w4cN10UUX6ayzztLSpUt1xx13hPRc4SCfAPA6CoBosgMHDmjfvn166KGH9NBDD9X6+WmnnaYrrrhC+fn5uvnmmzV+/HjfzxITE+t97o4dO0qSXnrpJd/qXH3qW92Ppfz8fFVUVOjll1/2a3dJSUmd+8+aNUvXXnut/vGPf+iRRx7ROeec02BA7NChg955551aK7779+/XiRMnfMeuRlOPTffu3XXzzTdr9uzZ+vDDD9WnTx917NhRLVu21NNPP13n7zS2DR07dlT//v11zz331PnztLQ03/+/4YYbdMMNN6iiokIbNmzQHXfcofHjx+tf//pXSNdMjczMTJ122ml69dVXlZubW2dbX331VVVXV9c6N3Xt26FDB23evLnW9sCbbNcco/nz5+vqq6+us229e/du8PXCYf7/DagD/wM1Uj744AO9++67WrFihaZOnerbXt/N6/fu3asuXbr4Hp84cUIHDx5Uhw4dgv7OH/7wB7Vo0UKrVq3yu2F4fn6+336nn366JOnTTz9Vt27d6nyumvPw61//Oui3Ptb1H0wA7It8Uhv55CTyibX5pKSkRM2bN9d5553nt/3MM89Uhw4d9MEHH4T0POEinwDwOgqAaLLOnTvX+Wfw9913n9avX6+//vWvvskrLS3NLxw1ZOzYsYqPj9e///3vsD72aLWaAHTqf0AYY/TEE0/Uuf9VV12l7t2766c//anWr1+vhx9+uMEQNXr0aL3wwgvKz8/XVVdd5dv+7LPP+n7eGF999ZXi4uLUpk2bWj+r+WhEzTkcP3687r33XnXo0EE9e/Zs1OvVZfz48Vq9erXOOuuskD8W1Lp1a2VnZ+vYsWO68sor9eGHH4YVsBMSEvSzn/1M//u//6sHHnig1jft7d+/X/Pnz1dqaqpuuummBp9v1KhReuGFF/Tqq6/6fczm+eef99uvd+/e6tWrl959913de++9Ibe3KX7729+qRYsWyszMjMrz13X9S6r3r0aee+45v/a88MILOnHihEaOHFnv68THx6t58+a+bd98841++9vf+u03ZswYNW/eXMuXL9eQIUPqfK5hw4apffv2Ki0t9fsYGQDnIp/URj5pGvJJZKSlpamqqkpFRUW64IILfNv/9a9/6eDBg/X+RVxTkE8AeB0FQDRZUlJSnZPgihUr1Lx583onyIb06NFDixcv1oIFC/Sf//xHl112mU477TTt27dPmzdvVuvWrf0+smMXl156qRISEvS9731Pt956q44eParly5friy++qHP/5s2bKycnRz//+c/VunVr331y6nP99dcrLy9PU6dO1c6dO9WvXz/97W9/07333qtx48bpu9/9bqPa/tFHH2ns2LH6r//6L1188cU644wz9MUXX+gvf/mLHn/8cY0cOVJDhw6VJM2ePVt//OMfNWLECM2ZM0f9+/dXdXW1ysrKtGbNGv30pz/1C3ahWrx4sQoLCzV06FDNmjVLvXv31tGjR7Vz506tXr1ajz76qLp27aof/ehHatmypYYNG6YzzjhDe/fuVW5urpKTk/0+llVzr6L6Ps4lST//+c/17rvv+v538uTJSk5O1nvvvacHHnhAX331lVatWqXk5OQG+3D99dfr4Ycf1vXXX6977rlHvXr10urVq1VQUFBr38cee0zZ2dkaO3aspk2bpi5duujQoUPatm2b/vGPf/juvxSuBx54QKWlpRo9erS6du2q/fv366mnntKaNWt05513+v0FxM6dO9WzZ09NnTpVK1asaPC59+7dq5deeqnW9h49emjAgAE666yzdNttt8kYo5SUFP35z39WYWFh0Od7+eWXFR8fr0svvVQffvihFi5cqAEDBui6664L+juXX365lixZou9///u6+eabdfDgQT344IO1gn2PHj30v//7v7rrrrv0zTff6Hvf+56Sk5NVWlqqAwcOaNGiRWrTpo1+/etfa+rUqTp06JCuueYaderUSZ9//rneffddff7551q+fHmDxwWAfZBPaiOfkE/skE9uuOEGPfzww5o0aZL+7//+T71799Z//vMf3XvvvWrdurVmzJjh25d8Qj4BEEGWff0IXC8S37JXIz8/34waNcq0a9fOJCYmmvT0dHPNNdeYtWvXhvR6kkxOTo7fth07dhhJ5oEHHvDbvm7dOiPJvPjiiyG3u67X/vOf/2wGDBhgkpKSTJcuXczPfvYz89e//tVIMuvWrav1HDt37jSSzIwZM+p8jbq+YezgwYNmxowZ5owzzjDx8fEmPT3dzJ8/3xw9etRvv7r6H8wXX3xh7r77bnPJJZeYLl26mISEBNO6dWszcOBAc/fdd5uvv/7ab/8jR46Y//u//zO9e/c2CQkJJjk52fTr18/MmTPH7N27N6Q2KOBb9owx5vPPPzezZs0yPXv2NC1atDApKSkmMzPTLFiwwPdtib/5zW/MqFGjTGpqqklISDBpaWnmuuuuq/UNiR07djQXXnhhSP2vrq42zz33nBk5cqRp3769SUhIMD179jT//d//Xetb/4w5eV769OlT53N9+umnZtKkSaZNmzambdu2ZtKkSWbTpk21vmXPGGPeffddc91115lOnTqZFi1amM6dO5tLLrnE71v/gr0/gnn11VfNRRddZE4//XQTHx9v2rZta4YPH25+//vf19r3/fffN5LMbbfd1uDzpqen+31r36n/pk6daowxprS01Fx66aWmbdu25rTTTjPXXnutKSsrq3Wua75lr7i42EyYMMF3rL73ve+Zffv2+b1uXe+Bp59+2vTu3dskJiaaM8880+Tm5pqnnnrKSPL7lkpjjHn22WdNVlaWSUpKMm3atDGDBg2qdR7Wr19vLr/8cpOSkmJatGhhunTpYi6//PKwxgMA9kY+IZ+QT6zNJ8YY8/HHH5spU6aYHj16mMTERNO9e3czefJk3zcp1yCfnEQ+ARAJccb8/5tBAbDUr3/9a82aNUsffPCB+vTpY3VzXKO0tFR9+vTRqlWrdPnll1vdHNtatmyZbr31Vv373/+O6b1k7rzzTi1atEiff/55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4yorK9OMGTMsbHX4vNBPL/RR8kY/vdBHyRv99EIfJe/081Re7HMseeX4eqGfXuij5I1+eqGPEv10Uz+90Me6eLXfQKPF6uuGrbZu3Tojqda/qVOn+vbJy8sz6enpJiEhwZx33nlm/fr11jW4kbzQTy/00Rhv9NMLfTTGG/30Qh+N8U4/T+XFPseSV46vF/rphT4a441+eqGPxtBPN/XTC32si1f7DTRWnDHGhFosBAAAAAAAAOAs3AMQAAAAAAAAcDEKgAAAAAAAAICLUQAEAAAAAAAAXIwCIAAAAAAAAOBiFAABAAAAAAAAF6MACAAAAAAAALgYBUAAAAAAAADAxSgAAgAAAAAAAC5GARAALLBz507FxcWppKTE6qYAAABIIp8AgJtRAAQAAAAAAABcjAIggKiqqqpSdXW11c2wzLFjx6xuAgAACEA+IZ8AgNdQAAQ85qWXXlK/fv3UsmVLdejQQd/97ndVUVEhSaqurtbixYvVtWtXJSYmauDAgXrttdd8v/vmm28qLi5OX375pW9bSUmJ4uLitHPnTknSihUr1L59e61atUoZGRlKTEzUJ598osrKSt16663q1q2bEhMT1atXLz311FO+5yktLdW4cePUpk0bpaamasqUKTpw4EDQftx4443q37+/KisrJUnHjx9XZmamfvCDH9Tb/w8//FCXX3652rVrp7Zt22r48OH697//HVL/Jen999/XJZdc4jt+N998s44cOeL7+bRp03TllVcqNzdXaWlpOueccyRJmzdv1qBBg5SUlKTBgwdr69at9bYTAAAvIZ+QTwAA0UUBEPCQPXv26Hvf+55uvPFGbdu2TW+++aauvvpqGWMkSb/85S/10EMP6cEHH9R7772nsWPHauLEifr444/Dep2vv/5aubm5evLJJ/Xhhx+qU6dOuv766/WHP/xBv/rVr7Rt2zY9+uijatOmja9dF198sQYOHKgtW7botdde0759+3TdddcFfY1f/epXqqio0G233SZJWrhwoQ4cOKBly5YF/Z3PPvtMI0aMUFJSkt544w0VFxfrxhtv1IkTJ0Lq/9dff63LLrtMp512moqKivTiiy9q7dq1uuWWW/xe5/XXX9e2bdtUWFioVatWqaKiQuPHj1fv3r1VXFysO++8U/PmzQvrmAIA4FbkE/IJACAGDADPKC4uNpLMzp076/x5Wlqaueeee/y2ZWVlmZkzZxpjjFm3bp2RZL744gvfz7du3WokmR07dhhjjHnmmWeMJFNSUuLb56OPPjKSTGFhYZ2vu3DhQjNmzBi/bbt27TKSzEcffRS0P5s2bTItWrQwCxcuNPHx8Wb9+vVB9zXGmPnz55uePXuaY8eO1fnzhvr/+OOPm9NOO80cOXLE9/O//OUvplmzZmbv3r3GGGOmTp1qUlNTTWVlpW+fxx57zKSkpJiKigrftuXLlxtJZuvWrfW2GQAAtyOfkE8AANHHXwACHjJgwACNHj1a/fr107XXXqsnnnhCX3zxhSSpvLxcu3fv1rBhw/x+Z9iwYdq2bVtYr5OQkKD+/fv7HpeUlKh58+a6+OKL69y/uLhY69atU5s2bXz//l879w7SZhuGcfyOfnk1irZUM0QRRYLalBhxa0sEl5YOImodnNShzi0KHTpJ6VA6dHCVCp2qpQilVbTQIvWIg4fiKaDg4OYmIlSb6xs+fDGf0brUwuv/B4HkefKctis3eZ+qqiozM/fxl3Ru375tPT099vz5c+vu7ra6ujq378GDB+5ct27dcvcRj8fN7/efmusi519bW7NYLGa5ubkp/clk0jY2Nty2aDRqjuO4n4/H5eTkpOwdAACQT8gnAIDL8M/f3gCAy5OZmWlfvnyx6elpGx8ft76+Pnv27JnNzc1ZQUGBmZn5fL6UMZLctoyMDLft2OHh4al1AoFAyjyBQODcfSWTSWtoaLCXL1+e6guFQueOm5qasszMzFOPAfX399vBwYGZmRuof7cPs/PPf/L9eeNOBvDjcQAAID3yCfkEAPDn8Q9A4Irx+Xx29+5d6+3ttYWFBXMcx4aHhy0/P9+KiopscnIy5fvT09N28+ZNMzMLBoNm9t+dOMcWFxd/u2Y0GrVkMmkTExNp+2tra21lZcXKysosHA6nvP4fVk969eqVra2t2cTEhI2NjdnAwIDbV1xc7M5RWlpqZmbV1dX2/fv3tD8KLnL+SCRii4uL7qXkZmZTU1OWkZHhXqadTiQSsaWlJTfwm5nNzs6e+X0AAK4a8gn5BADwh/2tZ48BXL7Z2Vm9ePFC8/Pz2t7e1tDQkBzH0cjIiCTp9evXys/P17t377S+vq6nT5/K7/crkUhIkn7+/KmSkhK1trZqY2NDnz59UmVl5ak7dq5du3Zq7Y6ODpWUlGh4eFhbW1v69u2bBgcHJUk7OzsKBoN6+PCh5ubmtLm5qbGxMXV2duro6CjtWRYWFuQ4jj5+/ChJ6u/vV15enjY3N888/+7urgoKCtTc3Kz5+XklEgm9fftW6+vrFzr//v6+QqGQWlpa9OPHD339+lXl5eVqb29312hvb1djY2PKunt7eyosLFRbW5tWVlb0+fNnhcNh7tgBAEDkE/IJAOAyUAAErpDV1VXdv39fwWBQWVlZqqioUF9fn9v/69cv9fb2qri4WH6/X7FYTKOjoylzTE5OKhqNKjs7W/F4XO/fv79QwD44ONCTJ08UCoXkOI7C4bDevHnj9icSCTU1Nen69esKBAKqqqrS48ePlUwm084ViUTU1dWV0t7U1KQ7d+6cGcolaWlpSffu3VNOTo7y8vIUj8fdUH6R8y8vL6u+vl7Z2dm6ceOGHj16pL29Pbc/XcCWpJmZGcViMTmOo5qaGn348IGADQCAyCcS+QQA8Of5JC5/AAAAAAAAALyKOwABAAAAAAAAD6MACAAAAAAAAHgYBUAAAAAAAADAwygAAgAAAAAAAB5GARAAAAAAAADwMAqAAAAAAAAAgIdRAAQAAAAAAAA8jAIgAAAAAAAA4GEUAAEAAAAAAAAPowAIAAAAAAAAeBgFQAAAAAAAAMDDKAACAAAAAAAAHvYvMJH8Q5nZy5AAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABOEAAALACAYAAADVBWZCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACR5ElEQVR4nOzde3yT5f3/8Xeg9MChxVIpFNpSFJGCgJaqgAjoLJaDJ5xsKidBx4hfhHqYjHkAD9WprFMC6kQYKoo4ZMr4ClUcoHgolXoq+04ULUqBUbQF1CLl+v3hrxkhTZu0SXMneT0fjz40d+7c+SSluT7XO/fBZowxAgAAAAAAABAwLYJdAAAAAAAAABDuCOEAAAAAAACAACOEAwAAAAAAAAKMEA4AAAAAAAAIMEI4AAAAAAAAIMAI4QAAAAAAAIAAI4QDAAAAAAAAAowQDgAAAAAAAAgwQjgAAAAAAAAgwAjhfLBt2zZddtllSklJUevWrXX66adr3rx5+v777z0+ZtiwYbLZbA3+3H333c33QrzgTc02m03//Oc//facw4YN07Bhw/y2vfr89NNPeuKJJ5Sdna3ExES1bt1a6enpuvTSS/Xyyy/7/fms9Ds2xmj58uW64IILdNJJJykmJkbdu3eX3W7Xrl27mrz9L7/8UjabTUuXLm16sV7w9G/zgQceaPQ2u3XrptGjR/uxSu80599AY23evFkxMTH66quvnMu8fb+a+99GuFi2bJl+9atfqWfPnmrRooW6desWsOfq1q1bnX9P06ZNc1lv8eLF6tKliw4fPhywWuA9+hP6k8ay0u843PqTgoICXXHFFcrIyJDNZvP4b2jVqlX69a9/rVNPPVVxcXHq1q2brrnmGn322WeNfu5//vOfstlseumllxq9jcYIlXH+uuuu08UXX+y87cv7dffdd8tmswWyPNSB/gThJCrYBYSK0tJSDRo0SD179lRBQYGSkpK0adMmzZs3T8XFxfr73/9e5+MWLlyoqqoq5+1//OMfuvfee7VkyRKdfvrpzuVdu3YN+GvwxTvvvONy+5577tGbb76pDRs2uCzPzMxszrL8Zvz48Vq1apVmzpypuXPnKiYmRl988YVee+01rVu3Tpdffrlfn++dd96xxO/42LFjuvrqq7VixQr9+te/1tKlS5WQkKCPPvpIDz30kJYvX641a9Zo8ODBwS7VJ1deeaVuvvlml2VpaWlBqiZ8GWM0c+ZMXX/99UpPTw92ORHjmWee0Z49e3T22Wfr2LFj+umnnwL6fIMHD9bDDz/ssiw5Odnl9sSJE/Xggw/qj3/8o+bOnRvQelA/+hP6k6agPwmcxx9/XG3atNEFF1ygV1991eN6Dz74oDp16qQ5c+aoe/fu2rVrl+6//36dddZZevfdd9W7d+9mrDr8bdu2TX/961/13nvvBbsU+Ij+BGHDwCtz5swxksyOHTtclt9www1Gkjlw4IBX21myZImRZIqKivxS1+HDh/2ynYZMnDjRtGnTJqDPMXToUDN06FC/bOvYsWPm+++/r/O+L774wkgyd955Z53319TUBLyGYLn//vuNJPPAAw+43bdnzx6Tnp5ukpOTzbffflvvdur7d7dz504jySxZsqSJ1f7s+++/N8eOHfN4vyRjt9v98ly10tPTzahRo/y6TW/4828gENauXWskmX/9618uy719v/z9b8NKPP1N+Po5UF1dbXbu3Omy7PjPpFGjRpn09PTGlOgVX/7tP/zwwyYhIaHZxiHUjf6E/sSfNQRLOPYnx/++evfu7fHf0N69e92WffPNN6ZVq1ZmypQpjartzTffNJLMypUrG/X4xgqFcf6qq64y5557rssyX96vu+66y4TjFLq+z4WG/q2faPfu3aaystJfpRlj6E8QXjgc1UutWrWSJCUkJLgsb9++vVq0aKHo6OgmbX/FihUaOHCg2rRpo7Zt22rEiBHatm2byzqTJk1S27Zt9fHHHysnJ0ft2rXThRdeKOnnwwluvPFGLVmyRD179lRcXJwGDBigd999V8YYPfTQQ8rIyFDbtm11wQUXaMeOHU2qV5IcDofOP/98dezYUW3atNEZZ5yhP/7xjy57adxzzz2Kioqq8zCC6667Th06dNCPP/7o8TkOHDig6dOnq0uXLoqOjlb37t01Z84cVVdXu6xX+/off/xx9erVSzExMfrrX/9a5zYrKiokSZ07d67z/hYtXP8sqqqqdMsttygjI0PR0dHq0qWLZs6c6babc3011HW4x549e/Sb3/xGXbt2VXR0tDIyMjR37lwdPXrUZb1FixapX79+atu2rdq1a6fTTz9dv//97z2+Z54cOXJEDz30kHr16qXbbrvN7f7k5GTl5+dr7969Wrx4sXP5sGHD1KdPH23atEmDBg1S69atdd1110mSdu/erauuukrt2rVTQkKCxo0bpz179tT5/Fu3btUll1yixMRExcbG6swzz9SLL77oss7SpUtls9m0fv16XXfddTr55JPVunVrt9+3FRQWFurSSy9V165dFRsbq1NPPVW/+c1vtH//fpf1ag9b2LZtm6644grFx8crISFB1157rf7zn/80+Dxz587VOeeco8TERMXHx+uss87S4sWLZYxxW3f58uUaOHCg2rZtq7Zt26p///4uv0tJev3113XhhRcqPj5erVu31uDBg/XGG2949ZoXLVqk7Oxs9ezZs877X375ZfXt21exsbHq3r27Hn300Qa3OWnSpDoPr6zrcA9jjBYuXKj+/fsrLi5OJ510kq688kp98cUXXtXvDX99FnvzWVTr2LFj2rBhg66//np16tRJBQUFLvef+JlUn88++0xXX321OnbsqJiYGPXq1UsOh8Prx/vimmuuUVVVlV544YWAbB/eoT9xR39Cf2KF/sTbz+6OHTu6LUtJSVHXrl39chhufbztMWpPO9GYcX7Hjh2aPHmyevToodatW6tLly4aM2aMPv74Y7d1v/vuO918883q3r27YmJi1LFjR40cOVL/+te/nOscOXJE9957r04//XTFxMTo5JNP1uTJk73qqfbu3auXX35Z48ePr/P+H3/8UXl5eerUqZPi4uI0dOhQt8+7ung6rLtbt26aNGmSyzJv/74aq6mfC43txb/99lstXrxYv/jFL9S1a1e33oz+BDhOUCPAELJz507Tvn17c+WVV5rPP//cVFVVmVdffdUkJCSY//mf//F6O3V903zfffcZm81mrrvuOrNmzRqzatUqM3DgQNOmTRvz6aefOtebOHGiadWqlenWrZvJz883b7zxhlm3bp0x5ue9gdLT082gQYPMqlWrzMsvv2xOO+00k5iYaGbNmmUuvfRSs2bNGvPcc8+Z5ORk07dvX5++0ajrm+ZZs2aZRYsWmddee81s2LDB/OlPfzJJSUlm8uTJznX27t1rYmJizJw5c1weW1FRYeLi4sytt97qXHbiN80//PCD6du3r2nTpo15+OGHzfr1680dd9xhoqKizMiRI122J8l06dLF9O3b1yxfvtxs2LDBfPLJJ3W+lkOHDpn27dubTp06mSeeeMJtr5PjHT582PTv398kJSWZ+fPnm9dff938+c9/NgkJCeaCCy5weQ/rq0GSueuuu5zrlpeXm9TUVJOenm6eeOIJ8/rrr5t77rnHxMTEmEmTJjnXe/75540k8z//8z9m/fr15vXXXzePP/64mTFjhseaPdmyZYuRZH73u995XOfgwYOmRYsWZsSIEc5lQ4cONYmJiSY1NdU89thj5s033zQbN24033//venVq5dJSEgwjz32mFm3bp2ZMWOGSUtLc/sWdMOGDSY6OtoMGTLErFixwrz22mtm0qRJbuvV/n106dLF3HDDDeZ///d/zUsvvWSOHj3qsWZJ5qSTTjKxsbEmOjranHXWWebpp5/2+f05njffti1atMjk5+ebV155xWzcuNH89a9/Nf369TM9e/Y0R44cca5X+41penq6ufXWW826devM/PnzTZs2bcyZZ57psm5de1tMmjTJLF682BQWFprCwkJzzz33mLi4ODN37lyX9e644w4jyVxxxRVm5cqVZv369Wb+/PnmjjvucK7zzDPPGJvNZi677DKzatUq8+qrr5rRo0ebli1bmtdff73e11tdXW3i4uLMbbfdVuf71aVLF5OWlmaefvpps3btWnPNNdcYSeahhx5yrlfXN+QTJ06sc8+uur5pvv76602rVq3MzTffbF577TWzfPlyc/rpp5vk5GSzZ88e53o1NTXmp59+avDnxH9X/vos9vaz6L333jMzZ840nTt3NpLMWWedZf74xz+ar7/+2uPvob494T799FOTkJBgzjjjDLNs2TKzfv16c/PNN5sWLVqYu+++2+M2j5eenm7atWtn2rZta6KiokyvXr3Mww8/7PFvsFevXuaKK67watsIDPoT+hP6E2v2J8erb0+4unz++eemRYsWZtasWV4/5nje7tnlbY/RlHF+48aN5uabbzYvvfSS2bhxo3n55ZfNZZddZuLi4lz2rK+qqjK9e/c2bdq0MfPmzTPr1q0zf/vb38xNN91kNmzYYIz5eXy/+OKLTZs2bczcuXNNYWGheeqpp0yXLl1MZmZmg3t4Llu2zEgypaWldb5fqamp5tJLLzWvvvqqefbZZ82pp55q4uPjzeeff+5ct67+5MS/o+Pft4kTJzpve/v3ZYwxR48e9aqXOX6PS398Lvjyb/3w4cPmhRdeMJdccomJjo42cXFxZuzYsWblypWmurrauR79CeCKEM4H27dvN6effrqR5PyZMWOGT83iiU1uWVmZiYqKcmuUDx48aDp16mSuuuoq57KJEycaSXUGDJJMp06dzKFDh5zLVq9ebSSZ/v37u9RYUFBgJJmPPvrI67obOtyjdtK7bNky07JlS5fDXyZOnGg6duzo8mH84IMPmhYtWrg0mCc2uY8//riRZF588UWX53rwwQeNJLN+/XqX15+QkOD1YTf/+Mc/TFJSkvP32KFDB/PLX/7SvPLKKy7r5efnmxYtWrgdnvPSSy8ZSWbt2rVe1XDi4Pyb3/zGtG3b1nz11Vcu6z388MNGknNyc+ONN5r27dt79Zoa8sILLxhJ5vHHH693veTkZNOrVy/n7aFDhxpJ5o033nBZb9GiRUaS+fvf/+6y/Prrr3drwE4//XRz5plnmp9++sll3dGjR5vOnTs7G4jav48JEyZ4/bquvvpq89xzz5lNmzaZl156yeTm5hpJ5g9/+IPX2ziRr4ejHjt2zPz000/mq6++cntPapu1Exvp5557zkgyzz77rHNZQ4c81f6dzZs3z3To0MH5d/3FF1+Yli1bmmuuucbjYw8fPmwSExPNmDFj3LbZr18/c/bZZ9f7Gt977z0jybzwwgtu96WnpxubzWZKSkpcll900UUmPj7eeThAU0K4d955x0gyjzzyiMt6u3btcgsHax/b0M/xz+vPz+L6Pos+/fRT84c//MGccsopRpLp3bu3ueeee8xnn31W5/onqi+EGzFihOnatavbISA33nijiY2N9erzcfr06ebpp582GzduNKtXr3ZOsq699to617/mmmtMcnKyV7UjcOhP6E9q0Z9Ypz85ni8h3E8//WSGDRtm4uPjTVlZWaOerzGHo3rqMYxp2jh/oqNHj5ojR46YHj16uPRG8+bNM5JMYWGhx8fWhr9/+9vfXJYXFRUZSWbhwoX1vsbf/va3Ji4uzu2zsfb9Ouuss1zu+/LLL02rVq3M1KlTncuaEsJ5+/dV+1hvepnjn9cfnwsN/Vs/cuSIWbNmjbn66qtNmzZtTHR0tBk9erR59tlnzcGDB+t8DP0J4IrDUb305ZdfasyYMerQoYNeeuklbdy4UX/84x+1dOlSTZ061bnesWPHdPToUedPTU1Nvdtdt26djh49qgkTJrg8LjY2VkOHDq3z6l5jx46tc1vDhw9XmzZtnLd79eolScrNzXU5rKt2+fFXN2yMbdu26ZJLLlGHDh3UsmVLtWrVShMmTFBNTY3+/e9/O9e76aabtG/fPq1cuVLSz+/RokWLNGrUqHqv8rdhwwa1adNGV155pcvy2t26TzyErvZqWt4YOXKkysrK9PLLL+uWW25R7969tXr1al1yySW68cYbneutWbNGffr0Uf/+/V1+PyNGjKjz6mve1rBmzRoNHz5cKSkpLtvNzc2VJG3cuFGSdPbZZ+u7777Tr3/9a/397393O9QxEIwxbocBnnTSSbrgggtclr355ptq166dLrnkEpflV199tcvtHTt26F//+peuueYaSXJ5vSNHjlR5ebn+7//+z+Uxnv6N1+W5557T1VdfrSFDhmjs2LFau3atRo8erQceeMCrQxMaa9++fZo2bZpSU1MVFRWlVq1aOS9WsH37drf1a19/rauuukpRUVF68803632eDRs26Be/+IUSEhKcf2d33nmnKioqtG/fPkk/HxpbU1Mju93ucTtbtmzRgQMHNHHiRJffwbFjx3TxxRerqKio3itJ7d69W1Ldh81IUu/evdWvXz+XZVdffbWqqqr0wQcf1PsavbFmzRrZbDZde+21LvV36tRJ/fr1c/lbvOGGG1RUVNTgz/EnyvbnZ7Gnz4Ff/OIX6t27t/PE459++qk++eQT/eEPf9Cpp57apPfnxx9/1BtvvKHLL79crVu3dvs7+/HHH/Xuu+9Kkmpqatz+DdRyOByaPHmyzj//fF166aV69tlndeONN+rZZ5+t85Ccjh07at++fX47jAa+oz9xR39Cf2KF/qQxjDGaMmWKNm/erGXLlik1NTWgz+dNj1GrseP80aNHdf/99yszM1PR0dGKiopSdHS0PvvsM5d+6X//93912mmn6Re/+IXHba1Zs0bt27fXmDFjXH5f/fv3V6dOnRq8KvLu3bt18skne7y66dVXX+1yX3p6ugYNGtRgr+Ytb/++JOnVV1/1qpe54YYbXLbvr8+Fuv6tf/TRR+rUqZMuvfRS7d+/X48++qj27t2rV199Vddcc43atm3r9hj6E8AdV0f10u23366qqiqVlJQ4G8nzzz9fSUlJuu666zRhwgQNHTpU8+bNc7kSS3p6ur788kuP2927d68kKTs7u877TzyfROvWrRUfH1/nuomJiS63a88D42l5fec6aUhZWZmGDBminj176s9//rO6deum2NhYvf/++7Lb7frhhx+c65555pkaMmSIHA6HrrnmGq1Zs0ZffvmlnnjiiXqfo6KiQp06dXIbKDt27KioqCjnuVNqeTqHiidxcXG67LLLdNlllzlfU25urhwOh37729+qd+/e2rt3r3bs2OE8586JTmw6va2hdsBqaLvjx4/X0aNH9Ze//EVjx47VsWPHlJ2drXvvvVcXXXSRl6/0Z7VXC925c6fHdQ4fPqz9+/frzDPPdFle1+uqqKhwuyKRJHXq1Mnldu2/8VtuuUW33HJLnc/b2PfRk2uvvVZr1qzR1q1bnY2NPx07dkw5OTnavXu37rjjDp1xxhlq06aNjh07pnPPPdfl33+tE9+XqKgodejQwe3f8fHef/995eTkaNiwYfrLX/7iPH/I6tWrdd999zmfpzZsrO8Kd7W/hxMnjcc7cOCAy0T5eLXPFRsbW+f9J76+45fV9xq9tXfvXhlj6vw3J0ndu3d3eV5PYeHxjv9s8ednsad/vyeddJJatGihgwcPqrKyUt9++22dk8rGqKio0NGjR/XYY4/pscceq3Od2r+zU045xSXkuOuuu+o8l02ta6+9VgsWLNC7777r9tkQGxsrY4x+/PHHOptvBB79iSv6k5/Rn1izP6mPMUZTp07Vs88+q7/+9a+69NJLA/Zckvc9Rq3GjvN5eXlyOBz63e9+p6FDhzrHwqlTp7o8x3/+858Gr2y/d+9efffddx7PddlQGPzDDz947GMkz6/xww8/rHe73vL270v6+QrPpo7z/57o+M9if34u1HVfq1atlJCQoAMHDqiyslKVlZU6dOiQ2rdv73E79CeAO0I4L5WUlCgzM9NtglrbnH7yyScaOnSobrjhBo0ePdp5f0xMTL3bTUpKkiS99NJLzr1o6uOPyZo/rF69WocPH9aqVatc6i4pKalz/RkzZuiXv/ylPvjgAy1YsECnnXZag01ahw4d9N5777lNUmu/1ah972o19b1JS0vTDTfcoJkzZ+rTTz9V7969lZSUpLi4OD399NN1PqaxNSQlJalv376677776rw/JSXF+f+TJ0/W5MmTdfjwYW3atEl33XWXRo8erX//+99e/ZuplZWVpZNOOkmvvPKK8vPz66z1lVde0bFjx9x+N3Wt26FDB73//vtuy0888XHtezR79mxdccUVddZ24on+m/q7rG1afDmhvS8++eQTffjhh1q6dKkmTpzoXF7fCcX37NmjLl26OG8fPXpUFRUV6tChg8fHvPDCC2rVqpXWrFnj0jSuXr3aZb2TTz5ZkvT11197/Na89vfw2GOP6dxzz61zHU8B1/GPP3DgQJ3313XC69pl9b3G2NjYOk/2e2KjmJSUJJvNps2bN9f5uXr8shPDBk+ODyH8+Vns6b6VK1dq9+7dWrFihZYvX67HHntMXbt21VVXXaVx48bp7LPPbvB5PTnppJPUsmVLjR8/3uMekRkZGZJ+/nb9+Pf8+M+butT393TgwAHFxMTQ4AYR/Ykr+pOf0Z9Ysz/xpDaAW7JkiRYvXqxrr702IM9zPG97jFqNHeefffZZTZgwQffff7/L8v3797uENyeffLK+/vrremtOSkpShw4d9Nprr9V5f7t27Rp8fH177Xl6jfW9Punnz9O6epkTw0lf/r5ODKQ8OT6o8ufnQl339erVS1988YXeeecdLV++XA888IBuvvlmDR48WOPGjdOVV17pFmTSnwDuCOG8lJKSok8++USHDh1y+WN+5513JP13D5SUlJQGPzCON2LECEVFRenzzz8P+C7u/lT7wXx8E2+M0V/+8pc617/88suVlpamm2++WRs3btSf/vSnBhuZCy+8UC+++KJWr16tyy+/3Ll82bJlzvsb4+DBg7LZbHV+KNfuFl/7Oxw9erTuv/9+dejQwTlA+MPo0aO1du1anXLKKV4fotKmTRvl5ubqyJEjuuyyy/Tpp5/61ORGR0fr1ltv1e9//3s99NBDblcg27dvn2bPnq3k5GSXQ5g8GT58uF588UW98sorLod8LF++3GW9nj17qkePHvrwww/dGrBAeeaZZ9SqVStlZWUFZPt1/fuXVO/eE88995xLPS+++KKOHj2qYcOG1fs8UVFRatmypXPZDz/8oGeeecZlvZycHLVs2VKLFi3SwIED69zW4MGD1b59e5WWlroc0uSt2sPEPv/88zrv//TTT/Xhhx+6HKqyfPlytWvXTmeddZbH7Xbr1k379u3T3r17nSHgkSNHtG7dOpf1ag8x/uabb3TVVVfVW+uJYYMnx//+muuzOCUlRbNmzdKsWbP02Wef6fnnn9fzzz+v+fPnKyMjQ1dddZWuu+46nXbaaT5tt3Xr1ho+fLi2bdumvn371ntFzDPOOMOnbdd+5tYV3n7xxRfKzMz0aXvwL/oTV/QnTUN/0vyMMbr++uu1ZMkSPfHEE5o8eXKzPK+3PUatxo7zNpvNrV/6xz/+oW+++cblVAy5ubm68847tWHDBrdDjGuNHj1aL7zwgmpqanTOOed49TqPd/rpp+v5559XZWWl2xWlJen5559XXl6e8zPgq6++0pYtWzRhwoR6t9utWzd99NFHLss2bNigQ4cOudXv7d/XiYGUJ8d/rgfqc+FEAwcO1MCBA1VQUKA33nhDy5cv15w5c3TTTTdp6NChGjdunCZMmKC4uDj6E6AOhHBemjlzpi677DJddNFFmjVrlpKSkvTuu+8qPz9fmZmZjT7krVu3bpo3b57mzJmjL774QhdffLFOOukk7d27V++//77atGnj1R4dze2iiy5SdHS0fv3rX+u2227Tjz/+qEWLFunbb7+tc/2WLVvKbrfrd7/7ndq0aeN2ue66TJgwQQ6HQxMnTtSXX36pM844Q2+99Zbuv/9+jRw5st5zRtTn//7v/zRixAj96le/0tChQ9W5c2d9++23+sc//qEnn3xSw4YN06BBgyT9/Hv/29/+pvPPP1+zZs1S3759dezYMZWVlWn9+vW6+eabG9UEzJs3T4WFhRo0aJBmzJihnj176scff9SXX36ptWvX6vHHH1fXrl11/fXXKy4uToMHD1bnzp21Z88e5efnKyEhweUQodpz19R3aJEk/e53v9OHH37o/O+4ceOUkJCgjz76SA899JAOHjyoNWvW1NmYnGjChAn605/+pAkTJui+++5Tjx49tHbtWrfwRPo5nMrNzdWIESM0adIkdenSRQcOHND27dv1wQcfOM/H46uHHnpIpaWluvDCC9W1a1ft27dPixcv1vr163X33Xe7fOP35ZdfKiMjQxMnTtTSpUsb3PaePXv00ksvuS3v1q2b+vXrp1NOOUW33367jDFKTEzUq6++qsLCQo/bW7VqlaKionTRRRfp008/1R133KF+/frVGyiNGjVK8+fP19VXX60bbrhBFRUVevjhh92a2W7duun3v/+97rnnHv3www/69a9/rYSEBJWWlmr//v2aO3eu2rZtq8cee0wTJ07UgQMHdOWVV6pjx476z3/+ow8//FD/+c9/tGjRIo+1dO3aVd27d9e7776rGTNmuN2fkpKiSy65RHfffbc6d+6sZ599VoWFhXrwwQfVunVrj9sdN26c7rzzTv3qV7/Srbfeqh9//FGPPvqo2/mqBg8erBtuuEGTJ0/W1q1bdf7556tNmzYqLy/XW2+9pTPOOEO//e1vnbX4EjbUvofN/Vnco0cP3Xnnnbrzzjv1wQcf6Pnnn9dzzz2nH3/8UQUFBc71SktLVVpaKunnf5fff/+9899mZmams8n885//rPPOO09DhgzRb3/7W3Xr1k0HDx7Ujh079Oqrr2rDhg311rN8+XKtWrVKo0aNUnp6ur777jutXLlSL7zwgiZNmuR2LqBjx47p/fff15QpU/z4rsBX9Ceu6E/oT6zQn0jS1q1bna+7qqpKxhjnZ3d2drYzqJwxY4YWL16s6667TmeccYbz/FjSz2Hy8YfZ3X333Zo7d67efPPNer/Eq3X8to43dOhQr3uMWo0d50ePHq2lS5fq9NNPV9++fVVcXKyHHnrI7RQaM2fO1IoVK3TppZfq9ttv19lnn60ffvhBGzdu1OjRozV8+HD96le/0nPPPaeRI0fqpptu0tlnn61WrVrp66+/1ptvvqlLL73UJRg/0bBhw2SM0XvvvaecnBy3+/ft26fLL79c119/vSorK3XXXXcpNjZWs2fP9rhN6efDs++44w7deeedGjp0qEpLS7VgwQK3f6/e/n1JvgdSte9hID4XPGnZsqVycnKUk5Ojxx9/XP/4xz+0fPlyzZw5U+ecc4769+8vif4EcNOsl4EIcRs2bDA5OTmmU6dOJi4uzpx22mnm5ptvNvv37/d6GydefazW6tWrzfDhw018fLyJiYkx6enp5sorrzSvv/66c536rgAmydjtdpdltVcoOv7S4cY07opJdT33q6++avr162diY2NNly5dzK233mr+93//10gyb775pts2vvzySyPJTJs2rc7nqOvKkBUVFWbatGmmc+fOJioqyqSnp5vZs2ebH3/80WW9ul6/J99++6259957zQUXXGC6dOlioqOjTZs2bUz//v3Nvffe63Z580OHDpk//OEPpmfPniY6Otp5ie1Zs2aZPXv2eFWD6rhq0n/+8x8zY8YMk5GRYVq1amUSExNNVlaWmTNnjvMqcn/961/N8OHDTXJysomOjjYpKSnmqquucrtyXFJSkjn33HO9ev3Hjh0zzz33nBk2bJhp3769iY6ONhkZGea3v/2t29WajPn599K7d+86t/X111+bsWPHmrZt25p27dqZsWPHmi1bttR5ZawPP/zQXHXVVaZjx46mVatWplOnTuaCCy5wuRqap78PT1555RVz3nnnmZNPPtlERUWZdu3amSFDhpjnn3/ebd2PP/7YSDK33357g9ut74pUtVe5Ki0tNRdddJFp166dOemkk8wvf/lLU1ZW5va7rr2KVnFxsRkzZozzvfr1r39t9u7d6/K8df0NPP3006Znz54mJibGdO/e3eTn55vFixcbSS5X7zPGmGXLlpns7GwTGxtr2rZta84880y338PGjRvNqFGjTGJiomnVqpXp0qWLGTVqlFefB3fccYc56aST3P7+aq8m+9JLL5nevXub6Oho061bNzN//nyX9TxdNW3t2rWmf//+Ji4uznTv3t0sWLCgzquP1b4f55xzjmnTpo2Ji4szp5xyipkwYYLZunVrg/V7IxCfxb44duyYKS8vd1lW39VeT/xc2blzp7nuuutMly5dTKtWrczJJ59sBg0aZO69994Gn/udd94xF154oenUqZNp1aqVad26tcnOzjYLFy50XiHweG+88Ybz3zaCi/6E/oT+xFWw+xNj/nvV4Lp+jq+hvp7jxKth33zzzcZms5nt27fX+9y1f0uefmr/DrztMZoyzn/77bdmypQppmPHjqZ169bmvPPOM5s3b67z7+rbb781N910k0lLSzOtWrUyHTt2NKNGjTL/+te/nOv89NNP5uGHH3b+jbdt29acfvrp5je/+U2DVxqvqakx3bp1M9OnT6/z/XrmmWfMjBkzzMknn2xiYmLMkCFD3PqLuvqT6upqc9ttt5nU1FQTFxdnhg4dakpKStyujmqMd39fTdHUz4XG/Fs/UWVlpdtroT8B/stmjBdnfAT84LHHHtOMGTP0ySefqHfv3sEuJ2yUlpaqd+/eWrNmjUaNGhXscixr4cKFuu222/T555/Xe+4zf6v91vo///mP27k4Qs3u3buVkZGhZcuWady4ccEuB0E2fvx4ffHFF3r77beDXQrQJPQngUF/4n9nn3220tPTm7SHXmN069ZNffr00Zo1a5r1eQPhkUce0X333advvvlGcXFxwS4HAUB/AqsLzFnLgeNs27ZNq1at0rx583TppZfS4PrZm2++qYEDB9LgNuDNN9/UjBkzmjWACzcpKSmaOXOm7rvvPpfLxiPyfP7551qxYoUefPDBYJcCNBr9SWDRn/hXVVWVPvzwQ82bNy/YpYQ0u92uhIQE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IYADAAAAAAChZty4caqoqNC8efNUXl6uPn36aO3atUpPTw92aZaydetWDR8+3Hk7Ly9PkjRx4kQtXbrUq20QwgEAAAAAAESw6dOna/r06cEuw9KGDRsmY0yTtsE54fyAveAAAAAAAABQH0K4JiKAAwAAAAAAQEMI4ZqAAA4AAAAAAADeIIQDAAAAAAAAAiwiQrg//elP6t27tzIzMzVjxowmn0hPYi84AADQNIHoTwAAAGBdYR/C/ec//9GCBQtUXFysjz/+WMXFxXr33XebtE0COAAA0BSB6E8AAABgbVHBLqA5HD16VD/++KMk6aefflLHjh0bvS0COAAA4A/+7E8AAABgfUHfE27Tpk0aM2aMUlJSZLPZtHr1ard1Fi5cqIyMDMXGxiorK0ubN2/2evsnn3yybrnlFqWlpSklJUW/+MUvdMopp/jxFQAAgHBDfwIAAAB/C3oId/jwYfXr108LFiyo8/4VK1Zo5syZmjNnjrZt26YhQ4YoNzdXZWVlznWysrLUp08ft5/du3fr22+/1Zo1a/Tll1/qm2++0ZYtW7Rp06ZG1cpecAAARIZQ6k8AAAAQGmzGQmcBttlsevnll3XZZZc5l51zzjk666yztGjRIueyXr166bLLLlN+fn6D21y5cqX++c9/yuFwSJIeeughGWN022231bl+dXW1qqurnbcrKyuVlpamXbt2KT4+vpGvDACA8FZVVaXU1FR99913SkhICHY5fkV/AgBAaArn/gShydLnhDty5IiKi4t1++23uyzPycnRli1bvNpGamqqtmzZoh9//FGtWrXSP//5T91www0e18/Pz9fcuXPr3A4AAKhfRUVF2De59CcAAISWSOhPEBosHcLt379fNTU1Sk5OdlmenJysPXv2eLWNc889VyNHjtSZZ56pFi1a6MILL9Qll1zicf3Zs2crLy/Pefu7775Tenq6ysrKmvRHm52draKioiat5+m+upYfv+zE+0+874033lBqaqpfvk1vztfZ0Os68f9rvwVp6uvkd+n9epHwu/R0vzfL6nud/C59w+/S+/UC9bus3TMrMTHRp9cUiiKxP2lo3UD87VjtM8IffzvH3w7Wa2xoXX6Xvv8ua/8/FD7v+V02fJvfpe+sPD96/fXXI6Y/QWiwdAhXy2azudw2xrgtq899992n++67z6t1Y2JiFBMT47Y8ISGh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", "text/plain": [ "
" ] @@ -810,13 +808,13 @@ ], "source": [ "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap2.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T/plot_me_lap2.T < 1, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", "fig.subplots_adjust(right=0.8)\n", "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", - "fig.colorbar(cs1, cax=cbar_ax)\n", + "#fig.colorbar(cs1, cax=cbar_ax)\n", "\n", "\n", "ax1.set_xscale('log')\n", @@ -830,15 +828,15 @@ "ax2.set_xlabel(\"source x-coord\")\n", "ax2.set_ylabel(\"source y-coord\")\n", "\n", - "ax1.set_title('4-Term Taylor Series, Order 5, Laplace')\n", - "ax2.set_title('4-Term Taylor Series, Order 8, Laplace')\n", + "ax1.set_title('8-Term Taylor Series, Order 5, Laplace (blue=err<1e-5)')\n", + "ax2.set_title('8-Term Taylor Series, Order 12, Laplace (blue=err Date: Tue, 14 Jan 2025 13:02:22 -0800 Subject: [PATCH 139/193] Plot changes --- sumpy/recurrence_grid.py | 4 +- test/plot_normal_recurrence.ipynb | 105 +++++--------- test/plot_taylor_recurrence.ipynb | 220 ++++++++++++++++++++++++------ 3 files changed, 208 insertions(+), 121 deletions(-) diff --git a/sumpy/recurrence_grid.py b/sumpy/recurrence_grid.py index b21aa7c30..f669d5296 100644 --- a/sumpy/recurrence_grid.py +++ b/sumpy/recurrence_grid.py @@ -8,8 +8,8 @@ - :math:`f` only depends on the radius :math:`r`, i.e. :math:`f(\boldsymbol x)=f(|\boldsymbol x|_2)`. - However, unlike recurrence.py, the recurrences produced here are numerically - stable in a different source-location space. +However, unlike recurrence.py, the recurrences produced here are numerically +stable in a different source-location space. .. autofunction:: get_grid .. autofunction:: convert diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb index 5460a2289..8eccbe065 100644 --- a/test/plot_normal_recurrence.ipynb +++ b/test/plot_normal_recurrence.ipynb @@ -68,7 +68,7 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "l_max = 15\n", + "l_max = 20\n", "derivs_laplace = compute_derivatives(l_max)" ] }, @@ -90,7 +90,7 @@ " for i in range(p)]\n", " return derivs_helmholtz\n", "h_max = 8\n", - "derivs_helmholtz = compute_derivatives_h2d(h_max)" + "#derivs_helmholtz = compute_derivatives_h2d(h_max)" ] }, { @@ -173,9 +173,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'derivs_helmholtz' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[9], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m order_plot \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m\n\u001b[0;32m----> 2\u001b[0m x_grid, y_grid, plot_me_hem \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_helmholtz, derivs\u001b[38;5;241m=\u001b[39m\u001b[43mderivs_helmholtz\u001b[49m, n_initial\u001b[38;5;241m=\u001b[39mn_init_helm, n_order\u001b[38;5;241m=\u001b[39morder_helm)\n\u001b[1;32m 3\u001b[0m x_grid, y_grid, plot_me_lap \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_laplace, derivs\u001b[38;5;241m=\u001b[39mderivs_laplace, n_initial\u001b[38;5;241m=\u001b[39mn_init_lap, n_order\u001b[38;5;241m=\u001b[39morder_lap)\n\u001b[1;32m 5\u001b[0m fig, (ax1, ax2) \u001b[38;5;241m=\u001b[39m plt\u001b[38;5;241m.\u001b[39msubplots(\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m2\u001b[39m, figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m15\u001b[39m, \u001b[38;5;241m8\u001b[39m))\n", + "\u001b[0;31mNameError\u001b[0m: name 'derivs_helmholtz' is not defined" + ] + } + ], "source": [ "order_plot = 5\n", "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", @@ -207,78 +219,22 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_14919/1312385240.py:6: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_14919/1312385240.py:7: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs2 = ax2.contourf(x_grid, y_grid, plot_me_hem.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABOEAAALACAYAAADVBWZCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACO2klEQVR4nOzde1xUBf7/8feIMngDUxSjBKmsJFILyQUztRLD1C620bdNzbQyp68ptZXrZulW2EVzW0Fzs6ztxtYaW8Y3pbbSzS7oSrVhu1kWlqALFngpVDy/P/wx6zgMzMAczlxez8eDx+6cOTPzOVzGd+9zGZthGIYAAAAAAAAAmKad1QMAAAAAAAAAoY4SDgAAAAAAADAZJRwAAAAAAABgMko4AAAAAAAAwGSUcAAAAAAAAIDJKOEAAAAAAAAAk1HCAQAAAAAAACajhAMAAAAAAABMRgkHAAAAAAAAmIwSzksfffSRrrjiCiUkJMhutysuLk7p6em6/fbbXdbLz8/XqlWrrBny/7vvvvtks9na5LW++eYb2Wy2Zrf53Xfflc1mc35FRESoZ8+eGjdunDZt2tQms8JVdXW15syZo+TkZHXq1EnR0dH6xS9+oby8PB06dKjVz9+Wv4cjRoxw+f06/quystLn52z4nX3llVdMmNgzb/+mrHbDDTfokksucd725fvVlr8boWLv3r268847lZmZqZ49e8pms+m+++4z5bWOf78+9uvDDz90WfeCCy7QrFmzTJkDnpFJGkcmCS2GYeiFF17QhRdeqBNOOEF2u12nnHKKHA6HduzY0ernb+t/b5csWaIrr7xSSUlJstlsGjFihFeP++1vfyubzaaUlJQWvzaZpmlkmuDTt2/fRnPK9OnTXdZbuXKlTjrpJO3fv9+iSQF37a0eIBi88cYbGj9+vEaMGKGHH35YJ554oioqKrRp0ya99NJLWrRokXPd/Px8xcbG6vrrr7du4AD24IMPauTIkTp06JC2bNmi+fPna/jw4SotLVW/fv2sHi9sfPHFF8rMzNS+fft0++23KyMjQz/99JPWrFmj2267TS+//LKKiorUqVMnq0f1Sn5+vmpra12WHThwQJdccolSU1PVu3dviyYLTVu2bNEzzzyjjz76yOpRwkZ1dbVWrFihgQMH6vLLL9eTTz5p+ms2vF8f6/j/CPzd736nUaNG6ZZbbtEZZ5xh+kwgk/gTmSRwHTlyRNdee60KCgr0P//zP1q1apViYmL06aef6pFHHtELL7ygNWvWaOjQoVaP6rXly5erc+fOuvDCC/X666979ZjS0lI9+uijiouLM3m68EWmCV5Dhw7Vo48+6rLs+L+VyZMn66GHHtLDDz+s+fPnt+V4gEeUcF54+OGHlZSUpLVr16p9+/9+y6655ho9/PDDFk7WNg4cOOC3MqZfv376xS9+IUkaNmyYunXrpsmTJ+u5554LyDdGT9tuGIZ+/vlndezY0YKpWqe+vl4TJkxQbW2tPv74Y51++unO+8aMGaPhw4frmmuuUU5OjpYvX97k8xw+fFh2u70txm7y9zA5Odlt2TPPPKNDhw5p2rRpZo8WdhYuXKjzzjtPgwcPtnqUgNLU+8JPP/2kqKgor/eWV1RUqHPnzoqOjpYkJSYm6ocffpDNZlNVVVWblHDHvl97Mnz4cJ1xxhlatGiRVqxYYfpMIJOQSUIrk3jy0EMPqaCgQAsXLtRdd93lXD5ixAhlZ2dryJAhmjBhgr744gt169bN4/P48/elOc29z5eVlaldu6MnIXlzVNvhw4c1ZcoU3Xzzzfrkk09UVVXl13lxFJmmcWZmGn/p1q1bszmlffv2uvnmm/W73/1Od911V9AcYIDQxumoXqiurlZsbKxL2G3Q8I+pdPSw2M8//1zvvfee85DYvn37SpJ+/vln3X777Ro0aJBiYmLUvXt3paen669//avbc9psNt16663605/+pP79+6tTp04aOHCg1qxZ47buG2+8oUGDBslutyspKcltb0CDvLw8XXDBBerVq5c6d+6ss88+Ww8//LDbaYcjRoxQSkqK1q9fr4yMDHXq1Ek33HCDJGnnzp26+uqr1bVrV8XExCg7O7tFp/kdq+EfvF27drks//LLL3XttdeqV69estvt6t+/v/Ly8twe/+OPP+r222/XKaecIrvdrl69emnMmDH64osvJP33cPJ3333X5XGNHR5//fXXq0uXLvrss8+UmZmprl276qKLLpL035/J8uXL1b9/f9ntdj3zzDNez9owx4svvqi5c+cqPj5e0dHRuvjii/Wvf/3LbbvefPNNXXTRRYqJiVGnTp3Uv39/5ebmuqyzadMmjR8/Xt27d1dUVJTOOecc/fnPf272e/7qq6+qrKxMd999t0sB1yA7O1uZmZlauXKl8+fb8P16+OGHdf/99yspKUl2u13vvPOOJO9/Dw3DUH5+vgYNGqSOHTvqhBNO0FVXXaWvv/7aZb2mfg+9tXLlSnXp0kXZ2dk+Pc5X8+fP15AhQ9S9e3dFR0fr3HPP1cqVK2UYhst6ffv21dixY/Xqq69qwIABioqK0imnnKLHH3+82dfYtm2bpkyZon79+qlTp0466aSTNG7cOH322Wdu6zb3NyFJBw8e1P33368zzzxTdrtdPXv21JQpU/Sf//yn2Vl27dqlV199VRMnTmz0/p9//lk5OTnq3bu3OnbsqOHDh2vLli3NPq+n0yv79u3rdhRPZWWlbr75Zp188smKjIxUUlKS5s+fr8OHDzf7Ot6ora3VHXfcoaSkJEVGRuqkk07SrFmz3E5l8PS+sGrVKtlsNq1bt0433HCDevbsqU6dOqmurq7J1/3hhx+0cuVKXXzxxTr55JNd/i4a/k3xVkFBgdLT09W5c2d16dJFo0eP9urn0BITJ07UCy+8oL1795ry/HBFJiGThFImaczBgwf1yCOPqH///rrzzjvd7o+Li1Nubq527dqllStXOpf76/fFm21pyfv8sX+f3li4cKH27NmjBx54wKfHtQaZxhWZxpxMI3n/vuoPv/rVr1RbW6uXXnrJlOcHfMWRcF5IT0/Xk08+qZkzZ+pXv/qVzj33XHXo0MFtvVdffVVXXXWVYmJilJ+fL0nOo4Tq6uq0Z88e3XHHHTrppJN08OBBvfXWW7ryyiv19NNPa9KkSS7P9cYbb6ikpEQLFixQly5d9PDDD+uKK67Qv/71L51yyimSpLfffluXXXaZ0tPT9dJLL6m+vl4PP/ywW3iUpK+++krXXnut8w34k08+0QMPPKAvvvhCTz31lMu6FRUVuu6663TnnXfqwQcfVLt27fTTTz/p4osv1s6dO5Wbm6vTTz9db7zxRqsLju3bt0uSSxlUVlamjIwMJSQkaNGiRerdu7fWrl2rmTNnqqqqSvfee6+ko9dIOv/88/XNN9/orrvu0pAhQ7Rv3z6tX79eFRUVOvPMM32e5+DBgxo/frxuvvlm3X333S7/ABYWFmrDhg2aN2+eevfurV69enk9a4Pf/OY3Gjp0qJ588knV1tbqrrvu0rhx47R161ZFRERIOloe3XjjjRo+fLiWL1+uXr166d///rf++c9/Op/nnXfe0SWXXKIhQ4Zo+fLliomJ0UsvvaTs7GwdOHCgyVOPiouLJUmXX365x3Uuv/xyrVu3Tu+++66uueYa5/LHH39cp59+uh599FFFR0erX79+Pv0e3nzzzVq1apVmzpyphx56SHv27NGCBQuUkZGhTz75xOUQ8sZ+D7315ZdfasOGDZo2bZq6dOni9eNa4ptvvtHNN9+shIQESdKHH36o//3f/9X333+vefPmuaxbWlqqWbNm6b777lPv3r31/PPP67bbbtPBgwd1xx13eHyNnTt3qkePHlq4cKF69uypPXv26JlnntGQIUO0ZcsW52mA3vxNHDlyRJdddpk2bNigO++8UxkZGfr222917733asSIEdq0aVOTR1OsW7dOhw4dcjtNscFvfvMbnXvuuXryySdVU1Oj++67TyNGjNCWLVuc712tUVlZqfPOO0/t2rXTvHnzdOqpp+qDDz7Q/fffr2+++UZPP/20c936+nq3/3BoTLt27Zy/XwcOHNDw4cP13Xff6Te/+Y0GDBigzz//XPPmzdNnn32mt956y6UMa+x9oaSkRNLRa8xceuml+tOf/qT9+/c3+u/GgQMH9Prrr+uFF17Qm2++qYiICI0ZM0YFBQWNHuHpjQcffFC//e1vNWXKFP32t791/gftsGHD9PHHH3v9vA6HQ9dcc406deqk9PR03XPPPTr//PPd1hsxYoTuuusuvfvuuxo3blyLZob3yCRkEil0MkljNm/erB9++EE33XSTx50P48aNU7t27VRcXOxyLcTW/r74ui3evM+3RFlZme6//36tXr3a9BxzLDKNKzKNOZnG1/cqT9avX6+uXbvq559/Vr9+/TR16lTNmjXL+f7VoHfv3jrzzDP1xhtv+LxTHzCFgWZVVVUZ559/viHJkGR06NDByMjIMHJzc429e/e6rHvWWWcZw4cPb/Y5Dx8+bBw6dMiYOnWqcc4557jcJ8mIi4szamtrncsqKyuNdu3aGbm5uc5lQ4YMMeLj442ffvrJuay2ttbo3r270dSPtr6+3jh06JDx7LPPGhEREcaePXuc9w0fPtyQZLz99tsuj1m2bJkhyfjrX//qsvzGG280JBlPP/10k9v7zjvvGJKMgoIC49ChQ8aBAweM999/3zjjjDOM5ORk44cffnCuO3r0aOPkk082ampqXJ7j1ltvNaKiopzzLliwwJBkFBcXN/u677zzjsvy7du3u809efJkQ5Lx1FNPuT2PJCMmJsble+XLrA1zjBkzxmW9P//5z4Yk44MPPjAMwzD27t1rREdHG+eff75x5MgRj9t15plnGuecc45x6NAhl+Vjx441TjzxRKO+vt7jYy+55BJDkvHzzz97XOf//u//DEnGQw89ZBjGf79fp556qnHw4EGXdb39Pfzggw8MScaiRYtcHr9jxw6jY8eOxp133ulc5un30Ft33XWXy/e1JRp+Zi+//LLXj2n421qwYIHRo0cPl59hYmKiYbPZjNLSUpfHjBo1yoiOjjb2799vGEbjv5vHO3z4sHHw4EGjX79+xuzZs53LvfmbePHFFw1Jxl/+8heX5SUlJYYkIz8/v8ltvOWWW4yOHTu6/X42fL/OPfdcl/u++eYbo0OHDsa0adOcy+6991639yhJxr333uv2eomJicbkyZOdt2+++WajS5cuxrfffuuy3qOPPmpIMj7//HOXxza8bzf1dezr5ubmGu3atTNKSkpcnv+VV14xJBlFRUUuMzf2vvD0008bkoxJkya5bY9hGMbBgweNNWvWGNdee63RuXNnIzIy0hg7dqzx3HPPuf2b0pj//Oc/Hr9f5eXlRvv27Y3//d//dVm+d+9eo3fv3sbVV1/d7PP/4x//MG677Tbj1VdfNdavX2889dRTRv/+/Y2IiAjjzTffbHR7bDabcddddzX73Gg9MgmZJJQySWNeeuklQ5KxfPnyJteLi4sz+vfv77ztj98Xb7eluff55jT1t1lfX28MGTLE+J//+R+XbTvrrLNa9FqGQabxhExjTabx9r2qKTNmzDCeeuop47333jMKCwuNX/3qV4Yk47rrrmt0/V/96ldGXFxcs88LtAVOR/VCjx49tGHDBpWUlGjhwoW67LLL9O9//1tz5szR2Wef7fU1Gl5++WUNHTpUXbp0Ufv27dWhQwetXLlSW7dudVt35MiR6tq1q/N2XFycevXqpW+//VaStH//fpWUlOjKK69UVFSUc72uXbs2eiTCli1bNH78ePXo0UMRERHq0KGDJk2apPr6ev373/92WfeEE07QhRde6LLsnXfeUdeuXTV+/HiX5ddee61X294gOztbHTp0UKdOnTR06FDV1tbqjTfecF7P4+eff9bbb7+tK664Qp06ddLhw4edX2PGjNHPP//s/HS+//u//9Ppp5+u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KisrG/0kMm907txZ5513nlavXq1HHnnE+Y/l3r179frrr7u9dsNsDQzD0B//+EevX2/kyJH685//rNdee83lcP4XXnihRfM3uPPOO7Vq1SotXLhQN998s7p27aqRI0dqy5YtGjBggMc9W5KUlZWlefPm6W9/+5vH0xYbjur49NNPNXr0aOfy1157rVVzS0f3UHs7q7cyMjIUExOj5cuX65prrmn0H7wzzjhD/fr10yeffOIWYLxxxRVXKDk5WQsXLtSVV17p9gmpBQUFWrdunaZPn95sGeDL7+HYsWO1cOFCff/997r66qt9ntsblZWVKioq0pVXXtlsQPIHm82m9u3bu1wA9qefftKf/vSnRtf//PPP9cknn7icvvHCCy+oa9euOvfcc5t8neNLyjfeeEPff/+9TjvtNOcyb/4mxo4d67xo+pAhQ7zazmOdeeaZevHFF1VTU6OYmBi3+1988UXl5OQ4f3e//fZbbdy40e1C78fr27evPv30U5dlf/vb37Rv3z63+YuKinTqqad6PGWiwfHhzZNj38PHjh2rBx98UD169PD5P1h9kZ6ervT0dC1ZskRvv/22XnjhBc2dO1e33Xabhg8fruzsbE2aNMnnox1Gjx6t9u3b66uvvmryNKmuXbs6ywdv/PDDD1qzZo0GDRrkdtTAzp079fPPP7f4gyTgGzIJmaQxwZpJGhMZGalf//rX+s1vfqNHHnnE7TT43bt3a86cOYqLi9O0adOafT5vf1/M2BZfDRo0qNFTHWfNmqWamho9/fTTTR6Z2BpkGjJNS/mSaXx5rzr77LN9muPZZ5+VpEYvR/P111+TUxAwKOG8MHr0aJ188skaN26c85N4SktLtWjRInXp0sVlT9XZZ5+tl156SQUFBTrllFMUFRWls88+W2PHjtXq1as1Y8YMXXXVVdqxY4d+97vf6cQTT9SXX37Zorl+97vf6ZJLLtGoUaN0++23q76+Xg899JA6d+6sPXv2ONcbNWqUIiMj9T//8z+688479fPPP2vZsmX64YcfvH6tSZMm6bHHHtOkSZP0wAMPqF+/fioqKtLatWtbNHuDDh066MEHH9TVV1+t3//+9/rtb3+r3//+9zr//PM1bNgw3XLLLerbt6/27t2rbdu26fXXX9ff/vY3SUcDSUFBgS677DLdfffdOu+88/TTTz/pvffe09ixYzVy5Ej17t1bF198sXJzc3XCCScoMTFRb7/9tlavXt2quRt4O6u3unTpokWLFmnatGm6+OKLdeONNyouLk7btm3TJ598oqVLl0qSnnjiCWVlZWn06NG6/vrrddJJJ2nPnj3aunWr/vGPf+jll1/2+BoRERH6y1/+olGjRik9PV2333670tPTVVdXp9dff10rVqzQ8OHDtWjRIq9m9vb3cOjQobrppps0ZcoUbdq0SRdccIE6d+6siooK/f3vf9fZZ5+tW265xafv1/GeeeYZHT58uMlQft9992n+/Pl655133I70a8zx19BpMHz4cF166aVavHixrr32Wt10002qrq7Wo48+2uiRftLRYDR+/Hjdd999OvHEE/Xcc8+puLhYDz30kDp16uRxhrFjx2rVqlU688wzNWDAAG3evFmPPPKIWxD35m/immuu0fPPP68xY8botttu03nnnacOHTrou+++0zvvvKPLLrtMV1xxhcdZRowYIcMw9NFHHykzM9Pt/t27d+uKK67QjTfeqJqaGt17772KiorSnDlzPD6nJE2cOFH33HOP5s2bp+HDh6usrExLly51C8ULFixQcXGxMjIyNHPmTJ1xxhn6+eef9c0336ioqEjLly93fl98DW8N38O//OUvuuCCCzR79mwNGDBAR44cUXl5udatW6fbb7+9RUHfk4iICGVmZiozM1PLly/XG2+8oRdeeEGzZs3SkCFDNGjQIOe6//d//6f9+/dr7969ko5+utgrr7wiSRozZow6deqkvn37asGCBZo7d66+/vprXXLJJTrhhBO0a9cuffzxx+rcubPmz5/f5EzXXnutEhISNHjwYMXGxurLL7/UokWLtGvXLq1atcpt/Ya/EU+fLgf/IpOQSTwJhkzSUEQ2XPbCk7vuukuffPKJ83+zs7MVExOjTz/9VI888oj27t2rNWvWNFqcHM+X35fW5KvmbNq0ybndtbW1MgzD+R6elpamxMREdevWrdFs0q1bNx0+fNjtPjINmaYpgZppWvte9cILL2j16tW69NJLlZiYqB9//FEvv/yyXnrpJV1//fVu1yo8cuSIPv74Y02dOtVv2wq0ihWfBhFsCgoKjGuvvdbo16+f0aVLF6NDhw5GQkKCMXHiRKOsrMxl3W+++cbIzMw0unbtakgyEhMTnfctXLjQ6Nu3r2G3243+/fsbf/zjHz1+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kZEhm82mv//973rooYd0++23mzEjQgShCABgFvIJAAAAAp3PJdw999yjrl27atGiRZozZ44kKT4+Xvfdd59mzpzp9wEBAACaQz4BwA5fAECg87mEs9lsmj17tmbPnq29e/dKkrp27er3wRBaCEUAADORT4DwRtYEAAQDn68J99NPP+nAgQOSjobbPXv2aMmSJVq3bp3fh0NoIBQBAMxGPgHCF1kTABAsfC7hLrvsMj377LOSpB9//FHnnXeeFi1apMsuu0zLli3z+4AIboQiAEBbIJ8AAAAg0Plcwv3jH//QsGHDJEmvvPKKevfurW+//VbPPvusHn/8cb8PCAAA0BzyCRCe2OELAAgmPpdwBw4ccF5jZd26dbryyivVrl07/eIXv9C3337r9wERvAhFAIC2Qj4Bwg9ZE0Aoy8/PV1JSkqKiopSamqoNGzZ49bj3339f7du316BBg8wdEC3icwl32mmnqbCwUDt27NDatWuVmZkpSdq9e7eio6P9PiCCE6EIANCWyCdAeCFrAghlBQUFmjVrlubOnastW7Zo2LBhysrKUnl5eZOPq6mp0aRJk3TRRRe10aTwlc8l3Lx583THHXeob9++GjJkiNLT0yUd3et8zjnn+H1ABB9CEQCgrZFPAABAqFi8eLGmTp2qadOmqX///lqyZIn69OnT7HVub775Zl177bXOHITA097XB1x11VU6//zzVVFRoYEDBzqXX3TRRbriiiv8OhwAAIA3yCdA+GCHL4BQdvDgQW3evFl33323y/LMzExt3LjR4+OefvppffXVV3ruued0//33N/s6dXV1qqurc96ura1t+dDwms8lnCT17t1bvXv3dll23nnn+WUgBDdCEQDAKuQTIPSRNQGEuqqqKtXX1ysuLs5leVxcnCorKxt9zJdffqm7775bGzZsUPv23tU8ubm5mj9/fqvnhW98Ph0V8IRQBAAAAABA69lsNpfbhmG4LZOk+vp6XXvttZo/f75OP/10r59/zpw5qqmpcX7t2LGj1TOjeS06Ei4c5OXlKS8vT/X19VaPEhQo4AAAMB/5BOGMvAkgHMTGxioiIsLtqLfdu3e7HR0nSXv37tWmTZu0ZcsW3XrrrZKkI0eOyDAMtW/fXuvWrdOFF17o9ji73S673W7ORsAjjoTzwOFwqKysTCUlJVaPAgAAIIl8gvBFAQcgXERG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cPTo0Sden4iISDXsJ+wnRERKsNXnYInI+o4ePSpLliyRnJwcuXTpkqSkpIher5c9e/aIiMinn34qnp6esnXrVjl79qy888474uzsLOfOnRMRkQcPHkhgYKBMmjRJCgsLJS0tTYKDgx8750qbNm0eu++kpCQJDAyU1NRU+eOPPyQjI0O2bdsmIiLFxcXi4+MjEydOlGPHjsmFCxdk37598sorr0hNTU29WfLy8kSv18uuXbtERGTTpk3i4eEhFy5ceGL+0tJS8fb2lvHjx0tOTo6cO3dOtmzZImfPnm1Q/srKSunYsaNMmDBBTp8+Lfv375du3brJ9OnTzfcxffp0efHFF+vc7507d6R9+/YyefJkyc/Pl927d0v37t15zhUiIiJhP2E/ISJSBxfhiBRy5swZiYuLEx8fH3FxcZGgoCBZs2aNeX9tba0sXrxY/P39xdnZWcLCwuTHH3+sc4zDhw+LwWAQV1dXiY6Olu3btzeo5N67d0/efPNN6dixo+j1eunevbt89dVX5v3nzp2TcePGSdu2bcXNzU169uwp8+bNE5PJVO+xQkJCZNasWXW2jxs3TgYNGvTEYiwicvLkSYmNjZVWrVqJh4eHREdHm4txQ/KfOnVKYmJixNXVVby8vGTmzJly584d8/76Sq6IyJEjRyQsLEz0er2Eh4fLzp07WXKJiIiE/USE/YSISBU6EZ4MgIiIiIiIiIiISEs8JxwREREREREREZHGuAhHRERERERERESkMS7CERERERERERERaYyLcERERERERERERBrjIhwREREREREREZHGuAhHRERERERERESkMS7CERERERERERERaYyLcERERERERERERBrjIhwREREREREREZHGuAhHRERERERERESkMS7CERERERERERERaYyLcERERERERERERBr7H8rrXYYrh/iBAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 7\n", - "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=2*order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - " \n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_hem.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "fig.subplots_adjust(right=0.8)\n", - "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", - "#fig.colorbar(cs1, cax=cbar_ax)\n", - "\n", - "ax1.set_xscale('log')\n", - "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\")\n", - "ax1.set_ylabel(\"source y-coord\")\n", - "\n", - "\n", - "ax2.set_xscale('log')\n", - "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\")\n", - "ax2.set_ylabel(\"source y-coord\")\n", - "\n", - "ax1.set_title('Standard Recurrence Order 7, Laplace (blue=err<1e-5)')\n", - "ax2.set_title('Standard Recurrence, Order 14, Laplace (blue=err" ] @@ -288,13 +244,15 @@ } ], "source": [ - "order_plot = 6\n", - "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=2*order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + "order1 = 7\n", + "order2 = 19\n", + "cutoff = 1e-9\n", + "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order1, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", + "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order2, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", " \n", "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_hem.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs1 = ax1.contourf(x_grid, y_grid, plot_me_hem.T < cutoff, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap.T < cutoff, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", "fig.subplots_adjust(right=0.8)\n", "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", @@ -305,14 +263,13 @@ "ax1.set_xlabel(\"source x-coord\")\n", "ax1.set_ylabel(\"source y-coord\")\n", "\n", - "\n", "ax2.set_xscale('log')\n", "ax2.set_yscale('log')\n", "ax2.set_xlabel(\"source x-coord\")\n", "ax2.set_ylabel(\"source y-coord\")\n", "\n", - "ax1.set_title('Standard Recurrence Order 6, Laplace (blue=err<1e-5)')\n", - "ax2.set_title('Standard Recurrence, Order 12, Laplace (blue=err" ] @@ -836,37 +852,148 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "x_grid, y_grid, plot_me_lap1_abs = generate_grid_abs(8, 5, laplace2d, derivs_lap, 8, 2)\n", + "x_grid, y_grid, plot_me_lap2_abs = generate_grid_abs(8, 12, laplace2d, derivs_lap, 8, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[1.00000000e+00, 2.89514005e-06, 8.56354551e-11, 2.29844392e-15,\n", - " 6.16604120e-20, 1.65416130e-24, 4.43761157e-29, 1.19047619e-33],\n", - " [5.28523776e-01, 1.00000000e+00, 2.89514005e-06, 8.56354551e-11,\n", - " 2.29844392e-15, 6.16604120e-20, 1.65416130e-24, 4.43761157e-29],\n", - " [5.30293276e-01, 5.28523776e-01, 1.00000000e+00, 2.89514005e-06,\n", - " 8.56354551e-11, 2.29844392e-15, 6.16604120e-20, 1.65416130e-24],\n", - " [5.30475650e-01, 5.30293279e-01, 5.28523776e-01, 1.00000000e+00,\n", - " 2.89514005e-06, 8.56354551e-11, 2.29844392e-15, 6.16604120e-20],\n", - " [8.05901688e-01, 5.30353964e-01, 5.30293278e-01, 5.28523776e-01,\n", - " 1.00000000e+00, 2.89514005e-06, 8.56354551e-11, 2.29844392e-15],\n", - " [7.12387827e-01, 1.14390958e+00, 5.30265663e-01, 5.30293278e-01,\n", - " 5.28523776e-01, 1.00000000e+00, 2.89514005e-06, 8.56354551e-11],\n", - " [4.17490497e-01, 3.10768481e-01, 3.62945854e-01, 5.30267821e-01,\n", - " 5.30293275e-01, 5.28523776e-01, 1.00000000e+00, 2.89514005e-06],\n", - " [5.50502400e-01, 1.00000000e+00, 4.15177240e-01, 1.00000000e+00,\n", - " 5.30333992e-01, 5.30293280e-01, 5.28523776e-01, 1.00000000e+00]])" + "Text(0.5, 1.0, '8-Term Taylor Series, Order 12, Laplace Abs Val')" ] }, - "execution_count": 35, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACd/0lEQVR4nOzde1xUdeL/8fcoAoqKIorhBS0vhSQWUqtlaW0apnaxcrdd09Itf05fV6mtXLcyt6LWMncTLbfS7baZbVG5fiNMV91cNySpjG6WhpWXRJPAvMHn94ffmWaEQQZmOGdmXs/Hg0fNmcM5nxmc4c17zvkchzHGCAAAAAAAAAA8NLN6AAAAAAAAAADsh+IQAAAAAAAAQA0UhwAAAAAAAABqoDgEAAAAAAAAUAPFIQAAAAAAAIAaKA4BAAAAAAAA1EBxCAAAAAAAAKAGikMAAAAAAAAANVAcAgAAAAAAAKiB4jBMbN68WVdccYWSk5PVqlUrnX766ZozZ44OHjzo83uGDh0qh8Nx0q/Zs2c33QOph/qM2eFw6F//+lfA9jl06FANHTo0YNury9GjR/XEE08oMzNTCQkJatWqlVJSUnT55Zfr1VdfDfj+7PQzNsbohRde0EUXXaT27dsrJiZGp556qpxOp3bs2NHo7W/fvl0Oh0NLly5t/GDrwde/zQcffLDB2+zRo4dGjRoVwFHWT1O+Bhrjww8/lMPhUIsWLbRz585a1wnmc/jnP/9ZDodDb775ps91/vrXv8rhcOiVV16p93ZD5flHZCOLkEUayk4/43DLIvPnz9dVV12lnj17yuFw+Pw39Morr+iXv/ylevXqpZYtW6pHjx761a9+pc8//7zB+/7Xv/4lh8Ohl19+ucHbaIimfo4bIzs7Ww6Hw2cuCfZzeNZZZ6lLly6qqqryuc55552nxMREHTlypF7bDKXnH0D9RFk9ADReSUmJBg8erL59+2r+/PlKTEzUunXrNGfOHBUVFem1116r9fsWLlyo8vJy9+1//vOfuu+++7RkyRKdfvrp7uVdu3YN+mPwx3/+8x+v23/84x+1Zs0arV692mt5ampqUw4rYMaPH69XXnlF06dP17333quYmBh9+eWXevPNN5Wfn68rr7wyoPv7z3/+Y4ufcXV1ta677jotW7ZMv/zlL7V06VLFx8frgw8+0Ny5c/XCCy9oxYoVOu+886weql+uvvpq3XrrrV7LunfvbtFowt+TTz4pSTp27JieeeYZ3XHHHU26/1//+te644479PTTT+vSSy+tdZ0lS5aoY8eOGj16dJOODQgmsghZpDHIIsHz+OOPKy4uThdddJHeeOMNn+s99NBD6ty5s2bNmqVTTz1VO3bs0AMPPKCzzz5bGzduVL9+/Zpw1JHh6NGjeu655yRJb775pr755ht16dKlSccwadIk/c///I/y8/M1cuTIGvd/9tln2rBhg6ZPn67o6OgmHRsAGzEIebNmzTKSzNatW72W33TTTUaS2bdvX722s2TJEiPJFBYWBmRclZWVAdnOyUyYMMHExcUFdR8XXnihufDCCwOyrerqanPw4MFa7/vyyy+NJHP33XfXen9VVVXQx2CVBx54wEgyDz74YI37du3aZVJSUkxSUpLZv39/ndup69/dtm3bjCSzZMmSRo72uIMHD5rq6mqf90syTqczIPtySUlJMZdddllAt1kfgXwNBMuhQ4dMhw4dTHp6uunSpYvp06dPresF+zm89tprTXR0tNm7d2+N+z7++GMjydx6661+bTMUnn9ENrIIWSSQY7BKOGYRz59Xv379fP4b2r17d41l33zzjWnRooWZNGlSg8a2Zs0aI8ksX768Qd/fUIF+joNl+fLlRpK57LLLjCRz//3311gn2M/hvn37TGxsrBk7dmyt999xxx1Gkvnggw/qvc1Qef4B1B+nKoeBFi1aSJLi4+O9lrdr107NmjVr9KdDy5Yt06BBgxQXF6fWrVtrxIgR2rx5s9c6EydOVOvWrfXhhx9q+PDhatOmjS6++GJJx08/ueWWW7RkyRL17dtXLVu21MCBA7Vx40YZYzR37lz17NlTrVu31kUXXaStW7c2arySlJubqwsuuECdOnVSXFyczjzzTP3pT3/S0aNH3ev88Y9/VFRUVK2nndx4443q0KGDDh065HMf+/bt09SpU9WlSxdFR0fr1FNP1axZs3T48GGv9VyP//HHH9cZZ5yhmJgY/e1vf6t1m2VlZZKkU045pdb7mzXzfsmWl5frtttuU8+ePRUdHa0uXbpo+vTpqqysrPcYajs9aNeuXbr55pvVtWtXRUdHq2fPnrr33nt17Ngxr/UWLVqk9PR0tW7dWm3atNHpp5+u3//+9z6fM1+OHDmiuXPn6owzztDtt99e4/6kpCTl5ORo9+7deuqpp9zLhw4dqrS0NK1bt06DBw9Wq1atdOONN0qSvv32W1177bVq06aN4uPjNW7cOO3atavW/W/atEljxoxRQkKCYmNjddZZZ+mll17yWmfp0qVyOBx66623dOONN6pjx45q1apVjZ+3HRQUFOjyyy9X165dFRsbq169eunmm2/W3r17vdabPXu2HA6HNm/erKuuukpt27ZVfHy8fv3rX+u777476X7uvfdenXvuuUpISFDbtm119tln66mnnpIxpsa6L7zwggYNGqTWrVurdevWGjBggNfPUpJWrVqliy++WG3btlWrVq103nnn6e233673487Ly1NZWZkmT56sCRMm6LPPPtO///1vn+u/+uqr6t+/v2JjY3XqqafqL3/5i9f91dXVuu+++9zvW+3atVP//v315z//uc5xTJo0SUeOHNELL7xQ474lS5ZIkvvfqT/PIWBnZJGayCJkETtkkRN/Xr506tSpxrLk5GR17do1IKdo16W+vwtdU42c7Pd3bbZu3aobbrhBvXv3VqtWrdSlSxeNHj1aH374YY11v//+e91666069dRTFRMTo06dOmnkyJH65JNP3OscOXJE9913n04//XTFxMSoY8eOuuGGG+qVn1yeeuopRUdHa8mSJerWrZuWLFni8/f/oUOHlJ2drc6dO6tly5a68MILa7wHfvnll/rFL36h5ORkxcTEKCkpSRdffLGKi4t9jqF9+/a68sor9cYbb7hf+y5VVVV69tlnlZmZqTPPPNOv5xBAmLGytURgbNu2zbRr185cffXV5osvvjDl5eXmjTfeMPHx8eZ//ud/6r2d2j7lv//++43D4TA33nijWbFihXnllVfMoEGDTFxcnPnoo4/c602YMMG0aNHC9OjRw+Tk5Ji3337b5OfnG2OOH3WVkpJiBg8ebF555RXz6quvmj59+piEhAQzY8YMc/nll5sVK1aY559/3iQlJZn+/fvX+cnpiWr7lH/GjBlm0aJF5s033zSrV682jz76qElMTDQ33HCDe53du3ebmJgYM2vWLK/vLSsrMy1btjS/+93v3MtO/JT/xx9/NP379zdxcXHm4YcfNm+99Za56667TFRUlBk5cqTX9iSZLl26mP79+5sXXnjBrF692mzZsqXWx1JRUWHatWtnOnfubJ544gmzbds2n4+7srLSDBgwwCQmJpp58+aZVatWmT//+c8mPj7eXHTRRV7PYV1jkGTuuece97o7d+403bp1MykpKeaJJ54wq1atMn/84x9NTEyMmThxonu9v//970aS+Z//+R/z1ltvmVWrVpnHH3/cTJs2zeeYfdmwYYORZO644w6f6/zwww+mWbNmZsSIEe5lF154oUlISDDdunUzjz32mFmzZo1Zu3atOXjwoDnjjDNMfHy8eeyxx0x+fr6ZNm2a6d69e41PQFevXm2io6PNkCFDzLJly8ybb75pJk6cWGM91+ujS5cu5qabbjL/+7//a15++WVz7Ngxn2OWZNq3b29iY2NNdHS0Ofvss83TTz/t9/PjqT5Hyy1atMjk5OSY119/3axdu9b87W9/M+np6aZv377myJEj7vXuuece9+vzd7/7ncnPzzfz5s0zcXFx5qyzzvJat7YjXSZOnGieeuopU1BQYAoKCswf//hH07JlS3Pvvfd6rXfXXXcZSeaqq64yy5cvN2+99ZaZN2+eueuuu9zrPPvss8bhcJgrrrjCvPLKK+aNN94wo0aNMs2bNzerVq2q13NzySWXmJiYGLNv3z6zdetW43A4vP7Nej6HXbp0Md27dzdPP/20WblypfnVr35lJJm5c+e618vJyTHNmzc399xzj3n77bfNm2++aebPn29mz55d5ziqqqpMSkqKGTBggNfyY8eOmVNOOcX87Gc/8/s55IhD2B1ZhCxCFrFnFvFU1xGHtfniiy9Ms2bNzIwZM+r9PZ7qe7RcfX8X1vf3d21HvK1du9bceuut5uWXXzZr1641r776qrniiitMy5YtzSeffOJer7y83PTr18/ExcWZOXPmmPz8fPOPf/zD/Pa3vzWrV682xhz/PX/ppZeauLg4c++995qCggLz5JNPmi5dupjU1NR6HUm7Y8cO06xZM3PNNdcYY4z5wx/+YCSZf/3rX7U+h926dTOXX365eeONN8xzzz1nevXqZdq2bWu++OIL97p9+/Y1vXr1Ms8++6xZu3at+cc//mFuvfVWs2bNmjrHsmrVKiPJzJ8/32v5P//5TyPJPP744349hxxxCIQfisMw8fHHH5vTTz/dSHJ/TZs2za/Qe2JYLy0tNVFRUTUC/w8//GA6d+5srr32WveyCRMmGEm1liKSTOfOnU1FRYV7WV5enpFkBgwY4DXG+fPn+304/MlOD6qqqjJHjx41zzzzjGnevLnX6VITJkwwnTp1MocPH3Yve+ihh0yzZs28gvKJYf3xxx83ksxLL73kta+HHnrISDJvvfWW1+OPj4+v92la//znP01iYqL759ihQwdzzTXXmNdff91rvZycHNOsWbMap3O9/PLLRpJZuXJlvcZwYli/+eabTevWrc1XX33ltd7DDz9sJLn/SLvllltMu3bt6vWYTubFF1/0Cia+JCUlmTPOOMN9+8ILLzSSzNtvv+213qJFi4wk89prr3kt/81vflMjyJx++unmrLPOMkePHvVad9SoUeaUU05xn+Ljen1cf/319X5c1113nXn++efNunXrzMsvv2yysrKMJPOHP/yh3ts4kb+n2VZXV5ujR4+ar776qsZz4ioOT/yD4PnnnzeSzHPPPededrLiyvU6mzNnjunQoYP7df3ll1+a5s2bm1/96lc+v7eystIkJCSY0aNH19hmenq6Oeecc076OLdv326aNWtmfvGLX3iNOS4uzpSXl3utm5KSYhwOhykuLvZafskll5i2bdu6TzEbNWpUjfKvvlzP7Xvvvede9sYbbxhJ5q9//Wut3+PrOXQ9FopD2B1ZhCziQhaxTxbx5E9xePToUTN06FDTtm1bU1pa2qD9NeQ027p+F9b393d9iqtjx46ZI0eOmN69e3vloDlz5hhJpqCgwOf3ugrrf/zjH17LCwsLjSSzcOHCkz5O137efPNNY8zxvORwOMz48eO91nM9h2effbbXc7F9+3bTokULM3nyZGOMMXv37q21/KuP6upq07NnT9O/f3+v5WPHjjWtWrUyBw4cqPX7fD2HFIdA+OFU5TCwfft2jR49Wh06dNDLL7+stWvX6k9/+pOWLl2qyZMnu9errq7WsWPH3F91XT1LkvLz83Xs2DFdf/31Xt8XGxurCy+8sNYrBY4dO7bWbQ0bNkxxcXHu22eccYYkKSsrSw6Ho8byr776qt6PvzabN2/WmDFj1KFDBzVv3lwtWrTQ9ddfr6qqKn322Wfu9X77299qz549Wr58uaTjz9GiRYt02WWXqUePHj63v3r1asXFxenqq6/2Wj5x4kRJqnF6pevKfPUxcuRIlZaW6tVXX9Vtt92mfv36KS8vT2PGjNEtt9ziXm/FihVKS0vTgAEDvH4+I0aMqPVKjvUdw4oVKzRs2DAlJyd7bTcrK0uStHbtWknSOeec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jh319ddf1znmxMREdejQQW+++Wat97s+IPTF9YHmvHnzNG/evFrvv/nmm72W+Xrcno85JSXFve3PPvtML730kmbPnq0jR47o8ccfr3NMXbt21fDhw/XCCy/okUce0ZIlS9SrVy9dcMEF7nXq+xwCCD8Uh2EgOTlZW7ZsUUVFhVq3bu1e/p///EfST0f6JCcnewWtkxkxYoSioqL0xRdfBP2UiEByhSnPP0aMMfrrX/9a6/pXXnmlunfvrltvvVVr167Vo48+etJAdvHFF+ull15SXl6errzySvfyZ555xn1/Q/zwww9yOBxeP0cX1ykArp/hqFGj9MADD6hDhw7q2bNng/ZXm1GjRmnlypU67bTT6n1KU1xcnLKysnTkyBFdccUV+uijj/wK69HR0frd736n3//+95o7d26Nqxnu2bNHM2fOVFJSktcpb74MGzZML730kl5//XWvU4ROvMpt37591bt3b73//vs1QlCwPPvss2rRooUyMjKCsv3a/v1L0hNPPOHze55//nmv8bz00ks6duyYhg4dWud+oqKi1Lx5c/eyH3/8Uc8++6zXesOHD1fz5s21aNEiDRo0qNZtnXfeeWrXrp1KSkpOeoRNbZ566ik1a9ZMr7zySo0run799dfuI1Iefvhh9/KPPvpI77//vtfpTi+88ILatGmjs88+u8Y+2rVrp6uvvlrffPONpk+fru3bt3sVkbW54oor1KFDBz399NPauXOn+vTpo/PPP999f32fQyAUkEW8kUUahyzS9Iwx+s1vfqMlS5boiSee0A033NAk+/X3d6G/v78993NiNvrnP/+pb775Rr169XIvy8rK0t13363Vq1fXOP3cZdSoUXrxxRdVVVWlc889t16P02X//v169dVXdd555+m+++6rcf+TTz6p559/Xlu2bFFaWpp7+d///ndlZ2e73xe++uorbdiwQddff32t++nTp4/+8Ic/6B//+Eedp3B7mjRpkt58803dfffdKi4u1v333+/1PlTf5xBA+KE4DAPTp0/XFVdcoUsuuUQzZsxQYmKiNm7cqJycHKWmprrng/FXjx49NGfOHM2aNUtffvmlLr30UrVv3167d+/Wu+++q7i4ON17770BfjSNd8kllyg6Olq//OUvdfvtt+vQoUNatGiR9u/fX+v6zZs3l9Pp1B133KG4uDj33EB1uf7665Wbm6sJEyZo+/btOvPMM/Xvf/9bDzzwgEaOHFnnvCh1+fTTTzVixAj94he/0IUXXqhTTjlF+/fv1z//+U8tXrxYQ4cO1eDBgyUd/7n/4x//0AUXXKAZM2aof//+qq6uVmlpqd566y3deuutfocZ6fhpZAUFBRo8eLCmTZumvn376tChQ9q+fbtWrlypxx9/XF27dtVvfvMbtWzZUuedd55OOeUU7dq1Szk5OYqPj3cfYSLJPT/T9u3b69zvHXfcoffff9/933Hjxik+Pl4ffPCB5s6dqx9++EErVqyoUQzV5vrrr9ejjz6q66+/Xvfff7969+6tlStXKj8/v8a6TzzxhLKysjRixAhNnDhRXbp00b59+/Txxx/rvffec8855a+5c+eqpKREF198sbp27ao9e/boqaee0ltvvaXZs2d7HYWxfft29ezZUxMmTNDSpUtPuu1du3bp5ZdfrrG8R48eSk9P12mnnaY777xTxhglJCTojTfeqPO0rVdeeUVRUVG65JJL9NFHH+muu+5Senq6rr32Wp/fc9lll2nevHm67rrrdNNNN6msrEwPP/xwjUDZo0cP/f73v9cf//hH/fjjj/rlL3+p+Ph4lZSUaO/evbr33nvVunVrPfbYY5owYYL27dunq6++Wp06ddJ3332n999/X999950WLVpU6zjKysr02muvacSIET5Pp3r00Uf1zDPPKCcnRy1atJB0/I/eMWPGaPbs2TrllFP03HPPqaCgQA899JD7SMLRo0crLS1NAwcOVMeOHfXVV19p/vz5SklJUe/evX0+Ny4xMTH61a9+pccee0zGGD344IMNeg6BUEAW8UYWIYvYIYtI0qZNm9yPu7y8XMYYd4bIzMx0l6vTpk3TU089pRtvvFFnnnmme4oT6fjvs7POOst9e/bs2br33nu1Zs2aOj9kdPHclqcLL7zQ79+F9fn9XZtRo0Zp6dKlOv3009W/f38VFRVp7ty5NU5Lnj59upYtW6bLL79cd955p8455xz9+OOPWrt2rUaNGqVhw4bpF7/4hZ5//nmNHDlSv/3tb3XOOeeoRYsW+vrrr7VmzRpdfvnlXmW+p+eff16HDh3StGnTan3uOnTooOeff15PPfWUHn30UffyPXv26Morr9RvfvMbHThwQPfcc49iY2M1c+ZMSdIHH3ygW265Rddcc4169+6t6OhorV69Wh988IHuvPNOn8+LpzFjxigxMVFz585V8+bNvc5c8ec5BBCGmvpqLAiO1atXm+HDh5vOnTubli1bmj59+phbb73V7N27t97bOPFKhi55eXlm2LBhpm3btiYmJsakpKSYq6++2qxatcq9Tl1XE5RknE6n1zLX1bbmzp3rtbwhV1+rbd9vvPGGSU9PN7GxsaZLly7md7/7nfnf//1fI8msWbOmxja2b99uJJkpU6bUuo/armhaVlZmpkyZYk455RQTFRVlUlJSzMyZM82hQ4e81qvt8fuyf/9+c99995mLLrrIdOnSxURHR5u4uDgzYMAAc99995mDBw96rV9RUWH+8Ic/mL59+5ro6GgTHx9vzjzzTDNjxgyza9eueo1BJ1zJ0BhjvvvuOzNt2jTTs2dP06JFC5OQkGAyMjLMrFmz3Fek/Nvf/maGDRtmkpKSTHR0tElOTjbXXnttjatQJiYmmp/97Gf1evzV1dXm+eefN0OHDjXt2rUz0dHRpmfPnub//b//V+PKisYc/7n069ev1m19/fXXZuzYsaZ169amTZs2ZuzYsWbDhg21XuXt/fffN9dee63p1KmTadGihencubO56KKLvK6s6Ov14cvrr79uzj//fNOxY0cTFRVl2rRpY4YMGWL+/ve/11j3ww8/NJLMnXfeedLtpqSkeF2x1PNrwoQJxhhjSkpKzCWXXGLatGlj2rdvb6655hpTWlpa42ftuvJvUVGRGT16tPu5+uUvf2l2797ttd/aXgNPP/206du3r4mJiTGnnnqqycnJMU899ZSR5HUlUGOMeeaZZ0xmZqaJjY01rVu3NmeddVaNn8PatWvNZZddZhISEkyLFi1Mly5dzGWXXVbn+4Hr6qd5eXk+13FdedR19UPXlalffvll069fPxMdHW169Ohh5s2b5/V9jzzyiBk8eLBJTEw00dHRpnv37mbSpElm+/btPvd1ovfff99IMs2bNzfffvttjfvr+xxyVWWEArIIWYQs4s3qLGLMT1cbr+3Lcwx15YuUlBSvbd56663G4XCYjz/+uM59u15Lvr5cr4P6/i6s7+/v2q7qu3//fjNp0iTTqVMn06pVK3P++eeb9evX1/q62r9/v/ntb39runfvblq0aGE6depkLrvsMvPJJ5+41zl69Kh5+OGH3a/x1q1bm9NPP93cfPPN5vPPP/f5nAwYMKDG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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "plot_me_lap1.T/plot_me_lap2.T" + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", + "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap2_abs.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1_abs.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "fig.subplots_adjust(right=0.8)\n", + "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", + "fig.colorbar(cs1, cax=cbar_ax)\n", + "\n", + "\n", + "ax1.set_xscale('log')\n", + "ax1.set_yscale('log')\n", + "ax1.set_xlabel(\"source x-coord\")\n", + "ax1.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "ax2.set_xscale('log')\n", + "ax2.set_yscale('log')\n", + "ax2.set_xlabel(\"source x-coord\")\n", + "ax2.set_ylabel(\"source y-coord\")\n", + "\n", + "ax1.set_title('8-Term Taylor Series, Order 5, Laplace Abs Val')\n", + "ax2.set_title('8-Term Taylor Series, Order 12, Laplace Abs Val')" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, '8-Term Taylor Series, Order 12, Laplace Rel. Err')" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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eSotLdXWrVt1//33h28fO3asCgsLtXLlSo0ePVqdO3fWpZdeKkl67733dMEFF6hbt27KycnR5MmTo778Y82aNZo0aZJyc3OVnZ2tL3zhC3rsscci7uNeAvLMM8/o0ksv1SGHHKLOnTs3+PMOgoqKCp199tnq16+fsrOzdeSRR+ryyy/X9u3bI+7nXiqzbt06nXvuuerevbtycnJ04YUX6v333z/o89x666064YQTlJubq+7du+uLX/yi7r//fnme1+C+jzzyiEaNGqWuXbuqa9euGjFiRMSfpSQ9++yzOu2009S9e3d17txZJ554ov785z+3+PfBDR22bt0acXtzf77bQlM/V039fANBQ4s0RIvQIkFokc//eUXz+aGhJOXn56tfv35xeYl2U5rbE+64lt///vcaNmyYsrOzdfjhh+tnP/vZQZ9j/fr1uuSSSzRkyBB17txZhx12mCZOnKhXX321wX0//PBDXX311Tr88MOVlZWlPn366IwzzghvbEj283Lbbbfp6KOPVlZWlg455BBdcsklzeqnaKJ1S7z7qDWi/by7lzv/6Ec/0m233abBgwcrKytLK1as8GWdAOKLKw5TwNSpU7VgwQJ95zvf0V133aVDDjlEzz//vO677z6FQiF16dKlxY99xx136Ac/+IEuueQS/eAHPwhH1ZgxY/TSSy9FXCmwb98+TZo0SZdffrmuv/76iLB7+umntW7dOt15553KyMjQddddpzPPPFNTp07Vv/71L91zzz366KOPNGfOHJ133nmqqqpq8iqug3n77bf1zW9+Mxyxr7zyim6//Xa9+eab+t///V9J0uWXX67bb79d9913n2677bbwr925c6ceffRRXXHFFcrOzm708ffs2aNx48bp7bff1q233qphw4Zp1apVKi0tVVVVlf74xz9G3L+8vFyrVq3STTfdpL59+zYaZ5J0zDHHqEePHrr11lvVrl07jR8/Pup5aLt379Ypp5yid999V9///vc1bNgwvf7667rpppv06quv6tlnn434PWzuGrZs2aLjjz9e7dq100033aQjjjhCf/3rX3Xbbbdp48aNeuCBByRJjz76qGbOnKnvfve7+vGPf6x27dpp/fr1qq6ubvwPpQlr167VBx98oMsuuyzqn/vEiRPVrl07VVRURLz0d/Pmzbrwwgt17bXX6o477lC7du30ySef6Mtf/rLee+89lZaW6qijjtIf//hHTZ48ucHjrlixQl/5yld0wgkn6N5771VOTo4effRRTZ48Wbt379bFF18ccf9LL71UZ555pn71q1+prq7uoC8leeSRR3T//ffrwIEDKiws1BVXXKFLLrkk5t+jWLz99tsaNWqUpk+frpycHG3cuFHz58/XSSedpFdffbXBms855xxdcMEFmjFjhl5//XXdeOONqq6u1t/+9rcmv7+NGzfq8ssvD7/0+sUXX9R3v/td/fvf/9ZNN90Uvt9NN92kH/7whzr33HN19dVXKycnR6+99preeeed8H1+/etf66KLLtLZZ5+tBx98UB07dtR9992nCRMmaPny5eH/+I/Fhg0bJElHHXVU+Lbm/nzHS2PDyHbt2jX4D7loP1eN/XwDQUSLNESL0CJBaZGW+te//qV33nlHX/3qVxPy+E5ze0KSqqqqNHv2bN1yyy3q27evHn74YV155ZXat2+frrnmmqjP8d5776lXr1668847dcghh2jnzp168MEHdcIJJ2jdunUaOnSoJOnjjz/WSSedpI0bN+q6667TCSecoF27dmnlypXavHmzjj76aB04cEBnn322Vq1apWuvvVajR4/WO++8o5tvvlljx47VmjVrGr2a92Aa65ZE9FE0Bw4caLRbOnSIHBk01SY/+9nPdNRRR+nHP/6xunfvriFDhsRtfQB85CElvPHGG97RRx/tSQp/zJo1yztw4ECzH+OBBx7wJHmVlZWe53leTU2N16FDB++73/1uxP0+/vhjr2/fvt4FF1wQvm3q1KmeJO9///d/GzyuJK9v377erl27wreVl5d7krwRI0ZErHHBggWeJO/vf/97s9c9depUr0uXLlG/Xl9f7+3fv9976KGHvPbt23s7d+6M+LV9+vTx9u7dG77trrvu8tq1a+dt2LAhfNspp5zinXLKKeHP7733Xk+S99hjj0U811133eVJ8p555pmI7z8nJyfieZvyxz/+0evdu3f4z7FXr17e1772Ne+pp56KuF9paanXrl278J+X88QTT3iSvGXLljVrDZK8m2++Ofz55Zdf7nXt2tV75513Iu734x//2JPkvf76657ned4VV1zh9ejRo1nf08E8+uijniTv3nvvbfJ+eXl53jHHHBP+/JRTTvEkeX/+858j7rdo0SJPkvfkk09G3P7tb3/bk+Q98MAD4duOPvpo7wtf+IK3f//+iPueddZZ3qGHHurV19d7nvffvx8XXXRRs7+vb37zm97DDz/srVy50nviiSe8kpIST5L3gx/8oNmP8XkDBw70zjzzzGbf/8CBA97+/fu9d955p8Hvyc033+xJ8q666qqIX/Pwww97krxf//rX4ds+/3fg89zfs3nz5nm9evUK/73+17/+5bVv39771re+FfXX1tXVebm5ud7EiRMbPObw4cO9448/vsnvccOGDZ4k76677vL279/v7dmzx6uqqvJGjRrlHXrooRF/l5v78+15Df9uxML9bDb2MW3atPD9mvq5ivbzDQQVLUKLOLRIcFrks4499tgm/13+Wfv37/fGjh3rde/e3aupqWnR861YscKT5D3++OPN/jXResLzrIEyMjK8qqqqiF9z+umne927d/fq6uo8z/tvF3z29/jzPv30U2/fvn3ekCFDIjpo3rx5niSvoqIi6q/9zW9+40nyfvvb30bcXllZ6UnyFi5c2OT36Ppry5Yt3v79+70PPvjAe+yxx7wuXbp43/jGN8L3i6WP3M/GZ/+Z0Vzu9yvax6pVq8L3jfbz7h7jiCOO8Pbt2xfzGgAEG5cupICNGzdq4sSJ6tWrl5544gk9//zz+tGPfqQlS5Zo+vTp4fu5XST3UV9f3+TjLl++XJ9++qkuuuiiiF+XnZ2tU045pdF3CjzvvPMafaxx48ZFXG1wzDHHSJJKSkoidnXd7Z+9Eqkl1q1bp0mTJqlXr15q3769OnbsqIsuukj19fX65z//Gb7flVdeqW3btunxxx+XZL9HixYt0plnntnkO58+99xz6tKli84///yI292O8OdfPuDema85zjjjDNXU1Oj3v/+9rrnmGh177LEqLy/XpEmTdMUVV4Tv9/TTT6uwsFAjRoyI+POZMGFCo+/k2Nw1PP300xo3bpzy8/MjHrekpESS9Pzzz0uSjj/+eH344Yf6xje+oSeffLLBy2ATwfO8BlcB9OzZU6eeemrEbStWrFC3bt00adKkiNs/f+Dz+vXr9eabb+pb3/qWJEV8v2eccYY2b96sf/zjHxG/JtrPeGMefvhhffOb39SYMWN03nnnadmyZTrrrLN05513tuqlLAezbds2zZgxQ/3791eHDh3UsWNHDRw4UJL0xhtvNLi/+/6dCy64QB06dDjoy0uee+45ffnLX1ZOTk7479lNN92kHTt2aNu2bZLsZdP19fUKhUJRH2f16tXauXOnpk6dGvFncODAAX3lK19RZWVlg5e8Nea6665Tx44dlZ2drREjRui1117TH/7wh4i/y839+Y6HI444QpWVlQ0+brzxxgb3jfZz1djPNxBEtEhDtAgtEoQWaQnP8zRt2jStWrVKDz30kPr375/Q52tOTzjHHnushg8fHnHbN7/5TdXW1urll1+O+hyffvqp7rjjDhUUFCgzM1MdOnRQZmam3nrrrYg2+n//7//pqKOO0pe//OWoj/X000+rR48emjhxYsSf14gRI9S3b99mv5t637591bFjR/Xs2VMXXHCBioqKIo4QiFcfNdeVV17ZaLeMGDEi4n5NtcmkSZN8eWMXAInFS5VTwPXXX6/a2lpVVVWFg/jkk09W7969demll+qiiy7SKaeconnz5kUccj1w4EBt3Lgx6uO68zWKi4sb/frnXzLXuXNnde/evdH75ubmRnzuzjqKdntT5/kcTE1NjcaMGaOhQ4fqpz/9qQYNGqTs7Gy99NJLCoVC+uSTT8L3/cIXvqAxY8aorKxM3/rWt/T0009r48aNuu+++5p8jh07dqhv374NwrFPnz7q0KFD+HwgJ9o5QdF06tRJX/3qV8MvDampqVFJSYnKysr0ne98R8cee6y2bt2q9evXR/2X8+fjublr2Lp1q/7whz8c9HGnTJmiTz/9VL/4xS903nnn6cCBAyouLtZtt92m008/vZnfqXEvTXEv0WhMXV2dtm/fri984QsRtzf2fe3YsUN5eXkNbu/bt2/E5+5n/Jprron68paW/j5Gc+GFF+rpp5/WmjVrwv8BFE8HDhzQ+PHj9d577+nGG2/Ucccdpy5duujAgQP60pe+FPHz73z+96VDhw7q1atXg5/jz3rppZc0fvx4jR07Vr/4xS/CZ1CVl5fr9ttvDz+PG5A29Y587s/h8//x+1k7d+486Esdr7zySl144YXau3evXnzxRf3gBz/Q2WefrVdeeUW9evUKP1dzfr7jITs7u9lv7hDt56q1P29AW6FFItEihhYJZos0xfM8TZ8+Xb/+9a/14IMP6uyzz07Yc0nN7wnn879/n72tqW6ZM2eOysrKdN111+mUU05Rz5491a5dO02fPj3iOd5///3wz0I0W7du1Ycffhj17NbmtsSzzz6rnJwc7dy5U4sXL9Zvf/tbffe739W9994bfh6p9X3UXP369WtWtzT180e3AKmJwWEKqKqqUkFBQYN/abjIfu2113TKKafosssu01lnnRX++sHe4cq9y9cTTzwRvlqpKa05ByieysvLVVdXp9/97ncR666qqmr0/rNmzdLXvvY1vfzyy7rnnnt01FFHHTQ2e/Xqpb/97W8Ndp23bdumTz/9NPx757T292bAgAG67LLLNHv2bL3++us69thj1bt3b3Xq1Cl8TtLntXQNvXv31rBhw3T77bc3+vX8/Pzw/7/kkkt0ySWXqK6uTitXrtTNN9+ss846S//85z+b9TPjFBUVqWfPnnrqqadUWlra6FqfeuopHThwoMGfTWP37dWrl1566aUGt3/+QHL3e3TDDTfo3HPPbXRt7sybpp4vFt5/DvpO1Fl1r732ml555RUtWbJEU6dODd/e1EH/W7Zs0WGHHRb+/NNPP9WOHTvCw7bGPProo+rYsaOefvrpiPO3ysvLI+53yCGHSJLefffdqFcsuD+Hn//851Hfza+x//j6vM8G74knnqi+ffvqwgsv1M0336x77rkn/FzN/fluS9F+roLyz1XgYGiRSLSIoUWC2SLRuKHhAw88oPvvv18XXnhhQp7ns5rbE05jby7jbmuqW9xZgXfccUfE7du3b494h+xDDjlE7777bpNr7t27t3r16qU//elPjX69W7duTf56Z/jw4eE//9NPP10TJkzQ4sWLNW3aNBUXF8etj+KtqZ+/oPwzGEB8MThMAfn5+Xrttde0a9cude3aNXz7X//6V0n/vdInPz8/pv8onjBhgjp06KC333474S+JiCf3L6zP/seI53n6xS9+0ej9zznnHA0YMEBXX321nn/+ef3P//zPQf+ld9ppp+mxxx5TeXm5zjnnnPDtDz30UPjrLfHxxx8rIyMj4s/RcS+jcH+GZ511lu644w716tVLgwcPbtHzNeass87SsmXLdMQRRzT7JU1dunRRSUmJ9u3bp69+9at6/fXXY4r1zMxMfe9739P3v/993X333Q3ezXDbtm264YYblJeXF/GSt2jGjRunxx57TE899VTES4QeeeSRiPsNHTpUQ4YM0SuvvNIgJBPlV7/6lTp27KiioqKEPH5jP/+Smrxy5eGHH45Yz2OPPaZPP/1UY8eObfJ5OnTooPbt24dv++STT/SrX/0q4n7jx49X+/bttWjRIo0aNarRxzrxxBPVo0cPVVdXR7wErrW+9a1v6Ze//KV+8Ytf6Hvf+54GDhzYop9vAAdHi0SiRVqHFml7nufp29/+th544AHdd999CX8jN6e5PeG8/vrreuWVVyJervzII4+oW7du+uIXv9jk83y+jf74xz/q3//+t4488sjwbSUlJbrpppv03HPPRX057llnnaVHH31U9fX1OuGEE5r1fR5MRkaGysrKVFBQoB/84Adavnx5wvoIAGLF4DAFzJ49W1/96ld1+umn66qrrlLv3r314osvqrS0VAUFBS1+OeSgQYM0b948zZ07V//617/0la98RT179tTWrVv10ksvqUuXLhEvNwqK008/XZmZmfrGN76ha6+9Vnv27NGiRYv0wQcfNHr/9u3bKxQK6brrrlOXLl0avHNdYy666CKVlZVp6tSp2rhxo4477jj95S9/0R133KEzzjijyXNRmvKPf/xDEyZM0Ne//nWdcsopOvTQQ/XBBx/oj3/8oxYvXqyxY8dq9OjRkuzP/be//a1OPvlkXXXVVRo2bJgOHDigmpoaPfPMM7r66qtbFDPz5s1TRUWFRo8erVmzZmno0KHas2ePNm7cqGXLlunee+9Vv3799O1vf1udOnXSiSeeqEMPPVRbtmxRaWmpcnJyIl5S5s5nauqlaJKdT/fKK6+E/3fy5MnKycnR3//+d9199936+OOP9fTTTysnJ+eg38NFF12k//mf/9FFF12k22+/XUOGDNGyZcu0fPnyBve97777VFJSogkTJujiiy/WYYcdpp07d+qNN97Qyy+/HD5zKlZ33323qqurddppp6lfv37atm2b7r//fj3zzDO65ZZbIq7C2LhxowYPHqypU6dqyZIlB33sLVu26Iknnmhw+6BBgzR8+HAdccQRuv766+V5nnJzc/WHP/xBFRUVUR/vd7/7nTp06KDTTz89/K7Kw4cP1wUXXBD115x55pmaP3++vvnNb+qyyy7Tjh079OMf/7hBlA8aNEjf//739cMf/lCffPKJvvGNbygnJ0fV1dXavn27br31VnXt2lU///nPNXXqVO3cuVPnn3+++vTpo/fff1+vvPKK3n//fS1atOigvy+Nueuuu3TCCSfohz/8oX75y182++e7Me+8846OOOIITZ06Vffff/9Bn/uTTz7Riy++2OjXol05ACQrWiQSLUKLBKFFJGnNmjXh77u2tlae54Ubori4ODxcnTVrlu6//35deumlOu644yL+/ZWVlRXx8uxbbrlFt956q1asWNHkJqMT7d+Fp5xySrN7wsnPz9ekSZN0yy236NBDD9Wvf/1rVVRU6K677lLnzp2jruGss87SkiVLdPTRR2vYsGFau3at7r777gb/zp89e7aWLl2qs88+W9dff72OP/54ffLJJ3r++ed11llnady4cfr617+uhx9+WGeccYauvPJKHX/88erYsaPeffddrVixQmeffXbEML+5hgwZossuu0wLFy7UX/7yF5100kmt6qN58+Zp3rx5+vOf/6xTTjnloM9fU1PT6J/VIYccoiOOOCLm7wdACvHlLVkQd88995w3fvx4r2/fvl6nTp28o446yrv66qu97du3N/sxPv9Ohk55ebk3btw4r3v37l5WVpY3cOBA7/zzz/eeffbZ8H2aejdBSV4oFIq4zb3z1t133x1xe0vefa2x5/7DH/7gDR8+3MvOzvYOO+ww73vf+573//7f//MkeStWrGjwGBs3bvQkeTNmzGj0ORp7R9kdO3Z4M2bM8A499FCvQ4cO3sCBA70bbrjB27NnT8T9Gvv+o/nggw+82267zTv11FO9ww47zMvMzPS6dOnijRgxwrvtttu83bt3R9x/165d3g9+8ANv6NChXmZmppeTk+Mdd9xx3lVXXeVt2bKlWWtQI+8c+/7773uzZs3yBg8e7HXs2NHLzc31ioqKvLlz54bfkfLBBx/0xo0b5+Xl5XmZmZlefn6+d8EFFzR4F8revXt7X/rSl5r1/R84cMB7+OGHvbFjx3o9evTwMjMzvcGDB3vf+c53GryzoufZn8uxxx7b6GO9++673nnnned17drV69atm3feeed5q1evbvRd9l555RXvggsu8Pr06eN17NjR69u3r3fqqadGvLNitL8f0Tz11FPeSSed5B1yyCFehw4dvG7dunljxozxfvOb3zS476uvvupJ8q6//vqDPu7AgQOjvuvd1KlTPc/zvOrqau/000/3unXr5vXs2dP72te+5tXU1DT4s3bv6rd27Vpv4sSJ4d+rb3zjG97WrVsjnrexvwP/+7//6w0dOtTLysryDj/8cK+0tNS7//77G31Xv4ceesgrLi72srOzva5du3pf+MIXGvw5PP/8896ZZ57p5ebmeh07dvQOO+ww78wzzzzoPw+i/fPE+drXvuZ16NDBW79+ved5zfv59ryGfzfc87jf56Y09a7KksLvnNnUz1VTP99AENEitAgtEsnvFvG8/77beGMfn11DU30xcODAiMe8+uqrvYyMDO+NN95o8rnd36VoH+7vQXN7YuDAgd6ZZ57pPfHEE96xxx7rZWZmeoMGDfLmz58f8byNvavyBx984E2bNs3r06eP17lzZ++kk07yVq1a1ejfqw8++MC78sorvQEDBngdO3b0+vTp45155pnem2++Gb7P/v37vR//+Mfhv+Ndu3b1jj76aO/yyy/33nrrrSZ/X1x/vf/++w2+tnXrVq9r167euHHjwrc1p48ae1dl9zyN/fOmsd+vaB/f+ta3wveN9vN+sBYDkNwyPO8/B24BaeznP/+5Zs2apddee03HHnus38tJGdXV1Tr22GP19NNP68wzz/R7OYG1cOFCXXvttXr77bfb9Kwad8XA+++/3+AcKgBA26JFEoMWib/jjz9eAwcObNWVkC0xaNAgFRYW6umnn27T5wWAdMdLlZHW1q1bpw0bNmjevHk6++yzCfU4W7FihUaNGkWoH8SKFSs0a9YsXw64BgD4ixZJLFokvmpra/XKK6/owQcf9HspAIA2khZXHD799NO6+uqrdeDAAV133XXNOtAY6WHQoEHasmWLxowZo1/96lfq27ev30sC2gxXHAL+ok8g0SJAc3HFIQD4I+UHh59++qkKCgq0YsUKde/eXV/84hf1t7/9Tbm5uX4vDQAApCn6BAAAAMmgnd8LSLSXXnpJxx57rA477DB169ZNZ5xxRqPvZgYAANBW6BMAAAAkg8APDleuXKmJEycqPz9fGRkZKi8vb3CfhQsXavDgwcrOzlZRUZFWrVoV/tp7772nww47LPx5v3799O9//7stlg4AAFIUfQIAAIB0EPjBYV1dnYYPH6577rmn0a8vXbpUs2fP1ty5c7Vu3TqNGTNGJSUlqqmpkSQ19krsjIyMhK4ZAACkNvoEAAAA6SDw76pcUlKikpKSqF+fP3++pk2bFj5QfMGCBVq+fLkWLVqk0tJSHXbYYRE7+O+++65OOOGEqI+3d+9e7d27N/z5gQMHtHPnTvXq1YugBwAgCs/z9PHHHys/P1/t2gV+X7LV6BMAAIIv3foESITADw6bsm/fPq1d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M5b69EKPDfFq30C0+YwxJthBRgAAAAAAAADewD0OAQAAAAAAAARg4BAAAAAAAABAAAYOAQAAAAAAAARg4BAAAAAAAABAAAYOAQAAAAAAAARg4BAAAAAAAABAAAYOAQAAAAAAAARg4BAAAAAAAABAAAYOAcAFlZWV8vl8Kisrc7sUAAAASeQTAEAgBg4BAAAAAAAABGDgEEBEnTp1SnV1dW6X4Zra2lq3SwAAAGcgn5BPAADBYeAQ8Jg33nhDmZmZateunbp06aIbbrhBNTU1kqS6ujo98cQT6tWrlxITEzVw4EC99957/seuXr1aPp9PBw8e9K8rKyuTz+dTZWWlJOmVV15R586dtWLFCmVkZCgxMVHffPONjh8/runTpys9PV2JiYm69NJL9ec//9l/nM2bN2v06NHq0KGDUlNTNW7cOFVVVTXax7333qusrCwdP35cknTixAnl5OTonnvuOWv/mzZt0k9+8hMlJyerY8eOys3N1ddffx1U/5K0ceNGXX/99f7v3wMPPKAjR474t0+cOFFjx45VQUGB0tLS1LdvX0nSZ599piuuuEJJSUkaPHiwSktLz1onAABeQj4hnwAAWiYGDgEP2bNnj+6++27de++9Ki8v1+rVq3XbbbfJGCNJevbZZ/XMM89o7ty5+uKLLzRq1CiNGTNG27Zta9LzHD16VAUFBVq8eLE2bdqk7t27a/z48Xr99df13HPPqby8XC+++KI6dOjgr+vaa6/VwIED9fnnn+u9997Tvn379NOf/rTR53juuedUU1OjGTNmSJIeffRRVVVVaeHChY0+ZteuXRo+fLiSkpL04YcfqqSkRPfee69OnjwZVP9Hjx7VjTfeqPPPP1/r16/XsmXL9P777+uhhx6q9zwffPCBysvLVVhYqBUrVqimpkY33XST+vXrp5KSEj3++OOaNm1ak76nAADEKvIJ+QQA0IIZAJ5RUlJiJJnKysoGt6elpZnZs2fXWzdkyBAzefJkY4wxq1atMpLMgQMH/NtLS0uNJFNRUWGMMebll182kkxZWZl/ny1bthhJprCwsMHnffTRR01eXl69dTt27DCSzJYtWxrtp7i42LRt29Y8+uijpk2bNmbNmjWN7muMMY888oi58MILTW1tbYPbz9X/okWLzPnnn2+OHDni3/7OO++YuLg4s3fvXmOMMRMmTDCpqanm+PHj/n3+9Kc/mZSUFFNTU+Nf98ILLxhJprS09Kw1AwAQ68gn5BMAQMvFFYeAh2RnZ2vkyJHKzMzUnXfeqZdeekkHDhyQJFVXV2v37t26+uqr6z3m6quvVnl5eZOeJyEhQVlZWf7lsrIyxcfH69prr21w/5KSEq1atUodOnTwf1122WWS5H+bTkOGDh2qadOm6Xe/+51+/etfa/jw4f5t+fn5/mP179/fX0dubq7atm0bcKxg+i8vL1d2drbOO++8etvr6uq0ZcsW/7rMzEwlJCT4l53HtW/fvl7tAACAfEI+AQC0ZG3cLgBA9MTHx6uwsFDFxcX617/+peeff14zZ87Up59+qi5dukiSfD5fvccYY/zr4uLi/OscJ06cCHiedu3a1TtOu3btzlpXXV2dbr75Zj311FMB23r06HHWx61bt07x8fEBb1davHixfvjhB0nyB/Fz1SGdvf/T/322x50e3J3HAQCAhpFPyCcAgJaLKw4Bj/H5fLr66qs1a9YslZaWKiEhQcuXL1dycrLS0tL00Ucf1du/uLhYl19+uSSpW7dukuw9fxxlZWXnfM7MzEzV1dVpzZo1DW4fNGiQNm3apAsuuECXXHJJva8zQ+7pnn76aZWXl2vNmjVauXKlXn75Zf+2nj17+o/Rp08fSVJWVpbWrl3b4B8TwfSfkZGhsrIy/83aJWndunWKi4vz32S8IRkZGdqwYYP/DwVJ+uSTTxrdHwAAryGfkE8AAC2UW++RBhB9n3zyiZk9e7ZZv369+eabb8zSpUtNQkKCeffdd40xxsybN88kJyeb119/3Xz55ZfmN7/5jWnbtq3ZunWrMcaY2tpak56ebu68806zZcsWs2LFCtOvX7+Aewh16tQp4LknTpxo0tPTzfLly81///tfs2rVKrNkyRJjjDG7du0y3bp1M3fccYf59NNPzddff21Wrlxpfvazn5mTJ0822EtpaalJSEgwb7/9tjHGmMWLF5uOHTuar7/+utH+q6qqTJcuXcxtt91m1q9fb7Zu3WpeffVV8+WXXwbVf01NjenRo4e5/fbbzcaNG82HH35oLrroIjNhwgT/c0yYMMHccsst9Z738OHDpmvXrubuu+82mzZtMu+884655JJLuIcQAACGfEI+AQC0ZAwcAh6yefNmM2rUKNOtWzeTmJho+vbta55//nn/9lOnTplZs2aZnj17mrZt25rs7Gzzz3/+s94xPvroI5OZmWmSkpJMbm6uWbZsWVDB/IcffjC/+tWvTI8ePUxCQoK55JJLzF/+8hf/9q1bt5pbb73VdO7c2bRr185cdtllZsqUKaaurq7BY2VkZJgHHnig3vpbb73VDBs2rNEwb4wxGzZsMHl5eaZ9+/amY8eOJjc31x/mg+n/iy++MCNGjDBJSUkmJSXF3H///ebw4cP+7Q0Fc2OM+fjjj012drZJSEgwAwcONG+++SbBHAAAQz4xhnwCAGi5fMZwcwsAAAAAAAAA9XGPQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEOD/AdFFolX5J4enAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", + "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap2.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "fig.subplots_adjust(right=0.8)\n", + "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", + "fig.colorbar(cs1, cax=cbar_ax)\n", + "\n", + "\n", + "ax1.set_xscale('log')\n", + "ax1.set_yscale('log')\n", + "ax1.set_xlabel(\"source x-coord\")\n", + "ax1.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "ax2.set_xscale('log')\n", + "ax2.set_yscale('log')\n", + "ax2.set_xlabel(\"source x-coord\")\n", + "ax2.set_ylabel(\"source y-coord\")\n", + "\n", + "ax1.set_title('8-Term Taylor Series, Order 5, Laplace Rel. Err')\n", + "ax2.set_title('8-Term Taylor Series, Order 12, Laplace Rel. Err')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Compare with Predicted Taylor Error" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[log(sqrt(x1**2)), 0, x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0],\n", + " [0, -1/x1**2, 0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8],\n", + " [x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0],\n", + " [0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10],\n", + " [-6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0],\n", + " [0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12],\n", + " [120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0, -39916800/x1**12, 0],\n", + " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "true_grid_lap" ] }, { @@ -874,7 +1001,10 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "def predicted_taylor_error(loc):\n", + " " + ] } ], "metadata": { From 24262ea34d81fd5e83463a0b0b1e27e73bf7362e Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 25 Jan 2025 09:56:58 -0600 Subject: [PATCH 140/193] Added additional notebook --- test/plot_normal_recurrence.ipynb | 6 +- test/testing_pde_to_ode.ipynb | 127 ++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 test/testing_pde_to_ode.ipynb diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb index 8eccbe065..f14ffa13f 100644 --- a/test/plot_normal_recurrence.ipynb +++ b/test/plot_normal_recurrence.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -13,7 +13,7 @@ " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence\n", + "from sumpy.recurrence import get_recurrence, _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb new file mode 100644 index 000000000..23764dbf6 --- /dev/null +++ b/test/testing_pde_to_ode.ipynb @@ -0,0 +1,127 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "\n", + "from sumpy.recurrence import get_recurrence, _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x\n", + "\n", + "import sympy as sp\n", + "from sympy import hankel1\n", + "\n", + "import numpy as np\n", + "\n", + "import math\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm, ticker" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.expansion.diff_op import DerivativeIdentifier, LinearPDESystemOperator\n", + "from immutabledict import immutabledict" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "def get_ode_in_x(x_order, y_order):\n", + " single_partial = DerivativeIdentifier((x_order,y_order), 0)\n", + " #Coefficients\n", + " list_pde_dict = immutabledict({single_partial: 1})\n", + " random_pde = LinearPDESystemOperator(2,(list_pde_dict,))\n", + "\n", + " ode_in_r_random, var, ode_order_random = pde_to_ode_in_r(random_pde)\n", + " ode_in_x_random = ode_in_r_to_x(ode_in_r_random, var, ode_order_random).simplify()\n", + "\n", + " return ode_in_x_random" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "size = 3\n", + "table = []\n", + "for i in range(size):\n", + " temp = []\n", + " for j in range(size):\n", + " temp.append(get_ode_in_x(i, j))\n", + " table.append(temp)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[f_x0, f_x1*x1/x0, (f_x1*x0**2 - f_x1*x1**2 + f_x2*x0*x1**2)/x0**3],\n", + " [f_x1,\n", + " x1*(-f_x1 + f_x2*x0)/x0**2,\n", + " (-f_x1*x0**2 + 3*f_x1*x1**2 + f_x2*x0**3 - 3*f_x2*x0*x1**2 + f_x3*x0**2*x1**2)/x0**4],\n", + " [f_x2,\n", + " x1*(2*f_x1 - 2*f_x2*x0 + f_x3*x0**2)/x0**3,\n", + " (2*f_x1*x0**2 - 12*f_x1*x1**2 - 2*f_x2*x0**3 + 12*f_x2*x0*x1**2 + f_x3*x0**4 - 5*f_x3*x0**2*x1**2 + f_x4*x0**3*x1**2)/x0**5]]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From e33c5c388d78524869e54f50a3070d0c9b6cfeab Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 26 Jan 2025 13:48:42 -0600 Subject: [PATCH 141/193] Update testing_pde_to_ode.ipynb --- test/testing_pde_to_ode.ipynb | 58 ++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index 23764dbf6..6df93276a 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -56,37 +56,47 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ - "size = 3\n", + "n_rows = 4\n", + "n_cols = 4\n", "table = []\n", - "for i in range(size):\n", + "for i in range(n_rows):\n", " temp = []\n", - " for j in range(size):\n", + " for j in range(n_cols):\n", " temp.append(get_ode_in_x(i, j))\n", " table.append(temp)" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[[f_x0, f_x1*x1/x0, (f_x1*x0**2 - f_x1*x1**2 + f_x2*x0*x1**2)/x0**3],\n", + "[[f_x0,\n", + " f_x1*x1/x0,\n", + " (f_x1*x0**2 - f_x1*x1**2 + f_x2*x0*x1**2)/x0**3,\n", + " x1*(-3*f_x1*x0**2 + 3*f_x1*x1**2 + 3*f_x2*x0**3 - 3*f_x2*x0*x1**2 + f_x3*x0**2*x1**2)/x0**5],\n", " [f_x1,\n", " x1*(-f_x1 + f_x2*x0)/x0**2,\n", - " (-f_x1*x0**2 + 3*f_x1*x1**2 + f_x2*x0**3 - 3*f_x2*x0*x1**2 + f_x3*x0**2*x1**2)/x0**4],\n", + " (-f_x1*x0**2 + 3*f_x1*x1**2 + f_x2*x0**3 - 3*f_x2*x0*x1**2 + f_x3*x0**2*x1**2)/x0**4,\n", + " x1*(9*f_x1*x0**2 - 15*f_x1*x1**2 - 9*f_x2*x0**3 + 15*f_x2*x0*x1**2 + 3*f_x3*x0**4 - 6*f_x3*x0**2*x1**2 + f_x4*x0**3*x1**2)/x0**6],\n", " [f_x2,\n", " x1*(2*f_x1 - 2*f_x2*x0 + f_x3*x0**2)/x0**3,\n", - " (2*f_x1*x0**2 - 12*f_x1*x1**2 - 2*f_x2*x0**3 + 12*f_x2*x0*x1**2 + f_x3*x0**4 - 5*f_x3*x0**2*x1**2 + f_x4*x0**3*x1**2)/x0**5]]" + " (2*f_x1*x0**2 - 12*f_x1*x1**2 - 2*f_x2*x0**3 + 12*f_x2*x0*x1**2 + f_x3*x0**4 - 5*f_x3*x0**2*x1**2 + f_x4*x0**3*x1**2)/x0**5,\n", + " x1*(-36*f_x1*x0**2 + 90*f_x1*x1**2 + 36*f_x2*x0**3 - 90*f_x2*x0*x1**2 - 15*f_x3*x0**4 + 39*f_x3*x0**2*x1**2 + 3*f_x4*x0**5 - 9*f_x4*x0**3*x1**2 + f_x5*x0**4*x1**2)/x0**7],\n", + " [f_x3,\n", + " x1*(-6*f_x1 + 6*f_x2*x0 - 3*f_x3*x0**2 + f_x4*x0**3)/x0**4,\n", + " (-6*f_x1*x0**2 + 60*f_x1*x1**2 + 6*f_x2*x0**3 - 60*f_x2*x0*x1**2 - 3*f_x3*x0**4 + 27*f_x3*x0**2*x1**2 + f_x4*x0**5 - 7*f_x4*x0**3*x1**2 + f_x5*x0**4*x1**2)/x0**6,\n", + " x1*(180*f_x1*x0**2 - 630*f_x1*x1**2 - 180*f_x2*x0**3 + 630*f_x2*x0*x1**2 + 81*f_x3*x0**4 - 285*f_x3*x0**2*x1**2 - 21*f_x4*x0**5 + 75*f_x4*x0**3*x1**2 + 3*f_x5*x0**6 - 12*f_x5*x0**4*x1**2 + f_x6*x0**5*x1**2)/x0**8]]" ] }, - "execution_count": 30, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -95,6 +105,32 @@ "table" ] }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{f_r0: f_x0,\n", + " f_r1: f_x1*sqrt(x0**2 + x1**2)/x0,\n", + " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2,\n", + " f_r3: 3*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**5 - 3*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**4 + f_x3*sqrt(x0**2 + x1**2)/x0 + f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**3,\n", + " f_r4: -12*f_x1*x1**2/x0**5 - 15*f_x1*x1**4/x0**7 + 12*f_x2*x1**2/x0**4 + 15*f_x2*x1**4/x0**6 - 6*f_x3*x1**2/x0**3 - 6*f_x3*x1**4/x0**5 + f_x4 + 2*f_x4*x1**2/x0**2 + f_x4*x1**4/x0**4,\n", + " f_r5: 60*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**7 + 105*f_x1*x1**4*sqrt(x0**2 + x1**2)/x0**9 - 60*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**6 - 105*f_x2*x1**4*sqrt(x0**2 + x1**2)/x0**8 + 30*f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**5 + 45*f_x3*x1**4*sqrt(x0**2 + x1**2)/x0**7 - 10*f_x4*x1**2*sqrt(x0**2 + x1**2)/x0**4 - 10*f_x4*x1**4*sqrt(x0**2 + x1**2)/x0**6 + f_x5*sqrt(x0**2 + x1**2)/x0 + 2*f_x5*x1**2*sqrt(x0**2 + x1**2)/x0**3 + f_x5*x1**4*sqrt(x0**2 + x1**2)/x0**5}" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "_generate_nd_derivative_relations(var, 5)" + ] + }, { "cell_type": "code", "execution_count": null, From 9ab8efd8b548b894b3addb1364268a438d3e00e0 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 26 Jan 2025 23:23:28 -0600 Subject: [PATCH 142/193] Update testing_pde_to_ode.ipynb --- test/testing_pde_to_ode.ipynb | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index 6df93276a..c552b939c 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -36,6 +36,32 @@ "from immutabledict import immutabledict" ] }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{f_r0: f_x0,\n", + " f_r1: f_x1*sqrt(x0**2 + x1**2)/x0,\n", + " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2,\n", + " f_r3: 3*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**5 - 3*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**4 + f_x3*sqrt(x0**2 + x1**2)/x0 + f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**3,\n", + " f_r4: -12*f_x1*x1**2/x0**5 - 15*f_x1*x1**4/x0**7 + 12*f_x2*x1**2/x0**4 + 15*f_x2*x1**4/x0**6 - 6*f_x3*x1**2/x0**3 - 6*f_x3*x1**4/x0**5 + f_x4 + 2*f_x4*x1**2/x0**2 + f_x4*x1**4/x0**4,\n", + " f_r5: 60*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**7 + 105*f_x1*x1**4*sqrt(x0**2 + x1**2)/x0**9 - 60*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**6 - 105*f_x2*x1**4*sqrt(x0**2 + x1**2)/x0**8 + 30*f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**5 + 45*f_x3*x1**4*sqrt(x0**2 + x1**2)/x0**7 - 10*f_x4*x1**2*sqrt(x0**2 + x1**2)/x0**4 - 10*f_x4*x1**4*sqrt(x0**2 + x1**2)/x0**6 + f_x5*sqrt(x0**2 + x1**2)/x0 + 2*f_x5*x1**2*sqrt(x0**2 + x1**2)/x0**3 + f_x5*x1**4*sqrt(x0**2 + x1**2)/x0**5}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "_generate_nd_derivative_relations(var, 5)" + ] + }, { "cell_type": "code", "execution_count": 3, From 21bb2e432f7de245544e25da748f34b92a9d2943 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 6 Feb 2025 10:28:19 -0600 Subject: [PATCH 143/193] Update testing_pde_to_ode.ipynb --- test/testing_pde_to_ode.ipynb | 104 ++++++++++++++++++++++++++++++---- 1 file changed, 93 insertions(+), 11 deletions(-) diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index c552b939c..a3ff70e39 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -52,7 +52,7 @@ " f_r5: 60*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**7 + 105*f_x1*x1**4*sqrt(x0**2 + x1**2)/x0**9 - 60*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**6 - 105*f_x2*x1**4*sqrt(x0**2 + x1**2)/x0**8 + 30*f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**5 + 45*f_x3*x1**4*sqrt(x0**2 + x1**2)/x0**7 - 10*f_x4*x1**2*sqrt(x0**2 + x1**2)/x0**4 - 10*f_x4*x1**4*sqrt(x0**2 + x1**2)/x0**6 + f_x5*sqrt(x0**2 + x1**2)/x0 + 2*f_x5*x1**2*sqrt(x0**2 + x1**2)/x0**3 + f_x5*x1**4*sqrt(x0**2 + x1**2)/x0**5}" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -64,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -82,12 +82,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "n_rows = 4\n", - "n_cols = 4\n", + "n_rows = 1\n", + "n_cols = 1\n", "table = []\n", "for i in range(n_rows):\n", " temp = []\n", @@ -141,10 +141,7 @@ "text/plain": [ "{f_r0: f_x0,\n", " f_r1: f_x1*sqrt(x0**2 + x1**2)/x0,\n", - " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2,\n", - " f_r3: 3*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**5 - 3*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**4 + f_x3*sqrt(x0**2 + x1**2)/x0 + f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**3,\n", - " f_r4: -12*f_x1*x1**2/x0**5 - 15*f_x1*x1**4/x0**7 + 12*f_x2*x1**2/x0**4 + 15*f_x2*x1**4/x0**6 - 6*f_x3*x1**2/x0**3 - 6*f_x3*x1**4/x0**5 + f_x4 + 2*f_x4*x1**2/x0**2 + f_x4*x1**4/x0**4,\n", - " f_r5: 60*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**7 + 105*f_x1*x1**4*sqrt(x0**2 + x1**2)/x0**9 - 60*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**6 - 105*f_x2*x1**4*sqrt(x0**2 + x1**2)/x0**8 + 30*f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**5 + 45*f_x3*x1**4*sqrt(x0**2 + x1**2)/x0**7 - 10*f_x4*x1**2*sqrt(x0**2 + x1**2)/x0**4 - 10*f_x4*x1**4*sqrt(x0**2 + x1**2)/x0**6 + f_x5*sqrt(x0**2 + x1**2)/x0 + 2*f_x5*x1**2*sqrt(x0**2 + x1**2)/x0**3 + f_x5*x1**4*sqrt(x0**2 + x1**2)/x0**5}" + " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2}" ] }, "execution_count": 10, @@ -154,7 +151,92 @@ ], "source": [ "var = _make_sympy_vec(\"x\", 2)\n", - "_generate_nd_derivative_relations(var, 5)" + "_generate_nd_derivative_relations(var, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + "k = 1\n", + "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + "derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(6)]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "times = []\n", + "n_d = 8\n", + "for i in range(n_d):\n", + " start = time.time()\n", + " sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " end = time.time()\n", + " times.append(end-start)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "x_a = np.array([i+1 for i in range(n_d)])\n", + "times = np.array(times)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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dejQoUiXFRYZGRk9voj4ySefjHRpYfHpp5/qmWeeUWZmpuLj43Xbbbfp2WefDbyEOdxCusLujeLy5cv627/9Wz3yyCP61re+Felywm7//v168skn9dWvflWffvqp1qxZo9mzZ+vEiRMaMWJEpMsLudGjR+vHP/6xvvzlL0uStmzZonvvvVdHjhzRuHHjIlxd+NXU1GjTpk264447Il1KWI0bN05//vOfA/uxsbERrCb8Lly4oK997WuaMWOG9u7dq6SkJJ0+fVq33nprpEsLi5qaGrW3twf2a2trNWvWrC6vu7mRlZeX6xe/+IW2bNmicePG6eDBg3rkkUfkdDq1dOnSsNdDeBmAOXPmaM6cOZEuI2L27dvXZX/z5s1KSkrSoUOH9Pd///cRqip8CgsLu+yvW7dOFRUVeuedd6IuvFy6dEkPPvigfvWrX2nt2rWRLieshg0bFpW9LZ3Ky8uVmpqqzZs3B45lZGRErqAw+9KXvtRl/8c//rGysrKUn58foYrC68CBA7r33nt19913S7r2v/2//du/6eDBgxGph2EjBK3zXVSjRo2KcCXh197erh07dujy5cvKy8uLdDlh9+STT+ruu+/WN77xjUiXEnYnT55USkqKMjMzVVRUpPfeey/SJYXV7373O02aNEkPPPCAkpKSNGHCBP3qV7+KdFkRcfXqVW3btk2PPvrooL8AeKiaNm2a/uM//kPvvvuuJOmvf/2r3nrrLf3DP/xDROqh5wVBsSxLTz/9tKZNm6bc3NxIlxM2x44dU15entra2nTLLbdo9+7dysnJiXRZYbVjxw4dPnxYNTU1kS4l7KZMmaKtW7dq7Nix+vDDD7V27VrdddddOn78uBITEyNdXli89957qqio0NNPP60f/vCHqq6u1j//8z/LbrfrO9/5TqTLC6vf/va3unjxohYuXBjpUsJm5cqV8nq9ys7OVmxsrNrb27Vu3Tr90z/9U0TqIbwgKEuWLNF//dd/6a233op0KWH1N3/zNzp69KguXryoXbt26eGHH9b+/fujJsA0NDRo6dKlqqysVFxcXKTLCbvPDht/5StfUV5enrKysrRlyxY9/fTTEawsfDo6OjRp0iStX79ekjRhwgQdP35cFRUVURdefv3rX2vOnDlKSUmJdClhs3PnTm3btk3bt2/XuHHjdPToUS1btkwpKSl6+OGHw14P4QUD9v3vf1+/+93v9Oabb2r06NGRLiesbr755sCE3UmTJqmmpkb/+q//ql/+8pcRriw8Dh06pObmZt15552BY+3t7XrzzTe1ceNG+f3+qJrAOmLECH3lK1/RyZMnI11K2Hg8nm5h/fbbb9euXbsiVFFknD17Vn/+85/16quvRrqUsPrBD36gVatWqaioSNK1EH/27FmVlZURXjA0WZal73//+9q9e7eqqqqUmZkZ6ZIizrIs+f3+SJcRNl//+td17NixLsceeeQRZWdna+XKlVEVXCTJ7/frv//7v/V3f/d3kS4lbL72ta91WyLh3XffVXp6eoQqiozOBxY6J65Gi48//lgxMV2nycbGxvKo9FB26dIlnTp1KrBfX1+vo0ePatSoUUpLS4tgZeHx5JNPavv27XrttdfkcDjU1NQkSXI6nYqPj49wdaH3wx/+UHPmzFFqaqpaW1u1Y8cOVVVVdXsK60bmcDi6zXEaMWKEEhMTo2Lu0/Lly1VYWKi0tDQ1Nzdr7dq18vl8Efkvzkh56qmndNddd2n9+vX6x3/8R1VXV2vTpk3atGlTpEsLm46ODm3evFkPP/ywhg2Lrp/PwsJCrVu3TmlpaRo3bpyOHDmiDRs26NFHH41MQRb69Ze//MWS1G17+OGHI11aWPR075KszZs3R7q0sHj00Uet9PR06+abb7a+9KUvWV//+tetysrKSJcVcfn5+dbSpUsjXUZYfPvb37Y8Ho910003WSkpKda8efOs48ePR7qssNuzZ4+Vm5tr2e12Kzs729q0aVOkSwqrP/3pT5Ykq66uLtKlhJ3P57OWLl1qpaWlWXFxcdZtt91mrVmzxvL7/RGpx2ZZlhWZ2AQAABA81nkBAABGIbwAAACjEF4AAIBRCC8AAMAohBcAAGAUwgsAADAK4QUAABiF8AIAAIxCeAEAAEYhvAAAAKMQXgAAgFEILwAAwCj/H3ci9oGUxxGCAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.scatter(x_a,np.log(times))" ] }, { From 7dd3f9184e91251a8a0470e3094c83a485c870c3 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 14 Feb 2025 20:44:08 -0600 Subject: [PATCH 144/193] Cleaned up plot taylor --- test/plot_taylor_recurrence.ipynb | 858 ++++++------------------------ test/testing_pde_to_ode.ipynb | 340 +++++++++--- 2 files changed, 413 insertions(+), 785 deletions(-) diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 9f2392631..53f72d6a4 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -50,19 +50,6 @@ "execution_count": 3, "metadata": {}, "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "\n", - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], "source": [ "def compute_derivatives(p):\n", " var = _make_sympy_vec(\"x\", 2)\n", @@ -76,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -92,74 +79,25 @@ " return derivs_helmholtz" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Step 1: Get recurrence as expression that evaluates to 0 and sanity check it" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "4" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "recur_lap, order_lap = get_shifted_recurrence_exp_from_pde(laplace2d)\n", - "order_lap" - ] - }, { "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle -2.22044604925031 \\cdot 10^{-16}$" - ], - "text/plain": [ - "-2.22044604925031e-16" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#Sanity check that recurrence is correct\n", - "derivs_lap = compute_derivatives(15)\n", - "exp = recur_lap.subs(n, 4)\n", - "exp.subs(s(4), derivs_lap[4]).subs(s(3), derivs_lap[3]).subs(s(2), derivs_lap[2]).subs(s(1), derivs_lap[1]).subs(var[0],np.random.rand()).subs(var[1],np.random.rand())" - ] - }, - { - "cell_type": "markdown", + "execution_count": 5, "metadata": {}, + "outputs": [], "source": [ - "## Step 2: After performing a Taylor expansion of the $s(n), s(n-1), \\dots$ in the 1D recurrence we need to create a 2D grid of coefficients \n", - "$$\n", - "grid[i, j]\n", - "$$\n", - "Where $i = 0$ represents the coefficient attached to $s(n)$ and $i = 1$ represents $s(n-1)$, etc. and the $j$ is for the polynomial in $x_0$." + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "\n", + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "\n", + "derivs_lap = compute_derivatives(8)\n", + "derivs_helm = compute_derivatives_h2d(8)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -171,63 +109,8 @@ " for i in range(len(coeff_s_n)):\n", " table.append(sp.poly(coeff_s_n[i], var[0]).all_coeffs()[::-1])\n", "\n", - " return table" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[0, (-1)**n*x1**2, 0, (-1)**n],\n", - " [-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2, 0, -3*(-1)**n*n + 5*(-1)**n],\n", - " [0, 3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n],\n", - " [-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n]]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "grid = get_grid(recur_lap, order_lap)\n", - "grid" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Step 3: Grid of Coefficient to Grid Recurrence\n", - "$$\n", - "f(x_1) x_0^k s(n-j) \\to f(x_1) x_0^k \\sum_{i=0}^{\\infty} s_{n-j,i} \\frac{x_0^i}{i!} = f(x_1) \\sum_{i=k}^{\\infty} s_{n-j,i-k} \\frac{x_0^i}{(i-k)!} \n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(-1\\right)^{n} x_{1}^{2} s{\\left(n,i - 1 \\right)}}{\\left(i - 1\\right)!} + \\frac{\\left(-1\\right)^{n} s{\\left(n,i - 3 \\right)}}{\\left(i - 3\\right)!} + \\frac{\\left(- 3 \\left(-1\\right)^{n} n + 5 \\left(-1\\right)^{n}\\right) s{\\left(n - 1,i - 2 \\right)}}{\\left(i - 2\\right)!} + \\frac{\\left(- \\left(-1\\right)^{n} n x_{1}^{2} + 3 \\left(-1\\right)^{n} x_{1}^{2}\\right) s{\\left(n - 1,i \\right)}}{i!} + \\frac{\\left(3 \\left(-1\\right)^{n} n^{2} - 13 \\left(-1\\right)^{n} n + 14 \\left(-1\\right)^{n}\\right) s{\\left(n - 2,i - 1 \\right)}}{\\left(i - 1\\right)!} + \\frac{\\left(- \\left(-1\\right)^{n} n^{3} + 8 \\left(-1\\right)^{n} n^{2} - 21 \\left(-1\\right)^{n} n + 18 \\left(-1\\right)^{n}\\right) s{\\left(n - 3,i \\right)}}{i!}$" - ], - "text/plain": [ - "(-1)**n*x1**2*s(n, i - 1)/factorial(i - 1) + (-1)**n*s(n, i - 3)/factorial(i - 3) + (-3*(-1)**n*n + 5*(-1)**n)*s(n - 1, i - 2)/factorial(i - 2) + (-(-1)**n*n*x1**2 + 3*(-1)**n*x1**2)*s(n - 1, i)/factorial(i) + (3*(-1)**n*n**2 - 13*(-1)**n*n + 14*(-1)**n)*s(n - 2, i - 1)/factorial(i - 1) + (-(-1)**n*n**3 + 8*(-1)**n*n**2 - 21*(-1)**n*n + 18*(-1)**n)*s(n - 3, i)/factorial(i)" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ + " return table\n", + "\n", "def convert(grid):\n", " recur_exp = 0\n", " i = sp.symbols(\"i\")\n", @@ -238,32 +121,7 @@ " if grid[j][k] != 0:\n", " s_terms.append((j,k))\n", " return recur_exp, s_terms\n", - "grid_recur, s_terms = convert(grid)\n", - "s_terms\n", - "grid_recur" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Step 4: Translate grid recurrence to column recurrence\n", - "We can use the fact\n", - "$$\n", - "s_{n, i} = s_{n-j, i+j} (-1)^j\n", - "$$\n", - "to perform the following translation:\n", - "$$\n", - "s_{x, i-l} \\to s_{x+l, i} (-1)^l\n", - "$$" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ + "\n", "def grid_recur_to_column_recur(grid_recur, s_terms):\n", " grid_recur_simp = grid_recur\n", " bag = set()\n", @@ -271,46 +129,8 @@ " bag.add(-((0-s_t[0])-s_t[1]))\n", " grid_recur_simp = grid_recur_simp.subs(s(n-s_t[0],i-s_t[1]), (-1)**(s_t[1])*s((n-s_t[0])-s_t[1],(i-s_t[1])+s_t[1]))\n", " shift = min(bag)\n", - " return sp.solve(sp.simplify(grid_recur_simp * sp.factorial(i)).subs(n, n+shift), s(n,i))[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "column_recur = grid_recur_to_column_recur(grid_recur, s_terms)\n", - "column_recur" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Part 5: Package into Big Function:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ + " return sp.solve(sp.simplify(grid_recur_simp * sp.factorial(i)).subs(n, n+shift), s(n,i))[0]\n", + "\n", "def get_taylor_recurrence(pde):\n", " recur, order = get_shifted_recurrence_exp_from_pde(pde)\n", " grid = get_grid(recur, order)\n", @@ -321,97 +141,7 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\left(- i^{2} - 2 i n + 3 i - n^{2} + 3 n - 2\\right) s{\\left(n - 2,i \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "(-i**2 - 2*i*n + 3*i - n**2 + 3*n - 2)*s(n - 2, i)/x1**2" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "get_taylor_recurrence(laplace2d)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{- 8 s{\\left(-1,2 \\right)} - 12 s{\\left(1,2 \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "(-8*s(-1, 2) - 12*s(1, 2))/x1**2" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "get_taylor_recurrence(helmholtz2d).subs(i, 2).subs(n, 3)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Part 6: Check Edge Cases for Grid Recurrence" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Laplace" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[log(sqrt(x1**2)), 0, x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0],\n", - " [0, -1/x1**2, 0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8],\n", - " [x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0],\n", - " [0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10],\n", - " [-6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0],\n", - " [0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12],\n", - " [120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0, -39916800/x1**12, 0],\n", - " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "width_lap_grid = 8\n", - "length_lap_grid = 8\n", - "true_grid_lap = [[sp.diff(derivs_lap[i], var[0], j).subs(var[0], 0) for j in range(width_lap_grid)] for i in range(length_lap_grid)]\n", - "true_grid_lap" - ] - }, - { - "cell_type": "code", - "execution_count": 17, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -434,37 +164,7 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[0.182321556793955, 0, 0.694444444444445, 0, -2.89351851851852, 0],\n", - " [0, -0.694444444444445, 0, 2.89351851851852, 0, -40.1877572016461]]" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "coord_dict = {var[0]: 1e-1, var[1]: 1.2}\n", - "initial_grid_subs_laplace = create_subs_grid(6, 2, derivs_lap, coord_dict)\n", - "initial_grid_subs_laplace" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Package into Function" - ] - }, - { - "cell_type": "code", - "execution_count": 19, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -494,144 +194,7 @@ }, { "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[0.182321556793955, 0, 0.694444444444445, 0, -2.89351851851852, 0],\n", - " [0, -0.694444444444445, 0, 2.89351851851852, 0, -40.1877572016461],\n", - " [0.694444444444445, 0, -2.89351851851852, 0, 40.1877572016461, 0],\n", - " [0, 2.89351851851852, 0, -40.1877572016461, 0, 1172.14291838134],\n", - " [-2.89351851851852, 0, 40.1877572016461, 0, -1172.14291838134, 0],\n", - " [0, -40.1877572016461, 0, 1172.14291838134, 0, -58607.1459190672],\n", - " [40.1877572016461, 0, -1172.14291838134, 0, 58607.1459190672, 0],\n", - " [0, 1172.14291838134, 0, -58607.1459190672, 0, 4476934.75770653]]" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "extend_grid(initial_grid_subs_laplace, get_taylor_recurrence(laplace2d), coord_dict, 8, 2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Helmholtz" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[0.25*I*hankel1(0, 1.0*sqrt(x1**2)),\n", - " 0,\n", - " 0.25*I*(0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2),\n", - " 0],\n", - " [0,\n", - " -0.25*I*(hankel1(-1, 1.0*sqrt(x1**2))/2 - hankel1(1, 1.0*sqrt(x1**2))/2)/sqrt(x1**2),\n", - " 0,\n", - " I*(-(0.75*(0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - 0.75*(0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) + 0.375*(hankel1(-1, 1.0*sqrt(x1**2)) - hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2))],\n", - " [0.25*I*(0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2),\n", - " 0,\n", - " 0.25*I*(((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (1.0*hankel1(-1, 1.0*sqrt(x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**2),\n", - " 0],\n", - " [0,\n", - " 0.25*I*(-(1.0*(0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - 1.0*(0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) + (1.5*hankel1(-1, 1.0*sqrt(x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**2),\n", - " 0,\n", - " I*(0.75*((0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) + 0.75*((0.75*hankel1(-2, 1.0*sqrt(x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.75*hankel1(0, 1.0*sqrt(x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x1**2)))/sqrt(x1**2))/(x1**2)**(3/2) - 0.75*(3.0*hankel1(-1, 1.0*sqrt(x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(4.5*hankel1(-1, 1.0*sqrt(x1**2)) - 4.5*hankel1(1, 1.0*sqrt(x1**2)))/(x1**2)**(5/2) - 0.75*(((0.125*hankel1(-3, 1.0*sqrt(x1**2)) - 0.125*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - ((0.125*hankel1(-1, 1.0*sqrt(x1**2)) - 0.125*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.125*hankel1(1, 1.0*sqrt(x1**2)) - 0.125*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/sqrt(x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) - (0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(0, 1.0*sqrt(x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.5*hankel1(0, 1.0*sqrt(x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x1**2)))/(x1**2)**(3/2) + (0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x1**2)))/x1**2 - (0.25*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x1**2)))/x1**2)/sqrt(x1**2) - 0.75*((0.25*hankel1(-3, 1.0*sqrt(x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x1**2)))/sqrt(x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x1**2)))/sqrt(x1**2) + (0.25*hankel1(1, 1.0*sqrt(x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x1**2)))/sqrt(x1**2))/x1**2 + 1.5*(0.5*hankel1(-2, 1.0*sqrt(x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x1**2)))/x1**4 + 0.75*(1.0*hankel1(-2, 1.0*sqrt(x1**2)) - 2.0*hankel1(0, 1.0*sqrt(x1**2)) + 1.0*hankel1(2, 1.0*sqrt(x1**2)))/x1**4)]]" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs_helm = compute_derivatives_h2d(5)\n", - "width_helm_grid = 4\n", - "length_helm_grid = 4\n", - "true_grid_helm = [[sp.diff(derivs_helm[i], var[0], j).subs(var[0], 0) for j in range(width_helm_grid)] for i in range(length_helm_grid)]\n", - "true_grid_helm" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[-0.0220642410539192 + 0.191299421639492*I,\n", - " 0,\n", - " -0.195303205325072 - 0.110012646436233*I,\n", - " 0],\n", - " [0,\n", - " 0.195303205325072 + 0.110012646436233*I,\n", - " 0,\n", - " -1.23801195511219 - 0.0861776136989254*I],\n", - " [-0.195303205325072 - 0.110012646436233*I,\n", - " 0,\n", - " 1.23801195511219 + 0.0861776136989254*I,\n", - " 0],\n", - " [0,\n", - " -1.23801195511219 - 0.0861776136989254*I,\n", - " 0,\n", - " 21.8306910223677 + 0.0733625774350065*I]]" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "coord_dict = {var[1]: 1}\n", - "initial_grid_subs_helmholtz = create_subs_grid(4, 4, derivs_helm, coord_dict)\n", - "initial_grid_subs_helmholtz" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "extended_grid_helmholtz = extend_grid(initial_grid_subs_helmholtz, get_taylor_recurrence(helmholtz2d), coord_dict, 8, 4)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "inp_grid = np.array(extended_grid_helmholtz, dtype=complex)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "r, c = inp_grid.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 26, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -641,16 +204,9 @@ " return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i/math.factorial(i) for i in range(c)]), (1, c)), axis = 1)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Step Final: Create an Interface that Ignores the Taylor Series Grid Structure" - ] - }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -665,16 +221,9 @@ " return compute_taylor_lp(extended_grid, coord_dict_t)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Test for Laplace 2D" - ] - }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -689,62 +238,23 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def compute_error_coord_tg(loc, pde, derivs_list, n_of_derivs, taylor_order, recur_order):\n", " exp = compute_lp_orders(pde, loc, n_of_derivs+1, derivs_list, recur_order, taylor_order)\n", " coord_dict_test = {var[0]: loc[0], var[1]: loc[1]}\n", - " true = evaluate_true(coord_dict_test, n_of_derivs+1, derivs_lap)\n", + " true = evaluate_true(coord_dict_test, n_of_derivs+1, derivs_list)\n", "\n", - " return (np.abs(exp[-1]-true[-1])/np.abs(true[-1])), np.abs(true[-1])" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.00263326606293773, 1.1189464838020401e+36)" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loc = np.array([1e-8, 1e-7])\n", - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 5, 4, 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.0466919192638915, 3.383586130424191e+59)" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "compute_error_coord_tg(loc, laplace2d, derivs_lap, 8, 4, 2)" + " print((np.abs(exp[-1]-true[-1]).evalf()/np.abs(true[-1])).evalf())\n", + "\n", + " return (np.abs(exp[-1]-true[-1]).evalf()/np.abs(true[-1])).evalf()" ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -758,29 +268,7 @@ " if abs(x_grid[i]) == abs(y_grid[j]):\n", " plot_me[i, j] = 1e-16\n", " else:\n", - " plot_me[i,j], _ = compute_error_coord_tg(np.array([x_grid[i],y_grid[j]]), pde, derivs, order_plot, taylor_order, recur_order)\n", - " if plot_me[i,j] == 0:\n", - " plot_me[i, j] = 1e-16\n", - " return x_grid, y_grid, plot_me" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [], - "source": [ - "def generate_grid_abs(res, order_plot, pde, derivs, taylor_order, recur_order):\n", - " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " res=len(x_grid)\n", - " plot_me = np.empty((res, res))\n", - " for i in range(res):\n", - " for j in range(res):\n", - " if abs(x_grid[i]) == abs(y_grid[j]):\n", - " plot_me[i, j] = 1e-16\n", - " else:\n", - " _, plot_me[i,j] = compute_error_coord_tg(np.array([x_grid[i],y_grid[j]]), pde, derivs, order_plot, taylor_order, recur_order)\n", + " plot_me[i,j] = compute_error_coord_tg(np.array([x_grid[i],y_grid[j]]), pde, derivs, order_plot, taylor_order, recur_order)\n", " if plot_me[i,j] == 0:\n", " plot_me[i, j] = 1e-16\n", " return x_grid, y_grid, plot_me" @@ -788,147 +276,156 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "x_grid, y_grid, plot_me_lap1 = generate_error_grid(8, 5, laplace2d, derivs_lap, 8, 2)\n", - "x_grid, y_grid, plot_me_lap2 = generate_error_grid(8, 12, laplace2d, derivs_lap, 8, 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, + "execution_count": 18, "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_21336/3879067914.py:2: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap2.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_21336/3879067914.py:4: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" + "0.00184871819382009\n", + "4.75098133319462e-8\n", + "1.27376775023898e-12\n", + "1.24084614178700e-16\n", + "1.60573991798823e-16\n", + "6.23381244320551e-16\n", + "5.37798696669397e-16\n", + "26177090592573.4\n", + "0.00184871819382012\n", + "4.75098141342560e-8\n", + "1.27451910300311e-12\n", + "0\n", + "8.37458627366846e-16\n", + "0\n", + "6.04988962786002e+24\n", + "26177090592573.7\n", + "0.00184871819381942\n", + "4.75098135453250e-8\n", + "1.27428262748819e-12\n", + "2.75523191325844e-16\n", + "3.56545885702053e-16\n", + "1.62179238320148e+36\n", + "6.04988962786031e+24\n", + "26177090592574.3\n", + "0.00184871819382027\n", + "4.75098138141641e-8\n", + "1.27461083449562e-12\n", + "0\n", + "4.35075881796626e+47\n", + "1.62179238320148e+36\n", + "6.04988962786018e+24\n", + "26177090592573.2\n", + "0.00184871819382014\n", + "4.75098142305268e-8\n", + "1.27420964404018e-12\n", + "1.16717621539488e+59\n", + "4.35075881796630e+47\n", + "1.62179238320142e+36\n", + "6.04988962785993e+24\n", + "26177090592573.6\n", + "0.00184871819382024\n", + "4.75098137391397e-8\n", + "3.13117872506618e+70\n", + "1.16717621539492e+59\n", + "4.35075881796626e+47\n", + "1.62179238320144e+36\n", + "6.04988962786018e+24\n", + "26177090592574.3\n", + "0.00184871819381974\n", + "8.40000000000000e+81\n", + "3.13117872506629e+70\n", + "1.16717621539490e+59\n", + "4.35075881796626e+47\n", + "1.62179238320148e+36\n", + "6.04988962786026e+24\n", + "26177090592573.7\n" ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABOEAAALACAYAAADVBWZCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACRf0lEQVR4nOzde3yT9f3//2eg9MChxVIpFNpSFJGCgJaqgAjoLJaDJ5xsKidBh8Qh1MNkzAN4qE5lTAmoE2GoKOKQKeMjVHGA4qEg9VT2nShalBakaAuoBcr794e/ZoQ0bdImzZXkcb/detty5cqVV1LaPn3mOtiMMUYAAAAAAAAAAqZZsAcAAAAAAAAAwh0lHAAAAAAAABBglHAAAAAAAABAgFHCAQAAAAAAAAFGCQcAAAAAAAAEGCUcAAAAAAAAEGCUcAAAAAAAAECAUcIBAAAAAAAAAUYJBwAAAAAAAAQYJZwPtm3bpssuu0wpKSlq2bKlTj/9dM2ZM0c//vijx8cMGTJENput3q977rmn6V6IF7yZ2Waz6d///rffnnPIkCEaMmSI37ZXlyNHjujJJ59Udna2EhMT1bJlS6Wnp+vSSy/VK6+84vfns9L32BijZcuW6YILLtBJJ52kmJgYde3aVXa7Xbt27Wr09r/66ivZbDYtWbKk8cN6wdO/zQcffLDB2+zSpYtGjhzpxym905Q/Aw21adMmxcTE6Ouvv3Yu8/b9aup/G+Fi6dKl+s1vfqPu3burWbNm6tKlS8Ceq0uXLrX+PE2ZMsVlvUWLFqlTp046dOhQwGaB98gn5JOGstL3ONzyybx583TFFVcoIyNDNpvN47+hlStX6re//a1OPfVUxcXFqUuXLrrmmmv0+eefN/i5//3vf8tms+nll19u8DYaIlT+zl933XW6+OKLnbd9eb/uuece2Wy2QI6HWpBPEE6igj1AqCguLtaAAQPUvXt3zZs3T0lJSdq4caPmzJmjrVu36p///Getj1uwYIEqKyudt//1r3/pvvvu0+LFi3X66ac7l3fu3Dngr8EX7777rsvte++9V2+99ZbWr1/vsjwzM7Mpx/KbsWPHauXKlZo+fbpmz56tmJgYffnll3r99de1du1aXX755X59vnfffdcS3+Njx47p6quv1vLly/Xb3/5WS5YsUUJCgj7++GM9/PDDWrZsmVavXq2BAwcGe1SfXHnllbrllltclqWlpQVpmvBljNH06dN1/fXXKz09PdjjRIxnn31WZWVlOvvss3Xs2DEdOXIkoM83cOBAPfLIIy7LkpOTXW6PHz9eDz30kP785z9r9uzZAZ0HdSOfkE8ag3wSOE888YRatWqlCy64QK+99prH9R566CF16NBBs2bNUteuXbVr1y498MADOuuss/Tee++pZ8+eTTh1+Nu2bZv+/ve/6/333w/2KPAR+QRhw8Ars2bNMpLMjh07XJbfcMMNRpLZv3+/V9tZvHixkWQKCwv9MtehQ4f8sp36jB8/3rRq1SqgzzF48GAzePBgv2zr2LFj5scff6z1vi+//NJIMnfddVet91dXVwd8hmB54IEHjCTz4IMPut1XVlZm0tPTTXJysvn+++/r3E5d/+527txpJJnFixc3ctpf/Pjjj+bYsWMe75dk7Ha7X56rRnp6uhkxYoRft+kNf/4MBMKaNWuMJPOf//zHZbm375e//21YiaefCV9/D1RVVZmdO3e6LDv+d9KIESNMenp6Q0b0ii//9h955BGTkJDQZH+HUDvyCfnEnzMESzjmk+O/Xz179vT4b2jPnj1uy7799lvTokULM2nSpAbN9tZbbxlJZsWKFQ16fEOFwt/5q666ypx77rkuy3x5v+6++24Tjv8JXdfvhfr+rZ9o9+7dpqKiwl+jGWPIJwgvHI7qpRYtWkiSEhISXJa3bdtWzZo1U3R0dKO2v3z5cvXv31+tWrVS69atNWzYMG3bts1lnQkTJqh169b65JNPlJOTozZt2ujCCy+U9MvhBDfddJMWL16s7t27Ky4uTv369dN7770nY4wefvhhZWRkqHXr1rrgggu0Y8eORs0rSQ6HQ+eff77at2+vVq1a6YwzztCf//xnl7007r33XkVFRdV6GMF1112ndu3a6eeff/b4HPv379fUqVPVqVMnRUdHq2vXrpo1a5aqqqpc1qt5/U888YR69OihmJgY/f3vf691m+Xl5ZKkjh071np/s2auPxaVlZW69dZblZGRoejoaHXq1EnTp0932825rhlqO9yjrKxMv/vd79S5c2dFR0crIyNDs2fP1tGjR13WW7hwofr06aPWrVurTZs2Ov300/XHP/7R43vmyeHDh/Xwww+rR48euv32293uT05OVn5+vvbs2aNFixY5lw8ZMkS9evXSxo0bNWDAALVs2VLXXXedJGn37t266qqr1KZNGyUkJGjMmDEqKyur9fm3bNmiSy65RImJiYqNjdWZZ56pl156yWWdJUuWyGazad26dbruuut08sknq2XLlm7fbysoKCjQpZdeqs6dOys2Nlannnqqfve732nfvn0u69UctrBt2zZdccUVio+PV0JCgq699lp999139T7P7Nmzdc455ygxMVHx8fE666yztGjRIhlj3NZdtmyZ+vfvr9atW6t169bq27evy/dSkt544w1deOGFio+PV8uWLTVw4EC9+eabXr3mhQsXKjs7W927d6/1/ldeeUW9e/dWbGysunbtqscee6zebU6YMKHWwytrO9zDGKMFCxaob9++iouL00knnaQrr7xSX375pVfze8Nfv4u9+V1U49ixY1q/fr2uv/56dejQQfPmzXO5/8TfSXX5/PPPdfXVV6t9+/aKiYlRjx495HA4vH68L6655hpVVlbqxRdfDMj24R3yiTvyCfnECvnE29/d7du3d1uWkpKizp07++Uw3Lp4mzFqTjvRkL/zO3bs0MSJE9WtWze1bNlSnTp10qhRo/TJJ5+4rfvDDz/olltuUdeuXRUTE6P27dtr+PDh+s9//uNc5/Dhw7rvvvt0+umnKyYmRieffLImTpzoVabas2ePXnnlFY0dO7bW+3/++Wfl5eWpQ4cOiouL0+DBg91+39XG02HdXbp00YQJE1yWefvz1VCN/b3Q0Cz+/fffa9GiRfrVr36lzp07u2Uz8glwnKBWgCFk586dpm3btubKK680X3zxhamsrDSvvfaaSUhIML///e+93k5tnzTff//9xmazmeuuu86sXr3arFy50vTv39+0atXKfPbZZ871xo8fb1q0aGG6dOli8vPzzZtvvmnWrl1rjPllb6D09HQzYMAAs3LlSvPKK6+Y0047zSQmJpoZM2aYSy+91Kxevdo8//zzJjk52fTu3dunTzRq+6R5xowZZuHCheb1118369evN3/5y19MUlKSmThxonOdPXv2mJiYGDNr1iyXx5aXl5u4uDhz2223OZed+EnzTz/9ZHr37m1atWplHnnkEbNu3Tpz5513mqioKDN8+HCX7UkynTp1Mr179zbLli0z69evN59++mmtr+XgwYOmbdu2pkOHDubJJ5902+vkeIcOHTJ9+/Y1SUlJZu7cueaNN94wf/3rX01CQoK54IILXN7DumaQZO6++27nuqWlpSY1NdWkp6ebJ5980rzxxhvm3nvvNTExMWbChAnO9V544QUjyfz+978369atM2+88YZ54oknzLRp0zzO7MnmzZuNJPOHP/zB4zoHDhwwzZo1M8OGDXMuGzx4sElMTDSpqanm8ccfN2+99ZbZsGGD+fHHH02PHj1MQkKCefzxx83atWvNtGnTTFpamtunoOvXrzfR0dFm0KBBZvny5eb11183EyZMcFuv5uejU6dO5oYbbjD/93//Z15++WVz9OhRjzNLMieddJKJjY010dHR5qyzzjLPPPOMz+/P8bz5tG3hwoUmPz/fvPrqq2bDhg3m73//u+nTp4/p3r27OXz4sHO9mk9M09PTzW233WbWrl1r5s6da1q1amXOPPNMl3Vr29tiwoQJZtGiRaagoMAUFBSYe++918TFxZnZs2e7rHfnnXcaSeaKK64wK1asMOvWrTNz5841d955p3OdZ5991thsNnPZZZeZlStXmtdee82MHDnSNG/e3Lzxxht1vt6qqioTFxdnbr/99lrfr06dOpm0tDTzzDPPmDVr1phrrrnGSDIPP/ywc73aPiEfP358rXt21fZJ8/XXX29atGhhbrnlFvP666+bZcuWmdNPP90kJyebsrIy53rV1dXmyJEj9X6d+O/KX7+Lvf1d9P7775vp06ebjh07GknmrLPOMn/+85/NN9984/H7UNeecJ999plJSEgwZ5xxhlm6dKlZt26dueWWW0yzZs3MPffc43Gbx0tPTzdt2rQxrVu3NlFRUaZHjx7mkUce8fgz2KNHD3PFFVd4tW0EBvmEfEI+sWY+OV5de8LV5osvvjDNmjUzM2bM8Poxx/N2zy5vM0Zj/s5v2LDB3HLLLebll182GzZsMK+88oq57LLLTFxcnMue9ZWVlaZnz56mVatWZs6cOWbt2rXmH//4h7n55pvN+vXrjTG//H2/+OKLTatWrczs2bNNQUGBefrpp02nTp1MZmZmvXt4Ll261EgyxcXFtb5fqamp5tJLLzWvvfaaee6558ypp55q4uPjzRdffOFct7Z8cuLP0fHv2/jx4523vf35MsaYo0ePepVljt/j0h+/F3z5t37o0CHz4osvmksuucRER0ebuLg4M3r0aLNixQpTVVXlXI98AriihPPB9u3bzemnn24kOb+mTZvmU1g8MeSWlJSYqKgot6B84MAB06FDB3PVVVc5l40fP95IqrVgkGQ6dOhgDh486Fy2atUqI8n07dvXZcZ58+YZSebjjz/2eu76Dveo+Y/epUuXmubNm7sc/jJ+/HjTvn17l1/GDz30kGnWrJlLwDwx5D7xxBNGknnppZdcnuuhhx4yksy6detcXn9CQoLXh93861//MklJSc7vY7t27cyvf/1r8+qrr7qsl5+fb5o1a+Z2eM7LL79sJJk1a9Z4NcOJf5x/97vfmdatW5uvv/7aZb1HHnnESHL+x81NN91k2rZt69Vrqs+LL75oJJknnniizvWSk5NNjx49nLcHDx5sJJk333zTZb2FCxcaSeaf//yny/Lrr7/eLYCdfvrp5swzzzRHjhxxWXfkyJGmY8eOzgBR8/Mxbtw4r1/X1VdfbZ5//nmzceNG8/LLL5vc3FwjyfzpT3/yehsn8vVw1GPHjpkjR46Yr7/+2u09qQlrJwbp559/3kgyzz33nHNZfYc81fyczZkzx7Rr1875c/3ll1+a5s2bm2uuucbjYw8dOmQSExPNqFGj3LbZp08fc/bZZ9f5Gt9//30jybz44otu96WnpxubzWaKiopcll900UUmPj7eeThAY0q4d99910gyjz76qMt6u3btcisHax5b39fxz+vP38V1/S767LPPzJ/+9CdzyimnGEmmZ8+e5t577zWff/55reufqK4SbtiwYaZz585uh4DcdNNNJjY21qvfj1OnTjXPPPOM2bBhg1m1apXzP7KuvfbaWte/5pprTHJyslezI3DIJ+STGuQT6+ST4/lSwh05csQMGTLExMfHm5KSkgY9X0MOR/WUMYxp3N/5Ex09etQcPnzYdOvWzSUbzZkzx0gyBQUFHh9bU/7+4x//cFleWFhoJJkFCxbU+RpvvPFGExcX5/a7seb9Ouuss1zu++qrr0yLFi3M5MmTncsaU8J5+/NV81hvsszxz+uP3wv1/Vs/fPiwWb16tbn66qtNq1atTHR0tBk5cqR57rnnzIEDB2p9DPkEcMXhqF766quvNGrUKLVr104vv/yyNmzYoD//+c9asmSJJk+e7Fzv2LFjOnr0qPOrurq6zu2uXbtWR48e1bhx41weFxsbq8GDB9d6da/Ro0fXuq2hQ4eqVatWzts9evSQJOXm5roc1lWz/PirGzbEtm3bdMkll6hdu3Zq3ry5WrRooXHjxqm6ulr//e9/nevdfPPN2rt3r1asWCHpl/do4cKFGjFiRJ1X+Vu/fr1atWqlK6+80mV5zW7dJx5CV3M1LW8MHz5cJSUleuWVV3TrrbeqZ8+eWrVqlS655BLddNNNzvVWr16tXr16qW/fvi7fn2HDhtV69TVvZ1i9erWGDh2qlJQUl+3m5uZKkjZs2CBJOvvss/XDDz/ot7/9rf75z3+6HeoYCMYYt8MATzrpJF1wwQUuy9566y21adNGl1xyicvyq6++2uX2jh079J///EfXXHONJLm83uHDh6u0tFT/7//9P5fHePo3Xpvnn39eV199tQYNGqTRo0drzZo1GjlypB588EGvDk1oqL1792rKlClKTU1VVFSUWrRo4bxYwfbt293Wr3n9Na666ipFRUXprbfeqvN51q9fr1/96ldKSEhw/pzdddddKi8v1969eyX9cmhsdXW17Ha7x+1s3rxZ+/fv1/jx412+B8eOHdPFF1+swsLCOq8ktXv3bkm1HzYjST179lSfPn1cll199dWqrKzUhx9+WOdr9Mbq1atls9l07bXXuszfoUMH9enTx+Vn8YYbblBhYWG9X8efKNufv4s9/R741a9+pZ49ezpPPP7ZZ5/p008/1Z/+9CedeuqpjXp/fv75Z7355pu6/PLL1bJlS7efs59//lnvvfeeJKm6utrt30ANh8OhiRMn6vzzz9ell16q5557TjfddJOee+65Wg/Jad++vfbu3eu3w2jgO/KJO/IJ+cQK+aQhjDGaNGmSNm3apKVLlyo1NTWgz+dNxqjR0L/zR48e1QMPPKDMzExFR0crKipK0dHR+vzzz13y0v/93//ptNNO069+9SuP21q9erXatm2rUaNGuXy/+vbtqw4dOtR7VeTdu3fr5JNP9nh106uvvtrlvvT0dA0YMKDerOYtb3++JOm1117zKsvccMMNLtv31++F2v6tf/zxx+rQoYMuvfRS7du3T4899pj27Nmj1157Tddcc41at27t9hjyCeCOq6N66Y477lBlZaWKioqcQfL8889XUlKSrrvuOo0bN06DBw/WnDlzXK7Ekp6erq+++srjdvfs2SNJys7OrvX+E88n0bJlS8XHx9e6bmJiosvtmvPAeFpe17lO6lNSUqJBgwape/fu+utf/6ouXbooNjZWH3zwgex2u3766SfnumeeeaYGDRokh8Oha665RqtXr9ZXX32lJ598ss7nKC8vV4cOHdz+ULZv315RUVHOc6fU8HQOFU/i4uJ02WWX6bLLLnO+ptzcXDkcDt14443q2bOn9uzZox07djjPuXOiE0OntzPU/MGqb7tjx47V0aNH9be//U2jR4/WsWPHlJ2drfvuu08XXXSRl6/0FzVXC925c6fHdQ4dOqR9+/bpzDPPdFle2+sqLy93uyKRJHXo0MHlds2/8VtvvVW33nprrc/b0PfRk2uvvVarV6/Wli1bnMHGn44dO6acnBzt3r1bd955p8444wy1atVKx44d07nnnuvy77/Gie9LVFSU2rVr5/bv+HgffPCBcnJyNGTIEP3tb39znj9k1apVuv/++53PU1M21nWFu5rvw4n/0Xi8/fv3u/yH8vFqnis2NrbW+098fccvq+s1emvPnj0yxtT6b06Sunbt6vK8nsrC4x3/u8Wfv4s9/fs96aST1KxZMx04cEAVFRX6/vvva/2PyoYoLy/X0aNH9fjjj+vxxx+vdZ2an7NTTjnFpeS4++67az2XTY1rr71W8+fP13vvvef2uyE2NlbGGP3888+1hm8EHvnEFfnkF+QTa+aTuhhjNHnyZD333HP6+9//rksvvTRgzyV5nzFqNPTvfF5enhwOh/7whz9o8ODBzr+FkydPdnmO7777rt4r2+/Zs0c//PCDx3Nd1lcG//TTTx5zjOT5NX700Ud1btdb3v58Sb9c4dnUcv7fEx3/u9ifvxdqu69FixZKSEjQ/v37VVFRoYqKCh08eFBt27b1uB3yCeCOEs5LRUVFyszMdPsP1Jpw+umnn2rw4MG64YYbNHLkSOf9MTExdW43KSlJkvTyyy8796Kpiz/+Y80fVq1apUOHDmnlypUucxcVFdW6/rRp0/TrX/9aH374oebPn6/TTjut3pDWrl07vf/++27/kVrzqUbNe1ejse9NWlqabrjhBk2fPl2fffaZevbsqaSkJMXFxemZZ56p9TENnSEpKUm9e/fW/fffX+v9KSkpzv8/ceJETZw4UYcOHdLGjRt19913a+TIkfrvf//r1b+ZGllZWTrppJP06quvKj8/v9ZZX331VR07dszte1Pbuu3atdMHH3zgtvzEEx/XvEczZ87UFVdcUetsJ57ov7Hfy5rQ4ssJ7X3x6aef6qOPPtKSJUs0fvx45/K6TiheVlamTp06OW8fPXpU5eXlateuncfHvPjii2rRooVWr17tEhpXrVrlst7JJ58sSfrmm288fmpe8314/PHHde6559a6jqeC6/jH79+/v9b7azvhdc2yul5jbGxsrSf7PTEoJiUlyWazadOmTbX+Xj1+2YllgyfHlxD+/F3s6b4VK1Zo9+7dWr58uZYtW6bHH39cnTt31lVXXaUxY8bo7LPPrvd5PTnppJPUvHlzjR071uMekRkZGZJ++XT9+Pf8+N83tanr52n//v2KiYkh4AYR+cQV+eQX5BNr5hNPagq4xYsXa9GiRbr22msD8jzH8zZj1Gjo3/nnnntO48aN0wMPPOCyfN++fS7lzcknn6xvvvmmzpmTkpLUrl07vf7667Xe36ZNm3ofX9dee55eY12vT/rl92ltWebEctKXn68TCylPji+q/Pl7obb7evTooS+//FLvvvuuli1bpgcffFC33HKLBg4cqDFjxujKK690KzLJJ4A7SjgvpaSk6NNPP9XBgwddfpjfffddSf/bAyUlJaXeXxjHGzZsmKKiovTFF18EfBd3f6r5xXx8iDfG6G9/+1ut619++eVKS0vTLbfcog0bNugvf/lLvUHmwgsv1EsvvaRVq1bp8ssvdy5funSp8/6GOHDggGw2W62/lGt2i6/5Ho4cOVIPPPCA2rVr5/wD4Q8jR47UmjVrdMopp3h9iEqrVq2Um5urw4cP67LLLtNnn33mU8iNjo7Wbbfdpj/+8Y96+OGH3a5AtnfvXs2cOVPJyckuhzB5MnToUL300kt69dVXXQ75WLZsmct63bt3V7du3fTRRx+5BbBAefbZZ9WiRQtlZWUFZPu1/fuXVOfeE88//7zLPC+99JKOHj2qIUOG1Pk8UVFRat68uXPZTz/9pGeffdZlvZycHDVv3lwLFy5U//79a93WwIED1bZtWxUXF7sc0uStmsPEvvjii1rv/+yzz/TRRx+5HKqybNkytWnTRmeddZbH7Xbp0kV79+7Vnj17nCXg4cOHtXbtWpf1ag4x/vbbb3XVVVfVOeuJZYMnx3//mup3cUpKimbMmKEZM2bo888/1wsvvKAXXnhBc+fOVUZGhq666ipdd911Ou2003zabsuWLTV06FBt27ZNvXv3rvOKmGeccYZP2675nVtbefvll18qMzPTp+3Bv8gnrsgnjUM+aXrGGF1//fVavHixnnzySU2cOLFJntfbjFGjoX/nbTabW17617/+pW+//dblVAy5ubm66667tH79erdDjGuMHDlSL774oqqrq3XOOed49TqPd/rpp+uFF15QRUWF2xWlJemFF15QXl6e83fA119/rc2bN2vcuHF1brdLly76+OOPXZatX79eBw8edJvf25+vEwspT47/vR6o3wsn6t+/v/r376958+bpzTff1LJlyzRr1izdfPPNGjx4sMaMGaNx48YpLi6OfALUghLOS9OnT9dll12miy66SDNmzFBSUpLee+895efnKzMzs8GHvHXp0kVz5szRrFmz9OWXX+riiy/WSSedpD179uiDDz5Qq1atvNqjo6lddNFFio6O1m9/+1vdfvvt+vnnn7Vw4UJ9//33ta7fvHlz2e12/eEPf1CrVq3cLtddm3HjxsnhcGj8+PH66quvdMYZZ+jtt9/WAw88oOHDh9d5zoi6/L//9/80bNgw/eY3v9HgwYPVsWNHff/99/rXv/6lp556SkOGDNGAAQMk/fJ9/8c//qHzzz9fM2bMUO/evXXs2DGVlJRo3bp1uuWWWxoUAubMmaOCggINGDBA06ZNU/fu3fXzzz/rq6++0po1a/TEE0+oc+fOuv766xUXF6eBAweqY8eOKisrU35+vhISElwOEao5d01dhxZJ0h/+8Ad99NFHzv8dM2aMEhIS9PHHH+vhhx/WgQMHtHr16lqDyYnGjRunv/zlLxo3bpzuv/9+devWTWvWrHErT6Rfyqnc3FwNGzZMEyZMUKdOnbR//35t375dH374ofN8PL56+OGHVVxcrAsvvFCdO3fW3r17tWjRIq1bt0733HOPyyd+X331lTIyMjR+/HgtWbKk3m2XlZXp5ZdfdlvepUsX9enTR6eccoruuOMOGWOUmJio1157TQUFBR63t3LlSkVFRemiiy7SZ599pjvvvFN9+vSps1AaMWKE5s6dq6uvvlo33HCDysvL9cgjj7iF2S5duuiPf/yj7r33Xv3000/67W9/q4SEBBUXF2vfvn2aPXu2Wrdurccff1zjx4/X/v37deWVV6p9+/b67rvv9NFHH+m7777TwoULPc7SuXNnde3aVe+9956mTZvmdn9KSoouueQS3XPPPerYsaOee+45FRQU6KGHHlLLli09bnfMmDG666679Jvf/Ea33Xabfv75Zz322GNu56saOHCgbrjhBk2cOFFbtmzR+eefr1atWqm0tFRvv/22zjjjDN14443OWXwpG2rew6b+XdytWzfddddduuuuu/Thhx/qhRde0PPPP6+ff/5Z8+bNc65XXFys4uJiSb/8u/zxxx+d/zYzMzOdIfOvf/2rzjvvPA0aNEg33nijunTpogMHDmjHjh167bXXtH79+jrnWbZsmVauXKkRI0YoPT1dP/zwg1asWKEXX3xREyZMcDsX0LFjx/TBBx9o0qRJfnxX4CvyiSvyCfnECvlEkrZs2eJ83ZWVlTLGOH93Z2dnO4vKadOmadGiRbruuut0xhlnOM+PJf1SJh9/mN0999yj2bNn66233qrzQ7wax2/reIMHD/Y6Y9Ro6N/5kSNHasmSJTr99NPVu3dvbd26VQ8//LDbKTSmT5+u5cuX69JLL9Udd9yhs88+Wz/99JM2bNigkSNHaujQofrNb36j559/XsOHD9fNN9+ss88+Wy1atNA333yjt956S5deeqlLMX6iIUOGyBij999/Xzk5OW737927V5dffrmuv/56VVRU6O6771ZsbKxmzpzpcZvSL4dn33nnnbrrrrs0ePBgFRcXa/78+W7/Xr39+ZJ8L6Rq3sNA/F7wpHnz5srJyVFOTo6eeOIJ/etf/9KyZcs0ffp0nXPOOerbt68k8gngpkkvAxHi1q9fb3JyckyHDh1MXFycOe2008wtt9xi9u3b5/U2Trz6WI1Vq1aZoUOHmvj4eBMTE2PS09PNlVdead544w3nOnVdAUySsdvtLstqrlB0/KXDjWnYFZNqe+7XXnvN9OnTx8TGxppOnTqZ2267zfzf//2fkWTeeustt2189dVXRpKZMmVKrc9R25Uhy8vLzZQpU0zHjh1NVFSUSU9PNzNnzjQ///yzy3q1vX5Pvv/+e3PfffeZCy64wHTq1MlER0ebVq1amb59+5r77rvP7fLmBw8eNH/6059M9+7dTXR0tPMS2zNmzDBlZWVezaBarpr03XffmWnTppmMjAzTokULk5iYaLKyssysWbOcV5H7+9//boYOHWqSk5NNdHS0SUlJMVdddZXbleOSkpLMueee69XrP3bsmHn++efNkCFDTNu2bU10dLTJyMgwN954o9vVmoz55fvSs2fPWrf1zTffmNGjR5vWrVubNm3amNGjR5vNmzfXemWsjz76yFx11VWmffv2pkWLFqZDhw7mggsucLkamqefD09effVVc95555mTTz7ZREVFmTZt2phBgwaZF154wW3dTz75xEgyd9xxR73breuKVDVXuSouLjYXXXSRadOmjTnppJPMr3/9a1NSUuL2va65itbWrVvNqFGjnO/Vb3/7W7Nnzx6X563tZ+CZZ54x3bt3NzExMaZr164mPz/fLFq0yEhyuXqfMcYsXbrUZGdnm9jYWNO6dWtz5plnun0fNmzYYEaMGGESExNNixYtTKdOncyIESO8+n1w5513mpNOOsnt56/marIvv/yy6dmzp4mOjjZdunQxc+fOdVnP01XT1qxZY/r27Wvi4uJM165dzfz582u9+ljN+3HOOeeYVq1ambi4OHPKKaeYcePGmS1bttQ7vzcC8bvYF8eOHTOlpaUuy+q62uuJv1d27txprrvuOtOpUyfTokULc/LJJ5sBAwaY++67r97nfvfdd82FF15oOnToYFq0aGFatmxpsrOzzYIFC5xXCDzem2++6fy3jeAin5BPyCeugp1PjPnfVYNr+zp+hroyx4lXw77llluMzWYz27dvr/O5a36WPH3V/Bx4mzEa83f++++/N5MmTTLt27c3LVu2NOedd57ZtGlTrT9X33//vbn55ptNWlqaadGihWnfvr0ZMWKE+c9//uNc58iRI+aRRx5x/oy3bt3anH766eZ3v/tdvVcar66uNl26dDFTp06t9f169tlnzbRp08zJJ59sYmJizKBBg9zyRW35pKqqytx+++0mNTXVxMXFmcGDB5uioiK3q6Ma493PV2M09vdCQ/6tn6iiosLttZBPgP+xGePFGR8BP3j88cc1bdo0ffrpp+rZs2ewxwkbxcXF6tmzp1avXq0RI0YEexzLWrBggW6//XZ98cUXdZ77zN9qPrX+7rvv3M7FEWp2796tjIwMLV26VGPGjAn2OAiysWPH6ssvv9Q777wT7FGARiGfBAb5xP/OPvtspaenN2oPvYbo0qWLevXqpdWrVzfp8wbCo48+qvvvv1/ffvut4uLigj0OAoB8AqsLzFnLgeNs27ZNK1eu1Jw5c3TppZcScP3srbfeUv/+/Qm49Xjrrbc0bdq0Ji3gwk1KSoqmT5+u+++/3+Wy8Yg8X3zxhZYvX66HHnoo2KMADUY+CSzyiX9VVlbqo48+0pw5c4I9Skiz2+1KSEiQw+EI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8gn8gQIOAIDIYek94ZKSktS8eXO3T5X37t3r9ukzAABAUyCfwF8o4AAAiCyWLuGio6OVlZWlgoICl+UFBQUaMGBAQJ/b4XAoMzNT2dnZAX0eAAAQWsgnAAAAaIigH4568OBB7dixw3l7586dKioqUmJiotLS0pSXl6exY8eqX79+6t+/v5566imVlJRoypQpAZ3LbrfLbrersrJSCQkJAX0uAABgLeQTBBp7wQEAEHmCvifcli1bdOaZZ+rMM8+UJOXl5enMM8/UXXfdJUkaM2aM5s2bpzlz5qhv377auHGj1qxZo/T09GCODQAAwhj5BIFEAQcAqM+CBQuUkZGh2NhYZWVladOmTR7XXblypS666CKdfPLJio+PV//+/bV27domnBbeshljTLCHsLKaT5orKioUHx8f7HEAALAk/l42rZr3e9riTYpp2TrY48AHFHAA0HRCNZ8sX75cY8eO1YIFCzRw4EA9+eSTevrpp1VcXKy0tDS39adPn66UlBQNHTpUbdu21eLFi/XII4/o/fffd36gWJ9Qfa+CoTHvVdD3hLMqzrkCAACshnwCAED4mzt3riZNmqTJkyerR48emjdvnlJTU7Vw4cJa1583b55uv/12ZWdnq1u3bnrggQfUrVs3vfbaa008OepDCeeB3W5XcXGxCgsLgz0KAACAJPJJqGMvOABAfQ4fPqytW7cqJyfHZXlOTo42b97s1TaOHTumAwcOKDEx0eM6VVVVqqysdPlC4FHCAQAAAAFGAQcA8Ma+fftUXV2t5ORkl+XJyckqKyvzahuPPvqoDh06pKuuusrjOvn5+UpISHB+paamNmpueIcSDgAAAAggCjgAgK9sNpvLbWOM27LavPDCC7rnnnu0fPlytW/f3uN6M2fOVEVFhfNr165djZ4Z9YsK9gBW5XA45HA4VF1dHexRAAAAJJFPAAAId0lJSWrevLnbXm979+512zvuRMuXL9ekSZO0YsUK/epXv6pz3ZiYGMXExDR6XviGPeE84JwrAADAasgnoYe94AAAvoiOjlZWVpYKCgpclhcUFGjAgAEeH/fCCy9owoQJWrZsmUaMGBHoMdFA7AkHAAAABAAFHACgIfLy8jR27Fj169dP/fv311NPPaWSkhJNmTJF0i+Hkn777bdaunSppF8KuHHjxumvf/2rzj33XOdedHFxcUpISAja64A7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Yu3atThx4gQyMjKcOPWtUyGnChkBNXKqkBFQI6cKGQF1cjanYmZHUuX7q0JOFTICauRUISPAnO6UU4WMbVE1N3VwjvoYVmfLyckRAK2+0tPTrcesWrVKevfuLUajUWJjYyU3N9d5A7eTCjlVyCiiRk4VMoqokVOFjCLq5GxOxcyOpMr3V4WcKmQUUSOnChlFmNOdcqqQsS2q5qaOzSAiYuuCHREREREREREREd06viccERERERERERGRzrgIR0REREREREREpDMuwhEREREREREREemMi3BEREREREREREQ64yIcERERERERERGRzrgIR0REREREREREpDMuwhEREREREREREemMi3BEREREREREREQ64yIcEZETlJeXw2AwwGw2O3sUIiIiIgDsJ0REeuMiHBERERERERERkc64CEdEumpsbITFYnH2GE5z5coVZ49ARERE12A/YT8hInIGLsIRKWbr1q2IjIyEn58fgoKCMGHCBNTV1QEALBYLXnvtNYSHh8PHxwcxMTH45ptvrNfdvXs3DAYDzp07Z91mNpthMBhQXl4OAPjoo4/QtWtXZGVlwWQywcfHB8ePH0d9fT3mzp2LiIgI+Pj44I477sAHH3xgvZ1Dhw4hNTUVnTt3RmhoKNLS0lBVVXXdHDNmzEBUVBTq6+sBAA0NDYiLi8Njjz12w/zFxcW45557EBAQAH9/f8THx+PYsWM25QeAgwcPYty4cdbv36xZs1BbW2vdP336dEyePBlLlixBWFgYBgwYAADYv38/hg4dCl9fXwwbNgxFRUU3nJOIiEgl7CfsJ0REKuAiHJFCTp8+jUcffRQzZsxASUkJdu/ejalTp0JEAADvvPMO3n77bSxbtgy//fYbkpOTMWnSJBw9evSW7ufixYtYsmQJ1q9fj+LiYnTv3h3Tpk3D559/jhUrVqCkpARr1qxB586drXONHTsWMTEx+OWXX/DNN9+gsrISDz/88HXvY8WKFairq8O8efMAAAsWLEBVVRVWr1593etUVFQgISEBvr6++OGHH1BYWIgZM2bg6tWrNuW/ePEiJk6ciG7duqGgoABbtmzBd999h2eeeabF/Xz//fcoKSlBdnY2srKyUFdXh3vvvRcDBw5EYWEhXn31VWRmZt7S95SIiMhdsZ+wnxARKUOISBmFhYUCQMrLy9vcHxYWJosWLWqxbfjw4TJ79mwREcnJyREAUl1dbd1fVFQkAKSsrExERDZs2CAAxGw2W48pLS0VAJKdnd3m/S5YsECSkpJabDt58qQAkNLS0uvmyc/PF29vb1mwYIF4eXlJbm7udY8VEXnppZekb9++cuXKlTb33yz/2rVrpVu3blJbW2vdv3PnTvHw8JAzZ86IiEh6erqEhoZKfX299Zj3339fAgMDpa6uzrrtvffeEwBSVFR0w5mJiIjcHfsJ+wkRkSr4TDgihURHR2P8+PGIjIzEQw89hHXr1qG6uhoAUFNTg1OnTmH06NEtrjN69GiUlJTc0v0YjUZERUVZL5vNZnh6emLs2LFtHl9YWIicnBx07tzZ+jVo0CAAsL4Uoy0jR45EZmYmXn/9dbzwwgtISEiw7ktJSbHe1uDBg61zxMfHw9vbu9Vt2ZK/pKQE0dHRuO2221rst1gsKC0ttW6LjIyE0Wi0Xm66XqdOnVrMTkREROwn7CdEROrwcvYAROQ4np6eyM7ORn5+Pr799lusXLkS8+fPx759+xAUFAQAMBgMLa4jItZtHh4e1m1NGhoaWt2Pn59fi9vx8/O74VwWiwX33Xcf3nzzzVb7evToccPr5eXlwdPTs9VLUtavX49Lly4BgLXU3mwO4Mb5m//5RtdrXoKbrkdERERtYz9hPyEiUgWfCUekGIPBgNGjR2PhwoUoKiqC0WjE9u3bERAQgLCwMPz4448tjs/Pz8edd94JAAgJCQHw33ukNDGbzTe9z8jISFgsFuTm5ra5PzY2FsXFxejTpw/69+/f4uvawtjcW2+9hZKSEuTm5mLXrl3YsGGDdV/Pnj2tt9G7d28AQFRUFPbu3dtmMbclv8lkgtlstr5RNADk5eXBw8PD+gbHbTGZTDhw4IC1dAPAzz//fN3jiYiIVMN+wn5CRKQEZ70Ologc7+eff5ZFixZJQUGBHD9+XDZv3ixGo1G++uorERFZvny5BAQEyOeffy6HDx+WF198Uby9veXIkSMiInLlyhWJiIiQhx56SEpLSyUrK0sGDhzY6j1XunTp0uq+p0+fLhEREbJ9+3b5888/JScnRzZt2iQiIhUVFRISEiIPPvig7Nu3T44dOya7du2Sxx9/XK5evdpmlqKiIjEajbJjxw4REVm/fr34+/vLsWPHrpu/qqpKgoKCZOrUqVJQUCBHjhyRjRs3yuHDh23KX1dXJz169JAHHnhADh48KD/88IP069dP0tPTrfeRnp4u999/f4v7vXDhggQHB8ujjz4qxcXFsnPnTunfvz/fc4WIiEjYT9hPiIjUwUU4IoUcOnRIkpOTJSQkRHx8fGTAgAGycuVK6/7GxkZZuHCh9OzZU7y9vSU6Olq+/vrrFrfx448/SmRkpPj6+kp8fLxs2bLFppJ76dIlef7556VHjx5iNBqlf//+8uGHH1r3HzlyRKZMmSJdu3YVPz8/GTRokDz33HNisVjavC2TySSzZs1qsX3KlCkyatSo6xZjEZEDBw5IUlKSdOrUSfz9/SU+Pt5ajG3J/9tvv0liYqL4+vpKYGCgzJw5Uy5cuGDd31bJFRH56aefJDo6WoxGo8TExMi2bdtYcomIiIT9RIT9hIhIFQYRvhkAERERERERERGRnviecERERERERERERDrjIhwREREREREREZHOuAhHRERERERERESkMy7CERERERERERER6YyLcERERERERERERDrjIhwREREREREREZHOuAhHRERERERERESkMy7CERERERERERER6YyLcERERERERERERDrjIhwREREREREREZHOuAhHRERERERERESkMy7CERERERERERER6ex/SFlIyyoE15MAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap2.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T < 1e-5, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "fig.subplots_adjust(right=0.8)\n", - "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", - "#fig.colorbar(cs1, cax=cbar_ax)\n", - "\n", - "\n", - "ax1.set_xscale('log')\n", - "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\")\n", - "ax1.set_ylabel(\"source y-coord\")\n", - "\n", - "\n", - "ax2.set_xscale('log')\n", - "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\")\n", - "ax2.set_ylabel(\"source y-coord\")\n", - "\n", - "ax1.set_title('8-Term Taylor Series, Order 5, Laplace (blue=err<1e-5)')\n", - "ax2.set_title('8-Term Taylor Series, Order 12, Laplace (blue=err" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "0.00184871819382052\n", + "4.75098141096813e-8\n", + "1.27424113932491e-12\n", + "3.44431957713771e-17\n", + "6.31511332640171e-16\n", + "4.90570949474948e-16\n", + "5.87724883438792e-16\n", + "26177090592573.4\n", + "0.00184871819381963\n", + "4.75098144912018e-8\n", + "1.27493466971487e-12\n", + "5.81901218538308e-16\n", + "3.77301936958497e-16\n", + "4.46996650791360e-16\n", + "6.04988962786052e+24\n", + "26177090592576.2\n", + "0.00184871819377463\n", + "4.75098137869768e-8\n", + "1.27388870384998e-12\n", + "1.08208552419152e-15\n", + "3.86092650841635e-16\n", + "1.62179238322092e+36\n", + "6.04988962793290e+24\n", + "26177090592971.4\n", + "0.00184871818496024\n", + "4.75097716109870e-8\n", + "1.27474821246038e-12\n", + "3.16296324062824e-16\n", + "4.35075882804186e+47\n", + "1.62179238695728e+36\n", + "6.04988964188820e+24\n", + "26177090669288.2\n", + "0.00184871648322706\n", + "4.75016092694573e-8\n", + "1.22997606341039e-12\n", + "1.16717673725736e+59\n", + "4.35076076325769e+47\n", + "1.62179310833453e+36\n", + "6.04989233625298e+24\n", + "26177105403844.6\n", + "0.00184838788643231\n", + "4.58767733787243e-8\n", + "3.13144895876003e+70\n", + "1.16727694753693e+59\n", + "4.35113430648643e+47\n", + "1.62193235151123e+36\n", + "6.05041241365264e+24\n", + "26179949654208.7\n", + "0.00178300550681144\n", + "8.53807693276093e+81\n", + "3.18264819581435e+70\n", + "1.18636194299514e+59\n", + "4.42227541957112e+47\n", + "1.64845114612838e+36\n", + "6.14946395699773e+24\n", + "26724866621333.9\n" + ] } ], "source": [ - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap2_abs.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1_abs.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "fig.subplots_adjust(right=0.8)\n", - "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", - "fig.colorbar(cs1, cax=cbar_ax)\n", - "\n", - "\n", - "ax1.set_xscale('log')\n", - "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\")\n", - "ax1.set_ylabel(\"source y-coord\")\n", - "\n", - "\n", - "ax2.set_xscale('log')\n", - "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\")\n", - "ax2.set_ylabel(\"source y-coord\")\n", - "\n", - "ax1.set_title('8-Term Taylor Series, Order 5, Laplace Abs Val')\n", - "ax2.set_title('8-Term Taylor Series, Order 12, Laplace Abs Val')" + "x_grid, y_grid, plot_me_helm = generate_error_grid(8, 7, helmholtz2d, derivs_helm, 4, 4)" ] }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "Text(0.5, 1.0, '8-Term Taylor Series, Order 12, Laplace Rel. Err')" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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eSotLdXWrVt1//33h28fO3asCgsLtXLlSo0ePVqdO3fWpZdeKkl67733dMEFF6hbt27KycnR5MmTo778Y82aNZo0aZJyc3OVnZ2tL3zhC3rsscci7uNeAvLMM8/o0ksv1SGHHKLOnTs3+PMOgoqKCp199tnq16+fsrOzdeSRR+ryyy/X9u3bI+7nXiqzbt06nXvuuerevbtycnJ04YUX6v333z/o89x666064YQTlJubq+7du+uLX/yi7r//fnme1+C+jzzyiEaNGqWuXbuqa9euGjFiRMSfpSQ9++yzOu2009S9e3d17txZJ554ov785z+3+PfBDR22bt0acXtzf77bQlM/V039fANBQ4s0RIvQIkFokc//eUXz+aGhJOXn56tfv35xeYl2U5rbE+64lt///vcaNmyYsrOzdfjhh+tnP/vZQZ9j/fr1uuSSSzRkyBB17txZhx12mCZOnKhXX321wX0//PBDXX311Tr88MOVlZWlPn366IwzzghvbEj283Lbbbfp6KOPVlZWlg455BBdcsklzeqnaKJ1S7z7qDWi/by7lzv/6Ec/0m233abBgwcrKytLK1as8GWdAOKLKw5TwNSpU7VgwQJ95zvf0V133aVDDjlEzz//vO677z6FQiF16dKlxY99xx136Ac/+IEuueQS/eAHPwhH1ZgxY/TSSy9FXCmwb98+TZo0SZdffrmuv/76iLB7+umntW7dOt15553KyMjQddddpzPPPFNTp07Vv/71L91zzz366KOPNGfOHJ133nmqqqpq8iqug3n77bf1zW9+Mxyxr7zyim6//Xa9+eab+t///V9J0uWXX67bb79d9913n2677bbwr925c6ceffRRXXHFFcrOzm708ffs2aNx48bp7bff1q233qphw4Zp1apVKi0tVVVVlf74xz9G3L+8vFyrVq3STTfdpL59+zYaZ5J0zDHHqEePHrr11lvVrl07jR8/Pup5aLt379Ypp5yid999V9///vc1bNgwvf7667rpppv06quv6tlnn434PWzuGrZs2aLjjz9e7dq100033aQjjjhCf/3rX3Xbbbdp48aNeuCBByRJjz76qGbOnKnvfve7+vGPf6x27dpp/fr1qq6ubvwPpQlr167VBx98oMsuuyzqn/vEiRPVrl07VVRURLz0d/Pmzbrwwgt17bXX6o477lC7du30ySef6Mtf/rLee+89lZaW6qijjtIf//hHTZ48ucHjrlixQl/5yld0wgkn6N5771VOTo4effRRTZ48Wbt379bFF18ccf9LL71UZ555pn71q1+prq7uoC8leeSRR3T//ffrwIEDKiws1BVXXKFLLrkk5t+jWLz99tsaNWqUpk+frpycHG3cuFHz58/XSSedpFdffbXBms855xxdcMEFmjFjhl5//XXdeOONqq6u1t/+9rcmv7+NGzfq8ssvD7/0+sUXX9R3v/td/fvf/9ZNN90Uvt9NN92kH/7whzr33HN19dVXKycnR6+99preeeed8H1+/etf66KLLtLZZ5+tBx98UB07dtR9992nCRMmaPny5eH/+I/Fhg0bJElHHXVU+Lbm/nzHS2PDyHbt2jX4D7loP1eN/XwDQUSLNESL0CJBaZGW+te//qV33nlHX/3qVxPy+E5ze0KSqqqqNHv2bN1yyy3q27evHn74YV155ZXat2+frrnmmqjP8d5776lXr1668847dcghh2jnzp168MEHdcIJJ2jdunUaOnSoJOnjjz/WSSedpI0bN+q6667TCSecoF27dmnlypXavHmzjj76aB04cEBnn322Vq1apWuvvVajR4/WO++8o5tvvlljx47VmjVrGr2a92Aa65ZE9FE0Bw4caLRbOnSIHBk01SY/+9nPdNRRR+nHP/6xunfvriFDhsRtfQB85CElvPHGG97RRx/tSQp/zJo1yztw4ECzH+OBBx7wJHmVlZWe53leTU2N16FDB++73/1uxP0+/vhjr2/fvt4FF1wQvm3q1KmeJO9///d/GzyuJK9v377erl27wreVl5d7krwRI0ZErHHBggWeJO/vf/97s9c9depUr0uXLlG/Xl9f7+3fv9976KGHvPbt23s7d+6M+LV9+vTx9u7dG77trrvu8tq1a+dt2LAhfNspp5zinXLKKeHP7733Xk+S99hjj0U811133eVJ8p555pmI7z8nJyfieZvyxz/+0evdu3f4z7FXr17e1772Ne+pp56KuF9paanXrl278J+X88QTT3iSvGXLljVrDZK8m2++Ofz55Zdf7nXt2tV75513Iu734x//2JPkvf76657ned4VV1zh9ejRo1nf08E8+uijniTv3nvvbfJ+eXl53jHHHBP+/JRTTvEkeX/+858j7rdo0SJPkvfkk09G3P7tb3/bk+Q98MAD4duOPvpo7wtf+IK3f//+iPueddZZ3qGHHurV19d7nvffvx8XXXRRs7+vb37zm97DDz/srVy50nviiSe8kpIST5L3gx/8oNmP8XkDBw70zjzzzGbf/8CBA97+/fu9d955p8Hvyc033+xJ8q666qqIX/Pwww97krxf//rX4ds+/3fg89zfs3nz5nm9evUK/73+17/+5bVv39771re+FfXX1tXVebm5ud7EiRMbPObw4cO9448/vsnvccOGDZ4k76677vL279/v7dmzx6uqqvJGjRrlHXrooRF/l5v78+15Df9uxML9bDb2MW3atPD9mvq5ivbzDQQVLUKLOLRIcFrks4499tgm/13+Wfv37/fGjh3rde/e3aupqWnR861YscKT5D3++OPN/jXResLzrIEyMjK8qqqqiF9z+umne927d/fq6uo8z/tvF3z29/jzPv30U2/fvn3ekCFDIjpo3rx5niSvoqIi6q/9zW9+40nyfvvb30bcXllZ6UnyFi5c2OT36Ppry5Yt3v79+70PPvjAe+yxx7wuXbp43/jGN8L3i6WP3M/GZ/+Z0Vzu9yvax6pVq8L3jfbz7h7jiCOO8Pbt2xfzGgAEG5cupICNGzdq4sSJ6tWrl5544gk9//zz+tGPfqQlS5Zo+vTp4fu5XST3UV9f3+TjLl++XJ9++qkuuuiiiF+XnZ2tU045pdF3CjzvvPMafaxx48ZFXG1wzDHHSJJKSkoidnXd7Z+9Eqkl1q1bp0mTJqlXr15q3769OnbsqIsuukj19fX65z//Gb7flVdeqW3btunxxx+XZL9HixYt0plnntnkO58+99xz6tKli84///yI292O8OdfPuDema85zjjjDNXU1Oj3v/+9rrnmGh177LEqLy/XpEmTdMUVV4Tv9/TTT6uwsFAjRoyI+POZMGFCo+/k2Nw1PP300xo3bpzy8/MjHrekpESS9Pzzz0uSjj/+eH344Yf6xje+oSeffLLBy2ATwfO8BlcB9OzZU6eeemrEbStWrFC3bt00adKkiNs/f+Dz+vXr9eabb+pb3/qWJEV8v2eccYY2b96sf/zjHxG/JtrPeGMefvhhffOb39SYMWN03nnnadmyZTrrrLN05513tuqlLAezbds2zZgxQ/3791eHDh3UsWNHDRw4UJL0xhtvNLi/+/6dCy64QB06dDjoy0uee+45ffnLX1ZOTk7479lNN92kHTt2aNu2bZLsZdP19fUKhUJRH2f16tXauXOnpk6dGvFncODAAX3lK19RZWVlg5e8Nea6665Tx44dlZ2drREjRui1117TH/7wh4i/y839+Y6HI444QpWVlQ0+brzxxgb3jfZz1djPNxBEtEhDtAgtEoQWaQnP8zRt2jStWrVKDz30kPr375/Q52tOTzjHHnushg8fHnHbN7/5TdXW1urll1+O+hyffvqp7rjjDhUUFCgzM1MdOnRQZmam3nrrrYg2+n//7//pqKOO0pe//OWoj/X000+rR48emjhxYsSf14gRI9S3b99mv5t637591bFjR/Xs2VMXXHCBioqKIo4QiFcfNdeVV17ZaLeMGDEi4n5NtcmkSZN8eWMXAInFS5VTwPXXX6/a2lpVVVWFg/jkk09W7969demll+qiiy7SKaeconnz5kUccj1w4EBt3Lgx6uO68zWKi4sb/frnXzLXuXNnde/evdH75ubmRnzuzjqKdntT5/kcTE1NjcaMGaOhQ4fqpz/9qQYNGqTs7Gy99NJLCoVC+uSTT8L3/cIXvqAxY8aorKxM3/rWt/T0009r48aNuu+++5p8jh07dqhv374NwrFPnz7q0KFD+HwgJ9o5QdF06tRJX/3qV8MvDampqVFJSYnKysr0ne98R8cee6y2bt2q9evXR/2X8+fjublr2Lp1q/7whz8c9HGnTJmiTz/9VL/4xS903nnn6cCBAyouLtZtt92m008/vZnfqXEvTXEv0WhMXV2dtm/fri984QsRtzf2fe3YsUN5eXkNbu/bt2/E5+5n/Jprron68paW/j5Gc+GFF+rpp5/WmjVrwv8BFE8HDhzQ+PHj9d577+nGG2/Ucccdpy5duujAgQP60pe+FPHz73z+96VDhw7q1atXg5/jz3rppZc0fvx4jR07Vr/4xS/CZ1CVl5fr9ttvDz+PG5A29Y587s/h8//x+1k7d+486Esdr7zySl144YXau3evXnzxRf3gBz/Q2WefrVdeeUW9evUKP1dzfr7jITs7u9lv7hDt56q1P29AW6FFItEihhYJZos0xfM8TZ8+Xb/+9a/14IMP6uyzz07Yc0nN7wnn879/n72tqW6ZM2eOysrKdN111+mUU05Rz5491a5dO02fPj3iOd5///3wz0I0W7du1Ycffhj17NbmtsSzzz6rnJwc7dy5U4sXL9Zvf/tbffe739W9994bfh6p9X3UXP369WtWtzT180e3AKmJwWEKqKqqUkFBQYN/abjIfu2113TKKafosssu01lnnRX++sHe4cq9y9cTTzwRvlqpKa05ByieysvLVVdXp9/97ncR666qqmr0/rNmzdLXvvY1vfzyy7rnnnt01FFHHTQ2e/Xqpb/97W8Ndp23bdumTz/9NPx757T292bAgAG67LLLNHv2bL3++us69thj1bt3b3Xq1Cl8TtLntXQNvXv31rBhw3T77bc3+vX8/Pzw/7/kkkt0ySWXqK6uTitXrtTNN9+ss846S//85z+b9TPjFBUVqWfPnnrqqadUWlra6FqfeuopHThwoMGfTWP37dWrl1566aUGt3/+QHL3e3TDDTfo3HPPbXRt7sybpp4vFt5/DvpO1Fl1r732ml555RUtWbJEU6dODd/e1EH/W7Zs0WGHHRb+/NNPP9WOHTvCw7bGPProo+rYsaOefvrpiPO3ysvLI+53yCGHSJLefffdqFcsuD+Hn//851Hfza+x//j6vM8G74knnqi+ffvqwgsv1M0336x77rkn/FzN/fluS9F+roLyz1XgYGiRSLSIoUWC2SLRuKHhAw88oPvvv18XXnhhQp7ns5rbE05jby7jbmuqW9xZgXfccUfE7du3b494h+xDDjlE7777bpNr7t27t3r16qU//elPjX69W7duTf56Z/jw4eE//9NPP10TJkzQ4sWLNW3aNBUXF8etj+KtqZ+/oPwzGEB8MThMAfn5+Xrttde0a9cude3aNXz7X//6V0n/vdInPz8/pv8onjBhgjp06KC333474S+JiCf3L6zP/seI53n6xS9+0ej9zznnHA0YMEBXX321nn/+ef3P//zPQf+ld9ppp+mxxx5TeXm5zjnnnPDtDz30UPjrLfHxxx8rIyMj4s/RcS+jcH+GZ511lu644w716tVLgwcPbtHzNeass87SsmXLdMQRRzT7JU1dunRRSUmJ9u3bp69+9at6/fXXY4r1zMxMfe9739P3v/993X333Q3ezXDbtm264YYblJeXF/GSt2jGjRunxx57TE899VTES4QeeeSRiPsNHTpUQ4YM0SuvvNIgJBPlV7/6lTp27KiioqKEPH5jP/+Smrxy5eGHH45Yz2OPPaZPP/1UY8eObfJ5OnTooPbt24dv++STT/SrX/0q4n7jx49X+/bttWjRIo0aNarRxzrxxBPVo0cPVVdXR7wErrW+9a1v6Ze//KV+8Ytf6Hvf+54GDhzYop9vAAdHi0SiRVqHFml7nufp29/+th544AHdd999CX8jN6e5PeG8/vrreuWVVyJervzII4+oW7du+uIXv9jk83y+jf74xz/q3//+t4488sjwbSUlJbrpppv03HPPRX057llnnaVHH31U9fX1OuGEE5r1fR5MRkaGysrKVFBQoB/84Adavnx5wvoIAGLF4DAFzJ49W1/96ld1+umn66qrrlLv3r314osvqrS0VAUFBS1+OeSgQYM0b948zZ07V//617/0la98RT179tTWrVv10ksvqUuXLhEvNwqK008/XZmZmfrGN76ha6+9Vnv27NGiRYv0wQcfNHr/9u3bKxQK6brrrlOXLl0avHNdYy666CKVlZVp6tSp2rhxo4477jj95S9/0R133KEzzjijyXNRmvKPf/xDEyZM0Ne//nWdcsopOvTQQ/XBBx/oj3/8oxYvXqyxY8dq9OjRkuzP/be//a1OPvlkXXXVVRo2bJgOHDigmpoaPfPMM7r66qtbFDPz5s1TRUWFRo8erVmzZmno0KHas2ePNm7cqGXLlunee+9Vv3799O1vf1udOnXSiSeeqEMPPVRbtmxRaWmpcnJyIl5S5s5nauqlaJKdT/fKK6+E/3fy5MnKycnR3//+d9199936+OOP9fTTTysnJ+eg38NFF12k//mf/9FFF12k22+/XUOGDNGyZcu0fPnyBve97777VFJSogkTJujiiy/WYYcdpp07d+qNN97Qyy+/HD5zKlZ33323qqurddppp6lfv37atm2b7r//fj3zzDO65ZZbIq7C2LhxowYPHqypU6dqyZIlB33sLVu26Iknnmhw+6BBgzR8+HAdccQRuv766+V5nnJzc/WHP/xBFRUVUR/vd7/7nTp06KDTTz89/K7Kw4cP1wUXXBD115x55pmaP3++vvnNb+qyyy7Tjh079OMf/7hBlA8aNEjf//739cMf/lCffPKJvvGNbygnJ0fV1dXavn27br31VnXt2lU///nPNXXqVO3cuVPnn3+++vTpo/fff1+vvPKK3n//fS1atOigvy+Nueuuu3TCCSfohz/8oX75y182++e7Me+8846OOOIITZ06Vffff/9Bn/uTTz7Riy++2OjXol05ACQrWiQSLUKLBKFFJGnNmjXh77u2tlae54Ubori4ODxcnTVrlu6//35deumlOu644yL+/ZWVlRXx8uxbbrlFt956q1asWNHkJqMT7d+Fp5xySrN7wsnPz9ekSZN0yy236NBDD9Wvf/1rVVRU6K677lLnzp2jruGss87SkiVLdPTRR2vYsGFau3at7r777gb/zp89e7aWLl2qs88+W9dff72OP/54ffLJJ3r++ed11llnady4cfr617+uhx9+WGeccYauvPJKHX/88erYsaPeffddrVixQmeffXbEML+5hgwZossuu0wLFy7UX/7yF5100kmt6qN58+Zp3rx5+vOf/6xTTjnloM9fU1PT6J/VIYccoiOOOCLm7wdACvHlLVkQd88995w3fvx4r2/fvl6nTp28o446yrv66qu97du3N/sxPv9Ohk55ebk3btw4r3v37l5WVpY3cOBA7/zzz/eeffbZ8H2aejdBSV4oFIq4zb3z1t133x1xe0vefa2x5/7DH/7gDR8+3MvOzvYOO+ww73vf+573//7f//MkeStWrGjwGBs3bvQkeTNmzGj0ORp7R9kdO3Z4M2bM8A499FCvQ4cO3sCBA70bbrjB27NnT8T9Gvv+o/nggw+82267zTv11FO9ww47zMvMzPS6dOnijRgxwrvtttu83bt3R9x/165d3g9+8ANv6NChXmZmppeTk+Mdd9xx3lVXXeVt2bKlWWtQI+8c+/7773uzZs3yBg8e7HXs2NHLzc31ioqKvLlz54bfkfLBBx/0xo0b5+Xl5XmZmZlefn6+d8EFFzR4F8revXt7X/rSl5r1/R84cMB7+OGHvbFjx3o9evTwMjMzvcGDB3vf+c53GryzoufZn8uxxx7b6GO9++673nnnned17drV69atm3feeed5q1evbvRd9l555RXvggsu8Pr06eN17NjR69u3r3fqqadGvLNitL8f0Tz11FPeSSed5B1yyCFehw4dvG7dunljxozxfvOb3zS476uvvupJ8q6//vqDPu7AgQOjvuvd1KlTPc/zvOrqau/000/3unXr5vXs2dP72te+5tXU1DT4s3bv6rd27Vpv4sSJ4d+rb3zjG97WrVsjnrexvwP/+7//6w0dOtTLysryDj/8cK+0tNS7//77G31Xv4ceesgrLi72srOzva5du3pf+MIXGvw5PP/8896ZZ57p5ebmeh07dvQOO+ww78wzzzzoPw+i/fPE+drXvuZ16NDBW79+ved5zfv59ryGfzfc87jf56Y09a7KksLvnNnUz1VTP99AENEitAgtEsnvFvG8/77beGMfn11DU30xcODAiMe8+uqrvYyMDO+NN95o8rnd36VoH+7vQXN7YuDAgd6ZZ57pPfHEE96xxx7rZWZmeoMGDfLmz58f8byNvavyBx984E2bNs3r06eP17lzZ++kk07yVq1a1ejfqw8++MC78sorvQEDBngdO3b0+vTp45155pnem2++Gb7P/v37vR//+Mfhv+Ndu3b1jj76aO/yyy/33nrrrSZ/X1x/vf/++w2+tnXrVq9r167euHHjwrc1p48ae1dl9zyN/fOmsd+vaB/f+ta3wveN9vN+sBYDkNwyPO8/B24BaeznP/+5Zs2apddee03HHnus38tJGdXV1Tr22GP19NNP68wzz/R7OYG1cOFCXXvttXr77bfb9Kwad8XA+++/3+AcKgBA26JFEoMWib/jjz9eAwcObNWVkC0xaNAgFRYW6umnn27T5wWAdMdLlZHW1q1bpw0bNmjevHk6++yzCfU4W7FihUaNGkWoH8SKFSs0a9YsXw64BgD4ixZJLFokvmpra/XKK6/owQcf9HspAIA2khZXHD799NO6+uqrdeDAAV133XXNOtAY6WHQoEHasmWLxowZo1/96lfq27ev30sC2gxXHAL+ok8g0SJAc3HFIQD4I+UHh59++qkKCgq0YsUKde/eXV/84hf1t7/9Tbm5uX4vDQAApCn6BAAAAMmgnd8LSLSXXnpJxx57rA477DB169ZNZ5xxRqPvZgYAANBW6BMAAAAkg8APDleuXKmJEycqPz9fGRkZKi8vb3CfhQsXavDgwcrOzlZRUZFWrVoV/tp7772nww47LPx5v3799O9//7stlg4AAFIUfQIAAIB0EPjBYV1dnYYPH6577rmn0a8vXbpUs2fP1ty5c7Vu3TqNGTNGJSUlqqmpkSQ19krsjIyMhK4ZAACkNvoEAAAA6SDw76pcUlKikpKSqF+fP3++pk2bFj5QfMGCBVq+fLkWLVqk0tJSHXbYYRE7+O+++65OOOGEqI+3d+9e7d27N/z5gQMHtHPnTvXq1YugBwAgCs/z9PHHHys/P1/t2gV+X7LV6BMAAIIv3foESITADw6bsm/fPq1d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M5b69EKPDfFq30C0+YwxJthBRgAAAAAAAADewD0OAQAAAAAAAARg4BAAAAAAAABAAAYOAQAAAAAAAARg4BAAAAAAAABAAAYOAQAAAAAAAARg4BAAAAAAAABAAAYOAQAAAAAAAARg4BAAAAAAAABAAAYOAcAFlZWV8vl8Kisrc7sUAAAASeQTAEAgBg4BAAAAAAAABGDgEEBEnTp1SnV1dW6X4Zra2lq3SwAAAGcgn5BPAADBYeAQ8Jg33nhDmZmZateunbp06aIbbrhBNTU1kqS6ujo98cQT6tWrlxITEzVw4EC99957/seuXr1aPp9PBw8e9K8rKyuTz+dTZWWlJOmVV15R586dtWLFCmVkZCgxMVHffPONjh8/runTpys9PV2JiYm69NJL9ec//9l/nM2bN2v06NHq0KGDUlNTNW7cOFVVVTXax7333qusrCwdP35cknTixAnl5OTonnvuOWv/mzZt0k9+8hMlJyerY8eOys3N1ddffx1U/5K0ceNGXX/99f7v3wMPPKAjR474t0+cOFFjx45VQUGB0tLS1LdvX0nSZ599piuuuEJJSUkaPHiwSktLz1onAABeQj4hnwAAWiYGDgEP2bNnj+6++27de++9Ki8v1+rVq3XbbbfJGCNJevbZZ/XMM89o7ty5+uKLLzRq1CiNGTNG27Zta9LzHD16VAUFBVq8eLE2bdqk7t27a/z48Xr99df13HPPqby8XC+++KI6dOjgr+vaa6/VwIED9fnnn+u9997Tvn379NOf/rTR53juuedUU1OjGTNmSJIeffRRVVVVaeHChY0+ZteuXRo+fLiSkpL04YcfqqSkRPfee69OnjwZVP9Hjx7VjTfeqPPPP1/r16/XsmXL9P777+uhhx6q9zwffPCBysvLVVhYqBUrVqimpkY33XST+vXrp5KSEj3++OOaNm1ak76nAADEKvIJ+QQA0IIZAJ5RUlJiJJnKysoGt6elpZnZs2fXWzdkyBAzefJkY4wxq1atMpLMgQMH/NtLS0uNJFNRUWGMMebll182kkxZWZl/ny1bthhJprCwsMHnffTRR01eXl69dTt27DCSzJYtWxrtp7i42LRt29Y8+uijpk2bNmbNmjWN7muMMY888oi58MILTW1tbYPbz9X/okWLzPnnn2+OHDni3/7OO++YuLg4s3fvXmOMMRMmTDCpqanm+PHj/n3+9Kc/mZSUFFNTU+Nf98ILLxhJprS09Kw1AwAQ68gn5BMAQMvFFYeAh2RnZ2vkyJHKzMzUnXfeqZdeekkHDhyQJFVXV2v37t26+uqr6z3m6quvVnl5eZOeJyEhQVlZWf7lsrIyxcfH69prr21w/5KSEq1atUodOnTwf1122WWS5H+bTkOGDh2qadOm6Xe/+51+/etfa/jw4f5t+fn5/mP179/fX0dubq7atm0bcKxg+i8vL1d2drbOO++8etvr6uq0ZcsW/7rMzEwlJCT4l53HtW/fvl7tAACAfEI+AQC0ZG3cLgBA9MTHx6uwsFDFxcX617/+peeff14zZ87Up59+qi5dukiSfD5fvccYY/zr4uLi/OscJ06cCHiedu3a1TtOu3btzlpXXV2dbr75Zj311FMB23r06HHWx61bt07x8fEBb1davHixfvjhB0nyB/Fz1SGdvf/T/322x50e3J3HAQCAhpFPyCcAgJaLKw4Bj/H5fLr66qs1a9YslZaWKiEhQcuXL1dycrLS0tL00Ucf1du/uLhYl19+uSSpW7dukuw9fxxlZWXnfM7MzEzV1dVpzZo1DW4fNGiQNm3apAsuuECXXHJJva8zQ+7pnn76aZWXl2vNmjVauXKlXn75Zf+2nj17+o/Rp08fSVJWVpbWrl3b4B8TwfSfkZGhsrIy/83aJWndunWKi4vz32S8IRkZGdqwYYP/DwVJ+uSTTxrdHwAAryGfkE8AAC2UW++RBhB9n3zyiZk9e7ZZv369+eabb8zSpUtNQkKCeffdd40xxsybN88kJyeb119/3Xz55ZfmN7/5jWnbtq3ZunWrMcaY2tpak56ebu68806zZcsWs2LFCtOvX7+Aewh16tQp4LknTpxo0tPTzfLly81///tfs2rVKrNkyRJjjDG7du0y3bp1M3fccYf59NNPzddff21Wrlxpfvazn5mTJ0822EtpaalJSEgwb7/9tjHGmMWLF5uOHTuar7/+utH+q6qqTJcuXcxtt91m1q9fb7Zu3WpeffVV8+WXXwbVf01NjenRo4e5/fbbzcaNG82HH35oLrroIjNhwgT/c0yYMMHccsst9Z738OHDpmvXrubuu+82mzZtMu+884655JJLuIcQAACGfEI+AQC0ZAwcAh6yefNmM2rUKNOtWzeTmJho+vbta55//nn/9lOnTplZs2aZnj17mrZt25rs7Gzzz3/+s94xPvroI5OZmWmSkpJMbm6uWbZsWVDB/IcffjC/+tWvTI8ePUxCQoK55JJLzF/+8hf/9q1bt5pbb73VdO7c2bRr185cdtllZsqUKaaurq7BY2VkZJgHHnig3vpbb73VDBs2rNEwb4wxGzZsMHl5eaZ9+/amY8eOJjc31x/mg+n/iy++MCNGjDBJSUkmJSXF3H///ebw4cP+7Q0Fc2OM+fjjj012drZJSEgwAwcONG+++SbBHAAAQz4xhnwCAGi5fMZwcwsAAAAAAAAA9XGPQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEICBQwAAAAAAAAABGDgEAAAAAAAAEOD/AdFFolX5J4enAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACslklEQVR4nOzdeXiU9b3+8TsmkrAGAxKNrCq1RiTYEC0oCi7QqOBeTm0RFRdKPBRT61KOVXHB1kqxGqh4Wjm0VVGr1Fp+QlQKVLQGJG6xVlo0WFkkAoEgW3h+f3z6HTJmIZPM5Hlm5v26Lq5zMgzJA2rnO2/umaR4nucJAAAAAAAAAOo4xO8LAAAAAAAAABA8hEMAAAAAAAAA9RAOAQAAAAAAANRDOAQAAAAAAABQD+EQAAAAAAAAQD2EQwAAAAAAAAD1EA4BAAAAAAAA1EM4BAAAAAAAAFAP4RAAAAAAAABAPYRDxMT//u//KiUlRZ06dWryfsOHD1dKSspBf9x5551tc+HN1JxrTklJ0V/+8peofc3hw4dr+PDhUft8Tdm7d68effRRFRQUKCsrSx06dFCfPn10wQUX6Pnnn4/61wvSP2PP8/TEE0/ozDPP1GGHHab09HQdffTRKioq0rp161r9+T/++GOlpKRo7ty5rb/Yg5g7d26T/37ef//9Lfq8ffv21fnnnx/lqz24tvxvAEB84dzBuSMSQfpnzLnj4Jo6d6xcubLFv79Y/Nn85S9/UUpKip599tmofc4777xTKSkpYbfNmjWrTf6ZAoAkpfl9AUg8//73v3XTTTcpJydH27Zta/K+s2bNUnV1dejjP//5z7rnnnv0+OOP6+tf/3ro9p49e8bselvi9ddfD/v47rvv1pIlS/Tqq6+G3Z6bm9uWlxU148aN03PPPacpU6borrvuUnp6uv71r3/ppZde0qJFi3TRRRdF9eu9/vrrgfhnvH//fl1++eWaP3++vvOd72ju3LnKzMzUO++8owceeEBPPPGEXnzxRZ166ql+X2qznHfeefX+XZWkn/zkJyotLY36P0cA8APnjgM4dzQP547Y4NzRdmbNmqXu3bvryiuv9PtSACQBwiGibuLEiTr99NOVlZV10L9t++oB9+9//7skacCAARo8eHCrr2Xnzp3q0KFDqz/PV33zm98M+/jwww/XIYccUu/2oPI8T7t27VL79u3r/dzatWs1f/58/eQnP9Fdd90Vuv2ss87Stddeq/3790f9GoLy5/bTn/5U8+fP1/33369bbrkldPvw4cM1duxYnXLKKbrkkkv097//XV27dm3088Tq37uGfPnll8rIyKj3N9GS/Xt5+OGHh91WU1Oj119/XaeddpqOO+64NrlGAIglzh3Bx7mjYZw7AADxgJcqI6p+97vfaenSpZo1a1ZUP+/8+fM1ZMgQdezYUZ06ddKoUaO0evXqsPtceeWV6tSpk959912NHDlSnTt31llnnSXJXpJyww036PHHH9dxxx2n9u3ba/DgwXrjjTfkeZ4eeOAB9evXT506ddKZZ56pNWvWtPqaS0pKdPrpp6tHjx7q2LGjTjzxRP3sZz/T3r17Q/e5++67lZaW1uBLUa6++mp169ZNu3btavRrfPHFF5o0aZKOOuootWvXTkcffbSmTp2q3bt3h93P/f5/9atf6fjjj1d6err+7//+r8HPWVVVJUk68sgjG/z5Qw4J/5+N6upq3XTTTerXr5/atWuno446SlOmTFFNTU2zr6Ghlwxt2LBB119/vXr27Kl27dqpX79+uuuuu7Rv376w+82ePVt5eXnq1KmTOnfurK9//ev68Y9/3OifWWP27NmjBx54QMcff7xuvvnmej+fnZ2t6dOna+PGjfr1r38dun348OEaMGCAli1bpqFDh6pDhw66+uqrJUmfffaZvv3tb6tz587KzMzU2LFjtWHDhga//sqVKzVmzBhlZWUpIyNDJ510kp5++umw+7iXAC1evFhXX321Dj/8cHXo0KHeP++mzJ8/Xzt27NA111zT7F/TEqWlpbrgggvUs2dPZWRk6Nhjj9X111+vzZs3h93Pvfxm9erVuvjii9WlSxdlZmbqe9/7nj7//PODfp277rpLp5xyirKystSlSxd94xvf0K9//Wt5nlfvvk888YSGDBmiTp06qVOnTho0aFDYP0tJevnll3XWWWepS5cu6tChg0499VS98sorrfvDABAznDsO4NzBuSOZzx1f9dFHH+nyyy9Xjx49lJ6eruOPP14lJSUH/XXuXPLOO+/osssuU2ZmprKyslRcXKx9+/bpww8/1Le+9S117txZffv21c9+9rMGP8/evXs1depU5eTkqEuXLjr77LP14Ycf1rvfb37zG+Xl5SkjI0NZWVm66KKL9MEHHzR5jX379tX777+vpUuXhl4G3rdvX0lNvx0DL20G0GIeECUbN270unXr5pWUlHie53njx4/3OnbsGNHnePzxxz1JXllZWei2e++910tJSfGuvvpq78UXX/See+45b8iQIV7Hjh29999/P3S/8ePHe4ceeqjXt29fb/r06d4rr7ziLVq0yPM8z5Pk9enTxxs6dKj33HPPec8//7z3ta99zcvKyvJuvPFG74ILLvBefPFF7/e//72XnZ3tDRw40Nu/f3+zr7uh3+uNN97ozZ4923vppZe8V1991fvFL37hde/e3bvqqqvC/szS09O9qVOnhv3aqqoqr3379t6PfvSj0G1nnHGGd8YZZ4Q+/vLLL72BAwd6HTt29H7+8597ixcv9m6//XYvLS3NO/fcc8M+nyTvqKOO8gYOHOg98cQT3quvvuq99957Df5eduzY4XXt2tU74ogjvEcffdRbu3Zto7/vmpoab9CgQV737t29GTNmeC+//LL30EMPeZmZmd6ZZ54Z9mfY1DVI8u64447QfdevX+/16tXL69Onj/foo496L7/8snf33Xd76enp3pVXXhm635NPPulJ8v77v//bW7x4sffyyy97v/rVr7zJkyc3es2NWbFihSfJu+WWWxq9z/bt271DDjnEGzVqVOi2M844w8vKyvJ69erlPfzww96SJUu8pUuXejt37vSOP/54LzMz03v44Ye9RYsWeZMnT/Z69+7tSfIef/zx0Od49dVXvXbt2nnDhg3z5s+f77300kvelVdeWe9+7r+Po446yrvuuuu8//f//p/37LPPevv27Wv273Po0KFely5dvJqamoj+fOrq06ePd9555zV5n9mzZ3vTp0/3XnjhBW/p0qXe//3f/3l5eXnecccd5+3Zsyd0vzvuuCP03+ePfvQjb9GiRd6MGTO8jh07eieddFLYfb/634Dned6VV17p/frXv/ZKS0u90tJS7+677/bat2/v3XXXXWH3u/322z1J3sUXX+w988wz3uLFi70ZM2Z4t99+e+g+v/3tb72UlBTvwgsv9J577jnvT3/6k3f++ed7qamp3ssvv9ziPy8AscG5g3MH547kOXece+653t69e+v9eOONN+pd9/vvv+9lZmZ6J554ojdv3jxv8eLF3g9/+EPvkEMO8e68887Q/dauXVvv17pzyXHHHefdfffdXmlpqXfzzTd7krwbbrjB+/rXv+798pe/9EpLS72rrrrKk+T94Q9/CP36JUuWeJK8vn37et/97ne9P//5z96TTz7p9e7d2+vfv3/Yn919993nSfK+853veH/+85+9efPmeUcffbSXmZnp/eMf/6h3Tc5bb73lHX300d5JJ53kvf76697rr7/uvfXWW6Hfu7vN/Tj77LO91NRUb8WKFS3+ZwAguREOETWXXHKJN3To0NChLRoH+MrKSi8tLc377//+77D7bd++3TviiCO8b3/726Hbxo8f70nyfvOb39T7vJK8I444wtuxY0fotgULFniSvEGDBoUdNGfOnOlJ8t55551mX/fBfq+1tbXe3r17vXnz5nmpqaneF198EfZre/To4e3evTt0209/+lPvkEMOCTs8f/UA/6tf/cqT5D399NNhX+unP/2pJ8lbvHhx2O8/MzMz7Os25c9//rPXvXt3T5InyevWrZt32WWXeS+88ELY/aZPn+4dcsghYU+4PM/znn32WU+St3DhwmZdw1cP8Ndff73XqVMn75NPPgm7389//nNPUuiJ2w033OB17dq1Wb+ng3nqqac8Sd6vfvWrJu+XnZ3tHX/88aGPzzjjDE+S98orr4Tdb/bs2Z4k749//GPY7ddee229Q+rXv/5176STTvL27t0bdt/zzz/fO/LII73a2lrP8w7893HFFVe05LfoffDBB54k7/rrr2/Rr3eaEw7r2r9/v7d3717vk08+qfdn4g7DN954Y9iv+f3vf+9J8n73u9+FbmsoHNbl/jubNm2a161bt9B/1//617+81NRU77vf/W6jv7ampsbLysryRo8eXe9z5uXleSeffHKzf78A2gbnDs4dDueOxD93uH83GvtR9/c3atQor2fPnt62bdvCPs8NN9zgZWRkhP6daCocPvjgg2G/dtCgQZ4k77nnngvdtnfvXu/www/3Lr744tBtLhx+NaY//fTTniTv9ddf9zzP87Zs2eK1b9++3v0qKyu99PR07/LLL693TXWdcMIJTZ6JnAceeMCT5M2ZM+eg9wWAxvBSZUTFH/7wB/3pT3/SY4891uB7njj79+/Xvn37Qj9qa2ub/LyLFi3Svn37dMUVV4T9uoyMDJ1xxhkNfvfASy65pMHPNWLECHXs2DH08fHHHy9JKiwsDLtmd/snn3zS5LUdzOrVqzVmzBh169ZNqampOvTQQ3XFFVeotrZW//jHP0L3+8EPfqBNmzbpmWeekWR/RrNnz9Z5550XetlBQ1599VV17NhRl156adjt7k2Sv/rySvfd+prj3HPPVWVlpZ5//nnddNNNOuGEE7RgwQKNGTNGN9xwQ+h+L774ogYMGKBBgwaF/fMZNWpUg9/dsbnX8OKLL2rEiBHKyckJ+7yFhYWSpKVLl0qSTj75ZG3dulXf+c539Mc//rHey2BjwfO8ev+OH3bYYTrzzDPDbluyZIk6d+6sMWPGhN1++eWXh328Zs0a/f3vf9d3v/tdSQr7/Z577rlav359vZe2NPbv+MG4lzq1xcuFNm3apIkTJ6pXr15KS0vToYceqj59+khSgy/Bcb9/59vf/rbS0tK0ZMmSJr/Oq6++qrPPPluZmZmh/85+8pOfqKqqSps2bZJkL5uura1VUVFRo59nxYoV+uKLLzR+/Piwfwb79+/Xt771LZWVldV7GRwA/3DuqI9zB+eORD53nHbaaSorK6v3Y968eWH327Vrl1555RVddNFF6tChQ73f365du/TGG28c9Ot99bs4H3/88UpJSQn9OyFJaWlpOvbYYxv8b/er/xwGDhwo6cB/56+//rq+/PLLet/cpFevXjrzzDOj8jYpTz75pG6++Wb9z//8j6699tpWfz4AyYtvjoJW27Fjh4qKivTf//3fysnJ0datWyXZe7dI0tatW3XooYeqY8eOmjZtWtgbX/fp00cff/xxo59748aNkqSCgoIGf/6r73vToUMHdenSpcH7ZmVlhX3crl27Jm9v6j1+DqayslLDhg3Tcccdp4ceekh9+/ZVRkaG3nzzTRUVFenLL78M3fekk07SsGHDVFJSou9+97t68cUX9fHHH+vRRx9t8mtUVVXpiCOOqHeY7NGjh9LS0kLvGeQ09t5BjWnfvr0uvPBCXXjhhaHfU2FhoUpKSvT9739fJ5xwgjZu3Kg1a9bo0EMPbfBzfPVA3dxr2Lhxo/70pz8d9POOGzdO+/bt02OPPaZLLrlE+/fvV0FBge655x6dc845zfydmt69e0uyN2lvTE1NjTZv3qyTTjop7PaGfl9VVVXKzs6ud/sRRxwR9rH7d/ymm27STTfd1ODXbemfY1179+7VvHnzlJeXF5VvANCU/fv3a+TIkfrss890++2368QTT1THjh21f/9+ffOb3wz799/56p9LWlqaunXrVu/f47refPNNjRw5UsOHD9djjz0Wel+qBQsW6N577w19HfdeiU19B033z+GrT4jr+uKLL8IiAAB/cO6oj3OH4dyRuOeOzMzMZn2eqqoq7du3Tw8//LAefvjhBu/TnODb0H+nHTp0UEZGRr3b636ndqdbt25hH6enp0tS6L/Fpt7bMycnR6WlpQe9xqYsWbJEV155pa644grdfffdrfpcAEA4RKtt3rxZGzdu1IMPPqgHH3yw3s8fdthhuuCCC7RgwQJdd911YX+D5x5EG9O9e3dJ0rPPPhtaKzWlqdVBW1qwYIFqamr03HPPhV13eXl5g/efPHmyLrvsMr311lt65JFH9LWvfe2gB9Bu3brpb3/7W72/id60aZP27dsX+rNzWvtn07t3b1133XWaMmWK3n//fZ1wwgnq3r272rdvr9/85jcN/pqWXkP37t01cOBA3XvvvQ3+fE5OTuj/v+qqq3TVVVeppqZGy5Yt0x133KHzzz9f//jHP5r174yTn5+vww47TC+88IKmT5/e4LW+8MIL2r9/f71/Ng3dt1u3bnrzzTfr3f7VNyl3f0a33XabLr744gav7avfhbAl/yxffPFFbdq0SbfffnvEvzZS7733nt5++23NnTtX48ePD93e1Jv/b9iwQUcddVTo43379qmqqqrewbuup556SoceeqhefPHFsIP8ggULwu7nvsPjp59+ql69ejX4udw/h4cffrjR77bZ0BMyAG2Pc0d9nDsM547kPHfUddhhhyk1NVXjxo1r9JUG/fr1a9Nraog736xfv77ez3322Wf1/l2OxDvvvKMLL7xQZ5xxhh577LEWfx4AcAiHaLUjjjiiwZcT3n///Vq6dKn+3//7f6EHv5ycnLDD18GMGjVKaWlp+uc//9nil0n4wR2w6j5B8Tyv0Qfviy66SL1799YPf/hDLV26VL/4xS8Oekg766yz9PTTT2vBggW66KKLQre7l2y47+wYqe3btyslJUWdOnWq93PuJabun+H555+v++67T926dYvqIez888/XwoULdcwxxzT7ZU4dO3ZUYWGh9uzZowsvvFDvv/9+RAf4du3a6Uc/+pF+/OMf64EHHqj3HQ43bdqk2267TdnZ2c16yc2IESP09NNP64UXXgh7ucoTTzwRdr/jjjtO/fv319tvv6377ruv2dcbqV//+tfKyMio95LgWGjo339JTa5Zfv/73ys/Pz/08dNPP619+/Zp+PDhTX6dtLQ0paamhm778ssv9dvf/jbsfiNHjlRqaqpmz56tIUOGNPi5Tj31VHXt2lUVFRVhL4sDEDycO+rj3NE6nDuiry3PHXV16NBBI0aM0OrVqzVw4MDQojdohgwZovbt2+t3v/udLrvsstDtn376qV599dUmXwEh2X/rDb2Cwy11jz76aP3hD39odEULAJEgHKLVMjIyGnxyP3fuXKWmpjb5xP9g+vbtq2nTpmnq1Kn617/+pW9961s67LDDtHHjRr355pvq2LFj2EuQguKcc85Ru3bt9J3vfEc333yzdu3apdmzZ2vLli0N3j81NVVFRUW65ZZb1LFjx3rvd9KQK664QiUlJRo/frw+/vhjnXjiifrrX/+q++67T+eee67OPvvsFl37hx9+qFGjRum//uu/dMYZZ+jII4/Uli1b9Oc//1lz5szR8OHDNXToUEnSlClT9Ic//EGnn366brzxRg0cOFD79+9XZWWlFi9erB/+8Ic65ZRTIr6GadOmqbS0VEOHDtXkyZN13HHHadeuXfr444+1cOFC/epXv1LPnj117bXXqn379jr11FN15JFHasOGDZo+fboyMzPDXmbm3rOpqZenSdItt9yit99+O/R/x44dq8zMTL3zzjt64IEHtH37dr344ovKzMw86O/hiiuu0C9+8QtdccUVuvfee9W/f38tXLhQixYtqnffRx99VIWFhRo1apSuvPJKHXXUUfriiy/0wQcf6K233gq9D1VLffbZZ3rppZc0duzYRp8Qffzxx+rXr5/Gjx+vuXPnHvRzbtiwQc8++2y92/v27au8vDwdc8wxuvXWW+V5nrKysvSnP/2pyZfdPPfcc0pLS9M555yj999/X7fffrvy8vL07W9/u9Ffc95552nGjBm6/PLLdd1116mqqko///nP6wXLvn376sc//rHuvvtuffnll/rOd76jzMxMVVRUaPPmzbrrrrvUqVMnPfzwwxo/fry++OILXXrpperRo4c+//xzvf322/r88881e/bsg/65AIg9zh31ce7g3JHo545IPPTQQzrttNM0bNgwff/731ffvn21fft2rVmzRn/605/06quvRvXrtUTXrl11++2368c//rGuuOIKfec731FVVZXuuusuZWRk6I477mjy15944ol66qmnNH/+fB199NHKyMjQiSeeqMLCQm3dulWPPPKI3n///bBfc8wxx4RehQEAkSAcIvBuu+025ebm6qGHHtKTTz6p3bt364gjjlBBQYEmTpzo9+U16Otf/7r+8Ic/6H/+53908cUXq1u3brr88stVXFwc9qbKdY0dO1a33HKLxo0b16wDYkZGhpYsWaKpU6fqgQce0Oeff66jjjpKN91000EPG0059thjVVxcrFdffVV//OMf9fnnn+vQQw9V//79dc8996i4uDj0Hk8dO3bU8uXLdf/992vOnDlau3at2rdvr969e+vss89u8k3Wm3LkkUdq5cqVuvvuu/XAAw/o008/VefOndWvX7/QkzhJGjZsmObOnaunn35aW7ZsUffu3XXaaadp3rx5YQejmpoaHXvssQf9uocccoiefPJJjRkzRo899pjGjx+vnTt36qijjtL555+vW2+9NfSeRAfToUMHvfrqq/rBD36gW2+9VSkpKRo5cqSeeuqp0BMgZ8SIEXrzzTd17733asqUKdqyZYu6deum3NzcJsNZc82dO1e1tbVNLhZ27NghqfnvY7Rq1aqwvyF33BOAP/3pT/rBD36g66+/XmlpaTr77LP18ssvN/rn99xzz+nOO+/U7NmzlZKSotGjR2vmzJlNLgXOPPNM/eY3v9FPf/pTjR49WkcddZSuvfZa9ejRQxMmTAi777Rp09S/f389/PDD+u53v6u0tDT1799fkydPDt3ne9/7nnr37q2f/exnuv7667V9+3b16NFDgwYNataTagCJgXNHwzh3cO5orlicOyKRm5urt956S3fffbf+53/+R5s2bVLXrl3Vv39/nXvuuVH/ei112223qUePHvrlL3+p+fPnq3379ho+fLjuu+8+9e/fv8lfe9ddd2n9+vW69tprtX379tD7t1ZUVEhSgy9Df/zxxznPAGiRFM/zPL8vAoC9t9rkyZP13nvv6YQTTvD7chJGRUWFTjjhBL344os677zz/L6cwJo1a5Zuvvlm/fOf/2zT9/K78847ddddd+nzzz9v1fv5AAAiw7kjNjh3NI9f5w4AQORYHAI+W716tdauXatp06bpggsu4PAeZUuWLNGQIUM4vB/EkiVLNHnyZA7vAJDgOHfEFueO5uHcAQDxIykWhy+++KJ++MMfav/+/brlllua9QbDQFvp27evNmzYoGHDhum3v/2tjjjiCL8vCWgzLA6RzDifwA+cOwAAQCQSPhzu27dPubm5WrJkibp06aJvfOMb+tvf/qasrCy/Lw0AACQpzicAAACIB4f4fQGx9uabb+qEE07QUUcdpc6dO+vcc89t8LuLAQAAtBXOJwAAAIgHgQ+Hy5Yt0+jRo5WTk6OUlBQtWLCg3n1mzZqlfv36KSMjQ/n5+Vq+fHno5z777DMdddRRoY979uypf//7321x6QAAIEFxPgEAAEAyCHw4rKmpUV5enh555JEGf37+/PmaMmWKpk6dqtWrV2vYsGEqLCxUZWWlJKmhV2KnpKTE9JoBAEBi43wCAACAZBD476pcWFiowsLCRn9+xowZmjBhQugNxWfOnKlFixZp9uzZmj59uo466qiwv8H/9NNPdcoppzT6+Xbv3q3du3eHPt6/f7+++OILdevWjQM9AACN8DxP27dvV05Ojg45JPB/L9lqnE8AAAi+ZDufALEQ+HDYlD179mjVqlW69dZbw24fOXKkVqxYIUk6+eST9d577+nf//63unTpooULF+onP/lJo59z+vTpuuuuu2J63QAAJKp169apZ8+efl+GrzifAAAQLJxPgJaL63C4efNm1dbWKjs7O+z27OxsbdiwQZKUlpamBx98UCNGjND+/ft18803q1u3bo1+zttuu03FxcWhj7dt26bevXvrnxX/VOfOnWPzG4kTW7fv8vsSfPf51i/9voRA+Jg/B0nSR9v4b6JiS43flxAI737On0Ptrp36x/T/SvrHSqltzydr3l+T9H/mVdt4TPp31U6/LyEQ/rmVx2WJx2an7PMdfl+C7yo+2+73JfjO271T1bOvTPrHSqA14jocOl99iY7neWG3jRkzRmPGjGnW50pPT1d6enq92zt37qwuXbq07kLj2JbqXercuZ3fl+GrTVt2qlMnHnD+teVLdejIn8OHW79URodOfl+G79rt4iWS5Zt2KDWjo9+X4buPNtgTNF42ewDnk9jbvPVLde58qN+X4buOu1P9vgTffbTlS7XvyOPye1/UKJ3zid7YtF1p7XlsTkmv9fsSfLfjc3tbEM4nQMvF9Yv8u3fvrtTU1NDf3jubNm2q97f8aLkt1fztLcy/trDqkCwawp6cAJL04XoWDXVxPmkbm/nfYknSus38bzEMj8vmjU08JknSu59W+30JABJEXIfDdu3aKT8/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XwqiiGhoiIaGtSGQvDifBAePzXCIhoZoCACIZxGHwyeffFLbtm3TWWedpa997Wu6//779dlnn8Xi2qLq3nvv1SmnnOL3ZUQNa0M4RENDNITD2jA5cT4JBqKhYW0Ih2iIulgbAohHEb9UefTo0Ro9erSqqqo0b948zZ07V7fffrtGjRqlq6++WmPGjFFaWsSfNqY++ugj/f3vf9fo0aP13nvv+X05rUY0NDw5gUM0hEM0TF6cT/zH47IhGhrWhkA4oiHiRcWWGrXbleL3ZQTani+T68zT4m+O0q1bN9144416++23NWPGDL388su69NJLlZOTo5/85CfauXNnsz7PsmXLNHr0aOXk5CglJUULFiyod59Zs2apX79+ysjIUH5+vpYvXx7Rtd50002aPn16RL8mqIiGhicnhrUhcADREBLnE/iLaGiIhoa1IRyiIYB41uK/et+wYYPmzZunxx9/XJWVlbr00ks1YcIEffbZZ7r//vv1xhtvaPHixQf9PDU1NcrLy9NVV12lSy65pN7Pz58/X1OmTNGsWbN06qmn6tFHH1VhYaEqKirUu3dvSVJ+fr52795d79cuXrxYZWVl+trXvqavfe1rWrFiRUt/uwgQoqEhGhrWhgDq4nziDx6b4RANDdEQAJAoIg6Hzz33nB5//HEtWrRIubm5Kioq0ve+9z117do1dJ9BgwbppJNOatbnKywsVGFhYaM/P2PGDE2YMEHXXHONJGnmzJlatGiRZs+eHfpb+lWrVjX669944w099dRTeuaZZ7Rjxw7t3btXXbp00U9+8pMG77979+6wQ351dXAOP6wN4RANDdEQDmtDcD7xD9HQsDaEQzREXawNAcS7iF+qfNVVVyknJ0evvfaaysvLdcMNN4QdyiXp6KOP1tSpU1t9cXv27NGqVas0cuTIsNtHjhzZ7L+dnz59utatW6ePP/5YP//5z3Xttdc2eih398/MzAz96NWrV6t+D9FCNDQ8OYFDNIRDNITE+cQvPC4boqFhbQiEIxoCSAQRLw7Xr1+vDh06NHmf9u3b64477mjxRTmbN29WbW2tsrOzw27Pzs7Whg0bWv35G3LbbbepuLg49HF1dbXvh3OioeHJiWFtCBxANITD+QR+IRoaoqFhbQiHaAggUUQcDg92KI+FlJTw7+jjeV6925rjyiuvPOh90tPTlZ6eHvHnRmwR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l81mU3Fxsa9LAQAAkER/AgBwxOAQAAAAAAAAgAMGhwA8qrGxUU1NTb4uw2fq6up8XQIAALgA/Qn9CQDAOQwOAYt56623lJCQoB49eqhfv366+eabVVNTI0lqamrSU089pSFDhig8PFzJycn68MMP7ffdvn27bDabfvjhB/u24uJi2Ww2lZeXS5I2btyoSy65RFu3blV8fLzCw8P1zTffqLa2Vo899phiY2MVHh6uK6+8Un/5y1/s59m/f78yMjLUu3dvRUdHa+bMmaqsrGw3xwMPPKDExETV1tZKkurr65WSkqL777+/w/z79u3TrbfeqsjISPXp00epqak6dOiQU/klae/evbrpppvs37958+apurravn/OnDm64447lJmZqZiYGI0YMUKStHv3bl1zzTWKiIjQ2LFjVVRU1GGdAABYCf0J/QkAwD8xOAQs5NixY7rvvvv0wAMPqKSkRNu3b9edd94pY4wk6YUXXtCzzz6rVatW6csvv9TUqVM1ffp0HTx4sFOPc+7cOWVmZmrDhg3at2+fBg4cqFmzZunNN9/Uiy++qJKSEr3yyivq3bu3va5JkyYpOTlZe/bs0YcffqgTJ07ol7/8ZbuP8eKLL6qmpkZLliyRJD3++OOqrKzUunXr2r3PkSNHNHHiREVEROiTTz5RYWGhHnjgATU0NDiV/9y5c7rlllt06aWXqqCgQJs3b9ZHH32kRx55pNXjfPzxxyopKVF2dra2bt2qmpoa3XbbbRo5cqQKCwv15JNPavHixZ36ngIAEKjoT+hPAAB+zACwjMLCQiPJlJeXt7k/JibGrFixotW2cePGmQULFhhjjMnJyTGSzOnTp+37i4qKjCRTVlZmjDHmtddeM5JMcXGx/ZjS0lIjyWRnZ7f5uI8//rhJS0trte3w4cNGkiktLW03T35+vgkNDTWPP/64CQkJMTt27Gj3WGOMWbp0qRk2bJipq6trc//F8q9fv95ceumlprq62r7//fffN0FBQeb48ePGGGNmz55toqOjTW1trf2YP//5zyYqKsrU1NTYt7388stGkikqKuqwZgAAAh39Cf0JAMB/seIQsJCkpCRNmTJFCQkJuueee/Tqq6/q9OnTkqSqqiodPXpU119/fav7XH/99SopKenU44SFhSkxMdF+u7i4WMHBwZo0aVKbxxcWFionJ0e9e/e2f1111VWSZH+ZTlvGjx+vxYsX6w9/+IN++9vfauLEifZ96enp9nONGjXKXkdqaqpCQ0MdzuVM/pKSEiUlJalXr16t9jc1Nam0tNS+LSEhQWFhYfbbzffr2bNnq9oBAAD9Cf0JAMCfhfi6AADeExwcrOzsbOXn5+tf//qXXnrpJS1btkyff/65+vXrJ0my2Wyt7mOMsW8LCgqyb2tWX1/v8Dg9evRodZ4ePXp0WFdTU5OmTZumZ555xmHfoEGDOrxfXl6egoODHV6utGHDBv3444+SZG/EL1aH1HH+ln/u6H4tG/fm+wEAgLbRn9CfAAD8FysOAYux2Wy6/vrrtXz5chUVFSksLExbtmxRZGSkYmJi9Omnn7Y6Pj8/X1dffbUkacCAAZJ+es+fZsXFxRd9zISEBDU1NWnHjh1t7h8zZoz27dunyy67TMOHD2/1dWGT29Kf/vQnlZSUaMeOHdq2bZtee+01+77BgwfbzzF06FBJUmJionbu3NnmPyacyR8fH6/i4mL7m7VLUl5enoKCguxvMt6W+Ph4ffHFF/Z/KEjSrl272j0eAACroT+hPwEA+ClfvUYagPft2rXLrFixwhQUFJhvvvnGZGVlmbCwMPPBBx8YY4xZvXq1iYyMNG+++ab56quvzO9+9zsTGhpqDhw4YIwxpq6uzsTGxpp77rnHlJaWmq1bt5qRI0c6vIdQ3759HR57zpw5JjY21mzZssX897//NTk5OWbTpk3GGGOOHDliBgwYYO6++27z+eefm0OHDplt27aZX/3qV6ahoaHNLEVFRSYsLMy89957xhhjNmzYYPr06WMOHTrUbv7KykrTr18/c+edd5qCggJz4MAB8/rrr5uvvvrKqfw1NTVm0KBB5q677jJ79+41n3zyibn88svN7Nmz7Y8xe/Zsc/vtt7d63LNnz5r+/fub++67z+zbt8+8//77Zvjw4byHEAAAhv6E/gQA4M8YHAIWsn//fjN16lQzYMAAEx4ebkaMGGFeeukl+/7GxkazfPlyM3jwYBMaGmqSkpLMP//5z1bn+PTTT01CQoKJiIgwqampZvPmzU415j/++KP5zW9+YwYNGmTCwsLM8OHDzV//+lf7/gMHDpgZM2aYSy65xPTo0cNcddVVZuHChaapqanNc8XHx5t58+a12j5jxgwzYcKEdpt5Y4z54osvTFpamunZs6fp06ePSU1NtTfzzuT/8ssvzeTJk01ERISJiooyDz30kDl79qx9f1uNuTHGfPbZZyYpKcmEhYWZ5ORk8/bbb9OYAwBg6E+MoT8BAPgvmzG8uQUAAAAAAACA1niPQwAAAAAAAAAOGBwCAAAAAAAAcMDgEAAAAAAAAIADBocAAAAAAAAAHDA4BAAAAAAAAOCAwSEAAAAAAAAABwwOAQAAAAAAADhgcAgAAAAAAADAAYNDAAAAAAAAAA4YHAIAAAAAAABwwOAQAAAAAAAAgAMGhwAAAAAAAAAc/A8T0cH1jAEVUQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -938,9 +435,11 @@ } ], "source": [ + "import matplotlib.pyplot as plt\n", "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap2.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap1.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_helm, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", "fig.subplots_adjust(right=0.8)\n", "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", @@ -958,42 +457,10 @@ "ax2.set_xlabel(\"source x-coord\")\n", "ax2.set_ylabel(\"source y-coord\")\n", "\n", - "ax1.set_title('8-Term Taylor Series, Order 5, Laplace Rel. Err')\n", - "ax2.set_title('8-Term Taylor Series, Order 12, Laplace Rel. Err')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Compare with Predicted Taylor Error" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[log(sqrt(x1**2)), 0, x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0],\n", - " [0, -1/x1**2, 0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8],\n", - " [x1**(-2), 0, -6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0],\n", - " [0, 6/x1**4, 0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10],\n", - " [-6/x1**4, 0, 120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0],\n", - " [0, -120/x1**6, 0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12],\n", - " [120/x1**6, 0, -5040/x1**8, 0, 362880/x1**10, 0, -39916800/x1**12, 0],\n", - " [0, 5040/x1**8, 0, -362880/x1**10, 0, 39916800/x1**12, 0, -6227020800/x1**14]]" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "true_grid_lap" + "ax1.set_title('4-Term Taylor Series, Order 7, Laplace')\n", + "ax2.set_title('4-Term Taylor Series, Order 7, Helmholtz')\n", + "\n", + "plt.show()" ] }, { @@ -1001,10 +468,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "def predicted_taylor_error(loc):\n", - " " - ] + "source": [] } ], "metadata": { diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index a3ff70e39..bdaebc34d 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -13,7 +13,7 @@ " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence, _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x\n", + "from sumpy.recurrence import get_recurrence, _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x, recurrence_from_pde, process_recurrence_relation,ode_in_x_to_coeff_array, recurrence_from_coeff_array, shift_recurrence\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -36,6 +36,48 @@ "from immutabledict import immutabledict" ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(4,\n", + " (n + (n - 2)**3 - 2*(n - 2)**2 - 2)*s(n - 3)/(x0**3 + x0*x1**2) + (3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*s(n - 1)/(x0**3 + x0*x1**2) + (-n + 3*(n - 2)**2 + 2)*s(n - 2)/(x0**2 + x1**2))" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "process_recurrence_relation(recurrence_from_pde(laplace2d))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "ode_in_r, var, ode_order = pde_to_ode_in_r(laplace2d)\n", + "ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify()\n", + "ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify()" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -43,13 +85,11 @@ "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle f_{x1} x_{0}^{2} - f_{x1} x_{1}^{2} + f_{x2} x_{0}^{3} + f_{x2} x_{0} x_{1}^{2}$" + ], "text/plain": [ - "{f_r0: f_x0,\n", - " f_r1: f_x1*sqrt(x0**2 + x1**2)/x0,\n", - " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2,\n", - " f_r3: 3*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**5 - 3*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**4 + f_x3*sqrt(x0**2 + x1**2)/x0 + f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**3,\n", - " f_r4: -12*f_x1*x1**2/x0**5 - 15*f_x1*x1**4/x0**7 + 12*f_x2*x1**2/x0**4 + 15*f_x2*x1**4/x0**6 - 6*f_x3*x1**2/x0**3 - 6*f_x3*x1**4/x0**5 + f_x4 + 2*f_x4*x1**2/x0**2 + f_x4*x1**4/x0**4,\n", - " f_r5: 60*f_x1*x1**2*sqrt(x0**2 + x1**2)/x0**7 + 105*f_x1*x1**4*sqrt(x0**2 + x1**2)/x0**9 - 60*f_x2*x1**2*sqrt(x0**2 + x1**2)/x0**6 - 105*f_x2*x1**4*sqrt(x0**2 + x1**2)/x0**8 + 30*f_x3*x1**2*sqrt(x0**2 + x1**2)/x0**5 + 45*f_x3*x1**4*sqrt(x0**2 + x1**2)/x0**7 - 10*f_x4*x1**2*sqrt(x0**2 + x1**2)/x0**4 - 10*f_x4*x1**4*sqrt(x0**2 + x1**2)/x0**6 + f_x5*sqrt(x0**2 + x1**2)/x0 + 2*f_x5*x1**2*sqrt(x0**2 + x1**2)/x0**3 + f_x5*x1**4*sqrt(x0**2 + x1**2)/x0**5}" + "f_x1*x0**2 - f_x1*x1**2 + f_x2*x0**3 + f_x2*x0*x1**2" ] }, "execution_count": 5, @@ -58,174 +98,296 @@ } ], "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "_generate_nd_derivative_relations(var, 5)" + "ode_in_x_cleared" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 31, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[2, 3, x1, x0, f_x1, -1, f_x2]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "def get_ode_in_x(x_order, y_order):\n", - " single_partial = DerivativeIdentifier((x_order,y_order), 0)\n", - " #Coefficients\n", - " list_pde_dict = immutabledict({single_partial: 1})\n", - " random_pde = LinearPDESystemOperator(2,(list_pde_dict,))\n", - "\n", - " ode_in_r_random, var, ode_order_random = pde_to_ode_in_r(random_pde)\n", - " ode_in_x_random = ode_in_r_to_x(ode_in_r_random, var, ode_order_random).simplify()\n", - "\n", - " return ode_in_x_random" + "fx1 = list(ode_in_x_cleared.atoms())[4]\n", + "fx2 = list(ode_in_x_cleared.atoms())[-1]\n", + "list(ode_in_x_cleared.atoms())" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 34, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle x_{0}^{3} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} + x_{0}^{2} \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)} + x_{0} x_{1}^{2} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} - x_{1}^{2} \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)}$" + ], + "text/plain": [ + "x0**3*Derivative(g(x0), (x0, 2)) + x0**2*Derivative(g(x0), x0) + x0*x1**2*Derivative(g(x0), (x0, 2)) - x1**2*Derivative(g(x0), x0)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "n_rows = 1\n", - "n_cols = 1\n", - "table = []\n", - "for i in range(n_rows):\n", - " temp = []\n", - " for j in range(n_cols):\n", - " temp.append(get_ode_in_x(i, j))\n", - " table.append(temp)" + "new_ode_x = ode_in_x_cleared.subs(fx1, sp.diff(g(var[0]), var[0], 1)).subs(fx2, sp.diff(g(var[0]), var[0], 2))\n", + "new_ode_x" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 37, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle x_{0}^{3} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + 4 x_{0}^{2} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} + x_{0} x_{1}^{2} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + 2 x_{0} \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)}$" + ], "text/plain": [ - "[[f_x0,\n", - " f_x1*x1/x0,\n", - " (f_x1*x0**2 - f_x1*x1**2 + f_x2*x0*x1**2)/x0**3,\n", - " x1*(-3*f_x1*x0**2 + 3*f_x1*x1**2 + 3*f_x2*x0**3 - 3*f_x2*x0*x1**2 + f_x3*x0**2*x1**2)/x0**5],\n", - " [f_x1,\n", - " x1*(-f_x1 + f_x2*x0)/x0**2,\n", - " (-f_x1*x0**2 + 3*f_x1*x1**2 + f_x2*x0**3 - 3*f_x2*x0*x1**2 + f_x3*x0**2*x1**2)/x0**4,\n", - " x1*(9*f_x1*x0**2 - 15*f_x1*x1**2 - 9*f_x2*x0**3 + 15*f_x2*x0*x1**2 + 3*f_x3*x0**4 - 6*f_x3*x0**2*x1**2 + f_x4*x0**3*x1**2)/x0**6],\n", - " [f_x2,\n", - " x1*(2*f_x1 - 2*f_x2*x0 + f_x3*x0**2)/x0**3,\n", - " (2*f_x1*x0**2 - 12*f_x1*x1**2 - 2*f_x2*x0**3 + 12*f_x2*x0*x1**2 + f_x3*x0**4 - 5*f_x3*x0**2*x1**2 + f_x4*x0**3*x1**2)/x0**5,\n", - " x1*(-36*f_x1*x0**2 + 90*f_x1*x1**2 + 36*f_x2*x0**3 - 90*f_x2*x0*x1**2 - 15*f_x3*x0**4 + 39*f_x3*x0**2*x1**2 + 3*f_x4*x0**5 - 9*f_x4*x0**3*x1**2 + f_x5*x0**4*x1**2)/x0**7],\n", - " [f_x3,\n", - " x1*(-6*f_x1 + 6*f_x2*x0 - 3*f_x3*x0**2 + f_x4*x0**3)/x0**4,\n", - " (-6*f_x1*x0**2 + 60*f_x1*x1**2 + 6*f_x2*x0**3 - 60*f_x2*x0*x1**2 - 3*f_x3*x0**4 + 27*f_x3*x0**2*x1**2 + f_x4*x0**5 - 7*f_x4*x0**3*x1**2 + f_x5*x0**4*x1**2)/x0**6,\n", - " x1*(180*f_x1*x0**2 - 630*f_x1*x1**2 - 180*f_x2*x0**3 + 630*f_x2*x0*x1**2 + 81*f_x3*x0**4 - 285*f_x3*x0**2*x1**2 - 21*f_x4*x0**5 + 75*f_x4*x0**3*x1**2 + 3*f_x5*x0**6 - 12*f_x5*x0**4*x1**2 + f_x6*x0**5*x1**2)/x0**8]]" + "x0**3*Derivative(g(x0), (x0, 3)) + 4*x0**2*Derivative(g(x0), (x0, 2)) + x0*x1**2*Derivative(g(x0), (x0, 3)) + 2*x0*Derivative(g(x0), x0)" ] }, - "execution_count": 8, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "table" + "sp.diff(new_ode_x, var[0], 1)" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 36, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle x_{0}^{3} \\frac{d^{4}}{d x_{0}^{4}} g{\\left(x_{0} \\right)} + 7 x_{0}^{2} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + x_{0} x_{1}^{2} \\frac{d^{4}}{d x_{0}^{4}} g{\\left(x_{0} \\right)} + 10 x_{0} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} + x_{1}^{2} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + 2 \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)}$" + ], "text/plain": [ - "{f_r0: f_x0,\n", - " f_r1: f_x1*sqrt(x0**2 + x1**2)/x0,\n", - " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2}" + "x0**3*Derivative(g(x0), (x0, 4)) + 7*x0**2*Derivative(g(x0), (x0, 3)) + x0*x1**2*Derivative(g(x0), (x0, 4)) + 10*x0*Derivative(g(x0), (x0, 2)) + x1**2*Derivative(g(x0), (x0, 3)) + 2*Derivative(g(x0), x0)" ] }, - "execution_count": 10, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "_generate_nd_derivative_relations(var, 2)" + "sp.diff(new_ode_x, var[0], 2)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\operatorname{Poly}{\\left( \\left(x_{0}^{3} + x_{0} x_{1}^{2}\\right) s{\\left(n + 2 \\right)} + \\left(3 n x_{0}^{2} + n x_{1}^{2} + x_{0}^{2} - x_{1}^{2}\\right) s{\\left(n + 1 \\right)} + \\left(3 n^{2} x_{0} - n x_{0}\\right) s{\\left(n \\right)} + \\left(n^{3} - 2 n^{2} + n\\right) s{\\left(n - 1 \\right)}, s{\\left(n + 2 \\right)}, s{\\left(n + 1 \\right)}, s{\\left(n \\right)}, s{\\left(n - 1 \\right)}, domain=\\mathbb{Z}\\left[x_{0}, n, x_{1}\\right] \\right)}$" + ], + "text/plain": [ + "Poly((x0**3 + x0*x1**2)*(s(n + 2)) + (3*n*x0**2 + n*x1**2 + x0**2 - x1**2)*(s(n + 1)) + (3*n**2*x0 - n*x0)*(s(n)) + (n**3 - 2*n**2 + n)*(s(n - 1)), s(n + 2), s(n + 1), s(n), s(n - 1), domain='ZZ[x0,n,x1]')" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "s = sp.Function(\"s\")\n", + "n = sp.Symbol('n')\n", + "sp.poly(recurrence_from_pde(laplace2d), s(n+2), s(n+1), s(n), s(n-1))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - "k = 1\n", - "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - "derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(6)]" + "def compute_derivatives_h2d(p, k=1.0):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + " derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs_helmholtz" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))" + "num_derivs = 8\n", + "dervis_helm = compute_derivatives_h2d(num_derivs)\n", + "var = _make_sympy_vec(\"x\", 2)" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "import time\n", - "times = []\n", - "n_d = 8\n", - "for i in range(n_d):\n", + "timings = []" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.005148172378540039\n", + "0.017525911331176758\n", + "0.03989005088806152\n", + "0.07448387145996094\n", + "0.11824178695678711\n", + "0.29863595962524414\n", + "0.5367820262908936\n", + "1.1351509094238281\n" + ] + } + ], + "source": [ + "for i in range(num_derivs):\n", " start = time.time()\n", - " sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " dervis_helm[i].subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).evalf()\n", " end = time.time()\n", - " times.append(end-start)" + " print(end-start)\n", + " timings.append(end-start)" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Helmholtz 2D')" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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a/PmzcX61a1b1/nPtWrVuupxhw4dqqlTp2rXrl06e/asjhw5ooceesj5+ejRo/W///1PCQkJCgwMlJeXl8LDw8t802yXLl3UvHlzLVu2TI8//rg++OADJSUlOT8vKirSY489ppiYmGJjmzZtWuIxW7VqpYyMjBI/+89//iNJatmypbPtt9/HpQB0JUVFRRowYIBeeOGFYp81btz4sscGUDLCDQBJ0saNG7V3715NnjxZktS5c2fl5OTIw8PDeQNveTVp0kR33XWXli5dqrNnz6p3797y8/Nzfp6amqrExET169dPknTkyBGXm2klqUaNGiosLLzquYYOHaqlS5eqSZMmqlatmqKiopyfde7cWfv27VOLFi1KXftDDz2k6dOn66uvvnK576aoqEj/+Mc/1KZNm2L34/xamzZt9NZbb+ns2bOqWbOmJBV7wqpz585auXKlgoKC5OHBf5aB34vLUsB1qKCgQDk5OTp69Kh27dql5557TgMHDlT//v01cuRISRdv0A0PD9d9992n9evX6/Dhw9q2bZuefvpppaWllfmcw4YN07Jly7RixQoNHz7c5bMWLVrorbfeUmZmpr744gsNGzbMGQQuCQoK0qeffqqcnBz9+OOPVzzPrl279Le//U2DBg2St7e387O//OUv2r59u8aPH689e/bowIEDWrNmjZ588snLHm/y5Mnq0qWLBgwYoBUrVigrK0s7d+7UAw88oMzMTC1cuNDlstRvDR06VNWqVdPYsWOVkZGh5ORkvfTSSy59xo8frxMnTujhhx/Wl19+qYMHD2rDhg0aM2ZMqQIdAFeEG+A6tG7dOjVu3FhBQUG69957tWnTJr366qv68MMPVb16dUkX7yNJTk7WXXfdpTFjxqhVq1Z66KGHdPjwYZdVl9J68MEHdfz4cf3888+67777XD5btGiRfvzxR3Xq1EkjRoxQTEyMGjZs6NLn5ZdfVkpKigICAtSpU6fLnqdly5a67bbb9PXXX7vc1yNdfPx8y5YtOnDggLp3765OnTrpr3/9q8uln9/y9vbWxo0bNWrUKE2bNk0tWrTQvffeq+rVq2vHjh0lPub+a7Vr19batWuVkZGhTp06afr06cUuP/n7+2vr1q0qLCxU37591bZtW02cOFG+vr6qVo3/TANl5bBKc0EYAACgiuB/CQAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwyv8HmG0cPoUX3OUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar([i for i in range(num_derivs)], timings)\n", + "plt.ylabel('Flops')\n", + "plt.xlabel('Derivative Order')\n", + "plt.title(\"Helmholtz 2D\")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ - "x_a = np.array([i+1 for i in range(n_d)])\n", - "times = np.array(times)" + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "n_init, _, r = get_processed_and_shifted_recurrence(helmholtz2d)" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-x0**2*s(0)/(x0**2 + x1**2) + (x0**2 - x1**2)*s(1)/(x0**3 + x0*x1**2)\n", + "3*x0**2*s(0)/(x0**3 + x0*x1**2) + 4*x0**2*s(2)/(x0**3 + x0*x1**2) - (x0**2 + 2)*s(1)/(x0**2 + x1**2)\n", + "-(x0**2 + 10)*s(2)/(x0**2 + x1**2) + (6*x0**2 + 2)*s(1)/(x0**3 + x0*x1**2) + (7*x0**2 + x1**2)*s(3)/(x0**3 + x0*x1**2) - 6*s(0)/(x0**2 + x1**2)\n", + "-(x0**2 + 24)*s(3)/(x0**2 + x1**2) + (9*x0**2 + 12)*s(2)/(x0**3 + x0*x1**2) + (10*x0**2 + 2*x1**2)*s(4)/(x0**3 + x0*x1**2) + 6*s(0)/(x0**3 + x0*x1**2) - 18*s(1)/(x0**2 + x1**2)\n", + "-(x0**2 + 44)*s(4)/(x0**2 + x1**2) + (12*x0**2 + 36)*s(3)/(x0**3 + x0*x1**2) + (13*x0**2 + 3*x1**2)*s(5)/(x0**3 + x0*x1**2) + 24*s(1)/(x0**3 + x0*x1**2) - 36*s(2)/(x0**2 + x1**2)\n", + "-(x0**2 + 70)*s(5)/(x0**2 + x1**2) + (15*x0**2 + 80)*s(4)/(x0**3 + x0*x1**2) + (16*x0**2 + 4*x1**2)*s(6)/(x0**3 + x0*x1**2) + 60*s(2)/(x0**3 + x0*x1**2) - 60*s(3)/(x0**2 + x1**2)\n" + ] + } + ], + "source": [ + "s=sp.Function('s')\n", + "n=sp.Symbol('n')\n", + "\n", + "check = []\n", + "x_coord = abs(np.random.rand()*1) # noqa: NPY002\n", + "y_coord = abs(np.random.rand()*1) # noqa: NPY002\n", + "coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", + "\n", + "subs_dict = {s(0): dervis_helm[0].subs(coord_dict).evalf(), s(1): dervis_helm[1].subs(coord_dict).evalf()}\n", + "\n", + "assert n_init == 2\n", + "for i in range(n_init, num_derivs):\n", + " start = time.time()\n", + " print(r.subs(n, i))\n", + " res = abs(r.subs(n, i).subs(subs_dict).subs(coord_dict).evalf())\n", + " end = time.time()\n", + " check.append(end-start)\n", + " # pylint: disable-next=not-callable\n", + " subs_dict[s(i)] = res" + ] + }, + { + "cell_type": "code", + "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "Text(0.5, 1.0, 'Helmholtz 2D')" ] }, - "execution_count": 27, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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dejQoUiXFRYZGRk9voj4ySefjHRpYfHpp5/qmWeeUWZmpuLj43Xbbbfp2WefDbyEOdxCusLujeLy5cv627/9Wz3yyCP61re+Felywm7//v168skn9dWvflWffvqp1qxZo9mzZ+vEiRMaMWJEpMsLudGjR+vHP/6xvvzlL0uStmzZonvvvVdHjhzRuHHjIlxd+NXU1GjTpk264447Il1KWI0bN05//vOfA/uxsbERrCb8Lly4oK997WuaMWOG9u7dq6SkJJ0+fVq33nprpEsLi5qaGrW3twf2a2trNWvWrC6vu7mRlZeX6xe/+IW2bNmicePG6eDBg3rkkUfkdDq1dOnSsNdDeBmAOXPmaM6cOZEuI2L27dvXZX/z5s1KSkrSoUOH9Pd///cRqip8CgsLu+yvW7dOFRUVeuedd6IuvFy6dEkPPvigfvWrX2nt2rWRLieshg0bFpW9LZ3Ky8uVmpqqzZs3B45lZGRErqAw+9KXvtRl/8c//rGysrKUn58foYrC68CBA7r33nt19913S7r2v/2//du/6eDBgxGph2EjBK3zXVSjRo2KcCXh197erh07dujy5cvKy8uLdDlh9+STT+ruu+/WN77xjUiXEnYnT55USkqKMjMzVVRUpPfeey/SJYXV7373O02aNEkPPPCAkpKSNGHCBP3qV7+KdFkRcfXqVW3btk2PPvrooL8AeKiaNm2a/uM//kPvvvuuJOmvf/2r3nrrLf3DP/xDROqh5wVBsSxLTz/9tKZNm6bc3NxIlxM2x44dU15entra2nTLLbdo9+7dysnJiXRZYbVjxw4dPnxYNTU1kS4l7KZMmaKtW7dq7Nix+vDDD7V27VrdddddOn78uBITEyNdXli89957qqio0NNPP60f/vCHqq6u1j//8z/LbrfrO9/5TqTLC6vf/va3unjxohYuXBjpUsJm5cqV8nq9ys7OVmxsrNrb27Vu3Tr90z/9U0TqIbwgKEuWLNF//dd/6a233op0KWH1N3/zNzp69KguXryoXbt26eGHH9b+/fujJsA0NDRo6dKlqqysVFxcXKTLCbvPDht/5StfUV5enrKysrRlyxY9/fTTEawsfDo6OjRp0iStX79ekjRhwgQdP35cFRUVURdefv3rX2vOnDlKSUmJdClhs3PnTm3btk3bt2/XuHHjdPToUS1btkwpKSl6+OGHw14P4QUD9v3vf1+/+93v9Oabb2r06NGRLiesbr755sCE3UmTJqmmpkb/+q//ql/+8pcRriw8Dh06pObmZt15552BY+3t7XrzzTe1ceNG+f3+qJrAOmLECH3lK1/RyZMnI11K2Hg8nm5h/fbbb9euXbsiVFFknD17Vn/+85/16quvRrqUsPrBD36gVatWqaioSNK1EH/27FmVlZURXjA0WZal73//+9q9e7eqqqqUmZkZ6ZIizrIs+f3+SJcRNl//+td17NixLsceeeQRZWdna+XKlVEVXCTJ7/frv//7v/V3f/d3kS4lbL72ta91WyLh3XffVXp6eoQqiozOBxY6J65Gi48//lgxMV2nycbGxvKo9FB26dIlnTp1KrBfX1+vo0ePatSoUUpLS4tgZeHx5JNPavv27XrttdfkcDjU1NQkSXI6nYqPj49wdaH3wx/+UHPmzFFqaqpaW1u1Y8cOVVVVdXsK60bmcDi6zXEaMWKEEhMTo2Lu0/Lly1VYWKi0tDQ1Nzdr7dq18vl8Efkvzkh56qmndNddd2n9+vX6x3/8R1VXV2vTpk3atGlTpEsLm46ODm3evFkPP/ywhg2Lrp/PwsJCrVu3TmlpaRo3bpyOHDmiDRs26NFHH41MQRb69Ze//MWS1G17+OGHI11aWPR075KszZs3R7q0sHj00Uet9PR06+abb7a+9KUvWV//+tetysrKSJcVcfn5+dbSpUsjXUZYfPvb37Y8Ho910003WSkpKda8efOs48ePR7qssNuzZ4+Vm5tr2e12Kzs729q0aVOkSwqrP/3pT5Ykq66uLtKlhJ3P57OWLl1qpaWlWXFxcdZtt91mrVmzxvL7/RGpx2ZZlhWZ2AQAABA81nkBAABGIbwAAACjEF4AAIBRCC8AAMAohBcAAGAUwgsAADAK4QUAABiF8AIAAIxCeAEAAEYhvAAAAKMQXgAAgFEILwAAwCj/H3ci9oGUxxGCAAAAAElFTkSuQmCC", + "image/png": "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xcXFadGiRfLz89PChQs1ePBge01ycrJKSko0ZMgQh7lmzZql2bNnV2peAAAAl4YkSZo4caImTpxo3LZmzRqnsb59+yozM7PC4506depnzwsAAODyb7cBAABUR4QkAAAAA0ISAACAASEJAADAgJAEAABgQEgCAAAwICQBAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGBCSAAAADAhJAAAABoQkAAAAA0ISAACAASEJAADAgJAEAABgQEgCAAAwICQBAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBQpZCUmZmpo0eP2tffffddPfLII5o+fbpKSkpuWnMAAACuUqWQ9Ic//EGfffaZJOnkyZMaNmyY7rjjDr311lt69tlnb2qDAAAArlClkPTZZ5+pa9eukqS33npLffr00Ztvvqk1a9Zow4YNN7M/AAAAl6hSSLIsS+Xl5ZKkHTt2aNCgQZIkf39/FRYW3rzuAAAAXKRKISk0NFQvvvii/vGPfyg9PV3R0dGSpJycHPn4+NzUBgEAAFyhSiEpKSlJmZmZevrppzVjxgy1bt1akvT2228rPDz8pjYIAADgCm5V2alz584O3267at68eapdu/bPbgoAAMDVqhSSrjp06JCys7Nls9nUrl07hYaG3qy+AAAAXKpKIenLL7/U8OHDtXfvXjVq1EiS9O233yo8PFxr166Vv7//zewRAADgV1elZ5LGjh2r0tJSZWdn6+uvv9bXX3+t7OxsWZalcePG3eweAQAAfnVVupK0Z88e7du3T/fcc4997J577tHf//539e7d+6Y1BwAA4CpVupLUokULlZaWOo1fvnxZd911189uCgAAwNWqFJJeeeUVPfPMMzp06JAsy5J05SHuyZMna/78+Te1QQAAAFeoUkgaM2aMjhw5op49e8rT01MeHh7q2bOnMjMzNXbsWDVu3Ni+XE9ycrKCgoLk6empkJAQ7dmz55r16enpCgkJkaenp1q2bKklS5Y4bD927JgGDx6swMBA2Ww2JSUlOR1j9uzZstlsDouvr+8NnQMAAHBrq9IzSabgURXr16/XlClTlJycrN69e2vp0qUa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zJmj/Px8dezYUampqQoICJAk5efnO7y7KCgoSKmpqYqLi9OiRYvk5+enhQsXavDgwfaa8PBwrVu3TjNnztRzzz2nVq1aaf369erZs2el5wUAALBZlXm8G7eN4uJiJSYmKiEhwen2IirGebtxnLOq4bxVDeetam7380ZIAgAAMHD5b7cBAABUR4QkAAAAA0ISAACAASEJAADAgJAEJSYmqkePHmrQoIGaNWumRx55RJ9++qmr26r2Fi9erM6dO9tfshYWFqYPPvjA1W3VOImJibLZbJoyZYqrW6nWZs+eLZvN5rD4+vq6uq1q7/Tp0xo5cqS8vb11xx13qGvXrjp8+LCr26rWAgMDnf5ds9lsmjRpkqtb+9W5/Lfb4Hrp6emaNGmSevToocuXL2vGjBmKiorS8ePHVa9ePVe3V23dfffdeumll9S6dWtJ0muvvaaHH35YWVlZ6tChg4u7qxkOHjyoZcuWqXPnzq5upUbo0KGDduzYYV+vXbu2C7up/r755hv17t1b9913nz744AM1a9ZM//nPf27pX0u4GQ4ePKiysjL7+v/7f/9P/fv316OPPurCrlyDVwDAyX//+181a9ZM6enp6tOnj6vbqVEaN26sefPmady4ca5updr77rvv1L17dyUnJ+vFF19U165dlZSU5Oq2qq3Zs2frnXfe0ZEjR1zdSo0xbdo07d27V3v27HF1KzXalClT9P777+vEiRO31G+VVga32+Dk/Pnzkq78hY/KKSsr07p163Tx4kWFhYW5up0aYdKkSYqOjlZkZKSrW6kxTpw4IT8/PwUFBWnYsGE6efKkq1uq1t577z2Fhobq0UcfVbNmzdStWzctX77c1W3VKCUlJXr99dc1duzY2y4gSYQk/IRlWYqPj9f//M//qGPHjq5up9o7evSo6tevLw8PD8XExGjTpk1q3769q9uq9tatW6fMzEwlJia6upUao2fPnkpJSdG2bdu0fPlyFRQUKDw8XOfOnXN1a9XWyZMntXjxYrVp00bbtm1TTEyMYmNj7b8Hiut755139O2332rMmDGubsUluN0GB5MmTdKWLVv00Ucf6e6773Z1O9VeSUmJcnNz9e2332rDhg1asWKF0tPTCUrXkJeXp9DQUG3fvl1dunSRJPXr14/bbTfo4sWLatWqlZ599lnFx8e7up1qyd3dXaGhodq3b599LDY2VgcPHlRGRoYLO6s5BgwYIHd3d23evNnVrbgEV5Jg98wzz+i9997Trl27CEiV5O7urtatWys0NFSJiYnq0qWL/va3v7m6rWrt8OHDOnv2rEJCQuTm5iY3Nzelp6dr4cKFcnNzc3hgFBWrV6+eOnXqpBMnTri6lWqrefPmTv/DEhwc7PDD6ajYF198oR07dmj8+PGubsVl+HYbZFmWnnnmGW3atEm7d+9WUFCQq1uqsSzLUnFxsavbqNYeeOABHT161GHsiSeeULt27fSnP/2Jb2xVUnFxsbKzsxUREeHqVqqt3r17O73O5LPPPlNAQICLOqpZVq9erWbNmik6OtrVrbgMIQmaNGmS3nzzTb377rtq0KCBCgoKJEleXl6qW7eui7urvqZPn66BAwfK399fFy5c0Lp167R7925t3brV1a1Vaw0aNHB63q1evXry9vbmObhrmDp1qh566CG1aNFCZ8+e1YsvvqiioiKNHj3a1a1VW3FxcQoPD9fcuXP12GOP6eOPP9ayZcu0bNkyV7dW7ZWXl2v16tUaPXq03Nxu36hw+35y2C1evFjSledCfmz16tW37cN6lXHmzBmNGjVK+fn58vLyUufOnbV161b179/f1a3hFvTll19q+PDhKiwsVNOmTdWrVy/t37+fqyLX0KNHD23atEkJCQmaM2eOgoKClJSUpBEjRri6tWpvx44dys3N1dixY13dikvx4DYAAIABD24DAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAJQLfXr109Tpkz5xeeZPXu2unbt+ovPc7OdOnVKNptNR44ccXUrwC2LkATgho0ZM0Y2m002m0116tSRj4+P+vfvr1WrVqm8vPymzLFx40a98MILN+VYV9lsNr3zzjsOY1OnTtXOnTtv6jwm33//vWbNmqV77rlHHh4eatKkiYYMGaJjx4794nMDqBpCEoAq+c1vfqP8/HydOnVKH3zwge677z5NnjxZDz74oC5fvlzl45aWlkqSGjdurAYNGtysditUv359eXt7/6JzFBcXKzIyUqtWrdILL7ygzz77TKmpqSorK1PPnj21f//+CvctKSn5xfr6JY8N3AoISQCqxMPDQ76+vrrrrrvUvXt3TZ8+Xe+++64++OADrVmzxl53/vx5Pfnkk2rWrJkaNmyo+++/X5988ol9+9XbXatWrVLLli3l4eEhy7IcbrclJCSoV69eTj107txZs2bNkiQdPHhQ/fv3V5MmTeTl5aW+ffsqMzPTXhsYGChJ+t3vfiebzWZf//Httm3btsnT01PffvutwzyxsbHq27evfX3fvn3q06eP6tatK39/f8XGxurixYsVnqukpCRlZGTo/fff12OPPaaAgADde++92rBhg4KDgzVu3Dhd/YWoMWPG6JFHHlFiYqL8/PzUtm1bSdLHH3+sbt26ydPTU6GhocrKynKa5/jx4xo0aJDq168vHx8fjRo1SoWFhfbt/fr109NPP634+Hg1adKE3xkEroOQBOCmuf/++9WlSxdt3LhRkmRZlqKjo1VQUKDU1FQdPnxY3bt31wMPPKCvv/7avt/nn3+uf/7zn9qwYYPxGZsRI0bowIED+s9//mMfO3bsmI4ePWr/sdILFy5o9OjR2rNnj/bv3682bdpo0KBBunDhgqQrIUq68sPN+fn59vUfi4yMVKNGjbRhwwb7WFlZmf75z3/a5zl69KgGDBig//3f/9W//vUvrV+/Xh999JGefvrpCs/Lm2++qf79+6tLly4O47Vq1VJcXJyOHz/uEBx37typ7OxspaWl6f3339fFixf14IMP6p577tHhw4c1e/ZsTZ061eFY+fn56tu3r7p27apDhw5p69atOnPmjB577DGHutdee01ubm7au3evli5dWmHPACRZAHCDRo8ebT388MPGbUOHDrWCg4Mty7KsnTt3Wg0bNrR++OEHh5pWrVpZS5cutSzLsmbNmmXVqVPHOnv2rENN3759rcmTJ9vXO3fubM2ZM8e+npCQYPXo0aPCHi9fvmw1aNDA2rx5s31MkrVp0yaHulmzZlldunSxr8fGxlr333+/fX3btm2Wu7u79fXXX1uWZVmjRo2ynnzySYdj7Nmzx6pVq5b1/fffG3vx9PR0+Cw/lpmZaUmy1q9fb1nWlXPr4+NjFRcX22uWLl1qNW7c2Lp48aJ9bPHixZYkKysry7Isy3ruueesqKgoh2Pn5eVZkqxPP/3Usqwr57Rr167GPgA440oSgJvKsizZbDZJ0uHDh/Xdd9/J29tb9evXty85OTkOV4UCAgLUtGnTax53xIgReuONN+xzrF271n51R5LOnj2rmJgYtW3bVl5eXvLy8tJ3332n3NzcG+p/xIgR2r17t7766itJ0htvvKFBgwbpzjvvtH+mNWvWOHyeAQMGqLy8XDk5OTc019XPIsl+ziSpU6dOcnd3t69nZ2erS5cuuuOOO+xjYWFhDsc5fPiwdu3a5dBXu3btJMnhXIeGht5wj8Dtys3VDQC4tWRnZysoKEiSVF5erubNm2v37t1OdY0aNbL/c7169a573N///veaNm2aMjMz9f333ysvL0/Dhg2zbx8zZoz++9//KikpSQEBAfLw8FBYWNgNP5x87733qlWrVlq3bp2eeuopbdq0SatXr7ZvLy8v1x/+8AfFxsY67duiRQvjMdu2bavjx48bt/373/+WJLVp08Y+9tPzcTVIXUt5ebkeeughvfzyy07bmjdvXuGxAVSMkATgpvnwww919OhRxcXFSZK6d++ugoICubm52R+Urqq7775bffr00RtvvKHvv/9ekZGR8vHxsW/fs2ePkpOTNWjQIElSXl6ew0PLklSnTh2VlZVdd67f//73euONN3T33XerVq1aio6Otm/r3r27jh07ptatW1e692HDhmnGjBn65JNPHJ5LKi8v11//+le1b9/e6XmlH2vfvr3+8Y9/6Pvvv1fdunUlyekbcd27d9eGDRsUGBgoNzf+aAduBm63AaiS4uJiFRQU6PTp08rMzNTcuXP18MMP68EHH9Tjjz8u6cqD0GFhYXrkkUe0bds2nTp1Svv27dPMmTN16NChG55zxIgRWrdund566y2NHDnSYVvr1q31j3/8Q9nZ2Tpw4IBGjBhhDxRXBQYGaufOnSooKNA333xzzXkyMzP15z//WUOGDJGnp6d925/+9CdlZGRo0qRJOnLkiE6cOKH33ntPzzzzTIXHi4uL07333quHHnpIb731lnJzc3Xw4EENHjxY2dnZWrlypcPttp/6/e9/r1q1amncuHE6fvy4UlNTNX/+fIeaSZMm6euvv9bw4cP18ccf6+TJk9q+fbvGjh1bqWAIwBkhCUCVbN26Vc2bN1dgYKB+85vfaNeuXVq4cKHeffdd1a5dW9KV52xSU1PVp08fjR07Vm3bttWwYcN06tQph6tAlfXoo4/q3LlzunTpkh555BGHbatWrdI333yjbt26adSoUYqNjVWzZs0cav7yl78oLS1N/v7+6tatW4XztGnTRj169NC//vUvh+eepCuvHUhPT9eJEycUERGhbt266bnnnnO4pfVTnp6e+vDDDzV69GhNnz5drVu31m9+8xvVrl1b+/fvN77e4Mfq16+vzZs36/jx4+rWrZtmzJjhdFvNz89Pe/fuVVlZmQYMGKCOHTtq8uTJ8vLyUq1a/FEPVIXNqszNbgAAgNsM/3sBAABgQEgCAAAwICQBAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAIAADAgJAEAABgQkgAAAAz+P3HuSCfdl1ZeAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -235,8 +397,10 @@ } ], "source": [ - "import matplotlib.pyplot as plt\n", - "plt.scatter(x_a,np.log(times))" + "plt.bar([i for i in range(n_init, num_derivs)], check)\n", + "plt.ylabel('Flops')\n", + "plt.xlabel('Derivative Order')\n", + "plt.title(\"Helmholtz 2D\")" ] }, { From 6ca6498e06a694eadeeed4bbaf7ffd0c00e3de64 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 1 Mar 2025 00:37:35 -0600 Subject: [PATCH 145/193] QBRecurrence soon --- sumpy/recurrence.py | 11 +- sumpy/recurrence_grid.py | 225 ------------ test/gridfree_taylor_recurrence.ipynb | 147 ++++++++ test/order5.png | Bin 44702 -> 52858 bytes test/plot_normal_recurrence.ipynb | 108 ++---- test/plot_taylor_recurrence.ipynb | 197 +++++++---- test/testing_pde_to_ode.ipynb | 484 +++++++++++++++++--------- 7 files changed, 632 insertions(+), 540 deletions(-) delete mode 100644 sumpy/recurrence_grid.py create mode 100644 test/gridfree_taylor_recurrence.ipynb diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 42d3b5834..afec6c5df 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -297,7 +297,7 @@ def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: """ idx_l, terms = _extract_idx_terms_from_recurrence(r) # Order is the max difference between highest/lowest in idx_l - order = max(idx_l) - min(idx_l) + 1 + order = max(idx_l) - min(idx_l) # How much do we need to shift the recurrence relation shift_idx = max(idx_l) @@ -419,6 +419,15 @@ def get_shifted_recurrence_exp_from_pde(pde: LinearPDESystemOperator) -> sp.Expr return r_ret, (max(idx_l)+1-min(idx_l)) +def get_taylor_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: + r""" + A function that takes in as input a pde and outputs a SHIFTED + + PROCESSED taylor recurrence + """ + var = _make_sympy_vec("x", 1) + r_exp = get_shifted_recurrence_exp_from_pde(pde)[0].subs(var[0], 0) + return process_recurrence_relation(r_exp) + def shift_recurrence(r: sp.Expr) -> sp.Expr: r""" A function that "shifts" the recurrence so it's center is placed diff --git a/sumpy/recurrence_grid.py b/sumpy/recurrence_grid.py deleted file mode 100644 index f669d5296..000000000 --- a/sumpy/recurrence_grid.py +++ /dev/null @@ -1,225 +0,0 @@ -r""" -With the functionality in this module, we aim to compute a recurrence for -one-dimensional derivatives of functions :math:`f:\mathbb R^n \to \mathbb R` -for functions satisfying two assumptions: - -- :math:`f` satisfies a PDE that is linear and has coefficients polynomial - in the coordinates. -- :math:`f` only depends on the radius :math:`r`, - i.e. :math:`f(\boldsymbol x)=f(|\boldsymbol x|_2)`. - -However, unlike recurrence.py, the recurrences produced here are numerically -stable in a different source-location space. - -.. autofunction:: get_grid -.. autofunction:: convert -.. autofunction:: grid_recur_to_column_recur -.. autofunction:: get_taylor_recurrence -.. autofunction:: create_subs_grid -.. autofunction:: extend_grid -.. autofunction:: compute_taylor_lp -.. autofunction:: compute_lp_orders - - -""" -from __future__ import annotations - - -__copyright__ = """ -Copyright (C) 2024 Hirish Chandrasekaran -Copyright (C) 2024 Andreas Kloeckner -""" - -__license__ = """ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -""" - - -from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence - -from sumpy.expansion.diff_op import ( - laplacian, - make_identity_diff_op, -) - -from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence - -import sympy as sp -from sympy import hankel1 - -import numpy as np - -import math - -import matplotlib.pyplot as plt -from matplotlib import cm, ticker - - -def get_grid(recur_exp, order): - r""" - Organizes the coefficients of recur into a 2D array, called a grid. - - :arg recur_exp: A recurrence expression for derivatives s(n), etc. where s(n) - represents the nth derivative of the Green's function w/respect to the target at - the origin. - recur_exp looks like :math:`(b_{00} x_0^0 + b_{01} x_0^1 + \cdots) s(n) + - (b_{10} x_0^0 + b_{11} x_0^1 +\cdots) s(n-1) + \cdots` - - :arg order: The order of the input recurrence expression - - :returns: *table* a sequence of of sequences, with the outer sequence - iterating over s(n), s(n-1),.. and each inner sequence iterating - over powers of :math:`x_0`, so that, in terms of the above form, - coeffs is :math:`[[b_{00}, b_{01}, ...], [b_{10}, b_{11}, ...], ...]` - """ - var = _make_sympy_vec("x", 2) - s = sp.Function("s") - n = sp.symbols("n") - i = sp.symbols("i") - - poly_in_s_n = sp.poly(recur_exp, [s(n-i) for i in range(order)]) - coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)] - - table = [] - for i in range(len(coeff_s_n)): - table.append(sp.poly(coeff_s_n[i], var[0]).all_coeffs()[::-1]) - - return table - - -def convert(grid): - r""" - Given a grid of coefficients, produce a grid recurrence. Suppose that - :math:`s(n) = \sum_i s(n,i) x_0^i`. A grid recurrence is an expression - involving s(n,i) instead of s(n). - - :arg grid: The coefficients of a recurrence expression organized into a grid - see :func:`get_grid` - - :returns: a tuple ``(recur_exp, s_terms)``, where - - *grid_recur_exp* a grid recurrence for terms s(n,i) - - *s_terms* are the terms s(n,i) that exist in recur_exp - """ - s = sp.Function("s") - n = sp.symbols("n") - i = sp.symbols("i") - - grid_recur_exp = 0 - i = sp.symbols("i") - s_terms = [] - for j in range(len(grid)): - for k in range(len(grid[j])): - grid_recur_exp += grid[j][k] * s(n-j,i-k)/sp.factorial(i-k) - if grid[j][k] != 0: - s_terms.append((j,k)) - return grid_recur_exp, s_terms - - -def grid_recur_to_column_recur(grid_recur, s_terms): - r""" - Given a grid recurrence, produce a recurrence that only involves - terms of the form s(n,i), s(n-1,i), ..., s(n-k,i). - - :arg grid_recur: A grid recurrence see :func:`get_grid` - :arg s_terms: The s(i,j) terms in grid_recur - """ - s = sp.Function("s") - n = sp.symbols("n") - i = sp.symbols("i") - - grid_recur_simp = grid_recur - bag = set() - for s_t in s_terms: - bag.add(-((0-s_t[0])-s_t[1])) - grid_recur_simp = grid_recur_simp.subs(s(n-s_t[0],i-s_t[1]), (-1)**(s_t[1])*s((n-s_t[0])-s_t[1],(i-s_t[1])+s_t[1])) - shift = min(bag) - return sp.solve(sp.simplify(grid_recur_simp * sp.factorial(i)).subs(n, n+shift), s(n,i))[0] - - -def get_taylor_recurrence(pde): - recur, order = get_shifted_recurrence_exp_from_pde(pde) - grid = get_grid(recur, order) - grid_recur, s_terms = convert(grid) - column_recur = grid_recur_to_column_recur(grid_recur, s_terms) - return column_recur - - -def create_subs_grid(width, length, derivs, coord_dict): - var = _make_sympy_vec("x", 2) - initial_grid = [[sp.diff(derivs[i], var[0], j).subs(var[0], 0) for j in range(width)] for i in range(length)] - - # assume len(initial_grid) >= 1 - initial_grid_subs = [] - initial_grid_width = len(initial_grid[0]) - initial_grid_length = len(initial_grid) - - for i_x in range(initial_grid_length): - tmp = [] - for j_x in range(initial_grid_width): - tmp.append((initial_grid[i_x][j_x].subs(var[1],coord_dict[var[1]])).evalf()) - initial_grid_subs.append(tmp) - - return initial_grid_subs - - -def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur, derivs): - initial_grid_subs = [row[:] for row in initial_grid_in] #deep copy - - initial_grid_width = len(initial_grid_subs[0]) - initial_grid_length = len(initial_grid_subs) - - var = _make_sympy_vec("x", 2) - s = sp.Function("s") - n = sp.symbols("n") - i = sp.symbols("i") - - for n_x in range(initial_grid_length, n_derivs_compute): - appMe = [] - for i_x in range(initial_grid_width): - exp_i_n = grid_recur.subs(n, n_x).subs(i, i_x) - if exp_i_n == 0: - exp_i_n = sp.diff(derivs[n_x], var[0], i_x).subs(var[0], 0) - assert n_x-order_grid_recur >= 0 - kys = [s(n_x-k,i_x) for k in range(1,order_grid_recur+1)] - vals = [initial_grid_subs[n_x-k][i_x] for k in range(1, order_grid_recur+1)] - my_dict = dict(zip(kys, vals)) - res = exp_i_n.subs(my_dict).subs(coord_dict) - appMe.append(res) - - initial_grid_subs.append(appMe) - - return initial_grid_subs - - -def compute_taylor_lp(inp_grid, coord_dict): - var = _make_sympy_vec("x", 2) - inp_grid = np.array(inp_grid) - _, c = inp_grid.shape - return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i/math.factorial(i) for i in range(c)]), (1, c)), axis = 1) - - -def compute_lp_orders(pde, loc, num_of_derivs, derivs_list, recur_order, taylor_order): - var = _make_sympy_vec("x", 2) - coord_dict_t = {var[0]: loc[0], var[1]: loc[1]} - - initial_grid_subs = create_subs_grid(taylor_order, recur_order, derivs_list, coord_dict_t) - - extended_grid = extend_grid(initial_grid_subs, get_taylor_recurrence(pde), coord_dict_t, num_of_derivs, recur_order, derivs_list) - - return compute_taylor_lp(extended_grid, coord_dict_t) \ No newline at end of file diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb new file mode 100644 index 000000000..b63be384f --- /dev/null +++ b/test/gridfree_taylor_recurrence.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generalizing a Taylor Recurrence" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "\n", + "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence, process_recurrence_relation, get_taylor_recurrence\n", + "\n", + "import sympy as sp\n", + "from sympy import hankel1\n", + "\n", + "import numpy as np\n", + "\n", + "import math\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm, ticker" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "s = sp.Function(\"s\")\n", + "n = sp.symbols(\"n\")\n", + "i = sp.symbols(\"i\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives_h2d(p, k=1.0):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + " derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs_helmholtz" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "\n", + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "\n", + "derivs_lap = compute_derivatives(8)\n", + "derivs_helm = compute_derivatives_h2d(8)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2, (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_recurrence(laplace2d)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/order5.png b/test/order5.png index 8b8eaecc8d328366d5e3e56cabae01632839bfd4..f1d3cdb22fcd349e6a61adc1879789247bedf342 100644 GIT binary patch literal 52858 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 VIQ3#^OYnK7rEKG$d~Nq1{t1R1yqf?3 literal 44702 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 diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb index f14ffa13f..6ddd34bb7 100644 --- a/test/plot_normal_recurrence.ipynb +++ b/test/plot_normal_recurrence.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -68,13 +68,13 @@ " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", " for i in range(p)]\n", " return derivs\n", - "l_max = 20\n", + "l_max = 10\n", "derivs_laplace = compute_derivatives(l_max)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -90,12 +90,12 @@ " for i in range(p)]\n", " return derivs_helmholtz\n", "h_max = 8\n", - "#derivs_helmholtz = compute_derivatives_h2d(h_max)" + "derivs_helmholtz = compute_derivatives_h2d(h_max)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -117,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -132,7 +132,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -173,19 +173,18 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 19, "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'derivs_helmholtz' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[9], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m order_plot \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m\n\u001b[0;32m----> 2\u001b[0m x_grid, y_grid, plot_me_hem \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_helmholtz, derivs\u001b[38;5;241m=\u001b[39m\u001b[43mderivs_helmholtz\u001b[49m, n_initial\u001b[38;5;241m=\u001b[39mn_init_helm, n_order\u001b[38;5;241m=\u001b[39morder_helm)\n\u001b[1;32m 3\u001b[0m x_grid, y_grid, plot_me_lap \u001b[38;5;241m=\u001b[39m generate_error_grid(res\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m5\u001b[39m, order_plot\u001b[38;5;241m=\u001b[39morder_plot, recur\u001b[38;5;241m=\u001b[39mrecur_laplace, derivs\u001b[38;5;241m=\u001b[39mderivs_laplace, n_initial\u001b[38;5;241m=\u001b[39mn_init_lap, n_order\u001b[38;5;241m=\u001b[39morder_lap)\n\u001b[1;32m 5\u001b[0m fig, (ax1, ax2) \u001b[38;5;241m=\u001b[39m plt\u001b[38;5;241m.\u001b[39msubplots(\u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m2\u001b[39m, figsize\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m15\u001b[39m, \u001b[38;5;241m8\u001b[39m))\n", - "\u001b[0;31mNameError\u001b[0m: name 'derivs_helmholtz' is not defined" - ] + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABOQAAALKCAYAAACSt45gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADD6klEQVR4nOzdeXhU5cH+8XsIJCySICCBAEFcQGMENURllYiCQVHZRGsRLFgpccG4VGqtFKtoq4jVwCu1SvXVikvF1lIxbVVQ9BUicWlcwIKAgGGTkIAs4fn94S8jw2SS2c9zZr6f68p1MWfOnPMkmczc3M85ZzzGGCMAAAAAAAAAcdHE6QEAAAAAAAAAyYRCDgAAAAAAAIgjCjkAAAAAAAAgjijkAAAAAAAAgDiikAMAAAAAAADiiEIOAAAAAAAAiCMKOQAAAAAAACCOKOQAAAAAAACAOKKQAwAAAAAAAOLI2kLO4/HI4/E0uM6MGTPk8Xg0Y8aMiPc3ePBgeTwerVu3LuJtJdN+gEh5PB4de+yxMd/Pm2++KY/Ho4kTJ8Z8X/D35ZdfauTIkWrfvr2aNGkij8ejN9980+lhxUWyvB5PnDjR+95d39f//M//OD1EuFww2TDe6rLoggULnB4KEBfHHntsXP4O161bJ4/Ho8GDB8d8X/C3detWXXXVVerUqZNSUlKS6nWuLs8kek6te/8K9HX77bc7PcSk0NTpASC+PB6PunXrlvD/MUTymTFjhn7961/rySefpHSzzKFDhzRmzBiVl5fr7LPP1oknnqgmTZqoY8eOTg8NMTBs2LB6f7c9e/Z0YDQAABstWLBAV199te66666oHFyB6Jo0aZL+9re/qVevXhoyZIiaNm2qE044welhIQb69+9f7+82Ly/PgdEkHwo5AEnhzDPP1KeffqqMjAynh5J01q1bp/Lycg0cOFBLly51ejiIsdtvv50jGgAAEencubM+/fRTtWzZ0umhJJ39+/dr8eLFOvbYY7Vq1So1aWLtSXWIgsmTJ3Mwg4Mo5AAkhZYtW+qkk05yehhJaePGjZKk4447zuGRAAAAN2jWrBm5zSFbtmxRbW2tunXrRhkHxFjC/oUZY/SnP/1JgwYNUps2bdSiRQv16tVLDzzwgA4cOBD0duqub3Xw4EHdfffdOuGEE9SiRQudfPLJevLJJ73r/fvf/1ZBQYHS09N19NFH66qrrtL27dsb3PaiRYt09tlnq1WrVmrbtq2uuOIK739cj7Rnzx7dfffdys3NVYsWLZSRkaFBgwbpueeeC+r7WLBggfd6D1999ZXP+eF1RzI0dv2fYM+lr9vXjBkz9MUXX+jyyy9XZmammjRpokWLFnnX+/jjj3XllVeqc+fOSktLU1ZWlq6++uoGT6f9xz/+oYsuukgdOnRQWlqasrOzdemll+rvf/+7d53GrhUW6LoAdb/r/fv3a+bMmTrppJOUlpamSy+9VJLvdaCeffZZnX322WrdurXatGnj3Uaoz7vDr8Px+OOPq1evXmrRooU6duyoa6+9Vt9++22938OBAwc0d+5c9e/fX23atFHLli3Vo0cPXXPNNfrkk0/81n/77bc1cuRI78/t2GOP1Q033KCtW7cG/FnXp7GfkSRVV1dr5syZOvXUU9WyZUulp6frnHPO8fndN8YYoz//+c+6/PLL1aNHD7Vq1UqtW7fWmWeeqblz5+rQoUM+6x977LH69a9/LUm6+uqr633O1ve8uP766xu9ttUpp5wij8ejL774wmf5unXrdO211+rYY49VWlqajjnmGI0ZM0YfffRR0N9nnf379+vhhx9Wfn6+WrdurVatWunMM8/UH//4Rxlj/NaPxnM11NeUuueqMUaPPPKIevfurZYtW+q0005r8HvzeDw655xzJEl/+tOf/F536ixevFjnn3++jj76aDVv3lw9e/bU7bffXu/fwOHXbHr//fd10UUXqV27dvJ4PCovL29wPLHc3/z583XqqaeqefPm6ty5s66//nrt2rWrwXGE8jwK9rUVgLR582b99re/1TnnnKPOnTsrNTVVHTt21KhRo7RixYp6H3P469zDDz+snJwc79/zDTfcEPA9uT5r1qzRjBkz1LdvX3Xs2FGpqanq0qWLrrrqKr/3k8Nt27ZN06dPV25urlq1aqU2bdrotNNO0x133OGXK6OVdQ9/f9yyZYsmT56sLl26qGnTppozZ453vXDe9959911ddtllysrKUlpamjp37qxhw4bpf//3f32229C1wgJdp6+x96XD896SJUtUUFCgNm3ayOPx+Pwu//a3v2nYsGFq166dmjdvrh49eujOO+9UdXW131gOf38NJccbY/TMM89oyJAh3v0cd9xx+tGPfqR33nnHb/1wMnJ9gnnvDjWDBPL3v/9dP/nJT3TyyScrPT1drVq1Uu/evXXvvfdq3759PusOHjxYV199tSTp17/+tU9uq/s91/e8ePDBBxu9ttXw4cPl8XhUWlrqs3zr1q265ZZb1LNnTzVv3lxHH320CgsLwzpyP9y8H8lz9eDBg3rkkUeUl5eno446SkcddZTOPPNMzZs3T7W1tX77DCYL1ufYY49Vt27dJElvvfWW9/dy5PWe3333XV1yySU65phjvP+3mDp1qjZt2uS3zWjkl1js76WXXtKZZ56pFi1aKDMzU1dddVW92ztcKM+jYF9bkeSMpSSZxoZ31113GUnmrrvu8lleW1trxo4daySZ9PR0M2TIEHPJJZeYjh07Gklm+PDhpra21ucx55xzjpFk1q5d6zeObt26mZEjR5rWrVuboUOHmqFDh5q0tDQjyTzxxBPmhRdeME2bNjV5eXlm1KhRpnPnzkaSGTBggDl06FC9+7n11ltNkyZNzJlnnmlGjRplunbtaiSZE0880ezZs8fnMVVVVSYvL89IMsccc4wZM2aMKSws9I7hxhtv9PvZHPn9LFu2zEyYMMFIMq1atTITJkzwfs2aNcsYY8wf/vAHn+V1Xz/+8Y9NSkqKkWSWLl3a4O/EGGOefPJJI8lcfvnlJj093XTv3t2MGzfODB061Lz66qvGGGNefPFFk5qaaiSZvLw8M2bMGHP66acbSaZdu3bmk08+8dtucXGxkWRSUlLMgAEDzOWXX24GDRpk0tPTzTnnnONd74033jCSzIQJE+odX93P4Y033vBZLsl07drVFBYWmlatWpnhw4ebsWPHmilTpvj8TH/605+aJk2amIEDB5rLL7/c9O/f3xgT3vOuW7du3udDamqq6d+/v7n00ktNhw4djCQzcOBAv+dQdXW1GThwoJFkjjrqKFNYWGguu+wyk5+fb5o2ber39/Dwww8bj8djUlJSTN++fc2YMWPMSSedZCSZ7t27m02bNjX2Kw36Z7RlyxaTk5NjJJnOnTubiy++2Jx33nmmVatWRpL3uXbkNrt16+azbO/evUaSOfroo03//v3NuHHjzJAhQ0zLli3r/d3efPPNpnfv3kaS6d+/v8/z99NPPzXG1P+8ePfdd71/q/VZtWqVkWTy8/N9li9btsykp6cbSeaUU04xY8aMMX379jUej8e0aNHC/Pvf/w76Z3r477N9+/bmggsuMMOHDzdHH320kWSuvfbaen9mkTxXw3lNqXuu/vSnPzXNmjUz5513nhk3bpwZOXJkg9/fhAkTzLBhw4wkc/zxx/u97hhjzL333mskmaZNm5ohQ4aYcePGmS5duhhJpkePHmbLli0+26x77b/66qtNs2bNzCmnnOJ9Pfjwww8b/ZnHYn8333yzkWTS0tJMYWGhGT16tDn66KPN6aefbs4+++x6319CfR4F89rqpLrX1uuvv95cd9115mc/+5n57W9/6/0bBCIVTDasM2/ePCPJnHDCCWbYsGFm7Nix3pzRrFkzs2TJEr/H1L3OFRUVmWbNmpnzzz/fXHbZZSYzM9NIMr169TJVVVU+j6l7fXjyySd9lv/85z83kkxOTo658MILzejRo83JJ5/szQj1vVb95z//8WbITp06mVGjRplLLrnE+559eG4JJ3MEUvf+OHz4cNOlSxfTsWNHM2bMGHPRRReZxx57zBgT3vveQw89ZDwej/d99PLLLzfnnnuuad++vc/7/tq1a40knywXzM+4sfeluteka665xng8Hu8Y8vPzzbfffmuM+SFbNm/e3AwaNMiMGjXKu928vDxTXV3ts89wcvzBgwfNmDFjvO8Rde87ffv2Nc2bN/fLNOFk5EAa+xmFk0HqtnmkzMxMc9RRR5mzzjrLjB071gwbNsy7nXPPPdccPHjQu+6sWbNM//79jSTTu3dvn9y2bNkyY0z9z4uvv/7aNGnSxGRnZ/vlY2OM2bp1q2natKnp2LGjz/4+/fRT79/W8ccfb0aOHGkGDRpkUlNTTZMmTcwzzzwT9M80krwf7nP14MGDZvjw4d59XnLJJeaSSy4xrVu3NpLMyJEjA/7fNlAWDOTmm282o0ePNpJMZmam9/dy8803e9d5+umnTUpKivF4PKZ///7m8ssvNz169PA+5sj3/UjzSyz298gjj3j/X3nuueeayy67zHTq1Ml07drVXHTRRfX+XzHU51Ewr61OqnttHT9+vLnxxhvNtddea+6++26zcuVKp4eWVBKykLv//vuNJHP++eebyspK7/Lq6mozYsQII8k8+uijPo9pqJCTZHJzc82GDRu8y//97397A1O7du3Miy++6L1v165d5pRTTjGS/AJK3X5atWpl/vWvf3mX19TUmH79+hlJ5o9//KPPY6677jojyZx33nlm9+7d3uWffvqpt7j5+9//HvT3c2T50ZgbbrjBSDIXXXRRUOGu7kVQkrnuuut83hCNMea///2vadmypcnIyDBvvfWWz31/+tOf6i1Ann76aSPJdOnSxS/EVldX+/wsIynk6sL7xo0b/R5X9zNt3ry5efPNN/3uD+d5V/cG3alTJ7Nq1Srv8q1bt5oTTjjBSPL53owxZtKkSUaSKSgoMNu2bfO5b+PGjT4vou+++65p0qSJ6datm8/P7dChQ2bmzJlGkhkzZky9P6f6NPYzKiwsNJLMbbfdZvbv3+9d/uWXX5rjjz/epKSk+P3+6ntOHjhwwLz00ktm3759PssrKytNnz59jCS/506gwF4n0PPi+OOPNx6Px6xbt87vMbfeequRZObMmeNdtmvXLtOxY0fTrFkz88ILL/isX1paalJTU03nzp39xh7Iz372M++b4eF/35WVleass84ykvzCSqTP1XBeU+qeq+3btw/pPwPGNPw3+f7775smTZqY1q1bm//7v//zLv/uu++8gXfs2LE+j6n7XUsy999/f0hjicX+3nnnHSPJtG3b1udns23bNtOrVy/vYw9/PQ7nedTYa2tj6p4XoXwd+TrZkLrX1iO/PB6PmTp1qjlw4EBI4wWOFEw2rPPRRx/VW3q99tprJjU11Rx//PF+/6Gve51LT0/3eS/dvXu3Offcc40kc9NNN/k8JtB7z7vvvmvWrFnjt/8nnnjC+x5+uAMHDniLt5tvvtnnPdQYYz744AOfHBpO5gik7jW67j/2e/fu9bk/nNert956y3g8HpOenu73OrJv3z7z2muveW9HWsgFel86/DXpueee87t/4cKFRpI5/fTTfV6f9+/fb376058aSeaWW27xeUw4Of7uu+82ksypp57qlzW2b99u3n77be/tcDJyQxr7GYWTQQIVci+//LJfgVlVVeUtN/70pz/53Ff3nnbk/+PqBHpe1P0t1neQQElJiZFkpk2b5l128OBBk5ubaySZhx9+2Ofv/oMPPjDt2rUzrVq1Mt9880294zhSJHk/3OfqAw884H0OHT7OTZs2mZ49expJpqSkxOcxjWXBhjT0N7l+/XrTokUL07RpU/O3v/3Nu7y2ttZMmzat3udoJPklFvtbu3atSUtLM2lpaT6vTzU1Neb888+vNwOF8zxq7LW1MYFyVUNfgf4fVJ/D8+2RX6NHj/Z5TUDsWF/IBfN1+Av5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9ffakLo3gfpOAXz++efrfUxdoG/o+R1Ip06dVFBQoPXr1+udd94JeLqqFN3vs6CgQCkpKXr11Ve9M2+xFu3XlEgNHDhQkvTMM8/43bd161a9/vrratKkSdQOl4/F/uqCzwsvvOB3X2lpqd/pqlJ0n0fBevPNN2W+/zCnoL8GDx4c8X737dunv//975K+f/4BsVb3HlLfaYU7d+70XgsokIULF/ot++yzz1ReXq7WrVs3Wko19B62Zs2aenNI3WvC448/3uiRRPHOuqG+XqWkpHhfO/7whz80un779u3VrFkzrV271u89fP/+/SFPJASjS5cu6tmzpz766KMGi45I9enTR23atNEHH3ygsrKyRteP53tDNDNIvHNbamqqxowZoz179mjRokXe9/RY5zYn/p+ZnZ2t7OxsbdmyRf/+97/97v/73/+unTt3qmfPnn6nq8ZCQzlq//793ixUt56N+2sot33xxRcqLy/3W+5EbluwYEHIuW3ixIkR79cY4y3ZyW2xl3CFXFpamm655RZ9++23Gj16tLc1P9xHH31Ub9iyUatWrfSTn/xEhw4dUlFRkWpqarz3ffHFF/rNb34jSbr++uuD2l5WVpa++eYbffvtt373Pf/88/rNb36j4447Ti+88EKj1x0L180336wWLVropptu0t/+9je/+3fs2KG5c+f6XLOi7mLk06ZN03/+8x+f9WtqanzeoLp3767s7Gx9/PHHeuWVV3zWu+aaa2LyBhqv511WVpauuuoq7d27VxMnTvT7j/6mTZt8gv4vfvELNWnSRBMmTKj3kOdNmzappKQkojHVOfvsszVkyBC98cYbuummm/xmug8dOqTXX389qEOv62bA/ud//sdn+Ysvvqinnnqq3sfUzSB+/vnn4QzfG+Lmz5+vv/71r2rbtq0uuOACv/WuvfZaHXPMMbr33nv15JNP+v3HqaamRk899ZQ2btzY6D47d+6siRMnavXq1Ro/fny9151Yvny5Fi9eHNb3VJ9ov6ZEqqioSE2aNNHDDz+slStXepfv379f119/vfbs2aNRo0aFdTHceO3v2muvlfT9qdaffvqpd/mOHTt02223BXxMtJ5HNvj888/1yiuv+P2nbuvWrbr88su1YcMG9e7dm+uQIC5OOOEENWnSRP/+9799Jh6+++47TZkypd6S/HCPPvqoVq1a5b1dU1Oj66+/XsYY/eQnP2n0NNC697C//OUvPteQ+/bbbzVp0iTvhzscbtSoUerRo4c+/PBD3X777X4lRXl5uff1IN5ZN5zXq5///OfyeDy6++67vRdlr3PgwAEtWbLEezs1NVVnn322duzY4ZNJDhw4oJtuuilmhdkvf/lL1dbWavTo0frkk0/87v/yyy/1xBNPRLSP1NRU3XTTTTLGaNKkSX5H++3YsUPvvPOO93Y4GTlc0cwgdc/5+fPn+zw/li1bpt/97nf1PiZaue2ZZ57Rc889p5SUlHqv7TVmzBiddNJJWrBgge6//36/v7/9+/frL3/5i/fDXhri1P8z6zLZTTfd5POasmXLFt16660+68TapEmT1KJFC/35z3/2TrZJ3+f8X/ziF/r666+Vn5/v9wELNu3v6quvVmpqqp566imf16e9e/fqxhtvrPc0+Wg+j2ywbds2PfXUU37Xu6+urtbPfvYz/d///Z86duzod+kexED0P7g1OhTER9vXfQz6kR+XXVtba6644grvxwz37dvXjBs3zgwZMsR0797dSDKXXHKJz2PqPhp67dq1fuPo1q1bvfuv+4jqwz8SuU7dxxwf/tHnDe3HmMAfMV1VVWXy8vKMJNOhQwczduxYM3z4cNO8eXMjydxwww1+2wq0n+uvv95IMt27dzdXXnmlmTRpkvntb39rjDHmuOOOM5LMgAEDAn6U8qefflrvz+JwjX2MuTHffzR8ixYtvB/Tfemll5pLLrnEnHbaaSY1NdVIMjt37vR5zHXXXWckmZSUFDNw4EBzxRVXmHPOOcekp6f7/cyeeOIJ77oFBQVmxIgRJjMz05x44onm4osvrvf31tDv2piGf3fGhPe8a+ij4wM9h6qqqkzfvn2NJNO6dWszfPhwc9lll5kzzzzTNG3a1O/n/sgjj5iUlBQjyfTq1cuMHj3aXHjhhSY3N9ekpKSYjIyMgN/zkRr7GW3ZssX06tXLSDJt27Y15557rhk3bpwZMGCAOeaYY4wk89BDDzW6zbfeess75ry8PHPFFVeYPn36GEnmlltuqffv5OuvvzbNmzc3KSkp5oILLjA/+clPzKRJk8xnn33W4M+zzq5du7x/U5LMlClTAn6fb7/9tmnbtq137BdeeKEZNWqU6dOnj2nVqpWRZFatWhXw8YerqakxBQUF3t/nwIEDzbhx48w555zj/djxG2+8sdGf2eEae66G85rS0HO1MY397O+55x4jyTRt2tScd9555vLLLzddu3Y1ksyJJ55otmzZ4rN+3Wv/k08+GdZ4YrG/adOmef/2L7zwQjNmzBjTtm1bc9ppp5mzzz673t9HqM+jYF5bnVL3O27Xrp3p37+/ueyyy8zgwYNN69atjSTTpUsX8/nnnzs9TLhc3evzWWedFfDrueeeM8YYc8011xhJpkWLFt6/yczMTNO+fXszceLEev+m617nioqKTLNmzcywYcPMZZddZjp27GgkmVNOOcV8++23Po8J9Ppw/vnnG0mmTZs25tJLLzWXXnqpadOmjTnhhBPMJZdcUm8O+fjjj737ysrKMmPGjDGXXnqpOfnkk/3WDydzBNLYa7Qx4b3v/e53v/P+zs4880xzxRVXmCFDhpj27dv7vYeVlpaaJk2aGEmmb9++ZuTIkSY7O9u0b9/em7cD/b4CaSin17ntttu8ebFPnz5m7NixZtiwYeakk04ykkzv3r191g8nxx84cMBceuml3t9V3ftOv379TPPmzf1+7uFk5EAa+xmFk0Hq2+bnn3/ufR7k5OSYyy+/3AwcONB4PB5vbjvyd753717ToUMH78/s6quvNpMmTTLvvPNOgz/POocOHTJdunTxPscuuOCCgN/np59+arKzs40k06lTJzNs2DAzduxYc/bZZ5s2bdoYSebll18O+PjDRTvvG9P4c/XgwYOmsLDQSDIZGRlm5MiR5tJLL/W+x1566aWmtrbW5zGNZcGGNPazf/rpp01KSorxeDxmwIAB5oorrjA9e/Y0kkxmZqbf/xcjzS+x2N9DDz3k/dsfMmSIGTdunMnKyjJdunQxF110Ub2/j1CfR8G8tjql7necnp5uzjrrLDN27Fhz/vnnm3bt2nnfu95++22nh5kUErKQq/Piiy+aCy64wLRv3940a9bMdOrUyZx99tlmxowZ3v+k17G5kDPGmOrqavPrX//a5OTkmLS0NNO6dWszYMAA8+yzz9Y7tkD7qa6uNtddd53p2rWradq0qc/+6t4sGvpqKNTUCfZF94svvjDXXnutOe6440xaWprJyMgwJ598srn66qvNq6++ag4dOuT3mJdfftkMHTrUHH300SY1NdVkZ2ebkSNHmsWLF9c7jtzcXJOammoyMzPN5MmTzbZt2wL+3iItOeqE8rwLp5Azxpjv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -201,79 +200,22 @@ "cbar = fig.colorbar(cs)\n", "ax1.set_xscale('log')\n", "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\")\n", - "ax1.set_ylabel(\"source y-coord\")\n", + "ax1.set_xlabel(\"source x-coord\", fontsize=15)\n", + "ax1.set_ylabel(\"source y-coord\", fontsize=15)\n", "\n", "\n", "ax2.set_xscale('log')\n", "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\")\n", - "ax2.set_ylabel(\"source y-coord\")\n", + "ax2.set_xlabel(\"source x-coord\", fontsize=15)\n", + "ax2.set_ylabel(\"source y-coord\", fontsize=15)\n", "\n", - "ax1.set_title(\"Helmholtz recurrence relative error for order = \"+str(order_plot))\n", - "ax2.set_title(\"Laplace recurrence relative error for order = \"+str(order_plot))\n", + "ax1.set_title(\"Helmholtz recurrence relative error for order = \"+str(order_plot), fontsize=15)\n", + "ax2.set_title(\"Laplace recurrence relative error for order = \"+str(order_plot), fontsize=15)\n", "\n", "fig.savefig('order'+str(order_plot))\n", "plt.show()" ] }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_47734/1801212714.py:8: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs1 = ax1.contourf(x_grid, y_grid, plot_me_hem.T < cutoff, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "/var/folders/8s/7hlc6ky15zzflj9wcf92cdxh0000gn/T/ipykernel_47734/1801212714.py:9: UserWarning: Log scale: values of z <= 0 have been masked\n", - " cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap.T < cutoff, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABOEAAALACAYAAADVBWZCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWRklEQVR4nOzde1xUBf7/8feIXLyBFxTFBNG0JFMTycBIrcQw7b6531o108qcMiW3ct0szcQsXbPQcrPsppFd2K0opaumXdCk2rAty0ITMrHAS4Hi+f3hj1nHYXAG5jC31/Px4PFoDmdmPjMy8O59bhbDMAwBAAAAAAAAME0Tbw8AAAAAAAAABDpKOAAAAAAAAMBklHAAAAAAAACAySjhAAAAAAAAAJNRwgEAAAAAAAAmo4QDAAAAAAAATEYJBwAAAAAAAJiMEg4AAAAAAAAwGSUcAAAAAAAAYDJKuFp88sknuvzyyxUXF6fw8HDFxMQoJSVFt99+u916S5cu1cqVK70z5P937733ymKxNMpz/fDDD7JYLCd9ze+//74sFovtKyQkRO3bt9eoUaO0efPmRpkV9srKyjRjxgwlJiaqefPmioyM1DnnnKPs7GwdPny4wY/fmD+HQ4YMsfv5OvGrtLTU7ces+Zl96aWXTJjYOVc/U952/fXX66KLLrLdduf9asyfjUCxf/9+3XHHHUpPT1f79u1lsVh07733mvZ8Bw4c0NSpUxUbG6uIiAj169dPL7zwgsN6hmFoyZIlOv300xUeHq5OnTrp5ptv1q+//mq33jfffKOwsDB99tlnps0c6MghtSOH+K9AyiG7du3S1KlTNXjwYLVu3brOn8mqqirNmjVLCQkJCgsLU3x8vGbMmKHff/+93s9/3XXXqWXLlvW+f335w9/z3377TdHR0XZ/w9x5v7p27arrrrvOpOkC04cffqiJEycqKSlJ4eHhslgs+uGHH0x7vs8++0wXXnihWrZsqdatW+uKK67Q999/77BeSUmJrrvuOnXo0EERERHq06ePVqxY4bDe3Xffrf79++vo0aOmzQyciBLuBG+88YZSU1NVUVGhBQsWaN26dXr44Yc1aNAg5eTk2K3rC+HXl82bN08fffSR3n//fd19993atGmTBg8erG+//dbbowWVr7/+WmeddZYef/xxXXvttXrjjTf0wgsvqH///rrttts0bNgwHTp0yNtjumzp0qX66KOP7L7eeecdhYaG6pxzzlHHjh29PWJA2bp1q55++mnNnTvX26MEjbKyMi1fvlyVlZW67LLLTH++K664Qk8//bTuuecevfnmm0pOTtb//d//adWqVXbrTZ8+XdOmTdOll16q119/XXfddZdWrVqlYcOG2f1PdM+ePXXttddq2rRpps8eiMghnkMO8Q2BlkO2b9+u559/XmFhYRoxYkSd6/7f//2fHnzwQd14443Ky8vTxIkTtWjRIo0ePbqRpg0us2fPVmxsLO9vI3rnnXf09ttvKy4uTqmpqaY+19dff60hQ4aoqqpKL774op588kl98803SktL0y+//GJbr7y8XOeee67eeecdLViwQP/617/Uv39/2+fveNOnT9eOHTv09NNPmzo7YMeAnfPOO8/o3r27cfjwYYfvVVdX290+44wzjMGDBzfSZLW75557DE/+Mx48eNDp93bs2GFIMp566qk6H+O9994zJBlr1qyxW/70008bkoxZs2Z5YlSPc/bajx49ahw6dKiRp/GMI0eOGImJiUZUVJTx3//+1+H7L7zwgiHJuOmmm076OH/88YfT7zfmz2FtVq5caUgynnjiiXo9n7OfWbO5+pnypquvvto455xz7Ja58355+mfDV9T1e+HQoUPG0aNHXX6s3bt3G+Xl5XaPXXP/X375xZBk3HPPPQ2a15k33njDkGSsWrXKbvmwYcOM2NhY48iRI4ZhGMauXbuMkJAQ49Zbb7Vbb9WqVYYkY/ny5XbLN2/ebEgyNm7caMrcgYwcQg45ETnEt3LI8Z/DgoICpz+TH330kSHJWLhwod3yefPmGZKMdevW1Wu2cePGGS1atKjXfRvC1/+el5WVGc2aNTMee+wxu+XuvF/x8fHGuHHjTJjOu+rKJe5m7hM/x8d/Hh588EFDkrFjxw63Z3TFn/70JyM6OtouM/3www9GaGiocccdd9iWZWVlGZKMzZs3290/PT3daNGihfHrr7/aLb/llluMnj17upXdgIZgT7gTlJWVKTo6Wk2bNnX4XpMm/3u7unbtqq+++koffPCB7XCHrl27SpL++OMP3X777erXr5+ioqLUtm1bpaSk6F//+pfDY1osFt1yyy169tln1atXLzVv3lx9+/bV66+/7rDuG2+8oX79+ik8PFwJCQl66KGHan0N2dnZOu+889ShQwe1aNFCZ555phYsWOCwu/+QIUPUu3dvrV+/XqmpqWrevLmuv/56SdLu3bt19dVXq1WrVoqKitLo0aPrdZjf8QYMGCBJ+vnnn+2Wf/vtt7rmmmvUoUMHhYeHq1evXsrOzna4/2+//abbb79d3bp1U3h4uDp06KARI0bo66+/lvS/w0/ef/99u/vVdvhKza7pX375pdLT09WqVStdcMEFkv73b/LYY4+pV69eCg8Pt20dcWXWmjlWr16tmTNnKjY2VpGRkbrwwgv13//+1+F1vfXWW7rgggsUFRWl5s2bq1evXsrKyrJbZ/PmzbrkkkvUtm1bRURE6KyzztKLL7540vf81VdfVVFRke666y717NnT4fujR49Wenq6VqxYYfv3rXm/FixYoLlz5yohIUHh4eF67733JLn+c2gYhpYuXap+/fqpWbNmatOmja666iqHXcbr+jl01YoVK9SyZUvTt3zOnj1bAwcOVNu2bRUZGan+/ftrxYoVMgzDbr2uXbtq5MiRevXVV9WnTx9FRESoW7duWrJkyUmfY/v27Ro/frx69Oih5s2bq3Pnzho1apS+/PJLh3VP9pmQjh0KM3fuXNshhO3bt9f48ePtthg68/PPP+vVV1/VmDFjav3+H3/8oczMTHXs2FHNmjXT4MGDtXXr1pM+rrPDK2s7DKS0tFQ33XSTTjnlFIWFhSkhIUGzZ8/WkSNHTvo8rqioqND06dNthwp17txZU6dO1cGDBx1mru33wsqVK2WxWLRu3Tpdf/31at++vZo3b67Kyso6n/fXX3/VihUrdOGFF+qUU06x+1zU/E1xVU5OjlJSUtSiRQu1bNlSw4cPd+nfQTr2O6Jly5b605/+ZLd8/Pjx2r17tz755BNJ0scff6zq6mqHvT5GjhwpSXr55ZftliclJalXr1567LHHXH4dOIYcQg4hh/h2Djn+c1iXjRs3SpLLvzc9ydUsUfOz8txzz9Xr73lOTo7S09PVqVMnNWvWTL169dJdd93l8DdUOnaY/ahRo9SuXTtFRESoe/fumjp1qt06rn4Wa7Ny5UodOXLEaRb86quvdMEFF6hFixZq3769brnllpPugVnzN/7EwyudfdbffvttXXDBBYqMjFTz5s01aNAgvfPOOy7N7wpXPod15ZL6Zu6vvvpKM2fOVLdu3XT11Vfbfc/Vz4PkeuaqzZEjR/T666/ryiuvVGRkpG15fHy8hg4dqldffdW2bOPGjYqJiVFSUpLdY4wcOVIHDx7UW2+9Zbd8zJgx+uabb2y/YwCzOSa8IJeSkqInnnhCU6ZM0bXXXqv+/fsrNDTUYb1XX31VV111laKiorR06VJJUnh4uCSpsrJS+/bt0/Tp09W5c2dVVVXp7bff1hVXXKGnnnpKY8eOtXusN954QwUFBZozZ45atmypBQsW6PLLL9d///tfdevWTdKxXX0vvfRSpaSk6IUXXlB1dbUWLFjgECQl6bvvvtM111xj+wX3+eef6/7779fXX3+tJ5980m7dkpIS/eUvf9Edd9yhefPmqUmTJvr999914YUXavfu3crKylLPnj31xhtvNLjg2LFjhyTZhbCioiKlpqYqLi5OCxcuVMeOHbV27VpNmTJFe/fu1T333CPp2DmSzj33XP3www+68847NXDgQB04cEDr169XSUmJTj/9dLfnqaqq0iWXXKKbbrpJd911l93/1Ofm5mrDhg2aNWuWOnbsqA4dOrg8a42//e1vGjRokJ544glVVFTozjvv1KhRo7Rt2zaFhIRIOlYe3XDDDRo8eLAee+wxdejQQd98843+85//2B7nvffe00UXXaSBAwfqscceU1RUlF544QWNHj1ahw4dqvPcFfn5+ZJU5yFtl112mdatW6f3339ff/7zn23LlyxZop49e+qhhx5SZGSkevTo4dbP4U033aSVK1dqypQpeuCBB7Rv3z7NmTNHqamp+vzzzxUTE2Nbt7afQ1d9++232rBhgyZOnGj6OVJ++OEH3XTTTYqLi5N0rJi49dZb9dNPP2nWrFl26xYWFmrq1Km699571bFjRz3//PO67bbbVFVVpenTpzt9jt27d6tdu3aaP3++2rdvr3379unpp5/WwIEDtXXrVp122mmSXPtMHD16VJdeeqk2bNigO+64Q6mpqfrxxx91zz33aMiQIdq8ebOaNWvmdJZ169bp8OHDGjp0aK3f/9vf/qb+/fvriSeeUHl5ue69914NGTJEW7dutf3uaojS0lKdffbZatKkiWbNmqXu3bvro48+0ty5c/XDDz/oqaeesq1bXV3tUIbWpkmTJrafr0OHDmnw4MHatWuX/va3v6lPnz766quvNGvWLH355Zd6++237cqw2n4vFBQUSDp23ryLL75Yzz77rA4ePFjr341Dhw7ptdde06pVq/TWW28pJCREI0aMUE5OjhITE+v1Hs2bN09///vfNX78eP39739XVVWVHnzwQaWlpenTTz896eP+5z//Ua9evRwKnz59+ti+n5qaqqqqKkn/+ztXIzQ0VBaLRV988YXDYw8ZMkRr1qyRYRg+fx4hX0IOIYdI5BDJf3KIM85+b9bcru33pqe4miVq1Pfv+bfffqsRI0Zo6tSpatGihb7++ms98MAD+vTTT/Xuu+/a1lu7dq1GjRqlXr16adGiRYqLi9MPP/ygdevW2dZx9+f7RG+88YbOOusstW7d2uF7hw8f1ogRI2yftU2bNmnu3Ln68ccf9dprr7n4rtbtueee09ixY3XppZfq6aefVmhoqB5//HENHz5ca9eutZXshmGourrapcc8/m+zu59DZ7nE1Z/1H374QatXr9bq1av15ZdfKi4uTldffbWuvfbaerw77meuE3333Xf6/fffbfnkeH369FF+fr7++OMPRUREqKqqyuFzJ9l/9o7/XZOUlKSWLVvqjTfe0Pnnn1+v1we4xZu74fmivXv3Gueee64hyZBkhIaGGqmpqUZWVpaxf/9+u3VdPQzkyJEjxuHDh40JEyYYZ511lt33JBkxMTFGRUWFbVlpaanRpEkTIysry7Zs4MCBRmxsrPH777/bllVUVBht27atc9fw6upq4/Dhw8YzzzxjhISEGPv27bN9b/DgwYYk45133rG7z7JlywxJxr/+9S+75TfccINbh4Hk5OQYhw8fNg4dOmRs3LjROO2004zExES7XYCHDx9unHLKKXa7FRvGsd2CIyIibPPOmTPHkGTk5+ef9Hnfe+89u+W1Hb4ybtw4Q5Lx5JNPOjyOJCMqKsruvXJn1po5RowYYbfeiy++aEgyPvroI8MwDGP//v1GZGSkce6559a5+/Ppp59unHXWWQ6HJo0cOdLo1KmTw+FJx7vooosMSXUewvHmm28akowHHnjAMIz/vV/du3c3qqqq7NZ19efQ2SEYO3fuNJo1a2a3y7izn0NX3XnnnXbva33U53DUms/WnDlzjHbt2tn9G8bHxxsWi8UoLCy0u8+wYcOMyMhI267/rhxadeTIEaOqqsro0aOHMW3aNNtyVz4Tq1evNiQZL7/8st3ymsNnli5dWudrvPnmm41mzZo5/HzWvF/9+/e3+17NIQETJ060Lavt8BU5ObzyxMNAbrrpJqNly5bGjz/+aLfeQw89ZEgyvvrqK7v71vzeruvr+OfNysoymjRpYhQUFNg9/ksvvWRIMvLy8uxmru33wlNPPWVIMsaOHevwegzDMKqqqozXX3/duOaaa4wWLVoYYWFhxsiRI43nnnvO4W9Kbeo6HLW4uNho2rSpwyGi+/fvNzp27GhcffXVJ338Hj16GMOHD3dYvnv3bkOSMW/ePMMwDKOwsNCQZNx33312673zzjuGJCMsLMzhMf75z38akoxt27addA78DzmEHEIO8Z8cUtfhqLm5uYYk49lnn7VbvmLFCkOS0bNnT7efzzDqdziqsyzR0L/nxzt69Khx+PBh44MPPjAkGZ9//rnte927dze6d+9u9+92Ild/vp1p3ry5MWnSJIflNZ+1hx9+2G75/fffb0gyPvzwQ9uyE3NIzd/4Ew+vPPGzfvDgQaNt27bGqFGj7Narrq42+vbta5x99tkO93Xl6/jndfVzWFcuOdnPemlpqbFkyRIjJSXFkGR06tTJuPXWW42NGze6dKhmXYejupO5arNx40ZDkrF69WqH79Uc4r17927DMAxj6tSpRpMmTRzy45gxYwxJxo033ujwGIMGDTIGDhx4spcIeASHo56gXbt22rBhgwoKCjR//nxdeuml+uabbzRjxgydeeaZ2rt3r0uPs2bNGg0aNEgtW7ZU06ZNFRoaqhUrVmjbtm0O6w4dOlStWrWy3Y6JiVGHDh30448/SpIOHjyogoICXXHFFYqIiLCt16pVK40aNcrh8bZu3apLLrlE7dq1U0hIiEJDQzV27FhVV1frm2++sVu3TZs2Do3/e++9p1atWumSSy6xW37NNde49NprjB49WqGhobbdsSsqKvTGG2/YtlD98ccfeuedd3T55ZerefPmOnLkiO1rxIgR+uOPP/Txxx9Lkt5880317NlTF154oVsznMyVV15Z6/Lzzz9fbdq0sd12Z9YaJ75/NVtuav5dN23apIqKCk2ePNnplp/t27fr66+/tm11OvF5S0pKaj20xB3G/9976MQZLrnkEru9L9z5OXz99ddlsVj0l7/8xW7mjh07qm/fvg6779f2c+iKI0eO6Omnn9YZZ5yhc845x+37u+vdd9/VhRdeqKioKNtna9asWSorK9OePXvs1j3jjDPUt29fu2XXXHONKioq6rxq5JEjRzRv3jwlJiYqLCxMTZs2VVhYmL799lu73x+ufCZef/11tW7dWqNGjbL7d+jXr586duzo8O9wot27d9uuzlmba665xu578fHxSk1N9dju/K+//rqGDh2q2NhYu/kzMjIkSR988IFt3ddee00FBQUn/brxxhvtHr93797q16+f3eMPHz681sNMTvy9cLzafpd88cUX6tixoy699FLt3btXS5Ys0c8//6zXXntN1157bYP33Fy7dq2OHDmisWPH2s0fERGhwYMH2+Y3DMPu+yceylvXluea7/Xt21fnnXeeHnzwQa1Zs0a//fabNm3apEmTJikkJKTWLekdOnSQJP30008Nep3BhhxCDpHIITXz+3oOqUtGRoZOPfVU3XnnncrPz9dvv/2mt956S3/729+c/t70FFezRI36/j3//vvvdc0116hjx462z/rgwYMlyfY833zzjb777jtNmDDB7t/tePX5+T7eb7/9pkOHDtn+7tTmxD24an6feCKzbNq0Sfv27dO4cePsZj969KguuugiFRQU2A65TEpKcimvFBQUKDY2VlL9PofOfrc4+1mfPXu2OnfurNmzZ+vMM8/Uu+++q127dmnJkiVKTU1t8B7trmauo0eP2n3/xL0GXcksN954o0JDQ3Xttdfqq6++UllZmbKzs20XN3KWWcgraCwcjurEgAEDbOcOOXz4sO6880794x//0IIFC7RgwYI67/vKK6/o6quv1p/+9Cf99a9/VceOHdW0aVMtW7bM4TAM6VjgPlF4eLjt8uW//vqrjh49WutVH09cVlxcrLS0NJ122ml6+OGH1bVrV0VEROjTTz+V1Wp1uCR6p06dHB6zrKzMbhd9Z891Mg888IDOP/98HTp0SOvWrVNWVpYuu+wyffLJJwoPD1dZWZmOHDmiRx55RI888kitj1HzPxu//PKL7RBAT2nevLndOQWOd+L74s6sNU78d63ZBbrm36DmnFynnHKK0xlrDq+YPn2600MY6/ofspr3bMeOHU4Plak5z0WXLl3slp/4Hrjzc/jzzz/LMIxaf44kORzaUNvPoSvy8vJUWlqqO++8s173d8enn36q9PR0DRkyRP/85z9t5yjLzc3V/fff7/DZqut9Kisrc/o8mZmZys7O1p133qnBgwerTZs2atKkiSZOnGj3HK58Jn7++Wf99ttvCgsLq/X7J/uf+d9//91pYJacv8bPP/+8zsd1VU1hVduheJL9/ImJiS4fjnr842/fvt2lx5fq/jmt7XuhoaGKiorSvn37VF5ervLych04cKDWQ2Xqo+b3Q3Jycq3fr3mtH3zwgcMhxTt27FDXrl3Vrl27Wn8e9+3bJ0lq27atbdmaNWt03XXX2c4HExYWpmnTpuntt9/Wb7/95vAYNT87J3424BpyCDnkeOQQ38whdQkLC9Obb76pMWPGKD09XZLUokULzZs3T/fdd586d+7s8ees4WqWqFGfv+cHDhxQWlqaIiIiNHfuXPXs2VPNmzfXzp07dcUVV7j1c1afn+/j1TyXs8zStGlTh8+DK5nMVTWfk6uuusrpOvv27bOdu7Vfv34uPW7N4aj1+Rw6+5l2trxly5YKDw/XH3/8ofLycv3222+qqqqqMwe6w9XMdf3119tdqbRmo2LNv5+zzGKxWGz5qlevXnr11Vd10003qXfv3pKO/X5ZuHChbr311lo/exEREeQVNBpKOBeEhobqnnvu0T/+8Q+7c2Q489xzzykhIUE5OTl2bf3JTtTtTJs2bWSxWGo9IfGJy3Jzc3Xw4EG98sorio+Pty0vLCys9bFr25rQrl07ffrppyd9rpPp1q2b7X8gzjvvPDVr1kx///vf9cgjj2j69Olq06aNQkJCNGbMGFmt1lofIyEhQZLUvn177dq1q87nq/kjceL77OyPtitbUmq4M6ur2rdvL0l1vq7o6GhJ0owZM3TFFVfUus6J5/U43rBhw7R8+XLl5ubqrrvuqnWd3NxcNW3aVEOGDLFbXtt74OrPYXR0tCwWizZs2FDnORmcPZerVqxYobCwMKcXDvCkF154QaGhoXr99dftAklubm6t69f1PtX2P7w1as4pMm/ePLvle/futStvXPlMREdHq127dg4noK1x/J4vzu5f1157zl5jXa9POvbvX9vvwxODVXR0tPr06aP777+/1sep2UIsSd27d7ft3VGXe+65x3ZRiOjoaDVr1qzWUqLm+8dz53eGdCwEfv/99/roo4+0atUqzZ8/X7fffrsGDRqk0aNH66qrrnK7VKhtvpdeesnu9/2Jara6H6/mvTvzzDO1evVqHTlyxO7cMzUn764Jr9KxrcR5eXnas2ePSktLFR8fr2bNmmnp0qW1/o9HTZF34vsI95FDan+ukyGH1I0c4vy5POXUU0/VRx99pJ9++kn79u1T9+7dVV5erttuu03nnXeeKc8puZ4latTn7/m7776r3bt36/3337ft/SbJYaOMKz9nDf35rpmz5u/OiY4cOaKysjK71+NKJnP1M13zOXnkkUecHplRUwjXtmHMmZoNZvX5HDr7mXa2/Pbbb9ekSZOUm5urVatWafTo0YqIiNCll16qP//5zxo2bJjTjbqucDVz3Xvvvbrllltsy2uyavfu3dWsWbNaL1T25Zdf6tRTT7XL5xkZGfrxxx+1fft2HTlyRD179rRdxKK2z96+ffvIK2g0lHAnKCkpqXULQc0u1cf/T9/xW4mPZ7FYFBYWZvdLrrS0tNarkrmiRYsWOvvss/XKK6/owQcftP2C2b9/v8PJRGue8/hwYRiG/vnPf7r8fEOHDtWLL76of//733aHMqxatape89e44447tHLlSs2fP1833XSTWrVqpaFDh2rr1q3q06dPnb/YMzIyNGvWLL377rtODxeouSrcF198oeHDh9uW//vf/27Q3NKxrdWuzuqq1NRURUVF6bHHHtOf//znWv8onnbaaerRo4c+//xzhyDlissvv1yJiYmaP3++rrjiCocrk+Xk5GjdunWaNGnSScsAd34OR44cqfnz5+unn35yuIqSp5SWliovL09XXHHFSUsfT7BYLGratKntZNbSsS2vzz77bK3rf/XVV/r888/tDkldtWqVWrVqpf79+9f5PCf+z8Ebb7yhn376SaeeeqptmSufiZEjR9pOXD1w4ECXXufxTj/9dK1evVrl5eWKiopy+P7q1auVmZlp+9n98ccftWnTJoeTvp+oa9euDiekfvfdd3XgwAGH+fPy8tS9e3enh4HWeO2111wqGI7/HT5y5EjNmzdP7dq1c/t/Xt2RkpKilJQULV68WO+8845WrVqlmTNn6rbbbtPgwYM1evRojR07ts6LZNRm+PDhatq0qb777junh51IxwJsTRFxossvv1z//Oc/9fLLL9ud9P7pp59WbGxsrT83HTp0sB3ys2TJEh08eNAuMNf4/vvv1aRJkzr/Bx2OyCHkkNqQQ3wvh7ijc+fOtr1v/v73v6tFixaaMGGCac/napaoUZ+/57V91iXp8ccft7vds2dPde/eXU8++aQyMzNrLUUb+vMdFhambt266bvvvnO6zvPPP68pU6bYbtf8Pjmx/D3e8Z/p4/+WnfiZHjRokFq3bq2ioqJa/x4er7YNY87U/L5v6OfQVS1atNC1116ra6+9VmVlZVqzZo1WrVqlUaNGqXXr1rr88ss1ZsyYOt8zZ1zNXF27drW978dr2rSpRo0apVdeeUULFiywlXPFxcV67733NG3aNIf7WCwW9ejRQ9KxC6U8/PDD6tevX60l3Pfff2+34REwEyXcCYYPH65TTjlFo0aNsl1dsLCwUAsXLlTLli1122232dY988wz9cILLygnJ0fdunVTRESEzjzzTI0cOVKvvPKKJk+erKuuuko7d+7Ufffdp06dOunbb7+t11z33XefLrroIg0bNky33367qqur9cADD6hFixZ2W31qtlL83//9n+644w798ccfWrZsmX799VeXn2vs2LH6xz/+obFjx+r+++9Xjx49lJeXp7Vr19Zr9hqhoaGaN2+err76aj388MP6+9//rocffljnnnuu0tLSdPPNN6tr167av3+/tm/frtdee812ZaWpU6cqJydHl156qe666y6dffbZ+v333/XBBx9o5MiRGjp0qDp27KgLL7xQWVlZatOmjeLj4/XOO+/olVdeadDcNVyd1VUtW7bUwoULNXHiRF144YW64YYbFBMTo+3bt+vzzz/Xo48+KulYmMnIyNDw4cN13XXXqXPnztq3b5+2bdumzz77TGvWrHH6HCEhIXr55Zc1bNgwpaSk6Pbbb1dKSooqKyv12muvafny5Ro8eLAWLlzo0syu/hwOGjRIN954o8aPH6/NmzfrvPPOU4sWLVRSUqIPP/xQZ555pm6++Wa33q8TPf300zpy5IgmTpzodJ17771Xs2fP1nvvvedSYHB2vpHBgwfr4osv1qJFi3TNNdfoxhtvVFlZmR566KFaw6R0LDhdcskluvfee9WpUyc999xzys/P1wMPPKDmzZs7nWHkyJFauXKlTj/9dPXp00dbtmzRgw8+6HAYhyufiT//+c96/vnnNWLECN122206++yzFRoaql27dum9997TpZdeqssvv9zpLEOGDJFhGPrkk09sh9Icb8+ePbr88st1ww03qLy8XPfcc48iIiI0Y8YMp48pHbsU/N13361Zs2Zp8ODBKioq0qOPPupQ9M2ZM0f5+flKTU3VlClTdNppp+mPP/7QDz/8oLy8PD322GO29+XMM8+s8zlrM3XqVL388ss677zzNG3aNPXp00dHjx5VcXGx1q1bp9tvv71e5aUzISEhSk9PV3p6uh577DG98cYbWrVqlaZOnaqBAwfaHZ7y5ptv6uDBg9q/f7+kY1eNe+mllyRJI0aMUPPmzdW1a1fNmTNHM2fO1Pfff6+LLrpIbdq00c8//6xPP/1ULVq00OzZs+ucKSMjQ8OGDdPNN9+siooKnXrqqVq9erXeeustPffcc3alc02J0r17d/3222968803tWLFCs2bN6/WYvnjjz9Wv379Tlqgwh45hBziDDnEd3JIze/j77//XpK0efNm23k+j98zeMGCBerYsaPi4uL0888/68UXX1Rubq6effZZh0PiaoqHmsNz61JdXW2b4XgtWrRQRkaGy1miRn3+nqempqpNmzaaNGmS7rnnHoWGhur555+v9RDW7OxsjRo1Suecc46mTZumuLg4FRcXa+3atXr++eclNfzne8iQIXrzzTdr/V5YWJgWLlyoAwcOKDk52XZ11IyMDJ177rlOHzM5OVmnnXaapk+friNHjqhNmzZ69dVX9eGHH9qt17JlSz3yyCMaN26c9u3bp6uuukodOnTQL7/8os8//1y//PKLli1bJqnuDWN1acjnsD7atWunSZMmadKkSdq1a5dWr16tVatW6bPPPtPWrVtt6/3yyy+2c/TW7KX25ptvqn379mrfvr1tL0lPZK7Zs2crOTlZI0eO1F133aU//vhDs2bNUnR0tG6//Xa7dW+99VYNGTJE7dq10/fff68lS5Zo165dducTrlFWVqZvv/1Wt956a4PeM8BlXrskhI/KyckxrrnmGqNHjx5Gy5YtjdDQUCMuLs4YM2aMUVRUZLfuDz/8YKSnpxutWrUyJBnx8fG2782fP9/o2rWrER4ebvTq1cv45z//6fQqgVar1WGOE6/OYxiG8e9//9vo06ePERYWZsTFxRnz58+v9TFfe+01o2/fvkZERITRuXNn469//avtylPHX7Fr8ODBxhlnnFHr+7Br1y7jyiuvNFq2bGm0atXKuPLKK41Nmza5dVUyZ1eaHDhwoNGmTRvjt99+Mwzj2FWwrr/+eqNz585GaGio0b59eyM1NdWYO3eu3f1+/fVX47bbbjPi4uKM0NBQo0OHDsbFF19sfP3117Z1SkpKjKuuuspo27atERUVZfzlL38xNm/eXOtVyZxdWcrZv4mrszp7/c6uhJmXl2cM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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order1 = 7\n", - "order2 = 19\n", - "cutoff = 1e-9\n", - "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order1, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order2, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - " \n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid, plot_me_hem.T < cutoff, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap.T < cutoff, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "fig.subplots_adjust(right=0.8)\n", - "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", - "#fig.colorbar(cs1, cax=cbar_ax)\n", - "\n", - "ax1.set_xscale('log')\n", - "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\")\n", - "ax1.set_ylabel(\"source y-coord\")\n", - "\n", - "ax2.set_xscale('log')\n", - "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\")\n", - "ax2.set_ylabel(\"source y-coord\")\n", - "\n", - "ax1.set_title('Standard Recurrence Order '+str(order1)+', Laplace (blue=err<'+str(cutoff)+')')\n", - "ax2.set_title('Standard Recurrence Order '+str(order2)+', Laplace (blue=err<'+str(cutoff)+')')\n", - "\n", - "plt.show()" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 53f72d6a4..524ef296d 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -238,7 +238,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -254,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -276,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -348,84 +348,131 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "#x_grid, y_grid, plot_me_helm = generate_error_grid(8, 7, helmholtz2d, derivs_helm, 4, 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.00184871819382052\n", - "4.75098141096813e-8\n", - "1.27424113932491e-12\n", - "3.44431957713771e-17\n", - "6.31511332640171e-16\n", - "4.90570949474948e-16\n", - "5.87724883438792e-16\n", - "26177090592573.4\n", - "0.00184871819381963\n", - "4.75098144912018e-8\n", - "1.27493466971487e-12\n", - "5.81901218538308e-16\n", - "3.77301936958497e-16\n", - "4.46996650791360e-16\n", - "6.04988962786052e+24\n", - "26177090592576.2\n", - "0.00184871819377463\n", - "4.75098137869768e-8\n", - "1.27388870384998e-12\n", - "1.08208552419152e-15\n", - "3.86092650841635e-16\n", - "1.62179238322092e+36\n", - "6.04988962793290e+24\n", - "26177090592971.4\n", - "0.00184871818496024\n", - "4.75097716109870e-8\n", - "1.27474821246038e-12\n", - "3.16296324062824e-16\n", - "4.35075882804186e+47\n", - "1.62179238695728e+36\n", - "6.04988964188820e+24\n", - "26177090669288.2\n", - "0.00184871648322706\n", - "4.75016092694573e-8\n", - "1.22997606341039e-12\n", - "1.16717673725736e+59\n", - "4.35076076325769e+47\n", - "1.62179310833453e+36\n", - "6.04989233625298e+24\n", - "26177105403844.6\n", - "0.00184838788643231\n", - "4.58767733787243e-8\n", - "3.13144895876003e+70\n", - "1.16727694753693e+59\n", - "4.35113430648643e+47\n", - "1.62193235151123e+36\n", - "6.05041241365264e+24\n", - "26179949654208.7\n", - "0.00178300550681144\n", - "8.53807693276093e+81\n", - "3.18264819581435e+70\n", - "1.18636194299514e+59\n", - "4.42227541957112e+47\n", - "1.64845114612838e+36\n", - "6.14946395699773e+24\n", - "26724866621333.9\n" - ] + "data": { + "text/plain": [ + "' import matplotlib.pyplot as plt\\nfig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\\ncs1 = ax1.contourf(x_grid, y_grid,plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\\n\\ncs2 = ax2.contourf(x_grid, y_grid, plot_me_helm.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\\n\\nfig.subplots_adjust(right=0.8)\\ncbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\\nfig.colorbar(cs1, cax=cbar_ax)\\n\\n\\nax1.set_xscale(\\'log\\')\\nax1.set_yscale(\\'log\\')\\nax1.set_xlabel(\"source x-coord\")\\nax1.set_ylabel(\"source y-coord\")\\n\\n\\nax2.set_xscale(\\'log\\')\\nax2.set_yscale(\\'log\\')\\nax2.set_xlabel(\"source x-coord\")\\nax2.set_ylabel(\"source y-coord\")\\n\\nax1.set_title(\\'4-Term Taylor Series, Order 7, Laplace\\')\\nax2.set_title(\\'4-Term Taylor Series, Order 7, Helmholtz\\')\\n\\nplt.show() '" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "x_grid, y_grid, plot_me_helm = generate_error_grid(8, 7, helmholtz2d, derivs_helm, 4, 4)" + "\"\"\" import matplotlib.pyplot as plt\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", + "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_helm.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "\n", + "fig.subplots_adjust(right=0.8)\n", + "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", + "fig.colorbar(cs1, cax=cbar_ax)\n", + "\n", + "\n", + "ax1.set_xscale('log')\n", + "ax1.set_yscale('log')\n", + "ax1.set_xlabel(\"source x-coord\")\n", + "ax1.set_ylabel(\"source y-coord\")\n", + "\n", + "\n", + "ax2.set_xscale('log')\n", + "ax2.set_yscale('log')\n", + "ax2.set_xlabel(\"source x-coord\")\n", + "ax2.set_ylabel(\"source y-coord\")\n", + "\n", + "ax1.set_title('4-Term Taylor Series, Order 7, Laplace')\n", + "ax2.set_title('4-Term Taylor Series, Order 7, Helmholtz')\n", + "\n", + "plt.show() \"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import get_recurrence\n", + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "n_init_lap, order_lap, recur_laplace = get_processed_and_shifted_recurrence(laplace2d)\n", + "\n", + "def compute_derivatives(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "l_max = 10\n", + "derivs_laplace = compute_derivatives(l_max)\n", + "\n", + "def evaluate_recurrence_lamb1(coord_dict, recur, p, derivs_list, n_initial, n_order):\n", + " subs_dict = {}\n", + " for i in range(n_initial-n_order, 0):\n", + " subs_dict[s(i)] = 0\n", + " for i in range(n_initial):\n", + " subs_dict[s(i)] = derivs_list[i].subs(coord_dict)\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " for i in range(n_initial, p):\n", + " exp = get_recurrence(recur, i)\n", + " f = sp.lambdify([var[0], var[1]] + [s(i-(1+k)) for k in range(n_order-1)], exp)\n", + " subs_dict[s(i)] = f(*([coord_dict[var[0]], coord_dict[var[1]]] + [subs_dict[s(i-(1+k))] for k in range(n_order-1)]))\n", + " for i in range(n_initial-n_order, 0):\n", + " subs_dict.pop(s(i))\n", + " return np.array(list(subs_dict.values()))\n", + "\n", + "def compute_error_coord1(recur, loc, order, derivs_list, n_initial, n_order):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", + "\n", + " exp = evaluate_recurrence_lamb1(coord_dict, recur, order+1, derivs_list, n_initial, n_order)[order].evalf()\n", + " \n", + " true = derivs_list[order].subs(coord_dict).evalf()\n", + "\n", + " \n", + "\n", + " return (np.abs(exp-true)/np.abs(true))\n", + "def generate_error_grid1(res, order_plot, recur, derivs, n_initial, n_order):\n", + " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", + " res=len(x_grid)\n", + " plot_me = np.empty((res, res))\n", + " for i in range(res):\n", + " for j in range(res):\n", + " if abs(x_grid[i]) == abs(y_grid[j]):\n", + " plot_me[i, j] = 1e-16\n", + " else:\n", + " plot_me[i,j] = compute_error_coord1(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs, n_initial, n_order)\n", + " if plot_me[i,j] == 0:\n", + " plot_me[i, j] = 1e-16\n", + " return x_grid, y_grid, plot_me\n", + "x_grid, y_grid, plot_me_lap2 = generate_error_grid1(res=8, order_plot=7, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQ4AAALACAYAAADSYu9+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACslklEQVR4nOzdeXiU9b3+8TsmkrAGAxKNrCq1RiTYEC0oCi7QqOBeTm0RFRdKPBRT61KOVXHB1kqxGqh4Wjm0VVGr1Fp+QlQKVLQGJG6xVlo0WFkkAoEgW3h+f3z6HTJmIZPM5Hlm5v26Lq5zMgzJA2rnO2/umaR4nucJAAAAAAAAAOo4xO8LAAAAAAAAABA8hEMAAAAAAAAA9RAOAQAAAAAAANRDOAQAAAAAAABQD+EQAAAAAAAAQD2EQwAAAAAAAAD1EA4BAAAAAAAA1EM4BAAAAAAAAFAP4RAAAAAAAABAPYRDxMT//u//KiUlRZ06dWryfsOHD1dKSspBf9x5551tc+HN1JxrTklJ0V/+8peofc3hw4dr+PDhUft8Tdm7d68effRRFRQUKCsrSx06dFCfPn10wQUX6Pnnn4/61wvSP2PP8/TEE0/ozDPP1GGHHab09HQdffTRKioq0rp161r9+T/++GOlpKRo7ty5rb/Yg5g7d26T/37ef//9Lfq8ffv21fnnnx/lqz24tvxvAEB84dzBuSMSQfpnzLnj4Jo6d6xcubLFv79Y/Nn85S9/UUpKip599tmofc4777xTKSkpYbfNmjWrTf6ZAoAkpfl9AUg8//73v3XTTTcpJydH27Zta/K+s2bNUnV1dejjP//5z7rnnnv0+OOP6+tf/3ro9p49e8bselvi9ddfD/v47rvv1pIlS/Tqq6+G3Z6bm9uWlxU148aN03PPPacpU6borrvuUnp6uv71r3/ppZde0qJFi3TRRRdF9eu9/vrrgfhnvH//fl1++eWaP3++vvOd72ju3LnKzMzUO++8owceeEBPPPGEXnzxRZ166ql+X2qznHfeefX+XZWkn/zkJyotLY36P0cA8APnjgM4dzQP547Y4NzRdmbNmqXu3bvryiuv9PtSACQBwiGibuLEiTr99NOVlZV10L9t++oB9+9//7skacCAARo8eHCrr2Xnzp3q0KFDqz/PV33zm98M+/jwww/XIYccUu/2oPI8T7t27VL79u3r/dzatWs1f/58/eQnP9Fdd90Vuv2ss87Stddeq/3790f9GoLy5/bTn/5U8+fP1/33369bbrkldPvw4cM1duxYnXLKKbrkkkv097//XV27dm3088Tq37uGfPnll8rIyKj3N9GS/Xt5+OGHh91WU1Oj119/XaeddpqOO+64NrlGAIglzh3Bx7mjYZw7AADxgJcqI6p+97vfaenSpZo1a1ZUP+/8+fM1ZMgQdezYUZ06ddKoUaO0evXqsPtceeWV6tSpk959912NHDlSnTt31llnnSXJXpJyww036PHHH9dxxx2n9u3ba/DgwXrjjTfkeZ4eeOAB9evXT506ddKZZ56pNWvWtPqaS0pKdPrpp6tHjx7q2LGjTjzxRP3sZz/T3r17Q/e5++67lZaW1uBLUa6++mp169ZNu3btavRrfPHFF5o0aZKOOuootWvXTkcffbSmTp2q3bt3h93P/f5/9atf6fjjj1d6err+7//+r8HPWVVVJUk68sgjG/z5Qw4J/5+N6upq3XTTTerXr5/atWuno446SlOmTFFNTU2zr6Ghlwxt2LBB119/vXr27Kl27dqpX79+uuuuu7Rv376w+82ePVt5eXnq1KmTOnfurK9//ev68Y9/3OifWWP27NmjBx54QMcff7xuvvnmej+fnZ2t6dOna+PGjfr1r38dun348OEaMGCAli1bpqFDh6pDhw66+uqrJUmfffaZvv3tb6tz587KzMzU2LFjtWHDhga//sqVKzVmzBhlZWUpIyNDJ510kp5++umw+7iXAC1evFhXX321Dj/8cHXo0KHeP++mzJ8/Xzt27NA111zT7F/TEqWlpbrgggvUs2dPZWRk6Nhjj9X111+vzZs3h93Pvfxm9erVuvjii9WlSxdlZmbqe9/7nj7//PODfp277rpLp5xyirKystSlSxd94xvf0K9//Wt5nlfvvk888YSGDBmiTp06qVOnTho0aFDYP0tJevnll3XWWWepS5cu6tChg0499VS98sorrfvDABAznDsO4NzBuSOZzx1f9dFHH+nyyy9Xjx49lJ6eruOPP14lJSUH/XXuXPLOO+/osssuU2ZmprKyslRcXKx9+/bpww8/1Le+9S117txZffv21c9+9rMGP8/evXs1depU5eTkqEuXLjr77LP14Ycf1rvfb37zG+Xl5SkjI0NZWVm66KKL9MEHHzR5jX379tX777+vpUuXhl4G3rdvX0lNvx0DL20G0GIeECUbN270unXr5pWUlHie53njx4/3OnbsGNHnePzxxz1JXllZWei2e++910tJSfGuvvpq78UXX/See+45b8iQIV7Hjh29999/P3S/8ePHe4ceeqjXt29fb/r06d4rr7ziLVq0yPM8z5Pk9enTxxs6dKj33HPPec8//7z3ta99zcvKyvJuvPFG74ILLvBefPFF7/e//72XnZ3tDRw40Nu/f3+zr7uh3+uNN97ozZ4923vppZe8V1991fvFL37hde/e3bvqqqvC/szS09O9qVOnhv3aqqoqr3379t6PfvSj0G1nnHGGd8YZZ4Q+/vLLL72BAwd6HTt29H7+8597ixcv9m6//XYvLS3NO/fcc8M+nyTvqKOO8gYOHOg98cQT3quvvuq99957Df5eduzY4XXt2tU74ogjvEcffdRbu3Zto7/vmpoab9CgQV737t29GTNmeC+//LL30EMPeZmZmd6ZZ54Z9mfY1DVI8u64447QfdevX+/16tXL69Onj/foo496L7/8snf33Xd76enp3pVXXhm635NPPulJ8v77v//bW7x4sffyyy97v/rVr7zJkyc3es2NWbFihSfJu+WWWxq9z/bt271DDjnEGzVqVOi2M844w8vKyvJ69erlPfzww96SJUu8pUuXejt37vSOP/54LzMz03v44Ye9RYsWeZMnT/Z69+7tSfIef/zx0Od49dVXvXbt2nnDhg3z5s+f77300kvelVdeWe9+7r+Po446yrvuuuu8//f//p/37LPPevv27Wv273Po0KFely5dvJqamoj+fOrq06ePd9555zV5n9mzZ3vTp0/3XnjhBW/p0qXe//3f/3l5eXnecccd5+3Zsyd0vzvuuCP03+ePfvQjb9GiRd6MGTO8jh07eieddFLYfb/634Dned6VV17p/frXv/ZKS0u90tJS7+677/bat2/v3XXXXWH3u/322z1J3sUXX+w988wz3uLFi70ZM2Z4t99+e+g+v/3tb72UlBTvwgsv9J577jnvT3/6k3f++ed7qamp3ssvv9ziPy8AscG5g3MH547kOXece+653t69e+v9eOONN+pd9/vvv+9lZmZ6J554ojdv3jxv8eLF3g9/+EPvkEMO8e68887Q/dauXVvv17pzyXHHHefdfffdXmlpqXfzzTd7krwbbrjB+/rXv+798pe/9EpLS72rrrrKk+T94Q9/CP36JUuWeJK8vn37et/97ne9P//5z96TTz7p9e7d2+vfv3/Yn919993nSfK+853veH/+85+9efPmeUcffbSXmZnp/eMf/6h3Tc5bb73lHX300d5JJ53kvf76697rr7/uvfXWW6Hfu7vN/Tj77LO91NRUb8WKFS3+ZwAguREOETWXXHKJN3To0NChLRoH+MrKSi8tLc377//+77D7bd++3TviiCO8b3/726Hbxo8f70nyfvOb39T7vJK8I444wtuxY0fotgULFniSvEGDBoUdNGfOnOlJ8t55551mX/fBfq+1tbXe3r17vXnz5nmpqaneF198EfZre/To4e3evTt0209/+lPvkEMOCTs8f/UA/6tf/cqT5D399NNhX+unP/2pJ8lbvHhx2O8/MzMz7Os25c9//rPXvXt3T5InyevWrZt32WWXeS+88ELY/aZPn+4dcsghYU+4PM/znn32WU+St3DhwmZdw1cP8Ndff73XqVMn75NPPgm7389//nNPUuiJ2w033OB17dq1Wb+ng3nqqac8Sd6vfvWrJu+XnZ3tHX/88aGPzzjjDE+S98orr4Tdb/bs2Z4k749//GPY7ddee229Q+rXv/5176STTvL27t0bdt/zzz/fO/LII73a2lrP8w7893HFFVe05LfoffDBB54k7/rrr2/Rr3eaEw7r2r9/v7d3717vk08+qfdn4g7DN954Y9iv+f3vf+9J8n73u9+FbmsoHNbl/jubNm2a161bt9B/1//617+81NRU77vf/W6jv7ampsbLysryRo8eXe9z5uXleSeffHKzf78A2gbnDs4dDueOxD93uH83GvtR9/c3atQor2fPnt62bdvCPs8NN9zgZWRkhP6daCocPvjgg2G/dtCgQZ4k77nnngvdtnfvXu/www/3Lr744tBtLhx+NaY//fTTniTv9ddf9zzP87Zs2eK1b9++3v0qKyu99PR07/LLL693TXWdcMIJTZ6JnAceeMCT5M2ZM+eg9wWAxvBSZUTFH/7wB/3pT3/SY4891uB7njj79+/Xvn37Qj9qa2ub/LyLFi3Svn37dMUVV4T9uoyMDJ1xxhkNfvfASy65pMHPNWLECHXs2DH08fHHHy9JKiwsDLtmd/snn3zS5LUdzOrVqzVmzBh169ZNqampOvTQQ3XFFVeotrZW//jHP0L3+8EPfqBNmzbpmWeekWR/RrNnz9Z5550XetlBQ1599VV17NhRl156adjt7k2Sv/rySvfd+prj3HPPVWVlpZ5//nnddNNNOuGEE7RgwQKNGTNGN9xwQ+h+L774ogYMGKBBgwaF/fMZNWpUg9/dsbnX8OKLL2rEiBHKyckJ+7yFhYWSpKVLl0qSTj75ZG3dulXf+c539Mc//rHey2BjwfO8ev+OH3bYYTrzzDPDbluyZIk6d+6sMWPGhN1++eWXh328Zs0a/f3vf9d3v/tdSQr7/Z577rlav359vZe2NPbv+MG4lzq1xcuFNm3apIkTJ6pXr15KS0vToYceqj59+khSgy/Bcb9/59vf/rbS0tK0ZMmSJr/Oq6++qrPPPluZmZmh/85+8pOfqKqqSps2bZJkL5uura1VUVFRo59nxYoV+uKLLzR+/Piwfwb79+/Xt771LZWVldV7GRwA/3DuqI9zB+eORD53nHbaaSorK6v3Y968eWH327Vrl1555RVddNFF6tChQ73f365du/TGG28c9Ot99bs4H3/88UpJSQn9OyFJaWlpOvbYYxv8b/er/xwGDhwo6cB/56+//rq+/PLLet/cpFevXjrzzDOj8jYpTz75pG6++Wb9z//8j6699tpWfz4AyYtvjoJW27Fjh4qKivTf//3fysnJ0datWyXZe7dI0tatW3XooYeqY8eOmjZtWtgbX/fp00cff/xxo59748aNkqSCgoIGf/6r73vToUMHdenSpcH7ZmVlhX3crl27Jm9v6j1+DqayslLDhg3Tcccdp4ceekh9+/ZVRkaG3nzzTRUVFenLL78M3fekk07SsGHDVFJSou9+97t68cUX9fHHH+vRRx9t8mtUVVXpiCOOqHeY7NGjh9LS0kLvGeQ09t5BjWnfvr0uvPBCXXjhhaHfU2FhoUpKSvT9739fJ5xwgjZu3Kg1a9bo0EMPbfBzfPVA3dxr2Lhxo/70pz8d9POOGzdO+/bt02OPPaZLLrlE+/fvV0FBge655x6dc845zfydmt69e0uyN2lvTE1NjTZv3qyTTjop7PaGfl9VVVXKzs6ud/sRRxwR9rH7d/ymm27STTfd1ODXbemfY1179+7VvHnzlJeXF5VvANCU/fv3a+TIkfrss890++2368QTT1THjh21f/9+ffOb3wz799/56p9LWlqaunXrVu/f47refPNNjRw5UsOHD9djjz0Wel+qBQsW6N577w19HfdeiU19B033z+GrT4jr+uKLL8IiAAB/cO6oj3OH4dyRuOeOzMzMZn2eqqoq7du3Tw8//LAefvjhBu/TnODb0H+nHTp0UEZGRr3b636ndqdbt25hH6enp0tS6L/Fpt7bMycnR6WlpQe9xqYsWbJEV155pa644grdfffdrfpcAEA4RKtt3rxZGzdu1IMPPqgHH3yw3s8fdthhuuCCC7RgwQJdd911YX+D5x5EG9O9e3dJ0rPPPhtaKzWlqdVBW1qwYIFqamr03HPPhV13eXl5g/efPHmyLrvsMr311lt65JFH9LWvfe2gB9Bu3brpb3/7W72/id60aZP27dsX+rNzWvtn07t3b1133XWaMmWK3n//fZ1wwgnq3r272rdvr9/85jcN/pqWXkP37t01cOBA3XvvvQ3+fE5OTuj/v+qqq3TVVVeppqZGy5Yt0x133KHzzz9f//jHP5r174yTn5+vww47TC+88IKmT5/e4LW+8MIL2r9/f71/Ng3dt1u3bnrzzTfr3f7VNyl3f0a33XabLr744gav7avfhbAl/yxffPFFbdq0SbfffnvEvzZS7733nt5++23NnTtX48ePD93e1Jv/b9iwQUcddVTo43379qmqqqrewbuup556SoceeqhefPHFsIP8ggULwu7nvsPjp59+ql69ejX4udw/h4cffrjR77bZ0BMyAG2Pc0d9nDsM547kPHfUddhhhyk1NVXjxo1r9JUG/fr1a9Nraog736xfv77ez3322Wf1/l2OxDvvvKMLL7xQZ5xxhh577LEWfx4AcAiHaLUjjjiiwZcT3n///Vq6dKn+3//7f6EHv5ycnLDD18GMGjVKaWlp+uc//9nil0n4wR2w6j5B8Tyv0Qfviy66SL1799YPf/hDLV26VL/4xS8Oekg766yz9PTTT2vBggW66KKLQre7l2y47+wYqe3btyslJUWdOnWq93PuJabun+H555+v++67T926dYvqIez888/XwoULdcwxxzT7ZU4dO3ZUYWGh9uzZowsvvFDvv/9+RAf4du3a6Uc/+pF+/OMf64EHHqj3HQ43bdqk2267TdnZ2c16yc2IESP09NNP64UXXgh7ucoTTzwRdr/jjjtO/fv319tvv6377ruv2dcbqV//+tfKyMio95LgWGjo339JTa5Zfv/73ys/Pz/08dNPP619+/Zp+PDhTX6dtLQ0paamhm778ssv9dvf/jbsfiNHjlRqaqpmz56tIUOGNPi5Tj31VHXt2lUVFRVhL4sDEDycO+rj3NE6nDuiry3PHXV16NBBI0aM0OrVqzVw4MDQojdohgwZovbt2+t3v/udLrvsstDtn376qV599dUmXwEh2X/rDb2Cwy11jz76aP3hD39odEULAJEgHKLVMjIyGnxyP3fuXKWmpjb5xP9g+vbtq2nTpmnq1Kn617/+pW9961s67LDDtHHjRr355pvq2LFj2EuQguKcc85Ru3bt9J3vfEc333yzdu3apdmzZ2vLli0N3j81NVVFRUW65ZZb1LFjx3rvd9KQK664QiUlJRo/frw+/vhjnXjiifrrX/+q++67T+eee67OPvvsFl37hx9+qFGjRum//uu/dMYZZ+jII4/Uli1b9Oc//1lz5szR8OHDNXToUEnSlClT9Ic//EGnn366brzxRg0cOFD79+9XZWWlFi9erB/+8Ic65ZRTIr6GadOmqbS0VEOHDtXkyZN13HHHadeuXfr444+1cOFC/epXv1LPnj117bXXqn379jr11FN15JFHasOGDZo+fboyMzPDXmbm3rOpqZenSdItt9yit99+O/R/x44dq8zMTL3zzjt64IEHtH37dr344ovKzMw86O/hiiuu0C9+8QtdccUVuvfee9W/f38tXLhQixYtqnffRx99VIWFhRo1apSuvPJKHXXUUfriiy/0wQcf6K233gq9D1VLffbZZ3rppZc0duzYRp8Qffzxx+rXr5/Gjx+vuXPnHvRzbtiwQc8++2y92/v27au8vDwdc8wxuvXWW+V5nrKysvSnP/2pyZfdPPfcc0pLS9M555yj999/X7fffrvy8vL07W9/u9Ffc95552nGjBm6/PLLdd1116mqqko///nP6wXLvn376sc//rHuvvtuffnll/rOd76jzMxMVVRUaPPmzbrrrrvUqVMnPfzwwxo/fry++OILXXrpperRo4c+//xzvf322/r88881e/bsg/65AIg9zh31ce7g3JHo545IPPTQQzrttNM0bNgwff/731ffvn21fft2rVmzRn/605/06quvRvXrtUTXrl11++2368c//rGuuOIKfec731FVVZXuuusuZWRk6I477mjy15944ol66qmnNH/+fB199NHKyMjQiSeeqMLCQm3dulWPPPKI3n///bBfc8wxx4RehQEAkSAcIvBuu+025ebm6qGHHtKTTz6p3bt364gjjlBBQYEmTpzo9+U16Otf/7r+8Ic/6H/+53908cUXq1u3brr88stVXFwc9qbKdY0dO1a33HKLxo0b16wDYkZGhpYsWaKpU6fqgQce0Oeff66jjjpKN91000EPG0059thjVVxcrFdffVV//OMf9fnnn+vQQw9V//79dc8996i4uDj0Hk8dO3bU8uXLdf/992vOnDlau3at2rdvr969e+vss89u8k3Wm3LkkUdq5cqVuvvuu/XAAw/o008/VefOndWvX7/QkzhJGjZsmObOnaunn35aW7ZsUffu3XXaaadp3rx5YQejmpoaHXvssQf9uocccoiefPJJjRkzRo899pjGjx+vnTt36qijjtL555+vW2+9NfSeRAfToUMHvfrqq/rBD36gW2+9VSkpKRo5cqSeeuqp0BMgZ8SIEXrzzTd17733asqUKdqyZYu6deum3NzcJsNZc82dO1e1tbVNLhZ27NghqfnvY7Rq1aqwvyF33BOAP/3pT/rBD36g66+/XmlpaTr77LP18ssvN/rn99xzz+nOO+/U7NmzlZKSotGjR2vmzJlNLgXOPPNM/eY3v9FPf/pTjR49WkcddZSuvfZa9ejRQxMmTAi777Rp09S/f389/PDD+u53v6u0tDT1799fkydPDt3ne9/7nnr37q2f/exnuv7667V9+3b16NFDgwYNataTagCJgXNHwzh3cO5orlicOyKRm5urt956S3fffbf+53/+R5s2bVLXrl3Vv39/nXvuuVH/ei112223qUePHvrlL3+p+fPnq3379ho+fLjuu+8+9e/fv8lfe9ddd2n9+vW69tprtX379tD7t1ZUVEhSgy9Df/zxxznPAGiRFM/zPL8vAoC9t9rkyZP13nvv6YQTTvD7chJGRUWFTjjhBL344os677zz/L6cwJo1a5Zuvvlm/fOf/2zT9/K78847ddddd+nzzz9v1fv5AAAiw7kjNjh3NI9f5w4AQORYHAI+W716tdauXatp06bpggsu4PAeZUuWLNGQIUM4vB/EkiVLNHnyZA7vAJDgOHfEFueO5uHcAQDxIykWhy+++KJ++MMfav/+/brlllua9QbDQFvp27evNmzYoGHDhum3v/2tjjjiCL8vCWgzLA6RzDifwA+cOwAAQCQSPhzu27dPubm5WrJkibp06aJvfOMb+tvf/qasrCy/Lw0AACQpzicAAACIB4f4fQGx9uabb+qEE07QUUcdpc6dO+vcc89t8LuLAQAAtBXOJwAAAIgHgQ+Hy5Yt0+jRo5WTk6OUlBQtWLCg3n1mzZqlfv36KSMjQ/n5+Vq+fHno5z777DMdddRRoY979uypf//7321x6QAAIEFxPgEAAEAyCHw4rKmpUV5enh555JEGf37+/PmaMmWKpk6dqtWrV2vYsGEqLCxUZWWlJKmhV2KnpKTE9JoBAEBi43wCAACAZBD476pcWFiowsLCRn9+xowZmjBhQugNxWfOnKlFixZp9uzZmj59uo466qiwv8H/9NNPdcoppzT6+Xbv3q3du3eHPt6/f7+++OILdevWjQM9AACN8DxP27dvV05Ojg45JPB/L9lqnE8AAAi+ZDufALEQ+HDYlD179mjVqlW69dZbw24fOXKkVqxYIUk6+eST9d577+nf//63unTpooULF+onP/lJo59z+vTpuuuuu2J63QAAJKp169apZ8+efl+GrzifAAAQLJxPgJaL63C4efNm1dbWKjs7O+z27OxsbdiwQZKUlpamBx98UCNGjND+/ft18803q1u3bo1+zttuu03FxcWhj7dt26bevXvrnxX/VOfOnWPzG4kTW7fv8vsSfPf51i/9voRA+Jg/B0nSR9v4b6JiS43flxAI737On0Ptrp36x/T/SvrHSqltzydr3l+T9H/mVdt4TPp31U6/LyEQ/rmVx2WJx2an7PMdfl+C7yo+2+73JfjO271T1bOvTPrHSqA14jocOl99iY7neWG3jRkzRmPGjGnW50pPT1d6enq92zt37qwuXbq07kLj2JbqXercuZ3fl+GrTVt2qlMnHnD+teVLdejIn8OHW79URodOfl+G79rt4iWS5Zt2KDWjo9+X4buPNtgTNF42ewDnk9jbvPVLde58qN+X4buOu1P9vgTffbTlS7XvyOPye1/UKJ3zid7YtF1p7XlsTkmv9fsSfLfjc3tbEM4nQMvF9Yv8u3fvrtTU1NDf3jubNm2q97f8aLkt1fztLcy/trDqkCwawp6cAJL04XoWDXVxPmkbm/nfYknSus38bzEMj8vmjU08JknSu59W+30JABJEXIfDdu3aKT8/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XwqiiGhoiIaGtSGQvDifBAePzXCIhoZoCACIZxGHwyeffFLbtm3TWWedpa997Wu6//779dlnn8Xi2qLq3nvv1SmnnOL3ZUQNa0M4RENDNITD2jA5cT4JBqKhYW0Ih2iIulgbAohHEb9UefTo0Ro9erSqqqo0b948zZ07V7fffrtGjRqlq6++WmPGjFFaWsSfNqY++ugj/f3vf9fo0aP13nvv+X05rUY0NDw5gUM0hEM0TF6cT/zH47IhGhrWhkA4oiHiRcWWGrXbleL3ZQTani+T68zT4m+O0q1bN9144416++23NWPGDL388su69NJLlZOTo5/85CfauXNnsz7PsmXLNHr0aOXk5CglJUULFiyod59Zs2apX79+ysjIUH5+vpYvXx7Rtd50002aPn16RL8mqIiGhicnhrUhcADREBLnE/iLaGiIhoa1IRyiIYB41uK/et+wYYPmzZunxx9/XJWVlbr00ks1YcIEffbZZ7r//vv1xhtvaPHixQf9PDU1NcrLy9NVV12lSy65pN7Pz58/X1OmTNGsWbN06qmn6tFHH1VhYaEqKirUu3dvSVJ+fr52795d79cuXrxYZWVl+trXvqavfe1rWrFiRUt/uwgQoqEhGhrWhgDq4nziDx6b4RANDdEQAJAoIg6Hzz33nB5//HEtWrRIubm5Kioq0ve+9z117do1dJ9BgwbppJNOatbnKywsVGFhYaM/P2PGDE2YMEHXXHONJGnmzJlatGiRZs+eHfpb+lWrVjX669944w099dRTeuaZZ7Rjxw7t3btXXbp00U9+8pMG77979+6wQ351dXAOP6wN4RANDdEQDmtDcD7xD9HQsDaEQzREXawNAcS7iF+qfNVVVyknJ0evvfaaysvLdcMNN4QdyiXp6KOP1tSpU1t9cXv27NGqVas0cuTIsNtHjhzZ7L+dnz59utatW6ePP/5YP//5z3Xttdc2eih398/MzAz96NWrV6t+D9FCNDQ8OYFDNIRDNITE+cQvPC4boqFhbQiEIxoCSAQRLw7Xr1+vDh06NHmf9u3b64477mjxRTmbN29WbW2tsrOzw27Pzs7Whg0bWv35G3LbbbepuLg49HF1dbXvh3OioeHJiWFtCBxANITD+QR+IRoaoqFhbQiHaAggUUQcDg92KI+FlJTw7+jjeV6925rjyiuvPOh90tPTlZ6eHvHnRmwR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l81mU3Fxsa9LAQAAkER/AgBwxOAQAAAAAAAAgAMGhwA8qrGxUU1NTb4uw2fq6up8XQIAALgA/Qn9CQDAOQwOAYt56623lJCQoB49eqhfv366+eabVVNTI0lqamrSU089pSFDhig8PFzJycn68MMP7ffdvn27bDabfvjhB/u24uJi2Ww2lZeXS5I2btyoSy65RFu3blV8fLzCw8P1zTffqLa2Vo899phiY2MVHh6uK6+8Un/5y1/s59m/f78yMjLUu3dvRUdHa+bMmaqsrGw3xwMPPKDExETV1tZKkurr65WSkqL777+/w/z79u3TrbfeqsjISPXp00epqak6dOiQU/klae/evbrpppvs37958+apurravn/OnDm64447lJmZqZiYGI0YMUKStHv3bl1zzTWKiIjQ2LFjVVRU1GGdAABYCf0J/QkAwD8xOAQs5NixY7rvvvv0wAMPqKSkRNu3b9edd94pY4wk6YUXXtCzzz6rVatW6csvv9TUqVM1ffp0HTx4sFOPc+7cOWVmZmrDhg3at2+fBg4cqFmzZunNN9/Uiy++qJKSEr3yyivq3bu3va5JkyYpOTlZe/bs0YcffqgTJ07ol7/8ZbuP8eKLL6qmpkZLliyRJD3++OOqrKzUunXr2r3PkSNHNHHiREVEROiTTz5RYWGhHnjgATU0NDiV/9y5c7rlllt06aWXqqCgQJs3b9ZHH32kRx55pNXjfPzxxyopKVF2dra2bt2qmpoa3XbbbRo5cqQKCwv15JNPavHixZ36ngIAEKjoT+hPAAB+zACwjMLCQiPJlJeXt7k/JibGrFixotW2cePGmQULFhhjjMnJyTGSzOnTp+37i4qKjCRTVlZmjDHmtddeM5JMcXGx/ZjS0lIjyWRnZ7f5uI8//rhJS0trte3w4cNGkiktLW03T35+vgkNDTWPP/64CQkJMTt27Gj3WGOMWbp0qRk2bJipq6trc//F8q9fv95ceumlprq62r7//fffN0FBQeb48ePGGGNmz55toqOjTW1trf2YP//5zyYqKsrU1NTYt7388stGkikqKuqwZgAAAh39Cf0JAMB/seIQsJCkpCRNmTJFCQkJuueee/Tqq6/q9OnTkqSqqiodPXpU119/fav7XH/99SopKenU44SFhSkxMdF+u7i4WMHBwZo0aVKbxxcWFionJ0e9e/e2f1111VWSZH+ZTlvGjx+vxYsX6w9/+IN++9vfauLEifZ96enp9nONGjXKXkdqaqpCQ0MdzuVM/pKSEiUlJalXr16t9jc1Nam0tNS+LSEhQWFhYfbbzffr2bNnq9oBAAD9Cf0JAMCfhfi6AADeExwcrOzsbOXn5+tf//qXXnrpJS1btkyff/65+vXrJ0my2Wyt7mOMsW8LCgqyb2tWX1/v8Dg9evRodZ4ePXp0WFdTU5OmTZumZ555xmHfoEGDOrxfXl6egoODHV6utGHDBv3444+SZG/EL1aH1HH+ln/u6H4tG/fm+wEAgLbRn9CfAAD8FysOAYux2Wy6/vrrtXz5chUVFSksLExbtmxRZGSkYmJi9Omnn7Y6Pj8/X1dffbUkacCAAZJ+es+fZsXFxRd9zISEBDU1NWnHjh1t7h8zZoz27dunyy67TMOHD2/1dWGT29Kf/vQnlZSUaMeOHdq2bZtee+01+77BgwfbzzF06FBJUmJionbu3NnmPyacyR8fH6/i4mL7m7VLUl5enoKCguxvMt6W+Ph4ffHFF/Z/KEjSrl272j0eAACroT+hPwEA+ClfvUYagPft2rXLrFixwhQUFJhvvvnGZGVlmbCwMPPBBx8YY4xZvXq1iYyMNG+++ab56quvzO9+9zsTGhpqDhw4YIwxpq6uzsTGxpp77rnHlJaWmq1bt5qRI0c6vIdQ3759HR57zpw5JjY21mzZssX897//NTk5OWbTpk3GGGOOHDliBgwYYO6++27z+eefm0OHDplt27aZX/3qV6ahoaHNLEVFRSYsLMy89957xhhjNmzYYPr06WMOHTrUbv7KykrTr18/c+edd5qCggJz4MAB8/rrr5uvvvrKqfw1NTVm0KBB5q677jJ79+41n3zyibn88svN7Nmz7Y8xe/Zsc/vtt7d63LNnz5r+/fub++67z+zbt8+8//77Zvjw4byHEAAAhv6E/gQA4M8YHAIWsn//fjN16lQzYMAAEx4ebkaMGGFeeukl+/7GxkazfPlyM3jwYBMaGmqSkpLMP//5z1bn+PTTT01CQoKJiIgwqampZvPmzU415j/++KP5zW9+YwYNGmTCwsLM8OHDzV//+lf7/gMHDpgZM2aYSy65xPTo0cNcddVVZuHChaapqanNc8XHx5t58+a12j5jxgwzYcKEdpt5Y4z54osvTFpamunZs6fp06ePSU1NtTfzzuT/8ssvzeTJk01ERISJiooyDz30kDl79qx9f1uNuTHGfPbZZyYpKcmEhYWZ5ORk8/bbb9OYAwBg6E+MoT8BAPgvmzG8uQUAAAAAAACA1niPQwAAAAAAAAAOGBwCAAAAAAAAcMDgEAAAAAAAAIADBocAAAAAAAAAHDA4BAAAAAAAAOCAwSEAAAAAAAAABwwOAQAAAAAAADhgcAgAAAAAAADAAYNDAAAAAAAAAA4YHAIAAAAAAABwwOAQAAAAAAAAgAMGhwAAAAAAAAAc/A8T0cH1jAEVUQAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABRQAAALKCAYAAABDdd05AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADPYElEQVR4nOzdd3hUZf6/8fcQSCBAQg81gCJgjAQ3gNKJBQ0dBMFVBBcUJIqIla+rIqti2UUsgRV3FftixV1FMatIQESKoGKw4KKAlNBDD4Tn98f5nYEhbTKZyZlyv67LazeTk5knYTJ5cuczZ1zGGCMAAAAAAAAA8EIlpxcAAAAAAAAAIHQQFAEAAAAAAAB4jaAIAAAAAAAAwGsERQAAAAAAAABeIygCAAAAAAAA8BpBEQAAAAAAAIDXCIoAAAAAAAAAvEZQBAAAAAAAAOA1giIAAAAAAAAArwVtUNyzZ48aNGggl8ultm3blnr8r7/+KpfLVab/evXqFfhPJMAOHTqkxx9/XJ07d1bdunVVtWpVNW/eXNdee62WLl1a4seuXr1avXv3Vq1atdxfk19//dV9vRMnTlSzZs1UuXJluVwuTZ061et1ffXVV+7rnD59ejk+w8Lmzp1b5vWUxZn3k0qVKik+Pl4XXXSRnnzySR0/fjwgt4vgZIzR66+/rr59+6phw4aKjo5Ww4YNlZ6ertdee03GmIDcbq9evTy+J53w+eefe/VYOm3atHLf1tSpUwP6fe0rl8ulFi1aOL2MkGH/LA6Hn6+hZNeuXbrvvvt0wQUXqFatWoqNjVWrVq104403at26dY6tKykpSS6XS23atPH7dQfye3P06NGFHueqVaumc845R+PGjdPGjRsDcrsIXt9//73Gjx+vc845R7GxsYqPj1f79u315z//Wbt27QrIbQZ6v+utFi1alLoPOOuss8p9O/bPj2D7mWs/Hnz++edOLyVkBMMeFkDFqOz0AoozefLkMv2ArlGjhkaNGlXo8o8//lg7duxQ165d1apVK4/3eRMqg9natWvVr18//f7774qPj1fXrl1Vs2ZN/fTTT3rttdf02muv6eabb9ZTTz2lSpU82/GBAwc0YMAAbdu2Tb169VKzZs3kcrlUo0YNSdKUKVP0zDPPqFWrVrrqqqsUHR2t9u3be722V155xeP/T5kyxS+fc0Wy708FBQX69ddftWzZMn311Vf68MMP9fHHH6ty5aD99oGf7N27VwMHDtSSJUtUuXJlde3aVY0bN9a2bdv06aef6uOPP9Zzzz2n999/X7Vr13Z6uX7XsGHDIh9XJev74tVXX5Ukde/evSKXBeA0//3vfzVs2DDt27dP9evXV8+ePRUTE6PvvvtOzz//vF544QU99NBDuueeeyp0XatWrdL69eslST/99JNWrFihTp06Vegayuv0veOuXbv01Vdfac6cOfrXv/6lJUuWqF27dg6vEBXhscce07333quCggK1adNG/fr1U35+vpYvX66HH35YmZmZevPNN3XZZZc5vdSAGDp0aLG/ky1evFi//vor+wAAiFQmCP33v/81ksyNN95oJJk2bdr4fF09e/Y0ksyLL77ovwUGgV9//dXUqlXLSDITJ040hw8f9nj/8uXLTfPmzY0kc9tttxX6+E8//dRIMiNHjizy+ps1a2aqVatmDh48WOa15efnm3r16hmXy2UaNmxoJJnVq1eX+XqKs2/fPrN+/Xqzc+dOv13n6SSZor41li9fbqpWrWokmVdeeSUgt43gkZ+fbzp16mQkmbS0NLN582aP92/ZssVcfPHFRpLp1KmTOX78uF9v337s2rhxo1+v118WLFhgJJlmzZqZgoKCcl/fAw88YCSZBx54oPyL8yNJpnnz5k4vI2Rs3LjRSDI9e/Z0eikRYcWKFSY6Otq4XC4zffr0Qo9DH374oaldu7aRZJ566qkKXdvEiRONJNOoUSMjydxyyy1+vf7169ebDRs2+PU6baNGjSpy77hv3z73Y/Mll1wSkNtGcJk5c6aRZGrXrm0++OADj/edOHHCPProo8blcpno6GizcuVKv972iy++GJQ/F20FBQWmcePGRpLJysoq9/XZPz+C7Weu/XiwaNEip5cSMoJ9DwvAf4LuKc9HjhzR+PHjlZSUpDvuuMPp5QStcePGad++fRozZoyeeuopVatWzeP9F154oT755BNVq1ZNM2fO1PLlyz3ev2XLFkkq9ikKW7ZsUYMGDVS9evUyr+2jjz7Srl271KNHD914442SPCcWyys+Pl5t27ZVvXr1/Had3rjwwgs1evRoSdLChQsr9LZR8f72t79pxYoVOv/88/Xhhx+qadOmHu9v0qSJPvjgAyUnJ2vFihX629/+5tBKnWFPJ15zzTWFJqABBJ4xRqNGjVJ+fr6mTZume+65p9DkfJ8+fTR//ny5XC7dfffd+u233ypkbSdOnNC//vUvSdLLL78sSfrXv/6lEydO+O022rZtq7PPPttv1+eN+Ph4PfbYY5KsyayjR49W6O2jYv3222+6++675XK5NH/+fPXt29fj/VFRUbr77rs1bdo05efna9SoUQE7DUow+vTTT7V161Y1btxYF198sdPLAQA4IOh+C3zwwQf1yy+/aPbs2apSpUpAb+vgwYOaNm2azj//fMXGxiouLk49e/bU/PnzCx17+nmh8vLydPvtt6tly5aqUqWKJk2aJOnUOUYkKTMzU8nJyapWrZpatmypxx9/3L3J+Prrr9WvXz/VqVNHNWvW1KBBg8q0yf/++++1cOFCVa1aVY8//nixx7Vu3Vq33HKLjDGaMWOGx+dhP43xwQcfdJ//ZPTo0e5zXhhj9Ntvv3mcH8Vbdjy89tprde2110qS3njjDRUUFBQ6dtasWXK5XOratWuh9x85ckTnnXeeXC6X3nrrLfflxZ1T5vjx43ruuefUqVMn1atXT7GxsWrRooX69evn/sWmvM477zxJUm5ubqH3GWP00ksvqUePHqpVq5aqVaumdu3a6a9//Wux5108dOiQpk+frj/84Q+qWbOmatSooaSkJE2aNMnjPlHa+VuKOufM6V+nn376SSNGjFBCQoIqVaqk+fPne3WflqSdO3fqjjvuUJs2bVS1alXVrl1b6enpys7OLrQO+5x7o0eP1p49e3TTTTepUaNGiomJUXJysl544YViv7abNm3SzTffrHPOOUdVq1ZV3bp11alTJz3yyCM6cuSIx7H5+fl66qmn1LFjR9WsWVPVq1dXp06d9M9//tMvm/kTJ07o6aeflmQ91enMYG+rVq2a+3vwqaee8rgP2+cEnDt3rlasWKF+/fqpbt26crlcWrt2rfu4OXPm6Pzzz1fVqlXVpEkT3XLLLdq/f3+J6/v11181btw4tWjRQjExMapfv76GDh2qb7/9ttCxpd0PfHHo0CG9//77kuT+Hq9oH374of70pz/p3HPPVVxcnKpXr66UlBQ98sgjOnbsWKHjz/w6XHnllapbt66qV6+url27asGCBV7ftjFGb7zxhkaMGKHWrVurevXqqlmzpjp16qRZs2bp5MmTxX7sRx99pH79+qlBgwaKiYlRYmKiBg0apA8//LDQsWX5d/ZFIB4DAsGf93dvP+dQ8NFHH2n9+vVq0qSJ7r777mKP69Gjh4YNG6ajR48qMzPT432n71v+8Y9/qF27dqpWrZoaNmzo/sOlLxYuXKjc3Fx17dpVl156qbp06aKdO3cW+ce4LVu2qG7duoqJifF4bLTZ+5R+/fp5XF7cuda++uorDR48WM2bN1dMTIwaNmyoTp06acqUKTp48KBPn8/p7H3AiRMntHfv3kLv/+6773TNNdeoSZMmiomJUePGjXX99deXeC4xbx4XTv/5WpTi9gn218kOz23btlVMTIwGDRokyfNcZ6+//rouuugi1axZU7Vq1XJfR1n3N77er44fP65Zs2apa9eu7nOBtm7dWjfccEOR5wJdunSpBg8e7P66tWjRQhMnTtTOnTuL/VqXRWZmpo4dO6Zhw4apR48exR539913q0mTJsrJydFHH33kvtzbx5tvv/1W/fr1U3x8vOLj43XZZZfpyy+/LHFtZd0HlXY/8IXTf1jcsGGDpk6dqs6dO7vPcd20aVNdd911+umnn4r8mNO/Dg888IDOPvtsVa1aVWeddZbuv//+Mv2RYO3atbrrrruUmpqq+vXrKyYmRmeddZYmTJigrVu3FvtxwbTflQLzGOBv/r6/e/M5A/CSI3ORxfjmm29M5cqVzZ/+9CdjzKnR90A85Xn79u0mKSnJSDJNmjQxAwYMMJdeeqmpXr26kWSmT5/ucby9lk6dOpn27dub2rVrm0GDBpkhQ4aYqVOnGmOM+ynGkyZNMlWrVjW9evUy/fr1MzVr1jSSzP3332+WLl1qYmNjTVJSkrnyyitNq1atjCRz9tlnF3racnGeeOIJI8kMGjSo1GPXrl1rJJn4+HhTUFBgdu7caUaNGmW6du1qJJmUlBQzatQoM2rUKPP888+b6dOnu0f7q1ev7n7fqFGjvFrbvn37TNWqVU1MTIzZu3evMca4nzb60UcfFfkx/fr1M5LMgw8+6HF5RkaGkVTotot7Csjw4cONJFOvXj3Tv39/M3z4cNOtWzcTFxdXpqffqZinPBtjzCOPPGIkmWuvvdbj8oKCAjNs2DAjycTFxZlLLrnEDBw40P2U7z59+hR6WujWrVvd98E6deqYAQMGmCuvvNKkpKQYl8vlcZ8t7ekWKuIpIvbXacSIESYuLs60bNnSDB8+3PTu3dt88MEHXt2n169fb5o0aeK+jw4ePNj06NHDREdHm0qVKpnXXnvN4zYXLVpkJJmBAwea1q1bm4SEBNO/f3+TlpZmoqKijCTz/PPPF1r/4sWLTXx8vJFkzjrrLHPVVVeZvn37mpYtWxZ6ysTBgwdN9+7d3f/WV1xxhenTp4/7aX3jxo0r8mtUFitXrjSSTN26dUt9Om9BQYGpU6eOkWRWrVrlvtx+Cu/1119vqlSpYs477zwzYsQI06NHD/PNN98YY4y5/fbbjSQTExNj0tPTzZVXXmlq165tLrjgAnPRRRcV+XSRJUuWmLi4OCPJnHfeeWbo0KGmc+fOxuVymWrVqpnPPvvM4/jS7ge+ePnll40kc8EFF/j08UUp61OeExISTI0aNcyFF15ohg0bZi6//HL3feDiiy82J06c8Dje/jpce+21Jj4+3rRs2dL97+FyuQp9z9mK+t46cuSI+ylwXbt2NcOHDzeXXHKJiY2NLfIxyzZ58mQjyURFRZlu3bq5b7+ox6iy/jv7IhCPAf5+yrO/7+/efM6hwv4ZOWnSpFKPnT9/vpFkkpOTPS639y133nmniY6ONl27djWDBg0yDRo0MJJM9+7dzcmTJ8u8Nvvn8ezZs40xxsyaNctIMsOHDy/y+LfeestIMklJSebIkSPuy7/88ktTuXJl06BBA7N9+3aPjynqe/ODDz4wlSpVMlFRUaZHjx5mxIgR5vLLLy/yZ0lJinvKszHWz25JxuVymWPHjnm87+233zbR0dFGkklNTTVDhw41F1xwgfvnybp16wpdn7ePC/bP1+IeX4rbJ+j/n5oiPT3dVK9e3fTp08cMGzbMjB8/3hhzap984403mkqVKpnu3bubESNGmK5duxpjfNvf+HK/Ov1ne40aNUx6erq56qqrTMeOHU3lypUL/Wx46qmnjMvlMlFRUaZz585m6NChpm3btkaSadmypdm6dWuRX6eyOO+884wkM3/+/FKPnTRpkpFkbr75Zvdl3jzeLF++3P2zo3379mbEiBEmOTnZVKlSxdxwww1F/lz0ZR9U2v2grA4fPuz+/cbe05RXWZ/yfPfdd7sfN/r27WuuvPJKc+6557rvq0WtS5JJTEw0/fv3N9WqVTP9+vUzQ4YMce9BL7nkkkL7h+K+t4YPH26ioqJMSkqKGThwoBk0aJBp0aKF+1QPv//+e6HbD7b9rjGBeQzw51OeA3F/L+1zBuC9oAmKBQUFplOnTqZevXpm165dxpjABsX09HQjydx1110mPz/fffkvv/xizj77bBMVFeXxg8heiyTTuXNndyw7nb2BatKkicemcf369SYmJsbExsaaFi1amCeffNL9vmPHjrnPw/bCCy949Tldc801RpL5y1/+UuqxJ06ccG9uTz/XUGnnZSnLD/TTzZkzx0gyV155pfuyp59+2kgy11xzTZEfs2PHDtOgQQNTuXJl89VXXxljTp2frWXLliYvL8/j+KLWbv/7dOzY0eOXEWOsTc+yZcu8/hxKCoo9evQwksyrr77qcfljjz1mJJnLLrvM5Obmui8/ePCg6d+/v5Fknn32WY+PueSSS4wkc/XVVxc6V+VPP/1k1q9f7367PEHR3uCeuUEq7T594sQJk5ycbCTr3Funb/6//vprU7duXVO9enWzY8cO9+X2Lzz2feD0z8v+hTYxMdHjdvbs2WPq169vJJknn3yy0C8ZixcvNvv27XO/fdNNNxnJOv/ngQMH3Jfn5uaaCy+80EjyOZTZnn/+effG0hv2v+U//vEP92V2IJNkHnvssUIf88UXX7hj8umPF7t27TLt2rVzf+zpm7H9+/ebhg0bmipVqpi33nrL4/qysrJMdHS0adKkiccvuaXdD3zRu3dvI8nMmDGj3NdlK2tQfO+99wp93+Tl5bn/QPHSSy95vO/0r8N1113nca65//znPyYqKspUr1690C+hRX1vHT9+3LzzzjuFYkJubq7p0KGDkWQWL17s8b5XXnnFSDJNmzYt9EvOwYMHzaeffup+25d/Z18E4jHAn0ExEPd3b36Whwr7D4PenNN38+bNRpKpVKmSx57H3rc0atTIrFmzxn35zp073X/wPP2+6Y39+/ebatWqmejoaLN7925jjDG7d+82VapUMdWqVTP79+8v8uNGjx5tpFPnWjxw4IA5++yzjSTzn//8p9DxRX1v9uzZ07hcLo8/7ti++uqrQvuJ4pQUFF944QUjyVx66aUel//vf/8zsbGxJj4+vtD3/0svveTeo5yuLI8L5QmKkkyrVq3Mli1bCn2cvU+uWrWq+fzzzwu935f9jS/3qzFjxhjJOmex/XuAbcuWLR7/pl9++aWpVKmSad68ucfX7eTJk2batGlGkhk6dGiRXydvHTt2zLhcLiOp0DmUi2L/W3br1s19WWmPNwUFBe4IeuYgw5///Gf3x575c9GXfVBp94Oyev31140k065du3Jfl62sQfHLL78s8jyq9vdoWlpaoffZX4emTZuaX375xX15bm6ux8+70xX3vfXpp58W2jMUFBSYBx980EjWH5RPF4z7XWMC8xjgz6AYiPt7aZ8zAO8FTVC0T3p8+uYtUEFxzZo1RpLp0qVLkX95t8PH6ScQP31TUNxJl+0NVFFhcMiQIUaS6dGjR6H3vf/++yVuEs90xRVXGEnmueee8+p4+y9Iy5cvd18WqKBo/wXpvffec1+Wm5trKleubGJjYz1+EJzugw8+MJLMOeecY/73v/+ZhIQEExUVZb744otCxxa19q+++spIMrfeemuZ13ymM4NiQUGB2bBhgxk/fryRZAYMGOARI44fP27q1atnatasWeQLxWzfvt3ExMSY888/v9B6GzZs6NUL35QnKNavX98cOnSo0MeUdp9+77333MGzKPb37N/+9jf3ZfYvPHFxce5fJE93/vnnF9pg2BuVfv36FXk7p9uxY4epUqWKadmypTl69Gih99sTuf379y/1ukry6KOPlvi5n2nEiBFGknn00Ufdl9mBLDk5ucjHmZEjRxpJ5uGHHy70voULFxYZFJ988kkjyUyZMqXIddgTEu+88477stLuB2W1bds2ExUVZaKiosy2bdvKfX02f70oy88//2wkmSFDhnhcbn8datSoYfbs2VPo4+yJqkceecTj8rI+FmZlZRlJZvLkyR6X21MTb7/9dqnX4cu/sy8C8Rjgz6AYiPu7Nz/LQ4UdIhYuXFjqsUePHnV/3qdP+tn7ltP/GGL729/+5tP35D//+U8jWZPqpxswYECxeyRjrD8InHXWWcblcpmPP/7YHRiLm6Aq6nvz3HPPNbVq1SrTeotSVFDcuXOnefXVV02dOnVMvXr1zPfff+/xMbfeemuJe7NBgwYZyfNF6sryuFDeoHhmlLfZ++SMjIxC7/Nlf2NM2e9XW7duNVFRUaZatWpexbuBAwcWe98/efKkueCCC0ylSpXK9eJ927dvd3/tvPnjzccff2wkmbZt27ovK+3xxn6BxNatWxfaJxw/ftwkJiYW+lr5ug8q7X5QVvZgxhNPPOGX6zPGvy/K0rVrV+NyuTwCnTGnvg5z5swp9DEfffSR+9/jdL68KEuTJk1MnTp1PC4Lxv2uMYF5DPBXUAzU/b2kzxlA2QTFORQ3b96sP//5z+rZs2ex54bxp6ysLEnSwIEDizw3YLdu3SRJK1euLPS+Ro0aqUOHDiVe/2WXXVboMvvFT4p6n31S8W3btpWycosxxuN/vT2+LOdB9MWvv/6qpUuXqk6dOurTp4/78vr16+vyyy/X4cOH9d577xX5sX379tWECRP0888/q3379tqxY4f+7//+T126dPHqttu2bavq1avrxRdf1PPPP6/du3eX+/Oxzx0ZFRWlVq1a6e9//7vGjBmj9957z+PE92vWrNGuXbvUrVu3Il8oJiEhQeecc47WrVvnPjfKf//7X0nWeWd8eeGbsrj00ksVGxtb7PuLu0/b3yfFnV+npO+TDh06qE6dOoUub926tSTP+7r9tRg3blyxa7QtXrxYx48f1xVXXKGYmJhC709JSVHNmjWLXFNZ+PN7rH///kVevnTpUknSVVddVeh9vXv3LvLrV55/k9LuB956/fXXVVBQoMsuu0wNGzYs9/WVx88//6ynnnpKt9xyi/70pz9p9OjR+stf/uJ+X1F69+6t2rVrF7r86quvlnTq38Uba9eu1eOPP66MjAxdf/31Gj16tGbPnl3o9rdu3ar169erbt26uvLKK0u93vL8O/siEI8B/hDI+7s3P8uDXVkep04/pqjHo969exe6rKjHa2/Y51EeOXKkx+X22/Z5185Us2ZNvfrqq6pUqZKuuuoqzZ07V23atCnTC16lpqa6X7CuqHPuldX111/v3gvUr19f1157rWrWrKmvv/5aSUlJHseevrcsypn317I+LpSHy+VS//79SzxmwIABhS7zZX9zOm/vV4sWLVJBQYH69OlT6AXQznTy5El9+umnqlmzpi655JJC77fPy33y5EmtXr26xOsqyenfM2X5Hivq+6u4xxv7582wYcMKfVzlypU1dOjQQh9Tnn2QN/cDb+zcuVNZWVmqVKmS/vjHP5b7+srj4MGDeuONN3T33Xfrhhtu0OjRozV69Ght27ZNxhj98ssvRX7ciBEjCl12xRVXqHbt2vrpp5+8Pg/n7t279eKLL+r222/XmDFj3Ld//Phx7dmzR3v27HEfG4z73dMF4jGgvAJ9fy/qcwZQNpVLPyTwJkyYoPz8fPcvYt549NFH9cMPP3hc1rZtW91zzz2lfqx9Yuy77767xBOZ79q1q9BliYmJpV5/kyZN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f/xRf/7znytsg3k6+6mMQ4YM8cvTp31lnzph9uzZhaag/ve//5X4sb/99luRl9tfb2+mLezbt6Niabdf1u93p/+dT1+HFPjHgJJuPxi+DsEqPT1ds2bN0ttvv60nnniiyFBos/cCV1xxRbluc+7cuSX+nLNDw/79+/XFF18Ue9wrr7xSZFC87bbb9PPPP2vw4MH65JNPNHnyZKWlpemcc87xeo2VK1dW79693U+33bRpk66//np99tlnevTRR/XYY495fV1nSk5O1tNPP60//vGPmj59um688UbFx8dLsu6vv/zyi55++mnFxcWVel3+3AdIgdkL+LK/8UVZvhb16tVTTEyMqlSpEtA1Sdb3WE5Ojt54440S/4h2/Phxvf3225LK9j1m/7wp7efS6SpqH1Scn376SStXrlRsbGypQTeQlixZot27d+vKK6/UtGnTCr2/pL3A3r17deDAgSKnFO2veWkDDQsWLFB+fr5uv/123XrrrV7dfjDud0tTUY8Bpd2+018HAMULinMo2n/NPvO/jRs3SpJ72sMYo1q1apX79i699FJJ0vz588t9XU5ITk7WZZddpqNHjxa5Ibf99NNPevbZZyVZm/RAskPDnXfeWey/5yeffCKp6PMn3XDDDdq2bZvuuecevfrqq+revbs++eQTPf300z6vyeVy6YorrlDfvn0lyS/nU3rsscfkcrn0yiuvuDeAHTt2VHx8vBYtWqS8vDyvrse+D7722ms6fPhwqcfbG5uffvqp0Pvsr6u/VdT3iX07c+bMKfXYtLQ0RUVF6YMPPnD/1TIQKleurFtuuUWSdWqE4p5ScuTIEfdpEyZOnFjq069OZ0/xvvXWW4Xel5WVVejpzpKzj13GGHeUcPLpzpLcp3EoamLkzTffLPFjP/nkE+3bt6/Q5fbTl7t27er322/cuLHOPfdc7d69W++++26p1x8sP6OcXofTtx/s+vTpozZt2uj3338vMZJlZ2fr7bffVnR0tDIyMgK2ntWrVysnJ0cJCQk6ceJEkfuAkydPqmnTplq3bp2++eYbj49///339fzzz+ucc87Rq6++qieffFKHDh3SNddc4/5jsi8SExPdj9PfffdduT5HyTr3Wvv27bV3715lZma6Ly/r/bWsjwsl7QN2796tr7/+2qvbLQtf9je+6NWrl6KiorRgwQL9/vvvJR5buXJl9erVS3v27FF2dnbA1iRJGRkZio6O1ltvvVXibT322GP6/fff1bZt2xL/AHkmex/wzjvvFPqj/YkTJ/TOO+8U+piK2gcVx97DDx482P30dSeU9HN4w4YNpX4/zJs3r9BlCxcu1N69e3XOOeeUOJVf2u1nZ2drx44dhS4Pxv1uaSrqMaA4wfJ1AFC8oAiKFe2iiy7SJZdcokWLFum2224r9NfekydP6pNPPinTyfkr2nPPPaf4+Hj985//1KRJkwoFj6+++kq9e/fWkSNHNHHiRK9f3MQXJ06ccP9gtl/YoCgXX3yxGjRooLVr13rEvX/84x967733lJqaqgceeECVKlXSyy+/rLi4ON1zzz1ehcA1a9bo3Xff1fHjxz0u37t3r7766itJ/jlPRvv27TVw4ECdOHHC/RTqmJgY3XHHHdq3b5+uvPLKIv/S/O2333psXjp16qS0tDRt375d48aNKxQVN2zY4HGO0J49e0qyJrJOf8GZr7/+Wvfdd1+5P6+iDB06VG3bttXcuXP12GOPFfra5ufn69133y33L2hjx45VvXr19J///EfPPvtsoU31kiVLtH//fknWOUhHjx6tn3/+WSNHjizy/EjLli3TggULPC6bO3euXC6X+9QJ3rjjjjuUmpqq7777Tv369Sv0S87WrVvVr18/rVu3Tqmpqbrjjju8vm7p1Em5Z8yYofXr17sv37NnT7F/KBg3bpzq16+vRx55RC+++GKhr9WhQ4f08ssva8uWLWVaizeWLFmi3377TY0bN9bFF19c4rGff/65XC6X+7yE/maf1H/OnDkeX4MlS5boiSeeKPFjDx48qMmTJ3sEigULFuitt95SbGys+9yp3tz+3//+d4/L3377bb388stFfox9Oo5Jkybp+++/93jfoUOH9Nlnn7nf9vXfuVevXnK5XH6bIvD3Y0Dbtm3Vtm3bUoOBzYn7e1nX6KRKlSpp7ty5qlKliu6//3499thjhX7h+uijjzRo0CAZY/Too48G7HtSOvWHxeHDh3ucW/B0LpfL/UJU9vGStH37do0dO1aVK1fWq6++qtjYWN1www0aMGCAVq5cqalTp3q1hieffLLIX+Q//vhjSf7ZB7hcLvd6Zs6c6f75ffvtt6tatWq67bbb9J///KfQx+3Zs0ezZs3y2K+V5XGhZcuWSkxM1Hfffaf333/f47gbbrghIL/s+7K/8UXjxo113XXX6ciRIxo9enShP6ht3brVIxD93//9nypVqqRRo0YVuVffunWrR+y12S+wY5+XrTQtW7bU9OnTZYzRoEGD9OGHH3q8v6CgQE888YTuv/9+98RkWZ4NlJaWptatW+uHH35wnzbA9tBDDxX59fZ1H+Qvr732miTv/rDYokULuVyucj2rrDj2z+F3333X4xyK9osynfnz6kzTpk3zuB/s2rXLvfeaMGGC17f/6quv6tChQ+7Lf//9d40fP77IjwnW/W5J/P0YMGXKFLVt29Y98FIaJ+7vZV0jEPH89GrRAbFx40YjybRp08bn67BfFv7FF1/0uHz79u2mXbt2RpKpU6eOufjii83w4cNNt27dTP369Y0k8+STTxZaS8+ePYu9rebNm5vivqQPPPBAkevw9rqLsmrVKtO4cWMjycTHx5u+ffuaESNGmD/84Q9GkpFkbrrpJlNQUFDoY1988UUjyTzwwANFXrck07x5c6/W8e9//9vrf6cJEyYYSebuu+82xhjz888/m+rVq5vY2Fjzww8/eBz70ksvGUmmXbt25ujRoyWu/b333nN/HS655BJzzTXXmL59+5q4uDgjyQwePNirz8UY4/7aFWft2rXG5XKZqlWrmm3bthljjCkoKDBXX321kWRiYmJM586dzfDhw80ll1xiWrZsaSSZgQMHelzPli1bTOvWrY0kU7duXTNw4EAzdOhQ0759e+NyuTzuKydPnnTflxs0aGAGDx5sunXrZqpUqWLuuOOOIv+9Svs39uZ+t379epOYmGgkmUaNGpnLL7/cDBs2zFx00UWmVq1aRpJ577333McvWrTISDKjRo0q8vpGjRplJJlFixZ5XP7ZZ5+ZmjVrGknm7LPPNldddZXp16+f+2u3ceNG97GHDh0yaWlpRpKpWbOm6d69uxk+fLjp2bOnadKkiZFkbr31Vo/r/+c//2kkmUsvvbTYz7Uou3btMl26dDGSTJUqVUyvXr3M1VdfbdLS0kyVKlWMJNOlSxeza9euQh9b0ve8bdKkSe77TN++fc3QoUNNnTp1TPv27c1FF11U6HM3xpilS5eaOnXquP/N+/bta4YMGWI6dOhgqlevbiSZNWvWuI8v7X7grRtuuMFIMnfeeWepx3766adGkmnVqpXX129/vZo0aWIuvPDCIv+z//1+/PFH9+ealJRk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AU/ERAsx0XJOfNUKuy32J0BoISYCABC6fAqKkrUh//bbb/X5559ryZIl2rp1qySpcePG6t69u3r16uWvNQJASGA6ETZioqVNrWo6fKhip6fYn0S2SJpODNXJRCdehIWYCACA//kcFG29evVic46IxXQibMREC9OJsLWp5ezpQNifRJ5IiYmhFhKdfhVnYiIAAIFR7qBoO3DggFwul2rU4JdJRAZiImzERAsx0cJ0YnBhfxIZiInBxemICAAAAs+nV3m2ffzxx+rTp4/i4+NVq1YtxcfHKy4uTn379tXHH3/srzUCQYeYCHgiJlqIiRanpxPZn0SWSIiJy3MPBHVM/G5Lnsd/wYLpRAAAAsfnCcXJkyfrqaeecp/kPD4+XpK0f/9+ffTRR/r444916623asaMGf5ZKQAEIaYTYSMmWpyOiexPIku4x8RgjYjBFA2LQ0wEACCwfJpQnDdvnmbOnKn69evr6aef1t69e93/7du3T88884waNGigp556Sm+++aa/1ww4iulE2IiJFqYTYXM6JrI/iSzExIoVjBOIxSEmAgAQeD4FxVmzZqlq1arKzs7WzTff7P7rvyTFxcUpIyNDixcvVkxMjGbNmuW3xQaDzMxMJSUlqWPHjk4vBQ4gJsJGTLQQEy1MJwYH9ieRsz8J55gYLE9vDtanMQMAgODg01Oev/nmG1188cVq3bp1sce0bt1aF198sZYuXerz4oJRRkaGMjIylJeX5/GLCgBEGmKihZhocXo6UWJ/Ein7k3CNiU5HxHCJhkwnAgBQMXwKivn5+apevfRfoKpXr678/HxfbgIIOkwnwsZ0ImzEREswxESJ/UkkICb6V7hERBsxEQCAiuNTUDz77LO1ePFiHT58WLGxsUUec/jwYS1evFhnn312uRYIBANiImzERAvTibAFS0yU2J+Eu3CMiRUdEsMtIJ6OmAgAQMXy6RyKV111lXJzczVkyBD973//K/T+X375RUOGDNHOnTs1fPjwci8ScBIxETZiooWYaGE6MfiwPwlf4RYTK/I8iZwHEQAABIJPE4p33HGH3n//fX3yySdq06aNOnXqpBYtWsjlcmnjxo1asWKFCgoK1KFDB91+++3+XjMAwCHERAsx0RJM04kS+5NwFY4xsaJESkRkOhEAgIrnU1CsVq2aPv/8c02ZMkUvvPCCvvzyS3355Zce7//T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", "text/plain": [ "
" ] @@ -437,9 +484,9 @@ "source": [ "import matplotlib.pyplot as plt\n", "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_helm, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", + "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap2.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", "\n", "fig.subplots_adjust(right=0.8)\n", "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", @@ -448,17 +495,17 @@ "\n", "ax1.set_xscale('log')\n", "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\")\n", - "ax1.set_ylabel(\"source y-coord\")\n", + "ax1.set_xlabel(\"source x-coord\", fontsize=15)\n", + "ax1.set_ylabel(\"source y-coord\", fontsize=15)\n", "\n", "\n", "ax2.set_xscale('log')\n", "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\")\n", - "ax2.set_ylabel(\"source y-coord\")\n", + "ax2.set_xlabel(\"source x-coord\", fontsize=15)\n", + "ax2.set_ylabel(\"source y-coord\", fontsize=15)\n", "\n", - "ax1.set_title('4-Term Taylor Series, Order 7, Laplace')\n", - "ax2.set_title('4-Term Taylor Series, Order 7, Helmholtz')\n", + "ax1.set_title('4-Term Off-Axis Recurrence, Order 7, Laplace, rel. err.', fontsize=15)\n", + "ax2.set_title('On-Axis Recurrence, Order 7, Laplace, rel. err.', fontsize=15)\n", "\n", "plt.show()" ] diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index bdaebc34d..894c5f0fe 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -38,150 +38,317 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)" + "laplace2d = laplacian(w)\n", + "g = sp.Function('g')" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "ode_in_r, var, ode_order = pde_to_ode_in_r(laplace2d)\n", + "ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify()\n", + "ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle \\operatorname{Poly}{\\left( \\left(x_{0}^{3} + x_{0} x_{1}^{2}\\right) s{\\left(n + 2 \\right)} + \\left(3 n x_{0}^{2} + n x_{1}^{2} + x_{0}^{2} - x_{1}^{2}\\right) s{\\left(n + 1 \\right)} + \\left(3 n^{2} x_{0} - n x_{0}\\right) s{\\left(n \\right)} + \\left(n^{3} - 2 n^{2} + n\\right) s{\\left(n - 1 \\right)}, s{\\left(n + 2 \\right)}, s{\\left(n + 1 \\right)}, s{\\left(n \\right)}, s{\\left(n - 1 \\right)}, domain=\\mathbb{Z}\\left[x_{0}, n, x_{1}\\right] \\right)}$" + ], "text/plain": [ - "(4,\n", - " (n + (n - 2)**3 - 2*(n - 2)**2 - 2)*s(n - 3)/(x0**3 + x0*x1**2) + (3*x0**2*(n - 2) + x0**2 + x1**2*(n - 2) - x1**2)*s(n - 1)/(x0**3 + x0*x1**2) + (-n + 3*(n - 2)**2 + 2)*s(n - 2)/(x0**2 + x1**2))" + "Poly((x0**3 + x0*x1**2)*(s(n + 2)) + (3*n*x0**2 + n*x1**2 + x0**2 - x1**2)*(s(n + 1)) + (3*n**2*x0 - n*x0)*(s(n)) + (n**3 - 2*n**2 + n)*(s(n - 1)), s(n + 2), s(n + 1), s(n), s(n - 1), domain='ZZ[x0,n,x1]')" ] }, - "execution_count": 12, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "process_recurrence_relation(recurrence_from_pde(laplace2d))" + "s = sp.Function(\"s\")\n", + "n = sp.Symbol('n')\n", + "sp.poly(recurrence_from_pde(laplace2d), s(n+2), s(n+1), s(n), s(n-1))" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "ode_in_r, var, ode_order = pde_to_ode_in_r(laplace2d)\n", - "ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify()\n", - "ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify()" + "def compute_derivatives_h2d(p, k=1.0):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + " derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs_helmholtz" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "num_derivs = 8\n", + "dervis_helm = compute_derivatives_h2d(num_derivs)\n", + "var = _make_sympy_vec(\"x\", 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import time\n", + "timings = []" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.013469934463500977\n", + "0.04595208168029785\n", + "0.08181095123291016\n", + "0.17072415351867676\n", + "0.10633707046508789\n", + "0.22766709327697754\n", + "0.45116114616394043\n", + "1.0443289279937744\n" + ] + } + ], + "source": [ + "for i in range(num_derivs):\n", + " start = time.time()\n", + " dervis_helm[i].subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).evalf()\n", + " end = time.time()\n", + " print(end-start)\n", + " timings.append(end-start)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "n_init, _, r = get_processed_and_shifted_recurrence(helmholtz2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-x0**2*s(0)/(x0**2 + x1**2) + (x0**2 - x1**2)*s(1)/(x0**3 + x0*x1**2)\n", + "3*x0**2*s(0)/(x0**3 + x0*x1**2) + 4*x0**2*s(2)/(x0**3 + x0*x1**2) - (x0**2 + 2)*s(1)/(x0**2 + x1**2)\n", + "-(x0**2 + 10)*s(2)/(x0**2 + x1**2) + (6*x0**2 + 2)*s(1)/(x0**3 + x0*x1**2) + (7*x0**2 + x1**2)*s(3)/(x0**3 + x0*x1**2) - 6*s(0)/(x0**2 + x1**2)\n", + "-(x0**2 + 24)*s(3)/(x0**2 + x1**2) + (9*x0**2 + 12)*s(2)/(x0**3 + x0*x1**2) + (10*x0**2 + 2*x1**2)*s(4)/(x0**3 + x0*x1**2) + 6*s(0)/(x0**3 + x0*x1**2) - 18*s(1)/(x0**2 + x1**2)\n", + "-(x0**2 + 44)*s(4)/(x0**2 + x1**2) + (12*x0**2 + 36)*s(3)/(x0**3 + x0*x1**2) + (13*x0**2 + 3*x1**2)*s(5)/(x0**3 + x0*x1**2) + 24*s(1)/(x0**3 + x0*x1**2) - 36*s(2)/(x0**2 + x1**2)\n", + "-(x0**2 + 70)*s(5)/(x0**2 + x1**2) + (15*x0**2 + 80)*s(4)/(x0**3 + x0*x1**2) + (16*x0**2 + 4*x1**2)*s(6)/(x0**3 + x0*x1**2) + 60*s(2)/(x0**3 + x0*x1**2) - 60*s(3)/(x0**2 + x1**2)\n" + ] + } + ], + "source": [ + "s=sp.Function('s')\n", + "n=sp.Symbol('n')\n", + "\n", + "check = []\n", + "x_coord = abs(np.random.rand()*1) # noqa: NPY002\n", + "y_coord = abs(np.random.rand()*1) # noqa: NPY002\n", + "coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", + "\n", + "subs_dict = {s(0): dervis_helm[0].subs(coord_dict).evalf(), s(1): dervis_helm[1].subs(coord_dict).evalf()}\n", + "\n", + "assert n_init == 2\n", + "for i in range(n_init, num_derivs):\n", + " start = time.time()\n", + " print(r.subs(n, i))\n", + " res = abs(r.subs(n, i).subs(subs_dict).subs(coord_dict).evalf())\n", + " end = time.time()\n", + " check.append(end-start)\n", + " # pylint: disable-next=not-callable\n", + " subs_dict[s(i)] = res" + ] + }, + { + "cell_type": "code", + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { - "text/latex": [ - "$\\displaystyle f_{x1} x_{0}^{2} - f_{x1} x_{1}^{2} + f_{x2} x_{0}^{3} + f_{x2} x_{0} x_{1}^{2}$" - ], "text/plain": [ - "f_x1*x0**2 - f_x1*x1**2 + f_x2*x0**3 + f_x2*x0*x1**2" + "Text(0.5, 1.0, 'Helmholtz 2D')" ] }, - "execution_count": 5, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Cws1btw43X333depUgAAUF+YGm4WLlyoSZMmafLkyQoKClJycrL8/Py0ePHiK457/PHHNXr0aIWFhV2nSgEAQH1hWri5cOGCsrKyFBkZ6dQeGRmpXbt2VTouJSVF//73vzV79uwqnaekpERFRUVOGwAAsC7Tws2pU6dUWlpa7r1U3t7eKigoqHDMkSNHNGPGDK1evVpublVbC52UlCQvLy/H5ufnd821AwCAusvU21KSZLPZnPYNwyjXJkmlpaUaPXq05s6dW61FzYmJiSosLHRseXl511wzAACou6r1U3BXat26tRo2bFhulubkyZMVvmX8zJkzyszMVHZ2tqZOnSrpp4cKGoYhNzc3bdmyRYMHDy43zm63y263185FAACAOse0mRt3d3eFhIQoPT3dqT09PV39+vUr19/T01MHDhzQ/v37HVtsbKy6du2q/fv364477rhepQMAgDrMtJkbSUpISNDYsWMVGhqqsLAwLV26VLm5uYqNjZX00y2lEydOaNWqVWrQoIG6devmNL5Nmzby8PAo1w4AAG5cpoabUaNG6fTp05o3b57y8/PVrVs3paWlyd/fX5KUn59/1WfeAAAA/JzNMAzD7CKup6KiInl5eamwsFCenp5mlwMAqIGAGR+aXUKNHJ8fXa3+N8p1VkV1/n6b/mspAAAAVyLcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAAS3EzuwAAgOsEzPjQ7BJq5Pj8aLNLgIUwcwMAACyFcAMAACyFcAMAACyFcAMAACzF9HCzaNEiBQYGysPDQyEhIcrIyKi077p16zR06FDdfPPN8vT0VFhYmDZv3nwdqwUAAHWdqeEmNTVV8fHxmjVrlrKzsxUeHq6oqCjl5uZW2P/jjz/W0KFDlZaWpqysLEVERGjEiBHKzs6+zpUDAIC6ytRws3DhQk2aNEmTJ09WUFCQkpOT5efnp8WLF1fYPzk5Wb/97W/Vp08fde7cWS+++KI6d+6sDRs2XOfKAQBAXWVauLlw4YKysrIUGRnp1B4ZGaldu3ZV6RhlZWU6c+aMWrZsWWmfkpISFRUVOW0AAMC6TAs3p06dUmlpqby9vZ3avb29VVBQUKVjvPzyyyouLtbIkSMr7ZOUlCQvLy/H5ufnd011AwCAus30BcU2m81p3zCMcm0VWbNmjebMmaPU1FS1adOm0n6JiYkqLCx0bHl5eddcMwAAqLtMe/1C69at1bBhw3KzNCdPniw3m/NLqampmjRpkt5++20NGTLkin3tdrvsdvs11wsAAOoH02Zu3N3dFRISovT0dKf29PR09evXr9Jxa9as0YQJE/T3v/9d0dG8iwQAADgz9cWZCQkJGjt2rEJDQxUWFqalS5cqNzdXsbGxkn66pXTixAmtWrVK0k/BZty4cfrzn/+sO++80zHr07hxY3l5eZl2HQAAoO4wNdyMGjVKp0+f1rx585Sfn69u3bopLS1N/v7+kqT8/HynZ94sWbJEly5d0pQpUzRlyhRH+/jx47Vy5crrXT4AAKiDTA03kvTkk0/qySefrPCzXwaW7du3135BAACgXjP911IAAACuRLgBAACWQrgBAACWYvqaGwDmCpjxodkl1Njx+TwOAkB5zNwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLcTO7AAC4HgJmfGh2CTVyfH602SUA9Q4zNwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFJ4zg1wBTwbBQDqH2ZuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApfBuKdQI71wCANRVzNwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLMf31C4sWLdIf//hH5efn6/bbb1dycrLCw8Mr7b9jxw4lJCTo4MGD8vX11W9/+1vFxsZex4qvjNcSAABgLlNnblJTUxUfH69Zs2YpOztb4eHhioqKUm5uboX9jx07puHDhys8PFzZ2dmaOXOm4uLitHbt2utcOQAAqKtMDTcLFy7UpEmTNHnyZAUFBSk5OVl+fn5avHhxhf3feOMNdejQQcnJyQoKCtLkyZM1ceJE/elPf7rOlQMAgLrKtHBz4cIFZWVlKTIy0qk9MjJSu3btqnDM7t27y/UfNmyYMjMzdfHixVqrFQAA1B+mrbk5deqUSktL5e3t7dTu7e2tgoKCCscUFBRU2P/SpUs6deqUfHx8yo0pKSlRSUmJY7+wsFCSVFRUdK2XUKGyknO1ctzaVt3vg+us26pznfX1GqUb4zr5d7ZiXGfdVht/Yy8f0zCMq/Y1fUGxzWZz2jcMo1zb1fpX1H5ZUlKS5s6dW67dz8+vuqVamley2RVcH1yntdwI13kjXKPEdVpNbV7nmTNn5OXldcU+poWb1q1bq2HDhuVmaU6ePFluduaytm3bVtjfzc1NrVq1qnBMYmKiEhISHPtlZWX67rvv1KpVqyuGqLqmqKhIfn5+ysvLk6enp9nl1Bqu0zpuhGuUuE6r4TrrLsMwdObMGfn6+l61r2nhxt3dXSEhIUpPT9evfvUrR3t6erruu+++CseEhYVpw4YNTm1btmxRaGioGjVqVOEYu90uu93u1NaiRYtrK95Enp6e9eZfxGvBdVrHjXCNEtdpNVxn3XS1GZvLTP21VEJCgpYtW6YVK1bo0KFDmjZtmnJzcx3PrUlMTNS4ceMc/WNjY/XVV18pISFBhw4d0ooVK7R8+XJNnz7drEsAAAB1jKlrbkaNGqXTp09r3rx5ys/PV7du3ZSWliZ/f39JUn5+vtMzbwIDA5WWlqZp06bp9ddfl6+vr1599VU9+OCDZl0CAACoY0xfUPzkk0/qySefrPCzlStXlmsbOHCg9u3bV8tV1T12u12zZ88ud4vNarhO67gRrlHiOq2G67QGm1GV31QBAADUE7w4EwAAWArhBgAAWArhBgAAWArhBgAAWArhpp5YtGiRAgMD5eHhoZCQEGVkZJhdkkt9/PHHGjFihHx9fWWz2fTee++ZXZLLJSUlqU+fPmrevLnatGmj+++/X4cPHza7LJdbvHixevTo4Xg4WFhYmDZu3Gh2WbUuKSlJNptN8fHxZpfiUnPmzJHNZnPa2rZta3ZZLnfixAmNGTNGrVq1UpMmTdSrVy9lZWWZXZZLBQQElPtnabPZNGXKFLNLcznCTT2Qmpqq+Ph4zZo1S9nZ2QoPD1dUVJTTM4Dqu+LiYvXs2VOvvfaa2aXUmh07dmjKlCnas2eP0tPTdenSJUVGRqq4uNjs0lyqffv2mj9/vjIzM5WZmanBgwfrvvvu08GDB80urdbs3btXS5cuVY8ePcwupVbcfvvtys/Pd2wHDhwwuySX+v7779W/f381atRIGzduVE5Ojl5++eV6/TT7iuzdu9fpn2N6erok6eGHHza5slpgoM7r27evERsb69R26623GjNmzDCpotolyXj33XfNLqPWnTx50pBk7Nixw+xSat1NN91kLFu2zOwyasWZM2eMzp07G+np6cbAgQONp59+2uySXGr27NlGz549zS6jVv3ud78z7rrrLrPLuO6efvppo2PHjkZZWZnZpbgcMzd13IULF5SVlaXIyEin9sjISO3atcukquAKhYWFkqSWLVuaXEntKS0t1VtvvaXi4mKFhYWZXU6tmDJliqKjozVkyBCzS6k1R44cka+vrwIDA/XII4/o6NGjZpfkUuvXr1doaKgefvhhtWnTRsHBwfrLX/5idlm16sKFC/rb3/6miRMn1quXSFcV4aaOO3XqlEpLS8u9Kd3b27vcG9JRfxiGoYSEBN11113q1q2b2eW43IEDB9SsWTPZ7XbFxsbq3Xff1W233WZ2WS731ltvad++fUpKSjK7lFpzxx13aNWqVdq8ebP+8pe/qKCgQP369dPp06fNLs1ljh49qsWLF6tz587avHmzYmNjFRcXp1WrVpldWq1577339MMPP2jChAlml1IrTH/9Aqrml8naMAxLpu0bxdSpU/XZZ5/pk08+MbuUWtG1a1ft379fP/zwg9auXavx48drx44dlgo4eXl5evrpp7VlyxZ5eHiYXU6tiYqKcvzv7t27KywsTB07dtSbb76phIQEEytznbKyMoWGhurFF1+UJAUHB+vgwYNavHix08ubrWT58uWKioqSr6+v2aXUCmZu6rjWrVurYcOG5WZpTp48WW42B/XDU089pfXr12vbtm1q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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "ode_in_x_cleared" + "plt.bar([i for i in range(0, num_derivs)], timings)\n", + "plt.ylabel('Wall Time (s)')\n", + "plt.xlabel('Derivative Order')\n", + "plt.title(\"Helmholtz 2D\")" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[2, 3, x1, x0, f_x1, -1, f_x2]" + "Text(0.5, 1.0, 'Helmholtz 2D')" ] }, - "execution_count": 31, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHFCAYAAADmGm0KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2MklEQVR4nO3de1hVZf7//9dWBMwDnkEMAU+FZwUzaBAxhdT65IymFh5KraE0Ar5OEx5GsybSLBmvPOYpZxp1GrPUSKUShhLNA5oj5Nh4gDHI0FJTA4X1+6PL/WvHjQJhG/T5uK59Xa17vde633tdpa/WWnstm2VZlgAAAOCglrMbAAAAqI4ISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGBCSAAAADAhJACpl1apVstls2rNnj3H9/fffLz8/v0rt+9FHH630tmXp27evOnfuXKX7tNlsmjlzpn05KytLM2fO1PHjx6tsjnfeeUcPP/yw2rVrp7p168rPz09RUVE6cuRIqVo/Pz/ZbDbZbDbVqlVLHh4eCggI0JgxY7Rt27Yq6wm4VRCSAKCKZGVl6fnnn6/SkDR79mxdvHhRU6dO1ZYtW/Tiiy8qMzNTPXv21KFDh0rV33PPPcrIyNCOHTu0fv16TZo0SceOHVNkZKSGDRumy5cvV1lvwM3OxdkNAADKtmnTJrVo0cJhrF+/fvLz89O8efO0bNkyh3WNGjXS3XffbV/u37+/Jk6cqJkzZ+r555/XtGnTNHv27F+ld6Cm40wSgF+NZVlauHChunfvrrp166px48YaNmyYjh49et1tbTabJk2apJUrV+qOO+5Q3bp1FRQUpJ07d8qyLL3yyivy9/dX/fr11a9fP3355ZfG/ezevVuhoaG67bbb1KZNG7388ssqKSlxqMnJydGoUaPUokULubm5KSAgQK+++mqpup9atWqVHnroIUlSeHi4/bLXqlWrlJqaal/++ed6lxV/HpAkydvbW7fffrtyc3Ovc9T+fzNnzlSnTp30+uuv64cffij3dsCtjJAE4BcpLi7WlStXSn0syypV+/vf/16xsbHq37+/3n33XS1cuFCHDh1SSEiIvv766+vOtXnzZi1btkwvv/yy1qxZo/Pnz2vw4MH6f//v/+nTTz/V66+/rqVLlyorK0tDhw4t1UN+fr6ioqI0atQobdy4UQMHDlRCQoL+9re/2Wu++eYbhYSEaNu2bXrhhRe0ceNG9e/fX5MnT9akSZPK7G3w4MF66aWXJEkLFixQRkaGMjIyNHjwYPXs2dO+fPWzevVq1alTR506dSrvobY7evSoTpw4UeFtH3jgAV28eLHM+8gA/IwFAJWwcuVKS9I1P76+vvb6jIwMS5L16quvOuwnNzfXqlu3rvXss8/ax8aOHeuwrWVZliTLy8vL+v777+1j7777riXJ6t69u1VSUmIfT0pKsiRZn3/+uX0sLCzMkmTt2rXLYb8dO3a0IiMj7cvPPfecse7JJ5+0bDabdfjwYYeeZsyYYV9+++23LUnW9u3byz5wlmV9/fXXVps2baxOnTpZ33777TVrf+7y5ctW3759rYYNG1o5OTkO63x9fa3BgweXue2iRYssSda6desqNCdwq+JMEoBfZPXq1dq9e3epz29+8xuHus2bN8tms2nUqFEOZ5y8vLzUrVs3paamXneu8PBw1atXz74cEBAgSRo4cKBsNlup8RMnTjhs7+XlpbvuusthrGvXrg51H3/8sTp27Fiq7tFHH5VlWfr444+v2+e1XLhwQYMHD9YPP/ygDz74QI0aNSr3tpZlafz48UpPT9fq1avl4+NTobktw9k9AGXjxm0Av0hAQICCgoJKjXt4eDjcM/P111/Lsix5enoa99OmTZvrztWkSROHZVdX12uO//zem6ZNm5bap5ubmy5dumRfPn36tPE+IW9vb/v6yrpy5YqGDRum//znP/rXv/5VoZBjWZYmTJigv/3tb3rzzTf14IMPVnj+q2Hw6ncBcG2EJAC/imbNmslmsyk9PV1ubm6l1pvGnKFp06bKy8srNf7VV19J+vF7VNYTTzyhjz76SMnJyerWrVu5t7sakFauXKnly5dr1KhRFZ7bsixt2rRJ9erVM4ZaAKVxuQ3Ar+L++++XZVk6efKkgoKCSn26dOni7BYlSffee6+ysrK0b98+h/HVq1fLZrMpPDy8zG2vBr2fnpm6atq0aVq5cqWWLVum/v37l7sfy7L0+OOPa+XKlVqyZIkee+yxcm/7U88//7yysrL0zDPPyN3dvVL7AG41nEkC8Ku455579MQTT+ixxx7Tnj171KdPH9WrV095eXn65JNP1KVLFz355JPOblNxcXFavXq1Bg8erFmzZsnX11fvv/++Fi5c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L3yUT3FxsdauXasLFy4oODjY2e3UCBMnTtTgwYPVv39/Z7dSYxw5ckTe3t7y9/fXyJEjdfToUWe3VK1t3LhRQUFBeuihh9SiRQv16NFDb7zxhrPbqlGKior0t7/9TePGjbvlApJESMLPWJal+Ph4/eY3v1Hnzp2d3U61d/DgQdWvX19ubm6Kjo7Whg0b1LFjR2e3Ve2tXbtW+/btU2JiorNbqTF69+6t1atXa+vWrXrjjTeUn5+vkJAQnT592tmtVVtHjx7VokWL1L59e23dulXR0dGKiYmxvw8U1/fuu+/qu+++06OPPursVpyCy21wMHHiRL3//vv65JNPdPvttzu7nWqvqKhIOTk5+u6777R+/XotW7ZMaWlpBKVryM3NVVBQkLZt26Zu3bpJkvr27cvltgq6cOGC2rZtq2effVbx8fHObqdacnV1VVBQkHbs2GEfi4mJ0e7du5WRkeHEzmqOyMhIubq6atOmTc5uxSk4kwS7p59+Whs3btT27dsJSOXk6uqqdu3aKSgoSImJierWrZv+8pe/OLutam3v3r06deqUAgMD5eLiIhcXF6WlpWn+/PlycXFxuGEUZatXr566dOmiI0eOOLuVaqtly5al/oclICDA4cXpKNuJEyf04YcfasKECc5uxWn4dRtkWZaefvppbdiwQampqfL393d2SzWWZVkqLCx0dhvV2r333quDBw86jD322GO688479cc//pFfbJVTYWGhsrOzFRoa6uxWqq177rmn1ONM/vOf/8jX19dJHdUsK1euVIsWLTR48GBnt+I0hCRo4sSJ+vvf/6733ntPDRo0UH5+viTJw8NDdevWdXJ31deUKVM0cOBA+fj46Pz581q7dq1SU1O1ZcsWZ7dWrTVo0KDU/W716tVT06ZNuQ/uGiZPnqwHHnhArVu31qlTp/Tiiy/q3LlzGjt2rLNbq7bi4uIUEhKil156ScOHD9dnn32mpUuXaunSpc5urdorKSnRypUrNXbsWLm43LpR4db95rBbtGiRpB/vC/mplStX3rI365XH119/rdGjRysvL08eHh7q2rWrtmzZogEDBji7NdyE/ve//+nhhx9WQUGBmjdvrrvvvls7d+7krMg19OrVSxs2bFBCQoJmzZolf39/JSUlKSoqytmtVXsffvihcnJyNG7cOGe34lTcuA0AAGDAjdsAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAIAADAgJAEAABgQkgBUS3379lVsbOwNn2fmzJnq3r37DZ+nqh0/flw2m0379+93divATYuQBKDCHn30UdlsNtlsNtWpU0eenp4aMGCAVqxYoZKSkiqZ45133tELL7xQJfu6ymaz6d1333UYmzx5sj766KMqncfk0qVLmjFjhu644w65ubmpWbNmGjZsmA4dOnTD5wZQOYQkAJVy3333KS8vT8ePH9cHH3yg8PBwPfPMM7r//vt15cqVSu/38uXLkqQmTZqoQYMGVdVumerXr6+mTZve0DkKCwvVv39/rVixQi+88IL+85//KDk5WcXFxerdu7d27txZ5rZFRUU3rK8buW/gZkBIAlApbm5u8vLyUqtWrdSzZ09NmTJF7733nj744AOtWrXKXnf27Fk98cQTatGihRo2bKh+/frpwIED9vVXL3etWLFCbdq0kZubmyzLcrjclpCQoLvvvrtUD127dtWMGTMkSbt379aAAQPUrFkzeXh4KCwsTPv27bPX+vn5SZJ++9vfymaz2Zd/erlt69atcnd313fffecwT0xMjMLCwuzLO3bsUJ8+fVS3bl35+PgoJiZGFy5cKPNYJSUlKSMjQ5s3b9bw4cPl6+uru+66S+vXr1dAQIDGjx+vq2+IevTRRzVkyBAlJibK29tbHTp0kCR99tln6tGjh9zd3RUUFKTMzMxS82RlZWnQoEGqX7++PD09NXr0aBUUFNjX9+3bV5MmTVJ8fLyaNWvGewaB6yAkAagy/fr1U7du3fTOO+9IkizL0uDBg5Wfn6/k5GTt3btXPXv21L333qszZ87Yt/vyyy/1j3/8Q+vXrzfeYxMVFaVdu3bpv//9r33s0KFDOnjwoP1lpefPn9fYsWOVnp6unTt3qn379ho0aJDOnz8v6ccQJf344ua8vDz78k/1799fjRo10vr16+1jxcXF+sc//mGf5+DBg4qMjNTvfvc7ff7551q3bp0++eQTTZo0qczj8ve//10DBgxQt27dHMZr1aqluLg4ZWVlOQTHjz76SNnZ2UpJSdHmzZt14cIF3X///brjjju0d+9ezZw5U5MnT3bYV15ensLCwtS9e3ft2bNHW7Zs0ddff63hw4c71L355ptycXHRp59+qiVLlpTZMwBJFgBU0NixY60HH3zQuG7EiBFWQECAZVmW9dFHH1kNGza0fvjhB4eatm3bWkuWLLEsy7JmzJhh1alTxzp16pRDTVhYmPXMM8/Yl7t27WrNmjXLvpyQkGD16tWrzB6vXLliNWjQwNq0aZN9TJK1YcMGh7oZM2ZY3bp1sy/HxMRY/fr1sy9v3brVcnV1tc6cOWNZlmWNHj3aeuKJJxz2kZ6ebtWqVcu6dOmSsRd3d3eH7/JT+/btsyRZ69atsyzrx2Pr6elpFRYW2muWLFliNWnSxLpw4YJ9bNGiRZYkKzMz07Isy5o+fboVERHhsO/c3FxLknX48GHLsn48pt27dzf2AaA0ziQBqFKWZclms0mS9u7dq++//15NmzZV/fr17Z9jx445nBXy9fVV8+bNr7nfqKgovfXWW/Y51qxZYz+7I0mnTp1SdHS0OnToIA8PD3l4eOj7779XTk5OhfqPiopSamqqvvrqK0nSW2+9pUGDBqlx48b277Rq1SqH7xMZGamSkhIdO3asQnNd/S6S7MdMkrp06SJXV1f7cnZ2trp166bbbrvNPhYcHOywn71792r79u0Ofd15552S5HCsg4KCKtwjcKtycXYDAG4u2dnZ8vf3lySVlJSoZcuWSk1NLVXXqFEj+z/Xq1fvuvt95JFH9Nxzz2nfvn26dOmScnNzNXLkSPv6Rx99VN98842SkpLk6+srNzc3BQcHV/jm5Lvuuktt27bV2rVr9eSTT2rDhg1auXKlfX1JSYl+//vfKyYmptS2rVu3Nu6zQ4cOysrKMq774osvJEnt27e3j/38eFwNUtdSUlKiBx54QLNnzy61rmXLlmXuG0DZCEkAqszHH3+sgwcPKi4uTpLUs2dP5efny8XFxX6jdGXdfvvt6tOnj9566y1dunRJ/fv3l6enp319enq6Fi5cqEGDBkmScnNzHW5alqQ6deqouLj4unM98sgjeuutt3T77berVq1aGjx4sH1dz549dejQIbVr167cvY8cOVJTp07VgQMHHO5LKikp0bx589SxY8dS9yv9VMeOHfXXv/5Vly5dUt26dSWp1C/ievbsqfXr18vPz08uLvzRDlQFLrcBqJTCwkLl5+fr5MmT2rdvn1566SU9+OCDuv/++zVmzBhJP94IHRwcrCFDhmjr1q06fvy4duzYoWnTpmnPnj0VnjMqKkpr167V22+/rVGjRjmsa9eunf76178qOztbu3btUlRUlD1QXOXn56ePPvpI+fn5+vbbb685z759+/TnP/9Zw4YNk7u7u33dH//4R2VkZGjixInav3+/jhw5oo0bN+rpp58uc39xcXG666679MADD+jtt99WTk6Odu/eraFDhyo7O1vLly93uNz2c4888ohq1aql8ePHKysrS8nJyZo7d65DzcSJE3XmzBk9/PDD+uyzz3T06FFt27ZN48aNK1cwBFAaIQlApWzZskUtW7aUn5+f7rvvPm3fvl3z58/Xe++9p9q1a0v68T6b5ORk9enTR+PGjVOHDh00cuRIHT9+3OEsUHk99NBDOn36tC5evKghQ4Y4rFuxYoW+/fZb9ejRQ6NHj1ZMTIxatGjhUPPqq68qJSVFPj4+6tGjR5nztG/fXr169dLnn3/ucN+T9ONjB9LS0nTkyBGFhoaqR48emj59usMlrZ9zd3fXxx9/rLFjx2rKlClq166d7rvvPtWuXVs7d+40Pt7gp+rXr69NmzYpKytLPXr00NSpU0tdVvP29tann36q4uJiRUZGqnPnznrmmWfk4eGhWrX4ox6oDJtVnovdAAAAtxj+9wIAAMCAkAQAAGBASAIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGPx/oT7T7YPzonUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "fx1 = list(ode_in_x_cleared.atoms())[4]\n", - "fx2 = list(ode_in_x_cleared.atoms())[-1]\n", - "list(ode_in_x_cleared.atoms())" + "plt.bar([i for i in range(n_init, num_derivs)], check)\n", + "plt.ylabel('Wall Time (s)')\n", + "plt.xlabel('Derivative Order')\n", + "plt.title(\"Helmholtz 2D\")" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "n_init, _, recurrence_helm = get_processed_and_shifted_recurrence(helmholtz2d)\n", + "derivs_helm = dervis_helm\n", + "n = sp.symbols(\"n\")\n", + "s = sp.Function(\"s\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "recurrence_helm = recurrence_helm.subs(s, g)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle x_{0}^{3} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} + x_{0}^{2} \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)} + x_{0} x_{1}^{2} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} - x_{1}^{2} \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)}$" + "$\\displaystyle 0.25 i \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)$" ], "text/plain": [ - "x0**3*Derivative(g(x0), (x0, 2)) + x0**2*Derivative(g(x0), x0) + x0*x1**2*Derivative(g(x0), (x0, 2)) - x1**2*Derivative(g(x0), x0)" + "0.25*I*(0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))" ] }, - "execution_count": 34, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "new_ode_x = ode_in_x_cleared.subs(fx1, sp.diff(g(var[0]), var[0], 1)).subs(fx2, sp.diff(g(var[0]), var[0], 2))\n", - "new_ode_x" + "derivs_helm[2]" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle x_{0}^{3} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + 4 x_{0}^{2} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} + x_{0} x_{1}^{2} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + 2 x_{0} \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)}$" + "$\\displaystyle - 0.25 i \\left(- \\frac{2.25 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.0 x_{0}^{2} \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.0 x_{0}^{2} \\left(\\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{\\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)$" ], "text/plain": [ - "x0**3*Derivative(g(x0), (x0, 3)) + 4*x0**2*Derivative(g(x0), (x0, 2)) + x0*x1**2*Derivative(g(x0), (x0, 3)) + 2*x0*Derivative(g(x0), x0)" + "-0.25*I*(-2.25*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 7.5*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.0*x0**2*(0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 3.0*x0**2*(0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))" ] }, - "execution_count": 37, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sp.diff(new_ode_x, var[0], 1)" + "derivs_helm[4]" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle x_{0}^{3} \\frac{d^{4}}{d x_{0}^{4}} g{\\left(x_{0} \\right)} + 7 x_{0}^{2} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + x_{0} x_{1}^{2} \\frac{d^{4}}{d x_{0}^{4}} g{\\left(x_{0} \\right)} + 10 x_{0} \\frac{d^{2}}{d x_{0}^{2}} g{\\left(x_{0} \\right)} + x_{1}^{2} \\frac{d^{3}}{d x_{0}^{3}} g{\\left(x_{0} \\right)} + 2 \\frac{d}{d x_{0}} g{\\left(x_{0} \\right)}$" + "$\\displaystyle 0.25 i x_{0} \\left(\\frac{1417.5 x_{0}^{6} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{6}} - \\frac{5197.5 x_{0}^{6} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{13}{2}}} - \\frac{2362.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}} - \\frac{300.0 x_{0}^{4} \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1575.0 x_{0}^{4} \\left(\\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{9922.5 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{11}{2}}} + \\frac{1012.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{6.0 x_{0}^{2} \\left(\\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{1.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{11.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{360.0 x_{0}^{2} \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{45.0 x_{0}^{2} \\left(\\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2250.0 x_{0}^{2} \\left(\\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{5512.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{67.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 135.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 67.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{\\frac{45.0 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{45.0 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{157.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{157.5 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{54.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{54.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{12.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{12.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{54.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{54.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{225.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{225.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{9.0 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 18.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 9.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{9.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 18.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 9.0 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{- \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{6.0 \\left(0.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{6.0 \\left(1.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{6.0 \\left(1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{6.0 \\left(0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{6.0 \\left(1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{6.0 \\left(1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.0 \\left(0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.0 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.0 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.0 \\left(0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{54.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{54.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{- \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{54.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{54.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{67.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 67.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{67.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 67.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{\\frac{65.625 x_{0}^{6} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}} - \\frac{65.625 x_{0}^{6} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}} - \\frac{236.25 x_{0}^{6} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{11}{2}}} + \\frac{236.25 x_{0}^{6} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{11}{2}}} - \\frac{93.75 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{93.75 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{15.0 x_{0}^{4} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{15.0 x_{0}^{4} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{75.0 x_{0}^{4} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{75.0 x_{0}^{4} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{393.75 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{393.75 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{28.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{28.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-7}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{11.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{11.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{7}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{11.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{11.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{15.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{15.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{2.5 x_{0}^{2} \\left(- \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 x_{0}^{2} \\left(- \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{90.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{90.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.0 \\left(- \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.875 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.875 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(- \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.875 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.875 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(- \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(- \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.0 \\left(11.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.0 \\left(11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{\\frac{15.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{15.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{45.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{45.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{15.0 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 30.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 15.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{15.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 30.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 15.0 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{30.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{30.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{30.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{30.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{45.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 45.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{45.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 45.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{\\frac{50.625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{50.625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{168.75 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{168.75 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{50.625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{50.625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{22.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{22.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{67.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{67.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{202.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{202.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{45.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{45.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{45.0 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{45.0 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{\\frac{84.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{84.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{675.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{675.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{787.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 787.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}}\\right)$" ], "text/plain": [ - "x0**3*Derivative(g(x0), (x0, 4)) + 7*x0**2*Derivative(g(x0), (x0, 3)) + x0*x1**2*Derivative(g(x0), (x0, 4)) + 10*x0*Derivative(g(x0), (x0, 2)) + x1**2*Derivative(g(x0), (x0, 3)) + 2*Derivative(g(x0), x0)" + "0.25*I*x0*(1417.5*x0**6*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**6 - 5197.5*x0**6*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(13/2) - 2362.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**5 - 300.0*x0**4*(0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(7/2) - 1575.0*x0**4*(0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(9/2) + 9922.5*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(11/2) + 1012.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 6.0*x0**2*(7.5*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 7.5*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 26.25*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 26.25*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 9.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 2.0*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 2.0*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 9.0*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 9.0*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 37.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 37.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + (1.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (-0.5*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5625*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5625*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-1.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (-1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (11.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/(x0**2 + x1**2)**(3/2) + 360.0*x0**2*(0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) - 45.0*x0**2*(1.125*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 1.125*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 3.75*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 3.75*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.5*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.5*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 1.5*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 4.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) + 2250.0*x0**2*(0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(7/2) - 5512.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - (67.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 135.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 67.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + (45.0*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 45.0*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 157.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 157.5*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 54.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 54.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 12.0*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 12.0*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 54.0*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 54.0*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 225.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 225.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + (9.0*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 18.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 9.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (9.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 18.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 9.0*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (-3.0*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 3.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 9.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 6.0*(0.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 6.0*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 6.0*(1.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 6.0*(1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-3.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 3.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 9.0*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 6.0*(0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 6.0*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 6.0*(1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 6.0*(1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-3.375*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.375*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 11.25*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 11.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 3.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 3.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.5*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 4.5*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 4.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 3.0*(-0.1875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 3.0*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 3.0*(0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.0*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-3.375*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.375*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 11.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 11.25*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 3.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 3.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.5*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 4.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 4.5*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 13.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 3.0*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 3.0*(-0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 3.0*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.0*(0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-6.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 6.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 13.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 54.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 54.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (-6.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 6.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 54.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 54.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (67.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 67.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (67.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 67.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - (65.625*x0**6*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**5 - 65.625*x0**6*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**5 - 236.25*x0**6*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(11/2) + 236.25*x0**6*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(11/2) - 93.75*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 93.75*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 15.0*x0**4*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) - 15.0*x0**4*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) + 75.0*x0**4*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(7/2) - 75.0*x0**4*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(7/2) + 393.75*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 393.75*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 28.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 28.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5*x0**2*(-7.5*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 7.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 26.25*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 26.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 9.0*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 9.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 2.0*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 2.0*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 9.0*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 9.0*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 37.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 37.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - (1.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (-0.5*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5625*x0**4*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-7, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-1.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (-1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (11.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (11.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - 0.5*x0**2*(-7.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 7.5*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 26.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 26.25*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 9.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 9.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 2.0*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 2.0*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 9.0*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 9.0*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 37.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 37.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (-0.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(5, 1.0*sqrt(x0**2 + x1**2)) + hankel1(7, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (-1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (11.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (11.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - 15.0*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 15.0*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 2.5*x0**2*(-1.125*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.75*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 3.75*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 1.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 1.5*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 1.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 4.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.1875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 2.5*x0**2*(-1.125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.125*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.75*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 3.75*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.5*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 1.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 1.5*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 4.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 90.0*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 90.0*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 168.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 168.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.0*(-2.8125*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 2.8125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 9.375*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 9.375*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 2.8125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 2.8125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.25*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 3.75*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 3.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 11.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 11.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.46875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.46875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (1.875*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (1.875*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.0*(-2.8125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 2.8125*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 9.375*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 9.375*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 2.8125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 2.8125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.25*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 3.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 3.75*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 11.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 11.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.46875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.46875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (1.875*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (1.875*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.0*(-1.875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (3.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (3.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 1.0*(-1.875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (3.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (3.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 1.0*(11.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.0*(11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - (15.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 15.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 45.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 45.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (15.0*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 30.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 15.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (15.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 30.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 15.0*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-3.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 7.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 7.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 30.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 30.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-3.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 7.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 7.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 30.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 30.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (45.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 45.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (45.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 45.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + (50.625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 50.625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 168.75*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 168.75*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 50.625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 50.625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 22.5*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 22.5*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 67.5*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 67.5*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 202.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 202.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 45.0*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 45.0*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 45.0*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 45.0*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - (84.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 84.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 168.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 168.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 675.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 675.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + (787.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 787.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2))" ] }, "execution_count": 36, @@ -190,217 +357,222 @@ } ], "source": [ - "sp.diff(new_ode_x, var[0], 2)" + "derivs_helm[7]" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\operatorname{Poly}{\\left( \\left(x_{0}^{3} + x_{0} x_{1}^{2}\\right) s{\\left(n + 2 \\right)} + \\left(3 n x_{0}^{2} + n x_{1}^{2} + x_{0}^{2} - x_{1}^{2}\\right) s{\\left(n + 1 \\right)} + \\left(3 n^{2} x_{0} - n x_{0}\\right) s{\\left(n \\right)} + \\left(n^{3} - 2 n^{2} + n\\right) s{\\left(n - 1 \\right)}, s{\\left(n + 2 \\right)}, s{\\left(n + 1 \\right)}, s{\\left(n \\right)}, s{\\left(n - 1 \\right)}, domain=\\mathbb{Z}\\left[x_{0}, n, x_{1}\\right] \\right)}$" + "$\\displaystyle \\frac{3 x_{0}^{2} g{\\left(0 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{4 x_{0}^{2} g{\\left(2 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{\\left(x_{0}^{2} + 2\\right) g{\\left(1 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" ], "text/plain": [ - "Poly((x0**3 + x0*x1**2)*(s(n + 2)) + (3*n*x0**2 + n*x1**2 + x0**2 - x1**2)*(s(n + 1)) + (3*n**2*x0 - n*x0)*(s(n)) + (n**3 - 2*n**2 + n)*(s(n - 1)), s(n + 2), s(n + 1), s(n), s(n - 1), domain='ZZ[x0,n,x1]')" + "3*x0**2*g(0)/(x0**3 + x0*x1**2) + 4*x0**2*g(2)/(x0**3 + x0*x1**2) - (x0**2 + 2)*g(1)/(x0**2 + x1**2)" ] }, - "execution_count": 40, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "s = sp.Function(\"s\")\n", - "n = sp.Symbol('n')\n", - "sp.poly(recurrence_from_pde(laplace2d), s(n+2), s(n+1), s(n), s(n-1))" + "recurrence_helm.subs(n, 3)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle - \\frac{\\left(x_{0}^{2} + 10\\right) g{\\left(2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(6 x_{0}^{2} + 2\\right) g{\\left(1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(7 x_{0}^{2} + x_{1}^{2}\\right) g{\\left(3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{6 g{\\left(0 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" + ], + "text/plain": [ + "-(x0**2 + 10)*g(2)/(x0**2 + x1**2) + (6*x0**2 + 2)*g(1)/(x0**3 + x0*x1**2) + (7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) - 6*g(0)/(x0**2 + x1**2)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "def compute_derivatives_h2d(p, k=1.0):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - " derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs_helmholtz" + "recurrence_helm.subs(n, 4)" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 23, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle - \\frac{x_{0}^{2} g{\\left(0 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(x_{0}^{2} - x_{1}^{2}\\right) g{\\left(1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}$" + ], + "text/plain": [ + "-x0**2*g(0)/(x0**2 + x1**2) + (x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "num_derivs = 8\n", - "dervis_helm = compute_derivatives_h2d(num_derivs)\n", - "var = _make_sympy_vec(\"x\", 2)" + "recurrence_helm.subs(n, 2)" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "import time\n", - "timings = []" - ] + "source": [] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.005148172378540039\n", - "0.017525911331176758\n", - "0.03989005088806152\n", - "0.07448387145996094\n", - "0.11824178695678711\n", - "0.29863595962524414\n", - "0.5367820262908936\n", - "1.1351509094238281\n" - ] - } - ], + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "for i in range(num_derivs):\n", - " start = time.time()\n", - " dervis_helm[i].subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).evalf()\n", - " end = time.time()\n", - " print(end-start)\n", - " timings.append(end-start)" + "import sympy as sp\n", + "G = sp.Function(\"G\")\n", + "v_1 = sp.Symbol('v_1')\n", + "v_2 = sp.Symbol(\"v_2\")\n", + "v_3 = sp.Symbol(\"v_3\")\n", + "x_1 = sp.Symbol(\"x_1\")\n", + "x_2 = sp.Symbol(\"x_2\")\n", + "x_3 = sp.Symbol(\"x_3\")\n", + "t = sp.Symbol(\"t\")" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle v_{1} \\left. \\frac{\\partial}{\\partial \\xi_{1}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial}{\\partial \\xi_{2}} G{\\left(x_{1},\\xi_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial}{\\partial \\xi_{3}} G{\\left(x_{1},x_{2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}$" + ], "text/plain": [ - "Text(0.5, 1.0, 'Helmholtz 2D')" + "v_1*Subs(Derivative(G(_xi_1, x_2, x_3), _xi_1), _xi_1, x_1) + v_2*Subs(Derivative(G(x_1, _xi_2, x_3), _xi_2), _xi_2, x_2) + v_3*Subs(Derivative(G(x_1, x_2, _xi_3), _xi_3), _xi_3, x_3)" ] }, - "execution_count": 27, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "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a/PmzcX61a1b1/nPtWrVuupxhw4dqqlTp2rXrl06e/asjhw5ooceesj5+ejRo/W///1PCQkJCgwMlJeXl8LDw8t802yXLl3UvHlzLVu2TI8//rg++OADJSUlOT8vKirSY489ppiYmGJjmzZtWuIxW7VqpYyMjBI/+89//iNJatmypbPtt9/HpQB0JUVFRRowYIBeeOGFYp81btz4sscGUDLCDQBJ0saNG7V3715NnjxZktS5c2fl5OTIw8PDeQNveTVp0kR33XWXli5dqrNnz6p3797y8/Nzfp6amqrExET169dPknTkyBGXm2klqUaNGiosLLzquYYOHaqlS5eqSZMmqlatmqKiopyfde7cWfv27VOLFi1KXftDDz2k6dOn66uvvnK576aoqEj/+Mc/1KZNm2L34/xamzZt9NZbb+ns2bOqWbOmJBV7wqpz585auXKlgoKC5OHBf5aB34vLUsB1qKCgQDk5OTp69Kh27dql5557TgMHDlT//v01cuRISRdv0A0PD9d9992n9evX6/Dhw9q2bZuefvpppaWllfmcw4YN07Jly7RixQoNHz7c5bMWLVrorbfeUmZmpr744gsNGzbMGQQuCQoK0qeffqqcnBz9+OOPVzzPrl279Le//U2DBg2St7e387O//OUv2r59u8aPH689e/bowIEDWrNmjZ588snLHm/y5Mnq0qWLBgwYoBUrVigrK0s7d+7UAw88oMzMTC1cuNDlstRvDR06VNWqVdPYsWOVkZGh5ORkvfTSSy59xo8frxMnTujhhx/Wl19+qYMHD2rDhg0aM2ZMqQIdAFeEG+A6tG7dOjVu3FhBQUG69957tWnTJr366qv68MMPVb16dUkX7yNJTk7WXXfdpTFjxqhVq1Z66KGHdPjwYZdVl9J68MEHdfz4cf3888+67777XD5btGiRfvzxR3Xq1EkjRoxQTEyMGjZs6NLn5ZdfVkpKigICAtSpU6fLnqdly5a67bbb9PXXX7vc1yNdfPx8y5YtOnDggLp3765OnTrpr3/9q8uln9/y9vbWxo0bNWrUKE2bNk0tWrTQvffeq+rVq2vHjh0lPub+a7Vr19batWuVkZGhTp06afr06cUuP/n7+2vr1q0qLCxU37591bZtW02cOFG+vr6qVo3/TANl5bBKc0EYAACgiuB/CQAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwyv8HmG0cPoUX3OUAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "plt.bar([i for i in range(num_derivs)], timings)\n", - "plt.ylabel('Flops')\n", - "plt.xlabel('Derivative Order')\n", - "plt.title(\"Helmholtz 2D\")" + "sp.diff(G(x_1+v_1*t,x_2+v_2*t,x_3+v_3*t), t, 1).subs(t,0)" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle v_{1} \\left. \\frac{\\partial}{\\partial \\xi_{1}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }}$" + ], + "text/plain": [ + "v_1*Subs(Derivative(G(_xi_1, x_2, x_3), _xi_1), _xi_1, x_1)" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "n_init, _, r = get_processed_and_shifted_recurrence(helmholtz2d)" + "sp.diff(G(x_1+v_1*t,x_2,x_3), t, 1).subs(t, 0)" ] }, { "cell_type": "code", - "execution_count": 57, + "execution_count": null, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "-x0**2*s(0)/(x0**2 + x1**2) + (x0**2 - x1**2)*s(1)/(x0**3 + x0*x1**2)\n", - "3*x0**2*s(0)/(x0**3 + x0*x1**2) + 4*x0**2*s(2)/(x0**3 + x0*x1**2) - (x0**2 + 2)*s(1)/(x0**2 + x1**2)\n", - "-(x0**2 + 10)*s(2)/(x0**2 + x1**2) + (6*x0**2 + 2)*s(1)/(x0**3 + x0*x1**2) + (7*x0**2 + x1**2)*s(3)/(x0**3 + x0*x1**2) - 6*s(0)/(x0**2 + x1**2)\n", - "-(x0**2 + 24)*s(3)/(x0**2 + x1**2) + (9*x0**2 + 12)*s(2)/(x0**3 + x0*x1**2) + (10*x0**2 + 2*x1**2)*s(4)/(x0**3 + x0*x1**2) + 6*s(0)/(x0**3 + x0*x1**2) - 18*s(1)/(x0**2 + x1**2)\n", - "-(x0**2 + 44)*s(4)/(x0**2 + x1**2) + (12*x0**2 + 36)*s(3)/(x0**3 + x0*x1**2) + (13*x0**2 + 3*x1**2)*s(5)/(x0**3 + x0*x1**2) + 24*s(1)/(x0**3 + x0*x1**2) - 36*s(2)/(x0**2 + x1**2)\n", - "-(x0**2 + 70)*s(5)/(x0**2 + x1**2) + (15*x0**2 + 80)*s(4)/(x0**3 + x0*x1**2) + (16*x0**2 + 4*x1**2)*s(6)/(x0**3 + x0*x1**2) + 60*s(2)/(x0**3 + x0*x1**2) - 60*s(3)/(x0**2 + x1**2)\n" - ] + "data": { + "text/latex": [ + "$\\displaystyle G{\\left(t v_{1} + x_{1},t v_{2} + x_{2},t v_{3} + x_{3} \\right)}$" + ], + "text/plain": [ + "G(t*v_1 + x_1, t*v_2 + x_2, t*v_3 + x_3)" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "s=sp.Function('s')\n", - "n=sp.Symbol('n')\n", - "\n", - "check = []\n", - "x_coord = abs(np.random.rand()*1) # noqa: NPY002\n", - "y_coord = abs(np.random.rand()*1) # noqa: NPY002\n", - "coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", - "\n", - "subs_dict = {s(0): dervis_helm[0].subs(coord_dict).evalf(), s(1): dervis_helm[1].subs(coord_dict).evalf()}\n", - "\n", - "assert n_init == 2\n", - "for i in range(n_init, num_derivs):\n", - " start = time.time()\n", - " print(r.subs(n, i))\n", - " res = abs(r.subs(n, i).subs(subs_dict).subs(coord_dict).evalf())\n", - " end = time.time()\n", - " check.append(end-start)\n", - " # pylint: disable-next=not-callable\n", - " subs_dict[s(i)] = res" + "G(x_1+v_1*t,x_2+v_2*t,x_3+v_3*t)" ] }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle v_{1} \\left(v_{1} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{1}^{2}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{1 + x 1}\\partial \\xi_{2}} G{\\left(_t*v_{1 + x 1},\\xi_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{1 + x 1}\\partial \\xi_{3}} G{\\left(_t*v_{1 + x 1},x_{2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}\\right) + v_{2} \\left(v_{1} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{2 + x 2}\\partial \\xi_{1}} G{\\left(\\xi_{1},_t*v_{2 + x 2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{2}^{2}} G{\\left(x_{1},\\xi_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{2 + x 2}\\partial \\xi_{3}} G{\\left(x_{1},_t*v_{2 + x 2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}\\right) + v_{3} \\left(v_{1} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{3 + x 3}\\partial \\xi_{1}} G{\\left(\\xi_{1},x_{2},_t*v_{3 + x 3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{3 + x 3}\\partial \\xi_{2}} G{\\left(x_{1},\\xi_{2},_t*v_{3 + x 3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{3}^{2}} G{\\left(x_{1},x_{2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}\\right)$" + ], "text/plain": [ - "Text(0.5, 1.0, 'Helmholtz 2D')" + "v_1*(v_1*Subs(Derivative(G(_xi_1, x_2, x_3), (_xi_1, 2)), _xi_1, x_1) + v_2*Subs(Derivative(G(_t*v_1 + x_1, _xi_2, x_3), _xi_2, _t*v_1 + x_1), _xi_2, x_2) + v_3*Subs(Derivative(G(_t*v_1 + x_1, x_2, _xi_3), _xi_3, _t*v_1 + x_1), _xi_3, x_3)) + v_2*(v_1*Subs(Derivative(G(_xi_1, _t*v_2 + x_2, x_3), _xi_1, _t*v_2 + x_2), _xi_1, x_1) + v_2*Subs(Derivative(G(x_1, _xi_2, x_3), (_xi_2, 2)), _xi_2, x_2) + v_3*Subs(Derivative(G(x_1, _t*v_2 + x_2, _xi_3), _xi_3, _t*v_2 + x_2), _xi_3, x_3)) + v_3*(v_1*Subs(Derivative(G(_xi_1, x_2, _t*v_3 + x_3), _xi_1, _t*v_3 + x_3), _xi_1, x_1) + v_2*Subs(Derivative(G(x_1, _xi_2, _t*v_3 + x_3), _xi_2, _t*v_3 + x_3), _xi_2, x_2) + v_3*Subs(Derivative(G(x_1, x_2, _xi_3), (_xi_3, 2)), _xi_3, x_3))" ] }, - "execution_count": 58, + "execution_count": 79, "metadata": {}, "output_type": "execute_result" - }, + } + ], + "source": [ + "sp.diff(G(x_1+v_1*t,x_2+v_2*t,x_3+v_3*t), t, 2).subs(t, 0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ { "data": { - "image/png": "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xcXFadGiRfLz89PChQs1ePBge01ycrJKSko0ZMgQh7lmzZql2bNnV2peAAAAl4YkSZo4caImTpxo3LZmzRqnsb59+yozM7PC4506depnzwsAAODyb7cBAABUR4QkAAAAA0ISAACAASEJAADAgJAEAABgQEgCAAAwICQBAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGBCSAAAADAhJAAAABoQkAAAAA0ISAACAASEJAADAgJAEAABgQEgCAAAwICQBAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBQpZCUmZmpo0eP2tffffddPfLII5o+fbpKSkpuWnMAAACuUqWQ9Ic//EGfffaZJOnkyZMaNmyY7rjjDr311lt69tlnb2qDAAAArlClkPTZZ5+pa9eukqS33npLffr00Ztvvqk1a9Zow4YNN7M/AAAAl6hSSLIsS+Xl5ZKkHTt2aNCgQZIkf39/FRYW3rzuAAAAXKRKISk0NFQvvvii/vGPfyg9PV3R0dGSpJycHPn4+NzUBgEAAFyhSiEpKSlJmZmZevrppzVjxgy1bt1akvT2228rPDz8pjYIAADgCm5V2alz584O3267at68eapdu/bPbgoAAMDVqhSSrjp06JCys7Nls9nUrl07hYaG3qy+AAAAXKpKIenLL7/U8OHDtXfvXjVq1EiS9O233yo8PFxr166Vv7//zewRAADgV1elZ5LGjh2r0tJSZWdn6+uvv9bXX3+t7OxsWZalcePG3eweAQAAfnVVupK0Z88e7du3T/fcc4997J577tHf//539e7d+6Y1BwAA4CpVupLUokULlZaWOo1fvnxZd911189uCgAAwNWqFJJeeeUVPfPMMzp06JAsy5J05SHuyZMna/78+Te1QQAAAFeoUkgaM2aMjhw5op49e8rT01MeHh7q2bOnMjMzNXbsWDVu3Ni+XE9ycrKCgoLk6empkJAQ7dmz55r16enpCgkJkaenp1q2bKklS5Y4bD927JgGDx6swMBA2Ww2JSUlOR1j9uzZstlsDouvr+8NnQMAAHBrq9IzSabgURXr16/XlClTlJycrN69e2vp0qUa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zJmj/Px8dezYUampqQoICJAk5efnO7y7KCgoSKmpqYqLi9OiRYvk5+enhQsXavDgwfaa8PBwrVu3TjNnztRzzz2nVq1aaf369erZs2el5wUAALBZlXm8G7eN4uJiJSYmKiEhwen2IirGebtxnLOq4bxVDeetam7380ZIAgAAMHD5b7cBAABUR4QkAAAAA0ISAACAASEJAADAgJAEJSYmqkePHmrQoIGaNWumRx55RJ9++qmr26r2Fi9erM6dO9tfshYWFqYPPvjA1W3VOImJibLZbJoyZYqrW6nWZs+eLZvN5rD4+vq6uq1q7/Tp0xo5cqS8vb11xx13qGvXrjp8+LCr26rWAgMDnf5ds9lsmjRpkqtb+9W5/Lfb4Hrp6emaNGmSevToocuXL2vGjBmKiorS8ePHVa9ePVe3V23dfffdeumll9S6dWtJ0muvvaaHH35YWVlZ6tChg4u7qxkOHjyoZcuWqXPnzq5upUbo0KGDduzYYV+vXbu2C7up/r755hv17t1b9913nz744AM1a9ZM//nPf27pX0u4GQ4ePKiysjL7+v/7f/9P/fv316OPPurCrlyDVwDAyX//+181a9ZM6enp6tOnj6vbqVEaN26sefPmady4ca5updr77rvv1L17dyUnJ+vFF19U165dlZSU5Oq2qq3Zs2frnXfe0ZEjR1zdSo0xbdo07d27V3v27HF1KzXalClT9P777+vEiRO31G+VVga32+Dk/Pnzkq78hY/KKSsr07p163Tx4kWFhYW5up0aYdKkSYqOjlZkZKSrW6kxTpw4IT8/PwUFBWnYsGE6efKkq1uq1t577z2Fhobq0UcfVbNmzdStWzctX77c1W3VKCUlJXr99dc1duzY2y4gSYQk/IRlWYqPj9f//M//qGPHjq5up9o7evSo6tevLw8PD8XExGjTpk1q3769q9uq9tatW6fMzEwlJia6upUao2fPnkpJSdG2bdu0fPlyFRQUKDw8XOfOnXN1a9XWyZMntXjxYrVp00bbtm1TTEyMYmNj7b8Hiut755139O2332rMmDGubsUluN0GB5MmTdKWLVv00Ucf6e6773Z1O9VeSUmJcnNz9e2332rDhg1asWKF0tPTCUrXkJeXp9DQUG3fvl1dunSRJPXr14/bbTfo4sWLatWqlZ599lnFx8e7up1qyd3dXaGhodq3b599LDY2VgcPHlRGRoYLO6s5BgwYIHd3d23evNnVrbgEV5Jg98wzz+i9997Trl27CEiV5O7urtatWys0NFSJiYnq0qWL/va3v7m6rWrt8OHDOnv2rEJCQuTm5iY3Nzelp6dr4cKFcnNzc3hgFBWrV6+eOnXqpBMnTri6lWqrefPmTv/DEhwc7PDD6ajYF198oR07dmj8+PGubsVl+HYbZFmWnnnmGW3atEm7d+9WUFCQq1uqsSzLUnFxsavbqNYeeOABHT161GHsiSeeULt27fSnP/2Jb2xVUnFxsbKzsxUREeHqVqqt3r17O73O5LPPPlNAQICLOqpZVq9erWbNmik6OtrVrbgMIQmaNGmS3nzzTb377rtq0KCBCgoKJEleXl6qW7eui7urvqZPn66BAwfK399fFy5c0Lp167R7925t3brV1a1Vaw0aNHB63q1evXry9vbmObhrmDp1qh566CG1aNFCZ8+e1YsvvqiioiKNHj3a1a1VW3FxcQoPD9fcuXP12GOP6eOPP9ayZcu0bNkyV7dW7ZWXl2v16tUaPXq03Nxu36hw+35y2C1evFjSledCfmz16tW37cN6lXHmzBmNGjVK+fn58vLyUufOnbV161b179/f1a3hFvTll19q+PDhKiwsVNOmTdWrVy/t37+fqyLX0KNHD23atEkJCQmaM2eOgoKClJSUpBEjRri6tWpvx44dys3N1dixY13dikvx4DYAAIABD24DAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAJQLfXr109Tpkz5xeeZPXu2unbt+ovPc7OdOnVKNptNR44ccXUrwC2LkATgho0ZM0Y2m002m0116tSRj4+P+vfvr1WrVqm8vPymzLFx40a98MILN+VYV9lsNr3zzjsOY1OnTtXOnTtv6jwm33//vWbNmqV77rlHHh4eatKkiYYMGaJjx4794nMDqBpCEoAq+c1vfqP8/HydOnVKH3zwge677z5NnjxZDz74oC5fvlzl45aWlkqSGjdurAYNGtysditUv359eXt7/6JzFBcXKzIyUqtWrdILL7ygzz77TKmpqSorK1PPnj21f//+CvctKSn5xfr6JY8N3AoISQCqxMPDQ76+vrrrrrvUvXt3TZ8+Xe+++64++OADrVmzxl53/vx5Pfnkk2rWrJkaNmyo+++/X5988ol9+9XbXatWrVLLli3l4eEhy7IcbrclJCSoV69eTj107txZs2bNkiQdPHhQ/fv3V5MmTeTl5aW+ffsqMzPTXhsYGChJ+t3vfiebzWZf//Httm3btsnT01PffvutwzyxsbHq27evfX3fvn3q06eP6tatK39/f8XGxurixYsVnqukpCRlZGTo/fff12OPPaaAgADde++92rBhg4KDgzVu3Dhd/YWoMWPG6JFHHlFiYqL8/PzUtm1bSdLHH3+sbt26ydPTU6GhocrKynKa5/jx4xo0aJDq168vHx8fjRo1SoWFhfbt/fr109NPP634+Hg1adKE3xkEroOQBOCmuf/++9WlSxdt3LhRkmRZlqKjo1VQUKDU1FQdPnxY3bt31wMPPKCvv/7avt/nn3+uf/7zn9qwYYPxGZsRI0bowIED+s9//mMfO3bsmI4ePWr/sdILFy5o9OjR2rNnj/bv3682bdpo0KBBunDhgqQrIUq68sPN+fn59vUfi4yMVKNGjbRhwwb7WFlZmf75z3/a5zl69KgGDBig//3f/9W//vUvrV+/Xh999JGefvrpCs/Lm2++qf79+6tLly4O47Vq1VJcXJyOHz/uEBx37typ7OxspaWl6f3339fFixf14IMP6p577tHhw4c1e/ZsTZ061eFY+fn56tu3r7p27apDhw5p69atOnPmjB577DGHutdee01ubm7au3evli5dWmHPACRZAHCDRo8ebT388MPGbUOHDrWCg4Mty7KsnTt3Wg0bNrR++OEHh5pWrVpZS5cutSzLsmbNmmXVqVPHOnv2rENN3759rcmTJ9vXO3fubM2ZM8e+npCQYPXo0aPCHi9fvmw1aNDA2rx5s31MkrVp0yaHulmzZlldunSxr8fGxlr333+/fX3btm2Wu7u79fXXX1uWZVmjRo2ynnzySYdj7Nmzx6pVq5b1/fffG3vx9PR0+Cw/lpmZaUmy1q9fb1nWlXPr4+NjFRcX22uWLl1qNW7c2Lp48aJ9bPHixZYkKysry7Isy3ruueesqKgoh2Pn5eVZkqxPP/3Usqwr57Rr167GPgA440oSgJvKsizZbDZJ0uHDh/Xdd9/J29tb9evXty85OTkOV4UCAgLUtGnTax53xIgReuONN+xzrF271n51R5LOnj2rmJgYtW3bVl5eXvLy8tJ3332n3NzcG+p/xIgR2r17t7766itJ0htvvKFBgwbpzjvvtH+mNWvWOHyeAQMGqLy8XDk5OTc019XPIsl+ziSpU6dOcnd3t69nZ2erS5cuuuOOO+xjYWFhDsc5fPiwdu3a5dBXu3btJMnhXIeGht5wj8Dtys3VDQC4tWRnZysoKEiSVF5erubNm2v37t1OdY0aNbL/c7169a573N///veaNm2aMjMz9f333ysvL0/Dhg2zbx8zZoz++9//KikpSQEBAfLw8FBYWNgNP5x87733qlWrVlq3bp2eeuopbdq0SatXr7ZvLy8v1x/+8AfFxsY67duiRQvjMdu2bavjx48bt/373/+WJLVp08Y+9tPzcTVIXUt5ebkeeughvfzyy07bmjdvXuGxAVSMkATgpvnwww919OhRxcXFSZK6d++ugoICubm52R+Urqq7775bffr00RtvvKHvv/9ekZGR8vHxsW/fs2ePkpOTNWjQIElSXl6ew0PLklSnTh2VlZVdd67f//73euONN3T33XerVq1aio6Otm/r3r27jh07ptatW1e692HDhmnGjBn65JNPHJ5LKi8v11//+le1b9/e6XmlH2vfvr3+8Y9/6Pvvv1fdunUlyekbcd27d9eGDRsUGBgoNzf+aAduBm63AaiS4uJiFRQU6PTp08rMzNTcuXP18MMP68EHH9Tjjz8u6cqD0GFhYXrkkUe0bds2nTp1Svv27dPMmTN16NChG55zxIgRWrdund566y2NHDnSYVvr1q31j3/8Q9nZ2Tpw4IBGjBhhDxRXBQYGaufOnSooKNA333xzzXkyMzP15z//WUOGDJGnp6d925/+9CdlZGRo0qRJOnLkiE6cOKH33ntPzzzzTIXHi4uL07333quHHnpIb731lnJzc3Xw4EENHjxY2dnZWrlypcPttp/6/e9/r1q1amncuHE6fvy4UlNTNX/+fIeaSZMm6euvv9bw4cP18ccf6+TJk9q+fbvGjh1bqWAIwBkhCUCVbN26Vc2bN1dgYKB+85vfaNeuXVq4cKHeffdd1a5dW9KV52xSU1PVp08fjR07Vm3bttWwYcN06tQph6tAlfXoo4/q3LlzunTpkh555BGHbatWrdI333yjbt26adSoUYqNjVWzZs0cav7yl78oLS1N/v7+6tatW4XztGnTRj169NC//vUvh+eepCuvHUhPT9eJEycUERGhbt266bnnnnO4pfVTnp6e+vDDDzV69GhNnz5drVu31m9+8xvVrl1b+/fvN77e4Mfq16+vzZs36/jx4+rWrZtmzJjhdFvNz89Pe/fuVVlZmQYMGKCOHTtq8uTJ8vLyUq1a/FEPVIXNqszNbgAAgNsM/3sBAABgQEgCAAAwICQBAAAYEJIAAAAMCEkAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAIAADAgJAEAABgQkgAAAAz+P3HuSCfdl1ZeAAAAAElFTkSuQmCC", + "text/latex": [ + "$\\displaystyle v_{1}^{2} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{1}^{2}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }}$" + ], "text/plain": [ - "
" + "v_1**2*Subs(Derivative(G(_xi_1, x_2, x_3), (_xi_1, 2)), _xi_1, x_1)" ] }, + "execution_count": 80, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "plt.bar([i for i in range(n_init, num_derivs)], check)\n", - "plt.ylabel('Flops')\n", - "plt.xlabel('Derivative Order')\n", - "plt.title(\"Helmholtz 2D\")" + "sp.diff(G(x_1+v_1*t,x_2,x_3), t, 2).subs(t, 0)" ] }, { From abfc946c0f6e6ae04005bd324c408834ac395bde Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 2 Mar 2025 20:10:47 -0500 Subject: [PATCH 146/193] Added code to compute taylor recurrence --- sumpy/recurrence_qbx.py | 53 +++++-- test/gridfree_taylor_recurrence.ipynb | 206 ++++++++++++++++++++++++-- test/test_recurrence_qbx.py | 2 +- 3 files changed, 242 insertions(+), 19 deletions(-) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index c81bbe448..00a1c4476 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -39,7 +39,7 @@ import numpy as np import sympy as sp -from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence +from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence, get_taylor_recurrence # ================ Transform/Rotate ================= @@ -98,14 +98,38 @@ def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, # ------------ 5. Compute recurrence n_initial, order, recurrence = get_processed_and_shifted_recurrence(pde) + t_order, t_recurrence = get_taylor_recurrence(pde) + t_order += 2 # ------------ 6. Set order p = 5 n_p = sources.shape[1] storage = [np.zeros((n_p, n_p))] * order + storage_taylor = [np.zeros((n_p, n_p))] * t_order s = sp.Function("s") n = sp.symbols("n") + def generate_lamb_expr_taylor(i, t_order): + arg_list_taylor = [] + for j in range(t_order, 0, -1): + # pylint: disable-next=not-callable + arg_list_taylor.append(s(i-j)) + for j in range(1, ndim): + arg_list_taylor.append(var[j]) + + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + + if i < t_order: + lamb_expr_symb = lamb_expr_symb_deriv.subs(var[0], 0) + else: + lamb_expr_symb = t_recurrence.subs(n, i) + + print(lamb_expr_symb, arg_list_taylor) + + return sp.lambdify(arg_list_taylor, lamb_expr_symb) + def generate_lamb_expr(i, n_initial): arg_list = [] for j in range(order, 0, -1): @@ -117,31 +141,42 @@ def generate_lamb_expr(i, n_initial): lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) - + if i < n_initial: lamb_expr_symb = lamb_expr_symb_deriv else: lamb_expr_symb = recurrence.subs(n, i) #print("=============== ORDER = " + str(i)) #print(lamb_expr_symb) - return sp.lambdify(arg_list, lamb_expr_symb), sp.lambdify(arg_list, lamb_expr_symb_deriv) + return sp.lambdify(arg_list, lamb_expr_symb) #, sp.lambdify(arg_list, lamb_expr_symb_deriv) interactions = 0 coord = [cts_r_s[j] for j in range(ndim)] + coord_taylor = [cts_r_s[j] for j in range(1,ndim)] for i in range(p+1): - lamb_expr, true_lamb_expr = generate_lamb_expr(i, n_initial) + #lamb_expr, true_lamb_expr = generate_lamb_expr(i, n_initial) + lamb_expr = generate_lamb_expr(i, n_initial) + lamb_expr_taylor = generate_lamb_expr_taylor(i, t_order) + + a = [*storage, *coord] + b = [*storage_taylor[-t_order:], *coord_taylor] s_new = lamb_expr(*a) - s_new_true = true_lamb_expr(*a) - arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) - print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) - print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], - "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) + t_new = lamb_expr_taylor(*b) + #s_new_true = true_lamb_expr(*a) + #arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) + #print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) + #print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], + # "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) + interactions += s_new * radius**i/math.factorial(i) storage.pop(0) storage.append(s_new) + storage_taylor.append(t_new) exp_res = (interactions * strengths[None, :]).sum(axis=1) + print(coord_taylor) + print(storage_taylor) return exp_res diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb index b63be384f..2799429ea 100644 --- a/test/gridfree_taylor_recurrence.ipynb +++ b/test/gridfree_taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -81,7 +81,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -97,22 +97,210 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "(-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_recurrence = get_taylor_recurrence(laplace2d)[1]\n", + "t_recurrence" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "coord_dict = {var[0]: np.random.rand(), var[1]: np.random.rand()}" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "def eval_taylor_recurrence(deriv_order, taylor_order=4):\n", + " terms_to_compute = taylor_order + deriv_order\n", + " exp = 0\n", + " for i in range(taylor_order):\n", + " exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i\n", + " return exp" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{10 x_{0}^{3} s{\\left(4 \\right)}}{3 x_{1}^{2}} + \\frac{6 x_{0}^{2} s{\\left(3 \\right)}}{x_{1}^{2}} + \\frac{6 x_{0} s{\\left(2 \\right)}}{x_{1}^{2}} + \\frac{2 s{\\left(1 \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "10*x0**3*s(4)/(3*x1**2) + 6*x0**2*s(3)/x1**2 + 6*x0*s(2)/x1**2 + 2*s(1)/x1**2" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eval_taylor_recurrence(3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{x_{0}^{3} \\left(- 5 n + \\left(n + 4\\right)^{2} - 14\\right) s{\\left(n + 1 \\right)}}{6 x_{1}^{2}} + \\frac{x_{0}^{2} \\left(- 5 n + \\left(n + 3\\right)^{2} - 9\\right) s{\\left(n \\right)}}{2 x_{1}^{2}} + \\frac{x_{0} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) s{\\left(n - 1 \\right)}}{x_{1}^{2}} + \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "x0**3*(-5*n + (n + 4)**2 - 14)*s(n + 1)/(6*x1**2) + x0**2*(-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2) + x0*(-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eval_taylor_recurrence(n).subs(s(n+1), )" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{x_{0}^{3} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) \\left(- 5 n + \\left(n + 4\\right)^{2} - 14\\right) s{\\left(n - 1 \\right)}}{6 x_{1}^{4}} + \\frac{x_{0}^{2} \\left(- 5 n + \\left(n + 3\\right)^{2} - 9\\right) s{\\left(n \\right)}}{2 x_{1}^{2}} + \\frac{x_{0} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) s{\\left(n - 1 \\right)}}{x_{1}^{2}} + \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "x0**3*(-5*n + (n + 2)**2 - 4)*(-5*n + (n + 4)**2 - 14)*s(n - 1)/(6*x1**4) + x0**2*(-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2) + x0*(-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eval_taylor_recurrence(n).subs(s(n+1), t_recurrence.subs(n,n+1))" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\log{\\left(\\sqrt{x_{1}^{2}} \\right)}$" + ], + "text/plain": [ + "log(sqrt(x1**2))" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "derivs_lap[0].subs(var[0],0)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0$" + ], + "text/plain": [ + "0" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "derivs_lap[1].subs(var[0],0)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{1}{x_{1}^{2}}$" + ], + "text/plain": [ + "x1**(-2)" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "derivs_lap[2].subs(var[0],0)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle 0$" + ], "text/plain": [ - "(2, (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2)" + "0" ] }, - "execution_count": 6, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "get_taylor_recurrence(laplace2d)" + "t_recurrence.subs(n, 2)" ] }, { diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 7651d6de1..70e0837c4 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -294,7 +294,7 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [8] +orders = [9] resolutions = range(200, 800, 200) err_mat = _construct_laplace_axis_2d(orders, resolutions) for i in range(len(orders)): From 4cdb8959fdd642bc08c4702bdc3a8af3f61dde7f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 11 Mar 2025 18:32:07 -0500 Subject: [PATCH 147/193] Code needs complete overhaul w/respect to off-axis buisness --- sumpy/recurrence.py | 20 ++- sumpy/recurrence_qbx.py | 31 ++++- test/gridfree_taylor_recurrence.ipynb | 183 +++++++------------------- test/test_recurrence_qbx.py | 2 +- test/testing_pde_to_ode.ipynb | 64 ++++----- 5 files changed, 126 insertions(+), 174 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index afec6c5df..fb55b7f1c 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -418,7 +418,6 @@ def get_shifted_recurrence_exp_from_pde(pde: LinearPDESystemOperator) -> sp.Expr return r_ret, (max(idx_l)+1-min(idx_l)) - def get_taylor_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: r""" A function that takes in as input a pde and outputs a SHIFTED @@ -428,6 +427,25 @@ def get_taylor_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: r_exp = get_shifted_recurrence_exp_from_pde(pde)[0].subs(var[0], 0) return process_recurrence_relation(r_exp) +def eval_taylor_recurrence(pde, deriv_order, taylor_order=4): + t_recurrence = get_taylor_recurrence(pde)[1] + var = _make_sympy_vec("x", 2) + n = sp.symbols("n") + exp = 0 + for i in range(taylor_order): + exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i + return exp + +def eval_taylor_recurrence_laplace_processed(deriv_order): + from sumpy.expansion.diff_op import laplacian,make_identity_diff_op + #HARDCODED TO LAPLACE 2D!!!!! + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + n = sp.symbols("n") + s = sp.Function("s") + t_recurrence = get_taylor_recurrence(laplace2d)[1] + return eval_taylor_recurrence(laplace2d, n, taylor_order=4).subs(s(n+1), t_recurrence.subs(n,n+1)).subs(n, deriv_order) + def shift_recurrence(r: sp.Expr) -> sp.Expr: r""" A function that "shifts" the recurrence so it's center is placed diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 00a1c4476..47e0c69b3 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -39,7 +39,7 @@ import numpy as np import sympy as sp -from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence, get_taylor_recurrence +from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence, get_taylor_recurrence, eval_taylor_recurrence_laplace_processed # ================ Transform/Rotate ================= @@ -126,7 +126,7 @@ def generate_lamb_expr_taylor(i, t_order): else: lamb_expr_symb = t_recurrence.subs(n, i) - print(lamb_expr_symb, arg_list_taylor) + #print(lamb_expr_symb, arg_list_taylor) return sp.lambdify(arg_list_taylor, lamb_expr_symb) @@ -163,17 +163,40 @@ def generate_lamb_expr(i, n_initial): b = [*storage_taylor[-t_order:], *coord_taylor] s_new = lamb_expr(*a) t_new = lamb_expr_taylor(*b) + storage_taylor.append(t_new) + + interactions += s_new * radius**i/math.factorial(i) + mask_off_axis = cts_r_s[1]/cts_r_s[0] > 1 + + if i > 3: + t_expr = eval_taylor_recurrence_laplace_processed(i) + arg_list_1 = [] + for j in range(2, -1, -1): + # pylint: disable-next=not-callable + arg_list_1.append(s(i-j)) + for j in range(ndim): + arg_list_1.append(var[j]) + f_t_expr = sp.lambdify(arg_list_1, t_expr) + t_new_true = f_t_expr(*[*storage_taylor[-3:], *coord]) * radius**i/math.factorial(i) + interactions[mask_off_axis] = t_new_true[mask_off_axis] + + #s_new_true = true_lamb_expr(*a) #arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) #print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) #print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], # "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) - interactions += s_new * radius**i/math.factorial(i) + + + + #Gives the coordinates where we need an off-axis recurrence + + storage.pop(0) storage.append(s_new) - storage_taylor.append(t_new) + exp_res = (interactions * strengths[None, :]).sum(axis=1) print(coord_taylor) diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb index 2799429ea..e54f38f7d 100644 --- a/test/gridfree_taylor_recurrence.ipynb +++ b/test/gridfree_taylor_recurrence.ipynb @@ -20,7 +20,7 @@ " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence, process_recurrence_relation, get_taylor_recurrence\n", + "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence, process_recurrence_relation, get_taylor_recurrence, eval_taylor_recurrence_laplace_processed\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -35,7 +35,30 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{60 x_{0}^{3} s{\\left(3 \\right)}}{x_{1}^{4}} + \\frac{10 x_{0}^{2} s{\\left(4 \\right)}}{x_{1}^{2}} + \\frac{12 x_{0} s{\\left(3 \\right)}}{x_{1}^{2}} + \\frac{6 s{\\left(2 \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "60*x0**3*s(3)/x1**4 + 10*x0**2*s(4)/x1**2 + 12*x0*s(3)/x1**2 + 6*s(2)/x1**2" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eval_taylor_recurrence_laplace_processed(4)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -63,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -81,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -97,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -109,7 +132,7 @@ "(-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" ] }, - "execution_count": 10, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -121,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -130,12 +153,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def eval_taylor_recurrence(deriv_order, taylor_order=4):\n", - " terms_to_compute = taylor_order + deriv_order\n", " exp = 0\n", " for i in range(taylor_order):\n", " exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i\n", @@ -144,171 +166,60 @@ }, { "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{10 x_{0}^{3} s{\\left(4 \\right)}}{3 x_{1}^{2}} + \\frac{6 x_{0}^{2} s{\\left(3 \\right)}}{x_{1}^{2}} + \\frac{6 x_{0} s{\\left(2 \\right)}}{x_{1}^{2}} + \\frac{2 s{\\left(1 \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "10*x0**3*s(4)/(3*x1**2) + 6*x0**2*s(3)/x1**2 + 6*x0*s(2)/x1**2 + 2*s(1)/x1**2" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "eval_taylor_recurrence(3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{x_{0}^{3} \\left(- 5 n + \\left(n + 4\\right)^{2} - 14\\right) s{\\left(n + 1 \\right)}}{6 x_{1}^{2}} + \\frac{x_{0}^{2} \\left(- 5 n + \\left(n + 3\\right)^{2} - 9\\right) s{\\left(n \\right)}}{2 x_{1}^{2}} + \\frac{x_{0} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) s{\\left(n - 1 \\right)}}{x_{1}^{2}} + \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "x0**3*(-5*n + (n + 4)**2 - 14)*s(n + 1)/(6*x1**2) + x0**2*(-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2) + x0*(-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "eval_taylor_recurrence(n).subs(s(n+1), )" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{x_{0}^{3} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) \\left(- 5 n + \\left(n + 4\\right)^{2} - 14\\right) s{\\left(n - 1 \\right)}}{6 x_{1}^{4}} + \\frac{x_{0}^{2} \\left(- 5 n + \\left(n + 3\\right)^{2} - 9\\right) s{\\left(n \\right)}}{2 x_{1}^{2}} + \\frac{x_{0} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) s{\\left(n - 1 \\right)}}{x_{1}^{2}} + \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "x0**3*(-5*n + (n + 2)**2 - 4)*(-5*n + (n + 4)**2 - 14)*s(n - 1)/(6*x1**4) + x0**2*(-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2) + x0*(-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "eval_taylor_recurrence(n).subs(s(n+1), t_recurrence.subs(n,n+1))" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\log{\\left(\\sqrt{x_{1}^{2}} \\right)}$" - ], - "text/plain": [ - "log(sqrt(x1**2))" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs_lap[0].subs(var[0],0)" - ] - }, - { - "cell_type": "code", - "execution_count": 42, + "execution_count": 9, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0$" - ], - "text/plain": [ - "0" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "derivs_lap[1].subs(var[0],0)" + "def eval_taylor_recurrence_laplace_processed(deriv_order):\n", + " #HARDCODED TO LAPLACE 2D!!!!!\n", + " return eval_taylor_recurrence(n, taylor_order=4).subs(s(n+1), t_recurrence.subs(n,n+1)).subs(n, deriv_order)" ] }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\frac{1}{x_{1}^{2}}$" + "$\\displaystyle \\frac{20 x_{0}^{3} s{\\left(2 \\right)}}{x_{1}^{4}} + \\frac{6 x_{0}^{2} s{\\left(3 \\right)}}{x_{1}^{2}} + \\frac{6 x_{0} s{\\left(2 \\right)}}{x_{1}^{2}} + \\frac{2 s{\\left(1 \\right)}}{x_{1}^{2}}$" ], "text/plain": [ - "x1**(-2)" + "20*x0**3*s(2)/x1**4 + 6*x0**2*s(3)/x1**2 + 6*x0*s(2)/x1**2 + 2*s(1)/x1**2" ] }, - "execution_count": 44, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "derivs_lap[2].subs(var[0],0)" + "eval_taylor_recurrence_laplace_processed(3)" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 0$" + "$\\displaystyle \\frac{x_{0}^{3} \\left(- 5 n + \\left(n + 4\\right)^{2} - 14\\right) s{\\left(n + 1 \\right)}}{6 x_{1}^{2}} + \\frac{x_{0}^{2} \\left(- 5 n + \\left(n + 3\\right)^{2} - 9\\right) s{\\left(n \\right)}}{2 x_{1}^{2}} + \\frac{x_{0} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) s{\\left(n - 1 \\right)}}{x_{1}^{2}} + \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" ], "text/plain": [ - "0" + "x0**3*(-5*n + (n + 4)**2 - 14)*s(n + 1)/(6*x1**2) + x0**2*(-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2) + x0*(-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" ] }, - "execution_count": 45, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "t_recurrence.subs(n, 2)" + "eval_taylor_recurrence(n, taylor_order=4)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 70e0837c4..a2151eb09 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -294,7 +294,7 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [9] +orders = [10] resolutions = range(200, 800, 200) err_mat = _construct_laplace_axis_2d(orders, resolutions) for i in range(len(orders)): diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index 894c5f0fe..502ac9820 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -49,7 +49,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -72,7 +72,7 @@ "Poly((x0**3 + x0*x1**2)*(s(n + 2)) + (3*n*x0**2 + n*x1**2 + x0**2 - x1**2)*(s(n + 1)) + (3*n**2*x0 - n*x0)*(s(n)) + (n**3 - 2*n**2 + n)*(s(n - 1)), s(n + 2), s(n + 1), s(n), s(n - 1), domain='ZZ[x0,n,x1]')" ] }, - "execution_count": 7, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -85,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -103,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -114,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -124,21 +124,21 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "0.013469934463500977\n", - "0.04595208168029785\n", - "0.08181095123291016\n", - "0.17072415351867676\n", - "0.10633707046508789\n", - "0.22766709327697754\n", - "0.45116114616394043\n", - "1.0443289279937744\n" + "0.005514860153198242\n", + "0.013126850128173828\n", + "0.05279994010925293\n", + "0.15495896339416504\n", + "0.14414215087890625\n", + "0.3234570026397705\n", + "0.5973870754241943\n", + "1.3964860439300537\n" ] } ], @@ -153,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -164,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -213,13 +213,13 @@ "Text(0.5, 1.0, 'Helmholtz 2D')" ] }, - "execution_count": 14, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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Cws1btw43X333depUgAAUF+YGm4WLlyoSZMmafLkyQoKClJycrL8/Py0ePHiK457/PHHNXr0aIWFhV2nSgEAQH1hWri5cOGCsrKyFBkZ6dQeGRmpXbt2VTouJSVF//73vzV79uwqnaekpERFRUVOGwAAsC7Tws2pU6dUWlpa7r1U3t7eKigoqHDMkSNHNGPGDK1evVpublVbC52UlCQvLy/H5ufnd821AwCAusvU21KSZLPZnPYNwyjXJkmlpaUaPXq05s6dW61FzYmJiSosLHRseXl511wzAACou6r1U3BXat26tRo2bFhulubkyZMVvmX8zJkzyszMVHZ2tqZOnSrpp4cKGoYhNzc3bdmyRYMHDy43zm63y263185FAACAOse0mRt3d3eFhIQoPT3dqT09PV39+vUr19/T01MHDhzQ/v37HVtsbKy6du2q/fv364477rhepQMAgDrMtJkbSUpISNDYsWMVGhqqsLAwLV26VLm5uYqNjZX00y2lEydOaNWqVWrQoIG6devmNL5Nmzby8PAo1w4AAG5cpoabUaNG6fTp05o3b57y8/PVrVs3paWlyd/fX5KUn59/1WfeAAAA/JzNMAzD7CKup6KiInl5eamwsFCenp5mlwMAqIGAGR+aXUKNHJ8fXa3+N8p1VkV1/n6b/mspAAAAVyLcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAASyHcAAAAS3EzuwAAgOsEzPjQ7BJq5Pj8aLNLgIUwcwMAACyFcAMAACyFcAMAACyFcAMAACzF9HCzaNEiBQYGysPDQyEhIcrIyKi077p16zR06FDdfPPN8vT0VFhYmDZv3nwdqwUAAHWdqeEmNTVV8fHxmjVrlrKzsxUeHq6oqCjl5uZW2P/jjz/W0KFDlZaWpqysLEVERGjEiBHKzs6+zpUDAIC6ytRws3DhQk2aNEmTJ09WUFCQkpOT5efnp8WLF1fYPzk5Wb/97W/Vp08fde7cWS+++KI6d+6sDRs2XOfKAQBAXWVauLlw4YKysrIUGRnp1B4ZGaldu3ZV6RhlZWU6c+aMWrZsWWmfkpISFRUVOW0AAMC6TAs3p06dUmlpqby9vZ3avb29VVBQUKVjvPzyyyouLtbIkSMr7ZOUlCQvLy/H5ufnd011AwCAus30BcU2m81p3zCMcm0VWbNmjebMmaPU1FS1adOm0n6JiYkqLCx0bHl5eddcMwAAqLtMe/1C69at1bBhw3KzNCdPniw3m/NLqampmjRpkt5++20NGTLkin3tdrvsdvs11wsAAOoH02Zu3N3dFRISovT0dKf29PR09evXr9Jxa9as0YQJE/T3v/9d0dG8iwQAADgz9cWZCQkJGjt2rEJDQxUWFqalS5cqNzdXsbGxkn66pXTixAmtWrVK0k/BZty4cfrzn/+sO++80zHr07hxY3l5eZl2HQAAoO4wNdyMGjVKp0+f1rx585Sfn69u3bopLS1N/v7+kqT8/HynZ94sWbJEly5d0pQpUzRlyhRH+/jx47Vy5crrXT4AAKiDTA03kvTkk0/qySefrPCzXwaW7du3135BAACgXjP911IAAACuRLgBAACWQrgBAACWYvqaGwDmCpjxodkl1Njx+TwOAkB5zNwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLcTO7AAC4HgJmfGh2CTVyfH602SUA9Q4zNwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFJ4zg1wBTwbBQDqH2ZuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApfBuKdQI71wCANRVzNwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLIdwAAABLMf31C4sWLdIf//hH5efn6/bbb1dycrLCw8Mr7b9jxw4lJCTo4MGD8vX11W9/+1vFxsZex4qvjNcSAABgLlNnblJTUxUfH69Zs2YpOztb4eHhioqKUm5uboX9jx07puHDhys8PFzZ2dmaOXOm4uLitHbt2utcOQAAqKtMDTcLFy7UpEmTNHnyZAUFBSk5OVl+fn5avHhxhf3feOMNdejQQcnJyQoKCtLkyZM1ceJE/elPf7rOlQMAgLrKtHBz4cIFZWVlKTIy0qk9MjJSu3btqnDM7t27y/UfNmyYMjMzdfHixVqrFQAA1B+mrbk5deqUSktL5e3t7dTu7e2tgoKCCscUFBRU2P/SpUs6deqUfHx8yo0pKSlRSUmJY7+wsFCSVFRUdK2XUKGyknO1ctzaVt3vg+us26pznfX1GqUb4zr5d7ZiXGfdVht/Yy8f0zCMq/Y1fUGxzWZz2jcMo1zb1fpX1H5ZUlKS5s6dW67dz8+vuqVamley2RVcH1yntdwI13kjXKPEdVpNbV7nmTNn5OXldcU+poWb1q1bq2HDhuVmaU6ePFluduaytm3bVtjfzc1NrVq1qnBMYmKiEhISHPtlZWX67rvv1KpVqyuGqLqmqKhIfn5+ysvLk6enp9nl1Bqu0zpuhGuUuE6r4TrrLsMwdObMGfn6+l61r2nhxt3dXSEhIUpPT9evfvUrR3t6erruu+++CseEhYVpw4YNTm1btmxRaGioGjVqVOEYu90uu93u1NaiRYtrK95Enp6e9eZfxGvBdVrHjXCNEtdpNVxn3XS1GZvLTP21VEJCgpYtW6YVK1bo0KFDmjZtmnJzcx3PrUlMTNS4ceMc/WNjY/XVV18pISFBhw4d0ooVK7R8+XJNnz7drEsAAAB1jKlrbkaNGqXTp09r3rx5ys/PV7du3ZSWliZ/f39JUn5+vtMzbwIDA5WWlqZp06bp9ddfl6+vr1599VU9+OCDZl0CAACoY0xfUPzkk0/qySefrPCzlStXlmsbOHCg9u3bV8tV1T12u12zZ88ud4vNarhO67gRrlHiOq2G67QGm1GV31QBAADUE7w4EwAAWArhBgAAWArhBgAAWArhBgAAWArhpp5YtGiRAgMD5eHhoZCQEGVkZJhdkkt9/PHHGjFihHx9fWWz2fTee++ZXZLLJSUlqU+fPmrevLnatGmj+++/X4cPHza7LJdbvHixevTo4Xg4WFhYmDZu3Gh2WbUuKSlJNptN8fHxZpfiUnPmzJHNZnPa2rZta3ZZLnfixAmNGTNGrVq1UpMmTdSrVy9lZWWZXZZLBQQElPtnabPZNGXKFLNLcznCTT2Qmpqq+Ph4zZo1S9nZ2QoPD1dUVJTTM4Dqu+LiYvXs2VOvvfaa2aXUmh07dmjKlCnas2eP0tPTdenSJUVGRqq4uNjs0lyqffv2mj9/vjIzM5WZmanBgwfrvvvu08GDB80urdbs3btXS5cuVY8ePcwupVbcfvvtys/Pd2wHDhwwuySX+v7779W/f381atRIGzduVE5Ojl5++eV6/TT7iuzdu9fpn2N6erok6eGHHza5slpgoM7r27evERsb69R26623GjNmzDCpotolyXj33XfNLqPWnTx50pBk7Nixw+xSat1NN91kLFu2zOwyasWZM2eMzp07G+np6cbAgQONp59+2uySXGr27NlGz549zS6jVv3ud78z7rrrLrPLuO6efvppo2PHjkZZWZnZpbgcMzd13IULF5SVlaXIyEin9sjISO3atcukquAKhYWFkqSWLVuaXEntKS0t1VtvvaXi4mKFhYWZXU6tmDJliqKjozVkyBCzS6k1R44cka+vrwIDA/XII4/o6NGjZpfkUuvXr1doaKgefvhhtWnTRsHBwfrLX/5idlm16sKFC/rb3/6miRMn1quXSFcV4aaOO3XqlEpLS8u9Kd3b27vcG9JRfxiGoYSEBN11113q1q2b2eW43IEDB9SsWTPZ7XbFxsbq3Xff1W233WZ2WS731ltvad++fUpKSjK7lFpzxx13aNWqVdq8ebP+8pe/qKCgQP369dPp06fNLs1ljh49qsWLF6tz587avHmzYmNjFRcXp1WrVpldWq1577339MMPP2jChAlml1IrTH/9Aqrml8naMAxLpu0bxdSpU/XZZ5/pk08+MbuUWtG1a1ft379fP/zwg9auXavx48drx44dlgo4eXl5evrpp7VlyxZ5eHiYXU6tiYqKcvzv7t27KywsTB07dtSbb76phIQEEytznbKyMoWGhurFF1+UJAUHB+vgwYNavHix08ubrWT58uWKioqSr6+v2aXUCmZu6rjWrVurYcOG5WZpTp48WW42B/XDU089pfXr12vbtm1q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", + "image/png": "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t26dgoKClJeXp6SkJBUUFMjHx0dRUVE2bQEAAJzJ7kk6Xl5eGjduXJH1PXv21G+//aadO3fq+PHj8vf3V58+feTn51ehQgEAABypzCGoT58+GjBggPr166devXrJy8urxLaurq7q06ePQwoEAACoDGUOQTt27NDOnTv1z3/+Ux4eHurevbv69++v/v37q2fPnnJ3d6/MOgEAAByqzHOCBg0apDp16sgwDGVnZ2vLli2aM2eO+vfvr3r16unWW2/VSy+9pJ07dyo/P78yawYAAKiwMo8EbdiwQfn5+frxxx+1adMmxcbGaseOHcrMzNTFixf13XffadOmTZIkHx8f9enTxzpSFBoaKhcXu+dgAwAAOFy5Jka7urqqR48e6tGjh2bOnKm8vDz98MMPio2N1aZNm7Rz505lZWUpMzNTGzZs0MaNGyVJvr6+uvnmmzVgwABNmzatUk4EAACgPCzGH999UQG5ubn64YcftGnTJm3atEm7du3SxYsX/3cwi6XGXCpLS0uTv7+/UlNTubMNAGqoVjNq5jsrj748rFztzXKeZVGev98OvUbl7u6u3r17629/+5u+/fZb/fjjj7r//vvl6urqyMMAAABUmENf5pWQkGC9NBYbG2t9YWrhYFOTJk0ceTgAAAC7VSgEHTt2zBp4Nm3apN9//13S/0JPixYt1LdvX+vStm3bilcMAADgAOUKQYmJiTYjPYmJiZL+F3patWplE3pCQkIcXzEAAIADlDkEtW7dWkePHpX0v9DTpk0bm9ATFBRUKUUCAAA4WplDUEJCgiwWi5o0aaLp06fr3nvvZY4PAACoscp1d5hhGEpKStJTTz2lgQMHavLkyfr444+VnJxcWfUBAABUijKPBB08eFCxsbGKjY3V5s2bdejQIR06dEiLFi2SJLVt21Z9+/ZVv3791LdvXzVr1qzSigYAAKioMoeg9u3bq3379po0aZIk6eeff7YJRb/88ot++eUXLV68WNLlOURXhqIWLVpUzhkAAADYwe5b5P8Yig4dOmQTig4fPqzDhw/rvffekySFhISoX79+1pAEAADgTA57WGKHDh3UoUMHPfroo5L+F4piYmK0du1aHTlyRAkJCYQgAABQLTj0idGSVFBQoLi4OOvzhLZv366CggJHHwYAAKBCKhyCDMPQ7t27rQ9Q3LZtmzIyMmy2S5K3t7d69+5d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xP2U9Xc+c+aM0blzZ+t+3d3dbV6b8fbbb5e6r7y8PGPq1Kk2tXl5eRkNGzY03NzcbNZv27bNpm9ZfyegMjESBFShlJQUpaSk6NSpU9ZbyXv06KFHH31Un376qU6cOHHVB8c1atRI33zzjb744guNGDFCQUFBys7O1sWLF9W8eXMNHTpUb731VrnuULLXfffdJ3d3d+vnki4nFXr55Ze1fPlydevWTd7e3srNzVWbNm307LPPau/evWrWrFmJfd3c3PTtt99q4sSJatWqlTIzM3Xs2DEdO3bMrkstV9bq4uJivWusNNOnT9fPP/+sadOm6YYbbpCXl5cuXLigunXrqmvXrvrrX/+qHTt2lDgadjWtW7fWDz/8oDVr1mjMmDG65pprrI8OaNmype666y69//77OnjwoF2Tof+oYcOG2rFjh1544QW1b99eLi4ucnNz02233aaYmBhNnjy51P6urq567bXXtGfPHj388MNq166dXF1dlZqaqvr166t3796aPXu24uPjK/RsKqCyWAyjgrMMAQAAaiBGggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCn9Pw62oG7ORwh4AAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -230,14 +230,14 @@ ], "source": [ "plt.bar([i for i in range(0, num_derivs)], timings)\n", - "plt.ylabel('Wall Time (s)')\n", - "plt.xlabel('Derivative Order')\n", - "plt.title(\"Helmholtz 2D\")" + "plt.ylabel('Wall Time (s)', fontsize=18)\n", + "plt.xlabel('Derivative Order', fontsize=18)\n", + "plt.title(\"Helmholtz 2D\", fontsize=18)" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -246,13 +246,13 @@ "Text(0.5, 1.0, 'Helmholtz 2D')" ] }, - "execution_count": 15, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHFCAYAAADmGm0KAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2MklEQVR4nO3de1hVZf7//9dWBMwDnkEMAU+FZwUzaBAxhdT65IymFh5KraE0Ar5OEx5GsybSLBmvPOYpZxp1GrPUSKUShhLNA5oj5Nh4gDHI0FJTA4X1+6PL/WvHjQJhG/T5uK59Xa17vde633tdpa/WWnstm2VZlgAAAOCglrMbAAAAqI4ISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGBCSAAAADAhJACpl1apVstls2rNnj3H9/fffLz8/v0rt+9FHH630tmXp27evOnfuXKX7tNlsmjlzpn05KytLM2fO1PHjx6tsjnfeeUcPP/yw2rVrp7p168rPz09RUVE6cuRIqVo/Pz/ZbDbZbDbVqlVLHh4eCggI0JgxY7Rt27Yq6wm4VRCSAKCKZGVl6fnnn6/SkDR79mxdvHhRU6dO1ZYtW/Tiiy8qMzNTPXv21KFDh0rV33PPPcrIyNCOHTu0fv16TZo0SceOHVNkZKSGDRumy5cvV1lvwM3OxdkNAADKtmnTJrVo0cJhrF+/fvLz89O8efO0bNkyh3WNGjXS3XffbV/u37+/Jk6cqJkzZ+r555/XtGnTNHv27F+ld6Cm40wSgF+NZVlauHChunfvrrp166px48YaNmyYjh49et1tbTabJk2apJUrV+qOO+5Q3bp1FRQUpJ07d8qyLL3yyivy9/dX/fr11a9fP3355ZfG/ezevVuhoaG67bbb1KZNG7388ssqKSlxqMnJydGoUaPUokULubm5KSAgQK+++mqpup9atWqVHnroIUlSeHi4/bLXqlWrlJqaal/++ed6lxV/HpAkydvbW7fffrtyc3Ovc9T+fzNnzlSnTp30+uuv64cffij3dsCtjJAE4BcpLi7WlStXSn0syypV+/vf/16xsbHq37+/3n33XS1cuFCHDh1SSEiIvv766+vOtXnzZi1btkwvv/yy1qxZo/Pnz2vw4MH6f//v/+nTTz/V66+/rqVLlyorK0tDhw4t1UN+fr6ioqI0atQobdy4UQMHDlRCQoL+9re/2Wu++eYbhYSEaNu2bXrhhRe0ceNG9e/fX5MnT9akSZPK7G3w4MF66aWXJEkLFixQRkaGMjIyNHjwYPXs2dO+fPWzevVq1alTR506dSrvobY7evSoTpw4UeFtH3jgAV28eLHM+8gA/IwFAJWwcuVKS9I1P76+vvb6jIwMS5L16quvOuwnNzfXqlu3rvXss8/ax8aOHeuwrWVZliTLy8vL+v777+1j7777riXJ6t69u1VSUmIfT0pKsiRZn3/+uX0sLCzMkmTt2rXLYb8dO3a0IiMj7cvPPfecse7JJ5+0bDabdfjwYYeeZsyYYV9+++23LUnW9u3byz5wlmV9/fXXVps2baxOnTpZ33777TVrf+7y5ctW3759rYYNG1o5OTkO63x9fa3BgweXue2iRYssSda6desqNCdwq+JMEoBfZPXq1dq9e3epz29+8xuHus2bN8tms2nUqFEOZ5y8vLzUrVs3paamXneu8PBw1atXz74cEBAgSRo4cKBsNlup8RMnTjhs7+XlpbvuusthrGvXrg51H3/8sTp27Fiq7tFHH5VlWfr444+v2+e1XLhwQYMHD9YPP/ygDz74QI0aNSr3tpZlafz48UpPT9fq1avl4+NTobktw9k9AGXjxm0Av0hAQICCgoJKjXt4eDjcM/P111/Lsix5enoa99OmTZvrztWkSROHZVdX12uO//zem6ZNm5bap5ubmy5dumRfPn36tPE+IW9vb/v6yrpy5YqGDRum//znP/rXv/5VoZBjWZYmTJigv/3tb3rzzTf14IMPVnj+q2Hw6ncBcG2EJAC/imbNmslmsyk9PV1ubm6l1pvGnKFp06bKy8srNf7VV19J+vF7VNYTTzyhjz76SMnJyerWrVu5t7sakFauXKnly5dr1KhRFZ7bsixt2rRJ9erVM4ZaAKVxuQ3Ar+L++++XZVk6efKkgoKCSn26dOni7BYlSffee6+ysrK0b98+h/HVq1fLZrMpPDy8zG2vBr2fnpm6atq0aVq5cqWWLVum/v37l7sfy7L0+OOPa+XKlVqyZIkee+yxcm/7U88//7yysrL0zDPPyN3dvVL7AG41nEkC8Ku455579MQTT+ixxx7Tnj171KdPH9WrV095eXn65JNP1KVLFz355JPOblNxcXFavXq1Bg8erFmzZsnX11fvv/++Fi5c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L3yUT3FxsdauXasLFy4oODjY2e3UCBMnTtTgwYPVv39/Z7dSYxw5ckTe3t7y9/fXyJEjdfToUWe3VK1t3LhRQUFBeuihh9SiRQv16NFDb7zxhrPbqlGKior0t7/9TePGjbvlApJESMLPWJal+Ph4/eY3v1Hnzp2d3U61d/DgQdWvX19ubm6Kjo7Whg0b1LFjR2e3Ve2tXbtW+/btU2JiorNbqTF69+6t1atXa+vWrXrjjTeUn5+vkJAQnT592tmtVVtHjx7VokWL1L59e23dulXR0dGKiYmxvw8U1/fuu+/qu+++06OPPursVpyCy21wMHHiRL3//vv65JNPdPvttzu7nWqvqKhIOTk5+u6777R+/XotW7ZMaWlpBKVryM3NVVBQkLZt26Zu3bpJkvr27cvltgq6cOGC2rZtq2effVbx8fHObqdacnV1VVBQkHbs2GEfi4mJ0e7du5WRkeHEzmqOyMhIubq6atOmTc5uxSk4kwS7p59+Whs3btT27dsJSOXk6uqqdu3aKSgoSImJierWrZv+8pe/OLutam3v3r06deqUAgMD5eLiIhcXF6WlpWn+/PlycXFxuGEUZatXr566dOmiI0eOOLuVaqtly5al/oclICDA4cXpKNuJEyf04YcfasKECc5uxWn4dRtkWZaefvppbdiwQampqfL393d2SzWWZVkqLCx0dhvV2r333quDBw86jD322GO688479cc//pFfbJVTYWGhsrOzFRoa6uxWqq177rmn1ONM/vOf/8jX19dJHdUsK1euVIsWLTR48GBnt+I0hCRo4sSJ+vvf/6733ntPDRo0UH5+viTJw8NDdevWdXJ31deUKVM0cOBA+fj46Pz581q7dq1SU1O1ZcsWZ7dWrTVo0KDU/W716tVT06ZNuQ/uGiZPnqwHHnhArVu31qlTp/Tiiy/q3LlzGjt2rLNbq7bi4uIUEhKil156ScOHD9dnn32mpUuXaunSpc5urdorKSnRypUrNXbsWLm43LpR4db95rBbtGiRpB/vC/mplStX3rI365XH119/rdGjRysvL08eHh7q2rWrtmzZogEDBji7NdyE/ve//+nhhx9WQUGBmjdvrrvvvls7d+7krMg19OrVSxs2bFBCQoJmzZolf39/JSUlKSoqytmtVXsffvihcnJyNG7cOGe34lTcuA0AAGDAjdsAAAAGhCQAAAADQhIAAIABIQkAAMCAkAQAAGBASAIAADAgJAEAABgQkgBUS3379lVsbOwNn2fmzJnq3r37DZ+nqh0/flw2m0379+93divATYuQBKDCHn30UdlsNtlsNtWpU0eenp4aMGCAVqxYoZKSkiqZ45133tELL7xQJfu6ymaz6d1333UYmzx5sj766KMqncfk0qVLmjFjhu644w65ubmpWbNmGjZsmA4dOnTD5wZQOYQkAJVy3333KS8vT8ePH9cHH3yg8PBwPfPMM7r//vt15cqVSu/38uXLkqQmTZqoQYMGVdVumerXr6+mTZve0DkKCwvVv39/rVixQi+88IL+85//KDk5WcXFxerdu7d27txZ5rZFRUU3rK8buW/gZkBIAlApbm5u8vLyUqtWrdSzZ09NmTJF7733nj744AOtWrXKXnf27Fk98cQTatGihRo2bKh+/frpwIED9vVXL3etWLFCbdq0kZubmyzLcrjclpCQoLvvvrtUD127dtWMGTMkSbt379aAAQPUrFkzeXh4KCwsTPv27bPX+vn5SZJ++9vfymaz2Zd/erlt69atcnd313fffecwT0xMjMLCwuzLO3bsUJ8+fVS3bl35+PgoJiZGFy5cKPNYJSUlKSMjQ5s3b9bw4cPl6+uru+66S+vXr1dAQIDGjx+vq2+IevTRRzVkyBAlJibK29tbHTp0kCR99tln6tGjh9zd3RUUFKTMzMxS82RlZWnQoEGqX7++PD09NXr0aBUUFNjX9+3bV5MmTVJ8fLyaNWvGewaB6yAkAagy/fr1U7du3fTOO+9IkizL0uDBg5Wfn6/k5GTt3btXPXv21L333qszZ87Yt/vyyy/1j3/8Q+vXrzfeYxMVFaVdu3bpv//9r33s0KFDOnjwoP1lpefPn9fYsWOVnp6unTt3qn379ho0aJDOnz8v6ccQJf344ua8vDz78k/1799fjRo10vr16+1jxcXF+sc//mGf5+DBg4qMjNTvfvc7ff7551q3bp0++eQTTZo0qczj8ve//10DBgxQt27dHMZr1aqluLg4ZWVlOQTHjz76SNnZ2UpJSdHmzZt14cIF3X///brjjju0d+9ezZw5U5MnT3bYV15ensLCwtS9e3ft2bNHW7Zs0ddff63hw4c71L355ptycXHRp59+qiVLlpTZMwBJFgBU0NixY60HH3zQuG7EiBFWQECAZVmW9dFHH1kNGza0fvjhB4eatm3bWkuWLLEsy7JmzJhh1alTxzp16pRDTVhYmPXMM8/Yl7t27WrNmjXLvpyQkGD16tWrzB6vXLliNWjQwNq0aZN9TJK1YcMGh7oZM2ZY3bp1sy/HxMRY/fr1sy9v3brVcnV1tc6cOWNZlmWNHj3aeuKJJxz2kZ6ebtWqVcu6dOmSsRd3d3eH7/JT+/btsyRZ69atsyzrx2Pr6elpFRYW2muWLFliNWnSxLpw4YJ9bNGiRZYkKzMz07Isy5o+fboVERHhsO/c3FxLknX48GHLsn48pt27dzf2AaA0ziQBqFKWZclms0mS9u7dq++//15NmzZV/fr17Z9jx445nBXy9fVV8+bNr7nfqKgovfXWW/Y51qxZYz+7I0mnTp1SdHS0OnToIA8PD3l4eOj7779XTk5OhfqPiopSamqqvvrqK0nSW2+9pUGDBqlx48b277Rq1SqH7xMZGamSkhIdO3asQnNd/S6S7MdMkrp06SJXV1f7cnZ2trp166bbbrvNPhYcHOywn71792r79u0Ofd15552S5HCsg4KCKtwjcKtycXYDAG4u2dnZ8vf3lySVlJSoZcuWSk1NLVXXqFEj+z/Xq1fvuvt95JFH9Nxzz2nfvn26dOmScnNzNXLkSPv6Rx99VN98842SkpLk6+srNzc3BQcHV/jm5Lvuuktt27bV2rVr9eSTT2rDhg1auXKlfX1JSYl+//vfKyYmptS2rVu3Nu6zQ4cOysrKMq774osvJEnt27e3j/38eFwNUtdSUlKiBx54QLNnzy61rmXLlmXuG0DZCEkAqszHH3+sgwcPKi4uTpLUs2dP5efny8XFxX6jdGXdfvvt6tOnj9566y1dunRJ/fv3l6enp319enq6Fi5cqEGDBkmScnNzHW5alqQ6deqouLj4unM98sgjeuutt3T77berVq1aGjx4sH1dz549dejQIbVr167cvY8cOVJTp07VgQMHHO5LKikp0bx589SxY8dS9yv9VMeOHfXXv/5Vly5dUt26dSWp1C/ievbsqfXr18vPz08uLvzRDlQFLrcBqJTCwkLl5+fr5MmT2rdvn1566SU9+OCDuv/++zVmzBhJP94IHRwcrCFDhmjr1q06fvy4duzYoWnTpmnPnj0VnjMqKkpr167V22+/rVGjRjmsa9eunf76178qOztbu3btUlRUlD1QXOXn56ePPvpI+fn5+vbbb685z759+/TnP/9Zw4YNk7u7u33dH//4R2VkZGjixInav3+/jhw5oo0bN+rpp58uc39xcXG666679MADD+jtt99WTk6Odu/eraFDhyo7O1vLly93uNz2c4888ohq1aql8ePHKysrS8nJyZo7d65DzcSJE3XmzBk9/PDD+uyzz3T06FFt27ZN48aNK1cwBFAaIQlApWzZskUtW7aUn5+f7rvvPm3fvl3z58/Xe++9p9q1a0v68T6b5ORk9enTR+PGjVOHDh00cuRIHT9+3OEsUHk99NBDOn36tC5evKghQ4Y4rFuxYoW+/fZb9ejRQ6NHj1ZMTIxatGjhUPPqq68qJSVFPj4+6tGjR5nztG/fXr169dLnn3/ucN+T9ONjB9LS0nTkyBGFhoaqR48emj59usMlrZ9zd3fXxx9/rLFjx2rKlClq166d7rvvPtWuXVs7d+40Pt7gp+rXr69NmzYpKytLPXr00NSpU0tdVvP29tann36q4uJiRUZGqnPnznrmmWfk4eGhWrX4ox6oDJtVnovdAAAAtxj+9wIAAMCAkAQAAGBASAIAADAgJAEAABgQkgAAAAwISQAAAAaEJAAAAANCEgAAgAEhCQAAwICQBAAAYEBIAgAAMCAkAQAAGPx/oT7T7YPzonUAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkoAAAHWCAYAAACIb6Y8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTx0lEQVR4nO3de1xVVf7/8ffhjhdQQcELKmqTlJcS1FBJrREzu9hXzcy0UmtIy4RsSq00p6Ipx8gSqLx1l8ruUkklpEkZipVFUyaKKah4ARXlun9/+OOMJ85GOIIH7PV8PM5jYu219/7sTTO8Z+111rYYhmEIAAAAVbg4uwAAAICGiqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEoF6kpqbKYrHIYrE45fyV505NTT3n5x4yZIgsFovmz59/zs8NoG4RlIDzzPz582scUHbu3Gntu3LlyvovDoqLi9P8+fO1devWc37uPXv2KD4+XmPHjlW3bt3k7e0tb29vBQcHa/z48fryyy+r3b8yAJ7+cXNzU8uWLdW5c2dFRkbqgQce0IYNG87RFQH1z83ZBQDAX0lcXJx27dqlzp0765JLLjln5929e7c6deqk01/v2aRJExmGoZ07d2rnzp1atWqVJk+erBdffFGurq6mx3J3d1erVq2sPx89elS7du3Srl27lJKSoqeeekohISFKSEjQ4MGD6/W6gPrGiBIA/AWUl5fLMAxdeeWVevnll7Vnzx4dP35cx44d008//aTrr79ekrR8+fIzPjIcMGCA8vLyrJ/jx4+rqKhIX3/9tWJiYuTj46OsrCwNHTpUiYmJ5+DqgPpDUAKAv4CWLVtq8+bN+vzzzzVp0iS1a9dOkuTi4qKLLrpI7733nq666ipJp0a9Tp48Wavje3t7a8CAAfrPf/6jH374Qb169ZJhGLr77ru1fv36Or8e4FwhKAE4o99//1333HOPQkJC1KxZMzVp0kQhISGaOXOmcnJyan28lStXymKxqHPnzpKk9evX69prr1WbNm3UtGlTXXrppVq2bJnNPmvWrNGwYcPUunVrNWnSRH379lVSUlKNznf06FE99NBD6t69u7y9veXn56drrrlG3377bbX7nTx5UnFxcRowYIBatmwpLy8vderUSZMmTar1HKPKuWO7du2SJN1+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16+vtn9aWppCQ0Pl5eWlLl26KDEx0Wb7kCFDZLFYqnxGjhxZn5cBAAAakUYRlJKSkjRz5kzNnTtXmZmZioiI0IgRI5STk2O3f3Z2tq6++mpFREQoMzNTc+bM0YwZM7R69Wprn3fffVe5ubnWz7Zt2+Tq6qqxY8eeq8sCAAANnMUwDMPZRZxJ//791adPHyUkJFjbQkJCNGrUKMXGxlbp/8ADD+jDDz9UVlaWtS0qKkrff/+90tPT7Z4jLi5OjzzyiHJzc9W0adMa1VVYWChfX18VFBTIx8enlleF+tL5wTXOLsEpdj7JaCgA1ERt/n43+BGlkpISbd68WZGRkTbtkZGR2rhxo9190tPTq/QfPny4MjIyVFpaanefZcuW6aabbqo2JBUXF6uwsNDmAwAAzl8NPijl5+ervLxcAQEBNu0BAQHKy8uzu09eXp7d/mVlZcrPz6/Sf9OmTdq2bZumTp1abS2xsbHy9fW1foKCgmp5NQAAoDFp8EGpksVisfnZMIwqbWfqb69dOjWa1KNHD/Xr16/aGmbPnq2CggLrZ/fu3TUtHwAANEJuzi7gTPz9/eXq6lpl9Gj//v1VRo0qBQYG2u3v5uYmPz8/m/aioiKtWrVKCxYsOGMtnp6e8vT0rOUVAACAxqrBjyh5eHgoNDRUKSkpNu0pKSkaMGCA3X3Cw8Or9F+7dq3CwsLk7u5u0/7WW2+puLhYt9xyS90WDgAAGr0GH5QkKSYmRkuXLtXy5cuVlZWl6Oho5eTkKCoqStKpR2KTJk2y9o+KitKuXbsUExOjrKwsLV++XMuWLdOsWbOqHHvZsmUaNWpUlZEmAACABv/oTZLGjRungwcPasGCBcrNzVWPHj2UnJysTp06SZJyc3Nt1lQKDg5WcnKyoqOjtWTJErVr106LFy/W6NGjbY7766+/asOGDVq7du05vR4AANA4NIp1lBoq1lFqmFhHCQBQnfNqHSUAAABnISgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgB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1eYSAABAI9Pgg5K/v79cXV2rjB7t37+/yqhRpcDAQLv93dzc5OfnZ9O+cOFCPfHEE1q7dq169epVbS2zZ89WQUGB9bN7924HrggAADQWDT4oeXh4KDQ0VCkpKTbtKSkpGjBggN19wsPDq/Rfu3atwsLC5O7ubm17+umn9a9//UuffvqpwsLCzliLp6enfHx8bD4AAOD81eDnKElSTEyMJk6cqLCwMIWHh+vFF19UTk6OoqKiJJ0a6dmzZ49eeeUVSVJUVJSef/55xcTE6I477lB6erqWLVumN99803rMp556Sg8//LDeeOMNde7c2ToC1axZMzVr1uzcX6QdLFcPAIBzNYqgNG7cOB08eFALFixQbm6uevTooeTkZHXq1EmSlJuba7OmUnBwsJKTkxUdHa0lS5aoXbt2Wrx4sUaPHm3tEx8fr5KSEo0ZM8bmXPPmzdP8+fPPyXUBAICGrVEEJUmaNm2apk2bZnfbypUrq7QNHjxYW7ZsMT3ezp0766gyAABwvmrwc5QAAACchaAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABgotEEpfj4eAUHB8vLy0uhoaFav359tf3T0tIUGhoqLy8vdenSRYmJiTbbf/rpJ40ePVqdO3eWxWJRXFxcPVYPAAAao0YRlJKSkjRz5kzNnTtXmZmZioiI0IgRI5STk2O3f3Z2tq6++mpFREQoMzNTc+bM0YwZM7R69Wprn6KiInXp0kVPPvmkAgMDz9WlAACARqRRBKVFixZpypQpmjp1qkJCQhQXF6egoCAlJCTY7Z+YmKiOHTsqLi5OISEhmjp1qiZPnqyFCxda+/Tt21dPP/20brrpJnl6ep6rSwEAAI1Igw9KJSUl2rx5syIjI23aIyMjtXHjRrv7pKenV+k/fPhwZWRkqLS0tN5qBQAA5xc3ZxdwJvn5+SovL1dAQIBNe0BAgPLy8uzuk5eXZ7d/WVmZ8vPz1bZtW4dqKS4u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QYFhGKf+O7B3794a3wvAUQQloAGobVAyDMO44IILDEnGwIEDbdqff/55Q5Jx8cUXG4WFhXb3zcjIMCwWi+Hh4WHs27fPZlvlH1CzMFLJLCgZhmEMHz7ckGSMHz/e7r5vvPGGIcnw9vY2rdHM9OnTDUnGlClTqmw726B04sQJ68jbCy+8YHffO++805BkDBo0yKb9wIEDRpMmTQyLxWJ8/vnndvctLS01QkNDDUnGM888U22Np0tJSbH++/Haa6/VeL/TQ93SpUttttXk9/ztt99WO3JZVlZmDBo0yNrnz0Hpxx9/NCwWi9GkSRPjhx9+sHuOwsJCo0OHDoYk47333rPZVvl7kmQsXry4xtcN1CXmKAGNVKtWrSSpyhylpUuXSpKmTZum5s2b2903NDRUF198sUpKSrRu3Tq7fa666irrXKjamjhxoiTp/fff19GjR6tsr5w/M2rUKNMazYwcOVKStGHDBodqq46Xl5fGjh0r6X81nq64uFhvvfWWpP9dY6XXX39dRUVFCgsL05VXXmn3+G5ubho/frwk6bPPPqtxXQcPHrT+s5+fX4338/f3t3uM01X3e161apUkKSgoSLfffnuV7a6urnr44YdNz79s2TIZhqGRI0eqZ8+edvs0b95co0aNkmR+T1q2bKl//OMfpucB6pObswsA4BjDzmTso0eP6ocffpB0asLxggULTPevDFi7du2yu33gwIEO13bDDTeoefPmOnr0qFavXm0zaXrfvn1KSUmRJE2aNMnu/jt27FB8fLzWrVun33//XUePHlVFRYVNnz/++MPh+qozadIkLV26VF9//bWys7NtvlX28ccf68iRI/L09NSNN95os19lcNu2bZsCAwNNj3/ixAlJ5vf9TCwWS4372vt35M+q+z1nZGRIkoYMGWJ63ssvv1xubm4qKyursq3ynnzyySfV3pNjx45JMr8nffv2lYeHh+n+QH0iKAGN1OHDhyXZjjDk5eVZA4XZt+H+rKioyG57mzZtHK6tSZMmGj16tFauXKlXX33VJii9+eabKisrU2BgoIYNG1Zl3/fee0/jx49XcXGxtc3Hx0deXl6yWCwqKSnR4cOHTb8pdbYGDRqk4OBgZWdn67XXXrMZMakcZbruuuvUokULm/327t0r6VQQqgxD1TG77/ac/juuzbfmajISVd3vef/+/ZKk9u3bm/bx8vKSn5+f9u3bV2Vb5T05duyYNQxVpz7+XQTOFo/egEbo2LFj2rFjhyTZrIx9+msrvvnmGxmn5iFW+5k/f77dc7i6up5VjZWPplJTU7V7925re2XYmDBhQpVzHDx4ULfddpuKi4t1xRVXKDU1VUVFRSooKNC+ffuUl5ent99++6zqOhOLxaJbbrnFptbK2pKTkyXZHwmrvPdRUVE1uu+nf/3+TC666CLrP2/ZsqXG+52+MvfFF19st09Nfs+1GcU6XeU9efLJJ2t0T1JTUx2uEagvBCWgEfr000+tf4SGDBlibQ8ICLD+848//niuy7IxdOhQdezYURUVFXr99dclST///LP1D/2f5/hIUnJysgoLC9WyZUt99NFHGjx4sLy9vW365OXl1XvtlUHot99+s67blJSUpNLSUrVu3VpXXXVVlX0qHy3Vx31v166dunfvLunUiFtNHqlJ0rvvvivp1IhcWFhYrc9bOZJT3WPO4uJi0/lP9XlPgHOFoAQ0MiUlJXriiScknXrfWuVEWOnUpNfK0YfKibjOYrFYNGHCBEn/G5mp/M9evXqpd+/eVfapHHm68MIL1aRJE7vH/fzzz03P6eJy6n/SahokzHTr1k3h4eE2NVf+5/jx4+XmVnXWQuVcn2+++cbh+UfVueuuuySdetfbK6+8csb+X331lXWE5o477rBb85lUhqu0tDTTe/rVV1/ZnZ8k/e+erFmzpkaP3oCGiKAENCInTpzQbbfdZn2kMnv27CpzZe68805Jp1a+PlNYquk8JkdVjsz8/PPPysjIsI4smU3i9vX1lST9+uuvOnnyZJXtW7du1RtvvGF6Ph8fH0nSkSNHzqZsmxqTkpL0888/W0eWzGqfOHGivL29VV5erunTp9s8Bv2zioqKWtd4xx13WEeVZsyYoU2bNpn2zc7Oto7YBQQE6P7776/VuSqNGzdOkpSTk6OXX365yvaKigo99thj1dZssVh05MiRM9ZQWlpKmEKDRFACGriKigpt27ZNixYt0sUXX6w333xT0qk/zP/85z+r9I+KilL//v2tfR566CGbOUJFRUVKTU3V3XffbTO/qT50797dOipx1113affu3XJ1ddXNN99st39kZKRcXFx06NAhTZgwQXv27JF0ahTtrbfeUmRkZLXLCfTo0UOS9NNPP2njxo1nVfu4cePk4eGhgwcP6tZbb5UkhYSEKDQ01G7/wMBA67v31qxZo2HDhunrr7+2BibDMPTLL79o0aJF6tGjhz7++ONa1ePt7a3Vq1fL399fhYWFGjJkiObPn28zerV//34tXrxYffv2VU5Ojpo0aaJVq1bZPJKtjf79++u6666TdOr399JLL1kn2efk5GjcuHFKT083Hf275JJLNHPmTElSYmKixo4dq61bt1pHp8rLy/X999/rX//6l7p27aqtW7c6VCdQr+p5nSYANXD6gpOnv3ajRYsWhouLi83rH/z9/Y3ExMRqj3fgwAHrKtCVHx8fH6NFixY2r9dwc3Orsm91r6M4XXULTp5u8eLFNnUMHz682v4PPPBAlVevuLu7G5KM4OBg4/XXXzddnLO0tNS48MILrdtbtmxpdOrUyejUqZPx9ttvW/uZLTj5Z//3f/9nU0tsbGy1/Q3DMJ566imb13N4eHgYfn5+1muo/NRm4cjTbd++3QgLC7M5VpMmTQwfHx+btgsuuMD47rvvTI9T099zfn6+0bt3b+tx3d3dbV5hsmTJkmqPVVZWZsycOdOmNi8vL8PPz89wc3Ozad+wYYPNvjX9PQH1iREloIHZt2+f9u3bp/3791u/Rn/ZZZfprrvu0jvvvKM9e/accfE9f39/ff755/rggw80ZswYBQUFqbi4WCdOnFD79u01YsQIPf/887X65pWjxo8fL3d3d+vPZo+uKj355JN65ZVX1K9fP3l7e6u0tFTdunXTnDlzlJmZqXbt2pnu6+bmpi+++EJTp05V586ddfz4ce3atUu7du1y6LHO6bW6uLhYvw1Xnfvvv1+//PKLoqOj1atXL3l5eenIkSNq1qyZ+vbtq3/+85/auHGj6ajamXTt2lWbNm3S+++/rwkTJqhLly7WZRM6duyoG264QS+//LJ+/vlnhyZw/5mfn582btyoRx99VN27d5eLi4vc3Nx01VVXKSUlRdOmTat2f1dXVz3zzDPasmWL7rzzTl144YVydXVVQUGBWrZsqYEDB2r+/PnaunXrWa3dBdQXi2Gc5axHAACA8xQjSgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACb+Hw62w8qCoglrAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -263,9 +263,9 @@ ], "source": [ "plt.bar([i for i in range(n_init, num_derivs)], check)\n", - "plt.ylabel('Wall Time (s)')\n", - "plt.xlabel('Derivative Order')\n", - "plt.title(\"Helmholtz 2D\")" + "plt.ylabel('Wall Time (s)', fontsize=18)\n", + "plt.xlabel('Derivative Order',fontsize=18)\n", + "plt.title(\"Helmholtz 2D\", fontsize=18)" ] }, { From 5fc8ffdd9bf5495287192349c91be33e7cbe5d90 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 14 Mar 2025 15:33:02 -0500 Subject: [PATCH 148/193] Document recurrence.py --- sumpy/recurrence.py | 97 ++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 59 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index fb55b7f1c..62f5cc50d 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -25,8 +25,8 @@ .. autofunction:: ode_in_x_to_coeff_array .. autofunction:: recurrence_from_coeff_array .. autofunction:: recurrence_from_pde -.. autofunction:: process_recurrence_relation -.. autofunction:: shift_recurrence +.. autofunction:: reindex_recurrence_relation +.. autofunction:: move_center_origin_source_arbitrary .. autofunction:: get_processed_and_shifted_recurrence .. autofunction:: get_shifted_recurrence_exp_from_pde """ @@ -287,7 +287,7 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: return recurrence_from_coeff_array(coeffs, var) -def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: +def reindex_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: r""" A function that takes in as input a recurrence and outputs a recurrence relation that has the nth term in terms of the n-1th, n-2th etc. @@ -315,30 +315,6 @@ def process_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: return order, true_recurrence1 -def get_recurrence(r: sp.Expr, n_val) -> tuple[int, sp.Expr]: - r""" - A function that takes in as input a recurrence and outputs a recurrence - relation that has the nth term in terms of the n-1th, n-2th etc. - Also returns the order of the recurrence relation. - - :arg recurrence: a recurrence relation in :math:`s(n)` - """ - n = sp.symbols("n") - _, terms = _extract_idx_terms_from_recurrence(r.subs(n, n_val)) - # Order is the max difference between highest/lowest in idx_l - - # Get the respective coefficients in the recurrence relation from r - - coeffs = sp.poly(r.subs(n, n_val), list(terms)).coeffs() - - # Re-arrange the recurrence relation so we get s(n) = ____ - # in terms of s(n-1), ... - true_recurrence = sum(sp.cancel(coeffs[i]) * terms[i] - for i in range(0, len(terms))) - - return true_recurrence - - def _extract_idx_terms_from_recurrence(r: sp.Expr) -> tuple[np.ndarray, np.ndarray]: r""" @@ -391,41 +367,14 @@ def _get_initial_c(recurrence): return i -def get_shifted_recurrence_exp_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: - r""" - A function that "shifts" the recurrence so it's center is placed - at the origin and source is the input for the recurrence generated. - Outputs an expression that evaluates to 0 rather than s(n) in terms - of s(n-1), etc. - - :arg recurrence: a recurrence relation in :math:`s(n)` - """ - r = recurrence_from_pde(pde) - - idx_l, terms = _extract_idx_terms_from_recurrence(r) - - # How much do we need to shift the recurrence relation - shift_idx = max(idx_l) - - n = sp.symbols("n") - r = r.subs(n, n-shift_idx) - - idx_l, terms = _extract_idx_terms_from_recurrence(r) - - r_ret = r - for i in range(len(idx_l)): - r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) - - return r_ret, (max(idx_l)+1-min(idx_l)) - def get_taylor_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: r""" A function that takes in as input a pde and outputs a SHIFTED + PROCESSED taylor recurrence """ var = _make_sympy_vec("x", 1) - r_exp = get_shifted_recurrence_exp_from_pde(pde)[0].subs(var[0], 0) - return process_recurrence_relation(r_exp) + r_exp = move_center_origin_source_arbitrary_expression(pde)[0].subs(var[0], 0) + return reindex_recurrence_relation(r_exp) def eval_taylor_recurrence(pde, deriv_order, taylor_order=4): t_recurrence = get_taylor_recurrence(pde)[1] @@ -446,7 +395,37 @@ def eval_taylor_recurrence_laplace_processed(deriv_order): t_recurrence = get_taylor_recurrence(laplace2d)[1] return eval_taylor_recurrence(laplace2d, n, taylor_order=4).subs(s(n+1), t_recurrence.subs(n,n+1)).subs(n, deriv_order) -def shift_recurrence(r: sp.Expr) -> sp.Expr: + +def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) -> sp.Expr: + r""" + A function that "shifts" the recurrence so it's center is placed + at the origin and source is the input for the recurrence generated. + Outputs an expression that evaluates to 0 rather than s(n) in terms + of s(n-1), etc. This is different from move_center_origin_source_arbitrary, + because we are "shifting" an EXPRESSION, not s(n) in terms of s(n-1), etc. + + :arg recurrence: a recurrence relation in :math:`s(n)` + """ + r = recurrence_from_pde(pde) + + idx_l, terms = _extract_idx_terms_from_recurrence(r) + + # How much do we need to shift the recurrence relation + shift_idx = max(idx_l) + + n = sp.symbols("n") + r = r.subs(n, n-shift_idx) + + idx_l, terms = _extract_idx_terms_from_recurrence(r) + + r_ret = r + for i in range(len(idx_l)): + r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) + + return r_ret, (max(idx_l)+1-min(idx_l)) + + +def move_center_origin_source_arbitrary(r: sp.Expr) -> sp.Expr: r""" A function that "shifts" the recurrence so it's center is placed at the origin and source is the input for the recurrence generated. @@ -480,7 +459,7 @@ def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, - *r_s* is the shifted/processed recurrence """ r = recurrence_from_pde(pde) - order, r_p = process_recurrence_relation(r) + order, r_p = reindex_recurrence_relation(r) n_initial = _get_initial_c(r_p) - r_s = shift_recurrence(r_p) + r_s = move_center_origin_source_arbitrary(r_p) return n_initial, order, r_s From 3fbaca8a10849a0e94a847c5df01edd48f2587c2 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 15 Mar 2025 18:00:10 -0500 Subject: [PATCH 149/193] get_off_axis_recurrence --- sumpy/recurrence.py | 86 +++++++++----- sumpy/recurrence_qbx.py | 6 +- test/gridfree_taylor_recurrence.ipynb | 163 ++++++++------------------ test/test_recurrence.py | 12 +- 4 files changed, 111 insertions(+), 156 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 62f5cc50d..ebe6e2c9f 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -27,8 +27,7 @@ .. autofunction:: recurrence_from_pde .. autofunction:: reindex_recurrence_relation .. autofunction:: move_center_origin_source_arbitrary -.. autofunction:: get_processed_and_shifted_recurrence -.. autofunction:: get_shifted_recurrence_exp_from_pde +.. autofunction:: get_reindexed_and_center_origin_recurrence """ from __future__ import annotations @@ -352,9 +351,9 @@ def _check_neg_ind(r_n): return np.any(idx_l < 0) -def _get_initial_c(recurrence): +def _get_initial_order_on_axis(recurrence): r""" - For a given recurrence checks how many initial conditions by + For a on-axis recurrence checks how many initial conditions by checking for non-negative indexed terms. """ n = sp.symbols("n") @@ -366,35 +365,19 @@ def _get_initial_c(recurrence): r_c = recurrence.subs(n, i) return i - -def get_taylor_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: +def _get_initial_order_off_axis(recurrence): r""" - A function that takes in as input a pde and outputs a SHIFTED - + PROCESSED taylor recurrence + For a off-axis recurrence checks how many initial conditions by + checking for non-negative indexed terms. """ - var = _make_sympy_vec("x", 1) - r_exp = move_center_origin_source_arbitrary_expression(pde)[0].subs(var[0], 0) - return reindex_recurrence_relation(r_exp) - -def eval_taylor_recurrence(pde, deriv_order, taylor_order=4): - t_recurrence = get_taylor_recurrence(pde)[1] - var = _make_sympy_vec("x", 2) - n = sp.symbols("n") - exp = 0 - for i in range(taylor_order): - exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i - return exp - -def eval_taylor_recurrence_laplace_processed(deriv_order): - from sumpy.expansion.diff_op import laplacian,make_identity_diff_op - #HARDCODED TO LAPLACE 2D!!!!! - w = make_identity_diff_op(2) - laplace2d = laplacian(w) n = sp.symbols("n") - s = sp.Function("s") - t_recurrence = get_taylor_recurrence(laplace2d)[1] - return eval_taylor_recurrence(laplace2d, n, taylor_order=4).subs(s(n+1), t_recurrence.subs(n,n+1)).subs(n, deriv_order) + i = 0 + r_c = recurrence.subs(n, i) + while _check_neg_ind(r_c) or r_c == 0: + i += 1 + r_c = recurrence.subs(n, i) + return i def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) -> sp.Expr: r""" @@ -427,8 +410,13 @@ def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) def move_center_origin_source_arbitrary(r: sp.Expr) -> sp.Expr: r""" - A function that "shifts" the recurrence so it's center is placed + A function that "shifts" a recurrence so it's center is placed at the origin and source is the input for the recurrence generated. + Assuming the recurrence is formulated so that evaluating it gives + s(n) in terms of s(n-1), .., etc. We do NOT want a recurrence + EXPRESSION as input, i.e. an expression containing s(n), s(n-1), + ..., that evaluates to 0. + Use move_center_origin_source_arbitrary_expression for this. :arg recurrence: a recurrence relation in :math:`s(n)` """ @@ -443,7 +431,7 @@ def move_center_origin_source_arbitrary(r: sp.Expr) -> sp.Expr: return r_ret*((-1)**(n+1)) -def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, +def get_reindexed_and_center_origin_recurrence(pde) -> tuple[int, int, sp.Expr]: r""" A function that "shifts" the recurrence so the expansion center is placed @@ -460,6 +448,40 @@ def get_processed_and_shifted_recurrence(pde) -> tuple[int, int, """ r = recurrence_from_pde(pde) order, r_p = reindex_recurrence_relation(r) - n_initial = _get_initial_c(r_p) + n_initial = _get_initial_order_on_axis(r_p) r_s = move_center_origin_source_arbitrary(r_p) return n_initial, order, r_s + +# ================ OFF-AXIS RECURRENCE ================= +def get_off_axis_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: + r""" + A function that takes in as input a pde and outputs a SHIFTED + + REINDEXED off-axis recurrence + """ + var = _make_sympy_vec("x", 1) + r_exp = move_center_origin_source_arbitrary_expression(pde)[0].subs(var[0], 0) + recur_order, recur = reindex_recurrence_relation(r_exp) + print(recur) + start_order = _get_initial_order_off_axis(recur) + return start_order, recur_order, recur + +def eval_taylor_recurrence(pde, deriv_order, taylor_order=4): + t_recurrence = get_off_axis_recurrence(pde)[1] + var = _make_sympy_vec("x", 2) + n = sp.symbols("n") + exp = 0 + for i in range(taylor_order): + exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i + return exp + +def eval_taylor_recurrence_laplace_processed(deriv_order): + from sumpy.expansion.diff_op import laplacian,make_identity_diff_op + #HARDCODED TO LAPLACE 2D!!!!! + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + n = sp.symbols("n") + s = sp.Function("s") + t_recurrence = get_off_axis_recurrence(laplace2d)[1] + return eval_taylor_recurrence(laplace2d, n, taylor_order=4).subs(s(n+1), t_recurrence.subs(n,n+1)).subs(n, deriv_order) + + diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 47e0c69b3..284c9f3ae 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -39,7 +39,7 @@ import numpy as np import sympy as sp -from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence, get_taylor_recurrence, eval_taylor_recurrence_laplace_processed +from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_recurrence, get_off_axis_recurrence, eval_taylor_recurrence_laplace_processed # ================ Transform/Rotate ================= @@ -97,8 +97,8 @@ def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, var_t = _make_sympy_vec("t", ndim) # ------------ 5. Compute recurrence - n_initial, order, recurrence = get_processed_and_shifted_recurrence(pde) - t_order, t_recurrence = get_taylor_recurrence(pde) + n_initial, order, recurrence = get_reindexed_and_center_origin_recurrence(pde) + t_order, t_recurrence = get_off_axis_recurrence(pde) t_order += 2 # ------------ 6. Set order p = 5 diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb index e54f38f7d..ce2e7b278 100644 --- a/test/gridfree_taylor_recurrence.ipynb +++ b/test/gridfree_taylor_recurrence.ipynb @@ -9,18 +9,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ - "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "from sumpy.recurrence import _make_sympy_vec\n", "\n", "from sumpy.expansion.diff_op import (\n", " laplacian,\n", " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence, process_recurrence_relation, get_taylor_recurrence, eval_taylor_recurrence_laplace_processed\n", + "from sumpy.recurrence import eval_taylor_recurrence_laplace_processed, get_off_axis_recurrence\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -33,29 +33,6 @@ "from matplotlib import cm, ticker" ] }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{60 x_{0}^{3} s{\\left(3 \\right)}}{x_{1}^{4}} + \\frac{10 x_{0}^{2} s{\\left(4 \\right)}}{x_{1}^{2}} + \\frac{12 x_{0} s{\\left(3 \\right)}}{x_{1}^{2}} + \\frac{6 s{\\left(2 \\right)}}{x_{1}^{2}}$" - ], - "text/plain": [ - "60*x0**3*s(3)/x1**4 + 10*x0**2*s(4)/x1**2 + 12*x0*s(3)/x1**2 + 6*s(2)/x1**2" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "eval_taylor_recurrence_laplace_processed(4)" - ] - }, { "cell_type": "code", "execution_count": 2, @@ -74,128 +51,70 @@ "metadata": {}, "outputs": [], "source": [ - "def compute_derivatives(p):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - " derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives_h2d(p, k=1.0):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - " derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs_helmholtz" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "\n", + "from sumpy.expansion.diff_op import laplacian,make_identity_diff_op\n", "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "\n", - "derivs_lap = compute_derivatives(8)\n", - "derivs_helm = compute_derivatives_h2d(8)" + "laplace2d = laplacian(w)" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" + ] + }, { "data": { "text/latex": [ - "$\\displaystyle \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" + "$\\displaystyle \\frac{2 s{\\left(1 \\right)}}{x_{1}^{2}}$" ], "text/plain": [ - "(-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" + "2*s(1)/x1**2" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "t_recurrence = get_taylor_recurrence(laplace2d)[1]\n", - "t_recurrence" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "coord_dict = {var[0]: np.random.rand(), var[1]: np.random.rand()}" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def eval_taylor_recurrence(deriv_order, taylor_order=4):\n", - " exp = 0\n", - " for i in range(taylor_order):\n", - " exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i\n", - " return exp" + "get_off_axis_recurrence(laplace2d)[2].subs(n, 3)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, - "outputs": [], - "source": [ - "def eval_taylor_recurrence_laplace_processed(deriv_order):\n", - " #HARDCODED TO LAPLACE 2D!!!!!\n", - " return eval_taylor_recurrence(n, taylor_order=4).subs(s(n+1), t_recurrence.subs(n,n+1)).subs(n, deriv_order)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" + ] + }, { "data": { - "text/latex": [ - "$\\displaystyle \\frac{20 x_{0}^{3} s{\\left(2 \\right)}}{x_{1}^{4}} + \\frac{6 x_{0}^{2} s{\\left(3 \\right)}}{x_{1}^{2}} + \\frac{6 x_{0} s{\\left(2 \\right)}}{x_{1}^{2}} + \\frac{2 s{\\left(1 \\right)}}{x_{1}^{2}}$" - ], "text/plain": [ - "20*x0**3*s(2)/x1**4 + 6*x0**2*s(3)/x1**2 + 6*x0*s(2)/x1**2 + 2*s(1)/x1**2" + "(3,\n", + " 4,\n", + " (-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2)" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "eval_taylor_recurrence_laplace_processed(3)" + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "get_off_axis_recurrence(helmholtz2d)" ] }, { @@ -203,13 +122,20 @@ "execution_count": 11, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" + ] + }, { "data": { "text/latex": [ - "$\\displaystyle \\frac{x_{0}^{3} \\left(- 5 n + \\left(n + 4\\right)^{2} - 14\\right) s{\\left(n + 1 \\right)}}{6 x_{1}^{2}} + \\frac{x_{0}^{2} \\left(- 5 n + \\left(n + 3\\right)^{2} - 9\\right) s{\\left(n \\right)}}{2 x_{1}^{2}} + \\frac{x_{0} \\left(- 5 n + \\left(n + 2\\right)^{2} - 4\\right) s{\\left(n - 1 \\right)}}{x_{1}^{2}} + \\frac{\\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}}{x_{1}^{2}}$" + "$\\displaystyle \\frac{3 s{\\left(0 \\right)}}{x_{1}^{2}} + \\frac{6 s{\\left(2 \\right)}}{x_{1}^{2}}$" ], "text/plain": [ - "x0**3*(-5*n + (n + 4)**2 - 14)*s(n + 1)/(6*x1**2) + x0**2*(-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2) + x0*(-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2" + "3*s(0)/x1**2 + 6*s(2)/x1**2" ] }, "execution_count": 11, @@ -218,8 +144,15 @@ } ], "source": [ - "eval_taylor_recurrence(n, taylor_order=4)" + "get_off_axis_recurrence(helmholtz2d)[2].subs(n, 4)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 57ebbae38..f6e2e290c 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -41,7 +41,7 @@ laplacian, make_identity_diff_op, ) -from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence +from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_recurrence def test_laplace3d(): @@ -50,7 +50,7 @@ def test_laplace3d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - n_init, _, r = get_processed_and_shifted_recurrence(laplace3d) + n_init, _, r = get_reindexed_and_center_origin_recurrence(laplace3d) n = sp.symbols("n") s = sp.Function("s") @@ -90,7 +90,7 @@ def test_helmholtz3d(): """ w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w - n_init, _, r = get_processed_and_shifted_recurrence(helmholtz3d) + n_init, _, r = get_reindexed_and_center_origin_recurrence(helmholtz3d) n = sp.symbols("n") s = sp.Function("s") @@ -131,7 +131,7 @@ def test_helmholtz2d(): """ w = make_identity_diff_op(2) helmholtz2d = laplacian(w) + w - n_init, _, r = get_processed_and_shifted_recurrence(helmholtz2d) + n_init, _, r = get_reindexed_and_center_origin_recurrence(helmholtz2d) n = sp.symbols("n") s = sp.Function("s") @@ -177,7 +177,7 @@ def test_laplace2d(): """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - n_init, _, r = get_processed_and_shifted_recurrence(laplace2d) + n_init, _, r = get_reindexed_and_center_origin_recurrence(laplace2d) n = sp.symbols("n") s = sp.Function("s") @@ -212,7 +212,7 @@ def test_laplace2d(): def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) laplace2d = laplacian(w) - n_init, _, r = get_processed_and_shifted_recurrence(laplace2d) + n_init, _, r = get_reindexed_and_center_origin_recurrence(laplace2d) n = sp.symbols("n") s = sp.Function("s") From a6fe10eda160ed53dc8f0a350bff72a78494a640 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 15 Mar 2025 18:40:40 -0500 Subject: [PATCH 150/193] Need to make get_taylor_expression general --- sumpy/recurrence.py | 17 ++--------- test/gridfree_taylor_recurrence.ipynb | 44 ++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index ebe6e2c9f..163a6620c 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -465,23 +465,12 @@ def get_off_axis_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: start_order = _get_initial_order_off_axis(recur) return start_order, recur_order, recur -def eval_taylor_recurrence(pde, deriv_order, taylor_order=4): - t_recurrence = get_off_axis_recurrence(pde)[1] +def get_taylor_expression(pde, deriv_order, taylor_order=4): + #recursively substitute, and output the "order" of the taylor expression + t_recurrence = get_off_axis_recurrence(pde)[2] var = _make_sympy_vec("x", 2) n = sp.symbols("n") exp = 0 for i in range(taylor_order): exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i return exp - -def eval_taylor_recurrence_laplace_processed(deriv_order): - from sumpy.expansion.diff_op import laplacian,make_identity_diff_op - #HARDCODED TO LAPLACE 2D!!!!! - w = make_identity_diff_op(2) - laplace2d = laplacian(w) - n = sp.symbols("n") - s = sp.Function("s") - t_recurrence = get_off_axis_recurrence(laplace2d)[1] - return eval_taylor_recurrence(laplace2d, n, taylor_order=4).subs(s(n+1), t_recurrence.subs(n,n+1)).subs(n, deriv_order) - - diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb index ce2e7b278..a92f85d8c 100644 --- a/test/gridfree_taylor_recurrence.ipynb +++ b/test/gridfree_taylor_recurrence.ipynb @@ -20,7 +20,7 @@ " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import eval_taylor_recurrence_laplace_processed, get_off_axis_recurrence\n", + "from sumpy.recurrence import get_taylor_expression, get_off_axis_recurrence\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -58,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -77,7 +77,7 @@ "2*s(1)/x1**2" ] }, - "execution_count": 7, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -88,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -106,7 +106,7 @@ " (-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2)" ] }, - "execution_count": 9, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -138,7 +138,7 @@ "3*s(0)/x1**2 + 6*s(2)/x1**2" ] }, - "execution_count": 11, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -147,6 +147,36 @@ "get_off_axis_recurrence(helmholtz2d)[2].subs(n, 4)" ] }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" + ] + }, + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{x_{0}^{3} s{\\left(1 \\right)}}{3 x_{1}^{2}} + \\frac{2 s{\\left(-2 \\right)}}{x_{1}^{2}}$" + ], + "text/plain": [ + "x0**3*s(1)/(3*x1**2) + 2*s(-2)/x1**2" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_taylor_expression(laplace2d, 0)" + ] + }, { "cell_type": "code", "execution_count": null, From eee3d5566b6ca74c29a9ebd9fd2006ce7eab99ba Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 17 Mar 2025 14:44:11 -0500 Subject: [PATCH 151/193] Renamed functions in recurrence.py, added off-axis section --- sumpy/recurrence.py | 100 +++++++++++++++----------- sumpy/recurrence_qbx.py | 6 +- test/gridfree_taylor_recurrence.ipynb | 82 ++++----------------- test/test_recurrence.py | 70 +++++++++++++++--- 4 files changed, 139 insertions(+), 119 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 163a6620c..732e7f20f 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -379,34 +379,6 @@ def _get_initial_order_off_axis(recurrence): r_c = recurrence.subs(n, i) return i -def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) -> sp.Expr: - r""" - A function that "shifts" the recurrence so it's center is placed - at the origin and source is the input for the recurrence generated. - Outputs an expression that evaluates to 0 rather than s(n) in terms - of s(n-1), etc. This is different from move_center_origin_source_arbitrary, - because we are "shifting" an EXPRESSION, not s(n) in terms of s(n-1), etc. - - :arg recurrence: a recurrence relation in :math:`s(n)` - """ - r = recurrence_from_pde(pde) - - idx_l, terms = _extract_idx_terms_from_recurrence(r) - - # How much do we need to shift the recurrence relation - shift_idx = max(idx_l) - - n = sp.symbols("n") - r = r.subs(n, n-shift_idx) - - idx_l, terms = _extract_idx_terms_from_recurrence(r) - - r_ret = r - for i in range(len(idx_l)): - r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) - - return r_ret, (max(idx_l)+1-min(idx_l)) - def move_center_origin_source_arbitrary(r: sp.Expr) -> sp.Expr: r""" @@ -415,8 +387,8 @@ def move_center_origin_source_arbitrary(r: sp.Expr) -> sp.Expr: Assuming the recurrence is formulated so that evaluating it gives s(n) in terms of s(n-1), .., etc. We do NOT want a recurrence EXPRESSION as input, i.e. an expression containing s(n), s(n-1), - ..., that evaluates to 0. - Use move_center_origin_source_arbitrary_expression for this. + ..., that evaluates to 0. + Use move_center_origin_source_arbitrary_expression for EXPRESSIONS. :arg recurrence: a recurrence relation in :math:`s(n)` """ @@ -431,7 +403,7 @@ def move_center_origin_source_arbitrary(r: sp.Expr) -> sp.Expr: return r_ret*((-1)**(n+1)) -def get_reindexed_and_center_origin_recurrence(pde) -> tuple[int, int, +def get_reindexed_and_center_origin_on_axis_recurrence(pde) -> tuple[int, int, sp.Expr]: r""" A function that "shifts" the recurrence so the expansion center is placed @@ -453,24 +425,70 @@ def get_reindexed_and_center_origin_recurrence(pde) -> tuple[int, int, return n_initial, order, r_s # ================ OFF-AXIS RECURRENCE ================= -def get_off_axis_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: +def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) -> sp.Expr: r""" - A function that takes in as input a pde and outputs a SHIFTED - + REINDEXED off-axis recurrence + A function that "shifts" the recurrence so it's center is placed + at the origin and source is the input for the recurrence generated. + Outputs an expression that evaluates to 0 rather than s(n) in terms + of s(n-1), etc. This is different from move_center_origin_source_arbitrary, + because we are "shifting" an EXPRESSION, not s(n) in terms of s(n-1), etc. + + :arg recurrence: a recurrence relation in :math:`s(n)` + """ + r = recurrence_from_pde(pde) + + idx_l, terms = _extract_idx_terms_from_recurrence(r) + n = sp.symbols("n") + + r_ret = r + for i in range(len(idx_l)): + r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) + + return r_ret + +def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: + r""" + A function that takes in as input a pde and outputs a off-axis recurrence + for derivatives taken at the origin with an arbitrary source location. + The recurrence is reindexed so it gives s(n) in terms of s(n-1), ..., etc. """ var = _make_sympy_vec("x", 1) - r_exp = move_center_origin_source_arbitrary_expression(pde)[0].subs(var[0], 0) + r_exp = move_center_origin_source_arbitrary_expression(pde).subs(var[0], 0) recur_order, recur = reindex_recurrence_relation(r_exp) - print(recur) start_order = _get_initial_order_off_axis(recur) return start_order, recur_order, recur -def get_taylor_expression(pde, deriv_order, taylor_order=4): - #recursively substitute, and output the "order" of the taylor expression - t_recurrence = get_off_axis_recurrence(pde)[2] - var = _make_sympy_vec("x", 2) + +def get_off_axis_expression(pde, taylor_order=4): + r""" + A function that takes in as input a pde, and outputs + the Taylor expression that gives the deriv_order th derivative + to a taylor_order order Taylor series with respect to x_1 and + s(i) where s(i) comes from the off-axis recurrence. See + get_reindexed_and_center_origin_off_axis_recurrence. + """ + s = sp.Function("s") n = sp.symbols("n") + deriv_order = n + + t_recurrence = get_reindexed_and_center_origin_off_axis_recurrence(pde)[2] + var = _make_sympy_vec("x", 2) exp = 0 for i in range(taylor_order): exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i - return exp + + #While derivatives w/order larger than the deriv_order exist in our taylor expression + #replace them with smaller order derivatives + idx_l, _ = _extract_idx_terms_from_recurrence(exp) + max_idx = max(idx_l) + + while max_idx > 0: + for ind in idx_l: + if ind > 0: + exp = exp.subs(s(n+ind), t_recurrence.subs(n, n+ind)) + + idx_l, _ = _extract_idx_terms_from_recurrence(exp) + max_idx = max(idx_l) + exp_range = max(idx_l) - min(idx_l) + + return exp, exp_range \ No newline at end of file diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 284c9f3ae..27367ea2d 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -39,7 +39,7 @@ import numpy as np import sympy as sp -from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_recurrence, get_off_axis_recurrence, eval_taylor_recurrence_laplace_processed +from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence, get_reindexed_and_center_origin_off_axis_recurrence, eval_taylor_recurrence_laplace_processed # ================ Transform/Rotate ================= @@ -97,8 +97,8 @@ def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, var_t = _make_sympy_vec("t", ndim) # ------------ 5. Compute recurrence - n_initial, order, recurrence = get_reindexed_and_center_origin_recurrence(pde) - t_order, t_recurrence = get_off_axis_recurrence(pde) + n_initial, order, recurrence = get_reindexed_and_center_origin_on_axis_recurrence(pde) + t_order, t_recurrence = get_reindexed_and_center_origin_off_axis_recurrence(pde) t_order += 2 # ------------ 6. Set order p = 5 diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb index a92f85d8c..91e5571b7 100644 --- a/test/gridfree_taylor_recurrence.ipynb +++ b/test/gridfree_taylor_recurrence.ipynb @@ -20,7 +20,7 @@ " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_taylor_expression, get_off_axis_recurrence\n", + "from sumpy.recurrence import get_off_axis_expression, get_reindexed_and_center_origin_off_axis_recurrence, _extract_idx_terms_from_recurrence\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -53,7 +53,8 @@ "source": [ "from sumpy.expansion.diff_op import laplacian,make_identity_diff_op\n", "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)" + "laplace2d = laplacian(w)\n", + "helmholtz2d = laplacian(w) + w" ] }, { @@ -61,13 +62,6 @@ "execution_count": 4, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" - ] - }, { "data": { "text/latex": [ @@ -83,98 +77,52 @@ } ], "source": [ - "get_off_axis_recurrence(laplace2d)[2].subs(n, 3)" + "get_reindexed_and_center_origin_off_axis_recurrence(laplace2d)[2].subs(n, 3)" ] }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" - ] - }, - { - "data": { - "text/plain": [ - "(3,\n", - " 4,\n", - " (-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "get_off_axis_recurrence(helmholtz2d)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" - ] - }, { "data": { - "text/latex": [ - "$\\displaystyle \\frac{3 s{\\left(0 \\right)}}{x_{1}^{2}} + \\frac{6 s{\\left(2 \\right)}}{x_{1}^{2}}$" - ], "text/plain": [ - "3*s(0)/x1**2 + 6*s(2)/x1**2" + "(x0**3*(((-6*n + (n + 2)**2 - 4)*s(n - 3)/x1**2 + (-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2)*(-5*n + (n + 4)**2 - 14)/(6*x1**2) + (-6*n + (n + 4)**2 - 16)*s(n - 1)/(6*x1**2)) + x0**2*((-6*n + (n + 3)**2 - 10)*s(n - 2)/(2*x1**2) + (-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2)) + x0*((-6*n + (n + 2)**2 - 4)*s(n - 3)/x1**2 + (-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2) + (-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2,\n", + " 4)" ] }, - "execution_count": 6, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "get_off_axis_recurrence(helmholtz2d)[2].subs(n, 4)" + "exp = get_off_axis_expression(helmholtz2d)\n", + "exp" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2\n" - ] - }, { "data": { "text/latex": [ - "$\\displaystyle \\frac{x_{0}^{3} s{\\left(1 \\right)}}{3 x_{1}^{2}} + \\frac{2 s{\\left(-2 \\right)}}{x_{1}^{2}}$" + "$\\displaystyle \\frac{x_{0}^{3} \\left(- x_{1}^{2} \\left(6 n - \\left(n + 4\\right)^{2} + 16\\right) s{\\left(n - 1 \\right)} + \\left(\\left(5 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 1 \\right)} + \\left(6 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 3 \\right)}\\right) \\left(5 n - \\left(n + 4\\right)^{2} + 14\\right)\\right) + 3 x_{1}^{2} \\left(- x_{0}^{2} \\left(\\left(5 n - \\left(n + 3\\right)^{2} + 9\\right) s{\\left(n \\right)} + \\left(6 n - \\left(n + 3\\right)^{2} + 10\\right) s{\\left(n - 2 \\right)}\\right) - 2 x_{0} \\left(\\left(5 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 1 \\right)} + \\left(6 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 3 \\right)}\\right) + 2 \\left(- 6 n + \\left(n + 1\\right)^{2} + 2\\right) s{\\left(n - 4 \\right)} + 2 \\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}\\right)}{6 x_{1}^{4}}$" ], "text/plain": [ - "x0**3*s(1)/(3*x1**2) + 2*s(-2)/x1**2" + "(x0**3*(-x1**2*(6*n - (n + 4)**2 + 16)*s(n - 1) + ((5*n - (n + 2)**2 + 4)*s(n - 1) + (6*n - (n + 2)**2 + 4)*s(n - 3))*(5*n - (n + 4)**2 + 14)) + 3*x1**2*(-x0**2*((5*n - (n + 3)**2 + 9)*s(n) + (6*n - (n + 3)**2 + 10)*s(n - 2)) - 2*x0*((5*n - (n + 2)**2 + 4)*s(n - 1) + (6*n - (n + 2)**2 + 4)*s(n - 3)) + 2*(-6*n + (n + 1)**2 + 2)*s(n - 4) + 2*(-5*n + (n + 1)**2 + 1)*s(n - 2)))/(6*x1**4)" ] }, - "execution_count": 9, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "get_taylor_expression(laplace2d, 0)" + "exp[0].simplify()" ] }, { diff --git a/test/test_recurrence.py b/test/test_recurrence.py index f6e2e290c..083f07126 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -41,7 +41,7 @@ laplacian, make_identity_diff_op, ) -from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_recurrence +from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence, get_off_axis_expression, get_reindexed_and_center_origin_off_axis_recurrence def test_laplace3d(): @@ -50,7 +50,7 @@ def test_laplace3d(): """ w = make_identity_diff_op(3) laplace3d = laplacian(w) - n_init, _, r = get_reindexed_and_center_origin_recurrence(laplace3d) + n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(laplace3d) n = sp.symbols("n") s = sp.Function("s") @@ -90,7 +90,7 @@ def test_helmholtz3d(): """ w = make_identity_diff_op(3) helmholtz3d = laplacian(w) + w - n_init, _, r = get_reindexed_and_center_origin_recurrence(helmholtz3d) + n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(helmholtz3d) n = sp.symbols("n") s = sp.Function("s") @@ -131,7 +131,7 @@ def test_helmholtz2d(): """ w = make_identity_diff_op(2) helmholtz2d = laplacian(w) + w - n_init, _, r = get_reindexed_and_center_origin_recurrence(helmholtz2d) + n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(helmholtz2d) n = sp.symbols("n") s = sp.Function("s") @@ -177,7 +177,7 @@ def test_laplace2d(): """ w = make_identity_diff_op(2) laplace2d = laplacian(w) - n_init, _, r = get_reindexed_and_center_origin_recurrence(laplace2d) + n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(laplace2d) n = sp.symbols("n") s = sp.Function("s") @@ -207,12 +207,65 @@ def test_laplace2d(): check = np.array([check[i].subs(coord_dict) for i in range(len(check))]) assert max(abs(abs(check))) <= 1e-12 +def test_laplace_2d_off_axis(): + r""" + Tests off-axis recurrence code for orders up to 6 laplace2d. + """ + s = sp.Function("s") + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(8)] + x_coord = np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord} + + w = make_identity_diff_op(2) + laplace2d = laplacian(w) + start_order, recur_order, recur = get_reindexed_and_center_origin_off_axis_recurrence(laplace2d) + exp, exp_range = get_off_axis_expression(laplace2d) + + beg_order = 4 + end_order = 8 + + ic = [] + #Generate ic + + for i in range(start_order): + ic.append(derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]])) + + n = sp.symbols("n") + for i in range(start_order, end_order): + recur_eval = recur.subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).subs(n, i) + for j in range(i-recur_order, i): + recur_eval = recur_eval.subs(s(j), ic[j]) + ic.append(recur_eval) + + ic = np.array(ic) + + true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(end_order)]) + + print(ic) + print(true_ic) + print(ic-true_ic) + +test_laplace_2d_off_axis() + + + + + + + + import matplotlib.pyplot as plt def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) laplace2d = laplacian(w) - n_init, _, r = get_reindexed_and_center_origin_recurrence(laplace2d) + n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(laplace2d) n = sp.symbols("n") s = sp.Function("s") @@ -240,7 +293,7 @@ def _plot_laplace_2d(max_order_check, max_abs): return np.array([check[i].subs(coord_dict) for i in range(len(check))]) -plot_me = _plot_laplace_2d(13, 1) +""" plot_me = _plot_laplace_2d(13, 1) fig = plt.figure() ax = fig.add_subplot(1, 1, 1) @@ -248,4 +301,5 @@ def _plot_laplace_2d(max_order_check, max_abs): ax.set_yscale('log') plt.ylabel("Error") plt.xlabel("Order") -plt.show() \ No newline at end of file +plt.show() """ + From cf5ac10616b7077b87d55d39c6ac9558fa422c20 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 18 Mar 2025 13:56:12 -0500 Subject: [PATCH 152/193] Bug fixed --- sumpy/recurrence.py | 16 +++++++++++++--- test/test_recurrence.py | 7 ------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 732e7f20f..4ee13f66e 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -307,7 +307,7 @@ def reindex_recurrence_relation(r: sp.Expr) -> tuple[int, sp.Expr]: # Re-arrange the recurrence relation so we get s(n) = ____ # in terms of s(n-1), ... - true_recurrence = sum(sp.cancel(coeffs[i]/coeffs[-1]) * terms[i] + true_recurrence = sum(sp.cancel(-coeffs[i]/coeffs[-1]) * terms[i] for i in range(0, len(terms)-1)) true_recurrence1 = true_recurrence.subs(n, n-shift_idx) @@ -400,7 +400,7 @@ def move_center_origin_source_arbitrary(r: sp.Expr) -> sp.Expr: for i in range(len(idx_l)): r_ret = r_ret.subs(terms[i], (-1)**(n+idx_l[i])*terms[i]) - return r_ret*((-1)**(n+1)) + return r_ret*((-1)**(n)) def get_reindexed_and_center_origin_on_axis_recurrence(pde) -> tuple[int, int, @@ -446,6 +446,7 @@ def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) return r_ret + def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: r""" A function that takes in as input a pde and outputs a off-axis recurrence @@ -454,6 +455,15 @@ def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOper """ var = _make_sympy_vec("x", 1) r_exp = move_center_origin_source_arbitrary_expression(pde).subs(var[0], 0) + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(8)] + + recur_order, recur = reindex_recurrence_relation(r_exp) start_order = _get_initial_order_off_axis(recur) return start_order, recur_order, recur @@ -486,7 +496,7 @@ def get_off_axis_expression(pde, taylor_order=4): for ind in idx_l: if ind > 0: exp = exp.subs(s(n+ind), t_recurrence.subs(n, n+ind)) - + idx_l, _ = _extract_idx_terms_from_recurrence(exp) max_idx = max(idx_l) exp_range = max(idx_l) - min(idx_l) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 083f07126..2670ca6a3 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -254,13 +254,6 @@ def test_laplace_2d_off_axis(): test_laplace_2d_off_axis() - - - - - - - import matplotlib.pyplot as plt def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) From b6f8f37868883da2e1bbe40db0761e050ff41da0 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 19 Mar 2025 13:51:22 -0500 Subject: [PATCH 153/193] approximate expression incorrect --- sumpy/recurrence.py | 2 +- test/test_recurrence.py | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 4ee13f66e..982627c51 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -499,6 +499,6 @@ def get_off_axis_expression(pde, taylor_order=4): idx_l, _ = _extract_idx_terms_from_recurrence(exp) max_idx = max(idx_l) - exp_range = max(idx_l) - min(idx_l) + exp_range = max(idx_l) - min(idx_l) + 1 return exp, exp_range \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 2670ca6a3..06daef85e 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -5,6 +5,8 @@ .. autofunction:: test_laplace3d .. autofunction:: test_helmholtz3d .. autofunction:: test_laplace2d +.. autofunction:: test_helmholtz2d +.. autofunction:: test_laplace_2d_off_axis """ from __future__ import annotations @@ -207,6 +209,7 @@ def test_laplace2d(): check = np.array([check[i].subs(coord_dict) for i in range(len(check))]) assert max(abs(abs(check))) <= 1e-12 + def test_laplace_2d_off_axis(): r""" Tests off-axis recurrence code for orders up to 6 laplace2d. @@ -225,7 +228,6 @@ def test_laplace_2d_off_axis(): w = make_identity_diff_op(2) laplace2d = laplacian(w) start_order, recur_order, recur = get_reindexed_and_center_origin_off_axis_recurrence(laplace2d) - exp, exp_range = get_off_axis_expression(laplace2d) beg_order = 4 end_order = 8 @@ -247,9 +249,20 @@ def test_laplace_2d_off_axis(): true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(end_order)]) - print(ic) - print(true_ic) - print(ic-true_ic) + assert np.max(np.abs(ic-true_ic)) < 10e-8 + + exp, exp_range = get_off_axis_expression(laplace2d, 4) + + deriv_order = 6 + approx_deriv = exp.subs(n, deriv_order) + for i in range(exp_range): + approx_deriv = approx_deriv.subs(s(deriv_order-i), true_ic[deriv_order-i]) + + print((approx_deriv - derivs[deriv_order]).subs(var[0], 1e-3 * np.random.rand()).subs(var[1], np.random.rand())) + + + + test_laplace_2d_off_axis() From c6f476334dc35b1ca49836b21042aa42e4dcf2e5 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 19 Mar 2025 14:03:39 -0500 Subject: [PATCH 154/193] Specific point where taylor recurrence not performing --- test/test_recurrence.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 06daef85e..ffe34decc 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -221,8 +221,8 @@ def test_laplace_2d_off_axis(): derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(8)] - x_coord = np.random.rand() # noqa: NPY002 - y_coord = np.random.rand() # noqa: NPY002 + x_coord = 0.0003#1e-3 * np.random.rand() # noqa: NPY002 + y_coord = 0.06#np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} w = make_identity_diff_op(2) @@ -258,7 +258,9 @@ def test_laplace_2d_off_axis(): for i in range(exp_range): approx_deriv = approx_deriv.subs(s(deriv_order-i), true_ic[deriv_order-i]) - print((approx_deriv - derivs[deriv_order]).subs(var[0], 1e-3 * np.random.rand()).subs(var[1], np.random.rand())) + print(coord_dict[var[0]]/coord_dict[var[1]]) + print(coord_dict[var[0]], coord_dict[var[1]]) + print(((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]])) From 7bd2c7e063858c33e2a7adf7ef37c81587877e4a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 21 Mar 2025 14:29:55 -0500 Subject: [PATCH 155/193] Taylor recurrence satisfies predicted error consntraints --- sumpy/recurrence.py | 2 +- test/test_recurrence.py | 36 ++++++++++++++++++++---------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 982627c51..9f3ab6a7b 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -484,7 +484,7 @@ def get_off_axis_expression(pde, taylor_order=4): t_recurrence = get_reindexed_and_center_origin_off_axis_recurrence(pde)[2] var = _make_sympy_vec("x", 2) exp = 0 - for i in range(taylor_order): + for i in range(taylor_order+1): exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i #While derivatives w/order larger than the deriv_order exist in our taylor expression diff --git a/test/test_recurrence.py b/test/test_recurrence.py index ffe34decc..47065dc66 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -44,7 +44,7 @@ make_identity_diff_op, ) from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence, get_off_axis_expression, get_reindexed_and_center_origin_off_axis_recurrence - +import math def test_laplace3d(): r""" @@ -220,18 +220,15 @@ def test_laplace_2d_off_axis(): g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(8)] - x_coord = 0.0003#1e-3 * np.random.rand() # noqa: NPY002 - y_coord = 0.06#np.random.rand() # noqa: NPY002 + for i in range(15)] + x_coord = 0.5234#np.random.rand() # noqa: NPY002 + y_coord = 1.1#np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} w = make_identity_diff_op(2) laplace2d = laplacian(w) start_order, recur_order, recur = get_reindexed_and_center_origin_off_axis_recurrence(laplace2d) - beg_order = 4 - end_order = 8 - ic = [] #Generate ic @@ -239,7 +236,7 @@ def test_laplace_2d_off_axis(): ic.append(derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]])) n = sp.symbols("n") - for i in range(start_order, end_order): + for i in range(start_order, 15): recur_eval = recur.subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).subs(n, i) for j in range(i-recur_order, i): recur_eval = recur_eval.subs(s(j), ic[j]) @@ -247,20 +244,27 @@ def test_laplace_2d_off_axis(): ic = np.array(ic) - true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(end_order)]) + true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(15)]) - assert np.max(np.abs(ic-true_ic)) < 10e-8 - - exp, exp_range = get_off_axis_expression(laplace2d, 4) + assert np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2])) < 1e-8 + #print(np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2]))) + # CHECK ACCURACY OF EXPRESSION FOR deriv_order deriv_order = 6 + exp_order = 6 + + exp, exp_range = get_off_axis_expression(laplace2d, exp_order) approx_deriv = exp.subs(n, deriv_order) for i in range(exp_range): - approx_deriv = approx_deriv.subs(s(deriv_order-i), true_ic[deriv_order-i]) + approx_deriv = approx_deriv.subs(s(deriv_order-i), ic[deriv_order-i]) - print(coord_dict[var[0]]/coord_dict[var[1]]) - print(coord_dict[var[0]], coord_dict[var[1]]) - print(((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]])) + rat = coord_dict[var[0]]/coord_dict[var[1]] + prederror = abs(ic[deriv_order+exp_order+2] * coord_dict[var[0]]**(exp_order+2)/math.factorial(exp_order+2)) + print("PREDICTED ERROR: ", prederror) + relerr = abs((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]) + print("RELATIVE ERROR: ", relerr) + print("RATIO: ", rat) + assert relerr <= prederror From a1f528eab0ef748dd9ea9b1e4beaa7d4e4705e6d Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 21 Mar 2025 14:35:43 -0500 Subject: [PATCH 156/193] Odd derivative expression incorrect --- test/test_recurrence.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 47065dc66..66a2352bd 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -221,8 +221,8 @@ def test_laplace_2d_off_axis(): derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) for i in range(15)] - x_coord = 0.5234#np.random.rand() # noqa: NPY002 - y_coord = 1.1#np.random.rand() # noqa: NPY002 + x_coord = 1e-2 * np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} w = make_identity_diff_op(2) @@ -250,8 +250,8 @@ def test_laplace_2d_off_axis(): #print(np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2]))) # CHECK ACCURACY OF EXPRESSION FOR deriv_order - deriv_order = 6 - exp_order = 6 + deriv_order = 7 + exp_order = 5 exp, exp_range = get_off_axis_expression(laplace2d, exp_order) approx_deriv = exp.subs(n, deriv_order) @@ -259,20 +259,18 @@ def test_laplace_2d_off_axis(): approx_deriv = approx_deriv.subs(s(deriv_order-i), ic[deriv_order-i]) rat = coord_dict[var[0]]/coord_dict[var[1]] - prederror = abs(ic[deriv_order+exp_order+2] * coord_dict[var[0]]**(exp_order+2)/math.factorial(exp_order+2)) + if deriv_order + exp_order % 2 == 0: + prederror = abs(ic[deriv_order+exp_order+2] * coord_dict[var[0]]**(exp_order+2)/math.factorial(exp_order+2)) + else: + prederror = abs(ic[deriv_order+exp_order+1] * coord_dict[var[0]]**(exp_order+1)/math.factorial(exp_order+1)) print("PREDICTED ERROR: ", prederror) relerr = abs((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]) print("RELATIVE ERROR: ", relerr) print("RATIO: ", rat) assert relerr <= prederror - - - - test_laplace_2d_off_axis() - import matplotlib.pyplot as plt def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) From b3a1b5fed79ee74acd588d947e10ba7cca93f861 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 23 Mar 2025 10:29:15 -0500 Subject: [PATCH 157/193] Relative error --- sumpy/recurrence.py | 11 +++--- test/test_recurrence.py | 78 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 80 insertions(+), 9 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 9f3ab6a7b..3f8a3032a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -485,10 +485,11 @@ def get_off_axis_expression(pde, taylor_order=4): var = _make_sympy_vec("x", 2) exp = 0 for i in range(taylor_order+1): - exp += t_recurrence.subs(n, deriv_order+i)/math.factorial(i) * var[0]**i + exp += s(deriv_order+i)/math.factorial(i) * var[0]**i #While derivatives w/order larger than the deriv_order exist in our taylor expression #replace them with smaller order derivatives + idx_l, _ = _extract_idx_terms_from_recurrence(exp) max_idx = max(idx_l) @@ -498,7 +499,9 @@ def get_off_axis_expression(pde, taylor_order=4): exp = exp.subs(s(n+ind), t_recurrence.subs(n, n+ind)) idx_l, _ = _extract_idx_terms_from_recurrence(exp) - max_idx = max(idx_l) - exp_range = max(idx_l) - min(idx_l) + 1 + max_idx = max(idx_l) + + idx_l, _ = _extract_idx_terms_from_recurrence(exp) + exp_range = (min(idx_l), max(idx_l)) - return exp, exp_range \ No newline at end of file + return exp*(-1)**n, exp_range \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 66a2352bd..76d2a3adc 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -210,6 +210,75 @@ def test_laplace2d(): assert max(abs(abs(check))) <= 1e-12 +def test_helmholtz_2d_off_axis(): + r""" + Tests off-axis recurrence code for orders up to 6 laplace2d. + """ + w = make_identity_diff_op(2) + helmholtz2d = laplacian(w) + w + + n = sp.symbols("n") + s = sp.Function("s") + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2) + k = 1 + g_x_y = (1j/4) * hankel1(0, k * abs_dist) + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(8)] + + x_coord = 1e-2 * np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord} + start_order, recur_order, recur = get_reindexed_and_center_origin_off_axis_recurrence(helmholtz2d) + + ic = [] + #Generate ic + + for i in range(start_order): + ic.append(derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]])) + + n = sp.symbols("n") + for i in range(start_order, 15): + recur_eval = recur.subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).subs(n, i) + for j in range(i-recur_order, i): + recur_eval = recur_eval.subs(s(j), ic[j]) + ic.append(recur_eval) + + ic = np.array(ic) + + #true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(15)]) + + #assert np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2])) < 1e-8 + #print(np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2]))) + + # CHECK ACCURACY OF EXPRESSION FOR deriv_order + deriv_order = 7 + exp_order = 4 + + exp, exp_range = get_off_axis_expression(helmholtz2d, exp_order) + approx_deriv = exp.subs(n, deriv_order) + exp_range = (exp_range[0]+deriv_order, exp_range[1]+deriv_order) + for i in range(exp_range[0], exp_range[1]+1): + approx_deriv = approx_deriv.subs(s(i), ic[i]) + + rat = coord_dict[var[0]]/coord_dict[var[1]] + if deriv_order + exp_order % 2 == 0: + prederror = abs((ic[deriv_order+exp_order+2] * coord_dict[var[0]]**(exp_order+2)/math.factorial(exp_order+2)).evalf()) + else: + prederror = abs((ic[deriv_order+exp_order+1] * coord_dict[var[0]]**(exp_order+1)/math.factorial(exp_order+1)).evalf()) + print("PREDICTED ERROR: ", prederror) + relerr = abs(((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).evalf()) + print("RELATIVE ERROR: ", relerr) + print("RATIO: ", rat) + assert relerr <= prederror + +test_helmholtz_2d_off_axis() + + def test_laplace_2d_off_axis(): r""" Tests off-axis recurrence code for orders up to 6 laplace2d. @@ -251,12 +320,13 @@ def test_laplace_2d_off_axis(): # CHECK ACCURACY OF EXPRESSION FOR deriv_order deriv_order = 7 - exp_order = 5 + exp_order = 6 exp, exp_range = get_off_axis_expression(laplace2d, exp_order) approx_deriv = exp.subs(n, deriv_order) - for i in range(exp_range): - approx_deriv = approx_deriv.subs(s(deriv_order-i), ic[deriv_order-i]) + exp_range = (exp_range[0]+deriv_order, exp_range[1]+deriv_order) + for i in range(exp_range[0], exp_range[1]+1): + approx_deriv = approx_deriv.subs(s(i), ic[i]) rat = coord_dict[var[0]]/coord_dict[var[1]] if deriv_order + exp_order % 2 == 0: @@ -269,8 +339,6 @@ def test_laplace_2d_off_axis(): print("RATIO: ", rat) assert relerr <= prederror -test_laplace_2d_off_axis() - import matplotlib.pyplot as plt def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) From c91ae9f60a0114e64bd43b849f2d08275f08aaf6 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 23 Mar 2025 15:46:09 -0500 Subject: [PATCH 158/193] Unit tests passed off-axis recurrence --- sumpy/recurrence.py | 10 +++++++--- test/test_recurrence.py | 31 +++++++++++++++---------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 3f8a3032a..a61af5cf1 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -472,10 +472,14 @@ def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOper def get_off_axis_expression(pde, taylor_order=4): r""" A function that takes in as input a pde, and outputs - the Taylor expression that gives the deriv_order th derivative - to a taylor_order order Taylor series with respect to x_1 and + the Taylor expression that gives the n th derivative + as a truncated taylor_order th order Taylor series with respect to x_1 and s(i) where s(i) comes from the off-axis recurrence. See get_reindexed_and_center_origin_off_axis_recurrence. + + Also outputs the -number of coefficients it needs from nth order. + So if it outputs -3 as the second return value, then it needs + s(deriv_order), s(deriv_order-1), ..., s(deriv_order-3). """ s = sp.Function("s") n = sp.symbols("n") @@ -504,4 +508,4 @@ def get_off_axis_expression(pde, taylor_order=4): idx_l, _ = _extract_idx_terms_from_recurrence(exp) exp_range = (min(idx_l), max(idx_l)) - return exp*(-1)**n, exp_range \ No newline at end of file + return exp*(-1)**n, min(idx_l) \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 76d2a3adc..c5be180c7 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -210,7 +210,7 @@ def test_laplace2d(): assert max(abs(abs(check))) <= 1e-12 -def test_helmholtz_2d_off_axis(): +def test_helmholtz_2d_off_axis(deriv_order, exp_order): r""" Tests off-axis recurrence code for orders up to 6 laplace2d. """ @@ -228,7 +228,7 @@ def test_helmholtz_2d_off_axis(): g_x_y = (1j/4) * hankel1(0, k * abs_dist) derivs = [sp.diff(g_x_y, var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(8)] + for i in range(6)] x_coord = 1e-2 * np.random.rand() # noqa: NPY002 y_coord = np.random.rand() # noqa: NPY002 @@ -256,13 +256,10 @@ def test_helmholtz_2d_off_axis(): #print(np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2]))) # CHECK ACCURACY OF EXPRESSION FOR deriv_order - deriv_order = 7 - exp_order = 4 exp, exp_range = get_off_axis_expression(helmholtz2d, exp_order) approx_deriv = exp.subs(n, deriv_order) - exp_range = (exp_range[0]+deriv_order, exp_range[1]+deriv_order) - for i in range(exp_range[0], exp_range[1]+1): + for i in range(exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) rat = coord_dict[var[0]]/coord_dict[var[1]] @@ -273,13 +270,13 @@ def test_helmholtz_2d_off_axis(): print("PREDICTED ERROR: ", prederror) relerr = abs(((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).evalf()) print("RELATIVE ERROR: ", relerr) - print("RATIO: ", rat) - assert relerr <= prederror + print("RATIO(x0/x1): ", rat) + #assert relerr <= prederror -test_helmholtz_2d_off_axis() +test_helmholtz_2d_off_axis(6, 4) -def test_laplace_2d_off_axis(): +def test_laplace_2d_off_axis(deriv_order, exp_order): r""" Tests off-axis recurrence code for orders up to 6 laplace2d. """ @@ -319,13 +316,10 @@ def test_laplace_2d_off_axis(): #print(np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2]))) # CHECK ACCURACY OF EXPRESSION FOR deriv_order - deriv_order = 7 - exp_order = 6 exp, exp_range = get_off_axis_expression(laplace2d, exp_order) approx_deriv = exp.subs(n, deriv_order) - exp_range = (exp_range[0]+deriv_order, exp_range[1]+deriv_order) - for i in range(exp_range[0], exp_range[1]+1): + for i in range(exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) rat = coord_dict[var[0]]/coord_dict[var[1]] @@ -336,8 +330,12 @@ def test_laplace_2d_off_axis(): print("PREDICTED ERROR: ", prederror) relerr = abs((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]) print("RELATIVE ERROR: ", relerr) - print("RATIO: ", rat) - assert relerr <= prederror + print("RATIO(x0/x1): ", rat) + #assert relerr <= prederror + + +test_laplace_2d_off_axis(6, 4) + import matplotlib.pyplot as plt def _plot_laplace_2d(max_order_check, max_abs): @@ -371,6 +369,7 @@ def _plot_laplace_2d(max_order_check, max_abs): return np.array([check[i].subs(coord_dict) for i in range(len(check))]) + """ plot_me = _plot_laplace_2d(13, 1) fig = plt.figure() From c87b3c363509814daecaca4094a26ce03b629a26 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 23 Mar 2025 16:29:30 -0500 Subject: [PATCH 159/193] Simple fill in the blank for off-axis recurrence --- sumpy/recurrence_qbx.py | 88 ++++++--------------- sumpy/recurrence_qbx_old.py | 147 ++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+), 64 deletions(-) create mode 100644 sumpy/recurrence_qbx_old.py diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 27367ea2d..33921346b 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -39,7 +39,7 @@ import numpy as np import sympy as sp -from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence, get_reindexed_and_center_origin_off_axis_recurrence, eval_taylor_recurrence_laplace_processed +from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence # ================ Transform/Rotate ================= @@ -98,38 +98,14 @@ def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, # ------------ 5. Compute recurrence n_initial, order, recurrence = get_reindexed_and_center_origin_on_axis_recurrence(pde) - t_order, t_recurrence = get_reindexed_and_center_origin_off_axis_recurrence(pde) - t_order += 2 # ------------ 6. Set order p = 5 n_p = sources.shape[1] storage = [np.zeros((n_p, n_p))] * order - storage_taylor = [np.zeros((n_p, n_p))] * t_order s = sp.Function("s") n = sp.symbols("n") - def generate_lamb_expr_taylor(i, t_order): - arg_list_taylor = [] - for j in range(t_order, 0, -1): - # pylint: disable-next=not-callable - arg_list_taylor.append(s(i-j)) - for j in range(1, ndim): - arg_list_taylor.append(var[j]) - - lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) - for j in range(ndim): - lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) - - if i < t_order: - lamb_expr_symb = lamb_expr_symb_deriv.subs(var[0], 0) - else: - lamb_expr_symb = t_recurrence.subs(n, i) - - #print(lamb_expr_symb, arg_list_taylor) - - return sp.lambdify(arg_list_taylor, lamb_expr_symb) - def generate_lamb_expr(i, n_initial): arg_list = [] for j in range(order, 0, -1): @@ -141,65 +117,49 @@ def generate_lamb_expr(i, n_initial): lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) - + if i < n_initial: lamb_expr_symb = lamb_expr_symb_deriv else: lamb_expr_symb = recurrence.subs(n, i) #print("=============== ORDER = " + str(i)) #print(lamb_expr_symb) - return sp.lambdify(arg_list, lamb_expr_symb) #, sp.lambdify(arg_list, lamb_expr_symb_deriv) + return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) - interactions = 0 + interactions_on_axis = 0 coord = [cts_r_s[j] for j in range(ndim)] - coord_taylor = [cts_r_s[j] for j in range(1,ndim)] for i in range(p+1): - #lamb_expr, true_lamb_expr = generate_lamb_expr(i, n_initial) lamb_expr = generate_lamb_expr(i, n_initial) - lamb_expr_taylor = generate_lamb_expr_taylor(i, t_order) - - a = [*storage, *coord] - b = [*storage_taylor[-t_order:], *coord_taylor] s_new = lamb_expr(*a) - t_new = lamb_expr_taylor(*b) - storage_taylor.append(t_new) - interactions += s_new * radius**i/math.factorial(i) - mask_off_axis = cts_r_s[1]/cts_r_s[0] > 1 + """ + s_new_true = true_lamb_expr(*a) + arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) + print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) + print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], + "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) + """ - if i > 3: - t_expr = eval_taylor_recurrence_laplace_processed(i) - arg_list_1 = [] - for j in range(2, -1, -1): - # pylint: disable-next=not-callable - arg_list_1.append(s(i-j)) - for j in range(ndim): - arg_list_1.append(var[j]) - f_t_expr = sp.lambdify(arg_list_1, t_expr) - t_new_true = f_t_expr(*[*storage_taylor[-3:], *coord]) * radius**i/math.factorial(i) - interactions[mask_off_axis] = t_new_true[mask_off_axis] + interactions_on_axis += s_new * radius**i/math.factorial(i) - - #s_new_true = true_lamb_expr(*a) - #arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) - #print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) - #print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], - # "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) + storage.pop(0) + storage.append(s_new) - + ### NEW CODE - COMPUTE OFF AXIS INTERACTIONS - #Gives the coordinates where we need an off-axis recurrence - + ################ - storage.pop(0) - storage.append(s_new) + #slope of line y = mx + m = 1e10 + mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) + mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) + interactions_total = np.zeros(coord[0].shape) + interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] - exp_res = (interactions * strengths[None, :]).sum(axis=1) - print(coord_taylor) - print(storage_taylor) + exp_res = (interactions_total * strengths[None, :]).sum(axis=1) - return exp_res + return exp_res \ No newline at end of file diff --git a/sumpy/recurrence_qbx_old.py b/sumpy/recurrence_qbx_old.py new file mode 100644 index 000000000..da00260f1 --- /dev/null +++ b/sumpy/recurrence_qbx_old.py @@ -0,0 +1,147 @@ +r""" +With the functionality in this module, we compute layer potentials +using a recurrence for one-dimensional derivatives of the corresponding +Green's function. See recurrence.py. + +.. autofunction:: recurrence_qbx_lp +""" +from __future__ import annotations + + +__copyright__ = """ +Copyright (C) 2024 Hirish Chandrasekaran +Copyright (C) 2024 Andreas Kloeckner +""" + +__license__ = """ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +import math +from typing import Sequence + +import numpy as np +import sympy as sp + +from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence + + +# ================ Transform/Rotate ================= +def _produce_orthogonal_basis(normals: np.ndarray) -> Sequence[np.ndarray]: + ndim, ncenters = normals.shape + orth_coordsys = [normals] + for i in range(1, ndim): + v = np.random.rand(ndim, ncenters) # noqa: NPY002 + v = v/np.linalg.norm(v, 2, axis=0) + for j in range(i): + v = v - np.einsum("dc,dc->c", v, + orth_coordsys[j]) * orth_coordsys[j] + v = v/np.linalg.norm(v, 2, axis=0) + orth_coordsys.append(v) + + return orth_coordsys + + +def _compute_rotated_shifted_coordinates( + sources: np.ndarray, + centers: np.ndarray, + normals: np.ndarray + ) -> np.ndarray: + cts = sources[:, None] - centers[:, :, None] + orth_coordsys = _produce_orthogonal_basis(normals) + cts_rotated_shifted = np.einsum("idc,dcs->ics", orth_coordsys, cts) + + return cts_rotated_shifted + + +# ================ Recurrence LP Eval ================= +def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, + ndim, p) -> np.ndarray: + r""" + A function that computes a single-layer potential using a recurrence. + + :arg sources: a (ndim, nsources) array of source locations + :arg centers: a (ndim, ncenters) array of center locations + :arg normals: a (ndim, ncenters) array of normals + :arg strengths: array corresponding to quadrature weight multiplied by + density + :arg radius: expansion radius + :arg pde: pde that we are computing layer potential for + :arg g_x_y: a green's function in (x0, x1, ...) source and + (t0, t1, ...) target + :arg ndim: number of spatial variables + :arg p: order of expansion computed + """ + + # ------------- 2. Compute rotated/shifted coordinates + cts_r_s = _compute_rotated_shifted_coordinates(sources, centers, normals) + + # ------------- 4. Define input variables for green's function expression + var = _make_sympy_vec("x", ndim) + var_t = _make_sympy_vec("t", ndim) + + # ------------ 5. Compute recurrence + n_initial, order, recurrence = get_reindexed_and_center_origin_on_axis_recurrence(pde) + + # ------------ 6. Set order p = 5 + n_p = sources.shape[1] + storage = [np.zeros((n_p, n_p))] * order + + s = sp.Function("s") + n = sp.symbols("n") + + def generate_lamb_expr(i, n_initial): + arg_list = [] + for j in range(order, 0, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + + if i < n_initial: + lamb_expr_symb = lamb_expr_symb_deriv + else: + lamb_expr_symb = recurrence.subs(n, i) + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb), sp.lambdify(arg_list, lamb_expr_symb_deriv) + + interactions = 0 + coord = [cts_r_s[j] for j in range(ndim)] + for i in range(p+1): + lamb_expr, true_lamb_expr = generate_lamb_expr(i, n_initial) + a = [*storage, *coord] + s_new = lamb_expr(*a) + s_new_true = true_lamb_expr(*a) + arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) + print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) + print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], + "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) + interactions += s_new * radius**i/math.factorial(i) + + storage.pop(0) + storage.append(s_new) + + exp_res = (interactions * strengths[None, :]).sum(axis=1) + + return exp_res \ No newline at end of file From 3b7d7ef385e4ce61c2553d2a5c793800969a3a42 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 23 Mar 2025 18:41:14 -0500 Subject: [PATCH 160/193] Clear code written to combine off/on-axis recurrence --- sumpy/recurrence.py | 8 ++--- sumpy/recurrence_qbx.py | 69 ++++++++++++++++++++++++++++++++++--- test/test_recurrence_qbx.py | 5 +-- 3 files changed, 69 insertions(+), 13 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index a61af5cf1..0d5a62c65 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -425,7 +425,7 @@ def get_reindexed_and_center_origin_on_axis_recurrence(pde) -> tuple[int, int, return n_initial, order, r_s # ================ OFF-AXIS RECURRENCE ================= -def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) -> sp.Expr: +def _move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) -> sp.Expr: r""" A function that "shifts" the recurrence so it's center is placed at the origin and source is the input for the recurrence generated. @@ -447,14 +447,14 @@ def move_center_origin_source_arbitrary_expression(pde: LinearPDESystemOperator) return r_ret -def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOperator) -> sp.Expr: +def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOperator) -> [int, int, sp.Expr]: r""" A function that takes in as input a pde and outputs a off-axis recurrence for derivatives taken at the origin with an arbitrary source location. The recurrence is reindexed so it gives s(n) in terms of s(n-1), ..., etc. """ var = _make_sympy_vec("x", 1) - r_exp = move_center_origin_source_arbitrary_expression(pde).subs(var[0], 0) + r_exp = _move_center_origin_source_arbitrary_expression(pde).subs(var[0], 0) var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) @@ -469,7 +469,7 @@ def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOper return start_order, recur_order, recur -def get_off_axis_expression(pde, taylor_order=4): +def get_off_axis_expression(pde, taylor_order=4) -> [sp.Expr, int]: r""" A function that takes in as input a pde, and outputs the Taylor expression that gives the n th derivative diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 33921346b..20cbfb791 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -39,7 +39,12 @@ import numpy as np import sympy as sp -from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence +from sumpy.recurrence import ( + _make_sympy_vec, + get_off_axis_expression, + get_reindexed_and_center_origin_off_axis_recurrence, + get_reindexed_and_center_origin_on_axis_recurrence, +) # ================ Transform/Rotate ================= @@ -114,11 +119,10 @@ def generate_lamb_expr(i, n_initial): for j in range(ndim): arg_list.append(var[j]) - lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) - for j in range(ndim): - lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) - if i < n_initial: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) lamb_expr_symb = lamb_expr_symb_deriv else: lamb_expr_symb = recurrence.subs(n, i) @@ -148,7 +152,61 @@ def generate_lamb_expr(i, n_initial): ### NEW CODE - COMPUTE OFF AXIS INTERACTIONS + start_order, t_recur_order, t_recur = get_reindexed_and_center_origin_off_axis_recurrence(pde) + t_exp, t_exp_order = get_off_axis_expression(pde) + storage_taylor_order = max(t_recur_order, t_exp_order+1) + + storage = [np.zeros((n_p, n_p))] * storage_taylor_order + + def gen_lamb_expr_t_recur(i, start_order): + arg_list = [] + for j in range(t_recur_order, 0, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < start_order: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + else: + lamb_expr_symb = t_recur.subs(n, i) + + return lamb_expr_symb + + + def gen_lamb_expr_t_exp(i, t_exp_order): + arg_list = [] + for j in range(t_exp_order, -1, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < t_exp_order: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv.subs(var[0], 0) + else: + lamb_expr_symb = t_exp.subs(n, i) + + return lamb_expr_symb + + interactions_off_axis = 0 + for i in range(p+1): + lamb_expr_t_recur = gen_lamb_expr_t_recur(i, start_order) + a1 = [*storage[:-t_recur_order], *coord] + + storage.pop(0) + storage.append(lamb_expr_t_recur(a1)) + + lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order) + a2 = [*storage[:-(t_exp_order+1)], *coord] + interactions_off_axis += lamb_expr_t_exp(a2) * radius**i/math.factorial(i) ################ @@ -159,6 +217,7 @@ def generate_lamb_expr(i, n_initial): interactions_total = np.zeros(coord[0].shape) interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] + interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] exp_res = (interactions_total * strengths[None, :]).sum(axis=1) diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index a2151eb09..c7ea71bbe 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -303,7 +303,4 @@ def _construct_laplace_axis_2d(orders, resolutions): plt.ylabel("Error") plt.title("2D Ellipse LP Eval Error") plt.legend() -plt.show() - - - +plt.show() \ No newline at end of file From eacdd925e25ef294e12fb18bcb1d7e587e014e0e Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 23 Mar 2025 20:54:07 -0500 Subject: [PATCH 161/193] Issue with mask_off_axis --- sumpy/recurrence.py | 7 ++--- sumpy/recurrence_qbx.py | 59 ++++++++++++++++++++++++++++++------- test/test_recurrence.py | 6 ++-- test/test_recurrence_qbx.py | 7 +++-- 4 files changed, 60 insertions(+), 19 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 0d5a62c65..c07b9de8c 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -477,8 +477,8 @@ def get_off_axis_expression(pde, taylor_order=4) -> [sp.Expr, int]: s(i) where s(i) comes from the off-axis recurrence. See get_reindexed_and_center_origin_off_axis_recurrence. - Also outputs the -number of coefficients it needs from nth order. - So if it outputs -3 as the second return value, then it needs + Also outputs the number of coefficients it needs from nth order. + So if it outputs 3 as the second return value, then it needs s(deriv_order), s(deriv_order-1), ..., s(deriv_order-3). """ s = sp.Function("s") @@ -506,6 +506,5 @@ def get_off_axis_expression(pde, taylor_order=4) -> [sp.Expr, int]: max_idx = max(idx_l) idx_l, _ = _extract_idx_terms_from_recurrence(exp) - exp_range = (min(idx_l), max(idx_l)) - return exp*(-1)**n, min(idx_l) \ No newline at end of file + return exp*(-1)**n, -min(idx_l) \ No newline at end of file diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 20cbfb791..320090ecb 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -156,7 +156,7 @@ def generate_lamb_expr(i, n_initial): t_exp, t_exp_order = get_off_axis_expression(pde) storage_taylor_order = max(t_recur_order, t_exp_order+1) - storage = [np.zeros((n_p, n_p))] * storage_taylor_order + storage_taylor = [np.zeros((n_p, n_p))] * storage_taylor_order def gen_lamb_expr_t_recur(i, start_order): arg_list = [] @@ -170,11 +170,11 @@ def gen_lamb_expr_t_recur(i, start_order): lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) - lamb_expr_symb = lamb_expr_symb_deriv + lamb_expr_symb = lamb_expr_symb_deriv.subs(var[0], 0) else: lamb_expr_symb = t_recur.subs(n, i) - return lamb_expr_symb + return sp.lambdify(arg_list, lamb_expr_symb) def gen_lamb_expr_t_exp(i, t_exp_order): @@ -189,32 +189,71 @@ def gen_lamb_expr_t_exp(i, t_exp_order): lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) - lamb_expr_symb = lamb_expr_symb_deriv.subs(var[0], 0) + lamb_expr_symb = lamb_expr_symb_deriv else: lamb_expr_symb = t_exp.subs(n, i) - return lamb_expr_symb + return sp.lambdify(arg_list, lamb_expr_symb) interactions_off_axis = 0 for i in range(p+1): lamb_expr_t_recur = gen_lamb_expr_t_recur(i, start_order) - a1 = [*storage[:-t_recur_order], *coord] + a1 = [*storage_taylor[(-t_recur_order):], *coord] storage.pop(0) - storage.append(lamb_expr_t_recur(a1)) + storage.append(lamb_expr_t_recur(*a1)) lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order) - a2 = [*storage[:-(t_exp_order+1)], *coord] + a2 = [*storage_taylor[-(t_exp_order+1):], *coord] - interactions_off_axis += lamb_expr_t_exp(a2) * radius**i/math.factorial(i) + interactions_off_axis += lamb_expr_t_exp(*a2) * radius**i/math.factorial(i) ################ + # Compute True Interactions + def generate_true(i): + arg_list = [] + for j in range(ndim): + arg_list.append(var[j]) + + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) + + interactions_true = 0 + for i in range(p+1): + lamb_expr_true = generate_true(i) + a4 = [*coord] + s_new_true = lamb_expr_true(*a4) + interactions_true += s_new_true * radius**i/math.factorial(i) + ############### #slope of line y = mx - m = 1e10 + m = 1e5 mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) + print("-------------------------") + + relerr_on = np.abs(interactions_on_axis[mask_on_axis]-interactions_true[mask_on_axis])/np.abs(interactions_on_axis[mask_on_axis]) + print("MAX ON AXIS ERROR:", np.max(relerr_on)) + print(np.mean(relerr_on)) + print("X:", coord[0].reshape(-1)[np.argmax(relerr_on)]) + print("Y:", coord[1].reshape(-1)[np.argmax(relerr_on)]) + + print("-------------------------") + + if np.any(mask_off_axis): + relerr_off = np.abs(interactions_off_axis[mask_off_axis]-interactions_true[mask_off_axis])/np.abs(interactions_off_axis[mask_off_axis]) + print("MAX OFF AXIS ERROR:", np.max(relerr_off)) + print(np.mean(relerr_off)) + print("X:", coord[0].reshape(-1)[np.argmax(relerr_off)]) + print("Y:", coord[1].reshape(-1)[np.argmax(relerr_off)]) + interactions_total = np.zeros(coord[0].shape) interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] diff --git a/test/test_recurrence.py b/test/test_recurrence.py index c5be180c7..daa47f68a 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -259,7 +259,7 @@ def test_helmholtz_2d_off_axis(deriv_order, exp_order): exp, exp_range = get_off_axis_expression(helmholtz2d, exp_order) approx_deriv = exp.subs(n, deriv_order) - for i in range(exp_range+deriv_order, deriv_order+1): + for i in range(-exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) rat = coord_dict[var[0]]/coord_dict[var[1]] @@ -273,7 +273,7 @@ def test_helmholtz_2d_off_axis(deriv_order, exp_order): print("RATIO(x0/x1): ", rat) #assert relerr <= prederror -test_helmholtz_2d_off_axis(6, 4) +test_helmholtz_2d_off_axis(5, 4) def test_laplace_2d_off_axis(deriv_order, exp_order): @@ -319,7 +319,7 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): exp, exp_range = get_off_axis_expression(laplace2d, exp_order) approx_deriv = exp.subs(n, deriv_order) - for i in range(exp_range+deriv_order, deriv_order+1): + for i in range(-exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) rat = coord_dict[var[0]]/coord_dict[var[1]] diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index c7ea71bbe..8aad16b02 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -295,12 +295,15 @@ def _construct_laplace_axis_2d(orders, resolutions): import matplotlib.pyplot as plt orders = [10] -resolutions = range(200, 800, 200) +#resolutions = range(200, 800, 200) +resolutions = [800] err_mat = _construct_laplace_axis_2d(orders, resolutions) +""" for i in range(len(orders)): plt.plot(resolutions, err_mat[i], label="order ="+str(orders[i])) plt.xlabel("Number of Nodes") plt.ylabel("Error") plt.title("2D Ellipse LP Eval Error") plt.legend() -plt.show() \ No newline at end of file +plt.show() +""" \ No newline at end of file From 5f57f8f3b1c56b61401ee36d15e13f2c2de5c4f6 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 24 Mar 2025 01:05:11 -0500 Subject: [PATCH 162/193] On vs On+Off --- sumpy/recurrence_qbx.py | 13 ++++++++++--- test/test_recurrence_qbx.py | 5 ++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 320090ecb..aa5c00089 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -233,14 +233,17 @@ def generate_true(i): ############### #slope of line y = mx - m = 1e5 + m = 15000 * 1e3 mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) print("-------------------------") + percent_on = np.sum(mask_on_axis)/(mask_on_axis.shape[0]*mask_on_axis.shape[1]) + percent_off = 1-percent_on + relerr_on = np.abs(interactions_on_axis[mask_on_axis]-interactions_true[mask_on_axis])/np.abs(interactions_on_axis[mask_on_axis]) - print("MAX ON AXIS ERROR:", np.max(relerr_on)) + print("MAX ON AXIS ERROR(", percent_on, "):", np.max(relerr_on)) print(np.mean(relerr_on)) print("X:", coord[0].reshape(-1)[np.argmax(relerr_on)]) print("Y:", coord[1].reshape(-1)[np.argmax(relerr_on)]) @@ -249,7 +252,7 @@ def generate_true(i): if np.any(mask_off_axis): relerr_off = np.abs(interactions_off_axis[mask_off_axis]-interactions_true[mask_off_axis])/np.abs(interactions_off_axis[mask_off_axis]) - print("MAX OFF AXIS ERROR:", np.max(relerr_off)) + print("MAX OFF AXIS ERROR(", percent_off, "):", np.max(relerr_off)) print(np.mean(relerr_off)) print("X:", coord[0].reshape(-1)[np.argmax(relerr_off)]) print("Y:", coord[1].reshape(-1)[np.argmax(relerr_off)]) @@ -259,5 +262,9 @@ def generate_true(i): interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] exp_res = (interactions_total * strengths[None, :]).sum(axis=1) + exp_res_true = (interactions_true * strengths[None, :]).sum(axis=1) + + relerr_total = np.max(np.abs(exp_res-exp_res_true)/np.abs(exp_res_true)) + print("OVERALL ERROR:", relerr_total) return exp_res \ No newline at end of file diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 8aad16b02..24c3b9274 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -296,9 +296,9 @@ def _construct_laplace_axis_2d(orders, resolutions): import matplotlib.pyplot as plt orders = [10] #resolutions = range(200, 800, 200) -resolutions = [800] +resolutions = [800, 1000] err_mat = _construct_laplace_axis_2d(orders, resolutions) -""" + for i in range(len(orders)): plt.plot(resolutions, err_mat[i], label="order ="+str(orders[i])) plt.xlabel("Number of Nodes") @@ -306,4 +306,3 @@ def _construct_laplace_axis_2d(orders, resolutions): plt.title("2D Ellipse LP Eval Error") plt.legend() plt.show() -""" \ No newline at end of file From d94d5812d49e1e2669c912d511bba00fca6264fc Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 24 Mar 2025 13:33:35 -0500 Subject: [PATCH 163/193] Novelty --- sumpy/recurrence_qbx.py | 2 +- test/test_recurrence.py | 66 +++++++++++++++++++++++++++---------- test/test_recurrence_qbx.py | 6 ++-- 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index aa5c00089..fb713e9ee 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -233,7 +233,7 @@ def generate_true(i): ############### #slope of line y = mx - m = 15000 * 1e3 + m = 1e5/2 mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index daa47f68a..ce5369abf 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -273,22 +273,22 @@ def test_helmholtz_2d_off_axis(deriv_order, exp_order): print("RATIO(x0/x1): ", rat) #assert relerr <= prederror -test_helmholtz_2d_off_axis(5, 4) - +max_deriv = 21 +var = _make_sympy_vec("x", 2) +var_t = _make_sympy_vec("t", 2) +g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) +derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(max_deriv)] def test_laplace_2d_off_axis(deriv_order, exp_order): r""" Tests off-axis recurrence code for orders up to 6 laplace2d. """ s = sp.Function("s") - var = _make_sympy_vec("x", 2) - var_t = _make_sympy_vec("t", 2) - g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) - derivs = [sp.diff(g_x_y, - var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(15)] - x_coord = 1e-2 * np.random.rand() # noqa: NPY002 - y_coord = np.random.rand() # noqa: NPY002 + + x_coord = -0.0009025550989241182#1e-2 * np.random.rand() # noqa: NPY002 + y_coord = 0.05495017991244575#np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} w = make_identity_diff_op(2) @@ -302,7 +302,7 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): ic.append(derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]])) n = sp.symbols("n") - for i in range(start_order, 15): + for i in range(start_order, max_deriv): recur_eval = recur.subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).subs(n, i) for j in range(i-recur_order, i): recur_eval = recur_eval.subs(s(j), ic[j]) @@ -310,9 +310,9 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): ic = np.array(ic) - true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(15)]) + #true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(max_deriv)]) - assert np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2])) < 1e-8 + #assert np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2])) < 1e-8 #print(np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2]))) # CHECK ACCURACY OF EXPRESSION FOR deriv_order @@ -321,23 +321,53 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): approx_deriv = exp.subs(n, deriv_order) for i in range(-exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) - + + """ rat = coord_dict[var[0]]/coord_dict[var[1]] if deriv_order + exp_order % 2 == 0: prederror = abs(ic[deriv_order+exp_order+2] * coord_dict[var[0]]**(exp_order+2)/math.factorial(exp_order+2)) else: prederror = abs(ic[deriv_order+exp_order+1] * coord_dict[var[0]]**(exp_order+1)/math.factorial(exp_order+1)) print("PREDICTED ERROR: ", prederror) + """ + relerr = abs((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]) - print("RELATIVE ERROR: ", relerr) - print("RATIO(x0/x1): ", rat) + #print("RELATIVE ERROR: ", relerr) + #print("RATIO(x0/x1): ", rat) + + return relerr #assert relerr <= prederror -test_laplace_2d_off_axis(6, 4) +import matplotlib.pyplot as plt + +orders_for_plot = [5, 7, 9] +exp_orders = [4, 5, 6, 7, 8] + +X_P = [] +for i in exp_orders: + TEMP = [] + for j in orders_for_plot: + TEMP.append(test_laplace_2d_off_axis(j, i)) + X_P.append(TEMP) + +fig, ax = plt.subplots() + +for i in range(len(exp_orders)): + ax.plot(orders_for_plot, X_P[i], label="EXP ORDER: " +str(exp_orders[i])) + +ax.set_yscale('log') +ax.set_xlabel('Deriv Order') +ax.set_ylabel('Error') +plt.legend() +plt.show() + + + + + -import matplotlib.pyplot as plt def _plot_laplace_2d(max_order_check, max_abs): w = make_identity_diff_op(2) laplace2d = laplacian(w) diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 24c3b9274..56aba1093 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -294,13 +294,13 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [10] +orders = [10, 12] #resolutions = range(200, 800, 200) -resolutions = [800, 1000] +resolutions = [800, 1000, 1200] err_mat = _construct_laplace_axis_2d(orders, resolutions) for i in range(len(orders)): - plt.plot(resolutions, err_mat[i], label="order ="+str(orders[i])) + plt.plot(resolutions, err_mat[i], label="order QBX="+str(orders[i])) plt.xlabel("Number of Nodes") plt.ylabel("Error") plt.title("2D Ellipse LP Eval Error") From 4afe3f466f4d12ffa8c0c5c81ec69ef7a4872c18 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 26 Mar 2025 11:58:20 -0500 Subject: [PATCH 164/193] Mismatch in taylor error vs taylor error in qbx --- sumpy/recurrence_qbx.py | 25 ++++++++++++++----------- test/test_recurrence.py | 33 ++++++++++++++++++--------------- test/test_recurrence_qbx.py | 4 ++-- 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index fb713e9ee..0bcd84212 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -153,11 +153,10 @@ def generate_lamb_expr(i, n_initial): ### NEW CODE - COMPUTE OFF AXIS INTERACTIONS start_order, t_recur_order, t_recur = get_reindexed_and_center_origin_off_axis_recurrence(pde) - t_exp, t_exp_order = get_off_axis_expression(pde) + t_exp, t_exp_order = get_off_axis_expression(pde, 8) storage_taylor_order = max(t_recur_order, t_exp_order+1) storage_taylor = [np.zeros((n_p, n_p))] * storage_taylor_order - def gen_lamb_expr_t_recur(i, start_order): arg_list = [] for j in range(t_recur_order, 0, -1): @@ -230,13 +229,16 @@ def generate_true(i): a4 = [*coord] s_new_true = lamb_expr_true(*a4) interactions_true += s_new_true * radius**i/math.factorial(i) + ############### #slope of line y = mx - m = 1e5/2 + m = 100 mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) + + print("-------------------------") percent_on = np.sum(mask_on_axis)/(mask_on_axis.shape[0]*mask_on_axis.shape[1]) @@ -245,26 +247,27 @@ def generate_true(i): relerr_on = np.abs(interactions_on_axis[mask_on_axis]-interactions_true[mask_on_axis])/np.abs(interactions_on_axis[mask_on_axis]) print("MAX ON AXIS ERROR(", percent_on, "):", np.max(relerr_on)) print(np.mean(relerr_on)) - print("X:", coord[0].reshape(-1)[np.argmax(relerr_on)]) - print("Y:", coord[1].reshape(-1)[np.argmax(relerr_on)]) + print("X:", coord[0][mask_on_axis].reshape(-1)[np.argmax(relerr_on)]) + print("Y:", coord[1][mask_on_axis].reshape(-1)[np.argmax(relerr_on)]) print("-------------------------") - + if np.any(mask_off_axis): relerr_off = np.abs(interactions_off_axis[mask_off_axis]-interactions_true[mask_off_axis])/np.abs(interactions_off_axis[mask_off_axis]) print("MAX OFF AXIS ERROR(", percent_off, "):", np.max(relerr_off)) print(np.mean(relerr_off)) - print("X:", coord[0].reshape(-1)[np.argmax(relerr_off)]) - print("Y:", coord[1].reshape(-1)[np.argmax(relerr_off)]) + print("X:", coord[0][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) + print("Y:", coord[1][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) + interactions_total = np.zeros(coord[0].shape) interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] exp_res = (interactions_total * strengths[None, :]).sum(axis=1) - exp_res_true = (interactions_true * strengths[None, :]).sum(axis=1) + #exp_res_true = (interactions_true * strengths[None, :]).sum(axis=1) - relerr_total = np.max(np.abs(exp_res-exp_res_true)/np.abs(exp_res_true)) - print("OVERALL ERROR:", relerr_total) + #relerr_total = np.max(np.abs(exp_res-exp_res_true)/np.abs(exp_res_true)) + #print("OVERALL ERROR:", relerr_total) return exp_res \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py index ce5369abf..cfe935091 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -273,22 +273,22 @@ def test_helmholtz_2d_off_axis(deriv_order, exp_order): print("RATIO(x0/x1): ", rat) #assert relerr <= prederror -max_deriv = 21 -var = _make_sympy_vec("x", 2) -var_t = _make_sympy_vec("t", 2) -g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) -derivs = [sp.diff(g_x_y, - var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(max_deriv)] def test_laplace_2d_off_axis(deriv_order, exp_order): r""" Tests off-axis recurrence code for orders up to 6 laplace2d. """ + max_deriv = deriv_order+exp_order+2 + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(max_deriv)] s = sp.Function("s") - x_coord = -0.0009025550989241182#1e-2 * np.random.rand() # noqa: NPY002 - y_coord = 0.05495017991244575#np.random.rand() # noqa: NPY002 + x_coord = 0.0002934165818751001#1e-2 * np.random.rand() # noqa: NPY002 + y_coord = 0.06272081418069221#np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} w = make_identity_diff_op(2) @@ -322,23 +322,26 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): for i in range(-exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) - """ + rat = coord_dict[var[0]]/coord_dict[var[1]] if deriv_order + exp_order % 2 == 0: prederror = abs(ic[deriv_order+exp_order+2] * coord_dict[var[0]]**(exp_order+2)/math.factorial(exp_order+2)) else: prederror = abs(ic[deriv_order+exp_order+1] * coord_dict[var[0]]**(exp_order+1)/math.factorial(exp_order+1)) print("PREDICTED ERROR: ", prederror) - """ + relerr = abs((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]) - #print("RELATIVE ERROR: ", relerr) - #print("RATIO(x0/x1): ", rat) + print("RELATIVE ERROR: ", relerr) + print("RATIO(x0/x1): ", rat) + assert relerr <= prederror return relerr - #assert relerr <= prederror +test_laplace_2d_off_axis(7, 8) + +""" import matplotlib.pyplot as plt orders_for_plot = [5, 7, 9] @@ -361,7 +364,7 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): ax.set_ylabel('Error') plt.legend() plt.show() - +""" diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 56aba1093..de28c9e78 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -294,9 +294,9 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [10, 12] +orders = [7] #resolutions = range(200, 800, 200) -resolutions = [800, 1000, 1200] +resolutions = [400] err_mat = _construct_laplace_axis_2d(orders, resolutions) for i in range(len(orders)): From a77773da75746762196d50d1b058f3538420fe45 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 26 Mar 2025 15:57:47 -0500 Subject: [PATCH 165/193] Culprit for error found, bug in n =1 off-axis expression for derivative --- sumpy/recurrence_qbx.py | 8 ++++---- test/test_recurrence.py | 6 +++--- test/test_recurrence_qbx.py | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 0bcd84212..0041004cd 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -194,13 +194,14 @@ def gen_lamb_expr_t_exp(i, t_exp_order): return sp.lambdify(arg_list, lamb_expr_symb) + interactions_off_axis = 0 for i in range(p+1): lamb_expr_t_recur = gen_lamb_expr_t_recur(i, start_order) a1 = [*storage_taylor[(-t_recur_order):], *coord] - storage.pop(0) - storage.append(lamb_expr_t_recur(*a1)) + storage_taylor.pop(0) + storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((n_p, n_p))) lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order) a2 = [*storage_taylor[-(t_exp_order+1):], *coord] @@ -209,6 +210,7 @@ def gen_lamb_expr_t_exp(i, t_exp_order): ################ # Compute True Interactions + storage_taylor_true = [np.zeros((n_p, n_p))] * storage_taylor_order def generate_true(i): arg_list = [] for j in range(ndim): @@ -237,8 +239,6 @@ def generate_true(i): mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) - - print("-------------------------") percent_on = np.sum(mask_on_axis)/(mask_on_axis.shape[0]*mask_on_axis.shape[1]) diff --git a/test/test_recurrence.py b/test/test_recurrence.py index cfe935091..953398f59 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -287,8 +287,8 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): for i in range(max_deriv)] s = sp.Function("s") - x_coord = 0.0002934165818751001#1e-2 * np.random.rand() # noqa: NPY002 - y_coord = 0.06272081418069221#np.random.rand() # noqa: NPY002 + x_coord = 0.0006490822305146929#1e-2 * np.random.rand() # noqa: NPY002 + y_coord = -0.06766742499535426#np.random.rand() # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} w = make_identity_diff_op(2) @@ -338,7 +338,7 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): assert relerr <= prederror return relerr -test_laplace_2d_off_axis(7, 8) +test_laplace_2d_off_axis(1, 8) """ diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index de28c9e78..feecaccb1 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -294,7 +294,7 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [7] +orders = [1] #resolutions = range(200, 800, 200) resolutions = [400] err_mat = _construct_laplace_axis_2d(orders, resolutions) From c469921f2a26619f9d8aa5c86c2f45705783851f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 27 Mar 2025 11:44:09 -0500 Subject: [PATCH 166/193] Truncation error eradicated :). Check helmholtz next --- sumpy/recurrence.py | 10 +++++++--- sumpy/recurrence_qbx.py | 14 ++++++-------- test/test_recurrence.py | 6 ++++-- test/test_recurrence_qbx.py | 10 +++++----- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index c07b9de8c..249843deb 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -473,19 +473,23 @@ def get_off_axis_expression(pde, taylor_order=4) -> [sp.Expr, int]: r""" A function that takes in as input a pde, and outputs the Taylor expression that gives the n th derivative - as a truncated taylor_order th order Taylor series with respect to x_1 and + as a truncated taylor_order th order Taylor series with respect to x_0 and s(i) where s(i) comes from the off-axis recurrence. See get_reindexed_and_center_origin_off_axis_recurrence. Also outputs the number of coefficients it needs from nth order. So if it outputs 3 as the second return value, then it needs s(deriv_order), s(deriv_order-1), ..., s(deriv_order-3). + + YOU CANNOT SUB N < START_ORDER INTO THE OUTPUTTED EXPRESSION. + I CANNOT REARRANGE THE EXPRESSION IN THIS CASE TO HAVE INDICES + LOWER THAN THE SUBSITUTED N VALUE. """ s = sp.Function("s") n = sp.symbols("n") deriv_order = n - t_recurrence = get_reindexed_and_center_origin_off_axis_recurrence(pde)[2] + start_order, _, t_recurrence = get_reindexed_and_center_origin_off_axis_recurrence(pde) var = _make_sympy_vec("x", 2) exp = 0 for i in range(taylor_order+1): @@ -507,4 +511,4 @@ def get_off_axis_expression(pde, taylor_order=4) -> [sp.Expr, int]: idx_l, _ = _extract_idx_terms_from_recurrence(exp) - return exp*(-1)**n, -min(idx_l) \ No newline at end of file + return exp*(-1)**n, -min(idx_l), start_order \ No newline at end of file diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index 0041004cd..d33884347 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -153,7 +153,7 @@ def generate_lamb_expr(i, n_initial): ### NEW CODE - COMPUTE OFF AXIS INTERACTIONS start_order, t_recur_order, t_recur = get_reindexed_and_center_origin_off_axis_recurrence(pde) - t_exp, t_exp_order = get_off_axis_expression(pde, 8) + t_exp, t_exp_order, _ = get_off_axis_expression(pde, 8) storage_taylor_order = max(t_recur_order, t_exp_order+1) storage_taylor = [np.zeros((n_p, n_p))] * storage_taylor_order @@ -176,7 +176,7 @@ def gen_lamb_expr_t_recur(i, start_order): return sp.lambdify(arg_list, lamb_expr_symb) - def gen_lamb_expr_t_exp(i, t_exp_order): + def gen_lamb_expr_t_exp(i, t_exp_order, start_order): arg_list = [] for j in range(t_exp_order, -1, -1): # pylint: disable-next=not-callable @@ -184,7 +184,7 @@ def gen_lamb_expr_t_exp(i, t_exp_order): for j in range(ndim): arg_list.append(var[j]) - if i < t_exp_order: + if i < start_order: lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) @@ -203,7 +203,7 @@ def gen_lamb_expr_t_exp(i, t_exp_order): storage_taylor.pop(0) storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((n_p, n_p))) - lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order) + lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order, start_order) a2 = [*storage_taylor[-(t_exp_order+1):], *coord] interactions_off_axis += lamb_expr_t_exp(*a2) * radius**i/math.factorial(i) @@ -231,7 +231,6 @@ def generate_true(i): a4 = [*coord] s_new_true = lamb_expr_true(*a4) interactions_true += s_new_true * radius**i/math.factorial(i) - ############### #slope of line y = mx @@ -251,14 +250,13 @@ def generate_true(i): print("Y:", coord[1][mask_on_axis].reshape(-1)[np.argmax(relerr_on)]) print("-------------------------") - + if np.any(mask_off_axis): relerr_off = np.abs(interactions_off_axis[mask_off_axis]-interactions_true[mask_off_axis])/np.abs(interactions_off_axis[mask_off_axis]) print("MAX OFF AXIS ERROR(", percent_off, "):", np.max(relerr_off)) print(np.mean(relerr_off)) print("X:", coord[0][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) - print("Y:", coord[1][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) - + print("Y:", coord[1][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) interactions_total = np.zeros(coord[0].shape) interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 953398f59..0a6aa5a9c 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -257,7 +257,7 @@ def test_helmholtz_2d_off_axis(deriv_order, exp_order): # CHECK ACCURACY OF EXPRESSION FOR deriv_order - exp, exp_range = get_off_axis_expression(helmholtz2d, exp_order) + exp, exp_range, _ = get_off_axis_expression(helmholtz2d, exp_order) approx_deriv = exp.subs(n, deriv_order) for i in range(-exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) @@ -317,7 +317,9 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): # CHECK ACCURACY OF EXPRESSION FOR deriv_order - exp, exp_range = get_off_axis_expression(laplace2d, exp_order) + exp, exp_range, start_order = get_off_axis_expression(laplace2d, exp_order) + + assert deriv_order >= start_order approx_deriv = exp.subs(n, deriv_order) for i in range(-exp_range+deriv_order, deriv_order+1): approx_deriv = approx_deriv.subs(s(i), ic[i]) diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index feecaccb1..732622fdb 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -294,15 +294,15 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [1] +orders = [10, 16] #resolutions = range(200, 800, 200) -resolutions = [400] +resolutions = [400, 800, 1200] err_mat = _construct_laplace_axis_2d(orders, resolutions) for i in range(len(orders)): - plt.plot(resolutions, err_mat[i], label="order QBX="+str(orders[i])) + plt.scatter(resolutions, err_mat[i], label="order QBX="+str(orders[i])) plt.xlabel("Number of Nodes") -plt.ylabel("Error") -plt.title("2D Ellipse LP Eval Error") +plt.ylabel("Relative Error") +plt.title("2D Ellipse LP Eval Error (m=10)") plt.legend() plt.show() From 7afd5fcdeb2d7f409c437c62c137883041ce78ff Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 2 Apr 2025 21:26:09 -0500 Subject: [PATCH 167/193] Ratio seems to determine relative error in each iteration --- test/gridfree_taylor_recurrence.ipynb | 88 ++++++++------ test/investigate_normal.py | 148 +++++++++++++++++++++++ test/investigate_normal_recurrence.ipynb | 140 +++++++++++++++++++++ test/testing_pde_to_ode.ipynb | 51 ++++++-- 4 files changed, 381 insertions(+), 46 deletions(-) create mode 100644 test/investigate_normal.py create mode 100644 test/investigate_normal_recurrence.ipynb diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb index 91e5571b7..11c99e9a5 100644 --- a/test/gridfree_taylor_recurrence.ipynb +++ b/test/gridfree_taylor_recurrence.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -35,19 +35,18 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "var = _make_sympy_vec(\"x\", 2)\n", "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")\n", - "i = sp.symbols(\"i\")" + "n = sp.symbols(\"n\")" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -59,70 +58,81 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + "derivs_laplace = [g_x_y.subs(var_t[0], 0).subs(var_t[1], 0).diff(var[0], i)\n", + " for i in range(8)]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\frac{2 s{\\left(1 \\right)}}{x_{1}^{2}}$" + "$\\displaystyle - \\frac{5040}{x_{1}^{8}}$" ], "text/plain": [ - "2*s(1)/x1**2" + "-5040/x1**8" ] }, - "execution_count": 4, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "get_reindexed_and_center_origin_off_axis_recurrence(laplace2d)[2].subs(n, 3)" + "i=4\n", + "j=4\n", + "derivs_laplace[i].diff(var[0], j).subs(var[0], 0)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(x0**3*(((-6*n + (n + 2)**2 - 4)*s(n - 3)/x1**2 + (-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2)*(-5*n + (n + 4)**2 - 14)/(6*x1**2) + (-6*n + (n + 4)**2 - 16)*s(n - 1)/(6*x1**2)) + x0**2*((-6*n + (n + 3)**2 - 10)*s(n - 2)/(2*x1**2) + (-5*n + (n + 3)**2 - 9)*s(n)/(2*x1**2)) + x0*((-6*n + (n + 2)**2 - 4)*s(n - 3)/x1**2 + (-5*n + (n + 2)**2 - 4)*s(n - 1)/x1**2) + (-6*n + (n + 1)**2 + 2)*s(n - 4)/x1**2 + (-5*n + (n + 1)**2 + 1)*s(n - 2)/x1**2,\n", - " 4)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "exp = get_off_axis_expression(helmholtz2d)\n", - "exp" + "k = 1\n", + "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + "derivs_helmholtz = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(6)]" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 1, "metadata": {}, "outputs": [ { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{x_{0}^{3} \\left(- x_{1}^{2} \\left(6 n - \\left(n + 4\\right)^{2} + 16\\right) s{\\left(n - 1 \\right)} + \\left(\\left(5 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 1 \\right)} + \\left(6 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 3 \\right)}\\right) \\left(5 n - \\left(n + 4\\right)^{2} + 14\\right)\\right) + 3 x_{1}^{2} \\left(- x_{0}^{2} \\left(\\left(5 n - \\left(n + 3\\right)^{2} + 9\\right) s{\\left(n \\right)} + \\left(6 n - \\left(n + 3\\right)^{2} + 10\\right) s{\\left(n - 2 \\right)}\\right) - 2 x_{0} \\left(\\left(5 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 1 \\right)} + \\left(6 n - \\left(n + 2\\right)^{2} + 4\\right) s{\\left(n - 3 \\right)}\\right) + 2 \\left(- 6 n + \\left(n + 1\\right)^{2} + 2\\right) s{\\left(n - 4 \\right)} + 2 \\left(- 5 n + \\left(n + 1\\right)^{2} + 1\\right) s{\\left(n - 2 \\right)}\\right)}{6 x_{1}^{4}}$" - ], - "text/plain": [ - "(x0**3*(-x1**2*(6*n - (n + 4)**2 + 16)*s(n - 1) + ((5*n - (n + 2)**2 + 4)*s(n - 1) + (6*n - (n + 2)**2 + 4)*s(n - 3))*(5*n - (n + 4)**2 + 14)) + 3*x1**2*(-x0**2*((5*n - (n + 3)**2 + 9)*s(n) + (6*n - (n + 3)**2 + 10)*s(n - 2)) - 2*x0*((5*n - (n + 2)**2 + 4)*s(n - 1) + (6*n - (n + 2)**2 + 4)*s(n - 3)) + 2*(-6*n + (n + 1)**2 + 2)*s(n - 4) + 2*(-5*n + (n + 1)**2 + 1)*s(n - 2)))/(6*x1**4)" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" + "ename": "NameError", + "evalue": "name 'derivs_helmholtz' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mderivs_helmholtz\u001b[49m[\u001b[38;5;241m4\u001b[39m]\u001b[38;5;241m.\u001b[39mdiff(var[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n", + "\u001b[0;31mNameError\u001b[0m: name 'derivs_helmholtz' is not defined" + ] } ], "source": [ - "exp[0].simplify()" + "derivs_helmholtz[4].diff(var[1], 0).subs(var[1], 0)" ] }, { diff --git a/test/investigate_normal.py b/test/investigate_normal.py new file mode 100644 index 000000000..0ddb650dc --- /dev/null +++ b/test/investigate_normal.py @@ -0,0 +1,148 @@ +# %% +from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence + +from sumpy.expansion.diff_op import ( + laplacian, + make_identity_diff_op, +) + + +import sympy as sp +from sympy import hankel1 + +import numpy as np + +import math + +import matplotlib.pyplot as plt +from matplotlib import cm, ticker + +# %% +w = make_identity_diff_op(2) +laplace2d = laplacian(w) +n_init_lap, order_lap, recur_laplace = get_reindexed_and_center_origin_on_axis_recurrence(laplace2d) + +w = make_identity_diff_op(2) +helmholtz2d = laplacian(w) + w +n_init_helm, order_helm, recur_helmholtz = get_reindexed_and_center_origin_on_axis_recurrence(helmholtz2d) + +# %% +var = _make_sympy_vec("x", 2) +rct = sp.symbols("r_{ct}") +s = sp.Function("s") +n = sp.symbols("n") + +# %% +def compute_derivatives(p): + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(p)] + return derivs +l_max = 10 +derivs_laplace = compute_derivatives(l_max) + +# %% +def compute_derivatives_h2d(p): + k = 1 + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2) + g_x_y = (1j/4) * hankel1(0, k * abs_dist) + derivs_helmholtz = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(p)] + return derivs_helmholtz +h_max = 8 +#derivs_helmholtz = compute_derivatives_h2d(h_max) + +# %% +def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list, n_initial, n_order): + s = sp.Function("s") + subs_dict = {} + for i in range(n_initial-n_order, 0): + subs_dict[s(i)] = 0 + for i in range(n_initial): + subs_dict[s(i)] = derivs_list[i].subs(coord_dict) + var = _make_sympy_vec("x", 2) + for i in range(n_initial, p): + exp = recur.subs(n, i) + f = sp.lambdify([var[0], var[1]] + [s(i-(1+k)) for k in range(n_order-1)], exp) + subs_dict[s(i)] = f(*([coord_dict[var[0]], coord_dict[var[1]]] + [subs_dict[s(i-(1+k))] for k in range(n_order-1)])) + for i in range(n_initial-n_order, 0): + subs_dict.pop(s(i)) + return np.array(list(subs_dict.values())) + +# %% +def evaluate_true(coord_dict, p, derivs_list): + retMe = [] + for i in range(p): + exp = derivs_list[i] + f = sp.lambdify(var, exp) + retMe.append(f(coord_dict[var[0]], coord_dict[var[1]])) + return np.array(retMe) + +# %% +def compute_error_coord(recur, loc, order, derivs_list, n_initial, n_order): + var = _make_sympy_vec("x", 2) + coord_dict = {var[0]: loc[0], var[1]: loc[1]} + + exp = evaluate_recurrence_lamb(coord_dict, recur, order+1, derivs_list, n_initial, n_order)[order].evalf() + + true = derivs_list[order].subs(coord_dict).evalf() + + return (np.abs(exp-true)/np.abs(true)) + +# %% +def generate_error_grid(res, order_plot, recur, derivs, n_initial, n_order): + x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] + y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] + res=len(x_grid) + plot_me = np.empty((res, res)) + for i in range(res): + for j in range(res): + if abs(x_grid[i]) == abs(y_grid[j]): + plot_me[i, j] = 1e-16 + else: + plot_me[i,j] = compute_error_coord(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs, n_initial, n_order) + if plot_me[i,j] == 0: + plot_me[i, j] = 1e-16 + return x_grid, y_grid, plot_me + +# %% +order_plot = 5 +#x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm) +x_grid, y_grid, plot_me_lap = generate_error_grid(res=10, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap) +plot_me_hem = plot_me_lap + + +fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8)) +cs = ax1.contourf(x_grid, y_grid, plot_me_hem.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r) +cbar = fig.colorbar(cs) + +cs = ax2.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r) +cbar = fig.colorbar(cs) +ax1.set_xscale('log') +ax1.set_yscale('log') +ax1.set_xlabel("source x-coord", fontsize=15) +ax1.set_ylabel("source y-coord", fontsize=15) + + +ax2.set_xscale('log') +ax2.set_yscale('log') +ax2.set_xlabel("source x-coord", fontsize=15) +ax2.set_ylabel("source y-coord", fontsize=15) + +ax1.set_title("Helmholtz recurrence relative error for order = "+str(order_plot), fontsize=15) +ax2.set_title("Laplace recurrence relative error for order = "+str(order_plot), fontsize=15) + +fig.savefig('order'+str(order_plot)) +plt.show() + +# %% + + + diff --git a/test/investigate_normal_recurrence.ipynb b/test/investigate_normal_recurrence.ipynb new file mode 100644 index 000000000..a5266c9a7 --- /dev/null +++ b/test/investigate_normal_recurrence.ipynb @@ -0,0 +1,140 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "\n", + "\n", + "import sympy as sp\n", + "from sympy import hankel1\n", + "\n", + "import numpy as np\n", + "\n", + "import math\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm, ticker" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "n_init_lap, order_lap, recur_laplace = get_reindexed_and_center_origin_on_axis_recurrence(laplace2d)\n", + "\n", + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "n_init_helm, order_helm, recur_helmholtz = get_reindexed_and_center_origin_on_axis_recurrence(helmholtz2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "rct = sp.symbols(\"r_{ct}\")\n", + "s = sp.Function(\"s\")\n", + "n = sp.symbols(\"n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "l_max = 15\n", + "derivs_laplace = compute_derivatives(l_max)\n", + "derivs_laplace_dict = dict(zip([s(i) for i in range(l_max)], [derivs_laplace[i] for i in range(l_max)]))" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_rel_err(nsub):\n", + " return abs((recur_laplace.subs(n, nsub).subs(derivs_laplace_dict).subs(coord_dict) - derivs_laplace[nsub].subs(coord_dict))/derivs_laplace[nsub].subs(coord_dict))" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[157808.698639465, -0.0192899732808462, -157808.695424469]\n", + "ratio: 8180866.62650587 ||||| digits: 6.912799312372245 |||| pred error: 1e-9\n", + "rel. error: 3.79540550438624e-10\n" + ] + } + ], + "source": [ + "nsub = 5\n", + "coord_dict = {var[0]: 0.0001 * np.random.rand(), var[1]: np.random.rand()}\n", + "recur_coeffs_lap = sp.poly(recur_laplace.subs(n, nsub), [s(i) for i in range(nsub - order_lap, nsub)]).coeffs()\n", + "#[i+nsub-order_lap for i in range(len(recur_coeffs_lap))]\n", + "coeffs_sub = [(recur_coeffs_lap[i]*derivs_laplace[i+nsub-order_lap]).subs(coord_dict) for i in range(len(recur_coeffs_lap))]\n", + "print(coeffs_sub)\n", + "ratio = np.abs(coeffs_sub[0]/coeffs_sub[1])\n", + "print(\"ratio: \", ratio, \"||||| digits: \",np.log10(float(ratio)), \"|||| pred error: 1e-\"+str(int(16-np.ceil(np.log10(float(ratio))))))\n", + "print(\"rel. error: \", compute_rel_err(nsub))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index 502ac9820..fc9778e98 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -2,18 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "from sumpy.recurrence import _make_sympy_vec\n", "\n", "from sumpy.expansion.diff_op import (\n", " laplacian,\n", " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence, _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x, recurrence_from_pde, process_recurrence_relation,ode_in_x_to_coeff_array, recurrence_from_coeff_array, shift_recurrence\n", + "from sumpy.recurrence import _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x, recurrence_from_pde,ode_in_x_to_coeff_array, recurrence_from_coeff_array\n", "\n", "import sympy as sp\n", "from sympy import hankel1\n", @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -51,11 +51,48 @@ "cell_type": "code", "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{f_{r1}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + f_{r2}$" + ], + "text/plain": [ + "f_r1/sqrt(x0**2 + x1**2) + f_r2" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ode_in_r, var, ode_order = pde_to_ode_in_r(laplace2d)\n", "ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify()\n", - "ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify()" + "ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify()\n", + "ode_in_r.simplify()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{f_r0: f_x0,\n", + " f_r1: f_x1*sqrt(x0**2 + x1**2)/x0,\n", + " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2}" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "_generate_nd_derivative_relations(var, 2)" ] }, { From f916f7f286b610889af918c72faa4ad8822a3c3d Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 3 Apr 2025 22:32:53 -0500 Subject: [PATCH 168/193] Update testing_pde_to_ode.ipynb --- test/testing_pde_to_ode.ipynb | 112 ++++++++++++++++++++++++++++++---- 1 file changed, 99 insertions(+), 13 deletions(-) diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index fc9778e98..e004c6007 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -49,28 +49,114 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LinearPDESystemOperator(2, immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}))" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import namedtuple\n", + "DerivativeIdentifier = namedtuple(\"DerivativeIdentifier\", [\"mi\", \"vec_idx\"])\n", + "partial_1 = DerivativeIdentifier((2,0), 0)\n", + "partial_2 = DerivativeIdentifier((0,2), 0)\n", + "list_pde = {partial_1: 1, partial_2: 1}\n", + "list_pde = immutabledict(list_pde)\n", + "pde_op = LinearPDESystemOperator(2,(list_pde))\n", + "pde_op" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LinearPDESystemOperator(2, (immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}),))" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "laplace2d" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LinearPDESystemOperator(2, immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}))" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pde_op" + ] + }, + { + "cell_type": "code", + "execution_count": 62, "metadata": {}, "outputs": [ { "data": { - "text/latex": [ - "$\\displaystyle \\frac{f_{r1}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + f_{r2}$" - ], "text/plain": [ - "f_r1/sqrt(x0**2 + x1**2) + f_r2" + "LinearPDESystemOperator(2, (immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}),))" ] }, - "execution_count": 13, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "ode_in_r, var, ode_order = pde_to_ode_in_r(laplace2d)\n", - "ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify()\n", - "ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify()\n", - "ode_in_r.simplify()" + "laplace2d" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "PDE must be scalar", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[63], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m ode_in_r, var, ode_order \u001b[38;5;241m=\u001b[39m \u001b[43mpde_to_ode_in_r\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpde_op\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m ode_in_r\n", + "File \u001b[0;32m~/Desktop/sumpy/sumpy/recurrence.py:98\u001b[0m, in \u001b[0;36mpde_to_ode_in_r\u001b[0;34m(pde)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03mReturns an ODE satisfied by the radial derivatives of a function\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;124;03m:math:`f:\\mathbb R^n \\to \\mathbb R` satisfying\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m- *ode_order* the order of ODE that is returned\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(pde\u001b[38;5;241m.\u001b[39meqs) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m---> 98\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPDE must be scalar\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 100\u001b[0m dim \u001b[38;5;241m=\u001b[39m pde\u001b[38;5;241m.\u001b[39mdim\n\u001b[1;32m 101\u001b[0m ode_order \u001b[38;5;241m=\u001b[39m pde\u001b[38;5;241m.\u001b[39morder\n", + "\u001b[0;31mValueError\u001b[0m: PDE must be scalar" + ] + } + ], + "source": [ + "ode_in_r, var, ode_order = pde_to_ode_in_r(pde_op)\n", + "ode_in_r" ] }, { From b6ac1f818b842e83b098c441afa54493164f4616 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 5 Apr 2025 13:07:52 -0500 Subject: [PATCH 169/193] Cancellation Error Model Written --- test/investigate_normal_recurrence.ipynb | 118 ++++- test/testing_pde_to_ode.ipynb | 595 ++++------------------- 2 files changed, 199 insertions(+), 514 deletions(-) diff --git a/test/investigate_normal_recurrence.ipynb b/test/investigate_normal_recurrence.ipynb index a5266c9a7..a1ddccd16 100644 --- a/test/investigate_normal_recurrence.ipynb +++ b/test/investigate_normal_recurrence.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -42,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -73,7 +73,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -83,16 +83,16 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[157808.698639465, -0.0192899732808462, -157808.695424469]\n", - "ratio: 8180866.62650587 ||||| digits: 6.912799312372245 |||| pred error: 1e-9\n", - "rel. error: 3.79540550438624e-10\n" + "[495920064164.703, -58109382.6444058, -495910378006.684]\n", + "ratio: 8534.25112428802 ||||| digits: 3.931165418027388 |||| pred error: 1e-12\n", + "rel. error: 1.27937736785077e-12\n" ] } ], @@ -108,6 +108,106 @@ "print(\"rel. error: \", compute_rel_err(nsub))" ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "c = sp.symbols(\"c\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "nsub = 5\n", + "coord_dict_var = {var[0]: var[0], var[1]: c*var[0]}\n", + "recur_coeffs_lap_var = sp.poly(recur_laplace.subs(n, nsub), [s(i) for i in range(nsub - order_lap, nsub)]).coeffs()\n", + "#[i+nsub-order_lap for i in range(len(recur_coeffs_lap))]\n", + "coeffs_sub_var = [(recur_coeffs_lap_var[i]*derivs_laplace[i+nsub-order_lap]).subs(coord_dict_var) for i in range(len(recur_coeffs_lap_var))]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "rat = 100" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle -833.361103703457$" + ], + "text/plain": [ + "-833.361103703457" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(coeffs_sub[0]/coeffs_sub[1]).subs(var[0], 1).subs(c, rat).evalf()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0.00120020036408851$" + ], + "text/plain": [ + "0.00120020036408851" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(coeffs_sub[1]/coeffs_sub[2]).subs(var[0], 1).subs(c, rat).evalf()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle -1.00020030008209$" + ], + "text/plain": [ + "-1.00020030008209" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(coeffs_sub[0]/coeffs_sub[2]).subs(var[0], 1).subs(c, rat).evalf()" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb index e004c6007..1a0621437 100644 --- a/test/testing_pde_to_ode.ipynb +++ b/test/testing_pde_to_ode.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -49,653 +49,238 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LinearPDESystemOperator(2, immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}))" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import namedtuple\n", - "DerivativeIdentifier = namedtuple(\"DerivativeIdentifier\", [\"mi\", \"vec_idx\"])\n", - "partial_1 = DerivativeIdentifier((2,0), 0)\n", - "partial_2 = DerivativeIdentifier((0,2), 0)\n", - "list_pde = {partial_1: 1, partial_2: 1}\n", - "list_pde = immutabledict(list_pde)\n", - "pde_op = LinearPDESystemOperator(2,(list_pde))\n", - "pde_op" - ] - }, - { - "cell_type": "code", - "execution_count": 6, + "execution_count": 19, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LinearPDESystemOperator(2, (immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}),))" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "laplace2d" + "var = _make_sympy_vec(\"x\", 3)\n", + "rels = _generate_nd_derivative_relations(var, 4)" ] }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "LinearPDESystemOperator(2, immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}))" + "LinearPDESystemOperator(3, (immutabledict({DerivativeIdentifier(mi=(1, 0, 3), vec_idx=0): 1}),))" ] }, - "execution_count": 67, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "from collections import namedtuple\n", + "DerivativeIdentifier = namedtuple(\"DerivativeIdentifier\", [\"mi\", \"vec_idx\"])\n", + "partial_1 = DerivativeIdentifier((1,0,3), 0)\n", + "list_pde = {partial_1: 1}\n", + "list_pde = immutabledict(list_pde)\n", + "pde_op = LinearPDESystemOperator(3,(list_pde,))\n", "pde_op" ] }, { "cell_type": "code", - "execution_count": 62, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LinearPDESystemOperator(2, (immutabledict({DerivativeIdentifier(mi=(2, 0), vec_idx=0): 1, DerivativeIdentifier(mi=(0, 2), vec_idx=0): 1}),))" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "laplace2d" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "PDE must be scalar", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[63], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m ode_in_r, var, ode_order \u001b[38;5;241m=\u001b[39m \u001b[43mpde_to_ode_in_r\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpde_op\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m ode_in_r\n", - "File \u001b[0;32m~/Desktop/sumpy/sumpy/recurrence.py:98\u001b[0m, in \u001b[0;36mpde_to_ode_in_r\u001b[0;34m(pde)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \u001b[38;5;124;03mReturns an ODE satisfied by the radial derivatives of a function\u001b[39;00m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;124;03m:math:`f:\\mathbb R^n \\to \\mathbb R` satisfying\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03m- *ode_order* the order of ODE that is returned\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(pde\u001b[38;5;241m.\u001b[39meqs) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m---> 98\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPDE must be scalar\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 100\u001b[0m dim \u001b[38;5;241m=\u001b[39m pde\u001b[38;5;241m.\u001b[39mdim\n\u001b[1;32m 101\u001b[0m ode_order \u001b[38;5;241m=\u001b[39m pde\u001b[38;5;241m.\u001b[39morder\n", - "\u001b[0;31mValueError\u001b[0m: PDE must be scalar" - ] - } - ], - "source": [ - "ode_in_r, var, ode_order = pde_to_ode_in_r(pde_op)\n", - "ode_in_r" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{f_r0: f_x0,\n", - " f_r1: f_x1*sqrt(x0**2 + x1**2)/x0,\n", - " f_r2: -f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2}" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "_generate_nd_derivative_relations(var, 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\operatorname{Poly}{\\left( \\left(x_{0}^{3} + x_{0} x_{1}^{2}\\right) s{\\left(n + 2 \\right)} + \\left(3 n x_{0}^{2} + n x_{1}^{2} + x_{0}^{2} - x_{1}^{2}\\right) s{\\left(n + 1 \\right)} + \\left(3 n^{2} x_{0} - n x_{0}\\right) s{\\left(n \\right)} + \\left(n^{3} - 2 n^{2} + n\\right) s{\\left(n - 1 \\right)}, s{\\left(n + 2 \\right)}, s{\\left(n + 1 \\right)}, s{\\left(n \\right)}, s{\\left(n - 1 \\right)}, domain=\\mathbb{Z}\\left[x_{0}, n, x_{1}\\right] \\right)}$" + "$\\displaystyle x_{0} x_{2} \\left(- \\frac{3 f_{r1} \\left(\\frac{5 x_{2}^{2}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}} - 3\\right)}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{5}{2}}} + \\frac{3 f_{r2} \\left(\\frac{3 x_{2}^{2}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}} - 1\\right)}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{2}} + \\frac{\\frac{3 f_{r2} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{5}{2}}} - \\frac{3 f_{r2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3 f_{r3} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{2}} + \\frac{3 f_{r3}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}} + \\frac{f_{r4} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}}} - \\frac{3 \\left(- \\frac{f_{r2} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}} + \\frac{f_{r2}}{\\sqrt{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}}} + \\frac{f_{r3} x_{2}^{2}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}}\\right)$" ], "text/plain": [ - "Poly((x0**3 + x0*x1**2)*(s(n + 2)) + (3*n*x0**2 + n*x1**2 + x0**2 - x1**2)*(s(n + 1)) + (3*n**2*x0 - n*x0)*(s(n)) + (n**3 - 2*n**2 + n)*(s(n - 1)), s(n + 2), s(n + 1), s(n), s(n - 1), domain='ZZ[x0,n,x1]')" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s = sp.Function(\"s\")\n", - "n = sp.Symbol('n')\n", - "sp.poly(recurrence_from_pde(laplace2d), s(n+2), s(n+1), s(n), s(n-1))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives_h2d(p, k=1.0):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - " derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs_helmholtz" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "num_derivs = 8\n", - "dervis_helm = compute_derivatives_h2d(num_derivs)\n", - "var = _make_sympy_vec(\"x\", 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "import time\n", - "timings = []" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.005514860153198242\n", - "0.013126850128173828\n", - "0.05279994010925293\n", - "0.15495896339416504\n", - "0.14414215087890625\n", - "0.3234570026397705\n", - "0.5973870754241943\n", - "1.3964860439300537\n" - ] - } - ], - "source": [ - "for i in range(num_derivs):\n", - " start = time.time()\n", - " dervis_helm[i].subs(var[0], np.random.rand()).subs(var[1], np.random.rand()).evalf()\n", - " end = time.time()\n", - " print(end-start)\n", - " timings.append(end-start)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "n_init, _, r = get_processed_and_shifted_recurrence(helmholtz2d)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-x0**2*s(0)/(x0**2 + x1**2) + (x0**2 - x1**2)*s(1)/(x0**3 + x0*x1**2)\n", - "3*x0**2*s(0)/(x0**3 + x0*x1**2) + 4*x0**2*s(2)/(x0**3 + x0*x1**2) - (x0**2 + 2)*s(1)/(x0**2 + x1**2)\n", - "-(x0**2 + 10)*s(2)/(x0**2 + x1**2) + (6*x0**2 + 2)*s(1)/(x0**3 + x0*x1**2) + (7*x0**2 + x1**2)*s(3)/(x0**3 + x0*x1**2) - 6*s(0)/(x0**2 + x1**2)\n", - "-(x0**2 + 24)*s(3)/(x0**2 + x1**2) + (9*x0**2 + 12)*s(2)/(x0**3 + x0*x1**2) + (10*x0**2 + 2*x1**2)*s(4)/(x0**3 + x0*x1**2) + 6*s(0)/(x0**3 + x0*x1**2) - 18*s(1)/(x0**2 + x1**2)\n", - "-(x0**2 + 44)*s(4)/(x0**2 + x1**2) + (12*x0**2 + 36)*s(3)/(x0**3 + x0*x1**2) + (13*x0**2 + 3*x1**2)*s(5)/(x0**3 + x0*x1**2) + 24*s(1)/(x0**3 + x0*x1**2) - 36*s(2)/(x0**2 + x1**2)\n", - "-(x0**2 + 70)*s(5)/(x0**2 + x1**2) + (15*x0**2 + 80)*s(4)/(x0**3 + x0*x1**2) + (16*x0**2 + 4*x1**2)*s(6)/(x0**3 + x0*x1**2) + 60*s(2)/(x0**3 + x0*x1**2) - 60*s(3)/(x0**2 + x1**2)\n" - ] - } - ], - "source": [ - "s=sp.Function('s')\n", - "n=sp.Symbol('n')\n", - "\n", - "check = []\n", - "x_coord = abs(np.random.rand()*1) # noqa: NPY002\n", - "y_coord = abs(np.random.rand()*1) # noqa: NPY002\n", - "coord_dict = {var[0]: x_coord, var[1]: y_coord}\n", - "\n", - "subs_dict = {s(0): dervis_helm[0].subs(coord_dict).evalf(), s(1): dervis_helm[1].subs(coord_dict).evalf()}\n", - "\n", - "assert n_init == 2\n", - "for i in range(n_init, num_derivs):\n", - " start = time.time()\n", - " print(r.subs(n, i))\n", - " res = abs(r.subs(n, i).subs(subs_dict).subs(coord_dict).evalf())\n", - " end = time.time()\n", - " check.append(end-start)\n", - " # pylint: disable-next=not-callable\n", - " subs_dict[s(i)] = res" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Helmholtz 2D')" + "x0*x2*(-3*f_r1*(5*x2**2/(x0**2 + x1**2 + x2**2) - 3)/(x0**2 + x1**2 + x2**2)**(5/2) + 3*f_r2*(3*x2**2/(x0**2 + x1**2 + x2**2) - 1)/(x0**2 + x1**2 + x2**2)**2 + (3*f_r2*x2**2/(x0**2 + x1**2 + x2**2)**(5/2) - 3*f_r2/(x0**2 + x1**2 + x2**2)**(3/2) - 3*f_r3*x2**2/(x0**2 + x1**2 + x2**2)**2 + 3*f_r3/(x0**2 + x1**2 + x2**2) + f_r4*x2**2/(x0**2 + x1**2 + x2**2)**(3/2))/sqrt(x0**2 + x1**2 + x2**2) - 3*(-f_r2*x2**2/(x0**2 + x1**2 + x2**2)**(3/2) + f_r2/sqrt(x0**2 + x1**2 + x2**2) + f_r3*x2**2/(x0**2 + x1**2 + x2**2))/(x0**2 + x1**2 + x2**2)**(3/2))" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "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t26dgoKClJeXp6SkJBUUFMjHx0dRUVE2bQEAAJzJ7kk6Xl5eGjduXJH1PXv21G+//aadO3fq+PHj8vf3V58+feTn51ehQgEAABypzCGoT58+GjBggPr166devXrJy8urxLaurq7q06ePQwoEAACoDGUOQTt27NDOnTv1z3/+Ux4eHurevbv69++v/v37q2fPnnJ3d6/MOgEAAByqzHOCBg0apDp16sgwDGVnZ2vLli2aM2eO+vfvr3r16unWW2/VSy+9pJ07dyo/P78yawYAAKiwMo8EbdiwQfn5+frxxx+1adMmxcbGaseOHcrMzNTFixf13XffadOmTZIkHx8f9enTxzpSFBoaKhcXu+dgAwAAOFy5Jka7urqqR48e6tGjh2bOnKm8vDz98MMPio2N1aZNm7Rz505lZWUpMzNTGzZs0MaNGyVJvr6+uvnmmzVgwABNmzatUk4EAACgPCzGH999UQG5ubn64YcftGnTJm3atEm7du3SxYsX/3cwi6XGXCpLS0uTv7+/UlNTubMNAGqoVjNq5jsrj748rFztzXKeZVGev98OvUbl7u6u3r17629/+5u+/fZb/fjjj7r//vvl6urqyMMAAABUmENf5pWQkGC9NBYbG2t9YWrhYFOTJk0ceTgAAAC7VSgEHTt2zBp4Nm3apN9//13S/0JPixYt1LdvX+vStm3bilcMAADgAOUKQYmJiTYjPYmJiZL+F3patWplE3pCQkIcXzEAAIADlDkEtW7dWkePHpX0v9DTpk0bm9ATFBRUKUUCAAA4WplDUEJCgiwWi5o0aaLp06fr3nvvZY4PAACoscp1d5hhGEpKStJTTz2lgQMHavLkyfr444+VnJxcWfUBAABUijKPBB08eFCxsbGKjY3V5s2bdejQIR06dEiLFi2SJLVt21Z9+/ZVv3791LdvXzVr1qzSigYAAKioMoeg9u3bq3379po0aZIk6eeff7YJRb/88ot++eUXLV68WNLlOURXhqIWLVpUzhkAAADYwe5b5P8Yig4dOmQTig4fPqzDhw/rvffekySFhISoX79+1pAEAADgTA57WGKHDh3UoUMHPfroo5L+F4piYmK0du1aHTlyRAkJCYQgAABQLTj0idGSVFBQoLi4OOvzhLZv366CggJHHwYAAKBCKhyCDMPQ7t27rQ9Q3LZtmzIyMmy2S5K3t7d69+5d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xP2U9Xc+c+aM0blzZ+t+3d3dbV6b8fbbb5e6r7y8PGPq1Kk2tXl5eRkNGzY03NzcbNZv27bNpm9ZfyegMjESBFShlJQUpaSk6NSpU9ZbyXv06KFHH31Un376qU6cOHHVB8c1atRI33zzjb744guNGDFCQUFBys7O1sWLF9W8eXMNHTpUb731VrnuULLXfffdJ3d3d+vnki4nFXr55Ze1fPlydevWTd7e3srNzVWbNm307LPPau/evWrWrFmJfd3c3PTtt99q4sSJatWqlTIzM3Xs2DEdO3bMrkstV9bq4uJivWusNNOnT9fPP/+sadOm6YYbbpCXl5cuXLigunXrqmvXrvrrX/+qHTt2lDgadjWtW7fWDz/8oDVr1mjMmDG65pprrI8OaNmype666y69//77OnjwoF2Tof+oYcOG2rFjh1544QW1b99eLi4ucnNz02233aaYmBhNnjy51P6urq567bXXtGfPHj388MNq166dXF1dlZqaqvr166t3796aPXu24uPjK/RsKqCyWAyjgrMMAQAAaiBGggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCkRggAAgCn9Pw62oG7ORwh4AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "plt.bar([i for i in range(0, num_derivs)], timings)\n", - "plt.ylabel('Wall Time (s)', fontsize=18)\n", - "plt.xlabel('Derivative Order', fontsize=18)\n", - "plt.title(\"Helmholtz 2D\", fontsize=18)" + "ode_in_r, var, ode_order = pde_to_ode_in_r(pde_op)\n", + "ode_in_r" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Helmholtz 2D')" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkoAAAHWCAYAAACIb6Y8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTx0lEQVR4nO3de1xVVf7/8ffhjhdQQcELKmqTlJcS1FBJrREzu9hXzcy0UmtIy4RsSq00p6Ipx8gSqLx1l8ruUkklpEkZipVFUyaKKah4ARXlun9/+OOMJ85GOIIH7PV8PM5jYu219/7sTTO8Z+111rYYhmEIAAAAVbg4uwAAAICGiqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEoF6kpqbKYrHIYrE45fyV505NTT3n5x4yZIgsFovmz59/zs8NoG4RlIDzzPz582scUHbu3Gntu3LlyvovDoqLi9P8+fO1devWc37uPXv2KD4+XmPHjlW3bt3k7e0tb29vBQcHa/z48fryyy+r3b8yAJ7+cXNzU8uWLdW5c2dFRkbqgQce0IYNG87RFQH1z83ZBQDAX0lcXJx27dqlzp0765JLLjln5929e7c6deqk01/v2aRJExmGoZ07d2rnzp1atWqVJk+erBdffFGurq6mx3J3d1erVq2sPx89elS7du3Srl27lJKSoqeeekohISFKSEjQ4MGD6/W6gPrGiBIA/AWUl5fLMAxdeeWVevnll7Vnzx4dP35cx44d008//aTrr79ekrR8+fIzPjIcMGCA8vLyrJ/jx4+rqKhIX3/9tWJiYuTj46OsrCwNHTpUiYmJ5+DqgPpDUAKAv4CWLVtq8+bN+vzzzzVp0iS1a9dOkuTi4qKLLrpI7733nq666ipJp0a9Tp48Wavje3t7a8CAAfrPf/6jH374Qb169ZJhGLr77ru1fv36Or8e4FwhKAE4o99//1333HOPQkJC1KxZMzVp0kQhISGaOXOmcnJyan28lStXymKxqHPnzpKk9evX69prr1WbNm3UtGlTXXrppVq2bJnNPmvWrNGwYcPUunVrNWnSRH379lVSUlKNznf06FE99NBD6t69u7y9veXn56drrrlG3377bbX7nTx5UnFxcRowYIBatmwpLy8vderUSZMmTar1HKPKuWO7du2SJN1+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16+vtn9aWppCQ0Pl5eWlLl26KDEx0Wb7kCFDZLFYqnxGjhxZn5cBAAAakUYRlJKSkjRz5kzNnTtXmZmZioiI0IgRI5STk2O3f3Z2tq6++mpFREQoMzNTc+bM0YwZM7R69Wprn3fffVe5ubnWz7Zt2+Tq6qqxY8eeq8sCAAANnMUwDMPZRZxJ//791adPHyUkJFjbQkJCNGrUKMXGxlbp/8ADD+jDDz9UVlaWtS0qKkrff/+90tPT7Z4jLi5OjzzyiHJzc9W0adMa1VVYWChfX18VFBTIx8enlleF+tL5wTXOLsEpdj7JaCgA1ERt/n43+BGlkpISbd68WZGRkTbtkZGR2rhxo9190tPTq/QfPny4MjIyVFpaanefZcuW6aabbqo2JBUXF6uwsNDmAwAAzl8NPijl5+ervLxcAQEBNu0BAQHKy8uzu09eXp7d/mVlZcrPz6/Sf9OmTdq2bZumTp1abS2xsbHy9fW1foKCgmp5NQAAoDFp8EGpksVisfnZMIwqbWfqb69dOjWa1KNHD/Xr16/aGmbPnq2CggLrZ/fu3TUtHwAANEJuzi7gTPz9/eXq6lpl9Gj//v1VRo0qBQYG2u3v5uYmPz8/m/aioiKtWrVKCxYsOGMtnp6e8vT0rOUVAACAxqrBjyh5eHgoNDRUKSkpNu0pKSkaMGCA3X3Cw8Or9F+7dq3CwsLk7u5u0/7WW2+puLhYt9xyS90WDgAAGr0GH5QkKSYmRkuXLtXy5cuVlZWl6Oho5eTkKCoqStKpR2KTJk2y9o+KitKuXbsUExOjrKwsLV++XMuWLdOsWbOqHHvZsmUaNWpUlZEmAACABv/oTZLGjRungwcPasGCBcrNzVWPHj2UnJysTp06SZJyc3Nt1lQKDg5WcnKyoqOjtWTJErVr106LFy/W6NGjbY7766+/asOGDVq7du05vR4AANA4NIp1lBoq1lFqmFhHCQBQnfNqHSUAAABnISgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgBAACYICgB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1eYSAABAI9Pgg5K/v79cXV2rjB7t37+/yqhRpcDAQLv93dzc5OfnZ9O+cOFCPfHEE1q7dq169epVbS2zZ89WQUGB9bN7924HrggAADQWDT4oeXh4KDQ0VCkpKTbtKSkpGjBggN19wsPDq/Rfu3atwsLC5O7ubm17+umn9a9//UuffvqpwsLCzliLp6enfHx8bD4AAOD81eDnKElSTEyMJk6cqLCwMIWHh+vFF19UTk6OoqKiJJ0a6dmzZ49eeeUVSVJUVJSef/55xcTE6I477lB6erqWLVumN99803rMp556Sg8//LDeeOMNde7c2ToC1axZMzVr1uzcX6QdLFcPAIBzNYqgNG7cOB08eFALFixQbm6uevTooeTkZHXq1EmSlJuba7OmUnBwsJKTkxUdHa0lS5aoXbt2Wrx4sUaPHm3tEx8fr5KSEo0ZM8bmXPPmzdP8+fPPyXUBAICGrVEEJUmaNm2apk2bZnfbypUrq7QNHjxYW7ZsMT3ezp0766gyAABwvmrwc5QAAACchaAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABggqAEAABgotEEpfj4eAUHB8vLy0uhoaFav359tf3T0tIUGhoqLy8vdenSRYmJiTbbf/rpJ40ePVqdO3eWxWJRXFxcPVYPAAAao0YRlJKSkjRz5kzNnTtXmZmZioiI0IgRI5STk2O3f3Z2tq6++mpFREQoMzNTc+bM0YwZM7R69Wprn6KiInXp0kVPPvmkAgMDz9WlAACARqRRBKVFixZpypQpmjp1qkJCQhQXF6egoCAlJCTY7Z+YmKiOHTsqLi5OISEhmjp1qiZPnqyFCxda+/Tt21dPP/20brrpJnl6ep6rSwEAAI1Igw9KJSUl2rx5syIjI23aIyMjtXHjRrv7pKenV+k/fPhwZWRkqLS0tN5qBQAA5xc3ZxdwJvn5+SovL1dAQIBNe0BAgPLy8uzuk5eXZ7d/WVmZ8vPz1bZtW4dqKS4u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QYFhGKf+O7B3794a3wvAUQQloAGobVAyDMO44IILDEnGwIEDbdqff/55Q5Jx8cUXG4WFhXb3zcjIMCwWi+Hh4WHs27fPZlvlH1CzMFLJLCgZhmEMHz7ckGSMHz/e7r5vvPGGIcnw9vY2rdHM9OnTDUnGlClTqmw726B04sQJ68jbCy+8YHffO++805BkDBo0yKb9wIEDRpMmTQyLxWJ8/vnndvctLS01QkNDDUnGM888U22Np0tJSbH++/Haa6/VeL/TQ93SpUttttXk9/ztt99WO3JZVlZmDBo0yNrnz0Hpxx9/NCwWi9GkSRPjhx9+sHuOwsJCo0OHDoYk47333rPZVvl7kmQsXry4xtcN1CXmKAGNVKtWrSSpyhylpUuXSpKmTZum5s2b2903NDRUF198sUpKSrRu3Tq7fa666irrXKjamjhxoiTp/fff19GjR6tsr5w/M2rUKNMazYwcOVKStGHDBodqq46Xl5fGjh0r6X81nq64uFhvvfWWpP9dY6XXX39dRUVFCgsL05VXXmn3+G5ubho/frwk6bPPPqtxXQcPHrT+s5+fX4338/f3t3uM01X3e161apUkKSgoSLfffnuV7a6urnr44YdNz79s2TIZhqGRI0eqZ8+edvs0b95co0aNkmR+T1q2bKl//OMfpucB6pObswsA4BjDzmTso0eP6ocffpB0asLxggULTPevDFi7du2yu33gwIEO13bDDTeoefPmOnr0qFavXm0zaXrfvn1KSUmRJE2aNMnu/jt27FB8fLzWrVun33//XUePHlVFRYVNnz/++MPh+qozadIkLV26VF9//bWys7NtvlX28ccf68iRI/L09NSNN95os19lcNu2bZsCAwNNj3/ixAlJ5vf9TCwWS4372vt35M+q+z1nZGRIkoYMGWJ63ssvv1xubm4qKyursq3ynnzyySfV3pNjx45JMr8nffv2lYeHh+n+QH0iKAGN1OHDhyXZjjDk5eVZA4XZt+H+rKioyG57mzZtHK6tSZMmGj16tFauXKlXX33VJii9+eabKisrU2BgoIYNG1Zl3/fee0/jx49XcXGxtc3Hx0deXl6yWCwqKSnR4cOHTb8pdbYGDRqk4OBgZWdn67XXXrMZMakcZbruuuvUokULm/327t0r6VQQqgxD1TG77/ac/juuzbfmajISVd3vef/+/ZKk9u3bm/bx8vKSn5+f9u3bV2Vb5T05duyYNQxVpz7+XQTOFo/egEbo2LFj2rFjhyTZrIx9+msrvvnmGxmn5iFW+5k/f77dc7i6up5VjZWPplJTU7V7925re2XYmDBhQpVzHDx4ULfddpuKi4t1xRVXKDU1VUVFRSooKNC+ffuUl5ent99++6zqOhOLxaJbbrnFptbK2pKTkyXZHwmrvPdRUVE1uu+nf/3+TC666CLrP2/ZsqXG+52+MvfFF19st09Nfs+1GcU6XeU9efLJJ2t0T1JTUx2uEagvBCWgEfr000+tf4SGDBlibQ8ICLD+848//niuy7IxdOhQdezYURUVFXr99dclST///LP1D/2f5/hIUnJysgoLC9WyZUt99NFHGjx4sLy9vW365OXl1XvtlUHot99+s67blJSUpNLSUrVu3VpXXXVVlX0qHy3Vx31v166dunfvLunUiFtNHqlJ0rvvvivp1IhcWFhYrc9bOZJT3WPO4uJi0/lP9XlPgHOFoAQ0MiUlJXriiScknXrfWuVEWOnUpNfK0YfKibjOYrFYNGHCBEn/G5mp/M9evXqpd+/eVfapHHm68MIL1aRJE7vH/fzzz03P6eJy6n/SahokzHTr1k3h4eE2NVf+5/jx4+XmVnXWQuVcn2+++cbh+UfVueuuuySdetfbK6+8csb+X331lXWE5o477rBb85lUhqu0tDTTe/rVV1/ZnZ8k/e+erFmzpkaP3oCGiKAENCInTpzQbbfdZn2kMnv27CpzZe68805Jp1a+PlNYquk8JkdVjsz8/PPPysjIsI4smU3i9vX1lST9+uuvOnnyZJXtW7du1RtvvGF6Ph8fH0nSkSNHzqZsmxqTkpL0888/W0eWzGqfOHGivL29VV5erunTp9s8Bv2zioqKWtd4xx13WEeVZsyYoU2bNpn2zc7Oto7YBQQE6P7776/VuSqNGzdOkpSTk6OXX365yvaKigo99thj1dZssVh05MiRM9ZQWlpKmEKDRFACGriKigpt27ZNixYt0sUXX6w333xT0qk/zP/85z+r9I+KilL//v2tfR566CGbOUJFRUVKTU3V3XffbTO/qT50797dOipx1113affu3XJ1ddXNN99st39kZKRcXFx06NAhTZgwQXv27JF0ahTtrbfeUmRkZLXLCfTo0UOS9NNPP2njxo1nVfu4cePk4eGhgwcP6tZbb5UkhYSEKDQ01G7/wMBA67v31qxZo2HDhunrr7+2BibDMPTLL79o0aJF6tGjhz7++ONa1ePt7a3Vq1fL399fhYWFGjJkiObPn28zerV//34tXrxYffv2VU5Ojpo0aaJVq1bZPJKtjf79++u6666TdOr399JLL1kn2efk5GjcuHFKT083Hf275JJLNHPmTElSYmKixo4dq61bt1pHp8rLy/X999/rX//6l7p27aqtW7c6VCdQr+p5nSYANXD6gpOnv3ajRYsWhouLi83rH/z9/Y3ExMRqj3fgwAHrKtCVHx8fH6NFixY2r9dwc3Orsm91r6M4XXULTp5u8eLFNnUMHz682v4PPPBAlVevuLu7G5KM4OBg4/XXXzddnLO0tNS48MILrdtbtmxpdOrUyejUqZPx9ttvW/uZLTj5Z//3f/9nU0tsbGy1/Q3DMJ566imb13N4eHgYfn5+1muo/NRm4cjTbd++3QgLC7M5VpMmTQwfHx+btgsuuMD47rvvTI9T099zfn6+0bt3b+tx3d3dbV5hsmTJkmqPVVZWZsycOdOmNi8vL8PPz89wc3Ozad+wYYPNvjX9PQH1iREloIHZt2+f9u3bp/3791u/Rn/ZZZfprrvu0jvvvKM9e/accfE9f39/ff755/rggw80ZswYBQUFqbi4WCdOnFD79u01YsQIPf/887X65pWjxo8fL3d3d+vPZo+uKj355JN65ZVX1K9fP3l7e6u0tFTdunXTnDlzlJmZqXbt2pnu6+bmpi+++EJTp05V586ddfz4ce3atUu7du1y6LHO6bW6uLhYvw1Xnfvvv1+//PKLoqOj1atXL3l5eenIkSNq1qyZ+vbtq3/+85/auHGj6ajamXTt2lWbNm3S+++/rwkTJqhLly7WZRM6duyoG264QS+//LJ+/vlnhyZw/5mfn582btyoRx99VN27d5eLi4vc3Nx01VVXKSUlRdOmTat2f1dXVz3zzDPasmWL7rzzTl144YVydXVVQUGBWrZsqYEDB2r+/PnaunXrWa3dBdQXi2Gc5axHAACA8xQjSgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACYISgAAACb+Hw62w8qCoglrAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.bar([i for i in range(n_init, num_derivs)], check)\n", - "plt.ylabel('Wall Time (s)', fontsize=18)\n", - "plt.xlabel('Derivative Order',fontsize=18)\n", - "plt.title(\"Helmholtz 2D\", fontsize=18)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, "outputs": [], "source": [ - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "n_init, _, recurrence_helm = get_processed_and_shifted_recurrence(helmholtz2d)\n", - "derivs_helm = dervis_helm\n", - "n = sp.symbols(\"n\")\n", - "s = sp.Function(\"s\")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "recurrence_helm = recurrence_helm.subs(s, g)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0.25 i \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)$" - ], - "text/plain": [ - "0.25*I*(0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs_helm[2]" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle - 0.25 i \\left(- \\frac{2.25 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.0 x_{0}^{2} \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.0 x_{0}^{2} \\left(\\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{\\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)$" - ], - "text/plain": [ - "-0.25*I*(-2.25*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 7.5*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.0*x0**2*(0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 3.0*x0**2*(0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs_helm[4]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0.25 i x_{0} \\left(\\frac{1417.5 x_{0}^{6} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{6}} - \\frac{5197.5 x_{0}^{6} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{13}{2}}} - \\frac{2362.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}} - \\frac{300.0 x_{0}^{4} \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1575.0 x_{0}^{4} \\left(\\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{9922.5 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{11}{2}}} + \\frac{1012.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{6.0 x_{0}^{2} \\left(\\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{1.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{11.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{360.0 x_{0}^{2} \\left(\\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{45.0 x_{0}^{2} \\left(\\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2250.0 x_{0}^{2} \\left(\\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{5512.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{67.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 135.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 67.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{\\frac{45.0 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{45.0 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} - \\frac{157.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{157.5 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{54.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{54.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{12.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{12.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{54.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{54.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{225.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{225.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{9.0 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 18.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 9.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{9.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 18.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 9.0 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{- \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{6.0 \\left(0.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{6.0 \\left(1.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{6.0 \\left(1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{3.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{6.0 \\left(0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{6.0 \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{6.0 \\left(1.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{6.0 \\left(1.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.0 \\left(0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.0 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.375 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{11.25 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{3.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{4.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.0 \\left(0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.0 \\left(0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{54.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{54.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{- \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{6.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{13.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{54.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{54.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{67.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 67.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{67.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 67.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{\\frac{65.625 x_{0}^{6} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}} - \\frac{65.625 x_{0}^{6} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}} - \\frac{236.25 x_{0}^{6} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{11}{2}}} + \\frac{236.25 x_{0}^{6} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{11}{2}}} - \\frac{93.75 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{93.75 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{15.0 x_{0}^{4} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{15.0 x_{0}^{4} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{75.0 x_{0}^{4} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{75.0 x_{0}^{4} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{393.75 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{393.75 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{28.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{28.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-7}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{11.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{11.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{7.5 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{4}} + \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} - \\frac{26.25 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{9}{2}}} + \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{9.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{2.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{9.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{37.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 1.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.5 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.0 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.5 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{0.5625 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.875 x_{0}^{4} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{7}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.5 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{- \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{9.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{9.0 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{11.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{11.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{15.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{15.0 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{2.5 x_{0}^{2} \\left(- \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 x_{0}^{2} \\left(- \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{1.125 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{3.75 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{4.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{90.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{90.0 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{1.0 \\left(- \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.875 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.875 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(- \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{2.8125 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} + \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{9.375 x_{0}^{4} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{2.8125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.25 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{6}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{3.75 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{11.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.46875 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.9375 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{2.5 \\left(0.375 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{2.5 \\left(0.375 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.875 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.875 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 1.875 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{1.0 \\left(- \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{1.0 \\left(- \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{1.875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{3.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 3.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{1.0 \\left(11.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{1.0 \\left(11.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 11.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{\\frac{15.0 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{15.0 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} - \\frac{45.0 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{45.0 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{15.0 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 30.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 15.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{15.0 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 30.0 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 15.0 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{- \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{30.0 \\left(0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{30.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{- \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{3.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{7.5 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{30.0 \\left(0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{30.0 \\left(0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{45.0 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 45.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{45.0 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 45.0 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{\\frac{50.625 x_{0}^{4} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{50.625 x_{0}^{4} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{3}} - \\frac{168.75 x_{0}^{4} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} + \\frac{168.75 x_{0}^{4} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}} - \\frac{50.625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{50.625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{22.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{22.5 x_{0}^{2} \\left(- \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}} + \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{0.75 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.5 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{- \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.0625 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{5}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.5 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.5 \\left(0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{0.75 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{0.75 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{67.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{67.5 x_{0}^{2} \\left(- \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.125 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.25 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.25 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{202.5 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{202.5 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} - \\frac{45.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{45.0 \\left(- \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.1875 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{4}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} + \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 x_{0}^{2} \\left(H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{0.375 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + \\frac{0.375 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.375 H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{45.0 \\left(0.75 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{45.0 \\left(0.75 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.75 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} - \\frac{\\frac{84.375 x_{0}^{2} \\left(H^{(1)}_{-3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{84.375 x_{0}^{2} \\left(H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 2 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) + H^{(1)}_{3}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{x_{0}^{2} + x_{1}^{2}} - \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{168.75 x_{0}^{2} \\left(H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{3}{2}}} + \\frac{675.0 \\left(0.25 H^{(1)}_{-2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} - \\frac{675.0 \\left(0.25 H^{(1)}_{0}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 0.25 H^{(1)}_{2}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)\\right)}{\\sqrt{x_{0}^{2} + x_{1}^{2}}}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{5}{2}}} + \\frac{787.5 H^{(1)}_{-1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right) - 787.5 H^{(1)}_{1}\\left(1.0 \\sqrt{x_{0}^{2} + x_{1}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{\\frac{7}{2}}}\\right)$" - ], - "text/plain": [ - "0.25*I*x0*(1417.5*x0**6*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**6 - 5197.5*x0**6*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(13/2) - 2362.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**5 - 300.0*x0**4*(0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(7/2) - 1575.0*x0**4*(0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(9/2) + 9922.5*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(11/2) + 1012.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 6.0*x0**2*(7.5*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 7.5*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 26.25*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 26.25*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 9.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 2.0*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 2.0*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 9.0*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 9.0*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 37.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 37.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + (1.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (-0.5*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5625*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5625*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-1.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (-1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (11.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/(x0**2 + x1**2)**(3/2) + 360.0*x0**2*(0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) - 45.0*x0**2*(1.125*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 1.125*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 3.75*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 3.75*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.5*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.5*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 1.5*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 4.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 4.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) + 2250.0*x0**2*(0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(7/2) - 5512.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - (67.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 135.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 67.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + (45.0*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 45.0*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 - 157.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 157.5*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 54.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 54.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 12.0*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 12.0*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 54.0*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 54.0*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 225.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 225.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + (9.0*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 18.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 9.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (9.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 18.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 9.0*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - (-3.0*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 3.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 9.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 6.0*(0.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 6.0*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 6.0*(1.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 6.0*(1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-3.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 3.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 9.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 9.0*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 6.0*(0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 6.0*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 6.0*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 6.0*(1.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 6.0*(1.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-3.375*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.375*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 11.25*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 11.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 3.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 3.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.5*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 4.5*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 4.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 3.0*(-0.1875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 3.0*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 3.0*(0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.0*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-3.375*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.375*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 11.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 11.25*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 3.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 3.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.5*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 4.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 4.5*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 13.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 3.0*(-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 3.0*(-0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 3.0*(0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.0*(0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-6.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 6.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 13.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 54.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 54.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (-6.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 6.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 13.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 13.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 54.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 54.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (67.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 67.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (67.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 67.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - (65.625*x0**6*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**5 - 65.625*x0**6*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**5 - 236.25*x0**6*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(11/2) + 236.25*x0**6*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(11/2) - 93.75*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 93.75*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 15.0*x0**4*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) - 15.0*x0**4*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(5/2) + 75.0*x0**4*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(7/2) - 75.0*x0**4*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(7/2) + 393.75*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 393.75*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 28.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 28.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5*x0**2*(-7.5*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 7.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 26.25*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 26.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 9.0*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 9.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 2.0*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 2.0*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 9.0*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 9.0*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 37.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 37.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - (1.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (-0.5*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5625*x0**4*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-7, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-1.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (-1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (11.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (11.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - 0.5*x0**2*(-7.5*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 7.5*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**4 + 26.25*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) - 26.25*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(9/2) + 9.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 9.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 2.0*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 2.0*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 9.0*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 9.0*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 37.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 37.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 3.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 1.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + (-0.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 1.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.5*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.0*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.5*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 1.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 1.0*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (1.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (1.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 1.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - (-0.5625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-0.5625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 0.5625*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.875*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.875*x0**4*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 0.5625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.25*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.25*x0**2*(-0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(5, 1.0*sqrt(x0**2 + x1**2)) + hankel1(7, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 0.75*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 0.75*x0**2*(-0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 2.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 0.5*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 0.5*(-0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 0.5*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + (-1.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - (-1.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 2.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 9.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 9.0*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + (11.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (11.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - 15.0*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 15.0*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + 2.5*x0**2*(-1.125*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.75*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 3.75*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 1.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 1.5*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 1.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 4.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.1875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 2.5*x0**2*(-1.125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 1.125*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 3.75*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 3.75*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 1.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 0.5*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 0.5*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 1.5*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 1.5*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 4.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 4.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.1875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.1875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - 90.0*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + 90.0*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) - 168.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 168.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 1.0*(-2.8125*x0**4*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 2.8125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 9.375*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 9.375*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 2.8125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 2.8125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.25*x0**2*(-0.25*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-6, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 3.75*x0**2*(-0.125*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 3.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 11.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 11.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.46875*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.46875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (1.875*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (1.875*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.0*(-2.8125*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 2.8125*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 + 9.375*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 9.375*x0**4*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 2.8125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 2.8125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 1.25*x0**2*(-0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.25*x0**2*(-0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(4, 1.0*sqrt(x0**2 + x1**2)) + hankel1(6, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 3.75*x0**2*(-0.125*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 3.75*x0**2*(-0.125*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 11.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 11.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (-0.46875*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-0.46875*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.46875*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.9375*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.9375*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 2.5*(0.375*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 2.5*(0.375*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (1.875*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (1.875*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 1.875*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 1.0*(-1.875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (3.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (3.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 1.0*(-1.875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 1.875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 3.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (3.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (3.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 3.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 1.0*(11.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 1.0*(11.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 11.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2))/sqrt(x0**2 + x1**2) - (15.0*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 15.0*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 - 45.0*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + 45.0*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - (15.0*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 30.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + 15.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (15.0*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 30.0*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + 15.0*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + (-3.75*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 7.5*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 7.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 30.0*(0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 30.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (-3.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 3.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 7.5*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 7.5*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 30.0*(0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 30.0*(0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (45.0*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 45.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (45.0*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 45.0*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) + (50.625*x0**4*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 50.625*x0**4*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**3 - 168.75*x0**4*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) + 168.75*x0**4*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2) - 50.625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 50.625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 22.5*x0**2*(-0.25*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-5, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) - 22.5*x0**2*(-0.25*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.25*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**2 + 0.75*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 0.75*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) + (0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.5*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - (-0.0625*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + (-0.0625*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.0625*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(3, 1.0*sqrt(x0**2 + x1**2)) + hankel1(5, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.125*x0**2*(hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.5*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + 0.5*(0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - (0.75*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + (0.75*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/sqrt(x0**2 + x1**2) + 67.5*x0**2*(-0.125*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) - 67.5*x0**2*(-0.125*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.125*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.25*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.25*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.25*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.25*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(3/2) + 202.5*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 202.5*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(5/2) - 45.0*(-0.1875*x0**2*(hankel1(-4, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) + 45.0*(-0.1875*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) + hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.1875*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(2, 1.0*sqrt(x0**2 + x1**2)) + hankel1(4, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) + 0.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - 0.375*x0**2*(hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) - (0.375*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) + (0.375*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) - 0.375*hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/sqrt(x0**2 + x1**2) - 45.0*(0.75*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 45.0*(0.75*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.75*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2))/(x0**2 + x1**2)**(3/2) - (84.375*x0**2*(hankel1(-3, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 84.375*x0**2*(hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 2*hankel1(1, 1.0*sqrt(x0**2 + x1**2)) + hankel1(3, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2) - 168.75*x0**2*(hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 168.75*x0**2*(hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(3/2) + 675.0*(0.25*hankel1(-2, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2) - 675.0*(0.25*hankel1(0, 1.0*sqrt(x0**2 + x1**2)) - 0.25*hankel1(2, 1.0*sqrt(x0**2 + x1**2)))/sqrt(x0**2 + x1**2))/(x0**2 + x1**2)**(5/2) + (787.5*hankel1(-1, 1.0*sqrt(x0**2 + x1**2)) - 787.5*hankel1(1, 1.0*sqrt(x0**2 + x1**2)))/(x0**2 + x1**2)**(7/2))" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "derivs_helm[7]" + "f_x_derivs = _make_sympy_vec(\"f_x\", ode_order+1)\n", + "ode_in_x = ode_in_r.subs(rels)" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle \\frac{3 x_{0}^{2} g{\\left(0 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{4 x_{0}^{2} g{\\left(2 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{\\left(x_{0}^{2} + 2\\right) g{\\left(1 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" + "$\\displaystyle \\frac{x_{2} \\left(9 f_{x1} x_{0}^{2} - 15 f_{x1} x_{2}^{2} - 9 f_{x2} x_{0}^{3} + 15 f_{x2} x_{0} x_{2}^{2} + 3 f_{x3} x_{0}^{4} - 6 f_{x3} x_{0}^{2} x_{2}^{2} + f_{x4} x_{0}^{3} x_{2}^{2}\\right)}{x_{0}^{6}}$" ], "text/plain": [ - "3*x0**2*g(0)/(x0**3 + x0*x1**2) + 4*x0**2*g(2)/(x0**3 + x0*x1**2) - (x0**2 + 2)*g(1)/(x0**2 + x1**2)" + "x2*(9*f_x1*x0**2 - 15*f_x1*x2**2 - 9*f_x2*x0**3 + 15*f_x2*x0*x2**2 + 3*f_x3*x0**4 - 6*f_x3*x0**2*x2**2 + f_x4*x0**3*x2**2)/x0**6" ] }, - "execution_count": 20, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "recurrence_helm.subs(n, 3)" + "ode_in_x.simplify()" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle - \\frac{\\left(x_{0}^{2} + 10\\right) g{\\left(2 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(6 x_{0}^{2} + 2\\right) g{\\left(1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} + \\frac{\\left(7 x_{0}^{2} + x_{1}^{2}\\right) g{\\left(3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{6 g{\\left(0 \\right)}}{x_{0}^{2} + x_{1}^{2}}$" + "$\\displaystyle \\frac{9 x_{0}^{2} x_{2} - 15 x_{2}^{3}}{x_{0}^{6}}$" ], "text/plain": [ - "-(x0**2 + 10)*g(2)/(x0**2 + x1**2) + (6*x0**2 + 2)*g(1)/(x0**3 + x0*x1**2) + (7*x0**2 + x1**2)*g(3)/(x0**3 + x0*x1**2) - 6*g(0)/(x0**2 + x1**2)" + "(9*x0**2*x2 - 15*x2**3)/x0**6" ] }, - "execution_count": 21, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "recurrence_helm.subs(n, 4)" + "sp.poly(ode_in_x, list(f_x_derivs)).coeffs()[0].simplify()" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 33, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle - \\frac{x_{0}^{2} g{\\left(0 \\right)}}{x_{0}^{2} + x_{1}^{2}} + \\frac{\\left(x_{0}^{2} - x_{1}^{2}\\right) g{\\left(1 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}}$" - ], - "text/plain": [ - "-x0**2*g(0)/(x0**2 + x1**2) + (x0**2 - x1**2)*g(1)/(x0**3 + x0*x1**2)" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "recurrence_helm.subs(n, 2)" + "def generate_partitions(n):\n", + " \"\"\"\n", + " Generates all integer partitions of n.\n", + "\n", + " Args:\n", + " n: The integer to partition.\n", + "\n", + " Returns:\n", + " A list of lists, where each inner list is a partition of n.\n", + " \"\"\"\n", + " if n == 0:\n", + " return [[]]\n", + " \n", + " partitions = []\n", + " for i in range(1, n + 1):\n", + " for p in generate_partitions(n - i):\n", + " if not p or i <= p[0]:\n", + " temp = [i] + p\n", + " if np.all(np.array(temp) <= 2):\n", + " partitions.append([i] + p)\n", + " return partitions" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, + "execution_count": 74, "metadata": {}, "outputs": [], "source": [ - "import sympy as sp\n", - "G = sp.Function(\"G\")\n", - "v_1 = sp.Symbol('v_1')\n", - "v_2 = sp.Symbol(\"v_2\")\n", - "v_3 = sp.Symbol(\"v_3\")\n", - "x_1 = sp.Symbol(\"x_1\")\n", - "x_2 = sp.Symbol(\"x_2\")\n", - "x_3 = sp.Symbol(\"x_3\")\n", - "t = sp.Symbol(\"t\")" + "nx = 3\n", + "ny = 3\n", + "all_nx = generate_partitions(nx)\n", + "all_ny = generate_partitions(ny)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 75, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle v_{1} \\left. \\frac{\\partial}{\\partial \\xi_{1}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial}{\\partial \\xi_{2}} G{\\left(x_{1},\\xi_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial}{\\partial \\xi_{3}} G{\\left(x_{1},x_{2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}$" - ], - "text/plain": [ - "v_1*Subs(Derivative(G(_xi_1, x_2, x_3), _xi_1), _xi_1, x_1) + v_2*Subs(Derivative(G(x_1, _xi_2, x_3), _xi_2), _xi_2, x_2) + v_3*Subs(Derivative(G(x_1, x_2, _xi_3), _xi_3), _xi_3, x_3)" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "sp.diff(G(x_1+v_1*t,x_2+v_2*t,x_3+v_3*t), t, 1).subs(t,0)" + "r = var[0]**2 + var[1]**2" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 76, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle v_{1} \\left. \\frac{\\partial}{\\partial \\xi_{1}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }}$" - ], - "text/plain": [ - "v_1*Subs(Derivative(G(_xi_1, x_2, x_3), _xi_1), _xi_1, x_1)" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "sp.diff(G(x_1+v_1*t,x_2,x_3), t, 1).subs(t, 0)" + "sum = np.zeros(nx+ny+1) * var[0]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 77, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle G{\\left(t v_{1} + x_{1},t v_{2} + x_{2},t v_{3} + x_{3} \\right)}$" - ], - "text/plain": [ - "G(t*v_1 + x_1, t*v_2 + x_2, t*v_3 + x_3)" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "G(x_1+v_1*t,x_2+v_2*t,x_3+v_3*t)" + "for i_x in all_nx:\n", + " for i_y in all_ny:\n", + " k = len(i_x) + len(i_y)\n", + " prod = 1\n", + " for i in i_x:\n", + " prod *= sp.diff(r, var[0], i)\n", + " for j in i_y:\n", + " prod *= sp.diff(r, var[1], j)\n", + " sum[k] += prod" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 78, "metadata": {}, "outputs": [ { "data": { - "text/latex": [ - "$\\displaystyle v_{1} \\left(v_{1} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{1}^{2}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{1 + x 1}\\partial \\xi_{2}} G{\\left(_t*v_{1 + x 1},\\xi_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{1 + x 1}\\partial \\xi_{3}} G{\\left(_t*v_{1 + x 1},x_{2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}\\right) + v_{2} \\left(v_{1} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{2 + x 2}\\partial \\xi_{1}} G{\\left(\\xi_{1},_t*v_{2 + x 2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{2}^{2}} G{\\left(x_{1},\\xi_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{2 + x 2}\\partial \\xi_{3}} G{\\left(x_{1},_t*v_{2 + x 2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}\\right) + v_{3} \\left(v_{1} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{3 + x 3}\\partial \\xi_{1}} G{\\left(\\xi_{1},x_{2},_t*v_{3 + x 3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }} + v_{2} \\left. \\frac{\\partial^{2}}{\\partial _t*v_{3 + x 3}\\partial \\xi_{2}} G{\\left(x_{1},\\xi_{2},_t*v_{3 + x 3} \\right)} \\right|_{\\substack{ \\xi_{2}=x_{2} }} + v_{3} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{3}^{2}} G{\\left(x_{1},x_{2},\\xi_{3} \\right)} \\right|_{\\substack{ \\xi_{3}=x_{3} }}\\right)$" - ], "text/plain": [ - "v_1*(v_1*Subs(Derivative(G(_xi_1, x_2, x_3), (_xi_1, 2)), _xi_1, x_1) + v_2*Subs(Derivative(G(_t*v_1 + x_1, _xi_2, x_3), _xi_2, _t*v_1 + x_1), _xi_2, x_2) + v_3*Subs(Derivative(G(_t*v_1 + x_1, x_2, _xi_3), _xi_3, _t*v_1 + x_1), _xi_3, x_3)) + v_2*(v_1*Subs(Derivative(G(_xi_1, _t*v_2 + x_2, x_3), _xi_1, _t*v_2 + x_2), _xi_1, x_1) + v_2*Subs(Derivative(G(x_1, _xi_2, x_3), (_xi_2, 2)), _xi_2, x_2) + v_3*Subs(Derivative(G(x_1, _t*v_2 + x_2, _xi_3), _xi_3, _t*v_2 + x_2), _xi_3, x_3)) + v_3*(v_1*Subs(Derivative(G(_xi_1, x_2, _t*v_3 + x_3), _xi_1, _t*v_3 + x_3), _xi_1, x_1) + v_2*Subs(Derivative(G(x_1, _xi_2, _t*v_3 + x_3), _xi_2, _t*v_3 + x_3), _xi_2, x_2) + v_3*Subs(Derivative(G(x_1, x_2, _xi_3), (_xi_3, 2)), _xi_3, x_3))" + "array([0, 0, 0, 0, 16*x0*x1, 32*x0**3*x1 + 32*x0*x1**3, 64*x0**3*x1**3],\n", + " dtype=object)" ] }, - "execution_count": 79, + "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sp.diff(G(x_1+v_1*t,x_2+v_2*t,x_3+v_3*t), t, 2).subs(t, 0)" + "sum" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 82, "metadata": {}, "outputs": [ { "data": { - "text/latex": [ - "$\\displaystyle v_{1}^{2} \\left. \\frac{\\partial^{2}}{\\partial \\xi_{1}^{2}} G{\\left(\\xi_{1},x_{2},x_{3} \\right)} \\right|_{\\substack{ \\xi_{1}=x_{1} }}$" - ], "text/plain": [ - "v_1**2*Subs(Derivative(G(_xi_1, x_2, x_3), (_xi_1, 2)), _xi_1, x_1)" + "array([0, 0, 0, 0, 16*x0*x1/(x0**2 + x1**2)**8,\n", + " (32*x0**3*x1 + 32*x0*x1**3)/(x0**2 + x1**2)**10,\n", + " 64*x0**3*x1**3/(x0**2 + x1**2)**12], dtype=object)" ] }, - "execution_count": 80, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sp.diff(G(x_1+v_1*t,x_2,x_3), t, 2).subs(t, 0)" + "factors = sum/np.array([r**(2*i) for i in range(len(sum))])\n", + "factors" ] }, { From 1319d77d71244e2146945c86bc316e6c6c800972 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 6 Apr 2025 16:05:40 -0500 Subject: [PATCH 170/193] Imported 2d plots --- test/investigate_normal_recurrence.ipynb | 12 +++--- test/plotting.py | 51 ++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 test/plotting.py diff --git a/test/investigate_normal_recurrence.ipynb b/test/investigate_normal_recurrence.ipynb index a1ddccd16..f7ba6ceec 100644 --- a/test/investigate_normal_recurrence.ipynb +++ b/test/investigate_normal_recurrence.ipynb @@ -83,22 +83,22 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[495920064164.703, -58109382.6444058, -495910378006.684]\n", - "ratio: 8534.25112428802 ||||| digits: 3.931165418027388 |||| pred error: 1e-12\n", - "rel. error: 1.27937736785077e-12\n" + "[283760210571788., 25680175954536.8, -308530291313573.]\n", + "ratio: 11.0497767256013 ||||| digits: 1.0433535026528984 |||| pred error: 1e-14\n", + "rel. error: 5.64683791788174e-14\n" ] } ], "source": [ - "nsub = 5\n", - "coord_dict = {var[0]: 0.0001 * np.random.rand(), var[1]: np.random.rand()}\n", + "nsub = 14\n", + "coord_dict = {var[0]: 0.1 * np.random.rand(), var[1]: np.random.rand()}\n", "recur_coeffs_lap = sp.poly(recur_laplace.subs(n, nsub), [s(i) for i in range(nsub - order_lap, nsub)]).coeffs()\n", "#[i+nsub-order_lap for i in range(len(recur_coeffs_lap))]\n", "coeffs_sub = [(recur_coeffs_lap[i]*derivs_laplace[i+nsub-order_lap]).subs(coord_dict) for i in range(len(recur_coeffs_lap))]\n", diff --git a/test/plotting.py b/test/plotting.py new file mode 100644 index 000000000..5a2e30b97 --- /dev/null +++ b/test/plotting.py @@ -0,0 +1,51 @@ +import numpy as np +import numpy.linalg as la + +import pyopencl as cl + + +def show_scalar_in_matplotlib(self, fld, max_val=None, func_name="imshow", **kwargs): + squeezed_points = self.points.squeeze() + + if len(squeezed_points.shape) != 2: + raise RuntimeError( + "matplotlib plotting requires 2D geometry") + + if len(fld.shape) == 1: + fld = fld.reshape(self.nd_points.shape[1:]) + + squeezed_fld = fld.squeeze() + + if max_val is not None: + squeezed_fld[squeezed_fld > max_val] = max_val + squeezed_fld[squeezed_fld < -max_val] = -max_val + + squeezed_fld = squeezed_fld[..., ::-1] + + a, b = self._get_squeezed_bounds() + + kwargs["extent"] = ( + # (left, right, bottom, top) + a[0], b[0], + a[1], b[1]) + + import matplotlib.pyplot as pt + return getattr(pt, func_name)(squeezed_fld.T, **kwargs) + +import matplotlib.pyplot as plt +from sumpy.visualization import FieldPlotter +center = np.asarray([0, 0], dtype=np.float64) +fp = FieldPlotter(center, npoints=1000, extent=6) + +plt.clf() +vol_pot = np.outer(-0.3**np.arange(1, 100), 1.3**np.arange(1, 100)) +plotval = np.log10(1e-20+np.abs(vol_pot)) +im = fp.show_scalar_in_matplotlib(plotval.real) +from matplotlib.colors import Normalize +im.set_norm(Normalize(vmin=-2, vmax=1)) + +cb = plt.colorbar(shrink=0.9) +cb.set_label(r"$\log_{10}(\mathdefault{Error})$") +fp.set_matplotlib_limits() + +plt.show() \ No newline at end of file From 268ae53b04824eba931916702887349853eecc75 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 7 Apr 2025 17:17:31 -0500 Subject: [PATCH 171/193] Create single plot function, 1plot per/d --- test/investigate_normal_recurrence.ipynb | 79 ++++++++--- test/plotting.py | 171 ++++++++++++++++++++++- 2 files changed, 227 insertions(+), 23 deletions(-) diff --git a/test/investigate_normal_recurrence.ipynb b/test/investigate_normal_recurrence.ipynb index f7ba6ceec..2e6f9b70e 100644 --- a/test/investigate_normal_recurrence.ipynb +++ b/test/investigate_normal_recurrence.ipynb @@ -83,16 +83,16 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[283760210571788., 25680175954536.8, -308530291313573.]\n", - "ratio: 11.0497767256013 ||||| digits: 1.0433535026528984 |||| pred error: 1e-14\n", - "rel. error: 5.64683791788174e-14\n" + "[65918122382643.5, 3736357179460.05, -70531899831909.1]\n", + "ratio: 17.6423503472892 ||||| digits: 1.2465564421825692 |||| pred error: 1e-14\n", + "rel. error: 6.53883308254424e-15\n" ] } ], @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -132,7 +132,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -141,19 +141,19 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle -833.361103703457$" + "$\\displaystyle 17.6423503472892$" ], "text/plain": [ - "-833.361103703457" + "17.6423503472892" ] }, - "execution_count": 34, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -164,19 +164,19 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 0.00120020036408851$" + "$\\displaystyle -0.0529740045052592$" ], "text/plain": [ - "0.00120020036408851" + "-0.0529740045052592" ] }, - "execution_count": 35, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -187,19 +187,19 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle -1.00020030008209$" + "$\\displaystyle -0.93458594678066$" ], "text/plain": [ - "-1.00020030008209" + "-0.934585946780660" ] }, - "execution_count": 36, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -208,6 +208,49 @@ "(coeffs_sub[0]/coeffs_sub[2]).subs(var[0], 1).subs(c, rat).evalf()" ] }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "coord_dict = {var[0]: 0.00001 * np.random.rand(), var[1]: np.random.rand()}" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-0.0490151442862209,\n", + " -9.77335966708505e-6,\n", + " 1.10299619259162,\n", + " 6.46798710134741e-5,\n", + " -7.29960360270111,\n", + " -0.00142683302922121,\n", + " 161.028699512589,\n", + " 0.0660992387337400,\n", + " -7459.78977558321,\n", + " -5.24931902175414,\n", + " 592424.619019301,\n", + " 636.897678158905,\n", + " -71878630.7848488,\n", + " -109589.331339494,\n", + " 12367969523.4590]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[derivs_laplace[i].subs(coord_dict) for i in range(0,l_max)]" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/test/plotting.py b/test/plotting.py index 5a2e30b97..ccafbe20f 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -1,8 +1,15 @@ -import numpy as np -import numpy.linalg as la +import math +from typing import Sequence -import pyopencl as cl +import numpy as np +import sympy as sp +from sumpy.recurrence import ( + _make_sympy_vec, + get_off_axis_expression, + get_reindexed_and_center_origin_off_axis_recurrence, + get_reindexed_and_center_origin_on_axis_recurrence, +) def show_scalar_in_matplotlib(self, fld, max_val=None, func_name="imshow", **kwargs): squeezed_points = self.points.squeeze() @@ -32,17 +39,171 @@ def show_scalar_in_matplotlib(self, fld, max_val=None, func_name="imshow", **kwa import matplotlib.pyplot as pt return getattr(pt, func_name)(squeezed_fld.T, **kwargs) +def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): + + #Possibly reshape coords? + p = deriv_order-1 + cts_r_s = coords + ndim = cts_r_s.shape[0] + var = _make_sympy_vec("x", ndim) + var_t = _make_sympy_vec("t", ndim) + + # ------------ 5. Compute recurrence + n_initial, order, recurrence = get_reindexed_and_center_origin_on_axis_recurrence(pde) + + # ------------ 6. Set order p = 5 + n_p = cts_r_s.shape[1] + storage = [np.zeros((n_p, n_p))] * order + + s = sp.Function("s") + n = sp.symbols("n") + + def generate_lamb_expr(i, n_initial): + arg_list = [] + for j in range(order, 0, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < n_initial: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + else: + lamb_expr_symb = recurrence.subs(n, i) + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) + + interactions_on_axis = 0 + coord = [cts_r_s[j] for j in range(ndim)] + for i in range(p+1): + lamb_expr = generate_lamb_expr(i, n_initial) + a = [*storage, *coord] + s_new = lamb_expr(*a) + + """ + s_new_true = true_lamb_expr(*a) + arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) + print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) + print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], + "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) + """ + if i == p+1: + interactions_on_axis += s_new + + storage.pop(0) + storage.append(s_new) + + + ### NEW CODE - COMPUTE OFF AXIS INTERACTIONS + start_order, t_recur_order, t_recur = get_reindexed_and_center_origin_off_axis_recurrence(pde) + t_exp, t_exp_order, _ = get_off_axis_expression(pde, 8) + storage_taylor_order = max(t_recur_order, t_exp_order+1) + + storage_taylor = [np.zeros((n_p, n_p))] * storage_taylor_order + def gen_lamb_expr_t_recur(i, start_order): + arg_list = [] + for j in range(t_recur_order, 0, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < start_order: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv.subs(var[0], 0) + else: + lamb_expr_symb = t_recur.subs(n, i) + + return sp.lambdify(arg_list, lamb_expr_symb) + + + def gen_lamb_expr_t_exp(i, t_exp_order, start_order): + arg_list = [] + for j in range(t_exp_order, -1, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < start_order: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + else: + lamb_expr_symb = t_exp.subs(n, i) + + return sp.lambdify(arg_list, lamb_expr_symb) + + + interactions_off_axis = 0 + for i in range(p+1): + lamb_expr_t_recur = gen_lamb_expr_t_recur(i, start_order) + a1 = [*storage_taylor[(-t_recur_order):], *coord] + + storage_taylor.pop(0) + storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((n_p, n_p))) + + lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order, start_order) + a2 = [*storage_taylor[-(t_exp_order+1):], *coord] + + if i == p+1: + interactions_off_axis += lamb_expr_t_exp(*a2) + + ################ + # Compute True Interactions + storage_taylor_true = [np.zeros((n_p, n_p))] * storage_taylor_order + def generate_true(i): + arg_list = [] + for j in range(ndim): + arg_list.append(var[j]) + + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) + + interactions_true = 0 + for i in range(p, p+1): + lamb_expr_true = generate_true(i) + a4 = [*coord] + s_new_true = lamb_expr_true(*a4) + if i == p+1: + interactions_true += s_new_true + ############### + + #slope of line y = mx + mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) + mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) + + interactions_total = np.zeros(coord[0].shape) + interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] + interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] + + return interactions_on_axis, interactions_off_axis, interactions_true, interactions_total + + import matplotlib.pyplot as plt from sumpy.visualization import FieldPlotter center = np.asarray([0, 0], dtype=np.float64) fp = FieldPlotter(center, npoints=1000, extent=6) plt.clf() -vol_pot = np.outer(-0.3**np.arange(1, 100), 1.3**np.arange(1, 100)) +vol_pot = np.outer(0.3**np.arange(1, 100), 1.1**np.arange(1, 100)) plotval = np.log10(1e-20+np.abs(vol_pot)) im = fp.show_scalar_in_matplotlib(plotval.real) from matplotlib.colors import Normalize -im.set_norm(Normalize(vmin=-2, vmax=1)) +im.set_norm(Normalize(vmin=-8, vmax=5)) cb = plt.colorbar(shrink=0.9) cb.set_label(r"$\log_{10}(\mathdefault{Error})$") From c26d7b0b73c6d8a34d1cb4e59346338399047b40 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 7 Apr 2025 17:47:18 -0500 Subject: [PATCH 172/193] Efficient computation of points from grid, alll plotting functions into plotting.py --- test/order4.png | Bin 42921 -> 0 bytes test/order5.png | Bin 52858 -> 0 bytes test/order6.png | Bin 45722 -> 0 bytes test/order7.png | Bin 46733 -> 0 bytes test/plot_taylor_recurrence.ipynb | 61 ++++++++++++++++++++++++++++-- test/plotting.py | 35 ++++++++++++----- 6 files changed, 83 insertions(+), 13 deletions(-) delete mode 100644 test/order4.png delete mode 100644 test/order5.png delete mode 100644 test/order6.png delete mode 100644 test/order7.png diff --git a/test/order4.png b/test/order4.png deleted file mode 100644 index a7552342b6619a1f62e18c3a617e84808c76bea2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42921 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 VIQ3#^OYnK7rEKG$d~Nq1{t1R1yqf?3 diff --git a/test/order6.png b/test/order6.png deleted file mode 100644 index 3c62d2d7532932259722f7e8c7faebcc468e3636..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45722 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

?N zRo({yAW?A@Sjio5P}tefbx?WuCl6^$_D(_Lm*#@dV|6$u#ES||yp z2Cyy(FPVB6L%M)fM;ixD~WkFeP)UzE0U-L(Dakz?4crS zO2QcPSx?D93eR)zEF=Rzb9?b*nP#L-^MqLp2>dPOATDGy>wWHOtno=P!%w8?n4*bb z0`)ImrT{T8bB%RP^rjW$*+GZn4=V-)={WQs{mx3D8a%#!D*8(?kXGVlb4ka-V#jg> zk0d+z8?zOUH28O`aaS@P!w=)|>;_ygq(6_|F2po@C$TQY687N?vl7F}nyGTne!T5> z62Nrz5m6~!07jY7AzwAtpGEV`-9*srG6L-o$u9y$27oPZlNQmr#^iWz41-%d{wtWJ zXSse;HRRU!wq$+SDHJ1__6ND_P7|#pddO8_*awL6x*0k zeo)P<_`j;Hzx$z0BpU#TPz%xIh3-7Ic5!8#ZgqvA0c082QeIq_i8cDh z*^eR~BklnUz5iOY5~5!LSP~ipf?-(*JlSb>3#Z{|eL2&nre=#|5Q~L@$_8frh?V1i zkf|6M8y`f2mGywORYTU_z>pHw*zLR(^>UC|XFCMzrQy-1fL?-6k`qUHx%^)W;0nc? z(2#TV6sd5|1skJ4bD_S#$cFZ`6=(m&(J`4l4N^NK?JzI7cojwrj2`k&_c>v?vwF(z z-v;w(!Q=lGoD|hLiQ+lax-rb{CYe<*dQffbIsXqYn69ILS}Z0b-*9a} z9c<jClj1&|eOLlMn9A#wWe~HLOmCs-Z+}XA?gOn+2Q<5y|)!X|wSMswAw86fOKZ zjc1}LR)#acXzHN_vQ+UM?FVzq!fbKK1shXlfT}OyflZE1Kcv+LyEthO zEqtcr15i4!9)&KVw*qA&Bc?`>Gx8TkoP)^&ogn6Z*o>gIjwmX|s=tYH-7et%=PY)7 zr4w2t71iUs3;*T5;T#~WyXHU+4_N|16IZNb>4oC9akV5cJ5*`&X1{CgoGXeKAfWzW zBONY`-O=DAin;Tq{h!#$&=UN&>e6%Rd1iUo|K~14)bB)Ht*J#dYFUrEVFRs9dK4U` zPvGf%ua0`kZ`pFEyX;3mZ-4hcn8I$Dz8P$1Yv(~!r>R39IE|Zqe~_H1QJ_h|@lnst zW2ZO2x#{?GlW+FjAO4djdSH?6lqgu0kOkv*{13&K{2O*NJw=g4dW;UsDo#9--Fkp` zSi_gRcb2{3Y>7)L|Ae!c+cZYkPny5NK>Aj~#H}VnGz7=jg>IIO#b%JD;lC60-hL zoH3i%OShY&+~=Yy$w>aAx`U5JqXc3JOS(qUCzRa%C$5tnam%%rhRGfEgtY08aqEoh z;s1Yqa=%MUxyyw@>*umxi#rV2YTN`~&gi>nyn9))Re8s(CEAr5mw(fZJUCUQQ}n&~ zYvX6@Rd0M+DQdssuFmp~nZ>oAe!2TAcjv}kB z7;2UKvN8v9V>1o+XG(|V)&+MuB$(Sh5BvV<0eE2hgVE6|&aSTd? z24gcV`EG2eRDE|lI{Mt@%a>6cmy6jfGzVj2Rfr^yn%Kq_P0 z(T7diEP1fUuI7@K0dy7Zz%J8)>{;#*l`zVABfOfIIVf7EzVx-Ppz<-@F?wL^!@I{k1MBX6o7L)lzk^NNDdt;a z7N5|O+Gkxs4NPJTSM9U$5BPYzznQaZ815U#Z0pTN0Ij>2Hr06ov?rG@#IN>Q;8!Kt zmiQ}vmG~BApYVG@bqw>KU?%)=Y>Ur6_RzTUtGbAJ zZZxcJ!-QLv)Nn8%tQ%W$Y^`eE4tg~YUOoShSLa!dY2|v3M+TLqJE9Vu0F8TiudAa` zj-;q14{zZoRhy^qw5_I>fjGBOUS7VSsHis4|D@4H+}tutz3`4!>! zvYEi(06N>_#ba^0$$b_{eV5;SjNSF|FJ)LA69Vsrv^E~H6SiV^EyC;1rej?8i6pZz zUuMBul#||mCSzcu%)K|f%l=oo52|N|Yw82;zD@Xn%VKl4X$Mdm z*e0HB#xQ+be@tN58b{r__1ap9VXj9N)Joy~Il^!piq{}mZf;hY)>HW zFZY^_W|l~evRyJCYFg&Zi?WR(xCK`YK^oIn3trlIoXf*s7vPHbeICbL7|u53S`Z=0 z+(7idFa;nhBkn(shk4I>*sn&fRo<3;`a9!4;e;fY#Kd)s>%f8i*SIjsOUB|m3}({p z=4Rv0rEnB7jD&z`WC13NT-@|{`HS~~NxnK-E2eS@Uum$&+)co!9bZ|Ieb|3JzA{|} zB^4&`6iwUo&6TRZB52awa(RtVr^wzES34vGmbyFj?z@g=CTtaY>#$#}Ls6!ARjwO= zy(3P?bQ!BO*zC{k?(XK~jDvK_uHyTrSz*0ti;wNu&c}M!MeQjn#VMb!-7#dAEVYT( zG^em86T+3*C|p{_Y-VHT8K+A%{W61%@d!%^*?vdw`Fd(7KU?CMk^iMjkNOs*;7IWB zQ(Z4azWzAkl%sbtDz455InZsq=)Ywby@}*!mW7VqzeS9 z&{E+Xgk+hZ+Rd6cOZdFIdtzeZ0-0R2nw*A?5I!(ea!cane|&Z%~f6ZQ}w`{QNq|G3s`iij#?@kpwejpGFaN2 z1HqiOWfn?HefCW1ur7M@gdSMKv_yFe5gfIS%iOl#LH8Aa0GAV_(Z$={Jy7iM&gI(o z1)-qvutUcg)Q zGGI&gP;;!B-XOLsJljEO5zyYApw1;w-)dN(?~H=4V2hq5da-AK=K4{7#$Xs7Y6wT* z=h4+`8TobthpU0s|Fi;yrN4pDdG*$ztM$_y zoVEycl$z0!_wto1h9C^J!%Q~*qtE7^FR8%?HlAwkEE2s?@jkFS+n#H>B#u87g^tFX z?lOZ8t$m*czZ*1Fs$M;ngcjMEXlPN|koghlGLN|VJdljvRrP|9ScPsXEnlm*gvm&Q zCKhCJ=#U3GYNkUiM>hpB+jN=-TY^Lv`U;+d@;N9WBJ^;eBRRHd`mrr z#0Q}gJ_aagkJ@{0O!$Q(A0MxPsx>&FJXZhP%u_$DZxmmgODvW8)enfja@-hke-F>5 zJ(pQ;2L2>U0+>8*JtRNQrb4eNiI!!Ig=a_1$F zFOT>dh>89w70F6C?*?gxS+9anW!Xdho5sJgGkGG?B6UG;=ehKay~TW4a6(e?DA-5u z^75uWdh{qkxW*kVwwU$8A1y;aoHx)s&t@&sGe&M7;!TF(f$`iK`FajH8P0h5(0frh z_ovjt0x=OsynV`59P{B#I2h*X17cv9p#ZO`+u{+od;ut`7<=>PA_x#@CKca!n1vUI zAATR&nQhE4Rsks?SJ&CLmeC?FEiKgvc<-SI$Gzek5_Lgu!o?}lh@p7S)pwC;B$vO& zR9%(lqb|6NX}z#uCJ?uT1B*s8^R|w%eZ@9W62atZzhB$$BO1~HQp_+50UxBR;i84d zmqoZ~)0K5iLR=z^Kv{YdpoI&^_v0S!EB-Z{JIG5P-O%_t_`sr5?+pX+24%eBr=67* zSty2tbe?Y6mWbQz0#Bri@uVvd^-+I)`Yl7z@&)6W2wM}3`9=#kR-|q3+ zt;9uqK)AI0ehLPX_rdJEne-Du{3PzjPw>VO@J7W0F|iSdIQLV$m*NXVJlS~XTd~jM z{%bhSXD>5Rig68nR}_3;CdMS-?_oF>!)RF52S2Hc{b;Gf`Gx;!{KvZCDa=8{aURW4 zfMJ#_N6`Ns*Wf<_!G}L&1=6m*`!NCs@z^Ic6RNtzlwO8)YKC+UK{Gq9oYEkQ#wpQ> z;2wFIuua0~Jl;{Z^#c2lgIvfRlc`%b%**I5Gw5~Y7O>*jZAPb4nF}a+h>vwuLN>fJe>hmhr zU4^f}U6}(hHK8gk`K>n0k`>V2cuo|KpNF+(fa-mFp8S+YiM7~Uyy17?kS0fXnRk{>Z5s@m@lW3aYR@E0NJRkt1AT^wYrwp zEC|?)p73enqHjckMrnaKMgggv)KG7=1^CGdnwpxPhpFj3|6sk6<@S9IS@?z<*{zKO zl}${71!}$Nz>xDA!radgCD2rEA=xsvVz$uq3L>ts4oNT-%_aqpTZ-@mno;ipRl^h zbEP+AFdJcLBQ@|f^=^#zLlgC2tM|(9l3j+Q?%X+#V8N=l9VlXNpsb5C8W1l+Z>BkD z>6=+Sn!i^rpy?4FUx()710LUK+g`J7T_)&5t203!Jvb;7}%(XZCoB%}^EL`%f3sGaPf5vDUs&LRp9z=)tyLx+o=B+by$wceqF z5S^2g9%34Nz^Wm3f72{*`}S?g=0Sdk`Uvs9FMfuAS~)q}v(%hLLmfM^0!58q?`wMi zeQ^mu#ae)BPZtOXd>B^E8@YCk|@i6GGrjwY*1$c1vV%a`rDM&~t)-6Fd!%2Kn;-v24O(+)FpL6P^ zZ?ltR@j`R=Yi^Sswck$jPYeE*oIB@TyLRm2+GnZuPujId zF|Y0u$b{6xx3CV?XCIedHy3v;t-)2dbMt>gp7Yr5&2R4Rv0(gKG~In-(;xRfPzccw z2z8m6GCgsD=<4NZi5Zf;ycV{U(@3+rS;ka$nkCmNTm3lJ9K-XdHgEjgfG4} zZI%#OXFjv<6n#?R*!h-11MT0Ra5GJ_Eg&b?Hgw`EDSqZ6c64kxhBBm$xYSW^AD}c2}a+!7YKS=65DVfW_xyh}WF&h@s>{PjCM4la7H zxvy*ca!Wm#o-bm#!Qb=_zI8a5jWtf`DuBX8v~mif)Z@_Q9D#e|`)6!8A|f++`bU)& zc^*4XI}70D`mfz?-#Kr>eA}vlza7b~ZN0PG)0n%}O6!X*=0YG)Rugf3vBRM@n;86K zuJofMr>~vzvF|i9n_6Cpg|tL32vf3pzBtzYLtDe%B_+4DatBmGDD%M%bo@)g{kxK@ z(=kV8y?y&u>6sZ!z;uP~8sRQ%e%!_SE=y_aXP>-v409w05*!<{4u?vtypkxXxm-VK z;9lK&NzB8(8_`DPpx9ro1+H_2)uMpN8DVKQ^k} zJ<2~Ib=P@)|1O8d(y&Jx9Gt|v0z<`p4T6L`l;a$?-f!>EE3$~SFZWy7DX(<6VZ5|; zvyM=%ecSVpm3UrFy>(VPaoJo`In{sbsy}KT&V>g=QF|4n7jJpK*DJ}+B~ZiU-PPD%3}BtB+pAwMQ+zNKL__$N#Zoh>(hQ zlJi!NmNw0}?&%Sc8zLfKZZnmhu}79O{exy{hxJX@HOOUHxoR(@RKW?)?K^8JYo*N_ z2nXe=A_$Dd(Ur2g`9ZEXI;c<C zI`v@b8xd3YduV8m*Y`8{{(bwuT;kacfkN{p+r;~MEDp63Kq6Y&*o!>Y0NhhRM!4&E zP|K=8+&%{r#B|Wfc%dR__^iU_>bU>rE7_z)jNII8F2cU(6lSictlSDJ_Q;8kpaADC zKrs3@v*`qcuI5llWgd(SnF#|~I@lB=hHsq$fh-+cNV&W5JBt?^Tfc$Eh>&bZ zvpG=_@ws{PrcOY?5#;+>j$ScI{f#;SewU$jmP9#~yR$Ag*IKB&r)bYnMJ!>$$KW%- zFWdWK$}wGyCzM4A$5);t*cFXU(&VQ|`#1S&Sp1BF#B6T3Pp62gbaz2-CA;iwxGTEE zyg6}oU(T{g`=7tuoAc&q?Xv;noKsb`0XJXHC#gt=_JNQYzk?Dmp`V6eLW@xQ1mP7k zK+-w)4Jy5M%%gOWVMCgZB{oCj=`;Locu1e%txwQ~5-I~1#>I5UnD+)SSV<6GU`{l~jZ(DtSb&fkI zT1#Qcdb#O+cz96f1UK#2Re_xyS0q--26cw_e)!CB#14YBHQySwct z`^B)K+V)j)ftvW|(}8OaYA7fW4uPwfdldbJ%sf?IK)q`Si9v$!wKp(uXb^9Cm|q1o z=Xn^vq+_c!03AC)c%sKiiIu}a-4jmHzdAeoB&HB#d6LAp@#ryY2>)yKojZ$aeX@mj zKU|`^zTtX3jC;|hHUss(^#i?V#Os(HCM!!hDyXyPeQ*G^pP1q}FP&re8ymH@Zcvaj zU~Ba5t;ffJ7H2)X&u3oC9f)++Q^4KGJk9Rvia8eJ<^X@YPa@?nrGq z7y2Xq*%Do~0DnU(rMH3N76#|%iY-MSrHt7?)l>?f++D2CPko87jf#MtZML&KDYRKg zEAeAB1v^-z2DLpvN(=yWNUN{^;*Wc+LybjmK4tQjpCYpD8${~ZlmyHpE7ypLrK1>J z4XwU;rhBSkh;U8=ndOl$T!Go9N$Km;XlD9!MZ={Lc7vXI(1 z0E6{}VahBkHFmMJYcpWM`XFiI!jFT^70I$FOivdR6KjWknlPXOPIT;8QXeWHK+zcD zwRWt4mGI+yZDMM=ygroA{>w%28h_0ye@)e_L;P)p)Ab__y(Jbo1E|Wximy%{YDzW$ zX>DwUrb61!5!>y-E+e&sf^xo(rRvnruJH1FeoRc49E@bPLtllDM69`k$Evy;Z-d!+ z)JKh7F5nAevq$1R7kwNB0XC?58uIt&x%pBnQhA>~Jjq4CE|1jqU?vASR&!U>+uY^7 zyIBlzP-?9 z_gV*Xo$v+Xvk=7Yt=^KY@kU=OUt}RX`fX>HQUUH0vKc{m z<_@BUmJa@a0lxEHSs4!mq}~LMepvEE{(U|55{tu$?C#zRcJefo)Y^x>CCheW9K1qj z3hT_Kvhu3C-dl@XU!&jI zu|vsW;FXdLE9NuA+-}ESo^I$PJrhAru42N4b=meUZ`>qSzPw{A-nXVHsIzo`&Knua zP=HZqDx~DqKm02mmuDDkU8D`@^St?$*mh_tsHb&-rr zz9Dm0*0v8rirY_4+o7d9L)jNFY5S#E$A!>8Ul{qiq8MFns&wEKGWz7wktsW5L5O<` z9>!hSUJ^jYc8OpTlYRfuQpG?obnif$nI#bzOJo6RRhY2w#i_rN>KNdpfvX zON-L0Qe*4Qwhrs-f-S2cFnqgFyZn85Z2qqg4&!O@Q}rX)W?B|_=dS%ZP6*Zv5c@VoSpUsS$A z%6$nX4$4YrEZg}|Jjo#4LmZcXZ2OLHBXQX2&2?7jE3JS z{`iHs=usj07sy1^24KXIQ--k1k_rYe3Nu7II}w2Ml%50w+O_EUa3B-vRjN&i9LNdg z!4_@M6kXDPF3&IYn3CF=cRyYAV(FR<6#3!bKKTCnn`0(qzrM80&)uY(FwAW1onl#l zru}diUvL0#f>YC_rza)DOB|LycJ@_Jb9l`wJ!7Mq+tM?9^SM3R+q^@&{3jy5^sQG` z>$}F~FeWi_xw7x|YoCcRhf?9%w$FbcA^?{Fh)iI?H2{!C{T`%&{7Anc(B!{)$+ly( zn`5riqyJG!pW>>+LN$MUzG5>nFq#WZqQ~}wIhP=e!r`)Pdt~_?ekr`+?1PA#z0iOu z6NUv<@zvg*bhuIpkdqT9oyGT-Cz*u*qnVlr`uOzLtaJ%VXoI&7CoQqsD@XTx7Zw*Q z0g|9YNkD+o!%QB_EmH7MqY#mDW$@&MC_sYMfZ=&Q>Gj}3%;F!YWUsCm9;{gHlMj%V zstU+MGl16{zzQ-B&~<80`;C=OLRh0ysR6UQJHi?&=HLX-H+eFQGK#QFUzQpLNECvI zAh5B66_aFvi$dCiTp4cu?!95jjIF!ybm#xV8EX%Axr@QkEuDa_7=$eDFTYt71L!|+4Fv37MBwjlw5Dj0s) zICfsCIFDM}vLP5br6F{z1_kXL!m9|)+)fnTGEsP}hRKBwT{wuMEXZTv%VODcZH{%4 zaR}mjKYdG@g+fhsfi=9JG7)$iVD#Ftvx|bZ%1IHTT}fSUj&0I(poJFsTh}Qnq-iDh z7nWd)UB3Ha{k?A=;BrNk49aek``#X zk8rDM&*b-sb*x#oBD4+-Dy>bijZ(ZoaR$XHR1FdDF3`M&k1~7ST|~%I= zft=B<=f}A60ZR)|P(W_>+uB?o6ymh+?fuo$5CMM{c8@E9%D#7W5=76rlkz>N6QI#1 zfGk+X;InjG;~!jd&i#5)l8ohBlxuz6H&I=qw$mA9u&u26Eo!SD@neVutxBAcUm=;_^%Q>^q}KuhSL5PDs17a;hS;96x-!dLFDP?t8tqZAF$8EC z^bzI$cd!Q&A0FuZ_$&znO3^<(aYx5`d43P~R|B)n_vFZYZ>B*WXi6SBJkTjSY)Mbl zG6tsGox37KY_Md5`o?rTz+(Nw)-xi+DqOKeO%%YG^2~1(8I<2Rm1G%c*aY zjZxQj7oZ|AlQp9`8vU9^F)FmbQ#F=_Y!X^({#UANg>=e7Da`4a6ySEb(B#3nY9d**X#O;@sWgkGB!-o1)2UZm&R|-2S~{Smwd1^X_&){H7e22J#))nQhNZ zjPV-{>veX-KMKyj|Z=lJ!-b=24Go8vMu_kFP_CFkJgI{d;01nsfr{apG2 zT$EvWc4eSJ%|!*Tfn|IEZJB*#bus}+8ink;-YNNMs!2a8Jbs)5y3#^RxN=C&0TOl} zL-oaFsLsU~Y2zXUGguVL$Pz+%Tn5^+AeRr7!ZOZ6r@KG^J5qgBvyuY|us+grA6p(> z7nvM~;=0OQh6l5NKKr7u-hOYett?@+L~DGtZ!UH`WuR~!k+OqA_7skzLu-=!;5sp} zg^PpDH*|c+bzWA8l(8bsZHxnfM1^J9w?EuaSUz#Qo06qN> zTrUD)Wy{d_s^MF| zd~uT<*jGD1srMH&z}@UEQ5$Fk9ekFXOjpDgz+T;QsmJ{uqYWzG+uNS!j)%t^Jfg;Tl$upz(tNO_iyCB0B%? gCI6S>@^zSPx7o?up*0dAG?vPWstPe1_MZIz0MUfX3IG5A diff --git a/test/order7.png b/test/order7.png deleted file mode 100644 index bfc3d0ff2a4181fb92254b480be92d349f816d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46733 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 diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb index 524ef296d..26598e8bc 100644 --- a/test/plot_taylor_recurrence.ipynb +++ b/test/plot_taylor_recurrence.ipynb @@ -9,19 +9,17 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", + "from sumpy.recurrence import _make_sympy_vec\n", "\n", "from sumpy.expansion.diff_op import (\n", " laplacian,\n", " make_identity_diff_op,\n", ")\n", "\n", - "from sumpy.recurrence import get_recurrence, recurrence_from_pde, shift_recurrence, get_shifted_recurrence_exp_from_pde, _extract_idx_terms_from_recurrence\n", - "\n", "import sympy as sp\n", "from sympy import hankel1\n", "\n", @@ -33,6 +31,61 @@ "from matplotlib import cm, ticker" ] }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from plotting import produce_error_for_recurrences" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2))" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "cts_r_s = np.array([[1.2, 3.4, 4.5],[2.3, 4.5, 4.5]])\n", + "cts_r_s = cts_r_s.reshape(2,cts_r_s.shape[1],1)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "'int' object is not subscriptable", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[21], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mproduce_error_for_recurrences\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcts_r_s\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlaplace2d\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m6\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Desktop/sumpy/test/plotting.py:190\u001b[0m, in \u001b[0;36mproduce_error_for_recurrences\u001b[0;34m(coords, pde, g_x_y, deriv_order, m)\u001b[0m\n\u001b[1;32m 187\u001b[0m mask_off_axis \u001b[38;5;241m=\u001b[39m m\u001b[38;5;241m*\u001b[39mnp\u001b[38;5;241m.\u001b[39mabs(coord[\u001b[38;5;241m0\u001b[39m]) \u001b[38;5;241m<\u001b[39m np\u001b[38;5;241m.\u001b[39mabs(coord[\u001b[38;5;241m1\u001b[39m])\n\u001b[1;32m 189\u001b[0m interactions_total \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mzeros(coord[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mshape)\n\u001b[0;32m--> 190\u001b[0m interactions_total[mask_on_axis] \u001b[38;5;241m=\u001b[39m \u001b[43minteractions_on_axis\u001b[49m\u001b[43m[\u001b[49m\u001b[43mmask_on_axis\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 191\u001b[0m interactions_total[mask_off_axis] \u001b[38;5;241m=\u001b[39m interactions_off_axis[mask_off_axis]\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m interactions_on_axis, interactions_off_axis, interactions_true, interactions_total\n", + "\u001b[0;31mTypeError\u001b[0m: 'int' object is not subscriptable" + ] + } + ], + "source": [ + "produce_error_for_recurrences(cts_r_s, laplace2d, g_x_y, 6)" + ] + }, { "cell_type": "code", "execution_count": 2, diff --git a/test/plotting.py b/test/plotting.py index ccafbe20f..8ffb6674f 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -11,6 +11,11 @@ get_reindexed_and_center_origin_on_axis_recurrence, ) +from sumpy.expansion.diff_op import ( + laplacian, + make_identity_diff_op, +) + def show_scalar_in_matplotlib(self, fld, max_val=None, func_name="imshow", **kwargs): squeezed_points = self.points.squeeze() @@ -42,6 +47,8 @@ def show_scalar_in_matplotlib(self, fld, max_val=None, func_name="imshow", **kwa def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): #Possibly reshape coords? + cts_r_s = coords.reshape(2,coords.shape[1],1) + p = deriv_order-1 cts_r_s = coords ndim = cts_r_s.shape[0] @@ -53,7 +60,7 @@ def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): # ------------ 6. Set order p = 5 n_p = cts_r_s.shape[1] - storage = [np.zeros((n_p, n_p))] * order + storage = [np.zeros((n_p, 1))] * order s = sp.Function("s") n = sp.symbols("n") @@ -91,7 +98,7 @@ def generate_lamb_expr(i, n_initial): print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) """ - if i == p+1: + if i == p: interactions_on_axis += s_new storage.pop(0) @@ -103,7 +110,7 @@ def generate_lamb_expr(i, n_initial): t_exp, t_exp_order, _ = get_off_axis_expression(pde, 8) storage_taylor_order = max(t_recur_order, t_exp_order+1) - storage_taylor = [np.zeros((n_p, n_p))] * storage_taylor_order + storage_taylor = [np.zeros((n_p, 1))] * storage_taylor_order def gen_lamb_expr_t_recur(i, start_order): arg_list = [] for j in range(t_recur_order, 0, -1): @@ -148,17 +155,16 @@ def gen_lamb_expr_t_exp(i, t_exp_order, start_order): a1 = [*storage_taylor[(-t_recur_order):], *coord] storage_taylor.pop(0) - storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((n_p, n_p))) + storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((n_p, 1))) lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order, start_order) a2 = [*storage_taylor[-(t_exp_order+1):], *coord] - if i == p+1: + if i == p: interactions_off_axis += lamb_expr_t_exp(*a2) ################ # Compute True Interactions - storage_taylor_true = [np.zeros((n_p, n_p))] * storage_taylor_order def generate_true(i): arg_list = [] for j in range(ndim): @@ -178,7 +184,7 @@ def generate_true(i): lamb_expr_true = generate_true(i) a4 = [*coord] s_new_true = lamb_expr_true(*a4) - if i == p+1: + if i == p: interactions_true += s_new_true ############### @@ -193,7 +199,7 @@ def generate_true(i): return interactions_on_axis, interactions_off_axis, interactions_true, interactions_total -import matplotlib.pyplot as plt +""" import matplotlib.pyplot as plt from sumpy.visualization import FieldPlotter center = np.asarray([0, 0], dtype=np.float64) fp = FieldPlotter(center, npoints=1000, extent=6) @@ -209,4 +215,15 @@ def generate_true(i): cb.set_label(r"$\log_{10}(\mathdefault{Error})$") fp.set_matplotlib_limits() -plt.show() \ No newline at end of file +plt.show() """ + +w = make_identity_diff_op(2) +laplace2d = laplacian(w) +var = _make_sympy_vec("x", 2) +var_t = _make_sympy_vec("t", 2) +g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2)) + +coords = np.array([np.array([1.2, 3.4, .00045]),np.array([2.3, 4.5, 4.5])]) + +produce_error_for_recurrences(coords, laplace2d, g_x_y, 6) \ No newline at end of file From 4c06074252e065b1694919caa184939039445928 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 9 Apr 2025 12:50:11 -0500 Subject: [PATCH 173/193] produce error for recurrence debugged --- test/plotting.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/plotting.py b/test/plotting.py index 8ffb6674f..84f1c0e65 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -60,7 +60,7 @@ def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): # ------------ 6. Set order p = 5 n_p = cts_r_s.shape[1] - storage = [np.zeros((n_p, 1))] * order + storage = [np.zeros((1, n_p))] * order s = sp.Function("s") n = sp.symbols("n") @@ -110,7 +110,7 @@ def generate_lamb_expr(i, n_initial): t_exp, t_exp_order, _ = get_off_axis_expression(pde, 8) storage_taylor_order = max(t_recur_order, t_exp_order+1) - storage_taylor = [np.zeros((n_p, 1))] * storage_taylor_order + storage_taylor = [np.zeros((1, n_p))] * storage_taylor_order def gen_lamb_expr_t_recur(i, start_order): arg_list = [] for j in range(t_recur_order, 0, -1): @@ -155,7 +155,7 @@ def gen_lamb_expr_t_exp(i, t_exp_order, start_order): a1 = [*storage_taylor[(-t_recur_order):], *coord] storage_taylor.pop(0) - storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((n_p, 1))) + storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((1, n_p))) lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order, start_order) a2 = [*storage_taylor[-(t_exp_order+1):], *coord] @@ -192,6 +192,8 @@ def generate_true(i): mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) + interactions_off_axis = interactions_off_axis.reshape(coord[0].shape) + interactions_total = np.zeros(coord[0].shape) interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] @@ -226,4 +228,4 @@ def generate_true(i): coords = np.array([np.array([1.2, 3.4, .00045]),np.array([2.3, 4.5, 4.5])]) -produce_error_for_recurrences(coords, laplace2d, g_x_y, 6) \ No newline at end of file +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(coords, laplace2d, g_x_y, 9) \ No newline at end of file From f7d22cc54c7f96cf294183e38618fe3c525a99c1 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 9 Apr 2025 13:45:12 -0500 Subject: [PATCH 174/193] DOnt use fieldplotter --- test/plotting.py | 53 +++++++++--------------------------------------- 1 file changed, 10 insertions(+), 43 deletions(-) diff --git a/test/plotting.py b/test/plotting.py index 84f1c0e65..6fd227351 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -16,34 +16,6 @@ make_identity_diff_op, ) -def show_scalar_in_matplotlib(self, fld, max_val=None, func_name="imshow", **kwargs): - squeezed_points = self.points.squeeze() - - if len(squeezed_points.shape) != 2: - raise RuntimeError( - "matplotlib plotting requires 2D geometry") - - if len(fld.shape) == 1: - fld = fld.reshape(self.nd_points.shape[1:]) - - squeezed_fld = fld.squeeze() - - if max_val is not None: - squeezed_fld[squeezed_fld > max_val] = max_val - squeezed_fld[squeezed_fld < -max_val] = -max_val - - squeezed_fld = squeezed_fld[..., ::-1] - - a, b = self._get_squeezed_bounds() - - kwargs["extent"] = ( - # (left, right, bottom, top) - a[0], b[0], - a[1], b[1]) - - import matplotlib.pyplot as pt - return getattr(pt, func_name)(squeezed_fld.T, **kwargs) - def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): #Possibly reshape coords? @@ -201,23 +173,18 @@ def generate_true(i): return interactions_on_axis, interactions_off_axis, interactions_true, interactions_total -""" import matplotlib.pyplot as plt -from sumpy.visualization import FieldPlotter -center = np.asarray([0, 0], dtype=np.float64) -fp = FieldPlotter(center, npoints=1000, extent=6) +import matplotlib.pyplot as plt +fig, ax = plt.subplots(1, 1, figsize=(15, 8)) +res = 8 +x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] +y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] +res = len(x_grid) + +mesh = np.meshgrid(x_grid, y_grid) -plt.clf() -vol_pot = np.outer(0.3**np.arange(1, 100), 1.1**np.arange(1, 100)) -plotval = np.log10(1e-20+np.abs(vol_pot)) -im = fp.show_scalar_in_matplotlib(plotval.real) -from matplotlib.colors import Normalize -im.set_norm(Normalize(vmin=-8, vmax=5)) +#cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r) -cb = plt.colorbar(shrink=0.9) -cb.set_label(r"$\log_{10}(\mathdefault{Error})$") -fp.set_matplotlib_limits() -plt.show() """ w = make_identity_diff_op(2) laplace2d = laplacian(w) @@ -228,4 +195,4 @@ def generate_true(i): coords = np.array([np.array([1.2, 3.4, .00045]),np.array([2.3, 4.5, 4.5])]) -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(coords, laplace2d, g_x_y, 9) \ No newline at end of file +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(coords, laplace2d, g_x_y, 9) \ No newline at end of file From fd82b5596e4f29696e27012161363541f4558416 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 9 Apr 2025 14:15:14 -0500 Subject: [PATCH 175/193] Add bounds to heat mpa --- test/plotting.py | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/test/plotting.py b/test/plotting.py index 6fd227351..0e8f4bf05 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -173,26 +173,34 @@ def generate_true(i): return interactions_on_axis, interactions_off_axis, interactions_true, interactions_total -import matplotlib.pyplot as plt -fig, ax = plt.subplots(1, 1, figsize=(15, 8)) -res = 8 +w = make_identity_diff_op(2) +laplace2d = laplacian(w) +var = _make_sympy_vec("x", 2) +var_t = _make_sympy_vec("t", 2) +g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2)) + +res = 32 x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] -res = len(x_grid) mesh = np.meshgrid(x_grid, y_grid) +mesh_points = np.array(mesh).reshape(2, -1) -#cs1 = ax1.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r) +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y, 9) +import matplotlib.pyplot as plt +from matplotlib import cm, ticker +fig, ax = plt.subplots(1, 1, figsize=(15, 8)) -w = make_identity_diff_op(2) -laplace2d = laplacian(w) -var = _make_sympy_vec("x", 2) -var_t = _make_sympy_vec("t", 2) -g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + - (var[1]-var_t[1])**2)) +relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +cs = ax.contourf(x_grid, y_grid, relerr_on.reshape(res, res), locator=ticker.LogLocator(), cmap=cm.PuBu_r) +fig.colorbar(cs) -coords = np.array([np.array([1.2, 3.4, .00045]),np.array([2.3, 4.5, 4.5])]) +ax.set_xscale('log') +ax.set_yscale('log') +ax.set_xlabel("source x-coord", fontsize=15) +ax.set_ylabel("source y-coord", fontsize=15) -#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(coords, laplace2d, g_x_y, 9) \ No newline at end of file +plt.show() \ No newline at end of file From 954efe118f2485a5b5de1634679395977f53e9db Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 10 Apr 2025 11:37:25 -0500 Subject: [PATCH 176/193] make plotting generalizable --- test/plotting.py | 60 +++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/test/plotting.py b/test/plotting.py index 0e8f4bf05..dda878544 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -1,6 +1,3 @@ -import math -from typing import Sequence - import numpy as np import sympy as sp @@ -16,6 +13,9 @@ make_identity_diff_op, ) +import matplotlib.pyplot as plt +from matplotlib import cm, ticker + def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): #Possibly reshape coords? @@ -172,35 +172,49 @@ def generate_true(i): return interactions_on_axis, interactions_off_axis, interactions_true, interactions_total +def create_logarithmic_mesh(res): + + x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] + y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] + + mesh = np.meshgrid(x_grid, y_grid) + mesh_points = np.array(mesh).reshape(2, -1) + + return mesh_points, x_grid, y_grid + +def create_plot(relerr_on, str_title): + fig, ax = plt.subplots(1, 1, figsize=(15, 8)) + + n_levels = 18 + levels = 10**np.linspace(-n_levels+2, 1, n_levels) + cs = ax.contourf(x_grid, y_grid, relerr_on.reshape(res, res), locator=ticker.LogLocator(), cmap=cm.coolwarm, levels=levels, extend="both") + cbar = fig.colorbar(cs) + + cbar.set_ticks(levels) + cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) + + ax.set_xscale('log') + ax.set_yscale('log') + ax.set_xlabel("x-coordinate", fontsize=15) + ax.set_ylabel("y-coordinate", fontsize=15) + plt.title(str_title) + +#========================= LAPLACE 2D ==================================== +res = 32 +mesh_points, x_grid, y_grid = create_logarithmic_mesh(res) w = make_identity_diff_op(2) laplace2d = laplacian(w) var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) -g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + +g_x_y_laplace = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) -res = 32 -x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] -y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] - -mesh = np.meshgrid(x_grid, y_grid) -mesh_points = np.array(mesh).reshape(2, -1) - -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y, 9) - - -import matplotlib.pyplot as plt -from matplotlib import cm, ticker -fig, ax = plt.subplots(1, 1, figsize=(15, 8)) +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 9) relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -cs = ax.contourf(x_grid, y_grid, relerr_on.reshape(res, res), locator=ticker.LogLocator(), cmap=cm.PuBu_r) -fig.colorbar(cs) -ax.set_xscale('log') -ax.set_yscale('log') -ax.set_xlabel("source x-coord", fontsize=15) -ax.set_ylabel("source y-coord", fontsize=15) +create_plot(relerr_on, "Laplace (2D): On-Axis Recurrence, 9th Order Derivative Evaluation Error") +#========================= HELMOLTZ 2D ==================================== plt.show() \ No newline at end of file From 6bf06c87b07339e75c1486a2b9f5205bafa9b3eb Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Thu, 10 Apr 2025 19:41:35 -0500 Subject: [PATCH 177/193] What is the actual biharmonic 2d green's function? --- sumpy/recurrence.py | 2 +- test/biharmonic.ipynb | 161 +++++++ test/gridfree_taylor_recurrence.ipynb | 167 -------- test/investigate_normal.py | 148 ------- test/plot_normal_recurrence.ipynb | 414 ------------------ test/plot_taylor_recurrence.ipynb | 595 -------------------------- test/plotting.py | 55 ++- test/test_recurrence.py | 62 ++- test/testing_pde_to_ode.ipynb | 315 -------------- 9 files changed, 266 insertions(+), 1653 deletions(-) create mode 100644 test/biharmonic.ipynb delete mode 100644 test/gridfree_taylor_recurrence.ipynb delete mode 100644 test/investigate_normal.py delete mode 100644 test/plot_normal_recurrence.ipynb delete mode 100644 test/plot_taylor_recurrence.ipynb delete mode 100644 test/testing_pde_to_ode.ipynb diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 249843deb..6a1d5939a 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -277,7 +277,7 @@ def recurrence_from_pde(pde: LinearPDESystemOperator) -> sp.Expr: """ ode_in_r, var, ode_order = pde_to_ode_in_r(pde) ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify() - ode_in_x_cleared = (ode_in_x * var[0]**(ode_order+1)).simplify() + ode_in_x_cleared = (ode_in_x * var[0]**(pde.order*2-1)).simplify() # ode_in_x_cleared shouldn't have rational function coefficients assert sp.together(ode_in_x_cleared) == ode_in_x_cleared f_x_derivs = _make_sympy_vec("f_x", ode_order+1) diff --git a/test/biharmonic.ipynb b/test/biharmonic.ipynb new file mode 100644 index 000000000..39e01d8cd --- /dev/null +++ b/test/biharmonic.ipynb @@ -0,0 +1,161 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " make_identity_diff_op,\n", + ")\n", + "from collections import namedtuple\n", + "DerivativeIdentifier = namedtuple(\"DerivativeIdentifier\", [\"mi\", \"vec_idx\"])\n", + "\n", + "from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence\n", + "\n", + "from immutabledict import immutabledict\n", + "from sumpy.expansion.diff_op import LinearPDESystemOperator" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "var = _make_sympy_vec(\"x\", 2)\n", + "var_t = _make_sympy_vec(\"t\", 2)\n", + "abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)\n", + "w = make_identity_diff_op(2)\n", + "\n", + "partial_1x = DerivativeIdentifier((4,0), 0)\n", + "partial_1y = DerivativeIdentifier((0,4), 0)\n", + "biharmonic_op = {partial_1x: 1, partial_1y: 1}\n", + "list_pde = immutabledict(biharmonic_op)\n", + "\n", + "biharmonic_pde = LinearPDESystemOperator(2, (list_pde,))\n", + "g_x_y = abs_dist**2 * (sp.log(abs_dist)-1)\n", + "\n", + "n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(biharmonic_pde)\n", + "\n", + "derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(8)]\n", + "\n", + "x_coord = np.random.rand() # noqa: NPY002\n", + "y_coord = np.random.rand() # noqa: NPY002\n", + "coord_dict = {var[0]: var[0], var[1]: var[1]}\n", + "derivs = [d.subs(coord_dict) for d in derivs]\n", + "\n", + "n = sp.symbols(\"n\")\n", + "s = sp.Function(\"s\")\n", + "\n", + "# pylint: disable-next=not-callable\n", + "subs_dict = {s(0): derivs[0], s(1): derivs[1], s(2): derivs[1], s(3): derivs[1]}\n", + "check = []\n", + "\n", + "assert n_init == 4\n", + "max_order_check = 8\n", + "for i in range(n_init, max_order_check):\n", + " check.append(r.subs(n, i).subs(subs_dict) - derivs[i])\n", + " # pylint: disable-next=not-callable\n", + " subs_dict[s(i)] = derivs[i]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "max_order_check = 8\n", + "for i in range(n_init, max_order_check):\n", + " check.append(r.subs(n, i).subs(subs_dict) - derivs[i])\n", + " # pylint: disable-next=not-callable\n", + " subs_dict[s(i)] = derivs[i]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 16.9964566798618$" + ], + "text/plain": [ + "16.9964566798618" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r.subs(n, 4).subs(subs_dict).subs({var[0]: 1.2, var[1]: 2.3})" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{s(0): (x0**2 + x1**2)*(log(sqrt(x0**2 + x1**2)) - 1),\n", + " s(1): -2*x0*(log(sqrt(x0**2 + x1**2)) - 1) - x0,\n", + " s(2): -2*x0*(log(sqrt(x0**2 + x1**2)) - 1) - x0,\n", + " s(3): -2*x0*(log(sqrt(x0**2 + x1**2)) - 1) - x0,\n", + " s(4): 2*(-24*x0**4/(x0**2 + x1**2)**2 + 8*x0**2*(4*x0**2/(x0**2 + x1**2) - 3)/(x0**2 + x1**2) + 12*x0**2/(x0**2 + x1**2) + 3)/(x0**2 + x1**2),\n", + " s(5): -4*x0*(-24*x0**4/(x0**2 + x1**2)**2 + 40*x0**2/(x0**2 + x1**2) - 15)/(x0**2 + x1**2)**2,\n", + " s(6): 12*(-320*x0**6/(x0**2 + x1**2)**3 + 360*x0**4/(x0**2 + x1**2)**2 + 24*x0**2*(16*x0**4/(x0**2 + x1**2)**2 - 20*x0**2/(x0**2 + x1**2) + 5)/(x0**2 + x1**2) - 60*x0**2/(x0**2 + x1**2) - 5)/(x0**2 + x1**2)**2,\n", + " s(7): -48*x0*(-160*x0**6/(x0**2 + x1**2)**3 + 336*x0**4/(x0**2 + x1**2)**2 - 210*x0**2/(x0**2 + x1**2) + 35)/(x0**2 + x1**2)**3}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subs_dict" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/gridfree_taylor_recurrence.ipynb b/test/gridfree_taylor_recurrence.ipynb deleted file mode 100644 index 11c99e9a5..000000000 --- a/test/gridfree_taylor_recurrence.ipynb +++ /dev/null @@ -1,167 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Generalizing a Taylor Recurrence" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.recurrence import _make_sympy_vec\n", - "\n", - "from sumpy.expansion.diff_op import (\n", - " laplacian,\n", - " make_identity_diff_op,\n", - ")\n", - "\n", - "from sumpy.recurrence import get_off_axis_expression, get_reindexed_and_center_origin_off_axis_recurrence, _extract_idx_terms_from_recurrence\n", - "\n", - "import sympy as sp\n", - "from sympy import hankel1\n", - "\n", - "import numpy as np\n", - "\n", - "import math\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib import cm, ticker" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.expansion.diff_op import laplacian,make_identity_diff_op\n", - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "helmholtz2d = laplacian(w) + w" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - "derivs_laplace = [g_x_y.subs(var_t[0], 0).subs(var_t[1], 0).diff(var[0], i)\n", - " for i in range(8)]" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle - \\frac{5040}{x_{1}^{8}}$" - ], - "text/plain": [ - "-5040/x1**8" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "i=4\n", - "j=4\n", - "derivs_laplace[i].diff(var[0], j).subs(var[0], 0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "k = 1\n", - "abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - "g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - "derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(6)]" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'derivs_helmholtz' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mderivs_helmholtz\u001b[49m[\u001b[38;5;241m4\u001b[39m]\u001b[38;5;241m.\u001b[39mdiff(var[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m.\u001b[39msubs(var[\u001b[38;5;241m1\u001b[39m], \u001b[38;5;241m0\u001b[39m)\n", - "\u001b[0;31mNameError\u001b[0m: name 'derivs_helmholtz' is not defined" - ] - } - ], - "source": [ - "derivs_helmholtz[4].diff(var[1], 0).subs(var[1], 0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "inteq", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/test/investigate_normal.py b/test/investigate_normal.py deleted file mode 100644 index 0ddb650dc..000000000 --- a/test/investigate_normal.py +++ /dev/null @@ -1,148 +0,0 @@ -# %% -from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence - -from sumpy.expansion.diff_op import ( - laplacian, - make_identity_diff_op, -) - - -import sympy as sp -from sympy import hankel1 - -import numpy as np - -import math - -import matplotlib.pyplot as plt -from matplotlib import cm, ticker - -# %% -w = make_identity_diff_op(2) -laplace2d = laplacian(w) -n_init_lap, order_lap, recur_laplace = get_reindexed_and_center_origin_on_axis_recurrence(laplace2d) - -w = make_identity_diff_op(2) -helmholtz2d = laplacian(w) + w -n_init_helm, order_helm, recur_helmholtz = get_reindexed_and_center_origin_on_axis_recurrence(helmholtz2d) - -# %% -var = _make_sympy_vec("x", 2) -rct = sp.symbols("r_{ct}") -s = sp.Function("s") -n = sp.symbols("n") - -# %% -def compute_derivatives(p): - var = _make_sympy_vec("x", 2) - var_t = _make_sympy_vec("t", 2) - g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) - derivs = [sp.diff(g_x_y, - var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(p)] - return derivs -l_max = 10 -derivs_laplace = compute_derivatives(l_max) - -# %% -def compute_derivatives_h2d(p): - k = 1 - var = _make_sympy_vec("x", 2) - var_t = _make_sympy_vec("t", 2) - abs_dist = sp.sqrt((var[0]-var_t[0])**2 + - (var[1]-var_t[1])**2) - g_x_y = (1j/4) * hankel1(0, k * abs_dist) - derivs_helmholtz = [sp.diff(g_x_y, - var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(p)] - return derivs_helmholtz -h_max = 8 -#derivs_helmholtz = compute_derivatives_h2d(h_max) - -# %% -def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list, n_initial, n_order): - s = sp.Function("s") - subs_dict = {} - for i in range(n_initial-n_order, 0): - subs_dict[s(i)] = 0 - for i in range(n_initial): - subs_dict[s(i)] = derivs_list[i].subs(coord_dict) - var = _make_sympy_vec("x", 2) - for i in range(n_initial, p): - exp = recur.subs(n, i) - f = sp.lambdify([var[0], var[1]] + [s(i-(1+k)) for k in range(n_order-1)], exp) - subs_dict[s(i)] = f(*([coord_dict[var[0]], coord_dict[var[1]]] + [subs_dict[s(i-(1+k))] for k in range(n_order-1)])) - for i in range(n_initial-n_order, 0): - subs_dict.pop(s(i)) - return np.array(list(subs_dict.values())) - -# %% -def evaluate_true(coord_dict, p, derivs_list): - retMe = [] - for i in range(p): - exp = derivs_list[i] - f = sp.lambdify(var, exp) - retMe.append(f(coord_dict[var[0]], coord_dict[var[1]])) - return np.array(retMe) - -# %% -def compute_error_coord(recur, loc, order, derivs_list, n_initial, n_order): - var = _make_sympy_vec("x", 2) - coord_dict = {var[0]: loc[0], var[1]: loc[1]} - - exp = evaluate_recurrence_lamb(coord_dict, recur, order+1, derivs_list, n_initial, n_order)[order].evalf() - - true = derivs_list[order].subs(coord_dict).evalf() - - return (np.abs(exp-true)/np.abs(true)) - -# %% -def generate_error_grid(res, order_plot, recur, derivs, n_initial, n_order): - x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] - y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] - res=len(x_grid) - plot_me = np.empty((res, res)) - for i in range(res): - for j in range(res): - if abs(x_grid[i]) == abs(y_grid[j]): - plot_me[i, j] = 1e-16 - else: - plot_me[i,j] = compute_error_coord(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs, n_initial, n_order) - if plot_me[i,j] == 0: - plot_me[i, j] = 1e-16 - return x_grid, y_grid, plot_me - -# %% -order_plot = 5 -#x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm) -x_grid, y_grid, plot_me_lap = generate_error_grid(res=10, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap) -plot_me_hem = plot_me_lap - - -fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8)) -cs = ax1.contourf(x_grid, y_grid, plot_me_hem.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r) -cbar = fig.colorbar(cs) - -cs = ax2.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r) -cbar = fig.colorbar(cs) -ax1.set_xscale('log') -ax1.set_yscale('log') -ax1.set_xlabel("source x-coord", fontsize=15) -ax1.set_ylabel("source y-coord", fontsize=15) - - -ax2.set_xscale('log') -ax2.set_yscale('log') -ax2.set_xlabel("source x-coord", fontsize=15) -ax2.set_ylabel("source y-coord", fontsize=15) - -ax1.set_title("Helmholtz recurrence relative error for order = "+str(order_plot), fontsize=15) -ax2.set_title("Laplace recurrence relative error for order = "+str(order_plot), fontsize=15) - -fig.savefig('order'+str(order_plot)) -plt.show() - -# %% - - - diff --git a/test/plot_normal_recurrence.ipynb b/test/plot_normal_recurrence.ipynb deleted file mode 100644 index 6ddd34bb7..000000000 --- a/test/plot_normal_recurrence.ipynb +++ /dev/null @@ -1,414 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.recurrence import _make_sympy_vec, get_processed_and_shifted_recurrence\n", - "\n", - "from sumpy.expansion.diff_op import (\n", - " laplacian,\n", - " make_identity_diff_op,\n", - ")\n", - "\n", - "from sumpy.recurrence import get_recurrence, _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x\n", - "\n", - "import sympy as sp\n", - "from sympy import hankel1\n", - "\n", - "import numpy as np\n", - "\n", - "import math\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib import cm, ticker" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "n_init_lap, order_lap, recur_laplace = get_processed_and_shifted_recurrence(laplace2d)\n", - "\n", - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "n_init_helm, order_helm, recur_helmholtz = get_processed_and_shifted_recurrence(helmholtz2d)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "max_abs = .0000001\n", - "var = _make_sympy_vec(\"x\", 2)\n", - "rct = sp.symbols(\"r_{ct}\")\n", - "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives(p):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - " derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs\n", - "l_max = 10\n", - "derivs_laplace = compute_derivatives(l_max)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives_h2d(p):\n", - " k = 1\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - " derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs_helmholtz\n", - "h_max = 8\n", - "derivs_helmholtz = compute_derivatives_h2d(h_max)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate_recurrence_lamb(coord_dict, recur, p, derivs_list, n_initial, n_order):\n", - " subs_dict = {}\n", - " for i in range(n_initial-n_order, 0):\n", - " subs_dict[s(i)] = 0\n", - " for i in range(n_initial):\n", - " subs_dict[s(i)] = derivs_list[i].subs(coord_dict)\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " for i in range(n_initial, p):\n", - " exp = get_recurrence(recur, i)\n", - " f = sp.lambdify([var[0], var[1]] + [s(i-(1+k)) for k in range(n_order-1)], exp)\n", - " subs_dict[s(i)] = f(*([coord_dict[var[0]], coord_dict[var[1]]] + [subs_dict[s(i-(1+k))] for k in range(n_order-1)]))\n", - " for i in range(n_initial-n_order, 0):\n", - " subs_dict.pop(s(i))\n", - " return np.array(list(subs_dict.values()))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate_true(coord_dict, p, derivs_list):\n", - " retMe = []\n", - " for i in range(p):\n", - " exp = derivs_list[i]\n", - " f = sp.lambdify(var, exp)\n", - " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", - " return np.array(retMe)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_error_coord(recur, loc, order, derivs_list, n_initial, n_order):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", - "\n", - " exp = evaluate_recurrence_lamb(coord_dict, recur, order+1, derivs_list, n_initial, n_order)[order].evalf()\n", - " \n", - " true = derivs_list[order].subs(coord_dict).evalf()\n", - "\n", - " \n", - "\n", - " return (np.abs(exp-true)/np.abs(true))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "def generate_error_grid(res, order_plot, recur, derivs, n_initial, n_order):\n", - " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " res=len(x_grid)\n", - " plot_me = np.empty((res, res))\n", - " for i in range(res):\n", - " for j in range(res):\n", - " if abs(x_grid[i]) == abs(y_grid[j]):\n", - " plot_me[i, j] = 1e-16\n", - " else:\n", - " plot_me[i,j] = compute_error_coord(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs, n_initial, n_order)\n", - " if plot_me[i,j] == 0:\n", - " plot_me[i, j] = 1e-16\n", - " return x_grid, y_grid, plot_me" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABOQAAALKCAYAAACSt45gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADD6klEQVR4nOzdeXhU5cH+8XsIJCySICCBAEFcQGMENURllYiCQVHZRGsRLFgpccG4VGqtFKtoq4jVwCu1SvXVikvF1lIxbVVQ9BUicWlcwIKAgGGTkIAs4fn94S8jw2SS2c9zZr6f68p1MWfOnPMkmczc3M85ZzzGGCMAAAAAAAAAcdHE6QEAAAAAAAAAyYRCDgAAAAAAAIgjCjkAAAAAAAAgjijkAAAAAAAAgDiikAMAAAAAAADiiEIOAAAAAAAAiCMKOQAAAAAAACCOKOQAAAAAAACAOKKQAwAAAAAAAOLI2kLO4/HI4/E0uM6MGTPk8Xg0Y8aMiPc3ePBgeTwerVu3LuJtJdN+gEh5PB4de+yxMd/Pm2++KY/Ho4kTJ8Z8X/D35ZdfauTIkWrfvr2aNGkij8ejN9980+lhxUWyvB5PnDjR+95d39f//M//OD1EuFww2TDe6rLoggULnB4KEBfHHntsXP4O161bJ4/Ho8GDB8d8X/C3detWXXXVVerUqZNSUlKS6nWuLs8kek6te/8K9HX77bc7PcSk0NTpASC+PB6PunXrlvD/MUTymTFjhn7961/rySefpHSzzKFDhzRmzBiVl5fr7LPP1oknnqgmTZqoY8eOTg8NMTBs2LB6f7c9e/Z0YDQAABstWLBAV199te66666oHFyB6Jo0aZL+9re/qVevXhoyZIiaNm2qE044welhIQb69+9f7+82Ly/PgdEkHwo5AEnhzDPP1KeffqqMjAynh5J01q1bp/Lycg0cOFBLly51ejiIsdtvv50jGgAAEencubM+/fRTtWzZ0umhJJ39+/dr8eLFOvbYY7Vq1So1aWLtSXWIgsmTJ3Mwg4Mo5AAkhZYtW+qkk05yehhJaePGjZKk4447zuGRAAAAN2jWrBm5zSFbtmxRbW2tunXrRhkHxFjC/oUZY/SnP/1JgwYNUps2bdSiRQv16tVLDzzwgA4cOBD0duqub3Xw4EHdfffdOuGEE9SiRQudfPLJevLJJ73r/fvf/1ZBQYHS09N19NFH66qrrtL27dsb3PaiRYt09tlnq1WrVmrbtq2uuOIK739cj7Rnzx7dfffdys3NVYsWLZSRkaFBgwbpueeeC+r7WLBggfd6D1999ZXP+eF1RzI0dv2fYM+lr9vXjBkz9MUXX+jyyy9XZmammjRpokWLFnnX+/jjj3XllVeqc+fOSktLU1ZWlq6++uoGT6f9xz/+oYsuukgdOnRQWlqasrOzdemll+rvf/+7d53GrhUW6LoAdb/r/fv3a+bMmTrppJOUlpamSy+9VJLvdaCeffZZnX322WrdurXatGnj3Uaoz7vDr8Px+OOPq1evXmrRooU6duyoa6+9Vt9++22938OBAwc0d+5c9e/fX23atFHLli3Vo0cPXXPNNfrkk0/81n/77bc1cuRI78/t2GOP1Q033KCtW7cG/FnXp7GfkSRVV1dr5syZOvXUU9WyZUulp6frnHPO8fndN8YYoz//+c+6/PLL1aNHD7Vq1UqtW7fWmWeeqblz5+rQoUM+6x977LH69a9/LUm6+uqr633O1ve8uP766xu9ttUpp5wij8ejL774wmf5unXrdO211+rYY49VWlqajjnmGI0ZM0YfffRR0N9nnf379+vhhx9Wfn6+WrdurVatWunMM8/UH//4Rxlj/NaPxnM11NeUuueqMUaPPPKIevfurZYtW+q0005r8HvzeDw655xzJEl/+tOf/F536ixevFjnn3++jj76aDVv3lw9e/bU7bffXu/fwOHXbHr//fd10UUXqV27dvJ4PCovL29wPLHc3/z583XqqaeqefPm6ty5s66//nrt2rWrwXGE8jwK9rUVgLR582b99re/1TnnnKPOnTsrNTVVHTt21KhRo7RixYp6H3P469zDDz+snJwc79/zDTfcEPA9uT5r1qzRjBkz1LdvX3Xs2FGpqanq0qWLrrrqKr/3k8Nt27ZN06dPV25urlq1aqU2bdrotNNO0x133OGXK6OVdQ9/f9yyZYsmT56sLl26qGnTppozZ453vXDe9959911ddtllysrKUlpamjp37qxhw4bpf//3f32229C1wgJdp6+x96XD896SJUtUUFCgNm3ayOPx+Pwu//a3v2nYsGFq166dmjdvrh49eujOO+9UdXW131gOf38NJccbY/TMM89oyJAh3v0cd9xx+tGPfqR33nnHb/1wMnJ9gnnvDjWDBPL3v/9dP/nJT3TyyScrPT1drVq1Uu/evXXvvfdq3759PusOHjxYV199tSTp17/+tU9uq/s91/e8ePDBBxu9ttXw4cPl8XhUWlrqs3zr1q265ZZb1LNnTzVv3lxHH320CgsLwzpyP9y8H8lz9eDBg3rkkUeUl5eno446SkcddZTOPPNMzZs3T7W1tX77DCYL1ufYY49Vt27dJElvvfWW9/dy5PWe3333XV1yySU65phjvP+3mDp1qjZt2uS3zWjkl1js76WXXtKZZ56pFi1aKDMzU1dddVW92ztcKM+jYF9bkeSMpSSZxoZ31113GUnmrrvu8lleW1trxo4daySZ9PR0M2TIEHPJJZeYjh07Gklm+PDhpra21ucx55xzjpFk1q5d6zeObt26mZEjR5rWrVuboUOHmqFDh5q0tDQjyTzxxBPmhRdeME2bNjV5eXlm1KhRpnPnzkaSGTBggDl06FC9+7n11ltNkyZNzJlnnmlGjRplunbtaiSZE0880ezZs8fnMVVVVSYvL89IMsccc4wZM2aMKSws9I7hxhtv9PvZHPn9LFu2zEyYMMFIMq1atTITJkzwfs2aNcsYY8wf/vAHn+V1Xz/+8Y9NSkqKkWSWLl3a4O/EGGOefPJJI8lcfvnlJj093XTv3t2MGzfODB061Lz66qvGGGNefPFFk5qaaiSZvLw8M2bMGHP66acbSaZdu3bmk08+8dtucXGxkWRSUlLMgAEDzOWXX24GDRpk0tPTzTnnnONd74033jCSzIQJE+odX93P4Y033vBZLsl07drVFBYWmlatWpnhw4ebsWPHmilTpvj8TH/605+aJk2amIEDB5rLL7/c9O/f3xgT3vOuW7du3udDamqq6d+/v7n00ktNhw4djCQzcOBAv+dQdXW1GThwoJFkjjrqKFNYWGguu+wyk5+fb5o2ber39/Dwww8bj8djUlJSTN++fc2YMWPMSSedZCSZ7t27m02bNjX2Kw36Z7RlyxaTk5NjJJnOnTubiy++2Jx33nmmVatWRpL3uXbkNrt16+azbO/evUaSOfroo03//v3NuHHjzJAhQ0zLli3r/d3efPPNpnfv3kaS6d+/v8/z99NPPzXG1P+8ePfdd71/q/VZtWqVkWTy8/N9li9btsykp6cbSeaUU04xY8aMMX379jUej8e0aNHC/Pvf/w76Z3r477N9+/bmggsuMMOHDzdHH320kWSuvfbaen9mkTxXw3lNqXuu/vSnPzXNmjUz5513nhk3bpwZOXJkg9/fhAkTzLBhw4wkc/zxx/u97hhjzL333mskmaZNm5ohQ4aYcePGmS5duhhJpkePHmbLli0+26x77b/66qtNs2bNzCmnnOJ9Pfjwww8b/ZnHYn8333yzkWTS0tJMYWGhGT16tDn66KPN6aefbs4+++x6319CfR4F89rqpLrX1uuvv95cd9115mc/+5n57W9/6/0bBCIVTDasM2/ePCPJnHDCCWbYsGFm7Nix3pzRrFkzs2TJEr/H1L3OFRUVmWbNmpnzzz/fXHbZZSYzM9NIMr169TJVVVU+j6l7fXjyySd9lv/85z83kkxOTo658MILzejRo83JJ5/szQj1vVb95z//8WbITp06mVGjRplLLrnE+559eG4JJ3MEUvf+OHz4cNOlSxfTsWNHM2bMGHPRRReZxx57zBgT3vveQw89ZDwej/d99PLLLzfnnnuuad++vc/7/tq1a40knywXzM+4sfeluteka665xng8Hu8Y8vPzzbfffmuM+SFbNm/e3AwaNMiMGjXKu928vDxTXV3ts89wcvzBgwfNmDFjvO8Rde87ffv2Nc2bN/fLNOFk5EAa+xmFk0HqtnmkzMxMc9RRR5mzzjrLjB071gwbNsy7nXPPPdccPHjQu+6sWbNM//79jSTTu3dvn9y2bNkyY0z9z4uvv/7aNGnSxGRnZ/vlY2OM2bp1q2natKnp2LGjz/4+/fRT79/W8ccfb0aOHGkGDRpkUlNTTZMmTcwzzzwT9M80krwf7nP14MGDZvjw4d59XnLJJeaSSy4xrVu3NpLMyJEjA/7fNlAWDOTmm282o0ePNpJMZmam9/dy8803e9d5+umnTUpKivF4PKZ///7m8ssvNz169PA+5sj3/UjzSyz298gjj3j/X3nuueeayy67zHTq1Ml07drVXHTRRfX+XzHU51Ewr61OqnttHT9+vLnxxhvNtddea+6++26zcuVKp4eWVBKykLv//vuNJHP++eebyspK7/Lq6mozYsQII8k8+uijPo9pqJCTZHJzc82GDRu8y//97397A1O7du3Miy++6L1v165d5pRTTjGS/AJK3X5atWpl/vWvf3mX19TUmH79+hlJ5o9//KPPY6677jojyZx33nlm9+7d3uWffvqpt7j5+9//HvT3c2T50ZgbbrjBSDIXXXRRUOGu7kVQkrnuuut83hCNMea///2vadmypcnIyDBvvfWWz31/+tOf6i1Ann76aSPJdOnSxS/EVldX+/wsIynk6sL7xo0b/R5X9zNt3ry5efPNN/3uD+d5V/cG3alTJ7Nq1Srv8q1bt5oTTjjBSPL53owxZtKkSUaSKSgoMNu2bfO5b+PGjT4vou+++65p0qSJ6datm8/P7dChQ2bmzJlGkhkzZky9P6f6NPYzKiwsNJLMbbfdZvbv3+9d/uWXX5rjjz/epKSk+P3+6ntOHjhwwLz00ktm3759PssrKytNnz59jCS/506gwF4n0PPi+OOPNx6Px6xbt87vMbfeequRZObMmeNdtmvXLtOxY0fTrFkz88ILL/isX1paalJTU03nzp39xh7Iz372M++b4eF/35WVleass84ykvzCSqTP1XBeU+qeq+3btw/pPwPGNPw3+f7775smTZqY1q1bm//7v//zLv/uu++8gXfs2LE+j6n7XUsy999/f0hjicX+3nnnHSPJtG3b1udns23bNtOrVy/vYw9/PQ7nedTYa2tj6p4XoXwd+TrZkLrX1iO/PB6PmTp1qjlw4EBI4wWOFEw2rPPRRx/VW3q99tprJjU11Rx//PF+/6Gve51LT0/3eS/dvXu3Offcc40kc9NNN/k8JtB7z7vvvmvWrFnjt/8nnnjC+x5+uAMHDniLt5tvvtnnPdQYYz744AOfHBpO5gik7jW67j/2e/fu9bk/nNert956y3g8HpOenu73OrJv3z7z2muveW9HWsgFel86/DXpueee87t/4cKFRpI5/fTTfV6f9+/fb376058aSeaWW27xeUw4Of7uu+82ksypp57qlzW2b99u3n77be/tcDJyQxr7GYWTQQIVci+//LJfgVlVVeUtN/70pz/53Ff3nnbk/+PqBHpe1P0t1neQQElJiZFkpk2b5l128OBBk5ubaySZhx9+2Ofv/oMPPjDt2rUzrVq1Mt9880294zhSJHk/3OfqAw884H0OHT7OTZs2mZ49expJpqSkxOcxjWXBhjT0N7l+/XrTokUL07RpU/O3v/3Nu7y2ttZMmzat3udoJPklFvtbu3atSUtLM2lpaT6vTzU1Neb888+vNwOF8zxq7LW1MYFyVUNfgf4fVJ/D8+2RX6NHj/Z5TUDsWF/IBfN1+Av5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9ffakLo3gfpOAXz++efrfUxdoG/o+R1Ip06dVFBQoPXr1+udd94JeLqqFN3vs6CgQCkpKXr11Ve9M2+xFu3XlEgNHDhQkvTMM8/43bd161a9/vrratKkSdQOl4/F/uqCzwsvvOB3X2lpqd/pqlJ0n0fBevPNN2W+/zCnoL8GDx4c8X737dunv//975K+f/4BsVb3HlLfaYU7d+70XgsokIULF/ot++yzz1ReXq7WrVs3Wko19B62Zs2aenNI3WvC448/3uiRRPHOuqG+XqWkpHhfO/7whz80un779u3VrFkzrV271u89fP/+/SFPJASjS5cu6tmzpz766KMGi45I9enTR23atNEHH3ygsrKyRteP53tDNDNIvHNbamqqxowZoz179mjRokXe9/RY5zYn/p+ZnZ2t7OxsbdmyRf/+97/97v/73/+unTt3qmfPnn6nq8ZCQzlq//793ixUt56N+2sot33xxRcqLy/3W+5EbluwYEHIuW3ixIkR79cY4y3ZyW2xl3CFXFpamm655RZ9++23Gj16tLc1P9xHH31Ub9iyUatWrfSTn/xEhw4dUlFRkWpqarz3ffHFF/rNb34jSbr++uuD2l5WVpa++eYbffvtt373Pf/88/rNb36j4447Ti+88EKj1x0L180336wWLVropptu0t/+9je/+3fs2KG5c+f6XLOi7mLk06ZN03/+8x+f9WtqanzeoLp3767s7Gx9/PHHeuWVV3zWu+aaa2LyBhqv511WVpauuuoq7d27VxMnTvT7j/6mTZt8gv4vfvELNWnSRBMmTKj3kOdNmzappKQkojHVOfvsszVkyBC98cYbuummm/xmug8dOqTXX389qEOv62bA/ud//sdn+Ysvvqinnnqq3sfUzSB+/vnn4QzfG+Lmz5+vv/71r2rbtq0uuOACv/WuvfZaHXPMMbr33nv15JNP+v3HqaamRk899ZQ2btzY6D47d+6siRMnavXq1Ro/fny9151Yvny5Fi9eHNb3VJ9ov6ZEqqioSE2aNNHDDz+slStXepfv379f119/vfbs2aNRo0aFdTHceO3v2muvlfT9qdaffvqpd/mOHTt02223BXxMtJ5HNvj888/1yiuv+P2nbuvWrbr88su1YcMG9e7dm+uQIC5OOOEENWnSRP/+9799Jh6+++47TZkypd6S/HCPPvqoVq1a5b1dU1Oj66+/XsYY/eQnP2n0NNC697C//OUvPteQ+/bbbzVp0iTvhzscbtSoUerRo4c+/PBD3X777X4lRXl5uff1IN5ZN5zXq5///OfyeDy6++67vRdlr3PgwAEtWbLEezs1NVVnn322duzY4ZNJDhw4oJtuuilmhdkvf/lL1dbWavTo0frkk0/87v/yyy/1xBNPRLSP1NRU3XTTTTLGaNKkSX5H++3YsUPvvPOO93Y4GTlc0cwgdc/5+fPn+zw/li1bpt/97nf1PiZaue2ZZ57Rc889p5SUlHqv7TVmzBiddNJJWrBgge6//36/v7/9+/frL3/5i/fDXhri1P8z6zLZTTfd5POasmXLFt16660+68TapEmT1KJFC/35z3/2TrZJ3+f8X/ziF/r666+Vn5/v9wELNu3v6quvVmpqqp566imf16e9e/fqxhtvrPc0+Wg+j2ywbds2PfXUU37Xu6+urtbPfvYz/d///Z86duzod+kexED0P7g1OhTER9vXfQz6kR+XXVtba6644grvxwz37dvXjBs3zgwZMsR0797dSDKXXHKJz2PqPhp67dq1fuPo1q1bvfuv+4jqwz8SuU7dxxwf/tHnDe3HmMAfMV1VVWXy8vKMJNOhQwczduxYM3z4cNO8eXMjydxwww1+2wq0n+uvv95IMt27dzdXXnmlmTRpkvntb39rjDHmuOOOM5LMgAEDAn6U8qefflrvz+JwjX2MuTHffzR8ixYtvB/Tfemll5pLLrnEnHbaaSY1NdVIMjt37vR5zHXXXWckmZSUFDNw4EBzxRVXmHPOOcekp6f7/cyeeOIJ77oFBQVmxIgRJjMz05x44onm4osvrvf31tDv2piGf3fGhPe8a+ij4wM9h6qqqkzfvn2NJNO6dWszfPhwc9lll5kzzzzTNG3a1O/n/sgjj5iUlBQjyfTq1cuMHj3aXHjhhSY3N9ekpKSYjIyMgN/zkRr7GW3ZssX06tXLSDJt27Y15557rhk3bpwZMGCAOeaYY4wk89BDDzW6zbfeess75ry8PHPFFVeYPn36GEnmlltuqffv5OuvvzbNmzc3KSkp5oILLjA/+clPzKRJk8xnn33W4M+zzq5du7x/U5LMlClTAn6fb7/9tmnbtq137BdeeKEZNWqU6dOnj2nVqpWRZFatWhXw8YerqakxBQUF3t/nwIEDzbhx48w555zj/djxG2+8sdGf2eEae66G85rS0HO1MY397O+55x4jyTRt2tScd9555vLLLzddu3Y1ksyJJ55otmzZ4rN+3Wv/k08+GdZ4YrG/adOmef/2L7zwQjNmzBjTtm1bc9ppp5mzzz673t9HqM+jYF5bnVL3O27Xrp3p37+/ueyyy8zgwYNN69atjSTTpUsX8/nnnzs9TLhc3evzWWedFfDrueeeM8YYc8011xhJpkWLFt6/yczMTNO+fXszceLEev+m617nioqKTLNmzcywYcPMZZddZjp27GgkmVNOOcV8++23Po8J9Ppw/vnnG0mmTZs25tJLLzWXXnqpadOmjTnhhBPMJZdcUm8O+fjjj737ysrKMmPGjDGXXnqpOfnkk/3WDydzBNLYa7Qx4b3v/e53v/P+zs4880xzxRVXmCFDhpj27dv7vYeVlpaaJk2aGEmmb9++ZuTIkSY7O9u0b9/em7cD/b4CaSin17ntttu8ebFPnz5m7NixZtiwYeakk04ykkzv3r191g8nxx84cMBceuml3t9V3ftOv379TPPmzf1+7uFk5EAa+xmFk0Hq2+bnn3/ufR7k5OSYyy+/3AwcONB4PB5vbjvyd753717ToUMH78/s6quvNpMmTTLvvPNOgz/POocOHTJdunTxPscuuOCCgN/np59+arKzs40k06lTJzNs2DAzduxYc/bZZ5s2bdoYSebll18O+PjDRTvvG9P4c/XgwYOmsLDQSDIZGRlm5MiR5tJLL/W+x1566aWmtrbW5zGNZcGGNPazf/rpp01KSorxeDxmwIAB5oorrjA9e/Y0kkxmZqbf/xcjzS+x2N9DDz3k/dsfMmSIGTdunMnKyjJdunQxF110Ub2/j1CfR8G8tjql7necnp5uzjrrLDN27Fhz/vnnm3bt2nnfu95++22nh5kUErKQq/Piiy+aCy64wLRv3940a9bMdOrUyZx99tlmxowZ3v+k17G5kDPGmOrqavPrX//a5OTkmLS0NNO6dWszYMAA8+yzz9Y7tkD7qa6uNtddd53p2rWradq0qc/+6t4sGvpqKNTUCfZF94svvjDXXnutOe6440xaWprJyMgwJ598srn66qvNq6++ag4dOuT3mJdfftkMHTrUHH300SY1NdVkZ2ebkSNHmsWLF9c7jtzcXJOammoyMzPN5MmTzbZt2wL+3iItOeqE8rwLp5AzxpjvvvvOPPTQQ94g3LJlS9OjRw/z05/+1HzyySd+669cudJceeWVpmvXrqZZs2ambdu2plevXqaoqMi8+eabDX4/h2vsZ2SMMXv27DGzZ882Z511lmndurVJS0szxx57rBk6dKgpKSkxW7duDWqb7777rjn33HPN0UcfbVq3bm369etnXnrppQb/TpYsWWL69+9vjjrqKL/nbDBvimPHjvU+bunSpQ1+n19//bW5+eabzUknnWRatGhhjjrqKNOjRw8zbtw4s3DhQrNv374GH3+4AwcOmMcff9ycc8453ud2ly5dzKBBg8xvf/tbs2HDBp/1o/FcDfU1JZaFnDHGvPrqq2bIkCEmIyPDpKammhNOOMHcdtttZseOHX7rRlrIxWJ/hw4dMvPmzTOnnHKKSU1NNZ06dTJTpkwxO3fubPD3EcrzyOZC7uuvvzbTpk0zZ599tunYsaNp1qyZOeqoo8wZZ5xh7rrrrnp/rkCoGsso0g+TPgcPHjQPPvigycnJMc2bNzeZmZnmyiuvNOvWrQv4N133Onfo0CHzwAMPmJNOOsmkpaWZTp06maKiopBeH/bs2WPuuOMOc+KJJ5q0tDTTtWtXM2XKlAZziDHfT2zdfPPN3scdffTR5rTTTjO//OUvzfbt2/3WDyVzBBLsfxrDed978803zSWXXGKOOeYY06xZM9O5c2czbNgw88wzz/it++qrr5r8/HyTlpZm2rZtay677DKzdu3aRn9fgQRTyBljzL/+9S8zcuRI72tXhw4dzBlnnGFuvfVWU1ZW5rNuuDm+trbWPPHEE2bAgAEmPT3dNG/e3Ds5vnz5cr/1w8nI9QnmvTvUDBJomxUVFWbEiBGmQ4cOpmXLlub000838+fPN8YEzi0rVqww559/vsnIyDAej8fn99xYKWSMMbfeeqv3b/+pp55q8PvcsWOHmTFjhundu7c3Ox9//PHm4osvNk8++aTZvXt3g48/UrTyvjHBPVcPHDhgHn74YXP66aebli1bmpYtW5o+ffqYkpISc/DgQb/1Y1nIGWPMO++8Y0aMGGHatWtnmjVrZrKzs83PfvYzs3HjRr91o5FfYrG/559/3uTl5Zm0tDTTvn1786Mf/chs3Lixwd9HKM8jmwu5qqoq8/Of/9xbvqelpZmWLVuaU045xdx88831/lwRGx5jGrlQBQAAAJDgjj32WH311VdR/TRIAACAQBLuGnIAAAAAAACAzZK6kHv11VfVs2dPnXjiiXr88cedHg4AALAQecGd+L0BAIBgOJUZkvaU1YMHDyonJ0dvvPGG0tPTdcYZZ+j//u//1LZtW6eHBgAALEFecKdwfm+csgoAQPJxMusl7RFy77//vk455RR17txZrVu31vDhw30+gh0AAIC84E7h/N7WrVtHGQcAQJJxMuu5tpBbunSpRowYoaysLHk8Hi1atMhvnblz56p79+5q3ry58vLytGzZMu99mzZtUufOnb23u3Tpoq+//joeQwcAAHFCXnAnfm8AACAYbs4Mri3kampq1Lt3bz366KP13r9w4UJNmzZNd9xxh1atWqWBAweqsLBQ69evl6R6Z0A9Hk9MxwwAAOKLvOBO/N4AAEAw3JwZmsZlLzFQWFiowsLCgPfPnj1bkyZN0uTJkyVJc+bM0ZIlSzRv3jzNmjVLnTt39mk9N27cqLPOOivg9vbt26d9+/Z5bx86dEg7duxQu3btCHgAACsYY7R7925lZWWpSZPYzrl999132r9/f0z3EYgxxu+9Ny0tTWlpaX7rxjsvIDrIeQAA+CLn+ec8yeVZzyQASebll1/23t63b59JSUkxf/nLX3zWu+GGG8ygQYOMMcYcOHDAnHDCCWbjxo2mqqrKnHDCCWbbtm0B93HXXXcZSXzxxRdffPFl/deGDRti8n5bZ+/evaZjZkfHvr+jjjrKb9ldd93V6Lil2OcFRF88fm/kPL744osvvtzyRc4LTHJX1nPtEXIN2bZtm2pra5WZmemzPDMzU1u2bJEkNW3aVA8++KAKCgp06NAh3XbbbWrXrl3AbU6fPl3FxcXe27t27VJ2drbW/GeNWrduHZtvBGHbvmuvJOnr7XscHgka8+W336liZ43Tw0AjVmytVsWm3U4PAw2o3vq1zIHvdOj56TF/X9q/f7+2fLNFq/+zWumt02O6ryNV7a7SiaecqA0bNig9/Yd9B5o1bUgs8gJij5wHcp7dvvz2O5/b5Dx7rdha7f03Oc9O1Vt/OHKLnBc627NeQhZydY48zNEccejjxRdfrIsvvjiobQU6RLJ169Y+TxQ4b9u3e9W6dTNJUqt9KQ6PBg1ZvXOvvtznUVrLo5weChrwXuVufbq9Vp60lk4PBQFUV26UJ7WF93a8TrFLb53u2Htgenr09h3NvID4IeclJ3Ke3Vbv3KsWrX7IdZ/sqCHnWeq9yt1q2qKVJOnjjVXkPAsdme/qkPNCZ2vWS8hCrn379kpJSfE2nnUqKyv9mlEkjm3f7vW5vWEbs3E2W71zb+MrwXHvVe7WxxurnB4GGlBdudHpIbgWecGd+L0lr8OzHjnPLuQ6d3mv8oej4ch59iHbRY/tmcG1n7LakNTUVOXl5am0tNRneWlpqfr16xfRtktKSpSTk6P8/PyItoPoooxzl7rQ9skOfk82OzyswU4EtsjEMi8gdsh5yYkyzk6rd+4NWMaR8+xEvrMb2S66bM96rj1Crrq6WmvWrPHeXrt2rcrLy9W2bVtlZ2eruLhY48ePV58+fdS3b1/Nnz9f69ev15QpUyLab1FRkYqKilRVVaWMjIxIvw1EwZFlHOxGGecOdWGNWVN7EdiC41ReQGTIeTgcWc9ODR0VR86zT31FHDnPHuS68Lk567m2kFu5cqUKCgq8t+suxDthwgQtWLBA48aN0/bt2zVz5kxt3rxZubm5Wrx4sbp16+bUkBED9QU0Zk3txekM7kAZZz9CW/DIC+7E7w11OAvCPuQ596GMsxu5LjJuzgye///RsAhR3czpN+u/4WK/Dgg0U0pIs9fh4Y1ZU3txTRH7NRTazP69qn3mJu3atSum701OvgdWVVUpMzsz5t8jkhs5zw6UcfYJpowj59kl0Cmq5Dw7hFLGkfMSj2uPkHNKSUmJSkpKVFtb6/RQkhZlnPtQxrkDZZz9mEEFYoucZwdOUbVPsEfFkfPsQhlnLzIdpAT9UIdYKioqUkVFhVasWOH0UJISAc3dCGn2ooyzH8ENiD1ynvOYeLUPZZz7vFe5mzLOYmQ61OEIObhCY0UcIc1eXGfEfpRx9iO4AUgGlHF2IcO5U0OfokrOcxZ5DkeikIP1KOPci1NVgcgR3gAkA8o4e4RTxJHz7NBQGQdnkedQH05ZDVFJSYlycnKUn5/v9FCSAqeouhdlnDtwdJzdCG9AfJHznEHeswdlnHs1VsaR85xRXbmRPIeAKORCxLVF4mPbt3uDCmfMmtqJUxzcgTLOboQ3IP7IefHXUN4j58XP6p17yW8u1dD14uqQ85xBlkNjKORgnWBnSQlpdjoyzDFraidOabAbAQ5AMqCMs0MkRRw5z1nkOXuR5RAMriEHq3DKgrtRxrnDkeGNWVO7EOAAJAMyn/MiPSKOnOesYMs4cl58keMQCo6QgzVCCWbMmtqH0xzcgTLOboQ4AMmAD+xyHmWcu1HG2Ykch1BxhFyISkpKVFJSotraWqeHkjBCnSElpNmnvlBHULMPpzXYjRAHOI+cF1tcH9h5TKC6G1nOTmQ4hIsj5ELExX6jizLO/Sjj3KG+AMesqT0IcoAdyHmxwymqzotWGUfOc0aoZRw5Lz7IcIgER8jBMQQz92OW1R0o4+xGkAOQ6PjALmdFM69RxjmDMs4+5DdEA4Uc4i7cIo6QZpdA4Y6gZhdObbAbYQ5AoqOMcw4Tp4mBLGcf8huihUIOcUUZlxgo49whUIBj1tQOhDkAiY6zIZwTizKOnBdf4RZx5LzYIr8hmijkEDeEssTAbKs7UMbZjTAHINGFkvuYeI2eWOU0yrj4ooyzD9kNscCHOoSopKREOTk5ys/Pd3oorrHt270RlXGENHs0FPIIavagjLMbgQ6wFzkvOijjnMGkaWKgjLMP2Q2xQiEXIj59KzSRHhVHSLMHZZw7cJ0RuxHoALuR8yJHGRd/q3fujWkZR86LH3KcXaorN5LdEFOcsoqY4RTVxEEZ5w4NhThmTZ1FmAOQ6Mh9zoj1UXHkvPiItIgj50Uf2Q3xQCGHmIhGKGPW1A6c/uB+hDRnEegAJLpwch85LzLxyGeUcfFBGWcXchviiUIOURWt2VFCmh0aC3sENXtwioOdCHUAEh1lXPwxWZo4yG92Ibch3ijkEDWcqpBcKOPswamqdiLUAUh0ZL/4imcRR86LvWiUceS86CG3wQkUcoiKaAYyZk3twOyrO1DG2YlQByDRhZv9yHmhi3cmo4yLrWgdFUfOiw4yG5xEIYeIRHtmlJBmB05VdQdOc7ATwQ5AoqOMix8mSBML2c0uZDY4jUIuRCUlJSopKVFtba3TQ3EcZVxiooxzh8YCHbOmziDYAe5Gzmscp6nGh1NFHDkvdqJZxpHzIkNegy2aOD0AtykqKlJFRYVWrFjh9FAcRRhLTMzCugNlnJ0Id4D7kfMaFkn+Y+I1eJRxiYcyzh7kNdiEI+QQklgVcYQ05wUT/ghqzuNUBzsR7gAkskjzHzkvOEyMJh5ymz3IarARR8ghaJRxiYsyzh2CCXXMmsYfAQ9AIuOsiPhwuowj50VfLMo4cl54yGqwFUfIISiEscTldABEcCjj7ETAA5DIopH/mHhtmA05jDIu+ijj7EFWg80o5NCoWJZxhDRnBRsCCWrO4nQHOxHwACQyyrjYo4xLTJRxdiCnwQ0o5BBQrI+KI6Q5izLOHYINdQS1+CLkAUhklHGxZUMRh+hjAtUe5DS4BYUc6sUpqomNMs4dKOPsRMgDkMjIgLFjWxFHzoueWJZx5LzgkdHgNnyoA/zEI4gxa+oc28Ig6kcZZyeCHoBEFq0MSM7zZ1v+ooyLHso4O5DR4EYcIReikpISlZSUqLa21umhRF28ZkQJac4JJQwS1JzDKQ92IugBiS+Rc15jKONiw7YiDtFFZnMe+QxuxhFyISoqKlJFRYVWrFjh9FCiijIu8VHGJR5mTeOHsAckh0TNeY3hNNXYsLWMI+dF7r3K3TEv48h5jSOfwe04Qg6EsCRgayCEP05VtQ9hD0CiinYGZOL1ezbnLsq4yMXjqDhyXsPIZkgUFHJJLN5FHCHNGaGGQoKaczjtwT4EPgCJijIuNijjEhtZzXlkMyQSCrkkRRmXHCjj3COUgMesaXwQ+AAkKs6OiD6bizhER7zKOHJeYGQzJBoKuSRECEsOBEP3oIyzD4EPQKKKRQ5M9olXN2QuJl3DF8+j4sh59SOXIVFRyCUZJ8q4ZA9pTggnGBLUnMGpD/Yh9AFIVJRx0eWGIk4i40WCMs555DIkMgq5JOHUUXHJHNLchKDmjFBDHkEt9gh9ABIVZ0hEj1uKOESGSVNnkcmQDJo4PQDEHgEsuRAS3YEyzj4EPwCJKlZZMBknXt2Ws5h0DU+8yzhyni8yGZIFR8glOCfLuGQMaU7jVFV3YMbVPgQ/AImKMi463FbESWS8cDiR0SjjfkAeQ7KhkEtQTh8Vl2whzQaUce4QTtAjqMUW4Q9AIoplFky2nOfGMg6hY8LUWeQxJCMKuQTkdBmH+CMougNlnH0IfwASEVkwOtycr5h0DY1TZRw573vkMSQrCrkEY0MAS7ZZU6eFGxYJavHFrKt9CH8AElGss2Cy5DzKuORBGeccshiSHYVcgrChiJOSJ6TZgjLOHcINegS12CEAAkhElHGRc3MRJ5HxQsFkqbPIYgCFXMhKSkpUUlKi2tpap4fiRRmXnCjj3IEyzj4EQACB2JjzgmVLHnQrtxdxCI3TZVwy5zxyGPCDJk4PwG2KiopUUVGhFStWOD0USYSvZEVodAfKOPsQAgE0xLacF6x45MFEnnhNlFzFpGtwKOOcQw4DfHGEnIvZVMYlckizTSShkaCGZEYIBJCIKOPClyhFnETGC5bTZVyyIoMB9aOQcyGbijgpcUOajSjj3IOj4+xCEASQiGzLhG6SSGUcGmdLEZeMOY8MBgRGIecyBK/kRXB0D8o4uxAEASSieGXCRJt4TcQ8xaRrwyjjnEMGAxpGIeciNpZxiRbSbBVpeCSoxY8toQ/fIwgCSDTxzIOJlvMo45KPLbks2co48hcQHAo5F7CxiJMSL6TZijLOPSIJfckW1OKBMAgg0diaCW2XiEUcGmdLGZdsyF9A8CjkLEfwSm4ESPegjLMLYRBAool3JkyUiddEzlJMutbPtiIuWXIe2QsIHYWcxWwu4xIlpNksGgGSoBYftgW/ZEYYBJCIKONCl8hFnETGC8S2TEYZB6AhTZweAPxt+3YvZVySo4xzj0iDX7IEtXggDMIJGzZs0ODBg5WTk6NevXrphRdecHpISDCUcaFZvXMvZVySsq2MSwbVlRvJX0h4scx6HCFnGZuLOMn9Ic0NEj1EJhLKOHsQBuGUpk2bas6cOTrttNNUWVmpM844Q8OHD1erVq2cHhoSgO250DZkqORlYxmX6DmP7IVkEcusRyFnEUIXohUkmTmNPRuDX7IiEMJJnTp1UqdOnSRJHTp0UNu2bbVjxw4KOUTMiVzo1onXZCriyHi+bM1jlHFA4ohl1uOUVUu4oYxza0hLNgS12ItG+Ev0oBYvBEI0ZunSpRoxYoSysrLk8Xi0aNEiv3Xmzp2r7t27q3nz5srLy9OyZcvC2tfKlSt16NAhde3aNcJRI9lRxgWPMi552VrGJTJOUYWN3Jz1OELOYW4o4iT3hjQ34bpx7kAZZw8CIYJRU1Oj3r176+qrr9bo0aP97l+4cKGmTZumuXPnqn///nrsscdUWFioiooKZWdnS5Ly8vK0b98+v8e+/vrrysrKkiRt375dV111lR5//PHYfkNIaG7JhYDTbC7jEjXnkbtgKzdnPQo5BxG6UCeZZnfdjDLOHoRCVFX5/i2lpaUpLS3Nb73CwkIVFhYG3M7s2bM1adIkTZ48WZI0Z84cLVmyRPPmzdOsWbMkSWVlZQ2OZd++fRo5cqSmT5+ufv36hfqtAJKczYVMvNqPSdcfUMbFF5kLTgg250nuznoUcg5xUxlHSIstrhvnDjaHv2RDMLTH9l17tf9Qs7juc/fu718zjzxV4K677tKMGTNC2tb+/ftVVlam22+/3Wf50KFDtXz58qC2YYzRxIkTde6552r8+PEh7R+oQxmHhpDxvkcWiz8yV3Jze86T7M96FHJx5qYiTiKkxRplnDtEKwAm4qxpvBEMUWfDhg1KT0/33g40a9qQbdu2qba2VpmZmT7LMzMztWXLlqC28c4772jhwoXq1auX95olTz/9tE499dSQx4Pk5LZsCDjBDWVcIuU88hacFo2cJ9mf9ZK6kBs5cqTefPNNDRkyRC+++GLM90fgwuE4TdUdKOPsQTjE4dLT032CWiQ8Ho/PbWOM37JABgwYoEOHDkVlHIiueOe8cDidDZl4tR+TrpRx8Ubegg2imfMke7NeUn/K6g033KCnnnoqLvtyOnCFg5AWO9Es4whqSAaEQ8RC+/btlZKS4jdDWllZ6TeTCveJZ84Lh9PZkJxnPzIeZVy8kbeQaGzPekldyBUUFKh169Yx3ce2b/c6HrjCQUiLHco49+DoODsQDhErqampysvLU2lpqc/y0tJSPpwhAcQj54XLjdkQ8ZXsGe+9yt2uKOMSCXkLicj2rGdtIbd06VKNGDFCWVlZ8ng83nN1Dzd37lx1795dzZs3V15enpYtWxb/gTaAsIUjcZqqe1DG2YFwiEhVV1ervLxc5eXlkqS1a9eqvLxc69evlyQVFxfr8ccf1xNPPKFPP/1UN910k9avX68pU6Y4OOrElwg5L1w25EMmXmEzNxVx5DzAeW7OetZeQ66mpka9e/fW1VdfrdGjR/vdv3DhQk2bNk1z585V//799dhjj6mwsFAVFRXKzs6WJOXl5Wnfvn1+j3399deVlZUV0/HbELbCRUiLjWiXcck+cxpLbgqCiYwyDtGwcuVKFRQUeG8XFxdLkiZMmKAFCxZo3Lhx2r59u2bOnKnNmzcrNzdXixcvVrdu3ZwaclJwe84Llw35kJxnv2TOeG7KYJRxgB3cnPWsLeQKCwtVWFgY8P7Zs2dr0qRJmjx5siRpzpw5WrJkiebNm6dZs2ZJksrKyqI2nn379vmEvqqqwC/ANoStcBHSYoMyzj2iGQQJauGjjEO0DB48WMaYBteZOnWqpk6dGqcRQXJ3zguHLdmQnGe/ZM54birjANjDzVnP2lNWG7J//36VlZVp6NChPsuHDh2q5cuXx2Sfs2bNUkZGhvera9eufuu49XpxdQhpscFpqu5BGWcHyjggudma88Ll5mwIxIMbrxdHzgMQDa4s5LZt26ba2lq/T8XIzMz0+/SMhgwbNkxjx47V4sWL1aVLF61YsSLgutOnT9euXbu8Xxs2bPAdE2EL9YhFGZfMM6ex5LYgmKgo4wDYmPPCZVM+ZOLVfsmY8dyYvyjjAESLtaesBsPj8fjcNsb4LWvIkiVLgl43LS1NaWlp9d5nU9gKFyEt+ijj3CPaYZCgFh7KOACHsyXnhcumfEjOs18yZjw3lnEAEE2uPEKuffv2SklJ8Zslrays9JtNjbXtu+wJW+EipEUfp6m6B2WcHSjjANSxKeeFy6YyDvajjHMPch6AaHJlIZeamqq8vDyVlpb6LC8tLVW/fv1iuu+SkhLl5OQoPz8/pvuBe8WqjEvGsBZrbg2DiYYyDsDh3J7zbCvjmHiFTdx4vbg6lHEAos3aU1arq6u1Zs0a7+21a9eqvLxcbdu2VXZ2toqLizV+/Hj16dNHffv21fz587V+/XpNmTIlpuMqKipSUVGRqqqqlJGREdN9xQMhLboo49wjFmGQoBY6yjggOSVqzqOMQ6iSKeO5tYgDgFixtpBbuXKlCgoKvLeLi4slSRMmTNCCBQs0btw4bd++XTNnztTmzZuVm5urxYsXq1u3bk4N2XUIadFFGecelHF2oIwDklci5jzbyjjYL5kyntvLOHIegFiwtpAbPHiwjDENrjN16lRNnTo1TiMCAuOace5BGWcHyjgguSVSzrO1iGPiFYgOch6AWHHlNeSclCjXkCOkuUMyzZzGg9tnZxMFZRwAW4Wa8yjjEC4ynjtQxgGIJQq5EBUVFamiokIrVqxweihhI6RFF6equkOsyjiCWmgo4wDYLJScRxmHcJHxAAAShVzSIaRFF6eqJjfKuNBQxgFIFLaWcQCih5wHINYo5IAwxbKMY+Y0ujhV1XmUcQAShc1lHBOv9iPjuQNlHIB4oJALkZuvIUdIix7KOPfgVFXnUcYBcIvGch5lHCKRrBmPiVEAqB+FXIjceg05Qlr0cJqqe1DGOY8yDoCbNJTzbC7jYL9kLePciJwHIF4o5IAQxLqMI6xFD7OxzqOMA5AobC/jmHgFooMyDkA8UcglAUJadFDGuUcsyziCWnAo4wAkCso4RIqMBwCoD4VcgiOkRQenqboHZZzzKOMAJIrtu3j/R2Qo49yDnAcg3ijkQuTmD3VAeOJRxhHWooPTVJ1HGQfAzdyW85J94pUJU0QLZRwAJ1DIhchNH+qQ7CEtGijj3CPWZRxBrXGUcQDcjpyHaCLjuQMZD4BTKOQSFCEtcpRx7kEZ5zzKOAAAfkDGAwA0hkIOqAenQLgHZZzzKOMAIL6YeAWig5wHwEkUcgmIkBaZeJVxzJxGjmvGOY8yDgDii5xnPzKeO1DGAXBaU6cHgOgipEWGMs494lHGEdQCo4gDgPgj59mPjAcACBZHyIXI5k/fIqRFhtNU3YMyzlmUcQASlc05D/ajjHMPch4AG1DIhchNn76F4MWzjCOsRYbTVJ1FGQcgkdmc85h4BaKDMg6ALSjkEgQhLXyUcTgSQa1+lHEA4Axynv3IeACAUFHIJQBCWvg4TdVdOFUVAADYhjLOPch5AGxCIQfECWEtMpyqCgBIRky8AtFBGQfANhRyLkdICx+nqrpHvMo4ghoAwCbkPPuR8QAA4aKQczFCWvg4VdU9KOMAAICNKOPcg5wHwEYUckg68S7jCGvh4zRVAECyYuLVbuQ796CMA2ArCrkQlZSUKCcnR/n5+Y6Og5AWHso494hnGUdQAwBI5Dwg0ZDxANiMQi5ERUVFqqio0IoVKxwbAyEtPJym6h6UcQAAJ9iQ82A/JlwBANFAIecylHHhcaKMI6yFh9NUAQDJjKxnN/KdezDpCsB2FHJIeJRx7hHvMo6gBgCwCWUcEB1kPABuQCHnIoQ0d6CMCw9lHAAgmZHz7EfGAwBEE4WcSxDSgOihjAMAAKGgjHMPch4At6CQA6KIsAYAAELFxCsSFWdAAEBgFHIuQEhzB8o4dyCoAQBsQs6zHxkPABALFHKWI6QB0UMZBwAAQkEZ5x7kPABuQyEXopKSEuXk5Cg/P9/pocAihDUAANwv3jmPiVe7ke/cgzIOgBtRyIWoqKhIFRUVWrFiRcz3RUhzB8Ja5OJxfRGCGgCgMeQ8AAAQLxRyliKkAdFDGQcAAELBhKt7kPMAuBWFHBABwhoAAAgVE692I9+5B2UcADejkLMQIc0dCGvuQFADANiEnAdEBxkPgNtRyFmGkAZED0ENAACEgglXAEC8UMhZhDLOPQhrAAAgVGQ9u5Hv3INJVwCJgEIOCBFhzR0IagAAm1DGAdFBxgOQKCjkLEFIcwfKOHcgqAEAbELOsx8ZDwAQbxRyFiCkAQAAAM6gjHMPJl0BJBIKOSBIhDV3IKgBAGzCxKvdyHfuQcYDkGgo5BxGSHMHwpo7ENQAADYh5wEAgEAo5BxESAOihzIOAACEgglX9yDnAUhEFHJAIwhrAAAgVEy82o185x6UcQASFYVciEpKSpSTk6P8/PyItkNIcwfCmjsQ1AA4bc+ePerWrZtuueUWp4eCCJDzALuQ8QDYIhZZj0IuREVFRaqoqNCKFSvC3gYhLX5W79zr9BAQYwS1+Kiu3Oj0EACr3XPPPTrrrLOcHgYiFI2cB/sx4QoACFUssh6FHBAAYQ0AEIzVq1frs88+0/Dhw50eCizAxKvdyHfuwaQrAFvEKutRyMUZIc0dCGvuQFAD0JilS5dqxIgRysrKksfj0aJFi/zWmTt3rrp3767mzZsrLy9Py5YtC2kft9xyi2bNmhWlEcPNyHl2I9+5BxkPQLDcnPUo5OKIkAZED0ENQDBqamrUu3dvPfroo/Xev3DhQk2bNk133HGHVq1apYEDB6qwsFDr16/3rpOXl6fc3Fy/r02bNumVV15Rjx491KNHj3h9SwAAAPj/3Jz1mkZ9i6gXZZx7MHsKAParqvIt5dPS0pSWlua3XmFhoQoLCwNuZ/bs2Zo0aZImT54sSZozZ46WLFmiefPmeWdCy8rKAj7+vffe03PPPacXXnhB1dXVOnDggNLT0/WrX/0qnG8LLkbWsxv5zj2YdAUQbM6T3J31KOSAwxDW3IGgBtjh6+171GpfSlz3WVO9R5LUtWtXn+V33XWXZsyYEdK29u/fr7KyMt1+++0+y4cOHarly5cHtY1Zs2Z5w9yCBQv0ySefUMYlIco4u5Hv3IOMB9jD7TlPsj/rUcjFASENiB6CGgBJ2rBhg9LT0723A82aNmTbtm2qra1VZmamz/LMzExt2bIl4jEiOZDzgPq9V7nb6SEAcKlo5DzJ/qxHIRdjhDT3YPYUANwjPT3dJ6hFwuPx+Nw2xvgtC8bEiROjMh4A0UO+cw8mXQHUiWbOk+zNenyoAyDCmlsQ1ABEU/v27ZWSkuI3Q1pZWek3kwrUh4lXu5Hv3IOMByAWbM96FHIxREhzB8KaOxDUAERbamqq8vLyVFpa6rO8tLRU/fr1c2hUcAtyHgAAdrM963HKaowQ0oDooYwDEK7q6mqtWbPGe3vt2rUqLy9X27ZtlZ2dreLiYo0fP159+vRR3759NX/+fK1fv15TpkxxcNQAIsWEq3uQ8wBEws1Zj0IOSY2wBgCJbeXKlSooKPDeLi4uliRNmDBBCxYs0Lhx47R9+3bNnDlTmzdvVm5urhYvXqxu3bo5NWS4ABOvdiPfuQdlHIBIuTnrUcjFACHNHQhr7kBQAxCJwYMHyxjT4DpTp07V1KlT4zQiuB05zw6rd+6tdzn5zj3IeACiwc1Zj2vIRRkhDYgeghoAAAAAIBFRyEURZZx7MHsKAABCRdazG/nOPZh0BQAKOSQhwpo7ENQAADahjLMb+c49yHgA8L2kLeQ2bNigwYMHKycnR7169dILL7wQ2fYIaUBY3qvc7beMoAYAiES0cx4AAEC0Je2HOjRt2lRz5szRaaedpsrKSp1xxhkaPny4WrVqFfK2KOPcg9lTAAASXzRznkTWsx35zj2YdAWAHyRtIdepUyd16tRJktShQwe1bdtWO3bsCDuowX6ENXcgqAEAIhXNnEcZZzfynXuQ8QDAl7WnrC5dulQjRoxQVlaWPB6PFi1a5LfO3Llz1b17dzVv3lx5eXlatmxZWPtauXKlDh06pK5du4b82K+37wlrnwD8EdQAIDmQ8wAAQLKztpCrqalR79699eijj9Z7/8KFCzVt2jTdcccdWrVqlQYOHKjCwkKtX7/eu05eXp5yc3P9vjZt2uRdZ/v27brqqqs0f/78mH9PcA6zpwAA2IOcByQXJl0BwJ+1p6wWFhaqsLAw4P2zZ8/WpEmTNHnyZEnSnDlztGTJEs2bN0+zZs2SJJWVlTW4j3379mnkyJGaPn26+vXr1+i6+/bt896uquJNxS0o49yBoAYAyYOcBwAAkp21R8g1ZP/+/SorK9PQoUN9lg8dOlTLly8PahvGGE2cOFHnnnuuxo8f3+j6s2bNUkZGhvcrnNMeAAAA0DByHgAASAauLOS2bdum2tpaZWZm+izPzMzUli1bgtrGO++8o4ULF2rRokU67bTTdNppp+njjz8OuP706dO1a9cu79eGDRsi+h4Qe6t37uXoOMu9V7lbEkfH2a66cqPTQwCQRMh5aMzqnXslcRaErd6r3O3NeBI5zw3IeoAzrD1lNRgej8fntjHGb1kgAwYM0KFDh4LeV1pamtLS0kIaH5xTF9RgL8o4dyCgAXAKOQ/1IePZ7fAiTiLnuQFZD3COKwu59u3bKyUlxW+WtLKy0m82FcmHWVP7HRnWYB/CGQCnkPMQyOFlHDnPLmQ79yHrAc5z5SmrqampysvLU2lpqc/y0tLSRi/aG6mSkhLl5OQoPz8/pvtBeCjj7McpDPYjoAFwEjkPR1q9cy9lnMUClXHkPHuR9QA7WHuEXHV1tdasWeO9vXbtWpWXl6tt27bKzs5WcXGxxo8frz59+qhv376aP3++1q9frylTpsR0XEVFRSoqKlJVVZUyMjJiui+EhlMY7EcZZz8CGoB4IOchWOQ7ezV0VBw5z15kPcAe1hZyK1euVEFBgfd2cXGxJGnChAlasGCBxo0bp+3bt2vmzJnavHmzcnNztXjxYnXr1s2pIcNBzJrajdMY3IGABiBeyHkIRn1lHDnPDmQ7dyLrAXaxtpAbPHiwjDENrjN16lRNnTo1TiOCrSjj7FZfYGPW1D4ENADxRM5DYyjj7BRMEUfOsxNZD7CPtYWcrUpKSlRSUqLa2lqnhwJRxtmOMs5+hDMA+AE5z3mcomovyjj3Iu8BdnLlhzo4qaioSBUVFVqxYoXTQ0lqR17cF/ahjLMf4QwAfJHznNVQtmPi1TnvVe6mjHMx8h5gLwo5uA6nMNiP64rYj3AGALAJZZydyHTuRt4D7MYpq3AVyjj7BQpuzJrag3AGALAJZZx9Qi3iyHn2Ie8B9qOQCxHXFnEOp6jaraHgRkizB+EMAAIj58UX2c5OlHHuR94D3IFTVkPEtUWcESiwMWtqB05nsF915UbCGQA0gpwXP8GUceS8+Ar2WnGwG3kPcA8KOViPMs5ujQU3Zk2dRzADANiEMs4+4RZx5Dy7kPkAd+GUVViNUxnsRhlnP4IZAMAmZDu7RHJEHDnPLmQ+wH0o5GAtLvBrN05psB/BDABgi1CKOHJefJDlEgeZD3AnCrkQcbHf+KCMs1swAY5ZU2cRzAAgdOS82KCMs0s0ijhynj3IfIB7cQ25EHGx39jjVAa7UcbZj2AGAOEh50Ufuc4ulHGJhcwHuBtHyMEqjYU2Zk2dE2yAI6Q5h1AGALBJqGUcOS92onV6KjnPHuQ+wP0o5GANyjh7cY0R+xHKAAC2COeoOHJe7JDjEg+5D0gMFHKwAmWcvUIJccyaOoNQBgCwBWWcPaJdxJHz7EDuAxIH15CD47i2iL0o4+xHKAMA2IJMZw/KuMRE7gMSC0fIhYhP34quYIIbs6bO4PQG+xHKACC6yHnhiaSII+dFF/ktcZH7gMTDEXIh4tO3oocyzl6hhjlmTeOrunIjoQwAYoCcFzrKOHvEqowj5zmP3AckJo6QQ9xxOoO9wglyhLT4IpABAGxBprNDLI+KI+c5j+wHJC6OkENchRLcmDWNL05xsB+BDABgi0jLOHJedJDfEhvZD0hsHCGHuKGMs1e4YY5Z0/ghkAEAbBCNo+LIeZGLRxFHznMW2Q9IfBwhh7jglAZ7UcbZj0AGALABec4OlHGJj+wHJAeOkEPMhRremDWNH05zsBthDABgi2iVceS88MUrt1HGOYv8ByQPjpBDTFHG2SuSUEdQiz3CGADAFpRxzmMSNTmQ/4DkwhFyISopKVFJSYlqa2udHor1OK3BXpRxdiOMAYAzyHm+yHLOi3cRR85zDvkPSD4cIReioqIiVVRUaMWKFU4PxWrhBDhmTWPvvcrdlHGWI4wBgHPIeT+IdhlHzgsdZVzyIP8ByYkj5BB1lHF24lQH+xHGAAA2oIxzFpktuZD/gORFIYeoooyzUzSCHbOmsUUYAwDYgDLOWU6VceS8+CP7AaCQQ9RwnRE7UcbZjTAGALABOc5ZTh4VR86LP/IfAIlryCFKwg1xzJrGFqc82I0wBgCwQazKOHJecMhryYX8B6AOR8ghYpRxdopWuGPWNDYIYwAAG1DGOceGIo6cF1/kPwCHo5BDRDi9wT7RDHeEtNggjAEAbECOcw5lXPIh/wE4EoUcwhZJiGPWNDZsCHdoGGEMAOC0WBdx5LzAbMlqlHHxRf4DUB+uIReikpIS5eTkKD8/3+mhOIoyzj7RDngEteiqrtxIGAMAyyVDzqOMc44tZRzii/wHIBAKuRAVFRWpoqJCK1ascHoojuH0BvtQxtmNIAYA7pDoOY8M54z3KndbVcaR8+KHDAigIZyyiqBFI8Qxaxp9NgU8+COIAQBsEI8yjpznz7acRhkXP2RAAI2hkENQKOPsFIuQR1CLHoIYAMBp8Toqjpznz7YyDvFDBgQQDAo5NIrTG+xEGWc3ghgAwGlkOGfYWsSR8+KDDAggWFxDDg2KVpBj1jR6YnUdEkJadPDhDUDyWbt2rQoKCpSTk6NTTz1VNTW858F58SzjyHk/oIxLbmRAIDHFKutxhBwCooyzj60hD98jhAHJaeLEifrNb36jgQMHaseOHUpLS3N6SEhylHHxR0YDORBIXLHKehRyqBenONgnlkGPWdPIEcKA5PSf//xHzZo108CBAyVJbdu2dXhESGbxzm+Ucd+zvYwj58UeORBIXLHMepyyCj/RDHMEteigjLMbIQyw19KlSzVixAhlZWXJ4/Fo0aJFfuvMnTtX3bt3V/PmzZWXl6dly5YFvf3Vq1frqKOO0sUXX6wzzjhD9957bxRHDwSPydT4i9VlRKKJnBd75EDAWW7OehwhBx+UcfaxPeglO0IYYLeamhr17t1bV199tUaPHu13/8KFCzVt2jTNnTtX/fv312OPPabCwkJVVFQoOztbkpSXl6d9+/b5Pfb111/XgQMHtGzZMpWXl6tDhw664IILlJ+fr/PPPz/m3xtQx4kyLtlznhvyGWVc7JEDAee5OetRyMGLMs4+sQ57BLXIEMIA51RV+b5+paWl1Xs9j8LCQhUWFgbczuzZszVp0iRNnjxZkjRnzhwtWbJE8+bN06xZsyRJZWVlAR/fpUsX5efnq2vXrpKk4cOHq7y8nEIOcUMZF19uKOIQH+RAIHaCzXmSu7MehRwkcZqDbeIR9ijjwkcAA7735bffqcWB+EaJvTXfSZI3FNW56667NGPGjJC2tX//fpWVlen222/3WT506FAtX748qG3k5+frm2++0c6dO5WRkaGlS5fq2muvDWkcQDjIbvHnpjKOnBdbZEEkA7fnPMn+rEchh6gHumSeNY0GN4W9ZEQAA+ywYcMGpaene2+H82lX27ZtU21trTIzM32WZ2ZmasuWLUFto2nTprr33ns1aNAgGWM0dOhQXXTRRSGPBQiFk2VcMuY8t2UzyrjYIgsCsReNnCfZn/Uo5JIcZZxd4hX4CGrhIYAB9khPT/cJapHweDw+t40xfssa0tipEkA0UcbFl9vKOMQWWRCIj2jmPMnerEchF6KSkhKVlJSotrbW6aFEjFMd7EIZZzcCGJB42rdvr5SUFL8Z0srKSr+ZVCQH23Me2S1+3FrEkfNihywIuI/tWa+J0wNwm6KiIlVUVGjFihVODyUisQh0yThrGi1uDX3JggAGJKbU1FTl5eWptLTUZ3lpaan69evn0KjgJFtz3uqdex0v45Ip57k1l1HGxQ5ZEHAn27MeR8glIco4u8Qz9BHUQkP4Atyvurpaa9as8d5eu3atysvL1bZtW2VnZ6u4uFjjx49Xnz591LdvX82fP1/r16/XlClTHBw18AOnizgpeXKeW4s4xBZ5ELCbm7MehVySsSHU4QeUcfYifAGJYeXKlSooKPDeLi4uliRNmDBBCxYs0Lhx47R9+3bNnDlTmzdvVm5urhYvXqxu3bo5NWTAy4bcRhnnDuS82CAPAvZzc9ajkEsSsQx0yRLUoineoY+QFhrCF5A4Bg8eLGNMg+tMnTpVU6dOjdOIgODYUMYlA7cXcRI5L1bIg4A7uDnrUcglAco4uyRC8EtkhC8AgJNsKuISPeclQiajjIsN8iCAeKCQS3A2hTo4E/wIasEjfAEAnGRTbkvkMi4RijjEDnkQQLxQyCWwWIe6RA5qsUAZZy+CFwDAaTaVcYkskco4cl70kQkBxBOFXIKijLNLIoW/REPwAgA4zbYyLhFzXqJlMcq46CMTAog3CrkERBlnF6cCIEGtcQQvAICTbCvipMTMeYlWxiH6yIQAnEAhl2BsDHbJysnwRxnXOIIXAMBJZLbYS9QijpwXXWRCAE6hkEsg8Qh2iThrGguJGgATBcELAOAkW8u4RMp5iZrFKOOihzwIwGkUcgmCMs4eTgdAglrDCF8AACdRxsWW0zkM7kAeBGADCrkEYGuwS0ZOh0DKuMAIXgAAJ5HXYs/pHBZr5LzoIBMCsAWFnMvFK9wlyqxpLDkdAglpgRG8AABOsr2Mc3vOczqDxQM5LzrIhABs0sTpASB8lHH2SIYg6FYELwCAkyjjYosMhmCRCQHYhkLOpWwPd8nEhiDIrGn9CF4AACfZntfcXsYlC3Je5MiEAGyUtIXc7t27lZ+fr9NOO02nnnqq/vCHPzg9pKDFM9wR1AJ7r3I3ZZzFCF4AkLycznmrd+61voyDO5DzIkcmBGCrpL2GXMuWLfXWW2+pZcuW2rNnj3JzczVq1Ci1a9fO6aE1iDLODjYUcagfoQsA4GTOc0sRR86zH2Vc5MiFAGyWtEfIpaSkqGXLlpKk7777TrW1tTLGODyqhrkl4CU6m8o4gpovQhcAQHIu57klq1HGIRmQCwHYztpCbunSpRoxYoSysrLk8Xi0aNEiv3Xmzp2r7t27q3nz5srLy9OyZctC2se3336r3r17q0uXLrrtttvUvn37KI0++uId8Ahq9aOMsxehCwDcI9FyHqeoItrIeZEhFwJwA2sLuZqaGvXu3VuPPvpovfcvXLhQ06ZN0x133KFVq1Zp4MCBKiws1Pr1673r5OXlKTc31+9r06ZNkqQ2bdroww8/1Nq1a/Xss8/qm2++icv3FgonAh5lXP1sKuPgi9AFAO6SSDnPbUUcOc9+lHGRIRcCcAtrryFXWFiowsLCgPfPnj1bkyZN0uTJkyVJc+bM0ZIlSzRv3jzNmjVLklRWVhbUvjIzM9WrVy8tXbpUY8eOrXedffv2ad++fd7bVVWxf6N0IuAR0upnWxlHUPsBoQsA3CdRch5lHGAXciEAN7H2CLmG7N+/X2VlZRo6dKjP8qFDh2r58uVBbeObb77xhq2qqiotXbpUPXv2DLj+rFmzlJGR4f3q2rVr+N9AENwW8BKVLZ+kejjKuO9VV24kdAFAAnJLziOrIRbIeeEjFwJwG1cWctu2bVNtba0yMzN9lmdmZmrLli1BbWPjxo0aNGiQevfurQEDBui6665Tr169Aq4/ffp07dq1y/u1YcOGiL6HhjgV8Jg19WVbEYcfELgAIHHZnvPcer04cp79KOPCRzYE4EbWnrIaDI/H43PbGOO3LJC8vDyVl5cHva+0tDSlpaWFMrywUMbZwdYyjqBG4AKAZGFjznNjESeR85DYyIYA3CqoQm7mzJlh78Dj8ejOO+8M+/H1ad++vVJSUvxmSSsrK/1mU93ErSEv0VDG2YvABQDRR84LDjkNsUTOCw/ZEICbBVXIzZgxQx6PR8YYn+WHz1LW3XfkslgEtdTUVOXl5am0tFQjR470Li8tLdUll1wS1X0dqaSkRCUlJaqtrY3qdp0Mecya/oAyzl4ELgCIDXLeDwLlPDeXceQ8+5HzwkM2BOB2QRVyTz75pN+y5cuX6w9/+IOys7M1ZswYZWdnS5LWr1+vl156SV999ZWuueYa9evXL6yBVVdXa82aNd7ba9euVXl5udq2bavs7GwVFxdr/Pjx6tOnj/r27av58+dr/fr1mjJlSlj7C1ZRUZGKiopUVVWljIyMqGyTMs4OtpZxIHABQCyR835wZM778tvv1OKAe6/wQs6zH2VceMiGABJBUAljwoQJPrffe+89XXvttbrzzjv1q1/9SikpKT7333///br77rt13333aeLEiWENbOXKlSooKPDeLi4u9o5lwYIFGjdunLZv366ZM2dq8+bNys3N1eLFi9WtW7ew9ucUN8+4JhKby7hkDmqELQCIPXJeYqKMQ6IiHwJIFB5z5PkJQRg6dKi++eYbffjhhw2u17t3b2VmZur1118Pe4C2qps5LX2zQq2Oah3WNpwu4whqdhdxEmUcgNCY/XtV+8xN2rVrl9LT02O2n7r3wP9Z9IFatDoqZvupz96aak259IyYf4/JjJzn7HM8WpIl59me5RqSzDkvXORDJDNyXuJpEs6D3n//feXm5ja6Xm5urt5///1wdmGtkpIS5eTkKD8/P6LtUMY5z80BLtERtgDAOeS8yHOe08h59qOMCx35EECiCauQk6TPPvssKuu4TVFRkSoqKrRixYqwt+F0GQd3lHHJGtQIWwDgPHJe+DnPaZRxSETkQwCJKKxCbsCAASovL9fvfve7gOs88MADWrVqlQYMGBD24BKRDWVcsgc1yjh7EbYAwHnkPCC2kjXnhYt8CCBRhfWxUffee6/efPNN3X777XryySe9n77l8Xj01Vdf6aWXXtJnn32mli1b6t577432mF2LMs55bijjkhVhCwDsQM5zr2TPeW5AGRca8iGARBZWIderVy/961//0sSJE/XZZ5/pN7/5jTwejySp7jMievTooQULFqhXr17RG60FSkpKVFJSotra2pAeZ0MZl+zcUsYR1AAATiLnhZ7zbEAZh0RDGQcg0YVVyEnSWWedpYqKCr355pt6++23tWnTJhljlJWVpQEDBqigoMAb3hJJUVGRioqKvJ88EgxbyrhkDWpuKeIkyjgAgB3IecHnPCBY5LzgUcYBSAZhFXLFxcU6+uijdeedd6qgoEAFBQXRHldCsKWIk5K3jAMAAKEh57kPOc9+lHHBo4wDkCzC+lCHRx99VB999FG0x5JQKOMQKoIaAMAG5Dx3IefZj4wXPMo4AMkkrEKuS5cuOnToULTHkjBsKuPgDske1AhfAGAPcp57UMYhkZAHASSbsAq5kSNH6q233tLu3e65Nle0lJSUKCcnR/n5+fXeb1sZR1CzX7KXcQAAu5DzAuc8IFTkvOBQxgFIRmEVcjNmzFB2draGDx+uVatWRXtMVisqKlJFRYVWrFjhdx9lHAAAcDtyXv05zzbkPPtRxgWHMg5AsgrrQx0uueQSpaWl6Z133lGfPn3UqVMnZWdnq3nz5n7rejwe/etf/4p4oLazrYyDOxDUAAC2IefZjzIOiYIyDkAyC6uQe/PNN73/NsZo06ZN2rRpU73rejyesAbmJjaWcQQ1+1HGAQBsRM4DIkfOaxhFHACEWcitXbs22uNwrS+//U4tWh3l9DB8UMYBAIBwkfPsRs6zH2VcwyjjAOB7YRVy3bp1i/Y4gKRCUAMA2IqcZy/KOLgdZRwA/CCsD3VIZrZ/+hZBzX6UcQAA2Mn2nAf7kfMCo4wDAF9hHSFXZ+vWrXryySe1bNkybdq0SR6PR506ddKgQYM0YcIEdejQIVrjtEZRUZGKiopUVVWljIwMp4fjgzIOAABECzmPnIfQUMYFRhkHAP7CLuReeuklTZo0Sbt375Yxxue+xYsX65577tETTzyhUaNGRTxIIFEQ1AAAbkDOswtlnP3IeACAUIV1yurKlSt1xRVXqLq6WiNHjtTLL7+sVatWadWqVVq0aJFGjRql6upqXXHFFVq5cmW0x4x6ENTsR1ADALgBOQ8AACD2wjpCbtasWaqtrdULL7zgNzPau3dvXXzxxd7Adt999+nFF1+MymBRP8o4AAAQLeQ8u5Dz7MekKwAgHGEdIff222+rX79+DZ6mcOmll6p///5atmxZ2IND4whp7kBQAwC4BTnPHuQ8+5HxAADhCquQ27Vrl7KzsxtdLzs7W7t27QpnF0DCIKgBANyEnGcHyjgAABJbWIVcx44dVV5e3uh65eXl6tixYzi7QBAIavajjAMAuA05DwgOOQ8AEImwCrlhw4bps88+05133un3yVuSZIzRL3/5S3322We64IILIh6kTUpKSpSTk6P8/HxHx0EZBwAAYoGcR85D4yjjAACR8pj6klYjNm7cqNNPP107duzQcccdp8suu0zHHnusPB6P1q5dq4ULF2rt2rVq166dPvjgA3Xp0iUWY3dUVVWVMjIy9D+LPlCLVkfFff8EteC9V7nbkf0S1IJXXbnR6SEACcHs36vaZ27Srl27lJ6eHrP9OPkeuLemWlMuPSPm32MyI+c5+xwn44WGnOcOZD0gcuS8xBPWp6x26dJF//73v3XllVfqk08+0axZs+TxeCTJO5N66qmn6plnnknIkOY0gpr9CGkAALci5wENI+cBAKIhrEJO+j6IffTRR3rzzTe1bNkybdq0SZKUlZWlgQMHavDgwdEaIw5DGQcAAGKNnOcMcp79KOMAANESdiFXZ/DgwYQy4DAENQBAoiDnxQ9lnP3IeACAaArrQx3qs3v3blVXV0drc6gHQc1+BDUAQCIi5wEAAERXRIXca6+9puHDhysjI0Nt2rRRRkaG0tPTdeGFF+q1116L1hghyjgAAGz10EMP6ZRTTlFOTo5uuOGGej+Z1I3IefFDzrMfk64AkLxilfXCLuSKi4u9gWz37t1KT09Xenq6qqur9Y9//EMXXnihiouLozJIwA0IagCQfLZu3apHH31UZWVl+vjjj1VWVqb33nvP6WFFjJwXP5Rx9iPjAUDyimXWC6uQW7hwoebMmaNjjjlGv//977Vz507v17fffqtHHnlEHTp00MMPP6znn38+KgNNZgQ1+xHUACB5HTx4UN99950OHDigAwcOqEOHDk4PKSLkPADRVF250ekhAEBEYpX1wirk5s6dq+bNm2vp0qW67rrrlJGR4b0vPT1dRUVFeuutt5SWlqa5c+dGZaC2KCkpUU5OjvLz8+OyP8o4AADCt3TpUo0YMUJZWVnyeDxatGiR3zpz585V9+7d1bx5c+Xl5WnZsmVBb/+YY47RLbfcouzsbGVlZem8887T8ccfH8XvIP7IeeQ8/IBJVwCwm5uzXliF3Icffqhzzz1XPXr0CLhOjx49dO6556q8vDzcsVmpqKhIFRUVWrFiRcz3RUhzB4IaANirpqZGvXv31qOPPlrv/QsXLtS0adN0xx13aNWqVRo4cKAKCwu1fv167zp5eXnKzc31+9q0aZN27typV199VevWrdPXX3+t5cuXa+nSpfH69mKCnEfOw/fIeABgPzdnvabhPGj//v1q1apVo+u1atVK+/fvD2cXgCsQ1ADAGVVVvq+/aWlpSktL81uvsLBQhYWFAbcze/ZsTZo0SZMnT5YkzZkzR0uWLNG8efM0a9YsSVJZWVnAx7/wwgs64YQT1LZtW0nShRdeqPfee0+DBg0K+XuyBTkv9ijjouO9yt1ODwEAEAPB5jzJ3VkvrELu+OOP11tvvaU9e/aoZcuW9a6zZ88evfXWW64/bcMpBDX7UcYBSHYVO2uUts8T133u2/P9+2PXrl19lt91112aMWNGSNvav3+/ysrKdPvtt/ssHzp0qJYvXx7UNrp27arly5fru+++U7NmzfTmm2/qpz/9aUjjsA05DyDnAYDbc55kf9YL65TVyy67TJWVlRo1apT++9//+t3/5ZdfatSoUdq6davGjRsX8SCTDWUcAAAN27Bhg3bt2uX9mj59esjb2LZtm2pra5WZmemzPDMzU1u2bAlqG2effbaGDx+u008/Xb169dLxxx+viy++OOSx2IScF1vkPPtRxgGAs6KR8yT7s15YR8jdcssteuWVV/T666+rZ8+eOvPMM3XsscfK4/Fo7dq1ev/991VbW6s+ffro5ptvjspAAZsQ1ADAWenp6UpPT4/Ktjwe39lfY4zfsobcc889uueee6IyFhuQ82KHMs5+ZDwAcF40c55kb9YLq5Br0aKF3nzzTU2fPl1PPPGE3n33Xb377rs+9//kJz/RrFmz1KJFi6gNNhkQ1OxHUAOAxNC+fXulpKT4zZBWVlb6zaQmE3IeAABIBLZnvbAKOUk66qij9Mgjj+j+++9XWVmZNm3aJEnKyspSXl5ewGuOIDDKOCSj6sqNTg8BQJJKTU1VXl6eSktLNXLkSO/y0tJSXXLJJQ6OzHnkvOgj59mPSVcASCy2Z72wC7k6LVu21MCBA6MxFsB6BDUAcJfq6mqtWbPGe3vt2rUqLy9X27ZtlZ2dreLiYo0fP159+vRR3759NX/+fK1fv15TpkxxcNT2IOdFB2Wc/ch4AOBObs56YRVyO3fu1Mcff6wTTjhBWVlZ9a7z9ddf68svv1SvXr3Upk2bSMaYFAhqsfFe5e6obYugBgDus3LlShUUFHhvFxcXS5ImTJigBQsWaNy4cdq+fbtmzpypzZs3Kzc3V4sXL1a3bt2cGrLjyHkAAMAt3Jz1wvqU1QcffFAFBQXaunVrwHW2bdumgoICzZkzJ9yxJQ3KOAAAYmPw4MEyxvh9LViwwLvO1KlTtW7dOu3bt09lZWUaNGiQcwO2ADkvush59mPSFQDcy81ZL6xC7u9//7tOOukk9e7dO+A6vXv31kknnaS//e1vYQ8OsAVBDQCQLMh50UMZZz8yHgDAKWEVcuvWrVPPnj0bXa9nz5766quvwtlF0iCo2Y+gBgBIJuS86CDjAQCAhoRVyB04cEApKSmNrte0aVPt2bMnnF0kBYKa/SjjAADJhpyHZEHOAwA4KaxCrnv37nr33XdVW1sbcJ3a2lotX75c2dnZYQ/ORiUlJcrJyVF+fn5E26GMAwAANiLnkfOSAWUcAMBpYRVyF110kTZv3qxf/OIXAde54447tHnzZl188cVhD85GRUVFqqio0IoVK5weCmKMoAYASEbkvMhyHmWc/ch4AAAbNA3nQbfccouefvppPfDAAyotLdXkyZN1/PHHy+PxaM2aNXr88cf14YcfqmPHjrr11lujPWbXI6jZj6AGAEhW5DwAAIDYC6uQa9eunV5//XWNHj1a5eXluv76633uN8aoR48eeumll3TMMcdEZaCJgjIOAADYjJwXPnKe/Zh0BQDYIqxCTpJycnL0ySef6C9/+Yv++c9/asOGDZKkrl276rzzztOoUaOCuiAwYBuCGgAg2ZHzQkcZZz8yHgDAJmEXcpKUkpKisWPHauzYsdEaT0IjqNmPoAYAwPfIeQAAALET1oc61GfHjh1av359tDaXcCjjAACAW5HzGkbOsx+TrgAA20StkLv55pt13HHHRWtzQNwR1AAAqB85LzDKOPuR8QAANopaISd9f5Ff+COo2Y+gBgBAw8h5AAAA0RPVQg7+KOMAAAASEznPfky6AgBsRSGHpEdQAwAAoaKMsx8ZDwBgMwq5GCKo2Y+gBgAAQkXGsx8ZDwBgu6bR2tDkyZM1ePDgaG3O9Qhq9iOoAQAQHHIeAABAdIVVyG3YsEFdu3b1Wda/f3/1798/KoMCAACAM8h5DWPS1X5MugIA3CCsU1aPO+44XXTRRXrllVdUW1sb7TG5HkHNfgQ1AADqR84LjIxnPzIeAMAtwirksrOztXjxYo0aNUpdu3bVHXfcoS+//DLaY3Mlgpr9CGoAAARGzgMAAIi9sAq5L7/8UqWlpRo7dqx27typWbNmqWfPnjr//PP1/PPP68CBA9EepytQxgEAALcj59WPnGc/Jl0BAG4S9qesDhkyRM8995y+/vprPfjgg+rZs6f+9a9/6YorrlBWVpZuueUWffrpp9Eca0zs2bNH3bp10y233OL0UBAHBDUAABpHzvNFGWc/Mh4AwG3CLuTqtG3bVjfddJP+85//6O2339ZVV12lvXv36qGHHlJubq4GDRqkp59+Wvv27YvGeKPunnvu0VlnnRXxdghq9iOoAQAQGnIeAABAbERcyB2uX79++sUvfqEf//jHMsbIGKO3335bEydOVHZ2tkpKSqK5u4itXr1an332mYYPHx7RdijjAABAoiPnwVZMugIA3Cgqhdy+ffv0zDPPqKCgQCeddJLmz5+vY445RrfddpuWLFmiSZMmqbq6WjfccIPuueeeoLa5dOlSjRgxQllZWfJ4PFq0aJHfOnPnzlX37t3VvHlz5eXladmyZSGN+5ZbbtGsWbNCegzciaAGAEB4kjnnVeykjLMdGQ8A4FYRFXIff/yxbrzxRmVlZemqq67SW2+9pXPOOUd//vOftXHjRt133306//zzNX/+fFVUVKhDhw567LHHgtp2TU2NevfurUcffbTe+xcuXKhp06bpjjvu0KpVqzRw4EAVFhZq/fr13nXy8vKUm5vr97Vp0ya98sor6tGjh3r06BHJj4Cg5gIENQAAQkfOAwAAiJ2m4Tzoj3/8o/7whz9oxYoVMsaobdu2uvHGGzVlypSAwadbt246//zz9cwzzwS1j8LCQhUWFga8f/bs2Zo0aZImT54sSZozZ46WLFmiefPmeWdDy8rKAj7+vffe03PPPacXXnhB1dXVOnDggNLT0/WrX/2q3vX37dvnc32UqipKHgAAkHjIeeQ8AAAQe2EVctdcc42k768lcu211+qyyy5TWlpao4/r1auXNmzYEM4ufezfv19lZWW6/fbbfZYPHTpUy5cvD2obs2bN8ga6BQsW6JNPPgkY0urW//Wvfx3+oAEAAFyAnAcAABB7YZ2yOnXqVH300Ud6++23NX78+KBCmvT9tTzeeOONcHbpY9u2baqtrVVmZqbP8szMTG3ZsiXi7ddn+vTp2rVrl/crGoETsfVe5W5OV7VYdeVGVVdudHoYAIAjkPPIeW5AznMHsh4ABBbWEXKBrvcRbx6Px+e2McZvWTAmTpzY6DppaWlBB1I4773K3U4PAQ0gnAGAvch5sB05zx3IewDQsKh8ymq8tW/fXikpKX6zpJWVlX6zqUg+dSGNWVM7Ec4AAA0h56Eh5Dx3IO8BQONcWcilpqYqLy9PpaWlPstLS0vVr1+/mO67pKREOTk5ys/Pj+l+EB5Cmr04RRUAEAxyHgIh57kDeQ8AghPWKavxUF1drTVr1nhvr127VuXl5Wrbtq2ys7NVXFys8ePHq0+fPurbt6/mz5+v9evXa8qUKTEdV1FRkYqKilRVVaWMjIyY7guh4fQFexHMAACHI+chVOQ8dyDzAUDwrC3kVq5cqYKCAu/t4uJiSdKECRO0YMECjRs3Ttu3b9fMmTO1efNm5ebmavHixerWrZtTQ4aDDg9pzJrahWAGADgSOQ+hIOe5A5kPAEJjbSE3ePBgGWMaXGfq1KmaOnVqnEYEWxHS7EQoAwAEQs5DsMh57kDuA4DQufIack7i2iJ2IaTZiVAGAHAjcp5dOE3VHch9ABAeCrkQFRUVqaKiQitWrHB6KEmPkGYnQhkAwK3IefY4Mucx8WofPrALACITUSH3ySefaNq0aerfv7969uyp2267zXvfO++8o9///vfasWNHxIMEjkRIsw+hDAASCzkPTiHn2Y/MBwCRC/sacr/97W/1y1/+UgcPHpQkeTwebdu2zXv/nj17dNNNNyktLU3XXntt5CMF/j9Cmn0IZQCQWMh5cAo5z37kPgCIjrCOkHvllVd0++23q1u3blq0aJG2bt3qd2He8847T+3bt9eiRYuiMU5rcG0RZ3Gaqn0IZQCQWMh55DynkPPsR+4DgOgJ6wi5hx56SEcddZRKS0t17LHH1ruOx+NRz5499cUXX0QyPusUFRWpqKhIVVVVysjIcHo4SaW+kMasqXMIZACQmMh55Lx4C1TEkfPsQvYDgOgK6wi5VatWqW/fvgFDWp3OnTtr8+bN4ewC8EEZZxcCGQAkLnIe4okyzh3IfgAQfWEVcgcPHlTLli0bXW/r1q1KTU0NZxeAF6cv2IVABgCJjZyHeCHjuQPZDwBiI6xTVo8//niVlZWptrZWKSkp9a5TU1Oj8vJy5eTkRDRAJDdmTe1BGAOA5EDOQzw0VMaR8+xB/gOA2AnrCLkxY8Zo48aNuvPOOwOuc+edd2rnzp0aN25c2IOzERf7jR/KOHsQxgAgeZDzyHmxRhnnDuQ/AIitsAq5m2++WSeffLLuv/9+DRo0SA888IAk6b///a8effRRnXfeeZozZ4569eqlKVOmRHXATisqKlJFRYVWrFjh9FASGqcw2IMwBgDJhZxHzoslMp47kP8AIPbCOmW1VatWeuONNzRx4kS99tpreueddyRJS5cu1bJly2SM0ZAhQ/TMM88oLS0tqgNG4mPW1A4EMQBITuQ8xEpjZRw5zw5kQACIj7AKOUnq0KGDFi9erA8//FClpaVat26damtr1aVLF5133nk666yzojlOJAnKODsQxAAguZHzEG2Uce5ABgSA+Am7kKvTu3dv9e7dOxpjQZKjjLMDQQwAUIech2jgNFV3IAMCQHxFXMgB0UBQcx4hDAAARFswGY+JV+eRAwEg/sL6UIff//73SklJ0eLFiwOu849//EMpKSmaO3du2IOzEZ++FX2cwuA8QhgAoA45j5wXLZRx7kAOBABnhFXIvfTSS8rKytLw4cMDrnPBBReoU6dOevHFF8MenI349K3oooxzHiEMAHA4ch45Lxoo49yBHAgAzgmrkPv888+Vm5vb4Doej0ennnqqPvvss7AGhsTHaarOqq7cSAgDAPgh5yFSZDx3IAcCgLPCKuS+/fZbtW3bttH1jj76aO3YsSOcXSDBMWvqLAIYACAQch4iEWwZR85zFlkQAJwXViHXsWNHffzxx42u98knn6h9+/bh7AIJjDLOWQQwAEBDyHkIF2WcO5AFAcAOYRVyBQUF+s9//qOXXnop4Dp/+ctf9Mknn6igoCDswSHxcAqDczhFFQBiY+TIkTr66KM1ZswYv/teffVV9ezZUyeeeKIef/xxB0YXOnIewkHGcweyIACELlZZL6xC7rbbblNqaqquvPJKTZs2TRUVFfruu++0b98+VVRUaNq0afrRj36k1NRU3XbbbeHsAgmIWVPnEL4AIHZuuOEGPfXUU37LDx48qOLiYv373//WBx98oPvvv98Vp3iS8xCqUMo4cp5zyIMAEJ5YZb2wCrmTTz5ZTz31lJo0aaJHHnlEp556qlq1aqVWrVrp1FNP1e9//3s1adJECxYs0KmnnhrOLpBA3qvcTRnnIMIXAMRWQUGBWrdu7bf8/fff1ymnnKLOnTurdevWGj58uJYsWeLACENDzkMoKOPcgTwIAOGLVdYLq5CTpLFjx+qjjz7StddeqxNOOEFpaWlKTU3VCSecoJ/97Gf68MMPdfnll4e7eWuVlJQoJydH+fn5Tg/FFTh9wTmcogoA0tKlSzVixAhlZWXJ4/Fo0aJFfuvMnTtX3bt3V/PmzZWXl6dly5ZFZd+bNm1S586dvbe7dOmir7/+OirbjjVyHjkvGOQ8dyAPAkhkbs56TcPZ6V//+lc1a9ZMhYWFmjt3bjibcK2ioiIVFRWpqqpKGRkZTg/HaqGGNGZNo4fgBQDfq6mpUe/evXX11Vdr9OjRfvcvXLhQ06ZN09y5c9W/f3899thjKiwsVEVFhbKzsyVJeXl52rdvn99jX3/9dWVlZQXctzHGb5nH44ngu4kPch45rzHhFHHkvPgjDwJIBm7OemEVciNHjtTQoUNVWFgYzsORBCjjnEP4ApAMqqp83zfS0tKUlpbmt15hYWGDeWX27NmaNGmSJk+eLEmaM2eOlixZonnz5mnWrFmSpLKysrDG2LlzZ59Z0o0bN+qss84Ka1vxRM5DQyjj3IE8CMDNgs15kruzXliF3DHHHKOjjz46nIciCXD6gjMIXgDibcXWajVt4T8zGEsH99ZIkrp27eqz/K677tKMGTNC2tb+/ftVVlam22+/3Wf50KFDtXz58ojGKUlnnnmmPvnkE3399ddKT0/X4sWL9atf/Sri7cYaOQ+BkPHcgUwIIBrcnvMk+7NeWIXc4MGD9f7778sY44pTLxA/zJo6g+AFINls2LBB6enp3tuBZk0bsm3bNtXW1iozM9NneWZmprZs2RL0doYNG6YPPvhANTU16tKli15++WXl5+eradOmevDBB1VQUKBDhw7ptttuU7t27UIeZ7yR81CfcMs4cl58kQkBJIJo5DzJ/qwXViF39913Kz8/XzfddJPuu+8+NW/ePJzNIMFQxjmD4AUgGaWnp/sEtUgcWTqFWkQ19GlaF198sS6++OKwx+YEch6ORBnnDmRCAIkimjlPsjfrhVXI/fnPf9bw4cP1yCOP6LnnntN5552n7OzsegObx+PRnXfeGdbg4B6UcfFH6AKAyLRv314pKSl+M6SVlZV+M6nJhJyHw3GaqjuQCwHAn+1ZL6xCbsaMGfJ4PDLGqLKyUs8++2zAdQlqiY+gFn+ELgCIXGpqqvLy8lRaWqqRI0d6l5eWluqSSy5xcGTOIuehTiQZj4nX+CEXAkD9bM96YRVyTz75ZLTHAZfiFIb4I3QBQPCqq6u1Zs0a7+21a9eqvLxcbdu2VXZ2toqLizV+/Hj16dNHffv21fz587V+/XpNmTLFwVE7i5wHiTLOLciFAJKdm7NeWIXchAkToj0O1ygpKVFJSYlqa2udHorjKOPii8AFAKFbuXKlCgoKvLeLi4slfZ9lFixYoHHjxmn79u2aOXOmNm/erNzcXC1evFjdunVzasiOI+eR8yjj3IFsCADuznoeY0x8P8c2QVRVVSkjI0M3PLlMaS2Pcno4cUdQiy8CF4BgmP17VfvMTdq1a1dUL4R7pLr3wL6//YeatmgVs/3U5+DeGr17W2HMv0ckt2TOeZFeioScFx9kQyD5kPMSTxOnBwD3oYyLLwIXAACIB8o4dyAbAkBiCOuU1eOOOy7odT0ej7788stwdgMLUcbFD2ELAOAEcl5yooxzB/IhACSOsAq5devWRXkYcAM+TTV+CFsAAKeQ85IPGc8dyIcAkFjCOmX10KFD9X7V1tZq3bp1euyxx5SZmalbb71Vhw4divaY4QBmTeOHsAUAcBI5L7lEo4wj58Ue+RAAEk9YR8gF4vF4lJ2drWuuuUZ5eXnq16+fTjjhBF1zzTXR3A3ijDIuPghaAACbkfMSD2WcO5ARASAxxexDHc444wydeeaZeuSRR2K1C8QBpzDEB0ELAOAm5Dz3I+O5AxkRABJXTD9l9ZhjjtGaNWtiuQvEELOm8UHQAgC4ETnPvaJVxpHzYouMCACJLaqnrB5ux44deuedd9SmTZtY7QIxRBkXe4QsAIBbkfPcizLOHciJAJD4wirkli5dGvC+6upqffHFF5o3b562bt2qKVOmhD04OIMyLvYIWQAAW5HzEhenqboDOREAkkNYhdzgwYPl8XgaXMcYo3POOUf33XdfWAODMwhqsUfIAgDYjJyXeKKd75h4jR1yIgAkj7AKuauuuipgUEtNTVWnTp10zjnnqKCgIKLBIb44hSG2CFgAADcg5yUWyjj3ICsCQHIJq5BbsGBBlIcBp1HGxRYBCwDgFuS8xEEZ5x5kRQBIPjH9lNVEVFJSopycHOXn5zs9lKjhNNXYImABAOAOiZTzyHfuQVYEgOQU8aesbt68WcuXL9emTZvk8XjUqVMn9evXT506dYrG+KxTVFSkoqIiVVVVKSMjw+nhRCyaYY1ZU1+EKwCA25Hz3CkWZRw5L/rIigCQ3MIu5LZu3arrr79eL730kg4dOuRzX5MmTTR69Gg98sgjOuaYYyIeJGKDMi52CFgAADcj57kXZZw7kBUBAGEVcrt27dKgQYP0+eefq0WLFho6dKiOPfZYSdJXX32l119/Xc8//7w+/PBDvffee66eYUxUnMYQOwQsAICbkfPci3znDmRFAIAUZiF333336fPPP9fYsWP16KOP+s2Obtu2Tdddd52ef/553X///br33nujMlhEBxf4jQ3CFQAgEZDz3ClWZRw5L7rIiwCAOmF9qMPLL7+srl276n//93/rPVWhffv2evrpp9W1a1e99NJLEQ8S0UMZFxuEKwBAoiDnuQ9lnDuQFwEAhwurkPvqq6/Uv39/NWvWLOA6zZo1U//+/bV+/fqwB4fo4jSG2CBcAQASCTnPXch37kBeBAAcKaxTVlu0aKFt27Y1ut62bdvUokWLcHaBKOMCv9FHsAIAJCJynnvEsoxL9pwXTWRGAEB9wjpCLi8vT2+99ZbKysoCrlNWVqY333xTffr0CXtwiA7KuOgjWAEAEhU5zx0o49yBzAgACCSsQu6mm27SgQMHNGTIEP3617/W6tWrtX//fu3fv1+rV6/WjBkzdN5556m2tlY33XRTtMeMEFDGRR/BCgCQyMh59uM0VXcgMwIAGhLWKavDhw/XPffcozvvvFMzZ87UzJkz5fF4JEnGGEmSx+PRb37zGxUWFkZvtAgJYS26CFUAgGRAzrNbrPNdsk+8Rgu5EQDQmLCOkJOk6dOn67333tOPf/xjHXvssWrWrJmaNWumY489VuPHj9e7776r6dOnR3OsCAGfthVdhCoAQDIh59mJMs4dyI0AgGCEdYRcnT59+uhPf/pTtMaCKKGMiy5CFQAgGZHz7EIZ5w7kRgBAsCIq5GAfTlONHgIVAACwAfnOHciOAIBQhHXK6jfffKOlS5fqm2++8Vm+du1aXXHFFcrNzdWFF16o999/PyqDRHD4tK3oIVABAJIVOc8u8Sjjki3nxQLZEQAQqrAKufvuu08FBQX69ttvvcuqq6s1YMAAPf/886qoqNA//vEPDRkyRP/973+jNVY0gDIueghUAIBkRs6zB2WcO5AdAQDhCKuQe/PNN3XyySerZ8+e3mULFizQ5s2bdcUVV+jzzz/XQw89pJqaGj3wwANRGyzqx2kM0VFduZFABQBIeuQ8571XuZt85xJkRwBAuMIq5L7++msdd9xxPsteffVVNW3aVA8//LBOPPFE3XjjjTrttNP0xhtvRGWgsdC0aVOddtppOu200zR58mSnhxMWLvAbHYQpAAC+R85zVjyLuGTJebFCfgQARCKsD3XYvXu3Wrdu7b1tjNH//d//KS8vT+3atfMu79mzp1599dXIRxkjbdq0UXl5udPDCBtlXHQQpgAA+AE5zzmUce5BfgQARCqsQq5z585au3at9/bKlSu1a9cuDR482Ge9gwcPKjU1NaIBon6cxhA5ghQAAP7Iec4g27kHGRIAEA1hnbLat29fvf/++3rllVdUVVWl3/zmN/J4PBoxYoTPep9++qk6d+4c1sCWLl2qESNGKCsrSx6PR4sWLfJbZ+7cuerevbuaN2+uvLw8LVu2LKR9VFVVKS8vTwMGDNBbb70V1jjjLV7XFEn0WVOCFAAA9SPnxV+8y7hEz3mxRIYEAERLWEfI3XHHHfrLX/6iUaNGSfr+VIaCggL169fPu866detUUVGhSZMmhTWwmpoa9e7dW1dffbVGjx7td//ChQs1bdo0zZ07V/3799djjz2mwsJCVVRUKDs7W5KUl5enffv2+T329ddfV1ZWltatW6esrCx98sknuvDCC/Xxxx8rPT09rPHGQ7zCWiKHNEIUAAANI+fFF2Wce5AjAQDRFFYhd9JJJ+ntt9/Www8/rK1btyovL0+33nqrzzpLlixR7969demll4Y1sMLCQhUWFga8f/bs2Zo0aZL3Ir1z5szRkiVLNG/ePM2aNUuSVFZW1uA+srKyJEm5ubnKycnRF198oT59+tS77r59+3xCX1VVfMMMpzFEjhAFAEDjyHnxy3nkO/cgRwIAoi2sQk6STj/9dC1YsCDg/ddee62uvfbacDffoP3796usrEy33367z/KhQ4dq+fLlQW1j586datmypdLS0rRx40ZVVFT4faLY4WbNmqVf//rXEY07XFzgN3KEKAAAgkfOiz0nyrhEzXmxRo4EAMRCWNeQc9q2bdtUW1urzMxMn+WZmZnasmVLUNv49NNP1adPH/Xu3VsXXXSRHn74YbVt2zbg+tOnT9euXbu8Xxs2bIjoewgWZVzkCFEAALhHMuQ8yjh3qK7cSI4EAMRM2EfI2cDj8fjcNsb4LQukX79++vjjj4PeV1pamtLS0kIaX6Qo4wAAQLJK1JxHGecOFHEAgFhz5RFy7du3V0pKit8saWVlpd9sqltxTREAAJCMEjnnke/cgTIOABAPrizkUlNTlZeXp9LSUp/lpaWlPp8AFgslJSXKyclRfn5+zPbBp20BAIBklag5z6kyjpwXGso4AEC8WHvKanV1tdasWeO9vXbtWpWXl6tt27bKzs5WcXGxxo8frz59+qhv376aP3++1q9frylTpsR0XEVFRSoqKlJVVZUyMjKivn3KOAAAkOiSLedRxrkDZRwAIJ6sLeRWrlypgoIC7+3i4mJJ0oQJE7RgwQKNGzdO27dv18yZM7V582bl5uZq8eLF6tatm1NDjhinMQAAgGSQTDmPfOcOlHEAgHiztpAbPHiwjDENrjN16lRNnTo1TiOKLS7wCwAAkkWy5DwnyzhyXvAo4wAATnDlNeScFItri1DGAQAAOC+aOY8yzh0o4wAATqGQC1FRUZEqKiq0YsWKqGyP0xgAAADsEK2cR75zB8o4AICTKOQcxAV+AQAAEovTZRw5LziUcQAAp1HIOYQyDgAAILFQxrkDZRwAwAbWfqiDrUpKSlRSUqLa2tqwt+F0WAMAAIC/cHMe2c49KOMAALbgCLkQRXptES7wCwAAYKdwcp4tZRw5r3GUcQAAm1DIxRFlHAAAQOKgjHMPyjgAgG0o5OKEMg4AACBxUMa5B2UcAMBGFHJxYEtgAwAAQOTIdu5BGQcAsBWFXIhKSkqUk5Oj/Pz8oNZ3OrAxawoAABCcYHKe09nucOS8hlHGAQBsRiEXolAu9ut0YCOkAQAABK+xnOd0tjscOa9hlHEAANtRyMWITYENAAAAkSHbuQdlHADADSjkYsCGwMasKQAA8TFy5EgdffTRGjNmjM/yDRs2aPDgwcrJyVGvXr30wgsvODRCRMqGbHc4cl5glHEAgGiLVdajkIsyGwIbIQ0AgPi54YYb9NRTT/ktb9q0qebMmaOKigr985//1E033aSamhoHRohI2JDtDkfOC4wyDgAQC7HKehRyUWRbYAMAALFXUFCg1q1b+y3v1KmTTjvtNElShw4d1LZtW+3YsSPOo0MkVmytdnoICBJlHAAgVmKV9SjkQhTo07dsKeOYNQUA4AdLly7ViBEjlJWVJY/Ho0WLFvmtM3fuXHXv3l3NmzdXXl6eli1bFvVxrFy5UocOHVLXrl2jvm1ETzCfsuokcl79KOMAIHm5OetRyIWovk/foowDAMBONTU16t27tx599NF671+4cKGmTZumO+64Q6tWrdLAgQNVWFio9evXe9fJy8tTbm6u39emTZuCGsP27dt11VVXaf78+VH5nhA7jX3KqpPIefWjjAOA5ObmrNc0pLXhZ8XWajVt0crpYQAAkFSqqnzLibS0NKWlpfmtV1hYqMLCwoDbmT17tiZNmqTJkydLkubMmaMlS5Zo3rx5mjVrliSprKws7HHu27dPI0eO1PTp09WvX7+wtwMAAJAsgs15kruzHoVcgmDWFAAQbxWbdsuTVhvXfZp9eyTJ73SAu+66SzNmzAhpW/v371dZWZluv/12n+VDhw7V8uXLIxqnJBljNHHiRJ177rkaP358xNtD8iLnAQDize05T7I/61HIJQBCGgAg2WzYsEHp6ene24FmTRuybds21dbWKjMz02d5ZmamtmzZEvR2hg0bpg8++EA1NTXq0qWLXn75ZeXn5+udd97RwoUL1atXL+/1TJ5++mmdeuqpIY8VyYucBwBINtHIeZL9WY9CzuUIaQCAZJSenu4T1CLh8Xh8bhtj/JY1ZMmSJfUuHzBggA4dOhTR2AAAAJJNNHOeZG/W40MdAABAUmrfvr1SUlL8ZkgrKyv9ZlIBJzDxCgBA+GzPehRyLkZIAwAgfKmpqcrLy1NpaanP8tLSUj6AAY4j5wEAEBnbsx6nrIaopKREJSUlqq2N78UNj0RIAwCgcdXV1VqzZo339tq1a1VeXq62bdsqOztbxcXFGj9+vPr06aO+fftq/vz5Wr9+vaZMmeLgqOEUch4AAO7i5qxHIReioqIiFRUVqaqqShkZGU4PB42ortzo9BAAAA5auXKlCgoKvLeLi4slSRMmTNCCBQs0btw4bd++XTNnztTmzZuVm5urxYsXq1u3bk4NGQ4i5wEA4C5uznoUci7ErCkAAMEZPHiwjDENrjN16lRNnTo1TiMCGkbOAwAgeG7OelxDzmUIaQAAAImJnAcAQPKgkAMAAAAAAADiiELORZg1BQAASEzkPAAAkguFnEsQ0gAAABITOQ8AgORDIQcAAAAAAADEEYWcCzBrCgAAkJjIeQAAJCcKuRCVlJQoJydH+fn5cdkfIQ0AACA+yHkAACBeKORCVFRUpIqKCq1YsSLm+yKkAQAAxE88cx4AAEhuFHIAAABAnDHxCgBAcqOQsxQhDQAAIDGR8wAAAIWchQhpAAAAiYmcBwAAJAo5AAAAAAAAIK4o5CzDrCkAAEBiIucBAIA6FHIWIaQBAAAkJnJe9FVXbnR6CAAAhI1CDgAAAAAAAIgjCjlLMGsKAACQmMh5AADgSBRyFiCkAQAAJCZyHgAAqA+FHAAAAAAAABBHFHIOY9YUAAAgMZHzAABAIBRyDiKkAQAAJCZyHgAAaAiFXIhKSkqUk5Oj/Px8p4cCAACAKCLnAQCAeKGQC1FRUZEqKiq0YsWKiLbDrCkAAIBdyHkAACBeKOQcQEgDAABITOQ8AAAQDAq5OCOkAQAAJCZyHgAACBaFHAAAAAAAABBHFHJxxKwpAABAYiLnAQCAUFDIxQkhDQAAIDGR8wAAQKgo5AAAAAAAAIA4opCLA2ZNAQAAEhM5DwAAhINCLsYIaQAAAImJnAcAAMJFIQcAAAAAAADEEYVcDDFrCgAAkJjIeQAAIBIUcjFCSAMAAEhM5DwAABApCjkAAAAAAAAgjijkYoBZUwAAgMREzgMAANFAIRdlhDQAAIDERM4DAADRQiEXRYQ0AACAxETOAwAA0ZTUhdzatWtVUFCgnJwcnXrqqaqpqXF6SAAAAIgCch4AALBZU6cH4KSJEyfqN7/5jQYOHKgdO3YoLS0t7G0xawoAAGAPch4AALBZ0hZy//nPf9SsWTMNHDhQktS2bduwt0VIAwAAsAc5DwAA2M7aU1aXLl2qESNGKCsrSx6PR4sWLfJbZ+7cuerevbuaN2+uvLw8LVu2LOjtr169WkcddZQuvvhinXHGGbr33nujOHoAAAAEQs4DAADJztoj5GpqatS7d29dffXVGj16tN/9Cxcu1LRp0zR37lz1799fjz32mAoLC1VRUaHs7GxJUl5envbt2+f32Ndff10HDhzQsmXLVF5erg4dOuiCCy5Qfn6+zj///JDGWbFptzxpLcP7JgEAAJIQOQ8AACQ7awu5wsJCFRYWBrx/9uzZmjRpkiZPnixJmjNnjpYsWaJ58+Zp1qxZkqSysrKAj+/SpYvy8/PVtWtXSdLw4cNVXl4eMKjt27fPJ/RVVXH6AgAAQDjIeQAAINlZe8pqQ/bv36+ysjINHTrUZ/nQoUO1fPnyoLaRn5+vb775Rjt37tShQ4e0dOlSnXzyyQHXnzVrljIyMrxfdQEPAAAA0UPOAwAAycCVhdy2bdtUW1urzMxMn+WZmZnasmVLUNto2rSp7r33Xg0aNEi9evXSiSeeqIsuuijg+tOnT9euXbu8Xxs2bIjoe0DsVVdudHoIAAAgROQ8BIOcBwBwO2tPWQ2Gx+PxuW2M8VvWkMZOlzhcWlqa0tLSQhofnENIAwDA3ch5CIScBwBIBK4s5Nq3b6+UlBS/WdLKykq/2VQkH0IaAADuRc5DIGQ8AEAiceUpq6mpqcrLy1NpaanP8tLSUvXr1y+m+y4pKVFOTo7y8/Njuh+ErrpyI0ENAACXI+ehPmQ8AECisfYIuerqaq1Zs8Z7e+3atSovL1fbtm2VnZ2t4uJijR8/Xn369FHfvn01f/58rV+/XlOmTInpuIqKilRUVKSqqiplZGTEdF8IHiENAAD3IOchFOQ8AEAisraQW7lypQoKCry3i4uLJUkTJkzQggULNG7cOG3fvl0zZ87U5s2blZubq8WLF6tbt25ODRkOIaQBAOAu5DwEi5wHAEhU1hZygwcPljGmwXWmTp2qqVOnxmlEsBEhDQAA9yHnIRjkPABAInPlNeScxLVF7EFIAwAA0UTOswc5DwCQ6CjkQlRUVKSKigqtWLHC6aEktf/X3r1HR13f+R9/TQjJgCSBGEgNuYAo1HAnRIQSNYKJoYBwxA1bD0IXVinpspTDKi5nBWkhZ1kLuEtgl+7pUra6BdsDKnIWqAUTiUoIpMc2LUI3GG7hJhASyyXh8/ujv8xxmFxmkpnvzHzzfJyTA/P5fuc77/cMGV7nPZcvIQ0AAPgbOS/4OEkXAKCzYCCHsENIAwAAsB8yHgCgM2Egh7BCUAMAhJrp06erV69emjFjRrPbv/rqK6WlpWnJkiUWVwaEDzIeACBUBSrrMZDzEd8tEjwENQBAKFq4cKG2bt3a4vZVq1ZpzJgxFlaE9iLnBQcZDwAQygKV9RjI+YjvFrEe3yUCAAhl2dnZiomJaXbb8ePH9cc//lGTJk2yuCq0BznPemQ8AECoC1TWYyCHkEZIAwB0RHFxsaZMmaKkpCQ5HA7t3LnTY5+NGzeqf//+cjqdysjIUElJid9uf8mSJSosLPTb8QA7IecBADoqnLMeAzmELEIaAKCj6uvrNXz4cG3YsKHZ7du2bdOiRYu0bNkyHT16VFlZWcrLy1N1dbVrn4yMDA0ZMsTj5+zZs63e9jvvvKOBAwdq4MCBfu0JsANyHgDAH8I560W261pAgBHSAACtqa2tdbscHR2t6Ohoj/3y8vKUl5fX4nHWrl2ruXPnat68eZKk9evXa8+ePdq0aZPr1c7y8vJ21fjJJ5/oF7/4hd5++23V1dXp9u3bio2N1auvvtqu4wF2QMYDALTF25wnhXfWYyDno6KiIhUVFamxsTHYpdgWQQ0AwkPdxTNyRHWz9DbNrT9LklJSUtzWly9frhUrVvh0rFu3bqm8vFxLly51W8/JyVFpaWmH6pSkwsJCV9DbsmWLfve73zGMC3HkvMAi4wFA+Aj3nCeFftZjIOejgoICFRQUqLa2VnFxccEux3YIagAAb5w6dUqxsbGuyy29atqaS5cuqbGxUYmJiW7riYmJqqmp8fo4ubm5OnLkiOrr65WcnKwdO3Zwls4wRc4LHDIeAMBb/sh5UuhnPQZyCBkENQCAt2JjY92CWkc4HA63y8YYj7XW7Nmzp8195syZ42tZgG2Q8QAAvvBnzpNCN+txUgeEBIIaAMBqCQkJ6tKli8crpBcuXPB4JRVA+5DxAADBEupZj4Ecgo6gBgAIhqioKGVkZGjfvn1u6/v27dO4ceOCVBVgH2Q8AEAwhXrW4yOrCBpCGgAg0Orq6nTixAnX5aqqKlVUVCg+Pl6pqalavHixZs2apdGjR2vs2LHavHmzqqurNX/+/CBWDYQ/ch4AwArhnPUYyPmIs2/5ByENAGCFw4cPKzs723V58eLFkqTZs2dry5Ytys/P1+XLl7Vy5UqdO3dOQ4YM0e7du5WWlhaskhFE5LyOI+MBAKwUzlnPYYwxwS4iHDWdfStu0XY5orsHu5ywQlADgMAwt/6sxjd/oGvXrvn1i3Dv1vR/YJfn1skR1S1gt9Mcq3pE50bOax8yHgAEDjnPfvgOOViKoAYAAGA/ZDwAAHzDQA6WIagBAADYDxkPAADfMZCDJQhqAAAA9kPGAwCgfRjIIeAIagAAAPZDxgMAoP0YyCGgCGoAAAD2Q8YDAKBjIoNdAOyLoAYAAGAv5DsAAPyDd8j5qKioSOnp6crMzAx2KSGNsAYAAMINOa915DsAAPyHgZyPCgoKVFlZqbKysmCXEpLqLpwmrAEAgLBEzmsZ+Q4AAP9iIAe/IagBAADYDxkPAAD/YyAHvyCoAQAA2A8ZDwCAwGAghw4jqAEAANgPGQ8AgMBhIIcOIagBAADYDxkPAIDAigx2AQhfBDUAAAB7Id8BAGAN3iGHdiGsAQAA2Av5DgAA6zCQg88IawAAAPZCvgMAwFoM5HxUVFSk9PR0ZWZmBruUoCCsAQAAu+qsOY98BwCA9RjI+aigoECVlZUqKysLdimWqrtwmrAGAABsrTPmPPIdAADBwUAObSKoAQAA2A8ZDwCA4GEgh1YR1AAAAOyHjAcAQHBFBrsAhC6CGgAAgL2Q7wAACA28Qw7NIqwBAADYC/kOAIDQwUAOHghrAAAA9kK+AwAgtDCQgxvCGgAAgL2Q7wAACD0M5OBCWAMAALAX8h0AAKGJgRwkEdYAAADshnwHAEDo4iyrnRxBDQAAwH7IeAAAhDYGcp0YQQ0AAMBeyHcAAIQHPrLaSRHWAAAA7IV8BwBA+GAg1wkR1gAAAOyFfAcAQHhhIOejoqIipaenKzMzM9iltAthDQAAoHnhmvPIdwAAhB8Gcj4qKChQZWWlysrKgl2KzwhrAAAALQvHnEe+AwAgPDGQ6yQIawAAAPZCvgMAIHwxkOsECGsAAAD2Qr4DACC8RQa7AAQWYQ0AAMA+yHYAANgDAzmbIqwBAADYC/kOAAD74COrNkRYAwAAsBfyHQAA9sJAzmYIawAAAPZCvgMAwH4YyNkIYQ0AAMBeyHcAANgTAzmbIKwBAADYC/kOAAD7YiBnA4Q1AAAAeyHfAQBgb5xlNcwR1gAAAOyDbAcAQOfAO+TCGIENAADAPsh2AAB0HgzkwhSBDQAAwD7IdgAAdC4M5MIQgQ0AAMA+yHYAAHQ+fIdcGCGsAQAA2Av5DgCAzol3yIUJwhoAAIC9kO8AAOi8Ou1A7tixYxoxYoTrp1u3btq5c2ewy2oWYQ0AAMB7oZ7z6i6cJt8BANDJddqPrA4aNEgVFRWSpLq6OvXr109PPvlkcItqBmENAADAN6Gc88h2AABA6sTvkPu6d999VxMmTNA999wT7FLcENgAAAA6JpRyHtkOAAA0CdmBXHFxsaZMmaKkpCQ5HI5mP2awceNG9e/fX06nUxkZGSopKWnXbW3fvl35+fkdrNi/CGwAAMCuOmPOI9sBAICvC9mBXH19vYYPH64NGzY0u33btm1atGiRli1bpqNHjyorK0t5eXmqrq527ZORkaEhQ4Z4/Jw9e9a1T21trQ4ePKhJkyYFvCdvEdgAAICddbacR7YDAAB3C9nvkMvLy1NeXl6L29euXau5c+dq3rx5kqT169drz5492rRpkwoLCyVJ5eXlbd7OO++8o9zcXDmdzlb3u3nzpm7evOm6XFtb600bPiOwAQAAu+tMOY9sBwAAmhOy75Brza1bt1ReXq6cnBy39ZycHJWWlvp0LG8/xlBYWKi4uDjXT0pKik+34w0CGwAA6OzslPPIdgAAoCVhOZC7dOmSGhsblZiY6LaemJiompoar49z7do1HTp0SLm5uW3u+8orr+jatWuun1OnTvlcd0vqLpwmsAEAAMgeOY9sBwAA2hKyH1n1hsPhcLtsjPFYa01cXJzOnz/v1b7R0dGKjo72qT5vENYAAAA8hWvOI9sBAABvhOU75BISEtSlSxePV0kvXLjg8WpqKCOwAQAQ/qZPn65evXppxowZHtuqqqqUnZ2t9PR0DR06VPX19UGoMLyEc84j2wEAYD+BynphOZCLiopSRkaG9u3b57a+b98+jRs3LqC3XVRUpPT0dGVmZnboOAQ2AADsYeHChdq6dWuz2+bMmaOVK1eqsrJSH374YUDebW834ZrzyHYAANhToLJeyH5kta6uTidOnHBdrqqqUkVFheLj45WamqrFixdr1qxZGj16tMaOHavNmzerurpa8+fPD2hdBQUFKigoUG1treLi4tp1DAIbAAD2kZ2drQMHDnis//73v1fXrl2VlZUlSYqPj7e4stBlt5xHtgMAwL4ClfVC9h1yhw8f1siRIzVy5EhJ0uLFizVy5Ei9+uqrkqT8/HytX79eK1eu1IgRI1RcXKzdu3crLS0tmGW3icAGAIB1iouLNWXKFCUlJcnhcGjnzp0e+2zcuFH9+/eX0+lURkaGSkpK/HLbx48fV48ePTR16lSNGjVKq1ev9stx7cBOOY9sBwBA8IRz1gvZd8g9/vjjMsa0us+CBQu0YMECiyrqOAIbAADWqq+v1/Dhw/Xd735XzzzzjMf2bdu2adGiRdq4caO+9a1v6T/+4z+Ul5enyspKpaamSpIyMjJ08+ZNj+vu3btXSUlJLd727du3VVJSooqKCvXp00dPPfWUMjMz9eSTT/qvwTBll5xHtgMAILjCOeuF7EAuVBUVFamoqEiNjY0+XY/ABgCA/9TW1rpdbuksmXl5ecrLy2vxOGvXrtXcuXM1b948SdL69eu1Z88ebdq0SYWFhZKk8vLydtWYnJyszMxMpaSkSJImTZqkiooKBnIhzNucR64DACBwvM15UnhnPQZyPmrPd4sQ2gAAdmRqjkmR1p6kwDT85dXLpuDTZPny5VqxYoVPx7p165bKy8u1dOlSt/WcnByVlpZ2qE5JyszM1Pnz53XlyhXFxcWpuLhYL774YoePi8DxJueR6wAAnUG45zwp9LMeA7kAIrABABAYp06dUmxsrOtye85eeunSJTU2NioxMdFtPTExUTU1NV4fJzc3V0eOHFF9fb2Sk5O1Y8cOZWZmKjIyUqtXr9ajjz4qY4xycnI0efJkn+tE6CDbAQAQeP7IeVLoZz0GcgFCYAMAIHBiY2PdglpHOBwOt8vGGI+11uzZs6fFbW19jALhg2wHAIA1/JnzpNDNeiF7ltVQVVRUpPT0dGVmZra4D4ENAIDQl5CQoC5duni8QnrhwgWPV1LRObSU88h2AACEn1DPegzkfFRQUKDKykqVlZU1u53ABgBAeIiKilJGRob27dvntr5v3z6NGzcuSFUhmJrLeWQ7AADCU6hnPT6y6kcENgAAQktdXZ1OnDjhulxVVaWKigrFx8crNTVVixcv1qxZszR69GiNHTtWmzdvVnV1tebPnx/EqhEq6i6ekSOqW7DLAAAALQjnrMdAzk8YxgEAEHoOHz6s7Oxs1+XFixdLkmbPnq0tW7YoPz9fly9f1sqVK3Xu3DkNGTJEu3fvVlpaWrBKBgAAgJfCOesxkPMDhnEAAISmxx9/XMaYVvdZsGCBFixYYFFFAAAA8Jdwznp8h5yP7v6y37qLZ4JcEQAAAPzBm5N3AQAA+AMDOR+1dVIHAAAAhCdyHgAAsAoDOQAAAAAAAMBCDOQAAAAAAAAACzGQAwAAAAAAACzEQA4AAAAAAACwEAM5H3H2LQAAAHsi5wEAAKswkPMRZ98CAACwJ3IeAACwCgM5AAAAAAAAwEIM5AAAAAAAAAALMZADAAAAAAAALMRADgAAAAAAALAQAzkAAAAAAADAQgzkAAAAAAAAAAsxkPNRUVGR0tPTlZmZGexSAAAA4EfkPAAAYBUGcj4qKChQZWWlysrKgl0KAAAA/IicBwAArMJADgAAAAAAALAQAzkAAAAAAADAQgzkAAAAAAAAAAsxkAMAAAAAAAAsxEAOAAAAAAAAsBADOQAAAAAAAMBCDOQAAAAAAAAACzGQ81FRUZHS09OVmZkZ7FIAAADgR+Q8AABgFQZyPiooKFBlZaXKysqCXQoAAAD8iJwHAACswkAOAAAAAAAAsBADOQAAAAAAAMBCDOQAAAAAAAAACzGQAwAAAAAAACzEQA4AAAAAAACwEAM5AAAAAAAAwEIM5AAAAAAAAAALMZADAAAAAAAALMRADgAAAAAAALAQAzkAAAAAAADAQgzkAAAAAAAAAAsxkAMAAAAAAAAsxEDOR0VFRUpPT1dmZmawSwEAAIAfkfMAAIBVGMj5qKCgQJWVlSorKwt2KQAAAPAjch4AALAKAzkAAAAAAADAQgzkAAAAAAAAAAsxkAMAAAAAAAAsxEAOAAAAAAAAsBADOQAAAAAAAMBCDOQAAAAAAAAACzGQAwAAAAAAACzEQA4AAAAAAACwEAM5AAAAAAAAwEIM5AAAAAAAAAALMZADAAAAAAAALMRADgAAAAAAALAQAzkAAAAAAADAQgzkAAAAAAAAAAsxkAMAAAAAAAAs1KkHcuvWrdPgwYOVnp6uhQsXyhgT7JIAAECYmT59unr16qUZM2Z4bCNrBA/3PQAA8IdAZb1OO5C7ePGiNmzYoPLycn322WcqLy/XJ598EuyyAABAmFm4cKG2bt3qsU7WCB7uewAA4C+BynqddiAnSQ0NDbpx44Zu376t27dvq0+fPsEuCQAAhJns7GzFxMQ0u42sETzc9wAAwB8ClfVCdiBXXFysKVOmKCkpSQ6HQzt37vTYZ+PGjerfv7+cTqcyMjJUUlLi9fF79+6tJUuWKDU1VUlJSZo4caIGDBjgxw4AAECwBTpPtIas0TJyHgAA8IdwznohO5Crr6/X8OHDtWHDhma3b9u2TYsWLdKyZct09OhRZWVlKS8vT9XV1a59MjIyNGTIEI+fs2fP6sqVK9q1a5dOnjypM2fOqLS0VMXFxVa1BwAALBDoPNEaskbLyHkAAMAfwjnrRXq9p8Xy8vKUl5fX4va1a9dq7ty5mjdvniRp/fr12rNnjzZt2qTCwkJJUnl5eYvXf/vtt/XAAw8oPj5ekvTtb39bn3zyiR599NFm979586Zu3rzpunzt2jVJkrl9w7fGAAAIkKb/kyz78vqGW7L8a/IbbkmSamtr3Zajo6MVHR3tsXug80Rrfv3rX/uUNToTch4AAL4h53nmPCm8s17IDuRac+vWLZWXl2vp0qVu6zk5OSotLfXqGCkpKSotLdWNGzfUtWtXHThwQC+88EKL+xcWFuq1117zWL+z/RXfigcAIMAuX76suLi4gB0/KipK3/jGN1Tz4U8Ddhut6dGjh1JSUtzWli9frhUrVvh0HH/kidb4mjXwF+Q8AABaRs7zXqhnvbAcyF26dEmNjY1KTEx0W09MTFRNTY1Xx3jkkUc0adIkjRw5UhEREZowYYKmTp3a4v6vvPKKFi9e7Lp89epVpaWlqbq6ut2/DJmZmSorK2v3Ps1tu3vt65db2tb0Z21trVJSUnTq1CnFxsZa3pO36y31dPffP/jgA0v68bWnttbs0JMvj5lVPfnzd6kz9RQqzw927Mnfz3llZWW6du2aUlNTXa/SBYrT6VRVVZVu3boV0NtpiTFGDofDba2lV01b4488IUm5ubk6cuSI6uvrlZycrB07digzM9PnrIG/IOe1vC2cn/Pa01Nbf+9oT4HIRB3pKVxyXij2RM6jp87wnEfO812oZ72wHMg1uftBau6Ba82qVau0atUqr/Zt6S2ScXFx7f4F79KlS5vXbW2f5rbdvfb1yy1tu3s9NjY2KD15u95STy39PdD9+FK7N2t26Kk9j1mw/t21tI2eQuv5oaVt4dxToJ7zJCkiIvBfEet0OuV0OgN+O1boaJ7Ys2dPi9t8yRpwR86z13NeS9v88ZzX3p4CkYmaW7dbzvO2D7tlorv/Tk/e1+vNPjznkfMCKVSzXsie1KE1CQkJ6tKli8dE88KFCx6Tz1BWUFDQoX2a23b32tcvt7TNmzq81ZGevF1vqafWem0vb4/jS09trdmhp/Y8Zh1h9e/S3Zft3FOoPD+0tC2cewrF57zOxi55wm7s8rjwnOfdNrvlvObWw72ncMiu5Dx64jkPzQn1TOEwln0jYPs5HA7t2LFD06ZNc62NGTNGGRkZ2rhxo2stPT1dTz/9tOuL+QKptrZWcXFxunbtWrsn7qHGbj3ZrR+JnsIFPYUHeup8QjFPIDQfFzv+LtFT6LNbPxI9hQt6Cg927MnfQjFTtCZkP7JaV1enEydOuC5XVVWpoqJC8fHxSk1N1eLFizVr1iyNHj1aY8eO1ebNm1VdXa358+dbUl90dLSWL1/e7s8yhyK79WS3fiR6Chf0FB7oqXMI9TzRWYX642LH3yV6Cn1260eip3BBT+HBjj35Q6hnitaE7DvkDhw4oOzsbI/12bNna8uWLZKkjRs3as2aNTp37pyGDBmidevWeX16WQAAYH/kidDE4wIAAPwhnDNFyA7kAAAAAAAAADsKy5M6AAAAAAAAAOGKgRwAAAAAAABgIQZyAAAAAAAAgIUYyAEAAAAAAAAWYiBngXXr1mnw4MFKT0/XwoULFe7n0Th27JhGjBjh+unWrZt27twZ7LI6rKqqStnZ2UpPT9fQoUNVX18f7JI6LDIy0vU4zZs3L9jl+MVXX32ltLQ0LVmyJNildNj169eVmZmpESNGaOjQofrJT34S7JI67NSpU3r88ceVnp6uYcOG6e233w52SX4xffp09erVSzNmzAh2Ke22a9cuDRo0SA8++KD+8z//M9jlALZBzgsP5LzwQM4LbeS80EXOC0+cZTXALl68qEceeUS///3v1bVrVz366KN6/fXXNXbs2GCX5hd1dXXq16+fvvjiC91zzz3BLqdDHnvsMf3oRz9SVlaWvvzyS8XGxioyMjLYZXVIQkKCLl26FOwy/GrZsmU6fvy4UlNT9frrrwe7nA5pbGzUzZs31b17d3311VcaMmSIysrKdO+99wa7tHY7d+6czp8/rxEjRujChQsaNWqUjh07FvbPD/v371ddXZ1+9rOf6Ze//GWwy/FZQ0OD0tPTtX//fsXGxmrUqFH69NNPFR8fH+zSgLBGzgsf5LzwQM4LbeS80ETOC1+8Q84CDQ0NunHjhm7fvq3bt2+rT58+wS7Jb959911NmDAh7J+Em4J0VlaWJCk+Pj7sQ5odHT9+XH/84x81adKkYJfiF126dFH37t0lSTdu3FBjY2PYv7Pivvvu04gRIyRJffr0UXx8vL788svgFuUH2dnZiomJCXYZ7Xbo0CENHjxYffv2VUxMjCZNmqQ9e/YEuyzAFsh5oY+cFx7IeaGPnBeayHnhq9MP5IqLizVlyhQlJSXJ4XA0+5b8jRs3qn///nI6ncrIyFBJSYnXx+/du7eWLFmi1NRUJSUlaeLEiRowYIAfO/AU6J6+bvv27crPz+9gxW0LdE/Hjx9Xjx49NHXqVI0aNUqrV6/2Y/XNs+Jxqq2tVUZGhsaPH68PP/zQT5U3z4p+lixZosLCQj9V3DYrerp69aqGDx+u5ORkvfTSS0pISPBT9c2z8vnh8OHDunPnjlJSUjpYdeus7ClYOtrj2bNn1bdvX9fl5ORknTlzxorSgaAi55HzJHKeP5DzyHl3I+f5Dzmv8+r0A7n6+noNHz5cGzZsaHb7tm3btGjRIi1btkxHjx5VVlaW8vLyVF1d7donIyNDQ4YM8fg5e/asrly5ol27dunkyZM6c+aMSktLVVxcHNY9NamtrdXBgwcteRUr0D3dvn1bJSUlKioq0scff6x9+/Zp3759Yd2TJJ08eVLl5eX693//dz3//POqra0N237eeecdDRw4UAMHDgxYD3ez4jHq2bOnfvvb36qqqkpvvfWWzp8/H/Y9SdLly5f1/PPPa/PmzQHtx8qegqmjPTb3irzD4QhozUAoIOeR88h54dEPOS98epLIef5GzuvEDFwkmR07dritPfzww2b+/Plua9/85jfN0qVLvTrm9u3bzYIFC1yX16xZY/75n/+5w7V6KxA9Ndm6dat57rnnOlqizwLRU2lpqcnNzXVdXrNmjVmzZk2Ha/VWIB+nJk899ZQpKytrb4k+CUQ/S5cuNcnJySYtLc3ce++9JjY21rz22mv+KrlNVjxG8+fPN9u3b29viT4LVE83btwwWVlZZuvWrf4o0yeBfJz2799vnnnmmY6W2GHt6fHgwYNm2rRprm0LFy40b775ZsBrBUIJOY+c14Sc1zHkPHIeOS9wyHmdS6d/h1xrbt26pfLycuXk5Lit5+TkqLS01KtjpKSkqLS01PW9AQcOHNCgQYMCUa5X/NFTE6s+xtAWf/SUmZmp8+fP68qVK7pz546Ki4v10EMPBaJcr/ijpytXrujmzZuSpNOnT6uyslL333+/32v1hj/6KSws1KlTp3Ty5Em9/vrr+tu//Vu9+uqrgSjXK/7o6fz5865Xs2tra1VcXBz2zw/GGM2ZM0dPPPGEZs2aFYgyfeLP57xQ5U2PDz/8sH73u9/pzJkzun79unbv3q3c3NxglAuEDHJe68h5gUPO80TOCzxyXngi59kb32baikuXLqmxsVGJiYlu64mJiaqpqfHqGI888ogmTZqkkSNHKiIiQhMmTNDUqVMDUa5X/NGTJF27dk2HDh3Sr371K3+X6DN/9BQZGanVq1fr0UcflTFGOTk5mjx5ciDK9Yo/evrDH/6gF198UREREXI4HHrjjTeCdqYdf/27CyX+6On06dOaO3eujDEyxuj73/++hg0bFohyveKPng4ePKht27Zp2LBhru+/+O///m8NHTrU3+V6xV//9nJzc3XkyBHV19crOTlZO3bsUGZmpr/LbRdveoyMjNSPf/xjZWdn686dO3rppZfC+ixvgD+Q81pGzgsscl7oI+c1j5xnPXKevTGQ88Ldn782xvj0mexVq1Zp1apV/i6rQzraU1xcXMC/A8FXHe0pLy9PeXl5/i6rQzrS07hx4/TZZ58Foqx26+hj1GTOnDl+qqjjOtJTRkaGKioqAlBVx3Skp/Hjx+vOnTuBKKtDOvpvLxzOVNVWj1OnTg3qoAAIVeQ8T+Q8a5DzmkfOCyxynidyHoKFj6y2IiEhQV26dPGYrl+4cMFjQh0u6Ck82K0nu/Uj0VO4sGNPd+sMPQKBYMffHXoKD3bryW79SPQULuzY0906Q4+dGQO5VkRFRSkjI8PjLEz79u3TuHHjglRVx9BTeLBbT3brR6KncGHHnu7WGXoEAsGOvzv0FB7s1pPd+pHoKVzYsae7dYYeO7NO/5HVuro6nThxwnW5qqpKFRUVio+PV2pqqhYvXqxZs2Zp9OjRGjt2rDZv3qzq6mrNnz8/iFW3jp7oKRjs1o9ET/QUOjpDj0Ag2PF3h57oKRjs1o9ET/QUOjpDj2iBVadzDVX79+83kjx+Zs+e7dqnqKjIpKWlmaioKDNq1Cjz4YcfBq9gL9ATPQWD3foxhp7oKXR0hh6BQLDj7w490VMw2K0fY+iJnkJHZ+gRzXMYY4y3wzsAAAAAAAAAHcN3yAEAAAAAAAAWYiAHAAAAAAAAWIiBHAAAAAAAAGAhBnIAAAAAAACAhRjIAQAAAAAAABZiIAcAAAAAAABYiIEcAAAAAAAAYCEGcgAAAAAAAICFGMgBQBhwOBzq169fsMsAAACAn5HzgM6JgRwAAAAAAABgIQZyAAAAAAAAgIUYyAEAAAAAAAAWYiAHBMgf/vAHzZo1SwMGDJDT6VTv3r01YsQILVq0SOfOnfPYf/fu3XryySfVq1cvOZ1ODRo0SEuXLtXVq1c99p0zZ44cDocOHDjQ7G039z0UW7ZskcPh0IoVK/T5559r5syZSkxMVEREhHbu3Onar7KyUt/97neVlpam6OhoJSYm6tFHH9Ubb7zhcTt1dXVauXKlhg4dqu7duys2NlaPPfaY2/Hacvr0ad17772Kjo5WRUWFx/bXXntNDodDkydP9vqYkmSM0ZtvvqkJEybo3nvvldPp1P3336/vfOc7OnjwoMf+vtz/ktTQ0KB/+7d/U0ZGhnr06KEePXro4Ycf1qZNm9TY2Oix/+OPPy6Hw6GTJ0/qrbfe0iOPPKKYmBj17NnTtU99fb1efvllpaamyul06pvf/KbWrl0rY4xPvQMAgMAi53mHnNfTtQ85D4AHA8DvysvLTbdu3YzD4TBjxowxM2fONN/+9rfNQw89ZCSZ/fv3u+2/evVqI8lERkaaCRMmmPz8fJOcnGwkmYEDB5qamhq3/WfPnt3scZpIMmlpaW5r//Vf/2UkmZkzZ5rY2FjTv39/k5+fb3JycsyuXbuMMcZs377dREdHG0lm8ODBZubMmSYnJ8ckJSWZu58uampqTHp6upFk+vbta6ZOnWomTpxo7rnnHiPJFBYWen1/vf3220aSSU9PN3/+859d6x9//LGJjIw0ffr08bgPWtPQ0GBmzJhhJJno6GjXfTp27FjjdDrN7Nmz3fb39f5vaGgwkyZNMpJMbGysefrpp83TTz9tYmJijCQzffp009jY6Hadxx57zEgyL7zwgomIiDBZWVlm5syZ5lvf+pYxxpgbN26YcePGGUkmISHBzJgxw+Tm5pquXbuaBQsWNPuYAgAA65HzyHnkPAD+wEAOCICmIPWrX/3KY1tlZaU5e/as6/KhQ4dMRESEiYmJMZ9++qlr/caNG+bZZ581ksyzzz7b7PHbE9Qkme9///umoaHBbfvnn39unE6n6dq1q9m2bZvbtsbGRvPee++5reXl5RlJ5qWXXjK3bt1yrf/pT38yAwYMMF26dDG//e1vm62vOXPmzDGSzN/93d8ZY4y5fv26GTBggJHkcdtt+eEPf2gkmaFDh5qTJ0+6bbt8+bL56KOPXJfbc/+//vrrruOfP3/etX727FkzaNAgI8kUFRW5XacpqDmdTnPgwAGPmpvC4sMPP2yuXr3qWi8vLzexsbEENQAAQgQ5j5xHzgPgDwzkgABoCjFXrlxpc9/nn3/eSDL/9E//5LHt/Pnzplu3biYiIsKcPn3atd6RoNa7d29TX1/vcZ3vfe97rhDXlqNHjxpJZty4cebOnTse23fu3OkWurxRW1tr7r//fuNwOMz//u//uoLb/PnzvT6GMcbcvHnT9OzZ0zgcDlNWVtbm/u25/1NTU40k88EHH3hc59133zWSzKBBg9zWm4JaQUFBs3WkpKQYSebgwYMe21555RWCGgAAIYKcR84j5wHwB75DDgiAjIwMSdLzzz+vQ4cO6c6dOy3uW1JSIkl67rnnPLb16dNHOTk5unPnjkpLS/1S28SJE9W9e3eP9V//+teSpBdffLHNY+zbt0+S9PTTT8vhcHhsHz9+vCSprKzM67piYmL085//XBEREfqrv/orbdmyRYMGDdKPf/xjr48hSYcPH9bVq1c1atQojR49us39fb3/q6urVV1drW984xt64oknPK4zefJk9ezZU8eOHdPFixc9tk+dOtVjrbq6WqdOnVLfvn01btw4j+1//dd/3WYfAADAGuQ8ch45D4A/RAa7AMCO/uEf/kEfffSR3nvvPb333nuKi4vTmDFjNHnyZM2ZM0cxMTGufc+ePSuHw6G0tLRmj9X0pb1nz571S22pqanNrp86dUqSdP/997d5jJMnT0qSXn75Zb388sst7nfp0iWfahs7dqwWLlyodevWyeFw6M0332w2VM6ZM8djbdq0aZo2bZqrjwEDBnh1m77e/01/3v1lyk2ajnX16lWdPXtWvXv3dtve3P3fdMyWHpuW1gEAgPXIeX9BziPnAegYBnJAAMTGxuo3v/mNDh48qPfee08HDhzQBx98oL1796qwsFAlJSVeB4kmzb1C2ZzWXqWVJKfT2epteHM7TWeXysrKajXYJSQktHmsr6uvr9euXbsk/eXsWeXl5a5Xob/uZz/7mcdav379NG3aNNdlb+8vb919PG+O39w+zd3/5v+fXaulY/q7FwAA0H7kvL8g55HzAHQMAzkgQBwOh8aPH+96W//Fixf193//9/qf//kf/eM//qO2bdsmSUpKSlJVVZW++OILDRo0yOM4X3zxhSTpvvvuc61FRUVJ+svp6O/W9Mqhr1JSUnT8+HH96U9/0pAhQ1rdNzk5WZI0Y8YMLVy4sF2315wf/OAHOn78uKZPn669e/dq8eLFys7O1oMPPui2X1OwaU5KSook6cSJE17dpq/3f1JSkiSpqqqqxWNWV1e7XcebGr5+Wy3VAAAAQgM5z3fkPHIeAHd8hxxgkd69e2vFihWSpM8++8y1npWVJUl68803Pa5z8eJF7d27VxEREW7fOdEUAD7//HOP6+zdu7dd9U2cOFGStHnzZq/33blzZ7tuqznvvPOOfvKTn+jBBx/Uz3/+c61bt0719fV67rnn1NDQ4PVxRo8erZ49e+rIkSMqLy9vc39f7//U1FSlpqaqpqZGv/nNbzyu8/777+vKlSsaNGiQx8cYWpKWlqbk5GSdOXNGH3/8scf2X/ziF14dBwAABAc5r3XkPHIegGYE84wSgF1t2rTJ/N///Z/H+vr1640kk5ub61r79NNPTUREhImNjXU7W9TNmzdNfn6+kWRmzJjhdpwPPvjASDIPPPCAuXTpkmu9vLzcJCYmtnr2reXLlzdb87Fjx4zT6TRdu3Y1v/zlL922NTY2mvfff99tbcKECUaSWbRokbl+/brH/nv27DElJSXN3tbdzp07ZxISEkxkZKTbKemnTp1qJJlly5Z5dZwmr732mpFkhg8fbqqrq922Xb582Xz00Ueuy+25///lX/7FSDLDhg0zFy5ccOvjoYceMpLMhg0b3K7TdPatqqqqZmv+4Q9/aCSZsWPHmmvXrrnWjx49auLi4jj7FgAAIYKcR84j5wHwBwZyQAAMHz7cSDLp6enmmWeeMfn5+WbEiBFGkunWrZspLS1123/VqlVGkomMjDQTJ040M2fOdJ0e/cEHHzQ1NTVu+9+5c8f1H3+fPn3M9OnTzfjx403Xrl3NkiVL2hXUjDHmrbfeMl27djWSzJAhQ8zMmTNNbm6uSUpKMnfP72tqasywYcOMJBMfH2+eeOIJk5+fb8aPH2969+5tJJl169a1eV/duXPHPPXUU0aSWblypdu2CxcumMTERNOlSxe3cNWW27dvm2nTphlJJjo62nWfjhs3zjidTjN79my3/X29/xsaGkxeXp6RZOLi4sz06dPNtGnTTExMjJFkpk2bZhobG92u01ZQu3HjhhkzZoyRZBISEsyzzz5rnnrqKRMVFWW+973vEdQAAAgR5DxyHjkPgD8wkAMC4N133zV/8zd/YwYPHmx69uxpunfvbgYOHGheeOEFc/z48Wavs2vXLjNhwgQTFxdnoqKizAMPPGBeeukl8+WXXza7/9WrV838+fNNYmKiiY6ONoMHDzabNm0yxph2BzVjjKmoqDDf+c53zH333We6du1qEhMTzWOPPWb+9V//1WPfr776yqxdu9aMGTPGxMTEmOjoaNOvXz+Tk5NjioqKzMWLF9u8r9544w3XK4YNDQ0e299//30jyfTr18/tFcW2NDY2mp/+9Kdm/PjxJjY21jidTtO/f3/z3HPPeQRlY3y//2/fvm3eeOMNM3LkSNO9e3fTvXt3M3r0aFNUVNRsH20FNWOMuX79ulmyZInp27eviYqKMgMHDjRr1qwxjY2NBDUAAEIEOY+cdzdyHoD2cBjTyrdmAgAAAAAAAPArTuoAAAAAAAAAWIiBHAAAAAAAAGAhBnIAAAAAAACAhRjIAQAAAAAAABZiIAcAAAAAAABYiIEcAAAAAAAAYCEGcgAAAAAAAICFGMgBAAAAAAAAFmIgBwAAAAAAAFiIgRwAAAAAAABgIQZyAAAAAAAAgIUYyAEAAAAAAAAWYiAHAAAAAAAAWOj/Ac34YRkMcjAzAAAAAElFTkSuQmCC", - "text/plain": [ - "

" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "order_plot = 5\n", - "x_grid, y_grid, plot_me_hem = generate_error_grid(res=5, order_plot=order_plot, recur=recur_helmholtz, derivs=derivs_helmholtz, n_initial=n_init_helm, n_order=order_helm)\n", - "x_grid, y_grid, plot_me_lap = generate_error_grid(res=5, order_plot=order_plot, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)\n", - " \n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs = ax1.contourf(x_grid, y_grid, plot_me_hem.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "\n", - "cs = ax2.contourf(x_grid, y_grid, plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "cbar = fig.colorbar(cs)\n", - "ax1.set_xscale('log')\n", - "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\", fontsize=15)\n", - "ax1.set_ylabel(\"source y-coord\", fontsize=15)\n", - "\n", - "\n", - "ax2.set_xscale('log')\n", - "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\", fontsize=15)\n", - "ax2.set_ylabel(\"source y-coord\", fontsize=15)\n", - "\n", - "ax1.set_title(\"Helmholtz recurrence relative error for order = \"+str(order_plot), fontsize=15)\n", - "ax2.set_title(\"Laplace recurrence relative error for order = \"+str(order_plot), fontsize=15)\n", - "\n", - "fig.savefig('order'+str(order_plot))\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "recur_laplace" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "orders_odd = [i for i in range(6, l_max, 2)]\n", - "err1 = []\n", - "err2 = []\n", - "for o in orders_odd:\n", - " err1.append(compute_error_coord(recur_laplace, np.array([1e-4, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", - " err2.append(compute_error_coord(recur_laplace, np.array([1e-8, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", - "\n", - "orders_odd = np.array(orders_odd)\n", - "err1 = np.array(err1, dtype=float)\n", - "err2 = np.array(err2, dtype=float)\n", - "\n", - "coefficients1 = np.polyfit(np.log10(orders_odd), np.log10(err1), 1)\n", - "coefficients2 = np.polyfit(np.log10(orders_odd), np.log10(err2), 1)\n", - "polynomial1 = np.poly1d(coefficients1)\n", - "log10_y_fit1 = polynomial1(np.log10(orders_odd))\n", - "plt.plot(orders_odd, 10**log10_y_fit1, '*-')\n", - "plt.scatter(orders_odd, err1, label='1e-4')\n", - "\n", - "polynomial2 = np.poly1d(coefficients2)\n", - "log10_y_fit2 = polynomial2(np.log10(orders_odd))\n", - "plt.plot(orders_odd, 10**log10_y_fit2, '*-')\n", - "plt.scatter(orders_odd, err2, label='1e-8')\n", - "plt.xscale('log')\n", - "plt.yscale('log')\n", - "plt.title(\"Rel Error vs Order Laplace 2D (Even Derivatives Only)\")\n", - "plt.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "err1 = []\n", - "err2 = []\n", - "orders_odd = [i for i in range(5, l_max, 2)]\n", - "\n", - "for o in orders_odd:\n", - " err1.append(compute_error_coord(recur_laplace, np.array([1e-4, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", - " err2.append(compute_error_coord(recur_laplace, np.array([1e-8, 1]), o, derivs_laplace, n_init_lap, order_lap))\n", - "\n", - "orders_even = np.array(orders_odd)\n", - "err1 = np.array(err1, dtype=float)\n", - "err2 = np.array(err2, dtype=float)\n", - "\n", - "coefficients1 = np.polyfit(np.log10(orders_even), np.log10(err1), 1)\n", - "coefficients2 = np.polyfit(np.log10(orders_even), np.log10(err2), 1)\n", - "polynomial1 = np.poly1d(coefficients1)\n", - "log10_y_fit1 = polynomial1(np.log10(orders_even))\n", - "plt.plot(orders_even, 10**log10_y_fit1, '*-')\n", - "plt.scatter(orders_even, err1, label='1e-4')\n", - "\n", - "polynomial2 = np.poly1d(coefficients2)\n", - "log10_y_fit2 = polynomial2(np.log10(orders_even))\n", - "plt.plot(orders_even, 10**log10_y_fit2, '*-')\n", - "plt.scatter(orders_even, err2, label='1e-8')\n", - "plt.xscale('log')\n", - "plt.yscale('log')\n", - "plt.title(\"Rel. Error vs Order Laplace 2D (Odd Derivatives Only)\")\n", - "plt.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "def get_slope(loc, orders):\n", - " err = []\n", - " for o in orders:\n", - " err.append(compute_error_coord(recur_laplace, loc, o, derivs_laplace, n_init_lap, order_lap))\n", - " \n", - " err = np.array(err, dtype=float)\n", - " coefficients = np.polyfit(np.log10(orders), np.log10(err), 1)\n", - "\n", - " return coefficients[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "ratios = np.array([1e-8,1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1])\n", - "slopes = []\n", - "for r in ratios:\n", - " slopes.append(get_slope(np.array([r, 1]), np.array([i for i in range(6, l_max, 2)])))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.scatter(ratios, slopes)\n", - "plt.xscale('log')\n", - "plt.title(\"Slope of Best Fit vs ratio of y0/x0 for even derivatives\")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "coefficients_new = np.polyfit(np.log10(ratios), slopes, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "coefficients_new" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "inteq", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/test/plot_taylor_recurrence.ipynb b/test/plot_taylor_recurrence.ipynb deleted file mode 100644 index 26598e8bc..000000000 --- a/test/plot_taylor_recurrence.ipynb +++ /dev/null @@ -1,595 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Generalizing a Taylor Recurrence" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.recurrence import _make_sympy_vec\n", - "\n", - "from sumpy.expansion.diff_op import (\n", - " laplacian,\n", - " make_identity_diff_op,\n", - ")\n", - "\n", - "import sympy as sp\n", - "from sympy import hankel1\n", - "\n", - "import numpy as np\n", - "\n", - "import math\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib import cm, ticker" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "from plotting import produce_error_for_recurrences" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "g_x_y = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2))" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "cts_r_s = np.array([[1.2, 3.4, 4.5],[2.3, 4.5, 4.5]])\n", - "cts_r_s = cts_r_s.reshape(2,cts_r_s.shape[1],1)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "'int' object is not subscriptable", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[21], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mproduce_error_for_recurrences\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcts_r_s\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlaplace2d\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mg_x_y\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m6\u001b[39;49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/Desktop/sumpy/test/plotting.py:190\u001b[0m, in \u001b[0;36mproduce_error_for_recurrences\u001b[0;34m(coords, pde, g_x_y, deriv_order, m)\u001b[0m\n\u001b[1;32m 187\u001b[0m mask_off_axis \u001b[38;5;241m=\u001b[39m m\u001b[38;5;241m*\u001b[39mnp\u001b[38;5;241m.\u001b[39mabs(coord[\u001b[38;5;241m0\u001b[39m]) \u001b[38;5;241m<\u001b[39m np\u001b[38;5;241m.\u001b[39mabs(coord[\u001b[38;5;241m1\u001b[39m])\n\u001b[1;32m 189\u001b[0m interactions_total \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mzeros(coord[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mshape)\n\u001b[0;32m--> 190\u001b[0m interactions_total[mask_on_axis] \u001b[38;5;241m=\u001b[39m \u001b[43minteractions_on_axis\u001b[49m\u001b[43m[\u001b[49m\u001b[43mmask_on_axis\u001b[49m\u001b[43m]\u001b[49m\n\u001b[1;32m 191\u001b[0m interactions_total[mask_off_axis] \u001b[38;5;241m=\u001b[39m interactions_off_axis[mask_off_axis]\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m interactions_on_axis, interactions_off_axis, interactions_true, interactions_total\n", - "\u001b[0;31mTypeError\u001b[0m: 'int' object is not subscriptable" - ] - } - ], - "source": [ - "produce_error_for_recurrences(cts_r_s, laplace2d, g_x_y, 6)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "s = sp.Function(\"s\")\n", - "n = sp.symbols(\"n\")\n", - "i = sp.symbols(\"i\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives(p):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - " derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_derivatives_h2d(p, k=1.0):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", - " (var[1]-var_t[1])**2)\n", - " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", - " derivs_helmholtz = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs_helmholtz" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "\n", - "w = make_identity_diff_op(2)\n", - "helmholtz2d = laplacian(w) + w\n", - "\n", - "derivs_lap = compute_derivatives(8)\n", - "derivs_helm = compute_derivatives_h2d(8)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def get_grid(recur, order):\n", - " poly_in_s_n = sp.poly(recur, [s(n-i) for i in range(order)])\n", - " coeff_s_n = [poly_in_s_n.coeff_monomial(poly_in_s_n.gens[i]) for i in range(order)]\n", - "\n", - " table = []\n", - " for i in range(len(coeff_s_n)):\n", - " table.append(sp.poly(coeff_s_n[i], var[0]).all_coeffs()[::-1])\n", - "\n", - " return table\n", - "\n", - "def convert(grid):\n", - " recur_exp = 0\n", - " i = sp.symbols(\"i\")\n", - " s_terms = []\n", - " for j in range(len(grid)):\n", - " for k in range(len(grid[j])):\n", - " recur_exp += grid[j][k] * s(n-j,i-k)/sp.factorial(i-k)\n", - " if grid[j][k] != 0:\n", - " s_terms.append((j,k))\n", - " return recur_exp, s_terms\n", - "\n", - "def grid_recur_to_column_recur(grid_recur, s_terms):\n", - " grid_recur_simp = grid_recur\n", - " bag = set()\n", - " for s_t in s_terms:\n", - " bag.add(-((0-s_t[0])-s_t[1]))\n", - " grid_recur_simp = grid_recur_simp.subs(s(n-s_t[0],i-s_t[1]), (-1)**(s_t[1])*s((n-s_t[0])-s_t[1],(i-s_t[1])+s_t[1]))\n", - " shift = min(bag)\n", - " return sp.solve(sp.simplify(grid_recur_simp * sp.factorial(i)).subs(n, n+shift), s(n,i))[0]\n", - "\n", - "def get_taylor_recurrence(pde):\n", - " recur, order = get_shifted_recurrence_exp_from_pde(pde)\n", - " grid = get_grid(recur, order)\n", - " grid_recur, s_terms = convert(grid)\n", - " column_recur = grid_recur_to_column_recur(grid_recur, s_terms)\n", - " return column_recur" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def create_subs_grid(width, length, derivs, coord_dict):\n", - " initial_grid = [[sp.diff(derivs[i], var[0], j).subs(var[0], 0) for j in range(width)] for i in range(length)]\n", - "\n", - " # assume len(initial_grid) >= 1\n", - " initial_grid_subs = []\n", - " initial_grid_width = len(initial_grid[0])\n", - " initial_grid_length = len(initial_grid)\n", - "\n", - " for i_x in range(initial_grid_length):\n", - " tmp = []\n", - " for j_x in range(initial_grid_width):\n", - " tmp.append((initial_grid[i_x][j_x].subs(var[1],coord_dict[var[1]])).evalf())\n", - " initial_grid_subs.append(tmp)\n", - " \n", - " return initial_grid_subs\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def extend_grid(initial_grid_in, grid_recur, coord_dict, n_derivs_compute, order_grid_recur):\n", - " initial_grid_subs = [row[:] for row in initial_grid_in] #deep copy\n", - "\n", - " initial_grid_width = len(initial_grid_subs[0])\n", - " initial_grid_length = len(initial_grid_subs)\n", - "\n", - " for n_x in range(initial_grid_length, n_derivs_compute):\n", - " appMe = []\n", - " for i_x in range(initial_grid_width):\n", - " exp_i_n = grid_recur.subs(n, n_x).subs(i, i_x)\n", - " if exp_i_n == 0:\n", - " exp_i_n = sp.diff(derivs_lap[n_x], var[0], i_x).subs(var[0], 0)\n", - " assert n_x-order_grid_recur >= 0\n", - " kys = [s(n_x-k,i_x) for k in range(1,order_grid_recur+1)]\n", - " vals = [initial_grid_subs[n_x-k][i_x] for k in range(1, order_grid_recur+1)]\n", - " my_dict = dict(zip(kys, vals))\n", - " res = exp_i_n.subs(my_dict).subs(coord_dict)\n", - " appMe.append(res)\n", - "\n", - " initial_grid_subs.append(appMe)\n", - "\n", - " return initial_grid_subs\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_taylor_lp(inp_grid, coord_dict):\n", - " inp_grid = np.array(inp_grid)\n", - " _, c = inp_grid.shape\n", - " return np.sum(inp_grid * np.reshape(np.array([coord_dict[var[0]]**i/math.factorial(i) for i in range(c)]), (1, c)), axis = 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_lp_orders(pde, loc, num_of_derivs, derivs_list, recur_order, taylor_order):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " coord_dict_t = {var[0]: loc[0], var[1]: loc[1]}\n", - "\n", - " initial_grid_subs = create_subs_grid(taylor_order, recur_order, derivs_list, coord_dict_t)\n", - "\n", - " extended_grid = extend_grid(initial_grid_subs, get_taylor_recurrence(pde), coord_dict_t, num_of_derivs, recur_order)\n", - "\n", - " return compute_taylor_lp(extended_grid, coord_dict_t)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate_true(coord_dict, p, derivs_list):\n", - " retMe = []\n", - " for i in range(p):\n", - " exp = derivs_list[i]\n", - " f = sp.lambdify(var, exp)\n", - " retMe.append(f(coord_dict[var[0]], coord_dict[var[1]]))\n", - " return np.array(retMe)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_error_coord_tg(loc, pde, derivs_list, n_of_derivs, taylor_order, recur_order):\n", - " exp = compute_lp_orders(pde, loc, n_of_derivs+1, derivs_list, recur_order, taylor_order)\n", - " coord_dict_test = {var[0]: loc[0], var[1]: loc[1]}\n", - " true = evaluate_true(coord_dict_test, n_of_derivs+1, derivs_list)\n", - "\n", - " print((np.abs(exp[-1]-true[-1]).evalf()/np.abs(true[-1])).evalf())\n", - "\n", - " return (np.abs(exp[-1]-true[-1]).evalf()/np.abs(true[-1])).evalf()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "def generate_error_grid(res, order_plot, pde, derivs, taylor_order, recur_order):\n", - " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " res=len(x_grid)\n", - " plot_me = np.empty((res, res))\n", - " for i in range(res):\n", - " for j in range(res):\n", - " if abs(x_grid[i]) == abs(y_grid[j]):\n", - " plot_me[i, j] = 1e-16\n", - " else:\n", - " plot_me[i,j] = compute_error_coord_tg(np.array([x_grid[i],y_grid[j]]), pde, derivs, order_plot, taylor_order, recur_order)\n", - " if plot_me[i,j] == 0:\n", - " plot_me[i, j] = 1e-16\n", - " return x_grid, y_grid, plot_me" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.00184871819382009\n", - "4.75098133319462e-8\n", - "1.27376775023898e-12\n", - "1.24084614178700e-16\n", - "1.60573991798823e-16\n", - "6.23381244320551e-16\n", - "5.37798696669397e-16\n", - "26177090592573.4\n", - "0.00184871819382012\n", - "4.75098141342560e-8\n", - "1.27451910300311e-12\n", - "0\n", - "8.37458627366846e-16\n", - "0\n", - "6.04988962786002e+24\n", - "26177090592573.7\n", - "0.00184871819381942\n", - "4.75098135453250e-8\n", - "1.27428262748819e-12\n", - "2.75523191325844e-16\n", - "3.56545885702053e-16\n", - "1.62179238320148e+36\n", - "6.04988962786031e+24\n", - "26177090592574.3\n", - "0.00184871819382027\n", - "4.75098138141641e-8\n", - "1.27461083449562e-12\n", - "0\n", - "4.35075881796626e+47\n", - "1.62179238320148e+36\n", - "6.04988962786018e+24\n", - "26177090592573.2\n", - "0.00184871819382014\n", - "4.75098142305268e-8\n", - "1.27420964404018e-12\n", - "1.16717621539488e+59\n", - "4.35075881796630e+47\n", - "1.62179238320142e+36\n", - "6.04988962785993e+24\n", - "26177090592573.6\n", - "0.00184871819382024\n", - "4.75098137391397e-8\n", - "3.13117872506618e+70\n", - "1.16717621539492e+59\n", - "4.35075881796626e+47\n", - "1.62179238320144e+36\n", - "6.04988962786018e+24\n", - "26177090592574.3\n", - "0.00184871819381974\n", - "8.40000000000000e+81\n", - "3.13117872506629e+70\n", - "1.16717621539490e+59\n", - "4.35075881796626e+47\n", - "1.62179238320148e+36\n", - "6.04988962786026e+24\n", - "26177090592573.7\n" - ] - } - ], - "source": [ - "x_grid, y_grid, plot_me_lap = generate_error_grid(8, 7, laplace2d, derivs_lap, 4, 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "#x_grid, y_grid, plot_me_helm = generate_error_grid(8, 7, helmholtz2d, derivs_helm, 4, 4)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "' import matplotlib.pyplot as plt\\nfig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\\ncs1 = ax1.contourf(x_grid, y_grid,plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\\n\\ncs2 = ax2.contourf(x_grid, y_grid, plot_me_helm.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\\n\\nfig.subplots_adjust(right=0.8)\\ncbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\\nfig.colorbar(cs1, cax=cbar_ax)\\n\\n\\nax1.set_xscale(\\'log\\')\\nax1.set_yscale(\\'log\\')\\nax1.set_xlabel(\"source x-coord\")\\nax1.set_ylabel(\"source y-coord\")\\n\\n\\nax2.set_xscale(\\'log\\')\\nax2.set_yscale(\\'log\\')\\nax2.set_xlabel(\"source x-coord\")\\nax2.set_ylabel(\"source y-coord\")\\n\\nax1.set_title(\\'4-Term Taylor Series, Order 7, Laplace\\')\\nax2.set_title(\\'4-Term Taylor Series, Order 7, Helmholtz\\')\\n\\nplt.show() '" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\"\"\" import matplotlib.pyplot as plt\n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_helm.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "fig.subplots_adjust(right=0.8)\n", - "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", - "fig.colorbar(cs1, cax=cbar_ax)\n", - "\n", - "\n", - "ax1.set_xscale('log')\n", - "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\")\n", - "ax1.set_ylabel(\"source y-coord\")\n", - "\n", - "\n", - "ax2.set_xscale('log')\n", - "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\")\n", - "ax2.set_ylabel(\"source y-coord\")\n", - "\n", - "ax1.set_title('4-Term Taylor Series, Order 7, Laplace')\n", - "ax2.set_title('4-Term Taylor Series, Order 7, Helmholtz')\n", - "\n", - "plt.show() \"\"\"" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.recurrence import get_recurrence\n", - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "n_init_lap, order_lap, recur_laplace = get_processed_and_shifted_recurrence(laplace2d)\n", - "\n", - "def compute_derivatives(p):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " var_t = _make_sympy_vec(\"t\", 2)\n", - " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", - " derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(p)]\n", - " return derivs\n", - "l_max = 10\n", - "derivs_laplace = compute_derivatives(l_max)\n", - "\n", - "def evaluate_recurrence_lamb1(coord_dict, recur, p, derivs_list, n_initial, n_order):\n", - " subs_dict = {}\n", - " for i in range(n_initial-n_order, 0):\n", - " subs_dict[s(i)] = 0\n", - " for i in range(n_initial):\n", - " subs_dict[s(i)] = derivs_list[i].subs(coord_dict)\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " for i in range(n_initial, p):\n", - " exp = get_recurrence(recur, i)\n", - " f = sp.lambdify([var[0], var[1]] + [s(i-(1+k)) for k in range(n_order-1)], exp)\n", - " subs_dict[s(i)] = f(*([coord_dict[var[0]], coord_dict[var[1]]] + [subs_dict[s(i-(1+k))] for k in range(n_order-1)]))\n", - " for i in range(n_initial-n_order, 0):\n", - " subs_dict.pop(s(i))\n", - " return np.array(list(subs_dict.values()))\n", - "\n", - "def compute_error_coord1(recur, loc, order, derivs_list, n_initial, n_order):\n", - " var = _make_sympy_vec(\"x\", 2)\n", - " coord_dict = {var[0]: loc[0], var[1]: loc[1]}\n", - "\n", - " exp = evaluate_recurrence_lamb1(coord_dict, recur, order+1, derivs_list, n_initial, n_order)[order].evalf()\n", - " \n", - " true = derivs_list[order].subs(coord_dict).evalf()\n", - "\n", - " \n", - "\n", - " return (np.abs(exp-true)/np.abs(true))\n", - "def generate_error_grid1(res, order_plot, recur, derivs, n_initial, n_order):\n", - " x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)]\n", - " res=len(x_grid)\n", - " plot_me = np.empty((res, res))\n", - " for i in range(res):\n", - " for j in range(res):\n", - " if abs(x_grid[i]) == abs(y_grid[j]):\n", - " plot_me[i, j] = 1e-16\n", - " else:\n", - " plot_me[i,j] = compute_error_coord1(recur, np.array([x_grid[i],y_grid[j]]), order_plot, derivs, n_initial, n_order)\n", - " if plot_me[i,j] == 0:\n", - " plot_me[i, j] = 1e-16\n", - " return x_grid, y_grid, plot_me\n", - "x_grid, y_grid, plot_me_lap2 = generate_error_grid1(res=8, order_plot=7, recur=recur_laplace, derivs=derivs_laplace, n_initial=n_init_lap, n_order=order_lap)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABRQAAALKCAYAAABDdd05AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADPYElEQVR4nOzdd3hUZf6/8fcQSCBAQg81gCJgjAQ3gNKJBQ0dBMFVBBcUJIqIla+rIqti2UUsgRV3FftixV1FMatIQESKoGKw4KKAlNBDD4Tn98f5nYEhbTKZyZlyv67LazeTk5knYTJ5cuczZ1zGGCMAAAAAAAAA8EIlpxcAAAAAAAAAIHQQFAEAAAAAAAB4jaAIAAAAAAAAwGsERQAAAAAAAABeIygCAAAAAAAA8BpBEQAAAAAAAIDXCIoAAAAAAAAAvEZQBAAAAAAAAOA1giIAAAAAAAAArwVtUNyzZ48aNGggl8ultm3blnr8r7/+KpfLVab/evXqFfhPJMAOHTqkxx9/XJ07d1bdunVVtWpVNW/eXNdee62WLl1a4seuXr1avXv3Vq1atdxfk19//dV9vRMnTlSzZs1UuXJluVwuTZ061et1ffXVV+7rnD59ejk+w8Lmzp1b5vWUxZn3k0qVKik+Pl4XXXSRnnzySR0/fjwgt4vgZIzR66+/rr59+6phw4aKjo5Ww4YNlZ6ertdee03GmIDcbq9evTy+J53w+eefe/VYOm3atHLf1tSpUwP6fe0rl8ulFi1aOL2MkGH/LA6Hn6+hZNeuXbrvvvt0wQUXqFatWoqNjVWrVq104403at26dY6tKykpSS6XS23atPH7dQfye3P06NGFHueqVaumc845R+PGjdPGjRsDcrsIXt9//73Gjx+vc845R7GxsYqPj1f79u315z//Wbt27QrIbQZ6v+utFi1alLoPOOuss8p9O/bPj2D7mWs/Hnz++edOLyVkBMMeFkDFqOz0AoozefLkMv2ArlGjhkaNGlXo8o8//lg7duxQ165d1apVK4/3eRMqg9natWvVr18//f7774qPj1fXrl1Vs2ZN/fTTT3rttdf02muv6eabb9ZTTz2lSpU82/GBAwc0YMAAbdu2Tb169VKzZs3kcrlUo0YNSdKUKVP0zDPPqFWrVrrqqqsUHR2t9u3be722V155xeP/T5kyxS+fc0Wy708FBQX69ddftWzZMn311Vf68MMP9fHHH6ty5aD99oGf7N27VwMHDtSSJUtUuXJlde3aVY0bN9a2bdv06aef6uOPP9Zzzz2n999/X7Vr13Z6uX7XsGHDIh9XJev74tVXX5Ukde/evSKXBeA0//3vfzVs2DDt27dP9evXV8+ePRUTE6PvvvtOzz//vF544QU99NBDuueeeyp0XatWrdL69eslST/99JNWrFihTp06Vegayuv0veOuXbv01Vdfac6cOfrXv/6lJUuWqF27dg6vEBXhscce07333quCggK1adNG/fr1U35+vpYvX66HH35YmZmZevPNN3XZZZc5vdSAGDp0aLG/ky1evFi//vor+wAAiFQmCP33v/81ksyNN95oJJk2bdr4fF09e/Y0ksyLL77ovwUGgV9//dXUqlXLSDITJ040hw8f9nj/8uXLTfPmzY0kc9tttxX6+E8//dRIMiNHjizy+ps1a2aqVatmDh48WOa15efnm3r16hmXy2UaNmxoJJnVq1eX+XqKs2/fPrN+/Xqzc+dOv13n6SSZor41li9fbqpWrWokmVdeeSUgt43gkZ+fbzp16mQkmbS0NLN582aP92/ZssVcfPHFRpLp1KmTOX78uF9v337s2rhxo1+v118WLFhgJJlmzZqZgoKCcl/fAw88YCSZBx54oPyL8yNJpnnz5k4vI2Rs3LjRSDI9e/Z0eikRYcWKFSY6Otq4XC4zffr0Qo9DH374oaldu7aRZJ566qkKXdvEiRONJNOoUSMjydxyyy1+vf7169ebDRs2+PU6baNGjSpy77hv3z73Y/Mll1wSkNtGcJk5c6aRZGrXrm0++OADj/edOHHCPProo8blcpno6GizcuVKv972iy++GJQ/F20FBQWmcePGRpLJysoq9/XZPz+C7Weu/XiwaNEip5cSMoJ9DwvAf4LuKc9HjhzR+PHjlZSUpDvuuMPp5QStcePGad++fRozZoyeeuopVatWzeP9F154oT755BNVq1ZNM2fO1PLlyz3ev2XLFkkq9ikKW7ZsUYMGDVS9evUyr+2jjz7Srl271KNHD914442SPCcWyys+Pl5t27ZVvXr1/Had3rjwwgs1evRoSdLChQsr9LZR8f72t79pxYoVOv/88/Xhhx+qadOmHu9v0qSJPvjgAyUnJ2vFihX629/+5tBKnWFPJ15zzTWFJqABBJ4xRqNGjVJ+fr6mTZume+65p9DkfJ8+fTR//ny5XC7dfffd+u233ypkbSdOnNC//vUvSdLLL78sSfrXv/6lEydO+O022rZtq7PPPttv1+eN+Ph4PfbYY5KsyayjR49W6O2jYv3222+6++675XK5NH/+fPXt29fj/VFRUbr77rs1bdo05efna9SoUQE7DUow+vTTT7V161Y1btxYF198sdPLAQA4IOh+C3zwwQf1yy+/aPbs2apSpUpAb+vgwYOaNm2azj//fMXGxiouLk49e/bU/PnzCx17+nmh8vLydPvtt6tly5aqUqWKJk2aJOnUOUYkKTMzU8nJyapWrZpatmypxx9/3L3J+Prrr9WvXz/VqVNHNWvW1KBBg8q0yf/++++1cOFCVa1aVY8//nixx7Vu3Vq33HKLjDGaMWOGx+dhP43xwQcfdJ//ZPTo0e5zXhhj9Ntvv3mcH8Vbdjy89tprde2110qS3njjDRUUFBQ6dtasWXK5XOratWuh9x85ckTnnXeeXC6X3nrrLfflxZ1T5vjx43ruuefUqVMn1atXT7GxsWrRooX69evn/sWmvM477zxJUm5ubqH3GWP00ksvqUePHqpVq5aqVaumdu3a6a9//Wux5108dOiQpk+frj/84Q+qWbOmatSooaSkJE2aNMnjPlHa+VuKOufM6V+nn376SSNGjFBCQoIqVaqk+fPne3WflqSdO3fqjjvuUJs2bVS1alXVrl1b6enpys7OLrQO+5x7o0eP1p49e3TTTTepUaNGiomJUXJysl544YViv7abNm3SzTffrHPOOUdVq1ZV3bp11alTJz3yyCM6cuSIx7H5+fl66qmn1LFjR9WsWVPVq1dXp06d9M9//tMvm/kTJ07o6aeflmQ91enMYG+rVq2a+3vwqaee8rgP2+cEnDt3rlasWKF+/fqpbt26crlcWrt2rfu4OXPm6Pzzz1fVqlXVpEkT3XLLLdq/f3+J6/v11181btw4tWjRQjExMapfv76GDh2qb7/9ttCxpd0PfHHo0CG9//77kuT+Hq9oH374of70pz/p3HPPVVxcnKpXr66UlBQ98sgjOnbsWKHjz/w6XHnllapbt66qV6+url27asGCBV7ftjFGb7zxhkaMGKHWrVurevXqqlmzpjp16qRZs2bp5MmTxX7sRx99pH79+qlBgwaKiYlRYmKiBg0apA8//LDQ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L+1zBuC9oAmKBQUFplOnTqZevXpm165dxpjABsX09HQjydx1110mPz/fffkvv/xizj77bBMVFeXxg8heiyTTuXNndyw7nb2BatKkicemcf369SYmJsbExsaaFi1amCeffNL9vmPHjrnPw/bCCy949Tldc801RpL5y1/+UuqxJ06ccG9uTz/XUGnnZSnLD/TTzZkzx0gyV155pfuyp59+2kgy11xzTZEfs2PHDtOgQQNTuXJl89VXXxljTp2frWXLliYvL8/j+KLWbv/7dOzY0eOXEWOsTc+yZcu8/hxKCoo9evQwksyrr77qcfljjz1mJJnLLrvM5Obmui8/ePCg6d+/v5Fknn32WY+PueSSS4wkc/XVVxc6V+VPP/1k1q9f7367PEHR3uCeuUEq7T594sQJk5ycbCTr3Funb/6//vprU7duXVO9enWzY8cO9+X2Lzz2feD0z8v+hTYxMdHjdvbs2WPq169vJJknn3yy0C8ZixcvNvv27XO/fdNNNxnJOv/ngQMH3Jfn5uaaCy+80EjyOZTZnn/+effG0hv2v+U//vEP92V2IJNkHnvssUIf88UXX7hj8umPF7t27TLt2rVzf+zpm7H9+/ebhg0bmipVqpi33nrL4/qysrJMdHS0adKkiccvuaXdD3zRu3dvI8nMmDGj3NdlK2tQfO+99wp93+Tl5bn/QPHSSy95vO/0r8N1113nca65//znPyYqKspUr1690C+hRX1vHT9+3LzzzjuFYkJubq7p0KGDkWQWL17s8b5XXnnFSDJNmzYt9EvOwYMHzaeffup+25d/Z18E4jHAn0ExEPd3b36Whwr7D4PenNN38+bNRpKpVKmSx57H3rc0atTIrFmzxn35zp073X/wPP2+6Y39+/ebatWqmejoaLN7925jjDG7d+82VapUMdWqVTP79+8v8uNGjx5tpFPnWjxw4IA5++yzjSTzn//8p9DxRX1v9uzZ07hcLo8/7ti++uqrQvuJ4pQUFF944QUjyVx66aUel//vf/8zsbGxJj4+vtD3/0svveTeo5yuLI8L5QmKkkyrVq3Mli1bCn2cvU+uWrWq+fzzzwu935f9jS/3qzFjxhjJOmex/XuAbcuWLR7/pl9++aWpVKmSad68ucfX7eTJk2batGlGkhk6dGiRXydvHTt2zLhcLiOp0DmUi2L/W3br1s19WWmPNwUFBe4IeuYgw5///Gf3x575c9GXfVBp94Oyev31140k065du3Jfl62sQfHLL78s8jyq9vdoWlpaoffZX4emTZuaX375xX15bm6ux8+70xX3vfXpp58W2jMUFBSYBx980EjWH5RPF4z7XWMC8xjgz6AYiPt7aZ8zAO8FTVC0T3p8+uYtUEFxzZo1RpLp0qVLkX95t8PH6ScQP31TUNxJl+0NVFFhcMiQIUaS6dGjR6H3vf/++yVuEs90xRVXGEnmueee8+p4+y9Iy5cvd18WqKBo/wXpvffec1+Wm5trKleubGJjYz1+EJzugw8+MJLMOeecY/73v/+ZhIQEExUVZb744otCxxa19q+++spIMrfeemuZ13ymM4NiQUGB2bBhgxk/fryRZAYMGOARI44fP27q1atnatasWeQLxWzfvt3ExMSY888/v9B6GzZs6NUL35QnKNavX98cOnSo0MeUdp9+77333MGzKPb37N/+9jf3ZfYvPHFxce5fJE93/vnnF9pg2BuVfv36FXk7p9uxY4epUqWKadmypTl69Gih99sTuf379y/1ukry6KOPlvi5n2nEiBFGknn00Ufdl9mBLDk5ucjHmZEjRxpJ5uGHHy70voULFxYZFJ988kkjyUyZMqXIddgTEu+88477stLuB2W1bds2ExUVZaKiosy2bdvKfX02f70oy88//2wkmSFDhnhcbn8datSoYfbs2VPo4+yJqkceecTj8rI+FmZlZRlJZvLkyR6X21MTb7/9dqnX4cu/sy8C8Rjgz6AYiPu7Nz/LQ4UdIhYuXFjqsUePHnV/3qdP+tn7ltP/GGL729/+5tP35D//+U8jWZPqpxswYECxeyRjrD8InHXWWcblcpmPP/7YHRiLm6Aq6nvz3HPPNbVq1SrTeotSVFDcuXOnefXVV02dOnVMvXr1zPfff+/xMbfeemuJe7NBgwYZyfNF6sryuFDeoHhmlLfZ++SMjIxC7/Nlf2NM2e9XW7duNVFRUaZatWpexbuBAwcWe98/efKkueCCC0ylSpXK9eJ927dvd3/tvPnjzccff2wkmbZt27ovK+3xxn6BxNatWxfaJxw/ftwkJiYW+lr5ug8q7X5QVvZgxhNPPOGX6zPGvy/K0rVrV+NyuTwCnTGnvg5z5swp9DEfffSR+9/jdL68KEuTJk1MnTp1PC4Lxv2uMYF5DPBXUAzU/b2kzxlA2QTFORQ3b96sP//5z+rZs2ex54bxp6ysLEnSwIEDizw3YLdu3SRJK1euLPS+Ro0aqUOHDiVe/2WXXVboMvvFT4p6n31S8W3btpWycosxxuN/vT2+LOdB9MWvv/6qpUuXqk6dOurTp4/78vr16+vyyy/X4cOH9d577xX5sX379tWECRP0888/q3379tqxY4f+7//+T126dPHqttu2bavq1avrxRdf1PPPP6/du3eX+/Oxzx0ZFRWlVq1a6e9//7vGjBmj9957z+PE92vWrNGuXbvUrVu3Il8oJiEhQeecc47WrVvnPjfKf//7X0nWeWd8eeGbsrj00ksVGxtb7PuLu0/b3yfFnV+npO+TDh06qE6dOoUub926tSTP+7r9tRg3blyxa7QtXrxYx48f1xVXXKGYmJhC709JSVHNmjWLXFNZ+PN7rH///kVevnTpUknSVVddVeh9vXv3LvLrV55/k9LuB956/fXXVVBQoMsuu0wNGzYs9/WVx88//6ynnnpKt9xyi/70pz9p9OjR+stf/uJ+X1F69+6t2rVrF7r86quvlnTq38Uba9eu1eOPP66MjAxdf/31Gj16tGbPnl3o9rdu3ar169erbt26uvLKK0u93vL8O/siEI8B/hDI+7s3P8uDXVkep04/pqjHo969exe6rKjHa2/Y51EeOXKkx+X22/Z5185Us2ZNvfrqq6pUqZKuuuoqzZ07V23atCnTC16lpqa6X7CuqHPuldX111/v3gvUr19f1157rWrWrKmvv/5aSUlJHseevrcsypn317I+LpSHy+VS//79SzxmwIABhS7zZX9zOm/vV4sWLVJBQYH69OlT6AXQznTy5El9+umnqlmzpi655JJC77fPy33y5EmtXr26xOsqyenfM2X5Hivq+6u4xxv7582wYcMKfVzlypU1dOjQQh9Tnn2QN/cDb+zcuVNZWVmqVKmS/vjHP5b7+srj4MGDeuONN3T33Xfrhhtu0OjRozV69Ght27ZNxhj98ssvRX7ciBEjCl12xRVXqHbt2vrpp5+8Pg/n7t279eKLL+r222/XmDFj3Ld//Phx7dmzR3v27HEfG4z73dMF4jGgvAJ9fy/qcwZQNpVLPyTwJkyYoPz8fPcvYt549NFH9cMPP3hc1rZtW91zzz2lfqx9Yuy77767xBOZ79q1q9BliYmJpV5/kyZN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f/xRf/7znytsg3k6+6mMQ4YM8cvTp31lnzph9uzZhaag/ve//5X4sb/99luRl9tfb2+mLezbt6Niabdf1u93p/+dT1+HFPjHgJJuPxi+DsEqPT1ds2bN0ttvv60nnniiyFBos/cCV1xxRbluc+7cuSX+nLNDw/79+/XFF18Ue9wrr7xSZFC87bbb9PPPP2vw4MH65JNPNHnyZKWlpemcc87xeo2VK1dW79693U+33bRpk66//np99tlnevTRR/XYY495fV1nSk5O1tNPP60//vGPmj59um688UbFx8dLsu6vv/zyi55++mnFxcWVel3+3AdIgdkL+LK/8UVZvhb16tVTTEyMqlSpEtA1Sdb3WE5Ojt54440S/4h2/Phxvf3225LK9j1m/7wp7efS6SpqH1Scn376SStXrlRsbGypQTeQlixZot27d+vKK6/UtGnTCr2/pL3A3r17deDAgSKnFO2veWkDDQsWLFB+fr5uv/123XrrrV7dfjDud0tTUY8Bpd2+018HAMULinMo2n/NPvO/jRs3SpJ72sMYo1q1apX79i699FJJ0vz588t9XU5ITk7WZZddpqNHjxa5Ibf99NNPevbZZyVZm/RAskPDnXfeWey/5yeffCKp6PMn3XDDDdq2bZvuuecevfrqq+revbs++eQTPf300z6vyeVy6YorrlDfvn0lyS/nU3rsscfkcrn0yiuvuDeAHTt2VHx8vBYtWqS8vDyvrse+D7722ms6fPhwqcfbG5uffvqp0Pvsr6u/VdT3iX07c+bMKfXYtLQ0RUVF6YMPPnD/1TIQKleurFtuuUWSdWqE4p5ScuTIEfdpEyZOnFjq069OZ0/xvvXWW4Xel5WVVejpzpKzj13GGHeUcPLpzpLcp3EoamLkzTffLPFjP/nkE+3bt6/Q5fbTl7t27er322/cuLHOPfdc7d69W++++26p1x8sP6OcXofTtx/s+vTpozZt2uj3338vMZJlZ2fr7bffVnR0tDIyMgK2ntWrVysnJ0cJCQk6ceJEkfuAkydPqmnTplq3bp2++eYbj49///339fzzz+ucc87Rq6++qieffFKHDh3SNddc4/5jsi8SExPdj9PfffdduT5HyTr3Wvv27bV3715lZma6Ly/r/bWsjwsl7QN2796tr7/+2qvbLQtf9je+6NWrl6KiorRgwQL9/vvvJR5buXJl9erVS3v27FF2dnbA1iRJGRkZio6O1ltvvVXibT322GP6/fff1bZt2xL/AHkmex/wzjvvFPqj/YkTJ/TOO+8U+piK2gcVx97DDx482P30dSeU9HN4w4YNpX4/zJs3r9BlCxcu1N69e3XOOeeUOJVf2u1nZ2drx44dhS4Pxv1uaSrqMaA4wfJ1AFC8oAiKFe2iiy7SJZdcokWLFum2224r9NfekydP6pNPPinTyfkr2nPPPaf4+Hj985//1KRJkwoFj6+++kq9e/fWkSNHNHHiRK9f3MQXJ06ccP9gtl/YoCgXX3yxGjRooLVr13rEvX/84x967733lJqaqgceeECVKlXSyy+/rLi4ON1zzz1ehcA1a9bo3Xff1fHjxz0u37t3r7766itJ/jlPRvv27TVw4ECdOHHC/RTqmJgY3XHHHdq3b5+uvPLKIv/S/O2333psXjp16qS0tDRt375d48aNKxQVN2zY4HGO0J49e0qyJrJOf8GZr7/+Wvfdd1+5P6+iDB06VG3bttXcuXP12GOPFfra5ufn69133y33L2hjx45VvXr19J///EfPPvtsoU31kiVLtH//fknWOUhHjx6tn3/+WSNHjizy/EjLli3TggULPC6bO3euXC6X+9QJ3rjjjjuUmpqq7777Tv369Sv0S87WrVvVr18/rVu3Tqmpqbrjjju8vm7p1Em5Z8yYofXr17sv37NnT7F/KBg3bpzq16+vRx55RC+++GKhr9WhQ4f08ssva8uWLWVaizeWLFmi3377TY0bN9bFF19c4rGff/65XC6X+7yE/maf1H/OnDkeX4MlS5boiSeeKPFjDx48qMmTJ3sEigULFuitt95SbGys+9yp3tz+3//+d4/L3377bb388stFfox9Oo5Jkybp+++/93jfoUOH9Nlnn7nf9vXfuVevXnK5XH6bIvD3Y0Dbtm3Vtm3bUoOBzYn7e1nX6KRKlSpp7ty5qlKliu6//3499thjhX7h+uijjzRo0CAZY/Too48G7HtSOvWHxeHDh3ucW/B0LpfL/UJU9vGStH37do0dO1aVK1fWq6++qtjYWN1www0aMGCAVq5cqalTp3q1hieffLLIX+Q//vhjSf7ZB7hcLvd6Zs6c6f75ffvtt6tatWq67bbb9J///KfQx+3Zs0ezZs3y2K+V5XGhZcuWSkxM1Hfffaf333/f47gbbrghIL/s+7K/8UXjxo113XXX6ciRIxo9enShP6ht3brVIxD93//9nypVqqRRo0YVuVffunWrR+y12S+wY5+XrTQtW7bU9OnTZYzRoEGD9OGHH3q8v6CgQE888YTuv/9+98RkWZ4NlJaWptatW+uHH35wnzbA9tBDDxX59fZ1H+Qvr732miTv/rDYokULuVyucj2rrDj2z+F3333X4xyK9osynfnz6kzTpk3zuB/s2rXLvfeaMGGC17f/6quv6tChQ+7Lf//9d40fP77IjwnW/W5J/P0YMGXKFLVt29Y98FIaJ+7vZV0jEPH89GrRAbFx40YjybRp08bn67BfFv7FF1/0uHz79u2mXbt2RpKpU6eOufjii83w4cNNt27dTP369Y0k8+STTxZaS8+ePYu9rebNm5vivqQPPPBAkevw9rqLsmrVKtO4cWMjycTHx5u+ffuaESNGmD/84Q9GkpFkbrrpJlNQUFDoY1988UUjyTzwwANFXrck07x5c6/W8e9//9vrf6cJEyYYSebuu+82xhjz888/m+rVq5vY2Fjzww8/eBz70ksvGUmmXbt25ujRoyWu/b333nN/HS655BJzzTXXmL59+5q4uDgjyQwePNirz8UY4/7aFWft2rXG5XKZqlWrmm3bthljjCkoKDBXX321kWRiYmJM586dzfDhw80ll1xiWrZsaSSZgQMHelzPli1bTOvWrY0kU7duXTNw4EAzdOhQ0759e+NyuTzuKydPnnTflxs0aGAGDx5sunXrZqpUqWLuuOOOIv+9Svs39uZ+t379epOYmGgkmUaNGpnLL7/cDBs2zFx00UWmVq1aRpJ577333McvWrTISDKjRo0q8vpGjRplJJlFixZ5XP7ZZ5+ZmjVrGknm7LPPNldddZXp16+f+2u3ceNG97GHDh0yaWlpRpKpWbOm6d69uxk+fLjp2bOnadKkiZFkbr31Vo/r/+c//2kkmUsvvbTYz7Uou3btMl26dDGSTJUqVUyvXr3M1VdfbdLS0kyVKlWMJNOlSxeza9euQh9b0ve8bdKkSe77TN++fc3QoUNNnTp1TPv27c1FF11U6HM3xpilS5eaOnXquP/N+/bta4YMGWI6dOhgqlevbiSZNWvWuI8v7X7grRtuuMFIMnfeeWepx3766adGkmnVqpXX129/vZo0aWIuvPDCIv+z//1+/PFH9+ealJRk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AU/ERAsx0XJOfNUKuy32J0BoISYCABC6fAqKkrUh//bbb/X5559ryZIl2rp1qySpcePG6t69u3r16uWvNQJASGA6ETZioqVNrWo6fKhip6fYn0S2SJpODNXJRCdehIWYCACA//kcFG29evVic46IxXQibMREC9OJsLWp5ezpQNifRJ5IiYmhFhKdfhVnYiIAAIFR7qBoO3DggFwul2rU4JdJRAZiImzERAsx0cJ0YnBhfxIZiInBxemICAAAAs+nV3m2ffzxx+rTp4/i4+NVq1YtxcfHKy4uTn379tXHH3/srzUCQYeYCHgiJlqIiRanpxPZn0SWSIiJy3MPBHVM/G5Lnsd/wYLpRAAAAsfnCcXJkyfrqaeecp/kPD4+XpK0f/9+ffTRR/r444916623asaMGf5ZKQAEIaYTYSMmWpyOiexPIku4x8RgjYjBFA2LQ0wEACCwfJpQnDdvnmbOnKn69evr6aef1t69e93/7du3T88884waNGigp556Sm+++aa/1ww4iulE2IiJFqYTYXM6JrI/iSzExIoVjBOIxSEmAgAQeD4FxVmzZqlq1arKzs7WzTff7P7rvyTFxcUpIyNDixcvVkxMjGbNmuW3xQaDzMxMJSUlqWPHjk4vBQ4gJsJGTLQQEy1MJwYH9ieRsz8J55gYLE9vDtanMQMAgODg01Oev/nmG1188cVq3bp1sce0bt1aF198sZYuXerz4oJRRkaGMjIylJeX5/GLCgBEGmKihZhocXo6UWJ/Ein7k3CNiU5HxHCJhkwnAgBQMXwKivn5+apevfRfoKpXr678/HxfbgIIOkwnwsZ0ImzEREswxESJ/UkkICb6V7hERBsxEQCAiuNTUDz77LO1ePFiHT58WLGxsUUec/jwYS1evFhnn312uRYIBANiImzERAvTibAFS0yU2J+Eu3CMiRUdEsMtIJ6OmAgAQMXy6RyKV111lXJzczVkyBD973//K/T+X375RUOGDNHOnTs1fPjwci8ScBIxETZiooWYaGE6MfiwPwlf4RYTK/I8iZwHEQAABIJPE4p33HGH3n//fX3yySdq06aNOnXqpBYtWsjlcmnjxo1asWKFCgoK1KFDB91+++3+XjMAwCHERAsx0RJM04kS+5NwFY4xsaJESkRkOhEAgIrnU1CsVq2aPv/8c02ZMkUvvPCCvvzyS3355Zce7//T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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 8))\n", - "cs1 = ax1.contourf(x_grid, y_grid,plot_me_lap.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "cs2 = ax2.contourf(x_grid, y_grid, plot_me_lap2.T, locator=ticker.LogLocator(), cmap=cm.PuBu_r)\n", - "\n", - "fig.subplots_adjust(right=0.8)\n", - "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", - "fig.colorbar(cs1, cax=cbar_ax)\n", - "\n", - "\n", - "ax1.set_xscale('log')\n", - "ax1.set_yscale('log')\n", - "ax1.set_xlabel(\"source x-coord\", fontsize=15)\n", - "ax1.set_ylabel(\"source y-coord\", fontsize=15)\n", - "\n", - "\n", - "ax2.set_xscale('log')\n", - "ax2.set_yscale('log')\n", - "ax2.set_xlabel(\"source x-coord\", fontsize=15)\n", - "ax2.set_ylabel(\"source y-coord\", fontsize=15)\n", - "\n", - "ax1.set_title('4-Term Off-Axis Recurrence, Order 7, Laplace, rel. err.', fontsize=15)\n", - "ax2.set_title('On-Axis Recurrence, Order 7, Laplace, rel. err.', fontsize=15)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "inteq", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/test/plotting.py b/test/plotting.py index dda878544..4b3a9c475 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -15,6 +15,10 @@ import matplotlib.pyplot as plt from matplotlib import cm, ticker +from sympy import hankel1 + +from immutabledict import immutabledict +from sumpy.expansion.diff_op import LinearPDESystemOperator def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): @@ -195,26 +199,55 @@ def create_plot(relerr_on, str_title): ax.set_xscale('log') ax.set_yscale('log') - ax.set_xlabel("x-coordinate", fontsize=15) - ax.set_ylabel("y-coordinate", fontsize=15) + ax.set_xlabel("$x_1$-coordinate", fontsize=15) + ax.set_ylabel("$x_2$-coordinate", fontsize=15) plt.title(str_title) -#========================= LAPLACE 2D ==================================== -res = 32 +#========================= DEFINE PLOT RESOLUTION ==================================== +res = 8 mesh_points, x_grid, y_grid = create_logarithmic_mesh(res) -w = make_identity_diff_op(2) -laplace2d = laplacian(w) +#========================= DEFINE GREEN'S FUNCTIONS/PDE's ==================================== +from collections import namedtuple +DerivativeIdentifier = namedtuple("DerivativeIdentifier", ["mi", "vec_idx"]) var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) -g_x_y_laplace = (-1/(2*np.pi)) * sp.log(sp.sqrt((var[0]-var_t[0])**2 + - (var[1]-var_t[1])**2)) +abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) +w = make_identity_diff_op(2) -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 9) +partial_1x = DerivativeIdentifier((4,0), 0) +partial_1y = DerivativeIdentifier((0,4), 0) +biharmonic_op = {partial_1x: 1, partial_1y: 1} +list_pde = immutabledict(biharmonic_op) -relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -create_plot(relerr_on, "Laplace (2D): On-Axis Recurrence, 9th Order Derivative Evaluation Error") +biharmonic_pde = LinearPDESystemOperator(2, (list_pde,)) +g_x_y_biharmonic = abs_dist**2 * sp.log(abs_dist) + +laplace2d = laplacian(w) +g_x_y_laplace = (-1/(2*np.pi)) * sp.log(abs_dist) + +k = 1 +helmholtz2d = laplacian(w) + w +g_x_y_helmholtz = (1j/4) * hankel1(0, k * abs_dist) +#========================= LAPLACE 2D ==================================== +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 9) + +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#plt.figure(1) +#create_plot(relerr_on, "Laplace (2D): On-Axis Recurrence, 9th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") #========================= HELMOLTZ 2D ==================================== +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, helmholtz2d, g_x_y_helmholtz, 9) + +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#create_plot(relerr_on, "Helmholtz (2D): On-Axis Recurrence, 8th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") + + +#======================== BIHARMONIC 2D =================================== +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 7) + +relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +create_plot(relerr_on, "Biharmonic (2D): On-Axis Recurrence, 8th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") + plt.show() \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py index 0a6aa5a9c..a55287f54 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -46,6 +46,9 @@ from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence, get_off_axis_expression, get_reindexed_and_center_origin_off_axis_recurrence import math +from immutabledict import immutabledict +from sumpy.expansion.diff_op import LinearPDESystemOperator + def test_laplace3d(): r""" Tests recurrence code for orders up to 6 laplace3d. @@ -126,6 +129,63 @@ def test_helmholtz3d(): assert max(abs(abs(check))) <= 1e-12 +def test_biharmonic2d(): + r""" + Tests recurrence code for orders up to 6 biharmonic. + """ + + from collections import namedtuple + DerivativeIdentifier = namedtuple("DerivativeIdentifier", ["mi", "vec_idx"]) + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) + w = make_identity_diff_op(2) + + partial_1x = DerivativeIdentifier((4,0), 0) + partial_1y = DerivativeIdentifier((0,4), 0) + biharmonic_op = {partial_1x: 1, partial_1y: 1} + list_pde = immutabledict(biharmonic_op) + + biharmonic_pde = LinearPDESystemOperator(2, (list_pde,)) + g_x_y = abs_dist**2 * (sp.log(abs_dist)-1) + + n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(biharmonic_pde) + + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(8)] + + x_coord = np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord} + derivs = [d.subs(coord_dict) for d in derivs] + + n = sp.symbols("n") + s = sp.Function("s") + + # pylint: disable-next=not-callable + subs_dict = {s(0): derivs[0], s(1): derivs[1], s(2): derivs[1], s(3): derivs[1]} + check = [] + + assert n_init == 4 + max_order_check = 8 + for i in range(n_init, max_order_check): + check.append(r.subs(n, i).subs(subs_dict) - derivs[i]) + # pylint: disable-next=not-callable + subs_dict[s(i)] = derivs[i] + + f2 = sp.lambdify([var[0], var[1]], check[0]) + assert abs(f2(x_coord, y_coord)) <= 1e-13 + f3 = sp.lambdify([var[0], var[1]], check[1]) + assert abs(f3(x_coord, y_coord)) <= 1e-13 + f4 = sp.lambdify([var[0], var[1]], check[2]) + assert abs(f4(x_coord, y_coord)) <= 1e-13 + f5 = sp.lambdify([var[0], var[1]], check[3]) + assert abs(f5(x_coord, y_coord)) <= 1e-12 + +test_biharmonic2d() + + def test_helmholtz2d(): r""" @@ -340,8 +400,6 @@ def test_laplace_2d_off_axis(deriv_order, exp_order): assert relerr <= prederror return relerr -test_laplace_2d_off_axis(1, 8) - """ import matplotlib.pyplot as plt diff --git a/test/testing_pde_to_ode.ipynb b/test/testing_pde_to_ode.ipynb deleted file mode 100644 index 1a0621437..000000000 --- a/test/testing_pde_to_ode.ipynb +++ /dev/null @@ -1,315 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.recurrence import _make_sympy_vec\n", - "\n", - "from sumpy.expansion.diff_op import (\n", - " laplacian,\n", - " make_identity_diff_op,\n", - ")\n", - "\n", - "from sumpy.recurrence import _generate_nd_derivative_relations, pde_to_ode_in_r, ode_in_r_to_x, recurrence_from_pde,ode_in_x_to_coeff_array, recurrence_from_coeff_array\n", - "\n", - "import sympy as sp\n", - "from sympy import hankel1\n", - "\n", - "import numpy as np\n", - "\n", - "import math\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib import cm, ticker" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "from sumpy.expansion.diff_op import DerivativeIdentifier, LinearPDESystemOperator\n", - "from immutabledict import immutabledict" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "w = make_identity_diff_op(2)\n", - "laplace2d = laplacian(w)\n", - "g = sp.Function('g')" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "var = _make_sympy_vec(\"x\", 3)\n", - "rels = _generate_nd_derivative_relations(var, 4)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LinearPDESystemOperator(3, (immutabledict({DerivativeIdentifier(mi=(1, 0, 3), vec_idx=0): 1}),))" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from collections import namedtuple\n", - "DerivativeIdentifier = namedtuple(\"DerivativeIdentifier\", [\"mi\", \"vec_idx\"])\n", - "partial_1 = DerivativeIdentifier((1,0,3), 0)\n", - "list_pde = {partial_1: 1}\n", - "list_pde = immutabledict(list_pde)\n", - "pde_op = LinearPDESystemOperator(3,(list_pde,))\n", - "pde_op" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle x_{0} x_{2} \\left(- \\frac{3 f_{r1} \\left(\\frac{5 x_{2}^{2}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}} - 3\\right)}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{5}{2}}} + \\frac{3 f_{r2} \\left(\\frac{3 x_{2}^{2}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}} - 1\\right)}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{2}} + \\frac{\\frac{3 f_{r2} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{5}{2}}} - \\frac{3 f_{r2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}} - \\frac{3 f_{r3} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{2}} + \\frac{3 f_{r3}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}} + \\frac{f_{r4} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}}}{\\sqrt{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}}} - \\frac{3 \\left(- \\frac{f_{r2} x_{2}^{2}}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}} + \\frac{f_{r2}}{\\sqrt{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}}} + \\frac{f_{r3} x_{2}^{2}}{x_{0}^{2} + x_{1}^{2} + x_{2}^{2}}\\right)}{\\left(x_{0}^{2} + x_{1}^{2} + x_{2}^{2}\\right)^{\\frac{3}{2}}}\\right)$" - ], - "text/plain": [ - "x0*x2*(-3*f_r1*(5*x2**2/(x0**2 + x1**2 + x2**2) - 3)/(x0**2 + x1**2 + x2**2)**(5/2) + 3*f_r2*(3*x2**2/(x0**2 + x1**2 + x2**2) - 1)/(x0**2 + x1**2 + x2**2)**2 + (3*f_r2*x2**2/(x0**2 + x1**2 + x2**2)**(5/2) - 3*f_r2/(x0**2 + x1**2 + x2**2)**(3/2) - 3*f_r3*x2**2/(x0**2 + x1**2 + x2**2)**2 + 3*f_r3/(x0**2 + x1**2 + x2**2) + f_r4*x2**2/(x0**2 + x1**2 + x2**2)**(3/2))/sqrt(x0**2 + x1**2 + x2**2) - 3*(-f_r2*x2**2/(x0**2 + x1**2 + x2**2)**(3/2) + f_r2/sqrt(x0**2 + x1**2 + x2**2) + f_r3*x2**2/(x0**2 + x1**2 + x2**2))/(x0**2 + x1**2 + x2**2)**(3/2))" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ode_in_r, var, ode_order = pde_to_ode_in_r(pde_op)\n", - "ode_in_r" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "f_x_derivs = _make_sympy_vec(\"f_x\", ode_order+1)\n", - "ode_in_x = ode_in_r.subs(rels)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{x_{2} \\left(9 f_{x1} x_{0}^{2} - 15 f_{x1} x_{2}^{2} - 9 f_{x2} x_{0}^{3} + 15 f_{x2} x_{0} x_{2}^{2} + 3 f_{x3} x_{0}^{4} - 6 f_{x3} x_{0}^{2} x_{2}^{2} + f_{x4} x_{0}^{3} x_{2}^{2}\\right)}{x_{0}^{6}}$" - ], - "text/plain": [ - "x2*(9*f_x1*x0**2 - 15*f_x1*x2**2 - 9*f_x2*x0**3 + 15*f_x2*x0*x2**2 + 3*f_x3*x0**4 - 6*f_x3*x0**2*x2**2 + f_x4*x0**3*x2**2)/x0**6" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ode_in_x.simplify()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{9 x_{0}^{2} x_{2} - 15 x_{2}^{3}}{x_{0}^{6}}$" - ], - "text/plain": [ - "(9*x0**2*x2 - 15*x2**3)/x0**6" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sp.poly(ode_in_x, list(f_x_derivs)).coeffs()[0].simplify()" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "def generate_partitions(n):\n", - " \"\"\"\n", - " Generates all integer partitions of n.\n", - "\n", - " Args:\n", - " n: The integer to partition.\n", - "\n", - " Returns:\n", - " A list of lists, where each inner list is a partition of n.\n", - " \"\"\"\n", - " if n == 0:\n", - " return [[]]\n", - " \n", - " partitions = []\n", - " for i in range(1, n + 1):\n", - " for p in generate_partitions(n - i):\n", - " if not p or i <= p[0]:\n", - " temp = [i] + p\n", - " if np.all(np.array(temp) <= 2):\n", - " partitions.append([i] + p)\n", - " return partitions" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [], - "source": [ - "nx = 3\n", - "ny = 3\n", - "all_nx = generate_partitions(nx)\n", - "all_ny = generate_partitions(ny)" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [], - "source": [ - "r = var[0]**2 + var[1]**2" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [], - "source": [ - "sum = np.zeros(nx+ny+1) * var[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [], - "source": [ - "for i_x in all_nx:\n", - " for i_y in all_ny:\n", - " k = len(i_x) + len(i_y)\n", - " prod = 1\n", - " for i in i_x:\n", - " prod *= sp.diff(r, var[0], i)\n", - " for j in i_y:\n", - " prod *= sp.diff(r, var[1], j)\n", - " sum[k] += prod" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0, 0, 0, 0, 16*x0*x1, 32*x0**3*x1 + 32*x0*x1**3, 64*x0**3*x1**3],\n", - " dtype=object)" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sum" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0, 0, 0, 0, 16*x0*x1/(x0**2 + x1**2)**8,\n", - " (32*x0**3*x1 + 32*x0*x1**3)/(x0**2 + x1**2)**10,\n", - " 64*x0**3*x1**3/(x0**2 + x1**2)**12], dtype=object)" - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "factors = sum/np.array([r**(2*i) for i in range(len(sum))])\n", - "factors" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "inteq", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 237ab95059d74fafec0588f91ead54e42673fb11 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 11 Apr 2025 19:08:50 -0500 Subject: [PATCH 178/193] Update plotting.py --- test/plotting.py | 62 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/test/plotting.py b/test/plotting.py index 4b3a9c475..1cde58139 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -170,7 +170,7 @@ def generate_true(i): interactions_off_axis = interactions_off_axis.reshape(coord[0].shape) - interactions_total = np.zeros(coord[0].shape) + interactions_total = interactions_on_axis * 0 interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] @@ -186,25 +186,42 @@ def create_logarithmic_mesh(res): return mesh_points, x_grid, y_grid -def create_plot(relerr_on, str_title): - fig, ax = plt.subplots(1, 1, figsize=(15, 8)) - +def create_plot(relerr_on, ax, str_title, acbar=True): n_levels = 18 levels = 10**np.linspace(-n_levels+2, 1, n_levels) cs = ax.contourf(x_grid, y_grid, relerr_on.reshape(res, res), locator=ticker.LogLocator(), cmap=cm.coolwarm, levels=levels, extend="both") - cbar = fig.colorbar(cs) - - cbar.set_ticks(levels) - cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) + if acbar: + cbar = fig.colorbar(cs) + cbar.set_ticks(levels) + cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) ax.set_xscale('log') ax.set_yscale('log') ax.set_xlabel("$x_1$-coordinate", fontsize=15) ax.set_ylabel("$x_2$-coordinate", fontsize=15) - plt.title(str_title) + ax.set_title(str_title) + + return cs + +def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): + fig, (ax1,ax2,ax3) = plt.subplots(1, 3, figsize=(15, 8)) + cs = create_plot(relerr_on, ax1, "On-Axis Recurrence", False) + cs = create_plot(relerr_off, ax2, "Off-Axis Recurrence ($p_{offaxis}=8$)", False) + cs = create_plot(relerr_comb, ax3, "On/Off-Axis Recurrence ($m=100$)", False) + + n_levels = 18 + levels = 10**np.linspace(-n_levels+2, 1, n_levels) + + + fig.subplots_adjust(wspace=0.3, hspace=0.5) + + cbar = fig.colorbar(cs, ax=[ax1,ax2,ax3], shrink=0.9, location='bottom') + cbar.set_ticks(levels) + cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) + fig.suptitle(str_title, fontsize=16) #========================= DEFINE PLOT RESOLUTION ==================================== -res = 8 +res = 32 mesh_points, x_grid, y_grid = create_logarithmic_mesh(res) #========================= DEFINE GREEN'S FUNCTIONS/PDE's ==================================== @@ -231,23 +248,28 @@ def create_plot(relerr_on, str_title): helmholtz2d = laplacian(w) + w g_x_y_helmholtz = (1j/4) * hankel1(0, k * abs_dist) #========================= LAPLACE 2D ==================================== -#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 9) +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 9,m=1e2/2) -#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -#plt.figure(1) -#create_plot(relerr_on, "Laplace (2D): On-Axis Recurrence, 9th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") +relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) + +create_suite_plot(relerr_on, relerr_off, relerr_comb, "Laplace 2D: 9th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") #========================= HELMOLTZ 2D ==================================== -#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, helmholtz2d, g_x_y_helmholtz, 9) +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, helmholtz2d, g_x_y_helmholtz, 8) -#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -#create_plot(relerr_on, "Helmholtz (2D): On-Axis Recurrence, 8th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") +relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) + +create_suite_plot(relerr_on, relerr_off, relerr_comb, "Helmholtz 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") #======================== BIHARMONIC 2D =================================== -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 7) +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 7) -relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -create_plot(relerr_on, "Biharmonic (2D): On-Axis Recurrence, 8th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#create_plot(relerr_on, "Biharmonic (2D): On-Axis Recurrence, 8th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") plt.show() \ No newline at end of file From 0614ff13a72691b198b56ad692f7792aac8030cc Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 12 Apr 2025 10:57:38 -0500 Subject: [PATCH 179/193] Need to debug taylor_recur start order --- test/biharmonic.ipynb | 45 +++--- test/investigate_normal_recurrence.ipynb | 174 +++++++++++++---------- test/plotting.py | 39 ++--- 3 files changed, 138 insertions(+), 120 deletions(-) diff --git a/test/biharmonic.ipynb b/test/biharmonic.ipynb index 39e01d8cd..da9691eb2 100644 --- a/test/biharmonic.ipynb +++ b/test/biharmonic.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -32,13 +32,14 @@ "abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)\n", "w = make_identity_diff_op(2)\n", "\n", - "partial_1x = DerivativeIdentifier((4,0), 0)\n", - "partial_1y = DerivativeIdentifier((0,4), 0)\n", - "biharmonic_op = {partial_1x: 1, partial_1y: 1}\n", + "partial_4x = DerivativeIdentifier((4,0), 0)\n", + "partial_4y = DerivativeIdentifier((0,4), 0)\n", + "partial_2x2y = DerivativeIdentifier((2,2), 0)\n", + "biharmonic_op = {partial_4x: 1, partial_4y: 1, partial_2x2y:2}\n", "list_pde = immutabledict(biharmonic_op)\n", "\n", "biharmonic_pde = LinearPDESystemOperator(2, (list_pde,))\n", - "g_x_y = abs_dist**2 * (sp.log(abs_dist)-1)\n", + "g_x_y = abs_dist**2 * (sp.log(abs_dist))\n", "\n", "n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(biharmonic_pde)\n", "\n", @@ -55,7 +56,7 @@ "s = sp.Function(\"s\")\n", "\n", "# pylint: disable-next=not-callable\n", - "subs_dict = {s(0): derivs[0], s(1): derivs[1], s(2): derivs[1], s(3): derivs[1]}\n", + "subs_dict = {s(0): derivs[0], s(1): derivs[1], s(2): derivs[2], s(3): derivs[3]}\n", "check = []\n", "\n", "assert n_init == 4\n", @@ -68,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -81,52 +82,48 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 16.9964566798618$" + "$\\displaystyle -0.00388859878925869$" ], "text/plain": [ - "16.9964566798618" + "-0.00388859878925869" ] }, - "execution_count": 14, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "r.subs(n, 4).subs(subs_dict).subs({var[0]: 1.2, var[1]: 2.3})" + "r.subs(n, 4).subs(subs_dict).subs({var[0]: 23, var[1]: 2.3})" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { + "text/latex": [ + "$\\displaystyle - \\frac{\\left(- 2 x_{0}^{2} + 6 x_{1}^{2}\\right) s{\\left(3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{\\left(- x_{0}^{4} + 6 x_{0}^{2} x_{1}^{2} + 15 x_{1}^{4}\\right) s{\\left(1 \\right)}}{x_{0}^{7} + 2 x_{0}^{5} x_{1}^{2} + x_{0}^{3} x_{1}^{4}} + \\frac{\\left(x_{0}^{4} - 6 x_{0}^{2} x_{1}^{2} - 15 x_{1}^{4}\\right) s{\\left(2 \\right)}}{x_{0}^{6} + 2 x_{0}^{4} x_{1}^{2} + x_{0}^{2} x_{1}^{4}}$" + ], "text/plain": [ - "{s(0): (x0**2 + x1**2)*(log(sqrt(x0**2 + x1**2)) - 1),\n", - " s(1): -2*x0*(log(sqrt(x0**2 + x1**2)) - 1) - x0,\n", - " s(2): -2*x0*(log(sqrt(x0**2 + x1**2)) - 1) - x0,\n", - " s(3): -2*x0*(log(sqrt(x0**2 + x1**2)) - 1) - x0,\n", - " s(4): 2*(-24*x0**4/(x0**2 + x1**2)**2 + 8*x0**2*(4*x0**2/(x0**2 + x1**2) - 3)/(x0**2 + x1**2) + 12*x0**2/(x0**2 + x1**2) + 3)/(x0**2 + x1**2),\n", - " s(5): -4*x0*(-24*x0**4/(x0**2 + x1**2)**2 + 40*x0**2/(x0**2 + x1**2) - 15)/(x0**2 + x1**2)**2,\n", - " s(6): 12*(-320*x0**6/(x0**2 + x1**2)**3 + 360*x0**4/(x0**2 + x1**2)**2 + 24*x0**2*(16*x0**4/(x0**2 + x1**2)**2 - 20*x0**2/(x0**2 + x1**2) + 5)/(x0**2 + x1**2) - 60*x0**2/(x0**2 + x1**2) - 5)/(x0**2 + x1**2)**2,\n", - " s(7): -48*x0*(-160*x0**6/(x0**2 + x1**2)**3 + 336*x0**4/(x0**2 + x1**2)**2 - 210*x0**2/(x0**2 + x1**2) + 35)/(x0**2 + x1**2)**3}" + "-(-2*x0**2 + 6*x1**2)*s(3)/(x0**3 + x0*x1**2) - (-x0**4 + 6*x0**2*x1**2 + 15*x1**4)*s(1)/(x0**7 + 2*x0**5*x1**2 + x0**3*x1**4) + (x0**4 - 6*x0**2*x1**2 - 15*x1**4)*s(2)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4)" ] }, - "execution_count": 6, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "subs_dict" + "r.subs(n, 4)" ] }, { diff --git a/test/investigate_normal_recurrence.ipynb b/test/investigate_normal_recurrence.ipynb index 2e6f9b70e..737770afa 100644 --- a/test/investigate_normal_recurrence.ipynb +++ b/test/investigate_normal_recurrence.ipynb @@ -6,7 +6,7 @@ "metadata": {}, "outputs": [], "source": [ - "from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence\n", + "from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence, pde_to_ode_in_r, ode_in_r_to_x\n", "\n", "from sumpy.expansion.diff_op import (\n", " laplacian,\n", @@ -44,6 +44,52 @@ "cell_type": "code", "execution_count": 4, "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{f_{r1}}{\\sqrt{x_{0}^{2} + x_{1}^{2}}} + f_{r2}$" + ], + "text/plain": [ + "f_r1/sqrt(x0**2 + x1**2) + f_r2" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pde_to_ode_in_r(laplace2d)[0].simplify()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{f_{x1}}{x_{0}} - \\frac{f_{x1} x_{1}^{2}}{x_{0}^{3}} + f_{x2} + \\frac{f_{x2} x_{1}^{2}}{x_{0}^{2}}$" + ], + "text/plain": [ + "f_x1/x0 - f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ode_in_r_to_x(pde_to_ode_in_r(laplace2d)[0].simplify(), _make_sympy_vec(\"x\",2), 2).simplify()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, "outputs": [], "source": [ "var = _make_sympy_vec(\"x\", 2)\n", @@ -54,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -73,26 +119,26 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "def compute_rel_err(nsub):\n", + "def compute_rel_err(nsub, coord_dict):\n", " return abs((recur_laplace.subs(n, nsub).subs(derivs_laplace_dict).subs(coord_dict) - derivs_laplace[nsub].subs(coord_dict))/derivs_laplace[nsub].subs(coord_dict))" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[65918122382643.5, 3736357179460.05, -70531899831909.1]\n", - "ratio: 17.6423503472892 ||||| digits: 1.2465564421825692 |||| pred error: 1e-14\n", - "rel. error: 6.53883308254424e-15\n" + "[175427687040715., -4214735553825.07, -180235499771889.]\n", + "ratio: 41.6224659413107 ||||| digits: 1.619327806605522 |||| pred error: 1e-14\n", + "rel. error: 4.32943097294895e-16\n" ] } ], @@ -105,12 +151,12 @@ "print(coeffs_sub)\n", "ratio = np.abs(coeffs_sub[0]/coeffs_sub[1])\n", "print(\"ratio: \", ratio, \"||||| digits: \",np.log10(float(ratio)), \"|||| pred error: 1e-\"+str(int(16-np.ceil(np.log10(float(ratio))))))\n", - "print(\"rel. error: \", compute_rel_err(nsub))" + "print(\"rel. error: \", compute_rel_err(nsub, coord_dict))" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -119,11 +165,11 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ - "nsub = 5\n", + "nsub = 11\n", "coord_dict_var = {var[0]: var[0], var[1]: c*var[0]}\n", "recur_coeffs_lap_var = sp.poly(recur_laplace.subs(n, nsub), [s(i) for i in range(nsub - order_lap, nsub)]).coeffs()\n", "#[i+nsub-order_lap for i in range(len(recur_coeffs_lap))]\n", @@ -132,123 +178,95 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "rat = 100" - ] - }, - { - "cell_type": "code", - "execution_count": 11, + "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle 17.6423503472892$" + "$\\displaystyle \\frac{4 \\left(- c^{10} + 27 c^{8} - 42 c^{6} - 42 c^{4} + 27 c^{2} - 1\\right)}{13 \\left(9 c^{8} - 84 c^{6} + 126 c^{4} - 36 c^{2} + 1\\right)}$" ], "text/plain": [ - "17.6423503472892" + "4*(-c**10 + 27*c**8 - 42*c**6 - 42*c**4 + 27*c**2 - 1)/(13*(9*c**8 - 84*c**6 + 126*c**4 - 36*c**2 + 1))" ] }, - "execution_count": 11, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "(coeffs_sub[0]/coeffs_sub[1]).subs(var[0], 1).subs(c, rat).evalf()" + "(coeffs_sub_var[0]/coeffs_sub_var[1]).subs(var[0], 1).simplify()" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 27, "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle -0.0529740045052592$" - ], - "text/plain": [ - "-0.0529740045052592" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "list_of_points = [{var[0]: 0.746, var[1]: 10**(pw) * 0.374} for pw in range(1, 10)]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], "source": [ - "(coeffs_sub[1]/coeffs_sub[2]).subs(var[0], 1).subs(c, rat).evalf()" + "errors = np.array([compute_rel_err(nsub,l) for l in list_of_points], dtype='float')" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "c_errors = np.array([10**(pw) for pw in range(1, 10)])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, "metadata": {}, "outputs": [ { "data": { - "text/latex": [ - "$\\displaystyle -0.93458594678066$" - ], "text/plain": [ - "-0.934585946780660" + "array([ 2.04441915, -17.78662827])" ] }, - "execution_count": 13, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "(coeffs_sub[0]/coeffs_sub[2]).subs(var[0], 1).subs(c, rat).evalf()" + "bf = np.polyfit(np.log10(c_errors), np.log10(errors),1)\n", + "bf" ] }, { "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "coord_dict = {var[0]: 0.00001 * np.random.rand(), var[1]: np.random.rand()}" - ] - }, - { - "cell_type": "code", - "execution_count": 35, + "execution_count": 31, "metadata": {}, "outputs": [ { "data": { + "image/png": "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", "text/plain": [ - "[-0.0490151442862209,\n", - " -9.77335966708505e-6,\n", - " 1.10299619259162,\n", - " 6.46798710134741e-5,\n", - " -7.29960360270111,\n", - " -0.00142683302922121,\n", - " 161.028699512589,\n", - " 0.0660992387337400,\n", - " -7459.78977558321,\n", - " -5.24931902175414,\n", - " 592424.619019301,\n", - " 636.897678158905,\n", - " -71878630.7848488,\n", - " -109589.331339494,\n", - " 12367969523.4590]" + "
" ] }, - "execution_count": 35, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "[derivs_laplace[i].subs(coord_dict) for i in range(0,l_max)]" + "plt.loglog(c_errors, errors,label='Relative Error')\n", + "plt.loglog(c_errors, 10**bf[1] * (c_errors**bf[0]), color='r')\n", + "plt.show()" ] }, { diff --git a/test/plotting.py b/test/plotting.py index 1cde58139..fc8156101 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -95,7 +95,7 @@ def gen_lamb_expr_t_recur(i, start_order): for j in range(ndim): arg_list.append(var[j]) - if i < start_order: + if i < start_order+4: lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) @@ -232,12 +232,12 @@ def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) w = make_identity_diff_op(2) -partial_1x = DerivativeIdentifier((4,0), 0) -partial_1y = DerivativeIdentifier((0,4), 0) -biharmonic_op = {partial_1x: 1, partial_1y: 1} +partial_4x = DerivativeIdentifier((4,0), 0) +partial_4y = DerivativeIdentifier((0,4), 0) +partial_2x2y = DerivativeIdentifier((2,2), 0) +biharmonic_op = {partial_4x: 1, partial_4y: 1, partial_2x2y:2} list_pde = immutabledict(biharmonic_op) - biharmonic_pde = LinearPDESystemOperator(2, (list_pde,)) g_x_y_biharmonic = abs_dist**2 * sp.log(abs_dist) @@ -248,28 +248,31 @@ def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): helmholtz2d = laplacian(w) + w g_x_y_helmholtz = (1j/4) * hankel1(0, k * abs_dist) #========================= LAPLACE 2D ==================================== -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 9,m=1e2/2) +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 10,m=1e2/2) -relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) -relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +#relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) -create_suite_plot(relerr_on, relerr_off, relerr_comb, "Laplace 2D: 9th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") +#create_suite_plot(relerr_on, relerr_off, relerr_comb, "Laplace 2D: 9th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") #========================= HELMOLTZ 2D ==================================== -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, helmholtz2d, g_x_y_helmholtz, 8) +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, helmholtz2d, g_x_y_helmholtz, 8) -relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) -relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +#relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) -create_suite_plot(relerr_on, relerr_off, relerr_comb, "Helmholtz 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") +#create_suite_plot(relerr_on, relerr_off, relerr_comb, "Helmholtz 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") #======================== BIHARMONIC 2D =================================== -#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 7) +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 7) -#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -#create_plot(relerr_on, "Biharmonic (2D): On-Axis Recurrence, 8th Order Derivative Evaluation Error $(u_{recur}-u_{sym})/u_{sym}$") +relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) + +create_suite_plot(relerr_on, relerr_off+1e-20, relerr_comb+1e-20, "Biharmonic 2D: 7th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") plt.show() \ No newline at end of file From fa7c8e092cea49fadafbc97c7c4a4dfd29f0cb2a Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 13 Apr 2025 20:26:04 -0500 Subject: [PATCH 180/193] Created plots for recurrenceqbx --- sumpy/recurrence.py | 11 +-- sumpy/recurrence_qbx.py | 39 +++++----- test/investigate_normal_recurrence.ipynb | 93 ++++++++++++++++-------- test/plotting.py | 8 +- test/test_recurrence.py | 88 ++++++++++++++++++---- test/test_recurrence_qbx.py | 22 ++++-- 6 files changed, 178 insertions(+), 83 deletions(-) diff --git a/sumpy/recurrence.py b/sumpy/recurrence.py index 6a1d5939a..5f29bd454 100644 --- a/sumpy/recurrence.py +++ b/sumpy/recurrence.py @@ -374,7 +374,7 @@ def _get_initial_order_off_axis(recurrence): i = 0 r_c = recurrence.subs(n, i) - while _check_neg_ind(r_c) or r_c == 0: + while (_check_neg_ind(r_c) or r_c == 0) or i % 2 != 0: i += 1 r_c = recurrence.subs(n, i) return i @@ -455,15 +455,6 @@ def get_reindexed_and_center_origin_off_axis_recurrence(pde: LinearPDESystemOper """ var = _make_sympy_vec("x", 1) r_exp = _move_center_origin_source_arbitrary_expression(pde).subs(var[0], 0) - - var = _make_sympy_vec("x", 2) - var_t = _make_sympy_vec("t", 2) - g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)) - derivs = [sp.diff(g_x_y, - var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) - for i in range(8)] - - recur_order, recur = reindex_recurrence_relation(r_exp) start_order = _get_initial_order_off_axis(recur) return start_order, recur_order, recur diff --git a/sumpy/recurrence_qbx.py b/sumpy/recurrence_qbx.py index d33884347..842244aca 100644 --- a/sumpy/recurrence_qbx.py +++ b/sumpy/recurrence_qbx.py @@ -77,7 +77,7 @@ def _compute_rotated_shifted_coordinates( # ================ Recurrence LP Eval ================= def recurrence_qbx_lp(sources, centers, normals, strengths, radius, pde, g_x_y, - ndim, p) -> np.ndarray: + ndim, p, off_axis_start=0) -> np.ndarray: r""" A function that computes a single-layer potential using a recurrence. @@ -130,8 +130,9 @@ def generate_lamb_expr(i, n_initial): #print(lamb_expr_symb) return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) - interactions_on_axis = 0 + coord = [cts_r_s[j] for j in range(ndim)] + interactions_on_axis = coord[0] * 0 for i in range(p+1): lamb_expr = generate_lamb_expr(i, n_initial) a = [*storage, *coord] @@ -156,6 +157,8 @@ def generate_lamb_expr(i, n_initial): t_exp, t_exp_order, _ = get_off_axis_expression(pde, 8) storage_taylor_order = max(t_recur_order, t_exp_order+1) + start_order = max(start_order, order) + storage_taylor = [np.zeros((n_p, n_p))] * storage_taylor_order def gen_lamb_expr_t_recur(i, start_order): arg_list = [] @@ -210,6 +213,7 @@ def gen_lamb_expr_t_exp(i, t_exp_order, start_order): ################ # Compute True Interactions + ''' storage_taylor_true = [np.zeros((n_p, n_p))] * storage_taylor_order def generate_true(i): arg_list = [] @@ -231,6 +235,7 @@ def generate_true(i): a4 = [*coord] s_new_true = lamb_expr_true(*a4) interactions_true += s_new_true * radius**i/math.factorial(i) + ''' ############### #slope of line y = mx @@ -238,25 +243,25 @@ def generate_true(i): mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) - print("-------------------------") + #print("-------------------------") - percent_on = np.sum(mask_on_axis)/(mask_on_axis.shape[0]*mask_on_axis.shape[1]) - percent_off = 1-percent_on + #percent_on = np.sum(mask_on_axis)/(mask_on_axis.shape[0]*mask_on_axis.shape[1]) + #percent_off = 1-percent_on - relerr_on = np.abs(interactions_on_axis[mask_on_axis]-interactions_true[mask_on_axis])/np.abs(interactions_on_axis[mask_on_axis]) - print("MAX ON AXIS ERROR(", percent_on, "):", np.max(relerr_on)) - print(np.mean(relerr_on)) - print("X:", coord[0][mask_on_axis].reshape(-1)[np.argmax(relerr_on)]) - print("Y:", coord[1][mask_on_axis].reshape(-1)[np.argmax(relerr_on)]) + #relerr_on = np.abs(interactions_on_axis[mask_on_axis]-interactions_true[mask_on_axis])/np.abs(interactions_on_axis[mask_on_axis]) + #print("MAX ON AXIS ERROR(", percent_on, "):", np.max(relerr_on)) + #print(np.mean(relerr_on)) + #print("X:", coord[0][mask_on_axis].reshape(-1)[np.argmax(relerr_on)]) + #print("Y:", coord[1][mask_on_axis].reshape(-1)[np.argmax(relerr_on)]) - print("-------------------------") + #print("-------------------------") - if np.any(mask_off_axis): - relerr_off = np.abs(interactions_off_axis[mask_off_axis]-interactions_true[mask_off_axis])/np.abs(interactions_off_axis[mask_off_axis]) - print("MAX OFF AXIS ERROR(", percent_off, "):", np.max(relerr_off)) - print(np.mean(relerr_off)) - print("X:", coord[0][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) - print("Y:", coord[1][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) + #if np.any(mask_off_axis): + # relerr_off = np.abs(interactions_off_axis[mask_off_axis]-interactions_true[mask_off_axis])/np.abs(interactions_off_axis[mask_off_axis]) + # print("MAX OFF AXIS ERROR(", percent_off, "):", np.max(relerr_off)) + # print(np.mean(relerr_off)) + # print("X:", coord[0][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) + # print("Y:", coord[1][mask_off_axis].reshape(-1)[np.argmax(relerr_off)]) interactions_total = np.zeros(coord[0].shape) interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] diff --git a/test/investigate_normal_recurrence.ipynb b/test/investigate_normal_recurrence.ipynb index 737770afa..e217591c7 100644 --- a/test/investigate_normal_recurrence.ipynb +++ b/test/investigate_normal_recurrence.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -42,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -54,7 +54,7 @@ "f_r1/sqrt(x0**2 + x1**2) + f_r2" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -77,7 +77,7 @@ "f_x1/x0 - f_x1*x1**2/x0**3 + f_x2 + f_x2*x1**2/x0**2" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -88,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -100,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -129,16 +129,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[175427687040715., -4214735553825.07, -180235499771889.]\n", - "ratio: 41.6224659413107 ||||| digits: 1.619327806605522 |||| pred error: 1e-14\n", - "rel. error: 4.32943097294895e-16\n" + "[62589959594642.0, 17776743927062.7, -73824491792606.5]\n", + "ratio: 3.52088998139626 ||||| digits: 0.546652454715453 |||| pred error: 1e-15\n", + "rel. error: 3.58250404763811e-15\n" ] } ], @@ -156,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -165,7 +165,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -178,7 +178,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -190,7 +190,7 @@ "4*(-c**10 + 27*c**8 - 42*c**6 - 42*c**4 + 27*c**2 - 1)/(13*(9*c**8 - 84*c**6 + 126*c**4 - 36*c**2 + 1))" ] }, - "execution_count": 26, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -201,43 +201,57 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ - "list_of_points = [{var[0]: 0.746, var[1]: 10**(pw) * 0.374} for pw in range(1, 10)]" + "def create_list_of_points(param):\n", + " list_of_points = [{var[0]: param, var[1]: 10**(pw) * param} for pw in range(1, 10)]\n", + " return list_of_points" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ - "errors = np.array([compute_rel_err(nsub,l) for l in list_of_points], dtype='float')" + "long_list_points = []\n", + "n_p = 1\n", + "for i in range(n_p):\n", + " long_list_points += create_list_of_points(np.random.rand())" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ - "c_errors = np.array([10**(pw) for pw in range(1, 10)])" + "errors = np.array([compute_rel_err(nsub,l) for l in long_list_points], dtype='float')" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "c_errors = np.array([10**(pw) for pw in range(1, 10)]*n_p)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([ 2.04441915, -17.78662827])" + "array([ 2.02429577, -17.42652671])" ] }, - "execution_count": 30, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -249,14 +263,24 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 42, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", "text/plain": [ - "
" + "Text(0.5, 1.0, 'Relative error in derivative evaluation using recurrence expression when $c \\\\gg 1$')" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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NgzDMDZs2GAAxuLFiwt8rLCwMOPtt9/Onq5du7bRr1+/7Om4uDgDMF588cXsed9//70BGHFxcYZhGEb//v2Nhx56KMd6t2zZYnh4eBjnz5/PXu+UKVNyLGPv/bp3737FMSQlJRk+Pj7G+++/X+B4RURcifsfYCUiZcLy5cupVKkSGRkZpKen061bN95++20Adu/ezcsvv8yePXtISEggKysLgNjYWMLCwrLX0axZsxzrTElJYezYsSxfvpxjx46RkZHB+fPnc20xbdSoUfbPF7c63njjjbnmxcfHU6NGDXbu3MmhQ4f4+OOPs5cxDIOsrCxiYmK4/vrr8xyjvfe7fByXO3DgAGlpabRr1+6Ky4mIuBoVUxFxC5GRkcycOZNy5coREhJCuXLlALNcRkVFERUVxfz58wkMDCQ2NpaOHTty4cKFHOuoWLFijumnn36aVatWMXnyZBo0aED58uW5++67c93v4mMB2ceD5jXvYiHOysri4YcfZsSIEbnGERoamu8Y7b3f5eO4XPny5a94u4iIq1IxFRG3ULFiRRo0aJBr/q+//sqpU6d4/fXXqVWrFkCuE5Hys2XLFgYNGkSPHj0AOHfuHIcPHy521qZNm/LLL7/kmfcib29vMjMzC30/e1xzzTWUL1+edevWMXTo0GKtS0TEmXTyk4i4tdDQULy9vXn77bf5448/WLp0Ka+88opd923QoAFfffUVe/bs4aeffuL+++/P3upZHM8++yzff/89jz76KHv27OHgwYMsXbqUf/3rX9nL1KlTh82bN3P06FFOnTpl9/3s4evry7PPPsszzzzDvHnz+P333/nhhx/44IMPij02EZGSpGIqIm4tMDCQuXPnsnDhQsLCwnj99deZPHmyXfedMmUKVapUoVWrVkRHR9OxY0eaNm1a7EyNGjVi06ZNHDx4kNtvv52bbrqJF198keDg4Oxlxo0bx+HDh6lfvz6BgYF2389eL774Ik899RQvvfQS119/PX369MlxCS0REVdkM4z/Xd9ERERERMRC2mIqIiIiIi5BxVREREREXIKKqYiIiIi4BBVTEREREXEJKqYiIiIi4hJUTEVERETEJaiYioiIiIhLUDEVEREREZegYioiIiIiLkHFVERERERcgoqpiIiIiLgEFVMRERERcQn/D89sZv6mV/8pAAAAAElFTkSuQmCC", + "text/plain": [ + "
" ] }, "metadata": {}, @@ -264,9 +288,14 @@ } ], "source": [ - "plt.loglog(c_errors, errors,label='Relative Error')\n", - "plt.loglog(c_errors, 10**bf[1] * (c_errors**bf[0]), color='r')\n", - "plt.show()" + "fig, ax = plt.subplots(figsize = (6, 6))\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.scatter(c_errors, errors,label='Relative Error')\n", + "ax.plot(c_errors, 10**bf[1] * (c_errors**bf[0]), color='r')\n", + "ax.set_xlabel(\"Parameter c\")\n", + "ax.set_ylabel(\"Relative error\")\n", + "ax.set_title(\"Relative error in derivative evaluation using recurrence expression when $c \\gg 1$\")" ] }, { diff --git a/test/plotting.py b/test/plotting.py index fc8156101..0548518ac 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -86,6 +86,8 @@ def generate_lamb_expr(i, n_initial): t_exp, t_exp_order, _ = get_off_axis_expression(pde, 8) storage_taylor_order = max(t_recur_order, t_exp_order+1) + start_order = max(start_order, order) + storage_taylor = [np.zeros((1, n_p))] * storage_taylor_order def gen_lamb_expr_t_recur(i, start_order): arg_list = [] @@ -95,7 +97,7 @@ def gen_lamb_expr_t_recur(i, start_order): for j in range(ndim): arg_list.append(var[j]) - if i < start_order+4: + if i < start_order: lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) for j in range(ndim): lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) @@ -267,12 +269,12 @@ def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): #======================== BIHARMONIC 2D =================================== -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 7) +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 12, m=1e2/2) relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) -create_suite_plot(relerr_on, relerr_off+1e-20, relerr_comb+1e-20, "Biharmonic 2D: 7th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") +create_suite_plot(relerr_on+1e-20, relerr_off+1e-20, relerr_comb+1e-20, "Biharmonic 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") plt.show() \ No newline at end of file diff --git a/test/test_recurrence.py b/test/test_recurrence.py index a55287f54..fa9adbee2 100644 --- a/test/test_recurrence.py +++ b/test/test_recurrence.py @@ -139,15 +139,14 @@ def test_biharmonic2d(): var = _make_sympy_vec("x", 2) var_t = _make_sympy_vec("t", 2) abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) - w = make_identity_diff_op(2) - - partial_1x = DerivativeIdentifier((4,0), 0) - partial_1y = DerivativeIdentifier((0,4), 0) - biharmonic_op = {partial_1x: 1, partial_1y: 1} + partial_4x = DerivativeIdentifier((4,0), 0) + partial_4y = DerivativeIdentifier((0,4), 0) + partial_2x2y = DerivativeIdentifier((2,2), 0) + biharmonic_op = {partial_4x: 1, partial_4y: 1, partial_2x2y:2} list_pde = immutabledict(biharmonic_op) - biharmonic_pde = LinearPDESystemOperator(2, (list_pde,)) - g_x_y = abs_dist**2 * (sp.log(abs_dist)-1) + + g_x_y = abs_dist**2 * (sp.log(abs_dist)) n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(biharmonic_pde) @@ -156,7 +155,7 @@ def test_biharmonic2d(): for i in range(8)] x_coord = np.random.rand() # noqa: NPY002 - y_coord = np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() * 1e-3 # noqa: NPY002 coord_dict = {var[0]: x_coord, var[1]: y_coord} derivs = [d.subs(coord_dict) for d in derivs] @@ -164,7 +163,7 @@ def test_biharmonic2d(): s = sp.Function("s") # pylint: disable-next=not-callable - subs_dict = {s(0): derivs[0], s(1): derivs[1], s(2): derivs[1], s(3): derivs[1]} + subs_dict = {s(0): derivs[0], s(1): derivs[1], s(2): derivs[2], s(3): derivs[3]} check = [] assert n_init == 4 @@ -175,13 +174,13 @@ def test_biharmonic2d(): subs_dict[s(i)] = derivs[i] f2 = sp.lambdify([var[0], var[1]], check[0]) - assert abs(f2(x_coord, y_coord)) <= 1e-13 + assert abs(f2(x_coord, y_coord)) <= 1e-11 f3 = sp.lambdify([var[0], var[1]], check[1]) - assert abs(f3(x_coord, y_coord)) <= 1e-13 + assert abs(f3(x_coord, y_coord)) <= 1e-11 f4 = sp.lambdify([var[0], var[1]], check[2]) - assert abs(f4(x_coord, y_coord)) <= 1e-13 + assert abs(f4(x_coord, y_coord)) <= 1e-11 f5 = sp.lambdify([var[0], var[1]], check[3]) - assert abs(f5(x_coord, y_coord)) <= 1e-12 + assert abs(f5(x_coord, y_coord)) <= 1e-11 test_biharmonic2d() @@ -334,6 +333,69 @@ def test_helmholtz_2d_off_axis(deriv_order, exp_order): #assert relerr <= prederror +def test_helmholtz_2d_off_axis(deriv_order, exp_order): + r""" + Tests off-axis recurrence code for orders up to 6 laplace2d. + """ + w = make_identity_diff_op(2) + helmholtz2d = laplacian(w) + w + + n = sp.symbols("n") + s = sp.Function("s") + + var = _make_sympy_vec("x", 2) + var_t = _make_sympy_vec("t", 2) + abs_dist = sp.sqrt((var[0]-var_t[0])**2 + + (var[1]-var_t[1])**2) + g_x_y = abs_dist**2*sp.log(abs_dist) + derivs = [sp.diff(g_x_y, + var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0) + for i in range(6)] + + x_coord = 1e-2 * np.random.rand() # noqa: NPY002 + y_coord = np.random.rand() # noqa: NPY002 + coord_dict = {var[0]: x_coord, var[1]: y_coord} + start_order, recur_order, recur = get_reindexed_and_center_origin_off_axis_recurrence(helmholtz2d) + + ic = [] + #Generate ic + + for i in range(start_order): + ic.append(derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]])) + + n = sp.symbols("n") + for i in range(start_order, 15): + recur_eval = recur.subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).subs(n, i) + for j in range(i-recur_order, i): + recur_eval = recur_eval.subs(s(j), ic[j]) + ic.append(recur_eval) + + ic = np.array(ic) + + #true_ic = np.array([derivs[i].subs(var[0], 0).subs(var[1], coord_dict[var[1]]) for i in range(15)]) + + #assert np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2])) < 1e-8 + #print(np.max(np.abs(ic[::2]-true_ic[::2])/np.abs(true_ic[::2]))) + + # CHECK ACCURACY OF EXPRESSION FOR deriv_order + + exp, exp_range, _ = get_off_axis_expression(helmholtz2d, exp_order) + approx_deriv = exp.subs(n, deriv_order) + for i in range(-exp_range+deriv_order, deriv_order+1): + approx_deriv = approx_deriv.subs(s(i), ic[i]) + + rat = coord_dict[var[0]]/coord_dict[var[1]] + if deriv_order + exp_order % 2 == 0: + prederror = abs((ic[deriv_order+exp_order+2] * coord_dict[var[0]]**(exp_order+2)/math.factorial(exp_order+2)).evalf()) + else: + prederror = abs((ic[deriv_order+exp_order+1] * coord_dict[var[0]]**(exp_order+1)/math.factorial(exp_order+1)).evalf()) + print("PREDICTED ERROR: ", prederror) + relerr = abs(((approx_deriv - derivs[deriv_order])/derivs[deriv_order]).subs(var[0], coord_dict[var[0]]).subs(var[1], coord_dict[var[1]]).evalf()) + print("RELATIVE ERROR: ", relerr) + print("RATIO(x0/x1): ", rat) + #assert relerr <= prederror + + def test_laplace_2d_off_axis(deriv_order, exp_order): r""" Tests off-axis recurrence code for orders up to 6 laplace2d. diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 732622fdb..ebfb0645f 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -98,7 +98,7 @@ def _qbx_lp_general(knl, sources, targets, centers, radius, def _create_ellipse(n_p): h = 9.688 / n_p - radius = 7*h * 1/40 + radius = (h * 1/4) * 1.11 t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) unit_circle_param = np.exp(1j * t) @@ -294,15 +294,21 @@ def _construct_laplace_axis_2d(orders, resolutions): return err import matplotlib.pyplot as plt -orders = [10, 16] +orders = [6, 7, 8, 9] #resolutions = range(200, 800, 200) -resolutions = [400, 800, 1200] +resolutions = [200, 300] err_mat = _construct_laplace_axis_2d(orders, resolutions) +fig, ax = plt.subplots(figsize = (6, 6)) +ax.set_yscale("log") + +orders_fake = [12, 14, 16, 18] + for i in range(len(orders)): - plt.scatter(resolutions, err_mat[i], label="order QBX="+str(orders[i])) -plt.xlabel("Number of Nodes") -plt.ylabel("Relative Error") -plt.title("2D Ellipse LP Eval Error (m=10)") -plt.legend() + ax.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), label="$p_{QBX}$="+str(orders_fake[i])) +ax.set_xlabel("Mesh Resolution ($h$)") +ax.set_ylabel("Relative Error ($L_{\infty}$)") +ax.set_title("Laplace 2D: Ellipse SLP Boundary Evaluation Error $(u_{qbxrec}-u_{qbx})/u_{qbx}$") +ax.legend() plt.show() +#$m=100$, $r=0.28h$ \ No newline at end of file From 19e0c2716bdfb4a75149d7b4bd1984c4df076e49 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 18 Apr 2025 17:21:43 -0500 Subject: [PATCH 181/193] Helmholtz flops --- test/count_flops.ipynb | 264 ++++++++++++++++++ ... investigate_normal_recurrence copy.ipynb} | 0 test/test_recurrence_qbx.py | 3 +- 3 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 test/count_flops.ipynb rename test/{investigate_normal_recurrence.ipynb => investigate_normal_recurrence copy.ipynb} (100%) diff --git a/test/count_flops.ipynb b/test/count_flops.ipynb new file mode 100644 index 000000000..14c3597bf --- /dev/null +++ b/test/count_flops.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " laplacian,\n", + " make_identity_diff_op,\n", + ")\n", + "\n", + "import sympy as sp\n", + "from sympy import hankel1\n", + "\n", + "import numpy as np\n", + "import math\n", + "\n", + "from sympy import count_ops\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm, ticker" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "w = make_identity_diff_op(2)\n", + "helmholtz2d = laplacian(w) + w\n", + "laplace2d = laplacian(w)\n", + "n = sp.symbols(\"n\")\n", + "s = sp.Function(\"s\")\n", + "var = _make_sympy_vec(\"x\", 2)\n", + "n_init_helm, order_helm, recur_helmholtz = get_reindexed_and_center_origin_on_axis_recurrence(helmholtz2d)\n", + "n_init_lap, order_lap, recur_lap = get_reindexed_and_center_origin_on_axis_recurrence(laplace2d)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives_helmholtz(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 +\n", + " (var[1]-var_t[1])**2)\n", + " k = 1\n", + " g_x_y = (1j/4) * hankel1(0, k * abs_dist)\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "l_max_h = 7\n", + "derivs_helmholtz = compute_derivatives_helmholtz(l_max_h)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_derivatives_laplace(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " g_x_y = sp.log(sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "l_max_l = 15\n", + "derivs_laplace = compute_derivatives_laplace(l_max_l)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "from immutabledict import immutabledict\n", + "from sumpy.expansion.diff_op import LinearPDESystemOperator\n", + "from collections import namedtuple\n", + "DerivativeIdentifier = namedtuple(\"DerivativeIdentifier\", [\"mi\", \"vec_idx\"])\n", + "partial_4x = DerivativeIdentifier((4,0), 0)\n", + "partial_4y = DerivativeIdentifier((0,4), 0)\n", + "partial_2x2y = DerivativeIdentifier((2,2), 0)\n", + "biharmonic_op = {partial_4x: 1, partial_4y: 1, partial_2x2y:2}\n", + "list_pde = immutabledict(biharmonic_op)\n", + "biharmonic_pde = LinearPDESystemOperator(2, (list_pde,))\n", + "n_init_bih, order_bih, recur_bih = get_reindexed_and_center_origin_on_axis_recurrence(biharmonic_pde)\n", + "def compute_derivatives_biharmonic(p):\n", + " var = _make_sympy_vec(\"x\", 2)\n", + " var_t = _make_sympy_vec(\"t\", 2)\n", + " abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)\n", + " g_x_y = abs_dist**2 * (sp.log(abs_dist))\n", + " derivs = [sp.diff(g_x_y,\n", + " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", + " for i in range(p)]\n", + " return derivs\n", + "derivs_bih = compute_derivatives_biharmonic(15)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "n_s = 20\n", + "s_vec = _make_sympy_vec(\"s\", n_s)\n", + "subs_dict_s_vec = dict(zip([s(i) for i in range(n_s)], [s_vec[i] for i in range(n_s)]))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "r = sp.symbols(\"r\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def old_expansion_create(start, stop, derivs):\n", + " return sum(derivs[i]*r**i/math.factorial(i) for i in range(start, stop))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def new_expansion_create(start, stop, recur):\n", + " return sum(recur.subs(n,i)*r**i/math.factorial(i) for i in range(start, stop))" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "def get_flops_per_order_lt(l_t_order, derivs, recur, n_init, simplify=True):\n", + " old_exp_flops = []\n", + " new_exp_flops = []\n", + " for i in range(l_t_order):\n", + " if simplify:\n", + " old_exp_flops.append(count_ops((old_expansion_create(0, i+1, derivs)).simplify()))\n", + " new_exp_flops.append(count_ops(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec)).simplify())))\n", + " else:\n", + " old_exp_flops.append(count_ops((old_expansion_create(0, i+1, derivs))))\n", + " new_exp_flops.append(count_ops(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec)))))\n", + " return old_exp_flops, new_exp_flops" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "old_lap_flops, new_lap_flops = get_flops_per_order_lt(10, derivs_laplace, recur_lap, n_init_lap)" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "old_helm_flops, new_helm_flops = get_flops_per_order_lt(7, derivs_helmholtz, recur_helmholtz, n_init_helm, simplify=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 0, 'Line-Taylor Order')" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize = (6, 6))\n", + "ax.set_yscale(\"log\")\n", + "ax.set_xscale(\"log\")\n", + "ax.plot([i for i in range(7)], new_helm_flops, \n", + " marker='o', # marker type\n", + " markerfacecolor='blue', # color of marker\n", + " markersize=12, # size of marker\n", + " color='skyblue', # color of line\n", + " linewidth=4, # change width of line)\n", + " label='Recurrence'\n", + ")\n", + "ax.plot([i for i in range(7)], old_helm_flops, \n", + " marker='o', # no marker\n", + " color='darkred', # color of line\n", + " linewidth=3, # change width of line\n", + " linestyle='dashed', # change type of line\n", + " label=\"No Recurrence\" # label for legend)\n", + ")\n", + "ax.set_xticks([i+1 for i in range(6)])\n", + "ax.set_xticklabels(str(i+1) for i in range(6))\n", + "ax.legend()\n", + "ax.set_title(\"Helmholtz 2D Line-Taylor Flop Comparison\")\n", + "ax.set_ylabel(\"Flop Count\")\n", + "ax.set_xlabel(\"Line-Taylor Order\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/investigate_normal_recurrence.ipynb b/test/investigate_normal_recurrence copy.ipynb similarity index 100% rename from test/investigate_normal_recurrence.ipynb rename to test/investigate_normal_recurrence copy.ipynb diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index ebfb0645f..895a1bcf8 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -308,7 +308,8 @@ def _construct_laplace_axis_2d(orders, resolutions): ax.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), label="$p_{QBX}$="+str(orders_fake[i])) ax.set_xlabel("Mesh Resolution ($h$)") ax.set_ylabel("Relative Error ($L_{\infty}$)") -ax.set_title("Laplace 2D: Ellipse SLP Boundary Evaluation Error $(u_{qbxrec}-u_{qbx})/u_{qbx}$") +plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error $(u_{qbxrec}-u_{qbx})/u_{qbx}$") +ax.set_title("($r=0.28h$, $m=100$, $p_{offaxis}=8$)") ax.legend() plt.show() #$m=100$, $r=0.28h$ \ No newline at end of file From 20980fde46309515b7f35a11fcb6290ab1fa7279 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 20 Apr 2025 19:44:00 -0500 Subject: [PATCH 182/193] Strengths for ellipse incorrect. --- test/biharmonic.ipynb | 7 -- test/test_eigenvalues.ipynb | 127 ++++++++++++++++++++++++++++++++++++ test/test_recurrence_qbx.py | 47 ++++++------- 3 files changed, 152 insertions(+), 29 deletions(-) create mode 100644 test/test_eigenvalues.ipynb diff --git a/test/biharmonic.ipynb b/test/biharmonic.ipynb index da9691eb2..b24a5f359 100644 --- a/test/biharmonic.ipynb +++ b/test/biharmonic.ipynb @@ -125,13 +125,6 @@ "source": [ "r.subs(n, 4)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/test/test_eigenvalues.ipynb b/test/test_eigenvalues.ipynb new file mode 100644 index 000000000..2ad6372e0 --- /dev/null +++ b/test/test_eigenvalues.ipynb @@ -0,0 +1,127 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import sympy as sp\n", + "\n", + "from sumpy.expansion.diff_op import (\n", + " make_identity_diff_op,\n", + ")\n", + "from collections import namedtuple\n", + "DerivativeIdentifier = namedtuple(\"DerivativeIdentifier\", [\"mi\", \"vec_idx\"])\n", + "\n", + "from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence\n", + "\n", + "from immutabledict import immutabledict\n", + "from sumpy.expansion.diff_op import LinearPDESystemOperator" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "from test_recurrence_qbx import _create_ellipse\n", + "n_p = 10000\n", + "sources, centers, normals, density, h, radius = _create_ellipse(n_p)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Define True Solution for Slender Domains, Steinbach\n", + "n = 10\n", + "r = 1/2\n", + "mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n)\n", + "\n", + "phi = sp.symbols(\"phi\")\n", + "jacob = sp.sqrt(4 * sp.sin(phi)**2 + sp.cos(phi)**2)\n", + "\n", + "t = np.linspace(0, 2 * np.pi, n_p, endpoint=False)\n", + "true_sol = mu_n * sp.lambdify(phi, jacob)(t) * density" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "from sumpy.array_context import _acf\n", + "from sumpy.expansion.local import LineTaylorLocalExpansion\n", + "from sumpy.kernel import LaplaceKernel\n", + "from test_recurrence_qbx import _qbx_lp_general\n", + "actx_factory = _acf\n", + "ExpnClass = LineTaylorLocalExpansion\n", + "\n", + "actx = actx_factory()\n", + "lknl2d = LaplaceKernel(2)\n", + "strengths = h * density\n", + "p = 5\n", + "qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers,\n", + " radius, strengths, p)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.plot(t, qbx_res, label=\"qbx\")\n", + "plt.plot(t, true_sol, label=\"true\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "inteq", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 895a1bcf8..4f3338f5e 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -109,8 +109,11 @@ def _create_ellipse(n_p): normals = normals / np.linalg.norm(normals, axis=0) centers = sources - normals * radius - mode_nr = 25 - density = np.cos(mode_nr * t) + phi = sp.symbols("phi") + jacob = sp.sqrt(2**2 * sp.sin(phi)**2 + sp.cos(phi)**2) + + mode_nr = 10 + density = np.cos(mode_nr * t) * sp.lambdify(phi, 1/jacob)(t) return sources, centers, normals, density, h, radius @@ -293,23 +296,23 @@ def _construct_laplace_axis_2d(orders, resolutions): return err -import matplotlib.pyplot as plt -orders = [6, 7, 8, 9] -#resolutions = range(200, 800, 200) -resolutions = [200, 300] -err_mat = _construct_laplace_axis_2d(orders, resolutions) - -fig, ax = plt.subplots(figsize = (6, 6)) -ax.set_yscale("log") - -orders_fake = [12, 14, 16, 18] - -for i in range(len(orders)): - ax.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), label="$p_{QBX}$="+str(orders_fake[i])) -ax.set_xlabel("Mesh Resolution ($h$)") -ax.set_ylabel("Relative Error ($L_{\infty}$)") -plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error $(u_{qbxrec}-u_{qbx})/u_{qbx}$") -ax.set_title("($r=0.28h$, $m=100$, $p_{offaxis}=8$)") -ax.legend() -plt.show() -#$m=100$, $r=0.28h$ \ No newline at end of file +def plot(): + import matplotlib.pyplot as plt + orders = [6, 7, 8, 9] + resolutions = [200, 300] + err_mat = _construct_laplace_axis_2d(orders, resolutions) + + fig, ax = plt.subplots(figsize = (6, 6)) + ax.set_yscale("log") + + orders_fake = [12, 14, 16, 18] + + for i in range(len(orders)): + ax.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), label="$p_{QBX}$="+str(orders_fake[i])) + ax.set_xlabel("Mesh Resolution ($h$)") + ax.set_ylabel("Relative Error ($L_{\infty}$)") + plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error $(u_{qbxrec}-u_{qbx})/u_{qbx}$") + ax.set_title("($r=0.28h$, $m=100$, $p_{offaxis}=8$)") + ax.legend() + plt.show() + #$m=100$, $r=0.28h$ \ No newline at end of file From d34229ecbecf5c28e50d29b4f46e8125668fb469 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sun, 20 Apr 2025 20:24:51 -0500 Subject: [PATCH 183/193] Convergence needeed --- test/test_eigenvalues.ipynb | 16 ++++++++-------- test/test_recurrence_qbx.py | 30 ++++++++++++++++-------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/test/test_eigenvalues.ipynb b/test/test_eigenvalues.ipynb index 2ad6372e0..c546bf093 100644 --- a/test/test_eigenvalues.ipynb +++ b/test/test_eigenvalues.ipynb @@ -23,18 +23,18 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from test_recurrence_qbx import _create_ellipse\n", "n_p = 10000\n", - "sources, centers, normals, density, h, radius = _create_ellipse(n_p)" + "sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p, 1.6)" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -65,20 +65,20 @@ "\n", "actx = actx_factory()\n", "lknl2d = LaplaceKernel(2)\n", - "strengths = h * density\n", - "p = 5\n", + "strengths = jacobs * density\n", + "p = 7\n", "qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers,\n", " radius, strengths, p)" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGdCAYAAAAfTAk2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADa70lEQVR4nOz9eZhcxX0ujr9n6X2dRZqRhAQSGBCWl0TEWNgKJDHC4HhJ7CdeYri+gdwQnIsRwbkB7Jjgn80vGPNVfG3ghuWSzTG5weTGtr4YxY4xMYvNZmMswIB2zWi23vfuc75/VNU5pzU9M71U1Wmg3ufRA+o53VN9VFXnrffz+bwfzbZtGwoKCgoKCgoKryHofg9AQUFBQUFBQYE3FMFRUFBQUFBQeM1BERwFBQUFBQWF1xwUwVFQUFBQUFB4zUERHAUFBQUFBYXXHBTBUVBQUFBQUHjNQREcBQUFBQUFhdccFMFRUFBQUFBQeM3B9HsAfsCyLBw9ehSJRAKapvk9HAUFBQUFBYUuYNs2CoUC1q5dC11fXqN5XRKco0ePYv369X4PQ0FBQUFBQaEPHDp0CCeccMKy17wuCU4ikQBAblAymfR5NAoKCgoKCgrdIJ/PY/369c5zfDm8LgkOC0slk0lFcBQUFBQUFF5l6Ca9RCUZKygoKCgoKLzmoAiOgoKCgoKCwmsOiuAoKCgoKCgovObwuszBUVBQUFBQkAXbttFsNtFqtfweyqsCgUAAhmEM/DmK4CgoKCgoKAhCvV7H1NQUyuWy30N51UDTNJxwwgmIx+MDfY4iOAoKCgoKCgJgWRb27dsHwzCwdu1aBINBZS67AmzbxuzsLA4fPow3vOENAyk5iuAoKCgoKCgIQL1eh2VZWL9+PaLRqN/DedVg1apV2L9/PxqNxkAERyUZKygoKCgoCMRKLQUU2sFL5VJ3XUFBQUFBQeE1BykE59Zbb8XGjRsRDoexdetWPPzww8te/9BDD2Hr1q0Ih8PYtGkTbr/99kXX7Nq1C6eddhoikQjWr1+PnTt3olqtivoKCgoKCgoKChQnnXQSdu3a5fcwloVwgnPvvffiyiuvxHXXXYenn34a27dvxwUXXICDBw92vH7fvn248MILsX37djz99NO49tprccUVV+C+++5zrvnHf/xH/Pmf/zk+97nPYe/evbjrrrtw77334pprrhH9dRQUFBQUFBReBRCeZHzLLbfgkksuwaWXXgqAKC/f/e53cdttt+HGG29cdP3tt9+ODRs2OMxw8+bNeOKJJ3DzzTfjgx/8IADg0UcfxTve8Q587GMfA0CY5Ec/+lH8+Mc/Fv11FBQUFBQUFF4FEKrg1Ot1PPnkk9ixY0fb6zt27MAjjzzS8T2PPvroouvPP/98PPHEE2g0GgCAd77znXjyyScdQvPKK69g9+7deM973tPxM2u1GvL5fNsfEbBtG5/8+lO4/+nDsG1byO9QUFBYHj87nMUdP3wFx/IqZK2g0C9KpRIuvvhixONxrFmzBl/+8pdx7rnn4sorr3SuKRQK+NjHPoZ4PI61a9fif/7P/wkAsCwb9337uwgGg20pKV/+8pcxPj6OqakpKd9BqIIzNzeHVquFiYmJttcnJiYwPT3d8T3T09Mdr282m5ibm8OaNWvwkY98BLOzs3jnO9/pOET+8R//Mf78z/+842feeOON+Mu//Es+X2oZ/OileXznZ1P4zs+mEDINXPimNcJ/p4KCgoupXAUf+ZvHUK638K/PHMG3//s7le+IwtDAtm1UGv64GUcCRk9r4dOf/jT+4z/+A/fffz8mJydx7bXX4sknn8Rb3/pW55ovfelLuPbaa3H99dfju9/9Lnbu3InTTz8dZ5z5TrzhrWfh45f+MS666CL89Kc/xf79+3Hdddfhn/7pn7BmjZxnoxQfnONvqm3by97oTtd7X//BD36AL3zhC7j11ltx1lln4aWXXsKnPvUprFmzBp/97GcXfd4111yDq666yvl7Pp/H+vXr+/4+S+GtG9L44K+egPueOox7HtmvCI6CgmR886kjKNfJA+S5o3k8eSCDM08a9XlUCgoElUYLZ/zFd3353b+44XxEg9098ovFIu666y783d/9Hc477zwAwN/+7d/ihBNOaLvuHe94hyMsnHrqqfjRj36EW275f/ClO98GAPjiF76ACx97GP/tv/03PPfcc7jooovwO7/zOxy/1fIQGqIaHx+HYRiL1JqZmZlFKg3D5ORkx+tN08TY2BgA4LOf/SwuuugiXHrppXjTm96E3/md38EXv/hF3HjjjbAsa9FnhkIhJJPJtj8iEA+ZuGrHqQCAJ/YvoFBtCPk9CgoKnfHgL461/f37z8/4NBIFhVcvXn75ZdTrdWzbts15bXR0FKeddlrbdd6fs7//Yu9eWLaNoKFjIh3DP/zDP+C+++5DpVKRXnUlVMEJBoPYunUr9uzZ08ba9uzZg/e///0d37Nt2zZ861vfanvtwQcfxJlnnolAIAAAKJfLi4yTDMOAbdu+576sS0ewfjSCQwsVPHkgg3NPW+3reBQUXi+oNlr4+ZEcAOCK33oDvvK9X+KJAxmfR6Wg4CISMPCLG8737Xd3Cx7P0XjYhKZpTr7twsICFhYWEIvFBv7sbiG8TPyqq67CnXfeibvvvht79+7Fzp07cfDgQVx22WUASPjo4osvdq6/7LLLcODAAVx11VXYu3cv7r77btx11124+uqrnWve+9734rbbbsM3vvEN7Nu3D3v27MFnP/tZvO997+PSgXRQnHkikcSfPZzzeSQKCq8fvHisgJZlYyQawHvfTMLDPzuchWWphH+F4YCmaYgGTV/+9JJ/c8oppyAQCOCxxx5zXstkMnjxxRfbrvP+nP194ykkihEJGHj55Zexc+dO3HHHHXj729+Oiy++uGOURRSE5+B8+MMfxvz8PG644QZMTU1hy5Yt2L17N0488UQAwNTUVJsnzsaNG7F7927s3LkTX/va17B27Vp85StfcUrEAeAzn/kMNE3DZz7zGRw5cgSrVq3Ce9/7XnzhC18Q/XW6wqkTCQDAizNFn0eioPD6wXNHSXXkG9emsHE8hqCho9qwcCRbwfpR1QdIQaFbxONxXHLJJfj0pz+NsbExTExM4LrrrlsUOfnRj36Em266CR/4wAewZ88e/J//839w69/9MwAgaAAXXXQRduzYgf/6X/8rLrjgArzpTW/Cl7/8ZXz605+W8j2kJBlffvnluPzyyzv+7J577ln02jnnnIOnnnpqyc8zTROf+9zn8LnPfY7XELni1AnS4v2Xxwo+j0RB4fWDF6bJejtjbRKmoWPTqhieny7gpZmiIjgKCj3iS1/6EorFIt73vvchkUjgT//0T5HLtUcl/vRP/xRPPvkk/vIv/xKJRAI3felmvP3XfxMagFtu+v9j//79TsrJ5OQk7rzzTvze7/0ezjvvvLZqLFFQ3cQFgCk4r8yW0LJsGLoqU1VQEI0D8yUAwMZxEuM/ZXUcz08X8OKxAn7jdJULp6DQC+LxOP7+7/8ef//3f++89p3vfMf5//379y96T6nWxMuzRQQMvaMI8f73vx+1Wk3YmI+HarYpAGvTEZi6hnrLUmZjCgqScHChDADYQNWaTZToHKCvKygoiEW9RfJrguZwUIvhGMVrDIauYW06AgA4kq34PBoFhdc+LMvG4QxZa+tHCMFZN0LXYEatQQUFGag3KcExhoNaqBCVIKxLR3BwoYzDmTJ+TRmNKSgIxWyxhlrTgqFrWJMOAwDWpQnRUYcMBQU++MEPfrDszx2CoxSc1zZOUKdHBQVpOETDUGvTYQTo6dGr4Pjtj6Wg8HqAClG9TsA218OK4CgoCAdTaU5Iu9VSa1JEyak0WsiUlau4goJoNKiCExiSENVwjOI1iHUqB0dBQRpYMv9EMuS8Fg4YWJ0gf1dKqoKCWNi2jQY11QwYw1E5rAiOIEwkyelxJi+vJE5B4fUKts5W03XHwFScaVXNqKAgFC3LbZVkKgXntY3V9CQ5W1QER0FBNGYKlOAkQm2vr6J/ny2odaigIBJNqt6Yuga9h7YQIqEIjiCsipONdaFUdzLLFRQUxGCmQBSaVYrgKCj4ggZNMB4W9QZQBEcYRqJBmNTBeL6kNlcFBZFwQlSJ9hDVKvr32aIKUSkoiESj5So4wwJFcARB1zWMUxVH5eEoKIgFC1F5k4wBpeAoKPSLc889F1deeWXX1zet4aqgAhTBEQonD0dtrgoKwlCuN1GsNQEsTjJmoWK1BhUU+MK2bTSbTefvTabgDEkFFaAIjlCwzXVGba4KCsLAFNJo0EA81G7O7ig4KtlfQaFrfOITn8BDDz2Ev/7rv4amadA0Dffccw80TcN3v/tdnHnmmQiFQnj44YfxiU98Ah/4wAecHJyAoePKK6/Eueee63yebdu46aabsGnTJkQiEbzlLW/Bv/zLvwj/HqpVg0CwzZUlQCooKPAHIy/HJxgDblXVbKEG27ahDUl1h8LrFLYNNHxq/hqIAl3O/7/+67/Giy++iC1btuCGG24AADz33HMAgD/7sz/DzTffjE2bNiGdTjvvaS6Tg/OZz3wG3/zmN3HbbbfhDW94A374wx/i4x//OFatWoVzzjlnwC+2NBTBEYhxTyWVgoKCGLD1NRoLLvoZIz3VhoVirYlEOCB1bAoKbWiUgS+u9ed3X3sUCMa6ujSVSiEYDCIajWJychIA8PzzzwMAbrjhBpx33nmL3uMtE/eiVCrhlltuwfe//31s27YNALBp0yb853/+J/7X//pfiuC8WjFCN1xFcBQUxCHDCE50McEJBwxEAgZp11BqKIKjoDAgzjzzzI6vtyjBMY5LMv7FL36BarW6iBTV63X8yq/8iphBUiiCIxAjUbKZZlUfHAUFYWB9ptIdCA5AlJ0j2QoWynVsGIt2vEZBQQoCUaKk+PW7OSAWa1eBdF2HbdsOwTF1DY2G+8yzaHXVd77zHaxbt67tvaHQ4rAyTyiCIxBKwVFQEI9MmYWoOqsz6WgAR7IV5zoFBd+gaV2HifxGMBhEq9Va8bpVq1bh2Wd/DhtUwdE1PPPMMwgEyHo844wzEAqFcPDgQaHhqE5QBEcgmGSuNlYFBXFgIaqlFJwRtg7VQUNBoWucdNJJePzxx7F//37E43FHiTkev/mbv4kvfelL+Na/fANv3fo23HfH/8XPf/5zJ/yUSCRw9dVXY+fOnbAsC+985zuRz+fxyCOPIB6P47/8l/8i7DuoMnGBGFEER0FBOFwFZwmCE2PrUIWKFRS6xdVXXw3DMHDGGWdg1apVOHjwYMfrzj//fPyPa67D//PFz+Gjv/2bKBQKuPjii9uu+fznP4+/+Iu/wI033ojNmzfj/PPPx7e+9S1s3LhR6HdQCo5AjFDJvNqwUKm3EAkaPo9IQeG1B0ZcWM7b8XBz4dRBQ0GhW5x66ql49NFH2177xCc+0fHaaz7zF/joH/8pIgEDb5hILPq5pmm44oorcMUVV4gY6pJQCo5AxEOmUzK3oDZXBQUhYKGnkRVCVCoXTkFBDJwS8SFq0wAogiMUmqa58rjaXBUUhICFqEaWClGpakYFBaFwSsSHqNEmoAiOcKhEYwUFcWhZNrIVFqJaPgdHKTgKCmLQognIw9RJHFAERzjS9PSoEhwVFPgjX2nAJodHZ60dD5Xsr6AgFk2l4Lw+MapCVAoKwsBy2xJhE4El4v+K4CgoiEVriTYNfkMRHMFIqwRHBQVhYJVRS4WnALeaMVNuwGZyj4KCRLzW5x1vBYfX/VIERzBSEbK5FqpNn0eioPDaw0Jp+RJxwD1k1JsWqo3OZmUKCiLA3HzLZZ86iEsC7yTjep0cXAxjMGsV5YMjGMkIucX5qsrBUVDgjTxNME4to+DEggYMXUPLspGvNpQflYI0GIaBdDqNmZkZAEA0GoWmDVcYhwcatRpsy0KrbqKKlds7LAfLsjA7O4toNArTHIyiKIIjGEnavThXUQRHQYE32MEhEV56K9M0DcmwiUy5gXylgYlkWNbwFBQwOTkJAA7JeS1iOluBZQN6McTFC0fXdWzYsGFgMqgIjmCwEFVeERwFBe7IV0jolx0klkIyEiAERympCpKhaRrWrFmD1atXt3XZfq2g0bJw6Td/CAD45h+fvaya2i2CwSB0fXCipAiOYCQZwVE5OAoK3FGghIWFgpcCI0CMECkoyIZhGAPnlAwjKqU6jhRIWGosFR8qN+PhGclrFEkqnSsFR0GBP5gis7KCo3LhFBREgK2pWNAYKnIDSCI4t956KzZu3IhwOIytW7fi4YcfXvb6hx56CFu3bkU4HMamTZtw++23L7omm83ik5/8JNasWYNwOIzNmzdj9+7dor5C33AVHLWxKijwhhui6lbBUetQQYEn2BpMrHDI8APCCc69996LK6+8Etdddx2efvppbN++HRdccMGSrdf37duHCy+8ENu3b8fTTz+Na6+9FldccQXuu+8+55p6vY7zzjsP+/fvx7/8y7/ghRdewB133IF169aJ/jo9g22sxVoTlvXa9kJQUJANR8GJrKDghFWoWEFBBPJdhon9gPAR3XLLLbjkkktw6aWXAgB27dqF7373u7jttttw4403Lrr+9ttvx4YNG7Br1y4AwObNm/HEE0/g5ptvxgc/+EEAwN13342FhQU88sgjjs/AiSeeKPqr9AX2j27bxAsntYxfh4KCQm9g/lLdhqhUNaOCAl8UugwT+wGhCk69XseTTz6JHTt2tL2+Y8cOPPLIIx3f8+ijjy66/vzzz8cTTzzhZKD/27/9G7Zt24ZPfvKTmJiYwJYtW/DFL34RrdZg9fciEDINhAPkNqswlYICX3R7elQhKgUFMXDCxCuoqH5AqIIzNzeHVquFiYmJttcnJiYwPT3d8T3T09Mdr282m5ibm8OaNWvwyiuv4Pvf/z5+//d/H7t378Yvf/lLfPKTn0Sz2cRf/MVfLPrMWq2GWq3m/D2fz3P4dt0jGQ6g2qghV2lgvdTfrKDw2gYjLN2UiQPqkKGgwBtuov/whaikJBkfb9Zj2/ayBj6drve+blkWVq9ejb/5m7/B1q1b8ZGPfATXXXcdbrvtto6fd+ONNyKVSjl/1q+XSzPU5qqgwB+2bTs5NSslOLp+VCoHR0GBJ9gh43WXZDw+Pg7DMBapNTMzM4tUGobJycmO15umibGxMQDAmjVrcOqpp7Z5CmzevBnT09NODwsvrrnmGuRyOefPoUOHBv1qPUFtrgoK/FFptJweOCuGqFSZuIKCELBDxjAmGQslOMFgEFu3bsWePXvaXt+zZw/OPvvsju/Ztm3bousffPBBnHnmmU5C8Tve8Q689NJLsCy3cd6LL76INWvWIBhc7KIYCoWQTCbb/siE44WjNlcFBW5gBwZT1xAJLG+gpnJwFBTEoFsvKj8gPER11VVX4c4778Tdd9+NvXv3YufOnTh48CAuu+wyAERdufjii53rL7vsMhw4cABXXXUV9u7di7vvvht33XUXrr76aueaP/7jP8b8/Dw+9alP4cUXX8R3vvMdfPGLX8QnP/lJ0V+nLyRVuwYFBe7wloiv1LNGOYorKIjB6zbJGAA+/OEPY35+HjfccAOmpqawZcsW7N692ynrnpqaavPE2bhxI3bv3o2dO3fia1/7GtauXYuvfOUrTok4AKxfvx4PPvggdu7ciTe/+c1Yt24dPvWpT+F//I//Ifrr9AV1elRQ4A83wXjlbcy7BlfKAVRQUOgew6zgSAmaXX755bj88ss7/uyee+5Z9No555yDp556atnP3LZtGx577DEewxOOlDo9Kihwh9tJfOWNleUHNC0blUYL0eDw5QsoKLwa4SYZD9+aGq7GEa9RJFQ/KgUF7ij0kNwYCRgwdaLaKLM/BQV+cNfh8Ck4iuBIQJwSnGJNKTgKCrzQrQcOQCwm2EGjqJRUBQVueN374LzeEQ8pgqOgwBv5Lts0MLCDRkGtQwUFLrAs23muKQXndQpGcEpqY1VQ4IZeY//xEG18qxQcBQUuKNSaoD68Kgfn9QpGcNTJUUGBH/I9xv7jIeKVow4aCgp8wBpthkwdIXN5Lyo/oAiOBMRV7F9BgTvY5soOECtBHTQUFPii4LRKGT71BlAERwoSTBpXG6uCAjcwJSbebYgqrEJUCgo84azBLg8ZsqEIjgTEqDRerru9cxQUFAZDqdYC0IuCo0JUCgo8wQ7tMUVwXr/wnjBL9eHbXB9/ZR4/2b/g9zAUhhAH5kv47nPTqDVbfg9lEQo9bq7DXM04X6xh97NTyJWVR49COxotC3t+cQwvzRT9HsoisEPGsBKc4RzVawwh00DQ0FFvWShWm0NlaX3Xf+7D57/9CwDA5z+wBRe9/USfR6QwLHh+Oo/3f/VHqDUtnHvaKvzvT/zaULU4cOXx7pIbWRXVsOXgZMt1vOcr/4npfBWbxmP49hXvVE7LCg6uvPcZfOdnUwgYGv75j7bhVzaM+D0kB8Vab3lwsqEUHEkYRrO/Yq2JXf/+ovP3Wx58AdXG8J3UFfzBlx98EbWmBQD4wQuzeHzfcKl8LsHp7sAQG9IQ1d3/uQ/T+SoA4JW5Eu79ySGfR6QwLHj6YAbf+dkUAKDRsnHLnhdXeIdcFHsME8uGIjiSwDbXwhAlOP7wxVkUqk2cMBLBZDKMTLmBH7ww6/ewFIYAuUoDP3hhBgCw9URyYrz/qSN+DmkR3Ph/dwrOsDoZf4s+wH7tJHqfnx6u+6zgH771UzI3fnVDGgDwny/NYaZQ9XFE7SipHBwFwD1lDtPp8Xt7yQPsgi2TePeWSQDAQy8qgqMA/OCFGTRaNt6wOo4rfusNAICHfzkL2x6OJPlGy3LUpe6TjIcvRPXKbBH75koIGBpu+tBbAADPHslhvljzeWQKw4AHfzENALjsnJOxZV0Stg386KU5n0flotcwsWwogiMJiSFMcPzx/nkAwK+fugq/fuo4AODRl4dn8Sj4hycPZAAA29+wCm87aRRBQ8fRXBUH5ss+j4zAe1Do9vQ4jCGqH9Ow39YTR7BxPIbTJxOwbeCxV4YrHKggH9O5Kg5nKtA14B2njOOdp6wCADzy0rzPI3PRa6K/bCiCwxvVXMeXh83sL1uu49BCBQDw5hPS+JX1RB7fP19WlRwKePpgFgDwqyemEQka2LwmAYCoC8MAdlAImjoCRnfbWGII8+DY/XzL+jQA4FdpOPBnR7I+jUhhWPDMIXLIOG0yiVjIdMJUw7IGgRV8cFpNoOwvUVcEhyfqZeCWNwJ/9wGg2B7qiQ2ZiypbJO8YySH1jQ9g5J8/gLelyWs/Pzo8C6gjCseAf/ggcMdvAdPP+j2a7lDNA/d+HLh9O7D/R36PZllUGy3sncojiAZ+Y+/ngFvPxu/GyX1+7mje59ERsPLUxPEbq2UB/+//AL52FvDM19t+NIy9qNg6/GD+H4Cvvg0fqv9f8vrhIV+DAPD435D7/L0bgCEJXa6IZ/8F+NrbgW9fRR7AQ4ynD2UBAL+Xfh647Z1458+uQRg1vDRTHBrbhiUJzqGfAF/dCuz+tA+jcqEIDk8cegyoF4BX/gPYfXXbjxwPjiHZXH9+JA/Axv/P/gpw4D+BAz/CjfgaAHuoTggd8e2dwEv/Dhx5Avg/nxj6jQoA8O+fA/Z+C5j+GfB//gtQK/g9oiXx0kwRTcvGVZHvILb3n4GZ5/D7h67HKmTw3JCQX1aeukgaf+oe4PHbgdnngf/7SWD2BedHLEQ1LApOo2Xh+akC3qU/iVP3fhWYewG/uvdLOEvbi2eP5IYm36kjDv0E+H8/Te7zw18Gnvum3yNaGfMvA/dfBszuBZ64C/jJHX6PaFnsnSpgBHn8/qHrgWPPIvrCN/Fn4X9F07Lx4vRweOJ0NPprVIF/vgjI7Af2/dDXvU4RHJ44+TeBS/aQ///FvwK5w86PmDw+LEZ/L88W8RbtZWys7nVeO7n6c2zR9uGXx4Zj8XREZj/wwm737/MvAS9/z7fhdIVKFnjmn9y/l2aBnw/vA+GlmSICaOIj2oPOa2arig8bPxiauVHsZDBm28Dj/8vzdwv4sfsQYy1Tak0LdZqg7CcOZyqotyxcEvhu2+v/NfBdFKpNHMsPcaLxj/+m/e/e+z6sePJ/A5Yn/P747UOtPL08U8QHjYcRbLpr7ve07yGIBl44NhwHpI5u4nu/BRSmgOQ64E9+DIQSPo1OERz+WP82YMM28v97v+W87DT6GxIFZ/9cCe81HiV/edPvAWd8AADw28bjeGVuOB5iHfHcvwKwgY3nAGddRl+7388RrYwXHwCaFWDVZuC3/oK8NsRjfmmmiLP0vUhbWSC2GnjvXwMA3mM8hul8FZW6//J4x+qNmb1EUTAjwIf+N3ntuftJ2Art5eTDkGi8f66EMeSwTfs5eeEjhAT/pv4UIqjildkhXYfNGvD8t8n/f+TrADTg0ONtB7qhg227h4oP3gUEYuSwdPRpX4e1FMr1Jo5kK+4e/Z4vA4m1iNtFvFN/FvvnSv4OkKKjgvPz+8h/f/ViIOKvKaEiOCJw+m+T/778H85LsSGroto3V8LZOnEwxmnvBk5/DwBgm/4cXp4pDq88vu+H5L+nXUD+AMArDw31Scwd87uB08h9xsHHyINiCPHSTBFn68+Rv5zyLuD09wIANuuHMIYc9s/7v7kWO8X+2X0+8Wxg83uBQBQoz5GQBADT0BEO6G3v9xOvzJXwdp0qqBNbyHxOrUcQTWzVf4mXh+QhtgiHnwAaZSC2CjjtQmDdVvL6vof9HddyWHgFyB8BjCDZ6zadS15nc2bI8MpsCUkUsUXfT1447ULg1PMBAO/Qn8O+IViDQId12GoCB2iO4anv9mlULhTBEYETzyb/PfSYc3p0ysSr/lco5SoNWKU5nKEfIC+ctB046Z0AgC3aPtjVPOaKdR9HuASadeAgPdFs/HXghLcBegAoHCUb2LCCbaIbfx1YdRp5MDQrwJEn/R3XEnhp1kNwNv46EBsDVr8RAHCWvncoTo8sly3WieBs/HXACAAb3k5fdx+8TqLxEBCcfXPH3WdNc9YhO2gMJbz32TNm7B9igrPvIfLf9WcBgcjQj5moqM/DgAWMvQFIrvXMjV8MxRoEOiQZT/0UqOWBcBqYfJN/A6NQBEcEJt9ETo/VHJHM4ZaJs5iln9g/V8Kb9X3kL2NvAOKryQJKb4Ch2dii7xtOeXz2eXJyDKdIuCcYBda+lfzsyFO+Dm1JFGeA3CEAGiFkmkY2WWAox9yybBydz+EMbT954UQabqVk4c36K0NxeuxYvcEIIwsRs/8ede/zMJWK758r4y36y+QvG467z9oreGVIHmKLsNR9HsL57MAZ89vb/3vkqaFUf1+ZK7lz48T2+3yadhBTcxnfVXbLslGus1w4Gv5l93n9WYDuv/mfIjgiYASANcSVlJUxx4eoTHz/fAmbNareeFn25JsBAGdoB3AoU/FhZCvgGM1VmHgToNOpS8eM6Z/5M6aVwMrYx04GQnHy/8fNjWHCTKGKDdYRBLUW7FASSNPmq2vcuXFgzn+zv2L9OAWnNAcUpwFowARRm9y54d7nYaqkOjSXwxs0mrfC1iFbg/oBHB4CItkRbB2y+0vnBuZeBBpDuG8AwDQbM73Pq88ANAOoLAD5o/6NawkczpSxWTtI/sLuc3It7OgYDM3GCY39vqvs3oIZZx0eo2ttCNQbQBEccVh9BvnvDJGg3Rwc/0NUR7NVbNbZ4tni/sCzuR4ZRoLjbFKeMa9Z/BAbKjikzHuf6eIfwjEfyVQc8qtNbCGKE+CM+Qz9AI5m/Sc4i3rgsHs5utElkuw+z75ASlcxPHYNLctGtLAPIa0JKxh3ieTqzbA1A2NaAY3cUd9P6YtQmicVMgAwQfe4xBogOgbYLZLoPWxoNd1xsXUYCJNwMTC865ClELAxaxo0zx49lfN3j2aHBFPXEDIplei0R/sIRXBEYfVm8l+6sIap0d9UroIzmIIz4VVw6ENMO4DDGf8fYovATgevErIAwB3XZIcxz70wdInGR7KVzuR39RmwNR3jWh71rP8n3kVGf9Md5kZyLRAZJQ9emmg8LDk4c8UaTrP3AwC0iTe6imQgAoyT3l+nWPswO2w9qdgaHNnolv9q2nCvw/lfAq0aEIyTcTMM8ZhzCzNYq1EXYKZIAm179NGsv003nTBx2ISmaZRI0sKVCaXgvLbBJuUx8g8+TFVUM9kCNmrsFOZZPKtPBwBs1KZwNDOE8rhzCvOMeRUZM8pzQCUjf0wr4fiTI0D8IYIJwGqSUtUhwuFMBadph8hfvPc5EEEjSVSGaP4V35WFwvFJxp3us6a5B425lwC4ZeV+l4lP5ao4VSfhKW2i/bSr0TFv0o4On5LaaQ0CJCcOIGRi2MAeuqs3u0QScPeOIRtzs2UhXSTztZlcD4ST7g89c8N/BYfm3wTpGszsB5pVYtMwunHpN0qEIjiiwBZP/jBQLyNOJ0GjZftuMmZlDsDULLSMCDnlMqQ2wNJMhLUGagtD5mlRKxCDPAAYO8V9PRgjEjkAzA9ZJZVtAwssmdszZk0DxjaR/59/Wf64lsHhTAUnasfIX7xjBmCMk7+vaR1FvuIvQXBDVDSRkVXRjZ3cfuEovc8L5D6zZH+//aimshWcqJFO0cffZ4yS77BJm8bhYSM4zn0+bszsvg/bGgS6GPNwrcHpfBXrQeaGQdU8B3RunKQfw1RuSBQcdshg93l001AkGAOK4IhDZAQIpcj/Z/YjEnT/wf02SgvlSXiqkTrRzbEAAMOERXMBosX9aFlDFP9nRCE63n6iAZxFj/mX5I5pJRRngEYJ0HQgvaH9Z0M65ulMAes02lGekQMKRnA2alM46vPpkSU4Optrhs6P48bsPsTIfWanzUrD3zV4NFfFSYxILjHmk7RpHMkOG8FZ4j6zvw/ZfAYALOwn/1005uFcg0c8hwxtrPPcOEGbw+xCVvLI2uGqqPTZ5qzB4VBvAEVwxEHTgNGTyP9n9iFo6gjSrsd+tmuoNloYrR0BAOjHL3i4D7H19hRmCv6eENrgnA46LJ6x9lP60ICNOXkCYIbaf8YevEM25sbCAQS0FlpGCIhPtv/Q8+D1Xx73EJxaESgysnDc/BhtP6VHg8yuwWcFJ1PGBm2G/OX4MVOl4SR9evhy4ZZah2w+Z/YBlv9WGG1gYx45fm7QfaOa9b3rtRdHshWX/B4/5ugYGgGS+2QzQuET3Bwckte27B7tExTBEQlHHicTMUqZbtlHgjOdqzqng8Cqkxf9XGObqzbtexJbG5Y6oQOLHmJDg+VONEM4Ztu2HXWvlTqpPV8BcB5iG4dgbrQZ/bE8psjoYmt4L5G0bee0WfZZRS0sTCOhVWBDcyuoGOjcWKfNY97nU3obWk0gSxPQj1+HqfXEJbhVH76WDUvtHcEoyYcDhmodHs5UsGEpdU/TUE+R/SSc85ngOCoqCxMvs0f7BEVwRIKxb7rAYs7p0b/NdcpDcBbJn4CjhpykHcPsUCo4ncZ8cvs1w4KuxuzvJuVFrtLAGovF/heTX/bgXa/NYNrnUvG2+P9yJ0fnlJ4DKpmhUXC0LPl3r0bXkJJlL6KjaARIGFbPHZA9tKWRP0yaVRohILG2/We6AYycRP5/mNZhveSWtS83P4ZozNO5ytLhSwA63TvS1cO+phE4faiCHXJwhgSK4IgEW1BMwaF5OH6GqI7lqziJJTceL38CQIrkiqzV5oarmzEjAh3HvJ78N39E3ni6wXIPXjbmwlFyMh4CzBRqztwwOpHf5FpY0BHSmqhkpiWPzoVl2Sg5Dqrm8htrIEJaYwBA7vDQKDjRIlFCmqkTF/9Q09BMnAAAMIv+l+Q7cEI9Jy1W94DhXIdM3QungOjo4p+z3LjcIWlDWgnl7CySGj1AjCyeH6Ex8toE5pEp+2f21+ZFZbXce91pj/YJiuCIBDvRZMkpLEoTIss+KjhzhSpOYEmkbHxepMjGulabx7H8ECk49B52HjPdWIvHhstXhsn5ncYcnyB9tGzLPWH6jJl8bfm5YQRQDROyoOX9C0OUPQnC8ZC5/H0GnDmN3GFXwfHxkGHbNpJVQly0JR4GepqMOV6dRrPlb9Wlgx7u89DgVThmI0fGXA2vJgT9OOgjZL9bp81hzkefJBYmjodMoDBN1D3ddO/pEEARHJFg8d38URL/HwIFp5idQUijbsrJtYsvoJNzRCsikx0SXxnLAvKUBKTWLf55dJR4LwDDdXpkFvDJDgte1937PySb60yhikltnvwl2eE+A6jHyOtm0b/7zDZWQ9dId3DnPnces/chxtagn4eMQq2J1Ta5z6Gx9R2vCdBT+hptDvOlIWl8y+5zpzUIuAeNIVJDnP2g0xoEhpLgmCWy17USy9/ntdo8Zgs+Ehy6huJh050biTVDUyIOKIIjFmzDbZTb4v9+yuOtLFnw5cDo4soeAAgnUTdJlr6VHZJFX54jpwNNJ8rH8dC04duoWk1yqgE6E0nA80AYjjHPFGque+oSY7bpfY6W/VOd3Ni/QRxUnYfYyg9epqL6eciYK9SwhhLJwEjnB6/uUVJnhiVU7NznpebzkK1BwEN+Xx1jtiwb0SrJv9FTy495rc8KTluIaqW54ROkEJxbb70VGzduRDgcxtatW/Hww8u3qH/ooYewdetWhMNhbNq0CbfffvuS137jG9+Apmn4wAc+wHnUHBAIkx4tAJA/6sT//Uxw1ApkwVcjk0te04gR4zxjWNQQNo74BGlk2glDtlGhNENaBGgG6dbeCc6Yh+PEO5ctYhw58pclyIJJ5fFk/ZhvbsaLDMZ6eIg5Co6Ph4y5Yh2TKxBJNuZ12tzwhIp7UMqGBivNjaRnDQ5B369MuY7VIOQ3ONpZ3WP3eVQrIpPNShrZYrRVUa10n32CcIJz77334sorr8R1112Hp59+Gtu3b8cFF1yAgwcPdrx+3759uPDCC7F9+3Y8/fTTuPbaa3HFFVfgvvvuW3TtgQMHcPXVV2P79u2iv0b/YP/g+aOeCg7/NtegI3+uWfIadkoPV4YkwbGbxTNsm2s3ku2QjbmWPQJds9HSAi4xPw7hVSR0Mok539yMGTmJhkzSRLNM84a6IDiOguPjIWOuWMMah+AsTxbWYh7HhqWasRc1ZAjIAoAu1D36er1IKu18xkyh5pBfY6lQYDiFqhEDADQW/DscOeswaK58n32CcIJzyy234JJLLsGll16KzZs3Y9euXVi/fj1uu+22jtfffvvt2LBhA3bt2oXNmzfj0ksvxR/8wR/g5ptvbruu1Wrh93//9/GXf/mX2LRpeMrSFoGdEPLe06N/myuTP7VlyEJglFQWpBvHUPXZ8RVAlwRnyOL/3Ui2Q0Zw2H2uRiY6V8kACIy4VXazRX8evGz9RIOGm6BtRhZ74DB0UHBqTcu35N1sNoO0Rnu9rUAWJrUFzOSGxOxvJQUnuRaARvoRleelDWtZrLR3BGPEPwkYinU4U/CS36X3jlKYHFBtH9MI2CEhGnydKjj1eh1PPvkkduzY0fb6jh078Mgjj3R8z6OPPrro+vPPPx9PPPEEGo2G89oNN9yAVatW4ZJLLllxHLVaDfl8vu2PNHgVHJ/j/7ZtI9Ug/ZyCI0vIn3Cl0XU+J7E56OZ0wE47Q7BJAXhVqk5mkap78aXVPfZvQBIc/Ul+ZSfHSOC4jdXbdsQLdsgoTCFquMpC2SfyXs2Q+VzTI0Ao2fmi+CQsGAhoLVQWhkBJreaBGt03l1J/zZAbjh2Gg4Ztd7kOh2fvOJavYhIrqHtw0wj8TPZn7U5etwRnbm4OrVYLExPtiaETExOYnu7sozE9Pd3x+mazibk5IkX/6Ec/wl133YU77rijq3HceOONSKVSzp/165d+uHOHs3iO+F7Bkas0MEHju5Hxpe+BRjewVcgOR/y/m8WToDlFxRnx4+kG3ZAyZ8zHxI+nC0QqZE3qS0njgPNwG0UBc/mijGEtQqXe48YaW0VyoWAjWFtAwCBEyK91aNFE/2JoYmlSZpiohYiyUM8OgY0AU8rCKSAUX/q6YVqH1Swp8ABW2DsoYRuCdTibr3al4Nj0PgcqszKG1RHuQcNcWd3zCVKSjLXjFrFt24teW+l69nqhUMDHP/5x3HHHHRgfH+/q919zzTXI5XLOn0OHJJ4unFLxIyTbHP4pON7Y/1LVGwCABCGYq7Qs5opDUKJ63OIp1pr44u69+PP7fub2RGJ9kwr+GdC14bgHb63Zwl//+y/xp//8U7w0Q4kBG3N5Dmg1OnyIPBRrTYxZKyQ3AkB0DC0Y0DUbpXl/HrxuiKrL2L+uu8pCcdp3LxydJvrXo0sn+gNAI0rGrJeHgCx0uM//8fwM/uTrT+H+pz3KxzCtQ7YGI6OOn8yTBxbwqW88jb99ZL+bJM8qM4eA4BQzx1wbj2XyJM0k+Vmk5h/BcQ4aAY0YlgJDp+CYIj98fHwchmEsUmtmZmYWqTQMk5OTHa83TRNjY2N47rnnsH//frz3ve91fm5ZJJZumiZeeOEFnHxyu818KBRCKNShJFoG2CQtTPnuojqbr+HNKyU3As4mtVrL4qnSMIWoyOK5+p9/igeeI3PkmUNZfOu/vxOBxHFkYalqK1k4juDcuPt53PPIfgDAIy/P4cGdv45EdIwoC3aLnHiXU04EYybveuAElyO/uo5SYBTJxixqPikLpV4VHIA8xApTQOEYYsEAcpWGbwpOqEzm7rKhQAB2fALIPIfgUBCc9vv89MEMLv27J9CybHz7Z1OIBEy8e8ukczgaBrJw/MHo4HwZv3/n46g2LPzfZ45C04CLt53kqk5DQMqaVN2rBMcQMYNLXhceJf8OyeYCmi0LpiHX8cW2bbeKqpUBrCa18VietMuG0LsSDAaxdetW7Nmzp+31PXv24Oyzz+74nm3bti26/sEHH8SZZ56JQCCA008/Hc8++yyeeeYZ58/73vc+/MZv/AaeeeYZueGnbuCcDmZ874OTzcwhplHCsszpgI15TCsgky9JGNkyOC6O/tzRnENuAOD56QJ2PztFTmk65evDII97TrxTuQr+7tH9zo+mclX84+MHFykLfmK2y+RGAKiEqHLq0wOhPUTVpf+Gsw6nfc+Fi9aYz8nyhNZITtLr53wryXdwHMH5yvd+2dYH6ZY9L5Axsvs8BGTh+LnxP7//S1QbbmL5V773EimiGCIFh6l7tRXUvegI+U6rtQxyFfnqb61pOYVyrHCF2HgI1Ux6hnDad9VVV+HOO+/E3Xffjb1792Lnzp04ePAgLrvsMgAkfHTxxRc711922WU4cOAArrrqKuzduxd333037rrrLlx99dUAgHA4jC1btrT9SafTSCQS2LJlC4LBpVmvL2APsGoWcYNszH4pOOUMOXFX9BjppLsUomNoaURtqud8XvS1AqnKAID4BL7xYxJe/O03r8GfnncqAOCffkzJQoyRBZ/HbNtAkUrH8dX45lNHYNnAr500gr/64JsAAPc9SWV9DwH2EwuluuuB08lM0YNGhLRr8Ct04sT+gyZQcu/zski499nvasZYgxDJYHp5BSdEfz5iZ3zvneXMz/gEjmYr+MGL5L5/60/eiVjQwIvHinjqYHaoyIJ3DZZqTXznWbL/ff0Pz8JkMoy5Yg0/fHF2qMZsVkieqR1bfj4bKZYnmUOmLJ/geOdjqEor5lZagz5AOMH58Ic/jF27duGGG27AW9/6Vvzwhz/E7t27ceKJxE9jamqqzRNn48aN2L17N37wgx/grW99Kz7/+c/jK1/5Cj74wQ+KHqoYREZIzyEASSsLwL+TYyNHTlWlQIemc17oOqpB4oPSzPuc4MgeYMEEbDOM7z9PNtrf/dV1eP9byQn4J/szyJUbwyOP14tAk+UGrcYDPyf3/UNbT8C7t6xBwNDwy5kiycUZEnl8vlTHuEarZOKrlr3WipH7HPQpwbHS8JSnsgfvCg8Eb26In35UlXoLI3YWABAdXZ7gBOhDbLWWxbzfuXAl9z7/4IVZ2Daw9cQRvOmEFH5zM5kP39t7bLgS59mY46vx8C/nUK63sGE0im2bxnDhm8i9feDn05416P+YQzVCFvTESvOZ3PPVWhYZH9II2OEgZOowynQfWGkN+gApetLll1+Oyy+/vOPP7rnnnkWvnXPOOXjqqae6/vxOnzE00DTCbPNHkGySk5tfsX+bPgxqwRUIDugpvTYD3e+NynmAjePl2SKOZCsImjrevmkM0aCJUyfiePFYEQ+/NIvfHhZ5nI05EEWuGcTPjxJl5JxTVyMVCeCsjWP4z5fm8OjLczglPhyqUzGfRZSFL2PLExyNEsmoTwmOZW+IihHgFcYMz312c+HkHzQyZVcpi6SXV8rYg3e1lsVcqYYNY8uorqLB1JDYOH7wFJnf555K7vm7Nq/Gt356FP/xwiz+7I1sDfpPFty9YxUeeZkoI+eetgqapuFdZ6zG3T/ah0denod93iZoAAkT2/bSlW2C0WxZSDQXABMIJleYG3SvC2kN5LNzADobc4oCW4OxkOkhvyusQR+gelHJAP2Hj1Jp2i8Fx6COr43IytVn7JRu+liGCKDtFPboK+T+/dpJI84p/OyTyXd5Yn9maMI93ofuY/vmYdvAplUxTKbCAICzNhKC+fi+BVdZ8Jng1Ki619BDQHCZMmAAJlUW4pSwywZTXhJGg6hlwIqqk1dZ8FPByZRdpUxbIRTI5sYqLYuFIVFw7NgqMm8BbKcEZ9sm8nB9fjqPYoA+aIvH/Hcz9qzDR14mysjZJ5Px/eqGEQQMDdP5Kg41UuS6Vp2UlvuETLmBcY2Q31B6hWTdQBglnazTWka+yt7mReWEAhXBeX2CbmTROiEY1YbVlqAnC4Eq+f1WdOWJqNEHgp9liADaTmHPHs4CAH5lvetY+6snkv9/6mDG8xAbEgUnvhpPHiAd2d++yT1hvY0SnJ/sX3DDaj6feK0CGXM1OLbiCTZCKzjSrQVfkl9ZiGqEhnxhhJY2zGOIu2EIPxWcQr6AhEbDl12qTquQxbxPrtEO6EPsaDOBXKWBoKHjjDXknq9OhrF+NALbBp7J0mrVVs1XsgDAWYdFc9SxZjhrI1mH4YCBt5yQBgD8+HCZ+PsAvq5DkgdHyK+eWIH8AiiYNI0g5wfB8YSJS12GiX2AIjgyQDeqICUYgD+ba5jGd7UuksGC9ASRaMz7QsYceJJIf3aYnG7edELK+fFWSnCeO5p3kl/9JgveBf8cDU+9eZ075jedkIKmAcfyNeQMGi70m5TR+9yNuhelBGeVlkW+Kn8es9Nj0iLkEfHVK4cVvD44Adr01ofE3XKWKmUw3YfqUnDCEE0UsnPLXysSjSpQI/P4WUpgNq9JIGi6j4+tG8g6fPJwZSjIAgBnHf6yRDxw1o9GMBJzi1Desj4NAGSNeqrs/MJ8qeYoON2Ee6o+VjO2VTJ6DnTDBkVwZID+w5vlWRg6dVH1YXNlIQVzpfgugDAtQxxHFtmyj/I4XTyN8Dh+SU9h7OQFAGtTYYzGgmhZNo426cbqe94QIQt2bBWeO0pOZG9c6z7MokETG8dIs7xXqjQc5HNYzah0r+4F05TgIItMUX6CI9tck01KcLqJ/bMHWKuOUYO425Z9sGuoUYKTN0ZXJmWBMCoGUUnqWR8JMDtk6AE8eYyUWb/ZswYBYAsl8Hun8sMRdm3WnOaZz+YIKXvjmnZCuZkqUL84mh+K8PZCqe4SnC7IQp0e6LSS/DG7lYw95MH5AEVwZIAuHq00Qxgv/PHCSbbIA2HF+C5cD45VWg4LJR8JDl08060EWpaN8XgIE0nXtFHTNJw2kQAAvFShSZi+5+CQ318IjCBbbsDUNZw62Z7Xsnkt3Vzz5HTpd85CuEYIjt7NKcyjLOR8UBZYDluM5QB1M+ZA2FEWxpClnyP/kMFCgeUuEv0BoBoiYQjbz8R5TxLpc1MFAMCb1rWThdMnyXx+fjrvUct8XIcOKTPx9AxZV29c2x7GZCG2vVN5YqoI+ErKMoUSRjSaU9ZFuMei1wSq8tMIWAQiFjSVgvO6h7PgZ8mEgHwFp9ZsYcQmp4PoyPLlqeQiIn+OIu9vuwa6UR2qE4Jw2mR8USuP09cQgrM3R+Xnso9yPuCM+UidjOuU1XGETKPtEra5Pj1PX2/VieePD7BtG9E6VfdSXTiRmiGUNULMyhn/5PEITdrv+uRI5/SITVQ1P8LErJKR2TCshGaEEhw/53SJ/u74KieX5dTJRNslbA0eWCg7Y/Z1HXpUhZ9PkTG/cV07wTlldRwBQ0O+2kTRoISt5N+YKxkyN1owiL3ICtBiZD6Hahmh4+oEp4oqAKDC1qEiOK9PeAzooiF/FJxsueFUb3RFcOjiGdUKmPezXQN9ILxcISGdk1ctrvA5nW62P12grgeNMlAvyxlfJ9AQ1YEaGTOTwr1gY/7FXAswqYrj0wOhUGtilJYuh7tQ9wCgYKQBANWcf/I4yynr+uRI53TSIt/VjyoqnXqGNLvIdQIARMfo++ZFDWllsDBxZBVmCmQv2LQq1nbJeDyE8XgQtg1kQOe7j2TBGyZ+ZY64sTOViSFo6s5+MmtRwuYjKWvmiXpUCYwQ49IVEEgQYh9p+EdwVunUO0vTgWh3qqRMKIIjA574rl8KTjaXcXxO9EQXJ166sSa0CrIFf7pGA3BOYs8XSFiqE8E5jW5cz8y0AGMIVBwq6b9MkxtPPu5hAAAbx8lr++ZKsGPsxOtP2XWmVMcYJb/BZHdkoWKmAQDNglx53LZtVBpk7QSZg2qPCg4jOH4oOGzMdrQ7gqPT0tuAD6d0B3Q+5w2iKqxOhJAML+71dhol7ceadI0OwRqsBEfRsmxEAgbWUJsGL9g6nGqwMfuzBgHApmNmXeRXQihFnivxVlbUkJYEU1FXMXPQ6BigG8u8wx8ogiMD9OSIegHJAJkYsr1wyguklLCK4Io+JwCAcJpIpQDKGZ9i6fWy43Py0wwhLqesXjx2dpqcLdZhUWI2DKfHvQWyoW4cXzzm9aNRGLqGSqOFZsjfMc+3tWnojuAws8iWZIJTbbg9cAI0MbprgkOJZKyZBeCPghOu00rGlZxqKYJJ95TuWz8qOp/nbHKQ6LQGAffwcbRBCb2va5DsWTk9DYAQmeND2+x1ADhYpSqqj2PW6WGu1UWiPwBERwjBSdl56ZWu7PnFlN9hDE8BiuDIQThFukYDmDBZBYfkHBxqBpXTR7pz6tR1VAMkLt3I+0RwmLmYGcbeBbKAOyk4yXAAY7T803Fp9kvSb1SAOsmlYaSMbaJeBAwd60fIplo0afzfpxPvQrGOVVpvG1UzTO6zVpE7Zu/BgIV7ug5RUdUkSquv/FBwWGK00YXPCQCE6Sk9jTwKPjXpZevwCFU5Oq1BADiRVgYeYGTBz7AaJQuzFllbGzuoqIC7Nl8qUXXHR9WJ+ZTZXRL2+CgJJ48iL73hJlNwRmxm1TB8FVSAIjhyoGlOyGeVQR5+shUcRlKK5srJawyMLNh+nWqKbr5CywJiQaOtgsqLk+hG5XuyID052kYQhypExj9pvLPFPttc/c5ZyOYLSGo0Z6nLjcqm89msyJX02cYaDuhueWy3p0eWlFknm7IfVVQpGk4Ij3SX68TyLMZQQLYkv6kiAGdOv1Im8/j4/BuGjXSe/7JIycIQKDiHKSnb1OGQAbjf5ResQKHkHyljOWXdkl82N2JaDdl8Tti4OoGlWLD5rBSc1zvoA2GMlgHKzsGxiiwm3X3PkmaEEBy94tOip6ewCm0OeuJYZ5mZ/IxsrhmwZEG/xkzbYYTHAWhYkwo7rQGOBwtdzbb8zVkoZ0lyYxMmEE539R5WwRGoy80NcTbWgO34nHSv4JC5H6Rjlu2DY1k20qzRZjeJ/oAz5lEtj4xfflR0TrNE/5OWIAtMwXk+T/NzhkDB2VclY+qkopLXydp7vkAJTi0HNOXfZ8uyEaPKYrCbSkYACCWJYSSA4oLc8na2DhOM4AxhiTigCI48OBsVVXBky810s2mGu1dwbFrpYVZ92qjomPM6UWVOoCGdTjiJbq6+JzjSMZeoksTG1QnsxHu4ThUen06PdaruVQLprhsNGgnWXy0raFSdwcJKk0GqOGl616SMhagCVdr0ttGCJTF3oVCpIQ1S0RMf6e6U7lYz+khw6Jz+ZZGQgPVLrMP1I1HoGnCUWjqgkgEsfxoLs2Thl+iYlyJlI9EAkmETWTsGm6YR+EHM8tUGRkCeDZF0l+EeTUNeI+pvLSc3F87xwWEEZwgrqABFcOSBToA0/CE4Og0ltMLdT0Q9TjbXoF8VHHSjydhElTlhZOluymwDO1z3OcGRjjlHN56lNlbA/T6HqvR7+UTKmkXye+vBdNfvCVKCI7uCg50cJ0xCFBDprqQWgJNkzBRJ2waqTXkP4HxmBrpGCFU42W2ZOPXuQRFZP+wabNvxOTlMc2vWpTuvw6CpY91IBBmwHB3bv6okug5fouGyjUscNDRNwwkjUdjQ0WDz34d1OF+qY4QefgM95LOw/L1GQW6epONk3KAqarT7yIBMKIIjC8yDg5qMyY7/m7UsAEDrgWmb7JTe9Ing0I11pkU21OUVHHLNvrLPCY50zAs22VDXjy495nX0+7xS8beCw6YPoWaoe3UvlKYVHJY/sf9VtN0CIj2cHClZ0Mrz0CjRKEo8aBQz5JRdQBQwFpdZdwTLddIsVHI+zI9aHrDIPcoggfF4kNjzL4GTxmJowUAt4G/iPFuHGcQRD5lIR5e+32wdlgNp8oIP6zBTqjsKTi9qSIXmVMquZmS5cCGm4PayDiVCERxZoBtVkp54ZVdwsIloxrs8OcKt4EhYedSblohhLQ/64J2qkw1oOYLD1JADfpd70jHPNAnBWZdehuDQnx2mhoB+kTK9SglsD5tUNEVi7iPIoylRBWHrZlyn3ky9SOP0kKFZDawOkHCPzGrGCg0jFPUVOp97YQZR0YkiUsvLt+Rn87llhFFDEOuWUVEBd42WqE+SL+uwXgaapPt61o5jXTqyZO4e4K7DnMZImfx1uFCqI83aNPSwDqtBQnBkO12XG2QdButMwVEE5/UNSnCiLWYyJlfBYVJiINE9wQnRh9ioVvCn4SbdXA9UGMFZenMdiQYQDuhYoF4dfufgHKmRsS5HcGL0ZLngc2J0sJ4FAGix7mXm+BhJhAxrDRQK8lQcdnIccwhOD9J4IAIECJlcGyQhLpnVjHVKUFh+VrdgD7FW0T+Cw4wdlztkAMDaFPl5VvNRwaHrqKWZKCKCtenFBn9esO80b/u3DvOlMpJahfylB7LA7BoMyWNmB4NAjYYgVYjqdQ46ASJUSZFNcOIWCY2Fuo39A9DpiXcMeWTKPpSosth/jcb+l9lcNU3D2nTEJQt+lXs6Yyab6nJjBggBckhZvQg0qkKH1wlhOieNHghOIJxA1Sayfykjr4KDhXZH+jjtAnDycNaY5P0VieuwReck85fqFnUaOrT9mNN0Phd0lge3AsGhhH6etT7wQ8GpMFKWAqB1tQYB4BirZvRhzLU8+Z0WekiaB9Cifb/Mqtxcp3K9BR0W9Bo93KgQ1esclJWzh4nMjRUAkjbN0E/1YMjkdwUHPZVkEUcybCIVWT5vYV06gnlGFnwq92Qn3nkrDlPXsDqx8ukxjyhaGi0ll3zitW0bsWbv6h40zTmlszJzGahQxSVls3yF7vOGyPXkO6425Ns12HQ+95LMDQCtMEuO9kMNYbksKyf6Ay6hn3aqGX0gZWVGyshesFRSNAMbsxsqln+fmwXyOytGovukebgtP0J1eQTHski7lCRK0ECrELtoDuoHFMGRBceDIwtAbg5OvV5HSiOSfCzdZXkq4DwM0ighW6qIGNryKLOE3cSKGytACE4OMVjwr9zT+0CYTIVh6MuXXZPNV0PZp5yFYq3pVPaFeyG/AAo01FKX2HCTERKWrN+zNE5J+yq90PZ5MqBXSK5Ts8teQw6o6hSQfEoH4KyhWZpTtpKCw9SQQ471gX8hqgWbkKyVQlRszAdr/o3ZVffSPb3PiLNWHlnOI1oarPKQWZ4glATMoLTf3wsUwZEFuhGTpnm2VAWn6OklFUv3cEqPjMCCBl2zUc5Kjv9bFvHRACkTX7tMLgvD2nQENnSUDB/zcFj1Bk1uXAns9MjKymWPOVdpOMmNgXhvZIElkjYl5oY4BmM05NqzNE5J+zjdnCsNeQcNk9otWD2EIAC34WZIsqkiAGc+TzVWzikDgIlkGJrms3kl3Te6JWWjsSDCAd2xo/DjYGTT+9wIpXt6X4D2KotJtGtgPdzSYGHi4VRvAEVw5IESHL1VQwxVlBsSK09oeWnejsEwuyxPBQDDRNWp4JC86Gs5wCb3KIs4JlOdWzR4wUhQXqMbVUXyA8F2fT+ySHRHcOjpkp02UcmKGl1H5CoN5ySm9aiG1Ohps1WSpyywg0GsxRScXgkOuT7lg6M4c1DuVXUK0MrHcDPPe0grg87nY01CcCaSy6shQVPH6kTIJQuy1yDgjHmakrKVDkeL8vd8GLPrU9YbWQhTghO3CtzHtBTYGpwMUKuGIa2gAhTBkYdgDDDJQhvRClI31iotT831Up7K3hsg72kUJZ/E6CZV0yOoI4CJFXJZAFeKZh400k3GGmWgVaNjSKyY3Ai4D4z5lj9jzlUa7kmsx42q4XidyBszq3qKtPo0GIukAbinT5lKaphWMuo9JHMDQCRJro/7YdfgKJIJhAM6kuHObUe8WJuOIAuf1iDgjHne7i4PDgAmk2Hk2CHDhzEzdc/uUZFkcyNhF4nqLQGsRHw1M9sc0goqQBEcuWDtGlBAvWlJa3FfL/Thv0HB3D1lntIBOKcoZkU+kVp5kzqBJhPO0NOm9JMYlbYbCKCMUFcKziT9Xuy0KXvMhWIJcY1WbvVIcNhpU6vKG7PTbLNfgzF6fcKWn4MTpapTINHbAyFEc6PSWhHZiuTEecdNPI7JZHhZPxmGdekIso6CkxU4uCXgcUBfk145Dw4gBCfjqKgZosZKRIj6yeg9koU4betgaDaa5SzvYXWEa7bZZyWjRCiCIxP0AcJCArISjZtFsuArZu8Ep0VjwrZPZCFLbd9XksYBlywsMDVE+pgJCSQhMs0Zz3IYj4egaUDG9mfMzHzOgg6Eeitftmns3azJ88Fh5anBRu+urwCcfAEm6cskOHGqOgV7qVYDYLCwGkrIyrZrKJP5mEUCq7tYg8BxCo6PIaos4liTXPmQAQCrk2Fnr0GrBjTkFlVEmlkAgNljHlwyEUfJJuH7kqQ8SdeLiik4iuAoAJ6O4uQkJ0set/rM0Afch5gh8ZQOwNmkWLLiRHLlHJygqWMsFnQ3Ktmbq0caB9AVwQkYOsZiIWR9IjgNWp5aMpI9lacCgEZLtAN1iQSn0UIKxf7LU+n10RZNMpZVzWjbSNCwWCTVY+dlOuYRrYBMSbKC47QeSXR1yADIYSTL1JB6AWhJJmXeMXexBgGyv5QRQpN252afIQO2bTs5ZcFkb5WMAUNHnu53JUmtPFgfxVGtD7NNyVAERyboRrXKJCEBaafHPv03AECPyj+lA3A2mFmqxkx2ubmu9m6uEjcpAK4HDiVl3cT+AbK5uqRM7piZulc1e1NvAMCMkZNbpCmR4NSanvLUVPc9nRgcgiPXUdyu5hAA+V3RdH8EJ4USMrIbbrJwD+KY7OKQAZD5nEcMFmhoyC/1145jdaLbMYcBaI6hocwxl+stpFgn8VRv6h7gmjBWJbXyqNACGad3lqqiUgDgTIQxg0h7sjZX1muo1UMzRQaT+oYEG5IJjif2HzT1FU3+GNrJQlbQ4JaA44ETR8DQMLJMgz8v2k68kh8G/ZrPAW6oJdKSV91Trrc8SdF9bKxUTg818wBsadWM7OFTtkNIJuIrXH0cmIqq2SjlJRLg43o69aLgWNBR9CtMRcNqGSS6Un4BVyH2Yx3mKg2HLPQavgTg2GLUCnIqXR0vqj6ag8qGIjgywQgOjV3K8uAI0E7iVh/JYEGapR9p5mHLTLwru9UbE8lQV8mNADCR8I8seCtOVie6S8gEKCnzacwaHXOzx/JUAAg71T0SS1QbLbdNQz/SOMsbsuoIoy4tTMx8pDJIIBJYuht3R5gh1DSSS1KRadfA5gZIT6duc3BYxaMveWXNOgmLobewGlNb5y35yf65SsOZ01q0d4JTpbmVsgpBFnlRqRCVAgBnc01rxD9AloITapDFqvXBtCO0d1UKBRRqEjugV1w1pNvwFMAUHL9Ojq6c3+3JESCbq195QwYjv+E+5gat7omhIi3PolxvYoSFqPqp3gjGAZ3kWaRRlJboz5K581qia+LrBbNrYJb+UkDnc44lzXcdJiZz3xeCw/xkoCOPaNdhYmfMlvxS8WyxihT6T9itU7sGaQSHPgf6NtuUCEVwZIJ6cMg2GWMGYUas99NBkGb1p7UicjIrOFglhN199QYArPIx3OOqTvGuN1aAJCO3jVmSnwUABGv9k99EagyWTR7WVln8vW5ZNqoNy4399yONa5rnoFGSpuA0qFVDqQ+rBkD+QwyA2yrFIkSlW9IeDhhIhk3XV0bmOmSVjHYMNnSHuKyEkGlgNBb0Jdm/nJ+DrvXf06nJwsuSxkzCujaiLPdOhagUAHiSBeWajDnNFJN9SIl08qZRQq4in+AsINGVyR/DRMIT7ikvyPWzqLSH1brFRDKEHFOdbAuoyctpCdO50Wt5KgCkYmHkQST9ck58gqOT3Dho9QY9cco03GTJ3KU+krkBoOmHXYNTFUiSWLsN97BrM5CvhrgVVN3bSzCsToScpqIyCU6ddhIva7Hek+YBWGG5la6VegtxVGDQpHml4CgQUIIj1WTMshCnvy+U6K0EEYBLyrSiZILjMRjrok0Dw4SffhZOiKo31Wl1IowagqiAfk+Jm2uM+m/01EmcImTqyNF7LYPgsHDS6CAhKqCtKkkWwWFWDbVAfwSH9a/SaUhRCjyKZCoSQLiH3CHfEuc9azAWNBAPrey8zEDGLF/BYVYN5T7Jr+NHJcmuoS1MbEaA4MqNkP2CIjgyQSdizJJo9FfLwQAJeUTT/ROcpFZBvlTmObKlYdvOSSzbY7hnIhlGCWE0bLoZS91cqSlaD+WpgHvKlJ2zYFm2kyAcSvZOcDRNQ4H2/ZLRq2yxwVif5alOiKroqELCwZopBgcbc8AngtPLfAZITkvOj7wy75h7OGQATEmVP2a3k3h/BIdZeYQkVbqW6i2M9NneRTakEJxbb70VGzduRDgcxtatW/Hwww8ve/1DDz2ErVu3IhwOY9OmTbj99tvbfn7HHXdg+/btGBkZwcjICN71rnfhxz/+scivwAf0FBZtFaHBkhOioqXSZTuERKzH8lQACKccPwtpFRyNCtAihmZZxLGqh811PB6Epmn+JBpXswDImHuRxkdjQegapOcsFGpNJGlyI0sY7hVlgxCcRlF8GIKpLSM0Sb9v/w1GcCQmGetV8vBp9dgtmsGgnkOyHmIAnPmc63ENAv6pId4x90rKViX8qWa06O9qBvskOHRuyGrGWqm3kNLoIWOIPXAACQTn3nvvxZVXXonrrrsOTz/9NLZv344LLrgABw8e7Hj9vn37cOGFF2L79u14+umnce211+KKK67Afffd51zzgx/8AB/96EfxH//xH3j00UexYcMG7NixA0eOHBH9dQYDTTLWYSEuqaN4g6oKOcSQjHQv1zrQDaejeF2SzwLbpJrQUUIYI9Fg1281DR3j8ZCnF46k+L/VcnJncnasJ4Jj6BpGY8H2XjgSkK80nI0qFO/vJFY2WPKr+OoeRkaczZUeGHoGyyvTiqg2LFgSesIZzCgz0t9DzJeO4vRwlLNjGIl1vwYBkguXkb0GgbYx97IGAWAsFnLzhqTmOmUBAK0eW6UwsEKQmCQ/qnK96VZ99bsGJUE4wbnllltwySWX4NJLL8XmzZuxa9curF+/HrfddlvH62+//XZs2LABu3btwubNm3HppZfiD/7gD3DzzTc71/zjP/4jLr/8crz1rW/F6aefjjvuuAOWZeF73/ue6K8zGAIRp6N4Sis65XYiUcnRUk871lM82gunRLUkieB4NimAPPx7weqED6XiVfdknUe0pyRjgPSkkl0qnivXB96oanRuyKiicg3GWJO/dH8fdHxHcQkHjUCDPHy0Pk+8oYTbUVxWk15XDYlhtIdDBsB6O/mo4Nix3tdgIuRLR3Gdkd8+1yAzB4xJ6ijeruCkhf++QSCU4NTrdTz55JPYsWNH2+s7duzAI4880vE9jz766KLrzz//fDzxxBNoNDonuZbLZTQaDYyOdj6F1mo15PP5tj++oU0eF7+xVqnqUtTiMI3+/rlZiaolq0TVs0kBwEist8oCXxIc6e8p2mHoZrBr52UGojrJfSAUCjkENFYJke7rM9jckDFmx2Bs0NOjp0zc+7kiEaLKixnrj+CEaY5UWisiLyvZ33PQ6PWQMZEM+VMmzsaMWE+5ewAJb7etQUkVmA757TOnLJwgzz0DciowS/WWUnAAYG5uDq1WCxMTE22vT0xMYHp6uuN7pqenO17fbDYxN9dZBv/zP/9zrFu3Du9617s6/vzGG29EKpVy/qxfv76Pb8MJjhdOSUqIqk5zIypGrO/PYCWq8shCFgBRQuIhEyGzN+fX1QkfkgUpKSPmYt07LzOMxYPSx8xyqpowgEB/lRAsp0Sn318kKvUWTDQRsWll3IAEZ1RnBEe8khqhzT0D8f4eYqzvV0qmXYMzp3snOF7zSltmyxQ2ZjvatQcOQ5uKKrECM0gJjhlN9/X+eDyOsi2vArNSbyHphIn7C6vJgpQk4+M3e9u2l30AdLq+0+sAcNNNN+Gf/umf8M1vfhPhcGfGfs011yCXyzl/Dh061OtX4AdHwZFjMtYokglfNfozGAM8PguyKjhouCffx8kRIBtVRrbUTMecs2M9JzcC/oy5UiC/p6wniAFeH2BzI1DP8hrWkijVm0jAU8nX7+ZKy8tHZRlu2jaiFvldoVifVSeevCF5BMed072uQ+981mp5eR3F2Zj7UnBCKCGMuuQKzFCT9qHqMw8uEQ44uUMyVPZy3S1OeF2HqMbHx2EYxiK1ZmZmZpFKwzA5OdnxetM0MTbWbux1880344tf/CIefPBBvPnNb15yHKFQCMlksu2Pb/CUqMo4ObIM/Xog0fdnsLwBUxrBIb8nh96TGwEmNcsOUWUBkNNurxUngD85OKzyqWr2PzdYqXZAggdHW+w/mACM/nLKvN5OgASCUy86Vg39dIsmb3RD27mypI7innBPrwQnEjTQCnr2WVkqjies1us6TEcCMHTdo6SKJwu2bSPGyG+iP+PKhMc1uiKhlUfZuw5fzyGqYDCIrVu3Ys+ePW2v79mzB2effXbH92zbtm3R9Q8++CDOPPNMBAJuXsOXvvQlfP7zn8cDDzyAM888k//gRYGFqFCUouAwebjfEkTALVGV1lHcG/vvsiO3F+MJjzOw5BBVzo5hLN47wRmLB6XnLLRKjPz2T/iZBwdzRBaJsjf2P8jJkXk72ZIcxel8rtkm4vE+rBqA4zqKS5gfrQbQIPc6Z8d6qmRkGE1EkLPlNq+0PYej8XhvY9ZpNaPMw1Gx1nSS5mOp/ggOMdwk+51oP6qWZaPWtPisQwkQHqK66qqrcOedd+Luu+/G3r17sXPnThw8eBCXXXYZABI+uvjii53rL7vsMhw4cABXXXUV9u7di7vvvht33XUXrr76aueam266CZ/5zGdw991346STTsL09DSmp6dRLBZFf53B4Zwe5bioao7/Rv8Eh9n4R2SVqHqrN2L9hntYiWqW37iWg4eUjfWhOq3yhqhkGf3xIL+0fFnG3OB2cqThnhDqCKEuXEll7RXyiCEZ6X1uAADMEKoaCbnUZNg1eNZNAVGM9UgWgOPXoYQ5bVlOiKqoxZEM93E4isstFc95rBr6DVFpmoYi7XHWKIqdG9ysGiShT423e3z4wx/G/Pw8brjhBkxNTWHLli3YvXs3TjzxRADA1NRUmyfOxo0bsXv3buzcuRNf+9rXsHbtWnzlK1/BBz/4QeeaW2+9FfV6HR/60IfaftfnPvc5XH/99aK/0mCgEyItySae+W/YA0zEEC1DjFt5WJYNXe8vX6NrsHCPHcNojxVUAA1ROQqO5Mov9EdwxuJBT4hKzpg1OmYr2L+CwzblqF0mp/4+eul0i4rXf2OQkyPrKG41MYKC8DLxRimDIEji60SP1XVeVMwkwo2qY+0vFJ5kXQs60n0oqWMxyeuwXoBmk1CgER3pa58ajweRm5OXC5erNHAyBk/YrZhJoOn2PBMFpna+WsrEhRMcALj88stx+eWXd/zZPffcs+i1c845B0899dSSn7d//35OI/MBkm3iAzSspA1AcCK0SWcKRRRqzZ5LoHuGJ1FwQ59JxqzE3K5kIJiOEXhI2Sl9hKjax5yFZtt9J/52C31A8zngOIPAShaI9+eI3A1KbQrOANUbmkYOGuU5pCUoqeXcPIIg83lTsLeKQC/qZhJozMjpKD5gJSNAQsV5mdYHTigwgESfocDxuNzwdr5QRFijCdgD7NE1SnAswaSMrZUUS/ZXVVQKbZCcZBykGfpGnyWIgHtKT6Isx4PDm8/SB8FJRQIoaZJLVD2kbLxPBYdtrJrdAuriw60mLU/V++3pBCARDSNvE/NKr9mhCFTqLSSdjTU92IfRk2dSgpJap7lOJT3Rs32AFw2qtFky5vQAFVQMbWRB8Nzw/o4cYn2F1ACq4NjyxlymOTMWNCDUv5LaoHl0dkXsmMv1FjRYSGic1qFgKIIjGyzBESUpNvERRnD6NBgjH5IGQGRJKSWqnuqNfpIbNU1zvq/erADNOs/RdYaHlI32sbmGTAOBcBQ1m4qqEh5iIcd/o/+GecmwibzzEMtyGNXSKNebrv/GoNI43ZhTWgkVwQcNVq1W0QeoVgNgsTw6CZ5D3vncTyUjcBxZkELKyO8gpKx3FRUAxjxKqoz7XCuwuREH9P4fx006NzTBla7lehMJVKCDPreGPESlCI5sMJt4ulELDVPZNiK0BDHQr/8G4MiQCZTllKi2VST1t7lG4mnP54k/idkeUjbW5+a6Kh5GHrTqRMKYw475XP9zIx42nTCEaLWszNNBlc7pJMrCFRzWxmKgcnzAGbNWlZDsX3F72PWjogJEwcnLVHDa1uAgY5a3Bl0j1sHmhk3VH0Owk3HZa/JnRgCzv71OFhTBkQ2PnwUg2IOjVnD8N0KJQQhOGgAtUS1kBx/XSvDE//tRcABgNBFFnpWoSjiJsYcYKantL0dpPO7JWRA85pbl+m+EEwOEqMIB58RbF9xRvMyzB47XUVw0waHzeRAvKsDjRyXBc6hNwelzDY5LVkMGDW0D8lWnJs2nqg9IftncYG0fRIGbVYMkKIIjG3QiRjRSoirUg4Mu+JodQDQ2wAIKhNHQyEObud8KQ7MGNIlF+iDx/7F4UOpJzNnAw6m+e36RMcs58RaqDceNNJrs03wOQCxoOPe5VhSblMm1izFTcDTxjuKsWq0xgN8Q4ObRBWjYWSjaTP76I+zS16BXwekj0R+Qr+C0aM5Mc4BKRgDQKdkINMTOjUqj+aopEQcUwZGPUBLQSEVCEiWUGwLj/x4lJBbqv3oDcCXUumiCQzcVy9ZQ1mN9eVkAxFdG2knMsqBTaXiQZO5xiWP2+m/02x8JIPlOZYMkdDcEKzgVXlVUgJuDA/E94Vi1WmsAvyHADSVK8aNyysT7z2fxzmcZ3ea9pe0DJUazkKsE1Umj63wQnzLA3XfCLbFzo1TzhomHu4IKUARHPjTNmRgjmuCO4p5KiERosNLumklOGE3RJap0wRcQQToa6ttzR6o8Xi9Ao0l3wT7t1oH2SirRY85VGtzUENbnrCn4IVZutPj1wGFVVBKSjI06eehYA95n1jU6ahXRElyc4K1I6lfBSYZN0ucMQEsKwfFUMvaZuzcac1VUGRWYOksKHnA+B6gZa9iqCO37RRpt0goqFaJS6AinXYNYebzlSRSMhwezPGrQ/IGW6EXfVgnRp+srjg/3ZAcf13Kg96RqB5Ds14ofdHO15cjj+aLHf2PAjYrNDaucHWxQK4BrDxyJScYBSnAGHXOEEpykJsGuoc1ssz8FR9M0aNRjyZYYouq3SS8ABE3dUdq0ag6wxRJJk84NlkPTL8JtRRXiVBySg0MtLFSISqEjJLVrYCWIOTs2cIjKkVBFE5wBS8QZZIZ72lyM+zw5AsBI1KPgCB5zJUfccC3opHHlAHBySwQSyWbLQqNJSlQBcC0TF01wQjSkpA0QvgQAk1ZCpiDBrqGtXUr/6i8bs2MqKRBMJRokBwdwfaFk+FGxuWEO4EUFAPFoGAXHjyo74KiWRtmbg6MUHIWO8Mb/BcrjLCeioMX7ciL1wg55TjUi0Rb7H4zgSEsW9DYH7fO0CxBre1mVX1XHfyM2kP8G4JJfTeBDrNxoIYEydI2eqDkqOEKTjG0bEVaOPyDB8SZGCyc4FTe8PchBI0Tzu8xmWWjoBHAJDulD1b9iHYvFUbfpfil47wjRhPHgAHlwAOko7u532QFHtTTKNY5WDRKgCI4f8JSoitxcm9RBdVCPBQDQ6JhZPoEwtMX+ByE4brmncOfXAToYezESCyLH+lEJ3ljrRX5zgxnQGQIJjjfB2A5EAbP/+wygvUxcZKJ/owLTJg92cxAvKsB5oCRRRq4s1rzSrnp9cPon7ZGk5zsLntMsZ8YOpwZyjB5ta9eQHXxgS8CybESpVcNANh4gdg15CYo1V6sGCVAExw9IksfZiaZm9p8XwmBE5fgstKsh/T/EvMmCjZLgBEdP7H+Qh8FoLNjWj0ok2NyoD1i6DLjkV2SJqtd/Q+NRveGQBcFl4pT8Nm0dodiA46b32dQsFAsCyYLVglYj/5YlLYbEAGrIWCIqrZUHK8c3BsxnGYkGPX5U4sZcqLm2B6zfX79IhE2HlInMd6o0mqqKSmEFOEnGYhtusr4kdXPwh1iAtj4Ii/bg8Kghg0jjpqGjFWSVX4IJDifVaSTq+oaIVp1Y2e6g/huA68ERFEh+S7WmW73BQxqnm3NMq6FeF+jOTedGHlHEB21Sa4bRAPmMakFg12jPA1KLpPuuZASIkpqXkVdm207C7iC2B4C8AoV8peG4AgcHcBMHmIJD9g6R+13ZW0WlQlQKHdGm4IiTxx2DsQH9NwBXQo20CmL7Z3nVkAHCPQAcImmJ7grsqfwaJEQVNHU0naZ5WQ4DWxpsblih9MCfZTLy2yoCljXw53VCpcHZQdVz+gw28rBFVct4FMlEaLBKRmia0+5BqGs0nRslO4RUPDrQR63ydhSvClyHjTJ0m+ylg4Z7iIJDv7fAdcjTqiEaMBwFpyaQ/JZrHK0aJEARHD/AqqgEdzJmHgsWB4IT9pSoFmoCcxZYkvEAbRoYmPmVLrh3Dwv35AdUcAA33KMLTjJ2qlo4yMwsQVKHJazqhGuJOADoBuwQIQsJlFFtiCFm7nwe3KoBcMPNQlVJTpWMADAWk5TsT8fcsA3EvSXTfWA0FpDSBT1XLCOuVclfBpzTuq6hygw3Bdo1lJWTscKKkJRkzCRbK8LjIeaWqAr14PCYEw5KFliDUdG9e1i1Wh4xpAclZawLeqtK2lYIguO/MWhlD4BoLI6aTcMvgohZxdumgdfJUUY1o0fBiQ+q4ABoBMhaFuoMzKHZLcOYrN5OXquGxGANINsUHIEHjVLe82/I4aDBzFgtkSGqmoB1KBCK4PiBto1VHMFxEoI55iyILlG1PeaEgxIcVsERaIoLnQDuaboZSMEYIF8BkNcFPdhkpcuD5SsAQCIUEH5KL9U4KzgANJZoLDDZv+lR9wZ1EwcAi3aNFmqc57R44aDgxF2yYFXEj3mQRpsM7Y7i4sbMQkkVLQoYPMgvNdwUSCS1egmmRvdSpeAodISMTsa2jXBz8P5IDjykTCzByQLgo+BEaWUCCZ2IS4528mUigyfspmMRKW7GrJ9RYMDkRgCIh03hp/RyQ0APHK+juKBkf6bu8TDbBACbrkOhxnmcvKgAYNRjXik2MToLACggOpDJH0ANNyWoTiyPqjJgJ3EGpu5pAlUng6rhth4AAhFhv4cXFMHxAw5ZKKJSF0QWGhUYNOluUJdMAM7DIKw1UCgKdPekG0o9kEQ4MNgDIZ1MospCJyJPNfRhM6jdOkDj/4I312bLQswm/4bhAXpnMXhLVEWGqJK8/TcoURJ50GAKTkmP991lvg2sVFwoweFTFQiQakZmRSA2MZpfaNtrMSGyQIEpvzyqXAHXj0ok+WWVklY4RfoqDjkUwfED9EEY1Fpo1ctifofXfyPKYQEFE7BAJnRFVEfxVhN6gzx4eZCF9nJPcYueGdzxUENGYkHhjqT5atOphIikBic48ZApXHXy+uBwk8Y9xnmicnBaNOGzyukhZjKCI9BziJcXFQN78DZL2YE/a0l4EqMHqWQEgGQ4gAI13GwKTNi1KmQfbXCwagAo6YCbX8cbjZaFmPXqSTAGFMHxB8EYLI3EXIWdxDwLPh4ZfJOCrqOqk0UvrAyx5i7M0ICVEEC7m7GwZEHbRpCGe0IcCM5YzDtmMXMjV2k4XhYmh/BlPOQqOKKSX0kXY84KTltHcTEKDsspY/kRg8KkcyzcElgZyKnhLQNr82ILVEMaJTcUOOiYdV2DTXOdhCZz05wkixPBcQ03xcwNUsnI7wAqA4rg+AFNc/r3CKvw8WxScQ6xfwCo0VhxQ9RJjG6ARTuMZGww/w1AUolqvQTDJg/HSHJ84I8jZn8sRCVmc+XpvwEAsZDpeJ2Ico0ueauouCk4rB+VuBCVRh9iDQ6O0YDb2ynSKqIlyo+KY5k44AmRCwydsN5qRT3OpVqNkV+tJo5IOqEkToRdp/M51CwK6YLubZeivwoqqABFcHwDk22FtT7wVELEOVRvAK6tf0tUGWJbB+PBN1ZviWpNVPyfjrluG0gmB3+IjUpQcPIlj/8Gh5NYyNRR1MQSHCE9cDyGm6IUHOZFxQ40g4JZ+qc0cXYNNmcFhzkLmwLJAkvmbgaSA/WhYmCFGSL7q7HDLS81xGCd2yGmC3qp3nxVmfwBiuD4B7q5hkURHK+Cw8FgDHA3aWEuux4XYx4bazxkoqCRsFo5Jyis1hb7H6x6A6AER3DCbjnvIXscKpI0TUOFeXAImhuVWhNJcLaIZyEqgTk4jhcVpzEzNSSJsrBqRhaW4XXQCNFE9qDANi8sGZjXfWa+X2arAjTFNDZlCbsGjyIQAOFIDDWb7vUCDkcV3mabEqAIjl9gVUktQTbx3h44PCRbwIlLa6JONZwVHE3T0KBhNXEKDr3PnEjZaMzjGyIowbGanwMAVPQYoPMJX9bpfRZFfq1a0eO/walM3FtFJahMnCm0GuewWkqgH5Xl9LCLD1zJCADRJMsbKggJnQBw8lk0TspCOOEhHYKU1FCLEL5B+1AxxMMePyoB67Bcb3kOGcPfaBNQBMc36M5JrIRak78JnWOYZw/WDbgNdPMQJts6Cs7gbRoYmlR1aggOUeURG9h/A2AVHETBqQsK9zSK5HOZtTsPsB5aokrbnbYjPP03PN5OQkJUzToCFgkFcstZ8Hj3iCI4jo9KmI+ykBghuWkGLKAmRsVh+SxcLDEAjMQini7oWS6f6UXLshFrMasGPmP25sKJGHO53uQfJhYMRXB8AouXivLgaHlkZl4KDotLC8sb4uhl4SDMqiGyfD7vODAvi0EbbTLouuZ0QW8JquBg3ix1TomvANCi6p4uKM+CkepmkKP/huPOXRaTZOx5yJgxvqpTRKujUCzx+UwvLAsGDauZA3blZhhJJoWGTgB3TwryGnNMrMVEoep2Emd5VYMiHjaFjlmIVYNgKILjE3TPSUxE/J89ePOIIRrkE4ZgvZ1CTcF5Q5xCVACgsVOosHwWEu7JI4ZkmE8yN3OrFRbuoWSPV2UPALRoV3JRVYEB+tDllawLwJODU0KlJkAN8SiSsfDg6h4AIJQS60dVL0CziaLM1vugGIuHPA/eLJfPPB7MtT2cGLySESB2DXmBhpveSkaT032Oh8Q6igtJ9BcMRXD8guAKDpYoWDX4VBUAbqw43CrCElGiytlgDABM1rxSkLJQpQm7tUAS+oB9qBw4XdDF5jrxSsgE4Gx4AUEGdMxryKZEigvo9zc0G62qgHF7Ev25hYl1HVVdYGUgXYNVO4BknE8Icywe8lQzClAlG1UEbJIIHEvzUUNGYmI9tHKVBveEXa8flZgkYwFWDYKhCI5foA+EtCAPDtvT8oAXwgm3o3ihxl91sjwVSbwITpDGt0WF1ZjBWJPjfWYNMA1BagjLV7A5JgoatGO9aYnpgu6ohhGOCk4gjJZO5pkmgkx6zTY5hYkBN6G7KSJHy6OijnBag8mw6eSVFbNzXD6zDXTMLVtDMsUnRDUaFesoni3VkECF/IWTGtLuKJ7l8pleKAVHoXt4FBwRBIdt2C1OLpmAK1mL8uBoUrKQRwypCJ9wT4SWqIYFlagyK34rzPE+U6UsKKgLeoASJ52jG6kRScGyqYIlQB4PN5mDaprr57IwnRAy6ckp40pwAgJztDhXBQLURsAgpIyFdLmCjrmAKMYSfBLQRzw94USEisv5BegaVcE5HTREO4qXVBWVQteIuFVUlQZ/NYSd0rnmLDjOr2I8OFh5qhVKweAU7onTXksRS1CDULb5cao4AdyyWg12W/sKXgjSMBKPNg0M8XAQBbCqE75kod60EAf599M5VckwNIOM4AhQ+JwKO35WDYCb0C0kR0uAigoAddqqolrg/+D1VoyOcRqz1wVdhHM7y5+qayHA5JOfFfMoOCJ6aDWqRYQ0uu+rEJXCsmBJxoIUHJOGZHiGIbxjFlKiSjdXnmNOjq4CAIRQBxpVbp/LwLs8FQCSiYTbBV2A1Bzm7L8BHJfgyHnMFU/1Bs/7DLgHgIAIBceTU8bLbBNw85CEhNU8eUO8rBoAl0iKsGuoUbKQQwxjHCoZASASNFCivffqAnrvsc7qTNnigaCpo6STzxOh7tnsAAoDCPEbt0goguMXPB4cZd75LM0azBZ5mHNtikaJRxwV5Mr88yxcssDvwTsyMuqETkS47AYa/DqJM4zGAsLKPUlHYKKGMIdZHhBZolpuuP4bvFxfGWynZYrAJGPOOTgsD0mI6uRRcHiRBcC9zy0BygLL6ylocUSD/O5zM0i7oAsYM2t3U+PUZZ6BKWWMjPAE80eqBxL8rBoEQwrBufXWW7Fx40aEw2Fs3boVDz/88LLXP/TQQ9i6dSvC4TA2bdqE22+/fdE19913H8444wyEQiGcccYZuP/++0UNXwxY1YnWQqPCOXxCNynL1mBGOC4gSsp0zUYpz/kkZllOIjCrfOKB0XjYkZqLOf7x/xDN7Qlz8rIASMNNUeWe3uoNXv4bAJHHRY25VPP4b/BObmQtUwRYH3hDJzwVHEbyhKhOghQcJ3dKgCJZoQpLlaMaArikTMTBiOXINDnmSAJuTpkm4D67BIfvmEVCOMG59957ceWVV+K6667D008/je3bt+OCCy7AwYMHO16/b98+XHjhhdi+fTuefvppXHvttbjiiitw3333Odc8+uij+PCHP4yLLroIP/3pT3HRRRfh937v9/D444+L/jr8EIiiqZFNzypzJgue2D83/w0AMIOoaWEAQI13LL2WJzkn4OfsCQAh03D6UeUz/AlOlIZ7ohzJQns/Kr4PMa//Bk81JNFWoprl9rmA2B44Gs1DCrf452ixMEEeMSQ4NbwF3AOAiN5O3jHzzMFhXi+6ABf0Og1RNTiTBaejuMBQINccSbiqk4j7zDyueJMykRBOcG655RZccskluPTSS7F582bs2rUL69evx2233dbx+ttvvx0bNmzArl27sHnzZlx66aX4gz/4A9x8883ONbt27cJ5552Ha665BqeffjquueYa/NZv/RZ27dol+uvwg6Y5Jw520uMGpxIiiniIj8kfQ80kZIGVR3MDHXPVDiCZ4HsSq9BYeol3w81GFUGQXKTUCF8FR1S5Z67iOqjyrISICSxRLdebwqo3DPoQi1oF7j3hmKFiUYshHOC31YaoW2/UKqLF2Y+KdYMvIMqtkhFwHYZF2DWwEJLF+cHL5oaICjuNFQ/wrkYKiQtfmnVCqHnfZ5EQSnDq9TqefPJJ7Nixo+31HTt24JFHHun4nkcffXTR9eeffz6eeOIJNBqNZa9Z6jNrtRry+Xzbn2FAlcZfNd7xUq//BkdpHPCUqPL24PD6b3CUxgGgSn1DqnnOBMfjv5FK88zBcRUc3kmZuTJ//w3gOJMxzpJ+uSHOf8OgakgCJdRbfEvyWZVTzeRntgkAYZo7lQJ/uwbmrdMI8KtkBNxwaEiA6sQ6iduc1T2WhB8QQhb4NgdlYAUaIrqgs+7nXA1CBUMowZmbm0Or1cLExETb6xMTE5ienu74nunp6Y7XN5tNzM3NLXvNUp954403IpVKOX/Wr1/f71fiinqATEatnuX7wZ44epyjNA54fHV4x6UFuBgzNAJiOorXaOw/jxg3/w0AiAYNlDRCFqqc7fgrbf4baW6fGxfY6K9cbSIpyEE1QAmOiIabLLTBwga8wCrJRFQzMlJmcQ6dxFOELLCQLk8wx2/eFgIhSnBCrQJ3PypGFngnzRtRjx8V53XIup+/WkrEAUlJxsefXmzbXvZE0+n641/v5TOvueYa5HI558+hQ4d6Gr8oOB4cvOOlzGBMgILjbHwCx8yb4Fi0rJa382s+6xKcJMf7rGka6lTd491RvMJaS2hhwOR3n+NhV8HhXcFRrZYQ0milIecTLyMLIhpu6nVmtsk5DOHpocWb4GiCyEJihNg1xO0S91Cg0xyUY3ECAEQpKdNhA3W+xIwpWTyrLwEgFg6iKMiPipml8ladREIowRkfH4dhGIuUlZmZmUUKDMPk5GTH603TxNjY2LLXLPWZoVAIyWSy7c8wgG183KshnCZ/MSR4lqcCzubKPYmNJUYLUHBYnJu3MVqJlqeW9TjXEAQANFlZLWeCwwhT1eDTZ4ghFjIcBYe3BwerOGlBB4J8x422prccCY7Vgtkgics2z/YSQJsLOm+Cw/JNjCjfMadHVwMgXdDznLugMzUkzJksJJNJ1JgfFce9o+mxamDtb3hBZMNNpr7pHA1CRUMowQkGg9i6dSv27NnT9vqePXtw9tlnd3zPtm3bFl3/4IMP4swzz0QgEFj2mqU+c1hhhRnB4Rzj9fpvcFZwmL0/b1JmC3JQBQCd+upotSzXzy0LKk8F3Fg67wR0pmLxLvUMma4xGm8iyRyuq4YA/w1RTW89p2eNdyIpJWUJ3n5Utu34AQXj/JLmASAcSzuhk+z8DN/Ppg/eSIrvmEejQSGVgflqE0mNJM1HOBOcmKBqRtu2EbXFmG2KhPAQ1VVXXYU777wTd999N/bu3YudO3fi4MGDuOyyywCQ8NHFF1/sXH/ZZZfhwIEDuOqqq7B3717cfffduOuuu3D11Vc713zqU5/Cgw8+iL/6q7/C888/j7/6q7/Cv//7v+PKK68U/XW4wqb2/iHeHhyOGsLXIh4AArE0AP5jZtUbeTvKneAE42kAgMm57YFTnhrgT3A0+uDVOCtlLCGzKWDMzn3gHPtnhIm36gTAUfeIgsPRcJPeg7IdQiTCLz8LgDNmXbNR4WnX0KjAtIkiFE5yfojpOkoaqbLLc264ydSQOGeCMxLzVDNyJO25SsPJKeOdg9PWcJPjmOstC0naLiXAORQoEpzjF4vx4Q9/GPPz87jhhhswNTWFLVu2YPfu3TjxxBMBAFNTU22eOBs3bsTu3buxc+dOfO1rX8PatWvxla98BR/84Aeda84++2x84xvfwGc+8xl89rOfxcknn4x7770XZ511luivwxUslsm9ESQLUfF2UIUbMw63irAsGzqnSotaYQFBACU9jkiAb2l7iJ5Gg4JIGe8kUsDNJzB5q3t0bvD23wBoWK3Kn5ShIkZ1AuCoISGtgWq1DIDTQ9KjSHIPE5sh1LUQgnaNbxI6JWVNW0ecHgp4oqQnkLBKKHE03LRbDcRoVWCKtmXhhdFYEIdZ88pKlpsakKs0cIKgqsC4IAWnXGs5pCzEWXUSCeEEBwAuv/xyXH755R1/ds899yx67ZxzzsFTTz217Gd+6EMfwoc+9CEew/MNLJEvavElOFY1Bx0kn4U3wfGWqBZqTW5eGU2WZxHgW1ILADHWcJNzBYfjcCqgs67TUZyzb4guyn8DNKesSv0yrBag8yGqOiV5IpQyBBOwoEOHhWZxAQCnCss2Lyr+22zVTCDYqKHJ04+KjRlRjCU4GoRS1MwEUJ9GmaMLejG/ADYrRkbGuX0uAKSjATxnu9WMUU6fmy3VcAb4e1EBNNlfQDVjudFywmqGysFR6AaGQ3D4uqja1Pgqhxhi3ENU5MGb0vh6cDBTtJaAB2+cVnDE7BIaHL1OWMWJJmDBRyiRDDcLAMeqE+a/wbtKBjiuuoJjBYdZE1NuDQDQdZR16jnEM6HbkwfHew0CriU/14Ruj1UDby8qwHUarnNUnXLzswCAkh1GOBzm9rkAySsr07yyCkcPrWIxj6BG8704l1zHBPlRVepNt12KKhNX6AbslJ7grODYLP6vxxE0Of8Te0pUs2WOFRyMLAhYPIkUOdmlUEKmxM/8yilP5dgclCFCx2yiCTTK3D6XJZHyjv0DQDgcRsmmJ3+Op0d2n0WE1QCgLMJRnNke2DEkOCf6Ay7Zs3k2gvRYNYzF+Cs4Lad5JT+CU6Du5EVdQH4WgBolknWOHlosrNiCAQRj3D4XoC1TBCg4pUoNcY00cAbPBs6CoQiOjwgmmItqkas3BFMWrJCAnAWWlMm5RJWVnYuQP5lakdAqmMvzIwtB2kk8xLF3FkMqmUbTpsuT40mM5XsFBSQKinIzZmE6W8R8BlA1yOdyJQtOHpyYEBVrBMmzqSIjeHk7hpEYX4NQAM7hiOd9Zvk8FUEEp0kJDk8PLUaWKkace1VgLGQiL2AN1oue7y9oHYqAIjg+Ipwgp/Qkyqg1OJWoWi2xJ16qsCRRRq7MTw0JULLAmvJxRdhdkLnMLL+PpWSBZ1duhpF40OmCzivcU2u2ELdJODQkYMyi3Iwde39BJ8dGgDwcuXZg9vg68bZqAOD6UXFMQmcPXt6NNhnY4YWnXUOVWjXUTDEPXWblwbOjeIOShbqAMbevQX5hYqa6lbUIYEhJ3eUCRXB8BEvYNTUL5SKnyegthRaQz8I21oDWQqnIb3MNNcmDl7cvBADACKCikVLdYpZfLD1qkZg07/JUgPajspkzMJ/To7fRZjguWMHhuLkyi3jufjIUTssUnjYCTsIu/0R/wDVb4+mhVaUl5yUthmiQ/5hZ/h7PysBGMQsAaAYFJKADzoGOJ/ltUbLEvfs52tcgTz+qRol8VlkTo5SJgiI4PsIIRR2nzGqeU+kkndRlO4RwmLP/BgAEomjS4jt2ehoYjQoCNlGDeJt1MVRonkWJU7Jgud5EgvpCJDhXbwCkozjbqCqc7nOu3HASBUUkGce8p0eOmytzUBWRNwR4WqbwNK/0JOyKyMFhSidPPyrWq01IOT6AED3Q8awMbFFlgbVj4Q0257i20xFo1RDz5ODwJDg2TWYvCzA1FQlFcHxGXuPcNdrbh0rAyRGa5nTnbvAqUaVjbtkaErwNxijYpl3jRBbm8xUkNeK/EUvyJzjhgIEiPS1VcnzuM1FwaA6SiGTusBgPjhhVynj3GmJg/dW4unN7kox5N7wF3EaQUauAlsUnf49VZAmpVgMQpYeXqFVEk1M1o9P3TFB/JBF2DcwnyhagSAZNHWVmiMk1P4t8Ftv7Xy1QBMdnsIcYtyx9gS7GDIwscOuT5DEmHI3zr94APBUcnEhZ1hPqEtV8jiW/8lLKsqW6pyu3gHJ8QX1wWN6QKAdVdvrn6jnE1iGiiIX4GlcCrhqSAj+7BmbVYIfFKDgxTzXjAqf8PZHFCYCnozhHM1aDhkJ1QeXWbK/TmR8VD1DCXlcER6EXMJ8Fbn4WHgdVIcmNAFpU0ucmgTLPEBGNNinYaalFY8mDokiTlSsIA4aAihO4RJIX+S0WC8K6cgPt8jiv06Nt20hQUhYU5aDK3Iw5PsQsb4hKgIJj0gd6kmM1o06TfzVBydyGZ8zzRT4Eh+XzBDk32mRwVSd+flSs+tIQrEgC4JYLx4hkQ1D4UhQUwfEZZXpKt3gRHI+DqgiDMcATO+a0eBi5y4N/HyoGR2XhVMFRpP4bFRH9kShaIWbmluXyeZUi898Q0JUbxEXVqfziRH5r9ToSNBTIu/Myg0a7fYdbYpKMRSg4rh9VmRvBcXydaL857mCNTVHCAic/KpaDJCJpHnBd0E20uPlRhQRaNQBAxOtHxalAgalOTQGJ0SKhCI7PqPI2GfM4qCbDYpQFtlEZnMhCmSb+5uwY0pxaPxwPlr9hcKqUqVC7+ZpAyZZ5nfCaG0wJEtKVG8eFqDiRX6+tf0TQKZ0ZNUZbJT4faNtO1U3NTMA0BGyzni7ovAgOC9EFRVg1AM6Y41oV8/nB77Vl2Yi0SPiShb94I50a4epHVW20ELfFKpIiqhlNqjq1BOVniYIiOD6DOWVqvMpqHQUnhlhQwMkRbokqr3JPRhYqRlzMwwBuLJ1XWS0jC02Bki1TnXjNDdd/QwwpE9HozyldtkPQA2LUPRYqiNqcQlSNMjSLhAKFPRDo3EihxM2Pilk1iFLKvHlfBQ52DflqwwlfxtNiqi9H4iFnTvPI38u3WTUIIjgC+lExB3QRidEioQiOz2g4BCfL5wO9ncQFKTi8S1Sd8lRBZl2Aa8YXswso15sDfx4Lq4lqHwC4Jaomp+oeq8KqZMTcZxFJxqxSryDQfyNIwxsJm5OCQ79709ZhhAWNm6ohpmahxMNDq9VExCYhGFFqCAwTNZ2EMMscbDHminWkKFkICFKd0pGAM6dLucFJWa7ScBL9dUGJ0SLcjEMsAV9QQYUoKILjM1hJJq+HWHt5qhgFh1WzRFoFWBxKVJkNugjjKwaWhJgCnwRHuyq2PBVwJWxe1T2spFYUKWszGeNE2JnqVBRIcEJxmkiKKtDiEO7xWDXEBCX6IxBBUyOfzcX6wBO6FaWGAK5iXePQcHO+UEUSNC9G0Do0DR0lWgjCg5RlBVs1AMeHirNcPjPMzDYVwVHoBU1aosqP4GQBsB44YhQcJmEnUEahOrga4pSnClRDWGVISithrlgb/PPofRZVngq4TtfhFp9u86wSQojDNY6vosoB1uBeJ0wpq+h8mxJ6Efb0EuOS7C/BqgGa5uTv1XnYNVB1r2iHMZaIDv55S4CF7BrFwceczWcRcLpyi9s7mEloJT/4mL1mm6LGHA8Z3JXUiEX2IEMRHIVewGKa3Dw4POWpQqo34MrB3BIc2SlD5OJhTUI5KTgsl0dYQiaAaNJTosoBjESLKgMOmrpjBKbZFlAffNyW46AqTt2LhoPI28T1m4vnkNeqQRTBgRve5uFH1aT3OYcYRgRVMgLufmdxSJxnbVeaMIGAOFLGctZqRQ4hqlJZeFfueCjghqg4KTgxugeJKm0XBUVwfIZNZUpuHhyeJGMRFvEA2hMcORAcncrjItUQZ8xaCfOlwRQc27YRpPlHIVEJmXBbQIRRB5qDq04sUVBYGTCAgKf9CI/To0Xnc01gOX7YNJwHAo/QiXcNiiQ4LLzNw4+K5Zfk7aiwSkbAE+LgMGZWfVk1+Xfl9oLlrPHoKF4piO/KHeOt4Ng2YjbLdVIER6EH6HTBhzkRHNtTJi7KB4d3iSozvhKphrAxJ1DBXKE60Eflq00nITUqqHcWAKRGxmDZZOMeNHRi27Yzx0TeZ94lqhrdoGsCq9V0XUMB1FGcR7jHCROLM9sE3E7XPAoUypTglHRxlYyAa9egc+jtxMioyOIEAGjRNAIedg11qhBW9aiwrtztLVM4pD7UizBBws0sX+3VAkVwfIbBPDiswuA5C7Z9XJKxKILjhnu4EBxanirMqRZwFBxds1HMDbZRLZTqTqKgSLIwEgujANoFPTdYgmOp3nJKapnNvwjwdjNmHb5FO6gWaSIpl1YenjUo7JABOOuQRyPISoF5JIm9z8yuIWIVUakP1kaAVdiJrGQEPHYNlcHvM+vKLZKUcXcUZyqqbSISFZcLJwKK4PgMk5ao6rDbKhn6QqMCrUXyS/KIIhYUG6IKaQ0UioMnwLIck2hSIMExQ2jqYQCD51nMF2tCezoxBAzdKY8uZAcjONmyt6Q2PejQlkTCq+BwkMeNOvmMlmAHVadlCo9WHo5VQxQJgQRHjzAbgcHz91iz30ZAbK+hgLeaccBQsYziBADQqV2DzqEQpFVhFaPi7nOc8xq0PE7zEZGEXQAUwfEZ4UgUFZsm9Q3Ktun7m7YOBGPQdUFx6WACFp06A5eoWi3EqP9GPL1q0JEtC1aGPmjndq//hmhfCKdEdUAPjlzFrd4QWerZFv/ncHpkydxNwQ8xVinDI/nV21tNpILDwj088vcaJbGdxBm81YwDJ/vT+yzKT4aBFVUEeBSCUMIh0hGYd5k48ykj5rGK4Cj0gEiAI9t2+t9EhZn8AQB0HVWDUxd0T4w4lRZkMEZhhfgkC84Xq1IUHACo0QdvdcDk11y5gYRg/w0AiIcDXPtRscRoCCY4NadlSnbwD/P0oRKZZBx0wj0FtAb0o3K+t2inWm8144AKDmu7YkbFJr4yGwEueZJsvxN4n3n3hKsXmYITQzjw6qIMr67RvgbB9cTbViIulmmzTteDdkFnD+6SHcJoSnB8lz7YBzWhy+XzCDr+G+mBPmslsPs8qOrkVXBEqk5xzgoOc8u2Bd/nGk9Hcc86FElwQtRGIIUS8gPmwmk1ZiGQHnRYy8NToDA3gILTbFnO3BCauwfXBZ2HXUOgLv4+x4J8/ahYrlNRi0MTWK0mAorg+Ixo0PAoOAPK456To8jYP+CWTtoDdrrOZWYBAAWI653F4K3gGMSBmYWLLBhAUCwpYyGD5oBEMleqOF25hZ4eOVdRMZNDPSJWWWBJzDyqe9qVVIEhqqgb7hk02d/pJC443ON2QR8sRLVQdhP9RfV0YohTZTluDZ5vaFJF0hCoOiXCnlYNsAf2o2rSvLSyQLNNUVAEx2dEgxz790iK/QOAxUIG1cEevMx/o6iLPx2wHloJuzjQA4HFpGuBpFD/DcDT3G5AglPxOscKJDixkIk8r/ls24hQi3jReRasEsfk0W3esw5FKjjecE92QILDjEYDgsmCV8GZH8BRfL5YF97TiSE1QnIDw1oD9Wq578/xWjWIvM+xkIkagqhy8qNieWllQ2wCuggoguMzokHXZGzQcI+s2D/ghgy0AR8IFWrWVZGweAzPiXeQ+D+zmRdd2QN4pOwB73ONGozV9ChgiMvP4tpRvFGGCRIKNEV6JMFDcBr8FBzRTsaMLCS18sAKDnvwsnCMMND5nEAFC8X+/ajmi3XhPZ0YEqlRx48qn+m/mrFYazpWDcI6toNUX4ZMnds6ZD3sqorgKPSKSNBA1iYJu41BTcZYearIHjgUzKAwMOADoe50EpeweNjpEYPF/9mJxhadkAnXJ2nQXmUssVr0febaUZy+v2EbCEXEORkDgE3N3AZumdJqAHUSysjbYkNUPB3FozT8EhVNcOia0TUbpQES5+dLNeE9nRh0w0BBI3M6n53t+3O8ncRFOwInwvwjA1L2aM5QBMdnBA0dBcq0B27053ExFrqxws1nGfSBIKs8FYAr6WslLJQGKFGlG4aMzrrBOJ/7bJWpz4lg1Ske9oSoONke5BAT7r+h0RyfgStlPHlHeZFu4oBD2ENaA8XiAOO2bSRsQnCSI2IrGWGG0DKIH1Wj0P9+J9OqAQDKlOCUBvCjypYb7pgFq06xkMmtH5VB53RDxh7NGYrg+AxN01ChzHhwgiOnBw7gxpAjreJACbsWJQu2oL4sbfCcePuN/7csG0ZDUkImgHCS3efBHrw2nRuW4Psc42ky5sxngaaVFBoNX4atEmAN4LBLx1y0w2jBEDvukNePqn81pFzKwdRIpY1wggM3f69V7n/MCyU5ZpsMLIRezfc/5rxHwRE9Zp5KKjM4FG0CKQKK4AwBaswefdAqKk8XY9FJxiGPI2mh2uz/gxz/jfTAY1oRnpyFfkNU2XIdSdqHKig6IRNANEkeOIOWqOr0wSu63DoROq5E1R7An8VxBI4hKrjCrq3R6yDVX541GA0aMESZbQKApjl+VIPYCGTnSdilbhuIxSQ8xOhBw6rkYPc5PzKFMmIaPaRI2DuYjUBtgFYe2UpDmuoU41jNyJyyLcFeVCKgCM4QwPXgGDDB0dMDR1gncQoWQ04OWKLqdBKX0aXWW6LaZ5LxvKcPlS7YYAxwO4rH7TKarf79LFgZsC54Y417G/1ZDaDRf9WJdz5HBBOcSDiCkh2ivzfb/wexRpsSVFTA9UkaxLyykKWVjFocmi7+kcCS/eN2EflKf4ejsldJkaDgMFuM1gD3OVeuIwlJidEc3YyDtLTdonlqryYogjMEcD04soN9kNPFWLyk7yUL2Ur/+SzM/pzlmghFW4lqf2OeK9Q8cXTxG2uCtq9IaBVkS5W+PycoKawWD5koI4SGTQnJAPI4S+aWMZ/b/aiy/X+QZw2KzoMD3Ny1QVpMlGgjV9aPSzR0T7uGuT4PGqwrd8OMA7pY8gu46oU1wNwoFdxQoPAQldcLZ8AQVZAaKkKwF5UIKIIzBGhSZjxw0zyvg6rozdVDFjLl/hWcMF08YYEdrh14c3AK/W2ss0Vv9Uaaz7iWgeFRXHIL/SU4NlqWk8MTiIu9z4lQAIDGpUSVhV1kKDjRICcHZkkuxgyskm+QFhNOJ3FZVTJtuXD9HTRYcYIl4ZABAKCkTBvgPrO+fU0tAAQiPEa1JLj1o2rWELRIOb9o9VcEFMEZArgeHIXBbLXpKS6DuPjN1bNJZQaoSHI6iafENtoE4JyaTM1Cqc+u0bOFGlIadTSNis/BgWGiDFJ1UuizRJVUb5Axh5Nik0hjIUJE8vbgvXBaNN8hiwRCptitKhrkdOJla9BOSCE4rJJPHyC83SgQ4lwLpDmMqAt4qhn7Sfa3bRt2hcwNLSJhDcI9aAzSUbxeJASnFkgJNwjl1o+KNQe1NUVwjkcmk8FFF12EVCqFVCqFiy66CNlsdtn32LaN66+/HmvXrkUkEsG5556L5557zvn5wsIC/vt//+847bTTEI1GsWHDBlxxxRXI5TgYdPkFKv1psIF+reKbNaBBlIWcLYHgUPUiptWQLZb6+ohGy0LKJgQnMSKB4ASisHVictcs9ifpzxRqGAElOBEJYTUAJZ2crJkpYq/IlOvOmHXBpMw0dEQCBpcSVVbaXjGSwl2uo0GDT3k7JThZCYn+AGDQOWgOYCPAiGRLVo6F14+qj8NRvtJEnCqShoREfwAIMLuGAVR2dp8bwTSPIS0Lbjk4lEjmEENMZANnQRBKcD72sY/hmWeewQMPPIAHHngAzzzzDC666KJl33PTTTfhlltuwVe/+lX85Cc/weTkJM477zwUCmRCHz16FEePHsXNN9+MZ599Fvfccw8eeOABXHLJJSK/ilAEgxGUWYJjv7F0+r4WNBQQEb+5eqThSq7PB2+h4iTdJUZWcxnWstC0NgfmerN3tWy2UENak0twWOig3xLVhVJd6pjj4eMqqfqEzSziJYRO2nJwBqqiImPO2XHh/eAAz4O30X9FEhuzLeuEzvL3+lRwZotVZz4bMlRUACEaQmcNPvtChYXV0hxGtDzix1cz9gtG2O04IgHxuU68IWwF7t27Fw888AAee+wxnHXWWQCAO+64A9u2bcMLL7yA0047bdF7bNvGrl27cN111+F3f/d3AQB/+7d/i4mJCXz961/HH/3RH2HLli247777nPecfPLJ+MIXvoCPf/zjaDabME3xmwpvsM01ilr/cqKzscZgQxdeRQXdQM2IIdQqodpniWomM4fVGtmURTaf80KLpIHyLAmtleuYSIZ7ev9MvoKUZAWnbiaBOlDvs4IjU6rjBKc8VULlV8hErjp4uEejc7pmis+ziHkeCHYli771IkfBiUtJMmYP3gTKyFebSEV6P2Xr9IQvWt1z4FFw+snBmcnLP2Qwh+fIAA03dda3T8ohI8AnaZ49VxBHVHThigAIU3AeffRRpFIph9wAwNvf/nakUik88sgjHd+zb98+TE9PY8eOHc5roVAI55xzzpLvAYBcLodkMrkkuanVasjn821/hgnRkIHsoHKih2kDkBL/bwxYolqkOSVlRAAzyG1cy4HlLKS0Iub6OD0WCjkENWoEJ2lzZTlazT49ODLlBtKMlEkgku0KTrbvzzGYRbwEB9WIJ8l4oJ5wTg5OXEqIitk1DJILF2hkAYjv9+XAq+D0UUXVlugvaQ3G0oxIllBt9GcEGaD5O4aE+7woyXhAdS9rxxANvfoUHGEEZ3p6GqtXLw47rF69GtPT00u+BwAmJibaXp+YmFjyPfPz8/j85z+PP/qjP1pyLDfeeKOTB5RKpbB+/fpuv4YURAMcEhzLLCEzDk2DcGM0AGg6jqT9PRBKlOAUZTZxG7BUvEErISwjBASiPEe2JJyeV33OjVyxhLhGGxvKOD1ycjM2qG2CjJyFaMANUQ3kKO5ZhzIOGV6ykCn3R3AitJ9cSHACuoMBe8LN5GsY0ajxpaQkY2a4yZTfXtGybITpfTYFVzICtBeV40fVBOr95Umy+ZxBAtFXYYiqZ4Jz/fXXQ9O0Zf888cQTANAxMdC27RUTBo//+VLvyefzeM973oMzzjgDn/vc55b8vGuuuQa5XM75c+jQoW6+qjTEQhxKVD0KTjxoCk/KBOCWSff5EKvlSfVG1ZTQpoGBkoV+zP5qzZYj5yOcFl4JwaA5eUP9xdIr9D5b0AEJbqTxkOlWUfU7n62W45HUlJD8aho6yjojONn+P8gTKpZCcDxkoV+CE21JrGQEBq6imi3WkJas4LA1GNeqWCj0ThbylYYT2pZhiREPmagghCYoKRnwuZKzY6/KEFXPI/6TP/kTfOQjH1n2mpNOOgk/+9nPcOzYsUU/m52dXaTQMExOTgIgSs6aNWuc12dmZha9p1Ao4N3vfjfi8Tjuv/9+BAJLx55DoRBCodCyY/YTXnl80CTjLORI44CnRLXPBy/zOWkEJBpIOSGq3hUc0uCPbFKarHwFuC7PZt/3mZWnJhGR4FRL3IypaVy/Ck41R6oKATltPECJto3+Hwa2Lb1M3EsWfl7q3Y+q2mghQR+88bQkguOYhJb7Ijgz+ar0HBxvUUUhMw+c0JvatVB2E/2lhKjCJpgf1RjyZB2mTuj9gzwH51djiKrnFTg+Po7x8ZX/cbdt24ZcLocf//jHeNvb3gYAePzxx5HL5XD22Wd3fM/GjRsxOTmJPXv24Fd+5VcAAPV6HQ899BD+6q/+yrkun8/j/PPPRygUwr/9278hHO4tUXTYEA0amB9U0veeHCUkNwJuR3Gznu9KmTserGyyGZK0SQFuPyqUMd0jwZkt1JxcFk3Wxgq351WgzwqOFiWSUjq2gyQZHxu0goPO56IdRigkZ303AiSZu++WKfUSaU8BeWXiXkfxfnJwFkp1Z07H0nJDVKZmoVEpoNGyEDC6J94kB0cywTFMlLUoonYZpT7sGjIlb/dzOYn+AJCzYhjT8wOvwyziUtIeeEPYcW7z5s1497vfjT/8wz/EY489hsceewx/+Id/iN/+7d9uq6A6/fTTcf/99wMgoakrr7wSX/ziF3H//ffj5z//OT7xiU8gGo3iYx/7GACi3OzYsQOlUgl33XUX8vk8pqenMT09jVZrgC7APiIa5JCUSf0KMnZCmoLDHrxxu4hyvfd7r9ExS9ukAOeBkNaKPZ8eZ/JVjMg0+aNgknak2V/DTWaKJsvnpK0fFQdFUrSLMUN90JYp9D7XQcIDwisZgTY/qlwfflSZfNHJz5KmSgYisA1SVJBGsWdiRnJw5K/DKusonuvdUTxTbmAE8vKG2CF30HXIvKgydhzRwOsgRNUL/vEf/xFXXHGFUxX1vve9D1/96lfbrnnhhRfaTPr+7M/+DJVKBZdffjkymQzOOussPPjgg0gkyOR68skn8fjjjwMATjnllLbP2rdvH0466SSB30gMokED2UElfY/BmAz/DQAwY+TBm0YRC6V6z8SKJZFKK08FnM0ljRLme9xY20+Oac4DWxpR1o/KLqDWbCFk9vbAZ9VIslSneCjgVPMNTHAkVSMBNNenRFumWK3eexw5vbPiADRpOTgWdOiwUCv0/uDNZUiivwUNuqxu0ZpGHIiL00hrJNF4dQ92DfOFstu0UuLhqBpIAc1jjiNxL8iU6niLRAUnEjCga4SYAOh7Hdplt0xc1kGDJ4SuwNHRUfzDP/zDstccb06laRquv/56XH/99R2vP/fcc/s3tBpS8FFwvA8EORORnfhGtAIy5TrWj/ZWVRSgVQUBSW6kAJwT34hW6EPBqSEtcZNiYMmfI1oB2XIDE8keCU49CwDQJZUBx8OmZ2NdILkpvSZke8pTZRmMMYVLg00OGrEek0GdQwY5jEkhZrqOeiCJcCOLZh8Ep5ydAQCU9DgSEvKzHEQJwRnRCj0l+9eaLbQqeehhuflZAK3mqwBWqXeCs1CSG1bTNEKwMy26Dsv9mbEy9beoxxEU3C5FBF59I34NIho0Bi8T9xgyxUOSLLWj5AEwohEFp1eEaZVMKCmh0SYDVXBGUOi5RJVUb0iO/cNDJNH7fW60LERo7o7oRpsMiZCJDH3Iw2oCtT5yh3yI/YdDYeRt2gSx0ofnEB3zgkXWspQQFdwcNhZO6AWs/UfFkFjJCLStw16S/eeKbrKuHYxL888CgFaYjNnu4z4Xi3mEtCb5i6S9IxEOIGvTddjPfIZrAlmVYLYpAorgDAHaOhn37YPjGozJ2lgdNQREWegFLctG3CIPvois8lTAIWVprYj5Uq0nNbAt9i/JfwOAM+aIVu+555q3D1VQRsd2kBLVGoKoglYu9vFAcPxk7DiikkJUkaCBDHsgDDRmspZlhdYs+sDU+3iIsUabdVmNNhno3pHu0XBzJl915rOsRpsO6JiNau/hnjq1amhpASAY4zqspRAPmVgYZD4369Bpf0MZXlQioAjOECAadJMy7UFDVJAXonJOYVqhZ2UhW647kq208lTA2aSSWgWtRh2lHpKjZwtVt5O4zMToUMLxsyjSkEK38HYS16OSCA5LcNQG2Fy9LQ8kzedY0EQGA0j6nhJxTYM0YzSm8Jm13h+8biWj5BM6HfNoj0rqTFsvuLSAgS0NVt4d7OM+M0uMelB8J3GGeNh0czsHWIOWrcEOSVb4OEERnCGAV8HRajTBsRd4Ooln7Zj0EBWxia/29FbSAJKM2ew112EQhFMA7TSURhEz+e7HPZ2v+hKigqahREMIldxsT2/1lgHLGjNLrmW5KIOEe7K2vB44kaAxmKTv7SQeNKHrch5kZpyUdwfrWVhWb/mJrKGpHZY4nwE32V8rYqbQ/Ro8lq/KLxGnCCTIQSzUzPb8XpbL0pSohMRDx+XC9Qon7SGGqKxnCmcogjMEiHhs4gH07llAw1oWdBQQlXbiZRuModmo9Njper5Yld5PBgCpjKG/L60VMZXrbnNttCx6evRhzACqNIRQ7ZHgZDxEUl7snxCSeWvw02MOkhyBQRzFFzCI6pQFQDqJyxozAAQSrI1AEYVqs6f3skpGTVKzWwdO/l4BU9nuCc7RbNW3NciqGaPNfM9EUnrHdtBk/4Hms5voLyvcyhuK4AwBdF1DIBBC0aalkr2W9FF2XtLjsKFLM/qDGUTdoA0Ki71VcOQzc9BpJ3HZG5VXHj+arXT1lpkCyddJMy8LmaXtAJpBco8aPd7nTLkh3fWVPdznLZZX1s/mKt/XKRo03fL2vkJUnj5UstYgXAV0lFYz9oIAJThMBZIGzxqcynW3BgFgOldx+1BJXoPxEdJbcQQFZCu95RyajiWGPLU6ETI9OWWDzGd5a5A3FMEZEkSDHhWn1zwc5r+hkc05JrFnSINWcLR6LJ0sZEguSVWT10ncgSOPF7pWcKZzFURRk95JnIElkvZaopop16V2EgfcHJzBNlfP6VFSFVUkYHCR9GV1EnfAEudRwEKPBCdIrRoiMisZgbYQ1VSu2nWy/1TOJ+UXLglMa0XMFrpPjLYsG6EG6yQub8ztIapM7x3FfViDvKEIzpAgGjKQ77cfVZvBGKSeHi0Wu+/xgVDO+dBok8FT3t4twZnKefJvjKC0TuIMGj2laz3OjQWPU62sB0LINBA0dD7yuMTearGQwW3Mssw2AXi8nXpzBS7VmohbRA2JyUz0B9w1iCJqTQuZLqswp/3oQ8XgKW2f7SF3L1OuI+lUMspTytqSjO1WH6kP8tcgbyiCMySIBrz29tne3uw5OQKQGv93Syd7eyDUCuRU35DUH6kNfcjj07njNlZJlRAMAXp6DPRYwcF8TmR1EmdYZPbXCywLtiefRdbmGgmag5WJe/rBSatkBNo9ZXogOHNFN6csJMlCwAFbgzohWN2Eim3bbj9o+BTaDmsNLOS6X4dzxbrT/dyQmOvE7BpqGk196FVJ9ST6S32mcIQiOEOCWMjo382YbsbzLfJ+mZPRdB68vVVwtKjdeUt29QbQnmTcZYIjSW70wQOHIpwi9znUyPXk3cN8ThrBJCDRqbZNHu91Y61mnU7iWcSlyeOxoOGWifdKymzbWYekk7jEqhOPItmLad6sp+Rak5gbAsBZgzFUEUAT010oqQulOupNyx8vKgAIxtHUyL9rMdN9sv9cseZL3hBL9i/oVCXvNTLg9aKSmPbAE4rgDAliIU+CY58KznyLhE1khqiCSVbB0VviHStP1WVXbwAeebyAo90qOPmK5+SYFjSwpRFNkwTHlF1AvtJ9pUyT+pxYkn1O4l4343J/IdeSHYJuBmH20Gl6EEQHUXA8ncRJ5ZdEBYc+NFMoYb5Q7vpts4Waf3M6nAY08u+a7lJJZeHkUZ3l4KQFDW4JaBoq1NG3F7uGuWLN7SQusbUEI9l5jRKcXue0p5JRqiLJEYrgDAniIbP/JOMyOaXP081ZpoJjxAjBGUGhp8S7QJWc6o245Ng/0NaPqlBtolhbmTBM5aoYdU5hkk+7cENUI1oBs8Xu4/96hdxnOyq3SoaEqPr0lKGKz4KdlBr7T3TqodUt6BpsaEGUEZJ6yGBqiK7ZKGW7r7Kbz+Xd/CzZc1rXnXGPagUc7ULBYSqPuw4lV34BqFMfm3q+F4JTxxhou5KYvDEzBcfxo+pVSfVpHfKEIjhDgljI03CzVymRVtYsIAldg7TmhACcTWqkB8t1y7IRbmQBAKHkalEjWxpU2h6nJ8HpLk6P07mqL5uUA0+exUyXRLLZshCqEXIhm0iSflR9+uCUKGFHQurJMTZIDy26BotGGqSTuMQQlRFAwyTjrvfQcLOcOQYAaGomNcCUjIibHN1NiGoqT8JZcZuqIT6sQ1ZU0UvV6FyxhlGNziWJpIyR7AW7T7uGtnWoCI7CAGhTcHoNUTkKDmHamswEWE8FR7cKDumPRPtQjfhAcOhpdcwgG+XRFfJwmtTkz49NyoGnh1a393mhXMcI9e0JJOUSnDYFp1kB6t2HTth8XrCTUi0PYiEDNQRRtvvooUXHnNcJUZAaogLQpA/eZrH7B281RwhONZCWnjQPwFPeXuwqyXg6V3HmMzRDariHgbXF6CXsOp8vO0nGUhUcSkrmWn0eNDzrUPZ85gVFcIYEMW+ZeK/lfCU2ERNyy1OBtnyWbhWc2WINY5Qs+BqioiRrpfj/dL6KlmVjFa348EXB8fTQms8Vu3rLXKHu3Gdd8pjjIRMlhNHS6Hzs5fTI5jPkSuMstNuX8kTHnNMowZEZogKc+aFVuic4zQIJszRC8pPmAbiVVF36UR3OVJz5jOio1KR5BoO2azBr3c+Nan7WY2oq716zOThDi096ClFZllu8YidVkrHCYIiFTGQHVHAW/JASPTLzbLcEp1DDKPyLo7MxR60idFg4soKCc3CBqA9rAvQU5seYwynYtIdWMdtd/L9dGpebY0E2Vw1lmpTZmxpCNuJ5iS7GAAnt6ho8yf69Kzis1YNM5QkADOqTFKhn0WhZ3b2JkjIrIj+nDIBr9ocCpnPkELEcDi6U/VVRAYQSbjVjt/e5xTq2B9OAIZ+wOy1TepnP1SzxzgGQQUKViSsMhrg3B6eXJONWw1F8Fuykk1gmDVF3k+rW/GrWG+7xJZ+FJmXCRhIlHJwvLXv5IUpwxh0Fx4cHgm6gZvbWcHOu6B+RZEpiiZWo9nJ6LPkjjWuaRjqK2/0rOHP0YZIIy21OGIi74Z5uS8UN+sDT/VBRAcdZe0wvot6yML3C/nFooYIx+KiiAggn3WT/rkvyy/4QSUayB5nPeTuKBkyVg6MwGOKhPlvb0weHDY04qEreWNkpLKi1UCxku3rLXL6MEad9gA8blRkEQuTBO6oVcGBh+fyQQwskhJW2/T09srYYzS77Uc0X3RCV7AcCO/HlHQ+O/tQQ2dJ4W6JxL6SMXjvTIu+VfdDQ6L/vqNZdqNiybATr5N9Edn6WA6oqrguR9XVgmYNGud70VZFkYKHe0S5D8rZtO0RSk3ww0nXtOLuGPtagzRRJlYOjMABiIRMLNn0YNErdJ2VSpl0NpGFBl6/gBKNoGcQps5Hv7sFbzHhi0pIb5jlgZn8o4uD88vf64EIZGizEWjQ3yqfTo9uPqruNijwQ/Cltj1Oinetncy25SfOypfFYyOivvJ2OebpJDilJnw4aaXQXKs5VGg5hD6d8SPQHnDFPmmT9LbcO2SFjbcC/CioArmLdZbJ/vtpE0ib7hpmQf5/b+1H1sQZBnklKwVEYCPGQiQIiqINOpHKX5Z705Fg20wDkS+MA0AqTRd9tI8gq9ZComQnAkD9eAM4Df1Qj9vbLeeEcXCgjgTJ0GpP26/TI3Gb1LhNJZwtVN0Tlk4LT3+nRdQSOSj45xsOBgRSc6SZ1E/cpVDyqdedHNeshv9I7iTOwakYa+l1OSWVh4hOo2uPXGvTuG93cZ2+Y2PAhtN1WzVie797byfHAIe+Vaj3CEYrgDAkIQ9awgDR5odilkRQlQkWDJHMmZW+scOVxszrXVbuGep50EvetegNwHvgbQuREuJw8fmihjDGmhAQTgBkSPrxOYKGEcH0BzS4SHIuFHEIadZeWnYND5+GcRTfXUvfGaI7tgeQqKoCUdzPDzL7GTFVY6Uoqnc9jWr6r0MmxfNX3hF025pRFFI7lFByW6D8Z8DG0DbikDHkc68I/a87nfMN4yHRUGLTq3Xs7tVk1GNB1H2wEOEARnCEBS6Z0JmO3mytVTVz/DfkEx6BmfaPIIVNeOfHOouRNtrtuG2JkzJsiy8vjpVoT86U6Rh2TP59OjgDCqTUAgDHkujL7a1ClrGVEgKDc7udsHk63GFmY6e6N9TLQIP8WC7b86o1Y0MScTSu/uj1kAG1mm+GAjoCk9hIO6HweRw5zhZXX4FTOP3XPQYwQ9liDKHYHFpY+ZDCCM675mOgPAHFynyNaHQvZlb1wvJYYfpCyRNhEFSE0DLr+u53Tznx+9Zr8AYrgDA3YJJqxGMHp8oFAmXZG8+nkCECPTwAAViG3Yvzftm1oZdamwUeCQytH1ofIiXApeXzfHNl0N4Tpz30kZRqN4Y9rua569zQLZA75UQbMQjRHm5Tg9KhINhBAERH5IaqQh+B0uwabNaBOHrzzdsKXMDF78I5rK69BgDpz+63g0DEbrQqiqOLAfHnJRrL7qcLK1B7fxhyMoWFEAACVzNSKl0/7TCTZAaESpHtAj8+V+VdxmwZAEZyhAZtEc1avCk57trsvmys9iY1rOczkl99cs+UGknSTCvqV3Ag4J95JnWzyS4WoXp4lBOi0BP1efp12Aec+r9JyKxqjVRstBGr+VG8Abpn44XqPCg4rT9WTIC0P5FdRzaFHBYeO2dYMFBD15ZDB5kZcqyKby654+bFsEWnN54TdYBwwCVkY13IoVJvIlDs37H1phqzDaDNLXvBxHTYj5Hc38sdWvHY6V/W18outn1KApgMUe1uHC7bcdim8oQjOkIB5FsyzzbXUbZIxuW7Wp/JUAM7mOqblV+wp421aafrlvwE4p0e2+bw805ngsI11Y5QlN/qpOpExj2Hl+zyT97hFJ+TfZ6bgzNo9Enaq7mWpI7Ds02PMq+DUC0Cji27zZWbkNgIbuj+HjFAClh4k48it/OAt0j5UNjSnolA6NM1RUk9PkPnMDhRelOtNHMlWoMOCWaNhIV/D22TMdhdkYTpfdfP3/FBw6DosGPTfuOt16HETf5W6GAOK4AwNDF1DJGC4D4SumTZ5IBxr+WMwBsCVx7GysjCdr/jmzdIGukklm2TDfH4631EeZwRnbYCGqHzMwXHyLLTciv2zpvOuNK758DBgrsCzjCxUcySUsxKOUyRlnx7jIQN5RNHU6Drq5oHArBqC5CHiR6I/NA0WndOtwsySoR6GWo4l+qcB3ccTOp3TW1Jkbjw/XVh0ySuzJdg2cFK0Bg0+20sAMJMkJB+pL6BSby177TFv/yw/cnDoASFrpMkLPeZ2qhCVAjfEwybmnfh/b0x7qkHKU/1UcLrJDSHJjT7H/gFnzMHaHAxdQ77a7OikygjOat2/TcoBHXNaK2E2t3w1xLS3SsYHIqlpJLyURwy23gNZoPN5ziE4squoSDVjgT0QuglTLbJq8OeBoCfIgzdtZbFQWj7RuDUMif6AM6dPjZF944XpxfOarcG3jFIrh3DaP3sJACa9z+PIrei+XMzPI6BREuSjgpNxwq5dHJxtu83oTxEcBS5oK+nrNkRFHxqH6z4ZjAFtCY4rKjje5EY/FRw6Zq2SwSljpOz7heNOj42W5SY32lnyYszHsFpkBJZGTtvlheXDENO5CsZ9vs9ETdTQCFPVq5vNlc7nYy1/ejqxzTyrp+l4uh9zgRGckD8PX73LdViptxCm+Vm+NLv1gv7+DWFCYl6cXhyi+uUMWZebkywPzt8xa977vEwXdNu2YdFKRssne4k4nYtzvRyca3lSUg5gDqlXrYsxoAjOUCEWMnqr4GjWndPjoYZ/VVRMZh5BEceyy3e6nspVsVrLkr8kJgUPbBlERgFKFraOk5Ph8QTnhekCGi0bybCJUJUSTnp68wW6jhatiGqukOA4nathFbLkL3F/7jNLcKwzgtPN5log32uqlQbgl4IDjx9VF+uwMA0AyOrke/ql4DhK6gqh4um8uwYNaj3gG5xkf7L2OoWKf36EEPXNcRom9nPfALo+0C2U6hixaaK/T2N2OopbPaQ+0DVYNeKoIagUHAU+IB4cnuaE1vLxXUaCbN1Ehvaxku6gCgDRUdiaDl2zUcsvv4Bmsnk36S7uL1lgysab0uS0sneqXR5/9gip9nrzCWlo9CHm65gB54FgVGaWNfs75nmIsQ1ZNthcdEpUu9lci+Q+s9wd2Tk4TjUjejhoFMkDYV5LA/BpDQJtD97pZULFU9kKVtG5ofk9n+mYU1bGCRUf9ZAG27addbiJqjx+zWcHXYbkp/NVrKaHDL/uc8Lxo+rBfoSuwYJJ8pwUwVHggnjIxAILUdnWyvb2dGNtRVbBho5IwJBvMAYAugGbKguR2vyybQ+qWTJmSzOdXjS+4bgEx6cOZtt+/LPDZGN9y9qo28fFJzWEgSU4rmT2R07ptOLEr9Mj3RiLdKPsbnMl18xgBKauISh5PrPNfNY58XahOtF1OEtVH18S/YG2B+/RZZSFqVzVITj+E3YyZqM8h81rSFjyqQOugd6RbAULpToChoYJg3rg+LwGu1XKjuU999kn5ZeR7SO9+FHRNZgzKMFRISoFHoiFTLRgoBpIkxdWkvSplFiPkAXnmzSO4+L/S8SlLctGK0dOB1ZsNVFR/ASN/58SLUPTiFvqTMHdsH56KAsAOHOMenPoAf9Kaimc+D/yy54eZzN5jGrsxOuvPF4w6T3rZnOlStmMnUYsZELT5FrEM1I21cuJl67DaRpW8ztEtWqF3JBDmbKjLAxLuAfFGZx5InmgPukhOD89REjNaZMJmOzfws8wMeBRyvLLEpyjWS+R9PeQcahGG242SkB9acdoAM4aXNCVgqPAEWwilcwuPQuolFgN+09wGFkYw9KLfqZQw4hFkxv93qQAR8GJ1Bdw2gQ54Ty5n2yumVIde2lFx1vS9PvEh4CUOZ5DOce+/njUm5bjYmzrpm+kLLEoYXeF+dysO0rZrJ3ype0IC4kdbTCDwi6S/ek6PEoTo30pEwfafJKWe/AeXCj7Hr50QNcgSnPYeiKZp08ccJXrR14m9//ME0edB++wqE4JrYLp+aXbNRzK+H+fnZYpNRMww+TFLp8r81SR9GMd8oIiOEME1o+q6Jx4Vzg90p+XgiSXxDdpHGjzaFlKWTi4UHZj/36fHAGHlKE0i7dtJKeVh18iG+qPXp6DbQOnTSQwyiqo/N5YgbY8iwNL9M86kq1gFejGG5/wjZQxwu0k7K6khtCfWzrp6O2Hg6rzQOg2KbNZAyrkXh+qk7wd/0JU3SW/HvKsQ9/DPWwN1nL4tRNIv6RfHHUbhv4nXY/vPGXc/bfwex2GU7CpqWI5M71kg+FDC2U30d+n/Y5V1daaNmxWfbaSkkrv8zE7DUApOEsik8ngoosuQiqVQiqVwkUXXYRsNrvse2zbxvXXX4+1a9ciEong3HPPxXPPPbfktRdccAE0TcO//uu/8v8CksEm0oJBy3oLR5d/Q6E9GcxfBYdsrqu0HA4tLE1wXGl8CMhCzJXH37WZjOfB56bRsmx89zkSdtj+hnHnROO7nA84Y16FpQnOIc8J3c8kUra5dm1eSUM9tdA4AM0XouAkGTsNN1dwBWbfSQ/gSI20HfBtHdI1mNZKmMvml0xCPzqfc8OXfs/pcBowCFmYNPJ407oULBt48LljeH46jwPzZQQMDWdtGh2edehxYE63Mkt64RxaqHgUHH9zcACgGWEHupXWIbnPUy1G2BXB6YiPfexjeOaZZ/DAAw/ggQcewDPPPIOLLrpo2ffcdNNNuOWWW/DVr34VP/nJTzA5OYnzzjsPhcJih8tdu3ZJj9GLBDs9ztNyU+RXaOZGN98cjZX64oHDQDedCS3jeMccj3ZpfAjIQoKWyBamsO3kMaSjAcwV67j3J4fw3efIIn//W9c5D17fT45A231eqn/WoUwZq7Rc2/V+IBkh83HKSpMXCivNZ3LPyyFC8P2QxgOGjpCpO6dXVLPLt2sounOjQJPrfVNwIiOwKVkYtTMd3a6rjRZsJ3zpf04ZIQt0jhamceGbyJq89ycH8Y0fHwIA/Obpq5EwLUcpG4Z1qNG9g6zDJQ4a3hCVT+vQ0DUnVFyP0gPdiuuQzOnDTXIwUSGqDti7dy8eeOAB3Hnnndi2bRu2bduGO+64A9/+9rfxwgsvdHyPbdvYtWsXrrvuOvzu7/4utmzZgr/9279FuVzG17/+9bZrf/rTn+KWW27B3XffLeorSAebSDOgVSf5I8u/gZWn6iNt7/cFybUAgEltYVllYdWwxP4BZ8zIH0XA0PGxt20AAFx7/7OoNy28+YQUtqxLtj3EfEdyHQBgjTaPg0sRnIWKW0Hl431ORsh8PNigD9FqDqgt45NE73Mp4K+fDHNgtmgjSOSXUVLpmO34apSobb9vJ15Ng8bWIeY7HjQOZ8rtFVTDcEB01uERfGjrCYgEDPz0cA73PLIfAPDxt5/oKmVG0H9SBrTtdwcXFt/nQrWBcrmMESfR30cllR40KmE6huXmM+DM6UN1llPm48F5QAgjOI8++ihSqRTOOuss57W3v/3tSKVSeOSRRzq+Z9++fZiensaOHTuc10KhEM4555y295TLZXz0ox/FV7/6VUxODoESwAlMHp+y6QJeiWlTZWEO5HpfpUT24KUba6deOG0Kjt8yM9BGcGDb+KNzTsamVaTlRcjU8ZfveyNRCBnBGYawWpKcHGNaDbVSrmNJfluVjI9KWYpurMdqASBEw1TLzWk6n1l5ql/zOUbbNdSj9N4t90Cgcn4z6hLJoViH2kJHhc+7BrVhmM9A2zpclQjhz959mvOj975lLba/YVX7IWMoSJl7n/d3ONAdWqhgHFRF9ZmUsfmYD9I5utx89uSUHahTBedVHKISNvLp6WmsXr349Lh69WpMT08v+R4AmJhoX3gTExM4cOCA8/edO3fi7LPPxvvf//6uxlKr1VCruZ4h+fzyfXz8AlNgjrSYgrPMRLQsZ9FPWykAdX+TjOkmNaFlUKzWkSk3MBoLOj+2bRuvzBaHx38DcENUzQpQySAVHcW/fvIdePjFObxxbRInjROyMzTVGwAQjJG8hWqWqmUlvHFtqu2Sg/NlfGAIlDJ28stXG2R+zOaJKjn+hs5vKDJHYEbY/ZnP7KBRiUwinN/XlYJTC5OwWtDUETJ99A3xKAudHryvzJZ8zwtZBO9BA8B/fcdGvPmENHKVOs45lYVV2BocAuUX8NzneTzb4T4fXPDc59hqX0kZO2jkTJqDs1xkgCmSRhA5kP3vdRWiuv7666Fp2rJ/nnjiCQDomB9j2/aKeTPH/9z7nn/7t3/D97//fezatavrMd94441OonMqlcL69eu7fq9MsI31cDNNXihML+1mXJ4DrAYADUeHIRksPglAQ0hrYhSFRfL4fKmOXLmGCVbdwzY1PxEIu80z6eaaDAfwnjevccmN52dDMWbg/2vvzKOjuq49/bs1SiWVSvOEBsRgJMwkwBAJJ9DGViAxMe10EoeEYMfhmbYxxl6JH447Hb23vMBOVmLH7ZheeK2k7dhu8l4SHKe7jSHPWPGAmGyZeRSDQGhAUg2aarz9x7nn3iqpqiRAcE8V+1tL65Zu3RK7Dmefs8/e++wTEaY6dyVycA2FZJzp7EWR1B3xrB5w17h7wD9sEouK8l6HxEJUeg2sfDdjn5WveONMCMp7/anM22PXezJQ2jmWB+dUey8K1b4hVn8Ob+c55Vm4q7IARoMyFwing1o7n70yvJ1Pd4jTzlwPuwyRY11UlPeCacp4bjLAYkrczdZXLfnatWtx7NixuD/Tpk1DYWEh2tuH70Do7Owc5qHh8HDTUA9PR0eH+pkPPvgAZ86cQWZmJkwmE0wmNqB885vfxKJFi6L+3WeeeQYul0v9aWlpudqvfVPg22Iv+NLZOUlyMPbOE5fyHexFcCnOKV0NHJNFXV0VSt04N0TpT7Z7kI8emKQQYDAJu3ocRsCr7d5wCGIYh63ST7RHJt+3ugbQ7wuiWFLqtzhKbrZ0KpoHJwDZruVZxMR1EQDQCl72QM8QFeA2j8Klr8jssSoGjt7ufMVYKIwx8Z7s8AjRNyIYjfHLxzthdFBpZ3TjdGfvsB1rpzp6MU6QduZ62KFuXmEh+ago/dmbxv5PdI0KjAFXrY25ubnIzR35dOKamhq4XC7s3bsX8+bNAwDs2bMHLpcLtbW1UT9TUVGBwsJC7Ny5E9XV1QAAn8+HhoYGvPDCCwCADRs24Ec/+lHE56ZPn44XX3wRy5Yti/p3rVYrrNabf5Lr1cJPIXb7ZMBRwLaJe1rVvIsIlI4IRwk8g6zSru6dMaMY6G1HUZSJ91R7L4qlLu05gyDlvzPGAW0HY0+8fNA1pQC2nJsnVzz46hHdw87POtXRi1QMatuA9TRwlCTjYEiGP60IFmBUxsKlkN4eHKVAoZm79EeW2WlmBrsQOggtN2TQH0SKmemaLMs43d6LcVwPBTMWRtPOehsLKmHt7AsEca6rD5Py7erbp9p7MUNtZ50NHEUPL4eUPCB/P9sdGC0vSDEkB1LZnKO7wX6d3DDfU1VVFZYsWYLVq1ejsbERjY2NWL16Ne69915MmaIlkVVWVmLbtm0AWGhq/fr12LhxI7Zt24bDhw/jwQcfhM1mw4oVKwAwL8+0adMifgCgrKwMFRUVN+rr3BR4Z+r3BSHz/JBYSh9h4LBEU90qqHLCVo/HLg8xcDo8YSsaQQZWYOTVY/jAKkJyIxDRzseHnIB+OtyQtNiBFMfQT980Us1GmJQQQ3/qCDs4Bl2Alxlr5wP65uBwPdRc+jGMX1lW+0eXMT/is7qh9OdiQzeCIRmnO7Rda23uQXi8Aa1/CGYswHM5dkheNAPHXgRAgkUJyYePd0ElTFwsyHjHPTg9PoO2SBthvOtNEcQjeZ3c0ODaW2+9henTp6Ourg51dXWYMWMG/vCHP0Q8c+LECbhcLvX3p59+GuvXr8ejjz6KuXPn4tKlS9ixYwfsdvvQP590hHcmfxrfwRFj10kUA0f/1aOWG3K0NdKzcLTVLd7AClydgSMKDm0Hx4Xu/oidVMfbPJHtrKNRJkmSmuDYaxkhn4W3c2o2unxMD/Qy2LketWOEZP/+LiAwCEBCpyRAsU0AyGD9NA9OGBGM0MOjrW4YENLys0Tp0+kFgGQAQoHYxwiIpodhIfkiqRvH27R2Pt/VB28ghBKDGOOdlgsXGPV457Rwj2RiGzg3VPrs7Gy8+eabcZ8Zup1YkiTU19ejvr5+1P9OtC3JiYjJaIDNYkS/LwivrZC59F0x8oXCYtJaiErvwVVz217p9aLDM4h8ewp8gRAOt7pxnyAx6QiiJDhGINrACqjtXGLqAfzAsctu3DGeTbAHLzpRLZAhmZFqRlefDz2mPJQAo/NI9jCDTa/tqdywag2FnYIe8LFJLRwuc3oBnD62VtR9kZGWBxhMMIQCyIMTR8NCmE0tTuTCBTMCLMdPhGKbAGA0MVk8rUwPh5aQCPq18gKieX9721EodeFImCF58CJbsJcaugEZuush78+uAb8Skj804njHPZKJvIMKoLOohIO7E3ttilL0nIv+oNIRA/ZitcAYXy3rhqLIky1shXhQOQn4eJsbvkAI5SbBVo6A6g2B83z090VLbgTUVXoJOgHI2HeOtatn0I/TneE5Fvq3c4Ya7lHyWfq7ohf7izDY9fVIqhWY/WnaAYXRFhphRpl7gC0ydNdBg0E1gEulTnxx0am+1dTi1MLEGcXMsBAFroc9UfTQ3QpABoxWbdejCCiLo1KpEwfO9yConEnV1OKEFT5k8jPs9DZwuAdn0K8t6KK1M6D2804DD7kmdpIxGTiCwb0wzhRu4JyN/iDfvZGirXYy9B5cs1kOVLnEds81NrOJ9sB5tjW8wqxsERfJWMiewK7OC0BweNE8IT04WeUAJKTIA8iFG3uamYHz+QUnZBmYZHWy5wSQmffJ7lAqkKp4RKL1aaWdZcc4NeSm1+qR66DHGwSylLy+7tgyw1ECZ78gBg6g9ulyQzsOXWTFIAPBEJouOMUMEwOaHsbpG3CM0+3g2KgoMk8ydcIzGFAT/g+c70ERb2dzmu6Vlx3h5RritbPXw3LhALQpIVfy4BBjCp8QrpgVS7v73PAtfV6PGqt2WpRsd6tJqxmhF8pkkBHoQioG8ckZpuS7TjBPQ1FI2W6dWaaTgFGwF7OVYSgAuC8Of58PBCLJbLKqE1SZ1I7957rhDQTRcJL1iSqrskrPLNdLQhV1q3j44BrNWFDuedO1iVevkGtEgcJ4E0JY33CJ4sEBVJmnpXYjEJKx72w3DpzvgccbQKXaNwTqz0D8viGiDgLqgm6ajS0wdp/pwpVeLw63ulAuKeU9Mst035wQXq5hNDqI1Gx0+63KZ8nAIcYQPqi3GwsASIDPw9z64XQ3s6stFz0hGwDAYRNgYLVlsyq7AMoNHTh22Y2mFicam7uQBycswX6WTJgl0G43gwHIGs9e83blBP2aKzdn0k0Va0SUwXWGrQt9viB2He/AzqPMczYuqOS55EzUSzoVvkWVDa7cG9I8/MHuMwCAvvTxAACzkRUZ04OIAoXxZO46za45k1QDJ1MEPVT0qzqNTbzvHb6M7crhsfMylDCxaP05nqesi/UN4WRWjIUKxWP9fw624u9H2yHLQE2m4q0WSQcj+vPZ4Qvnbq2deZg4kY9pAMjAEQ5ubbv8Ri3jfajSqwPrRLFWjoCqQF8bx04yXv7bT+ALhLAoV9lG6SgdnqypN+qqZsgk1nOeFVs027RjHURBmRAWF7Bibmve/AwXuvtRaPXB6lVW6UIMrqNwj8sy0MXa3mVjXid7innEiuc3CjVEFWGUxZt4NT3UPUwMqO080cw8ev+2/yJ+/8k5AMAU5Z76fyEK8TxlfLzL1r8/R8A91t5WmA0yvrjowoa/HAIALMhSdgYLpIPeQAiD6Up6gNcF9HdHPhg2r+idBzdWkIEjGOrBaAN+bVUzVOmVyQDZE8VJbuQoA9U3Sgcjbq+YxOQUQeGHEctty1c02RN0dzMPQ5F5jt2JFLOmxv91hiJnWp6uNXA4qsEeEaIaYkh62gB/HyAZ0GNmOWV6xv7DQ1RyVgyZAz6WtwUA2YItNJR2Tuu9gOqyTPV2ZaEdjgFFZtH0kPcN9yXAPxD5Hm970WR2lAAGM6SgDz+aoRWSdaSaUWlWQlQCGGXpFpM6fLmDJi3ReGifDptX+M5cysEhxhRubbPV43h2c2hHVF2JE8QaWAHVKBsvteNfvnE7phZl4Kl7bsMsm+JVEEDhhxErDNEVZuCIhiKzrfc8frtiNmaWOPDdeaX47kSf8r4Y7RyxgyNWGIL358wyuAN8u7V+Ayv/t/1BGb4MJY+p51xkETon9+6lAfZCsRYaSshVGnTileXjsWhKHmon5mDzf5kEideZEaR/qNiytRPnw3eOyrKml6LJbDAqCf/A47MM+M/V41Bdlon/+f05MDvFMcoMBkk9I809EAjTw9jzCk/01730yHWS2NInIaoHZ9APjKtkN9uPRD505RS75kyCq02ggRUAcm9j187jWLVsPFbVjme//28tX0E4+OnWHcci73dp7SwcajufwOIpeVhcpVQK/vD/sasgMmekhA2sXGZXCzDoBlKUCS2sP6uxfx1XjmkWEwwSEJIBl6UQ+aYUVtCv55w2YakyT0BQBjzKhCCEHlpsLBTsasE4/3n8r4eUo3EuHmDXtHyt7UVBkpgeXjrA9DC/it13X2JHC0iaMSEUubcBXadhc57Ci99ZzO75B7SyAqLoYaoZ7sEAm1dyJwPnPwY6w8Y7WR6ihyx8legGDnlwBIO7xz2DfqCAHUMRYeCEgkDHUfa6YJp4HpxCRea2w0Ao7AC6dhabRsHtN1+mkSiYzq49Z9nEy2k7rLwvoMw5k9nuL19vZAizTax2jvDg2LI193h4nw6TuVeA2L/BIKn/vtsX0ibbtoPaQ+28b0xTvTeAQHrIxw7etoDYOghEl5nrYF4lYBSkbcOJJnPHMUAOsWMRBDlUOGKreGEUmT2XgYFuZkjmTgnz4AjY5lcBGTiCYQ9f8XLl6W4GfH3aa38/S3zNniBWciPAVjRGC9v9xYvnDTi1fAWuXCKRlqMlEXPjMRTUJuHCGfrIFQ+jSZt4+WQLaINW4fSbL1MUIrZcA2FGezSZZ6ixf723p2qe1IDWlm3hMivGTuF0VQdtFiPMRkGG1GiTmGB9YxhcLoH78zBUmWO0syC5exFbxQui9WdF5rwpkE1WcarjXyeCaCPBUXNwvH4gPU9ZAchAuzLx8oG14HbAYBTPg2M0s9UWoA1U/Ooo073oVUyGrsS6z7LEV1OqEHH0qIR7ywDFkDwf+Z7OaCtHpYji0Ik3wpCcrhpCem9PjajfUxB/4hVOB4ERDUkhGcGQFBLenzuOa4VCBTTKIraKF0xlN3vbgD4lNzKsnQf9IfiDbAs5JRkTY0pEzgIAFM1k14v72PXSZ+yqKI+Qg2uRMoBe3M+ulw5E3hcRLhuXlV8VQ1JICpW+cUlp59bP2VUgQ5IPrJ5BP0IhWZtceft2ntAMybDdSJk69+eI+j3hfUOW2aTAE2FFDBMDmsztR1hOSMAHXD4Y+Z5oFNzO6mR5WtnxDLI8bLwTjszxLDk66NW8OLxvc/0UgAhPqtWuJWyrY7TWzrw/Gw0SGTjE2BKRgwMA4+9k17P/iLyWLwAgqIFTrsh87iN2Patcy2v1kWc0KO2Jsx+xgfUcb2eBZR6vyHyhkU1g58RrZ96fQzLQ6wto7dx+GOjrAs59zH4vmw8YTXAphr3eIVd7uB4WVzMDrK8T6DyuyZw/FbBlixcmBthOGXsxEPQBLXvYpBsYYGc58WRv0bDatQXd2Y9Ybpn7ImAwAyV36CtbLAwGTd/OfsSOOrjcxH4XSQ9Tw8o1ANrYce4j5kU99wn7vbw2Yk7RqxbVWEEGjmDYw2KlsiwD47/M3jj/KVvVcPenYvgItT2VU/EVdm39HHBfBi7sZr/z7yIiZTVsIHVfZLsJznzI7vPvIiJ5VWzC8vcDF/cCZz5g9yvEaecUsxEWpSKxq18Ju+YrSa5nP9RkVvqGKAa7FqIKsKMxyr7E3jizS1iZI5AkYMJC9jpC5juFyQuJCte35jCZS+aynWGiUqG0c/MutgCVQ6y0BD9AVAAiQq6AJvOZXcx743UxT1ThTDH78zVCBo5gcNd4MCRjwB9kK5r0QtYB//0hADIwbg5gZwXRhOyMjnEsB0AOAf/+INvp4yjV8gJExGLTDIN3H2eGjsWuedBExGAAJtex1//xr8yglIzaPUHIHLp6nHwPu376P4DTf2evK78e8Yze/Tk8tAYAuO2r7Hrg98DRv7LXU5YCEEfmYfB2/mIrcHArez3la/rJMxomK+187G/Avt+x18LLrOhb84fAxy+x14LJzI8Q4YfCYsJ/Ygu6jiPAjv/G7t32VcWLKqBH8hohA0cwUs1G9dBM90CA5X9Uf5+92dLIrrO+BwDwB0Po87HiY8INrrNXsasq8wqxTgKOxlCZp38TMKfqJ89omMNl3sOuk+uA9Hz95IlCdho7mqOnXylCOPsH7Nr6ORDyA8Wz1R1hfIWZadP3OA/70N1fM77DtuVfOQkMOlmek+JtENKLCgCV97Ktyr1tbBej1aEaksJSXstKIPh62eRrtADTv6W3VPHJncRCr3JIy4eb+V19ZRpC1lAdTMsBqu5lr4fMK07lGeH68zUg+Ixz6yFJkpporK4ea9dq1XSLZwPVKwEgov6GcNb27B8ARbPY65xJQM1juoozKqqWAROVYl3phcDCf9ZXntFQOh+Y8QB7bXUAd9frKk40+Oqxh68ecyYCtevYa1MKsGST+qwo3pBhyf62bGDxf2evJSOw9AU1+VwUmYdhsgJLngeghKS++hxgTddVpBGRJGDp84BBSW5d+M9AhmDnwEWj7jlWugMA5v2TMLsYOVlDPTgA6898M8LU+4AJiwBAmET/sSCxU6STFHuKGT39fm31mJoFPPIRq9FSNEs9rJJ3RLvVpHp9hMGcAvzwfeDyF0zZLWl6SzQyBiOw4t+YZyF3MpCaqbdEIyNJwPLNwPx/Yl6F9Dy9JRpGluKN6enzaTfv+Ve2MrflqLkKsiwLYyxoR6aETQi1a4FJdzPDgR/vAYENHACY8W0W0g4FgTxBk4uHMuluYF0TS9gVzFCIybjZwLrPWcE8vrATCK6D3eE6mD0BePwzVluteLaamyWsR/IaIANHQLSaBQHtpjUdKJ0X8ZzwsVJzCtsdk0gYTUCpoDs2YmEwsElMUHi4SXWPA2wwHbJdudcbQDDE6m/oPbhmhBf6Cye/ctizQhs4gLh1nOKRWQqgVG8prg57oZobKRrhOTiyLGu7o2zZ7CcM4fvzVUAhKgHJTGUTgnPAF/c57m7kOQ4EISLZaVHc41HgA6vFZIg4IV0PIk5BHwEeessiPSQEhc8RvmAI/b5g3GfJwCFuKGrOQl/8wZW7G2lgJUQmK5oHJwoi1d/gXifnCDIDWugtW+fEaIKIRWpYuYaR9NBJBg5xI8ka5eDKO2q2LfE7IpG8ZEaL/0dBpJUjX/Fyl34sZFlGdz9faOgvN0FEQ5IkNdF4pIWzqodJMK+QgSMgWUN3ncSAPDhEIjDaEJVIyY3cixoIyfB4AzGf6/cF4QuEAFComBCba/GkJjpk4AhI1KTMKGgeHBpYCXEZbX8WaXtqitmIVDPbBu6Ms+LliwyryaA+TxAiMloDR6SFxvVCBo6AZI1yxdvVSx4cQnyibhOPAu/vogys3JPaHWdC4AZOTppF97whgogHn1fi6aFIpRrGAjJwBGS0OQuqB4cMHEJguIexLyycEw3Ryh6MxvOk5d+QDhJio3lwYi+c+31B+INilGoYC8jAEZDRJhmrOTgUoiIExp5iAq9DGa9PO9VjGsQYWLVE49gyqzuoyMAhBGc08wrXQbNRgs2S+CFXMnAEZLRJxvz9nHQaXAlxMRikMG9InHyWXi3cIwKjKddAiwwiURh2ZEoUuA5mJ0nIlQwcAeGTwYA/iEF/9KJMwZCsWuI0uBKio+azxAm7irYrcDQrXgoTE4nCsENvo9DV5wWQPHMKGTgCkpGinS0VK9HYPeCHUtVeGJc+QcRiNMZCt2DGwuiSjJUqxkkyIRDJy2h2UfH3kiUqQAaOgEiSpG6VjdUZ+aCbkWKC2Uj/jYTYcK/M6HYkWW+KTCMxmrCamoOTJBMCkbxwHYwXcu1SQ1Ri6OD1QjOjoGjx0hgGDiU3EglEbjobMK94ovfnYEgWLtwzmiTjbjqmgUgQchUjvLPXG7M6d3jZg2SADBxB0Vz60a1tbmln0sBKJAB5dmbgdPYORn3f2e8DH3OzBAm5jibJWMtZEENmgogFX2T4AiG4B6NX5062hTMZOIIyUg2OK71sYOUTB0GIjGrgeLxR3+cDqyPVDJMgIdfR5A1dURYapIeE6KSYjchIMQGIrYddZOAQN4M8O+tg3FMzlA6lg+bTwEokAHnp8Q2cLgFd43yQ7+rzRXXpD/qDanHCfHvKTZWNIK6F0S40RNLD6+GGGjg9PT1YuXIlHA4HHA4HVq5cCafTGfczsiyjvr4excXFSE1NxaJFi3DkyJFhz+3evRt33XUX0tLSkJmZiUWLFmFgYOAGfZObD58QOjzRXfq8g9LKkUgEuMHe2Rt/YBVp5ch1yxsIRT1wk3tRLSYDMlJNN1U2grgWtFBx4ujh9XBDDZwVK1agqakJ27dvx/bt29HU1ISVK1fG/cwvfvEL/PrXv8Yrr7yCffv2obCwEPfccw88Ho/6zO7du7FkyRLU1dVh79692LdvH9auXQuDIXkcUiNZ2p2K4UMrRyIRyEtn/bTTEz3BUUTXeIrZCLvi0u9wD9dD7kXNS7cmRVE0IvnJs2t6GI0uxfBJlm3iN2zZcezYMWzfvh2NjY2YP38+AOC1115DTU0NTpw4gSlTpgz7jCzLeOmll/Dss8/i/vvvBwC8/vrrKCgowNtvv41HHnkEAPDkk09i3bp12LBhg/rZyZMn36ivogsjdUTy4BCJRK7iwRn0h9DrDcCeEpmUq1YxFmxgzbNb4RkMoNPjxaT89Ij3SAeJRCNeqNgf1JKPaZv4COzevRsOh0M1bgDgS1/6EhwOBz799NOonzl79iza2tpQV1en3rNarVi4cKH6mY6ODuzZswf5+fmora1FQUEBFi5ciI8//jimLF6vF263O+JHdEZyJVIODpFI2CwmpFtjJzjycA/f6SEK6oQQRQ9JB4lEI15kgOd7mgxaHbZE54YZOG1tbcjPzx92Pz8/H21tbTE/AwAFBQUR9wsKCtT3mpubAQD19fVYvXo1tm/fjtmzZ2Px4sU4depU1L+7adMmNQ/I4XCgtLT0mr/XzYIPmh3u4S79UEimXVREwhFvcG1zs5BrQYZYIdd8RZ4O9/BcOPLgEIlGvIVzu5unPVhhMCRHyPWqDZz6+npIkhT3Z//+/QAQNS4ty/KI8eqh74d/JhQKAQAeeeQRPPTQQ6iursaLL76IKVOm4He/+13Uv/fMM8/A5XKpPy0tLVf7tW868RIcnQN+9Uh70Va8BBGLuN4QQQ2ceDJTHhyRaIxmkZEvmA5eD1edg7N27Vo88MADcZ8ZP348Dh48iPb29mHvdXZ2DvPQcAoLCwEwT05RUZF6v6OjQ/0Mvz916tSIz1ZVVeHChQtR/67VaoXVmliGAE9w5PH/jLCcBd45s2xmWEzJk1hNJDc8Dydawm67cq8gQyw9zVfk6YwiM3lwiERDrWYcZXeutshInv581QZObm4ucnNzR3yupqYGLpcLe/fuxbx58wAAe/bsgcvlQm1tbdTPVFRUoLCwEDt37kR1dTUAwOfzoaGhAS+88AIAZjwVFxfjxIkTEZ89efIkli5derVfR2h4gmOH24uJeVqCo+ZKTB5Lm0h+eH9tHxLuCYZk1UOSSB4cbpRRDg6RKHD96urzwRcIRSyQtUWGWDp4Pdyw5X9VVRWWLFmC1atXo7GxEY2NjVi9ejXuvffeiB1UlZWV2LZtGwAWmlq/fj02btyIbdu24fDhw3jwwQdhs9mwYsUK9Zmf/OQnePnll/GnP/0Jp0+fxs9+9jMcP34cDz/88I36OroQa3C95GT1foozk6cjEslPSVYqAOCiM7JeVVevF8GQDIMkXoEx7sGJ5nXS9DD1pspEENdKTpoFKWYDZBm47IrUw3ZBw8TXww2tTvXWW29h3bp16q6ob3zjG3jllVcinjlx4gRcLpf6+9NPP42BgQE8+uij6Onpwfz587Fjxw7Y7Xb1mfXr12NwcBBPPvkkuru7MXPmTOzcuRMTJ068kV/npsNjoW1DOuKlHvb7uCwaWInEYZxiCPD+y+Erx9x0qzDHNHB4+Kl9iEu/3xdQi6KRHhKJgiRJKM5MRXNnHy71DKA8J019rz0JdwXeUAMnOzsbb775Ztxnhu4QkiQJ9fX1qK+vj/u5DRs2RNTBSUb4infohMBXjuMybTddJoK4VrghcMmZOCtH7p1x9vvR5w0gTdnq3qp8B7vVBEeSbKklbg3GKQbOUE+qqIn+14NYyyUiAtWlP9TAIQ8OkYBwD06nx4tBf1C9zw2eIod4A2tGilk1YML1kL+m8BSRaERbOMuyHNanxdPDa4UMHIEpzWIempae/oj7mgeHBlcicchW4v8AcNmlhXwudLP+XZ4jpkeSTwgt3ZoeqjpIiwwiwVBDxWEeHGe/H71KOZKSLDH18FogA0dgwj04PJQXCIbUegUlNLgSCYQkSVHzcLiBU5ot5sDKFxoXwxYaqheVFhlEgjEuigeH62BBhhUpZqMuct0IyMARGO7+7vcF0dPvB8Cs7mBIhsVkUHdZEUSiUBLFK9kiuoGTrXhwwiaE86rMZOAQiUU0HeQGTpmgOnitkIEjMClmo5rRzieBM529AIAJuWlJU06buHWYkMd2bZzuYP1YlmW1b4s6uHLDKzxEdUaRP7w+FUEkAhNymQ5ecg6g38fCUqJ7Ua8VMnAEZ7yyja/5ChtQ+cQw9GRjgkgEbitg5R5OKf24s9eLPl8QBknccE+5qoN9AFhhQv6a9JBINHLSrchOs0CWgeZO1o/PKf1Z1EXGtUIGjuBUFrEJ4fhlDwDNwKGVI5GITFYMgtPtrD+faGPX8Tlpwsb+KwuZDjZ39mLQH8TFnn61CmwyJWQStw5cD091KHqo6OOUAnvMzyQiZOAITmVhBgDgWBvviOTBIRKXyflsAG11DcIz6FcNHG7Ii0i+3YosmxkhmS0wuMwTctNgpDAxkYBMLmDzx8n2XgRDMk5yA6dQXD28FsjAERw+8B+77IY3EMSxVjcAYGZJpo5SEcS14bCZUazUuzl00YWjSn+eUpChp1hxkSRJXWgcvexGU4sTAOkgkbjw/nzwohNnr/Rh0B+C1WSIqGycDJCBIziVhXaYjRI6PV68d6gNvmAIOWkW2r1BJCx3VGQDABrPdmPvuW4AQHVZpo4Sjcz0EgcAYP+5bnx+wQlAfJkJIhbzFB08cL4Hn565AgCYVZqZdB5JMnAEx2YxYXZZFgDg5+8eAcA6pyQlV0ckbh344PqH3edwsWcAJoOEOeVZOksVnzsn5QIA/u/By9inGGX8exBEojE5Px3ZaRYM+kN46e+nAADzJ+ToLNXYQwZOAnBXZT4AwDXAauEsmVaopzgEcV3cXVUAo0FSazstmJSrnvEkKvMqspFmMaLPF0QgJGNyfjomUKI/kaBIkoS6qQUAoB4ay39PJsjASQAeuKMMWTZ2Hk5Zto0MHCKhKchIwfJZ49Tff/TlCh2lGR0pZiMevlOTc83CiTpKQxDXz0MLKmA2skhA7cQcTBvn0FmisUeShx7nfQvgdrvhcDjgcrmQkSFucmM456704T+Od+Br0wtR5KD8GyKxGfQH8ZfPLqE8x4YFSvhHdIIhGe9+cQmpZhO+ensBhYmJhOeLFie+uOjEfTPHwaEsokXnauZvMnASxMAhCIIgiFudq5m/KURFEARBEETSQQYOQRAEQRBJBxk4BEEQBEEkHWTgEARBEASRdJCBQxAEQRBE0kEGDkEQBEEQSQcZOARBEARBJB1k4BAEQRAEkXSQgUMQBEEQRNJBBg5BEARBEEkHGTgEQRAEQSQdZOAQBEEQBJF0kIFDEARBEETSYdJbAD3gB6i73W6dJSEIgiAIYrTweZvP4/G4JQ0cj8cDACgtLdVZEoIgCIIgrhaPxwOHwxH3GUkejRmUZIRCIbS2tsJut0OSpDH92263G6WlpWhpaUFGRsaY/u1kgNonNtQ28aH2iQ+1T3yofeKTKO0jyzI8Hg+Ki4thMMTPsrklPTgGgwElJSU39N/IyMgQupPoDbVPbKht4kPtEx9qn/hQ+8QnEdpnJM8Nh5KMCYIgCIJIOsjAIQiCIAgi6SADZ4yxWq34+c9/DqvVqrcoQkLtExtqm/hQ+8SH2ic+1D7xScb2uSWTjAmCIAiCSG7Ig0MQBEEQRNJBBg5BEARBEEkHGTgEQRAEQSQdZOAQBEEQBJF0kIEzhrz66quoqKhASkoK5syZg48++khvkYThH//4B5YtW4bi4mJIkoR33nlHb5GEYdOmTbjjjjtgt9uRn5+P5cuX48SJE3qLJQybN2/GjBkz1AJkNTU1eO+99/QWS0g2bdoESZKwfv16vUURgvr6ekiSFPFTWFiot1hCcenSJXz/+99HTk4ObDYbZs2ahQMHDugt1phABs4Y8cc//hHr16/Hs88+i88//xxf/vKXsXTpUly4cEFv0YSgr68PM2fOxCuvvKK3KMLR0NCAxx57DI2Njdi5cycCgQDq6urQ19ent2hCUFJSgueffx779+/H/v37cdddd+G+++7DkSNH9BZNKPbt24ctW7ZgxowZeosiFLfffjsuX76s/hw6dEhvkYShp6cHCxYsgNlsxnvvvYejR4/iV7/6FTIzM/UWbUygbeJjxPz58zF79mxs3rxZvVdVVYXly5dj06ZNOkomHpIkYdu2bVi+fLneoghJZ2cn8vPz0dDQgK985St6iyMk2dnZ+OUvf4mHH35Yb1GEoLe3F7Nnz8arr76K5557DrNmzcJLL72kt1i6U19fj3feeQdNTU16iyIkGzZswCeffJK00Qby4IwBPp8PBw4cQF1dXcT9uro6fPrppzpJRSQqLpcLAJvEiUiCwSC2bt2Kvr4+1NTU6C2OMDz22GP4+te/jrvvvltvUYTj1KlTKC4uRkVFBR544AE0NzfrLZIwvPvuu5g7dy6+9a1vIT8/H9XV1Xjttdf0FmvMIANnDLhy5QqCwSAKCgoi7hcUFKCtrU0nqYhERJZlPPXUU7jzzjsxbdo0vcURhkOHDiE9PR1WqxVr1qzBtm3bMHXqVL3FEoKtW7fis88+I09xFObPn4833ngD77//Pl577TW0tbWhtrYWXV1deosmBM3Nzdi8eTMmT56M999/H2vWrMG6devwxhtv6C3amHBLniZ+o5AkKeJ3WZaH3SOIeKxduxYHDx7Exx9/rLcoQjFlyhQ0NTXB6XTiz3/+M1atWoWGhoZb3shpaWnBE088gR07diAlJUVvcYRj6dKl6uvp06ejpqYGEydOxOuvv46nnnpKR8nEIBQKYe7cudi4cSMAoLq6GkeOHMHmzZvxgx/8QGfprh/y4IwBubm5MBqNw7w1HR0dw7w6BBGLxx9/HO+++y527dqFkpISvcURCovFgkmTJmHu3LnYtGkTZs6cid/85jd6i6U7Bw4cQEdHB+bMmQOTyQSTyYSGhga8/PLLMJlMCAaDeosoFGlpaZg+fTpOnTqltyhCUFRUNGyRUFVVlTSbY8jAGQMsFgvmzJmDnTt3RtzfuXMnamtrdZKKSBRkWcbatWvxl7/8BR988AEqKir0Fkl4ZFmG1+vVWwzdWbx4MQ4dOoSmpib1Z+7cufje976HpqYmGI1GvUUUCq/Xi2PHjqGoqEhvUYRgwYIFw0pSnDx5EuXl5TpJNLZQiGqMeOqpp7By5UrMnTsXNTU12LJlCy5cuIA1a9boLZoQ9Pb24vTp0+rvZ8+eRVNTE7Kzs1FWVqajZPrz2GOP4e2338Zf//pX2O121RPocDiQmpqqs3T689Of/hRLly5FaWkpPB4Ptm7dig8//BDbt2/XWzTdsdvtw3K10tLSkJOTQzlcAH784x9j2bJlKCsrQ0dHB5577jm43W6sWrVKb9GE4Mknn0RtbS02btyIb3/729i7dy+2bNmCLVu26C3a2CATY8Zvf/tbuby8XLZYLPLs2bPlhoYGvUUShl27dskAhv2sWrVKb9F0J1q7AJB///vf6y2aEPzwhz9U9SovL09evHixvGPHDr3FEpaFCxfKTzzxhN5iCMF3vvMduaioSDabzXJxcbF8//33y0eOHNFbLKH429/+Jk+bNk22Wq1yZWWlvGXLFr1FGjOoDg5BEARBEEkH5eAQBEEQBJF0kIFDEARBEETSQQYOQRAEQRBJBxk4BEEQBEEkHWTgEARBEASRdJCBQxAEQRBE0kEGDkEQBEEQSQcZOARBEARBJB1k4BAEQRAEkXSQgUMQBEEQRNJBBg5BEARBEEkHGTgEQRAEQSQd/x/Jl1rkm2gyzgAAAABJRU5ErkJggg==", + "image/png": "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", "text/plain": [ "
" ] diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 4f3338f5e..99d499e19 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -96,11 +96,17 @@ def _qbx_lp_general(knl, sources, targets, centers, radius, return result_qbx -def _create_ellipse(n_p): - h = 9.688 / n_p - radius = (h * 1/4) * 1.11 +def _create_ellipse(n_p, mode_nr = 10, quad_convg_rate=0.75): t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) + phi = sp.symbols("phi") + jacob = sp.sqrt(4 * sp.sin(phi)**2 + sp.cos(phi)**2) + + jacobs = sp.lambdify(phi, jacob)(t) + + h = ((2*np.pi)/n_p * np.min(jacobs)) + radius = (h/4) * quad_convg_rate + unit_circle_param = np.exp(1j * t) unit_circle = np.array([2 * unit_circle_param.real, unit_circle_param.imag]) @@ -109,13 +115,9 @@ def _create_ellipse(n_p): normals = normals / np.linalg.norm(normals, axis=0) centers = sources - normals * radius - phi = sp.symbols("phi") - jacob = sp.sqrt(2**2 * sp.sin(phi)**2 + sp.cos(phi)**2) - - mode_nr = 10 density = np.cos(mode_nr * t) * sp.lambdify(phi, 1/jacob)(t) - return sources, centers, normals, density, h, radius + return sources, centers, normals, density, jacobs, radius def _create_sphere(refinment_rounds, exp_radius): @@ -229,8 +231,8 @@ def test_recurrence_laplace_2d_ellipse(): p = 4 err = [] for n_p in range(200, 1001, 200): - sources, centers, normals, density, h, radius = _create_ellipse(n_p) - strengths = h * density + sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p) + strengths = density * jacobs exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) @@ -258,8 +260,8 @@ def test_recurrence_helmholtz_2d_ellipse(): p = 5 err = [] for n_p in range(200, 1001, 200): - sources, centers, normals, density, h, radius = _create_ellipse(n_p) - strengths = h * density + sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p) + strengths = density * jacobs exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) qbx_res = _qbx_lp_general(hknl2d, sources, sources, @@ -282,8 +284,8 @@ def _construct_laplace_axis_2d(orders, resolutions): for p in orders: err_per_order = [] for n_p in resolutions: - sources, centers, normals, density, h, radius = _create_ellipse(n_p) - strengths = h * density + sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p) + strengths = density * jacobs exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) From 58dbac84dfbf46d13450335cc66b6c0cadfd9a6f Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 21 Apr 2025 15:30:01 -0500 Subject: [PATCH 184/193] strengths issue fixed --- test/test_eigenvalues.ipynb | 19 ++++++++++--------- test/test_recurrence_qbx.py | 8 ++++---- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/test/test_eigenvalues.ipynb b/test/test_eigenvalues.ipynb index c546bf093..6b3ab655b 100644 --- a/test/test_eigenvalues.ipynb +++ b/test/test_eigenvalues.ipynb @@ -23,28 +23,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from test_recurrence_qbx import _create_ellipse\n", "n_p = 10000\n", - "sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p, 1.6)" + "a = 50\n", + "sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p, a=a)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Define True Solution for Slender Domains, Steinbach\n", "n = 10\n", - "r = 1/2\n", + "r = 1/a\n", "mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n)\n", "\n", "phi = sp.symbols(\"phi\")\n", - "jacob = sp.sqrt(4 * sp.sin(phi)**2 + sp.cos(phi)**2)\n", + "jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2)\n", "\n", "t = np.linspace(0, 2 * np.pi, n_p, endpoint=False)\n", "true_sol = mu_n * sp.lambdify(phi, jacob)(t) * density" @@ -52,7 +53,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -65,7 +66,7 @@ "\n", "actx = actx_factory()\n", "lknl2d = LaplaceKernel(2)\n", - "strengths = jacobs * density\n", + "strengths = jacobs * density * (2*np.pi/n_p)\n", "p = 7\n", "qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers,\n", " radius, strengths, p)" @@ -73,12 +74,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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rW+tefztt9+OU045Ba7r4sQTT8S111677OfXXXcdzjzzTGzYsAEbNmzAK1/5SnznO99ZdswVV1wBwzCW/du6davw300GiFBQ+UQmojBKZxaVYOy8DVoRCSLTXdMtvmYyvzqKCAURtzLeK0oTbsHHaBQKWddaKBvXDwC22+GqylDB5pwa0MuFtJHh11dQpuElvJJr5qUlBapKyLxXQckp4SOeiyZ/cya1yStJgtLmFfk3qj4nQeXWnOaiyV8zlR0HsQ3Dakh/vzKQToK++MUv4uKLL8Y73/lO3H///TjzzDPx6le/Go899tiKx+/atQuvec1rcOaZZ+L+++/HO97xDlx00UW48cYb+THf/OY38Xu/93v4xje+gTvvvBPHHXccdu7ciSeffHLZa73gBS/A7t27+b8f/OAHUn9XUUgHIconFENvgIYRASgefQ+oLy3xltGCqa9AOvRRlVeFD5ssUQ6j+rppxOgr2JxFeK9gGBgayQR6FWm11ogM6OU2Z0+hYTcdXVNuzTSSZeQp6HgUMHMQSElQpGDNIS87liuH0d9Jhb9mxHJ9ynQOAuCDTFXYLGj4d9myowpIp2hXX3013vrWt+K8884DAFxzzTX46le/io9//OO46qqrjjj+2muvxXHHHYdrrrkGAHDSSSfhnnvuwQc+8AG89rWvBQB87nOfW/ac6667Dv/0T/+Er3/963jzm9/MH280GutG/cmiwTYcFapKf2kBdAkrQ4JsRkZUqCpxHPMJzmXUK4e8KhgiDCNYltx7AvpsGiWIW1ZaHvYWMT1VbNhmXhAJKjqziDCEizY8+AoyShojUq/KGTI9swWEalSVNPyz3OccmEQo1KlXZUlQqJBQpKNrSo5yUNjBS6NrypbwqKStosIgynulAlKv+r7v495778XOnTuXPb5z507ccccdKz7nzjvvPOL4c845B/fccw+CYGVTZb/fRxAE2Lhx47LHH374YWzfvh07duzAG97wBvz85z8v8duoA0X2q1BVKKnWi5swG83Cr+OwQDwVXpXhcAjbSEpBReP6AaDFVBXLiDEYyL8At5j3yG0VX7NhNTCIE1XFU6CqkF+qUaLsCKRSfqBAVeElvJLEjXtVFChu3HtVkgSlQ4Hlr1mUekUkSoVXhQ9eLum9inkumnwSROpVUJIEpWnzCogb+854z3QStH//foRhiC1btix7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bNmyZcILof3793PXXXfx3HPP4Xa7zTZHOlauXFn89/POO4+lS5dy1lln8dhjj3HvvfeaaJkcFAoFFi1axJo1awBYsGABO3bsYN26ddxwww0mW3f8KE/QKaKhoQGbzTbG69PT0zPGO6RQVOPLX/4yTz/9NM8//zwdHR1mmyMVTqeT6dOns2jRItauXcu8efP46U9/arZZprNt2zZ6eno4//zzsdvt2O12tmzZws9+9jPsdjv5fN5sE6XC5/Nx3nnn8d5775ltihS0traO2UjMnDnzjCnoUSLoFOF0Ojn//PPZvHlz2fXNmzezbNkyk6xSnC5omsadd97Jn//8Z/72t78xdepUs02SHk3TyGazZpthOpdeeinbt2+nq6ur+Fq0aBGf//zn6erqwmazmW2iVGSzWd5++21aW1vNNkUKLrzwwjHtON59910mT55skkUnFhUOO4Xce++9rFq1ikWLFrF06VLWr1/Pvn37uO2228w2TQqSySS7du0q/nnPnj10dXURDoeZNGmSiZaZzx133METTzzBX/7yFwKBQNGjGAqF8Hg8JltnPt/4xjdYuXIlnZ2dJBIJNmzYwN///nc2bdpktmmmEwgExuSO+Xw+IpGIyikDvvrVr3LllVcyadIkenp6eOCBB4jH49x4441mmyYF99xzD8uWLWPNmjV87nOf45VXXmH9+vWsX7/ebNNODJrilPLzn/9cmzx5suZ0OrWFCxdqW7ZsMdskaXj++ec1YMzrxhtvNNs006k0LoD2q1/9ymzTpOBLX/pS8blqbGzULr30Uu25554z2yxpWb58uXbXXXeZbYYUXHvttVpra6vmcDi0trY27ZprrtF27NhhtllS8de//lWbM2eO5nK5tBkzZmjr168326QThuoTpFAoFAqFYkKicoIUCoVCoVBMSJQIUigUCoVCMSFRIkihUCgUCsWERIkghUKhUCgUExIlghQKhUKhUExIlAhSKBQKhUIxIVEiSKFQKBQKxYREiSCFQqFQKBQTEiWCFAqFQqFQTEiUCFIoFAqFQjEhUSJIoVAoFArFhESJIIVCoVAoFBOS/w8dlAW0UwJ1OwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 99d499e19..dd1538f0d 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -96,11 +96,11 @@ def _qbx_lp_general(knl, sources, targets, centers, radius, return result_qbx -def _create_ellipse(n_p, mode_nr = 10, quad_convg_rate=0.75): +def _create_ellipse(n_p, mode_nr = 10, quad_convg_rate=0.75, a=2): t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) phi = sp.symbols("phi") - jacob = sp.sqrt(4 * sp.sin(phi)**2 + sp.cos(phi)**2) + jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2) jacobs = sp.lambdify(phi, jacob)(t) @@ -108,10 +108,10 @@ def _create_ellipse(n_p, mode_nr = 10, quad_convg_rate=0.75): radius = (h/4) * quad_convg_rate unit_circle_param = np.exp(1j * t) - unit_circle = np.array([2 * unit_circle_param.real, unit_circle_param.imag]) + unit_circle = np.array([a * unit_circle_param.real, unit_circle_param.imag]) sources = unit_circle - normals = np.array([unit_circle_param.real, 2*unit_circle_param.imag]) + normals = np.array([unit_circle_param.real, a*unit_circle_param.imag]) normals = normals / np.linalg.norm(normals, axis=0) centers = sources - normals * radius From 6db20b6a5065be5d346a96fe9d8fdf3d0d5c8187 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Mon, 21 Apr 2025 16:59:50 -0500 Subject: [PATCH 185/193] IDK --- test/test_eigenvalues.ipynb | 78 ++++++++++++++++++++++++++----------- test/test_recurrence_qbx.py | 25 +++++++++--- 2 files changed, 74 insertions(+), 29 deletions(-) diff --git a/test/test_eigenvalues.ipynb b/test/test_eigenvalues.ipynb index 6b3ab655b..60710f547 100644 --- a/test/test_eigenvalues.ipynb +++ b/test/test_eigenvalues.ipynb @@ -29,8 +29,10 @@ "source": [ "from test_recurrence_qbx import _create_ellipse\n", "n_p = 10000\n", - "a = 50\n", - "sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p, a=a)" + "a = 1\n", + "mode_nr = 4\n", + "sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p, a=a, quad_convg_rate=0.4, mode_nr=mode_nr)\n", + "t = np.linspace(0, 2 * np.pi, n_p, endpoint=False)" ] }, { @@ -39,22 +41,41 @@ "metadata": {}, "outputs": [], "source": [ - "# Define True Solution for Slender Domains, Steinbach\n", - "n = 10\n", - "r = 1/a\n", - "mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n)\n", + "def give_true_sol(n_p, a=2, n=10):\n", + " r = 1/a\n", + " mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n)\n", + " print(mu_n)\n", "\n", - "phi = sp.symbols(\"phi\")\n", - "jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2)\n", + " phi = sp.symbols(\"phi\")\n", + " jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2)\n", "\n", - "t = np.linspace(0, 2 * np.pi, n_p, endpoint=False)\n", - "true_sol = mu_n * sp.lambdify(phi, jacob)(t) * density" + " t = np.linspace(0, 2 * np.pi, n_p, endpoint=False)\n", + " true_sol = mu_n * sp.lambdify(phi, jacob)(t) * density\n", + "\n", + " return true_sol" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.125\n" + ] + } + ], + "source": [ + "true_sol = give_true_sol(n_p, a=a, n=mode_nr)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, "outputs": [], "source": [ "from sumpy.array_context import _acf\n", @@ -66,20 +87,38 @@ "\n", "actx = actx_factory()\n", "lknl2d = LaplaceKernel(2)\n", - "strengths = jacobs * density * (2*np.pi/n_p)\n", - "p = 7\n", + "strengths = jacobs * density * (2*np.pi/(n_p+1))\n", + "p = 3\n", "qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers,\n", " radius, strengths, p)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0017382187504218281\n" + ] + } + ], + "source": [ + "print(np.linalg.norm(np.abs(qbx_res-true_sol))/np.linalg.norm(np.abs(true_sol)))\n", + "rel_err = np.linalg.norm(np.abs(qbx_res-true_sol))/np.linalg.norm(np.abs(true_sol))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "image/png": "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rW+tefztt9+OU045Ba7r4sQTT8S111677OfXXXcdzjzzTGzYsAEbNmzAK1/5SnznO99ZdswVV1wBwzCW/du6davw300GiFBQ+UQmojBKZxaVYOy8DVoRCSLTXdMtvmYyvzqKCAURtzLeK0oTbsHHaBQKWddaKBvXDwC22+GqylDB5pwa0MuFtJHh11dQpuElvJJr5qUlBapKyLxXQckp4SOeiyZ/cya1yStJgtLmFfk3qj4nQeXWnOaiyV8zlR0HsQ3Dakh/vzKQToK++MUv4uKLL8Y73/lO3H///TjzzDPx6le/Go899tiKx+/atQuvec1rcOaZZ+L+++/HO97xDlx00UW48cYb+THf/OY38Xu/93v4xje+gTvvvBPHHXccdu7ciSeffHLZa73gBS/A7t27+b8f/OAHUn9XUUgHIconFENvgIYRASgefQ+oLy3xltGCqa9AOvRRlVeFD5ssUQ6j+rppxOgr2JxFeK9gGBgayQR6FWm11ogM6OU2Z0+hYTcdXVNuzTSSZeQp6HgUMHMQSElQpGDNIS87liuH0d9Jhb9mxHJ9ynQOAuCDTFXYLGj4d9myowpIp2hXX3013vrWt+K8884DAFxzzTX46le/io9//OO46qqrjjj+2muvxXHHHYdrrrkGAHDSSSfhnnvuwQc+8AG89rWvBQB87nOfW/ac6667Dv/0T/+Er3/963jzm9/MH280GutG/cmiwTYcFapKf2kBdAkrQ4JsRkZUqCpxHPMJzmXUK4e8KhgiDCNYltx7AvpsGiWIW1ZaHvYWMT1VbNhmXhAJKjqziDCEizY8+AoyShojUq/KGTI9swWEalSVNPyz3OccmEQo1KlXZUlQqJBQpKNrSo5yUNjBS6NrypbwqKStosIgynulAlKv+r7v495778XOnTuXPb5z507ccccdKz7nzjvvPOL4c845B/fccw+CYGVTZb/fRxAE2Lhx47LHH374YWzfvh07duzAG97wBvz85z8v8duoA0X2q1BVKKnWi5swG83Cr+OwQDwVXpXhcAjbSEpBReP6AaDFVBXLiDEYyL8At5j3yG0VX7NhNTCIE1XFU6CqkF+qUaLsCKRSfqBAVeElvJLEjXtVFChu3HtVkgSlQ4Hlr1mUekUkSoVXhQ9eLum9inkumnwSROpVUJIEpWnzCogb+854z3QStH//foRhiC1btix7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bNmyZcILof3793PXXXfx3HPP4Xa7zTZHOlauXFn89/POO4+lS5dy1lln8dhjj3HvvfeaaJkcFAoFFi1axJo1awBYsGABO3bsYN26ddxwww0mW3f8KE/QKaKhoQGbzTbG69PT0zPGO6RQVOPLX/4yTz/9NM8//zwdHR1mmyMVTqeT6dOns2jRItauXcu8efP46U9/arZZprNt2zZ6eno4//zzsdvt2O12tmzZws9+9jPsdjv5fN5sE6XC5/Nx3nnn8d5775ltihS0traO2UjMnDnzjCnoUSLoFOF0Ojn//PPZvHlz2fXNmzezbNkyk6xSnC5omsadd97Jn//8Z/72t78xdepUs02SHk3TyGazZpthOpdeeinbt2+nq6ur+Fq0aBGf//zn6erqwmazmW2iVGSzWd5++21aW1vNNkUKLrzwwjHtON59910mT55skkUnFhUOO4Xce++9rFq1ikWLFrF06VLWr1/Pvn37uO2228w2TQqSySS7du0q/nnPnj10dXURDoeZNGmSiZaZzx133METTzzBX/7yFwKBQNGjGAqF8Hg8JltnPt/4xjdYuXIlnZ2dJBIJNmzYwN///nc2bdpktmmmEwgExuSO+Xw+IpGIyikDvvrVr3LllVcyadIkenp6eOCBB4jH49x4441mmyYF99xzD8uWLWPNmjV87nOf45VXXmH9+vWsX7/ebNNODJrilPLzn/9cmzx5suZ0OrWFCxdqW7ZsMdskaXj++ec1YMzrxhtvNNs006k0LoD2q1/9ymzTpOBLX/pS8blqbGzULr30Uu25554z2yxpWb58uXbXXXeZbYYUXHvttVpra6vmcDi0trY27ZprrtF27NhhtllS8de//lWbM2eO5nK5tBkzZmjr168326QThuoTpFAoFAqFYkKicoIUCoVCoVBMSJQIUigUCoVCMSFRIkihUCgUCsWERIkghUKhUCgUExIlghQKhUKhUExIlAhSKBQKhUIxIVEiSKFQKBQKxYREiSCFQqFQKBQTEiWCFAqFQqFQTEiUCFIoFAqFQjEhUSJIoVAoFArFhESJIIVCoVAoFBOS/w8dlAW0UwJ1OwAAAABJRU5ErkJggg==", + "image/png": "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eMUVV4gAOi2g88EHH4hjx44VU1JSxMGDB4tPP/10j1VNjn7f3c2IPrqCivT3GzZsEM8//3wxPT1dzMjIEH/60592KpQfj3PRnUi+U7FUNYnkfUW6/56qmhz9Xrvadt68eWJJSYl8Ta9YsUJ0u93iDTfcII4ZM0bMzMwUU1JSxOHDh4v3339/RIue9OVajKZyRSTX69GvF+l76+r4GhoaxFNOOUXMycmRr5tIr2NRFMWBAwd2We2pq/frcrnEW265RSwqKhJtNps4ZsyYLqsZRLpdIraN5n7T2/UXyXXc1XdDuv4iqTYQyT56Os5o7iH//ve/RQDili1bOvx84MCB8iqWAMQDBw7IvzvjjDPEv//97/J/d3efl/420u9dpOe9u88yEd+xaK4FUQwu7pKWliY2NjZ2ud9o2klRFMXPPvtMnDFjhlhUVCSmpKSIw4YNE++44w6xtra2w3ZTp07t9jiPbveieU+R7j+S9y6KorhgwQJx7NixYlZWlmg2m8X8/Hzxoosu6rCwYbhozmm4ntpwJT+naPYfzWcf7fe0O4Iotif99NErr7yCq6++GnfeeSceeeSReLwk9dEHH3yA8847D1u2bJF7M0k95s+fj9///veoqalJeI42UaLxfhO9oydXHjhwQB7ePvPMM3HllVfKcw2mTZuG6667DldeeaWCR0xEfdX3pQ7bXXXVVaisrMRdd92FtLS0Hof5KDlWrFiByy+/nI0gESUc7zdERL2LW483EUWHPd5ERETGwsCbiIiIiCgJErJyJRERERERdcTAm4iIiIgoCRh4ExERERElQdyqmpC6BAIBVFRUICMjIyFL1BMREVH8iaIIl8uFkpISmEzsH9UbBt46VVFRgdLSUqUPg4iIiGIQXted9IOBt05lZGQACF64mZmZCh8NERERRaKxsRGlpaVyO076wsBbp6T0kszMTAbeREREGsM0UX1i8hARERERURIw8CYiIiIiSgIG3kREREREScDAm4iIiIgoCRh4ExERERElAQNvIiIiIqIkYOBNRERERJQEDLyJiIiIiJKAgTcRERERURIw8CYiIiIiSgIG3kREREREScDAm4iIiIgoCSxKHwBpS0VDKx5f/j1GFGXg4hMHICfNpvQhURTafH588HUldlQ1YXhROs49rgQ2C5+/taSuqQ3/2lyBI81tOGVIHiYPzVP6kChK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", "text/plain": [ "
" ] @@ -90,18 +129,11 @@ ], "source": [ "import matplotlib.pyplot as plt\n", - "plt.plot(t, qbx_res, label=\"qbx\")\n", - "plt.plot(t, true_sol, label=\"true\")\n", + "plt.plot(t, qbx_res-true_sol, label=\"qbx\")\n", + "plt.title(\"QBX order: \"+str(p) + \", Number of points on disk: \" + str(n_p) + \", rel. err $l_\\inf$: \" + str(rel_err))\n", "plt.legend()\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index dd1538f0d..730d436fe 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -232,7 +232,7 @@ def test_recurrence_laplace_2d_ellipse(): err = [] for n_p in range(200, 1001, 200): sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p) - strengths = density * jacobs + strengths = jacobs * density * (2*np.pi/n_p) exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) @@ -261,7 +261,7 @@ def test_recurrence_helmholtz_2d_ellipse(): err = [] for n_p in range(200, 1001, 200): sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p) - strengths = density * jacobs + strengths = jacobs * density * (2*np.pi/n_p) exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, helmholtz2d, g_x_y, 2, p) qbx_res = _qbx_lp_general(hknl2d, sources, sources, @@ -285,7 +285,7 @@ def _construct_laplace_axis_2d(orders, resolutions): err_per_order = [] for n_p in resolutions: sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p) - strengths = density * jacobs + strengths = jacobs * density * (2*np.pi/n_p) exp_res = recurrence_qbx_lp(sources, centers, normals, strengths, radius, laplace2d, g_x_y, 2, p) @@ -298,6 +298,21 @@ def _construct_laplace_axis_2d(orders, resolutions): return err + +def give_true_sol(n_p, a=2, n=10): + n = 10 + r = 1/a + mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n) + + phi = sp.symbols("phi") + jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2) + + t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) + true_sol = mu_n * sp.lambdify(phi, jacob)(t) * density + + return true_sol + + def plot(): import matplotlib.pyplot as plt orders = [6, 7, 8, 9] @@ -307,10 +322,8 @@ def plot(): fig, ax = plt.subplots(figsize = (6, 6)) ax.set_yscale("log") - orders_fake = [12, 14, 16, 18] - for i in range(len(orders)): - ax.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), label="$p_{QBX}$="+str(orders_fake[i])) + ax.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), label="$p_{QBX}$="+str(orders[i])) ax.set_xlabel("Mesh Resolution ($h$)") ax.set_ylabel("Relative Error ($L_{\infty}$)") plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error $(u_{qbxrec}-u_{qbx})/u_{qbx}$") From 7c5db87054ab0d9348ed18db00ae9a2775415599 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 23 Apr 2025 15:02:52 -0500 Subject: [PATCH 186/193] Added code to plot true solution --- test/test_eigenvalues.ipynb | 162 +++++++++++++++++++++++++++--------- test/test_recurrence_qbx.py | 71 +++++++++------- 2 files changed, 163 insertions(+), 70 deletions(-) diff --git a/test/test_eigenvalues.ipynb b/test/test_eigenvalues.ipynb index 60710f547..64d3756a3 100644 --- a/test/test_eigenvalues.ipynb +++ b/test/test_eigenvalues.ipynb @@ -28,10 +28,10 @@ "outputs": [], "source": [ "from test_recurrence_qbx import _create_ellipse\n", - "n_p = 10000\n", - "a = 1\n", - "mode_nr = 4\n", - "sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p, a=a, quad_convg_rate=0.4, mode_nr=mode_nr)\n", + "n_p = 1000\n", + "a = 2\n", + "mode_nr = 10\n", + "sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p, a=a, quad_convg_rate=100, mode_nr=mode_nr)\n", "t = np.linspace(0, 2 * np.pi, n_p, endpoint=False)" ] }, @@ -44,7 +44,6 @@ "def give_true_sol(n_p, a=2, n=10):\n", " r = 1/a\n", " mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n)\n", - " print(mu_n)\n", "\n", " phi = sp.symbols(\"phi\")\n", " jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2)\n", @@ -59,23 +58,6 @@ "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.125\n" - ] - } - ], - "source": [ - "true_sol = give_true_sol(n_p, a=a, n=mode_nr)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, "outputs": [], "source": [ "from sumpy.array_context import _acf\n", @@ -87,28 +69,29 @@ "\n", "actx = actx_factory()\n", "lknl2d = LaplaceKernel(2)\n", - "strengths = jacobs * density * (2*np.pi/(n_p+1))\n", - "p = 3\n", + "strengths = jacobs * density * (2*np.pi/(n_p)) \n", + "p = 11\n", "qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers,\n", " radius, strengths, p)" ] }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "true_sol = give_true_sol(n_p, a=a, n=mode_nr)\n", + "rel_err = np.max(np.abs(qbx_res-true_sol))" + ] + }, { "cell_type": "code", "execution_count": 6, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0017382187504218281\n" - ] - } - ], + "outputs": [], "source": [ - "print(np.linalg.norm(np.abs(qbx_res-true_sol))/np.linalg.norm(np.abs(true_sol)))\n", - "rel_err = np.linalg.norm(np.abs(qbx_res-true_sol))/np.linalg.norm(np.abs(true_sol))" + "h = 9.69/n_p" ] }, { @@ -118,7 +101,17 @@ "outputs": [ { "data": { - "image/png": "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eMUVV4gAOi2g88EHH4hjx44VU1JSxMGDB4tPP/10j1VNjn7f3c2IPrqCivT3GzZsEM8//3wxPT1dzMjIEH/60592KpQfj3PRnUi+U7FUNYnkfUW6/56qmhz9Xrvadt68eWJJSYl8Ta9YsUJ0u93iDTfcII4ZM0bMzMwUU1JSxOHDh4v3339/RIue9OVajKZyRSTX69GvF+l76+r4GhoaxFNOOUXMycmRr5tIr2NRFMWBAwd2We2pq/frcrnEW265RSwqKhJtNps4ZsyYLqsZRLpdIraN5n7T2/UXyXXc1XdDuv4iqTYQyT56Os5o7iH//ve/RQDili1bOvx84MCB8iqWAMQDBw7IvzvjjDPEv//97/J/d3efl/420u9dpOe9u88yEd+xaK4FUQwu7pKWliY2NjZ2ud9o2klRFMXPPvtMnDFjhlhUVCSmpKSIw4YNE++44w6xtra2w3ZTp07t9jiPbveieU+R7j+S9y6KorhgwQJx7NixYlZWlmg2m8X8/Hzxoosu6rCwYbhozmm4ntpwJT+naPYfzWcf7fe0O4Iotif99NErr7yCq6++GnfeeSceeeSReLwk9dEHH3yA8847D1u2bJF7M0k95s+fj9///veoqalJeI42UaLxfhO9oydXHjhwQB7ePvPMM3HllVfKcw2mTZuG6667DldeeaWCR0xEfdX3pQ7bXXXVVaisrMRdd92FtLS0Hof5KDlWrFiByy+/nI0gESUc7zdERL2LW483EUWHPd5ERETGwsCbiIiIiCgJErJyJRERERERdcTAm4iIiIgoCRh4ExERERElQdyqmpC6BAIBVFRUICMjIyFL1BMREVH8iaIIl8uFkpISmEzsH9UbBt46VVFRgdLSUqUPg4iIiGIQXted9IOBt05lZGQACF64mZmZCh8NERERRaKxsRGlpaVyO076wsBbp6T0kszMTAbeREREGsM0UX1i8hARERERURIw8CYiIiIiSgIG3kREREREScDAm4iIiIgoCRh4ExERERElAQNvIiIiIqIkYOBNRERERJQEDLyJiIiIiJKAgTcRERERURIw8CYiIiIiSgIG3kREREREScDAm4iIiIgoCSxKHwBpS0VDKx5f/j1GFGXg4hMHICfNpvQhURTafH588HUldlQ1YXhROs49rgQ2C5+/taSuqQ3/2lyBI81tOGVIHiYPzVP6kChK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", + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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O9jtdsydOxdLly7FM888ozmt0XbXUh+1HDp0iKoNW79+vUtLevbsWaxYsYLqk7hy5cquja+HDx92aVzT09Px9ddfo379+jxta5cuXeDv748OHTpgzpw5stqXiIgIvPrqq7ruS8v9ATku8saOHYsLFy64Nou88sor2Lp1K5YuXYpff/0VdrsdkydPxrBhw1zXHTlyBHXr1gUAjBw5Etu3b8fmzZsRHByMXr16Yc6cORgyZAiAnElQZmYmUlJSNLmMdFKyZElYrVZcv35ddM7pHkhppadkyZIuzbGzXkLU2KAKNThm5auEnnL0ahOVKF26NKZMmYIpU6bg0qVL+Pvvv/HJJ5/g1q1bWLNmje58nZumjb77NO7cuYObN29i0qRJIpeZQE779urVCytWrNBUp7p162LRokUibdvRo0cB8F1q1atXj+pn1rkC5tw0qiVPLXUFcgTQ0aNHY/To0fjf//4nmU4tWuuqVL7a5zRlyhTVz1PvsxfCXalU+z0GBgZi//79vOM1atSQLYeG2neHy7179+Dt7a1aAHZmqAm17qe0uEjr0aOHyAVKdna2y4XUzp07qdfrdZGmtTw9Lruys7NJZGQkqVKlCtm8ebPo3/vvv08AkH/++UdVOZ06dSIAyLlz5wghOfZHNHbv3k0AkFdeecXQfau55zNnzhCLxUI++ugj0blVq1YRAGTBggXUawu6i7R79+6RkiVLklq1arlcXGlJS4i57S5VhloyMjIIADJ69GjecacdrfMZzp49m9SvX5+aR58+fVx2kVWqVCF+fn4kODiY2Gw2UqFCBde76SQ9PZ1ER0eT6tWra66vVtTen5N+/fq57PQJISQmJoZ8//33vDSlSpXi3VO/fv3IjBkzyLVr10hAQAC5evWq69ycOXPISy+95Prt3Atw+PBhUV2lbOmFtqjNmjUj4eHhJDU11ZXGbreTunXr8myCp06dSgCQhIQEUVkdO3Yk9evX12WHLWfzryVfIzbBasuRq6vS3gW99X3yySdJaGioqjxppKenk5CQENKkSRPdecjZVaalpVHHntjYWOLj40M2b95Mjh49qrlOzr598eLFvONdunQRuTNbu3YtAUDGjRvHSzt58mQCgGzfvl1znlrqOnbsWNWu55wo2apqqaua8tU+Jy3PU8+zF3Lv3j1StmxZ0qBBA9cxI/2JEKV2VvvucOnUqRNp2LChpnroN3pTyaZNm6iRd7p164YWLVpgypQpGD58OFq2bIm3334bFSpUcAUT2Lt3L6ZMmYLmzZubUpe8LG/16tW4du0avv76a+oyQJ06dTB9+nTMmzcP3bt35507duyYa1n57t27WLZsGdavX4/evXu7NB+xsbEoV64cevTogZo1a8LhcCA+Ph6TJk1CQEAAT4Nl5L7lnl+VKlXw9ttv45tvvsGDBw/QrVs3+Pr6upyIx8TEiByna4HbDlyqVKmiyguJketLliyJESNG4KOPPsLvv/+O/v37a05r5vsmVx8PDw+0adMGGzdulLzey8sLjz32GP766y/0798fvr6+WLFiBSZOnAgg11729u3b1GXj9PR0rF+/HvPnz0dycjLOnTuHU6dOoWrVqsjIyMDgwYMxbNgw/P33365rXn/9dZQtWxb79u3D9u3b0apVK8X71Iva+3Ny+PBh17Kkw+FAQkICT4t89epVZGZmukwogBxN8BtvvIENGzYgPT2dZw5it9t52ijnN79nzx7XrnGtjB8/Hp06dUK7du3wwQcfwMvLCzNnzsSxY8ewaNEil2bTqZ3+/vvvMXDgQHh6eqJGjRoIDAzE999/j5YtW6JVq1Z48803UalSJSQlJeHMmTP4559/RMFq1GIk361bt6JDhw4YOXIkRo4c6bZyzOLhw4do164dXnjhBdSsWdOl6VqzZg2eeuopVzo13yGXFStW4N69e7JaTKm2Wr16NVJSUpCUlAQgx8THudrYrVs3+Pn5wcfHhzr2LFy4EDabjXpOTZ26du2KTp064c0330RiYiKqVq2KRYsWYc2aNfj11195q1qdO3dGjx49MHbsWDgcDjRt2hQHDhzAmDFj0L17d7Rs2VJznmrrOmnSJIwcORJdunTBE088IdIqCvddqGlTLXVVW76W56Q2ndZn/8ILL6BChQqIiYlB6dKlcfr0aUyaNAk3b97EwoULXenM+B7VtrPad8eJw+HAvn378MorryjWgYcmkZlo1wRL/ePOsnfv3k2eeeYZEhYWRjw8PEiZMmXIU089RXbt2iVbhlZNsN7y9Ggmn3zySeLl5UVu3bolmeb5558nHh4eIo8a3H/BwcGkQYMGZPLkySQ9Pd117R9//EFeeOEFUq1aNRIQEEA8PT1JhQoVyIABA6gaIa33rfb5ORwOMmvWLBITE0P8/PyI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Xr3QvHlz7N27F0eOHMHzzz+PwYMH44MPPhCl37BhA65fv47Tp09jzJgxGDduHObPn+86P3PmTFy8eBETJkxwHfviiy9w48YNTJs2TXP9pCCEIDs727T8uNjtdjgcDlVpU1JS0KJFC979CklNTUWXLl3wv//9z6wqFgmysrLclndB6lsIIXj55ZfRp08f6vnExER06tQJkZGR2L9/P6ZNm4Zvv/0WkydPdqU5f/48unXrhlatWuHQoUP43//+h6FDh+LPP/90pdm9ezf69OmDAQMG4PDhwxgwYACee+457N271y339ddff7kmd0IyMzNV5/PCCy8gPj4ea9aswZo1axAfH48BAwbIXjNx4kRMnjwZ06dPx/79+xEeHo5OnTohKSnJlWb37t3o0qULOnfujH379mH//v14++23YbXmDvGZmZl49tln8eabb0qWNXnyZHz66af45JNPcPz4cWzcuBGxsbGu8+fOnUOvXr3Qvn17xMfHY+3atbhz5w6eeuopV5odO3bgxRdfxCuvvILjx49jyZIl2L9/P1599VVReRcvXsQHH3yAVq1aUeujpt/v0qULL82qVatc51JSUtC5c2dYLBZs2rQJO3fuRGZmJnr06EHt9z766CNERkaKjsfFxSE0NBS//vorjh8/jk8//RQjRozA9OnTRWmzsrLQt29f6j1lZGQgNDQUn376KerXr0+9599++w2ffPIJRo0ahRMnTmDevHn4448/MGLECFea+/fvo0WLFvD09MTq1auRkJCASZMmuYTu1NRUHDx4EJ9//jkOHjyIZcuW4dSpU+jZs6eovNdee43Xfj/88AO1XkUWwlCFw+EgX3/9NalcuTLx8fEh9erVI0uWLHGd37x5MwFA7t+/TwghZMGCBSQ4ONh1ftSoUaR+/fqu3wMHDiS9evUio0ePJqGhoSQwMJC8/vrrJCMjw5VmyZIlpE6dOsTHx4eEhISQDh06kOTkZNf5+fPnk5o1axJvb29So0YNMmPGDEP3QAghx44dI926dSOBgYEkICCAtGzZkpw5c8Z1ft68eSQqKop4eXmR8PBwMmTIENVt+ODBA+Lp6UkWL17sOnb16lVitVrJmjVrJK8Ttp0eLl26RDw9Pcl7770nOjd16lQCgOzZs4cQQsj58+cJAHLo0CFeuvbt25O33nqLd+yvv/4iXl5e5PDhw+TAgQPE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pmuuuUbp6elml2MZu3bt0pVXXqno6GgtWLBA69atU1pamtllWcaaNWv0ySef8I2TF5MmTdLq1atVXV2tlStX6vDhw8rPz9exY8fMLs0SvvzyS1VWVmr06NGqrq7WggULtGjRIq1evdrs0mBhEWYXAGtyuVwef7vd7k63AV25//779Y9//EMffvih2aVYypgxY1RfX68TJ07oT3/6k0pKSrRlyxaCsKT9+/frwQcf1KZNmxQTE2N2OZZTWFjY8XtGRoby8vI0cuRIvfbaayorKzOxMmtob29XTk6OnnnmGUnShAkT9Nlnn6myslJ33XWXydXBqugJhodBgwYpPDy8U69vU1NTp95hwJsHHnhAb7/9tjZv3qzhw4ebXY6lREVFadSoUcrJyVF5ebmysrL0+9//3uyyLKGurk5NTU3Kzs5WRESEIiIitGXLFv3hD39QRESE2trazC7RUvr27auMjAx98cUXZpdiCUOHDu30YXLs2LGc0A2fCMHwEBUVpezsbNXU1HjcXlNTo/z8fJOqgh243W7df//9+vOf/6z3339fqampZpdkeW63W62trWaXYQnTp0/Xrl27VF9f3/GTk5OjO++8U/X19QoPDze7REtpbW3V7t27NXToULNLsYTJkyd3mpLx888/V0pKikkVwQ4YDoFOysrKNHfuXOXk5CgvL09VVVVqbGzUggULzC7NdKdOndLevXs7/t63b5/q6+sVHx+v5ORkEyszX2lpqd544w299dZbio2N7fg2IS4uTldccYXJ1ZnvN7/5jQoLC5WUlKRvv/1Wa9as0QcffKB3333X7NIsITY2ttP48b59+2rgwIGMK5f08MMPq6ioSMnJyWpqatJTTz2l5uZmlZSUmF2aJTz00EPKz8/XM888o5/85Cf6+OOPVVVVpaqqKrNLg5W5AS8qKircKSkp7qioKPfEiRPdW7ZsMbskS9i8ebNbUqefkpISs0sznbd2keR+9dVXzS7NEu69996ObWrw4MHu6dOnuzdt2mR2WZZ27bXXuh988EGzy7CEOXPmuIcOHeqOjIx0JyYmumfPnu3+7LPPzC7LUv7yl7+409PT3dHR0e6rrrrKXVVVZXZJsDjmCQYAAEDIYUwwAAAAQg4hGAAAACGHEAwAAICQQwgGAABAyCEEAwAAIOQQggEAABByCMEAAAAIOYRgAAAAhBxCMAAAAEIOIRgAAAAhhxAMAACAkEMIBgAAQMj5/5QbQ+Fbl8QdAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -129,11 +122,100 @@ ], "source": [ "import matplotlib.pyplot as plt\n", - "plt.plot(t, qbx_res-true_sol, label=\"qbx\")\n", - "plt.title(\"QBX order: \"+str(p) + \", Number of points on disk: \" + str(n_p) + \", rel. err $l_\\inf$: \" + str(rel_err))\n", - "plt.legend()\n", - "plt.show()" + "fig, ax = plt.subplots(1,1)\n", + "ax.set_yscale('log')\n", + "ax.plot(t, (abs(qbx_res-true_sol)+1e-20), label=\"absolute error\")\n", + "plt.suptitle(\"PLOT OF ABSOLUTE ERROR: $u_{QBX}-u_{true}$\"+ \"(note rel. err is: \" + str(rel_err)+\")\")\n", + "ax.set_title(\"ellipse ecc: \"+str(1/a)+\", QBX order: \"+str(p) + \", number points: \" + str(n_p) + \", h/r: \"+ str(h/radius), fontdict={'size': 10})\n", + "ax.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.15707963267948966" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "radius" ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.009689999999999999" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.061688455942418625" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h/radius" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.1" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "1/10" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 730d436fe..56d7a2454 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -96,7 +96,7 @@ def _qbx_lp_general(knl, sources, targets, centers, radius, return result_qbx -def _create_ellipse(n_p, mode_nr = 10, quad_convg_rate=0.75, a=2): +def _create_ellipse(n_p, mode_nr = 10, quad_convg_rate=100, a=2): t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) phi = sp.symbols("phi") @@ -270,6 +270,19 @@ def test_recurrence_helmholtz_2d_ellipse(): assert np.max(err) <= 1e-13 +def _laplace_2d_true_solution(n_p, density, a=2, n=10): + r = 1/a + mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n) + + phi = sp.symbols("phi") + jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2) + + t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) + true_sol = mu_n * sp.lambdify(phi, jacob)(t) * density + + return true_sol + + # ============ Plotting Functionality def _construct_laplace_axis_2d(orders, resolutions): w = make_identity_diff_op(2) @@ -281,9 +294,12 @@ def _construct_laplace_axis_2d(orders, resolutions): (var[1]-var_t[1])**2)) err = [] + err1 = [] for p in orders: err_per_order = [] + err_per_order1 = [] for n_p in resolutions: + print("Order:", p, " res:", n_p) sources, centers, normals, density, jacobs, radius = _create_ellipse(n_p) strengths = jacobs * density * (2*np.pi/n_p) exp_res = recurrence_qbx_lp(sources, centers, normals, @@ -291,43 +307,38 @@ def _construct_laplace_axis_2d(orders, resolutions): g_x_y, 2, p) qbx_res = _qbx_lp_general(lknl2d, sources, sources, centers, radius, strengths, p) + true_sol = _laplace_2d_true_solution(n_p, density) # qbx_res,_ = lpot_eval_circle(sources.shape[1], p) - err_per_order.append(np.max(np.abs(exp_res - qbx_res)/ - np.max(np.abs(qbx_res)))) + err_per_order.append(np.max(np.abs(exp_res - true_sol)/ + np.max(np.abs(true_sol)))) + err_per_order1.append(np.max(np.abs(true_sol - qbx_res)/ + np.max(np.abs(true_sol)))) err.append(err_per_order) + err1.append(err_per_order1) - return err - - -def give_true_sol(n_p, a=2, n=10): - n = 10 - r = 1/a - mu_n = 1/(2*n) * (1 + ((1-r)/(1+r))**n) - - phi = sp.symbols("phi") - jacob = sp.sqrt(a**2 * sp.sin(phi)**2 + sp.cos(phi)**2) - - t = np.linspace(0, 2 * np.pi, n_p, endpoint=False) - true_sol = mu_n * sp.lambdify(phi, jacob)(t) * density - - return true_sol + return err, err1 def plot(): import matplotlib.pyplot as plt - orders = [6, 7, 8, 9] - resolutions = [200, 300] - err_mat = _construct_laplace_axis_2d(orders, resolutions) + orders = [5, 7, 9, 11] + colors = ['b', 'g', 'r', 'c'] + resolutions = [2000, 3000, 4000] + err_mat, err_mat1 = _construct_laplace_axis_2d(orders, resolutions) - fig, ax = plt.subplots(figsize = (6, 6)) - ax.set_yscale("log") + fig, ax1 = plt.subplots(1, 1, sharey=True, figsize=(6, 6)) + ax1.set_yscale("log") for i in range(len(orders)): - ax.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), label="$p_{QBX}$="+str(orders[i])) - ax.set_xlabel("Mesh Resolution ($h$)") - ax.set_ylabel("Relative Error ($L_{\infty}$)") - plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error $(u_{qbxrec}-u_{qbx})/u_{qbx}$") - ax.set_title("($r=0.28h$, $m=100$, $p_{offaxis}=8$)") - ax.legend() + ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), marker='+', label="$u = u_{qbxrec}$ ("+"$p_{QBX}$="+str(orders[i])+ ")", c=colors[i]) + ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat1[i]), marker='x', label="$u = u_{qbx}$ ("+"$p_{QBX}$="+str(orders[i]) + ")", c=colors[i]) + + ax1.set_xlabel("Mesh Resolution ($h$)") + ax1.set_ylabel("Relative Error ($L_{\infty}$)") + ax1.set_title("$(u-u_{true})/u_{true}$") + ax1.legend() + + plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error ($m=100$, $p_{offaxis}=8$)", ) plt.show() - #$m=100$, $r=0.28h$ \ No newline at end of file + +plot() \ No newline at end of file From 2acaee56cc18083acef3e174a8afdef4dbab92f8 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 23 Apr 2025 17:57:27 -0500 Subject: [PATCH 187/193] Update biharmonic.ipynb --- test/biharmonic.ipynb | 119 ++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 61 deletions(-) diff --git a/test/biharmonic.ipynb b/test/biharmonic.ipynb index b24a5f359..c81c07472 100644 --- a/test/biharmonic.ipynb +++ b/test/biharmonic.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -18,113 +18,110 @@ "from sumpy.recurrence import _make_sympy_vec, get_reindexed_and_center_origin_on_axis_recurrence\n", "\n", "from immutabledict import immutabledict\n", - "from sumpy.expansion.diff_op import LinearPDESystemOperator" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "var = _make_sympy_vec(\"x\", 2)\n", - "var_t = _make_sympy_vec(\"t\", 2)\n", - "abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2)\n", - "w = make_identity_diff_op(2)\n", - "\n", - "partial_4x = DerivativeIdentifier((4,0), 0)\n", - "partial_4y = DerivativeIdentifier((0,4), 0)\n", - "partial_2x2y = DerivativeIdentifier((2,2), 0)\n", - "biharmonic_op = {partial_4x: 1, partial_4y: 1, partial_2x2y:2}\n", - "list_pde = immutabledict(biharmonic_op)\n", + "from sumpy.expansion.diff_op import LinearPDESystemOperator\n", "\n", - "biharmonic_pde = LinearPDESystemOperator(2, (list_pde,))\n", - "g_x_y = abs_dist**2 * (sp.log(abs_dist))\n", - "\n", - "n_init, _, r = get_reindexed_and_center_origin_on_axis_recurrence(biharmonic_pde)\n", - "\n", - "derivs = [sp.diff(g_x_y,\n", - " var_t[0], i).subs(var_t[0], 0).subs(var_t[1], 0)\n", - " for i in range(8)]\n", - "\n", - "x_coord = np.random.rand() # noqa: NPY002\n", - "y_coord = np.random.rand() # noqa: NPY002\n", - "coord_dict = {var[0]: var[0], var[1]: var[1]}\n", - "derivs = [d.subs(coord_dict) for d in derivs]\n", + "import sympy as sp\n", "\n", - "n = sp.symbols(\"n\")\n", - "s = sp.Function(\"s\")\n", + "from sumpy.recurrence import recurrence_from_coeff_array, ode_in_x_to_coeff_array, pde_to_ode_in_r, ode_in_r_to_x\n", "\n", - "# pylint: disable-next=not-callable\n", - "subs_dict = {s(0): derivs[0], s(1): derivs[1], s(2): derivs[2], s(3): derivs[3]}\n", - "check = []\n", "\n", - "assert n_init == 4\n", - "max_order_check = 8\n", - "for i in range(n_init, max_order_check):\n", - " check.append(r.subs(n, i).subs(subs_dict) - derivs[i])\n", - " # pylint: disable-next=not-callable\n", - " subs_dict[s(i)] = derivs[i]" + "from sumpy.expansion.diff_op import (\n", + " DerivativeIdentifier,\n", + " LinearPDESystemOperator,\n", + " make_identity_diff_op,\n", + " laplacian\n", + ")" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 3 n x_{0}^{2} s{\\left(n + 1 \\right)} + 3 n x_{0} \\left(n - 1\\right) s{\\left(n \\right)} + 2 n x_{0} s{\\left(n \\right)} + n \\left(n - 2\\right) \\left(n - 1\\right) s{\\left(n - 1 \\right)} + n \\left(n - 1\\right) s{\\left(n - 1 \\right)} + x_{0}^{3} s{\\left(n + 2 \\right)} + x_{0}^{2} s{\\left(n + 1 \\right)} + x_{1}^{2} \\left(n s{\\left(n + 1 \\right)} + x_{0} s{\\left(n + 2 \\right)}\\right) - x_{1}^{2} s{\\left(n + 1 \\right)}$" + ], + "text/plain": [ + "3*n*x0**2*s(n + 1) + 3*n*x0*(n - 1)*s(n) + 2*n*x0*s(n) + n*(n - 2)*(n - 1)*s(n - 1) + n*(n - 1)*s(n - 1) + x0**3*s(n + 2) + x0**2*s(n + 1) + x1**2*(n*s(n + 1) + x0*s(n + 2)) - x1**2*s(n + 1)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "max_order_check = 8\n", - "for i in range(n_init, max_order_check):\n", - " check.append(r.subs(n, i).subs(subs_dict) - derivs[i])\n", - " # pylint: disable-next=not-callable\n", - " subs_dict[s(i)] = derivs[i]" + "w = make_identity_diff_op(2)\n", + "laplace2d = laplacian(w)\n", + "pde = laplace2d\n", + "ode_in_r, var, ode_order = pde_to_ode_in_r(pde)\n", + "ode_in_x = ode_in_r_to_x(ode_in_r, var, ode_order).simplify()\n", + "ode_in_x_cleared = (ode_in_x * var[0]**(pde.order*2-1)).simplify()\n", + "# ode_in_x_cleared shouldn't have rational function coefficients\n", + "assert sp.together(ode_in_x_cleared) == ode_in_x_cleared\n", + "f_x_derivs = _make_sympy_vec(\"f_x\", ode_order+1)\n", + "poly = sp.Poly(ode_in_x_cleared, *f_x_derivs)\n", + "coeffs = ode_in_x_to_coeff_array(poly, ode_order, var)\n", + "recurrence_from_coeff_array(coeffs, var)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle -0.00388859878925869$" + "$\\displaystyle f_{x0} x_{0}^{2}$" ], "text/plain": [ - "-0.00388859878925869" + "f_x0*x0**2" ] }, - "execution_count": 18, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "r.subs(n, 4).subs(subs_dict).subs({var[0]: 23, var[1]: 2.3})" + "fake_ode_in_x = f_x_derivs[0] * (var[0]**2)\n", + "fake_ode_in_x" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle - \\frac{\\left(- 2 x_{0}^{2} + 6 x_{1}^{2}\\right) s{\\left(3 \\right)}}{x_{0}^{3} + x_{0} x_{1}^{2}} - \\frac{\\left(- x_{0}^{4} + 6 x_{0}^{2} x_{1}^{2} + 15 x_{1}^{4}\\right) s{\\left(1 \\right)}}{x_{0}^{7} + 2 x_{0}^{5} x_{1}^{2} + x_{0}^{3} x_{1}^{4}} + \\frac{\\left(x_{0}^{4} - 6 x_{0}^{2} x_{1}^{2} - 15 x_{1}^{4}\\right) s{\\left(2 \\right)}}{x_{0}^{6} + 2 x_{0}^{4} x_{1}^{2} + x_{0}^{2} x_{1}^{4}}$" + "$\\displaystyle n^{2} s{\\left(n - 2 \\right)} + 2 n x_{0} s{\\left(n - 1 \\right)} - n s{\\left(n - 2 \\right)} + x_{0}^{2} s{\\left(n \\right)}$" ], "text/plain": [ - "-(-2*x0**2 + 6*x1**2)*s(3)/(x0**3 + x0*x1**2) - (-x0**4 + 6*x0**2*x1**2 + 15*x1**4)*s(1)/(x0**7 + 2*x0**5*x1**2 + x0**3*x1**4) + (x0**4 - 6*x0**2*x1**2 - 15*x1**4)*s(2)/(x0**6 + 2*x0**4*x1**2 + x0**2*x1**4)" + "n**2*s(n - 2) + 2*n*x0*s(n - 1) - n*s(n - 2) + x0**2*s(n)" ] }, - "execution_count": 19, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "r.subs(n, 4)" + "poly = sp.Poly(fake_ode_in_x, *f_x_derivs)\n", + "coeffs = ode_in_x_to_coeff_array(poly, ode_order, var)\n", + "recurrence_from_coeff_array(coeffs, var).expand()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From 0821f29c7708206cc4ab38e00358e33167fd2a64 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Sat, 3 May 2025 19:40:38 -0700 Subject: [PATCH 188/193] Save as svg --- qbxrecurrence.svg | 2125 +++++++++++++++++++++++++++++++++++ test/count_flops.ipynb | 140 ++- test/test_recurrence_qbx.py | 15 +- 3 files changed, 2254 insertions(+), 26 deletions(-) create mode 100644 qbxrecurrence.svg diff --git a/qbxrecurrence.svg b/qbxrecurrence.svg new file mode 100644 index 000000000..a9da94205 --- /dev/null +++ b/qbxrecurrence.svg @@ -0,0 +1,2125 @@ + + + + + + + + 2025-05-03T19:35:33.784501 + image/svg+xml + + + Matplotlib v3.9.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/count_flops.ipynb b/test/count_flops.ipynb index 14c3597bf..96516ec44 100644 --- a/test/count_flops.ipynb +++ b/test/count_flops.ipynb @@ -22,7 +22,9 @@ "from sympy import count_ops\n", "\n", "import matplotlib.pyplot as plt\n", - "from matplotlib import cm, ticker" + "from matplotlib import cm, ticker\n", + "\n", + "from sympy import cse" ] }, { @@ -82,7 +84,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -111,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -122,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -131,27 +133,27 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def old_expansion_create(start, stop, derivs):\n", - " return sum(derivs[i]*r**i/math.factorial(i) for i in range(start, stop))" + " return (sum(derivs[i]*r**i/math.factorial(i) for i in range(start, stop)))" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def new_expansion_create(start, stop, recur):\n", - " return sum(recur.subs(n,i)*r**i/math.factorial(i) for i in range(start, stop))" + " return (sum(recur.subs(n,i)*r**i/math.factorial(i) for i in range(start, stop)))" ] }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -160,17 +162,17 @@ " new_exp_flops = []\n", " for i in range(l_t_order):\n", " if simplify:\n", - " old_exp_flops.append(count_ops((old_expansion_create(0, i+1, derivs)).simplify()))\n", - " new_exp_flops.append(count_ops(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec)).simplify())))\n", + " old_exp_flops.append(count_ops(cse((old_expansion_create(0, i+1, derivs)).simplify())))\n", + " new_exp_flops.append(count_ops(cse(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec)).simplify()))))\n", " else:\n", - " old_exp_flops.append(count_ops((old_expansion_create(0, i+1, derivs))))\n", - " new_exp_flops.append(count_ops(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec)))))\n", + " old_exp_flops.append(count_ops(cse((old_expansion_create(0, i+1, derivs)))))\n", + " new_exp_flops.append(count_ops(cse(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec))))))\n", " return old_exp_flops, new_exp_flops" ] }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -179,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -188,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -197,13 +199,13 @@ "Text(0.5, 0, 'Line-Taylor Order')" ] }, - "execution_count": 97, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -236,8 +238,108 @@ "ax.legend()\n", "ax.set_title(\"Helmholtz 2D Line-Taylor Flop Comparison\")\n", "ax.set_ylabel(\"Flop Count\")\n", - "ax.set_xlabel(\"Line-Taylor Order\")" + "ax.set_xlabel(\"Line-Taylor Order\")\n", + "fig.savefig(\"Helmholtz2DCost.svg\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "expr = var[0]**2 +sp.sin(var[0]**2)" ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle x_{0}^{2} + \\sin{\\left(x_{0}^{2} \\right)}$" + ], + "text/plain": [ + "x0**2 + sin(x0**2)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "expr" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "count_ops(expr)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([(x1, x0**2)], [x1 + sin(x1)])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cse(expr)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "count_ops(cse(expr))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 56d7a2454..131866a0e 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -323,22 +323,23 @@ def plot(): import matplotlib.pyplot as plt orders = [5, 7, 9, 11] colors = ['b', 'g', 'r', 'c'] - resolutions = [2000, 3000, 4000] + resolutions = [200, 300, 400] err_mat, err_mat1 = _construct_laplace_axis_2d(orders, resolutions) fig, ax1 = plt.subplots(1, 1, sharey=True, figsize=(6, 6)) ax1.set_yscale("log") for i in range(len(orders)): - ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), marker='+', label="$u = u_{qbxrec}$ ("+"$p_{QBX}$="+str(orders[i])+ ")", c=colors[i]) - ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat1[i]), marker='x', label="$u = u_{qbx}$ ("+"$p_{QBX}$="+str(orders[i]) + ")", c=colors[i]) + ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), marker='+', label="$u = u_{qbxrec}$ ("+"$p_{QBX}$="+str(orders[i])+ ")", c=colors[i], s=20) + ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat1[i]), marker='x', label="$u = u_{qbx}$ ("+"$p_{QBX}$="+str(orders[i]) + ")", c=colors[i], s=20) - ax1.set_xlabel("Mesh Resolution ($h$)") - ax1.set_ylabel("Relative Error ($L_{\infty}$)") - ax1.set_title("$(u-u_{true})/u_{true}$") + ax1.set_xlabel("Mesh Resolution ($h$)", fontsize=16) + ax1.set_ylabel("Relative Error ($L_{\infty}$)", fontsize=16) + ax1.set_title("$(u-u_{true})/u_{true}$", fontsize=18) ax1.legend() - plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error ($m=100$, $p_{offaxis}=8$)", ) + plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error ($m=100$, $p_{offaxis}=8$)", fontsize=18) plt.show() + fig.savefig("qbxrecurrence.svg") plot() \ No newline at end of file From defe7a771028bd58b42d777f679f8e4d0782cac5 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 24 Jun 2025 18:28:11 -0700 Subject: [PATCH 189/193] Changes to plotting --- qbxrecurrence.svg | 357 ++++++++---------- test/biharmonic.ipynb | 2 +- test/investigate_normal_recurrence copy.ipynb | 47 +-- test/test_recurrence_qbx.py | 14 +- 4 files changed, 197 insertions(+), 223 deletions(-) diff --git a/qbxrecurrence.svg b/qbxrecurrence.svg index a9da94205..be819aeff 100644 --- a/qbxrecurrence.svg +++ b/qbxrecurrence.svg @@ -1,12 +1,12 @@ - + - 2025-05-03T19:35:33.784501 + 2025-05-04T18:09:01.578837 image/svg+xml @@ -21,149 +21,149 @@ - - - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - + - - + + - - + + + - + - - + + - - + + + - + - - + + - - + + + - + - - + + - - + + + - + - - + + - - + + + - + - - + - + - + - + @@ -739,12 +744,12 @@ z - + - + - + - + - + - + @@ -828,41 +833,9 @@ z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - + - + - - + - + - + - + - + - + @@ -1451,12 +1424,12 @@ z - + - + - + @@ -1479,12 +1452,12 @@ z - + - + - + @@ -1504,12 +1477,12 @@ z - + - + - + @@ -1532,12 +1505,12 @@ z - + - + - + @@ -1557,12 +1530,12 @@ z - + - + - + @@ -1586,12 +1559,12 @@ z - + - + - + @@ -1612,9 +1585,9 @@ z - + - + - + + diff --git a/test/biharmonic.ipynb b/test/biharmonic.ipynb index c81c07472..8ca7b4f84 100644 --- a/test/biharmonic.ipynb +++ b/test/biharmonic.ipynb @@ -126,7 +126,7 @@ ], "metadata": { "kernelspec": { - "display_name": "inteq", + "display_name": "Python 3", "language": "python", "name": "python3" }, diff --git a/test/investigate_normal_recurrence copy.ipynb b/test/investigate_normal_recurrence copy.ipynb index e217591c7..40ede9c47 100644 --- a/test/investigate_normal_recurrence copy.ipynb +++ b/test/investigate_normal_recurrence copy.ipynb @@ -136,9 +136,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[62589959594642.0, 17776743927062.7, -73824491792606.5]\n", - "ratio: 3.52088998139626 ||||| digits: 0.546652454715453 |||| pred error: 1e-15\n", - "rel. error: 3.58250404763811e-15\n" + "[-1.62171073354551e+29, 2.00255056224500e+29, 5.37247239856568e+28]\n", + "ratio: 0.809822615278915 ||||| digits: -0.09161009919801158 |||| pred error: 1e-16\n", + "rel. error: 1.14970703631091e-15\n" ] } ], @@ -169,7 +169,7 @@ "metadata": {}, "outputs": [], "source": [ - "nsub = 11\n", + "nsub = 9\n", "coord_dict_var = {var[0]: var[0], var[1]: c*var[0]}\n", "recur_coeffs_lap_var = sp.poly(recur_laplace.subs(n, nsub), [s(i) for i in range(nsub - order_lap, nsub)]).coeffs()\n", "#[i+nsub-order_lap for i in range(len(recur_coeffs_lap))]\n", @@ -184,10 +184,10 @@ { "data": { "text/latex": [ - "$\\displaystyle \\frac{4 \\left(- c^{10} + 27 c^{8} - 42 c^{6} - 42 c^{4} + 27 c^{2} - 1\\right)}{13 \\left(9 c^{8} - 84 c^{6} + 126 c^{4} - 36 c^{2} + 1\\right)}$" + "$\\displaystyle \\frac{3 \\left(- c^{8} + 14 c^{6} - 14 c^{2} + 1\\right)}{10 \\left(7 c^{6} - 35 c^{4} + 21 c^{2} - 1\\right)}$" ], "text/plain": [ - "4*(-c**10 + 27*c**8 - 42*c**6 - 42*c**4 + 27*c**2 - 1)/(13*(9*c**8 - 84*c**6 + 126*c**4 - 36*c**2 + 1))" + "3*(-c**8 + 14*c**6 - 14*c**2 + 1)/(10*(7*c**6 - 35*c**4 + 21*c**2 - 1))" ] }, "execution_count": 11, @@ -201,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -212,19 +212,19 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "long_list_points = []\n", - "n_p = 1\n", + "n_p = 5\n", "for i in range(n_p):\n", " long_list_points += create_list_of_points(np.random.rand())" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -233,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -242,16 +242,16 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([ 2.02429577, -17.42652671])" + "array([ 1.95379536, -16.92811503])" ] }, - "execution_count": 35, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -263,22 +263,22 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Text(0.5, 1.0, 'Relative error in derivative evaluation using recurrence expression when $c \\\\gg 1$')" + "" ] }, - "execution_count": 42, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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NgzDMDZs2GAAxuLFiwt8rLCwMOPtt9/Onq5du7bRr1+/7Om4uDgDMF588cXsed9//70BGHFxcYZhGEb//v2Nhx56KMd6t2zZYnh4eBjnz5/PXu+UKVNyLGPv/bp3737FMSQlJRk+Pj7G+++/X+B4RURcifsfYCUiZcLy5cupVKkSGRkZpKen061bN95++20Adu/ezcsvv8yePXtISEggKysLgNjYWMLCwrLX0axZsxzrTElJYezYsSxfvpxjx46RkZHB+fPnc20xbdSoUfbPF7c63njjjbnmxcfHU6NGDXbu3MmhQ4f4+OOPs5cxDIOsrCxiYmK4/vrr8xyjvfe7fByXO3DgAGlpabRr1+6Ky4mIuBoVUxFxC5GRkcycOZNy5coREhJCuXLlALNcRkVFERUVxfz58wkMDCQ2NpaOHTty4cKFHOuoWLFijumnn36aVatWMXnyZBo0aED58uW5++67c93v4mMB2ceD5jXvYiHOysri4YcfZsSIEbnGERoamu8Y7b3f5eO4XPny5a94u4iIq1IxFRG3ULFiRRo0aJBr/q+//sqpU6d4/fXXqVWrFkCuE5Hys2XLFgYNGkSPHj0AOHfuHIcPHy521qZNm/LLL7/kmfcib29vMjMzC30/e1xzzTWUL1+edevWMXTo0GKtS0TEmXTyk4i4tdDQULy9vXn77bf5448/WLp0Ka+88opd923QoAFfffUVe/bs4aeffuL+++/P3upZHM8++yzff/89jz76KHv27OHgwYMsXbqUf/3rX9nL1KlTh82bN3P06FFOnTpl9/3s4evry7PPPsszzzzDvHnz+P333/nhhx/44IMPij02EZGSpGIqIm4tMDCQuXPnsnDhQsLCwnj99deZPHmyXfedMmUKVapUoVWrVkRHR9OxY0eaNm1a7EyNGjVi06ZNHDx4kNtvv52bbrqJF198keDg4Oxlxo0bx+HDh6lfvz6BgYF2389eL774Ik899RQvvfQS119/PX369MlxCS0REVdkM4z/Xd9ERERERMRC2mIqIiIiIi5BxVREREREXIKKqYiIiIi4BBVTEREREXEJKqYiIiIi4hJUTEVERETEJaiYioiIiIhLUDEVEREREZegYioiIiIiLkHFVERERERcgoqpiIiIiLgEFVMRERERcQn/D89sZv6mV/8pAAAAAElFTkSuQmCC", + "image/png": "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G1g8NADO3t4eQMXlGQCIi4uDXC7HzZs30bFjR7Ro0QJPPvkkrl+/XuV2t27dinbt2qFv375V9jl37hwSEhLQr18/Ax0NERnF4cNASIhymzmcQalk9LjUQOl0JqWwUD2l1tVXYaHWxzRlyhRhaWkpHB0dhaOjowAgvL29RWJioqLPJ598Itq3b692psDe3l4cPHhQ5OTkCADi6NGjGvdR3RkS1X4WFhaKWhwdHUX37t0VdT58JqFfv35i3rx5NW5z/fr1wsHBQTg7O4vw8HCxbNkycfXqVcVy1TMpr776qtqxbtiwQTg5OSnOTvTr10907NhRqc8rr7wiOnbsKIQQ4sqVK0IikYibN28q1TJw4ECxePFixev27duL3bt313gMmo6/KhcvXhRWVlZixYoVoqSkROTm5orRo0cLAOLdd98VQggRGxsrrK2tRfv27cWBAwfEiRMnxMCBA0X79u1FSUmJ2jaLi4tFs2bNxPLlyzXus3nz5sLGxkZYWFiIZcuWVVsfz6QQmdjOnXV+BqUSz6SQXsLDw5GcnIzk5GScOnUKQ4YMQWRkJK5duwYASExMxJUrV+Ds7AwnJyc4OTnBxcUFxcXFuHr1KlxcXDB16lQMHToUUVFRWLduHTIyMvSqpX379opakpOT8d1339Xq2J5//nlkZmZix44dCAsLwzfffINOnTohLi5OY/9Lly4hLCwMkoduu3v00UdRWFiIGzduKNp69eql1CcsLAyXL1+GTCZDUlIShBBo166d4vvl5OSEX3/9FVevXlWs8+eff2LUqFG1Oj5VnTp1wmeffYb3338fDg4O8PLyQuvWreHp6QlLS0sAgFwuR1lZGT744AMMHToUvXr1wpdffonLly/jyJEjatvcvXs3CgoK8PTTT2vc57Fjx3D27Fl89NFHWLt2Lb788kuDHhMRGcjq1cCECcpt5nQG5b/4gMG64OAAaLijos72rQNHR0e0bdtW8To0NBRSqRQff/wx3n77bcjlcoSGhuKLL75QW9fd3R0AsG3bNsydOxcHDhzArl278PrrryMuLg69evXSqRYbGxulWgzB2dkZw4cPx/Dhw/H2229j6NChePvttzF48GC1vkIIpfBR2QZArb0qcrkclpaWSExMVASDSk6qo+iNYMKECZgwYQJu374NR0dHSCQSrF69Gv7+/gAAb29vAEBAwP8eu+7u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", "text/plain": [ "
" ] @@ -292,10 +292,11 @@ "ax.set_xscale(\"log\")\n", "ax.set_yscale(\"log\")\n", "ax.scatter(c_errors, errors,label='Relative Error')\n", - "ax.plot(c_errors, 10**bf[1] * (c_errors**bf[0]), color='r')\n", - "ax.set_xlabel(\"Parameter c\")\n", - "ax.set_ylabel(\"Relative error\")\n", - "ax.set_title(\"Relative error in derivative evaluation using recurrence expression when $c \\gg 1$\")" + "ax.plot(c_errors, 10**bf[1] * (c_errors**bf[0]), color='r', label = 'Best Fit Slope: 1.9673')\n", + "ax.set_xlabel(\"Parameter $|c|$\")\n", + "ax.set_ylabel(\"Relative error (eq. 73)\")\n", + "ax.set_title(\"Relative error in single recurrence step when $|c| \\gg 1$\")\n", + "ax.legend()" ] }, { @@ -308,7 +309,7 @@ ], "metadata": { "kernelspec": { - "display_name": "inteq", + "display_name": "Python 3", "language": "python", "name": "python3" }, diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index 131866a0e..fea862eca 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -323,22 +323,22 @@ def plot(): import matplotlib.pyplot as plt orders = [5, 7, 9, 11] colors = ['b', 'g', 'r', 'c'] - resolutions = [200, 300, 400] + resolutions = [2000, 3000, 4000] err_mat, err_mat1 = _construct_laplace_axis_2d(orders, resolutions) fig, ax1 = plt.subplots(1, 1, sharey=True, figsize=(6, 6)) ax1.set_yscale("log") for i in range(len(orders)): - ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), marker='+', label="$u = u_{qbxrec}$ ("+"$p_{QBX}$="+str(orders[i])+ ")", c=colors[i], s=20) - ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat1[i]), marker='x', label="$u = u_{qbx}$ ("+"$p_{QBX}$="+str(orders[i]) + ")", c=colors[i], s=20) + ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat[i]), marker='+', label="$u = u_{qbxrec}$ ("+"$p_{QBX}$="+str(orders[i])+ ")", c=colors[i], s=50) + ax1.scatter(9.68845/np.array(resolutions), np.array(err_mat1[i]), marker='x', label="$u = u_{qbx}$ ("+"$p_{QBX}$="+str(orders[i]) + ")", c=colors[i], s=50) - ax1.set_xlabel("Mesh Resolution ($h$)", fontsize=16) - ax1.set_ylabel("Relative Error ($L_{\infty}$)", fontsize=16) - ax1.set_title("$(u-u_{true})/u_{true}$", fontsize=18) + ax1.set_xlabel("Mesh Resolution ($h$)", fontsize=14) + ax1.set_ylabel("Relative Error ($L_{\infty}$)", fontsize=14) + ax1.set_title("$(u-u_{true})/u_{true}$", fontsize=16) ax1.legend() - plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error ($m=100$, $p_{offaxis}=8$)", fontsize=18) + plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error ($m=100$, $p_{offaxis}=8$)", fontsize=16) plt.show() fig.savefig("qbxrecurrence.svg") From 374d991c4bd699b1e4347bd8257b2e7ad0c04b94 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 24 Jun 2025 18:52:20 -0700 Subject: [PATCH 190/193] Create plot functionality to test Assumption 1 --- test/plotting copy.py | 317 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 test/plotting copy.py diff --git a/test/plotting copy.py b/test/plotting copy.py new file mode 100644 index 000000000..3f7efeafa --- /dev/null +++ b/test/plotting copy.py @@ -0,0 +1,317 @@ +import numpy as np +import sympy as sp + +from sumpy.recurrence import ( + _make_sympy_vec, + get_off_axis_expression, + get_reindexed_and_center_origin_off_axis_recurrence, + get_reindexed_and_center_origin_on_axis_recurrence, +) + +from sumpy.expansion.diff_op import ( + laplacian, + make_identity_diff_op, +) + +import matplotlib.pyplot as plt +from matplotlib import cm, ticker +from sympy import hankel1 + +from immutabledict import immutabledict +from sumpy.expansion.diff_op import LinearPDESystemOperator + +def produce_assumption_values(coords, g_x_y, n, p): + ndim = 2 + cts_r_s = coords.reshape(2,coords.shape[1],1) + coord = [cts_r_s[j] for j in range(ndim)] + deriv_order = n + p + 1 + ndim = cts_r_s.shape[0] + var = _make_sympy_vec("x", ndim) + var_t = _make_sympy_vec("t", ndim) + ################ + # Compute True Interactions + def generate_true(i): + arg_list = [] + for j in range(ndim): + arg_list.append(var[j]) + + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) + + interactions_true = 0 + i = deriv_order + lamb_expr_true = generate_true(i) + a4 = [*coord] + s_new_true = lamb_expr_true(*a4) + interactions_true += s_new_true + return interactions_true + ############### + + +def produce_error_for_recurrences(coords, pde, g_x_y, deriv_order, m=100): + + #Possibly reshape coords? + cts_r_s = coords.reshape(2,coords.shape[1],1) + + p = deriv_order-1 + cts_r_s = coords + ndim = cts_r_s.shape[0] + var = _make_sympy_vec("x", ndim) + var_t = _make_sympy_vec("t", ndim) + + # ------------ 5. Compute recurrence + n_initial, order, recurrence = get_reindexed_and_center_origin_on_axis_recurrence(pde) + + # ------------ 6. Set order p = 5 + n_p = cts_r_s.shape[1] + storage = [np.zeros((1, n_p))] * order + + s = sp.Function("s") + n = sp.symbols("n") + + def generate_lamb_expr(i, n_initial): + arg_list = [] + for j in range(order, 0, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < n_initial: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + else: + lamb_expr_symb = recurrence.subs(n, i) + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) + + interactions_on_axis = 0 + coord = [cts_r_s[j] for j in range(ndim)] + for i in range(p+1): + lamb_expr = generate_lamb_expr(i, n_initial) + a = [*storage, *coord] + s_new = lamb_expr(*a) + + """ + s_new_true = true_lamb_expr(*a) + arg_max = np.argmax(abs(s_new-s_new_true)/abs(s_new_true)) + print((s_new-s_new_true).reshape(-1)[arg_max]/s_new_true.reshape(-1)[arg_max]) + print("x:", coord[0].reshape(-1)[arg_max], "y:", coord[1].reshape(-1)[arg_max], + "s_recur:", s_new.reshape(-1)[arg_max], "s_true:", s_new_true.reshape(-1)[arg_max], "order: ", i) + """ + if i == p: + interactions_on_axis += s_new + + storage.pop(0) + storage.append(s_new) + + + ### NEW CODE - COMPUTE OFF AXIS INTERACTIONS + start_order, t_recur_order, t_recur = get_reindexed_and_center_origin_off_axis_recurrence(pde) + t_exp, t_exp_order, _ = get_off_axis_expression(pde, 8) + storage_taylor_order = max(t_recur_order, t_exp_order+1) + + start_order = max(start_order, order) + + storage_taylor = [np.zeros((1, n_p))] * storage_taylor_order + def gen_lamb_expr_t_recur(i, start_order): + arg_list = [] + for j in range(t_recur_order, 0, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < start_order: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv.subs(var[0], 0) + else: + lamb_expr_symb = t_recur.subs(n, i) + + return sp.lambdify(arg_list, lamb_expr_symb) + + + def gen_lamb_expr_t_exp(i, t_exp_order, start_order): + arg_list = [] + for j in range(t_exp_order, -1, -1): + # pylint: disable-next=not-callable + arg_list.append(s(i-j)) + for j in range(ndim): + arg_list.append(var[j]) + + if i < start_order: + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + else: + lamb_expr_symb = t_exp.subs(n, i) + + return sp.lambdify(arg_list, lamb_expr_symb) + + + interactions_off_axis = 0 + for i in range(p+1): + lamb_expr_t_recur = gen_lamb_expr_t_recur(i, start_order) + a1 = [*storage_taylor[(-t_recur_order):], *coord] + + storage_taylor.pop(0) + storage_taylor.append(lamb_expr_t_recur(*a1) + np.zeros((1, n_p))) + + lamb_expr_t_exp = gen_lamb_expr_t_exp(i, t_exp_order, start_order) + a2 = [*storage_taylor[-(t_exp_order+1):], *coord] + + if i == p: + interactions_off_axis += lamb_expr_t_exp(*a2) + + ################ + # Compute True Interactions + def generate_true(i): + arg_list = [] + for j in range(ndim): + arg_list.append(var[j]) + + lamb_expr_symb_deriv = sp.diff(g_x_y, var_t[0], i) + for j in range(ndim): + lamb_expr_symb_deriv = lamb_expr_symb_deriv.subs(var_t[j], 0) + lamb_expr_symb = lamb_expr_symb_deriv + + #print("=============== ORDER = " + str(i)) + #print(lamb_expr_symb) + return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) + + interactions_true = 0 + for i in range(p, p+1): + lamb_expr_true = generate_true(i) + a4 = [*coord] + s_new_true = lamb_expr_true(*a4) + if i == p: + interactions_true += s_new_true + ############### + + #slope of line y = mx + mask_on_axis = m*np.abs(coord[0]) >= np.abs(coord[1]) + mask_off_axis = m*np.abs(coord[0]) < np.abs(coord[1]) + + interactions_off_axis = interactions_off_axis.reshape(coord[0].shape) + + interactions_total = interactions_on_axis * 0 + interactions_total[mask_on_axis] = interactions_on_axis[mask_on_axis] + interactions_total[mask_off_axis] = interactions_off_axis[mask_off_axis] + + return interactions_on_axis, interactions_off_axis, interactions_true, interactions_total + +def create_logarithmic_mesh(res): + + x_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] + y_grid = [10**(pw) for pw in np.linspace(-8, 0, res)] + + mesh = np.meshgrid(x_grid, y_grid) + mesh_points = np.array(mesh).reshape(2, -1) + + return mesh_points, x_grid, y_grid + +def create_plot(relerr_on, ax, str_title, acbar=True): + n_levels = 18 + levels = 10**np.linspace(-n_levels+2, 1, n_levels) + cs = ax.contourf(x_grid, y_grid, relerr_on.reshape(res, res), locator=ticker.LogLocator(), cmap=cm.coolwarm, levels=levels, extend="both") + if acbar: + cbar = fig.colorbar(cs) + cbar.set_ticks(levels) + cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) + + ax.set_xscale('log') + ax.set_yscale('log') + ax.set_xlabel("$x_1$-coordinate", fontsize=15) + ax.set_ylabel("$x_2$-coordinate", fontsize=15) + ax.set_title(str_title) + + return cs + +def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): + fig, (ax1,ax2,ax3) = plt.subplots(1, 3, figsize=(15, 8)) + cs = create_plot(relerr_on, ax1, "On-Axis Recurrence", False) + cs = create_plot(relerr_off, ax2, "Off-Axis Recurrence ($p_{offaxis}=8$)", False) + cs = create_plot(relerr_comb, ax3, "On/Off-Axis Recurrence ($m=100$)", False) + + n_levels = 18 + levels = 10**np.linspace(-n_levels+2, 1, n_levels) + + + fig.subplots_adjust(wspace=0.3, hspace=0.5) + + cbar = fig.colorbar(cs, ax=[ax1,ax2,ax3], shrink=0.9, location='bottom') + cbar.set_ticks(levels) + cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) + fig.suptitle(str_title, fontsize=16) + +#========================= DEFINE PLOT RESOLUTION ==================================== +res = 32 +mesh_points, x_grid, y_grid = create_logarithmic_mesh(res) + +#========================= DEFINE GREEN'S FUNCTIONS/PDE's ==================================== +from collections import namedtuple +DerivativeIdentifier = namedtuple("DerivativeIdentifier", ["mi", "vec_idx"]) +var = _make_sympy_vec("x", 2) +var_t = _make_sympy_vec("t", 2) +abs_dist = sp.sqrt((var[0]-var_t[0])**2 + (var[1]-var_t[1])**2) +w = make_identity_diff_op(2) + +partial_4x = DerivativeIdentifier((4,0), 0) +partial_4y = DerivativeIdentifier((0,4), 0) +partial_2x2y = DerivativeIdentifier((2,2), 0) +biharmonic_op = {partial_4x: 1, partial_4y: 1, partial_2x2y:2} +list_pde = immutabledict(biharmonic_op) + +biharmonic_pde = LinearPDESystemOperator(2, (list_pde,)) +g_x_y_biharmonic = abs_dist**2 * sp.log(abs_dist) + +laplace2d = laplacian(w) +g_x_y_laplace = (-1/(2*np.pi)) * sp.log(abs_dist) + +k = 1 +helmholtz2d = laplacian(w) + w +g_x_y_helmholtz = (1j/4) * hankel1(0, k * abs_dist) +#========================= LAPLACE 2D ==================================== +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 10,m=1e2/2) + +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +#relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) + +#create_suite_plot(relerr_on, relerr_off, relerr_comb, "Laplace 2D: 9th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") + +#========================= HELMOLTZ 2D ==================================== +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, helmholtz2d, g_x_y_helmholtz, 8) + +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +#relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) + +#create_suite_plot(relerr_on, relerr_off, relerr_comb, "Helmholtz 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") + + +#======================== BIHARMONIC 2D =================================== +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 12, m=1e2/2) +relerr_on = produce_assumption_values(mesh_points, g_x_y_laplace, 3, 1) +relerr_off = produce_assumption_values(mesh_points, g_x_y_laplace, 3, 1) +relerr_comb = produce_assumption_values(mesh_points, g_x_y_laplace, 3, 1) + +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +#relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) + +create_suite_plot(relerr_on, relerr_off, relerr_comb, "Biharmonic 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") + +plt.show() \ No newline at end of file From 257b746838318257810661b522804430f3b7e913 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Fri, 27 Jun 2025 22:58:41 -0700 Subject: [PATCH 191/193] Modify plot copy --- test/biharmonic.ipynb | 2 +- test/count_flops.ipynb | 23 +++++++++++ test/investigate_normal_recurrence copy.ipynb | 2 +- test/plotting copy.py | 38 ++++++++++--------- 4 files changed, 46 insertions(+), 19 deletions(-) diff --git a/test/biharmonic.ipynb b/test/biharmonic.ipynb index 8ca7b4f84..c81c07472 100644 --- a/test/biharmonic.ipynb +++ b/test/biharmonic.ipynb @@ -126,7 +126,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "inteq", "language": "python", "name": "python3" }, diff --git a/test/count_flops.ipynb b/test/count_flops.ipynb index 96516ec44..e30caffcb 100644 --- a/test/count_flops.ipynb +++ b/test/count_flops.ipynb @@ -82,6 +82,29 @@ "derivs_laplace = compute_derivatives_laplace(l_max_l)" ] }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle - \\frac{24 x_{0} \\left(16 x_{0}^{4} - 20 x_{0}^{2} \\left(x_{0}^{2} + x_{1}^{2}\\right) + 5 \\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}}$" + ], + "text/plain": [ + "-24*x0*(16*x0**4 - 20*x0**2*(x0**2 + x1**2) + 5*(x0**2 + x1**2)**2)/(x0**2 + x1**2)**5" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "derivs_laplace[5].simplify()" + ] + }, { "cell_type": "code", "execution_count": 5, diff --git a/test/investigate_normal_recurrence copy.ipynb b/test/investigate_normal_recurrence copy.ipynb index 40ede9c47..9d823f578 100644 --- a/test/investigate_normal_recurrence copy.ipynb +++ b/test/investigate_normal_recurrence copy.ipynb @@ -309,7 +309,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "inteq", "language": "python", "name": "python3" }, diff --git a/test/plotting copy.py b/test/plotting copy.py index 3f7efeafa..265069c4b 100644 --- a/test/plotting copy.py +++ b/test/plotting copy.py @@ -20,11 +20,16 @@ from immutabledict import immutabledict from sumpy.expansion.diff_op import LinearPDESystemOperator -def produce_assumption_values(coords, g_x_y, n, p): +nmin = -2 +nmax = 3 +n_levels = (nmax-nmin)+1 +levels = 10**np.linspace(nmin, nmax, n_levels) +tcklabels = ["1e"+str(int(np.round(np.log10(i)))) for i in levels] + +def produce_assumption_values(coords, g_x_y, deriv_order): ndim = 2 cts_r_s = coords.reshape(2,coords.shape[1],1) coord = [cts_r_s[j] for j in range(ndim)] - deriv_order = n + p + 1 ndim = cts_r_s.shape[0] var = _make_sympy_vec("x", ndim) var_t = _make_sympy_vec("t", ndim) @@ -42,6 +47,7 @@ def generate_true(i): #print("=============== ORDER = " + str(i)) #print(lamb_expr_symb) + print(lamb_expr_symb) return sp.lambdify(arg_list, lamb_expr_symb)#, sp.lambdify(arg_list, lamb_expr_symb_deriv) interactions_true = 0 @@ -50,7 +56,8 @@ def generate_true(i): a4 = [*coord] s_new_true = lamb_expr_true(*a4) interactions_true += s_new_true - return interactions_true + denom = coord[0]/coord[1]**(deriv_order+1) + return np.abs(interactions_true)/denom ############### @@ -223,13 +230,11 @@ def create_logarithmic_mesh(res): return mesh_points, x_grid, y_grid def create_plot(relerr_on, ax, str_title, acbar=True): - n_levels = 18 - levels = 10**np.linspace(-n_levels+2, 1, n_levels) - cs = ax.contourf(x_grid, y_grid, relerr_on.reshape(res, res), locator=ticker.LogLocator(), cmap=cm.coolwarm, levels=levels, extend="both") + cs = ax.contourf(x_grid, y_grid, relerr_on.reshape(res, res), locator=ticker.LogLocator(), cmap=cm.plasma, levels=levels, extend="both") if acbar: cbar = fig.colorbar(cs) cbar.set_ticks(levels) - cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) + cbar.set_ticklabels(tcklabels) ax.set_xscale('log') ax.set_yscale('log') @@ -241,19 +246,18 @@ def create_plot(relerr_on, ax, str_title, acbar=True): def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): fig, (ax1,ax2,ax3) = plt.subplots(1, 3, figsize=(15, 8)) - cs = create_plot(relerr_on, ax1, "On-Axis Recurrence", False) - cs = create_plot(relerr_off, ax2, "Off-Axis Recurrence ($p_{offaxis}=8$)", False) - cs = create_plot(relerr_comb, ax3, "On/Off-Axis Recurrence ($m=100$)", False) + cs = create_plot(relerr_on, ax1, "Laplace 2D", False) + cs = create_plot(relerr_off, ax2, "Helmholtz 2D", False) + cs = create_plot(relerr_comb, ax3, "Biharmonic 2D", False) - n_levels = 18 - levels = 10**np.linspace(-n_levels+2, 1, n_levels) + n_levels = 3 fig.subplots_adjust(wspace=0.3, hspace=0.5) cbar = fig.colorbar(cs, ax=[ax1,ax2,ax3], shrink=0.9, location='bottom') cbar.set_ticks(levels) - cbar.set_ticklabels(["1e"+str(int(i)) for i in np.linspace(-n_levels+2, 1, n_levels)]) + cbar.set_ticklabels(tcklabels) fig.suptitle(str_title, fontsize=16) #========================= DEFINE PLOT RESOLUTION ==================================== @@ -304,14 +308,14 @@ def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): #======================== BIHARMONIC 2D =================================== #interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 12, m=1e2/2) -relerr_on = produce_assumption_values(mesh_points, g_x_y_laplace, 3, 1) -relerr_off = produce_assumption_values(mesh_points, g_x_y_laplace, 3, 1) -relerr_comb = produce_assumption_values(mesh_points, g_x_y_laplace, 3, 1) +relerr_on = produce_assumption_values(mesh_points, g_x_y_laplace, 5) +relerr_off = produce_assumption_values(mesh_points, g_x_y_helmholtz, 5) +relerr_comb = produce_assumption_values(mesh_points, g_x_y_biharmonic, 5) #relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) #relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) #relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) -create_suite_plot(relerr_on, relerr_off, relerr_comb, "Biharmonic 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") +create_suite_plot(relerr_on+1e-20, relerr_off+1e-20, relerr_comb+1e-20, "Eq. 80 for different Green's Functions in 2D ($c=5$)") plt.show() \ No newline at end of file From 82e48a05597d21c76fa0cdd9e8234bda110a32c0 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Wed, 20 Aug 2025 19:49:01 -0700 Subject: [PATCH 192/193] Added new plot functionality --- S_on_surface_convergence.pgf | 2199 +++++++++++++++++ output.png | Bin 0 -> 34611 bytes qbxrecurrence.svg | 220 +- test/Helmholtz2DCost.svg | 1302 ++++++++++ test/count_flops.ipynb | 260 +- test/investigate_normal_recurrence copy.ipynb | 35 +- test/plotting copy.py | 25 +- test/plotting.py | 27 +- test/test_recurrence_qbx.py | 4 +- 9 files changed, 3865 insertions(+), 207 deletions(-) create mode 100644 S_on_surface_convergence.pgf create mode 100644 output.png create mode 100644 test/Helmholtz2DCost.svg diff --git a/S_on_surface_convergence.pgf b/S_on_surface_convergence.pgf new file mode 100644 index 000000000..c7742fd9b --- /dev/null +++ b/S_on_surface_convergence.pgf @@ -0,0 +1,2199 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{}{.pgf} +%% +%% Matplotlib used the following preamble +%% \def\mathdefault#1{#1} +%% \everymath=\expandafter{\the\everymath\displaystyle} +%% +%% \ifdefined\pdftexversion\else % non-pdftex case. +%% \usepackage{fontspec} +%% \setmainfont{DejaVuSerif.ttf}[Path=\detokenize{/Users/hirish/miniforge3/envs/inteq/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% \setsansfont{DejaVuSans.ttf}[Path=\detokenize{/Users/hirish/miniforge3/envs/inteq/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% \setmonofont{DejaVuSansMono.ttf}[Path=\detokenize{/Users/hirish/miniforge3/envs/inteq/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% \fi +%% \makeatletter\@ifpackageloaded{underscore}{}{\usepackage[strings]{underscore}}\makeatother +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{5.348058in}{5.256040in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{5.348058in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{5.348058in}{5.256040in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{5.256040in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630556in}{0.426079in}}% +\pgfpathlineto{\pgfqpoint{5.280556in}{0.426079in}}% +\pgfpathlineto{\pgfqpoint{5.280556in}{5.046079in}}% +\pgfpathlineto{\pgfqpoint{0.630556in}{5.046079in}}% +\pgfpathlineto{\pgfqpoint{0.630556in}{0.426079in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630556in}{0.426079in}}{\pgfqpoint{4.650000in}{4.620000in}}% +\pgfusepath{clip}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.041667in}{-0.041667in}}{\pgfqpoint{0.041667in}{0.041667in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathcurveto{\pgfqpoint{0.011050in}{-0.041667in}}{\pgfqpoint{0.021649in}{-0.037276in}}{\pgfqpoint{0.029463in}{-0.029463in}}% +\pgfpathcurveto{\pgfqpoint{0.037276in}{-0.021649in}}{\pgfqpoint{0.041667in}{-0.011050in}}{\pgfqpoint{0.041667in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{0.041667in}{0.011050in}}{\pgfqpoint{0.037276in}{0.021649in}}{\pgfqpoint{0.029463in}{0.029463in}}% +\pgfpathcurveto{\pgfqpoint{0.021649in}{0.037276in}}{\pgfqpoint{0.011050in}{0.041667in}}{\pgfqpoint{0.000000in}{0.041667in}}% +\pgfpathcurveto{\pgfqpoint{-0.011050in}{0.041667in}}{\pgfqpoint{-0.021649in}{0.037276in}}{\pgfqpoint{-0.029463in}{0.029463in}}% +\pgfpathcurveto{\pgfqpoint{-0.037276in}{0.021649in}}{\pgfqpoint{-0.041667in}{0.011050in}}{\pgfqpoint{-0.041667in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{-0.041667in}{-0.011050in}}{\pgfqpoint{-0.037276in}{-0.021649in}}{\pgfqpoint{-0.029463in}{-0.029463in}}% +\pgfpathcurveto{\pgfqpoint{-0.021649in}{-0.037276in}}{\pgfqpoint{-0.011050in}{-0.041667in}}{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{5.069192in}{0.896714in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.540783in}{1.340489in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.012374in}{1.895654in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.483965in}{2.417790in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.955556in}{2.713141in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.427147in}{3.414062in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.898738in}{3.720859in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.370329in}{4.175250in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{0.841919in}{4.546112in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{5.069192in}{0.909333in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.540783in}{1.473210in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.012374in}{1.897764in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.483965in}{2.425534in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.955556in}{2.820005in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.427147in}{3.361493in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.898738in}{3.771106in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.370329in}{4.098554in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{0.841919in}{4.546112in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{5.069192in}{0.636079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.540783in}{1.413294in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.012374in}{1.670896in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.483965in}{2.315912in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.955556in}{2.721438in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.427147in}{3.357033in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.898738in}{3.847290in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.370329in}{4.341233in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{0.841919in}{4.836079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{5.069192in}{0.844233in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.540783in}{1.441662in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.012374in}{1.982326in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.483965in}{2.254620in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.955556in}{2.813079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.427147in}{2.948417in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.898738in}{3.884878in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.370329in}{4.361491in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{0.841919in}{4.805972in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{5.069192in}{0.877538in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.540783in}{1.394348in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{4.012374in}{1.867478in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.483965in}{2.445643in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.955556in}{2.580389in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{2.427147in}{3.240325in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.898738in}{3.790104in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{1.370329in}{4.011749in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{0.841919in}{4.810555in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.841919in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.841919in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-9}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.370329in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.370329in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-8}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.898738in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.898738in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-7}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.427147in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.427147in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-6}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.955556in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.955556in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-5}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.483965in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.483965in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-4}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.012374in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=4.012374in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-3}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.540783in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=4.540783in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-2}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{5.069192in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=5.069192in,y=0.328857in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-1}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.631644in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.682852in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.724693in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.760068in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.790711in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.817741in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.000986in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.094035in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.160053in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.211262in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.253102in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.288477in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.319120in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.346150in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.529396in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.622444in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.688463in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.739671in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.781511in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.816886in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.847530in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.874559in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.057805in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.150853in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.216872in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.268080in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.309920in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.345295in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.375939in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.402968in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.586214in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.679262in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.745281in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.796489in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.838329in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.873704in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.904348in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.931377in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.114623in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.207671in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.273690in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.324898in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.366738in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.402113in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.432757in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.459786in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.643032in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.736080in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.802099in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.853307in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.895147in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.930522in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.961166in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.988195in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.171441in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.264489in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.330508in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.381716in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.423556in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.458932in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.489575in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.516604in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.699850in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.792898in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.858917in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.910125in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.951965in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.987341in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{5.017984in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{5.045014in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.602250pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.027778in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.027778in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{5.228259in}{0.426079in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.955556in,y=0.138889in,,top]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}Parameter $|x_1|/\overline{x}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630556in}{1.082331in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.189968in, y=1.029570in, left, base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-14}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630556in}{1.824570in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.189968in, y=1.771809in, left, base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-11}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630556in}{2.566809in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.245331in, y=2.514047in, left, base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-8}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630556in}{3.309048in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.245331in, y=3.256286in, left, base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-5}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630556in}{4.051287in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.245331in, y=3.998525in, left, base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{-2}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.630556in}{4.793525in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.332137in, y=4.740764in, left, base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}$\mathdefault{10^{1}}$}}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.134413in,y=2.736079in,,bottom,rotate=90.000000]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}Relative error (eq. 74)}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.630556in}{0.426079in}}{\pgfqpoint{4.650000in}{4.620000in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{5.069192in}{0.889339in}}% +\pgfpathlineto{\pgfqpoint{4.540783in}{1.366545in}}% +\pgfpathlineto{\pgfqpoint{4.012374in}{1.843750in}}% +\pgfpathlineto{\pgfqpoint{3.483965in}{2.320956in}}% +\pgfpathlineto{\pgfqpoint{2.955556in}{2.798161in}}% +\pgfpathlineto{\pgfqpoint{2.427147in}{3.275366in}}% +\pgfpathlineto{\pgfqpoint{1.898738in}{3.752572in}}% +\pgfpathlineto{\pgfqpoint{1.370329in}{4.229777in}}% +\pgfpathlineto{\pgfqpoint{0.841919in}{4.706983in}}% +\pgfpathlineto{\pgfqpoint{5.069192in}{0.889339in}}% +\pgfpathlineto{\pgfqpoint{4.540783in}{1.366545in}}% +\pgfpathlineto{\pgfqpoint{4.012374in}{1.843750in}}% +\pgfpathlineto{\pgfqpoint{3.483965in}{2.320956in}}% +\pgfpathlineto{\pgfqpoint{2.955556in}{2.798161in}}% +\pgfpathlineto{\pgfqpoint{2.427147in}{3.275366in}}% +\pgfpathlineto{\pgfqpoint{1.898738in}{3.752572in}}% +\pgfpathlineto{\pgfqpoint{1.370329in}{4.229777in}}% +\pgfpathlineto{\pgfqpoint{0.841919in}{4.706983in}}% +\pgfpathlineto{\pgfqpoint{5.069192in}{0.889339in}}% +\pgfpathlineto{\pgfqpoint{4.540783in}{1.366545in}}% +\pgfpathlineto{\pgfqpoint{4.012374in}{1.843750in}}% +\pgfpathlineto{\pgfqpoint{3.483965in}{2.320956in}}% +\pgfpathlineto{\pgfqpoint{2.955556in}{2.798161in}}% +\pgfpathlineto{\pgfqpoint{2.427147in}{3.275366in}}% +\pgfpathlineto{\pgfqpoint{1.898738in}{3.752572in}}% +\pgfpathlineto{\pgfqpoint{1.370329in}{4.229777in}}% +\pgfpathlineto{\pgfqpoint{0.841919in}{4.706983in}}% +\pgfpathlineto{\pgfqpoint{5.069192in}{0.889339in}}% +\pgfpathlineto{\pgfqpoint{4.540783in}{1.366545in}}% +\pgfpathlineto{\pgfqpoint{4.012374in}{1.843750in}}% +\pgfpathlineto{\pgfqpoint{3.483965in}{2.320956in}}% +\pgfpathlineto{\pgfqpoint{2.955556in}{2.798161in}}% +\pgfpathlineto{\pgfqpoint{2.427147in}{3.275366in}}% +\pgfpathlineto{\pgfqpoint{1.898738in}{3.752572in}}% +\pgfpathlineto{\pgfqpoint{1.370329in}{4.229777in}}% +\pgfpathlineto{\pgfqpoint{0.841919in}{4.706983in}}% +\pgfpathlineto{\pgfqpoint{5.069192in}{0.889339in}}% +\pgfpathlineto{\pgfqpoint{4.540783in}{1.366545in}}% +\pgfpathlineto{\pgfqpoint{4.012374in}{1.843750in}}% +\pgfpathlineto{\pgfqpoint{3.483965in}{2.320956in}}% +\pgfpathlineto{\pgfqpoint{2.955556in}{2.798161in}}% +\pgfpathlineto{\pgfqpoint{2.427147in}{3.275366in}}% +\pgfpathlineto{\pgfqpoint{1.898738in}{3.752572in}}% +\pgfpathlineto{\pgfqpoint{1.370329in}{4.229777in}}% +\pgfpathlineto{\pgfqpoint{0.841919in}{4.706983in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630556in}{0.426079in}}% +\pgfpathlineto{\pgfqpoint{0.630556in}{5.046079in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{5.280556in}{0.426079in}}% +\pgfpathlineto{\pgfqpoint{5.280556in}{5.046079in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630556in}{0.426079in}}% +\pgfpathlineto{\pgfqpoint{5.280556in}{0.426079in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.630556in}{5.046079in}}% +\pgfpathlineto{\pgfqpoint{5.280556in}{5.046079in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.955556in,y=5.129413in,,base]{\color{textcolor}{\sffamily\fontsize{12.000000}{14.400000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}Relative error in single recurrence step, Laplace 2D, $n=9$}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetfillopacity{0.800000}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.800000,0.800000,0.800000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.800000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.007091in}{4.527254in}}% +\pgfpathlineto{\pgfqpoint{5.183334in}{4.527254in}}% +\pgfpathquadraticcurveto{\pgfqpoint{5.211111in}{4.527254in}}{\pgfqpoint{5.211111in}{4.555032in}}% +\pgfpathlineto{\pgfqpoint{5.211111in}{4.948857in}}% +\pgfpathquadraticcurveto{\pgfqpoint{5.211111in}{4.976635in}}{\pgfqpoint{5.183334in}{4.976635in}}% +\pgfpathlineto{\pgfqpoint{2.007091in}{4.976635in}}% +\pgfpathquadraticcurveto{\pgfqpoint{1.979313in}{4.976635in}}{\pgfqpoint{1.979313in}{4.948857in}}% +\pgfpathlineto{\pgfqpoint{1.979313in}{4.555032in}}% +\pgfpathquadraticcurveto{\pgfqpoint{1.979313in}{4.527254in}}{\pgfqpoint{2.007091in}{4.527254in}}% +\pgfpathlineto{\pgfqpoint{2.007091in}{4.527254in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{1.003750pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.041667in}{-0.041667in}}{\pgfqpoint{0.041667in}{0.041667in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathcurveto{\pgfqpoint{0.011050in}{-0.041667in}}{\pgfqpoint{0.021649in}{-0.037276in}}{\pgfqpoint{0.029463in}{-0.029463in}}% +\pgfpathcurveto{\pgfqpoint{0.037276in}{-0.021649in}}{\pgfqpoint{0.041667in}{-0.011050in}}{\pgfqpoint{0.041667in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{0.041667in}{0.011050in}}{\pgfqpoint{0.037276in}{0.021649in}}{\pgfqpoint{0.029463in}{0.029463in}}% +\pgfpathcurveto{\pgfqpoint{0.021649in}{0.037276in}}{\pgfqpoint{0.011050in}{0.041667in}}{\pgfqpoint{0.000000in}{0.041667in}}% +\pgfpathcurveto{\pgfqpoint{-0.011050in}{0.041667in}}{\pgfqpoint{-0.021649in}{0.037276in}}{\pgfqpoint{-0.029463in}{0.029463in}}% +\pgfpathcurveto{\pgfqpoint{-0.037276in}{0.021649in}}{\pgfqpoint{-0.041667in}{0.011050in}}{\pgfqpoint{-0.041667in}{0.000000in}}% +\pgfpathcurveto{\pgfqpoint{-0.041667in}{-0.011050in}}{\pgfqpoint{-0.037276in}{-0.021649in}}{\pgfqpoint{-0.029463in}{-0.029463in}}% +\pgfpathcurveto{\pgfqpoint{-0.021649in}{-0.037276in}}{\pgfqpoint{-0.011050in}{-0.041667in}}{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.041667in}}% +\pgfpathclose% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.173758in}{4.852015in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.423758in,y=4.815556in,left,base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}Relative Error}}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{2.034869in}{4.660310in}}% +\pgfpathlineto{\pgfqpoint{2.173758in}{4.660310in}}% +\pgfpathlineto{\pgfqpoint{2.312647in}{4.660310in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.423758in,y=4.611699in,left,base]{\color{textcolor}{\sffamily\fontsize{10.000000}{12.000000}\selectfont\catcode`\^=\active\def^{\ifmmode\sp\else\^{}\fi}\catcode`\%=\active\def%{\%}Linear Least Squares Fit Slope: -1.9673}}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/output.png b/output.png new file mode 100644 index 0000000000000000000000000000000000000000..ff4bab9eaba3c6f8f3dd88945ad3dde97546e200 GIT binary patch literal 34611 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 JL)+%}{|9BuHkSYZ literal 0 HcmV?d00001 diff --git a/qbxrecurrence.svg b/qbxrecurrence.svg index be819aeff..39becc7bc 100644 --- a/qbxrecurrence.svg +++ b/qbxrecurrence.svg @@ -1,12 +1,12 @@ - + - 2025-05-04T18:09:01.578837 + 2025-07-11T22:39:12.289385 image/svg+xml @@ -21,149 +21,149 @@ - - - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - + - + - + - + - + - + @@ -325,12 +325,12 @@ z - + - + - + - + @@ -381,7 +381,7 @@ z - + - - + - + - + - + @@ -744,12 +744,12 @@ z - + - + - + - + - + - + @@ -835,7 +835,7 @@ z - + - - - - - + - - + - + - + - + @@ -1424,12 +1424,12 @@ z - + - + @@ -1452,12 +1452,12 @@ z - + - + @@ -1477,12 +1477,12 @@ z - + - + @@ -1505,12 +1505,12 @@ z - + - + @@ -1530,12 +1530,12 @@ z - + - + @@ -1559,12 +1559,12 @@ z - + - + @@ -1587,7 +1587,7 @@ z - + - + + diff --git a/test/Helmholtz2DCost.svg b/test/Helmholtz2DCost.svg new file mode 100644 index 000000000..489c2391e --- /dev/null +++ b/test/Helmholtz2DCost.svg @@ -0,0 +1,1302 @@ + + + + + + + + 2025-07-12T00:27:20.450262 + image/svg+xml + + + Matplotlib v3.9.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/count_flops.ipynb b/test/count_flops.ipynb index e30caffcb..2561db66e 100644 --- a/test/count_flops.ipynb +++ b/test/count_flops.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -29,7 +29,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -84,30 +84,30 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/latex": [ - "$\\displaystyle - \\frac{24 x_{0} \\left(16 x_{0}^{4} - 20 x_{0}^{2} \\left(x_{0}^{2} + x_{1}^{2}\\right) + 5 \\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}\\right)}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{5}}$" + "$\\displaystyle \\frac{- x_{0}^{2} + x_{1}^{2}}{\\left(x_{0}^{2} + x_{1}^{2}\\right)^{2}}$" ], "text/plain": [ - "-24*x0*(16*x0**4 - 20*x0**2*(x0**2 + x1**2) + 5*(x0**2 + x1**2)**2)/(x0**2 + x1**2)**5" + "(-x0**2 + x1**2)/(x0**2 + x1**2)**2" ] }, - "execution_count": 9, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "derivs_laplace[5].simplify()" + "derivs_laplace[2].simplify()" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -136,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -147,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -156,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +166,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -176,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -188,14 +188,19 @@ " old_exp_flops.append(count_ops(cse((old_expansion_create(0, i+1, derivs)).simplify())))\n", " new_exp_flops.append(count_ops(cse(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec)).simplify()))))\n", " else:\n", - " old_exp_flops.append(count_ops(cse((old_expansion_create(0, i+1, derivs)))))\n", - " new_exp_flops.append(count_ops(cse(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec))))))\n", + " if i < 7:\n", + " old_exp_flops.append(count_ops(cse((old_expansion_create(0, i+1, derivs)))))\n", + " new_exp_flops.append(count_ops(cse(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec))))))\n", + " else:\n", + " old_exp_flops.append(0)\n", + " new_exp_flops.append(count_ops(cse(((old_expansion_create(0, min(i+1,n_init), derivs) + (new_expansion_create(n_init, i+1, recur)+var[0]*0).subs(subs_dict_s_vec))))))\n", + "\n", " return old_exp_flops, new_exp_flops" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -204,31 +209,21 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ - "old_helm_flops, new_helm_flops = get_flops_per_order_lt(7, derivs_helmholtz, recur_helmholtz, n_init_helm, simplify=False)" + "old_helm_flops, new_helm_flops = get_flops_per_order_lt(15, derivs_helmholtz, recur_helmholtz, n_init_helm, simplify=False)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "Text(0.5, 0, 'Line-Taylor Order')" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", + "image/png": "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NhNOkcMgIDEKHPlDRpOHzYSrTI4Grsoyq5mIiKiysMnTKGVFLpWgb21H1BjTA7EjliJdVsNoe7qsBmJHLEWNMT3Qt7Yj5FyZlYiIbJBECGHa928j0tLS4OLigtTU1FL1bOR7eAbRpFVHkXMjEarAavAa2AIKmRx9azuingt7NYiIqOooyXcow0YZhA2g6LVR2KNBRERVTUm+Qzlmo4zIpRI0dFehoXvxrk4hIiKyFRyzQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBbFsEFEREQWxbBBREREFsWwQURERBZVJcLGs88+Czc3NwwcONDapRAREVEBVSJsjB07FkuXLrV2GURERGRGlQgbnTp1gpOTk7XLICIiIjOsHjb27NmDvn37wtfXFxKJBGvWrDHZ57vvvkOtWrWgUqnQrFkz7N27t/wLJSIiolKxetjIzMxEWFgY5s+fb3b7ypUrMX78eEyaNAknT55Eu3bt0LNnT8TGxpZzpURERFQacmsX0LNnT/Ts2bPQ7XPmzMErr7yCV199FQAwb948bNmyBQsWLMDMmTNL9Fi5ubnIzc013E5LSytd0URERFRsVu/ZKIpGo8Hx48fRrVs3o/Zu3brhwIEDJT7ezJkz4eLiYvjx9/cvq1KJiIioEBU6bNy9exc6nQ7Vq1c3aq9evToSEhIMt7t3747nn38eGzduhJ+fH44ePWr2eB9++CFSU1MNP3FxcRatn4iIiCrAaZTikEgkRreFEEZt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", "text/plain": [ "
" ] @@ -241,42 +236,71 @@ "fig, ax = plt.subplots(figsize = (6, 6))\n", "ax.set_yscale(\"log\")\n", "ax.set_xscale(\"log\")\n", - "ax.plot([i for i in range(7)], new_helm_flops, \n", + "ax.plot([i for i in range(15)], new_helm_flops, \n", " marker='o', # marker type\n", " markerfacecolor='blue', # color of marker\n", - " markersize=12, # size of marker\n", + " markersize=8, # size of marker\n", " color='skyblue', # color of line\n", - " linewidth=4, # change width of line)\n", + " linewidth=3, # change width of line)\n", " label='Recurrence'\n", ")\n", - "ax.plot([i for i in range(7)], old_helm_flops, \n", + "ax.plot([i for i in range(7)], old_helm_flops[:7], \n", " marker='o', # no marker\n", " color='darkred', # color of line\n", " linewidth=3, # change width of line\n", " linestyle='dashed', # change type of line\n", " label=\"No Recurrence\" # label for legend)\n", ")\n", - "ax.set_xticks([i+1 for i in range(6)])\n", - "ax.set_xticklabels(str(i+1) for i in range(6))\n", + "ax.set_xticks([i+1 for i in range(0,15,2)])\n", + "ax.set_xticklabels(str(i+1) for i in range(0,15,2))\n", "ax.legend()\n", "ax.set_title(\"Helmholtz 2D Line-Taylor Flop Comparison\")\n", "ax.set_ylabel(\"Flop Count\")\n", "ax.set_xlabel(\"Line-Taylor Order\")\n", - "fig.savefig(\"Helmholtz2DCost.svg\")" + "fig.savefig(\"Helmholtz2DCost.svg\")\n", + "fig.savefig(\"../../S_on_surface_convergence.pgf\", bbox_inches='tight', pad_inches=0)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [ "expr = var[0]**2 +sp.sin(var[0]**2)" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -288,9 +312,36 @@ "x0**2 + sin(x0**2)" ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -299,7 +350,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -308,9 +359,36 @@ "4" ] }, - "execution_count": 16, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -319,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -328,9 +406,36 @@ "([(x1, x0**2)], [x1 + sin(x1)])" ] }, - "execution_count": 17, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -339,7 +444,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -348,9 +453,36 @@ "3" ] }, - "execution_count": 18, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] } ], "source": [ @@ -361,7 +493,35 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mnotebook controller is DISPOSED. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], "source": [] } ], diff --git a/test/investigate_normal_recurrence copy.ipynb b/test/investigate_normal_recurrence copy.ipynb index 9d823f578..1771c5423 100644 --- a/test/investigate_normal_recurrence copy.ipynb +++ b/test/investigate_normal_recurrence copy.ipynb @@ -136,9 +136,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[-1.62171073354551e+29, 2.00255056224500e+29, 5.37247239856568e+28]\n", - "ratio: 0.809822615278915 ||||| digits: -0.09161009919801158 |||| pred error: 1e-16\n", - "rel. error: 1.14970703631091e-15\n" + "[534656311907.004, 125225345923.873, -618558046809.187]\n", + "ratio: 4.26955348346198 ||||| digits: 0.630382458208069 |||| pred error: 1e-15\n", + "rel. error: 1.29237887005369e-15\n" ] } ], @@ -248,7 +248,7 @@ { "data": { "text/plain": [ - "array([ 1.95379536, -16.92811503])" + "array([ 1.95748005, -16.82293482])" ] }, "execution_count": 16, @@ -263,22 +263,12 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAikAAAIsCAYAAAA3XjmtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB9pElEQVR4nO3deVhUZf8G8HvYV0fZQVFQc0FEBDdMU1zBN1wzc0vN7KdmLmSlLZK2kEsu5ZJmab1m2WKWvqZiaWi4gqSGlRqIC4iAsinbzPP7g5d5nQWYGWaYAe7PdXHVPOc553wPy8ztOc95jkQIIUBERERkZixMXQARERGRJgwpREREZJYYUoiIiMgsMaQQERGRWWJIISIiIrPEkEJERERmiSGFiIiIzBJDChEREZklhhQiIiIySwwpREREZJYYUoiIiMgsMaSY0Pbt2yGRSBRfVlZW8Pb2xlNPPYXLly/XaptpaWk6r5uQkIA333wT9+7dM+h2GyNTfL/qap/8XWh8qntvMGdvvvkmJBIJsrOzTV2KEj8/P7z55pt1vq4+CgoK8PLLL2PIkCFwd3eHRCKp0/0zpJiBbdu24cSJEzh8+DDmzJmDH3/8EX369MHdu3frtI6EhAQsXbpU4xvRv/71L5w4cQLe3t51WlN9ZYrvF39GZCzVvTeQeSktLdWpvSY5OTnYsmULSkpKMHLkyFpUph+rOt8jqQkMDES3bt0AAP3794dMJkNMTAz27NmDadOmmbi6Cu7u7nB3dzd1GTq5f/8+HBwcdF5miO2b4vtVH39GVTHEz8fQjP37RGQIkZGR6NGjB6Kjo5XeD5YuXYqrV6/itddeQ+fOnbXeXqtWrXD37l3FGamtW7cao+wq8UyKGaoMLLdv31Zqv3z5MiZMmAAPDw/Y2tqiY8eO2LBhQ43bu3LlCqZNm4ZHHnkEDg4OaN68OaKionDhwgVFnzfffBMvvfQSAMDf319xCero0aMAlE/x79mzBxKJBD///LPavjZt2gSJRILz58/Xum5d1q88rZuUlIQnnngCzZo1Q5s2bWpcBgDHjx/HwIED4ezsDAcHB/Tu3Rv/+c9/tN6+JpouiVRu448//sD48eMhlUrh6emJZ555Bnl5eTV+H+7cuYPnnnsOvr6+sLW1hbu7Ox599FEcPnzYIPv84YcfEBQUBFtbW7Ru3Rrr1q1TrK8NfX/ONX1vtd3un3/+ifHjx8PT0xO2trZo2bIlnn76aZSUlAAApk6dCj8/vyr3r21NhqhX19+Fmo6tNt//mn6vanpv0Ha/lcd87tw5jB49Gk2aNIFUKsWkSZNw586damv8448/IJFI8M033yjaEhMTIZFI0KlTJ6W+w4cPR2hoqFLb7du3tfo+G+Nnp6tjx45h1KhR8PDwgJ2dHdq0aYOXX35Z6/UDAgKwfPly+Pn5YcGCBbh16xaAin8M79u3D126dMHIkSNx9uxZrbZX+fM2FZ5JMUOpqakAgHbt2inaUlJS0Lt3b7Rs2RLvv/8+vLy8cPDgQcydOxfZ2dmIiYmpcnu3bt2Cq6sr3nvvPbi7uyM3NxefffYZevbsiXPnzqF9+/Z49tlnkZubiw8//BC7d+9WXDIICAhQ297jjz8ODw8PbNu2DQMHDlRatn37doSEhCAoKKjWdeuz/ujRo/HUU09h5syZKCoqqnHZr7/+isGDByMoKAiffPIJbG1tsXHjRkRFReHLL7/EuHHjtN6+tsaMGYNx48Zh+vTpuHDhAhYvXgwA+PTTT6tdb/LkyUhKSsI777yDdu3a4d69e0hKSkJOTk6t93ngwAGMHj0ajz32GHbt2oXy8nKsWrVKLShXpbY/Z0Dz91bb7f7+++/o06cP3NzcsGzZMjzyyCPIyMjAjz/+iNLSUtja2mp1HNrUZIh6K2nzu6DNsdXm+1/T71V17w367HfUqFF48sknMXPmTPzxxx944403kJKSglOnTsHa2lpjjZ06dYK3tzcOHz6MsWPHAgAOHz4Me3t7pKSk4NatW/Dx8UF5eTl+/fVXzJw5U+fvszF+drpavXo1Fi5ciFGjRuGDDz6Am5sbfv/9d/z5559ab+PDDz/ErFmz8M477+DDDz/Epk2bMG3aNLzyyiu4du0a1qxZg/Xr1+OHH37A0KFD8frrr6NPnz5612x0gkxm27ZtAoA4efKkKCsrEwUFBeLAgQPCy8tLPPbYY6KsrEzRd+jQoaJFixYiLy9PaRtz5swRdnZ2Ijc3V2mbqampVe63vLxclJaWikceeUQsWLBA0b5y5coq11XdbnR0tLC3txf37t1T9ElJSREAxIcffqhz3VXRdv2YmBgBQCxZskRtG9Ut69Wrl/Dw8BAFBQWKtvLychEYGChatGgh5HJ5jdvQRNPPoXIbK1asUOo7e/ZsYWdnp9hXVZycnMT8+fONss/u3bsLX19fUVJSouhTUFAgXF1dherbhKb91ObnXN33VtvtDhgwQDRt2lRkZWVVuZ8pU6aIVq1aVbl/bWsyRL26/C5oc2y1+f7X9HslRNXvDbrst/KYH37PEUKIL774QgAQO3bsqLaGSZMmidatWyteDxo0SMyYMUM0a9ZMfPbZZ0IIIX777TcBQBw6dEhpn9p8n43xs6tKq1atRExMjFLbTz/9JACIlStX6rxuVS5fviyeeeYZYW1tLaysrMTUqVPFX3/9Je7duyfeeustxd93v379RFxcXI3bu3PnjgCg9f4NgZd7zECvXr1gbW0NZ2dnREREoFmzZvjhhx9gZVVxoqu4uBg///wzRo0aBQcHB5SXlyu+hg0bhuLiYpw8ebLK7ZeXl+Pdd99FQEAAbGxsYGVlBRsbG1y+fBmXLl3Sq+ZnnnkGDx48wK5duxRt27Ztg62tLSZMmGCQuvVZf8yYMVVuT3VZUVERTp06hSeeeAJOTk6KdktLS0yePBk3btzAX3/9pfX2tTV8+HCl10FBQSguLkZWVla16/Xo0QPbt2/H22+/jZMnT6KsrMwg+ywqKsLZs2cxcuRI2NjYKPo4OTkhKiqqxm3X9udcSfV7q+1279+/j19//RVPPvmkwcfk6PL7pM/3oabfBW2Orbbff31/r/Td78SJE5VeP/nkk7CyssKRI0eq3d/AgQPxzz//IDU1FcXFxTh+/DgiIiIQHh6OuLg4ABVnV2xtbdXODNT0fTbGz05Xr776Krp164aFCxfqtb4mbdu2xSeffIKrV69i3Lhx2L59Ozp37gypVIrXX38d165dw3vvvYfffvsNgwcPxrFjxwy2b0NhSDEDn3/+Oc6cOYNffvkF//d//4dLly5h/PjxiuU5OTkoLy/Hhx9+CGtra6WvYcOGAUC1t9hFR0fjjTfewMiRI7F3716cOnUKZ86cQZcuXfDgwQO9au7UqRO6d++Obdu2AQBkMhl27NiBESNGwMXFxSB167N+dXe2qC67e/cuhBAa1/Hx8VHUoO32teXq6qr0uvJSRE0/i127dmHKlCnYunUrwsLC4OLigqeffhqZmZm12mfl98HT01NtPU1tqmr7c66k+r3Vdrt3796FTCZDixYtatyHrnT5fdLn+1DT74I2x1bb77++v1f67tfLy0vptZWVFVxdXWu8bDlo0CAAFUHk+PHjKCsrw4ABAzBo0CDF+LjDhw/j0Ucfhb29vdK6NX2fjfGz00VGRgbOnTun9L5vKFlZWdiwYQN+/PFHWFlZKUJiSUkJduzYgc2bN6O8vByPPfYY/P39Db7/2uKYFDPQsWNHxWDZ8PBwyGQybN26Fd9++61iYF7lv+6ff/55jduo7pdrx44dePrpp/Huu+8qtWdnZ6Np06Z61z1t2jTMnj0bly5dwj///IOMjAylu5FqW7c+61c3wEt1WbNmzWBhYYGMjAy1vpWDzdzc3LTevrG5ublh7dq1WLt2LdLT0/Hjjz9i0aJFyMrKwoEDB/TebrNmzSCRSDSOP9EmANX251xJ089Hm+06ODjA0tISN27cqHb7dnZ2SgNNK1X3Aa7r75Mhvg8Pc3FxqfHYartffX+v9N1vZmYmmjdvrnhdXl6OnJwctQ99VS1atEC7du1w+PBh+Pn5oVu3bmjatCkGDhyI2bNn49SpUzh58iSWLl1a7XYMeSyGcvPmTQBQ+r7U1o0bN7By5Up8/PHHkMvlmDZtGhYtWgR3d3esWbMGq1atwq1btzB06FB8/vnnZjsuhSHFDK1YsQLfffcdlixZgtGjR8PBwQHh4eE4d+4cgoKClE7Ja0MikagNHPzPf/6Dmzdvom3btoo2Xf8lMH78eERHR2P79u34559/0Lx5cwwZMkSxvLZ113b9mjg6OqJnz57YvXs3Vq1apfjXl1wux44dOxRviuaoZcuWmDNnDn7++Wf89ttvtdqWo6MjunXrhj179mDVqlWK73NhYSH27dtX4/rG+jnpst1+/frhm2++wTvvvKMWLCv5+fkhKysLt2/fVpwhKi0txcGDB+u8Xm3Z29vXeGyG3G9Vv1ea3hv03e8XX3yhdPfN119/jfLycvTv37/GdQcNGoSvv/4avr6++Ne//gWg4gaDli1bYsmSJSgrK1OccdGFsd9ralIZTs6fP682WF9XV69exXvvvYfPP/8c1tbWmDlzJl566SU4ODhgw4YNWLNmDXJycjBixAi8/vrrandCmRuGFDPUrFkzLF68GC+//DJ27tyJSZMmYd26dejTpw/69u2LWbNmwc/PDwUFBbhy5Qr27t2LX375pcrtPf7449i+fTs6dOiAoKAgJCYmYuXKlWqnkCvvnV+3bh2mTJkCa2trtG/fHs7Ozhq327RpU4waNQrbt2/HvXv3sHDhQlhYKF9BrE3dhli/JrGxsRg8eDDCw8OxcOFC2NjYYOPGjbh48SK+/PJLk545eVheXh7Cw8MxYcIEdOjQAc7Ozjhz5ozirpzaWrZsGf71r39h6NChmDdvHmQyGVauXAknJyfk5ubWuL6xfk7abnf16tXo06cPevbsiUWLFqFt27a4ffs2fvzxR2zevBnOzs4YN24clixZgqeeegovvfQSiouL8cEHH0Amk+lVW119H7Q5Nn33q+3vVVXvDfrsd/fu3bCyssLgwYMVd/d06dIFTz75ZI3fi4EDB2Ljxo3Izs7G2rVrldq3bduGZs2a6f2ha+z3mup4e3tj6NChWL16Nezt7dG7d28UFBTgxIkT6NixI6ZMmaL1tipnLF+4cCEWLFigCLaLFy/GypUrMW7cOLz66qtqt25X56effkJRUREKCgoAVNwJ9e233wIAhg0bZtw5gupsiC6pqbxL4syZM2rLHjx4IFq2bCkeeeQRUV5eLoQQIjU1VTzzzDOiefPmwtraWri7u4vevXuLt99+W22bD4/Cv3v3rpg+fbrw8PAQDg4Ook+fPuLYsWOiX79+ol+/fkr7Xbx4sfDx8REWFhYCgDhy5EiV2xVCiEOHDgkAAoD4+++/NR6nNnVXR5v1K0fc37lzR2396pYJIcSxY8fEgAEDhKOjo7C3txe9evUSe/fu1Wkbqqq700Z1G9rckVVcXCxmzpwpgoKCRJMmTYS9vb1o3769iImJEUVFRQbZ5/fffy86d+4sbGxsRMuWLcV7770n5s6dK5o1a6ZVvfr+nGv63mq73ZSUFDF27Fjh6uqqOIapU6eK4uJiRZ/9+/eL4OBgYW9vL1q3bi3Wr19f7d09+vw+1eb3tarvrTbHps/3X5vfq0pVvTdou9/KY05MTBRRUVHCyclJODs7i/Hjx4vbt29XWePD7t69KywsLISjo6MoLS1VtFfeITR69GiN+9T2+2yMn50mmu7Qyc3NFfPmzRP+/v7CxsZGuLu7i4iICHHx4sUa133Yl19+qXTXZaXDhw+Ly5cv11hbVfVWvs+rfmlzvLUhEUII40UgIqqvysrKEBwcjObNm+PQoUOmLofquTfffBNLly7FnTt3qrwk11j4+flh6tSpej0Dpzbr1ke83ENEAIDp06dj8ODB8Pb2RmZmJj766CNcunQJ69atM3VpRNRIMaQQEYCKp50uXLgQd+7cgbW1NUJCQrB//369BiISERkCQwoRAai4y4LIWN58881Gc4mCDIdjUoiIiMgsccZZIiIiMksMKURERGSWOCZFT3K5HLdu3YKzs7PZTPhFRERUHwghUFBQAB8fH7VJQB/GkKKnW7duwdfX19RlEBER1VvXr1+v9gGaDCl6qpwq/vr162jSpImJqyEiIqo/8vPz4evrW+VjVyoxpOip8hJPkyZNGFKIiIj0UNNwCQ6cJSIiIrPEkEJERERmiSGFiIiIzBLHpBiZTCZDWVmZqcsgMivW1tawtLQ0dRlEZOYYUoxECIHMzEzcu3fP1KUQmaWmTZvCy8uL8wwRUZUYUoykMqB4eHjAwcGBb8RE/yWEwP3795GVlQUA8Pb2NnFFRGSuGFKMQCaTKQKKq6urqcshMjv29vYAgKysLHh4ePDSDxFpxIGzRlA5BsXBwcHElRCZr8q/D47ZIqKqMKQYES/xEFWNfx9EVBOGFCIiIjJLDClkUGlpaZBIJEhOTjaL7RARUf3FkEIKU6dOhUQigUQigZWVFVq2bIlZs2bh7t27Rt/vyJEjldp8fX2RkZGBwMBAo+678nhVv7766iuj7peIiGrGu3vMmEwucDo1F1kFxfBwtkMPfxdYWhj3On5ERAS2bduG8vJypKSk4JlnnsG9e/fw5ZdfGnW/qiwtLeHl5VUn+9q2bRsiIiKU2po2baqxr0wmg0QigYWFcr4vLS2FjY2NzvvWdz0iosaAZ1LM1IGLGeiz/BeM//gk5n2VjPEfn0Sf5b/gwMUMo+7X1tYWXl5eaNGiBYYMGYJx48bh0KFDSn22bduGjh07ws7ODh06dMDGjRur3J5MJsP06dPh7+8Pe3t7tG/fHuvWrVMsf/PNN/HZZ5/hhx9+UJzFOHr0qNLlHrlcjhYtWuCjjz5S2nZSUhIkEgn++ecfAEBeXh6ee+45eHh4oEmTJhgwYAB+//33Go+5clKxh7/s7OwAANu3b0fTpk2xb98+BAQEwNbWFteuXYOfnx/efvttTJ06FVKpFDNmzAAAfPfdd+jUqRNsbW3h5+eH999/X2lfVa1HRGSOZHKBE1dz8EPyTZy4mgOZXNTp/nkmxQwduJiBWTuSoPqrkJlXjFk7krBpUggiAo0/AdY///yDAwcOwNraWtH28ccfIyYmBuvXr0fXrl1x7tw5zJgxA46OjpgyZYraNioDxtdffw03NzckJCTgueeeg7e3N5588kksXLgQly5dQn5+PrZt2wYAcHFxwa1btxTbsLCwwFNPPYUvvvgCM2fOVLTv3LkTYWFhaN26NYQQ+Ne//gUXFxfs378fUqkUmzdvxsCBA/H333/DxcVF7+/D/fv3ERsbi61bt8LV1RUeHh4AgJUrV+KNN97A66+/DgBITEzEk08+iTfffBPjxo1DQkICZs+eDVdXV0ydOlWxPdX1iIjM0YGLGYj54Q/cLihRtHk622LpiE518hkEMKSYHZlcYOneFLWAAgACgATA0r0pGBzgZZRLP/v27YOTkxNkMhmKi4sBAKtXr1Ysf+utt/D+++9j9OjRAAB/f3+kpKRg8+bNGkOKtbU1li5dqnjt7++PhIQEfP3113jyySfh5OQEe3t7lJSUVHt5Z+LEiVi9ejWuXbuGVq1aQS6X46uvvsKrr74KADhy5AguXLiArKws2NraAgBWrVqFPXv24Ntvv8Vzzz1X5bbHjx+vNpnY+fPn0bp1awAV83hs3LgRXbp0UeozYMAALFy4UKnGgQMH4o033gAAtGvXDikpKVi5cqVSSFFdj4jI3By4mIGZO5LU2m8XlGDmjiR8VEf/WGZIMTOnU3ORkVdc5XIBICOvGKdTcxHWxvCz2YaHh2PTpk24f/8+tm7dir///hsvvPACAODOnTu4fv06pk+frnSZory8HFKptMptfvTRR9i6dSuuXbuGBw8eoLS0FMHBwTrV1bVrV3To0AFffvklFi1ahF9//RVZWVl48sknAVScxSgsLFSb4ffBgwe4evVqtdtes2YNBg0apNTm6+ur+H8bGxsEBQWprdetWzel15cuXcKIESOU2h599FGsXbsWMplMEYRU1yMiMicyuUD019VfKn/x69+N9o/lhzGkmJmsgqoDij79dOXo6Ii2bdsCAD744AOEh4dj6dKleOuttyCXywFUXPLp2bOn0npVTWv+9ddfY8GCBXj//fcRFhYGZ2dnrFy5EqdOndK5tokTJ2Lnzp1YtGgRdu7ciaFDh8LNzQ1AxWUlb29vHD16VG29qgbBVvLy8lIcsyb29vYaJx5zdHRUei2EUOsnhPo5MdX1iIjMScKVbNwvlVXbp6hUhoQr2ejbzt2otTCkmBkPZzuD9qutmJgYREZGYtasWfDx8UHz5s3xzz//YOLEiVqtf+zYMfTu3RuzZ89WtKme2bCxsYFMVv0fBABMmDABr7/+OhITE/Htt99i06ZNimUhISHIzMyElZUV/Pz8tDs4AwsICMDx48eV2hISEtCuXTs+m4aI6o3vkm5o3c/YIYV395iZHv4u8JbaoaoTaBIA3tKK25HrQv/+/dGpUye8++67ACruxomNjcW6devw999/48KFC9i2bZvSuJWHtW3bFmfPnsXBgwfx999/44033sCZM2eU+vj5+eH8+fP466+/kJ2dXeWzXPz9/dG7d29Mnz4d5eXlSpdWBg0ahLCwMIwcORIHDx5EWloaEhIS8Prrr+Ps2bPVHuO9e/eQmZmp9FVUVKTLtwkA8OKLL+Lnn3/GW2+9hb///hufffYZ1q9fz/EnRFSv3C8tN2i/2mBIMTOWFhLERAUAgFpQqXwdExVg9OuAD4uOjsbHH3+M69ev49lnn8XWrVuxfft2dO7cGf369cP27dvh7++vcd2ZM2di9OjRGDduHHr27ImcnBylsyoAMGPGDLRv3x7dunWDu7s7fvvttyprmThxIn7//XeMHj1a8SRdoGJStv379+Oxxx7DM888g3bt2uGpp55CWloaPD09qz2+adOmwdvbW+nrww8/1OE7VCEkJARff/01vvrqKwQGBmLJkiVYtmyZ0qBZIiJz191Pu/GO2varDYnQdNGcapSfnw+pVIq8vDw0adJEaVlxcTFSU1Ph7++vmG9DVwcuZmDp3hSlQbTeUjvERAXU2a1fRMZkiL8TIjK80nI52r/xE6pLBxIJ8NdbkbCx0u9cR3WfoQ/jmBQzFRHojcEBXnU+4ywRETVuNlYWeK6vPzbHp1bZ57m+/noHFF0wpJgxSwuJUW4zJiIiqs7iYRXDDj4+loqHJ5m1kAAz+vorlhsbQwoRERGpWTwsAC8O6YB/n0jDtdz7aOXigMlhfnVyBqUSQwoRERFpZGNlgel9W5ts/7y7h4iIiMwSQwoRERFVTSIBNDybrS4wpBAREZFmlY/6+Pxz4ObNOt89QwoREREpE+J/AaWSj0+dl8GQQkRERP9TVgZYqMQDTaGlDjCkUL0zdepUjBw50uDbTUtLg0QiQXJyssG3TURULxQVATY2ym0mnJieIYUUpk6dColEovhydXVFREQEzp8/b7B9vPnmmwgODtaq38O1VH4dPnwY69atw/bt2xV9+/fvj/nz59e4zX/++Qfjx4+Hj48P7Ozs0KJFC4wYMQJ///23/gdUR4qLizF16lR07twZVlZWWoe0pKQkDB48GE2bNoWrqyuee+45FBYWqvXbvn07goKCYGdnBy8vL8yZM0exrKqfhaOjo6LP8ePH8eijj8LV1RX29vbo0KED1qxZU+vjJqI6dOcO4OSk3GbiJ+cwpJCSiIgIZGRkICMjAz///DOsrKzw+OOPm6SWTp06KWqp/HrssccglUrRtGlTnbZVWlqKwYMHIz8/H7t378Zff/2FXbt2ITAwEHl5ecY5AAOSyWSwt7fH3LlzMWjQIK3WuXXrFgYNGoS2bdvi1KlTOHDgAP744w+1Bx6uXr0ar732GhYtWoQ//vgDP//8M4YOHapYvnDhQrWfQ0BAAMaOHavo4+joiDlz5iA+Ph6XLl3C66+/jtdffx1btmwxyPETkZH98w/g4aHcZg6P9hOkl7y8PAFA5OXlqS178OCBSElJEQ8ePDBBZfqbMmWKGDFihFJbfHy8ACCysrIUbTdu3BBPPvmkaNq0qXBxcRHDhw8XqampiuVHjhwR3bt3Fw4ODkIqlYrevXuLtLQ0sW3bNgFA6Wvbtm0aa4mJiRFdunSpsc4pU6aobfPhWiqdO3dOABBpaWlVHn9qaqoAIM6dO6doO3r0qOjevbuwsbERXl5e4pVXXhFlZWWK5f369RPPP/+8eP7554VUKhUuLi7itddeE3K5XNGnpKREvPTSS8LHx0c4ODiIHj16iCNHjlRZR000/Zw02bx5s/Dw8BAymUzRVvl9uHz5shBCiNzcXGFvby8OHz6s9f6Tk5MFABEfH19tv1GjRolJkyZVuby+/p0QNThJSUJURJL/fRlZdZ+hD+OZlLogRMV1PlN81SIJFxYW4osvvkDbtm3h6lrxDKH79+8jPDwcTk5OiI+Px/Hjx+Hk5ISIiAiUlpaivLwcI0eORL9+/XD+/HmcOHECzz33HCQSCcaNG4cXX3xR6QzJuHHjavWtXbduHcLCwjBjxgzFNn19fdX6ubu7w8LCAt9++y1kMplW27558yaGDRuG7t274/fff8emTZvwySef4O2331bq99lnn8HKygqnTp3CBx98gDVr1mDr1q2K5dOmTcNvv/2Gr776CufPn8fYsWMRERGBy5cvK/pIJBKlS1iGUFJSAhsbG1g8NADO3t4eQMXlGQCIi4uDXC7HzZs30bFjR7Ro0QJPPvkkrl+/XuV2t27dinbt2qFv375V9jl37hwSEhLQr18/Ax0NERnF4cNASIhymzmcQalk9LjUQOl0JqWwUD2l1tVXYaHWxzRlyhRhaWkpHB0dhaOjowAgvL29RWJioqLPJ598Itq3b692psDe3l4cPHhQ5OTkCADi6NGjGvdR3RkS1X4WFhaKWhwdHUX37t0VdT58JqFfv35i3rx5NW5z/fr1wsHBQTg7O4vw8HCxbNkycfXqVcVy1TMpr776qtqxbtiwQTg5OSnOTvTr10907NhRqc8rr7wiOnbsKIQQ4sqVK0IikYibN28q1TJw4ECxePFixev27duL3bt313gMmo6/KhcvXhRWVlZixYoVoqSkROTm5orRo0cLAOLdd98VQggRGxsrrK2tRfv27cWBAwfEiRMnxMCBA0X79u1FSUmJ2jaLi4tFs2bNxPLlyzXus3nz5sLGxkZYWFiIZcuWVVsfz6QQmdjOnXV+BqUSz6SQXsLDw5GcnIzk5GScOnUKQ4YMQWRkJK5duwYASExMxJUrV+Ds7AwnJyc4OTnBxcUFxcXFuHr1KlxcXDB16lQMHToUUVFRWLduHTIyMvSqpX379opakpOT8d1339Xq2J5//nlkZmZix44dCAsLwzfffINOnTohLi5OY/9Lly4hLCwMkoduu3v00UdRWFiIGzduKNp69eql1CcsLAyXL1+GTCZDUlIShBBo166d4vvl5OSEX3/9FVevXlWs8+eff2LUqFG1Oj5VnTp1wmeffYb3338fDg4O8PLyQuvWreHp6QlLS0sAgFwuR1lZGT744AMMHToUvXr1wpdffonLly/jyJEjatvcvXs3CgoK8PTTT2vc57Fjx3D27Fl89NFHWLt2Lb788kuDHhMRGcjq1cCECcpt5nQG5b/4gMG64OAAaLijos72rQNHR0e0bdtW8To0NBRSqRQff/wx3n77bcjlcoSGhuKLL75QW9fd3R0AsG3bNsydOxcHDhzArl278PrrryMuLg69evXSqRYbGxulWgzB2dkZw4cPx/Dhw/H2229j6NChePvttzF48GC1vkIIpfBR2QZArb0qcrkclpaWSExMVASDSk6qo+iNYMKECZgwYQJu374NR0dHSCQSrF69Gv7+/gAAb29vAEBAwP8eu+7u7g43Nzekp6erbW/r1q14/PHH4eXlpXF/ldvt3Lkzbt++jTfffBPjx4839GERUW28+GJFSHmYGQYUgCGlbkgkwEO3a9YnEokEFhYWePDgAQAgJCQEu3btgoeHB5o0aVLlel27dkXXrl2xePFihIWFYefOnejVqxdsbGy0HhOiLX23KZFI0KFDByQkJGhcHhAQgO+++04prCQkJMDZ2RnNmzdX9Dt58qTSeidPnsQjjzwCS0tLdO3aFTKZDFlZWdWO4TA2T09PAMCnn34KOzs7RSh79NFHAQB//fUXWrRoAQDIzc1FdnY2WrVqpbSN1NRUHDlyBD/++KNW+xRCoKSkxFCHQESGMHo08P33ym1mGlCARn4L8r59+9C+fXs88sgjSgMdG7OSkhJkZmYiMzMTly5dwgsvvIDCwkJERUUBACZOnAg3NzeMGDECx44dQ2pqKn799VfMmzcPN27cQGpqKhYvXowTJ07g2rVrOHToEP7++2907NgRAODn54fU1FQkJycjOzvbIB9ifn5+OHXqFNLS0pCdnQ25XK7WJzk5GSNGjMC3336LlJQUXLlyBZ988gk+/fRTjBgxQuN2Z8+ejevXr+OFF17An3/+iR9++AExMTGIjo5WGox6/fp1REdH46+//sKXX36JDz/8EPPmzQMAtGvXDhMnTsTTTz+N3bt3IzU1FWfOnMHy5cuxf/9+xTY6dOiA71XfOFSkpKQgOTkZubm5yMvLU1wGq3T69Gl06NABNx96vsb69euRlJSEv//+Gxs2bMCcOXMQGxuruIW7Xbt2GDFiBObNm4eEhARcvHgRU6ZMQYcOHRAeHq60/08//RTe3t6IjIxUq23Dhg3Yu3cvLl++jMuXL2Pbtm1YtWoVJk2aVO0xEVEd6tq1XgUUAI134GxZWZl45JFHxI0bN0R+fr5o27atyMnJ0Xr9hnoLMh66ldfZ2Vl0795dfPvtt0r9MjIyxNNPPy3c3NyEra2taN26tZgxY4bIy8sTmZmZYuTIkcLb21vY2NiIVq1aiSVLligGmhYXF4sxY8aIpk2bGuQWZCGE+Ouvv0SvXr2Evb19lbcg37lzR8ydO1cEBgYKJycn4ezsLDp37ixWrVqlqE3fW5Bnz54tZs6cKZo0aSKaNWsmFi1apDSQtrS0VCxZskT4+fkJa2tr4eXlJUaNGiXOnz+v6FPd96JSq1at1G63fvhP+MiRI2rHP3nyZOHi4iJsbGxEUFCQ+Pzzz9W2m5eXJ5555hnFLeWjRo0S6enpSn1kMplo0aKFePXVVzXW9sEHH4hOnToJBwcH0aRJE9G1a1exceNGpdufVdXXvxOiesnBQa9BsiVlMrE1/qp4Y88FsTX+qigpq/pvWhfaDpyVCGHuMco4EhISsHLlSsW/XufNm4devXppff08Pz8fUqkUeXl5apc9iouLkZqaCn9/f9jZ2Rm8djIf/fv3R3BwMNauXWvqUuod/p0Q1RFNY+i0+OiP3Z+Cj4+lQv5QVwsJMKOvPxYPC6h6RS1U9xn6sHp7uSc+Ph5RUVHw8fGBRCLBnj171Pps3LhR8QYYGhqKY8eOKZbdunVLaVxBixYtlE6TExER1Xu1CCib45UDCgDIBbA5PhWx+1MMVGD16m1IKSoqQpcuXbB+/XqNy3ft2oX58+fjtddew7lz59C3b19ERkYq7ljQdAJJ2zs2iIiIzJ7qZ5q7u1YBpbRcjo+PpVbb5+NjqSgtVx//Z2j19u6eyMhIjQP4Kq1evRrTp0/Hs88+CwBYu3YtDh48iE2bNiE2NhbNmzdXOnNy48YN9OzZs8rtlZSUKA3yzM/PN8BRUH139OhRU5dARKRONaCEhQFV3Mmo6t8n0tTOoKiSi4p+0/u21rNA7dTbMynVKS0tRWJiIoYMGaLUPmTIEMXtpj169MDFixdx8+ZNFBQUYP/+/UoPVVMVGxsLqVSq+NI09ToREZHJqQaU8eO1DigAcC33vkH71UaDDCnZ2dmQyWSKuSEqeXp6IjMzEwBgZWWF999/H+Hh4ejatSteeuklxfNpNFm8eDHy8vIUX9U926RSIx2TTKQV/n0QGYFqQHn1VWDnTp020cpFu0lAte1XG/X2co82NM0W+nBb5cyj2rC1tYWtra1Wfa2trQFUPIyv8oFuRKTs/v2Kf4VV/r0QUS2pBpT164Hnn9d5M5PD/PDO/kvVXvKxkFT0M7YGGVLc3NxgaWmpOGtSKSsrS+3sijFYWlqiadOmyMrKAgA4ODhwUC7RfwkhcP/+fWRlZaFp06ZqjwsgIj2ofsZ8+y0wZoxem7KxssCMvv7YHF/14NkZff1hY2X8izENMqTY2NggNDQUcXFxSg9ti4uLq3J2UUOrfLZJZVAhImVNmzat8hlARKQD1YBy9CjQr1+tNlk5D4qx5knRVr0NKYWFhbhy5YrideVU6y4uLmjZsiWio6MxefJkdOvWDWFhYdiyZQvS09Mxc+bMOqlPIpHA29sbHh4eKCsrq5N9EtUX1tbWPINCZAiqAeX8eaBzZ4NsevGwALw4pAP+fSIN13Lvo5WLAyaH+dXJGZRK9TaknD17VunZItHR0QCAKVOmYPv27Rg3bhxycnKwbNkyZGRkIDAwEPv371d7aJqxWVpa8s2YiKgRkMkFTqfmIqugGB7Odujh7wJLCyNe6lcNKNeuAS1bGnQXNlYWRr/NuDqNdlr82tJ2Sl8iImr4DlzMwNK9KcjIK1a0eUvtEBMVgIhAb8PvUDWg5OQALi6G34+RNPhp8YmIiMzBgYsZmLUjSSmgAEBmXjFm7UjCgYsZht2hakC5f79eBRRdMKQQERHpSSYXWLo3BZouSVS2Ld2bAllNU7hqSzWglJcDDXiqC4YUIiIiPZ1OzVU7g/IwASAjrxinU3NrtyMh1AOKXA408DGPDClERER6yiqoOqDo00+j8nLAQuXjWlNoaYAYUoiIiPTk4Wxn0H5qiooA1VmZG9H9LgwpREREeurh7wJvqR2qOqchQcVdPj389RjYmp0NODkptzWigAIwpBAREenN0kKCmKiK2VdVg0rl65ioAN3nS0lNBdzdldsaWUABGFKIiIhqJSLQG5smhcBLqnxJx0tqh02TQnSfJ+XcOaC1ygRqjTCgAPV4xlkiIiJzERHojQEdPGs/hfzPPwODBim3NdKAAjCkEBER1ZqmGWe3Hk/VbcbZL78EJkxQbmvEAQXg5R4iIqJaMciMs6tXM6BowJBCRESkJ4PMOPviixVfSiszoAAMKURERHqr9YyzY8ZUnEVRWokBpRLHpBAREempVjPOhoRU3MnzMAYUJQwpREREetJ7xlmpFMjPV25jQFHDkEJERKSn0FbNYCEBqhtyYiGp6Keg6Zk7DCgacUwKERGRnhKv3a02oAAVASbx2t2KFwwoOmFIISIi0pNOY1JUA4qbGwNKDRhSiIiI9KTtmJQRXVsoN/TqBdy5Y4SKGhaGFCIiIj1p8xTktOWPKzeOHw+cOGHs0hoEhhQiIiI91fQU5FTVgLJoEbBzZ53U1hAwpBAREdVCVU9BVgsoH34IxMbWYWX1H29BJiIiqqWIQG8MDvDC6dRcZBUUq49B+eYb4IknTFNcPcaQQkREZACWFhKEtXFVv4vnyBGgf3+T1FTfMaQQEREZgEwuYGmpMori/Hmgc2fTFNQAcEwKERFRLR24mKEWUEYu/AIHJG4mqqhhYEghIiKqhQMXMxDR2UepLXjuTiRbSjFzRxIOXMwwUWX1H0MKERGRnmRyoRZQOkR/i3v2TRSvF+++AFlNc+eTRgwpREREelK9xNPmpR9QbK18K/Ld+2U4+U9OXZbVYDCkEBER6UoItbt4/F7eC5mFpcbuJ64ypOiDIYWIiEgX5eWAhfLHp98r+zQ/4ViBl3v0wZBCRESkraIiwNpaqcnvlX01rhbWmnf56IMhhYiISBvZ2YCTk1KTTCZHUwfrKlao0NTBGr3auBqzsgaLIYWIiKgmaWmAu7tymxCwtJDgvdHVT9b23ujOsLSo7lIQVYUhhYiIqDrJyYC/v3Kb+N8Yk4hAb3w0KQReTWyVung1scVHk0IQEehdB0U2TJwWn4iIqCq//AIMHKjcJtQHwao+YNDD2Q49/F14BqWWGFKIiIg0+eorYPx45TYNAaWS4gGDZDC83ENERKRq7VqdAgoZR6MNKdevX0f//v0REBCAoKAgfPPNN6YuiYiIzMHChcCCBcptDCgm0Wgv91hZWWHt2rUIDg5GVlYWQkJCMGzYMDg6Opq6NCIiMpWxY4Fvv1VuY0AxmUYbUry9veHtXTHi2sPDAy4uLsjNzWVIISJqrLp1AxITldsYUEzKbC/3xMfHIyoqCj4+PpBIJNizZ49an40bN8Lf3x92dnYIDQ3FsWPH9NrX2bNnIZfL4evrW8uqiYioXpJKGVDMkNmeSSkqKkKXLl0wbdo0jBkzRm35rl27MH/+fGzcuBGPPvooNm/ejMjISKSkpKBly5YAgNDQUJSUlKite+jQIfj4VDxaOycnB08//TS2bt1q3AMiIiLzpOmZOwwoZkEihPn/JCQSCb7//nuMHDlS0dazZ0+EhIRg06ZNiraOHTti5MiRiI2N1Wq7JSUlGDx4MGbMmIHJkyfX2PfhwJOfnw9fX1/k5eWhSZMmuh0QERGZBwYUk8jPz4dUKq3xM9RsL/dUp7S0FImJiRgyZIhS+5AhQ5CQkKDVNoQQmDp1KgYMGFBjQAGA2NhYSKVSxRcvDRER1XOqAcXFhQHFzNTLkJKdnQ2ZTAZPT0+ldk9PT2RmZmq1jd9++w27du3Cnj17EBwcjODgYFy4cKHK/osXL0ZeXp7i6/r167U6BiIiMiHVgNKjB5CTY5paqEpmOyZFGxKVXzIhhFpbVfr06QO5XK71vmxtbWFra1tzRyIiMm+qnxPjxlXMLktmp16eSXFzc4OlpaXaWZOsrCy1sytEREQKqgHlpZcYUMxYvQwpNjY2CA0NRVxcnFJ7XFwcevfubaKqiIjIrKkGlHXrgBUrTFMLacVsL/cUFhbiypUritepqalITk6Gi4sLWrZsiejoaEyePBndunVDWFgYtmzZgvT0dMycOdOEVRMRkVlSDShffVVxmYfMmtmGlLNnzyI8PFzxOjo6GgAwZcoUbN++HePGjUNOTg6WLVuGjIwMBAYGYv/+/WjVqpWpSiYiInOkGlCOHAH69zdJKaSbejFPijnS9h5vIiIyIdWAkpwMdOliklLof7T9DDXbMylERES1ohpQ0tIAnm2vVxhSiIio4VENKNnZgKuraWohvTGkEBFRw6IaUIqKAAcH09RCtcKQQkREdU4mFzidmousgmJ4ONuhh78LLC20m4yzWqoBpawMsOJHXX3FnxwREdWpAxczsHRvCjLyihVt3lI7xEQFICLQW7+NCgFYqEz9JZdrfoAg1Rv1cjI3IiKqnw5czMCsHUlKAQUAMvOKMWtHEg5czNB9o+Xl6gFFCAaUBoAhhYiI6oRMLrB0bwo0zXtR2bZ0bwpkch1mxigqAqytVTbGmTUaCoYUIiKqE6dTc9XOoDxMAMjIK8bp1FztNpidDTg5qWyEAaUhYUghIqI6kVVQdUDRuV9aGuDurtzGgNLgMKQQEVGd8HC2M0y/5GTA31+5jQGlQWJIISKiOtHD3wXeUjtUNZxVgoq7fHr4u1S9kV9+Abp2VW5jQGmwGFKIiKhOWFpIEBMVoHHgLFAxJiUmKqDq+VK++goYOFBlJQaUhowhhYiIzN/atcD48cptDCgNHkMKERHVicpbkKsiQRW3IC9cCCxYoNzGgNIoMKQQEVGd0OsW5LFjgfffV+nIgNJYcFp8IiKqEzrfgtytG5CYqLyQAaVRYUghIqI6odMtyFIpkJ+vvIABpdHh5R4iIqoT2t6CHNbWjQGFADCkEBFRHam8BRmAWlCpfH3i1UHqKzKgNFoMKUREVGciAr2xaVIIvKTKl368pHZIXf64cuemTRlQGjmOSSEiojoVEeiNwQFeOJ2ai6yCYng4//cSz8O6dQPOnDFNgWQ2GFKIiKjOWVpIENbGteKFROXiz9ixwNdf131RZHZ4uYeIiExHNaC89BIDCinwTAoREZmGakBZuxaYN88kpZB5YkghIqK6pxpQvvoKGDfONLWQ2WJIISKiuqUaUH75BQgPN00tZNYYUoiIqO6oBpTkZKBLF5OUQuaPIYWIiOqGakBJTQX8/ExSCtUPDClERGR8qgElOxtwdTVNLVRvMKQQEZFxqQaUwkLA0dE0tVC9wpBCRETGoxpQysoAKyvI5EJpxtke/i6wtKjq0YPUWDGkEBGR4QkBWKjMFyqXAxIJDlzMwNK9KcjIK1Ys8pbaISYqABGB3nVcKJkzzjhLRESGVV6uHlCEUASUWTuSlAIKAGTmFWPWjiQcuJhRh4WSuWNIISIiwykqAqytldv++yRjmVxg6d4UaHqucWXb0r0pkMn55GOqwJBCRESGkZMDODkpt4n/BY7TqblqZ1CUugLIyCvG6dRcIxVI9Q1DChER1V5aGuDmptwmlM+IZBVUHVD06UcNH0MKERHVzu+/A/7+ym1C/ZKNh7OdVpvTth81fAwpRESkv19+AYKDlds0BBQA6OHvAm+pHaq60ViCirt8evi7GLJCqscafUi5f/8+WrVqhYULF5q6FCKi+mXXLmDgQOW2KgIKAFhaSBATFQAAakGl8nVMVADnSyGFRh9S3nnnHfTs2dPUZRAR1S9r1wJPPaXcVk1AqRQR6I1Nk0LgJVW+pOMltcOmSSGcJ4WUNOrJ3C5fvow///wTUVFRuHjxoqnLISKqH15+GVi5UrlNi4BSKSLQG4MDvDjjLNXIbM+kxMfHIyoqCj4+PpBIJNizZ49an40bN8Lf3x92dnYIDQ3FsWPHdNrHwoULERsba6CKiYgagbFjaxVQKllaSBDWxhUjgpsjrI0rAwppZLZnUoqKitClSxdMmzYNY8aMUVu+a9cuzJ8/Hxs3bsSjjz6KzZs3IzIyEikpKWjZsiUAIDQ0FCUlJWrrHjp0CGfOnEG7du3Qrl07JCQkGP14iIjqvW7dgMRE5TY9AgoAPruHtCIRQs/fsDokkUjw/fffY+TIkYq2nj17IiQkBJs2bVK0dezYESNHjtTq7MjixYuxY8cOWFpaorCwEGVlZXjxxRexZMkSjf1LSkqUAk9+fj58fX2Rl5eHJk2a6H9wRET1gVQK5Ocrt+n58cFn91B+fj6kUmmNn6Fme7mnOqWlpUhMTMSQIUOU2ocMGaL1WZHY2Fhcv34daWlpWLVqFWbMmFFlQKnsL5VKFV++vr61OgYionpDIjFoQOGze0hb9TKkZGdnQyaTwdPTU6nd09MTmZmZRtnn4sWLkZeXp/i6fv26UfZDRGRWJBouwdTiEg+f3UO6MNsxKdqQqPzxCCHU2rQxderUGvvY2trC1tZW520TEdVbqu+nTZsCd+/qvTldnt0T1sZV7/1Qw6FXSKm8THL//n24u7ujU6dOdfoB7ubmBktLS7WzJllZWWpnV4iISA+qAaVbN+DMmVptks/uIV1pfbnn2rVrWLx4Mfz8/ODn54d+/fohMjIS3bp1g1QqxeDBg/HNN99ALpcbs14AgI2NDUJDQxEXF6fUHhcXh969ext9/0REDZpqQHnyyVoHFIDP7iHdaRVS5s2bh86dO+Py5ctYtmwZ/vjjD+Tl5aG0tBSZmZnYv38/+vTpgzfeeANBQUE4Y4Bf5sLCQiQnJyM5ORkAkJqaiuTkZKSnpwMAoqOjsXXrVnz66ae4dOkSFixYgPT0dMycObPW+yYiarRUA8pLL1VMf28APfxd0NTButo+TR2s+eweUtDqco+NjQ2uXr0Kd3d3tWUeHh4YMGAABgwYgJiYGOzfvx/Xrl1D9+7da1XY2bNnER4erngdHR0NAJgyZQq2b9+OcePGIScnB8uWLUNGRgYCAwOxf/9+tGrVqlb7JSJqtFQDytq1wLx5dVtCne6NzF29mCfFHGl7jzcRUb2gGlC++goYN86guzhxNQfjPz5ZY78vZ/TiwNkGTtvP0Hp9dw8RERmAakD55RfgoTPZhsKBs6QrneZJ2bp1K6ZMmYJt27YBqJiavmPHjmjdujViYmKMUiARERmRakBJTjZKQAE4cJZ0p/WZlLVr1+L111/H0KFD8dprr+HWrVtYs2YNFixYALlcjvfffx/NmzfHc889Z8x6iYjIUFQDSloaYMRxfT38XeAttUNmXrHGCd0kALykdhw4Swpah5TNmzdjy5YtmDBhAs6dO4cePXrgo48+wvTp0wEALVq0wIYNGxhSiIjqA9WAkp0NuBp3HIilhQQxUQGYtSMJEkApqFRWExMVwAcNkoJO86T06dMHANC1a1dYWlqiV69eiuV9+/bF1atXDV8hEREZlmpAKSoyekCpFBHojU2TQuAlVb6k4yW1w6ZJIXzAICnR+kyKg4MDioqKFK/d3d3h5OSk1Ke8vNxwlRERkeGpBpSyMsCqbu+hiAj0xuAAL5xOzUVWQTE8nCsu8fAMCqnS+jezQ4cOOH/+PDp27AgAag/Y+/PPP+Hn52fQ4oiIqOLBfLX+QBcCsFA5eS6Xa36AYB2wtJDwNmOqkdYhZfny5XB0dKxyeXp6Ov7v//7PIEUREVGFAxczsHRvitKD+byldoiJCtD+0kh5OWCtMtMrp8iieoCTuemJk7kRkbEduJiBWTuS1O6EqTz3odUYjqIiQOXSPAMKmZq2n6E6zZNCRER1QyYXWLo3ReOtupVtS/emQCavJnDk5DCgUL2mdUhxdnbG9OnTkZCQYMx6iIgIwOnUXKVLPKoEgIy8YpxOzdXcIS0NcHNTWYkBheoXrUNKUVERTp06hT59+qBjx454//33kZWVZczaiIgarVpNIf/774C/v3IbAwrVQzpd7vnll19w7tw5DBo0CO+++y58fX0xZswY/PTTT+DQFiIiw3FzstWv3y+/AMHBym18f6Z6SucxKV26dMGHH36IjIwMbN++HXl5eXj88cfRsmVLLFmyxBg1EhE1OnKZdsFCqd+uXcDAgcodGFCoHtM6pEhU7qW3sbHB+PHjcfjwYVy9ehVTp07F9u3bDV0fEVGjdCotR7d+a9cCTz2lvJABheo5rUNKdZdz/Pz88NZbb+HatWsGKYqIiLSdZE0CvPwysGCBcjMDCjUAWoeUmJgYtWnwVamebSEiIv1oOxvr1A9eAVauVG5kQKEGQusZZ2NiYoxZBxERPaRXa1c0dbDGvftlVfb5z7+j4Xbrb+VGBhRqQDiZGxGRGbK0kOC90Z2rXP772nHoxIBCDRxDChGRmYoI9MZHk0Lg1cROqT1t+eOQlhQpd2ZAoQaobp/PTUREOokI9MbgAC/FU5BHdG2h3okBhRoohhQiIjNnaSGpGEirenNC06bA3bsmqYmoLvByDxFRfaAaULp3Z0ChBs9gIWXjxo1YtmyZoTZHRESVVAKKfOyTwOnTJiqGqO4YLKR89913nHGWiMjQVALKRz1G49Guz+HAxQwTFURUdySCTwbUS35+PqRSKfLy8tCkSRNTl0NEDZFKQHlz4HPY3m24Yi7aTZNCEBHoXfd1EdWStp+hHJNCRGSOVALK7BGLsL3bcABA5b8sl+5NgUzOf2dSw6Xz3T0//vij1n2HDx+u6+aJiEgloIx/6l2caBWk1CYAZOQV43RqrtZT6BPVNzqHlJEjR0Iikag9cFC1TSKRQCaT1b5CIqLGRCWgRE77AJc8WlfZPaug2NgVEZmMzpd7Dh06hODgYPz000+4d+8e8vLy8NNPPyEkJAQHDx6EXC6HXC5nQCEi0pVKQHl05qfVBhQA8HC2q3Y5UX2m85mU+fPn46OPPkKfPn0UbUOHDoWDgwOee+45XLp0yaAFEhE1CioBRXY7C/JPzkOSVwxNo04kALykdujh71In5RGZgs5nUq5evQqpVKrWLpVKkZaWZoiaiIgaF9WJ2oqKYOnhjpiogIrFqt3/+9+YqABYWqguJWo4dA4p3bt3x/z585GR8b979DMzM/Hiiy+iR48eBi2OiKjBUw0oZWWAgwOAiuf2bJoUAi+p8iUdL6kdbz+mRkHnyz2ffvopRo0ahVatWqFly5YAgPT0dLRr1w579uwxdH1ERA2TEICFyr8T5XK10KL6gEEP54pLPDyDQo2BXpO5CSEQFxeHP//8E0IIBAQEYNCgQZCo/ougAeNkbkSkt/JywNpauY3zalIjou1naK1mnC0uLoatrW2jCieVGFKISC/37wOOjsptDCjUyBhtxlm5XI633noLzZs3h5OTE1JTUwEAb7zxBj755BP9KyYiauhychhQiHSgc0h5++23sX37dqxYsQI2NjaK9s6dO2Pr1q0GLY6IqMG4dg1wc1NuY0AhqpbOIeXzzz/Hli1bMHHiRFhaWirag4KC8Oeffxq0OGNLTU1FeHg4AgIC0LlzZxQVFZm6JCJqiH7/HfDzU25jQCGqkc5399y8eRNt27ZVa5fL5SgrKzNIUXVl6tSpePvtt9G3b1/k5ubC1tbW1CURUUNz9CgQHq7cxoBCpBWdz6R06tQJx44dU2v/5ptv0LVrV4MUVRf++OMPWFtbo2/fvgAAFxcXWFnpnNmIiKq2axcDClEt6BxSYmJiMGfOHCxfvhxyuRy7d+/GjBkz8O6772LJkiUGKyw+Ph5RUVHw8fGBRCLROAfLxo0b4e/vDzs7O4SGhmoMT1W5fPkynJycMHz4cISEhODdd981WO1ERPjgA+Cpp5TbGFCIdKJzSImKisKuXbuwf/9+SCQSLFmyBJcuXcLevXsxePBggxVWVFSELl26YP369RqX79q1C/Pnz8drr72Gc+fOoW/fvoiMjER6erqiT2hoKAIDA9W+bt26hbKyMhw7dgwbNmzAiRMnEBcXh7i4OIPVT0SN2MsvA/PmKbcxoBDprFbzpNQViUSC77//HiNHjlS09ezZEyEhIdi0aZOirWPHjhg5ciRiY2Nr3OaJEyewdOlSHDhwAACwcuVKAMBLL72ksX9JSQlKSkoUr/Pz8+Hr68t5UohI2VNPVVzmeZj5v80S1SmjzZOiDWPnntLSUiQmJmLIkCFK7UOGDEFCQoJW2+jevTtu376Nu3fvQi6XIz4+Hh07dqyyf2xsLKRSqeLL19e3VsdARA1Qjx4MKEQGpFVI6dixI3bu3InS0tJq+12+fBmzZs3C8uXLDVJcVbKzsyGTyeDp6anU7unpiczMTK22YWVlhXfffRePPfYYgoKC8Mgjj+Dxxx+vsv/ixYuRl5en+Lp+/XqtjoGIGhhXV+DMGeU2AwUUmVzgxNUc/JB8Eyeu5kAmZ/ChxkGr21k2bNiAV155Bc8//zyGDBmCbt26wcfHB3Z2drh79y5SUlJw/PhxpKSkYM6cOZg9e7ax6wYAten4hRA6TdEfGRmJyMhIrfra2tryFmUi0kzT+46BAsqBixlYujcFGXnFijZvqR1iogL4FGRq8LQKKQMGDMCZM2eQkJCAXbt2YefOnUhLS8ODBw/g5uaGrl274umnn8akSZPQtGlTI5cMuLm5wdLSUu2sSVZWltrZFSIiozJyQJm1IwmqW8vMK8asHUnYNCmEQYUaNJ0mBunduzd69+5trFq0ZmNjg9DQUMTFxWHUqFGK9ri4OIwYMcKElRFRo6IaUJo2Be7eNcimZXKBpXtT1AIKAAgAEgBL96ZgcIAXLC0a30NeqXEw29nLCgsLceXKFcXr1NRUJCcnw8XFBS1btkR0dDQmT56Mbt26ISwsDFu2bEF6ejpmzpxpwqqJqNFQDSihocDZswbb/OnUXKVLPKoEgIy8YpxOzUVYG1eD7ZfInJhtSDl79izCH5qpMTo6GgAwZcoUbN++HePGjUNOTg6WLVuGjIwMBAYGYv/+/WjVqpWpSiaixkI1oDz5pPpdPbWUVVB1QNGnH1F9ZLYhpX///jXeyjx79uw6G6RLRARAPaC8+CKwapXBd+PhbGfQfkT1kVHmSSEiapBUA8qaNUYJKADQw98F3lI7VDXaRIKKu3x6+LsYZf9E5kCnkFJeXo7PPvtM67lIiIjqmtHmFFENKF9+Ccyfb5hta2BpIUFMVEDFrlVL+e9/Y6ICOGiWGjSdp8V3cHDApUuXGv3YD22n9CWiumO0OUVUA8rPPwMDBui/PR1wnhRqiLT9DNV5TErPnj2RnJzc6EMKEZkXo80pohpQzp0DgoP1LVNnEYHeGBzghdOpucgqKIaHc8UlHp5BocZA55Aye/ZsREdH4/r16wgNDYWjo6PS8qCgIIMVR0SkDaPNKaIaUFJTAT8//QvVk6WFhLcZU6Okc0gZN24cAGDu3LmKNolEopiSXiaTGa46IiItGGVOEdWAcucO4Oamf5FEpDOdQ0pqaqox6iAi0pvB5xRRDSiFhYDKWWMiMj6dQwrHohCRuTHonCKqAaWsDLAy2ymliBo0vf7yrl69irVr1+LSpUuQSCTo2LEj5s2bhzZt2hi6PiKiGlXOKZKZV6xxXIoEgFdNc4oIAViozMogl2t+gCAR1QmdJ3M7ePAgAgICcPr0aQQFBSEwMBCnTp1Cp06dEBcXZ4waiYiqVes5RcrL1QOKEAwoRCam8zwpXbt2xdChQ/Hee+8ptS9atAiHDh1CUlKSQQs0V5wnhcj8HLiYgZgfLuJ2QamizdPZBktHBFZ9+/H9++rjTXR7WyQiHWn7GarzmZRLly5h+vTpau3PPPMMUlJSdN0cEZHBnEu/izuFpUptdwpLcS79ruYVcnMZUIjMmM4hxd3dHcnJyWrtycnJ8PDwMERNREQ6i92fgs3xqVCdBV8ugM3xqYjdr/KPqGvXAFeV25EZUIjMis4DZ2fMmIHnnnsO//zzD3r37g2JRILjx49j+fLlePHFF41RIxFRtUrL5fj4WPXTI3x8LBUvDukAGysL4Px5oEsX5Q4MKERmR+eQ8sYbb8DZ2Rnvv/8+Fi9eDADw8fHBm2++qTTBGxFRXfn3iTS1Myiq5KKi33RZOhAerryQAYXILOkUUsrLy/HFF19g/PjxWLBgAQoKCgAAzs7ORimOiEgb13Lva9XPae/3wMqFyo0MKERmS6cxKVZWVpg1axZKSkoAVIQTBhQiMrVWLg419pmSuBfjGFCI6hWdB8727NkT586dM0YtRER6mRzmh+qeG/jyr9ux9PBm5UYGFCKzp9dTkF988UXcuHGDT0EmIrNgY2WBGX39sTleffDsuh9XYsSlX5UbGVCI6gWdJ3OzUJ2VEY3zKciczI3I/Mz4/AziUrIUr3f/+0WE3PpLuRMDCpHJafsZyqcgE1GDcOBiBg4/FFCSPpgAlwf5yp0YUIjqFZ1CSllZGcLDw7Fv3z4EBAQYqyYiIp3I5AJL96YoHi6YtvxxtT5h7x7Gcbmo+vk9RGR2dBo4a21tjZKSEkj40C0iMiOnU3ORkVcMQHNA8XtlHzLyinE6NbeuSyOiWtD57p4XXngBy5cvR3l5uTHqISLSWVaB5oBSYGMPv1f2qfUjovpB5zEpp06dws8//4xDhw6hc+fOanf37N6922DFERFpw8PZTi2gXPBsg6ip69T6EVH9oXNIadq0KcaMGWOMWoiI9BLW1k3p9X/aP4rnRy5WvJYA8JLaoYe/Sx1XRkS1oXNI2bZtmzHqICLSj8oYuY+7j8I7A6b/b/F//xsTFcBBs0T1jM5jUoCKZ/gcPnwYmzdvVjy/59atWygsLDRocURE1VIJKH8ujMGno55XavOS2mHTpBBEBHrXZWVEZAA6n0m5du0aIiIikJ6ejpKSEgwePBjOzs5YsWIFiouL8dFHHxmjTiIiZap3Ge7ciQ7jx+O4XOB0ai6yCorh4VxxiYdnUIjqJ51Dyrx589CtWzf8/vvvcHV1VbSPGjUKzz77rEGLIyLSSDWgHD4MDBwIALC0kCCsjauGlYiovtE5pBw/fhy//fYbbGxslNpbtWqFmzdvGqwwIiKNVANKUhLQtatpaiEio9I5pMjlco3P57lx4wacnZ0NUhQRkUaqAeWffwB/f9PUQkRGp/PA2cGDB2Pt2rWK1xKJBIWFhYiJicGwYcMMWRsR0f+oBpQ7dxhQiBo4nZ+CfOvWLYSHh8PS0hKXL19Gt27dcPnyZbi5uSE+Ph4eHh7GqtWs8CnIRHVINaAUFgIqE0kSUf1htKcg+/j4IDk5GV999RUSExMhl8sxffp0TJw4Efb29rUqmohIjWpAKSsDrHR+6yKiekjnMylUgWdSiIxMCMBC5Yq0XK4eWoio3tH2M1SvydyIiIxKJlMPKEIwoBA1MgwpRGRe7t9Xv5zDE75EjVKjDilr1qxBp06dEBAQgLlz54JXvohMLDdXfUAs/y6JGq1GG1Lu3LmD9evXIzExERcuXEBiYiJOnjxp6rKIGq/0dMBVZaZYBhSiRk2vkHLv3j1s3boVixcvRm5uLgAgKSmp3s04W15ejuLiYpSVlaGsrKzR3D5NZHYuXABatVJuY0AhavR0Dinnz59Hu3btsHz5cqxatQr37t0DAHz//fdYvHixwQqLj49HVFQUfHx8IJFIsGfPHrU+GzduhL+/P+zs7BAaGopjx45pvX13d3csXLgQLVu2hI+PDwYNGoQ2bdoYrH4i0tKvvwJBQcptDChEBD1CSnR0NKZOnYrLly/Dzs5O0R4ZGYn4+HiDFVZUVIQuXbpg/fr1Gpfv2rUL8+fPx2uvvYZz586hb9++iIyMRHp6uqJPaGgoAgMD1b5u3bqFu3fvYt++fUhLS8PNmzeRkJBg0PqJSAvffgv076/cxoBCRP+l84xIZ86cwebNm9XamzdvjszMTIMUBVSEnsjIyCqXr169GtOnT1c8eXnt2rU4ePAgNm3ahNjYWABAYmJilet/8803aNu2LVxcXAAA//rXv3Dy5Ek89thjGvuXlJSgpKRE8To/P1/nYyKih6xfD7zwgnIbAwoRPUTnMyl2dnYaP6D/+usvuLu7G6SompSWliIxMRFDhgxRah8yZAgSEhK02oavry8SEhJQXFwMmUyGo0ePon379lX2j42NhVQqVXz5+vrW6hiIGrXFixlQiKhGOoeUESNGYNmyZSgrKwNQ8YDB9PR0LFq0CGPGjDF4gZpkZ2dDJpPB09NTqd3T01Prszm9evXCsGHD0LVrVwQFBaFNmzYYPnx4lf0XL16MvLw8xdf169drdQxEjdaECcB77ym3MaAQkQY6X+5ZtWoVhg0bBg8PDzx48AD9+vVDZmYmwsLC8M477xijxipJVGafFEKotVXnnXfe0bpmW1tb2Nra6lQfEakICwNUb/VnQCGiKugcUpo0aYLjx4/jl19+QVJSEuRyOUJCQjBo0CBj1KeRm5sbLC0t1c6aZGVlqZ1dISIz4eYG5OQotzGgEFE1dA4paWlp8PPzw4ABAzBgwABj1FQjGxsbhIaGIi4uDqNGjVK0x8XFYcSIESapiYiqoekMp5ECikwucDo1F1kFxfBwtkMPfxdYWvCZP0T1kc4hpXXr1ujduzcmT56MsWPHKu6OMbTCwkJcuXJF8To1NRXJyclwcXFBy5YtER0djcmTJ6Nbt24ICwvDli1bkJ6ejpkzZxqlHiLSUx0GlAMXM7B0bwoy8ooVbd5SO8REBSAi0Nso+yQi45EIHR9Yk5SUhC+//BJfffUV7ty5g6FDh2LSpEkYPny4QcdsHD16FOHh4WrtU6ZMwfbt2wFUTOa2YsUKZGRkIDAwEGvWrKnyFmJD0/Yx00TmzqhnHlQDipMTUFBgmG2rOHAxA7N2JEH1Da2ygk2TQhhUiMyEtp+hOoeUSkIIHD16FDt37sR3330HmUyGMWPG4NNPP9W76PqEIYUaAqOeeVANKCEhQDVzF9WGTC7QZ/kvSsehVAoAL6kdjr8ygJd+iMyAtp+hej9gUCKRIDw8HB9//DEOHz6M1q1b47PPPtN3c0RUxyrPPKh+sGfmFWPWjiQcuJih/8ZVA8ro0UYLKABwOjW3yoACAAJARl4xTqfmGq0GIjI8vUPK9evXsWLFCgQHB6N79+5wdHSscgp7IjIvMrnA0r0papdGACjalu5NgUyux4lW1YASHQ18953u29FBVkHVAUWffkRkHnQeOLtlyxZ88cUX+O2339C+fXtMnDgRe/bsgZ+fnxHKIyJj0OXMQ1gbV+03rBpQ3n+/IqQYmYezXc2ddOhHROZB55Dy1ltv4amnnsK6desQHBxshJKIyNiMcuZBNaDs3AmMH69DVfrr4e8Cb6kdMvOKNZ4dqhyT0sPfOHcjEpFx6BxS0tPTdZrVlYjMj8HPPKi+Jxw+DAwcqGNV+rO0kCAmKgCzdiRBAigFlcrKYqICOGiWqJ7RKqScP38egYGBsLCwwIULF6rtGxQUZJDCiMh4evi7oKmDNe7dL6uyT1MHa+3OPKgGlKQkoGvXWlaou4hAb2yaFKJ2t5IX50khqre0CinBwcHIzMyEh4cHgoODIZFI8PCdy5WvJRIJZDKZ0Yolorqj1TkH1YDyzz+Av78xytFKRKA3Bgd4ccZZogZCq5CSmpoKd3d3xf8TUf12OjW32rMoAHD3fln1A2dVA8qdOxXP5zExSwuJboN9ichsaRVSWrVqpfj/a9euoXfv3rCyUl61vLwcCQkJSn2JyDzVeuCsakApLAQcHWtZFRGRMp3nSQkPD0durvqESHl5eRqnsSci81OrgbOqAaWsjAGFiIxC55BSOfZEVU5ODhz5RkVUL1TeslvVSA0JKqbHVxo4K4R6QJHLASudbxIkItKK1u8uo0ePBlAxSHbq1KlKDxOUyWQ4f/48evfubfgKicjgdL5lVyZTDyNGepIxEVElrUOKVCoFUHEmxdnZGfb29oplNjY26NWrF2bMmGH4ConIKLS+ZffBA8DBQXllBhQiqgNah5Rt27YBAPz8/LBw4UJe2iFqAGq8ZTc3F3BVuVOGAYWI6ohECL7j6EPbx0wT1Vvp6YDq3Xp8uyAiA9D2M1SvEW/ffvstvv76a6Snp6O0tFRpWVJSkj6bJCJzcuECoDp7NAMKEdUxne/u+eCDDzBt2jR4eHjg3Llz6NGjB1xdXfHPP/8gMjLSGDUSUV369VcGFCIyCzqHlI0bN2LLli1Yv349bGxs8PLLLyMuLg5z585FXl6eMWokorry7bdA//7KbQwoRGQiOoeU9PR0xa3G9vb2KCgoAABMnjwZX375pWGrI6K6s2EDMHaschsDChGZkM4hxcvLCzk5OQAqpss/efIkgIpn+nAMLlE9tXgxMGeOchv/nonIxHQOKQMGDMDevXsBANOnT8eCBQswePBgjBs3DqNGjTJ4gURkZJMmAe+9p9zGgEJEZkDnW5DlcjnkcrniAYNff/01jh8/jrZt22LmzJmwsbExSqHmhrcgU4PQuzdw4oRyGwMKERmZtp+hnCdFTwwpVO+5uwPZ2UpNn8RfxeQwP9hY6XySlYhIawadJ+X8+fNa7zhI9dZFIjI/Gh4S6vfKPuA/l/DO/kuY0dcfi4cFmKAwIqL/0SqkBAcHQyKR1DgwViKRQCaTGaQwIjKSqgLKf8kFsDk+FQAYVIjIpLQKKampqcaug4jqgkpAKbSxR+CCbzR2/fhYKl4c0oGXfojIZLQKKa1Un99BRPWPSkC56NkGj09dV2V3uQD+fSIN0/u2NnZlREQa6fVPpH//+9949NFH4ePjg2vXrgEA1q5dix9++MGgxRGRgagElD96Dao2oFS6lnvfWBUREdVI55CyadMmREdHY9iwYbh3755iDErTpk2xdu1aQ9dHRLWlOgZl/nwkLP9Iq1V9m9kboSAiIu3oHFI+/PBDfPzxx3jttddgaWmpaO/WrRsuXLhg0OKIqJZUA8r77wNr1qCDl3a3zWvbj4jIGLQak/Kw1NRUdO3aVa3d1tYWRUVFBimKiAxANaB88QUwYQIAIPd+qVab0LYfEZEx6Hwmxd/fH8nJyWrtP/30EwICeLsikVlQDSiHDysCCgB4ONtptRlt+xERGYPOZ1JeeuklPP/88yguLoYQAqdPn8aXX36J2NhYbN261Rg1EpEuVANKUhKgcvazh78LvKV2yMwrhqbZjyQAvKR26OHvYrQyiYhqonNImTZtGsrLy/Hyyy/j/v37mDBhApo3b45169bhqaeeMkaNRKQt1YDyzz+Av79aN0sLCWKiAjBrRxIkgFJQqdxCTFQALC3UJ34jIqortXp2T3Z2NuRyOTw8PAAAN2/eRPPmzQ1WnDnjs3vI7KgGlKysiufzVOPAxQws3ZuCjLxiRZu31A4xUQGICPQ2RpVERIZ9dk9V3NzcAACZmZl45513sHXrVjx48KA2myQifagGlMJCwNGxxtUiAr0xOMALp1NzkVVQDA/niks8PINCROZA64Gz9+7dw8SJE+Hu7g4fHx988MEHkMvlWLJkCVq3bo2TJ0/i008/NWatRKSJakApLdUqoFSytJAgrI0rRgQ3R1gbVwYUIjIbWp9JefXVVxEfH48pU6bgwIEDWLBgAQ4cOIDi4mL89NNP6NevnzHrJCJVQgAWKv/OkMs1PkCQiKg+0jqk/Oc//8G2bdswaNAgzJ49G23btkW7du04yyyRKchkgJXKn6/+w8uIiMyS1pd7bt26pZgHpXXr1rCzs8Ozzz5rtMIMadSoUWjWrBmeeOIJtWX79u1D+/bt8cgjj/AWaqofHjxgQCGiRkHrkCKXy2Ftba14bWlpCUcdrnub0ty5c/H555+rtZeXlyM6Ohq//PILkpKSsHz5cuTm5pqgQiIt5eYCDg7KbQwoRNRAaX25RwiBqVOnwtbWFgBQXFyMmTNnqgWV3bt3G7ZCAwgPD8fRo0fV2k+fPo1OnTopbpseNmwYDh48iPHjx9dxhURauH4daNlSuY0BhYgaMK3PpEyZMgUeHh6QSqWQSqWYNGkSfHx8FK8rv3QVHx+PqKgo+Pj4QCKRYM+ePWp9Nm7cCH9/f9jZ2SE0NBTHjh3TeT+a3Lp1S2lelxYtWuDmzZsG2TaRQV24wIBCRI2O1mdStm3bZpQCioqK0KVLF0ybNg1jxoxRW75r1y7Mnz8fGzduxKOPPorNmzcjMjISKSkpaPnfN+3Q0FCUlJSorXvo0CH4+PhUuW9N89hJeGcEmZv4eED17jkGFCJqBGo1mZshREZGIjIyssrlq1evxvTp0xWDdNeuXYuDBw9i06ZNiI2NBQAkJibqte/mzZsrnTm5ceMGevbsqbFvSUmJUhDKz8/Xa59EOvn2W2DsWOU2BhQiaiR0fgpyXSotLUViYiKGDBmi1D5kyBAkJCTUevs9evTAxYsXcfPmTRQUFGD//v0YOnSoxr6xsbFKl7V8fX1rvX+iam3YwIBCRI2aWYeU7OxsyGQyeHp6KrV7enoiMzNT6+0MHToUY8eOxf79+9GiRQucOXMGAGBlZYX3338f4eHh6Nq1K1566SW4urpq3MbixYuRl5en+Lp+/br+B0ZUk8WLgTlzlNsYUIiokTH55R5tqI4TEULoNHbk4MGDVS4bPnw4hg8fXuM2bG1tFXc2ERnVpEnAF18otzGgEFEjZNYhxc3NDZaWlmpnTbKystTOrhA1CL17AydOKLcxoBBRI2XWl3tsbGwQGhqKuLg4pfa4uDj07t3bRFURGYm7OwMKEdFDTH4mpbCwEFeuXFG8Tk1NRXJyMlxcXNCyZUtER0dj8uTJ6NatG8LCwrBlyxakp6dj5syZJqyayMA0Xb5kQCGiRs7kIeXs2bMIDw9XvI6OjgZQMXnc9u3bMW7cOOTk5GDZsmXIyMhAYGAg9u/fj1atWpmqZCLDYkAhItJIIjTNaEY1ys/Ph1QqRV5eHpo0aWLqcqi+Ug0oDg5AUZFpaiEiqiPafoaa9ZgUogZNNaB06cKAQkT0EIYUIlNQDSgjRwLJyaaohIjIbDGkENU11YAyfz7w/fcmKYWIyJwxpBDVJdWAsmoVsGaNaWohIjJzJr+7h6jRUA0oX3wBTJhgmlqIiOoBhhQiHcjkAqdTc5FVUAwPZzv08HeBpYUWj2hQDShxccCgQcYpkoiogWBIIdLSgYsZWLo3BRl5xYo2b6kdYqICEBHoXfWKqgElKQno2tVIVRIRNRwck0KkhQMXMzBrR5JSQAGAzLxizNqRhAMXMzSvqBpQrl5lQCEi0hJDClENZHKBpXtToGnWw8q2pXtTIJOr9FANKFlZQOvWxiiRiKhBYkghqsHp1Fy1MygPEwAy8opxOjX3f42qAaWgoOIBgkREpDWOSSGqQVZB1QFFYz/VgFJaClhbG7gqIqKGjyGFqAYeznba9XOyVQ8ocrnmBwgSEVGNeLmHqAY9/F3gLbVDVVFDAqC5szXCHlG5nCMEAwoRUS0wpBDVwNJCgpioAABQCyoSALZlJfjt9aHKC/hwcSKiWmNIIdJCRKA3Nk0KgZdU+dJPO+tS/Ll6jHJnBhQiIoPgmBQiLUUEemNwgJdixtkWBTkIfayLcicGFCIig2FIIdKBpYUEYW1cgQsXAAYUIiKj4uUeIl3FxwNBQcptDChERAbHkEKki927gX79lNsYUIiIjIIhhUhbGzYAYzhIloiorjCkEGnj1VeBOXOU2xhQiIiMigNniWoyaRLwxRfKbQwoRERGx5BCVJ1HHwUSEpSaTlzJRlbyTXg426GHvwssLTirLBGRMTCkEFXFwwO4c0epKezdw8j4+KTitbfUDjFRAYgI9K7r6oiIGjyOSSHSRCJRCyj+r+xDRp7yE5Ez84oxa0cSDlzMqMvqiIgaBYYUIlUaHgoY9u5haBqFIv77tXRvCmRyjlMhIjIkhhSih6kGFAcHnLiSrXYGRVVGXjFOp+YasTAiosaHIYWokmpA6dwZKCpCZn71AaWStv2IiEg7DClEgHpAGTECOH8eAJBbWKLVJrTtR0RE2mFIIVINKHPnAnv2KF42tbfWajPa9iMiIu0wpFDjphpQVqwA1q1Tasq9X6bVprTtR0RE2uE8KdR4qQaUf/+7YnZZFfcelGq1OW37ERGRdhhSqHFSDSiHDgGDB2vuqu0ma1cRERGp4OUeanxUA0piYpUBBQDCWrtptVlt+xERkXYYUqhxUQ0oV64AISHVrtKrjSuaOlQ/KLapgzV6tXGtbXVERPQQhhRqPFQDSlYW0KZNjatZWkjw3ujO1fZ5b3RnPmiQiMjAGFKocVANKAUFgLu71qtHBHrjo0kh8Gpiq9Tu1cQWH00K4QMGiYiMgANnqeFTDSilpYC17nOaRAR6Y3CAF06n5iKroBgeznbo4e/CMyhEREbSKM6kjBo1Cs2aNcMTTzyh1H79+nX0798fAQEBCAoKwjfffGOiCskohFAPKHK5XgGlkqWFBGFtXDEiuDnC2rgyoBARGVGjCClz587F559/rtZuZWWFtWvXIiUlBYcPH8aCBQtQVFRkggrJ4GQywELl11tTaCEiIrPVKEJKeHg4nJ2d1dq9vb0RHBwMAPDw8ICLiwtyc/kk23rvwQPASuVKphCmqYWIiPRm8pASHx+PqKgo+Pj4QCKRYM9Dz0yptHHjRvj7+8POzg6hoaE4duyYwes4e/Ys5HI5fH19Db5tqkN37wIODsptDChERPWSyUNKUVERunTpgvXr12tcvmvXLsyfPx+vvfYazp07h759+yIyMhLp6emKPqGhoQgMDFT7unXrllY15OTk4Omnn8aWLVsMckxkItevAy4uym0MKERE9ZbJ7+6JjIxEZGRklctXr16N6dOn49lnnwUArF27FgcPHsSmTZsQGxsLAEhMTNR7/yUlJRg1ahQWL16M3r17V9uvpKRE8To/P1/vfZIRXLgABAUptzGgEBHVayY/k1Kd0tJSJCYmYsiQIUrtQ4YMQUJCQq23L4TA1KlTMWDAAEyePLnavrGxsZBKpYovXhYyI/HxDChERA2QWYeU7OxsyGQyeHp6KrV7enoiMzNT6+0MHToUY8eOxf79+9GiRQucOXMGAPDbb79h165d2LNnD4KDgxEcHIwLFy5o3MbixYuRl5en+Lp+/br+B0aG8913QL9+ym0MKEREDYLJL/doQ6Jy26gQQq2tOgcPHtTY3qdPH8jlcq22YWtrC1tb25o7Ut3ZsAGYM0e5jQGFiKjBMOszKW5ubrC0tFQ7a5KVlaV2doUamVdfZUAhImrgzDqk2NjYIDQ0FHFxcUrtcXFx1Q5ypQZu0iTgv4OmFRhQiIgaHJNf7iksLMSVK1cUr1NTU5GcnAwXFxe0bNkS0dHRmDx5Mrp164awsDBs2bIF6enpmDlzpgmrJpN59FFAddA0AwoRUYNk8pBy9uxZhIeHK15HR0cDAKZMmYLt27dj3LhxyMnJwbJly5CRkYHAwEDs378frVq1MlXJZCoeHsCdO8ptDChERA2WRAi+y+sjPz8fUqkUeXl5aNKkianLafg0DZTmry4RUb2k7WeoWY9JIQLAgEJE1EgxpJB5Uw0odnYMKEREjQRDCpkv1YASFFTxhGMiImoUGFLIPKkGlBEjgN9/N00tRERkEia/u4caLplc4HRqLrIKiuHhbIce/i6wtNBipmDVgDJ/PrBmjVFqJCIi88WQQkZx4GIG3vzxD2Tm/+/J0V5NbPHm8E6ICPSuekXVgLJyJbBwoZGqJCIic8bLPWRwBy5mYOaOJKWAAgCZ+SWYuSMJBy5maF5RNaB88QUDChFRI8aQQgYlkwss2q35SdKVFu2+AJlc5Q4d1YBy6BAwYYKBqyMiovqEIYUM6uTVHNy7X1Ztn3v3y3Dyas7/GlQDSmIiMHiwEaojIqL6hCGFDCrharZu/VQDypUrQEiIgasiIqL6iANnyaBu3dNuHpNb9x6oB5SsLMDd3QhVERFRfcSQQgbl08xeq35rxqucLSkoAJycjFARERHVV7zcQwbVu7VbjX3Slj+u3FBayoBCRERqGFLIoHq1cUVTB2vNC4VQDyhyOWBdRX8iImrUGFLIoCwtJHhvdGe1dgu5DGkropQbhdD8hGMiIiIwpJARRAR646NJIfB0tgEA2JaV4J+VI5Q78UnGRERUA4YUMhqJxAJNigvx1+oxygsYUIiISAsMKWRwBy5mYNaOJEhuXMf5dU8pLfN/ZV/V0+ITERE9hCGFDEomF1i6NwXt7qThxKZpSsv8XtkHAFi6N0V9WnwiIiIVDClkUKdTc9Hi4lkc/HSOUntlQBEAMvKKcTo11wTVERFRfcKQQgZluWc3vtm5SKmtMqA8LKuguK5KIiKieoohhQxn40b0WPicUpOmgAIAHs52dVERERHVYwwpZBivvQY8/7xSk6aAIgHgLbVDD3+XOiqMiIjqKz67h2pv8mRgxw6lJv9X9kGCijEolSqnbYuJCoClBSdxIyKi6vFMCtVO375qAQVCYNOkEHhJlS/peEntsGlSCCICveuwQCIiqq94JoX05+UF3L6t3PbfidoiAr0xOMALp1NzkVVQDA/niks8PINCRETaYkgh/Wh65o7KTLKWFhKEtXGto4KIiKih4eUe0p0WAYWIiKi2GFJIN6oBxcGBAYWIiIyCIYW0pxpQOncGiopMUwsRETV4DCmkHdWAMmIEcP68aWohIqJGgSGFaqYaUObNA/bsMUkpRETUeDCkUPVUA8rKlcDatSYphYiIGhfegkxVUw0oO3YAEyeaphYiImp0GFJIM9WAcugQMHiwaWohIqJGiSGF1KkGlMREICTENLUQEVGjxZBCylQDypUrQJs2pqmFiIgaNYYU+h/VgJKVBbi7m6YWIiJq9BrF3T2jRo1Cs2bN8MQTT2hcfv/+fbRq1QoLFy6s48rMiGpAKSiodUCRyQVOXM3BD8k3ceJqDmRyzkxLRETaaxRnUubOnYtnnnkGn332mcbl77zzDnr27FnHVZkR1YBSWgpYW9dqkwcuZmDp3hRk5BUr2ryldoiJCkBEoHettk1ERI1DoziTEh4eDmdnZ43LLl++jD///BPDhg2r46rMgBDqAUUuN0hAmbUjSSmgAEBmXjFm7UjCgYsZtdo+ERE1DiYPKfHx8YiKioKPjw8kEgn2aJjJdOPGjfD394ednR1CQ0Nx7Ngxg+1/4cKFiI2NNdj26g2ZDLBQ+fFrCi26blYusHRvCjRd2KlsW7o3hZd+iIioRiYPKUVFRejSpQvWr1+vcfmuXbswf/58vPbaazh37hz69u2LyMhIpKenK/qEhoYiMDBQ7evWrVvV7vuHH35Au3bt0K5dO4Mek9l78ACwUrnSZ6AnGZ9OzVU7g6K0GwAZecU4nZprkP0REVHDZfIxKZGRkYiMjKxy+erVqzF9+nQ8++yzAIC1a9fi4MGD2LRpk+IMSGJiol77PnnyJL766it88803KCwsRFlZGZo0aYIlS5ao9S0pKUFJSYnidX5+vl77NLm7dwEXF+U2AwUUAMgqqDqg6NOPiIgaL5OfSalOaWkpEhMTMWTIEKX2IUOGICEhodbbj42NxfXr15GWloZVq1ZhxowZGgNKZV+pVKr48vX1rfX+69z160YNKADg4Wxn0H5ERNR4mXVIyc7Ohkwmg6enp1K7p6cnMjMztd7O0KFDMXbsWOzfvx8tWrTAmTNndK5l8eLFyMvLU3xdv35d522Y1MWLQMuWym0GDigA0MPfBd5SO1Q1skWCirt8evi7VNGDiIiogskv92hDojKYUwih1ladgwcP1thn6tSp1S63tbWFra2t1vs0K8ePA337KrcZIaAAgKWFBDFRAZi1IwkSQGkAbeVPLCYqAJYWtRugS0REDZ9Zn0lxc3ODpaWl2lmTrKwstbMrVIXdu+ssoFSKCPTGpkkh8JIqX9Lxktph06QQzpNCRERaMeszKTY2NggNDUVcXBxGjRqlaI+Li8OIESNMWFk9sWkTMHu2cpuRA0qliEBvDA7wwunUXGQVFMPDueISD8+gEBGRtkweUgoLC3HlyhXF69TUVCQnJ8PFxQUtW7ZEdHQ0Jk+ejG7duiEsLAxbtmxBeno6Zs6cacKq64HXXwfeeUe5rY4CSiVLCwnC2rjW6T6JiKjhMHlIOXv2LMLDwxWvo6OjAQBTpkzB9u3bMW7cOOTk5GDZsmXIyMhAYGAg9u/fj1atWpmqZPM3ZQrw+efKbXUcUIiIiGpLIgQ/vfSRn58PqVSKvLw8NGnSxNTl/M9jjwGqM/LyR0xERGZE289Qk59JoQoyuaj9+A1vb0D11mwGFCIiqqcYUsyAQZ4YrOmWbAYUIiKqx8z6FuTGwCBPDGZAISKiBoghxYQM8sRg1YBiZ8eAQkREDQJDignV+onBqgElMLDiCcdEREQNAEOKCdXqicGqAWXECODCBQNURUREZB4YUkxI7ycGqwaUF14A9uwxTFFERERmgiHFhCqfGFwdtScGqwaUFSuADz4wQnVERESmxZBiQpYWEgzvUv0txsO7eP9vvhTVgPL558BLLxmpOiIiItNiSDEhmVzgx9+rv8X4x98zKu7uUQ0ohw4BkycbsToiIiLT4mRuJlTT3T1Axd09lpYqWfLsWSA01IiVERERmR5Digll5td8d0/a8seVG65cAdq0MVJFRERE5oMhxYRyC0uqXa4WUG7fBjw8jFgRERGR+WBIMSEXR5sql6kFlIICwMnJyBURERGZDw6cNSEvqb3GdtWAcvJSBgMKERE1OjyTYkKhrZrBQgIoHs0jBNJWRCn1af3KXvzZlpd4iIio8eGZFBNKvHa32oDi98o+yCFB4rW7dV8cERGRiTGkmNDDd/e0yM9SWub3yj6N/YiIiBoLhhQTevjunhtST/zcpjsA5YCi2o+IiKix4JgUE1K9u2f6EzFa9SMiImoMeCbFhKq6u0fffkRERA0JQ4oJ6fUUZCIiokaCIcWELC0kiIkKgKSK5RIAMVEB/3sKMhERUSPCkGJiEYHe2DQpRO2MirfUDpsmhSAi0NtElREREZkWB86agYhAbwwO8MLp1FxkFRTDw7niEg/PoBARUWPGkGImLC0kCGvjauoyiIiIzAYv9xAREZFZYkghIiIis8SQQkRERGaJIYWIiIjMEkMKERERmSWGFCIiIjJLDClERERklhhSiIiIyCwxpBAREZFZYkghIiIis8SQQkRERGaJIYWIiIjMEkMKERERmSU+BVlPQggAQH5+vokrISIiql8qPzsrP0urwpCip4KCAgCAr6+viSshIiKqnwoKCiCVSqtcLhE1xRjSSC6Xo127dkhMTIREIlG0d+/eHWfOnNHqter///zzz/D19cX169fRpEkTvepS3Z+ufTQt4zFV/H/lf/Pz8+vdMVW1zFyOSdv26n7XTPF7p+sx1dTWEI6psb4/NMRjMub7gxACBQUF8PHxgYVF1SNPeCZFTxYWFrCxsVFLgJaWlko/xOpeV/X/TZo00fsXQXV/uvbRtIzHVPH/qn3q0zFVtcxcjknbdm1+1+ry906X2rVpawjH1FjfH1T/vyEck7HfH6o7g1KJA2dr4fnnn6+xrbrXVf2/oWvSpQ+PSf115f8b6ni03ZYhj6mqZeZyTNq2a/O7Vpe/d9X10+ZnpNrWEI6psb4/aFuLNszlmOr6/UETXu4xI/n5+ZBKpcjLy9M7rZobHlP90NCOqaEdD8Bjqi94TIbFMylmxNbWFjExMbC1tTV1KQbDY6ofGtoxNbTjAXhM9QWPybB4JoWIiIjMEs+kEBERkVliSCEiIiKzxJBCREREZokhhYiIiMwSQwoRERGZJYaUemTUqFFo1qwZnnjiCVOXUmvXr19H//79ERAQgKCgIHzzzTemLqnWCgoK0L17dwQHB6Nz5874+OOPTV2Swdy/fx+tWrXCwoULTV2KQVhZWSE4OBjBwcF49tlnTV2OQaSmpiI8PBwBAQHo3LkzioqKTF1Srfz111+Kn1FwcDDs7e2xZ88eU5dVK2vWrEGnTp0QEBCAuXPn1vhwvfpg1apV6NSpEwIDA7Fjxw7D70BQvfHLL7+IH3/8UYwZM8bUpdTarVu3xLlz54QQQty+fVs0b95cFBYWmraoWiovLxdFRUVCCCGKioqEv7+/yM7ONnFVhvHqq6+KsWPHihdffNHUpRiEq6urqUswuMcee0zEx8cLIYTIyckRZWVlJq7IcAoKCoSrq2u9fo/IysoSrVu3Fg8ePBDl5eWid+/eIiEhwdRl1cr58+dF165dxYMHD8SDBw9E7969xd27dw26D55JqUfCw8Ph7Oxs6jIMwtvbG8HBwQAADw8PuLi4IDc317RF1ZKlpSUcHBwAAMXFxZDJZA3iX0qXL1/Gn3/+iWHDhpm6FKrCH3/8AWtra/Tt2xcA4OLiAiurhvNoth9//BEDBw6Eo6OjqUuplfLychQXF6OsrAxlZWXw8PAwdUm1cunSJfTu3Rt2dnaws7NDcHAwDhw4YNB9MKTUkfj4eERFRcHHxwcSiUTjacuNGzfC398fdnZ2CA0NxbFjx+q+UC0Z8njOnj0LuVwOX19fI1ddPUMc071799ClSxe0aNECL7/8Mtzc3Oqoes0McUwLFy5EbGxsHVVcM0McU35+PkJDQ9GnTx/8+uuvdVR51Wp7TJcvX4aTkxOGDx+OkJAQvPvuu3VYvWaGfI/4+uuvMW7cOCNXXL3aHo+7uzsWLlyIli1bwsfHB4MGDUKbNm3q8AjU1faYAgMDceTIEdy7dw/37t3DL7/8gps3bxq0RoaUOlJUVIQuXbpg/fr1Gpfv2rUL8+fPx2uvvYZz586hb9++iIyMRHp6eh1Xqh1DHU9OTg6efvppbNmypS7KrpYhjqlp06b4/fffkZqaip07d+L27dt1Vb5GtT2mH374Ae3atUO7du3qsuxqGeLnlJaWhsTERHz00Ud4+umnkZ+fX1fla1TbYyorK8OxY8ewYcMGnDhxAnFxcYiLi6vLQ1BjqPeI/Px8/PbbbyY/k1fb47l79y727duHtLQ03Lx5EwkJCYiPj6/LQ1BT22OqHFszYMAAjBo1Ct27dzf8GTyDXjwirQAQ33//vVJbjx49xMyZM5XaOnToIBYtWqTUduTIEbMbk6Lv8RQXF4u+ffuKzz//vC7K1EltfkaVZs6cKb7++mtjlagzfY5p0aJFokWLFqJVq1bC1dVVNGnSRCxdurSuSq6RIX5OERER4syZM8YqUWf6HFNCQoIYOnSoYtmKFSvEihUrjF6rtmrzc/r888/FxIkTjV2iTvQ5nq+//lrMnj1bsWzFihVi+fLlRq9VW4b4W5o+fbrYt2+fQevimRQzUFpaisTERAwZMkSpfciQIUhISDBRVfrT5niEEJg6dSoGDBiAyZMnm6JMnWhzTLdv31b8izw/Px/x8fFo3759ndeqLW2OKTY2FtevX0daWhpWrVqFGTNmYMmSJaYoVyvaHNPdu3dRUlICALhx4wZSUlLQunXrOq9VW9ocU/fu3XH79m3cvXsXcrkc8fHx6NixoynK1You73nmcKmnJtocj6+vLxISEhTj1Y4ePVrv3x8AICsrC0DF3VinT5/G0KFDDVpHwxlZVY9lZ2dDJpPB09NTqd3T0xOZmZmK10OHDkVSUhKKiorQokULfP/99+jevXtdl1sjbY7nt99+w65duxAUFKS4Dvrvf/8bnTt3rutytaLNMd24cQPTp0+HEAJCCMyZMwdBQUGmKFcr2v7e1SfaHNOlS5fwf//3f7CwsIBEIsG6devg4uJiinK1os0xWVlZ4d1338Vjjz0GIQSGDBmCxx9/3BTlakXb3728vDycPn0a3333XV2XqBNtjqdXr14YNmwYunbtCgsLCwwcOBDDhw83Rbla0fZnNHLkSNy7dw+Ojo7Ytm2bwS/3MKSYEYlEovRaCKHUdvDgwbouqVaqO54+ffpALpeboqxaqe6YQkNDkZycbIKqaqem37tKU6dOraOKaq+6Y+rduzcuXLhgirJqpaafU2RkJCIjI+u6rFqp6ZikUqnJx3Xpoqbjeeedd/DOO+/UdVm1UtMxGftsPy/3mAE3NzdYWlqq/es1KytLLcXWBw3teAAeU33BY6ofGtoxNbTjAcznmBhSzICNjQ1CQ0PVRuPHxcWhd+/eJqpKfw3teAAeU33BY6ofGtoxNbTjAcznmHi5p44UFhbiypUritepqalITk6Gi4sLWrZsiejoaEyePBndunVDWFgYtmzZgvT0dMycOdOEVVetoR0PwGPiMZkOj8n8j6mhHQ9QT47JoPcKUZWOHDkiAKh9TZkyRdFnw4YNolWrVsLGxkaEhISIX3/91XQF16ChHY8QPCYek+nwmMz/mBra8QhRP45JIkQDmLebiIiIGhyOSSEiIiKzxJBCREREZokhhYiIiMwSQwoRERGZJYYUIiIiMksMKURERGSWGFKIiIjILDGkEBERkVliSCEiIiKzxJBCREREZokhhYjICI4ePQo/Pz+j9SdqDBhSiKhGU6dOhUQigUQigbW1NVq3bo2FCxeiqKjI1KXprX///pg/f76pyyCialiZugAiqh8iIiKwbds2lJWV4dixY3j22WdRVFSETZs26byt0tJS2NjYGKHKuteQjoXI3PBMChFpxdbWFl5eXvD19cWECRMwceJE7NmzBwBw4MAB9OnTB02bNoWrqysef/xxXL16VbFu//79MWfOHERHR8PNzQ2DBw/War3KdV944QXMnz8fzZo1g6enJ7Zs2YKioiJMmzYNzs7OaNOmDX766SfFOkIIrFixAq1bt4a9vT26dOmCb7/9VrF86tSp+PXXX7Fu3TrFGaK0tLQa16vuWLRx584dPPfcc/D09FRsPz4+Xuv1iRobhhQi0ou9vT3KysoAAEVFRYiOjsaZM2fw888/w8LCAqNGjYJcLlf0/+yzz2BlZYXffvsNmzdv1nq9ynXd3Nxw+vRpvPDCC5g1axbGjh2L3r17IykpCUOHDsXkyZNx//59AMDrr7+Obdu2YdOmTfjjjz+wYMECTJo0Cb/++isAYN26dQgLC8OMGTOQkZGBjIwM+Pr61rhedcdSk2vXriEoKAh3797FDz/8gPPnz+OFF16As7Ozfj8AosZAEBHVYMqUKWLEiBGK16dOnRKurq7iySef1Ng/KytLABAXLlwQQgjRr18/ERwcXON+VNerXLdPnz6K1+Xl5cLR0VFMnjxZ0ZaRkSEAiBMnTojCwkJhZ2cnEhISlLY9ffp0MX78eKXtzps3T/Fal/W0OZYjR46IVq1aKV5HRkaK/v37C7lcrlV/IhKCY1KISCv79u2Dk5MTysvLUVZWhhEjRuDDDz8EAFy9ehVvvPEGTp48iezsbMWZkPT0dAQGBgIAunXrprZNbdYDgKCgIMX/W1pawtXVFZ07d1a0eXp6AgCysrKQkpKC4uJitcswpaWl6Nq1a5XHp8t6mo6lOunp6fjpp5+QlJQEiUSi07pEjRlDChFpJTw8HJs2bYK1tTV8fHxgbW2tWBYVFQVfX198/PHH8PHxgVwuR2BgIEpLSxV9HB0d1bapzXoAlPYFQHGX0cOvAUAulyuCzn/+8x80b95caT1bW9sqj0+X9TQdS3XOnTsHGxubakMSEaljSCEirTg6OqJt27Zq7Tk5Obh06RI2b96Mvn37AgCOHz9e4/b0Xa8mAQEBsLW1RXp6Ovr161dlPxsbG8hkMp3X04e1tTXKy8tx//59ODg4GHTbRA0ZQwoR1UqzZs3g6uqKLVu2wNvbG+np6Vi0aJHR1quJs7MzFi5ciAULFkAul6NPnz7Iz89HQkICnJycMGXKFACAn58fTp06hbS0NDg5OcHFxUWr9fTRs2dPSKVSzJo1C4sWLYIQAvHx8ejfvz86dOhQ62Mmaqh4dw8R1YqFhQW++uorJCYmIjAwEAsWLMDKlSuNtp423nrrLSxZsgSxsbHo2LEjhg4dir1798Lf31/RZ+HChbC0tERAQADc3d2Rnp6u1Xr6cHV1xd69e3H58mV0794dffr0wZ49exRjaYhIM4kQQpi6CCKihubo0aOYOnUq0tLSjNKfqDHgmRQiIiIySwwpREREZJYYUoiIjMDPz0+nBxjq2p+oMeCYFCIiIjJLPJNCREREZokhhYiIiMwSQwoRERGZJYYUIiIiMksMKURERGSWGFKIiIjILDGkEBERkVliSCEiIiKzxJBCREREZokhhYiIiMzS/wPidhGEJhRPlAAAAABJRU5ErkJggg==", + "image/png": "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2IBhw4bBwsICCoWiQvGV/Pjk5uaiRYsWMDc3x7Fjx+Dp6Qmg+I6XCxcuoFevXqp9GjduLLnL5eLFi5JeC13boy4wMBCpqamoV68evL29S61X2utQGRYWFgBQodfR29sb9evXR25ursY2Ozs7uLu746+//kLPnj1V5TExMejUqZOk7rFjx1R1ioqKEBsbqxojFhgYiG3btsHb27vCd+vZ2trC1ta2QvuWxsrKCk2aNEFhYSG2bdsmGQPUrVs3nD9/XlL/woUL8PLy0jjO//73PwQFBaFdu3Y6nVcIgfz8/MoFbwRMbmoi9QSnRQvg6FGgSxfTxUS1SmZmpsYcGw4ODqofWn3MmjULXbp0wSuvvILJkyfDxsYG586dw4EDB7By5Up4enrCwsICK1euxJQpU3D27Fm8//77lYo/MTFRI/4WLVpg/vz5mDZtGuzs7BAWFob8/HzVLdgRERFo0aIFkpOTsXnzZnTs2BF79uzBjh07VMd48OAB3nzzTTz99NPw8fHB9evXcfLkSdXtst7e3sjJycFvv/2Gdu3aoX79+qiv5ZLg008/jW7duqFr165wdXVFYmIi5syZA19fX7Ru3Rr16tXDxIkT8eabb8LR0REuLi6YO3cuzMykIwn69OmDVatWoUuXLlAqlZg1a5akF6289pTmiSeeQHBwMIYOHYrFixejVatWuHnzJvbu3YuhQ4fiscceK/N1qAxnZ2dYW1tj3759aNq0KaysrGBvb69Rb/78+bh//z4GDhwILy8v3Lt3D59++ikKCwvRr18/rcd+8803MW/ePDRv3hwBAQHYsGED4uPj8c0330jqffbZZ2jZsiXatGmDTz75BHfv3sULL7wAAHjllVewbt06jBo1Cm+++SacnJxw6dIlbN68GevWrYNcLseOHTswZ84cveeAycjIQHJyMm7evAkAqoTE1dVVdbv8888/jyZNmiAqKgoAcPz4cdy4cQMBAQG4ceMG5s+fD6VSibfeekt13BkzZqBr165YtGgRnn32WZw4cQJr167F2rVrJefPysrC999/r9GzBwBXrlzBli1bEBoaisaNG+PGjRtYvHgxrK2tMXDgQL3aWSWMMpKnDqjSAcWlUR80un276WIhibIG0lV348aN07gdF4AYN26cEKL8wZ93794VACS3z544cUL069dPNGjQQNjY2Ii2bdtKBnZ+++23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", "text/plain": [ "
" ] @@ -291,12 +281,13 @@ "fig, ax = plt.subplots(figsize = (6, 6))\n", "ax.set_xscale(\"log\")\n", "ax.set_yscale(\"log\")\n", - "ax.scatter(c_errors, errors,label='Relative Error')\n", - "ax.plot(c_errors, 10**bf[1] * (c_errors**bf[0]), color='r', label = 'Best Fit Slope: 1.9673')\n", - "ax.set_xlabel(\"Parameter $|c|$\")\n", - "ax.set_ylabel(\"Relative error (eq. 73)\")\n", - "ax.set_title(\"Relative error in single recurrence step when $|c| \\gg 1$\")\n", - "ax.legend()" + "ax.scatter(1/c_errors, errors,label='Relative Error')\n", + "ax.plot(1/c_errors, 10**bf[1] * (c_errors**bf[0]), color='r', label = 'Linear Least Squares Fit Slope: -1.9673')\n", + "ax.set_xlabel(\"Parameter $|x_1|/\\overline{x}$\")\n", + "ax.set_ylabel(\"Relative Error (eq. 73)\")\n", + "ax.set_title(\"Relative Error in Single Recurrence Step, Laplace 2D, $n=9$\")\n", + "ax.legend()\n", + "fig.savefig(\"../../S_on_surface_convergence.pgf\", bbox_inches='tight', pad_inches=0)" ] }, { diff --git a/test/plotting copy.py b/test/plotting copy.py index 265069c4b..c5f91a901 100644 --- a/test/plotting copy.py +++ b/test/plotting copy.py @@ -56,8 +56,12 @@ def generate_true(i): a4 = [*coord] s_new_true = lamb_expr_true(*a4) interactions_true += s_new_true - denom = coord[0]/coord[1]**(deriv_order+1) - return np.abs(interactions_true)/denom + if deriv_order % 2 == 0: + denom = coord[1]/coord[1]**(deriv_order+1) + else: + denom = coord[0]/coord[1]**(deriv_order+1) + + return np.abs(interactions_true)/denom, coord[1] ############### @@ -246,9 +250,9 @@ def create_plot(relerr_on, ax, str_title, acbar=True): def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): fig, (ax1,ax2,ax3) = plt.subplots(1, 3, figsize=(15, 8)) - cs = create_plot(relerr_on, ax1, "Laplace 2D", False) - cs = create_plot(relerr_off, ax2, "Helmholtz 2D", False) - cs = create_plot(relerr_comb, ax3, "Biharmonic 2D", False) + cs = create_plot(relerr_on, ax1, "Laplace 2D (eq. 107)", False) + cs = create_plot(relerr_off, ax2, "Helmholtz 2D (eq. 105)", False) + cs = create_plot(relerr_comb, ax3, "Biharmonic 2D (eq. 107)", False) n_levels = 3 @@ -308,14 +312,15 @@ def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): #======================== BIHARMONIC 2D =================================== #interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 12, m=1e2/2) -relerr_on = produce_assumption_values(mesh_points, g_x_y_laplace, 5) -relerr_off = produce_assumption_values(mesh_points, g_x_y_helmholtz, 5) -relerr_comb = produce_assumption_values(mesh_points, g_x_y_biharmonic, 5) +deriv_order = 6 +relerr_on, _ = produce_assumption_values(mesh_points, g_x_y_laplace, deriv_order) +relerr_off, _ = produce_assumption_values(mesh_points, g_x_y_helmholtz, deriv_order) +relerr_comb, coord1 = produce_assumption_values(mesh_points, g_x_y_biharmonic, deriv_order) #relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) #relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) #relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) -create_suite_plot(relerr_on+1e-20, relerr_off+1e-20, relerr_comb+1e-20, "Eq. 80 for different Green's Functions in 2D ($c=5$)") - +create_suite_plot(relerr_on+1e-20, relerr_off+1e-20, relerr_comb/coord1**2+1e-20, "Asymptotic Behavior of Derivatives ($d="+str(deriv_order)+"$)") +plt.savefig("../S_on_surface_convergence.pgf", bbox_inches='tight', pad_inches=0) plt.show() \ No newline at end of file diff --git a/test/plotting.py b/test/plotting.py index 0548518ac..90784a17f 100644 --- a/test/plotting.py +++ b/test/plotting.py @@ -207,9 +207,9 @@ def create_plot(relerr_on, ax, str_title, acbar=True): def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): fig, (ax1,ax2,ax3) = plt.subplots(1, 3, figsize=(15, 8)) - cs = create_plot(relerr_on, ax1, "On-Axis Recurrence", False) - cs = create_plot(relerr_off, ax2, "Off-Axis Recurrence ($p_{offaxis}=8$)", False) - cs = create_plot(relerr_comb, ax3, "On/Off-Axis Recurrence ($m=100$)", False) + cs = create_plot(relerr_on, ax1, "Large-$|x_1|$ Recurrence", False) + cs = create_plot(relerr_off, ax2, "Small-$|x_1|$ Recurrence ($p_{offaxis}=8$)", False) + cs = create_plot(relerr_comb, ax3, "Large/Small-$|x_1|$ Recurrence ($\\xi=50$)", False) n_levels = 18 levels = 10**np.linspace(-n_levels+2, 1, n_levels) @@ -250,13 +250,13 @@ def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): helmholtz2d = laplacian(w) + w g_x_y_helmholtz = (1j/4) * hankel1(0, k * abs_dist) #========================= LAPLACE 2D ==================================== -#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 10,m=1e2/2) +interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, laplace2d, g_x_y_laplace, 10,m=1e2/2) -#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -#relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) -#relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) +relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) -#create_suite_plot(relerr_on, relerr_off, relerr_comb, "Laplace 2D: 9th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") +create_suite_plot(relerr_on+1e-20, relerr_off+1e-20, relerr_comb+1e-20, "Laplace 2D: 9th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") #========================= HELMOLTZ 2D ==================================== #interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, helmholtz2d, g_x_y_helmholtz, 8) @@ -269,12 +269,13 @@ def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): #======================== BIHARMONIC 2D =================================== -interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 12, m=1e2/2) +#interactions_on_axis, interactions_off_axis, interactions_true, interactions_total = produce_error_for_recurrences(mesh_points, biharmonic_pde, g_x_y_biharmonic, 8, m=1e2/2) -relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) -relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) -relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) +#relerr_on = np.abs((interactions_on_axis-interactions_true)/interactions_true) +#relerr_off = np.abs((interactions_off_axis-interactions_true)/interactions_true) +#relerr_comb = np.abs((interactions_total-interactions_true)/interactions_true) -create_suite_plot(relerr_on+1e-20, relerr_off+1e-20, relerr_comb+1e-20, "Biharmonic 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") +#create_suite_plot(relerr_on+1e-20, relerr_off+1e-20, relerr_comb+1e-20, "Biharmonic 2D: 8th Order Derivative Evaluation Error $(u_{recur}-u_{sympy})/u_{recur}$") +plt.savefig("../S_on_surface_convergence.pgf", bbox_inches='tight', pad_inches=0) plt.show() \ No newline at end of file diff --git a/test/test_recurrence_qbx.py b/test/test_recurrence_qbx.py index fea862eca..b4799dffc 100644 --- a/test/test_recurrence_qbx.py +++ b/test/test_recurrence_qbx.py @@ -323,7 +323,7 @@ def plot(): import matplotlib.pyplot as plt orders = [5, 7, 9, 11] colors = ['b', 'g', 'r', 'c'] - resolutions = [2000, 3000, 4000] + resolutions = [2000, 300, 4000] err_mat, err_mat1 = _construct_laplace_axis_2d(orders, resolutions) fig, ax1 = plt.subplots(1, 1, sharey=True, figsize=(6, 6)) @@ -339,7 +339,7 @@ def plot(): ax1.legend() plt.suptitle("Laplace 2D: Ellipse SLP Boundary Evaluation Error ($m=100$, $p_{offaxis}=8$)", fontsize=16) + plt.savefig("../../S_on_surface_convergence.pgf", bbox_inches='tight', pad_inches=0) plt.show() - fig.savefig("qbxrecurrence.svg") plot() \ No newline at end of file From 59ad89397301e8145413727bb67af5511b774349 Mon Sep 17 00:00:00 2001 From: Hirish Chandrasekaran Date: Tue, 9 Sep 2025 10:49:38 -0500 Subject: [PATCH 193/193] changed plot numbers --- test/investigate_normal_recurrence copy.ipynb | 12 ++++++------ test/plotting copy.py | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/test/investigate_normal_recurrence copy.ipynb b/test/investigate_normal_recurrence copy.ipynb index 1771c5423..95784f254 100644 --- a/test/investigate_normal_recurrence copy.ipynb +++ b/test/investigate_normal_recurrence copy.ipynb @@ -136,9 +136,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[534656311907.004, 125225345923.873, -618558046809.187]\n", - "ratio: 4.26955348346198 ||||| digits: 0.630382458208069 |||| pred error: 1e-15\n", - "rel. error: 1.29237887005369e-15\n" + "[73104176967965.2, 13206463414066.4, -82734579052863.7]\n", + "ratio: 5.53548476044700 ||||| digits: 0.7431556594638044 |||| pred error: 1e-15\n", + "rel. error: 2.86737427190217e-15\n" ] } ], @@ -248,7 +248,7 @@ { "data": { "text/plain": [ - "array([ 1.95748005, -16.82293482])" + "array([ 1.99747123, -17.20696956])" ] }, "execution_count": 16, @@ -268,7 +268,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAIsCAYAAAAOOYj2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACIRUlEQVR4nO3deVhU1f8H8PcwsomAArIpmwsqkSK44Y4miolbi5qamlpmZUqWmpViKblUmia5fNPKSi2XckmzsjRxBSkNcwVxAVFQNmWbOb8/+DF6ZwaYgRmG5f16nnlqzj333s+ZGWY+nnvuOTIhhAARERFRLWFm6gCIiIiIDInJDREREdUqTG6IiIioVmFyQ0RERLUKkxsiIiKqVZjcEBERUa3C5IaIiIhqFSY3REREVKswuSEiIqJahckNERER1SpMboiIiKhWYXLziI0bN0Imk6ke9erVg5ubG0aOHImLFy9W6phJSUl67xsTE4P58+fj3r17Bj1uZai/RuqPP/74o0rj0ZWxXq/jx49j2LBh8PT0hKWlJVxcXBAcHIw33njD6OdWZ+jzGOPvgSpPl88cUPb3hymVfK5OnTplkvNW9XemLn7//Xe88MILaN26NWxsbNCkSRMMGTIEsbGxGnXV/y6trKzg6uqKkJAQREVFIS0tzQQtMIwTJ06gf//+sLW1RYMGDRASEoIjR45U6FhMbrTYsGEDjh49il9//RWvvvoqfvrpJ3Tv3h13796t0jhiYmIQGRmp9cvpySefxNGjR+Hm5lalMZUoeY3UH4GBgSaJpzzGeL327NmDrl27IisrC0uWLMEvv/yCFStWoFu3btiyZYtRz12VqsvfA+n+mQPK/v6g6iU6OhpJSUl4/fXXsXfvXqxYsQJpaWno0qULfv/9d637lPxdHjhwAJ999hkCAgKwePFitGnTBr/++msVt6DyTp48iZ49e+LBgwf4+uuv8fXXXyMvLw99+/bF0aNH9T+gIJUNGzYIAOLkyZOS8sjISAFAfPHFFxU+ZmJiot77Ll26tML7Gktpr5EucnNzK7TNEMc3hp49e4rmzZuLwsJCjW0KhaJKYxGicp+1so5nyL+HqmLsz5qp6POZq47fH0JU7jvEEOetbq+HEELcunVLoyw7O1u4uLiIvn37SsrLev2uXr0qPDw8hK2trUhNTTVavMbQv39/4eLiIvn7zMrKEk5OTqJr1656H489Nzro0KEDAODWrVuS8osXL+K5556Ds7MzLC0t0aZNG3z22WflHu/SpUuYMGECWrZsifr166NJkyYIDw/HmTNnVHXmz5+PN998EwDg4+Ojcdnn0S7WnTt3QiaT4bffftM4V3R0NGQyGf75559Kx62P+fPnQyaTIS4uDk8//TQaNWqE5s2bl7sNAP766y/07dsXtra2qF+/Prp27Yo9e/bofHxttHVJlxzj33//xahRo2Bvbw8XFxe88MILyMzMLLeN6enpcHJyQr169TS2mZk9/NMyxLl//PFHtG3bFpaWlmjWrBlWrFihOkZ5DP1+l/b3oM+5/vvvP4waNQouLi6wtLSEp6cnnn/+eeTn5wMAxo8fD29vb439tLW5Mp81XeLV570qr136vk7qdP3Mlff9oev5S9p++vRpDB8+HHZ2drC3t8eYMWNw+/btcuOtKF2+Iysbn67nKKHLe1vR99XZ2VmjrEGDBvDz88O1a9fK3b+Ep6cnPvroI2RnZ2PNmjU67/eoPn36ICQkBH/++SeeeOIJNGjQAK6urliwYEGFjqerI0eOoHfv3qhfv76qzNbWFj179kRMTAxSUlL0Op7mXwhpSExMBAD4+vqqyhISEtC1a1fVh8nV1RX79+/HtGnTcOfOHcybN6/U4928eROOjo748MMP0bhxY2RkZODLL79E586dcfr0abRq1QqTJk1CRkYGVq5cie3bt6suafj5+Wkcb9CgQXB2dsaGDRvQt29fybaNGzciMDAQbdu2rXTcj1IoFCgqKpKUyWQyyOVySdnw4cMxcuRITJkyBbm5ueVu+/PPP9GvXz+0bdsW//vf/2BpaYnVq1cjPDwc3333HUaMGKHz8XX11FNPYcSIEZg4cSLOnDmDOXPmAAC++OKLMvcLDg7G+vXrMW3aNIwePRqBgYEwNzc3+Ln37duH4cOHo2fPntiyZQuKioqwbNkyrcmFOkO934/S9vegz7n+/vtvdO/eHU5OTliwYAFatmyJlJQU/PTTTygoKIClpaXeMQH6f9b0fW3Ke690bVdl3hNdP3NlfX9U5PzDhg3Ds88+iylTpuDff//Fu+++i4SEBBw/flzvz7wudPmOrGx8+pxDl/fW0H9rmZmZiIuLQ58+ffTab+DAgZDL5Th06JBe+5WIj4+Hvb09ZsyYgRkzZuDtt9/G559/jnnz5qFXr17o1auXxj5CCCgUCp2Ory0xB1Dq335J2ZkzZ/S7tG/AXqUar6S779ixY6KwsFBkZ2eLffv2CVdXV9GzZ09JV3D//v1F06ZNRWZmpuQYr776qrCyshIZGRmSY5bVFVpUVCQKCgpEy5YtxYwZM1TlZXUrqx83IiJCWFtbi3v37qnqJCQkCABi5cqVesdd3muk7SGXy1X15s2bJwCI9957T+MYZW3r0qWLcHZ2FtnZ2ZLXx9/fXzRt2lQolcpyj1FW3I++liXHWLJkiaTu1KlThZWVlepcpblz547o3r27qv3m5uaia9euIioqShJ/Zc/dsWNH4eHhIfLz81Vl2dnZwtHRUTz6J6ztPJV5v/X5e9DnXH369BENGzYUaWlppZ573LhxwsvLS6O85HXTVqbvZ03XeHV9r3Rplz7n1UbXz5wQpX9/6HP+krY/+r0khBDffPONACA2bdpUZlu1qchlqdK+I/WJr7zv4tLOIYRu721lv1vVjR49WtSrV0+cOnVKUq7L6+fi4iLatGmj1/mEEOLy5csCgAgKChJ5eXmq8uvXrwsAYvXq1Vr3O3jwYKm/C+qP0l7/gIAA4evrK7m8WlhYKJo1ayYAiG+//VavtvCylBZdunSBubk5bG1tMWDAADRq1Ag//vijKuPMy8vDb7/9hmHDhqF+/fooKipSPQYOHIi8vDwcO3as1OMXFRVh0aJF8PPzg4WFBerVqwcLCwtcvHgR586dq1DML7zwAh48eCAZVLhhwwZYWlriueeeM0jcj/rqq69w8uRJyeP48eMa9Z566qlSj6G+LTc3F8ePH8fTTz+NBg0aqMrlcjnGjh2L69ev4/z58zofX1eDBw+WPG/bti3y8vLKvevA0dERhw8fxsmTJ/Hhhx9iyJAhuHDhAubMmYPHH38cd+7cqfS5c3NzcerUKQwdOhQWFhaqeg0aNEB4eHiZxzbU+13e34M+57p//z7+/PNPPPvss2jcuHG559aHPp+1irw2Zb1Xurarsu9JZT9zFT3/6NGjJc+fffZZ1KtXDwcPHizzfBWl73dkReLT9Ry6vLeG/G4FgHfffRfffPMNPvnkEwQFBem8XwkhhN77AEBcXBwAYMGCBZJelPT0dACAu7u71v2CgoI0fg9Ke5R2jNdeew0XLlzAq6++ihs3buDatWuYMmUKrl69CkB62VUXvCylxVdffYU2bdogOzsbW7ZswZo1azBq1Cj8/PPPAIrf6KKiIqxcuRIrV67UeoyyvmQiIiLw2WefYdasWejVqxcaNWoEMzMzTJo0CQ8ePKhQzI899hg6duyIDRs24MUXX4RCocCmTZswZMgQODg4GCTuR7Vp00Y19qIsZXUjqm+7e/cuhBBa9yn5gyj5I9Pl+LpydHSUPC/5o9b1vejQoYPqtSgsLMSsWbPwySefYMmSJViyZEmlzl3ymri4uGjsq63sUYZ6v8v7e9DnXHfv3oVCoUDTpk3LPa++9PmsVeS1Keu9Kioq0qldhnpPKvqZq+j5XV1dJc/r1asHR0dHjb9HQ9H3O7Ii8el6Dl0+s4b8bo2MjMQHH3yAhQsX4tVXX9Vpn0fl5uYiPT0djz/+uN77xsXFwdLSEk888YRGOQC0b99e634NGjRAQECATuco7bLUCy+8gNu3b+ODDz5AdHQ0gOLLsDNnzsTixYvRpEkTHVvx/+fRq3Yd8egPd0hICBQKBdavX48ffvhBNSixpDfhlVde0XoMHx+fUo+/adMmPP/881i0aJGk/M6dO2jYsGGF454wYQKmTp2Kc+fO4cqVK0hJScGECRNU2ysbd0WUNeBVfVvJl4u2gWM3b94EADg5Oel8fFMwNzfHvHnz8Mknn+Ds2bOVPl6jRo0gk8m0jq9JTU0td19DvN/l/T3oc6769etDLpfj+vXrZZ7TyspKYxAuUPYPhL6fNUP+LTg4OOjULmP8Derzmavo+VNTUyU/LkVFRUhPT9dI+AxF3+/IisSn6zl0eW8N9b5GRkZi/vz5mD9/Pt5+++1y62uzZ88eKBQK9O7dW+99Y2Nj0bZtW0kvMQCcOnUKTk5O8PT01Lrfn3/+iZCQEJ3OkZiYqPVmAQCYNWsWpk+fjosXL8LW1hZeXl546aWXYGNjo3cPFpMbHSxZsgTbtm3De++9h+HDh6N+/foICQnB6dOntX4QyiOTyTQGTu3Zswc3btxAixYtVGX69iCMGjUKERER2LhxI65cuYImTZogNDRUtb2ycRubjY0NOnfujO3bt2PZsmWwtrYGACiVSmzatAlNmzbVGMRqSikpKVp7C0q6tEvrftWHjY0NOnTogJ07d2LZsmWq9ywnJwe7d+8uc19jvd/qfw9mZmZ6natXr174/vvvsXDhQo1ktYS3tzfS0tJw69YtVQ9VQUEB9u/fb5A2GPq1sba21qldlT2vPp85bd8fFT3/N998I/lx2bp1K4qKiir0A6oLXb8jKxOfrufQ5b01xOfp/fffx/z58/HOO+9UaKA/ACQnJ2PmzJmwt7fHSy+9pPf+p0+fVv2D5VGxsbFlJhcll6V0Ud73oqWlJfz9/QEUt2fLli2YPHmy6vdAV0xudNCoUSPMmTMHb731Fr799luMGTMGK1asQPfu3dGjRw+8/PLL8Pb2RnZ2Ni5duoRdu3aVOvESUHx308aNG9G6dWu0bdsWsbGxWLp0qUa3Z0m34ooVKzBu3DiYm5ujVatWsLW11Xrchg0bYtiwYdi4cSPu3buHmTNnalynrEzcjzp79qzG3VIA0Lx580qNpYiKikK/fv0QEhKCmTNnwsLCAqtXr8bZs2fx3XffVauemv79+6Np06YIDw9H69atoVQqER8fj48++ggNGjTA66+/bpDzLFiwAE8++ST69++P119/HQqFAkuXLkWDBg2QkZFR5r6Ger8fpe3vQZ9zffzxx+jevTs6d+6M2bNno0WLFrh16xZ++uknrFmzBra2thgxYgTee+89jBw5Em+++Sby8vLw6aef6nxHhi4M/dro0q7Knlefz1xp3x8VOf/27dtRr1499OvXT3U3Urt27fDss8+q6shkMvTq1UvnWcp///13rbMFDxw4UOfvSH3iU6fPOXR5byvzvn700Ud47733MGDAADz55JMa43O6dOmisU/Jd3BRURHS0tJw+PBhbNiwAXK5HDt27ND4Hi7v/bl27Rpu376tMdygqKgIf//9NyIiIkqN39bWVqdhCmU5e/Ystm3bhg4dOsDS0hJ///03PvzwQ7Rs2RLvv/++/gfUa/hxLVfWKPQHDx4IT09P0bJlS1FUVCSEECIxMVG88MILokmTJsLc3Fw0btxYdO3aVXzwwQcax3x0hPjdu3fFxIkThbOzs6hfv77o3r27OHz4sOjVq5fo1auX5Lxz5swR7u7uwszMTAAQBw8eLPW4Qgjxyy+/qEalX7hwQWs7dYm7vNeotMe6deuEEA/vYrh9+7bGMcraJoQQhw8fFn369BE2NjbC2tpadOnSRezatUuvY5QWt7Y7ltSPoetkX1u2bBHPPfecaNmypWjQoIEwNzcXnp6eYuzYsSIhIcGg596xY4d4/PHHhYWFhfD09BQffvihmDZtmmjUqFG5+1b0/db370GfcyUkJIhnnnlGODo6qto0fvx4yR0ae/fuFQEBAcLa2lo0a9ZMrFq1qsy7pSryWdMlXn3eK13apc/rpE7Xz1yJ0r4/dD1/SdtjY2NFeHi4aNCggbC1tRWjRo2STDyXnZ0tAIiRI0eWGf+jr1tpj8TERJ2/I3WN79Hzlrxf+nwPC6Hbe1vR97VXr15lviZlvX4WFhbC2dlZ9OrVSyxatEjrHV26vD87d+4UAMTff/8tKf/7778FALF9+/Yy21BZ58+fFz179hQODg7CwsJCtGjRQrzzzjsiJyenQseTCVHBYdVEZDKFhYUICAhAkyZN8Msvv5g6HKql5s+fj8jISNy+fbvUS20AsHfvXgwaNAh///13hQayGju+us5U748p8bIUUQ0wceJE9OvXD25ubkhNTcXnn3+Oc+fOYcWKFaYOjQgHDx7EyJEj68wPZ01TF98fJjdENUB2djZmzpyJ27dvw9zcHIGBgdi7d6/GLZtEprB06VJTh0BlqIvvT529LHXt2jWMHTsWaWlpqFevHt59910888wzpg6LiIiIKqnOJjcpKSm4desWAgICkJaWhsDAQJw/fx42NjamDo2IiIgqoc5elnJzc1PNF+Hs7AwHBwdkZGQwuSEiIqrhauzaUocOHUJ4eDjc3d0hk8mwc+dOjTqrV6+Gj48PrKysEBQUhMOHD2s91qlTp6BUKuHh4WHkqImIiMjYamzPTW5uLtq1a4cJEyZoXTBvy5YtmD59OlavXo1u3bphzZo1CAsLQ0JCgmQK6fT0dDz//PNYv369XudXKpW4efMmbG1tq9XEckRERNWdEALZ2dlwd3fXe1FMXU9Q4wEQO3bskJR16tRJTJkyRVLWunVrMXv2bNXzvLw80aNHD/HVV1+Ve468vDyRmZmpeiQkJOi8xDsffPDBBx988KH5uHbtmkHyAHU1tuemLAUFBYiNjcXs2bMl5aGhoYiJiQEACCEwfvx49OnTB2PHji33mFFRUYiMjNQov3btGuzs7AwTOBERUR2QlZUFDw+PUpcTqqxamdzcuXMHCoVCteBeCRcXF9VKykeOHMGWLVvQtm1b1Xidr7/+utRJjubMmSNZW6PkjbGzs2NyQ0REVAHGGtZRK5ObEuovmhBCVda9e3colUqdj2VpaamxgiwRERFVPzX2bqmyODk5QS6Xq3ppSqSlpWn05hAREVHtUiuTGwsLCwQFBeHAgQOS8gMHDqBr164mioqIiIiqQo29LJWTk4NLly6pnicmJiI+Ph4ODg7w9PREREQExo4diw4dOiA4OBhr165FcnIypkyZYsKoqa4RQqCoqAgKhcLUoRARVRm5XI569eqZbKqUGpvcnDp1CiEhIarnJYN9x40bh40bN2LEiBFIT0/HggULkJKSAn9/f+zduxdeXl6mCpnqmIKCAqSkpOD+/fumDoWIqMrVr18fbm5usLCwqPJz19m1pSorKysL9vb2yMzM5N1SpEGpVOLixYuQy+Vo3LgxLCwsONkjEdUJQggUFBTg9u3bUCgUaNmypcZEfcb+Da2xPTdE1VlBQYFqSY/69eubOhwioiplbW0Nc3NzXL16FQUFBbCysqrS89fKAcVE1YVRphUnIqoBTPn9x29eIiIiqlWY3BAREVGtwuSGiAwuKSkJMpkM8fHx1eI4RFS3MLkhIonx48dDJpNBJpOhXr168PT0xMsvv4y7d+8a/bxDhw6VlHl4eKimcjCmkvaqPzZv3mzU8xKRcfBuKaJqTqEUOJGYgbTsPDjbWqGTjwPkZsa9rXzAgAHYsGEDioqKkJCQgBdeeAH37t3Dd999Z9TzqpPL5XB1da2Sc23YsAEDBgyQlDVs2FBrXYVCAZlMpjFgsqCgoEJzelR0PyLSjj031YRCKXD0cjp+jL+Bo5fToVBy+iEC9p1NQffFv2PUumN4fXM8Rq07hu6Lf8e+sylGPa+lpSVcXV3RtGlThIaGYsSIEfjll18kdTZs2IA2bdrAysoKrVu3xurVq0s9nkKhwMSJE+Hj4wNra2u0atUKK1asUG2fP38+vvzyS/z444+qXpM//vhDcllKqVSiadOm+PzzzyXHjouLg0wmw5UrVwAAmZmZePHFF+Hs7Aw7Ozv06dMHf//9d7ltbtiwIVxdXSWPkttXN27ciIYNG2L37t3w8/ODpaUlrl69Cm9vb3zwwQcYP3487O3tMXnyZADAtm3b8Nhjj8HS0hLe3t746KOPJOcqbT8iMgz23FQD+86mIHJXAlIy81RlbvZWmBfuhwH+biaMjExp39kUvLwpDuppbmpmHl7eFIfoMYFV8vm4cuUK9u3bB3Nzc1XZunXrMG/ePKxatQrt27fH6dOnMXnyZNjY2GDcuHEaxyhJTLZu3QonJyfExMTgxRdfhJubG5599lnMnDkT586dQ1ZWFjZs2AAAcHBwwM2bN1XHMDMzw8iRI/HNN99IllH59ttvERwcjGbNmkEIgSeffBIODg7Yu3cv7O3tsWbNGvTt2xcXLlyAg4NDhV+H+/fvIyoqCuvXr4ejoyOcnZ0BAEuXLsW7776Ld955BwAQGxuLZ599FvPnz8eIESMQExODqVOnwtHREePHj1cdT30/IjIcJjcmVtoPWEoV/4BR9aJQCkTuStD4XACAACADELkrAf38XI1yiWr37t1o0KABFAoF8vKKk+6PP/5Ytf3999/HRx99hOHDhwMAfHx8kJCQgDVr1mhNbszNzREZGal67uPjg5iYGGzduhXPPvssGjRoAGtra+Tn55d5GWr06NH4+OOPcfXqVXh5eUGpVGLz5s14++23AQAHDx7EmTNnkJaWBktLSwDAsmXLsHPnTvzwww948cUXSz32qFGjIJfLJWX//PMPmjVrBgAoLCzE6tWr0a5dO0mdPn36YObMmZIY+/bti3fffRcA4Ovri4SEBCxdulSS3KjvR0SGw+TGhMr6AQOKf8SM+QNG1deJxAxJT546geIE+ERiBoKbOxr8/CEhIYiOjsb9+/exfv16XLhwAa+99hoA4Pbt27h27RomTpwouZxSVFQEe3v7Uo/5+eefY/369bh69SoePHiAgoICBAQE6BVX+/bt0bp1a3z33XeYPXs2/vzzT6SlpeHZZ58FUNxrkpOTA0dH6Wvy4MEDXL58ucxjf/LJJ3jiiSckZR4eHqr/t7CwQNu2bTX269Chg+T5uXPnMGTIEElZt27dsHz5cigUClUCpb4fERkOkxsTKu8HDDDuDxhVX2nZZX8u9K2nLxsbG7Ro0QIA8OmnnyIkJASRkZF4//33oVQqARRfmurcubNkP/WejxJbt27FjBkz8NFHHyE4OBi2trZYunQpjh8/rndso0ePxrfffovZs2fj22+/Rf/+/eHk5ASg+PKXm5sb/vjjD439ShscXMLV1VXVZm2sra21rg9mY2MjeS6E0KinbQk/9f2IyHCY3JhQauYDg9aj2sPZVrd1WHStV1nz5s1DWFgYXn75Zbi7u6NJkya4cuUKRo8erdP+hw8fRteuXTF16lRVmXpPioWFBRQKRbnHeu655/DOO+8gNjYWP/zwA6Kjo1XbAgMDkZqainr16sHb21u3xhmYn58f/vrrL0lZTEwMfH19S03+iMiweLeUCd3JKTBoPao9Ovk4wM3eCqVdjJSheNB5J5+KD5DVR+/evfHYY49h0aJFAIrvboqKisKKFStw4cIFnDlzBhs2bJCMy3lUixYtcOrUKezfvx8XLlzAu+++i5MnT0rqeHt7459//sH58+dx584dFBYWaj2Wj48PunbtiokTJ6KoqEhyCeiJJ55AcHAwhg4div379yMpKQkxMTF45513cOrUqTLbeO/ePaSmpkoeubm5+rxMAIA33ngDv/32G95//31cuHABX375JVatWsXxNURViMmNCd17oFvSoms9qj3kZjLMC/cDAI0Ep+T5vHC/Kh2LFRERgXXr1uHatWuYNGkS1q9fj40bN+Lxxx9Hr169sHHjRvj4+Gjdd8qUKRg+fDhGjBiBzp07Iz09XdKLAwCTJ09Gq1at0KFDBzRu3BhHjhwpNZbRo0fj77//xvDhw2Ftba0ql8lk2Lt3L3r27IkXXngBvr6+GDlyJJKSkuDi4lJm+yZMmAA3NzfJY+XKlXq8QsUCAwOxdetWbN68Gf7+/njvvfewYMECyWBiIjIumdB2MZjKlZWVBXt7e2RmZsLOzq5Cx1iy7xxW/3Gl3HpTezfDWwPaVOgcZBp5eXlITEyEj4+Paq6UiuA0AURUU5X1PWiI39CycMyNCTWqb2nQelT7DPB3Qz8/1yqfoZiIqCZjcmNCTra6JS261qPaSW4m491yRER64JgbE3K10+1yha71iIiIiMmNSZXcEVOWqrwjhoiIqDZgcmNCJXfEyKD9jhgZqv6OGCIiopqOyY2JDfB3Q/SYQLjaW8Ex9x7a3TwPAHC1t+K6UkRERBXAAcXVwAB/N/Rzs4Tc6eGgUYVCyR4bIiKiCmDPTTUhl5uV+ZyIiIh0w1/Q6qJhQ2DFCmmZlkX6iIiIqGxMbqqTadOAnTulZUxwqJqRyWTYqf45JaoEY32m5s+fj4CAAIMfl6o/JjfVzZAhwPHj0jImOFSFxo8fj6FDh5a6PSUlBWFhYVUXkJ5MmXxt3LgRDRs2LLeeQqFAVFQUWrduDWtrazg4OKBLly7YsGGD8YM0EW9vb8hkMsmjadOmAKSfqaSkJMhkMsTHx5d7zG3btqFz586wt7eHra0tHnvsMbzxxhvGbIZRbd++Hf3794eTk5POr0FhYSEWLFiA5s2bw8rKCu3atcO+ffs06t24cQNjxoyBo6Mj6tevj4CAAMTGxqq2q783JY+lS5eq6rz00kto3rw5rK2t0bhxYwwZMgT//fefQdpuaBxQXB116gRcvgw0b/6wTCYDuAwYVQOurq6mDgFCCCgUCtSrVzO/wubPn4+1a9di1apV6NChA7KysnDq1CncvXvX1KGhsLAQ5ubmRjn2ggULMHnyZNVzuVwOoGKfqV9//RUjR47EokWLMHjwYMhkMiQkJOC3334zWLxVLTc3F926dcMzzzwjeZ3K8s4772DTpk1Yt24dWrdujf3792PYsGGIiYlB+/btAQB3795Ft27dEBISgp9//hnOzs64fPmyJBFPSUmRHPfnn3/GxIkT8dRTT6nKgoKCMHr0aHh6eiIjIwPz589HaGgoEhMTVe9ltSGoQjIzMwUAkZmZabyTZGQIUZzSPHxQjfDgwQORkJAgHjx48LBQqRQiJ8c0D6VS59jHjRsnhgwZUup2AGLHjh1CCCESExMFALFt2zbRu3dvYW1tLdq2bStiYmIk+xw5ckT06NFDWFlZiaZNm4rXXntN5OTkqLZ//fXXIigoSDRo0EC4uLiIUaNGiVu3bqm2Hzx4UAAQ+/btE0FBQcLc3Fz8/vvv5canzRdffCFat24tLC0tRatWrcRnn30m2f7WW2+Jli1bCmtra+Hj4yPeeecdUVBQoNoeHx8vevfuLRo0aCBsbW1FYGCgOHnypCrGRx/z5s3TGkO7du3E/PnzS41RCCFycnLE2LFjhY2NjXB1dRXLli0TvXr1Eq+//nqZbbW3txcbNmzQuT3z5s0T7dq1E//73/+Ej4+PkMlkQqlUinv37onJkyeLxo0bC1tbWxESEiLi4+PLfR1K4+XlJT755BOt2x5th/pr2KtXL637vP7666J3796lnu/RtpVQKBQiMjJSNGnSRFhYWIh27dqJn3/+WbW95PP83XffieDgYGFpaSn8/PzEwYMHJcf9999/RVhYmLCxsRHOzs5izJgx4vbt22XGoo+SOE6fPl1uXTc3N7Fq1SpJ2ZAhQ8To0aNVz2fNmiW6d++uVwxDhgwRffr0KbPO33//LQCIS5cuad2u9Xvw/xn7N5SXpaqzRo2AvDxpGS9R1Vz37wMNGpjmcf++UZs2d+5czJw5E/Hx8fD19cWoUaNQVFQEADhz5gz69++P4cOH459//sGWLVvw119/4dVXX1XtX1BQgPfffx9///03du7cicTERIwfP17jPG+99RaioqJw7tw5tG3bVu84161bh7lz52LhwoU4d+4cFi1ahHfffRdffvmlqo6trS02btyIhIQErFixAuvWrcMnn3yi2j569Gg0bdoUJ0+eRGxsLGbPng1zc3N07doVy5cvh52dHVJSUpCSkoKZM2dqjcPV1RW///47bt++XWqsb775Jg4ePIgdO3bgl19+wR9//CG5jKCr8toDAJcuXcLWrVuxbds21aWQJ598Eqmpqdi7dy9iY2MRGBiIvn37IiMjo8zXobJOnDgBoLhnJiUlBdu3b9daz9XVFf/++y/Onj2r87FXrFiBjz76CMuWLcM///yD/v37Y/Dgwbh48aKk3ptvvok33ngDp0+fRteuXTF48GCkp6cDKO7h6NWrFwICAnDq1Cns27cPt27dwrPPPqvaf+PGjZBV0Xd1fn6+xorb1tbW+Ouvv1TPf/rpJ3To0AHPPPMMnJ2d0b59e6xbt67UY966dQt79uzBxIkTS62Tm5uLDRs2wMfHBx4eHpVviKEZJWWqA6qk56aEUqnZg6NQGP+8VGFa/8WSk6P5PlbV45FekvJUpOdm/fr1qu3//vuvACDOnTsnhBBi7Nix4sUXX5Qc4/Dhw8LMzEzrv+iEEOLEiRMCgMjOzhZCPOy52blzZ7nxPxqfOg8PD/Htt99Kyt5//30RHBxc6vGWLFkigoKCVM9tbW3Fxo0btdbdsGGDsLe3LzfGf//9V7Rp00aYmZmJxx9/XLz00kti7969qu3Z2dnCwsJCbN68WVWWnp4urK2t9e65Ka898+bNE+bm5iItLU1V9ttvvwk7OzuRl5cn2bd58+ZizZo1QoiyXwdtvLy8hIWFhbCxsVE9VqxYodEOXXstcnJyxMCBAwUA4eXlJUaMGCH+97//SWJW77lxd3cXCxculBynY8eOYurUqZJzf/jhh6rthYWFomnTpmLx4sVCCCHeffddERoaKjnGtWvXBABx/vx5IYQQ27dvF61atdL5tVGnT8/NqFGjhJ+fn7hw4YJQKBTil19+EdbW1sLCwkJVx9LSUlhaWoo5c+aIuLg48fnnnwsrKyvx5Zdfaj3m4sWLRaNGjbT+fX722WfCxsZGABCtW7cutddGCPbcUHm0jbeRyzV7dah6q18fyMkxzaN+faM27dFeFDe34lm109LSAACxsbHYuHEjGjRooHr0798fSqUSiYmJAIDTp09jyJAh8PLygq2tLXr37g0ASE5OlpynQ4cOFY7x9u3buHbtGiZOnCiJ5YMPPsDly5dV9X744Qd0794drq6uaNCgAd59911JHBEREZg0aRKeeOIJfPjhh5J9deXn54ezZ8/i2LFjmDBhAm7duoXw8HBMmjQJAHD58mUUFBQgODhYtY+DgwNatWql97nKaw8AeHl5oXHjxqrnsbGxyMnJgaOjo+S1SkxMVLW3Iq/Dm2++ifj4eNXj+eef17s9JWxsbLBnzx5cunQJ77zzDho0aIA33ngDnTp1wn0tPZVZWVm4efMmunXrJinv1q0bzp07Jyl79HWvV68eOnTooKoTGxuLgwcPSl6X1q1bA4DqNRg2bFiZA22/+eYbyf6HDx+u2IuA4t6oli1bonXr1rCwsMCrr76KCRMmSMbAKJVKBAYGYtGiRWjfvj1eeuklTJ48GdHR0VqP+cUXX2D06NEaPUJAcY/d6dOn8eeff6Jly5Z49tlnkVcNf4tq5mi8ukoI6WUpa2vgzh3A0bH0faj6kMkAGxtTR2EUj16OKOmOVyqVqv++9NJLmDZtmsZ+np6eyM3NRWhoKEJDQ7Fp0yY0btwYycnJ6N+/PwoKCiT1bSrx+pXEs27dOnTu3FmyreSH4NixYxg5ciQiIyPRv39/2NvbY/Pmzfjoo49UdefPn4/nnnsOe/bswc8//4x58+Zh8+bNGDZsmF7xmJmZoWPHjujYsSNmzJiBTZs2YezYsZg7dy6EjjcPyGQyjbqFhYWq/9elPYDm66pUKuHm5oY//vhD45wlg1Ar8jo4OTmhRYsWOrVNV82bN0fz5s0xadIkzJ07F76+vtiyZQsmTJigtb765SIhhE6XkB79XIeHh2Px4sUadUoS+/IMHjxY8hls0qSJTvtp07hxY+zcuRN5eXlIT0+Hu7s7Zs+eDR8fH0lcfn5+kv3atGmDbdu2aRzv8OHDOH/+PLZs2aL1fPb29rC3t0fLli3RpUsXNGrUCDt27MCoUaMq3AZjYHJT06gnOE5OwKVL0juriKqRwMBA/Pvvv6X+qJ05cwZ37tzBhx9+qLp2f+rUKYPH4eLigiZNmuDKlSsYPXq01jpHjhyBl5cX5s6dqyq7evWqRj1fX1/4+vpixowZGDVqFDZs2IBhw4bBwsICCoWiQvGV/Pjk5uaiRYsWMDc3x7Fjx+Dp6Qmg+I6XCxcuoFevXqp9GjduLLnL5eLFi5JeC13boy4wMBCpqamoV68evL29S61X2utQGRYWFgBQodfR29sb9evXR25ursY2Ozs7uLu746+//kLPnj1V5TExMejUqZOk7rFjx1R1ioqKEBsbqxojFhgYiG3btsHb27vCd+vZ2trC1ta2QvuWxsrKCk2aNEFhYSG2bdsmGQPUrVs3nD9/XlL/woUL8PLy0jjO//73PwQFBaFdu3Y6nVcIgfz8/MoFbwRMbmoi9QSnRQvg6FGgSxfTxUS1SmZmpsYcGw4ODqofWn3MmjULXbp0wSuvvILJkyfDxsYG586dw4EDB7By5Up4enrCwsICK1euxJQpU3D27Fm8//77lYo/MTFRI/4WLVpg/vz5mDZtGuzs7BAWFob8/HzVLdgRERFo0aIFkpOTsXnzZnTs2BF79uzBjh07VMd48OAB3nzzTTz99NPw8fHB9evXcfLkSdXtst7e3sjJycFvv/2Gdu3aoX79+qiv5ZLg008/jW7duqFr165wdXVFYmIi5syZA19fX7Ru3Rr16tXDxIkT8eabb8LR0REuLi6YO3cuzMykIwn69OmDVatWoUuXLlAqlZg1a5akF6289pTmiSeeQHBwMIYOHYrFixejVatWuHnzJvbu3YuhQ4fiscceK/N1qAxnZ2dYW1tj3759aNq0KaysrGBvb69Rb/78+bh//z4GDhwILy8v3Lt3D59++ikKCwvRr18/rcd+8803MW/ePDRv3hwBAQHYsGED4uPj8c0330jqffbZZ2jZsiXatGmDTz75BHfv3sULL7wAAHjllVewbt06jBo1Cm+++SacnJxw6dIlbN68GevWrYNcLseOHTswZ84cveeAycjIQHJyMm7evAkAqoTE1dVVdbv8888/jyZNmiAqKgoAcPz4cdy4cQMBAQG4ceMG5s+fD6VSibfeekt13BkzZqBr165YtGgRnn32WZw4cQJr167F2rVrJefPysrC999/r9GzBwBXrlzBli1bEBoaisaNG+PGjRtYvHgxrK2tMXDgQL3aWSWMMpKnDqjSAcWlUR80un276WIhibIG0lV348aN07gdF4AYN26cEKL8wZ93794VACS3z544cUL069dPNGjQQNjY2Ii2bdtKBnZ+++23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", + "image/png": "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", "text/plain": [ "
" ] @@ -284,7 +284,7 @@ "ax.scatter(1/c_errors, errors,label='Relative Error')\n", "ax.plot(1/c_errors, 10**bf[1] * (c_errors**bf[0]), color='r', label = 'Linear Least Squares Fit Slope: -1.9673')\n", "ax.set_xlabel(\"Parameter $|x_1|/\\overline{x}$\")\n", - "ax.set_ylabel(\"Relative Error (eq. 73)\")\n", + "ax.set_ylabel(\"Relative Error (eq. 75)\")\n", "ax.set_title(\"Relative Error in Single Recurrence Step, Laplace 2D, $n=9$\")\n", "ax.legend()\n", "fig.savefig(\"../../S_on_surface_convergence.pgf\", bbox_inches='tight', pad_inches=0)" diff --git a/test/plotting copy.py b/test/plotting copy.py index c5f91a901..9fa8ffb7b 100644 --- a/test/plotting copy.py +++ b/test/plotting copy.py @@ -251,8 +251,8 @@ def create_plot(relerr_on, ax, str_title, acbar=True): def create_suite_plot(relerr_on, relerr_off, relerr_comb, str_title): fig, (ax1,ax2,ax3) = plt.subplots(1, 3, figsize=(15, 8)) cs = create_plot(relerr_on, ax1, "Laplace 2D (eq. 107)", False) - cs = create_plot(relerr_off, ax2, "Helmholtz 2D (eq. 105)", False) - cs = create_plot(relerr_comb, ax3, "Biharmonic 2D (eq. 107)", False) + cs = create_plot(relerr_off, ax2, "Helmholtz 2D (eq. 107)", False) + cs = create_plot(relerr_comb, ax3, "Biharmonic 2D (eq. 109)", False) n_levels = 3