From: El Hadi Moussi Date: Thu, 8 Aug 2024 15:51:47 +0000 (+0200) Subject: Add build to AreasBuilder and replace compute by build X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=b8e9628040326716d86300a1ca0b012263ab256d;p=tools%2Fmedcoupling.git Add build to AreasBuilder and replace compute by build --- diff --git a/src/ShapeRecogn/AreasBuilder.cxx b/src/ShapeRecogn/AreasBuilder.cxx index 42c6a3faa..947a54ed0 100644 --- a/src/ShapeRecogn/AreasBuilder.cxx +++ b/src/ShapeRecogn/AreasBuilder.cxx @@ -12,6 +12,13 @@ AreasBuilder::AreasBuilder(const Nodes *nodes) : nodes(nodes), areas(new Areas(n threshold = std::max(THRESHOLD_MIN_NB_NODES, nbNodes / THRESHOLD_MAX_NB_AREAS); } +void AreasBuilder::build() +{ + explore(); + expand(); + rebuild(); +} + void AreasBuilder::explore() { exploreAreas(); diff --git a/src/ShapeRecogn/AreasBuilder.hxx b/src/ShapeRecogn/AreasBuilder.hxx index 470a6baa2..9742af648 100644 --- a/src/ShapeRecogn/AreasBuilder.hxx +++ b/src/ShapeRecogn/AreasBuilder.hxx @@ -30,13 +30,14 @@ namespace MEDCoupling public: AreasBuilder(const Nodes *nodes); - void explore(); - void expand(); - void rebuild(); + void build(); Areas *getAreas() const; private: + void explore(); + void expand(); + void rebuild(); void exploreAreas(); void expandAreas(); void expandAreasByType(PrimitiveType primitive); diff --git a/src/ShapeRecogn/NodesBuilder.cxx b/src/ShapeRecogn/NodesBuilder.cxx index 1d261f27a..95183cbae 100644 --- a/src/ShapeRecogn/NodesBuilder.cxx +++ b/src/ShapeRecogn/NodesBuilder.cxx @@ -11,7 +11,7 @@ NodesBuilder::NodesBuilder( { } -Nodes *NodesBuilder::compute() +Nodes *NodesBuilder::build() { DataArrayInt64 *neighbors; DataArrayInt64 *neighborsIdx; diff --git a/src/ShapeRecogn/NodesBuilder.hxx b/src/ShapeRecogn/NodesBuilder.hxx index dde6312bd..bfe137685 100644 --- a/src/ShapeRecogn/NodesBuilder.hxx +++ b/src/ShapeRecogn/NodesBuilder.hxx @@ -35,7 +35,7 @@ namespace MEDCoupling public: NodesBuilder(const MEDCouplingUMesh *); - Nodes *compute(); + Nodes *build(); private: void computeNormals(); diff --git a/src/ShapeRecogn/ShapeRecognMesh.cxx b/src/ShapeRecogn/ShapeRecognMesh.cxx index b70ee9539..08c9a5618 100644 --- a/src/ShapeRecogn/ShapeRecognMesh.cxx +++ b/src/ShapeRecogn/ShapeRecognMesh.cxx @@ -26,11 +26,9 @@ void ShapeRecognMesh::recognize() { mesh->incrRef(); NodesBuilder nodesBuilder(mesh); - nodes = nodesBuilder.compute(); + nodes = nodesBuilder.build(); AreasBuilder areasBuilder(nodes); - areasBuilder.explore(); - areasBuilder.expand(); - areasBuilder.rebuild(); + areasBuilder.build(); areas = areasBuilder.getAreas(); } diff --git a/test_compute_torus.py b/test_compute_torus.py new file mode 100644 index 000000000..9953c6d7d --- /dev/null +++ b/test_compute_torus.py @@ -0,0 +1,2033 @@ +import numpy as np +import scipy as sp +import scipy.linalg + + +def compute_PCA(X, n_components=1): + X_meaned = X - np.mean(X, axis=0) + cov_mat = np.cov(X_meaned, rowvar=False) + eigen_values, eigen_vectors = np.linalg.eigh(cov_mat) + # sort the eigenvalues in descending order + sorted_index = np.argsort(eigen_values)[::-1] + sorted_eigenvalue = eigen_values[sorted_index] + # similarly sort the eigenvectors + sorted_eigenvectors = eigen_vectors[:, sorted_index] + eigenvector_subset = sorted_eigenvectors[:, 0:n_components] + return eigenvector_subset.T + + +def fitPlane3D(points): + pca = compute_PCA(points, n_components=3) + normal = pca[2] + affine_point = np.mean(points @ normal) + return normal, affine_point + + +def fitCircle2D(points, pp, bb): + A = np.ones((points.shape[0], 3)) + B = np.zeros((points.shape[0])) + A[:, 0] = points[:, 0] + A[:, 1] = points[:, 1] + B = points[:, 0] ** 2 + points[:, 1] ** 2 + print(np.abs(B - bb).max()) + fit, residual, rnk, s = np.linalg.lstsq(A, B, rcond=None) + print(fit, residual, rnk, s) + a, b, c = fit + xc = a / 2 + yc = b / 2 + r = np.sqrt(4 * c + a**2 + b**2) / 2 + return np.array([xc, yc]), r + + +def gram_schmidt(v1, v2): + u1 = v1 / np.linalg.norm(v1) # Normalisation de v1 + u2 = v2 - np.dot(u1, v2) * u1 # Projection de v2 sur u1 + u2 = u2 / np.linalg.norm(u2) # Normalisation de u2 + return u1, u2 + + +def get_normal_plane_vectors(v): + # Normalisation du vecteur v + v_normalized = v / np.linalg.norm(v) + # Construction d'une matrice à partir du vecteur normalisé + v_matrix = np.array([v_normalized]) + # Calcul de l'espace nul de la matrice + null_space_matrix = sp.linalg.null_space(v_matrix) + # Sélection de deux vecteurs indépendants de l'espace nul + u1 = null_space_matrix[:, 0] + u2 = null_space_matrix[:, 1] + v1, v2 = gram_schmidt(u1, u2) + if np.cross(v1, v2) @ v < 0: # les vecteurs doivent former une base directe + v1 = -v1 + return v1, v2 + + +def compute_parameters_torus(k1, k2, coords, normals, mm, pp, bb): + var_1 = np.var(k1) + var_2 = np.var(k2) + if var_1 > var_2: + minor_curv = np.mean(k2) + else: + minor_curv = np.mean(k1) + minor_radius = 1 / minor_curv + major_radius_points = coords - normals * minor_radius + P_mean = np.mean(major_radius_points, axis=0) + major_radius_points = major_radius_points - P_mean + print(np.abs(major_radius_points - mm).max()) + normal, affine_point = fitPlane3D(major_radius_points) + u, v = get_normal_plane_vectors(normal) + p_matrix = np.array([u, v]).T + p_major_radius_points = major_radius_points @ p_matrix + print(np.abs(p_major_radius_points - pp).max()) + centre_2D, major_radius = fitCircle2D(p_major_radius_points, pp, bb) + centre = centre_2D[0] * u + centre_2D[1] * v + P_mean + parameters = {} + parameters.update( + { + "minor_radius": minor_radius, + "major_radius": major_radius, + "centre": centre, + } + ) + print(parameters) + + +def main(): + compute_parameters_torus( + np.array(K1), + np.array(K2), + np.array(COORDS), + np.array(NORMALS), + np.array(MM), + np.array(PP), + np.array(BB), + ) + + +BB = [ + 1.29988, + 1.32834, + 1.31073, + 1.30217, + 1.3004, + 1.32802, + 1.40886, + 1.38819, + 1.15329, + 1.33224, + 1.29239, + 1.23342, + 1.30238, + 1.36314, + 1.32608, + 1.25758, + 1.16688, + 1.13991, + 1.23348, + 1.18219, + 1.2203, + 1.25984, + 1.31467, + 1.29754, + 1.32701, + 1.37341, + 1.3835, + 1.39346, + 1.36699, + 1.38513, + 1.39164, + 1.37848, + 1.33759, + 1.40887, + 1.34163, + 1.33346, + 1.38385, + 1.22564, + 1.23029, + 1.30197, + 1.28674, + 1.368, + 1.3454, + 1.34928, + 1.30838, + 1.27381, + 1.24746, + 1.22588, + 1.21466, + 1.18031, + 1.08016, + 1.18529, + 1.23115, + 1.2101, + 1.22234, + 1.21161, + 1.18967, + 1.20307, + 1.23042, + 1.24136, + 1.25018, + 1.22214, + 1.268, + 1.33643, + 1.29568, + 1.28693, + 1.25032, + 1.01616, + 1.28119, + 1.24947, + 1.21533, + 1.24026, + 1.20846, + 1.26105, + 1.24038, + 1.27136, + 1.29468, + 1.28342, + 1.28925, + 1.29826, + 1.28555, + 1.29329, + 1.22736, + 1.2337, + 1.30764, + 1.32819, + 1.37281, + 1.40958, + 1.42911, + 1.42011, + 1.41975, + 1.38649, + 1.33099, + 1.28097, + 1.24976, + 1.2287, + 1.22615, + 1.21312, + 1.15805, + 1.10605, + 1.21257, + 1.28317, + 1.2835, + 1.26095, + 1.19331, + 1.27272, + 1.27796, + 1.27132, + 1.34219, + 1.37059, + 1.40964, + 1.44505, + 1.43081, + 1.40872, + 1.36834, + 1.30892, + 1.2686, + 1.26305, + 1.30879, + 1.27939, + 1.28073, + 1.31929, + 1.2598, + 1.22048, + 1.21601, + 1.1966, + 1.20778, + 1.1939, + 1.21448, + 1.23422, + 1.26638, + 1.23913, + 1.17684, + 1.23806, + 1.24665, + 1.24903, + 1.09784, + 1.22823, + 1.22897, + 1.2352, + 1.25402, + 1.21612, + 1.17462, + 1.10981, + 1.21096, + 1.2808, + 1.31638, + 1.37202, + 1.37594, + 1.39594, + 1.45298, + 1.38753, + 1.36049, + 1.36021, + 1.33335, + 1.33825, + 1.40989, + 1.43406, + 1.37539, + 1.40051, + 1.42711, + 1.41021, + 1.38393, + 1.40263, + 1.43309, + 1.36506, + 1.39896, + 1.3855, + 1.35028, + 1.37377, + 1.34695, + 1.35958, + 1.2953, + 1.31097, + 1.35788, + 1.31656, + 1.37928, + 1.28303, + 1.29909, + 1.26879, + 1.2514, + 1.25047, + 1.22388, + 1.23911, + 1.2314, + 1.22712, + 1.23376, + 1.21774, + 1.18743, + 1.19656, + 1.22343, + 1.24818, + 1.23516, + 1.23684, + 1.24645, + 1.27108, + 1.30362, + 1.34807, + 1.28548, + 1.39272, + 1.41669, + 1.37402, + 1.24369, + 1.33271, + 1.38335, + 1.28888, + 1.38451, + 1.37468, + 1.3168, + 1.20807, + 1.29194, + 1.3191, + 1.32651, + 1.31312, + 1.35904, + 1.3144, + 1.36248, + 1.43151, + 1.44124, + 1.36247, + 1.36509, + 1.39602, + 1.37578, + 1.36368, + 1.32171, + 1.29417, + 1.26564, + 1.28197, + 1.26516, + 1.22019, + 1.2104, + 1.18011, + 1.13635, + 1.18086, + 1.20877, + 1.20591, + 1.21808, + 1.21509, + 1.26505, + 1.30837, + 1.35343, + 1.3891, + 1.40041, + 1.31966, + 1.1857, + 1.21441, + 1.35452, + 1.31039, + 1.30165, + 1.34868, + 1.3405, + 1.30601, + 1.42104, + 1.41801, + 1.46154, + 1.38631, + 1.14847, + 1.37646, + 1.30515, + 1.32861, + 1.37463, + 1.3204, + 1.25174, + 1.25007, + 1.25577, + 1.23818, + 1.29151, + 1.28852, + 1.28247, + 1.33274, + 1.25059, + 1.27221, +] + + +MM = [ + [1.05218, 0.439126, 0.0275596], + [1.04785, 0.479983, 0.0294504], + [1.12058, 0.234585, -0.00338201], + [1.14104, 0.0127689, -0.0230176], + [1.10571, -0.278786, -0.0472263], + [1.07081, -0.425854, -0.0136113], + [0.973353, -0.679294, -0.00261489], + [0.640175, -0.98912, -0.00373311], + [0.422407, -0.987409, 0.0715977], + [-0.11622, -1.14838, 0.0373057], + [-0.550639, -0.994583, 0.0282317], + [-0.895716, -0.656575, 0.040941], + [-1.05574, -0.433309, 0.0359594], + [-1.01146, -0.583157, 0.0247077], + [-1.15094, 0.0372052, 0.0163754], + [-1.01934, 0.467392, 0.0344462], + [-0.83607, 0.683944, 0.0474789], + [-0.388598, 0.994402, 0.0386861], + [-0.376419, 1.04489, -0.00144792], + [-0.543529, 0.941692, -0.00744857], + [-0.842668, 0.714298, -0.00428732], + [-1.05887, 0.372359, -0.00547966], + [-1.13206, 0.181956, -0.0015887], + [-1.13864, -0.0321948, -0.00396496], + [-1.12858, -0.230919, -0.0113774], + [-1.00934, -0.595529, -0.00810085], + [-0.718267, -0.931445, -0.0117962], + [-0.385443, -1.11574, -0.0123723], + [-0.0539776, -1.16793, -0.0202157], + [0.105231, -1.17218, -0.0408898], + [0.410452, -1.10595, -0.0270756], + [0.606503, -1.00526, -0.0440616], + [0.785018, -0.849263, -0.0435556], + [0.78877, -0.886978, 0.00841919], + [0.871132, -0.763444, 0.0422807], + [0.95679, -0.646559, 0.0131272], + [0.866666, -0.795453, 0.00141778], + [0.847868, -0.711831, -0.0310192], + [0.479959, -0.999919, -0.0550382], + [-0.00704338, -1.14099, -0.0486256], + [-0.545948, -0.994314, -0.0562787], + [-0.729652, -0.914116, -0.0411991], + [-1.09297, -0.388389, -0.0242567], + [-1.14937, -0.168063, -0.0071695], + [-1.09596, 0.327538, -0.00916765], + [-0.825938, 0.769174, 0.00684957], + [-0.413614, 1.03749, 0.000622491], + [-0.312815, 1.06207, 0.0267459], + [0.268776, 1.06883, 0.0292164], + [0.392152, 1.01317, 0.0337524], + [0.415459, 0.952647, 0.0341705], + [0.220656, 1.06612, -0.00531312], + [0.477553, 1.00155, -0.00656638], + [0.704037, 0.845239, -0.0170485], + [0.669049, 0.880179, -0.0321375], + [0.421781, 1.01673, -0.0435539], + [0.130592, 1.0829, -0.0535263], + [-0.158514, 1.08535, -0.0333546], + [-0.383671, 1.0408, -0.0291968], + [-0.592747, 0.943422, -0.0185954], + [-0.782805, 0.798408, -0.030715], + [-0.933645, 0.592057, -0.0458696], + [-1.08669, 0.295286, -0.0471632], + [-1.14381, 0.167624, 0.0202696], + [-1.12565, 0.169003, 0.0224448], + [-1.1224, 0.164695, 0.00799367], + [-1.11346, 0.102613, -0.00635569], + [-0.87524, 0.500256, -0.0801847], + [-0.825179, 0.774767, 0.00149167], + [-0.57715, 0.95727, 0.00146035], + [-0.245189, 1.07481, 0.00174283], + [0.0715746, 1.11136, 0.00141126], + [0.475719, 0.991036, 0.00349609], + [0.54847, 0.979916, -0.00175501], + [0.759303, 0.814767, 0.0126634], + [0.905798, 0.671487, 0.00192825], + [1.03956, 0.462593, 0.000498079], + [1.10652, 0.243004, 0.00831135], + [1.13246, 0.0825571, 0.0249298], + [1.11721, -0.223999, 0.041278], + [1.1327, -0.0507068, 0.0136722], + [1.12516, -0.165256, 0.00246041], + [1.10166, 0.11705, -0.0100355], + [1.10996, 0.0405934, -0.029513], + [1.14152, -0.0674168, -0.0127305], + [1.0266, -0.523655, -0.0313335], + [0.701, -0.938803, -0.0317084], + [0.184108, -1.17288, -0.0215941], + [-0.00457635, -1.19544, 0.000479688], + [-0.586835, -1.03718, 0.0017773], + [0.40389, -1.12099, -0.00529045], + [0.894697, -0.765514, -0.000273007], + [1.14658, -0.127762, -0.00997137], + [1.01077, 0.509221, 0.00198446], + [0.589978, 0.94957, 0.0050153], + [0.0948726, 1.10441, -0.0152223], + [-0.459667, 1.00742, -0.0251474], + [0.0601388, 1.09978, -0.0186445], + [-0.0396568, 1.07542, -0.031587], + [0.552557, 0.894844, -0.0605588], + [0.639852, 0.896196, -0.0377235], + [1.06158, 0.395243, 0.00743376], + [1.12049, -0.167594, 0.0453045], + [1.11863, -0.0983217, 0.0254323], + [1.09233, 0.0119581, 0.0153559], + [1.03052, 0.459064, -0.0028931], + [1.04139, 0.439849, -0.000810073], + [1.04791, 0.41619, 0.00694441], + [1.12727, -0.267333, 0.00192907], + [0.870498, -0.782861, 0.0210384], + [0.430566, -1.10647, 0.0145657], + [-0.138371, -1.1941, -0.0235351], + [-0.120929, -1.19003, -0.00798896], + [0.589052, -1.0304, -0.00669611], + [1.00562, -0.597545, -0.00804835], + [1.14292, -0.0511787, -0.0212672], + [1.01783, 0.482296, -0.00862175], + [1.0124, 0.487948, -0.00419105], + [1.10109, 0.310459, -0.00117018], + [1.11781, 0.172919, 0.00343219], + [1.03052, 0.467714, 0.000731203], + [1.05078, 0.463836, -0.00942715], + [0.927494, 0.632111, 0.0114052], + [0.622723, 0.912519, 0.0428227], + [0.368572, 1.0393, 0.0268776], + [0.131449, 1.08594, 0.0507237], + [-0.116833, 1.09274, 0.0315559], + [-0.362512, 1.03073, 0.0528684], + [-0.598413, 0.925375, 0.0335415], + [-0.806751, 0.763742, 0.0389321], + [-0.975683, 0.560694, 0.0234728], + [0.711067, 0.856453, 0.00522918], + [0.698304, 0.830188, -0.0108496], + [0.843059, 0.726166, 0.00228899], + [0.27213, 1.08286, 0.000884279], + [0.0116246, 1.11754, -0.0001197], + [0.149865, 1.03701, -0.0203214], + [-0.20027, 1.09001, 0.00676326], + [-0.472005, 1.00308, 0.00833057], + [-0.703639, 0.860276, 0.00983825], + [-0.923985, 0.632659, 0.010136], + [-0.892113, 0.648345, -0.0490424], + [-0.52618, 0.947538, -0.0408892], + [-0.454733, 0.950303, -0.0271215], + [-1.09885, -0.0595824, -0.0416295], + [-1.09124, -0.300023, -0.0094494], + [-1.05459, -0.45189, 0.0055773], + [-0.934393, -0.706345, 0.00420015], + [-0.741821, -0.908647, 0.00347728], + [-0.442203, -1.09563, 0.00305888], + [-0.440351, -1.12208, -0.00519117], + [-0.533432, -1.05023, 0.0312364], + [-0.744989, -0.897486, 0.052304], + [-0.920372, -0.716316, 0.0324806], + [-1.04354, -0.494303, 0.0497827], + [-1.12861, -0.253905, 0.0229736], + [-0.919225, -0.751607, 0.00334249], + [-0.566044, -1.0553, 0.0277849], + [-0.306417, -1.13205, 0.0542941], + [-0.0585354, -1.182, 0.0251293], + [0.148655, -1.18533, 0.00308894], + [0.465147, -1.09264, 0.00454079], + [0.359912, -1.12002, 0.0296904], + [0.152287, -1.17452, 0.0348313], + [-0.181576, -1.18327, 0.00186421], + [-0.0541688, -1.1671, 0.00387793], + [-0.643362, -0.992493, 0.00806684], + [-0.847912, -0.816419, 0.00882942], + [-1.11133, -0.339428, 0.00792329], + [-1.00369, -0.60528, 0.00759492], + [-0.942388, -0.677389, -0.00297831], + [-1.06965, 0.464152, -0.000192445], + [-1.12914, -0.142646, 0.00580705], + [-1.06569, 0.418651, 0.00105227], + [-1.1625, -0.0804709, -0.000631652], + [-1.14585, -0.0593998, 0.0415459], + [-1.12885, -0.323918, 0.0451808], + [-1.06294, 0.39131, 0.0352204], + [-0.959726, 0.614781, 0.0314496], + [-0.61342, 0.944757, -0.0299485], + [-0.169997, 1.10566, 0.00355667], + [0.32253, 1.07073, -0.00887087], + [0.913211, 0.624429, -0.0192011], + [0.87408, 0.689269, -0.005635], + [0.532473, 0.973591, -0.0122005], + [-0.0261654, 1.10745, -0.00841875], + [0.283174, 1.07405, -0.00787649], + [0.601846, 0.924947, -0.00342465], + [0.804858, 0.734601, 0.00810469], + [0.764176, 0.782688, 0.0232811], + [0.739081, 0.822915, 0.0294241], + [0.647241, 0.910635, 0.00801974], + [0.0883295, 1.10786, 0.00786736], + [0.110928, 1.10659, -0.00992521], + [-0.416901, 1.03569, -0.00469693], + [-0.862549, 0.726024, -0.00955877], + [-1.11829, 0.230413, -0.0187427], + [-1.11354, -0.328809, -0.00972923], + [-1.1251, 0.140273, -0.0251003], + [-0.943174, -0.709331, -0.00817972], + [-0.420061, -1.11366, -0.0152201], + [-0.920783, -0.725388, -0.0141649], + [-0.939932, -0.600206, -0.0438578], + [-0.676287, -0.935598, -0.0114071], + [-0.205092, -1.15812, -0.0349525], + [-0.249685, -1.10748, -0.0225875], + [0.192646, -1.16077, -0.00506834], + [0.347275, -1.11984, -0.0300476], + [0.785808, -0.836197, -0.0397711], + [1.06014, -0.29003, -0.0244352], + [1.05564, -0.421318, -0.0273065], + [0.566133, -0.999296, -0.00123209], + [1.03292, -0.509499, 0.00146023], + [1.08524, -0.367956, 0.0121496], + [0.745566, -0.896211, 0.0125375], + [1.03269, -0.498022, 0.0367236], + [0.62839, -0.983713, 0.0418252], + [0.388048, -1.13178, 0.00136055], + [-0.0838223, -1.1976, 0.0223413], + [-0.235249, -1.14327, -0.0568873], + [-0.523497, -1.04452, -0.0405955], + [-0.731259, -0.928049, -0.0261927], + [-0.898888, -0.753517, -0.0216193], + [-1.02167, -0.565592, -0.0302049], + [-1.09747, -0.342502, -0.0338987], + [-1.13713, -0.0342639, -0.044474], + [-1.11749, 0.129951, -0.0207752], + [-1.0542, 0.413089, -0.0118812], + [-0.949427, 0.603131, -0.00901071], + [-0.728439, 0.830424, -0.0178884], + [-0.376355, 1.03382, -0.0158901], + [-0.185556, 1.07037, -0.00673055], + [-0.0167591, 1.06586, 0.0141746], + [0.0649723, 1.08472, 0.020756], + [-0.10378, 1.09452, 0.020413], + [-0.958172, 0.536464, 0.0132886], + [-0.695205, 0.857183, 0.00493529], + [-0.632829, 0.902528, 0.0346061], + [-0.859796, 0.725096, 0.0215632], + [-1.08265, 0.36913, -0.0124187], + [-1.1505, -0.172514, 0.00764873], + [-1.00758, -0.61146, -0.00649626], + [-0.648222, -0.990064, 0.0280519], + [-1.1469, -0.0651792, 0.019027], + [-1.07448, 0.176358, 0.0575768], + [-1.07887, -0.224545, 0.030339], + [-0.49942, -1.05124, -0.00348874], + [-0.822162, -0.796517, -0.0015281], + [-0.588317, -0.977526, 0.0722284], + [-0.151336, -1.15143, 0.00951813], + [0.289497, -1.12106, 0.0572888], + [0.887579, -0.719928, 0.0404027], + [0.167225, -1.18028, -0.00357762], + [0.308302, -1.1502, -0.00619874], + [0.608155, -1.04485, 0.0093066], + [0.811851, -0.852759, -0.0067984], + [0.922127, -0.546105, 0.0416729], + [0.942621, -0.698508, -0.00723234], + [1.11182, -0.262685, -0.00466607], + [0.988786, -0.592296, -0.0476753], + [1.07192, -0.474911, -0.0414343], + [1.14342, -0.113887, -0.00839148], + [1.11189, 0.124208, -0.00877517], + [1.01336, 0.472395, -0.00982482], + [1.03047, 0.440326, -0.0192992], + [0.887946, 0.670606, -0.0355341], + [1.11176, 0.23553, -0.0284195], + [1.04657, 0.439579, 0.00903524], + [1.10006, 0.269067, 0.0446301], + [1.15412, 0.0272585, -0.00227254], + [0.85886, 0.716212, 0.0312187], + [0.754509, 0.838413, 0.0623482], +] + +PP = [ + [0.439714, -1.05192], + [0.480569, -1.04756], + [0.235193, -1.12045], + [0.0133779, -1.14105], + [-0.27821, -1.10589], + [-0.425278, -1.07105], + [-0.678765, -0.973724], + [-0.988773, -0.640715], + [-0.98714, -0.422896], + [-1.14842, 0.115621], + [-0.994867, 0.550117], + [-0.65704, 0.895386], + [-0.433864, 1.05553], + [-0.583694, 1.01116], + [0.0365872, 1.15097], + [0.466855, 1.01962], + [0.683514, 0.836474], + [0.994211, 0.389165], + [1.04468, 0.376987], + [0.941392, 0.544037], + [0.713837, 0.843054], + [0.371779, 1.05907], + [0.181338, 1.13216], + [-0.0328171, 1.13862], + [-0.23154, 1.12845], + [-0.596083, 1.00901], + [-0.931842, 0.717751], + [-1.11596, 0.384827], + [-1.16797, 0.0533282], + [-1.17214, -0.105896], + [-1.10574, -0.411073], + [-1.00495, -0.60708], + [-0.848859, -0.785509], + [-0.886543, -0.789247], + [-0.762946, -0.871519], + [-0.646031, -0.957133], + [-0.79498, -0.867098], + [-0.711386, -0.848276], + [-0.999687, -0.48054], + [-1.14102, 0.00638941], + [-0.994642, 0.545369], + [-0.914535, 0.729126], + [-0.388998, 1.09274], + [-0.168693, 1.14927], + [0.326936, 1.09613], + [0.768727, 0.826361], + [1.03726, 0.414179], + [1.06191, 0.313411], + [1.06899, -0.268175], + [1.0134, -0.391577], + [0.952891, -0.414917], + [1.06623, -0.220079], + [1.0018, -0.477012], + [0.845613, -0.703589], + [0.880525, -0.668591], + [1.01693, -0.421257], + [1.08294, -0.130039], + [1.08525, 0.159082], + [1.04058, 0.384218], + [0.943089, 0.593248], + [0.797965, 0.783218], + [0.591523, 0.933936], + [0.294668, 1.08682], + [0.167012, 1.14391], + [0.168402, 1.12575], + [0.164088, 1.1225], + [0.102003, 1.11351], + [0.499736, 0.875458], + [0.774318, 0.825602], + [0.956956, 0.577671], + [1.07467, 0.245775], + [1.1114, -0.0709687], + [0.991296, -0.475177], + [0.980214, -0.547938], + [0.815187, -0.758851], + [0.671981, -0.905431], + [0.463159, -1.03931], + [0.243611, -1.10638], + [0.0831874, -1.1324], + [-0.223368, -1.1173], + [-0.0500824, -1.13272], + [-0.164642, -1.12525], + [0.117644, -1.1016], + [0.0411818, -1.10996], + [-0.066802, -1.14157], + [-0.523112, -1.02691], + [-0.938438, -0.701533], + [-1.17279, -0.184761], + [-1.19545, 0.00392601], + [-1.0375, 0.586271], + [-1.12077, -0.404503], + [-0.765026, -0.895114], + [-0.127143, -1.14666], + [0.509772, -1.01049], + [0.949894, -0.589457], + [1.10445, -0.0942818], + [1.00716, 0.460198], + [1.09981, -0.0595528], + [1.07538, 0.0402207], + [0.895112, -0.55211], + [0.896524, -0.639389], + [0.395826, -1.06136], + [-0.166959, -1.12055], + [-0.0976986, -1.11866], + [0.0125614, -1.09232], + [0.459624, -1.03028], + [0.440416, -1.04115], + [0.416764, -1.04768], + [-0.266718, -1.12741], + [-0.782375, -0.87091], + [-1.10623, -0.431158], + [-1.19419, 0.137705], + [-1.1901, 0.120276], + [-1.03008, -0.589618], + [-0.597001, -1.00595], + [-0.0505677, -1.14296], + [0.482846, -1.01758], + [0.488497, -1.01214], + [0.311058, -1.10092], + [0.17353, -1.11771], + [0.468275, -1.03027], + [0.464403, -1.05053], + [0.632623, -0.927141], + [0.912881, -0.622198], + [1.03952, -0.367988], + [1.08604, -0.130824], + [1.0927, 0.117449], + [1.03056, 0.363108], + [0.925068, 0.598939], + [0.763323, 0.807193], + [0.560175, 0.976004], + [0.856843, -0.710597], + [0.830562, -0.69786], + [0.726626, -0.842662], + [1.08301, -0.27154], + [1.11755, -0.0110164], + [1.03708, -0.149314], + [1.0899, 0.200868], + [1.00283, 0.472556], + [0.859898, 0.704114], + [0.632161, 0.924335], + [0.647832, 0.892432], + [0.947229, 0.526668], + [0.95004, 0.455232], + [-0.0602035, 1.09879], + [-0.300622, 1.09107], + [-0.452461, 1.05435], + [-0.706852, 0.934011], + [-0.909049, 0.741329], + [-1.09587, 0.441608], + [-1.12232, 0.439736], + [-1.05051, 0.532881], + [-0.897863, 0.744536], + [-0.716799, 0.920004], + [-0.494844, 1.0433], + [-0.254507, 1.12848], + [-0.752106, 0.918818], + [-1.05559, 0.565489], + [-1.13219, 0.305837], + [-1.18201, 0.057909], + [-1.18525, -0.149298], + [-1.09238, -0.465738], + [-1.11981, -0.360502], + [-1.17441, -0.152902], + [-1.18336, 0.180933], + [-1.16713, 0.0535362], + [-0.992839, 0.642827], + [-0.816875, 0.847474], + [-0.340029, 1.11115], + [-0.605822, 1.00337], + [-0.677904, 0.942017], + [0.463569, 1.0699], + [-0.143258, 1.12906], + [0.418071, 1.06592], + [-0.0811043, 1.16246], + [-0.0600013, 1.14585], + [-0.324508, 1.1287], + [0.390751, 1.06318], + [0.614275, 0.960082], + [0.944406, 0.613914], + [1.10557, 0.170601], + [1.0709, -0.321953], + [0.624916, -0.912883], + [0.689741, -0.873709], + [0.973874, -0.531951], + [1.10743, 0.0267624], + [1.0742, -0.282594], + [0.925273, -0.601345], + [0.735044, -0.804452], + [0.783117, -0.763734], + [0.823333, -0.738613], + [0.910991, -0.646739], + [1.10791, -0.0877212], + [1.10665, -0.110332], + [1.03546, 0.417462], + [0.725548, 0.862937], + [0.229794, 1.1184], + [-0.329421, 1.11335], + [0.139647, 1.12516], + [-0.709849, 0.942782], + [-1.11389, 0.419445], + [-0.725897, 0.920378], + [-0.600742, 0.939575], + [-0.935973, 0.67577], + [-1.15825, 0.204438], + [-1.10763, 0.249066], + [-1.16067, -0.193281], + [-1.11966, -0.347905], + [-0.83579, -0.78629], + [-0.289466, -1.06032], + [-0.420758, -1.05589], + [-0.998988, -0.566677], + [-0.508936, -1.03319], + [-0.367359, -1.08544], + [-0.895797, -0.746045], + [-0.497439, -1.03293], + [-0.983348, -0.628897], + [-1.13157, -0.388663], + [-1.19763, 0.0831856], + [-1.14343, 0.234588], + [-1.04483, 0.5229], + [-0.928462, 0.730736], + [-0.754019, 0.898463], + [-0.566164, 1.02134], + [-0.343118, 1.09726], + [-0.0349075, 1.13708], + [0.129331, 1.11755], + [0.412508, 1.05442], + [0.602609, 0.949749], + [0.830017, 0.728878], + [1.03361, 0.376907], + [1.07026, 0.186134], + [1.06586, 0.0173489], + [1.08477, -0.0643678], + [1.09448, 0.10439], + [0.53595, 0.958473], + [0.856807, 0.695675], + [0.902202, 0.633343], + [0.724639, 0.860205], + [0.368534, 1.08284], + [-0.173137, 1.15041], + [-0.612012, 1.00724], + [-0.990401, 0.647702], + [-0.0657935, 1.14688], + [0.175804, 1.07461], + [-0.225116, 1.07877], + [-1.05151, 0.498845], + [-0.796966, 0.821727], + [-0.977806, 0.587834], + [-1.1515, 0.150716], + [-1.12087, -0.290069], + [-0.719422, -0.887943], + [-1.18019, -0.16787], + [-1.15003, -0.308932], + [-1.04451, -0.608717], + [-0.85232, -0.812319], + [-0.54558, -0.922396], + [-0.697998, -0.943006], + [-0.262081, -1.11197], + [-0.591783, -0.98914], + [-0.47435, -1.07221], + [-0.113269, -1.14349], + [0.124809, -1.11183], + [0.472941, -1.01311], + [0.440876, -1.03024], + [0.67107, -0.887605], + [0.23612, -1.11165], + [0.440154, -1.04632], + [0.26969, -1.09988], + [0.0278858, -1.1541], + [0.716697, -0.858449], + [0.838857, -0.75401], +] + +NORMALS = [ + [0.885516, 0.46334, -0.0343024], + [0.812606, 0.377038, -0.444426], + [0.628902, 0.14572, -0.763707], + [0.85923, 0.0155783, -0.511352], + [0.874891, -0.192938, -0.444231], + [0.511721, -0.181182, -0.83983], + [0.0923581, -0.0422934, -0.994827], + [-0.0179906, -0.00993837, -0.999789], + [-0.192833, 0.424116, -0.884839], + [0.0583866, 0.665859, -0.743789], + [0.217511, 0.402577, -0.889169], + [0.399414, 0.27136, -0.87569], + [0.704609, 0.265156, -0.658194], + [0.817078, 0.44808, -0.362778], + [0.970204, -0.0758635, -0.230107], + [0.789843, -0.393999, -0.470014], + [0.504056, -0.447331, -0.738798], + [0.215612, -0.571117, -0.792046], + [0.0856984, -0.251419, -0.964077], + [-0.0662072, 0.110061, -0.991717], + [-0.0221537, 0.0328826, -0.999214], + [-0.0881874, 0.0272407, -0.995731], + [0.326071, -0.0600209, -0.943438], + [-0.0275799, -0.00382598, -0.999612], + [-0.435017, -0.0676354, -0.897879], + [-0.402722, -0.223929, -0.887508], + [-0.305379, -0.361803, -0.880819], + [-0.160996, -0.445276, -0.880801], + [-0.010807, -0.509743, -0.860259], + [0.0855906, -0.873831, -0.478638], + [0.272207, -0.796263, -0.540248], + [0.501136, -0.785129, -0.363916], + [0.59144, -0.582797, -0.557267], + [0.703184, -0.710914, -0.0115417], + [0.694596, -0.544701, 0.469933], + [0.417251, -0.272357, 0.86702], + [0.0516217, -0.0520169, 0.997311], + [-0.291716, 0.218914, 0.931117], + [-0.226126, 0.464038, 0.856467], + [-0.00339778, 0.632178, 0.774816], + [0.331808, 0.573052, 0.749343], + [0.577179, 0.685143, 0.444347], + [0.859894, 0.270931, 0.432641], + [0.967572, 0.108714, 0.228002], + [0.934989, -0.317314, 0.158451], + [0.710774, -0.701997, 0.0447301], + [0.356019, -0.933043, -0.0517811], + [0.256997, -0.919431, -0.297655], + [-0.218756, -0.909007, -0.354757], + [-0.269857, -0.724352, -0.634422], + [-0.158691, -0.360472, -0.919172], + [0.00858611, 0.0775903, -0.996948], + [0.133712, 0.306211, -0.942526], + [0.341642, 0.386306, -0.856766], + [0.531726, 0.686423, -0.496076], + [0.368051, 0.847296, -0.382921], + [0.0867203, 0.898884, -0.429519], + [-0.107633, 0.828438, -0.549642], + [-0.307088, 0.870656, -0.38426], + [-0.42712, 0.71235, -0.55689], + [-0.635271, 0.657478, -0.405158], + [-0.672777, 0.454282, -0.583951], + [-0.842933, 0.287157, -0.454978], + [-0.984554, 0.173194, -0.0256336], + [-0.79356, 0.15199, 0.589204], + [-0.342572, 0.0650046, 0.93724], + [0.183, 0.000494036, 0.983113], + [0.381035, -0.24338, 0.891952], + [0.0133362, -0.0535155, 0.998478], + [-0.0397298, 0.0698377, 0.996767], + [-0.0168322, 0.0516311, 0.998524], + [0.0160717, 0.206352, 0.978346], + [0.0443121, 0.130718, 0.990429], + [0.283722, 0.551341, 0.784554], + [0.485316, 0.557467, 0.673572], + [0.380974, 0.303056, 0.873508], + [0.276614, 0.133976, 0.951596], + [0.532039, 0.111579, 0.839336], + [0.846385, 0.042943, 0.530837], + [0.875762, -0.154386, 0.45739], + [0.527876, -0.0272772, 0.848883], + [0.0765559, -0.0164299, 0.99693], + [-0.244645, -0.0388266, 0.968835], + [-0.593173, -0.04156, 0.804002], + [-0.813442, 0.0167877, 0.581403], + [-0.789584, 0.368692, 0.490535], + [-0.565512, 0.718982, 0.404056], + [-0.151828, 0.931684, 0.330019], + [0.00498856, 0.994816, 0.101566], + [0.501824, 0.864842, 0.0148866], + [-0.356849, 0.933981, -0.018394], + [-0.780046, 0.624074, -0.0453854], + [-0.994909, 0.0778003, 0.0640639], + [-0.851363, -0.483031, 0.204604], + [-0.511458, -0.844253, 0.160149], + [-0.0830259, -0.953054, 0.291197], + [0.358212, -0.837785, 0.412069], + [-0.0462617, -0.839609, 0.541218], + [0.0275706, -0.625883, 0.77943], + [-0.339508, -0.543164, 0.767924], + [-0.508066, -0.740415, 0.440062], + [-0.911782, -0.347495, -0.218864], + [-0.880528, 0.0993146, -0.463473], + [-0.656706, 0.0415934, -0.752999], + [-0.272574, -0.0133991, -0.962042], + [-0.0860399, -0.0422484, -0.995396], + [-0.45604, -0.191933, -0.869016], + [-0.742809, -0.298616, -0.599219], + [-0.96584, 0.185131, -0.181326], + [-0.71678, 0.612849, -0.332628], + [-0.370476, 0.899217, -0.232714], + [0.109807, 0.954465, -0.27738], + [0.104434, 0.989095, -0.103849], + [-0.506596, 0.84713, 0.160407], + [-0.855104, 0.468046, 0.223003], + [-0.935691, 0.0119431, 0.352619], + [-0.707046, -0.377226, 0.598153], + [-0.421568, -0.24913, 0.871903], + [0.765474, 0.222438, 0.603797], + [0.162233, 0.0189544, 0.98657], + [-0.0860355, -0.052534, 0.994906], + [0.588427, 0.289606, 0.754905], + [0.630579, 0.460952, 0.624414], + [0.486853, 0.798161, 0.354843], + [0.289112, 0.82561, 0.484543], + [0.0958261, 0.91753, 0.385949], + [-0.105734, 0.862318, 0.495205], + [-0.300695, 0.847625, 0.437166], + [-0.440112, 0.706749, 0.553902], + [-0.620586, 0.636258, 0.45831], + [-0.702017, 0.470077, 0.534977], + [0.239125, 0.324827, 0.915045], + [-0.184953, -0.217195, 0.958446], + [0.0704163, 0.0660926, 0.995326], + [0.140547, 0.54811, 0.824513], + [0.0260011, 0.62869, 0.777221], + [-0.0352421, -0.262232, 0.964361], + [-0.113206, 0.519926, 0.846677], + [-0.194096, 0.466385, 0.863025], + [-0.319374, 0.367065, 0.87365], + [-0.378905, 0.305647, 0.873505], + [0.659914, -0.513446, 0.548531], + [0.34472, -0.641129, 0.685654], + [0.136933, -0.322664, 0.936556], + [0.541299, 0.00592814, 0.840809], + [0.235541, 0.059255, 0.970056], + [-0.163862, -0.0577168, 0.984793], + [-0.199639, -0.143077, 0.969367], + [-0.0846024, -0.116337, 0.9896], + [-0.0496912, -0.133955, 0.989741], + [-0.207312, -0.556528, 0.804548], + [-0.415753, -0.760936, 0.498123], + [-0.591451, -0.693154, 0.411974], + [-0.693631, -0.514222, 0.504432], + [-0.831854, -0.376771, 0.407509], + [-0.848325, -0.179743, 0.498033], + [-0.790557, -0.612363, -0.00550481], + [-0.455413, -0.889609, -0.0345703], + [-0.240499, -0.882431, 0.404322], + [-0.0467441, -0.846844, 0.529783], + [0.0734138, -0.562327, 0.82365], + [0.222977, -0.43269, 0.873534], + [0.29114, -0.786986, 0.543958], + [0.13231, -0.922442, 0.362761], + [-0.0821101, -0.520081, 0.850161], + [-0.00690736, -0.112095, 0.993673], + [-0.31097, -0.453916, 0.835019], + [-0.411827, -0.402994, 0.817309], + [-0.544164, -0.157068, 0.824145], + [-0.516026, -0.270197, 0.812841], + [0.138142, 0.0913723, 0.986189], + [-0.0338192, 0.0278306, 0.99904], + [-0.190354, -0.0116362, 0.981647], + [-0.544831, 0.223664, 0.808167], + [-0.621469, -0.00893507, 0.783388], + [-0.940934, -0.00109971, 0.338587], + [-0.971474, -0.230621, -0.0552564], + [-0.870184, 0.340428, 0.356215], + [-0.829667, 0.5569, -0.0389282], + [-0.527659, 0.848772, 0.0340828], + [-0.124535, 0.992198, -0.0057595], + [0.27592, 0.961138, 0.00901859], + [0.427064, 0.347247, -0.834886], + [0.0956659, 0.100227, -0.990355], + [0.306675, 0.597738, -0.740716], + [0.00150586, 0.506827, -0.862047], + [0.132575, 0.581816, -0.802443], + [-0.000798285, -0.004032, -0.999992], + [-0.211343, -0.203531, -0.955986], + [-0.450326, -0.482813, -0.751065], + [-0.582999, -0.682282, -0.44114], + [-0.562778, -0.820318, -0.101777], + [-0.0822599, -0.98632, -0.142851], + [-0.100051, -0.992696, 0.0674161], + [0.351896, -0.920614, 0.169232], + [0.716005, -0.640572, 0.277499], + [0.904039, -0.216508, 0.368561], + [0.744596, 0.192618, 0.639121], + [0.783746, -0.131261, 0.607052], + [0.800554, 0.571608, 0.179936], + [0.351684, 0.90006, 0.257313], + [0.641716, 0.482808, 0.5959], + [0.452979, 0.270784, 0.849403], + [0.191167, 0.231761, 0.953804], + [0.149303, 0.848158, 0.508269], + [0.0669129, 0.314346, 0.946947], + [-0.0446017, 0.287199, 0.956832], + [-0.25041, 0.778868, 0.57503], + [-0.523167, 0.52237, 0.673369], + [-0.326905, 0.0750979, 0.942069], + [-0.629152, 0.228803, 0.742843], + [-0.00967184, 0.0302848, 0.999495], + [0.0273618, -0.0164314, 0.999491], + [0.475493, -0.133392, 0.869548], + [0.325656, -0.385951, 0.863128], + [0.759628, -0.342118, 0.553101], + [0.491739, -0.735577, 0.465961], + [0.339217, -0.940703, -0.00314801], + [-0.0793488, -0.996451, -0.0280971], + [-0.195819, -0.855567, -0.479229], + [-0.370255, -0.728245, -0.576689], + [-0.579057, -0.699415, -0.418942], + [-0.625638, -0.507035, -0.592868], + [-0.813385, -0.402766, -0.419744], + [-0.781918, -0.205183, -0.588646], + [-0.873346, -0.00463673, -0.487078], + [-0.506555, 0.0673884, -0.85957], + [-0.511781, 0.201984, -0.835034], + [-0.320853, 0.234846, -0.917552], + [-0.342082, 0.408178, -0.846387], + [-0.186305, 0.514146, -0.837224], + [-0.0180518, 0.118465, -0.992794], + [0.0118987, -0.314247, -0.949267], + [-0.0346939, -0.647105, -0.761611], + [0.0751036, -0.837074, -0.541911], + [0.310345, -0.189601, -0.931524], + [0.211937, -0.27383, -0.938136], + [0.478618, -0.72206, -0.499553], + [0.735416, -0.64106, -0.219557], + [0.934456, -0.355643, -0.017608], + [0.992795, 0.117944, 0.0211562], + [0.867185, 0.4906, -0.0854499], + [0.547122, 0.79932, -0.248484], + [0.884395, 0.0200503, -0.466307], + [0.648469, -0.125092, -0.750892], + [0.418901, 0.064567, -0.905733], + [-0.0201053, -0.000633263, -0.999798], + [0.012708, 0.0228002, -0.999659], + [0.419447, 0.677553, -0.604141], + [0.0413512, 0.319048, -0.946836], + [-0.210542, 0.812233, -0.544012], + [-0.60822, 0.459243, -0.647429], + [0.00847839, 0.0270102, -0.999599], + [0.120563, -0.44395, -0.887904], + [0.29249, -0.487189, -0.822858], + [0.269586, -0.3103, -0.911613], + [-0.304243, 0.16738, -0.937774], + [0.484207, -0.316488, -0.815708], + [0.0596263, -0.0218626, -0.997981], + [0.776807, -0.457738, -0.43249], + [0.922431, -0.383201, 0.0477411], + [0.529844, -0.038054, -0.847241], + [0.190883, 0.0228035, -0.981348], + [0.307769, 0.12232, -0.943566], + [0.612584, 0.317564, -0.723806], + [0.685848, 0.571586, -0.450445], + [0.922146, 0.217187, -0.32012], + [0.814128, 0.425084, 0.395601], + [0.945288, 0.218336, 0.242405], + [0.999973, -0.00720299, 0.00117226], + [0.721406, 0.623411, 0.30155], + [0.633588, 0.769961, -0.075671], +] + +COORDS = [ + [9.48758, -2.85689, -9.02], + [9.42193, -2.88861, -9.363], + [9.34018, -3.32853, -9.66433], + [9.55434, -3.65979, -9.47175], + [9.53218, -4.12669, -9.43951], + [9.19187, -4.26388, -9.73857], + [8.74175, -4.40052, -9.85792], + [8.31578, -4.68314, -9.86321], + [7.95098, -4.31641, -9.69122], + [7.62361, -4.27409, -9.60689], + [7.32301, -4.3417, -9.73822], + [7.1309, -4.11403, -9.71418], + [7.22753, -3.89599, -9.53626], + [7.36639, -3.89201, -9.29908], + [7.35568, -3.71225, -9.19584], + [7.3356, -3.5496, -9.37952], + [7.27855, -3.3779, -9.59252], + [7.48345, -3.17153, -9.64609], + [7.38638, -2.8522, -9.83089], + [7.09153, -2.65141, -9.86014], + [6.82944, -2.94371, -9.86328], + [6.5577, -3.29039, -9.86155], + [6.83288, -3.55418, -9.81368], + [6.5289, -3.72107, -9.8633], + [6.19633, -3.97346, -9.78516], + [6.34273, -4.4695, -9.77316], + [6.71566, -4.92136, -9.77123], + [7.1699, -5.17585, -9.77179], + [7.62767, -5.28225, -9.76236], + [7.86794, -5.59268, -9.46211], + [8.3301, -5.46122, -9.50011], + [8.71866, -5.35117, -9.36881], + [8.97312, -5.02502, -9.5309], + [9.07084, -5.17047, -9.02], + [9.14598, -4.90717, -8.58125], + [8.99841, -4.56125, -8.27647], + [8.60081, -4.52485, -8.17861], + [8.29329, -4.2134, -8.26672], + [7.98053, -4.29535, -8.35351], + [7.68083, -4.29502, -8.41576], + [7.42382, -4.19807, -8.44484], + [7.44646, -4.02361, -8.68624], + [7.32089, -3.84621, -8.67914], + [7.35504, -3.7623, -8.83415], + [7.38105, -3.62496, -8.89463], + [7.46252, -3.50682, -8.97425], + [7.57651, -3.43281, -9.06164], + [7.59404, -3.39678, -9.24228], + [7.77555, -3.38125, -9.28783], + [7.85595, -3.28163, -9.51847], + [7.97274, -3.03615, -9.75751], + [7.91861, -2.55429, -9.8624], + [8.28073, -2.42661, -9.81789], + [8.68207, -2.51556, -9.75625], + [8.80693, -2.22824, -9.46802], + [8.42202, -1.9564, -9.38428], + [7.89425, -1.84685, -9.43344], + [7.44171, -1.90364, -9.51429], + [7.04882, -1.91268, -9.37105], + [6.7388, -2.14319, -9.50562], + [6.3737, -2.33435, -9.39014], + [6.19132, -2.71158, -9.55565], + [5.89519, -3.14889, -9.44849], + [5.71897, -3.37239, -9.02], + [5.89775, -3.38884, -8.50078], + [6.28025, -3.4663, -8.22255], + [6.73116, -3.58263, -8.19833], + [7.13592, -3.39007, -8.34882], + [6.87677, -2.9559, -8.17756], + [7.08017, -2.66966, -8.17903], + [7.43139, -2.56743, -8.17727], + [7.77582, -2.40076, -8.19457], + [8.20372, -2.5847, -8.18232], + [8.4778, -2.2421, -8.3607], + [8.85816, -2.40209, -8.43961], + [8.91691, -2.75932, -8.28221], + [8.96291, -3.1104, -8.21798], + [9.24466, -3.34882, -8.30457], + [9.53496, -3.56699, -8.54738], + [9.54441, -4.03949, -8.5928], + [9.26735, -3.7593, -8.29118], + [8.88027, -3.86473, -8.17789], + [8.58666, -3.60126, -8.21401], + [8.30187, -3.68002, -8.37211], + [8.1482, -3.73896, -8.54252], + [8.05334, -3.89926, -8.63754], + [7.91617, -4.01984, -8.71063], + [7.74716, -4.07505, -8.76278], + [7.69035, -4.04452, -8.93282], + [7.5259, -3.99555, -9.00442], + [7.79453, -4.02122, -9.03947], + [7.92946, -3.92636, -9.05715], + [8.00066, -3.74799, -8.97481], + [7.98556, -3.58264, -8.84467], + [7.8506, -3.44606, -8.87902], + [7.71579, -3.38272, -8.78906], + [7.5323, -3.38277, -8.69733], + [7.71197, -3.29194, -8.58222], + [7.67426, -3.13657, -8.39484], + [7.95778, -3.24758, -8.43349], + [7.90333, -3.41211, -8.68637], + [7.98556, -3.58264, -9.19533], + [8.07075, -3.76973, -9.36316], + [8.25711, -3.749, -9.62651], + [8.55385, -3.68497, -9.81238], + [8.6489, -3.26212, -9.85868], + [8.34862, -3.40721, -9.75032], + [8.11398, -3.52059, -9.51568], + [8.00578, -3.79731, -9.16927], + [7.95846, -3.95315, -9.2774], + [7.80975, -4.03594, -9.19985], + [7.6447, -4.07711, -9.27551], + [7.65763, -4.04392, -9.11403], + [7.85377, -4.00367, -8.89052], + [7.97726, -3.8896, -8.83923], + [8.04679, -3.72679, -8.74345], + [8.11398, -3.52059, -8.52432], + [8.34862, -3.40721, -8.28968], + [9.43555, -3.18814, -8.51212], + [8.94497, -3.4968, -8.18563], + [8.6489, -3.26212, -8.18132], + [9.23635, -2.97828, -8.39331], + [9.14851, -2.66591, -8.48221], + [8.72287, -2.10193, -8.67749], + [8.30243, -1.95207, -8.58436], + [7.90277, -1.82813, -8.64343], + [7.48498, -1.86776, -8.57072], + [7.07535, -1.94213, -8.59821], + [6.72221, -2.16595, -8.51937], + [6.3621, -2.38686, -8.59437], + [6.12469, -2.72966, -8.54536], + [8.60289, -2.55604, -8.24398], + [8.2335, -3.03812, -8.22356], + [8.59301, -2.90391, -8.17941], + [8.08106, -2.14186, -8.32446], + [7.72422, -2.03943, -8.36523], + [7.81096, -2.86917, -8.22806], + [7.39526, -2.15842, -8.29994], + [7.05551, -2.29038, -8.28463], + [6.71852, -2.5167, -8.27419], + [6.44811, -2.79597, -8.27401], + [7.35357, -3.46909, -8.60647], + [7.45444, -3.27727, -8.48301], + [7.35115, -3.0067, -8.25824], + [7.04709, -3.74026, -8.35327], + [6.79757, -3.93585, -8.2124], + [6.49834, -4.18609, -8.18498], + [6.58846, -4.51232, -8.19933], + [6.87777, -4.69214, -8.18304], + [7.20674, -4.89394, -8.18334], + [7.07605, -5.27575, -8.34733], + [6.80768, -5.3758, -8.56858], + [6.44837, -5.16605, -8.61996], + [6.18706, -4.83441, -8.56203], + [5.94765, -4.49681, -8.62624], + [5.84874, -4.09072, -8.57692], + [6.10669, -4.95223, -9.02], + [6.74171, -5.48907, -9.02], + [7.18207, -5.55978, -8.62441], + [7.59289, -5.5798, -8.54807], + [7.90113, -5.34388, -8.32298], + [8.34339, -5.14216, -8.27958], + [8.29548, -5.46749, -8.53158], + [7.95429, -5.6359, -8.67882], + [7.44011, -5.30628, -8.30191], + [7.63076, -4.94703, -8.17921], + [6.78586, -5.05987, -8.30844], + [6.4965, -4.84097, -8.32257], + [6.12179, -4.15717, -8.31773], + [6.25309, -4.51816, -8.32756], + [6.86452, -4.28621, -8.19236], + [6.59265, -3.1981, -8.17877], + [6.40152, -3.83809, -8.1874], + [6.16687, -3.07892, -8.33804], + [6.00561, -3.77364, -8.36056], + [5.75361, -3.74598, -8.69243], + [5.74493, -4.20352, -9.02], + [5.89602, -3.00807, -8.68394], + [6.0333, -2.60256, -9.02], + [6.63358, -2.02713, -9.02], + [7.41601, -1.74561, -9.02], + [8.2453, -1.80667, -9.02], + [8.96308, -2.76921, -9.74001], + [8.64526, -2.91211, -9.85718], + [8.4811, -2.2094, -9.65381], + [7.66583, -2.15199, -9.75206], + [8.0854, -2.12234, -9.7014], + [8.29191, -2.7641, -9.86307], + [8.31786, -3.12222, -9.81454], + [8.07621, -3.30899, -9.62703], + [7.93955, -3.4365, -9.36026], + [7.86471, -3.46487, -9.09628], + [7.70989, -3.40724, -9.13098], + [7.71752, -3.41387, -8.97195], + [7.56976, -3.42416, -8.8811], + [7.4303, -3.49832, -8.79491], + [7.33269, -3.63732, -8.72752], + [7.20336, -3.85249, -8.49098], + [7.22472, -3.65577, -8.53332], + [7.42078, -3.9143, -8.87558], + [7.56642, -4.04242, -8.81755], + [7.3096, -4.00503, -8.53176], + [7.13173, -4.05815, -8.34827], + [7.17521, -4.42636, -8.22803], + [7.6112, -4.13053, -8.62624], + [7.49732, -4.52879, -8.24497], + [7.84587, -4.60491, -8.21914], + [7.82743, -4.15051, -8.56519], + [8.03659, -4.08257, -8.49222], + [8.47597, -3.91254, -8.25092], + [8.21729, -3.91457, -8.42133], + [8.24873, -4.65949, -8.17943], + [8.74666, -4.20898, -8.17674], + [9.17584, -4.16579, -8.27532], + [8.71016, -4.90643, -8.28033], + [9.36222, -4.47138, -8.51686], + [8.73265, -5.28795, -8.58504], + [8.36404, -5.60852, -9.02], + [7.54018, -5.72121, -9.02], + [7.29081, -5.54842, -9.47861], + [6.85587, -5.34259, -9.54427], + [6.47252, -5.20188, -9.39721], + [6.26572, -4.86556, -9.5389], + [5.98505, -4.58995, -9.4019], + [5.93572, -4.20071, -9.54763], + [5.81917, -3.72382, -9.47279], + [6.14726, -3.49904, -9.76234], + [6.20615, -3.10271, -9.73281], + [6.47149, -2.88504, -9.79933], + [6.67462, -2.51198, -9.74836], + [7.15771, -2.21947, -9.73866], + [7.49, -2.51567, -9.86033], + [7.68398, -2.88407, -9.80282], + [7.72653, -3.14512, -9.63843], + [7.65011, -3.29507, -9.45402], + [6.99354, -3.30864, -9.78878], + [7.17375, -3.05875, -9.8027], + [7.4604, -3.39034, -9.4042], + [7.44938, -3.49966, -9.18179], + [7.39391, -3.6156, -9.04594], + [7.37512, -3.75899, -8.99327], + [7.4124, -3.88455, -9.09707], + [7.50261, -4.00354, -9.19962], + [7.28756, -3.73398, -9.39182], + [7.16158, -3.6145, -9.59259], + [6.96414, -3.85591, -9.75004], + [7.17441, -4.73743, -9.86297], + [6.87926, -4.463, -9.8609], + [7.45515, -4.0934, -9.45453], + [7.57417, -4.56878, -9.80543], + [7.80318, -4.12368, -9.41891], + [8.06683, -4.01939, -9.52276], + [7.86509, -4.84323, -9.8629], + [8.10042, -5.20919, -9.77159], + [8.54486, -5.14021, -9.70138], + [8.72929, -4.79936, -9.79213], + [8.35701, -4.09101, -9.76565], + [9.04054, -4.65031, -9.71191], + [8.8527, -3.96673, -9.86262], + [9.33277, -4.66289, -9.43009], + [9.53836, -4.48282, -9.02], + [9.27973, -3.83155, -9.73959], + [8.96315, -3.54227, -9.85275], + [8.96291, -3.1104, -9.82202], + [9.23635, -2.97828, -9.64669], + [9.15544, -2.53438, -9.43305], + [9.57796, -3.26749, -9.31634], + [9.42193, -2.88861, -8.677], + [9.58572, -3.23298, -8.77023], + [9.68577, -3.66446, -9.02], + [9.15625, -2.44519, -8.73391], + [8.97805, -2.19975, -9.02], +] + +K1 = [ + 1.19742, + 1.10354, + 1.14907, + 1.15043, + 1.22354, + 1.22235, + 1.13188, + 0.981901, + 1.03604, + 0.709188, + 1.09286, + 1.07003, + 1.26782, + 1.3122, + 1.26756, + 1.3689, + 1.15674, + 1.17528, + 1.28998, + 1.23027, + 1.12868, + 1.15578, + 1.25699, + 1.1553, + 1.17413, + 1.15094, + 1.15178, + 1.21847, + 1.2516, + 1.17151, + 1.17063, + 1.33213, + 1.18518, + 1.0682, + 1.17914, + 1.21917, + 1.2068, + 1.0939, + 1.13594, + 1.19896, + 1.12807, + 1.30628, + 1.21965, + 1.52805, + 1.20057, + 1.28683, + 1.29944, + 1.33911, + 1.28139, + 1.18256, + 1.10645, + 1.06408, + 1.0965, + 1.18692, + 1.10563, + 1.21843, + 1.22667, + 1.13631, + 1.20817, + 1.13895, + 1.19749, + 1.15447, + 1.18275, + 1.09933, + 1.18072, + 1.16824, + 0.99584, + 1.09059, + 1.01944, + 1.18948, + 1.03335, + 1.1381, + 1.03862, + 1.21733, + 1.2433, + 1.19621, + 1.13219, + 1.18533, + 1.15925, + 1.182, + 1.21103, + 1.10658, + 1.0942, + 1.17147, + 1.42773, + 1.30786, + 1.29743, + 1.31306, + 1.23611, + 1.3494, + 1.26301, + 1.28029, + 1.32776, + 1.1564, + 1.28499, + 1.14503, + 1.21632, + 1.147, + 1.50722, + 1.18236, + 1.31852, + 1.17454, + 1.24319, + 1.09401, + 1.18864, + 1.10312, + 0.931669, + 0.876142, + 1.2934, + 1.21907, + 1.30991, + 1.51383, + 1.09556, + 1.30842, + 1.29534, + 1.19195, + 0.962355, + 0.963581, + 1.25778, + 1.14618, + 1.08882, + 1.19339, + 1.24819, + 1.2945, + 1.17345, + 1.27354, + 1.1939, + 1.23823, + 1.13651, + 1.20865, + 1.20307, + 1.13204, + 1.11798, + 1.11248, + 1.21338, + 1.30081, + 1.05123, + 1.24533, + 1.23076, + 1.24697, + 1.21668, + 1.34948, + 1.06382, + 1.0813, + 1.27874, + 1.01942, + 1.12397, + 1.25103, + 1.16397, + 1.08262, + 1.30112, + 1.22445, + 1.26206, + 1.17346, + 1.26302, + 1.22153, + 1.0977, + 1.08502, + 1.29874, + 1.1887, + 1.17321, + 1.1826, + 1.17089, + 1.2635, + 1.20194, + 1.09826, + 1.21022, + 1.23322, + 1.18322, + 1.21803, + 1.12576, + 1.04465, + 1.09941, + 1.26061, + 1.19788, + 1.29197, + 1.10013, + 1.27175, + 1.09435, + 1.09918, + 1.08359, + 1.0781, + 1.2261, + 1.16435, + 1.25847, + 1.17829, + 1.24583, + 1.07368, + 1.12846, + 1.06213, + 1.22504, + 1.30253, + 1.4652, + 1.27216, + 1.2538, + 1.31984, + 1.22178, + 1.59261, + 1.36179, + 1.30396, + 1.36935, + 0.996679, + 1.21832, + 1.06071, + 1.33719, + 1.05711, + 1.01937, + 1.28109, + 1.19835, + 1.14849, + 1.22351, + 1.02332, + 1.07756, + 1.20856, + 1.21726, + 1.10843, + 1.20263, + 1.09455, + 1.09018, + 1.1698, + 1.09742, + 1.20776, + 1.10128, + 1.21941, + 1.10173, + 1.14295, + 1.22707, + 1.25119, + 1.15338, + 1.15773, + 1.1574, + 1.18209, + 1.16355, + 1.2526, + 1.20632, + 1.06499, + 1.08241, + 1.30988, + 1.30657, + 1.43131, + 1.2878, + 1.29887, + 1.35942, + 1.55406, + 1.24562, + 1.14184, + 1.13441, + 1.08653, + 1.24455, + 1.05094, + 1.32982, + 1.16057, + 1.03679, + 1.18101, + 1.25019, + 1.17951, + 1.03869, + 1.3036, + 1.02111, + 1.24628, + 1.06374, + 1.18218, + 1.11238, + 1.2232, + 1.10736, + 1.1374, + 1.26377, + 1.24702, + 1.34437, + 1.09683, + 1.25885, + 1.03085, +] +K2 = [ + 0.495172, + 0.456066, + 0.41051, + 0.483741, + 0.451438, + 0.335015, + 0.13779, + 0.0845594, + -0.625154, + -0.718537, + -0.614467, + -0.637731, + -1.56218, + -2.5706, + -2.85071, + -2.20399, + -1.17888, + -1.02953, + -0.445578, + 0.051206, + 0.0952012, + 0.114029, + -0.62022, + 0.0170489, + 0.307267, + 0.338932, + 0.345823, + 0.330729, + 0.308163, + 0.441216, + 0.502429, + 0.416836, + 0.479956, + 0.485236, + 0.440744, + 0.334737, + -0.0410915, + -0.455159, + -0.752267, + -1.04928, + -1.06893, + -2.29096, + -2.26737, + -3.1572, + -3.08108, + -3.20892, + -3.27129, + -2.89255, + -2.53226, + -1.5429, + -0.436992, + 0.108906, + 0.372582, + 0.322518, + 0.474249, + 0.456065, + 0.457558, + 0.482369, + 0.45976, + 0.491782, + 0.436978, + 0.442762, + 0.432519, + 0.478053, + 0.453599, + 0.223272, + -0.132486, + -0.689866, + 0.0370908, + 0.0362719, + 0.10264, + 0.163657, + 0.154541, + 0.372946, + 0.432424, + 0.319959, + 0.250292, + 0.368056, + 0.481423, + 0.406364, + 0.292489, + 0.0673104, + -0.29432, + -0.939232, + -1.927, + -2.18706, + -2.47478, + -2.65895, + -3.12768, + -3.2165, + -3.31111, + -3.16634, + -3.1795, + -2.78982, + -2.82076, + -2.61436, + -2.2993, + -1.76414, + -1.41035, + -1.06146, + -2.19168, + -2.71668, + -2.05913, + -0.924032, + -0.372202, + -0.0289572, + -0.472779, + -1.33054, + -2.76354, + -2.53466, + -2.94761, + -2.80399, + -3.08119, + -3.09044, + -2.86859, + -2.63001, + -1.46378, + -0.541119, + 0.523248, + 0.146024, + -0.0599811, + 0.406023, + 0.408329, + 0.460156, + 0.495234, + 0.446228, + 0.505498, + 0.42382, + 0.487574, + 0.421683, + 0.508657, + 0.294492, + -0.255401, + 0.144412, + 0.34611, + 0.370172, + -0.29446, + 0.330497, + 0.321012, + 0.303055, + 0.319245, + -1.94298, + -1.17325, + -0.470769, + -0.900235, + -0.145793, + 0.156298, + 0.109494, + 0.10749, + 0.1456, + 0.340028, + 0.495982, + 0.438926, + 0.499742, + 0.444352, + 0.518762, + 0.494655, + 0.479316, + 0.443408, + 0.500227, + 0.394569, + 0.330562, + 0.48503, + 0.451944, + 0.327074, + 0.12035, + 0.351572, + 0.359925, + 0.363342, + 0.361338, + -0.130087, + 0.0808711, + 0.204982, + 0.366471, + 0.412965, + 0.457275, + 0.482909, + 0.458812, + 0.485696, + 0.494342, + 0.477924, + 0.4715, + 0.312006, + 0.135443, + 0.392, + 0.343122, + 0.354555, + 0.083377, + -0.373596, + -0.99949, + -2.46905, + -3.16248, + -3.25642, + -3.24827, + -3.01846, + -2.82295, + -2.46904, + -1.7479, + -1.72326, + -2.94808, + -2.84588, + -1.33981, + -0.83769, + -0.344284, + -2.09224, + -0.34194, + -0.169117, + -1.71205, + -1.37899, + -0.428884, + -1.12172, + 0.0145813, + 0.0721618, + 0.314444, + 0.301532, + 0.475807, + 0.452342, + 0.49173, + 0.481624, + 0.437383, + 0.488331, + 0.419365, + 0.50285, + 0.417895, + 0.472651, + 0.448635, + 0.294955, + 0.347867, + 0.331375, + 0.349691, + 0.370979, + 0.0744396, + -0.476447, + -1.13098, + -1.83794, + -0.380967, + -0.380265, + -2.09781, + -2.89157, + -3.2824, + -3.26186, + -3.17371, + -2.93098, + -2.45546, + -1.26459, + -0.664481, + 0.0233179, + -0.0243138, + -1.74989, + -0.359187, + -1.86717, + -1.40881, + 0.0160553, + 0.310217, + 0.373326, + 0.344446, + -0.388131, + 0.349189, + 0.100287, + 0.429005, + 0.464987, + 0.349951, + 0.130455, + 0.246086, + 0.425423, + 0.423052, + 0.475293, + 0.513705, + 0.534168, + 0.49863, + 0.471324, + 0.499803, +] + +if __name__ == "__main__": + main()