diff --git a/qml/compound.py b/qml/compound.py index f090dc45f..47eabfc93 100644 --- a/qml/compound.py +++ b/qml/compound.py @@ -214,7 +214,7 @@ def generate_atomic_coulomb_matrix(self, size = 23, sorting = "row-norm", sorting = sorting, central_cutoff = central_cutoff, central_decay = central_decay, interaction_cutoff = interaction_cutoff, interaction_decay = interaction_decay) - def generate_bob(self, asize = {"O":3, "C":7, "N":3, "H":16, "S":1}): + def generate_bob(self, size=23, asize = {"O":3, "C":7, "N":3, "H":16, "S":1}): """ Creates a Bag of Bonds (BOB) representation of a molecule. The representation expands on the coulomb matrix representation. For each element a bag (vector) is constructed for self interactions diff --git a/qml/representations.py b/qml/representations.py index 847f03f2e..c523cdaad 100644 --- a/qml/representations.py +++ b/qml/representations.py @@ -30,7 +30,6 @@ from .frepresentations import fgenerate_local_coulomb_matrix from .frepresentations import fgenerate_atomic_coulomb_matrix from .frepresentations import fgenerate_eigenvalue_coulomb_matrix -from .frepresentations import fgenerate_bob from .data import NUCLEAR_CHARGE @@ -38,6 +37,34 @@ from .slatm import get_sbop from .slatm import get_sbot +def vector_to_matrix(v): + """ Converts a representation from 1D vector to 2D square matrix. + :param v: 1D input representation. + :type v: numpy array + :return: Square matrix representation. + :rtype: numpy array + """ + + if not (np.sqrt(8*v.shape[0]+1) == int(np.sqrt(8*v.shape[0]+1))): + print("ERROR: Can not make a square matrix.") + exit(1) + + n = v.shape[0] + l = (-1 + int(np.sqrt(8*n+1)))//2 + M = np.empty((l,l)) + + index = 0 + for i in range(l): + for j in range(l): + if j > i: + continue + + M[i,j] = v[index] + M[j,i] = M[i,j] + + index += 1 + return M + def generate_coulomb_matrix(nuclear_charges, coordinates, size = 23, sorting = "row-norm"): """ Creates a Coulomb Matrix representation of a molecule. Sorting of the elements can either be done by ``sorting="row-norm"`` or ``sorting="unsorted"``. @@ -234,7 +261,7 @@ def generate_eigenvalue_coulomb_matrix(nuclear_charges, coordinates, size = 23): return fgenerate_eigenvalue_coulomb_matrix(nuclear_charges, coordinates, size) -def generate_bob(nuclear_charges, coordinates, atomtypes, asize = {"O":3, "C":7, "N":3, "H":16, "S":1}): +def generate_bob(nuclear_charges, coordinates, atomtypes, size=23, asize = {"O":3, "C":7, "N":3, "H":16, "S":1}): """ Creates a Bag of Bonds (BOB) representation of a molecule. The representation expands on the coulomb matrix representation. For each element a bag (vector) is constructed for self interactions @@ -259,12 +286,45 @@ def generate_bob(nuclear_charges, coordinates, atomtypes, asize = {"O":3, "C":7, :type nuclear_charges: numpy array :param coordinates: 3D Coordinates of the atoms in the molecule :type coordinates: numpy array + :param size: The maximum number of atoms in the representation + :type size: integer :param asize: The maximum number of atoms of each element type supported by the representation - :type size: dictionary + :type asize: dictionary :return: 1D representation :rtype: numpy array """ + natoms = len(nuclear_charges) + + coulomb_matrix = fgenerate_unsorted_coulomb_matrix(nuclear_charges, coordinates, size) + + coulomb_matrix = vector_to_matrix(coulomb_matrix) + descriptor = [] + atomtypes = np.asarray(atomtypes) + for atom1, size1 in sorted(asize.items()): + pos1 = np.where(atomtypes == atom1)[0] + feature_vector = np.zeros(size1) + feature_vector[:pos1.size] = np.diag(coulomb_matrix)[pos1] + feature_vector.sort() + descriptor.append(feature_vector[:]) + for atom2, size2 in sorted(asize.items()): + if atom1 > atom2: + continue + if atom1 == atom2: + size = size1*(size1-1)//2 + feature_vector = np.zeros(size) + sub_matrix = coulomb_matrix[np.ix_(pos1,pos1)] + feature_vector[:pos1.size*(pos1.size-1)//2] = sub_matrix[np.triu_indices(pos1.size, 1)] + feature_vector.sort() + descriptor.append(feature_vector[:]) + else: + pos2 = np.where(atomtypes == atom2)[0] + feature_vector = np.zeros(size1*size2) + feature_vector[:pos1.size*pos2.size] = coulomb_matrix[np.ix_(pos1,pos2)].ravel() + feature_vector.sort() + descriptor.append(feature_vector[:]) + + return np.concatenate(descriptor) n = 0 atoms = sorted(asize, key=asize.get) diff --git a/tests/data/bob_representation.txt b/tests/data/bob_representation.txt index a4295c3f6..1b6c1a73d 100644 --- a/tests/data/bob_representation.txt +++ b/tests/data/bob_representation.txt @@ -1,10 +1,10 @@ -5.335870740e+01 2.891324554e+01 2.860411814e+01 1.673430312e+01 1.169060008e+01 6.897160798e+00 3.258699443e+00 3.255349477e+00 3.188528189e+00 1.521012544e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.995966014e+01 2.511206775e+01 2.424936051e+01 1.427918118e+01 1.366188799e+01 9.969697908e+00 5.637511841e+00 5.533053579e+00 5.532623450e+00 5.527366810e+00 2.943089252e+00 2.942393479e+00 2.812455021e+00 2.726698757e+00 2.707358522e+00 2.702681793e+00 2.647942984e+00 2.372709692e+00 2.223803549e+00 1.848316642e+00 1.777833378e+00 1.746055878e+00 1.693565472e+00 1.621906031e+00 1.315668882e+00 1.298061291e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.449651526e-01 4.288729698e-01 3.966161716e-01 3.428869943e-01 3.411579295e-01 3.222724572e-01 2.341504421e-01 2.340773167e-01 2.257310666e-01 1.791368035e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 2.885833934e+01 1.716235230e+01 1.101360917e+01 8.431361939e+00 6.915703942e+00 6.908241792e+00 3.377836204e+00 3.255282541e+00 2.643193806e+00 2.602190427e+00 1.708220572e+00 1.700827533e+00 1.363400420e+00 1.359985153e+00 1.183798921e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.373490412e+01 2.369290312e+01 2.368341986e+01 1.420472134e+01 1.419101561e+01 9.246881859e+00 5.492091032e+00 5.486821782e+00 5.485890853e+00 5.477770330e+00 5.477002625e+00 5.473275933e+00 5.473027517e+00 5.462995863e+00 5.440582063e+00 2.940817076e+00 2.931913520e+00 2.809309457e+00 2.802122072e+00 2.798736824e+00 2.798099257e+00 2.795454145e+00 2.792838072e+00 2.791373268e+00 2.790638166e+00 2.790105488e+00 2.779851404e+00 2.767373772e+00 2.766948854e+00 2.760468495e+00 2.236827703e+00 2.186511104e+00 2.173979252e+00 2.171803230e+00 2.170591168e+00 2.163170442e+00 2.161020325e+00 2.142352754e+00 2.141606081e+00 1.798584593e+00 1.720696448e+00 1.462806991e+00 1.441096668e+00 1.433432576e+00 1.423765686e+00 1.423202636e+00 1.312578500e+00 1.275439171e+00 1.171353173e+00 1.025335826e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 6.150417045e-01 5.711322364e-01 5.700727998e-01 5.680565479e-01 5.671052406e-01 5.665588630e-01 5.664867470e-01 4.223668082e-01 4.081345070e-01 4.078490303e-01 4.042037323e-01 4.011029147e-01 4.009457248e-01 4.009004581e-01 3.996629596e-01 3.994912352e-01 3.988449442e-01 3.980933915e-01 3.978211383e-01 3.974443836e-01 3.922928682e-01 3.879924533e-01 3.852476406e-01 3.418854826e-01 3.348967272e-01 3.283658807e-01 3.281635592e-01 3.275673509e-01 3.268463539e-01 3.266925345e-01 3.259565160e-01 3.259526972e-01 3.226024691e-01 3.204779451e-01 3.189475789e-01 2.791823944e-01 2.758927363e-01 2.656317635e-01 2.644669811e-01 2.323208119e-01 2.277200370e-01 2.271195029e-01 2.167195675e-01 2.114918813e-01 2.113707929e-01 2.107341035e-01 2.104428587e-01 2.066585194e-01 2.052957014e-01 1.972258622e-01 1.872826245e-01 1.653971893e-01 1.649774982e-01 1.639863676e-01 1.487137596e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 3.654249078e+01 1.611087814e+01 1.211631699e+01 9.286119575e+00 2.246595730e+00 2.230979355e+00 1.949050267e+00 1.442679963e+00 1.312350251e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.721806061e+01 2.469766570e+01 2.396398922e+01 1.463036422e+01 1.444975269e+01 1.017682713e+01 5.538833259e+00 5.527900592e+00 5.524151422e+00 5.488514769e+00 5.472762002e+00 2.898971066e+00 2.879287180e+00 2.865792192e+00 2.857608545e+00 2.848460215e+00 2.797087127e+00 2.795153558e+00 2.720287125e+00 2.288969047e+00 2.185836546e+00 2.160500303e+00 1.890055534e+00 1.723631387e+00 1.559078476e+00 1.355205968e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.676522447e-01 5.406491577e-01 4.140645238e-01 4.108289096e-01 3.864878217e-01 3.256789162e-01 3.231121618e-01 2.891047916e-01 2.700854504e-01 2.444396260e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 3.657907202e+01 1.610108919e+01 1.214011531e+01 9.520032751e+00 2.239874875e+00 2.239869416e+00 1.310946202e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.006817860e+01 2.473052924e+01 2.464987137e+01 1.479315082e+01 1.356995830e+01 1.028372219e+01 5.635137843e+00 5.478085799e+00 5.478077795e+00 2.882082141e+00 2.882071704e+00 2.854984059e+00 2.854980514e+00 2.652496782e+00 1.876582205e+00 1.876577239e+00 1.613916085e+00 1.332323520e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.689541531e-01 2.370200737e-01 2.370189577e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 2.881618686e+01 1.734450509e+01 1.196553978e+01 8.790189461e+00 6.916088447e+00 6.912344698e+00 3.387388099e+00 3.242199943e+00 2.576794580e+00 1.845088009e+00 1.438286138e+00 1.336910257e+00 1.252395567e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.711617809e+01 2.415830598e+01 2.412420821e+01 1.441394802e+01 1.437875807e+01 9.236567977e+00 5.509779978e+00 5.504457313e+00 5.496553637e+00 5.480659031e+00 5.480000970e+00 5.470452170e+00 5.448687838e+00 2.940474096e+00 2.928702310e+00 2.885300234e+00 2.864537966e+00 2.828301890e+00 2.825244172e+00 2.798755468e+00 2.798429815e+00 2.797143029e+00 2.734070759e+00 2.723751584e+00 2.303098157e+00 2.258326476e+00 2.243839945e+00 2.217971102e+00 2.186744580e+00 1.885617517e+00 1.865109921e+00 1.859218790e+00 1.813123778e+00 1.715122721e+00 1.465152143e+00 1.446331604e+00 1.374366872e+00 1.336612144e+00 1.327876103e+00 1.324843607e+00 1.279423751e+00 1.051184269e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 6.126708949e-01 5.698116722e-01 5.671118985e-01 5.648279453e-01 5.645313044e-01 4.267286901e-01 4.261341992e-01 4.101104651e-01 4.080010586e-01 4.038825774e-01 3.924258856e-01 3.899593884e-01 3.890506204e-01 3.425244930e-01 3.281241405e-01 3.275263447e-01 3.247608811e-01 3.226826609e-01 2.911164036e-01 2.852448621e-01 2.847491505e-01 2.741914581e-01 2.703190535e-01 2.222578672e-01 2.175417550e-01 2.172455303e-01 2.165842795e-01 2.157131488e-01 2.061136200e-01 2.025224375e-01 2.018683639e-01 1.894352382e-01 1.787832151e-01 1.711247454e-01 1.620641170e-01 1.547201186e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 3.643693238e+01 1.632210846e+01 1.204822683e+01 8.520908912e+00 2.191461975e+00 2.021850070e+00 1.318464787e+00 1.318464172e+00 1.247857254e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.698672930e+01 2.534020032e+01 2.411957237e+01 1.489917430e+01 1.440821615e+01 9.440782912e+00 5.524074418e+00 5.523066094e+00 5.508274143e+00 5.487669700e+00 5.487667783e+00 2.887540198e+00 2.837429180e+00 2.812495430e+00 2.798206081e+00 2.798205527e+00 2.795887243e+00 2.703825568e+00 2.291189899e+00 2.177168917e+00 2.113076919e+00 2.113072659e+00 1.772704004e+00 1.433513973e+00 1.433512822e+00 1.315348049e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.682605904e-01 5.666563557e-01 5.666562705e-01 4.166142732e-01 3.526736704e-01 3.526722615e-01 3.393213263e-01 3.393207201e-01 3.267706372e-01 2.630211243e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 2.875778654e+01 1.709035386e+01 1.409483127e+01 1.188599364e+01 6.915030427e+00 6.912064460e+00 3.369034501e+00 3.261364166e+00 2.567714258e+00 2.145976013e+00 1.830643756e+00 1.748148121e+00 1.576871475e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.710598116e+01 2.407214065e+01 2.395328838e+01 1.457592323e+01 1.454336146e+01 1.413803117e+01 5.531491941e+00 5.530909862e+00 5.502418522e+00 5.493525173e+00 5.481467658e+00 5.474044031e+00 5.432686984e+00 2.941204113e+00 2.929258628e+00 2.846411297e+00 2.845058445e+00 2.828632187e+00 2.823322714e+00 2.799990490e+00 2.792336979e+00 2.791027631e+00 2.349179605e+00 2.299426279e+00 2.222068568e+00 2.208047524e+00 2.176052864e+00 2.173071497e+00 2.151010011e+00 2.099125789e+00 2.091759109e+00 1.941326197e+00 1.890656716e+00 1.864288904e+00 1.802123349e+00 1.734493742e+00 1.728999382e+00 1.728420775e+00 1.723052893e+00 1.519847487e+00 1.496201670e+00 1.389693005e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 6.168166141e-01 5.672322430e-01 5.670439100e-01 5.660388786e-01 5.642108745e-01 5.405038175e-01 4.315093383e-01 4.312348086e-01 4.285543831e-01 4.185307517e-01 4.162173585e-01 4.039229025e-01 3.726950717e-01 3.535610695e-01 3.418692121e-01 2.999417604e-01 2.986369228e-01 2.900745921e-01 2.847235146e-01 2.748620049e-01 2.708029602e-01 2.697565465e-01 2.634525199e-01 2.630165249e-01 2.625989787e-01 2.620602728e-01 2.487864555e-01 2.440330774e-01 2.436204320e-01 2.415498464e-01 2.343287545e-01 2.262128000e-01 2.220286910e-01 2.087432454e-01 2.004005930e-01 1.888475498e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 3.645870585e+01 1.625230393e+01 1.217446218e+01 1.201261461e+01 2.027020851e+00 1.941998939e+00 1.941996249e+00 1.559723905e+00 1.558865438e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.702114538e+01 2.512931953e+01 2.403896424e+01 1.509023875e+01 1.447956900e+01 1.435562978e+01 5.543136529e+00 5.536635230e+00 5.505390479e+00 5.490309022e+00 5.490307201e+00 2.855656136e+00 2.841973062e+00 2.806764302e+00 2.799021036e+00 2.799020642e+00 2.290619726e+00 2.275133222e+00 2.181338317e+00 2.165162899e+00 2.165159922e+00 1.863249822e+00 1.863248599e+00 1.774315049e+00 1.760453736e+00 1.717222243e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.686904547e-01 5.631885777e-01 5.631883439e-01 5.387983417e-01 4.125040136e-01 2.848960272e-01 2.848956922e-01 2.690321314e-01 2.420826929e-01 2.420826293e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 2.886476493e+01 1.703033176e+01 1.406892077e+01 1.106264913e+01 6.919396533e+00 6.909489189e+00 3.376386639e+00 3.261139531e+00 2.673842787e+00 2.636935763e+00 2.034582631e+00 1.773270117e+00 1.718072354e+00 1.688339809e+00 1.515090521e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.366916601e+01 2.366363340e+01 2.360797888e+01 1.439309505e+01 1.432679031e+01 1.429497007e+01 5.501131295e+00 5.490902351e+00 5.488982937e+00 5.487276738e+00 5.479450906e+00 5.478187038e+00 5.472068786e+00 5.455774578e+00 5.444202121e+00 2.939293472e+00 2.931793933e+00 2.820339880e+00 2.810436031e+00 2.807862119e+00 2.800209173e+00 2.794420157e+00 2.775681705e+00 2.771940648e+00 2.770533993e+00 2.765063276e+00 2.764641229e+00 2.755444644e+00 2.283132580e+00 2.208602023e+00 2.200652434e+00 2.183354912e+00 2.181390316e+00 2.180686963e+00 2.180040015e+00 2.166487339e+00 2.152739684e+00 2.152574770e+00 2.151804834e+00 2.129538154e+00 1.791496659e+00 1.745941688e+00 1.735921310e+00 1.733381616e+00 1.731944286e+00 1.727719196e+00 1.727412067e+00 1.555063455e+00 1.468472912e+00 1.321382521e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 6.148707828e-01 5.675964675e-01 5.669000035e-01 5.660549116e-01 5.659149803e-01 5.658297459e-01 5.657505766e-01 5.633617246e-01 4.287565601e-01 4.139177621e-01 4.137442882e-01 4.056907213e-01 4.028927909e-01 4.028624965e-01 4.012987294e-01 3.992706726e-01 3.991141689e-01 3.974017349e-01 3.894574344e-01 3.885958798e-01 3.879042866e-01 3.833797689e-01 3.420500510e-01 3.380362250e-01 3.345293622e-01 3.297986590e-01 3.289656570e-01 3.274089856e-01 3.272299918e-01 3.263725997e-01 3.155216769e-01 3.146581318e-01 2.889477828e-01 2.767525954e-01 2.738057454e-01 2.670038877e-01 2.658518135e-01 2.654827754e-01 2.653305740e-01 2.653172642e-01 2.650905592e-01 2.645151357e-01 2.644696356e-01 2.429830696e-01 2.419401323e-01 2.370013868e-01 2.362472742e-01 2.328394575e-01 2.317457571e-01 2.149393676e-01 2.118462506e-01 2.106046807e-01 2.076831449e-01 2.051558368e-01 1.833370971e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 -5.335870740e+01 2.868229910e+01 1.743356380e+01 1.743334091e+01 1.687265956e+01 6.900025431e+00 6.900024378e+00 2.654399211e+00 2.654121735e+00 2.611882715e+00 2.611669327e+00 2.537496261e+00 2.537344571e+00 2.074815128e+00 2.074794635e+00 2.034602713e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 3.685810520e+01 3.685810520e+01 3.685810520e+01 3.685810520e+01 2.362842559e+01 2.362824559e+01 2.351509098e+01 1.442612012e+01 1.440921272e+01 1.440915214e+01 5.496127669e+00 5.496112637e+00 5.492109330e+00 5.492079977e+00 5.484847407e+00 5.484102525e+00 5.484100205e+00 5.482564647e+00 5.482559129e+00 2.930981407e+00 2.930954704e+00 2.776889616e+00 2.776841501e+00 2.766691588e+00 2.766684586e+00 2.765339334e+00 2.765325651e+00 2.761253496e+00 2.761212638e+00 2.744093314e+00 2.287860183e+00 2.287079705e+00 2.230165216e+00 2.229553402e+00 2.197039346e+00 2.196898578e+00 2.187200176e+00 2.187011881e+00 2.185615180e+00 2.185556908e+00 2.179908004e+00 2.179721385e+00 2.171432567e+00 2.171236953e+00 2.167870956e+00 2.167769346e+00 1.814147752e+00 1.814134921e+00 1.737002966e+00 1.736991011e+00 1.736205971e+00 1.736196984e+00 1.735440175e+00 1.735435105e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 5.000000000e-01 6.148739925e-01 5.660870502e-01 5.660852919e-01 5.654595960e-01 5.654556696e-01 5.652195285e-01 5.652068703e-01 5.650008677e-01 5.630839835e-01 5.630755745e-01 4.069151576e-01 4.067977263e-01 3.982059508e-01 3.942028091e-01 3.941087468e-01 3.928962809e-01 3.928697289e-01 3.904935668e-01 3.904744783e-01 3.873641325e-01 3.383202479e-01 3.381331935e-01 3.277203000e-01 3.275701889e-01 3.239990997e-01 3.239434999e-01 3.221647068e-01 3.220941554e-01 3.201762152e-01 3.201197138e-01 2.792358765e-01 2.792217237e-01 2.768934980e-01 2.768731865e-01 2.752084326e-01 2.751642859e-01 2.706516508e-01 2.706180502e-01 2.678055395e-01 2.678038176e-01 2.666687113e-01 2.666631082e-01 2.663466130e-01 2.663377916e-01 2.663211056e-01 2.663144041e-01 2.652024258e-01 2.652019557e-01 2.650371135e-01 2.650319128e-01 2.397059426e-01 2.397058516e-01 2.324496353e-01 2.324493706e-01 2.322444905e-01 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 0.000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.969697907942917325e+00 1.366188799310283386e+01 1.427918117723973879e+01 2.424936050891895079e+01 2.511206775131770641e+01 2.995966014058674887e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.298061290684915159e+00 1.315668882418437491e+00 1.621906030709594493e+00 1.693565471971339331e+00 1.746055877863468275e+00 1.777833378247232643e+00 1.848316642257707310e+00 2.223803549164635740e+00 2.372709692157604078e+00 2.647942983540595652e+00 2.702681792781549408e+00 2.707358522098395781e+00 2.726698756738231033e+00 2.812455021026717183e+00 2.942393479287514602e+00 2.943089251823001185e+00 5.527366809522357372e+00 5.532623450160545353e+00 5.533053579384503706e+00 5.637511841421128267e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.169060008371055481e+01 1.673430311887644706e+01 2.860411814140517350e+01 2.891324553738325065e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.791368035211995668e-01 2.257310666289701340e-01 2.340773166879126232e-01 2.341504421373626910e-01 3.222724572238635510e-01 3.411579294987314714e-01 3.428869942828467465e-01 3.966161716113630331e-01 4.288729698328881956e-01 5.449651525972785127e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.521012544246396647e+00 3.188528189359564280e+00 3.255349477265079283e+00 3.258699442581929784e+00 6.897160797711135771e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.246881859188910369e+00 1.419101560695722775e+01 1.420472133795687064e+01 2.368341985622581802e+01 2.369290312135188614e+01 2.373490412077803313e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.025335826128383365e+00 1.171353173071784992e+00 1.275439171225311474e+00 1.312578500147684402e+00 1.423202635967500296e+00 1.423765685501647171e+00 1.433432576468268271e+00 1.441096668408687664e+00 1.462806991479652430e+00 1.720696447729448630e+00 1.798584593386663322e+00 2.141606081472312351e+00 2.142352753618946171e+00 2.161020324764523881e+00 2.163170441758541784e+00 2.170591167757682349e+00 2.171803230216792890e+00 2.173979251755859377e+00 2.186511104096668934e+00 2.236827703223860819e+00 2.760468495354053697e+00 2.766948854216927600e+00 2.767373772029088741e+00 2.779851404012767979e+00 2.790105488432474967e+00 2.790638165780583435e+00 2.791373267935128855e+00 2.792838071639559328e+00 2.795454144614623715e+00 2.798099257362552716e+00 2.798736823560474818e+00 2.802122072152128052e+00 2.809309456920508374e+00 2.931913519803573287e+00 2.940817075684057258e+00 5.440582062877517444e+00 5.462995863468575131e+00 5.473027516973537843e+00 5.473275933438940477e+00 5.477002625123505553e+00 5.477770330030632628e+00 5.485890852945781049e+00 5.486821781699704026e+00 5.492091032221533276e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.431361939101380543e+00 1.101360916928768852e+01 1.716235229904089010e+01 2.885833934275106927e+01 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.487137596402573481e-01 1.639863676224649902e-01 1.649774981555978126e-01 1.653971893356222800e-01 1.872826245481787610e-01 1.972258621609064844e-01 2.052957014103070077e-01 2.066585194470565989e-01 2.104428587134883066e-01 2.107341034984154537e-01 2.113707928607326259e-01 2.114918812537239790e-01 2.167195674856003118e-01 2.271195028887401657e-01 2.277200369506353905e-01 2.323208118700079150e-01 2.644669811152937644e-01 2.656317635018095036e-01 2.758927363471219141e-01 2.791823943847011602e-01 3.189475789072680478e-01 3.204779450511515693e-01 3.226024690613976675e-01 3.259526971908703885e-01 3.259565159963651593e-01 3.266925344562982558e-01 3.268463538755491116e-01 3.275673509365328306e-01 3.281635591801406737e-01 3.283658806626454374e-01 3.348967271960132663e-01 3.418854826247331169e-01 3.852476405936742787e-01 3.879924533074741166e-01 3.922928682027420066e-01 3.974443836479104597e-01 3.978211383189061978e-01 3.980933914550606745e-01 3.988449441693375785e-01 3.994912352190524985e-01 3.996629596255604211e-01 4.009004580728334211e-01 4.009457247926989099e-01 4.011029147303992182e-01 4.042037322508535979e-01 4.078490303106250825e-01 4.081345070320695489e-01 4.223668082464388518e-01 5.664867469865572103e-01 5.665588629527661402e-01 5.671052406355430175e-01 5.680565479248699257e-01 5.700727998432807420e-01 5.711322364217508163e-01 6.150417044745450923e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.183798921251075997e+00 1.359985153031443961e+00 1.363400419506853423e+00 1.700827533074368736e+00 1.708220571706068114e+00 2.602190427097875958e+00 2.643193805712095834e+00 3.255282541399863838e+00 3.377836204342020476e+00 6.908241792422670002e+00 6.915703942191801623e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.017682712671263801e+01 1.444975269019319875e+01 1.463036422206314846e+01 2.396398921906239465e+01 2.469766569670601086e+01 2.721806061179052705e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.355205967545133339e+00 1.559078476371612565e+00 1.723631387362749345e+00 1.890055534198556764e+00 2.160500303443751324e+00 2.185836546314756212e+00 2.288969047281740998e+00 2.720287125129781991e+00 2.795153558258602899e+00 2.797087126827455084e+00 2.848460214759259479e+00 2.857608544792127336e+00 2.865792191819164003e+00 2.879287179849455036e+00 2.898971065714650575e+00 5.472762002187951502e+00 5.488514768607003269e+00 5.524151422438590586e+00 5.527900591702620936e+00 5.538833259039920520e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.286119575305843199e+00 1.211631698956695224e+01 1.611087813811460379e+01 3.654249078124718864e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.444396259779075264e-01 2.700854504499173303e-01 2.891047915733418461e-01 3.231121618091773451e-01 3.256789162484269862e-01 3.864878216513224496e-01 4.108289095952489256e-01 4.140645238466374445e-01 5.406491576605140237e-01 5.676522447112893888e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.312350251108471255e+00 1.442679962533798266e+00 1.949050266717916591e+00 2.230979354937099313e+00 2.246595729745381576e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.028372218694379470e+01 1.356995830261610436e+01 1.479315082273813786e+01 2.464987136581564897e+01 2.473052923715422935e+01 3.006817860203434378e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.332323520421294871e+00 1.613916084749274393e+00 1.876577239103683903e+00 1.876582204860106184e+00 2.652496782254561758e+00 2.854980514375642819e+00 2.854984059140733166e+00 2.882071704206580876e+00 2.882082141124259422e+00 5.478077795188720955e+00 5.478085798693652642e+00 5.635137842728535240e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.520032750503995445e+00 1.214011531352524997e+01 1.610108919087144486e+01 3.657907201804655273e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.370189576771976336e-01 2.370200737198141228e-01 5.689541531222631621e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.310946201910274445e+00 2.239869415864454982e+00 2.239874874511273983e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.236567977402467378e+00 1.437875806630580122e+01 1.441394801665087932e+01 2.412420820891230733e+01 2.415830598347436364e+01 2.711617809068749807e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.051184269428321993e+00 1.279423751165145173e+00 1.324843607297056636e+00 1.327876103224488347e+00 1.336612143781393591e+00 1.374366872446448173e+00 1.446331603653971953e+00 1.465152142525099510e+00 1.715122721497843949e+00 1.813123777721606489e+00 1.859218790284873579e+00 1.865109920794737031e+00 1.885617517310601343e+00 2.186744580367010471e+00 2.217971102039207665e+00 2.243839944638729822e+00 2.258326475906125008e+00 2.303098156628093029e+00 2.723751584297222639e+00 2.734070759290380792e+00 2.797143029135763292e+00 2.798429814520754899e+00 2.798755467786261608e+00 2.825244171796796877e+00 2.828301890284720788e+00 2.864537966239205868e+00 2.885300233632484446e+00 2.928702310366977812e+00 2.940474095619912909e+00 5.448687838338065248e+00 5.470452169950210219e+00 5.480000970076786437e+00 5.480659031213647836e+00 5.496553637482422872e+00 5.504457312537991420e+00 5.509779978302260517e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.790189461358487222e+00 1.196553978256979356e+01 1.734450508765027266e+01 2.881618685706852645e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.547201186160245823e-01 1.620641170023277844e-01 1.711247453564788412e-01 1.787832150509424400e-01 1.894352382131105350e-01 2.018683639220681947e-01 2.025224374710619946e-01 2.061136200211775571e-01 2.157131487759961219e-01 2.165842794547039596e-01 2.172455303059284137e-01 2.175417550261053989e-01 2.222578672024169144e-01 2.703190534799461697e-01 2.741914580776534938e-01 2.847491505330665418e-01 2.852448620612692554e-01 2.911164035567984643e-01 3.226826608541408792e-01 3.247608811153452901e-01 3.275263446581665461e-01 3.281241404731107814e-01 3.425244929960140072e-01 3.890506203675758723e-01 3.899593883707103692e-01 3.924258856017160402e-01 4.038825774182914219e-01 4.080010585622377839e-01 4.101104650711023258e-01 4.261341991953467301e-01 4.267286900788089810e-01 5.645313044010348280e-01 5.648279452807656309e-01 5.671118985149852243e-01 5.698116721789037165e-01 6.126708949280543770e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.252395567401573873e+00 1.336910257078612219e+00 1.438286137674832599e+00 1.845088008512860700e+00 2.576794579876635183e+00 3.242199942639799382e+00 3.387388099025789856e+00 6.912344697502186719e+00 6.916088447240952952e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 9.440782911921242970e+00 1.440821614505241399e+01 1.489917430385489894e+01 2.411957236588169096e+01 2.534020031673710704e+01 2.698672930099202105e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.315348049402595088e+00 1.433512821906147261e+00 1.433513973254496365e+00 1.772704003895689828e+00 2.113072658783052837e+00 2.113076918612976751e+00 2.177168916600783266e+00 2.291189899139134845e+00 2.703825567771338978e+00 2.795887243245092968e+00 2.798205526837122648e+00 2.798206081474669205e+00 2.812495429748456122e+00 2.837429179851647554e+00 2.887540197570590106e+00 5.487667782690255791e+00 5.487669699504601262e+00 5.508274143090229558e+00 5.523066094349871946e+00 5.524074418299815825e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 8.520908912157331372e+00 1.204822682714989490e+01 1.632210846187083320e+01 3.643693238373057142e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.630211242719362463e-01 3.267706371730216275e-01 3.393207201389656369e-01 3.393213263202200514e-01 3.526722614596010663e-01 3.526736704481416296e-01 4.166142732438293250e-01 5.666562705149891244e-01 5.666563556868193796e-01 5.682605904349525838e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.247857253932194155e+00 1.318464172146357916e+00 1.318464786836913927e+00 2.021850069945541062e+00 2.191461974934068913e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.413803116545844141e+01 1.454336146056564338e+01 1.457592322528230788e+01 2.395328838319224474e+01 2.407214065121583602e+01 2.710598115500839000e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.389693004544685140e+00 1.496201669896068731e+00 1.519847486574869677e+00 1.723052893262435159e+00 1.728420774961105355e+00 1.728999381845690797e+00 1.734493741547768142e+00 1.802123349320791990e+00 1.864288903557538957e+00 1.890656715776233510e+00 1.941326196541214744e+00 2.091759109214714751e+00 2.099125789298358136e+00 2.151010011011080802e+00 2.173071497228526994e+00 2.176052864083761307e+00 2.208047523785382271e+00 2.222068568056073445e+00 2.299426278800651424e+00 2.349179605058749232e+00 2.791027630880521304e+00 2.792336979154906196e+00 2.799990489760893375e+00 2.823322714321915505e+00 2.828632186979993524e+00 2.845058444849848378e+00 2.846411297447939859e+00 2.929258627897855849e+00 2.941204112659138836e+00 5.432686983629250399e+00 5.474044030758443036e+00 5.481467658322618952e+00 5.493525172549997393e+00 5.502418521765332748e+00 5.530909861588964915e+00 5.531491941273505297e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.188599363945388987e+01 1.409483127179881734e+01 1.709035385798202000e+01 2.875778654021398140e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.888475498194686075e-01 2.004005929722544599e-01 2.087432454341938137e-01 2.220286910320887208e-01 2.262128000492742153e-01 2.343287544850380377e-01 2.415498463545568408e-01 2.436204319777592053e-01 2.440330774244995060e-01 2.487864554837674602e-01 2.620602727657660447e-01 2.625989787300764822e-01 2.630165248925256383e-01 2.634525198814912095e-01 2.697565465344929359e-01 2.708029601975834866e-01 2.748620049255315889e-01 2.847235146080346890e-01 2.900745921460477494e-01 2.986369228098946782e-01 2.999417603983393632e-01 3.418692121438032250e-01 3.535610695458523134e-01 3.726950716992535884e-01 4.039229025098048376e-01 4.162173584915869196e-01 4.185307516975574904e-01 4.285543830920942043e-01 4.312348086463249630e-01 4.315093383323135301e-01 5.405038174704939191e-01 5.642108744839264833e-01 5.660388785656794708e-01 5.670439099703020736e-01 5.672322430256995229e-01 6.168166141060464902e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.576871474525890937e+00 1.748148120650459436e+00 1.830643756113123244e+00 2.145976013117533387e+00 2.567714258396921689e+00 3.261364166098486894e+00 3.369034500571018498e+00 6.912064459959997187e+00 6.915030427185717699e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.435562977868230838e+01 1.447956899788326801e+01 1.509023875008327664e+01 2.403896424242703844e+01 2.512931952898728838e+01 2.702114538313761116e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.717222243101477863e+00 1.760453736232017841e+00 1.774315048822386665e+00 1.863248599271258410e+00 1.863249821743817591e+00 2.165159921717705771e+00 2.165162898875954145e+00 2.181338317305428376e+00 2.275133222129015031e+00 2.290619726108685583e+00 2.799020641888553040e+00 2.799021035962951043e+00 2.806764302486008056e+00 2.841973061620167051e+00 2.855656135720027411e+00 5.490307201408159976e+00 5.490309022226953495e+00 5.505390479163043693e+00 5.536635229619627729e+00 5.543136528654430073e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.201261460572314554e+01 1.217446218141495962e+01 1.625230393185820787e+01 3.645870584515075308e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.420826292560262771e-01 2.420826929253317716e-01 2.690321314281722276e-01 2.848956922178740858e-01 2.848960272062395216e-01 4.125040136489359077e-01 5.387983416805401937e-01 5.631883438784864859e-01 5.631885776983921454e-01 5.686904546562109308e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.558865438198910436e+00 1.559723904999066324e+00 1.941996249311726874e+00 1.941998939132982382e+00 2.027020850690631537e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.429497007329550229e+01 1.432679030547772037e+01 1.439309504675525986e+01 2.360797887590366528e+01 2.366363339629545592e+01 2.366916600879178745e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.321382521042906211e+00 1.468472912353531390e+00 1.555063454568688108e+00 1.727412067195360112e+00 1.727719196240219857e+00 1.731944286242909747e+00 1.733381615785938967e+00 1.735921309701983661e+00 1.745941687874751569e+00 1.791496658933002140e+00 2.129538153867815975e+00 2.151804833607609879e+00 2.152574769671063315e+00 2.152739683542973292e+00 2.166487338598565682e+00 2.180040015078712035e+00 2.180686963319530491e+00 2.181390315990567874e+00 2.183354911585611458e+00 2.200652433772930738e+00 2.208602022677250698e+00 2.283132580327973837e+00 2.755444643666496329e+00 2.764641228516529825e+00 2.765063276047115881e+00 2.770533992754715680e+00 2.771940647730734675e+00 2.775681704506099301e+00 2.794420156730305305e+00 2.800209172501002985e+00 2.807862119360919451e+00 2.810436031000719481e+00 2.820339880032302293e+00 2.931793932898483668e+00 2.939293472405362984e+00 5.444202121163761454e+00 5.455774577900871058e+00 5.472068785853684503e+00 5.478187038288514721e+00 5.479450906498877671e+00 5.487276737756242362e+00 5.488982937401841511e+00 5.490902351032758588e+00 5.501131294617860767e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.106264912922595478e+01 1.406892076625259769e+01 1.703033176025500239e+01 2.886476493144730782e+01 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.833370970665752220e-01 2.051558368139823341e-01 2.076831449131305574e-01 2.106046807351540373e-01 2.118462505591525991e-01 2.149393676038163781e-01 2.317457571034504393e-01 2.328394575226695740e-01 2.362472742415431814e-01 2.370013867914427252e-01 2.419401323164004358e-01 2.429830695693927234e-01 2.644696355743351712e-01 2.645151357446868801e-01 2.650905592016698509e-01 2.653172641982394775e-01 2.653305739991802525e-01 2.654827754375325699e-01 2.658518134853068982e-01 2.670038877262110866e-01 2.738057454072525543e-01 2.767525954410938738e-01 2.889477828259194858e-01 3.146581318195072474e-01 3.155216768725498389e-01 3.263725997348552177e-01 3.272299918261334373e-01 3.274089855859088072e-01 3.289656570257372126e-01 3.297986590480985192e-01 3.345293621867975742e-01 3.380362249966557542e-01 3.420500510072222999e-01 3.833797688684872917e-01 3.879042865887987190e-01 3.885958797746608129e-01 3.894574344455816739e-01 3.974017349110137154e-01 3.991141688677501409e-01 3.992706726261402439e-01 4.012987293835338920e-01 4.028624965036086136e-01 4.028927909314477529e-01 4.056907213147319391e-01 4.137442882409827494e-01 4.139177621480433222e-01 4.287565600708986846e-01 5.633617246303478376e-01 5.657505766486001786e-01 5.658297459023932108e-01 5.659149802578428146e-01 5.660549115982683732e-01 5.669000035257819592e-01 5.675964674743679828e-01 6.148707828372251827e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.515090521000611812e+00 1.688339809237829892e+00 1.718072354497752974e+00 1.773270117349946329e+00 2.034582630610488163e+00 2.636935763453534420e+00 2.673842786847841158e+00 3.261139531283961279e+00 3.376386638915045424e+00 6.909489189093149797e+00 6.919396533175612873e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 +0.000000000000000000e+00 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 3.685810519942594254e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.440915214224028063e+01 1.440921272300805711e+01 1.442612012414011247e+01 2.351509097512136393e+01 2.362824558676643250e+01 2.362842558854110564e+01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.735435104987962163e+00 1.735440174907207922e+00 1.736196984468998394e+00 1.736205970962227063e+00 1.736991010647010780e+00 1.737002966372503288e+00 1.814134920774638005e+00 1.814147751567602329e+00 2.167769345743832510e+00 2.167870955818036016e+00 2.171236952852095392e+00 2.171432566939218489e+00 2.179721385007761025e+00 2.179908004286803092e+00 2.185556907991382580e+00 2.185615180225084941e+00 2.187011880647907969e+00 2.187200176497702486e+00 2.196898577877767877e+00 2.197039346408735661e+00 2.229553401775311805e+00 2.230165215575647064e+00 2.287079705370205218e+00 2.287860183288727089e+00 2.744093314031041064e+00 2.761212637616362819e+00 2.761253495929795410e+00 2.765325651446763011e+00 2.765339334241218250e+00 2.766684585753935277e+00 2.766691588404611934e+00 2.776841501272397927e+00 2.776889615644250853e+00 2.930954704229616237e+00 2.930981406652412247e+00 5.482559129072503090e+00 5.482564646916355144e+00 5.484100205148066287e+00 5.484102525126949068e+00 5.484847407063934810e+00 5.492079977416873149e+00 5.492109329805200169e+00 5.496112637108810262e+00 5.496127668598279392e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.687265955691841768e+01 1.743334091464399549e+01 1.743356379802489542e+01 2.868229910005951311e+01 0.000000000000000000e+00 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 5.000000000000000000e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.322444904585418135e-01 2.324493705565197077e-01 2.324496353049896324e-01 2.397058515726157024e-01 2.397059426433736928e-01 2.650319128002153746e-01 2.650371135297985292e-01 2.652019556971764169e-01 2.652024257662559670e-01 2.663144041324305711e-01 2.663211056096147500e-01 2.663377915887057412e-01 2.663466129623950907e-01 2.666631082312750367e-01 2.666687112995756448e-01 2.678038176016490080e-01 2.678055395135617300e-01 2.706180502234096785e-01 2.706516507635112756e-01 2.751642859386325690e-01 2.752084325867710235e-01 2.768731865167280426e-01 2.768934979807213814e-01 2.792217237404116537e-01 2.792358764936464510e-01 3.201197138235723494e-01 3.201762152425091101e-01 3.220941553663582146e-01 3.221647067875024750e-01 3.239434999182342900e-01 3.239990997412872664e-01 3.275701888843216558e-01 3.277203000089131679e-01 3.381331935366326813e-01 3.383202479132169649e-01 3.873641325064449137e-01 3.904744782853522000e-01 3.904935668328470277e-01 3.928697289174161167e-01 3.928962809278300772e-01 3.941087467650739584e-01 3.942028090573220234e-01 3.982059507523436070e-01 4.067977262984743270e-01 4.069151575648581320e-01 5.630755744993095613e-01 5.630839834732450644e-01 5.650008677332171159e-01 5.652068703223800394e-01 5.652195285055866547e-01 5.654556696102714941e-01 5.654595960405839339e-01 5.660852919496990321e-01 5.660870501644060804e-01 6.148739924945529900e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 2.034602712623911902e+00 2.074794635064533654e+00 2.074815128433345812e+00 2.537344571146981309e+00 2.537496260738517861e+00 2.611669327269180219e+00 2.611882714847575393e+00 2.654121735209837851e+00 2.654399211429983030e+00 6.900024378067942443e+00 6.900025431363004280e+00 0.000000000000000000e+00 5.335870739982809852e+01 0.000000000000000000e+00 diff --git a/tests/test_energy_krr_bob.py b/tests/test_energy_krr_bob.py new file mode 100644 index 000000000..74d1851e4 --- /dev/null +++ b/tests/test_energy_krr_bob.py @@ -0,0 +1,117 @@ +# MIT License +# +# Copyright (c) 2017 Anders Steen Christensen +# +# 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 __future__ import print_function + +import os +import numpy as np +import qml +from qml.kernels import laplacian_kernel +from qml.math import cho_solve + +from qml.representations import get_slatm_mbtypes + + +def get_energies(filename): + """ Returns a dictionary with heats of formation for each xyz-file. + """ + + f = open(filename, "r") + lines = f.readlines() + f.close() + + energies = dict() + + for line in lines: + tokens = line.split() + + xyz_name = tokens[0] + hof = float(tokens[1]) + + energies[xyz_name] = hof + + return energies + +def test_krr_bob(): + + test_dir = os.path.dirname(os.path.realpath(__file__)) + + # Parse file containing PBE0/def2-TZVP heats of formation and xyz filenames + data = get_energies(test_dir + "/data/hof_qm7.txt") + + # Generate a list of qml.Compound() objects + mols = [] + + for xyz_file in sorted(data.keys())[:1000]: + + # Initialize the qml.Compound() objects + mol = qml.Compound(xyz=test_dir + "/qm7/" + xyz_file) + + # Associate a property (heat of formation) with the object + mol.properties = data[xyz_file] + + # This is a Molecular Coulomb matrix sorted by row norm + mol.generate_bob() + + mols.append(mol) + + # Shuffle molecules + np.random.seed(666) + np.random.shuffle(mols) + + # Make training and test sets + n_test = 300 + n_train = 700 + + training = mols[:n_train] + test = mols[-n_test:] + + # List of representations + X = np.array([mol.representation for mol in training]) + Xs = np.array([mol.representation for mol in test]) + + # List of properties + Y = np.array([mol.properties for mol in training]) + Ys = np.array([mol.properties for mol in test]) + + # Set hyper-parameters + sigma = 26214.40 + llambda = 1e-10 + + # Generate training Kernel + K = laplacian_kernel(X, X, sigma) + + # Solve alpha + K[np.diag_indices_from(K)] += llambda + alpha = cho_solve(K,Y) + + # Calculate prediction kernel + Ks = laplacian_kernel(X, Xs, sigma) + Yss = np.dot(Ks.transpose(), alpha) + + mae = np.mean(np.abs(Ys - Yss)) + print(mae) + assert mae < 2.6, "ERROR: Too high MAE!" + +if __name__ == "__main__": + + test_krr_bob() diff --git a/tests/test_energy_krr_cmat.py b/tests/test_energy_krr_cmat.py index ccda8b290..aabd4dd8c 100644 --- a/tests/test_energy_krr_cmat.py +++ b/tests/test_energy_krr_cmat.py @@ -109,4 +109,9 @@ def test_krr_cmat(): Yss = np.dot(Ks.transpose(), alpha) mae = np.mean(np.abs(Ys - Yss)) - print(mae) + + assert mae < 6.0, "ERROR: Too high MAE!" + +if __name__ == "__main__": + + test_krr_cmat() diff --git a/tests/test_representations.py b/tests/test_representations.py index b008ad4b2..b70e30908 100644 --- a/tests/test_representations.py +++ b/tests/test_representations.py @@ -69,7 +69,7 @@ def test_representations(): coulomb_matrix(mols, size, path) atomic_coulomb_matrix(mols, size, path) eigenvalue_coulomb_matrix(mols, size, path) - bob(mols, asize, path) + bob(mols, size, asize, path) def coulomb_matrix(mols, size, path): @@ -167,11 +167,10 @@ def eigenvalue_coulomb_matrix(mols, size, path): X_ref = np.loadtxt(path + "/data/eigenvalue_coulomb_matrix_representation.txt") assert np.allclose(X_test, X_ref), "Error in eigenvalue coulomb matrix representation" -def bob(mols, asize, path): +def bob(mols, size, asize, path): - # Generate coulomb matrix representation, sorted by row-norm for i, mol in enumerate(mols): - mol.generate_bob(asize) + mol.generate_bob(size=size, asize=asize) X_test = np.asarray([mol.representation for mol in mols]) X_ref = np.loadtxt(path + "/data/bob_representation.txt")