From 5afd63eabe12390605457de41a4f4922515e5157 Mon Sep 17 00:00:00 2001 From: lgv Date: Wed, 5 Nov 2025 17:41:17 +0800 Subject: [PATCH] feat:add ik closed-from solution --- CMakeLists.txt | 1 + data/ik_psi_sweep.csv | 1853 +++++++++++++++ data/plot_data.py | 59 + src/utils/CMakeLists.txt | 47 + src/utils/srs_ik/ik_limit_analyzer.cpp | 629 +++++ src/utils/srs_ik/ik_limit_analyzer.h | 125 + src/utils/srs_ik/srs_ik_slover.cpp | 407 ++++ src/utils/srs_ik/srs_ik_slover.h | 89 + src/utils/srs_ik/srs_ik_test.cpp | 132 ++ .../manif/0.0.5/include/manif/Bundle.h | 17 + third_party/manif/0.0.5/include/manif/Rn.h | 17 + third_party/manif/0.0.5/include/manif/SE2.h | 16 + third_party/manif/0.0.5/include/manif/SE3.h | 15 + .../manif/0.0.5/include/manif/SE_2_3.h | 16 + third_party/manif/0.0.5/include/manif/SGal3.h | 16 + third_party/manif/0.0.5/include/manif/SO2.h | 17 + third_party/manif/0.0.5/include/manif/SO3.h | 16 + .../0.0.5/include/manif/algorithms/average.h | 274 +++ .../0.0.5/include/manif/algorithms/bezier.h | 91 + .../include/manif/algorithms/decasteljau.h | 118 + .../include/manif/algorithms/interpolation.h | 325 +++ .../0.0.5/include/manif/autodiff/autodiff.h | 54 + .../0.0.5/include/manif/autodiff/constants.h | 42 + .../manif/autodiff/local_parameterization.h | 37 + .../manif/0.0.5/include/manif/ceres/ceres.h | 81 + .../0.0.5/include/manif/ceres/ceres_utils.h | 90 + .../0.0.5/include/manif/ceres/constants.h | 26 + .../0.0.5/include/manif/ceres/constraint.h | 147 ++ .../manif/ceres/local_parametrization.h | 46 + .../0.0.5/include/manif/ceres/manifold.h | 61 + .../0.0.5/include/manif/ceres/objective.h | 96 + .../manif/0.0.5/include/manif/constants.h | 68 + .../manif/0.0.5/include/manif/functions.h | 230 ++ .../include/manif/gtest/gtest_eigen_utils.h | 298 +++ .../include/manif/gtest/gtest_manif_utils.h | 133 ++ .../include/manif/impl/assignment_assert.h | 24 + .../manif/0.0.5/include/manif/impl/bracket.h | 35 + .../0.0.5/include/manif/impl/bundle/Bundle.h | 208 ++ .../include/manif/impl/bundle/BundleTangent.h | 191 ++ .../manif/impl/bundle/BundleTangent_base.h | 439 ++++ .../manif/impl/bundle/BundleTangent_map.h | 99 + .../include/manif/impl/bundle/Bundle_base.h | 442 ++++ .../include/manif/impl/bundle/Bundle_map.h | 97 + .../manif/impl/bundle/Bundle_properties.h | 33 + .../manif/0.0.5/include/manif/impl/cast.h | 35 + .../manif/0.0.5/include/manif/impl/eigen.h | 254 ++ .../0.0.5/include/manif/impl/generator.h | 47 + .../0.0.5/include/manif/impl/lie_group_base.h | 735 ++++++ .../manif/0.0.5/include/manif/impl/macro.h | 329 +++ .../manif/0.0.5/include/manif/impl/random.h | 39 + .../manif/0.0.5/include/manif/impl/rn/Rn.h | 141 ++ .../0.0.5/include/manif/impl/rn/RnTangent.h | 130 ++ .../include/manif/impl/rn/RnTangent_base.h | 226 ++ .../include/manif/impl/rn/RnTangent_map.h | 85 + .../0.0.5/include/manif/impl/rn/Rn_base.h | 224 ++ .../0.0.5/include/manif/impl/rn/Rn_map.h | 87 + .../include/manif/impl/rn/Rn_properties.h | 33 + .../manif/0.0.5/include/manif/impl/se2/SE2.h | 226 ++ .../0.0.5/include/manif/impl/se2/SE2Tangent.h | 125 + .../include/manif/impl/se2/SE2Tangent_base.h | 495 ++++ .../include/manif/impl/se2/SE2Tangent_map.h | 89 + .../0.0.5/include/manif/impl/se2/SE2_base.h | 441 ++++ .../0.0.5/include/manif/impl/se2/SE2_map.h | 103 + .../include/manif/impl/se2/SE2_properties.h | 33 + .../manif/0.0.5/include/manif/impl/se3/SE3.h | 217 ++ .../0.0.5/include/manif/impl/se3/SE3Tangent.h | 113 + .../include/manif/impl/se3/SE3Tangent_base.h | 473 ++++ .../include/manif/impl/se3/SE3Tangent_map.h | 89 + .../0.0.5/include/manif/impl/se3/SE3_base.h | 481 ++++ .../0.0.5/include/manif/impl/se3/SE3_map.h | 91 + .../include/manif/impl/se3/SE3_properties.h | 33 + .../0.0.5/include/manif/impl/se_2_3/SE_2_3.h | 230 ++ .../include/manif/impl/se_2_3/SE_2_3Tangent.h | 112 + .../manif/impl/se_2_3/SE_2_3Tangent_base.h | 495 ++++ .../manif/impl/se_2_3/SE_2_3Tangent_map.h | 89 + .../include/manif/impl/se_2_3/SE_2_3_base.h | 491 ++++ .../include/manif/impl/se_2_3/SE_2_3_map.h | 89 + .../manif/impl/se_2_3/SE_2_3_properties.h | 33 + .../0.0.5/include/manif/impl/sgal3/SGal3.h | 254 ++ .../include/manif/impl/sgal3/SGal3Tangent.h | 106 + .../manif/impl/sgal3/SGal3Tangent_base.h | 635 +++++ .../manif/impl/sgal3/SGal3Tangent_map.h | 85 + .../include/manif/impl/sgal3/SGal3_base.h | 484 ++++ .../include/manif/impl/sgal3/SGal3_map.h | 84 + .../manif/impl/sgal3/SGal3_properties.h | 31 + .../manif/0.0.5/include/manif/impl/so2/SO2.h | 152 ++ .../0.0.5/include/manif/impl/so2/SO2Tangent.h | 122 + .../include/manif/impl/so2/SO2Tangent_base.h | 240 ++ .../include/manif/impl/so2/SO2Tangent_map.h | 85 + .../0.0.5/include/manif/impl/so2/SO2_base.h | 355 +++ .../0.0.5/include/manif/impl/so2/SO2_map.h | 91 + .../include/manif/impl/so2/SO2_properties.h | 33 + .../manif/0.0.5/include/manif/impl/so3/SO3.h | 183 ++ .../0.0.5/include/manif/impl/so3/SO3Tangent.h | 112 + .../include/manif/impl/so3/SO3Tangent_base.h | 342 +++ .../include/manif/impl/so3/SO3Tangent_map.h | 89 + .../0.0.5/include/manif/impl/so3/SO3_base.h | 440 ++++ .../0.0.5/include/manif/impl/so3/SO3_map.h | 95 + .../include/manif/impl/so3/SO3_properties.h | 33 + .../0.0.5/include/manif/impl/tangent_base.h | 978 ++++++++ .../manif/0.0.5/include/manif/impl/traits.h | 181 ++ .../manif/0.0.5/include/manif/impl/utils.h | 57 + .../manif/0.0.5/include/manif/impl/vee.h | 37 + third_party/manif/0.0.5/include/manif/manif.h | 21 + .../manif/0.0.5/include/tl/optional.hpp | 2063 +++++++++++++++++ .../0.0.5/share/manif/cmake/manifConfig.cmake | 44 + .../manif/cmake/manifConfigVersion.cmake | 48 + .../share/manif/cmake/manifTargets.cmake | 99 + 108 files changed, 21749 insertions(+) create mode 100644 data/ik_psi_sweep.csv create mode 100644 data/plot_data.py create mode 100644 src/utils/srs_ik/ik_limit_analyzer.cpp create mode 100644 src/utils/srs_ik/ik_limit_analyzer.h create mode 100644 src/utils/srs_ik/srs_ik_slover.cpp create mode 100644 src/utils/srs_ik/srs_ik_slover.h create mode 100644 src/utils/srs_ik/srs_ik_test.cpp create mode 100644 third_party/manif/0.0.5/include/manif/Bundle.h create mode 100644 third_party/manif/0.0.5/include/manif/Rn.h create mode 100644 third_party/manif/0.0.5/include/manif/SE2.h create mode 100644 third_party/manif/0.0.5/include/manif/SE3.h create mode 100644 third_party/manif/0.0.5/include/manif/SE_2_3.h create mode 100644 third_party/manif/0.0.5/include/manif/SGal3.h create mode 100644 third_party/manif/0.0.5/include/manif/SO2.h create mode 100644 third_party/manif/0.0.5/include/manif/SO3.h create mode 100644 third_party/manif/0.0.5/include/manif/algorithms/average.h create mode 100644 third_party/manif/0.0.5/include/manif/algorithms/bezier.h create mode 100644 third_party/manif/0.0.5/include/manif/algorithms/decasteljau.h create mode 100644 third_party/manif/0.0.5/include/manif/algorithms/interpolation.h create mode 100644 third_party/manif/0.0.5/include/manif/autodiff/autodiff.h create mode 100644 third_party/manif/0.0.5/include/manif/autodiff/constants.h create mode 100644 third_party/manif/0.0.5/include/manif/autodiff/local_parameterization.h create mode 100644 third_party/manif/0.0.5/include/manif/ceres/ceres.h create mode 100644 third_party/manif/0.0.5/include/manif/ceres/ceres_utils.h create mode 100644 third_party/manif/0.0.5/include/manif/ceres/constants.h create mode 100644 third_party/manif/0.0.5/include/manif/ceres/constraint.h create mode 100644 third_party/manif/0.0.5/include/manif/ceres/local_parametrization.h create mode 100644 third_party/manif/0.0.5/include/manif/ceres/manifold.h create mode 100644 third_party/manif/0.0.5/include/manif/ceres/objective.h create mode 100644 third_party/manif/0.0.5/include/manif/constants.h create mode 100644 third_party/manif/0.0.5/include/manif/functions.h create mode 100644 third_party/manif/0.0.5/include/manif/gtest/gtest_eigen_utils.h create mode 100644 third_party/manif/0.0.5/include/manif/gtest/gtest_manif_utils.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/assignment_assert.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bracket.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bundle/Bundle.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bundle/BundleTangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bundle/BundleTangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bundle/BundleTangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bundle/Bundle_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bundle/Bundle_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/bundle/Bundle_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/cast.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/eigen.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/generator.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/lie_group_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/macro.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/random.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/rn/Rn.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/rn/RnTangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/rn/RnTangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/rn/RnTangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/rn/Rn_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/rn/Rn_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/rn/Rn_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se2/SE2.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se2/SE2Tangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se2/SE2Tangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se2/SE2Tangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se2/SE2_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se2/SE2_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se2/SE2_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se3/SE3.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se3/SE3Tangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se3/SE3Tangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se3/SE3Tangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se3/SE3_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se3/SE3_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se3/SE3_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se_2_3/SE_2_3.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se_2_3/SE_2_3Tangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se_2_3/SE_2_3Tangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se_2_3/SE_2_3Tangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se_2_3/SE_2_3_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se_2_3/SE_2_3_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/se_2_3/SE_2_3_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/sgal3/SGal3.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/sgal3/SGal3Tangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/sgal3/SGal3Tangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/sgal3/SGal3Tangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/sgal3/SGal3_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/sgal3/SGal3_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/sgal3/SGal3_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so2/SO2.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so2/SO2Tangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so2/SO2Tangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so2/SO2Tangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so2/SO2_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so2/SO2_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so2/SO2_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so3/SO3.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so3/SO3Tangent.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so3/SO3Tangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so3/SO3Tangent_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so3/SO3_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so3/SO3_map.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/so3/SO3_properties.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/tangent_base.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/traits.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/utils.h create mode 100644 third_party/manif/0.0.5/include/manif/impl/vee.h create mode 100644 third_party/manif/0.0.5/include/manif/manif.h create mode 100644 third_party/manif/0.0.5/include/tl/optional.hpp create mode 100644 third_party/manif/0.0.5/share/manif/cmake/manifConfig.cmake create mode 100644 third_party/manif/0.0.5/share/manif/cmake/manifConfigVersion.cmake create mode 100644 third_party/manif/0.0.5/share/manif/cmake/manifTargets.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 01021bbf..38656800 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,6 +64,7 @@ include_directories( ${PROTO_BINARY_DIR} ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src/devices + ${PROJECT_SOURCE_DIR}/src/utils ${PROJECT_SOURCE_DIR}/third_party ) diff --git a/data/ik_psi_sweep.csv b/data/ik_psi_sweep.csv new file mode 100644 index 00000000..91552484 --- /dev/null +++ b/data/ik_psi_sweep.csv @@ -0,0 +1,1853 @@ +psi,q1,q2,q3,q4,q5,q6,q7 +-0.953870002,1.755217003,1.755565672,-0.652921923,1.570796327,2.708580919,0.500000000,1.723519129 +-0.952870002,1.754646651,1.755137128,-0.652318065,1.570796327,2.707712538,0.500643001,1.723179979 +-0.951870002,1.754076081,1.754708924,-0.651714007,1.570796327,2.706843602,0.501285743,1.722840073 +-0.950870002,1.753505294,1.754281058,-0.651109749,1.570796327,2.705974111,0.501928226,1.722499411 +-0.949870002,1.752934289,1.753853531,-0.650505290,1.570796327,2.705104064,0.502570449,1.722157990 +-0.948870002,1.752363067,1.753426344,-0.649900631,1.570796327,2.704233459,0.503212411,1.721815812 +-0.947870002,1.751791627,1.752999497,-0.649295771,1.570796327,2.703362295,0.503854112,1.721472874 +-0.946870002,1.751219970,1.752572990,-0.648690712,1.570796327,2.702490572,0.504495551,1.721129177 +-0.945870002,1.750648095,1.752146823,-0.648085451,1.570796327,2.701618287,0.505136727,1.720784719 +-0.944870002,1.750076003,1.751720997,-0.647479990,1.570796327,2.700745441,0.505777639,1.720439499 +-0.943870002,1.749503693,1.751295511,-0.646874329,1.570796327,2.699872032,0.506418288,1.720093517 +-0.942870002,1.748931166,1.750870367,-0.646268468,1.570796327,2.698998059,0.507058672,1.719746773 +-0.941870002,1.748358421,1.750445564,-0.645662405,1.570796327,2.698123520,0.507698791,1.719399264 +-0.940870002,1.747785459,1.750021103,-0.645056143,1.570796327,2.697248415,0.508338644,1.719050991 +-0.939870002,1.747212279,1.749596983,-0.644449680,1.570796327,2.696372743,0.508978231,1.718701953 +-0.938870002,1.746638882,1.749173206,-0.643843016,1.570796327,2.695496502,0.509617550,1.718352148 +-0.937870002,1.746065268,1.748749772,-0.643236152,1.570796327,2.694619692,0.510256601,1.718001577 +-0.936870002,1.745491436,1.748326680,-0.642629087,1.570796327,2.693742312,0.510895383,1.717650237 +-0.935870002,1.744917387,1.747903931,-0.642021822,1.570796327,2.692864359,0.511533896,1.717298130 +-0.934870002,1.744343121,1.747481525,-0.641414356,1.570796327,2.691985834,0.512172140,1.716945253 +-0.933870002,1.743768637,1.747059463,-0.640806690,1.570796327,2.691106735,0.512810112,1.716591606 +-0.932870002,1.743193936,1.746637744,-0.640198823,1.570796327,2.690227061,0.513447814,1.716237188 +-0.931870002,1.742619018,1.746216370,-0.639590756,1.570796327,2.689346811,0.514085243,1.715881999 +-0.930870002,1.742043883,1.745795340,-0.638982488,1.570796327,2.688465984,0.514722400,1.715526037 +-0.929870002,1.741468530,1.745374655,-0.638374019,1.570796327,2.687584578,0.515359283,1.715169302 +-0.928870002,1.740892960,1.744954314,-0.637765350,1.570796327,2.686702593,0.515995893,1.714811793 +-0.927870002,1.740317173,1.744534319,-0.637156480,1.570796327,2.685820028,0.516632228,1.714453509 +-0.926870002,1.739741169,1.744114669,-0.636547410,1.570796327,2.684936881,0.517268287,1.714094449 +-0.925870002,1.739164948,1.743695365,-0.635938139,1.570796327,2.684053152,0.517904071,1.713734613 +-0.924870002,1.738588510,1.743276407,-0.635328667,1.570796327,2.683168839,0.518539578,1.713374000 +-0.923870002,1.738011854,1.742857795,-0.634718995,1.570796327,2.682283941,0.519174807,1.713012609 +-0.922870002,1.737434982,1.742439529,-0.634109122,1.570796327,2.681398457,0.519809759,1.712650439 +-0.921870002,1.736857893,1.742021611,-0.633499049,1.570796327,2.680512386,0.520444431,1.712287489 +-0.920870002,1.736280586,1.741604039,-0.632888775,1.570796327,2.679625727,0.521078825,1.711923759 +-0.919870002,1.735703063,1.741186814,-0.632278300,1.570796327,2.678738479,0.521712938,1.711559248 +-0.918870002,1.735125323,1.740769938,-0.631667625,1.570796327,2.677850641,0.522346770,1.711193955 +-0.917870002,1.734547366,1.740353409,-0.631056749,1.570796327,2.676962211,0.522980321,1.710827879 +-0.916870002,1.733969192,1.739937228,-0.630445672,1.570796327,2.676073189,0.523613590,1.710461020 +-0.915870002,1.733390801,1.739521396,-0.629834395,1.570796327,2.675183573,0.524246576,1.710093376 +-0.914870002,1.732812193,1.739105912,-0.629222917,1.570796327,2.674293362,0.524879278,1.709724946 +-0.913870002,1.732233369,1.738690777,-0.628611238,1.570796327,2.673402556,0.525511696,1.709355731 +-0.912870002,1.731654327,1.738275991,-0.627999359,1.570796327,2.672511153,0.526143830,1.708985729 +-0.911870002,1.731075069,1.737861555,-0.627387280,1.570796327,2.671619152,0.526775677,1.708614939 +-0.910870002,1.730495595,1.737447469,-0.626774999,1.570796327,2.670726552,0.527407239,1.708243361 +-0.909870002,1.729915903,1.737033732,-0.626162518,1.570796327,2.669833351,0.528038513,1.707870994 +-0.908870002,1.729335995,1.736620346,-0.625549837,1.570796327,2.668939549,0.528669500,1.707497837 +-0.907870002,1.728755870,1.736207311,-0.624936954,1.570796327,2.668045145,0.529300198,1.707123888 +-0.906870002,1.728175529,1.735794626,-0.624323871,1.570796327,2.667150138,0.529930607,1.706749148 +-0.905870002,1.727594971,1.735382292,-0.623710588,1.570796327,2.666254526,0.530560726,1.706373616 +-0.904870002,1.727014197,1.734970310,-0.623097104,1.570796327,2.665358308,0.531190555,1.705997290 +-0.903870002,1.726433206,1.734558679,-0.622483419,1.570796327,2.664461483,0.531820093,1.705620170 +-0.902870002,1.725851999,1.734147400,-0.621869534,1.570796327,2.663564051,0.532449339,1.705242255 +-0.901870002,1.725270575,1.733736474,-0.621255448,1.570796327,2.662666009,0.533078292,1.704863545 +-0.900870002,1.724688935,1.733325899,-0.620641161,1.570796327,2.661767358,0.533706952,1.704484038 +-0.899870002,1.724107079,1.732915678,-0.620026674,1.570796327,2.660868095,0.534335317,1.704103733 +-0.898870002,1.723525006,1.732505809,-0.619411986,1.570796327,2.659968220,0.534963388,1.703722631 +-0.897870002,1.722942717,1.732096294,-0.618797098,1.570796327,2.659067731,0.535591164,1.703340729 +-0.896870002,1.722360211,1.731687132,-0.618182009,1.570796327,2.658166628,0.536218644,1.702958027 +-0.895870002,1.721777490,1.731278324,-0.617566720,1.570796327,2.657264909,0.536845826,1.702574525 +-0.894870002,1.721194552,1.730869871,-0.616951230,1.570796327,2.656362574,0.537472711,1.702190222 +-0.893870002,1.720611398,1.730461771,-0.616335539,1.570796327,2.655459620,0.538099298,1.701805116 +-0.892870002,1.720028028,1.730054026,-0.615719648,1.570796327,2.654556048,0.538725586,1.701419207 +-0.891870002,1.719444442,1.729646636,-0.615103557,1.570796327,2.653651856,0.539351574,1.701032494 +-0.890870002,1.718860640,1.729239601,-0.614487265,1.570796327,2.652747042,0.539977261,1.700644976 +-0.889870002,1.718276622,1.728832921,-0.613870772,1.570796327,2.651841606,0.540602648,1.700256653 +-0.888870002,1.717692388,1.728426598,-0.613254079,1.570796327,2.650935547,0.541227732,1.699867524 +-0.887870002,1.717107937,1.728020630,-0.612637185,1.570796327,2.650028863,0.541852514,1.699477587 +-0.886870002,1.716523272,1.727615018,-0.612020091,1.570796327,2.649121554,0.542476993,1.699086842 +-0.885870002,1.715938390,1.727209763,-0.611402797,1.570796327,2.648213618,0.543101167,1.698695289 +-0.884870002,1.715353292,1.726804864,-0.610785302,1.570796327,2.647305054,0.543725037,1.698302925 +-0.883870002,1.714767979,1.726400323,-0.610167606,1.570796327,2.646395861,0.544348601,1.697909752 +-0.882870002,1.714182450,1.725996139,-0.609549710,1.570796327,2.645486038,0.544971859,1.697515766 +-0.881870002,1.713596705,1.725592312,-0.608931614,1.570796327,2.644575584,0.545594811,1.697120969 +-0.880870002,1.713010744,1.725188844,-0.608313317,1.570796327,2.643664498,0.546217454,1.696725359 +-0.879870002,1.712424568,1.724785733,-0.607694820,1.570796327,2.642752778,0.546839789,1.696328935 +-0.878870002,1.711838177,1.724382981,-0.607076123,1.570796327,2.641840424,0.547461815,1.695931696 +-0.877870002,1.711251569,1.723980587,-0.606457225,1.570796327,2.640927434,0.548083531,1.695533642 +-0.876870002,1.710664747,1.723578553,-0.605838127,1.570796327,2.640013808,0.548704936,1.695134772 +-0.875870002,1.710077709,1.723176877,-0.605218828,1.570796327,2.639099543,0.549326030,1.694735084 +-0.874870002,1.709490455,1.722775561,-0.604599329,1.570796327,2.638184640,0.549946812,1.694334578 +-0.873870002,1.708902986,1.722374605,-0.603979630,1.570796327,2.637269097,0.550567281,1.693933254 +-0.872870002,1.708315302,1.721974009,-0.603359731,1.570796327,2.636352912,0.551187437,1.693531110 +-0.871870002,1.707727403,1.721573773,-0.602739631,1.570796327,2.635436085,0.551807278,1.693128146 +-0.870870002,1.707139288,1.721173897,-0.602119331,1.570796327,2.634518615,0.552426804,1.692724360 +-0.869870002,1.706550958,1.720774383,-0.601498831,1.570796327,2.633600500,0.553046015,1.692319752 +-0.868870002,1.705962413,1.720375229,-0.600878131,1.570796327,2.632681740,0.553664909,1.691914322 +-0.867870002,1.705373653,1.719976437,-0.600257231,1.570796327,2.631762333,0.554283485,1.691508067 +-0.866870002,1.704784678,1.719578006,-0.599636130,1.570796327,2.630842278,0.554901744,1.691100988 +-0.865870002,1.704195488,1.719179938,-0.599014829,1.570796327,2.629921574,0.555519684,1.690693084 +-0.864870002,1.703606083,1.718782231,-0.598393328,1.570796327,2.629000220,0.556137304,1.690284353 +-0.863870002,1.703016463,1.718384887,-0.597771627,1.570796327,2.628078214,0.556754604,1.689874795 +-0.862870002,1.702426628,1.717987906,-0.597149726,1.570796327,2.627155557,0.557371583,1.689464409 +-0.861870002,1.701836579,1.717591287,-0.596527625,1.570796327,2.626232246,0.557988240,1.689053195 +-0.860870002,1.701246314,1.717195032,-0.595905324,1.570796327,2.625308280,0.558604575,1.688641150 +-0.859870002,1.700655835,1.716799141,-0.595282823,1.570796327,2.624383659,0.559220586,1.688228276 +-0.858870002,1.700065142,1.716403613,-0.594660122,1.570796327,2.623458381,0.559836274,1.687814570 +-0.857870002,1.699474233,1.716008449,-0.594037221,1.570796327,2.622532445,0.560451636,1.687400032 +-0.856870002,1.698883111,1.715613650,-0.593414120,1.570796327,2.621605851,0.561066673,1.686984661 +-0.855870002,1.698291773,1.715219215,-0.592790819,1.570796327,2.620678596,0.561681384,1.686568456 +-0.854870002,1.697700221,1.714825145,-0.592167318,1.570796327,2.619750679,0.562295767,1.686151416 +-0.853870002,1.697108455,1.714431440,-0.591543617,1.570796327,2.618822101,0.562909823,1.685733541 +-0.852870002,1.696516475,1.714038101,-0.590919716,1.570796327,2.617892859,0.563523550,1.685314830 +-0.851870002,1.695924280,1.713645127,-0.590295616,1.570796327,2.616962952,0.564136948,1.684895281 +-0.850870002,1.695331871,1.713252519,-0.589671316,1.570796327,2.616032380,0.564750016,1.684474895 +-0.849870002,1.694739248,1.712860278,-0.589046816,1.570796327,2.615101141,0.565362753,1.684053669 +-0.848870002,1.694146410,1.712468403,-0.588422117,1.570796327,2.614169234,0.565975158,1.683631604 +-0.847870002,1.693553359,1.712076894,-0.587797217,1.570796327,2.613236658,0.566587230,1.683208699 +-0.846870002,1.692960093,1.711685753,-0.587172118,1.570796327,2.612303411,0.567198970,1.682784952 +-0.845870002,1.692366614,1.711294979,-0.586546820,1.570796327,2.611369494,0.567810375,1.682360363 +-0.844870002,1.691772920,1.710904573,-0.585921321,1.570796327,2.610434904,0.568421446,1.681934930 +-0.843870002,1.691179013,1.710514534,-0.585295624,1.570796327,2.609499640,0.569032181,1.681508654 +-0.842870002,1.690584892,1.710124864,-0.584669726,1.570796327,2.608563702,0.569642580,1.681081534 +-0.841870002,1.689990557,1.709735561,-0.584043629,1.570796327,2.607627088,0.570252642,1.680653567 +-0.840870002,1.689396009,1.709346628,-0.583417333,1.570796327,2.606689797,0.570862366,1.680224754 +-0.839870002,1.688801247,1.708958064,-0.582790837,1.570796327,2.605751829,0.571471751,1.679795094 +-0.838870002,1.688206271,1.708569868,-0.582164142,1.570796327,2.604813181,0.572080797,1.679364586 +-0.837870002,1.687611082,1.708182042,-0.581537247,1.570796327,2.603873853,0.572689502,1.678933229 +-0.836870002,1.687015679,1.707794586,-0.580910153,1.570796327,2.602933844,0.573297867,1.678501022 +-0.835870002,1.686420063,1.707407500,-0.580282860,1.570796327,2.601993152,0.573905890,1.678067964 +-0.834870002,1.685824234,1.707020784,-0.579655368,1.570796327,2.601051776,0.574513570,1.677634055 +-0.833870002,1.685228191,1.706634439,-0.579027676,1.570796327,2.600109716,0.575120907,1.677199294 +-0.832870002,1.684631935,1.706248464,-0.578399785,1.570796327,2.599166971,0.575727900,1.676763679 +-0.831870002,1.684035466,1.705862861,-0.577771695,1.570796327,2.598223538,0.576334547,1.676327211 +-0.830870002,1.683438784,1.705477629,-0.577143405,1.570796327,2.597279417,0.576940849,1.675889887 +-0.829870002,1.682841889,1.705092768,-0.576514917,1.570796327,2.596334607,0.577546805,1.675451708 +-0.828870002,1.682244781,1.704708280,-0.575886229,1.570796327,2.595389107,0.578152413,1.675012673 +-0.827870002,1.681647459,1.704324163,-0.575257343,1.570796327,2.594442915,0.578757673,1.674572779 +-0.826870002,1.681049926,1.703940419,-0.574628257,1.570796327,2.593496031,0.579362585,1.674132028 +-0.825870002,1.680452179,1.703557048,-0.573998973,1.570796327,2.592548454,0.579967146,1.673690418 +-0.824870002,1.679854220,1.703174050,-0.573369489,1.570796327,2.591600181,0.580571357,1.673247947 +-0.823870002,1.679256047,1.702791425,-0.572739807,1.570796327,2.590651213,0.581175217,1.672804616 +-0.822870002,1.678657663,1.702409173,-0.572109926,1.570796327,2.589701548,0.581778725,1.672360423 +-0.821870002,1.678059066,1.702027295,-0.571479846,1.570796327,2.588751185,0.582381879,1.671915368 +-0.820870002,1.677460256,1.701645792,-0.570849567,1.570796327,2.587800123,0.582984680,1.671469450 +-0.819870002,1.676861234,1.701264662,-0.570219090,1.570796327,2.586848360,0.583587127,1.671022667 +-0.818870002,1.676262000,1.700883907,-0.569588414,1.570796327,2.585895896,0.584189218,1.670575019 +-0.817870002,1.675662553,1.700503527,-0.568957539,1.570796327,2.584942729,0.584790953,1.670126506 +-0.816870002,1.675062894,1.700123522,-0.568326466,1.570796327,2.583988859,0.585392331,1.669677125 +-0.815870002,1.674463023,1.699743893,-0.567695194,1.570796327,2.583034284,0.585993351,1.669226878 +-0.814870002,1.673862940,1.699364639,-0.567063724,1.570796327,2.582079003,0.586594013,1.668775761 +-0.813870002,1.673262646,1.698985761,-0.566432055,1.570796327,2.581123016,0.587194315,1.668323776 +-0.812870002,1.672662139,1.698607260,-0.565800188,1.570796327,2.580166320,0.587794258,1.667870920 +-0.811870002,1.672061420,1.698229134,-0.565168122,1.570796327,2.579208915,0.588393839,1.667417194 +-0.810870002,1.671460489,1.697851386,-0.564535859,1.570796327,2.578250799,0.588993058,1.666962596 +-0.809870002,1.670859347,1.697474014,-0.563903396,1.570796327,2.577291973,0.589591915,1.666507125 +-0.808870002,1.670257993,1.697097020,-0.563270736,1.570796327,2.576332433,0.590190408,1.666050781 +-0.807870002,1.669656428,1.696720404,-0.562637878,1.570796327,2.575372180,0.590788537,1.665593562 +-0.806870002,1.669054651,1.696344165,-0.562004821,1.570796327,2.574411213,0.591386301,1.665135468 +-0.805870002,1.668452663,1.695968304,-0.561371566,1.570796327,2.573449529,0.591983699,1.664676498 +-0.804870002,1.667850463,1.695592822,-0.560738113,1.570796327,2.572487129,0.592580730,1.664216652 +-0.803870002,1.667248052,1.695217718,-0.560104463,1.570796327,2.571524010,0.593177393,1.663755927 +-0.802870002,1.666645430,1.694842993,-0.559470614,1.570796327,2.570560172,0.593773688,1.663294324 +-0.801870002,1.666042597,1.694468647,-0.558836567,1.570796327,2.569595614,0.594369614,1.662831842 +-0.800870002,1.665439553,1.694094681,-0.558202323,1.570796327,2.568630335,0.594965170,1.662368480 +-0.799870002,1.664836297,1.693721095,-0.557567881,1.570796327,2.567664333,0.595560355,1.661904236 +-0.798870002,1.664232831,1.693347888,-0.556933241,1.570796327,2.566697607,0.596155168,1.661439110 +-0.797870002,1.663629154,1.692975062,-0.556298403,1.570796327,2.565730157,0.596749609,1.660973102 +-0.796870002,1.663025266,1.692602616,-0.555663368,1.570796327,2.564761981,0.597343676,1.660506210 +-0.795870002,1.662421168,1.692230551,-0.555028135,1.570796327,2.563793078,0.597937369,1.660038434 +-0.794870002,1.661816859,1.691858867,-0.554392705,1.570796327,2.562823446,0.598530686,1.659569772 +-0.793870002,1.661212339,1.691487564,-0.553757077,1.570796327,2.561853086,0.599123628,1.659100224 +-0.792870002,1.660607609,1.691116643,-0.553121252,1.570796327,2.560881996,0.599716193,1.658629789 +-0.791870002,1.660002669,1.690746104,-0.552485229,1.570796327,2.559910174,0.600308381,1.658158467 +-0.790870002,1.659397518,1.690375946,-0.551849009,1.570796327,2.558937619,0.600900190,1.657686255 +-0.789870002,1.658792157,1.690006172,-0.551212592,1.570796327,2.557964331,0.601491620,1.657213155 +-0.788870002,1.658186586,1.689636779,-0.550575978,1.570796327,2.556990309,0.602082669,1.656739163 +-0.787870002,1.657580805,1.689267770,-0.549939166,1.570796327,2.556015550,0.602673338,1.656264281 +-0.786870002,1.656974814,1.688899144,-0.549302158,1.570796327,2.555040055,0.603263625,1.655788507 +-0.785870002,1.656368614,1.688530902,-0.548664952,1.570796327,2.554063822,0.603853529,1.655311839 +-0.784870002,1.655762203,1.688163043,-0.548027550,1.570796327,2.553086849,0.604443049,1.654834278 +-0.783870002,1.655155583,1.687795568,-0.547389950,1.570796327,2.552109137,0.605032185,1.654355823 +-0.782870002,1.654548753,1.687428477,-0.546752154,1.570796327,2.551130683,0.605620936,1.653876471 +-0.781870002,1.653941713,1.687061771,-0.546114161,1.570796327,2.550151487,0.606209301,1.653396224 +-0.780870002,1.653334464,1.686695450,-0.545475971,1.570796327,2.549171547,0.606797279,1.652915080 +-0.779870002,1.652727005,1.686329514,-0.544837585,1.570796327,2.548190863,0.607384868,1.652433037 +-0.778870002,1.652119338,1.685963963,-0.544199002,1.570796327,2.547209433,0.607972070,1.651950096 +-0.777870002,1.651511461,1.685598798,-0.543560222,1.570796327,2.546227256,0.608558881,1.651466256 +-0.776870002,1.650903375,1.685234018,-0.542921246,1.570796327,2.545244332,0.609145303,1.650981515 +-0.775870002,1.650295080,1.684869625,-0.542282074,1.570796327,2.544260658,0.609731333,1.650495872 +-0.774870002,1.649686576,1.684505618,-0.541642705,1.570796327,2.543276235,0.610316970,1.650009328 +-0.773870002,1.649077863,1.684141998,-0.541003140,1.570796327,2.542291060,0.610902215,1.649521880 +-0.772870002,1.648468941,1.683778765,-0.540363378,1.570796327,2.541305133,0.611487066,1.649033529 +-0.771870002,1.647859810,1.683415919,-0.539723421,1.570796327,2.540318453,0.612071522,1.648544273 +-0.770870002,1.647250471,1.683053460,-0.539083267,1.570796327,2.539331018,0.612655583,1.648054111 +-0.769870002,1.646640924,1.682691389,-0.538442918,1.570796327,2.538342828,0.613239247,1.647563044 +-0.768870002,1.646031168,1.682329706,-0.537802372,1.570796327,2.537353881,0.613822514,1.647071069 +-0.767870002,1.645421203,1.681968412,-0.537161630,1.570796327,2.536364177,0.614405382,1.646578186 +-0.766870002,1.644811031,1.681607506,-0.536520693,1.570796327,2.535373714,0.614987852,1.646084394 +-0.765870002,1.644200650,1.681246989,-0.535879560,1.570796327,2.534382490,0.615569921,1.645589693 +-0.764870002,1.643590061,1.680886861,-0.535238231,1.570796327,2.533390506,0.616151590,1.645094081 +-0.763870002,1.642979264,1.680527122,-0.534596707,1.570796327,2.532397760,0.616732856,1.644597558 +-0.762870002,1.642368260,1.680167773,-0.533954987,1.570796327,2.531404251,0.617313721,1.644100123 +-0.761870002,1.641757047,1.679808813,-0.533313071,1.570796327,2.530409977,0.617894181,1.643601775 +-0.760870002,1.641145627,1.679450244,-0.532670960,1.570796327,2.529414939,0.618474237,1.643102513 +-0.759870002,1.640533999,1.679092066,-0.532028654,1.570796327,2.528419133,0.619053888,1.642602336 +-0.758870002,1.639922164,1.678734278,-0.531386153,1.570796327,2.527422561,0.619633133,1.642101244 +-0.757870002,1.639310121,1.678376880,-0.530743456,1.570796327,2.526425220,0.620211971,1.641599236 +-0.756870002,1.638697871,1.678019875,-0.530100564,1.570796327,2.525427109,0.620790400,1.641096311 +-0.755870002,1.638085414,1.677663260,-0.529457477,1.570796327,2.524428227,0.621368421,1.640592467 +-0.754870002,1.637472749,1.677307037,-0.528814195,1.570796327,2.523428574,0.621946032,1.640087705 +-0.753870002,1.636859878,1.676951207,-0.528170718,1.570796327,2.522428148,0.622523233,1.639582024 +-0.752870002,1.636246800,1.676595768,-0.527527047,1.570796327,2.521426948,0.623100022,1.639075422 +-0.751870002,1.635633514,1.676240723,-0.526883180,1.570796327,2.520424973,0.623676398,1.638567898 +-0.750870002,1.635020022,1.675886069,-0.526239119,1.570796327,2.519422221,0.624252361,1.638059453 +-0.749870002,1.634406324,1.675531810,-0.525594863,1.570796327,2.518418693,0.624827910,1.637550085 +-0.748870002,1.633792418,1.675177943,-0.524950413,1.570796327,2.517414387,0.625403044,1.637039793 +-0.747870002,1.633178307,1.674824470,-0.524305768,1.570796327,2.516409301,0.625977762,1.636528576 +-0.746870002,1.632563989,1.674471391,-0.523660929,1.570796327,2.515403434,0.626552063,1.636016435 +-0.745870002,1.631949464,1.674118706,-0.523015896,1.570796327,2.514396787,0.627125946,1.635503367 +-0.744870002,1.631334734,1.673766415,-0.522370668,1.570796327,2.513389357,0.627699410,1.634989372 +-0.743870002,1.630719797,1.673414519,-0.521725246,1.570796327,2.512381143,0.628272455,1.634474449 +-0.742870002,1.630104655,1.673063018,-0.521079630,1.570796327,2.511372144,0.628845079,1.633958598 +-0.741870002,1.629489307,1.672711912,-0.520433820,1.570796327,2.510362360,0.629417282,1.633441817 +-0.740870002,1.628873753,1.672361202,-0.519787817,1.570796327,2.509351789,0.629989062,1.632924106 +-0.739870002,1.628257993,1.672010887,-0.519141619,1.570796327,2.508340431,0.630560419,1.632405464 +-0.738870002,1.627642028,1.671660968,-0.518495228,1.570796327,2.507328283,0.631131352,1.631885890 +-0.737870002,1.627025857,1.671311446,-0.517848642,1.570796327,2.506315345,0.631701860,1.631365383 +-0.736870002,1.626409481,1.670962320,-0.517201864,1.570796327,2.505301617,0.632271941,1.630843943 +-0.735870002,1.625792900,1.670613591,-0.516554892,1.570796327,2.504287096,0.632841596,1.630321569 +-0.734870002,1.625176113,1.670265259,-0.515907726,1.570796327,2.503271782,0.633410823,1.629798259 +-0.733870002,1.624559122,1.669917324,-0.515260367,1.570796327,2.502255674,0.633979620,1.629274014 +-0.732870002,1.623941926,1.669569787,-0.514612815,1.570796327,2.501238771,0.634547989,1.628748832 +-0.731870002,1.623324525,1.669222648,-0.513965070,1.570796327,2.500221071,0.635115926,1.628222712 +-0.730870002,1.622706919,1.668875907,-0.513317131,1.570796327,2.499202575,0.635683432,1.627695654 +-0.729870002,1.622089108,1.668529564,-0.512669000,1.570796327,2.498183279,0.636250506,1.627167657 +-0.728870002,1.621471093,1.668183620,-0.512020675,1.570796327,2.497163185,0.636817146,1.626638720 +-0.727870002,1.620852874,1.667838074,-0.511372158,1.570796327,2.496142289,0.637383351,1.626108842 +-0.726870002,1.620234451,1.667492928,-0.510723448,1.570796327,2.495120593,0.637949122,1.625578023 +-0.725870002,1.619615823,1.667148182,-0.510074546,1.570796327,2.494098093,0.638514456,1.625046261 +-0.724870002,1.618996991,1.666803835,-0.509425451,1.570796327,2.493074790,0.639079353,1.624513556 +-0.723870002,1.618377955,1.666459888,-0.508776163,1.570796327,2.492050683,0.639643812,1.623979908 +-0.722870002,1.617758716,1.666116341,-0.508126683,1.570796327,2.491025769,0.640207832,1.623445314 +-0.721870002,1.617139273,1.665773194,-0.507477011,1.570796327,2.490000049,0.640771412,1.622909775 +-0.720870002,1.616519626,1.665430449,-0.506827146,1.570796327,2.488973522,0.641334551,1.622373290 +-0.719870002,1.615899776,1.665088104,-0.506177090,1.570796327,2.487946185,0.641897248,1.621835858 +-0.718870002,1.615279722,1.664746161,-0.505526841,1.570796327,2.486918038,0.642459502,1.621297477 +-0.717870002,1.614659465,1.664404619,-0.504876401,1.570796327,2.485889081,0.643021313,1.620758148 +-0.716870002,1.614039005,1.664063479,-0.504225768,1.570796327,2.484859312,0.643582679,1.620217870 +-0.715870002,1.613418342,1.663722741,-0.503574944,1.570796327,2.483828729,0.644143599,1.619676641 +-0.714870002,1.612797476,1.663382406,-0.502923928,1.570796327,2.482797333,0.644704073,1.619134462 +-0.713870002,1.612176407,1.663042473,-0.502272721,1.570796327,2.481765122,0.645264099,1.618591330 +-0.712870002,1.611555135,1.662702942,-0.501621322,1.570796327,2.480732094,0.645823677,1.618047246 +-0.711870002,1.610933661,1.662363815,-0.500969732,1.570796327,2.479698250,0.646382805,1.617502208 +-0.710870002,1.610311984,1.662025092,-0.500317951,1.570796327,2.478663587,0.646941483,1.616956217 +-0.709870002,1.609690105,1.661686772,-0.499665978,1.570796327,2.477628106,0.647499709,1.616409270 +-0.708870002,1.609068024,1.661348856,-0.499013814,1.570796327,2.476591804,0.648057484,1.615861367 +-0.707870002,1.608445741,1.661011344,-0.498361460,1.570796327,2.475554681,0.648614805,1.615312509 +-0.706870002,1.607823256,1.660674236,-0.497708914,1.570796327,2.474516736,0.649171671,1.614762692 +-0.705870002,1.607200569,1.660337533,-0.497056178,1.570796327,2.473477968,0.649728083,1.614211918 +-0.704870002,1.606577680,1.660001235,-0.496403251,1.570796327,2.472438376,0.650284039,1.613660185 +-0.703870002,1.605954589,1.659665343,-0.495750133,1.570796327,2.471397958,0.650839537,1.613107492 +-0.702870002,1.605331297,1.659329855,-0.495096825,1.570796327,2.470356714,0.651394577,1.612553839 +-0.701870002,1.604707804,1.658994774,-0.494443327,1.570796327,2.469314643,0.651949159,1.611999225 +-0.700870002,1.604084109,1.658660098,-0.493789638,1.570796327,2.468271744,0.652503280,1.611443649 +-0.699870002,1.603460213,1.658325829,-0.493135759,1.570796327,2.467228016,0.653056940,1.610887111 +-0.698870002,1.602836117,1.657991966,-0.492481690,1.570796327,2.466183457,0.653610139,1.610329609 +-0.697870002,1.602211819,1.657658510,-0.491827431,1.570796327,2.465138067,0.654162874,1.609771142 +-0.696870002,1.601587320,1.657325461,-0.491172982,1.570796327,2.464091845,0.654715146,1.609211711 +-0.695870002,1.600962621,1.656992820,-0.490518343,1.570796327,2.463044790,0.655266953,1.608651314 +-0.694870002,1.600337722,1.656660586,-0.489863515,1.570796327,2.461996900,0.655818294,1.608089951 +-0.693870002,1.599712622,1.656328760,-0.489208497,1.570796327,2.460948176,0.656369168,1.607527621 +-0.692870002,1.599087321,1.655997341,-0.488553289,1.570796327,2.459898615,0.656919574,1.606964322 +-0.691870002,1.598461821,1.655666332,-0.487897893,1.570796327,2.458848217,0.657469512,1.606400055 +-0.690870002,1.597836120,1.655335730,-0.487242307,1.570796327,2.457796980,0.658018980,1.605834818 +-0.689870002,1.597210220,1.655005538,-0.486586532,1.570796327,2.456744905,0.658567977,1.605268612 +-0.688870002,1.596584120,1.654675755,-0.485930567,1.570796327,2.455691989,0.659116503,1.604701434 +-0.687870002,1.595957820,1.654346381,-0.485274414,1.570796327,2.454638233,0.659664555,1.604133285 +-0.686870002,1.595331321,1.654017417,-0.484618072,1.570796327,2.453583634,0.660212134,1.603564163 +-0.685870002,1.594704622,1.653688862,-0.483961542,1.570796327,2.452528192,0.660759239,1.602994068 +-0.684870002,1.594077724,1.653360718,-0.483304822,1.570796327,2.451471906,0.661305868,1.602422999 +-0.683870002,1.593450627,1.653032984,-0.482647915,1.570796327,2.450414775,0.661852020,1.601850956 +-0.682870002,1.592823331,1.652705661,-0.481990818,1.570796327,2.449356798,0.662397694,1.601277937 +-0.681870002,1.592195837,1.652378749,-0.481333534,1.570796327,2.448297974,0.662942890,1.600703942 +-0.680870002,1.591568143,1.652052248,-0.480676061,1.570796327,2.447238302,0.663487606,1.600128970 +-0.679870002,1.590940251,1.651726159,-0.480018401,1.570796327,2.446177781,0.664031842,1.599553021 +-0.678870002,1.590312160,1.651400481,-0.479360552,1.570796327,2.445116411,0.664575596,1.598976093 +-0.677870002,1.589683871,1.651075215,-0.478702516,1.570796327,2.444054189,0.665118867,1.598398186 +-0.676870002,1.589055384,1.650750361,-0.478044292,1.570796327,2.442991116,0.665661655,1.597819300 +-0.675870002,1.588426699,1.650425920,-0.477385880,1.570796327,2.441927190,0.666203958,1.597239433 +-0.674870002,1.587797816,1.650101892,-0.476727281,1.570796327,2.440862411,0.666745776,1.596658585 +-0.673870002,1.587168735,1.649778277,-0.476068494,1.570796327,2.439796776,0.667287107,1.596076756 +-0.672870002,1.586539457,1.649455075,-0.475409520,1.570796327,2.438730287,0.667827950,1.595493943 +-0.671870002,1.585909981,1.649132286,-0.474750359,1.570796327,2.437662940,0.668368305,1.594910148 +-0.670870002,1.585280307,1.648809911,-0.474091011,1.570796327,2.436594736,0.668908170,1.594325368 +-0.669870002,1.584650436,1.648487950,-0.473431476,1.570796327,2.435525674,0.669447544,1.593739604 +-0.668870002,1.584020369,1.648166404,-0.472771755,1.570796327,2.434455753,0.669986426,1.593152854 +-0.667870002,1.583390104,1.647845272,-0.472111846,1.570796327,2.433384971,0.670524816,1.592565118 +-0.666870002,1.582759642,1.647524555,-0.471451752,1.570796327,2.432313327,0.671062713,1.591976395 +-0.665870002,1.582128984,1.647204253,-0.470791470,1.570796327,2.431240822,0.671600114,1.591386685 +-0.664870002,1.581498130,1.646884366,-0.470131003,1.570796327,2.430167454,0.672137020,1.590795986 +-0.663870002,1.580867078,1.646564895,-0.469470349,1.570796327,2.429093221,0.672673429,1.590204299 +-0.662870002,1.580235831,1.646245840,-0.468809509,1.570796327,2.428018124,0.673209340,1.589611622 +-0.661870002,1.579604387,1.645927200,-0.468148483,1.570796327,2.426942161,0.673744753,1.589017955 +-0.660870002,1.578972748,1.645608978,-0.467487271,1.570796327,2.425865331,0.674279666,1.588423296 +-0.659870002,1.578340912,1.645291171,-0.466825874,1.570796327,2.424787633,0.674814078,1.587827646 +-0.658870002,1.577708881,1.644973782,-0.466164291,1.570796327,2.423709067,0.675347988,1.587231004 +-0.657870002,1.577076655,1.644656810,-0.465502523,1.570796327,2.422629631,0.675881395,1.586633369 +-0.656870002,1.576444233,1.644340255,-0.464840569,1.570796327,2.421549325,0.676414298,1.586034740 +-0.655870002,1.575811616,1.644024117,-0.464178430,1.570796327,2.420468148,0.676946696,1.585435117 +-0.654870002,1.575178803,1.643708398,-0.463516106,1.570796327,2.419386098,0.677478589,1.584834498 +-0.653870002,1.574545796,1.643393097,-0.462853597,1.570796327,2.418303175,0.678009974,1.584232884 +-0.652870002,1.573912594,1.643078214,-0.462190903,1.570796327,2.417219378,0.678540851,1.583630274 +-0.651870002,1.573279197,1.642763749,-0.461528025,1.570796327,2.416134706,0.679071220,1.583026666 +-0.650870002,1.572645605,1.642449704,-0.460864962,1.570796327,2.415049158,0.679601078,1.582422061 +-0.649870002,1.572011820,1.642136078,-0.460201714,1.570796327,2.413962734,0.680130425,1.581816457 +-0.648870002,1.571377840,1.641822871,-0.459538282,1.570796327,2.412875432,0.680659260,1.581209855 +-0.647870002,1.570743665,1.641510084,-0.458874666,1.570796327,2.411787251,0.681187581,1.580602253 +-0.646870002,1.570109297,1.641197717,-0.458210866,1.570796327,2.410698191,0.681715389,1.579993650 +-0.645870002,1.569474736,1.640885770,-0.457546882,1.570796327,2.409608251,0.682242681,1.579384046 +-0.644870002,1.568839980,1.640574243,-0.456882714,1.570796327,2.408517430,0.682769457,1.578773441 +-0.643870002,1.568205031,1.640263137,-0.456218363,1.570796327,2.407425727,0.683295715,1.578161834 +-0.642870002,1.567569889,1.639952452,-0.455553828,1.570796327,2.406333141,0.683821455,1.577549224 +-0.641870002,1.566934554,1.639642188,-0.454889109,1.570796327,2.405239671,0.684346676,1.576935610 +-0.640870002,1.566299025,1.639332346,-0.454224208,1.570796327,2.404145316,0.684871375,1.576320992 +-0.639870002,1.565663304,1.639022925,-0.453559123,1.570796327,2.403050076,0.685395554,1.575705369 +-0.638870002,1.565027390,1.638713927,-0.452893855,1.570796327,2.401953950,0.685919210,1.575088741 +-0.637870002,1.564391283,1.638405350,-0.452228404,1.570796327,2.400856937,0.686442342,1.574471106 +-0.636870002,1.563754984,1.638097196,-0.451562771,1.570796327,2.399759035,0.686964949,1.573852465 +-0.635870002,1.563118492,1.637789465,-0.450896955,1.570796327,2.398660245,0.687487031,1.573232817 +-0.634870002,1.562481809,1.637482156,-0.450230956,1.570796327,2.397560565,0.688008585,1.572612161 +-0.633870002,1.561844934,1.637175271,-0.449564775,1.570796327,2.396459994,0.688529612,1.571990496 +-0.632870002,1.561207866,1.636868809,-0.448898412,1.570796327,2.395358532,0.689050110,1.571367822 +-0.631870002,1.560570608,1.636562771,-0.448231867,1.570796327,2.394256178,0.689570078,1.570744139 +-0.630870002,1.559933157,1.636257157,-0.447565140,1.570796327,2.393152931,0.690089515,1.570119445 +-0.629870002,1.559295516,1.635951967,-0.446898232,1.570796327,2.392048790,0.690608419,1.569493740 +-0.628870002,1.558657683,1.635647202,-0.446231141,1.570796327,2.390943754,0.691126791,1.568867023 +-0.627870002,1.558019659,1.635342861,-0.445563869,1.570796327,2.389837822,0.691644628,1.568239295 +-0.626870002,1.557381445,1.635038946,-0.444896416,1.570796327,2.388730994,0.692161930,1.567610553 +-0.625870002,1.556743039,1.634735455,-0.444228781,1.570796327,2.387623269,0.692678695,1.566980799 +-0.624870002,1.556104443,1.634432390,-0.443560966,1.570796327,2.386514646,0.693194923,1.566350030 +-0.623870002,1.555465657,1.634129751,-0.442892969,1.570796327,2.385405125,0.693710612,1.565718247 +-0.622870002,1.554826681,1.633827538,-0.442224792,1.570796327,2.384294703,0.694225762,1.565085449 +-0.621870002,1.554187514,1.633525751,-0.441556434,1.570796327,2.383183381,0.694740371,1.564451635 +-0.620870002,1.553548158,1.633224390,-0.440887896,1.570796327,2.382071158,0.695254438,1.563816805 +-0.619870002,1.552908612,1.632923456,-0.440219177,1.570796327,2.380958033,0.695767963,1.563180958 +-0.618870002,1.552268876,1.632622949,-0.439550278,1.570796327,2.379844005,0.696280943,1.562544094 +-0.617870002,1.551628951,1.632322870,-0.438881199,1.570796327,2.378729074,0.696793379,1.561906211 +-0.616870002,1.550988837,1.632023217,-0.438211940,1.570796327,2.377613238,0.697305268,1.561267311 +-0.615870002,1.550348534,1.631723993,-0.437542501,1.570796327,2.376496497,0.697816611,1.560627391 +-0.614870002,1.549708042,1.631425196,-0.436872883,1.570796327,2.375378850,0.698327405,1.559986452 +-0.613870002,1.549067361,1.631126828,-0.436203085,1.570796327,2.374260296,0.698837650,1.559344492 +-0.612870002,1.548426492,1.630828888,-0.435533108,1.570796327,2.373140835,0.699347344,1.558701512 +-0.611870002,1.547785434,1.630531377,-0.434862951,1.570796327,2.372020466,0.699856487,1.558057510 +-0.610870002,1.547144188,1.630234295,-0.434192616,1.570796327,2.370899187,0.700365077,1.557412487 +-0.609870002,1.546502754,1.629937642,-0.433522102,1.570796327,2.369776999,0.700873114,1.556766442 +-0.608870002,1.545861132,1.629641418,-0.432851408,1.570796327,2.368653901,0.701380596,1.556119373 +-0.607870002,1.545219322,1.629345625,-0.432180537,1.570796327,2.367529891,0.701887522,1.555471281 +-0.606870002,1.544577325,1.629050261,-0.431509487,1.570796327,2.366404969,0.702393891,1.554822166 +-0.605870002,1.543935141,1.628755327,-0.430838258,1.570796327,2.365279134,0.702899702,1.554172025 +-0.604870002,1.543292769,1.628460824,-0.430166852,1.570796327,2.364152385,0.703404954,1.553520860 +-0.603870002,1.542650210,1.628166751,-0.429495267,1.570796327,2.363024723,0.703909645,1.552868670 +-0.602870002,1.542007465,1.627873110,-0.428823505,1.570796327,2.361896145,0.704413776,1.552215453 +-0.601870002,1.541364532,1.627579900,-0.428151565,1.570796327,2.360766652,0.704917344,1.551561210 +-0.600870002,1.540721413,1.627287121,-0.427479448,1.570796327,2.359636242,0.705420348,1.550905940 +-0.599870002,1.540078108,1.626994773,-0.426807153,1.570796327,2.358504915,0.705922788,1.550249643 +-0.598870002,1.539434617,1.626702858,-0.426134681,1.570796327,2.357372670,0.706424662,1.549592317 +-0.597870002,1.538790940,1.626411375,-0.425462032,1.570796327,2.356239507,0.706925970,1.548933963 +-0.596870002,1.538147077,1.626120324,-0.424789206,1.570796327,2.355105424,0.707426709,1.548274581 +-0.595870002,1.537503028,1.625829706,-0.424116203,1.570796327,2.353970422,0.707926879,1.547614168 +-0.594870002,1.536858794,1.625539521,-0.423443024,1.570796327,2.352834498,0.708426480,1.546952726 +-0.593870002,1.536214374,1.625249769,-0.422769668,1.570796327,2.351697653,0.708925509,1.546290254 +-0.592870002,1.535569770,1.624960450,-0.422096136,1.570796327,2.350559887,0.709423965,1.545626750 +-0.591870002,1.534924980,1.624671565,-0.421422428,1.570796327,2.349421197,0.709921849,1.544962215 +-0.590870002,1.534280006,1.624383114,-0.420748544,1.570796327,2.348281584,0.710419157,1.544296649 +-0.589870002,1.533634847,1.624095098,-0.420074484,1.570796327,2.347141046,0.710915890,1.543630050 +-0.588870002,1.532989504,1.623807515,-0.419400249,1.570796327,2.345999584,0.711412046,1.542962418 +-0.587870002,1.532343976,1.623520367,-0.418725838,1.570796327,2.344857196,0.711907625,1.542293754 +-0.586870002,1.531698265,1.623233654,-0.418051252,1.570796327,2.343713882,0.712402624,1.541624055 +-0.585870002,1.531052370,1.622947376,-0.417376491,1.570796327,2.342569642,0.712897043,1.540953323 +-0.584870002,1.530406291,1.622661533,-0.416701555,1.570796327,2.341424474,0.713390881,1.540281556 +-0.583870002,1.529760028,1.622376126,-0.416026444,1.570796327,2.340278377,0.713884136,1.539608754 +-0.582870002,1.529113583,1.622091155,-0.415351158,1.570796327,2.339131352,0.714376808,1.538934917 +-0.581870002,1.528466954,1.621806620,-0.414675698,1.570796327,2.337983398,0.714868895,1.538260044 +-0.580870002,1.527820142,1.621522521,-0.414000063,1.570796327,2.336834513,0.715360397,1.537584135 +-0.579870002,1.527173147,1.621238859,-0.413324255,1.570796327,2.335684697,0.715851312,1.536907189 +-0.578870002,1.526525970,1.620955634,-0.412648272,1.570796327,2.334533951,0.716341638,1.536229207 +-0.577870002,1.525878611,1.620672845,-0.411972116,1.570796327,2.333382272,0.716831376,1.535550186 +-0.576870002,1.525231069,1.620390494,-0.411295786,1.570796327,2.332229661,0.717320523,1.534870128 +-0.575870002,1.524583345,1.620108581,-0.410619282,1.570796327,2.331076116,0.717809080,1.534189032 +-0.574870002,1.523935440,1.619827105,-0.409942606,1.570796327,2.329921638,0.718297043,1.533506897 +-0.573870002,1.523287353,1.619546067,-0.409265756,1.570796327,2.328766225,0.718784413,1.532823723 +-0.572870002,1.522639084,1.619265468,-0.408588733,1.570796327,2.327609877,0.719271188,1.532139510 +-0.571870002,1.521990634,1.618985307,-0.407911537,1.570796327,2.326452593,0.719757367,1.531454256 +-0.570870002,1.521342004,1.618705584,-0.407234169,1.570796327,2.325294374,0.720242949,1.530767963 +-0.569870002,1.520693192,1.618426301,-0.406556628,1.570796327,2.324135217,0.720727933,1.530080629 +-0.568870002,1.520044199,1.618147457,-0.405878915,1.570796327,2.322975123,0.721212318,1.529392254 +-0.567870002,1.519395026,1.617869052,-0.405201030,1.570796327,2.321814091,0.721696103,1.528702838 +-0.566870002,1.518745673,1.617591088,-0.404522973,1.570796327,2.320652120,0.722179285,1.528012380 +-0.565870002,1.518096140,1.617313563,-0.403844744,1.570796327,2.319489210,0.722661865,1.527320880 +-0.564870002,1.517446427,1.617036478,-0.403166344,1.570796327,2.318325361,0.723143841,1.526628338 +-0.563870002,1.516796534,1.616759833,-0.402487772,1.570796327,2.317160571,0.723625213,1.525934754 +-0.562870002,1.516146461,1.616483630,-0.401809029,1.570796327,2.315994841,0.724105978,1.525240126 +-0.561870002,1.515496209,1.616207867,-0.401130115,1.570796327,2.314828169,0.724586135,1.524544455 +-0.560870002,1.514845778,1.615932545,-0.400451030,1.570796327,2.313660555,0.725065685,1.523847740 +-0.559870002,1.514195168,1.615657664,-0.399771774,1.570796327,2.312491998,0.725544625,1.523149981 +-0.558870002,1.513544380,1.615383226,-0.399092348,1.570796327,2.311322499,0.726022954,1.522451178 +-0.557870002,1.512893412,1.615109229,-0.398412752,1.570796327,2.310152056,0.726500671,1.521751330 +-0.556870002,1.512242267,1.614835674,-0.397732985,1.570796327,2.308980669,0.726977775,1.521050437 +-0.555870002,1.511590943,1.614562561,-0.397053048,1.570796327,2.307808337,0.727454265,1.520348499 +-0.554870002,1.510939441,1.614289891,-0.396372942,1.570796327,2.306635061,0.727930140,1.519645515 +-0.553870002,1.510287762,1.614017664,-0.395692666,1.570796327,2.305460839,0.728405398,1.518941486 +-0.552870002,1.509635905,1.613745880,-0.395012220,1.570796327,2.304285670,0.728880039,1.518236410 +-0.551870002,1.508983870,1.613474539,-0.394331605,1.570796327,2.303109555,0.729354061,1.517530288 +-0.550870002,1.508331659,1.613203642,-0.393650821,1.570796327,2.301932493,0.729827463,1.516823119 +-0.549870002,1.507679270,1.612933188,-0.392969868,1.570796327,2.300754483,0.730300244,1.516114903 +-0.548870002,1.507026705,1.612663178,-0.392288747,1.570796327,2.299575526,0.730772402,1.515405640 +-0.547870002,1.506373963,1.612393613,-0.391607457,1.570796327,2.298395619,0.731243938,1.514695329 +-0.546870002,1.505721045,1.612124491,-0.390925998,1.570796327,2.297214764,0.731714848,1.513983971 +-0.545870002,1.505067950,1.611855815,-0.390244372,1.570796327,2.296032959,0.732185133,1.513271565 +-0.544870002,1.504414680,1.611587584,-0.389562577,1.570796327,2.294850204,0.732654792,1.512558110 +-0.543870002,1.503761234,1.611319797,-0.388880615,1.570796327,2.293666499,0.733123822,1.511843607 +-0.542870002,1.503107612,1.611052456,-0.388198485,1.570796327,2.292481843,0.733592223,1.511128055 +-0.541870002,1.502453815,1.610785561,-0.387516188,1.570796327,2.291296236,0.734059993,1.510411454 +-0.540870002,1.501799843,1.610519111,-0.386833723,1.570796327,2.290109676,0.734527132,1.509693804 +-0.539870002,1.501145695,1.610253108,-0.386151091,1.570796327,2.288922165,0.734993639,1.508975104 +-0.538870002,1.500491374,1.609987551,-0.385468293,1.570796327,2.287733701,0.735459511,1.508255355 +-0.537870002,1.499836877,1.609722440,-0.384785328,1.570796327,2.286544284,0.735924749,1.507534556 +-0.536870002,1.499182207,1.609457776,-0.384102196,1.570796327,2.285353914,0.736389350,1.506812706 +-0.535870002,1.498527362,1.609193559,-0.383418898,1.570796327,2.284162589,0.736853314,1.506089807 +-0.534870002,1.497872343,1.608929790,-0.382735434,1.570796327,2.282970311,0.737316640,1.505365857 +-0.533870002,1.497217151,1.608666467,-0.382051804,1.570796327,2.281777078,0.737779326,1.504640856 +-0.532870002,1.496561785,1.608403593,-0.381368008,1.570796327,2.280582889,0.738241371,1.503914805 +-0.531870002,1.495906246,1.608141166,-0.380684047,1.570796327,2.279387746,0.738702773,1.503187703 +-0.530870002,1.495250533,1.607879188,-0.379999921,1.570796327,2.278191646,0.739163533,1.502459549 +-0.529870002,1.494594648,1.607617658,-0.379315629,1.570796327,2.276994590,0.739623649,1.501730344 +-0.528870002,1.493938591,1.607356577,-0.378631173,1.570796327,2.275796578,0.740083118,1.501000088 +-0.527870002,1.493282361,1.607095944,-0.377946551,1.570796327,2.274597608,0.740541941,1.500268780 +-0.526870002,1.492625958,1.606835761,-0.377261765,1.570796327,2.273397682,0.741000117,1.499536420 +-0.525870002,1.491969384,1.606576027,-0.376576815,1.570796327,2.272196798,0.741457643,1.498803008 +-0.524870002,1.491312638,1.606316742,-0.375891701,1.570796327,2.270994955,0.741914518,1.498068544 +-0.523870002,1.490655720,1.606057908,-0.375206423,1.570796327,2.269792155,0.742370743,1.497333028 +-0.522870002,1.489998631,1.605799523,-0.374520980,1.570796327,2.268588395,0.742826315,1.496596460 +-0.521870002,1.489341371,1.605541588,-0.373835375,1.570796327,2.267383677,0.743281233,1.495858839 +-0.520870002,1.488683940,1.605284104,-0.373149606,1.570796327,2.266177999,0.743735496,1.495120165 +-0.519870002,1.488026338,1.605027071,-0.372463674,1.570796327,2.264971362,0.744189102,1.494380439 +-0.518870002,1.487368566,1.604770488,-0.371777579,1.570796327,2.263763765,0.744642052,1.493639660 +-0.517870002,1.486710623,1.604514357,-0.371091321,1.570796327,2.262555208,0.745094343,1.492897829 +-0.516870002,1.486052510,1.604258677,-0.370404900,1.570796327,2.261345690,0.745545974,1.492154944 +-0.515870002,1.485394228,1.604003449,-0.369718317,1.570796327,2.260135211,0.745996944,1.491411007 +-0.514870002,1.484735776,1.603748672,-0.369031572,1.570796327,2.258923771,0.746447253,1.490666016 +-0.513870002,1.484077154,1.603494348,-0.368344665,1.570796327,2.257711369,0.746896898,1.489919972 +-0.512870002,1.483418364,1.603240476,-0.367657597,1.570796327,2.256498006,0.747345878,1.489172875 +-0.511870002,1.482759404,1.602987056,-0.366970366,1.570796327,2.255283682,0.747794193,1.488424725 +-0.510870002,1.482100276,1.602734089,-0.366282975,1.570796327,2.254068394,0.748241841,1.487675521 +-0.509870002,1.481440979,1.602481575,-0.365595422,1.570796327,2.252852145,0.748688821,1.486925264 +-0.508870002,1.480781514,1.602229515,-0.364907708,1.570796327,2.251634933,0.749135132,1.486173953 +-0.507870002,1.480121880,1.601977907,-0.364219834,1.570796327,2.250416757,0.749580772,1.485421590 +-0.506870002,1.479462079,1.601726753,-0.363531799,1.570796327,2.249197619,0.750025741,1.484668172 +-0.505870002,1.478802110,1.601476054,-0.362843604,1.570796327,2.247977517,0.750470037,1.483913702 +-0.504870002,1.478141974,1.601225808,-0.362155248,1.570796327,2.246756452,0.750913659,1.483158177 +-0.503870002,1.477481671,1.600976016,-0.361466733,1.570796327,2.245534423,0.751356606,1.482401600 +-0.502870002,1.476821201,1.600726679,-0.360778058,1.570796327,2.244311430,0.751798876,1.481643968 +-0.501870002,1.476160564,1.600477797,-0.360089224,1.570796327,2.243087472,0.752240469,1.480885284 +-0.500870002,1.475499760,1.600229370,-0.359400230,1.570796327,2.241862550,0.752681383,1.480125545 +-0.499870002,1.474838790,1.599981398,-0.358711077,1.570796327,2.240636664,0.753121618,1.479364754 +-0.498870002,1.474177655,1.599733881,-0.358021766,1.570796327,2.239409813,0.753561171,1.478602909 +-0.497870002,1.473516353,1.599486820,-0.357332295,1.570796327,2.238181997,0.754000041,1.477840011 +-0.496870002,1.472854886,1.599240215,-0.356642666,1.570796327,2.236953216,0.754438229,1.477076059 +-0.495870002,1.472193253,1.598994066,-0.355952879,1.570796327,2.235723469,0.754875731,1.476311054 +-0.494870002,1.471531455,1.598748374,-0.355262935,1.570796327,2.234492757,0.755312547,1.475544996 +-0.493870002,1.470869493,1.598503138,-0.354572832,1.570796327,2.233261080,0.755748677,1.474777885 +-0.492870002,1.470207365,1.598258358,-0.353882571,1.570796327,2.232028437,0.756184118,1.474009720 +-0.491870002,1.469545074,1.598014036,-0.353192154,1.570796327,2.230794828,0.756618869,1.473240503 +-0.490870002,1.468882618,1.597770171,-0.352501579,1.570796327,2.229560253,0.757052929,1.472470233 +-0.489870002,1.468219998,1.597526763,-0.351810847,1.570796327,2.228324712,0.757486298,1.471698909 +-0.488870002,1.467557214,1.597283813,-0.351119958,1.570796327,2.227088205,0.757918974,1.470926534 +-0.487870002,1.466894267,1.597041320,-0.350428913,1.570796327,2.225850732,0.758350955,1.470153105 +-0.486870002,1.466231157,1.596799286,-0.349737712,1.570796327,2.224612292,0.758782240,1.469378624 +-0.485870002,1.465567883,1.596557710,-0.349046355,1.570796327,2.223372886,0.759212829,1.468603091 +-0.484870002,1.464904447,1.596316593,-0.348354841,1.570796327,2.222132513,0.759642720,1.467826505 +-0.483870002,1.464240848,1.596075934,-0.347663173,1.570796327,2.220891174,0.760071912,1.467048868 +-0.482870002,1.463577087,1.595835735,-0.346971348,1.570796327,2.219648868,0.760500403,1.466270178 +-0.481870002,1.462913164,1.595595994,-0.346279369,1.570796327,2.218405596,0.760928192,1.465490436 +-0.480870002,1.462249078,1.595356713,-0.345587234,1.570796327,2.217161356,0.761355279,1.464709643 +-0.479870002,1.461584832,1.595117891,-0.344894945,1.570796327,2.215916150,0.761781662,1.463927799 +-0.478870002,1.460920424,1.594879530,-0.344202501,1.570796327,2.214669977,0.762207340,1.463144902 +-0.477870002,1.460255854,1.594641628,-0.343509903,1.570796327,2.213422837,0.762632311,1.462360955 +-0.476870002,1.459591124,1.594404186,-0.342817151,1.570796327,2.212174731,0.763056574,1.461575957 +-0.475870002,1.458926233,1.594167205,-0.342124245,1.570796327,2.210925657,0.763480129,1.460789908 +-0.474870002,1.458261182,1.593930685,-0.341431186,1.570796327,2.209675616,0.763902974,1.460002809 +-0.473870002,1.457595970,1.593694626,-0.340737972,1.570796327,2.208424609,0.764325107,1.459214659 +-0.472870002,1.456930599,1.593459028,-0.340044606,1.570796327,2.207172635,0.764746528,1.458425459 +-0.471870002,1.456265068,1.593223891,-0.339351087,1.570796327,2.205919693,0.765167235,1.457635208 +-0.470870002,1.455599377,1.592989215,-0.338657415,1.570796327,2.204665785,0.765587227,1.456843909 +-0.469870002,1.454933527,1.592755002,-0.337963591,1.570796327,2.203410911,0.766006503,1.456051560 +-0.468870002,1.454267518,1.592521250,-0.337269614,1.570796327,2.202155069,0.766425062,1.455258161 +-0.467870002,1.453601351,1.592287961,-0.336575485,1.570796327,2.200898261,0.766842903,1.454463714 +-0.466870002,1.452935025,1.592055134,-0.335881204,1.570796327,2.199640486,0.767260023,1.453668218 +-0.465870002,1.452268541,1.591822769,-0.335186772,1.570796327,2.198381744,0.767676423,1.452871673 +-0.464870002,1.451601898,1.591590868,-0.334492188,1.570796327,2.197122036,0.768092100,1.452074080 +-0.463870002,1.450935098,1.591359429,-0.333797454,1.570796327,2.195861362,0.768507054,1.451275440 +-0.462870002,1.450268141,1.591128454,-0.333102568,1.570796327,2.194599721,0.768921283,1.450475752 +-0.461870002,1.449601026,1.590897942,-0.332407532,1.570796327,2.193337114,0.769334787,1.449675016 +-0.460870002,1.448933754,1.590667894,-0.331712345,1.570796327,2.192073541,0.769747563,1.448873234 +-0.459870002,1.448266326,1.590438310,-0.331017008,1.570796327,2.190809002,0.770159612,1.448070405 +-0.458870002,1.447598740,1.590209189,-0.330321521,1.570796327,2.189543496,0.770570931,1.447266529 +-0.457870002,1.446930999,1.589980534,-0.329625884,1.570796327,2.188277026,0.770981519,1.446461608 +-0.456870002,1.446263102,1.589752342,-0.328930098,1.570796327,2.187009589,0.771391375,1.445655641 +-0.455870002,1.445595049,1.589524616,-0.328234162,1.570796327,2.185741187,0.771800498,1.444848629 +-0.454870002,1.444926840,1.589297354,-0.327538077,1.570796327,2.184471820,0.772208887,1.444040571 +-0.453870002,1.444258476,1.589070558,-0.326841844,1.570796327,2.183201487,0.772616540,1.443231469 +-0.452870002,1.443589957,1.588844227,-0.326145462,1.570796327,2.181930190,0.773023456,1.442421323 +-0.451870002,1.442921283,1.588618361,-0.325448931,1.570796327,2.180657927,0.773429635,1.441610133 +-0.450870002,1.442252455,1.588392961,-0.324752253,1.570796327,2.179384700,0.773835074,1.440797900 +-0.449870002,1.441583473,1.588168028,-0.324055426,1.570796327,2.178110509,0.774239773,1.439984623 +-0.448870002,1.440914336,1.587943560,-0.323358452,1.570796327,2.176835353,0.774643730,1.439170304 +-0.447870002,1.440245046,1.587719559,-0.322661331,1.570796327,2.175559233,0.775046944,1.438354943 +-0.446870002,1.439575602,1.587496024,-0.321964062,1.570796327,2.174282150,0.775449415,1.437538540 +-0.445870002,1.438906005,1.587272957,-0.321266646,1.570796327,2.173004103,0.775851140,1.436721095 +-0.444870002,1.438236255,1.587050356,-0.320569084,1.570796327,2.171725092,0.776252118,1.435902610 +-0.443870002,1.437566352,1.586828222,-0.319871376,1.570796327,2.170445119,0.776652349,1.435083084 +-0.442870002,1.436896297,1.586606556,-0.319173521,1.570796327,2.169164182,0.777051831,1.434262518 +-0.441870002,1.436226090,1.586385358,-0.318475520,1.570796327,2.167882283,0.777450562,1.433440912 +-0.440870002,1.435555730,1.586164627,-0.317777373,1.570796327,2.166599422,0.777848542,1.432618268 +-0.439870002,1.434885219,1.585944365,-0.317079081,1.570796327,2.165315599,0.778245770,1.431794584 +-0.438870002,1.434214557,1.585724571,-0.316380644,1.570796327,2.164030814,0.778642244,1.430969863 +-0.437870002,1.433543743,1.585505245,-0.315682062,1.570796327,2.162745067,0.779037962,1.430144104 +-0.436870002,1.432872779,1.585286388,-0.314983335,1.570796327,2.161458360,0.779432925,1.429317308 +-0.435870002,1.432201663,1.585068000,-0.314284463,1.570796327,2.160170691,0.779827130,1.428489475 +-0.434870002,1.431530398,1.584850081,-0.313585447,1.570796327,2.158882063,0.780220576,1.427660606 +-0.433870002,1.430858982,1.584632631,-0.312886287,1.570796327,2.157592474,0.780613263,1.426830701 +-0.432870002,1.430187416,1.584415650,-0.312186984,1.570796327,2.156301925,0.781005188,1.425999762 +-0.431870002,1.429515701,1.584199140,-0.311487537,1.570796327,2.155010416,0.781396351,1.425167788 +-0.430870002,1.428843836,1.583983099,-0.310787946,1.570796327,2.153717949,0.781786750,1.424334780 +-0.429870002,1.428171822,1.583767528,-0.310088213,1.570796327,2.152424523,0.782176384,1.423500739 +-0.428870002,1.427499660,1.583552428,-0.309388337,1.570796327,2.151130138,0.782565253,1.422665665 +-0.427870002,1.426827349,1.583337798,-0.308688318,1.570796327,2.149834796,0.782953354,1.421829559 +-0.426870002,1.426154889,1.583123639,-0.307988157,1.570796327,2.148538496,0.783340687,1.420992421 +-0.425870002,1.425482282,1.582909950,-0.307287854,1.570796327,2.147241239,0.783727250,1.420154253 +-0.424870002,1.424809526,1.582696733,-0.306587409,1.570796327,2.145943025,0.784113042,1.419315054 +-0.423870002,1.424136624,1.582483987,-0.305886823,1.570796327,2.144643854,0.784498062,1.418474825 +-0.422870002,1.423463574,1.582271713,-0.305186095,1.570796327,2.143343728,0.784882309,1.417633567 +-0.421870002,1.422790377,1.582059910,-0.304485226,1.570796327,2.142042647,0.785265781,1.416791281 +-0.420870002,1.422117033,1.581848579,-0.303784217,1.570796327,2.140740610,0.785648478,1.415947967 +-0.419870002,1.421443543,1.581637720,-0.303083067,1.570796327,2.139437619,0.786030397,1.415103625 +-0.418870002,1.420769907,1.581427334,-0.302381776,1.570796327,2.138133673,0.786411538,1.414258258 +-0.417870002,1.420096125,1.581217420,-0.301680346,1.570796327,2.136828774,0.786791900,1.413411864 +-0.416870002,1.419422197,1.581007978,-0.300978776,1.570796327,2.135522922,0.787171482,1.412564445 +-0.415870002,1.418748124,1.580799010,-0.300277066,1.570796327,2.134216118,0.787550281,1.411716002 +-0.414870002,1.418073905,1.580590514,-0.299575218,1.570796327,2.132908361,0.787928297,1.410866535 +-0.413870002,1.417399542,1.580382492,-0.298873230,1.570796327,2.131599653,0.788305529,1.410016045 +-0.412870002,1.416725035,1.580174944,-0.298171103,1.570796327,2.130289993,0.788681976,1.409164533 +-0.411870002,1.416050383,1.579967869,-0.297468838,1.570796327,2.128979383,0.789057635,1.408311999 +-0.410870002,1.415375587,1.579761268,-0.296766435,1.570796327,2.127667823,0.789432507,1.407458444 +-0.409870002,1.414700648,1.579555141,-0.296063894,1.570796327,2.126355314,0.789806590,1.406603870 +-0.408870002,1.414025565,1.579349488,-0.295361215,1.570796327,2.125041855,0.790179882,1.405748275 +-0.407870002,1.413350338,1.579144310,-0.294658398,1.570796327,2.123727449,0.790552383,1.404891663 +-0.406870002,1.412674969,1.578939606,-0.293955444,1.570796327,2.122412094,0.790924091,1.404034032 +-0.405870002,1.411999458,1.578735377,-0.293252354,1.570796327,2.121095793,0.791295005,1.403175385 +-0.404870002,1.411323804,1.578531623,-0.292549127,1.570796327,2.119778545,0.791665123,1.402315722 +-0.403870002,1.410648007,1.578328344,-0.291845763,1.570796327,2.118460351,0.792034446,1.401455043 +-0.402870002,1.409972070,1.578125541,-0.291142263,1.570796327,2.117141211,0.792402970,1.400593349 +-0.401870002,1.409295990,1.577923214,-0.290438627,1.570796327,2.115821127,0.792770696,1.399730642 +-0.400870002,1.408619769,1.577721362,-0.289734856,1.570796327,2.114500099,0.793137621,1.398866922 +-0.399870002,1.407943408,1.577519986,-0.289030949,1.570796327,2.113178128,0.793503746,1.398002189 +-0.398870002,1.407266905,1.577319086,-0.288326907,1.570796327,2.111855214,0.793869068,1.397136446 +-0.397870002,1.406590263,1.577118663,-0.287622731,1.570796327,2.110531357,0.794233586,1.396269692 +-0.396870002,1.405913480,1.576918716,-0.286918419,1.570796327,2.109206560,0.794597299,1.395401929 +-0.395870002,1.405236557,1.576719247,-0.286213974,1.570796327,2.107880821,0.794960206,1.394533157 +-0.394870002,1.404559495,1.576520253,-0.285509394,1.570796327,2.106554143,0.795322306,1.393663378 +-0.393870002,1.403882293,1.576321738,-0.284804681,1.570796327,2.105226525,0.795683597,1.392792592 +-0.392870002,1.403204953,1.576123699,-0.284099834,1.570796327,2.103897969,0.796044078,1.391920799 +-0.391870002,1.402527474,1.575926138,-0.283394854,1.570796327,2.102568475,0.796403748,1.391048002 +-0.390870002,1.401849856,1.575729055,-0.282689740,1.570796327,2.101238044,0.796762607,1.390174201 +-0.389870002,1.401172100,1.575532449,-0.281984494,1.570796327,2.099906677,0.797120651,1.389299397 +-0.388870002,1.400494206,1.575336322,-0.281279116,1.570796327,2.098574373,0.797477882,1.388423591 +-0.387870002,1.399816175,1.575140673,-0.280573606,1.570796327,2.097241135,0.797834296,1.387546783 +-0.386870002,1.399138006,1.574945502,-0.279867963,1.570796327,2.095906963,0.798189893,1.386668976 +-0.385870002,1.398459701,1.574750810,-0.279162189,1.570796327,2.094571858,0.798544673,1.385790169 +-0.384870002,1.397781258,1.574556597,-0.278456284,1.570796327,2.093235820,0.798898632,1.384910364 +-0.383870002,1.397102680,1.574362862,-0.277750247,1.570796327,2.091898851,0.799251771,1.384029562 +-0.382870002,1.396423965,1.574169607,-0.277044080,1.570796327,2.090560951,0.799604089,1.383147763 +-0.381870002,1.395745114,1.573976832,-0.276337782,1.570796327,2.089222120,0.799955583,1.382264970 +-0.380870002,1.395066127,1.573784536,-0.275631354,1.570796327,2.087882361,0.800306253,1.381381182 +-0.379870002,1.394387006,1.573592719,-0.274924795,1.570796327,2.086541673,0.800656098,1.380496401 +-0.378870002,1.393707749,1.573401383,-0.274218108,1.570796327,2.085200058,0.801005116,1.379610628 +-0.377870002,1.393028357,1.573210527,-0.273511290,1.570796327,2.083857516,0.801353306,1.378723865 +-0.376870002,1.392348831,1.573020151,-0.272804344,1.570796327,2.082514048,0.801700667,1.377836111 +-0.375870002,1.391669171,1.572830255,-0.272097268,1.570796327,2.081169656,0.802047198,1.376947369 +-0.374870002,1.390989378,1.572640840,-0.271390064,1.570796327,2.079824340,0.802392897,1.376057638 +-0.373870002,1.390309450,1.572451906,-0.270682731,1.570796327,2.078478100,0.802737764,1.375166921 +-0.372870002,1.389629389,1.572263453,-0.269975271,1.570796327,2.077130939,0.803081797,1.374275219 +-0.371870002,1.388949196,1.572075481,-0.269267682,1.570796327,2.075782856,0.803424995,1.373382532 +-0.370870002,1.388268869,1.571887991,-0.268559966,1.570796327,2.074433853,0.803767357,1.372488862 +-0.369870002,1.387588411,1.571700982,-0.267852123,1.570796327,2.073083931,0.804108881,1.371594210 +-0.368870002,1.386907820,1.571514455,-0.267144153,1.570796327,2.071733091,0.804449567,1.370698577 +-0.367870002,1.386227097,1.571328410,-0.266436056,1.570796327,2.070381333,0.804789413,1.369801965 +-0.366870002,1.385546243,1.571142847,-0.265727833,1.570796327,2.069028659,0.805128418,1.368904373 +-0.365870002,1.384865257,1.570957766,-0.265019483,1.570796327,2.067675069,0.805466580,1.368005804 +-0.364870002,1.384184141,1.570773168,-0.264311008,1.570796327,2.066320565,0.805803900,1.367106259 +-0.363870002,1.383502894,1.570589052,-0.263602407,1.570796327,2.064965148,0.806140375,1.366205739 +-0.362870002,1.382821517,1.570405419,-0.262893681,1.570796327,2.063608818,0.806476004,1.365304246 +-0.361870002,1.382140010,1.570222269,-0.262184829,1.570796327,2.062251578,0.806810786,1.364401779 +-0.360870002,1.381458373,1.570039602,-0.261475853,1.570796327,2.060893426,0.807144720,1.363498342 +-0.359870002,1.380776606,1.569857419,-0.260766753,1.570796327,2.059534366,0.807477805,1.362593934 +-0.358870002,1.380094710,1.569675719,-0.260057528,1.570796327,2.058174398,0.807810039,1.361688558 +-0.357870002,1.379412686,1.569494503,-0.259348180,1.570796327,2.056813522,0.808141422,1.360782213 +-0.356870002,1.378730533,1.569313771,-0.258638708,1.570796327,2.055451741,0.808471952,1.359874903 +-0.355870002,1.378048252,1.569133523,-0.257929112,1.570796327,2.054089055,0.808801628,1.358966628 +-0.354870002,1.377365842,1.568953759,-0.257219394,1.570796327,2.052725465,0.809130449,1.358057389 +-0.353870002,1.376683306,1.568774479,-0.256509552,1.570796327,2.051360973,0.809458413,1.357147188 +-0.352870002,1.376000641,1.568595684,-0.255799589,1.570796327,2.049995579,0.809785520,1.356236026 +-0.351870002,1.375317850,1.568417374,-0.255089503,1.570796327,2.048629284,0.810111768,1.355323904 +-0.350870002,1.374634932,1.568239549,-0.254379295,1.570796327,2.047262091,0.810437156,1.354410823 +-0.349870002,1.373951888,1.568062209,-0.253668966,1.570796327,2.045893999,0.810761683,1.353496786 +-0.348870002,1.373268717,1.567885354,-0.252958515,1.570796327,2.044525011,0.811085347,1.352581793 +-0.347870002,1.372585421,1.567708985,-0.252247943,1.570796327,2.043155127,0.811408149,1.351665846 +-0.346870002,1.371901999,1.567533101,-0.251537251,1.570796327,2.041784349,0.811730085,1.350748946 +-0.345870002,1.371218451,1.567357703,-0.250826438,1.570796327,2.040412677,0.812051156,1.349831095 +-0.344870002,1.370534779,1.567182791,-0.250115505,1.570796327,2.039040113,0.812371361,1.348912293 +-0.343870002,1.369850983,1.567008365,-0.249404452,1.570796327,2.037666659,0.812690696,1.347992543 +-0.342870002,1.369167062,1.566834425,-0.248693279,1.570796327,2.036292315,0.813009163,1.347071846 +-0.341870002,1.368483017,1.566660972,-0.247981987,1.570796327,2.034917082,0.813326759,1.346150203 +-0.340870002,1.367798848,1.566488005,-0.247270576,1.570796327,2.033540963,0.813643484,1.345227616 +-0.339870002,1.367114556,1.566315525,-0.246559047,1.570796327,2.032163958,0.813959336,1.344304086 +-0.338870002,1.366430140,1.566143533,-0.245847399,1.570796327,2.030786068,0.814274314,1.343379614 +-0.337870002,1.365745602,1.565972027,-0.245135633,1.570796327,2.029407295,0.814588417,1.342454203 +-0.336870002,1.365060942,1.565801009,-0.244423749,1.570796327,2.028027641,0.814901644,1.341527853 +-0.335870002,1.364376159,1.565630478,-0.243711747,1.570796327,2.026647105,0.815213993,1.340600567 +-0.334870002,1.363691255,1.565460435,-0.242999628,1.570796327,2.025265691,0.815525464,1.339672345 +-0.333870002,1.363006229,1.565290879,-0.242287393,1.570796327,2.023883398,0.815836055,1.338743189 +-0.332870002,1.362321081,1.565121812,-0.241575040,1.570796327,2.022500230,0.816145765,1.337813102 +-0.331870002,1.361635813,1.564953232,-0.240862572,1.570796327,2.021116185,0.816454593,1.336882083 +-0.330870002,1.360950424,1.564785141,-0.240149987,1.570796327,2.019731268,0.816762538,1.335950135 +-0.329870002,1.360264915,1.564617539,-0.239437286,1.570796327,2.018345477,0.817069599,1.335017260 +-0.328870002,1.359579286,1.564450425,-0.238724470,1.570796327,2.016958816,0.817375775,1.334083459 +-0.327870002,1.358893537,1.564283800,-0.238011539,1.570796327,2.015571285,0.817681064,1.333148733 +-0.326870002,1.358207669,1.564117664,-0.237298493,1.570796327,2.014182886,0.817985465,1.332213085 +-0.325870002,1.357521681,1.563952017,-0.236585332,1.570796327,2.012793620,0.818288977,1.331276515 +-0.324870002,1.356835575,1.563786859,-0.235872057,1.570796327,2.011403489,0.818591599,1.330339026 +-0.323870002,1.356149351,1.563622191,-0.235158668,1.570796327,2.010012493,0.818893330,1.329400619 +-0.322870002,1.355463008,1.563458012,-0.234445165,1.570796327,2.008620636,0.819194169,1.328461296 +-0.321870002,1.354776548,1.563294323,-0.233731549,1.570796327,2.007227917,0.819494114,1.327521058 +-0.320870002,1.354089970,1.563131125,-0.233017820,1.570796327,2.005834339,0.819793165,1.326579907 +-0.319870002,1.353403275,1.562968416,-0.232303978,1.570796327,2.004439903,0.820091320,1.325637845 +-0.318870002,1.352716463,1.562806197,-0.231590024,1.570796327,2.003044611,0.820388578,1.324694874 +-0.317870002,1.352029534,1.562644469,-0.230875957,1.570796327,2.001648464,0.820684939,1.323750994 +-0.316870002,1.351342490,1.562483231,-0.230161779,1.570796327,2.000251463,0.820980400,1.322806209 +-0.315870002,1.350655329,1.562322485,-0.229447489,1.570796327,1.998853610,0.821274961,1.321860519 +-0.314870002,1.349968053,1.562162229,-0.228733088,1.570796327,1.997454908,0.821568621,1.320913927 +-0.313870002,1.349280662,1.562002464,-0.228018575,1.570796327,1.996055356,0.821861378,1.319966434 +-0.312870002,1.348593155,1.561843190,-0.227303952,1.570796327,1.994654957,0.822153232,1.319018041 +-0.311870002,1.347905534,1.561684408,-0.226589219,1.570796327,1.993253713,0.822444181,1.318068752 +-0.310870002,1.347217799,1.561526117,-0.225874376,1.570796327,1.991851624,0.822734224,1.317118566 +-0.309870002,1.346529949,1.561368318,-0.225159423,1.570796327,1.990448693,0.823023360,1.316167487 +-0.308870002,1.345841986,1.561211011,-0.224444360,1.570796327,1.989044922,0.823311589,1.315215516 +-0.307870002,1.345153910,1.561054195,-0.223729188,1.570796327,1.987640311,0.823598908,1.314262655 +-0.306870002,1.344465720,1.560897872,-0.223013908,1.570796327,1.986234863,0.823885317,1.313308906 +-0.305870002,1.343777418,1.560742041,-0.222298519,1.570796327,1.984828579,0.824170814,1.312354270 +-0.304870002,1.343089004,1.560586703,-0.221583021,1.570796327,1.983421461,0.824455399,1.311398750 +-0.303870002,1.342400477,1.560431857,-0.220867416,1.570796327,1.982013510,0.824739071,1.310442347 +-0.302870002,1.341711839,1.560277504,-0.220151703,1.570796327,1.980604728,0.825021828,1.309485063 +-0.301870002,1.341023089,1.560123644,-0.219435883,1.570796327,1.979195118,0.825303669,1.308526900 +-0.300870002,1.340334228,1.559970277,-0.218719956,1.570796327,1.977784680,0.825584593,1.307567860 +-0.299870002,1.339645256,1.559817403,-0.218003922,1.570796327,1.976373416,0.825864599,1.306607945 +-0.298870002,1.338956174,1.559665023,-0.217287782,1.570796327,1.974961329,0.826143686,1.305647157 +-0.297870002,1.338266982,1.559513136,-0.216571536,1.570796327,1.973548419,0.826421853,1.304685497 +-0.296870002,1.337577680,1.559361743,-0.215855184,1.570796327,1.972134688,0.826699099,1.303722968 +-0.295870002,1.336888268,1.559210843,-0.215138727,1.570796327,1.970720139,0.826975423,1.302759572 +-0.294870002,1.336198747,1.559060438,-0.214422164,1.570796327,1.969304774,0.827250823,1.301795310 +-0.293870002,1.335509118,1.558910527,-0.213705497,1.570796327,1.967888593,0.827525298,1.300830184 +-0.292870002,1.334819380,1.558761110,-0.212988725,1.570796327,1.966471598,0.827798848,1.299864198 +-0.291870002,1.334129533,1.558612187,-0.212271849,1.570796327,1.965053793,0.828071471,1.298897351 +-0.290870002,1.333439579,1.558463759,-0.211554869,1.570796327,1.963635177,0.828343167,1.297929648 +-0.289870002,1.332749518,1.558315826,-0.210837785,1.570796327,1.962215754,0.828613933,1.296961088 +-0.288870002,1.332059349,1.558168387,-0.210120599,1.570796327,1.960795525,0.828883770,1.295991676 +-0.287870002,1.331369073,1.558021444,-0.209403309,1.570796327,1.959374491,0.829152676,1.295021412 +-0.286870002,1.330678691,1.557874996,-0.208685917,1.570796327,1.957952656,0.829420650,1.294050299 +-0.285870002,1.329988203,1.557729043,-0.207968422,1.570796327,1.956530020,0.829687691,1.293078338 +-0.284870002,1.329297608,1.557583585,-0.207250826,1.570796327,1.955106585,0.829953797,1.292105533 +-0.283870002,1.328606909,1.557438623,-0.206533127,1.570796327,1.953682354,0.830218968,1.291131884 +-0.282870002,1.327916104,1.557294157,-0.205815328,1.570796327,1.952257329,0.830483203,1.290157394 +-0.281870002,1.327225194,1.557150187,-0.205097427,1.570796327,1.950831510,0.830746501,1.289182066 +-0.280870002,1.326534179,1.557006713,-0.204379426,1.570796327,1.949404901,0.831008860,1.288205900 +-0.279870002,1.325843061,1.556863735,-0.203661324,1.570796327,1.947977503,0.831270280,1.287228901 +-0.278870002,1.325151838,1.556721253,-0.202943122,1.570796327,1.946549318,0.831530759,1.286251068 +-0.277870002,1.324460512,1.556579267,-0.202224820,1.570796327,1.945120348,0.831790297,1.285272406 +-0.276870002,1.323769083,1.556437779,-0.201506419,1.570796327,1.943690595,0.832048892,1.284292915 +-0.275870002,1.323077550,1.556296787,-0.200787919,1.570796327,1.942260061,0.832306543,1.283312599 +-0.274870002,1.322385916,1.556156292,-0.200069320,1.570796327,1.940828749,0.832563250,1.282331458 +-0.273870002,1.321694179,1.556016294,-0.199350622,1.570796327,1.939396659,0.832819011,1.281349496 +-0.272870002,1.321002340,1.555876793,-0.198631827,1.570796327,1.937963794,0.833073825,1.280366715 +-0.271870002,1.320310399,1.555737789,-0.197912933,1.570796327,1.936530157,0.833327692,1.279383117 +-0.270870002,1.319618358,1.555599283,-0.197193942,1.570796327,1.935095749,0.833580610,1.278398704 +-0.269870002,1.318926215,1.555461275,-0.196474854,1.570796327,1.933660572,0.833832577,1.277413478 +-0.268870002,1.318233972,1.555323764,-0.195755668,1.570796327,1.932224628,0.834083594,1.276427442 +-0.267870002,1.317541629,1.555186751,-0.195036387,1.570796327,1.930787920,0.834333659,1.275440598 +-0.266870002,1.316849186,1.555050236,-0.194317009,1.570796327,1.929350450,0.834582771,1.274452948 +-0.265870002,1.316156643,1.554914219,-0.193597535,1.570796327,1.927912219,0.834830929,1.273464494 +-0.264870002,1.315464001,1.554778701,-0.192877965,1.570796327,1.926473230,0.835078132,1.272475240 +-0.263870002,1.314771260,1.554643681,-0.192158300,1.570796327,1.925033484,0.835324379,1.271485186 +-0.262870002,1.314078421,1.554509159,-0.191438541,1.570796327,1.923592985,0.835569669,1.270494336 +-0.261870002,1.313385484,1.554375136,-0.190718686,1.570796327,1.922151734,0.835814001,1.269502692 +-0.260870002,1.312692449,1.554241612,-0.189998738,1.570796327,1.920709733,0.836057374,1.268510256 +-0.259870002,1.311999316,1.554108587,-0.189278695,1.570796327,1.919266985,0.836299787,1.267517030 +-0.258870002,1.311306086,1.553976061,-0.188558559,1.570796327,1.917823491,0.836541239,1.266523017 +-0.257870002,1.310612759,1.553844034,-0.187838329,1.570796327,1.916379254,0.836781729,1.265528219 +-0.256870002,1.309919336,1.553712506,-0.187118007,1.570796327,1.914934277,0.837021256,1.264532640 +-0.255870002,1.309225817,1.553581478,-0.186397591,1.570796327,1.913488561,0.837259819,1.263536280 +-0.254870002,1.308532202,1.553450950,-0.185677084,1.570796327,1.912042108,0.837497416,1.262539142 +-0.253870002,1.307838491,1.553320921,-0.184956484,1.570796327,1.910594921,0.837734048,1.261541230 +-0.252870002,1.307144685,1.553191393,-0.184235793,1.570796327,1.909147002,0.837969713,1.260542545 +-0.251870002,1.306450785,1.553062364,-0.183515010,1.570796327,1.907698354,0.838204410,1.259543089 +-0.250870002,1.305756790,1.552933835,-0.182794137,1.570796327,1.906248978,0.838438138,1.258542866 +-0.249870002,1.305062701,1.552805807,-0.182073172,1.570796327,1.904798877,0.838670896,1.257541878 +-0.248870002,1.304368518,1.552678279,-0.181352118,1.570796327,1.903348053,0.838902683,1.256540126 +-0.247870002,1.303674242,1.552551251,-0.180630973,1.570796327,1.901896509,0.839133499,1.255537615 +-0.246870002,1.302979873,1.552424725,-0.179909738,1.570796327,1.900444246,0.839363341,1.254534346 +-0.245870002,1.302285411,1.552298699,-0.179188414,1.570796327,1.898991268,0.839592210,1.253530321 +-0.244870002,1.301590857,1.552173174,-0.178467002,1.570796327,1.897537576,0.839820104,1.252525544 +-0.243870002,1.300896210,1.552048149,-0.177745500,1.570796327,1.896083173,0.840047022,1.251520016 +-0.242870002,1.300201473,1.551923627,-0.177023910,1.570796327,1.894628062,0.840272963,1.250513741 +-0.241870002,1.299506643,1.551799605,-0.176302232,1.570796327,1.893172243,0.840497927,1.249506721 +-0.240870002,1.298811723,1.551676085,-0.175580466,1.570796327,1.891715721,0.840721913,1.248498958 +-0.239870002,1.298116712,1.551553066,-0.174858613,1.570796327,1.890258497,0.840944918,1.247490455 +-0.238870002,1.297421611,1.551430549,-0.174136673,1.570796327,1.888800574,0.841166944,1.246481215 +-0.237870002,1.296726420,1.551308534,-0.173414646,1.570796327,1.887341955,0.841387988,1.245471240 +-0.236870002,1.296031139,1.551187021,-0.172692533,1.570796327,1.885882640,0.841608049,1.244460533 +-0.235870002,1.295335769,1.551066010,-0.171970333,1.570796327,1.884422634,0.841827127,1.243449096 +-0.234870002,1.294640311,1.550945500,-0.171248048,1.570796327,1.882961939,0.842045222,1.242436933 +-0.233870002,1.293944763,1.550825494,-0.170525678,1.570796327,1.881500556,0.842262330,1.241424045 +-0.232870002,1.293249128,1.550705989,-0.169803222,1.570796327,1.880038489,0.842478453,1.240410436 +-0.231870002,1.292553404,1.550586987,-0.169080682,1.570796327,1.878575740,0.842693589,1.239396108 +-0.230870002,1.291857593,1.550468488,-0.168358057,1.570796327,1.877112311,0.842907737,1.238381063 +-0.229870002,1.291161695,1.550350492,-0.167635349,1.570796327,1.875648206,0.843120896,1.237365305 +-0.228870002,1.290465711,1.550232998,-0.166912557,1.570796327,1.874183425,0.843333065,1.236348837 +-0.227870002,1.289769639,1.550116008,-0.166189681,1.570796327,1.872717973,0.843544244,1.235331660 +-0.226870002,1.289073482,1.549999520,-0.165466722,1.570796327,1.871251852,0.843754431,1.234313778 +-0.225870002,1.288377239,1.549883536,-0.164743681,1.570796327,1.869785063,0.843963626,1.233295193 +-0.224870002,1.287680910,1.549768055,-0.164020557,1.570796327,1.868317610,0.844171827,1.232275908 +-0.223870002,1.286984497,1.549653078,-0.163297351,1.570796327,1.866849495,0.844379034,1.231255926 +-0.222870002,1.286287999,1.549538604,-0.162574064,1.570796327,1.865380722,0.844585246,1.230235250 +-0.221870002,1.285591416,1.549424634,-0.161850695,1.570796327,1.863911291,0.844790461,1.229213882 +-0.220870002,1.284894750,1.549311168,-0.161127245,1.570796327,1.862441207,0.844994680,1.228191825 +-0.219870002,1.284197999,1.549198206,-0.160403715,1.570796327,1.860970471,0.845197901,1.227169083 +-0.218870002,1.283501166,1.549085747,-0.159680104,1.570796327,1.859499086,0.845400124,1.226145657 +-0.217870002,1.282804250,1.548973793,-0.158956413,1.570796327,1.858027056,0.845601346,1.225121550 +-0.216870002,1.282107251,1.548862344,-0.158232643,1.570796327,1.856554382,0.845801568,1.224096766 +-0.215870002,1.281410170,1.548751398,-0.157508793,1.570796327,1.855081067,0.846000789,1.223071307 +-0.214870002,1.280713007,1.548640958,-0.156784865,1.570796327,1.853607114,0.846199008,1.222045177 +-0.213870002,1.280015762,1.548531021,-0.156060858,1.570796327,1.852132525,0.846396224,1.221018377 +-0.212870002,1.279318437,1.548421590,-0.155336772,1.570796327,1.850657304,0.846592436,1.219990912 +-0.211870002,1.278621030,1.548312663,-0.154612609,1.570796327,1.849181453,0.846787643,1.218962783 +-0.210870002,1.277923544,1.548204242,-0.153888368,1.570796327,1.847704974,0.846981844,1.217933993 +-0.209870002,1.277225977,1.548096325,-0.153164050,1.570796327,1.846227870,0.847175039,1.216904546 +-0.208870002,1.276528330,1.547988914,-0.152439655,1.570796327,1.844750145,0.847367226,1.215874445 +-0.207870002,1.275830604,1.547882008,-0.151715183,1.570796327,1.843271801,0.847558406,1.214843692 +-0.206870002,1.275132799,1.547775607,-0.150990635,1.570796327,1.841792840,0.847748576,1.213812290 +-0.205870002,1.274434916,1.547669712,-0.150266011,1.570796327,1.840313265,0.847937737,1.212780242 +-0.204870002,1.273736954,1.547564322,-0.149541312,1.570796327,1.838833080,0.848125886,1.211747552 +-0.203870002,1.273038914,1.547459439,-0.148816538,1.570796327,1.837352286,0.848313025,1.210714222 +-0.202870002,1.272340797,1.547355061,-0.148091688,1.570796327,1.835870887,0.848499151,1.209680255 +-0.201870002,1.271642602,1.547251189,-0.147366765,1.570796327,1.834388886,0.848684264,1.208645654 +-0.200870002,1.270944331,1.547147823,-0.146641767,1.570796327,1.832906284,0.848868362,1.207610422 +-0.199870002,1.270245983,1.547044963,-0.145916695,1.570796327,1.831423086,0.849051447,1.206574562 +-0.198870002,1.269547559,1.546942609,-0.145191550,1.570796327,1.829939294,0.849233515,1.205538077 +-0.197870002,1.268849060,1.546840762,-0.144466332,1.570796327,1.828454911,0.849414567,1.204500971 +-0.196870002,1.268150484,1.546739421,-0.143741041,1.570796327,1.826969939,0.849594602,1.203463245 +-0.195870002,1.267451834,1.546638587,-0.143015677,1.570796327,1.825484382,0.849773619,1.202424904 +-0.194870002,1.266753109,1.546538260,-0.142290242,1.570796327,1.823998242,0.849951617,1.201385950 +-0.193870002,1.266054310,1.546438439,-0.141564735,1.570796327,1.822511522,0.850128596,1.200346387 +-0.192870002,1.265355437,1.546339125,-0.140839156,1.570796327,1.821024226,0.850304554,1.199306216 +-0.191870002,1.264656490,1.546240319,-0.140113507,1.570796327,1.819536355,0.850479491,1.198265443 +-0.190870002,1.263957470,1.546142019,-0.139387786,1.570796327,1.818047914,0.850653406,1.197224069 +-0.189870002,1.263258378,1.546044226,-0.138661996,1.570796327,1.816558904,0.850826298,1.196182097 +-0.188870002,1.262559212,1.545946941,-0.137936135,1.570796327,1.815069329,0.850998167,1.195139531 +-0.187870002,1.261859975,1.545850163,-0.137210205,1.570796327,1.813579192,0.851169012,1.194096375 +-0.186870002,1.261160665,1.545753893,-0.136484206,1.570796327,1.812088495,0.851338831,1.193052630 +-0.185870002,1.260461285,1.545658130,-0.135758138,1.570796327,1.810597243,0.851507625,1.192008300 +-0.184870002,1.259761833,1.545562875,-0.135032001,1.570796327,1.809105436,0.851675392,1.190963389 +-0.183870002,1.259062311,1.545468128,-0.134305796,1.570796327,1.807613080,0.851842132,1.189917899 +-0.182870002,1.258362718,1.545373889,-0.133579523,1.570796327,1.806120176,0.852007844,1.188871834 +-0.181870002,1.257663055,1.545280157,-0.132853182,1.570796327,1.804626727,0.852172527,1.187825197 +-0.180870002,1.256963323,1.545186934,-0.132126775,1.570796327,1.803132737,0.852336181,1.186777991 +-0.179870002,1.256263521,1.545094219,-0.131400300,1.570796327,1.801638209,0.852498804,1.185730219 +-0.178870002,1.255563651,1.545002012,-0.130673760,1.570796327,1.800143145,0.852660396,1.184681884 +-0.177870002,1.254863712,1.544910313,-0.129947153,1.570796327,1.798647549,0.852820957,1.183632990 +-0.176870002,1.254163705,1.544819123,-0.129220480,1.570796327,1.797151423,0.852980485,1.182583540 +-0.175870002,1.253463630,1.544728442,-0.128493742,1.570796327,1.795654771,0.853138980,1.181533537 +-0.174870002,1.252763488,1.544638269,-0.127766939,1.570796327,1.794157596,0.853296441,1.180482984 +-0.173870002,1.252063279,1.544548605,-0.127040071,1.570796327,1.792659901,0.853452867,1.179431885 +-0.172870002,1.251363003,1.544459449,-0.126313139,1.570796327,1.791161689,0.853608258,1.178380243 +-0.171870002,1.250662661,1.544370803,-0.125586142,1.570796327,1.789662963,0.853762613,1.177328060 +-0.170870002,1.249962253,1.544282666,-0.124859083,1.570796327,1.788163726,0.853915932,1.176275342 +-0.169870002,1.249261780,1.544195037,-0.124131960,1.570796327,1.786663981,0.854068213,1.175222089 +-0.168870002,1.248561241,1.544107918,-0.123404774,1.570796327,1.785163732,0.854219455,1.174168307 +-0.167870002,1.247860637,1.544021308,-0.122677525,1.570796327,1.783662981,0.854369659,1.173113998 +-0.166870002,1.247159969,1.543935208,-0.121950214,1.570796327,1.782161731,0.854518824,1.172059166 +-0.165870002,1.246459237,1.543849617,-0.121222842,1.570796327,1.780659987,0.854666948,1.171003814 +-0.164870002,1.245758441,1.543764536,-0.120495408,1.570796327,1.779157750,0.854814032,1.169947944 +-0.163870002,1.245057582,1.543679964,-0.119767912,1.570796327,1.777655025,0.854960074,1.168891562 +-0.162870002,1.244356660,1.543595902,-0.119040356,1.570796327,1.776151813,0.855105073,1.167834669 +-0.161870002,1.243655675,1.543512350,-0.118312740,1.570796327,1.774648119,0.855249030,1.166777270 +-0.160870002,1.242954628,1.543429307,-0.117585063,1.570796327,1.773143946,0.855391944,1.165719367 +-0.159870002,1.242253519,1.543346775,-0.116857327,1.570796327,1.771639296,0.855533813,1.164660964 +-0.158870002,1.241552349,1.543264753,-0.116129532,1.570796327,1.770134173,0.855674638,1.163602065 +-0.157870002,1.240851118,1.543183241,-0.115401677,1.570796327,1.768628581,0.855814417,1.162542673 +-0.156870002,1.240149826,1.543102239,-0.114673764,1.570796327,1.767122522,0.855953149,1.161482790 +-0.155870002,1.239448473,1.543021747,-0.113945792,1.570796327,1.765615999,0.856090836,1.160422422 +-0.154870002,1.238747061,1.542941766,-0.113217763,1.570796327,1.764109016,0.856227474,1.159361570 +-0.153870002,1.238045588,1.542862296,-0.112489676,1.570796327,1.762601577,0.856363065,1.158300239 +-0.152870002,1.237344057,1.542783336,-0.111761532,1.570796327,1.761093684,0.856497607,1.157238431 +-0.151870002,1.236642467,1.542704886,-0.111033331,1.570796327,1.759585340,0.856631100,1.156176151 +-0.150870002,1.235940818,1.542626948,-0.110305073,1.570796327,1.758076550,0.856763543,1.155113402 +-0.149870002,1.235239111,1.542549520,-0.109576760,1.570796327,1.756567315,0.856894936,1.154050187 +-0.148870002,1.234537346,1.542472603,-0.108848390,1.570796327,1.755057640,0.857025277,1.152986509 +-0.147870002,1.233835524,1.542396197,-0.108119966,1.570796327,1.753547528,0.857154567,1.151922373 +-0.146870002,1.233133645,1.542320302,-0.107391486,1.570796327,1.752036981,0.857282805,1.150857781 +-0.145870002,1.232431709,1.542244918,-0.106662951,1.570796327,1.750526005,0.857409989,1.149792738 +-0.144870002,1.231729717,1.542170046,-0.105934362,1.570796327,1.749014600,0.857536121,1.148727246 +-0.143870002,1.231027670,1.542095685,-0.105205720,1.570796327,1.747502772,0.857661198,1.147661309 +-0.142870002,1.230325566,1.542021835,-0.104477023,1.570796327,1.745990523,0.857785220,1.146594931 +-0.141870002,1.229623408,1.541948496,-0.103748273,1.570796327,1.744477857,0.857908188,1.145528115 +-0.140870002,1.228921194,1.541875669,-0.103019471,1.570796327,1.742964776,0.858030099,1.144460864 +-0.139870002,1.228218927,1.541803354,-0.102290616,1.570796327,1.741451285,0.858150954,1.143393183 +-0.138870002,1.227516605,1.541731550,-0.101561709,1.570796327,1.739937387,0.858270753,1.142325075 +-0.137870002,1.226814230,1.541660259,-0.100832750,1.570796327,1.738423084,0.858389493,1.141256543 +-0.136870002,1.226111801,1.541589478,-0.100103739,1.570796327,1.736908382,0.858507176,1.140187590 +-0.135870002,1.225409320,1.541519210,-0.099374678,1.570796327,1.735393282,0.858623800,1.139118221 +-0.134870002,1.224706786,1.541449454,-0.098645566,1.570796327,1.733877788,0.858739366,1.138048439 +-0.133870002,1.224004200,1.541380210,-0.097916403,1.570796327,1.732361904,0.858853871,1.136978248 +-0.132870002,1.223301562,1.541311478,-0.097187191,1.570796327,1.730845632,0.858967316,1.135907650 +-0.131870002,1.222598872,1.541243258,-0.096457929,1.570796327,1.729328978,0.859079701,1.134836651 +-0.130870002,1.221896132,1.541175551,-0.095728617,1.570796327,1.727811943,0.859191024,1.133765252 +-0.129870002,1.221193341,1.541108355,-0.094999257,1.570796327,1.726294531,0.859301286,1.132693459 +-0.128870002,1.220490500,1.541041672,-0.094269848,1.570796327,1.724776746,0.859410485,1.131621274 +-0.127870002,1.219787609,1.540975502,-0.093540392,1.570796327,1.723258591,0.859518621,1.130548702 +-0.126870002,1.219084669,1.540909844,-0.092810887,1.570796327,1.721740070,0.859625695,1.129475745 +-0.125870002,1.218381679,1.540844699,-0.092081335,1.570796327,1.720221186,0.859731704,1.128402407 +-0.124870002,1.217678641,1.540780066,-0.091351736,1.570796327,1.718701942,0.859836649,1.127328693 +-0.123870002,1.216975554,1.540715946,-0.090622090,1.570796327,1.717182342,0.859940529,1.126254605 +-0.122870002,1.216272420,1.540652339,-0.089892398,1.570796327,1.715662390,0.860043344,1.125180147 +-0.121870002,1.215569238,1.540589245,-0.089162660,1.570796327,1.714142089,0.860145094,1.124105324 +-0.120870002,1.214866008,1.540526664,-0.088432876,1.570796327,1.712621442,0.860245777,1.123030138 +-0.119870002,1.214162732,1.540464596,-0.087703047,1.570796327,1.711100452,0.860345393,1.121954593 +-0.118870002,1.213459409,1.540403041,-0.086973173,1.570796327,1.709579125,0.860443942,1.120878694 +-0.117870002,1.212756040,1.540341999,-0.086243255,1.570796327,1.708057462,0.860541424,1.119802443 +-0.116870002,1.212052626,1.540281470,-0.085513292,1.570796327,1.706535467,0.860637837,1.118725845 +-0.115870002,1.211349166,1.540221454,-0.084783286,1.570796327,1.705013145,0.860733182,1.117648902 +-0.114870002,1.210645661,1.540161952,-0.084053237,1.570796327,1.703490497,0.860827458,1.116571620 +-0.113870002,1.209942112,1.540102963,-0.083323144,1.570796327,1.701967529,0.860920664,1.115494001 +-0.112870002,1.209238519,1.540044488,-0.082593009,1.570796327,1.700444243,0.861012800,1.114416049 +-0.111870002,1.208534882,1.539986526,-0.081862831,1.570796327,1.698920644,0.861103866,1.113337768 +-0.110870002,1.207831201,1.539929077,-0.081132612,1.570796327,1.697396734,0.861193862,1.112259161 +-0.109870002,1.207127477,1.539872143,-0.080402351,1.570796327,1.695872517,0.861282786,1.111180233 +-0.108870002,1.206423711,1.539815722,-0.079672049,1.570796327,1.694347996,0.861370638,1.110100988 +-0.107870002,1.205719902,1.539759814,-0.078941706,1.570796327,1.692823176,0.861457419,1.109021427 +-0.106870002,1.205016052,1.539704421,-0.078211322,1.570796327,1.691298060,0.861543127,1.107941557 +-0.105870002,1.204312160,1.539649541,-0.077480899,1.570796327,1.689772651,0.861627762,1.106861380 +-0.104870002,1.203608227,1.539595176,-0.076750435,1.570796327,1.688246953,0.861711324,1.105780900 +-0.103870002,1.202904253,1.539541324,-0.076019933,1.570796327,1.686720970,0.861793813,1.104700121 +-0.102870002,1.202200239,1.539487986,-0.075289391,1.570796327,1.685194705,0.861875227,1.103619046 +-0.101870002,1.201496185,1.539435163,-0.074558811,1.570796327,1.683668161,0.861955567,1.102537680 +-0.100870002,1.200792091,1.539382853,-0.073828192,1.570796327,1.682141343,0.862034832,1.101456026 +-0.099870002,1.200087958,1.539331058,-0.073097536,1.570796327,1.680614254,0.862113022,1.100374088 +-0.098870002,1.199383787,1.539279777,-0.072366842,1.570796327,1.679086897,0.862190136,1.099291870 +-0.097870002,1.198679576,1.539229010,-0.071636111,1.570796327,1.677559277,0.862266174,1.098209376 +-0.096870002,1.197975328,1.539178758,-0.070905344,1.570796327,1.676031396,0.862341136,1.097126608 +-0.095870002,1.197271042,1.539129020,-0.070174540,1.570796327,1.674503259,0.862415022,1.096043572 +-0.094870002,1.196566719,1.539079796,-0.069443700,1.570796327,1.672974869,0.862487830,1.094960271 +-0.093870002,1.195862359,1.539031087,-0.068712824,1.570796327,1.671446229,0.862559562,1.093876709 +-0.092870002,1.195157963,1.538982893,-0.067981913,1.570796327,1.669917344,0.862630215,1.092792889 +-0.091870002,1.194453530,1.538935213,-0.067250967,1.570796327,1.668388217,0.862699791,1.091708816 +-0.090870002,1.193749061,1.538888048,-0.066519987,1.570796327,1.666858851,0.862768288,1.090624493 +-0.089870002,1.193044558,1.538841398,-0.065788972,1.570796327,1.665329251,0.862835706,1.089539924 +-0.088870002,1.192340019,1.538795262,-0.065057924,1.570796327,1.663799419,0.862902045,1.088455113 +-0.087870002,1.191635445,1.538749641,-0.064326842,1.570796327,1.662269360,0.862967306,1.087370064 +-0.086870002,1.190930838,1.538704535,-0.063595727,1.570796327,1.660739078,0.863031486,1.086284780 +-0.085870002,1.190226196,1.538659944,-0.062864580,1.570796327,1.659208575,0.863094587,1.085199266 +-0.084870002,1.189521522,1.538615868,-0.062133400,1.570796327,1.657677856,0.863156607,1.084113525 +-0.083870002,1.188816814,1.538572307,-0.061402188,1.570796327,1.656146924,0.863217547,1.083027562 +-0.082870002,1.188112073,1.538529261,-0.060670945,1.570796327,1.654615783,0.863277406,1.081941379 +-0.081870002,1.187407300,1.538486730,-0.059939671,1.570796327,1.653084437,0.863336184,1.080854981 +-0.080870002,1.186702496,1.538444714,-0.059208366,1.570796327,1.651552889,0.863393880,1.079768373 +-0.079870002,1.185997659,1.538403213,-0.058477030,1.570796327,1.650021144,0.863450495,1.078681556 +-0.078870002,1.185292792,1.538362228,-0.057745664,1.570796327,1.648489203,0.863506028,1.077594536 +-0.077870002,1.184587894,1.538321758,-0.057014269,1.570796327,1.646957073,0.863560478,1.076507317 +-0.076870002,1.183882966,1.538281803,-0.056282844,1.570796327,1.645424755,0.863613846,1.075419902 +-0.075870002,1.183178007,1.538242364,-0.055551390,1.570796327,1.643892255,0.863666132,1.074332295 +-0.074870002,1.182473019,1.538203439,-0.054819908,1.570796327,1.642359575,0.863717334,1.073244500 +-0.073870002,1.181768002,1.538165031,-0.054088398,1.570796327,1.640826719,0.863767454,1.072156522 +-0.072870002,1.181062956,1.538127138,-0.053356859,1.570796327,1.639293691,0.863816489,1.071068363 +-0.071870002,1.180357882,1.538089760,-0.052625294,1.570796327,1.637760495,0.863864441,1.069980027 +-0.070870002,1.179652779,1.538052898,-0.051893701,1.570796327,1.636227135,0.863911310,1.068891520 +-0.069870002,1.178947649,1.538016551,-0.051162081,1.570796327,1.634693613,0.863957094,1.067802844 +-0.068870002,1.178242492,1.537980720,-0.050430436,1.570796327,1.633159935,0.864001793,1.066714003 +-0.067870002,1.177537308,1.537945405,-0.049698764,1.570796327,1.631626103,0.864045408,1.065625002 +-0.066870002,1.176832097,1.537910605,-0.048967066,1.570796327,1.630092121,0.864087939,1.064535845 +-0.065870002,1.176126860,1.537876322,-0.048235344,1.570796327,1.628557994,0.864129384,1.063446534 +-0.064870002,1.175421598,1.537842554,-0.047503596,1.570796327,1.627023725,0.864169744,1.062357075 +-0.063870002,1.174716310,1.537809301,-0.046771825,1.570796327,1.625489317,0.864209018,1.061267470 +-0.062870002,1.174010997,1.537776565,-0.046040029,1.570796327,1.623954774,0.864247208,1.060177725 +-0.061870002,1.173305660,1.537744345,-0.045308209,1.570796327,1.622420101,0.864284311,1.059087843 +-0.060870002,1.172600299,1.537712640,-0.044576366,1.570796327,1.620885300,0.864320328,1.057997828 +-0.059870002,1.171894914,1.537681451,-0.043844500,1.570796327,1.619350377,0.864355259,1.056907683 +-0.058870002,1.171189505,1.537650779,-0.043112612,1.570796327,1.617815333,0.864389104,1.055817413 +-0.057870002,1.170484074,1.537620622,-0.042380701,1.570796327,1.616280174,0.864421863,1.054727022 +-0.056870002,1.169778620,1.537590982,-0.041648769,1.570796327,1.614744902,0.864453535,1.053636513 +-0.055870002,1.169073143,1.537561857,-0.040916815,1.570796327,1.613209523,0.864484120,1.052545891 +-0.054870002,1.168367645,1.537533249,-0.040184839,1.570796327,1.611674039,0.864513618,1.051455160 +-0.053870002,1.167662126,1.537505156,-0.039452844,1.570796327,1.610138453,0.864542029,1.050364323 +-0.052870002,1.166956585,1.537477580,-0.038720828,1.570796327,1.608602771,0.864569353,1.049273384 +-0.051870002,1.166251024,1.537450520,-0.037988792,1.570796327,1.607066996,0.864595590,1.048182348 +-0.050870002,1.165545443,1.537423977,-0.037256736,1.570796327,1.605531131,0.864620739,1.047091218 +-0.049870002,1.164839841,1.537397949,-0.036524661,1.570796327,1.603995181,0.864644801,1.045999999 +-0.048870002,1.164134220,1.537372438,-0.035792567,1.570796327,1.602459149,0.864667775,1.044908694 +-0.047870002,1.163428580,1.537347443,-0.035060455,1.570796327,1.600923038,0.864689661,1.043817306 +-0.046870002,1.162722922,1.537322965,-0.034328325,1.570796327,1.599386853,0.864710459,1.042725841 +-0.045870002,1.162017245,1.537299003,-0.033596177,1.570796327,1.597850598,0.864730169,1.041634303 +-0.044870002,1.161311550,1.537275557,-0.032864012,1.570796327,1.596314276,0.864748791,1.040542694 +-0.043870002,1.160605838,1.537252627,-0.032131830,1.570796327,1.594777891,0.864766325,1.039451019 +-0.042870002,1.159900108,1.537230214,-0.031399631,1.570796327,1.593241446,0.864782771,1.038359283 +-0.041870002,1.159194362,1.537208318,-0.030667417,1.570796327,1.591704947,0.864798128,1.037267488 +-0.040870002,1.158488599,1.537186938,-0.029935186,1.570796327,1.590168395,0.864812397,1.036175639 +-0.039870002,1.157782820,1.537166074,-0.029202940,1.570796327,1.588631796,0.864825578,1.035083740 +-0.038870002,1.157077026,1.537145728,-0.028470679,1.570796327,1.587095153,0.864837670,1.033991795 +-0.037870002,1.156371217,1.537125897,-0.027738403,1.570796327,1.585558469,0.864848673,1.032899808 +-0.036870002,1.155665393,1.537106583,-0.027006113,1.570796327,1.584021749,0.864858588,1.031807783 +-0.035870002,1.154959554,1.537087786,-0.026273808,1.570796327,1.582484997,0.864867413,1.030715723 +-0.034870002,1.154253701,1.537069505,-0.025541491,1.570796327,1.580948215,0.864875151,1.029623634 +-0.033870002,1.153547835,1.537051741,-0.024809160,1.570796327,1.579411409,0.864881799,1.028531518 +-0.032870002,1.152841955,1.537034494,-0.024076816,1.570796327,1.577874581,0.864887358,1.027439380 +-0.031870002,1.152136063,1.537017763,-0.023344460,1.570796327,1.576337736,0.864891829,1.026347223 +-0.030870002,1.151430158,1.537001549,-0.022612092,1.570796327,1.574800877,0.864895211,1.025255052 +-0.029870002,1.150724241,1.536985852,-0.021879713,1.570796327,1.573264008,0.864897504,1.024162871 +-0.028870002,1.150018312,1.536970671,-0.021147321,1.570796327,1.571727133,0.864898707,1.023070683 +-0.027870002,1.149312373,1.536956007,-0.020414920,1.570796327,1.570190255,0.864898823,1.021978493 +-0.026870002,1.148606422,1.536941860,-0.019682507,1.570796327,1.568653380,0.864897849,1.020886305 +-0.025870002,1.147900460,1.536928229,-0.018950084,1.570796327,1.567116509,0.864895786,1.019794122 +-0.024870002,1.147194489,1.536915116,-0.018217652,1.570796327,1.565579648,0.864892634,1.018701949 +-0.023870002,1.146488508,1.536902519,-0.017485210,1.570796327,1.564042799,0.864888394,1.017609789 +-0.022870002,1.145782517,1.536890439,-0.016752759,1.570796327,1.562505967,0.864883064,1.016517646 +-0.021870002,1.145076518,1.536878875,-0.016020300,1.570796327,1.560969156,0.864876646,1.015425525 +-0.020870002,1.144370510,1.536867829,-0.015287832,1.570796327,1.559432369,0.864869139,1.014333430 +-0.019870002,1.143664493,1.536857299,-0.014555357,1.570796327,1.557895610,0.864860543,1.013241364 +-0.018870002,1.142958470,1.536847287,-0.013822873,1.570796327,1.556358883,0.864850859,1.012149331 +-0.017870002,1.142252438,1.536837791,-0.013090383,1.570796327,1.554822191,0.864840085,1.011057335 +-0.016870002,1.141546400,1.536828812,-0.012357886,1.570796327,1.553285539,0.864828223,1.009965381 +-0.015870002,1.140840355,1.536820350,-0.011625383,1.570796327,1.551748930,0.864815273,1.008873472 +-0.014870002,1.140134304,1.536812404,-0.010892873,1.570796327,1.550212368,0.864801234,1.007781613 +-0.013870002,1.139428247,1.536804976,-0.010160358,1.570796327,1.548675857,0.864786107,1.006689806 +-0.012870002,1.138722184,1.536798064,-0.009427838,1.570796327,1.547139401,0.864769891,1.005598057 +-0.011870002,1.138016117,1.536791670,-0.008695313,1.570796327,1.545603003,0.864752587,1.004506369 +-0.010870002,1.137310045,1.536785792,-0.007962783,1.570796327,1.544066667,0.864734195,1.003414746 +-0.009870002,1.136603969,1.536780432,-0.007230250,1.570796327,1.542530398,0.864714714,1.002323192 +-0.008870002,1.135897888,1.536775588,-0.006497712,1.570796327,1.540994198,0.864694146,1.001231711 +-0.007870002,1.135191805,1.536771261,-0.005765171,1.570796327,1.539458071,0.864672490,1.000140307 +-0.006870002,1.134485718,1.536767451,-0.005032628,1.570796327,1.537922022,0.864649746,0.999048984 +-0.005870002,1.133779629,1.536764158,-0.004300081,1.570796327,1.536386054,0.864625914,0.997957746 +-0.004870002,1.133073537,1.536761382,-0.003567533,1.570796327,1.534850171,0.864600994,0.996866597 +-0.003870002,1.132367443,1.536759123,-0.002834982,1.570796327,1.533314376,0.864574987,0.995775541 +-0.002870002,1.131661348,1.536757381,-0.002102430,1.570796327,1.531778674,0.864547893,0.994684581 +-0.001870002,1.130955252,1.536756156,-0.001369877,1.570796327,1.530243068,0.864519712,0.993593722 +-0.000870002,1.130249155,1.536755447,-0.000637323,1.570796327,1.528707562,0.864490443,0.992502968 +0.000129998,1.129543057,1.536755256,0.000095231,1.570796327,1.527172160,0.864460088,0.991412323 +0.001129998,1.128836960,1.536755582,0.000827785,1.570796327,1.525636866,0.864428646,0.990321790 +0.002129998,1.128130863,1.536756424,0.001560338,1.570796327,1.524101682,0.864396117,0.989231374 +0.003129998,1.127424767,1.536757784,0.002292891,1.570796327,1.522566614,0.864362501,0.988141078 +0.004129998,1.126718672,1.536759660,0.003025442,1.570796327,1.521031665,0.864327799,0.987050906 +0.005129998,1.126012579,1.536762054,0.003757992,1.570796327,1.519496838,0.864292012,0.985960863 +0.006129998,1.125306488,1.536764964,0.004490541,1.570796327,1.517962137,0.864255138,0.984870953 +0.007129998,1.124600399,1.536768392,0.005223086,1.570796327,1.516427567,0.864217178,0.983781178 +0.008129998,1.123894313,1.536772336,0.005955629,1.570796327,1.514893130,0.864178133,0.982691544 +0.009129998,1.123188231,1.536776797,0.006688169,1.570796327,1.513358831,0.864138002,0.981602053 +0.010129998,1.122482151,1.536781776,0.007420706,1.570796327,1.511824674,0.864096786,0.980512711 +0.011129998,1.121776076,1.536787271,0.008153239,1.570796327,1.510290661,0.864054485,0.979423521 +0.012129998,1.121070005,1.536793283,0.008885767,1.570796327,1.508756797,0.864011099,0.978334486 +0.013129998,1.120363939,1.536799812,0.009618291,1.570796327,1.507223086,0.863966629,0.977245612 +0.014129998,1.119657878,1.536806858,0.010350810,1.570796327,1.505689531,0.863921074,0.976156901 +0.015129998,1.118951822,1.536814420,0.011083324,1.570796327,1.504156136,0.863874435,0.975068357 +0.016129998,1.118245773,1.536822500,0.011815831,1.570796327,1.502622905,0.863826712,0.973979985 +0.017129998,1.117539730,1.536831096,0.012548333,1.570796327,1.501089842,0.863777905,0.972891789 +0.018129998,1.116833693,1.536840210,0.013280828,1.570796327,1.499556949,0.863728014,0.971803771 +0.019129998,1.116127664,1.536849840,0.014013317,1.570796327,1.498024232,0.863677041,0.970715937 +0.020129998,1.115421642,1.536859987,0.014745798,1.570796327,1.496491693,0.863624984,0.969628290 +0.021129998,1.114715627,1.536870651,0.015478272,1.570796327,1.494959336,0.863571845,0.968540835 +0.022129998,1.114009622,1.536881832,0.016210737,1.570796327,1.493427166,0.863517623,0.967453574 +0.023129998,1.113303624,1.536893530,0.016943195,1.570796327,1.491895185,0.863462319,0.966366511 +0.024129998,1.112597636,1.536905744,0.017675643,1.570796327,1.490363398,0.863405933,0.965279652 +0.025129998,1.111891658,1.536918475,0.018408083,1.570796327,1.488831808,0.863348465,0.964192999 +0.026129998,1.111185689,1.536931723,0.019140512,1.570796327,1.487300419,0.863289915,0.963106556 +0.027129998,1.110479730,1.536945488,0.019872932,1.570796327,1.485769235,0.863230285,0.962020328 +0.028129998,1.109773782,1.536959770,0.020605342,1.570796327,1.484238258,0.863169573,0.960934317 +0.029129998,1.109067845,1.536974568,0.021337741,1.570796327,1.482707494,0.863107781,0.959848529 +0.030129998,1.108361919,1.536989883,0.022070129,1.570796327,1.481176945,0.863044909,0.958762967 +0.031129998,1.107656006,1.537005715,0.022802506,1.570796327,1.479646616,0.862980957,0.957677634 +0.032129998,1.106950104,1.537022063,0.023534871,1.570796327,1.478116509,0.862915925,0.956592535 +0.033129998,1.106244215,1.537038928,0.024267224,1.570796327,1.476586630,0.862849813,0.955507674 +0.034129998,1.105538339,1.537056310,0.024999564,1.570796327,1.475056980,0.862782623,0.954423053 +0.035129998,1.104832476,1.537074208,0.025731892,1.570796327,1.473527565,0.862714353,0.953338678 +0.036129998,1.104126627,1.537092623,0.026464206,1.570796327,1.471998387,0.862645006,0.952254551 +0.037129998,1.103420792,1.537111555,0.027196506,1.570796327,1.470469450,0.862574580,0.951170678 +0.038129998,1.102714971,1.537131003,0.027928793,1.570796327,1.468940758,0.862503077,0.950087061 +0.039129998,1.102009166,1.537150968,0.028661065,1.570796327,1.467412315,0.862430496,0.949003704 +0.040129998,1.101303376,1.537171449,0.029393322,1.570796327,1.465884124,0.862356838,0.947920612 +0.041129998,1.100597601,1.537192447,0.030125564,1.570796327,1.464356189,0.862282103,0.946837788 +0.042129998,1.099891843,1.537213961,0.030857791,1.570796327,1.462828513,0.862206292,0.945755235 +0.043129998,1.099186101,1.537235992,0.031590002,1.570796327,1.461301100,0.862129405,0.944672958 +0.044129998,1.098480376,1.537258539,0.032322196,1.570796327,1.459773954,0.862051442,0.943590961 +0.045129998,1.097774668,1.537281603,0.033054374,1.570796327,1.458247079,0.861972405,0.942509247 +0.046129998,1.097068977,1.537305183,0.033786535,1.570796327,1.456720477,0.861892292,0.941427819 +0.047129998,1.096363305,1.537329279,0.034518678,1.570796327,1.455194153,0.861811104,0.940346683 +0.048129998,1.095657651,1.537353892,0.035250803,1.570796327,1.453668109,0.861728843,0.939265841 +0.049129998,1.094952016,1.537379021,0.035982911,1.570796327,1.452142351,0.861645508,0.938185298 +0.050129998,1.094246401,1.537404667,0.036715000,1.570796327,1.450616881,0.861561099,0.937105056 +0.051129998,1.093540804,1.537430828,0.037447069,1.570796327,1.449091702,0.861475618,0.936025121 +0.052129998,1.092835228,1.537457506,0.038179120,1.570796327,1.447566819,0.861389064,0.934945495 +0.053129998,1.092129672,1.537484700,0.038911151,1.570796327,1.446042235,0.861301438,0.933866182 +0.054129998,1.091424137,1.537512411,0.039643162,1.570796327,1.444517954,0.861212740,0.932787187 +0.055129998,1.090718623,1.537540637,0.040375152,1.570796327,1.442993979,0.861122971,0.931708512 +0.056129998,1.090013131,1.537569380,0.041107122,1.570796327,1.441470313,0.861032131,0.930630162 +0.057129998,1.089307660,1.537598638,0.041839070,1.570796327,1.439946961,0.860940221,0.929552140 +0.058129998,1.088602212,1.537628413,0.042570997,1.570796327,1.438423925,0.860847241,0.928474450 +0.059129998,1.087896786,1.537658704,0.043302902,1.570796327,1.436901210,0.860753191,0.927397096 +0.060129998,1.087191384,1.537689511,0.044034785,1.570796327,1.435378818,0.860658072,0.926320082 +0.061129998,1.086486005,1.537720833,0.044766645,1.570796327,1.433856754,0.860561884,0.925243410 +0.062129998,1.085780650,1.537752672,0.045498482,1.570796327,1.432335021,0.860464629,0.924167086 +0.063129998,1.085075319,1.537785027,0.046230295,1.570796327,1.430813622,0.860366305,0.923091112 +0.064129998,1.084370013,1.537817897,0.046962085,1.570796327,1.429292561,0.860266914,0.922015492 +0.065129998,1.083664731,1.537851284,0.047693850,1.570796327,1.427771841,0.860166456,0.920940230 +0.066129998,1.082959476,1.537885186,0.048425591,1.570796327,1.426251467,0.860064932,0.919865330 +0.067129998,1.082254246,1.537919604,0.049157307,1.570796327,1.424731440,0.859962343,0.918790795 +0.068129998,1.081549042,1.537954537,0.049888998,1.570796327,1.423211766,0.859858687,0.917716628 +0.069129998,1.080843865,1.537989987,0.050620663,1.570796327,1.421692446,0.859753967,0.916642835 +0.070129998,1.080138714,1.538025952,0.051352302,1.570796327,1.420173486,0.859648183,0.915569417 +0.071129998,1.079433592,1.538062432,0.052083915,1.570796327,1.418654888,0.859541334,0.914496380 +0.072129998,1.078728496,1.538099428,0.052815501,1.570796327,1.417136655,0.859433422,0.913423725 +0.073129998,1.078023429,1.538136940,0.053547059,1.570796327,1.415618792,0.859324448,0.912351458 +0.074129998,1.077318391,1.538174967,0.054278590,1.570796327,1.414101301,0.859214410,0.911279582 +0.075129998,1.076613381,1.538213510,0.055010093,1.570796327,1.412584186,0.859103311,0.910208100 +0.076129998,1.075908401,1.538252568,0.055741568,1.570796327,1.411067451,0.858991151,0.909137016 +0.077129998,1.075203450,1.538292142,0.056473014,1.570796327,1.409551098,0.858877930,0.908066333 +0.078129998,1.074498530,1.538332230,0.057204432,1.570796327,1.408035132,0.858763648,0.906996055 +0.079129998,1.073793640,1.538372835,0.057935819,1.570796327,1.406519556,0.858648307,0.905926187 +0.080129998,1.073088780,1.538413954,0.058667177,1.570796327,1.405004372,0.858531907,0.904856730 +0.081129998,1.072383952,1.538455588,0.059398505,1.570796327,1.403489585,0.858414447,0.903787689 +0.082129998,1.071679156,1.538497738,0.060129802,1.570796327,1.401975198,0.858295930,0.902719068 +0.083129998,1.070974391,1.538540403,0.060861069,1.570796327,1.400461214,0.858176355,0.901650870 +0.084129998,1.070269659,1.538583583,0.061592304,1.570796327,1.398947636,0.858055723,0.900583098 +0.085129998,1.069564960,1.538627278,0.062323507,1.570796327,1.397434469,0.857934035,0.899515756 +0.086129998,1.068860294,1.538671488,0.063054679,1.570796327,1.395921715,0.857811291,0.898448848 +0.087129998,1.068155661,1.538716213,0.063785818,1.570796327,1.394409377,0.857687491,0.897382377 +0.088129998,1.067451062,1.538761453,0.064516924,1.570796327,1.392897460,0.857562637,0.896316347 +0.089129998,1.066746498,1.538807208,0.065247997,1.570796327,1.391385966,0.857436728,0.895250761 +0.090129998,1.066041968,1.538853477,0.065979036,1.570796327,1.389874898,0.857309766,0.894185622 +0.091129998,1.065337473,1.538900261,0.066710042,1.570796327,1.388364261,0.857181751,0.893120935 +0.092129998,1.064633014,1.538947560,0.067441014,1.570796327,1.386854056,0.857052683,0.892056702 +0.093129998,1.063928591,1.538995374,0.068171950,1.570796327,1.385344289,0.856922564,0.890992927 +0.094129998,1.063224204,1.539043702,0.068902852,1.570796327,1.383834961,0.856791394,0.889929614 +0.095129998,1.062519853,1.539092545,0.069633719,1.570796327,1.382326076,0.856659172,0.888866766 +0.096129998,1.061815540,1.539141902,0.070364549,1.570796327,1.380817638,0.856525901,0.887804386 +0.097129998,1.061111264,1.539191774,0.071095344,1.570796327,1.379309649,0.856391581,0.886742479 +0.098129998,1.060407025,1.539242160,0.071826102,1.570796327,1.377802114,0.856256211,0.885681047 +0.099129998,1.059702825,1.539293060,0.072556824,1.570796327,1.376295034,0.856119794,0.884620093 +0.100129998,1.058998663,1.539344475,0.073287508,1.570796327,1.374788414,0.855982329,0.883559622 +0.101129998,1.058294541,1.539396404,0.074018154,1.570796327,1.373282257,0.855843817,0.882499637 +0.102129998,1.057590457,1.539448847,0.074748763,1.570796327,1.371776566,0.855704259,0.881440141 +0.103129998,1.056886414,1.539501804,0.075479333,1.570796327,1.370271343,0.855563656,0.880381137 +0.104129998,1.056182410,1.539555276,0.076209864,1.570796327,1.368766593,0.855422007,0.879322629 +0.105129998,1.055478447,1.539609261,0.076940357,1.570796327,1.367262319,0.855279314,0.878264620 +0.106129998,1.054774524,1.539663760,0.077670810,1.570796327,1.365758523,0.855135578,0.877207114 +0.107129998,1.054070643,1.539718774,0.078401223,1.570796327,1.364255210,0.854990798,0.876150114 +0.108129998,1.053366803,1.539774301,0.079131596,1.570796327,1.362752381,0.854844976,0.875093624 +0.109129998,1.052663006,1.539830341,0.079861928,1.570796327,1.361250041,0.854698113,0.874037646 +0.110129998,1.051959251,1.539886896,0.080592220,1.570796327,1.359748192,0.854550208,0.872982184 +0.111129998,1.051255538,1.539943964,0.081322470,1.570796327,1.358246838,0.854401264,0.871927242 +0.112129998,1.050551869,1.540001546,0.082052679,1.570796327,1.356745981,0.854251279,0.870872822 +0.113129998,1.049848243,1.540059642,0.082782845,1.570796327,1.355245626,0.854100256,0.869818928 +0.114129998,1.049144661,1.540118251,0.083512969,1.570796327,1.353745774,0.853948194,0.868765564 +0.115129998,1.048441123,1.540177373,0.084243051,1.570796327,1.352246429,0.853795095,0.867712732 +0.116129998,1.047737630,1.540237009,0.084973089,1.570796327,1.350747595,0.853640959,0.866660436 +0.117129998,1.047034182,1.540297158,0.085703084,1.570796327,1.349249274,0.853485787,0.865608679 +0.118129998,1.046330779,1.540357820,0.086433035,1.570796327,1.347751470,0.853329579,0.864557465 +0.119129998,1.045627423,1.540418995,0.087162942,1.570796327,1.346254184,0.853172337,0.863506797 +0.120129998,1.044924112,1.540480684,0.087892804,1.570796327,1.344757422,0.853014060,0.862456677 +0.121129998,1.044220848,1.540542886,0.088622621,1.570796327,1.343261185,0.852854750,0.861407110 +0.122129998,1.043517631,1.540605600,0.089352393,1.570796327,1.341765477,0.852694408,0.860358098 +0.123129998,1.042814461,1.540668828,0.090082119,1.570796327,1.340270300,0.852533033,0.859309645 +0.124129998,1.042111339,1.540732568,0.090811799,1.570796327,1.338775658,0.852370628,0.858261754 +0.125129998,1.041408264,1.540796821,0.091541433,1.570796327,1.337281554,0.852207192,0.857214428 +0.126129998,1.040705239,1.540861587,0.092271020,1.570796327,1.335787991,0.852042726,0.856167670 +0.127129998,1.040002262,1.540926866,0.093000560,1.570796327,1.334294972,0.851877232,0.855121484 +0.128129998,1.039299334,1.540992657,0.093730052,1.570796327,1.332802499,0.851710709,0.854075872 +0.129129998,1.038596456,1.541058960,0.094459497,1.570796327,1.331310576,0.851543159,0.853030838 +0.130129998,1.037893628,1.541125776,0.095188893,1.570796327,1.329819206,0.851374582,0.851986386 +0.131129998,1.037190850,1.541193105,0.095918240,1.570796327,1.328328392,0.851204979,0.850942517 +0.132129998,1.036488123,1.541260946,0.096647539,1.570796327,1.326838136,0.851034351,0.849899236 +0.133129998,1.035785448,1.541329299,0.097376788,1.570796327,1.325348442,0.850862698,0.848856545 +0.134129998,1.035082823,1.541398164,0.098105987,1.570796327,1.323859313,0.850690022,0.847814448 +0.135129998,1.034380251,1.541467541,0.098835137,1.570796327,1.322370751,0.850516323,0.846772947 +0.136129998,1.033677730,1.541537431,0.099564236,1.570796327,1.320882760,0.850341602,0.845732046 +0.137129998,1.032975262,1.541607832,0.100293284,1.570796327,1.319395342,0.850165860,0.844691748 +0.138129998,1.032272848,1.541678745,0.101022281,1.570796327,1.317908500,0.849989097,0.843652056 +0.139129998,1.031570486,1.541750170,0.101751227,1.570796327,1.316422237,0.849811314,0.842612973 +0.140129998,1.030868179,1.541822107,0.102480120,1.570796327,1.314936557,0.849632512,0.841574502 +0.141129998,1.030165925,1.541894555,0.103208962,1.570796327,1.313451461,0.849452692,0.840536647 +0.142129998,1.029463726,1.541967515,0.103937751,1.570796327,1.311966953,0.849271855,0.839499409 +0.143129998,1.028761582,1.542040986,0.104666486,1.570796327,1.310483036,0.849090001,0.838462793 +0.144129998,1.028059493,1.542114969,0.105395169,1.570796327,1.308999712,0.848907132,0.837426801 +0.145129998,1.027357459,1.542189463,0.106123798,1.570796327,1.307516984,0.848723247,0.836391436 +0.146129998,1.026655482,1.542264469,0.106852373,1.570796327,1.306034856,0.848538349,0.835356701 +0.147129998,1.025953561,1.542339985,0.107580893,1.570796327,1.304553329,0.848352437,0.834322600 +0.148129998,1.025251697,1.542416013,0.108309358,1.570796327,1.303072408,0.848165512,0.833289135 +0.149129998,1.024549889,1.542492552,0.109037769,1.570796327,1.301592093,0.847977576,0.832256309 +0.150129998,1.023848140,1.542569602,0.109766124,1.570796327,1.300112390,0.847788629,0.831224125 +0.151129998,1.023146448,1.542647162,0.110494423,1.570796327,1.298633299,0.847598672,0.830192587 +0.152129998,1.022444814,1.542725234,0.111222666,1.570796327,1.297154824,0.847407706,0.829161696 +0.153129998,1.021743239,1.542803816,0.111950852,1.570796327,1.295676967,0.847215731,0.828131457 +0.154129998,1.021041723,1.542882909,0.112678981,1.570796327,1.294199732,0.847022749,0.827101872 +0.155129998,1.020340267,1.542962512,0.113407053,1.570796327,1.292723121,0.846828760,0.826072943 +0.156129998,1.019638870,1.543042626,0.114135068,1.570796327,1.291247137,0.846633766,0.825044674 +0.157129998,1.018937533,1.543123250,0.114863024,1.570796327,1.289771783,0.846437766,0.824017068 +0.158129998,1.018236256,1.543204384,0.115590922,1.570796327,1.288297060,0.846240762,0.822990128 +0.159129998,1.017535041,1.543286029,0.116318761,1.570796327,1.286822973,0.846042756,0.821963855 +0.160129998,1.016833886,1.543368184,0.117046542,1.570796327,1.285349523,0.845843746,0.820938255 +0.161129998,1.016132794,1.543450849,0.117774262,1.570796327,1.283876713,0.845643736,0.819913328 +0.162129998,1.015431763,1.543534024,0.118501923,1.570796327,1.282404546,0.845442724,0.818889078 +0.163129998,1.014730794,1.543617709,0.119229524,1.570796327,1.280933025,0.845240713,0.817865508 +0.164129998,1.014029889,1.543701903,0.119957064,1.570796327,1.279462152,0.845037703,0.816842621 +0.165129998,1.013329046,1.543786607,0.120684544,1.570796327,1.277991929,0.844833695,0.815820419 +0.166129998,1.012628267,1.543871821,0.121411962,1.570796327,1.276522361,0.844628690,0.814798905 +0.167129998,1.011927551,1.543957545,0.122139318,1.570796327,1.275053448,0.844422688,0.813778082 +0.168129998,1.011226900,1.544043778,0.122866613,1.570796327,1.273585194,0.844215692,0.812757953 +0.169129998,1.010526313,1.544130520,0.123593845,1.570796327,1.272117601,0.844007700,0.811738521 +0.170129998,1.009825791,1.544217771,0.124321015,1.570796327,1.270650672,0.843798716,0.810719788 +0.171129998,1.009125334,1.544305532,0.125048121,1.570796327,1.269184409,0.843588738,0.809701757 +0.172129998,1.008424944,1.544393802,0.125775165,1.570796327,1.267718815,0.843377769,0.808684431 +0.173129998,1.007724619,1.544482580,0.126502144,1.570796327,1.266253893,0.843165809,0.807667813 +0.174129998,1.007024360,1.544571868,0.127229060,1.570796327,1.264789644,0.842952859,0.806651904 +0.175129998,1.006324168,1.544661664,0.127955911,1.570796327,1.263326072,0.842738920,0.805636709 +0.176129998,1.005624044,1.544751970,0.128682697,1.570796327,1.261863179,0.842523993,0.804622229 +0.177129998,1.004923987,1.544842783,0.129409418,1.570796327,1.260400968,0.842308078,0.803608468 +0.178129998,1.004223997,1.544934106,0.130136074,1.570796327,1.258939441,0.842091178,0.802595428 +0.179129998,1.003524076,1.545025936,0.130862664,1.570796327,1.257478600,0.841873292,0.801583111 +0.180129998,1.002824224,1.545118275,0.131589187,1.570796327,1.256018448,0.841654421,0.800571521 +0.181129998,1.002124440,1.545211123,0.132315644,1.570796327,1.254558987,0.841434567,0.799560659 +0.182129998,1.001424726,1.545304478,0.133042035,1.570796327,1.253100220,0.841213731,0.798550529 +0.183129998,1.000725081,1.545398342,0.133768357,1.570796327,1.251642150,0.840991913,0.797541134 +0.184129998,1.000025507,1.545492713,0.134494613,1.570796327,1.250184778,0.840769114,0.796532475 +0.185129998,0.999326003,1.545587592,0.135220800,1.570796327,1.248728108,0.840545336,0.795524555 +0.186129998,0.998626569,1.545682979,0.135946919,1.570796327,1.247272140,0.840320579,0.794517378 +0.187129998,0.997927207,1.545778874,0.136672970,1.570796327,1.245816879,0.840094844,0.793510945 +0.188129998,0.997227917,1.545875276,0.137398951,1.570796327,1.244362326,0.839868132,0.792505259 +0.189129998,0.996528698,1.545972186,0.138124863,1.570796327,1.242908484,0.839640444,0.791500323 +0.190129998,0.995829551,1.546069603,0.138850705,1.570796327,1.241455355,0.839411781,0.790496139 +0.191129998,0.995130477,1.546167528,0.139576478,1.570796327,1.240002941,0.839182144,0.789492710 +0.192129998,0.994431477,1.546265959,0.140302179,1.570796327,1.238551245,0.838951535,0.788490038 +0.193129998,0.993732549,1.546364898,0.141027811,1.570796327,1.237100268,0.838719953,0.787488126 +0.194129998,0.993033695,1.546464343,0.141753371,1.570796327,1.235650014,0.838487400,0.786486977 +0.195129998,0.992334915,1.546564296,0.142478859,1.570796327,1.234200485,0.838253877,0.785486592 +0.196129998,0.991636210,1.546664755,0.143204276,1.570796327,1.232751683,0.838019384,0.784486974 +0.197129998,0.990937579,1.546765721,0.143929620,1.570796327,1.231303610,0.837783924,0.783488126 +0.198129998,0.990239023,1.546867193,0.144654893,1.570796327,1.229856268,0.837547496,0.782490050 +0.199129998,0.989540543,1.546969172,0.145380092,1.570796327,1.228409660,0.837310102,0.781492748 +0.200129998,0.988842139,1.547071657,0.146105218,1.570796327,1.226963788,0.837071743,0.780496224 +0.201129998,0.988143811,1.547174649,0.146830270,1.570796327,1.225518654,0.836832420,0.779500479 +0.202129998,0.987445560,1.547278146,0.147555249,1.570796327,1.224074261,0.836592133,0.778505516 +0.203129998,0.986747385,1.547382150,0.148280153,1.570796327,1.222630610,0.836350885,0.777511337 +0.204129998,0.986049288,1.547486659,0.149004983,1.570796327,1.221187704,0.836108675,0.776517945 +0.205129998,0.985351268,1.547591675,0.149729738,1.570796327,1.219745545,0.835865505,0.775525342 +0.206129998,0.984653327,1.547697196,0.150454418,1.570796327,1.218304135,0.835621375,0.774533530 +0.207129998,0.983955464,1.547803222,0.151179022,1.570796327,1.216863477,0.835376287,0.773542512 +0.208129998,0.983257679,1.547909754,0.151903550,1.570796327,1.215423572,0.835130242,0.772552290 +0.209129998,0.982559974,1.548016792,0.152628002,1.570796327,1.213984423,0.834883241,0.771562866 +0.210129998,0.981862348,1.548124334,0.153352377,1.570796327,1.212546032,0.834635285,0.770574243 +0.211129998,0.981164802,1.548232382,0.154076675,1.570796327,1.211108400,0.834386375,0.769586423 +0.212129998,0.980467336,1.548340935,0.154800896,1.570796327,1.209671531,0.834136511,0.768599408 +0.213129998,0.979769951,1.548449993,0.155525039,1.570796327,1.208235425,0.833885695,0.767613201 +0.214129998,0.979072646,1.548559556,0.156249104,1.570796327,1.206800086,0.833633928,0.766627804 +0.215129998,0.978375423,1.548669623,0.156973091,1.570796327,1.205365516,0.833381211,0.765643219 +0.216129998,0.977678281,1.548780195,0.157696999,1.570796327,1.203931715,0.833127545,0.764659449 +0.217129998,0.976981222,1.548891272,0.158420828,1.570796327,1.202498687,0.832872931,0.763676495 +0.218129998,0.976284244,1.549002853,0.159144578,1.570796327,1.201066434,0.832617370,0.762694359 +0.219129998,0.975587349,1.549114938,0.159868248,1.570796327,1.199634957,0.832360863,0.761713045 +0.220129998,0.974890538,1.549227527,0.160591838,1.570796327,1.198204258,0.832103411,0.760732555 +0.221129998,0.974193809,1.549340620,0.161315347,1.570796327,1.196774340,0.831845015,0.759752889 +0.222129998,0.973497164,1.549454217,0.162038776,1.570796327,1.195345205,0.831585677,0.758774051 +0.223129998,0.972800604,1.549568318,0.162762124,1.570796327,1.193916854,0.831325396,0.757796044 +0.224129998,0.972104128,1.549682923,0.163485390,1.570796327,1.192489289,0.831064175,0.756818868 +0.225129998,0.971407736,1.549798031,0.164208574,1.570796327,1.191062513,0.830802014,0.755842526 +0.226129998,0.970711430,1.549913643,0.164931677,1.570796327,1.189636527,0.830538915,0.754867021 +0.227129998,0.970015209,1.550029758,0.165654697,1.570796327,1.188211334,0.830274878,0.753892353 +0.228129998,0.969319074,1.550146376,0.166377634,1.570796327,1.186786935,0.830009904,0.752918527 +0.229129998,0.968623025,1.550263498,0.167100488,1.570796327,1.185363332,0.829743995,0.751945543 +0.230129998,0.967927063,1.550381122,0.167823258,1.570796327,1.183940527,0.829477152,0.750973404 +0.231129998,0.967231187,1.550499249,0.168545945,1.570796327,1.182518522,0.829209375,0.750002111 +0.232129998,0.966535399,1.550617879,0.169268548,1.570796327,1.181097319,0.828940666,0.749031668 +0.233129998,0.965839699,1.550737012,0.169991066,1.570796327,1.179676920,0.828671026,0.748062075 +0.234129998,0.965144086,1.550856647,0.170713499,1.570796327,1.178257326,0.828400456,0.747093335 +0.235129998,0.964448562,1.550976784,0.171435848,1.570796327,1.176838540,0.828128957,0.746125451 +0.236129998,0.963753126,1.551097424,0.172158111,1.570796327,1.175420563,0.827856529,0.745158423 +0.237129998,0.963057779,1.551218565,0.172880288,1.570796327,1.174003397,0.827583175,0.744192255 +0.238129998,0.962362522,1.551340209,0.173602378,1.570796327,1.172587044,0.827308895,0.743226947 +0.239129998,0.961667354,1.551462355,0.174324383,1.570796327,1.171171506,0.827033690,0.742262503 +0.240129998,0.960972276,1.551585002,0.175046300,1.570796327,1.169756784,0.826757562,0.741298923 +0.241129998,0.960277289,1.551708151,0.175768131,1.570796327,1.168342881,0.826480511,0.740336211 +0.242129998,0.959582392,1.551831802,0.176489874,1.570796327,1.166929797,0.826202538,0.739374367 +0.243129998,0.958887587,1.551955954,0.177211529,1.570796327,1.165517536,0.825923646,0.738413395 +0.244129998,0.958192873,1.552080607,0.177933096,1.570796327,1.164106098,0.825643833,0.737453295 +0.245129998,0.957498250,1.552205761,0.178654575,1.570796327,1.162695485,0.825363103,0.736494070 +0.246129998,0.956803720,1.552331417,0.179375964,1.570796327,1.161285700,0.825081456,0.735535721 +0.247129998,0.956109282,1.552457573,0.180097265,1.570796327,1.159876743,0.824798892,0.734578252 +0.248129998,0.955414937,1.552584230,0.180818476,1.570796327,1.158468617,0.824515414,0.733621662 +0.249129998,0.954720685,1.552711387,0.181539598,1.570796327,1.157061322,0.824231022,0.732665955 +0.250129998,0.954026527,1.552839046,0.182260629,1.570796327,1.155654862,0.823945717,0.731711132 +0.251129998,0.953332462,1.552967204,0.182981570,1.570796327,1.154249237,0.823659501,0.730757196 +0.252129998,0.952638492,1.553095863,0.183702420,1.570796327,1.152844449,0.823372374,0.729804147 +0.253129998,0.951944616,1.553225021,0.184423179,1.570796327,1.151440500,0.823084337,0.728851988 +0.254129998,0.951250835,1.553354680,0.185143846,1.570796327,1.150037392,0.822795393,0.727900720 +0.255129998,0.950557149,1.553484839,0.185864422,1.570796327,1.148635125,0.822505541,0.726950346 +0.256129998,0.949863559,1.553615497,0.186584905,1.570796327,1.147233702,0.822214783,0.726000867 +0.257129998,0.949170065,1.553746655,0.187305297,1.570796327,1.145833124,0.821923121,0.725052285 +0.258129998,0.948476667,1.553878312,0.188025595,1.570796327,1.144433394,0.821630554,0.724104601 +0.259129998,0.947783365,1.554010469,0.188745800,1.570796327,1.143034511,0.821337085,0.723157818 +0.260129998,0.947090160,1.554143125,0.189465912,1.570796327,1.141636479,0.821042714,0.722211938 +0.261129998,0.946397053,1.554276280,0.190185931,1.570796327,1.140239298,0.820747443,0.721266961 +0.262129998,0.945704043,1.554409933,0.190905855,1.570796327,1.138842970,0.820451273,0.720322890 +0.263129998,0.945011131,1.554544086,0.191625685,1.570796327,1.137447497,0.820154204,0.719379727 +0.264129998,0.944318317,1.554678737,0.192345420,1.570796327,1.136052880,0.819856238,0.718437473 +0.265129998,0.943625602,1.554813887,0.193065060,1.570796327,1.134659121,0.819557377,0.717496129 +0.266129998,0.942932986,1.554949535,0.193784604,1.570796327,1.133266221,0.819257620,0.716555698 +0.267129998,0.942240469,1.555085681,0.194504053,1.570796327,1.131874181,0.818956970,0.715616182 +0.268129998,0.941548052,1.555222326,0.195223406,1.570796327,1.130483003,0.818655428,0.714677581 +0.269129998,0.940855735,1.555359468,0.195942663,1.570796327,1.129092690,0.818352994,0.713739898 +0.270129998,0.940163518,1.555497108,0.196661823,1.570796327,1.127703241,0.818049669,0.712803134 +0.271129998,0.939471402,1.555635246,0.197380886,1.570796327,1.126314658,0.817745456,0.711867290 +0.272129998,0.938779386,1.555773882,0.198099852,1.570796327,1.124926944,0.817440355,0.710932370 +0.273129998,0.938087472,1.555913015,0.198818720,1.570796327,1.123540098,0.817134366,0.709998373 +0.274129998,0.937395660,1.556052645,0.199537490,1.570796327,1.122154124,0.816827493,0.709065302 +0.275129998,0.936703950,1.556192772,0.200256162,1.570796327,1.120769022,0.816519734,0.708133158 +0.276129998,0.936012341,1.556333396,0.200974736,1.570796327,1.119384793,0.816211093,0.707201943 +0.277129998,0.935320836,1.556474518,0.201693210,1.570796327,1.118001439,0.815901569,0.706271658 +0.278129998,0.934629433,1.556616135,0.202411585,1.570796327,1.116618961,0.815591163,0.705342306 +0.279129998,0.933938134,1.556758250,0.203129861,1.570796327,1.115237361,0.815279878,0.704413886 +0.280129998,0.933246939,1.556900861,0.203848037,1.570796327,1.113856640,0.814967715,0.703486402 +0.281129998,0.932555847,1.557043968,0.204566113,1.570796327,1.112476799,0.814654673,0.702559854 +0.282129998,0.931864860,1.557187571,0.205284088,1.570796327,1.111097840,0.814340755,0.701634245 +0.283129998,0.931173977,1.557331670,0.206001962,1.570796327,1.109719763,0.814025962,0.700709575 +0.284129998,0.930483199,1.557476265,0.206719736,1.570796327,1.108342571,0.813710295,0.699785846 +0.285129998,0.929792527,1.557621356,0.207437408,1.570796327,1.106966265,0.813393754,0.698863059 +0.286129998,0.929101960,1.557766942,0.208154978,1.570796327,1.105590845,0.813076342,0.697941216 +0.287129998,0.928411499,1.557913024,0.208872446,1.570796327,1.104216313,0.812758059,0.697020319 +0.288129998,0.927721145,1.558059601,0.209589811,1.570796327,1.102842670,0.812438907,0.696100369 +0.289129998,0.927030897,1.558206673,0.210307074,1.570796327,1.101469918,0.812118886,0.695181367 +0.290129998,0.926340756,1.558354240,0.211024234,1.570796327,1.100098058,0.811797998,0.694263315 +0.291129998,0.925650722,1.558502302,0.211741291,1.570796327,1.098727091,0.811476244,0.693346214 +0.292129998,0.924960796,1.558650859,0.212458244,1.570796327,1.097357018,0.811153626,0.692430065 +0.293129998,0.924270978,1.558799910,0.213175093,1.570796327,1.095987840,0.810830143,0.691514870 +0.294129998,0.923581268,1.558949455,0.213891838,1.570796327,1.094619559,0.810505798,0.690600631 +0.295129998,0.922891667,1.559099495,0.214608478,1.570796327,1.093252176,0.810180592,0.689687348 +0.296129998,0.922202174,1.559250029,0.215325013,1.570796327,1.091885691,0.809854526,0.688775024 +0.297129998,0.921512791,1.559401057,0.216041443,1.570796327,1.090520107,0.809527600,0.687863659 +0.298129998,0.920823518,1.559552578,0.216757767,1.570796327,1.089155424,0.809199817,0.686953254 +0.299129998,0.920134354,1.559704594,0.217473986,1.570796327,1.087791643,0.808871177,0.686043812 +0.300129998,0.919445301,1.559857102,0.218190099,1.570796327,1.086428766,0.808541682,0.685135333 +0.301129998,0.918756358,1.560010104,0.218906105,1.570796327,1.085066793,0.808211333,0.684227819 +0.302129998,0.918067526,1.560163600,0.219622004,1.570796327,1.083705726,0.807880130,0.683321270 +0.303129998,0.917378805,1.560317588,0.220337796,1.570796327,1.082345566,0.807548075,0.682415689 +0.304129998,0.916690195,1.560472069,0.221053481,1.570796327,1.080986314,0.807215170,0.681511077 +0.305129998,0.916001698,1.560627043,0.221769058,1.570796327,1.079627971,0.806881415,0.680607434 +0.306129998,0.915313312,1.560782509,0.222484528,1.570796327,1.078270538,0.806546812,0.679704762 +0.307129998,0.914625040,1.560938468,0.223199888,1.570796327,1.076914015,0.806211362,0.678803063 +0.308129998,0.913936879,1.561094919,0.223915141,1.570796327,1.075558405,0.805875066,0.677902337 +0.309129998,0.913248832,1.561251863,0.224630284,1.570796327,1.074203708,0.805537925,0.677002586 +0.310129998,0.912560899,1.561409298,0.225345318,1.570796327,1.072849925,0.805199940,0.676103811 +0.311129998,0.911873079,1.561567225,0.226060243,1.570796327,1.071497058,0.804861113,0.675206013 +0.312129998,0.911185373,1.561725643,0.226775058,1.570796327,1.070145106,0.804521444,0.674309193 +0.313129998,0.910497782,1.561884553,0.227489762,1.570796327,1.068794072,0.804180936,0.673413353 +0.314129998,0.909810306,1.562043955,0.228204356,1.570796327,1.067443956,0.803839589,0.672518494 +0.315129998,0.909122944,1.562203847,0.228918840,1.570796327,1.066094758,0.803497404,0.671624616 +0.316129998,0.908435698,1.562364231,0.229633212,1.570796327,1.064746481,0.803154382,0.670731722 +0.317129998,0.907748567,1.562525105,0.230347473,1.570796327,1.063399125,0.802810526,0.669839811 +0.318129998,0.907061553,1.562686470,0.231061623,1.570796327,1.062052691,0.802465835,0.668948886 +0.319129998,0.906374655,1.562848326,0.231775660,1.570796327,1.060707179,0.802120311,0.668058947 +0.320129998,0.905687873,1.563010672,0.232489585,1.570796327,1.059362592,0.801773956,0.667169996 +0.321129998,0.905001208,1.563173508,0.233203398,1.570796327,1.058018928,0.801426770,0.666282033 +0.322129998,0.904314661,1.563336835,0.233917098,1.570796327,1.056676191,0.801078755,0.665395060 +0.323129998,0.903628231,1.563500651,0.234630684,1.570796327,1.055334380,0.800729912,0.664509078 +0.324129998,0.902941919,1.563664957,0.235344157,1.570796327,1.053993496,0.800380242,0.663624087 +0.325129998,0.902255726,1.563829752,0.236057517,1.570796327,1.052653540,0.800029746,0.662740090 +0.326129998,0.901569650,1.563995037,0.236770762,1.570796327,1.051314514,0.799678426,0.661857086 +0.327129998,0.900883694,1.564160812,0.237483893,1.570796327,1.049976417,0.799326283,0.660975077 +0.328129998,0.900197857,1.564327075,0.238196909,1.570796327,1.048639251,0.798973317,0.660094065 +0.329129998,0.899512139,1.564493827,0.238909811,1.570796327,1.047303016,0.798619531,0.659214049 +0.330129998,0.898826541,1.564661068,0.239622597,1.570796327,1.045967713,0.798264925,0.658335031 +0.331129998,0.898141063,1.564828797,0.240335267,1.570796327,1.044633344,0.797909500,0.657457012 +0.332129998,0.897455706,1.564997015,0.241047822,1.570796327,1.043299909,0.797553258,0.656579993 +0.333129998,0.896770469,1.565165722,0.241760260,1.570796327,1.041967408,0.797196200,0.655703975 +0.334129998,0.896085353,1.565334916,0.242472582,1.570796327,1.040635843,0.796838327,0.654828959 +0.335129998,0.895400358,1.565504598,0.243184788,1.570796327,1.039305214,0.796479641,0.653954946 +0.336129998,0.894715486,1.565674768,0.243896876,1.570796327,1.037975522,0.796120142,0.653081937 +0.337129998,0.894030735,1.565845426,0.244608847,1.570796327,1.036646767,0.795759832,0.652209933 +0.338129998,0.893346106,1.566016571,0.245320700,1.570796327,1.035318951,0.795398712,0.651338934 +0.339129998,0.892661600,1.566188203,0.246032436,1.570796327,1.033992074,0.795036783,0.650468941 +0.340129998,0.891977217,1.566360323,0.246744053,1.570796327,1.032666137,0.794674047,0.649599957 +0.341129998,0.891292956,1.566532929,0.247455552,1.570796327,1.031341141,0.794310504,0.648731980 +0.342129998,0.890608820,1.566706022,0.248166932,1.570796327,1.030017086,0.793946155,0.647865013 +0.343129998,0.889924807,1.566879602,0.248878193,1.570796327,1.028693972,0.793581003,0.646999056 +0.344129998,0.889240918,1.567053668,0.249589334,1.570796327,1.027371802,0.793215048,0.646134110 +0.345129998,0.888557154,1.567228220,0.250300356,1.570796327,1.026050574,0.792848292,0.645270176 +0.346129998,0.887873514,1.567403259,0.251011258,1.570796327,1.024730291,0.792480735,0.644407255 +0.347129998,0.887190000,1.567578783,0.251722040,1.570796327,1.023410952,0.792112379,0.643545347 +0.348129998,0.886506610,1.567754793,0.252432701,1.570796327,1.022092558,0.791743226,0.642684454 +0.349129998,0.885823346,1.567931289,0.253143241,1.570796327,1.020775110,0.791373275,0.641824575 +0.350129998,0.885140209,1.568108270,0.253853660,1.570796327,1.019458608,0.791002529,0.640965713 +0.351129998,0.884457197,1.568285736,0.254563958,1.570796327,1.018143054,0.790630989,0.640107868 +0.352129998,0.883774312,1.568463688,0.255274134,1.570796327,1.016828447,0.790258656,0.639251040 +0.353129998,0.883091554,1.568642124,0.255984188,1.570796327,1.015514788,0.789885531,0.638395231 +0.354129998,0.882408923,1.568821045,0.256694120,1.570796327,1.014202078,0.789511615,0.637540441 +0.355129998,0.881726419,1.569000450,0.257403930,1.570796327,1.012890318,0.789136910,0.636686670 +0.356129998,0.881044043,1.569180340,0.258113616,1.570796327,1.011579507,0.788761416,0.635833921 +0.357129998,0.880361795,1.569360714,0.258823180,1.570796327,1.010269646,0.788385136,0.634982193 +0.358129998,0.879679675,1.569541572,0.259532620,1.570796327,1.008960737,0.788008070,0.634131487 +0.359129998,0.878997684,1.569722914,0.260241936,1.570796327,1.007652779,0.787630219,0.633281803 +0.360129998,0.878315822,1.569904740,0.260951128,1.570796327,1.006345773,0.787251585,0.632433144 +0.361129998,0.877634089,1.570087049,0.261660196,1.570796327,1.005039720,0.786872169,0.631585509 +0.362129998,0.876952486,1.570269841,0.262369140,1.570796327,1.003734619,0.786491972,0.630738898 +0.363129998,0.876271012,1.570453116,0.263077959,1.570796327,1.002430473,0.786110995,0.629893314 +0.364129998,0.875589669,1.570636875,0.263786652,1.570796327,1.001127280,0.785729240,0.629048755 +0.365129998,0.874908456,1.570821116,0.264495221,1.570796327,0.999825041,0.785346708,0.628205224 +0.366129998,0.874227374,1.571005840,0.265203663,1.570796327,0.998523758,0.784963399,0.627362721 +0.367129998,0.873546422,1.571191046,0.265911980,1.570796327,0.997223430,0.784579316,0.626521245 +0.368129998,0.872865602,1.571376734,0.266620171,1.570796327,0.995924057,0.784194459,0.625680799 +0.369129998,0.872184914,1.571562905,0.267328235,1.570796327,0.994625641,0.783808830,0.624841383 +0.370129998,0.871504357,1.571749557,0.268036172,1.570796327,0.993328182,0.783422430,0.624002996 +0.371129998,0.870823933,1.571936691,0.268743982,1.570796327,0.992031680,0.783035260,0.623165641 +0.372129998,0.870143641,1.572124307,0.269451665,1.570796327,0.990736135,0.782647321,0.622329316 +0.373129998,0.869463482,1.572312404,0.270159220,1.570796327,0.989441548,0.782258614,0.621494024 +0.374129998,0.868783456,1.572500982,0.270866647,1.570796327,0.988147919,0.781869142,0.620659765 +0.375129998,0.868103563,1.572690041,0.271573947,1.570796327,0.986855249,0.781478904,0.619826539 +0.376129998,0.867423804,1.572879581,0.272281117,1.570796327,0.985563538,0.781087902,0.618994346 +0.377129998,0.866744179,1.573069601,0.272988159,1.570796327,0.984272787,0.780696138,0.618163188 +0.378129998,0.866064688,1.573260102,0.273695072,1.570796327,0.982982995,0.780303612,0.617333065 +0.379129998,0.865385331,1.573451083,0.274401856,1.570796327,0.981694163,0.779910326,0.616503977 +0.380129998,0.864706110,1.573642545,0.275108510,1.570796327,0.980406292,0.779516282,0.615675926 +0.381129998,0.864027023,1.573834486,0.275815035,1.570796327,0.979119381,0.779121479,0.614848910 +0.382129998,0.863348072,1.574026907,0.276521429,1.570796327,0.977833431,0.778725920,0.614022932 +0.383129998,0.862669256,1.574219807,0.277227693,1.570796327,0.976548443,0.778329606,0.613197991 +0.384129998,0.861990577,1.574413187,0.277933827,1.570796327,0.975264417,0.777932537,0.612374089 +0.385129998,0.861312033,1.574607045,0.278639829,1.570796327,0.973981352,0.777534716,0.611551224 +0.386129998,0.860633627,1.574801383,0.279345700,1.570796327,0.972699250,0.777136143,0.610729399 +0.387129998,0.859955357,1.574996200,0.280051440,1.570796327,0.971418110,0.776736820,0.609908614 +0.388129998,0.859277224,1.575191495,0.280757048,1.570796327,0.970137933,0.776336747,0.609088868 +0.389129998,0.858599228,1.575387268,0.281462525,1.570796327,0.968858719,0.775935927,0.608270162 +0.390129998,0.857921370,1.575583520,0.282167868,1.570796327,0.967580469,0.775534359,0.607452498 +0.391129998,0.857243650,1.575780250,0.282873080,1.570796327,0.966303181,0.775132046,0.606635875 +0.392129998,0.856566068,1.575977457,0.283578158,1.570796327,0.965026858,0.774728989,0.605820293 +0.393129998,0.855888625,1.576175142,0.284283104,1.570796327,0.963751499,0.774325189,0.605005754 +0.394129998,0.855211321,1.576373305,0.284987916,1.570796327,0.962477103,0.773920647,0.604192257 +0.395129998,0.854534155,1.576571945,0.285692595,1.570796327,0.961203673,0.773515364,0.603379803 +0.396129998,0.853857129,1.576771062,0.286397140,1.570796327,0.959931206,0.773109341,0.602568393 +0.397129998,0.853180243,1.576970656,0.287101550,1.570796327,0.958659705,0.772702581,0.601758026 +0.398129998,0.852503497,1.577170727,0.287805827,1.570796327,0.957389169,0.772295083,0.600948703 +0.399129998,0.851826890,1.577371274,0.288509968,1.570796327,0.956119597,0.771886850,0.600140425 +0.400129998,0.851150425,1.577572297,0.289213975,1.570796327,0.954850991,0.771477882,0.599333192 +0.401129998,0.850474100,1.577773797,0.289917847,1.570796327,0.953583351,0.771068180,0.598527004 +0.402129998,0.849797916,1.577975772,0.290621583,1.570796327,0.952316676,0.770657747,0.597721862 +0.403129998,0.849121873,1.578178224,0.291325183,1.570796327,0.951050966,0.770246582,0.596917765 +0.404129998,0.848445972,1.578381150,0.292028648,1.570796327,0.949786223,0.769834688,0.596114715 +0.405129998,0.847770213,1.578584553,0.292731976,1.570796327,0.948522446,0.769422065,0.595312712 +0.406129998,0.847094596,1.578788430,0.293435168,1.570796327,0.947259635,0.769008715,0.594511755 +0.407129998,0.846419121,1.578992782,0.294138223,1.570796327,0.945997790,0.768594639,0.593711845 +0.408129998,0.845743789,1.579197609,0.294841141,1.570796327,0.944736911,0.768179838,0.592912984 +0.409129998,0.845068600,1.579402911,0.295543922,1.570796327,0.943476999,0.767764313,0.592115169 +0.410129998,0.844393554,1.579608687,0.296246565,1.570796327,0.942218053,0.767348066,0.591318403 +0.411129998,0.843718652,1.579814938,0.296949070,1.570796327,0.940960074,0.766931098,0.590522686 +0.412129998,0.843043894,1.580021662,0.297651438,1.570796327,0.939703061,0.766513410,0.589728017 +0.413129998,0.842369279,1.580228860,0.298353667,1.570796327,0.938447015,0.766095003,0.588934397 +0.414129998,0.841694809,1.580436532,0.299055757,1.570796327,0.937191936,0.765675878,0.588141826 +0.415129998,0.841020484,1.580644677,0.299757709,1.570796327,0.935937824,0.765256037,0.587350304 +0.416129998,0.840346303,1.580853295,0.300459522,1.570796327,0.934684679,0.764835481,0.586559832 +0.417129998,0.839672268,1.581062387,0.301161195,1.570796327,0.933432500,0.764414210,0.585770410 +0.418129998,0.838998378,1.581271951,0.301862729,1.570796327,0.932181288,0.763992228,0.584982039 +0.419129998,0.838324634,1.581481988,0.302564123,1.570796327,0.930931043,0.763569533,0.584194717 +0.420129998,0.837651036,1.581692497,0.303265376,1.570796327,0.929681765,0.763146128,0.583408446 +0.421129998,0.836977583,1.581903479,0.303966490,1.570796327,0.928433454,0.762722015,0.582623226 +0.422129998,0.836304278,1.582114932,0.304667463,1.570796327,0.927186110,0.762297193,0.581839057 +0.423129998,0.835631119,1.582326858,0.305368295,1.570796327,0.925939733,0.761871664,0.581055938 +0.424129998,0.834958107,1.582539255,0.306068986,1.570796327,0.924694323,0.761445430,0.580273872 +0.425129998,0.834285243,1.582752123,0.306769535,1.570796327,0.923449879,0.761018492,0.579492856 +0.426129998,0.833612526,1.582965463,0.307469943,1.570796327,0.922206402,0.760590851,0.578712892 +0.427129998,0.832939957,1.583179274,0.308170210,1.570796327,0.920963892,0.760162508,0.577933980 +0.428129998,0.832267536,1.583393555,0.308870334,1.570796327,0.919722348,0.759733464,0.577156120 +0.429129998,0.831595264,1.583608308,0.309570315,1.570796327,0.918481772,0.759303721,0.576379313 +0.430129998,0.830923140,1.583823530,0.310270155,1.570796327,0.917242161,0.758873280,0.575603557 +0.431129998,0.830251165,1.584039223,0.310969851,1.570796327,0.916003517,0.758442141,0.574828854 +0.432129998,0.829579339,1.584255386,0.311669404,1.570796327,0.914765840,0.758010307,0.574055203 +0.433129998,0.828907662,1.584472019,0.312368814,1.570796327,0.913529129,0.757577778,0.573282604 +0.434129998,0.828236136,1.584689122,0.313068080,1.570796327,0.912293384,0.757144556,0.572511059 +0.435129998,0.827564759,1.584906693,0.313767202,1.570796327,0.911058605,0.756710641,0.571740566 +0.436129998,0.826893532,1.585124735,0.314466181,1.570796327,0.909824792,0.756276036,0.570971126 +0.437129998,0.826222456,1.585343245,0.315165015,1.570796327,0.908591944,0.755840740,0.570202739 +0.438129998,0.825551531,1.585562224,0.315863704,1.570796327,0.907360063,0.755404757,0.569435406 +0.439129998,0.824880756,1.585781671,0.316562249,1.570796327,0.906129147,0.754968085,0.568669125 +0.440129998,0.824210133,1.586001587,0.317260648,1.570796327,0.904899197,0.754530728,0.567903898 +0.441129998,0.823539661,1.586221971,0.317958903,1.570796327,0.903670212,0.754092685,0.567139723 +0.442129998,0.822869342,1.586442824,0.318657011,1.570796327,0.902442192,0.753653959,0.566376602 +0.443129998,0.822199174,1.586664144,0.319354974,1.570796327,0.901215137,0.753214550,0.565614535 +0.444129998,0.821529158,1.586885931,0.320052791,1.570796327,0.899989046,0.752774459,0.564853521 +0.445129998,0.820859295,1.587108186,0.320750462,1.570796327,0.898763921,0.752333689,0.564093560 +0.446129998,0.820189585,1.587330908,0.321447986,1.570796327,0.897539760,0.751892239,0.563334653 +0.447129998,0.819520028,1.587554097,0.322145363,1.570796327,0.896316563,0.751450112,0.562576799 +0.448129998,0.818850624,1.587777753,0.322842594,1.570796327,0.895094330,0.751007308,0.561819999 +0.449129998,0.818181374,1.588001876,0.323539677,1.570796327,0.893873061,0.750563828,0.561064252 +0.450129998,0.817512277,1.588226465,0.324236613,1.570796327,0.892652756,0.750119675,0.560309558 +0.451129998,0.816843335,1.588451520,0.324933401,1.570796327,0.891433414,0.749674848,0.559555918 +0.452129998,0.816174547,1.588677040,0.325630041,1.570796327,0.890215035,0.749229349,0.558803332 +0.453129998,0.815505913,1.588903027,0.326326533,1.570796327,0.888997619,0.748783180,0.558051799 +0.454129998,0.814837434,1.589129479,0.327022876,1.570796327,0.887781166,0.748336341,0.557301319 +0.455129998,0.814169111,1.589356397,0.327719071,1.570796327,0.886565676,0.747888834,0.556551893 +0.456129998,0.813500943,1.589583779,0.328415117,1.570796327,0.885351148,0.747440660,0.555803520 +0.457129998,0.812832930,1.589811626,0.329111014,1.570796327,0.884137582,0.746991820,0.555056201 +0.458129998,0.812165073,1.590039939,0.329806761,1.570796327,0.882924977,0.746542316,0.554309934 +0.459129998,0.811497372,1.590268715,0.330502359,1.570796327,0.881713334,0.746092147,0.553564721 +0.460129998,0.810829828,1.590497956,0.331197807,1.570796327,0.880502652,0.745641317,0.552820561 +0.461129998,0.810162440,1.590727661,0.331893105,1.570796327,0.879292931,0.745189825,0.552077454 +0.462129998,0.809495209,1.590957830,0.332588253,1.570796327,0.878084171,0.744737674,0.551335400 +0.463129998,0.808828135,1.591188462,0.333283250,1.570796327,0.876876371,0.744284863,0.550594398 +0.464129998,0.808161218,1.591419558,0.333978097,1.570796327,0.875669531,0.743831395,0.549854450 +0.465129998,0.807494459,1.591651117,0.334672792,1.570796327,0.874463650,0.743377271,0.549115554 +0.466129998,0.806827858,1.591883139,0.335367336,1.570796327,0.873258729,0.742922491,0.548377711 +0.467129998,0.806161415,1.592115623,0.336061729,1.570796327,0.872054767,0.742467057,0.547640920 +0.468129998,0.805495130,1.592348571,0.336755970,1.570796327,0.870851764,0.742010971,0.546905182 +0.469129998,0.804829004,1.592581980,0.337450060,1.570796327,0.869649719,0.741554232,0.546170496 +0.470129998,0.804163036,1.592815852,0.338143997,1.570796327,0.868448633,0.741096844,0.545436861 +0.471129998,0.803497228,1.593050186,0.338837782,1.570796327,0.867248504,0.740638806,0.544704279 +0.472129998,0.802831579,1.593284981,0.339531414,1.570796327,0.866049332,0.740180119,0.543972749 +0.473129998,0.802166089,1.593520238,0.340224893,1.570796327,0.864851118,0.739720786,0.543242270 +0.474129998,0.801500759,1.593755956,0.340918220,1.570796327,0.863653860,0.739260807,0.542512843 +0.475129998,0.800835589,1.593992135,0.341611393,1.570796327,0.862457558,0.738800183,0.541784468 +0.476129998,0.800170580,1.594228775,0.342304413,1.570796327,0.861262213,0.738338916,0.541057143 +0.477129998,0.799505731,1.594465876,0.342997279,1.570796327,0.860067822,0.737877007,0.540330870 +0.478129998,0.798841042,1.594703437,0.343689991,1.570796327,0.858874387,0.737414456,0.539605647 +0.479129998,0.798176515,1.594941458,0.344382549,1.570796327,0.857681907,0.736951266,0.538881475 +0.480129998,0.797512149,1.595179940,0.345074952,1.570796327,0.856490381,0.736487437,0.538158354 +0.481129998,0.796847944,1.595418881,0.345767201,1.570796327,0.855299809,0.736022970,0.537436283 +0.482129998,0.796183901,1.595658281,0.346459296,1.570796327,0.854110191,0.735557867,0.536715262 +0.483129998,0.795520020,1.595898141,0.347151235,1.570796327,0.852921526,0.735092128,0.535995291 +0.484129998,0.794856301,1.596138460,0.347843019,1.570796327,0.851733813,0.734625756,0.535276369 +0.485129998,0.794192744,1.596379238,0.348534647,1.570796327,0.850547053,0.734158750,0.534558497 +0.486129998,0.793529350,1.596620475,0.349226120,1.570796327,0.849361244,0.733691113,0.533841675 +0.487129998,0.792866119,1.596862170,0.349917437,1.570796327,0.848176387,0.733222845,0.533125901 +0.488129998,0.792203051,1.597104323,0.350608597,1.570796327,0.846992481,0.732753948,0.532411176 +0.489129998,0.791540146,1.597346935,0.351299602,1.570796327,0.845809526,0.732284422,0.531697500 +0.490129998,0.790877405,1.597590004,0.351990450,1.570796327,0.844627520,0.731814269,0.530984872 +0.491129998,0.790214828,1.597833531,0.352681141,1.570796327,0.843446464,0.731343491,0.530273292 +0.492129998,0.789552415,1.598077515,0.353371675,1.570796327,0.842266357,0.730872087,0.529562760 +0.493129998,0.788890166,1.598321956,0.354062052,1.570796327,0.841087199,0.730400060,0.528853276 +0.494129998,0.788228081,1.598566854,0.354752271,1.570796327,0.839908989,0.729927411,0.528144839 +0.495129998,0.787566161,1.598812209,0.355442333,1.570796327,0.838731727,0.729454140,0.527437449 +0.496129998,0.786904406,1.599058020,0.356132237,1.570796327,0.837555412,0.728980249,0.526731106 +0.497129998,0.786242817,1.599304288,0.356821982,1.570796327,0.836380043,0.728505739,0.526025809 +0.498129998,0.785581393,1.599551011,0.357511570,1.570796327,0.835205621,0.728030611,0.525321558 +0.499129998,0.784920134,1.599798191,0.358200999,1.570796327,0.834032145,0.727554866,0.524618354 +0.500129998,0.784259041,1.600045826,0.358890269,1.570796327,0.832859614,0.727078506,0.523916195 +0.501129998,0.783598115,1.600293916,0.359579381,1.570796327,0.831688027,0.726601532,0.523215081 +0.502129998,0.782937355,1.600542462,0.360268333,1.570796327,0.830517385,0.726123944,0.522515012 +0.503129998,0.782276761,1.600791462,0.360957126,1.570796327,0.829347686,0.725645744,0.521815988 +0.504129998,0.781616334,1.601040917,0.361645760,1.570796327,0.828178930,0.725166933,0.521118009 +0.505129998,0.780956074,1.601290827,0.362334234,1.570796327,0.827011117,0.724687513,0.520421073 +0.506129998,0.780295982,1.601541191,0.363022547,1.570796327,0.825844247,0.724207483,0.519725182 +0.507129998,0.779636056,1.601792009,0.363710701,1.570796327,0.824678317,0.723726846,0.519030333 +0.508129998,0.778976299,1.602043280,0.364398694,1.570796327,0.823513329,0.723245603,0.518336528 +0.509129998,0.778316709,1.602295006,0.365086527,1.570796327,0.822349280,0.722763755,0.517643766 +0.510129998,0.777657288,1.602547184,0.365774199,1.570796327,0.821186172,0.722281302,0.516952046 +0.511129998,0.776998035,1.602799816,0.366461709,1.570796327,0.820024003,0.721798247,0.516261368 +0.512129998,0.776338950,1.603052901,0.367149059,1.570796327,0.818862773,0.721314590,0.515571732 +0.513129998,0.775680034,1.603306438,0.367836247,1.570796327,0.817702481,0.720830332,0.514883137 +0.514129998,0.775021288,1.603560428,0.368523274,1.570796327,0.816543126,0.720345474,0.514195583 +0.515129998,0.774362710,1.603814870,0.369210139,1.570796327,0.815384708,0.719860018,0.513509070 +0.516129998,0.773704302,1.604069764,0.369896842,1.570796327,0.814227227,0.719373965,0.512823597 +0.517129998,0.773046064,1.604325110,0.370583382,1.570796327,0.813070681,0.718887316,0.512139164 +0.518129998,0.772387995,1.604580907,0.371269761,1.570796327,0.811915071,0.718400071,0.511455770 +0.519129998,0.771730097,1.604837156,0.371955976,1.570796327,0.810760395,0.717912233,0.510773416 +0.520129998,0.771072369,1.605093855,0.372642029,1.570796327,0.809606653,0.717423802,0.510092100 +0.521129998,0.770414812,1.605351006,0.373327919,1.570796327,0.808453845,0.716934780,0.509411823 +0.522129998,0.769757425,1.605608607,0.374013645,1.570796327,0.807301969,0.716445167,0.508732583 +0.523129998,0.769100209,1.605866659,0.374699208,1.570796327,0.806151026,0.715954964,0.508054381 +0.524129998,0.768443165,1.606125160,0.375384608,1.570796327,0.805001013,0.715464174,0.507377216 +0.525129998,0.767786292,1.606384112,0.376069844,1.570796327,0.803851932,0.714972796,0.506701088 +0.526129998,0.767129590,1.606643513,0.376754915,1.570796327,0.802703781,0.714480832,0.506025996 +0.527129998,0.766473060,1.606903364,0.377439823,1.570796327,0.801556560,0.713988284,0.505351940 +0.528129998,0.765816703,1.607163665,0.378124566,1.570796327,0.800410267,0.713495152,0.504678920 +0.529129998,0.765160518,1.607424414,0.378809144,1.570796327,0.799264903,0.713001437,0.504006934 +0.530129998,0.764504505,1.607685612,0.379493558,1.570796327,0.798120466,0.712507140,0.503335983 +0.531129998,0.763848665,1.607947258,0.380177807,1.570796327,0.796976957,0.712012264,0.502666067 +0.532129998,0.763192997,1.608209353,0.380861890,1.570796327,0.795834373,0.711516808,0.501997184 +0.533129998,0.762537503,1.608471896,0.381545809,1.570796327,0.794692716,0.711020774,0.501329334 +0.534129998,0.761882182,1.608734887,0.382229561,1.570796327,0.793551983,0.710524162,0.500662517 +0.535129998,0.761227035,1.608998326,0.382913148,1.570796327,0.792412174,0.710026975,0.499996732 +0.536129998,0.760572062,1.609262211,0.383596569,1.570796327,0.791273290,0.709529213,0.499331979 +0.537129998,0.759917262,1.609526545,0.384279824,1.570796327,0.790135328,0.709030878,0.498668258 +0.538129998,0.759262637,1.609791325,0.384962912,1.570796327,0.788998288,0.708531970,0.498005568 +0.539129998,0.758608186,1.610056551,0.385645834,1.570796327,0.787862170,0.708032490,0.497343908 +0.540129998,0.757953909,1.610322225,0.386328589,1.570796327,0.786726973,0.707532440,0.496683278 +0.541129998,0.757299808,1.610588344,0.387011177,1.570796327,0.785592696,0.707031821,0.496023678 +0.542129998,0.756645881,1.610854910,0.387693598,1.570796327,0.784459338,0.706530633,0.495365106 +0.543129998,0.755992130,1.611121921,0.388375852,1.570796327,0.783326899,0.706028879,0.494707564 +0.544129998,0.755338553,1.611389378,0.389057939,1.570796327,0.782195379,0.705526558,0.494051049 +0.545129998,0.754685153,1.611657280,0.389739857,1.570796327,0.781064775,0.705023673,0.493395562 +0.546129998,0.754031928,1.611925627,0.390421608,1.570796327,0.779935088,0.704520224,0.492741102 +0.547129998,0.753378880,1.612194419,0.391103191,1.570796327,0.778806317,0.704016212,0.492087669 +0.548129998,0.752726007,1.612463656,0.391784606,1.570796327,0.777678461,0.703511639,0.491435261 +0.549129998,0.752073311,1.612733337,0.392465852,1.570796327,0.776551520,0.703006506,0.490783880 +0.550129998,0.751420792,1.613003462,0.393146930,1.570796327,0.775425492,0.702500813,0.490133523 +0.551129998,0.750768449,1.613274031,0.393827839,1.570796327,0.774300377,0.701994561,0.489484191 +0.552129998,0.750116284,1.613545044,0.394508579,1.570796327,0.773176175,0.701487753,0.488835883 +0.553129998,0.749464295,1.613816500,0.395189149,1.570796327,0.772052884,0.700980388,0.488188598 +0.554129998,0.748812484,1.614088400,0.395869551,1.570796327,0.770930503,0.700472469,0.487542336 +0.555129998,0.748160851,1.614360742,0.396549783,1.570796327,0.769809032,0.699963996,0.486897097 +0.556129998,0.747509396,1.614633527,0.397229845,1.570796327,0.768688471,0.699454969,0.486252880 +0.557129998,0.746858118,1.614906755,0.397909738,1.570796327,0.767568818,0.698945391,0.485609684 +0.558129998,0.746207019,1.615180424,0.398589460,1.570796327,0.766450073,0.698435263,0.484967509 +0.559129998,0.745556098,1.615454536,0.399269013,1.570796327,0.765332234,0.697924585,0.484326354 +0.560129998,0.744905356,1.615729090,0.399948395,1.570796327,0.764215302,0.697413358,0.483686219 +0.561129998,0.744254792,1.616004085,0.400627606,1.570796327,0.763099275,0.696901584,0.483047103 +0.562129998,0.743604408,1.616279521,0.401306646,1.570796327,0.761984152,0.696389264,0.482409005 +0.563129998,0.742954203,1.616555399,0.401985516,1.570796327,0.760869934,0.695876398,0.481771926 +0.564129998,0.742304177,1.616831717,0.402664215,1.570796327,0.759756618,0.695362989,0.481135864 +0.565129998,0.741654330,1.617108476,0.403342742,1.570796327,0.758644204,0.694849036,0.480500819 +0.566129998,0.741004664,1.617385676,0.404021098,1.570796327,0.757532692,0.694334541,0.479866791 +0.567129998,0.740355177,1.617663315,0.404699282,1.570796327,0.756422081,0.693819506,0.479233778 +0.568129998,0.739705871,1.617941394,0.405377294,1.570796327,0.755312369,0.693303930,0.478601780 +0.569129998,0.739056745,1.618219913,0.406055134,1.570796327,0.754203556,0.692787816,0.477970798 +0.570129998,0.738407800,1.618498871,0.406732803,1.570796327,0.753095641,0.692271164,0.477340829 +0.571129998,0.737759035,1.618778269,0.407410299,1.570796327,0.751988624,0.691753976,0.476711873 +0.572129998,0.737110451,1.619058105,0.408087622,1.570796327,0.750882503,0.691236252,0.476083931 +0.573129998,0.736462048,1.619338380,0.408764773,1.570796327,0.749777278,0.690717993,0.475457000 +0.574129998,0.735813827,1.619619094,0.409441751,1.570796327,0.748672948,0.690199201,0.474831082 +0.575129998,0.735165787,1.619900245,0.410118556,1.570796327,0.747569512,0.689679877,0.474206174 +0.576129998,0.734517929,1.620181835,0.410795187,1.570796327,0.746466969,0.689160021,0.473582277 +0.577129998,0.733870252,1.620463862,0.411471646,1.570796327,0.745365318,0.688639635,0.472959390 +0.578129998,0.733222758,1.620746327,0.412147931,1.570796327,0.744264560,0.688118720,0.472337512 +0.579129998,0.732575446,1.621029229,0.412824042,1.570796327,0.743164691,0.687597276,0.471716643 +0.580129998,0.731928316,1.621312568,0.413499979,1.570796327,0.742065713,0.687075306,0.471096782 +0.581129998,0.731281369,1.621596344,0.414175742,1.570796327,0.740967624,0.686552810,0.470477928 +0.582129998,0.730634605,1.621880556,0.414851332,1.570796327,0.739870423,0.686029788,0.469860081 +0.583129998,0.729988024,1.622165205,0.415526746,1.570796327,0.738774109,0.685506243,0.469243240 +0.584129998,0.729341626,1.622450289,0.416201987,1.570796327,0.737678682,0.684982175,0.468627405 +0.585129998,0.728695411,1.622735809,0.416877052,1.570796327,0.736584141,0.684457585,0.468012575 +0.586129998,0.728049380,1.623021765,0.417551943,1.570796327,0.735490484,0.683932475,0.467398749 +0.587129998,0.727403532,1.623308156,0.418226659,1.570796327,0.734397711,0.683406845,0.466785927 +0.588129998,0.726757869,1.623594983,0.418901199,1.570796327,0.733305822,0.682880696,0.466174107 +0.589129998,0.726112389,1.623882243,0.419575565,1.570796327,0.732214814,0.682354029,0.465563290 +0.590129998,0.725467094,1.624169939,0.420249754,1.570796327,0.731124688,0.681826846,0.464953475 +0.591129998,0.724821983,1.624458069,0.420923768,1.570796327,0.730035442,0.681299147,0.464344661 +0.592129998,0.724177057,1.624746633,0.421597607,1.570796327,0.728947076,0.680770934,0.463736848 +0.593129998,0.723532315,1.625035630,0.422271269,1.570796327,0.727859588,0.680242208,0.463130034 +0.594129998,0.722887759,1.625325062,0.422944755,1.570796327,0.726772978,0.679712969,0.462524219 +0.595129998,0.722243387,1.625614926,0.423618065,1.570796327,0.725687245,0.679183219,0.461919403 +0.596129998,0.721599201,1.625905224,0.424291198,1.570796327,0.724602388,0.678652958,0.461315585 +0.597129998,0.720955201,1.626195955,0.424964155,1.570796327,0.723518407,0.678122188,0.460712764 +0.598129998,0.720311386,1.626487118,0.425636935,1.570796327,0.722435299,0.677590910,0.460110939 +0.599129998,0.719667757,1.626778713,0.426309538,1.570796327,0.721353065,0.677059125,0.459510111 +0.600129998,0.719024314,1.627070741,0.426981964,1.570796327,0.720271703,0.676526833,0.458910277 +0.601129998,0.718381058,1.627363201,0.427654213,1.570796327,0.719191213,0.675994037,0.458311438 +0.602129998,0.717737987,1.627656092,0.428326284,1.570796327,0.718111593,0.675460736,0.457713593 +0.603129998,0.717095103,1.627949414,0.428998178,1.570796327,0.717032843,0.674926932,0.457116741 +0.604129998,0.716452406,1.628243168,0.429669894,1.570796327,0.715954962,0.674392626,0.456520881 +0.605129998,0.715809896,1.628537352,0.430341432,1.570796327,0.714877949,0.673857819,0.455926014 +0.606129998,0.715167573,1.628831967,0.431012792,1.570796327,0.713801803,0.673322512,0.455332137 +0.607129998,0.714525437,1.629127013,0.431683974,1.570796327,0.712726523,0.672786706,0.454739251 +0.608129998,0.713883489,1.629422488,0.432354978,1.570796327,0.711652108,0.672250402,0.454147354 +0.609129998,0.713241728,1.629718394,0.433025803,1.570796327,0.710578557,0.671713601,0.453556447 +0.610129998,0.712600155,1.630014729,0.433696450,1.570796327,0.709505869,0.671176304,0.452966528 +0.611129998,0.711958770,1.630311494,0.434366918,1.570796327,0.708434044,0.670638512,0.452377597 +0.612129998,0.711317573,1.630608687,0.435037207,1.570796327,0.707363080,0.670100227,0.451789652 +0.613129998,0.710676564,1.630906310,0.435707316,1.570796327,0.706292977,0.669561448,0.451202694 +0.614129998,0.710035744,1.631204361,0.436377247,1.570796327,0.705223733,0.669022178,0.450616722 +0.615129998,0.709395112,1.631502841,0.437046998,1.570796327,0.704155348,0.668482416,0.450031734 +0.616129998,0.708754669,1.631801749,0.437716570,1.570796327,0.703087821,0.667942165,0.449447730 +0.617129998,0.708114415,1.632101085,0.438385962,1.570796327,0.702021150,0.667401425,0.448864710 +0.618129998,0.707474350,1.632400848,0.439055174,1.570796327,0.700955335,0.666860197,0.448282673 +0.619129998,0.706834474,1.632701039,0.439724206,1.570796327,0.699890375,0.666318482,0.447701618 +0.620129998,0.706194788,1.633001657,0.440393059,1.570796327,0.698826269,0.665776282,0.447121544 +0.621129998,0.705555291,1.633302702,0.441061731,1.570796327,0.697763015,0.665233596,0.446542450 +0.622129998,0.704915984,1.633604173,0.441730222,1.570796327,0.696700614,0.664690427,0.445964337 +0.623129998,0.704276867,1.633906071,0.442398533,1.570796327,0.695639064,0.664146775,0.445387202 +0.624129998,0.703637940,1.634208395,0.443066663,1.570796327,0.694578363,0.663602641,0.444811046 +0.625129998,0.702999203,1.634511145,0.443734613,1.570796327,0.693518512,0.663058026,0.444235868 +0.626129998,0.702360657,1.634814321,0.444402381,1.570796327,0.692459509,0.662512931,0.443661667 +0.627129998,0.701722301,1.635117922,0.445069969,1.570796327,0.691401353,0.661967358,0.443088442 +0.628129998,0.701084136,1.635421948,0.445737375,1.570796327,0.690344044,0.661421307,0.442516192 +0.629129998,0.700446162,1.635726399,0.446404599,1.570796327,0.689287579,0.660874778,0.441944917 +0.630129998,0.699808379,1.636031275,0.447071643,1.570796327,0.688231959,0.660327774,0.441374617 +0.631129998,0.699170787,1.636336575,0.447738504,1.570796327,0.687177182,0.659780296,0.440805289 +0.632129998,0.698533386,1.636642299,0.448405184,1.570796327,0.686123248,0.659232343,0.440236935 +0.633129998,0.697896177,1.636948447,0.449071682,1.570796327,0.685070154,0.658683917,0.439669552 +0.634129998,0.697259160,1.637255019,0.449737997,1.570796327,0.684017902,0.658135020,0.439103140 +0.635129998,0.696622335,1.637562015,0.450404131,1.570796327,0.682966488,0.657585651,0.438537698 +0.636129998,0.695985701,1.637869433,0.451070082,1.570796327,0.681915913,0.657035813,0.437973226 +0.637129998,0.695349260,1.638177274,0.451735851,1.570796327,0.680866175,0.656485505,0.437409723 +0.638129998,0.694713011,1.638485538,0.452401437,1.570796327,0.679817274,0.655934730,0.436847188 +0.639129998,0.694076954,1.638794225,0.453066840,1.570796327,0.678769208,0.655383487,0.436285621 +0.640129998,0.693441090,1.639103333,0.453732060,1.570796327,0.677721976,0.654831779,0.435725020 +0.641129998,0.692805419,1.639412863,0.454397097,1.570796327,0.676675578,0.654279605,0.435165385 +0.642129998,0.692169940,1.639722815,0.455061951,1.570796327,0.675630013,0.653726968,0.434606715 +0.643129998,0.691534655,1.640033189,0.455726622,1.570796327,0.674585279,0.653173867,0.434049009 +0.644129998,0.690899563,1.640343983,0.456391109,1.570796327,0.673541375,0.652620304,0.433492267 +0.645129998,0.690264665,1.640655198,0.457055413,1.570796327,0.672498301,0.652066280,0.432936487 +0.646129998,0.689629959,1.640966834,0.457719533,1.570796327,0.671456055,0.651511796,0.432381670 +0.647129998,0.688995448,1.641278891,0.458383469,1.570796327,0.670414636,0.650956852,0.431827814 +0.648129998,0.688361130,1.641591367,0.459047222,1.570796327,0.669374044,0.650401451,0.431274919 +0.649129998,0.687727007,1.641904263,0.459710790,1.570796327,0.668334277,0.649845592,0.430722983 +0.650129998,0.687093077,1.642217579,0.460374174,1.570796327,0.667295335,0.649289276,0.430172006 +0.651129998,0.686459342,1.642531314,0.461037373,1.570796327,0.666257216,0.648732506,0.429621988 +0.652129998,0.685825801,1.642845469,0.461700388,1.570796327,0.665219920,0.648175281,0.429072926 +0.653129998,0.685192455,1.643160042,0.462363219,1.570796327,0.664183445,0.647617602,0.428524822 +0.654129998,0.684559303,1.643475033,0.463025865,1.570796327,0.663147790,0.647059471,0.427977673 +0.655129998,0.683926347,1.643790443,0.463688326,1.570796327,0.662112954,0.646500888,0.427431480 +0.656129998,0.683293585,1.644106272,0.464350601,1.570796327,0.661078937,0.645941855,0.426886241 +0.657129998,0.682661018,1.644422518,0.465012692,1.570796327,0.660045737,0.645382372,0.426341955 +0.658129998,0.682028647,1.644739181,0.465674598,1.570796327,0.659013354,0.644822441,0.425798623 +0.659129998,0.681396471,1.645056262,0.466336318,1.570796327,0.657981785,0.644262062,0.425256242 +0.660129998,0.680764491,1.645373760,0.466997853,1.570796327,0.656951031,0.643701236,0.424714812 +0.661129998,0.680132707,1.645691674,0.467659202,1.570796327,0.655921090,0.643139964,0.424174333 +0.662129998,0.679501118,1.646010005,0.468320365,1.570796327,0.654891961,0.642578247,0.423634804 +0.663129998,0.678869726,1.646328753,0.468981343,1.570796327,0.653863643,0.642016086,0.423096223 +0.664129998,0.678238529,1.646647916,0.469642134,1.570796327,0.652836136,0.641453483,0.422558590 +0.665129998,0.677607529,1.646967495,0.470302740,1.570796327,0.651809437,0.640890437,0.422021905 +0.666129998,0.676976725,1.647287490,0.470963159,1.570796327,0.650783546,0.640326950,0.421486166 +0.667129998,0.676346118,1.647607900,0.471623392,1.570796327,0.649758463,0.639763023,0.420951373 +0.668129998,0.675715708,1.647928725,0.472283438,1.570796327,0.648734185,0.639198657,0.420417525 +0.669129998,0.675085494,1.648249965,0.472943298,1.570796327,0.647710712,0.638633852,0.419884621 +0.670129998,0.674455478,1.648571619,0.473602971,1.570796327,0.646688043,0.638068611,0.419352660 +0.671129998,0.673825659,1.648893688,0.474262457,1.570796327,0.645666177,0.637502932,0.418821641 +0.672129998,0.673196036,1.649216170,0.474921757,1.570796327,0.644645112,0.636936818,0.418291565 +0.673129998,0.672566612,1.649539066,0.475580869,1.570796327,0.643624849,0.636370270,0.417762429 +0.674129998,0.671937385,1.649862376,0.476239794,1.570796327,0.642605384,0.635803288,0.417234233 +0.675129998,0.671308355,1.650186098,0.476898532,1.570796327,0.641586719,0.635235873,0.416706977 +0.676129998,0.670679524,1.650510234,0.477557082,1.570796327,0.640568851,0.634668027,0.416180659 +0.677129998,0.670050890,1.650834782,0.478215445,1.570796327,0.639551780,0.634099750,0.415655279 +0.678129998,0.669422454,1.651159743,0.478873621,1.570796327,0.638535504,0.633531042,0.415130836 +0.679129998,0.668794217,1.651485116,0.479531608,1.570796327,0.637520022,0.632961906,0.414607329 +0.680129998,0.668166178,1.651810901,0.480189408,1.570796327,0.636505334,0.632392342,0.414084757 +0.681129998,0.667538337,1.652137097,0.480847020,1.570796327,0.635491438,0.631822350,0.413563119 +0.682129998,0.666910695,1.652463705,0.481504443,1.570796327,0.634478333,0.631251933,0.413042415 +0.683129998,0.666283252,1.652790724,0.482161679,1.570796327,0.633466019,0.630681090,0.412522644 +0.684129998,0.665656008,1.653118154,0.482818726,1.570796327,0.632454494,0.630109822,0.412003806 +0.685129998,0.665028963,1.653445995,0.483475585,1.570796327,0.631443756,0.629538131,0.411485898 +0.686129998,0.664402117,1.653774246,0.484132255,1.570796327,0.630433806,0.628966018,0.410968921 +0.687129998,0.663775470,1.654102907,0.484788737,1.570796327,0.629424642,0.628393483,0.410452873 +0.688129998,0.663149022,1.654431977,0.485445030,1.570796327,0.628416262,0.627820527,0.409937754 +0.689129998,0.662522775,1.654761458,0.486101134,1.570796327,0.627408667,0.627247151,0.409423563 +0.690129998,0.661896726,1.655091347,0.486757049,1.570796327,0.626401854,0.626673357,0.408910299 +0.691129998,0.661270878,1.655421646,0.487412775,1.570796327,0.625395822,0.626099144,0.408397962 +0.692129998,0.660645230,1.655752353,0.488068311,1.570796327,0.624390572,0.625524514,0.407886550 +0.693129998,0.660019781,1.656083470,0.488723659,1.570796327,0.623386101,0.624949468,0.407376063 +0.694129998,0.659394533,1.656414994,0.489378817,1.570796327,0.622382408,0.624374007,0.406866500 +0.695129998,0.658769485,1.656746926,0.490033786,1.570796327,0.621379493,0.623798131,0.406357859 +0.696129998,0.658144637,1.657079266,0.490688565,1.570796327,0.620377354,0.623221842,0.405850141 +0.697129998,0.657519990,1.657412014,0.491343154,1.570796327,0.619375990,0.622645140,0.405343345 +0.698129998,0.656895544,1.657745169,0.491997554,1.570796327,0.618375400,0.622068026,0.404837468 +0.699129998,0.656271299,1.658078730,0.492651764,1.570796327,0.617375584,0.621490502,0.404332512 +0.700129998,0.655647254,1.658412699,0.493305783,1.570796327,0.616376539,0.620912567,0.403828475 +0.701129998,0.655023411,1.658747074,0.493959613,1.570796327,0.615378266,0.620334224,0.403325355 +0.702129998,0.654399768,1.659081855,0.494613252,1.570796327,0.614380762,0.619755472,0.402823153 +0.703129998,0.653776327,1.659417042,0.495266701,1.570796327,0.613384027,0.619176314,0.402321868 +0.704129998,0.653153088,1.659752634,0.495919960,1.570796327,0.612388060,0.618596748,0.401821498 +0.705129998,0.652530050,1.660088632,0.496573028,1.570796327,0.611392859,0.618016778,0.401322043 +0.706129998,0.651907213,1.660425036,0.497225905,1.570796327,0.610398424,0.617436403,0.400823502 +0.707129998,0.651284578,1.660761844,0.497878592,1.570796327,0.609404753,0.616855624,0.400325874 +0.708129998,0.650662146,1.661099057,0.498531088,1.570796327,0.608411846,0.616274442,0.399829158 +0.709129998,0.650039915,1.661436674,0.499183393,1.570796327,0.607419701,0.615692858,0.399333354 +0.710129998,0.649417886,1.661774695,0.499835507,1.570796327,0.606428317,0.615110873,0.398838460 +0.711129998,0.648796060,1.662113120,0.500487430,1.570796327,0.605437693,0.614528489,0.398344476 +0.712129998,0.648174436,1.662451948,0.501139162,1.570796327,0.604447829,0.613945704,0.397851402 +0.713129998,0.647553015,1.662791180,0.501790702,1.570796327,0.603458722,0.613362522,0.397359235 +0.714129998,0.646931796,1.663130815,0.502442051,1.570796327,0.602470372,0.612778941,0.396867976 +0.715129998,0.646310780,1.663470853,0.503093208,1.570796327,0.601482778,0.612194965,0.396377623 +0.716129998,0.645689966,1.663811293,0.503744174,1.570796327,0.600495938,0.611610592,0.395888176 +0.717129998,0.645069356,1.664152136,0.504394949,1.570796327,0.599509852,0.611025824,0.395399633 +0.718129998,0.644448949,1.664493380,0.505045531,1.570796327,0.598524519,0.610440663,0.394911995 +0.719129998,0.643828744,1.664835026,0.505695922,1.570796327,0.597539936,0.609855108,0.394425260 +0.720129998,0.643208744,1.665177074,0.506346121,1.570796327,0.596556105,0.609269160,0.393939427 +0.721129998,0.642588946,1.665519523,0.506996127,1.570796327,0.595573022,0.608682822,0.393454495 +0.722129998,0.641969352,1.665862373,0.507645942,1.570796327,0.594590687,0.608096093,0.392970464 +0.723129998,0.641349962,1.666205623,0.508295564,1.570796327,0.593609100,0.607508974,0.392487333 +0.724129998,0.640730775,1.666549274,0.508944994,1.570796327,0.592628258,0.606921466,0.392005101 +0.725129998,0.640111793,1.666893325,0.509594231,1.570796327,0.591648161,0.606333570,0.391523767 +0.726129998,0.639493014,1.667237776,0.510243277,1.570796327,0.590668808,0.605745287,0.391043330 +0.727129998,0.638874439,1.667582627,0.510892129,1.570796327,0.589690197,0.605156617,0.390563790 +0.728129998,0.638256069,1.667927876,0.511540789,1.570796327,0.588712328,0.604567563,0.390085145 +0.729129998,0.637637903,1.668273525,0.512189256,1.570796327,0.587735200,0.603978123,0.389607395 +0.730129998,0.637019941,1.668619573,0.512837530,1.570796327,0.586758810,0.603388300,0.389130539 +0.731129998,0.636402184,1.668966020,0.513485611,1.570796327,0.585783159,0.602798094,0.388654576 +0.732129998,0.635784631,1.669312864,0.514133500,1.570796327,0.584808245,0.602207506,0.388179505 +0.733129998,0.635167283,1.669660107,0.514781195,1.570796327,0.583834067,0.601616537,0.387705326 +0.734129998,0.634550140,1.670007748,0.515428697,1.570796327,0.582860624,0.601025188,0.387232037 +0.735129998,0.633933202,1.670355786,0.516076005,1.570796327,0.581887915,0.600433459,0.386759638 +0.736129998,0.633316469,1.670704221,0.516723121,1.570796327,0.580915938,0.599841351,0.386288127 +0.737129998,0.632699941,1.671053053,0.517370042,1.570796327,0.579944693,0.599248866,0.385817505 +0.738129998,0.632083619,1.671402282,0.518016771,1.570796327,0.578974179,0.598656003,0.385347770 +0.739129998,0.631467501,1.671751908,0.518663305,1.570796327,0.578004394,0.598062765,0.384878921 +0.740129998,0.630851590,1.672101930,0.519309646,1.570796327,0.577035337,0.597469151,0.384410957 +0.741129998,0.630235883,1.672452347,0.519955794,1.570796327,0.576067007,0.596875163,0.383943879 +0.742129998,0.629620383,1.672803160,0.520601747,1.570796327,0.575099403,0.596280801,0.383477684 +0.743129998,0.629005088,1.673154369,0.521247507,1.570796327,0.574132525,0.595686067,0.383012372 +0.744129998,0.628389999,1.673505973,0.521893072,1.570796327,0.573166370,0.595090961,0.382547942 +0.745129998,0.627775116,1.673857971,0.522538443,1.570796327,0.572200938,0.594495483,0.382084393 +0.746129998,0.627160439,1.674210364,0.523183621,1.570796327,0.571236228,0.593899635,0.381621725 +0.747129998,0.626545969,1.674563152,0.523828603,1.570796327,0.570272238,0.593303418,0.381159936 +0.748129998,0.625931704,1.674916334,0.524473392,1.570796327,0.569308967,0.592706832,0.380699026 +0.749129998,0.625317646,1.675269909,0.525117986,1.570796327,0.568346415,0.592109879,0.380238994 +0.750129998,0.624703795,1.675623878,0.525762386,1.570796327,0.567384580,0.591512558,0.379779839 +0.751129998,0.624090150,1.675978240,0.526406591,1.570796327,0.566423461,0.590914872,0.379321561 +0.752129998,0.623476711,1.676332995,0.527050602,1.570796327,0.565463057,0.590316820,0.378864157 +0.753129998,0.622863480,1.676688143,0.527694417,1.570796327,0.564503367,0.589718404,0.378407628 +0.754129998,0.622250455,1.677043684,0.528338039,1.570796327,0.563544390,0.589119624,0.377951973 +0.755129998,0.621637638,1.677399616,0.528981465,1.570796327,0.562586125,0.588520481,0.377497190 +0.756129998,0.621025027,1.677755941,0.529624696,1.570796327,0.561628570,0.587920976,0.377043280 +0.757129998,0.620412624,1.678112657,0.530267732,1.570796327,0.560671724,0.587321110,0.376590240 +0.758129998,0.619800427,1.678469765,0.530910573,1.570796327,0.559715587,0.586720884,0.376138071 +0.759129998,0.619188439,1.678827263,0.531553219,1.570796327,0.558760157,0.586120298,0.375686771 +0.760129998,0.618576657,1.679185153,0.532195670,1.570796327,0.557805433,0.585519353,0.375236340 +0.761129998,0.617965083,1.679543433,0.532837925,1.570796327,0.556851414,0.584918051,0.374786776 +0.762129998,0.617353717,1.679902104,0.533479986,1.570796327,0.555898099,0.584316391,0.374338080 +0.763129998,0.616742559,1.680261165,0.534121850,1.570796327,0.554945486,0.583714375,0.373890249 +0.764129998,0.616131608,1.680620615,0.534763519,1.570796327,0.553993575,0.583112004,0.373443284 +0.765129998,0.615520865,1.680980455,0.535404993,1.570796327,0.553042365,0.582509278,0.372997183 +0.766129998,0.614910331,1.681340684,0.536046271,1.570796327,0.552091854,0.581906198,0.372551945 +0.767129998,0.614300004,1.681701303,0.536687353,1.570796327,0.551142042,0.581302764,0.372107570 +0.768129998,0.613689885,1.682062310,0.537328240,1.570796327,0.550192926,0.580698979,0.371664057 +0.769129998,0.613079975,1.682423705,0.537968930,1.570796327,0.549244507,0.580094842,0.371221405 +0.770129998,0.612470273,1.682785489,0.538609425,1.570796327,0.548296783,0.579490355,0.370779613 +0.771129998,0.611860780,1.683147661,0.539249723,1.570796327,0.547349752,0.578885517,0.370338680 +0.772129998,0.611251495,1.683510220,0.539889826,1.570796327,0.546403415,0.578280331,0.369898606 +0.773129998,0.610642419,1.683873167,0.540529733,1.570796327,0.545457768,0.577674796,0.369459389 +0.774129998,0.610033552,1.684236501,0.541169443,1.570796327,0.544512813,0.577068914,0.369021029 +0.775129998,0.609424893,1.684600221,0.541808957,1.570796327,0.543568546,0.576462685,0.368583525 +0.776129998,0.608816443,1.684964329,0.542448275,1.570796327,0.542624968,0.575856110,0.368146876 +0.777129998,0.608208202,1.685328822,0.543087396,1.570796327,0.541682078,0.575249190,0.367711081 +0.778129998,0.607600171,1.685693702,0.543726321,1.570796327,0.540739873,0.574641926,0.367276139 +0.779129998,0.606992348,1.686058968,0.544365050,1.570796327,0.539798353,0.574034318,0.366842050 +0.780129998,0.606384735,1.686424619,0.545003582,1.570796327,0.538857517,0.573426367,0.366408813 +0.781129998,0.605777331,1.686790655,0.545641917,1.570796327,0.537917363,0.572818075,0.365976426 +0.782129998,0.605170136,1.687157076,0.546280056,1.570796327,0.536977891,0.572209441,0.365544889 +0.783129998,0.604563151,1.687523882,0.546917998,1.570796327,0.536039100,0.571600467,0.365114202 +0.784129998,0.603956376,1.687891073,0.547555743,1.570796327,0.535100988,0.570991154,0.364684363 +0.785129998,0.603349810,1.688258648,0.548193291,1.570796327,0.534163554,0.570381501,0.364255371 +0.786129998,0.602743454,1.688626606,0.548830642,1.570796327,0.533226797,0.569771511,0.363827226 +0.787129998,0.602137307,1.688994949,0.549467797,1.570796327,0.532290716,0.569161183,0.363399926 +0.788129998,0.601531371,1.689363674,0.550104754,1.570796327,0.531355310,0.568550519,0.362973472 +0.789129998,0.600925645,1.689732783,0.550741514,1.570796327,0.530420578,0.567939519,0.362547861 +0.790129998,0.600320128,1.690102275,0.551378077,1.570796327,0.529486519,0.567328185,0.362123094 +0.791129998,0.599714822,1.690472149,0.552014443,1.570796327,0.528553130,0.566716516,0.361699169 +0.792129998,0.599109726,1.690842406,0.552650612,1.570796327,0.527620413,0.566104513,0.361276086 +0.793129998,0.598504840,1.691213044,0.553286583,1.570796327,0.526688364,0.565492178,0.360853843 +0.794129998,0.597900165,1.691584065,0.553922357,1.570796327,0.525756984,0.564879512,0.360432441 +0.795129998,0.597295700,1.691955466,0.554557933,1.570796327,0.524826271,0.564266514,0.360011877 +0.796129998,0.596691446,1.692327250,0.555193312,1.570796327,0.523896224,0.563653186,0.359592152 +0.797129998,0.596087402,1.692699414,0.555828494,1.570796327,0.522966842,0.563039528,0.359173263 +0.798129998,0.595483569,1.693071958,0.556463478,1.570796327,0.522038123,0.562425542,0.358755212 +0.799129998,0.594879947,1.693444884,0.557098264,1.570796327,0.521110067,0.561811227,0.358337996 +0.800129998,0.594276536,1.693818189,0.557732852,1.570796327,0.520182672,0.561196586,0.357921614 +0.801129998,0.593673335,1.694191874,0.558367243,1.570796327,0.519255938,0.560581618,0.357506067 +0.802129998,0.593070346,1.694565939,0.559001436,1.570796327,0.518329863,0.559966324,0.357091353 +0.803129998,0.592467567,1.694940384,0.559635431,1.570796327,0.517404446,0.559350705,0.356677471 +0.804129998,0.591865000,1.695315207,0.560269228,1.570796327,0.516479686,0.558734762,0.356264421 +0.805129998,0.591262644,1.695690409,0.560902828,1.570796327,0.515555582,0.558118495,0.355852202 +0.806129998,0.590660500,1.696065990,0.561536229,1.570796327,0.514632133,0.557501906,0.355440812 +0.807129998,0.590058566,1.696441949,0.562169432,1.570796327,0.513709338,0.556884995,0.355030251 +0.808129998,0.589456844,1.696818286,0.562802437,1.570796327,0.512787195,0.556267763,0.354620518 +0.809129998,0.588855334,1.697195001,0.563435244,1.570796327,0.511865703,0.555650210,0.354211613 +0.810129998,0.588254035,1.697572093,0.564067853,1.570796327,0.510944862,0.555032338,0.353803534 +0.811129998,0.587652948,1.697949563,0.564700264,1.570796327,0.510024670,0.554414147,0.353396280 +0.812129998,0.587052072,1.698327409,0.565332476,1.570796327,0.509105126,0.553795637,0.352989852 +0.813129998,0.586451409,1.698705632,0.565964490,1.570796327,0.508186229,0.553176810,0.352584247 +0.814129998,0.585850957,1.699084232,0.566596306,1.570796327,0.507267978,0.552557667,0.352179465 +0.815129998,0.585250717,1.699463208,0.567227923,1.570796327,0.506350372,0.551938207,0.351775506 +0.816129998,0.584650689,1.699842559,0.567859341,1.570796327,0.505433409,0.551318432,0.351372368 +0.817129998,0.584050874,1.700222286,0.568490562,1.570796327,0.504517089,0.550698343,0.350970051 +0.818129998,0.583451270,1.700602389,0.569121583,1.570796327,0.503601410,0.550077940,0.350568554 +0.819129998,0.582851879,1.700982866,0.569752406,1.570796327,0.502686372,0.549457224,0.350167875 +0.820129998,0.582252699,1.701363718,0.570383031,1.570796327,0.501771972,0.548836196,0.349768015 +0.821129998,0.581653733,1.701744945,0.571013456,1.570796327,0.500858211,0.548214857,0.349368972 +0.822129998,0.581054978,1.702126546,0.571643683,1.570796327,0.499945087,0.547593206,0.348970745 +0.823129998,0.580456436,1.702508521,0.572273712,1.570796327,0.499032598,0.546971246,0.348573334 +0.824129998,0.579858107,1.702890870,0.572903541,1.570796327,0.498120745,0.546348976,0.348176738 +0.825129998,0.579259990,1.703273592,0.573533172,1.570796327,0.497209525,0.545726398,0.347780956 +0.826129998,0.578662086,1.703656687,0.574162603,1.570796327,0.496298937,0.545103511,0.347385987 +0.827129998,0.578064395,1.704040156,0.574791836,1.570796327,0.495388981,0.544480318,0.346991830 +0.828129998,0.577466916,1.704423996,0.575420870,1.570796327,0.494479655,0.543856819,0.346598485 +0.829129998,0.576869651,1.704808210,0.576049705,1.570796327,0.493570958,0.543233013,0.346205951 +0.830129998,0.576272598,1.705192795,0.576678341,1.570796327,0.492662890,0.542608903,0.345814226 +0.831129998,0.575675758,1.705577752,0.577306777,1.570796327,0.491755448,0.541984489,0.345423311 +0.832129998,0.575079131,1.705963081,0.577935015,1.570796327,0.490848632,0.541359771,0.345033203 +0.833129998,0.574482718,1.706348781,0.578563053,1.570796327,0.489942441,0.540734750,0.344643903 +0.834129998,0.573886517,1.706734852,0.579190892,1.570796327,0.489036874,0.540109427,0.344255410 +0.835129998,0.573290530,1.707121293,0.579818532,1.570796327,0.488131929,0.539483803,0.343867722 +0.836129998,0.572694756,1.707508105,0.580445973,1.570796327,0.487227605,0.538857879,0.343480839 +0.837129998,0.572099195,1.707895288,0.581073215,1.570796327,0.486323902,0.538231654,0.343094760 +0.838129998,0.571503848,1.708282840,0.581700257,1.570796327,0.485420818,0.537605131,0.342709485 +0.839129998,0.570908715,1.708670762,0.582327100,1.570796327,0.484518352,0.536978309,0.342325012 +0.840129998,0.570313794,1.709059053,0.582953743,1.570796327,0.483616503,0.536351189,0.341941340 +0.841129998,0.569719088,1.709447714,0.583580187,1.570796327,0.482715270,0.535723772,0.341558470 +0.842129998,0.569124595,1.709836743,0.584206431,1.570796327,0.481814652,0.535096059,0.341176399 +0.843129998,0.568530316,1.710226141,0.584832476,1.570796327,0.480914647,0.534468050,0.340795128 +0.844129998,0.567936250,1.710615907,0.585458322,1.570796327,0.480015255,0.533839747,0.340414655 +0.845129998,0.567342398,1.711006041,0.586083968,1.570796327,0.479116474,0.533211149,0.340034979 +0.846129998,0.566748761,1.711396543,0.586709414,1.570796327,0.478218304,0.532582258,0.339656100 +0.847129998,0.566155337,1.711787413,0.587334661,1.570796327,0.477320743,0.531953074,0.339278018 +0.848129998,0.565562127,1.712178650,0.587959708,1.570796327,0.476423790,0.531323598,0.338900730 +0.849129998,0.564969131,1.712570253,0.588584555,1.570796327,0.475527444,0.530693830,0.338524236 +0.850129998,0.564376349,1.712962224,0.589209203,1.570796327,0.474631704,0.530063772,0.338148536 +0.851129998,0.563783782,1.713354561,0.589833651,1.570796327,0.473736568,0.529433424,0.337773629 +0.852129998,0.563191429,1.713747263,0.590457899,1.570796327,0.472842037,0.528802787,0.337399513 +0.853129998,0.562599289,1.714140332,0.591081947,1.570796327,0.471948108,0.528171861,0.337026189 +0.854129998,0.562007365,1.714533767,0.591705796,1.570796327,0.471054781,0.527540648,0.336653655 +0.855129998,0.561415654,1.714927567,0.592329445,1.570796327,0.470162054,0.526909147,0.336281910 +0.856129998,0.560824158,1.715321731,0.592952894,1.570796327,0.469269926,0.526277360,0.335910954 +0.857129998,0.560232877,1.715716261,0.593576143,1.570796327,0.468378397,0.525645287,0.335540785 +0.858129998,0.559641809,1.716111155,0.594199192,1.570796327,0.467487464,0.525012929,0.335171404 +0.859129998,0.559050957,1.716506414,0.594822041,1.570796327,0.466597128,0.524380286,0.334802809 +0.860129998,0.558460319,1.716902036,0.595444690,1.570796327,0.465707387,0.523747360,0.334434999 +0.861129998,0.557869896,1.717298022,0.596067139,1.570796327,0.464818239,0.523114151,0.334067974 +0.862129998,0.557279687,1.717694372,0.596689388,1.570796327,0.463929684,0.522480660,0.333701732 +0.863129998,0.556689694,1.718091085,0.597311437,1.570796327,0.463041721,0.521846887,0.333336274 +0.864129998,0.556099915,1.718488160,0.597933286,1.570796327,0.462154348,0.521212833,0.332971597 +0.865129998,0.555510351,1.718885598,0.598554935,1.570796327,0.461267565,0.520578499,0.332607702 +0.866129998,0.554921001,1.719283399,0.599176384,1.570796327,0.460381370,0.519943885,0.332244588 +0.867129998,0.554331867,1.719681562,0.599797633,1.570796327,0.459495762,0.519308992,0.331882253 +0.868129998,0.553742948,1.720080087,0.600418682,1.570796327,0.458610741,0.518673822,0.331520698 +0.869129998,0.553154244,1.720478973,0.601039530,1.570796327,0.457726304,0.518038373,0.331159920 +0.870129998,0.552565755,1.720878220,0.601660178,1.570796327,0.456842451,0.517402648,0.330799920 +0.871129998,0.551977481,1.721277829,0.602280626,1.570796327,0.455959182,0.516766647,0.330440697 +0.872129998,0.551389422,1.721677798,0.602900874,1.570796327,0.455076494,0.516130370,0.330082249 +0.873129998,0.550801579,1.722078127,0.603520922,1.570796327,0.454194386,0.515493819,0.329724576 +0.874129998,0.550213951,1.722478817,0.604140769,1.570796327,0.453312858,0.514856993,0.329367678 +0.875129998,0.549626538,1.722879867,0.604760416,1.570796327,0.452431909,0.514219894,0.329011552 +0.876129998,0.549039340,1.723281277,0.605379863,1.570796327,0.451551537,0.513582522,0.328656200 +0.877129998,0.548452358,1.723683045,0.605999109,1.570796327,0.450671741,0.512944878,0.328301619 +0.878129998,0.547865592,1.724085173,0.606618155,1.570796327,0.449792521,0.512306963,0.327947809 +0.879129998,0.547279040,1.724487660,0.607237001,1.570796327,0.448913875,0.511668777,0.327594770 +0.880129998,0.546692705,1.724890506,0.607855646,1.570796327,0.448035801,0.511030320,0.327242500 +0.881129998,0.546106585,1.725293709,0.608474091,1.570796327,0.447158300,0.510391595,0.326890998 +0.882129998,0.545520680,1.725697271,0.609092336,1.570796327,0.446281369,0.509752600,0.326540265 +0.883129998,0.544934992,1.726101191,0.609710380,1.570796327,0.445405008,0.509113338,0.326190298 +0.884129998,0.544349519,1.726505468,0.610328224,1.570796327,0.444529216,0.508473808,0.325841098 +0.885129998,0.543764261,1.726910102,0.610945867,1.570796327,0.443653992,0.507834011,0.325492663 +0.886129998,0.543179220,1.727315093,0.611563310,1.570796327,0.442779334,0.507193948,0.325144993 +0.887129998,0.542594394,1.727720441,0.612180552,1.570796327,0.441905241,0.506553620,0.324798087 +0.888129998,0.542009784,1.728126145,0.612797594,1.570796327,0.441031713,0.505913027,0.324451944 +0.889129998,0.541425390,1.728532206,0.613414436,1.570796327,0.440158747,0.505272170,0.324106564 +0.890129998,0.540841212,1.728938622,0.614031077,1.570796327,0.439286344,0.504631050,0.323761945 +0.891129998,0.540257250,1.729345394,0.614647517,1.570796327,0.438414503,0.503989666,0.323418087 +0.892129998,0.539673504,1.729752522,0.615263757,1.570796327,0.437543221,0.503348021,0.323074988 +0.893129998,0.539089974,1.730160004,0.615879797,1.570796327,0.436672498,0.502706114,0.322732650 +0.894129998,0.538506661,1.730567841,0.616495636,1.570796327,0.435802332,0.502063946,0.322391069 +0.895129998,0.537923563,1.730976033,0.617111274,1.570796327,0.434932724,0.501421518,0.322050247 +0.896129998,0.537340681,1.731384579,0.617726712,1.570796327,0.434063671,0.500778831,0.321710181 +0.897129998,0.536758016,1.731793479,0.618341949,1.570796327,0.433195173,0.500135884,0.321370871 diff --git a/data/plot_data.py b/data/plot_data.py new file mode 100644 index 00000000..9b455c49 --- /dev/null +++ b/data/plot_data.py @@ -0,0 +1,59 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt + +df = pd.read_csv('/home/lgv/cmvr/cmvr-es/data/ik_psi_sweep.csv') + +joints = ['q1','q2','q3','q4','q5','q6','q7'] +fig, axes = plt.subplots(len(joints), 1, figsize=(10, 2.6*len(joints)), sharex=True) +x = df['psi'].to_numpy() + +for ax, col in zip(axes, joints): + y = df[col].to_numpy() + + # 过滤 NaN + mask = ~np.isnan(x) & ~np.isnan(y) + xv, yv = x[mask], y[mask] + if len(xv) == 0: + ax.set_title(f'{col}: no data') + continue + + # 散点图(不画连线) + ax.scatter(xv, yv, s=10, alpha=0.8) # s 调整点大小 + + # 极值与对应 psi + i_min = int(np.argmin(yv)) + i_max = int(np.argmax(yv)) + y_min, psi_min = float(yv[i_min]), float(xv[i_min]) + y_max, psi_max = float(yv[i_max]), float(xv[i_max]) + + # 水平红虚线(值) + ax.axhline(y_min, color='red', linestyle='--', linewidth=1) + ax.axhline(y_max, color='red', linestyle='--', linewidth=1) + # 垂直红虚线(psi) + ax.axvline(psi_min, color='red', linestyle='--', linewidth=1, alpha=0.7) + ax.axvline(psi_max, color='red', linestyle='--', linewidth=1, alpha=0.7) + + # 极值点标记 + ax.plot(psi_min, y_min, 'ro', markersize=4) + ax.plot(psi_max, y_max, 'ro', markersize=4) + + # 标注:值 + psi + ax.annotate(f"min={y_min:.4f}\nψ={psi_min:.4f}", + xy=(psi_min, y_min), xytext=(8, -10), + textcoords='offset points', color='red', + ha='left', va='top', fontsize=9, + bbox=dict(boxstyle="round,pad=0.2", fc="white", ec="none")) + ax.annotate(f"max={y_max:.4f}\nψ={psi_max:.4f}", + xy=(psi_max, y_max), xytext=(8, 10), + textcoords='offset points', color='red', + ha='left', va='bottom', fontsize=9, + bbox=dict(boxstyle="round,pad=0.2", fc="white", ec="none")) + + ax.set_ylabel(f"{col} (rad)") + ax.grid(True, alpha=0.35) + +axes[-1].set_xlabel('psi (rad)') +fig.suptitle('IK joints vs arm-angle psi', y=0.995) +plt.tight_layout() +plt.show() diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 85a60678..0d15ac51 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -20,6 +20,8 @@ add_library(utils STATIC math/se3.cpp math/so3.cpp controller/cartesian_controller.cpp + srs_ik/srs_ik_slover.cpp + srs_ik/ik_limit_analyzer.cpp ) target_include_directories(utils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) @@ -32,3 +34,48 @@ target_link_libraries(utils PRIVATE ) add_library(cmvr_es::utils ALIAS utils) + + +# -------------------------------------------------------- +# Unit test +# -------------------------------------------------------- +find_package(glog REQUIRED) +find_package(PkgConfig REQUIRED) +find_package(fcl REQUIRED) +find_package(OpenCV REQUIRED) + +include_directories( + ${CMAKE_SOURCE_DIR}/third_party/gtest/1.17.0/include +) + +include_directories( + ${CMAKE_SOURCE_DIR}/third_party/manif/0.0.5/include +) + + +link_directories( + ${CMAKE_SOURCE_DIR}/third_party/gtest/1.17.0/lib +) + + + + +add_executable(srs_ik_test + ${CMAKE_CURRENT_SOURCE_DIR}/srs_ik/srs_ik_test.cpp +) + + +target_link_libraries(srs_ik_test + PRIVATE + gtest + gtest_main + pthread + glog::glog + proto-objects + ccd + fcl + ${OpenCV_LIBS} + Eigen3::Eigen + OsqpEigen::OsqpEigen + cmvr_es::utils +) diff --git a/src/utils/srs_ik/ik_limit_analyzer.cpp b/src/utils/srs_ik/ik_limit_analyzer.cpp new file mode 100644 index 00000000..281e3e1c --- /dev/null +++ b/src/utils/srs_ik/ik_limit_analyzer.cpp @@ -0,0 +1,629 @@ +// +// Created by lgv on 2025/11/3. +// + +#include "ik_limit_analyzer.h" +#include +#include + +using namespace cmvr::utils; + +double IkLimitAnalyzer::normalize_angle(double angle) { + // 将角度转换为 [0, 2π) 范围 + double a = std::fmod(angle + M_PI, 2.0 * M_PI); + + // 如果 a 为负数,则添加 2π,使其位于 [0, 2π) 范围 + if (a < 0.0) { + a += 2.0 * M_PI; + } + + // 将角度范围调整到 [-π, π] 范围 + return a - M_PI; +} + +bool IkLimitAnalyzer::check_tan_solution(double an, double ad, double bn, double bd, double cn, double cd, + double theta_target, double psi) { + // 由 ψ 复原 θ:θ = atan2( N, D ) + // N = an*sinψ + bn*cosψ + cn + // D = ad*sinψ + bd*cosψ + cd + double N = an * std::sin(psi) + bn * std::cos(psi) + cn; + double D = ad * std::sin(psi) + bd * std::cos(psi) + cd; + double theta = std::atan2(N, D); + double err = normalize_angle(theta - theta_target); + return std::abs(err) < 1e-6; +} + + +std::vector IkLimitAnalyzer::calc_tan_solution(double an, double ad, double bn, double bd, double cn, + double cd, double theta) { + std::vector out; + + // v = tan(theta) + double v = std::tan(theta); + + // 二次式:ap * t^2 + bp * t + cp = 0, 其中 t = tan(ψ/2) + double ap = v * (cd - bd) + (bn - cn); + double bp = v * (2.0 * ad) - (2.0 * an); + double cp = v * (bd + cd) - (bn + cn); + + double D = bp * bp - 4.0 * ap * cp; + if (D < 0.0) return out; + D = std::max(0.0, D); + double sqrtD = std::sqrt(D); + + // ψ = 2 * atan2( -(bp ± sqrtD), 2*ap ) + double psi1 = 2.0 * std::atan2(-(bp - sqrtD), 2.0 * ap); + double psi2 = 2.0 * std::atan2(-(bp + sqrtD), 2.0 * ap); + + psi1 = normalize_angle(psi1); + psi2 = normalize_angle(psi2); + + + if (check_tan_solution(an, ad, bn, bd, cn, cd, theta, psi1)) + out.push_back(psi1); + + if (check_tan_solution(an, ad, bn, bd, cn, cd, theta, psi2) && + std::abs(psi2 - psi1) > EPS) + out.push_back(psi2); + + std::sort(out.begin(), out.end()); + return out; +} + + +// std::vector > IkLimitAnalyzer::calc_tan_limits(double an, double ad, double bn, double bd, +// double cn, double cd, double joint_l, +// double joint_u) { +// // joint_l = normalize_angle(joint_l); +// // joint_u = normalize_angle(joint_u); +// +// +// // 1) 微分系数(保持与 MATLAB 一致) +// double at = bd * cn - bn * cd; +// double bt = an * cd - ad * cn; +// double ct = an * bd - ad * bn; +// +// // 2) 奇异屏蔽带(式 31):at^2 + bt^2 - ct^2 = 0 +// double dt = at * at + bt * bt - ct * ct; +// std::vector > singular_allow; // 允许区间列表 +// if (std::abs(at * at + bt * bt - ct * ct) < 1e-6) { +// double psi_sing = normalize_angle(2.0 * std::atan2(at, (bt - ct))); +// double safe = deg2rad(7.0); +// +// double L = normalize_angle(psi_sing - safe); +// double R = normalize_angle(psi_sing + safe); +// +// // 允许集 = [-π, L] ∪ [R, π] +// if (L <= R) { +// singular_allow = {{-M_PI, L}, {R, M_PI}}; +// } else { +// // 屏蔽带跨越 -π/π +// singular_allow = {{-M_PI, R}, {L, M_PI}}; +// } +// } +// +// // 3) 将上下限 ±jl 映射为 psi(tan 型) +// std::vector pt1 = calc_tan_solution(an, ad, bn, bd, cn, cd, joint_u); +// std::vector pt2 = calc_tan_solution(an, ad, bn, bd, cn, cd, joint_l); +// +// std::vector ptlim; +// ptlim.reserve(pt1.size() + pt2.size()); +// ptlim.insert(ptlim.end(), pt1.begin(), pt1.end()); +// ptlim.insert(ptlim.end(), pt2.begin(), pt2.end()); +// +// std::vector > allow_pairs; // 最终允许区间 +// +// if (!ptlim.empty()) { +// // 3.1 排序边界 +// std::sort(ptlim.begin(), ptlim.end()); +// +// // 3.2 分类:区间结束边界(=1) / 区间开始边界(=0) +// std::vector lim_class(ptlim.size(), 0); +// for (size_t i = 0; i < ptlim.size(); ++i) { +// double psi = ptlim[i]; +// +// // tlim = atan2(N, D) +// double N = an * std::sin(psi) + bn * std::cos(psi) + cn; +// double D = ad * std::sin(psi) + bd * std::cos(psi) + cd; +// double tlim = std::atan2(N, D); +// +// // dθ/dψ 符号 +// double dlim = at * std::sin(psi) + bt * std::cos(psi) + ct; +// +// lim_class[i] = (sign(tlim) == sign(dlim)) ? 1 : 0; +// } +// +// // 3.3 若首个是“进入禁止”,拼接 [-π, ... , π] 让边界从“允许”开始 +// std::vector bounds = ptlim; +// if (!lim_class.empty() && lim_class.front() == 1) { +// bounds.insert(bounds.begin(), -M_PI); +// bounds.push_back(M_PI); +// } +// +// // 3.4 边界数组 → pair 列表 +// allow_pairs = bounds_to_pairs(bounds); +// } else { +// // 4) 没有任何 ψ 命中关节限:全允许或全禁止 +// double psi = 0.0; +// double N = an * std::sin(psi) + bn * std::cos(psi) + cn; +// double D = ad * std::sin(psi) + bd * std::cos(psi) + cd; +// double tlim = std::atan2(N, D); +// +// if (tlim > joint_l && tlim < joint_u) { +// allow_pairs = {{-M_PI, M_PI}}; // 全允许 +// } else { +// allow_pairs.clear(); // 全禁止 +// } +// } +// +// // 5) 若有奇异屏蔽带:做交集 +// if (!singular_allow.empty() && !allow_pairs.empty()) { +// allow_pairs = intersect(allow_pairs, singular_allow); +// } +// return allow_pairs; +// } + + +std::vector > IkLimitAnalyzer::calc_tan_limits(double an, double ad, double bn, double bd, + double cn, double cd, double joint_l, + double joint_u) { + // 1) 微分系数 + double at = bd * cn - bn * cd; + double bt = an * cd - ad * cn; + double ct = an * bd - ad * bn; + + // 2) 奇异屏蔽带(式 31):at^2 + bt^2 - ct^2 = 0 + double dt = at * at + bt * bt - ct * ct; + std::vector > singular_allow; // 允许区间列表 + if (std::abs(at * at + bt * bt - ct * ct) < 1e-6) { + double psi_sing = normalize_angle(2.0 * std::atan2(at, (bt - ct))); + double safe = deg2rad(7.0); + + double L = normalize_angle(psi_sing - safe); + double R = normalize_angle(psi_sing + safe); + + // 允许集 = [-π, L] ∪ [R, π] + if (L <= R) { + singular_allow = {{-M_PI, L}, {R, M_PI}}; + } else { + // 屏蔽带跨越 -π/π + singular_allow = {{-M_PI, R}, {L, M_PI}}; + } + } + + // 3) 将上下限 ±jl 映射为 psi(tan 型) + std::vector pt1 = calc_tan_solution(an, ad, bn, bd, cn, cd, joint_u); + std::vector pt2 = calc_tan_solution(an, ad, bn, bd, cn, cd, joint_l); + + std::vector ptlim; + ptlim.reserve(pt1.size() + pt2.size()); + ptlim.insert(ptlim.end(), pt1.begin(), pt1.end()); + ptlim.insert(ptlim.end(), pt2.begin(), pt2.end()); + + + // 去重(避免重复切分点导致抖动) + std::sort(ptlim.begin(), ptlim.end()); + ptlim.erase(std::unique(ptlim.begin(), ptlim.end(), + [](double a, double b) { return std::abs(a - b) < 1e-12; }), + ptlim.end()); + + std::vector > allow_pairs; // 最终允许区间 + + if (!ptlim.empty()) { + // === 采样 + 交替(不再用同号判据/首段拼 [-π,π]) === + const double EPSP = 1e-9; + + // 构造边界:[-π, cuts..., π] + std::vector bounds; + bounds.reserve(ptlim.size() + 2); + bounds.push_back(-M_PI); + bounds.insert(bounds.end(), ptlim.begin(), ptlim.end()); + bounds.push_back(M_PI); + + // 左侧微偏移采样,判断首段是否“允许” + auto theta_of = [&](double psi) { + double N = an * std::sin(psi) + bn * std::cos(psi) + cn; + double D = ad * std::sin(psi) + bd * std::cos(psi) + cd; + return std::atan2(N, D); + }; + double probe = bounds.front() + EPSP; // -π+ε + bool allow_here = angle_in_wrap(theta_of(probe), joint_l, joint_u); + + // 扫描生成段 + for (size_t i = 0; i + 1 < bounds.size(); ++i) { + double L = bounds[i]; + double R = bounds[i + 1]; + if (allow_here && R > L) allow_pairs.emplace_back(L, R); + allow_here = !allow_here; // 每越过一个边界,翻转一次,前提是θ(ψ) 连续变换 + // 也可以通过 L + EPSP 来判断该区间是否允许 + // allow_here = angle_in_wrap(theta_of(L + EPSP), joint_l, joint_u); + } + } else { + // 4) 无交点:整圈全允许或全禁止(用环形比较) + double psi = 0.0; + double N = an * std::sin(psi) + bn * std::cos(psi) + cn; + double D = ad * std::sin(psi) + bd * std::cos(psi) + cd; + double tlim = std::atan2(N, D); + + if (angle_in_wrap(tlim, joint_l, joint_u)) { + allow_pairs = {{-M_PI, M_PI}}; + } else { + allow_pairs.clear(); + } + } + + // 5) 奇异屏蔽:与允许集求交 + if (!singular_allow.empty() && !allow_pairs.empty()) { + allow_pairs = intersect(allow_pairs, singular_allow); + } + + // ++【新增】合并小段,干净输出 + allow_pairs = union_intervals(allow_pairs); + return allow_pairs; +} + + +std::vector > IkLimitAnalyzer::intersect( + const std::vector > &A, const std::vector > &B) { + if (A.empty() || B.empty()) return {}; + + // 先复制并排序(按起点) + auto SA = A, SB = B; + std::sort(SA.begin(), SA.end(), + [](auto &x, auto &y) { return x.first < y.first; }); + std::sort(SB.begin(), SB.end(), + [](auto &x, auto &y) { return x.first < y.first; }); + + // 双指针求交 + std::vector > out; + size_t i = 0, j = 0; + while (i < SA.size() && j < SB.size()) { + double L = std::max(SA[i].first, SB[j].first); + double R = std::min(SA[i].second, SB[j].second); + if (R > L) out.emplace_back(L, R); + + // 谁先结束谁前进 + if (SA[i].second < SB[j].second) ++i; + else ++j; + } + + // 合并可能相邻/重叠的小段 + if (out.empty()) return out; + + constexpr double MERGE_EPS = 1e-12; + std::vector > merged; + merged.reserve(out.size()); + std::sort(out.begin(), out.end(), + [](auto &x, auto &y) { return x.first < y.first; }); + + merged.push_back(out[0]); + for (size_t k = 1; k < out.size(); ++k) { + if (out[k].first <= merged.back().second + MERGE_EPS) { + merged.back().second = std::max(merged.back().second, out[k].second); + } else { + merged.push_back(out[k]); + } + } + return merged; +} + +std::vector > IkLimitAnalyzer::bounds_to_pairs(const std::vector &bounds) { + std::vector > segs; + if (bounds.empty()) return segs; + + // 要求:bounds 已按升序,且“以允许开始”(在 TanJointLimits 里保证了) + if (bounds.size() % 2 != 0) { + // 若出现奇偶不配,可按需抛异常或容错 + return segs; + } + + segs.reserve(bounds.size() / 2); + for (size_t i = 0; i < bounds.size(); i += 2) { + double L = bounds[i]; + double R = bounds[i + 1]; + if (R > L) segs.emplace_back(L, R); + } + return segs; +} + + +// std::vector > +// IkLimitAnalyzer::calc_cos_limits(double a, double b, double c, int conf, double joint_l, double joint_u) { +// // 对于 cos 型来说,奇异点处导数存在,但是左导数 != 右导数 +// // 论文 Analytical Inverse Kinematic Computation for 7-DOF Redundant +// // Manipulators With Joint Limits and Its Application to Redundancy Resolution +// // 式 39 ,40 来求奇异点 +// if (std::abs(a * a + b * b - (c - 1) * (c - 1)) < EPS) { +// double psi_sing = 2.0 * std::atan2(a, (b - (c - 1))); +// } +// if (std::abs(a * a + b * b - (c + 1) * (c + 1)) < EPS) { +// double psi_sing = 2.0 * std::atan2(a, (b - (c + 1))); +// } +// +// // 1) 将关节上下限 映射到 ψ(cos 型) +// std::vector pt1 = calc_cos_solution(a, b, c, joint_l); +// std::vector pt2 = calc_cos_solution(a, b, c, joint_u); +// +// std::vector ptlim; +// ptlim.reserve(pt1.size() + pt2.size()); +// ptlim.insert(ptlim.end(), pt1.begin(), pt1.end()); +// ptlim.insert(ptlim.end(), pt2.begin(), pt2.end()); +// +// std::vector > allow_pairs; // 输出 +// +// if (!ptlim.empty()) { +// // 2) 排序 +// std::sort(ptlim.begin(), ptlim.end()); +// +// // 3) 分类:enter_avoid(=1) / enter_allow(=0) +// std::vector lim_class(ptlim.size(), 0); +// for (size_t i = 0; i < ptlim.size(); ++i) { +// double psi = ptlim[i]; +// +// // θ(ψ) = conf * acos( a sinψ + b cosψ + c ) +// double ct = a * std::sin(psi) + b * std::cos(psi) + c; +// ct = clamp(ct, -1.0, 1.0); +// double tlim = static_cast(conf) * std::acos(ct); +// +// // dθ/dψ = (-1/sinθ)*(a cosψ - b sinψ),sinθ = sqrt(1-ct^2) +// double st = std::sqrt(std::max(0.0, 1.0 - ct * ct)); +// +// double core = (a * std::cos(psi) - b * std::sin(psi)); +// double dlim = static_cast(conf) * (-1.0 / st) * core; +// +// // 当 psi = 0 时,处于奇异点,st = 0 其左右导数值可以参考论文 +// // Analytical Inverse Kinematic Computation for 7-DOF Redundant +// // Manipulators With Joint Limits and Its Application to Redundancy Resolution +// // 式 42 ,43,45,46 +// +// lim_class[i] = (sign(tlim) == sign(dlim)) ? 1 : 0; +// } +// +// // 4) 若首个是“进入禁止”,拼上 [-π, π] 让边界以“允许”开头 +// std::vector bounds = ptlim; +// if (!lim_class.empty() && lim_class.front() == 1) { +// bounds.insert(bounds.begin(), -M_PI); +// bounds.push_back(M_PI); +// } +// +// // 5) 边界 → pair 列表 +// allow_pairs = bounds_to_pairs(bounds); +// } else { +// // 6) 无命中边界:全允许或全禁止(检查 ψ=0) +// double psi = 0.0; +// double ct0 = a * std::sin(psi) + b * std::cos(psi) + c; +// ct0 = clamp(ct0, -1.0, 1.0); +// double tlim0 = static_cast(conf) * std::acos(ct0); +// +// if (tlim0 > joint_l && tlim0 < joint_u) { +// allow_pairs = {{-M_PI, M_PI}}; // 全允许 +// } else { +// allow_pairs.clear(); // 全禁止 +// } +// } +// +// return allow_pairs; +// } + + +std::vector > IkLimitAnalyzer::calc_cos_limits( + double a, double b, double c, int conf, double joint_l, double joint_u) { + // 1) 奇异点判断 + if (std::abs(a * a + b * b - (c - 1) * (c - 1)) < EPS) { + double psi_sing = 2.0 * std::atan2(a, (b - (c - 1))); + } + if (std::abs(a * a + b * b - (c + 1) * (c + 1)) < EPS) { + double psi_sing = 2.0 * std::atan2(a, (b - (c + 1))); + } + + // 2) 将关节上下限映射到 ψ(cos 型) + std::vector pt1 = calc_cos_solution(a, b, c, joint_l); + std::vector pt2 = calc_cos_solution(a, b, c, joint_u); + + std::vector ptlim; + ptlim.reserve(pt1.size() + pt2.size()); + ptlim.insert(ptlim.end(), pt1.begin(), pt1.end()); + ptlim.insert(ptlim.end(), pt2.begin(), pt2.end()); + + + // 去重(避免重复切分点导致抖动) + std::sort(ptlim.begin(), ptlim.end()); + ptlim.erase(std::unique(ptlim.begin(), ptlim.end(), + [](double a, double b) { return std::abs(a - b) < 1e-12; }), + ptlim.end()); + + std::vector > allow_pairs; // 输出 + + if (!ptlim.empty()) { + // 3) 排序区间 + std::sort(ptlim.begin(), ptlim.end()); + + // 4) 采样 + 交替 + const double EPSP = 1e-9; // 偏移量 + + // 构造边界数组:[-π, cuts..., π] + std::vector bounds; + bounds.reserve(ptlim.size() + 2); + bounds.push_back(-M_PI); + bounds.insert(bounds.end(), ptlim.begin(), ptlim.end()); + bounds.push_back(M_PI); + + // 5) 采样左侧点,判断是否允许 + auto theta_of = [&](double psi) { + double ct = a * std::sin(psi) + b * std::cos(psi) + c; + ct = clamp(ct, -1.0, 1.0); // 保证 ct 的范围在 [-1, 1] 之间 + return static_cast(conf) * std::acos(ct); + }; + + + for (size_t i = 0; i + 1 < bounds.size(); ++i) { + double L = bounds[i]; + double R = bounds[i + 1]; + if (R <= L) continue; + + double probe = L + EPSP; // 左侧微偏移 + if (probe > R) probe = (L + R) * 0.5; // 极窄段兜底:取中点 + + if (angle_in_wrap(theta_of(probe), joint_l, joint_u)) { + allow_pairs.emplace_back(L, R); + } + } + } else { + // 6) 无交点的情况:全允许或全禁止 + double psi = 0.0; + double ct = a * std::sin(psi) + b * std::cos(psi) + c; + ct = clamp(ct, -1.0, 1.0); + double tlim = static_cast(conf) * std::acos(ct); + + if (angle_in_wrap(tlim, joint_l, joint_u)) { + allow_pairs = {{-M_PI, M_PI}}; + } else { + allow_pairs.clear(); + } + } + + // 8) 合并小段,干净输出 + allow_pairs = union_intervals(allow_pairs); + + return allow_pairs; +} + + +bool IkLimitAnalyzer::check_cos_solution(double a, double b, double c, double theta_target, double psi) { + // // 由 ψ 复原 θ:θ = acos( a sinψ + b cosψ + c ) + // double ct = a * std::sin(psi) + b * std::cos(psi) + c; + // ct = clamp(ct, -1.0, 1.0); + // double theta = std::acos(ct); + // return std::abs(theta - theta_target) < 1e-6; + + // ct = a sinψ + b cosψ + c 应等于 cos(theta_target) + double ct = a * std::sin(psi) + b * std::cos(psi) + c; + ct = clamp(ct, -1.0, 1.0); + + // 目标的 cos 值(对 conf 正负都成立) + double v = std::cos(theta_target); + + return std::abs(ct - v) < 1e-6; +} + + +std::vector IkLimitAnalyzer::calc_cos_solution(double a, double b, double c, double theta) { + std::vector out; + + // v = cos(theta) + double v = std::cos(theta); + + // 二次式:as * t^2 + bs * t + cs = 0, 其中 t = tan(ψ/2) + double as = v + b - c; + double bs = -2.0 * a; + double cs = v - b - c; + + double D = bs * bs - 4.0 * as * cs; + if (D < 0.0) return out; + D = std::max(0.0, D); + double sqrtD = std::sqrt(D); + + double psi1 = 2.0 * std::atan2(-(bs - sqrtD), 2.0 * as); + double psi2 = 2.0 * std::atan2(-(bs + sqrtD), 2.0 * as); + + psi1 = normalize_angle(psi1); + psi2 = normalize_angle(psi2); + + if (check_cos_solution(a, b, c, theta, psi1)) out.push_back(psi1); + if (check_cos_solution(a, b, c, theta, psi2) && + std::abs(psi2 - psi1) > EPS) + out.push_back(psi2); + + std::sort(out.begin(), out.end()); + return out; +} + +bool IkLimitAnalyzer::wraps(double L, double U) { + // 先都规约到 (-π, π] + auto norm = [](double x) { + while (x <= -M_PI) x += 2 * M_PI; + while (x > M_PI) x -= 2 * M_PI; + return x; + }; + L = norm(L); + U = norm(U); + return (L > U); +} + + +std::vector > IkLimitAnalyzer::cal_offset_limits( + double joint_l, double joint_u, double offset) { + auto norm = [](double x) { + while (x <= -M_PI) x += 2 * M_PI; + while (x > M_PI) x -= 2 * M_PI; + return x; + }; + double pL = norm(joint_l + offset); + double pU = norm(joint_u + offset); + + std::vector > joint_ranges; + if (!wraps(pL, pU)) { + // 单段 + joint_ranges.push_back({pL, pU}); + } else { + // 跨 ±π,拆成两段 [-π, pU] ∪ [pL, π] + joint_ranges.push_back({-M_PI, pU}); + joint_ranges.push_back({pL, M_PI}); + } + return joint_ranges; +} + +std::vector > IkLimitAnalyzer::calc_tan_limits( + double an, double ad, double bn, double bd, double cn, double cd, double joint_l, double joint_u, double offset) { + auto joint_ranges = cal_offset_limits(joint_l, joint_u, offset); + std::vector > out{}; + for (auto [L, U]: joint_ranges) { + auto part = calc_tan_limits(an, ad, bn, bd, cn, cd, L, U); + out.insert(out.end(), part.begin(), part.end()); + } + out = union_intervals(out); + return out; +} + +std::vector > IkLimitAnalyzer::calc_cos_limits( + double a, double b, double c, int conf, double joint_l, double joint_u, double offset) { + auto joint_ranges = cal_offset_limits(joint_l, joint_u, offset); + std::vector > out{}; + for (auto [L, U]: joint_ranges) { + auto part = calc_cos_limits(a, b, c, conf, L, U); + out.insert(out.end(), part.begin(), part.end()); + } + out = union_intervals(out); + return out; +} + + +bool IkLimitAnalyzer::angle_in_wrap(double x, double L, double U) { + x = normalize_angle(x); + L = normalize_angle(L); + U = normalize_angle(U); + if (L <= U) return (x >= L && x <= U); + return (x >= L || x <= U); // 跨界 +} + +std::vector > +IkLimitAnalyzer::union_intervals(const std::vector > &in) { + const double MERGE_EPS = 1e-12; + if (in.empty()) return {}; + std::vector > v = in; + std::sort(v.begin(), v.end(), [](auto &a, auto &b) { + return (a.first < b.first) || (a.first == b.first && a.second < b.second); + }); + std::vector > out; + double L = v[0].first, R = v[0].second; + for (size_t i = 1; i < v.size(); ++i) { + if (v[i].first <= R + MERGE_EPS) R = std::max(R, v[i].second); + else { + out.push_back({L, R}); + L = v[i].first; + R = v[i].second; + } + } + out.push_back({L, R}); + return out; +} diff --git a/src/utils/srs_ik/ik_limit_analyzer.h b/src/utils/srs_ik/ik_limit_analyzer.h new file mode 100644 index 00000000..b2c40c7c --- /dev/null +++ b/src/utils/srs_ik/ik_limit_analyzer.h @@ -0,0 +1,125 @@ +// +// Created by lgv on 2025/11/3. +// + +#ifndef CMVR_ES_IK_LIMIT_ANALYZER_H +#define CMVR_ES_IK_LIMIT_ANALYZER_H +#include +#include +#include +#include + +namespace cmvr { + namespace utils { + class IkLimitAnalyzer { + public: + // Tan 型关节:给定 (an,ad,bn,bd,cn,cd) 与关节极限 + // 返回 psi 的允许区间边界: [L1,R1,L2,R2,...] + static std::vector > + calc_tan_limits(double an, double ad, + double bn, double bd, + double cn, double cd, + double joint_l, double joint_u); + + static std::vector > + calc_tan_limits(double an, double ad, + double bn, double bd, + double cn, double cd, + double joint_l, double joint_u,double offset); + + static std::vector > + calc_cos_limits(double a, double b, double c, int conf, double joint_l, double joint_u); + + static std::vector > + calc_cos_limits(double a, double b, double c, int conf, double joint_l, double joint_u,double offset); + + // 两个“允许集”的交集(输入与输出都是“边界数组”,并且都以允许开始) + static std::vector > + intersect(const std::vector > &A, + const std::vector > &B); + + + // 用于测试:打印区间 + static void print_intervals(const std::vector > &intervals) { + for (const auto &interval: intervals) { + std::cout << "[" << interval.first << ", " << interval.second << "] "; + } + std::cout << std::endl; + } + + private: + static constexpr double EPS = 1e-9; + + // 将角度归一化到 [-π, π] 范围内 + static double normalize_angle(double angle); + + static double deg2rad(double deg) { return deg * M_PI / 180.0; } + static double rad2deg(double rad) { return rad * 180.0 / M_PI; } + + template + static constexpr int sign(T x, T eps) { + return (x > eps) - (x < -eps); + } + + template + static constexpr int sign(T x) { + return sign(x, T(0)); + } + + + // tan 型:给定目标 theta,返回所有 ψ ∈ [-π, π] 的解,式(32) + static std::vector + calc_tan_solution(double an, double ad, + double bn, double bd, + double cn, double cd, + double theta); + + // cos 型:给定目标 theta,返回所有 ψ ∈ [-π, π] 的解 + static std::vector + calc_cos_solution(double a, double b, double c, double theta); + + + // 检查解的正确性 ,式(26) + static bool check_tan_solution(double an, double ad, + double bn, double bd, + double cn, double cd, + double theta_target, + double psi); + + // 检核:cos 型 + static bool check_cos_solution(double a, double b, double c, + double theta_target, + double psi); + + + template + static T clamp(T v, T lo, T hi) { + return std::max(lo, std::min(hi, v)); + } + + + static std::vector > + bounds_to_pairs(const std::vector &bounds); + + + // 判断环绕:区间 [L,U] 是否跨过 π + static inline bool wraps(double L, double U); + + + // 根据DH 参数中的 关节角 θi (rad) 的偏移来计算实际的限位区间 + static inline std::vector > + cal_offset_limits(double joint_l, double joint_u, double offset); + + + // 新增:环形包含( [L,U]) + static bool angle_in_wrap(double x, double L, double U); + + // 新增:线性并集(输入输出都在 [-π,π] 且 L<=U;跨界已在上游拆分) + static std::vector> + union_intervals(const std::vector>& in); + }; + }; +} + + +#endif //CMVR_ES_IK_LIMIT_ANALYZER_H diff --git a/src/utils/srs_ik/srs_ik_slover.cpp b/src/utils/srs_ik/srs_ik_slover.cpp new file mode 100644 index 00000000..8c64ecc7 --- /dev/null +++ b/src/utils/srs_ik/srs_ik_slover.cpp @@ -0,0 +1,407 @@ +// +// Created by lgv on 2025/11/3. +// + +#include "srs_ik_slover.h" + +#include + +using namespace cmvr::utils; +using namespace Eigen; + +SRSIkSlover::SRSIkSlover() { + link_lengths_ = Eigen::VectorXd(4); + link_lengths_ << 0.0945 + 0.0765, 0.1475 + 0.1025, 0.0965 + 0.1525, 3.222; + + // DH 参数 [d_i, alpha_i, a_i(=0), theta_offset_i] + dh_params_ = Eigen::MatrixXd(7, 4); + double half_pi = M_PI / 2; + dh_params_ << link_lengths_[0], -half_pi, 0.0, 0.0, + 0.0, half_pi, 0.0, 0.0, + link_lengths_[1], -half_pi, 0.0, 0.0, + 0.0, half_pi, 0.0, 0.0, + link_lengths_[2], -half_pi, 0.0, half_pi, + 0.0, half_pi, 0.0, half_pi, + link_lengths_[3], 0.0, 0.0, 0.0; + + d_bs_ = link_lengths_[0]; + d_se_ = link_lengths_[1]; + d_ew_ = link_lengths_[2]; + d_wt_ = link_lengths_[3]; + + joints_limits_ = { + {-half_pi, half_pi}, + {-half_pi, half_pi}, + {-half_pi, half_pi}, + {-half_pi, half_pi}, + {-half_pi, half_pi}, + {-half_pi, half_pi}, + {-half_pi, half_pi}, + }; +} + +Eigen::Matrix3d SRSIkSlover::reference_plane(const Eigen::Vector3d &S, const Eigen::Vector3d &W) { + double d_sw = (W - S).norm(); + Eigen::Vector3d v_sw = (W - S).normalized(); + + // 1: 计算E_r 的值 + double x = (d_sw * d_sw + d_se_ * d_se_ - d_ew_ * d_ew_) / (2 * d_sw); + double r = sqrt(std::max(d_se_ * d_se_ - x * x, 0.0)); + Eigen::Vector3d F = S + x * v_sw; + + Vector3d FE; + if (v_sw.head<2>().cwiseAbs().maxCoeff() <= 1e-6) { + FE = Vector3d(-1.0, 0.0, 0.0); + } else { + FE(0) = -v_sw(0) * v_sw(2) / (v_sw(0) * v_sw(0) + v_sw(1) * v_sw(1)); + FE(1) = -v_sw(1) * v_sw(2) / (v_sw(0) * v_sw(0) + v_sw(1) * v_sw(1)); + FE(2) = 1.0; + } + + // 根据 elbow_config 调整 E 的位置 + Vector3d E = F + elbow_config_ * r * FE.normalized(); + + Vector3d v_es = (S - E).normalized(); + Vector3d v_ew = (W - E).normalized(); + + + Vector3d R30_y = v_es; + Vector3d R30_z = v_ew.cross(v_es); + + + if (elbow_config_ == INWARD) + R30_z = -R30_z; + + auto nz = R30_z.norm(); + if (nz > 1e-12) { + R30_z /= nz; // 或者:R30_z.normalize(); + } else { + // 退化保护:给个正交补方向 + R30_z = Vector3d(-0.0, 1.0, 0.0); + } + + + Vector3d R30_x = R30_y.cross(R30_z); + + + Matrix3d R30; + R30.col(0) = R30_x; + R30.col(1) = R30_y; + R30.col(2) = R30_z; + + return R30; +} + +std::vector SRSIkSlover::inverse_kinematics(const Eigen::MatrixXd &pose, double psi) { + try { + // Eigen::VectorXd joints(7); + std::vector joints(7, 0); + + // 目标位置 + Eigen::Vector3d P_target = pose.block<3, 1>(0, 3); + + // 肩部 S 位置 ,相对于基坐标系 + Eigen::Vector3d S(0.0, 0.0, d_bs_); + + // P67 : tcp 相对于 {6} 坐标系(腕心 W)的位置 + Eigen::Vector3d P67(0.0, 0.0, d_wt_); + + // 腕心 W 位置 ,相对于基坐标系 + Eigen::Vector3d W = P_target - pose.block<3, 3>(0, 0) * P67; + + + double d_sw = (W - S).norm(); + if ((std::abs(d_se_ + d_ew_) < (d_sw - 1e-6) || (d_sw + 1e-6) < std::abs(d_se_ - d_ew_))) { + throw std::runtime_error("Pose outside reachable workspace, IK solve failed"); + } + + // 计算肘部角度 关节3 + double cos_elbow = (d_se_ * d_se_ + d_ew_ * d_ew_ - d_sw * d_sw) / (2 * d_se_ * d_ew_); + cos_elbow = std::clamp(double(cos_elbow), -1.0, 1.0); + joints[3] = elbow_config_ * (M_PI - std::acos(cos_elbow)); + + // 计算臂平面E处相对于 基坐标系 的旋转矩阵 + Eigen::Matrix3d R30 = reference_plane(S, W); + Eigen::Matrix3d R_axis = calc_rotation_matrix((W - S).normalized(), psi); + Eigen::Matrix3d R3 = R_axis * R30; + + + // // 求系数矩阵 + // Eigen::Vector3d normalized_axis = (W - S).normalized(); + // double ux = normalized_axis[0], uy = normalized_axis[1], uz = normalized_axis[2]; + // Eigen::Matrix3d u_hat; + // u_hat << 0, -uz, uy, + // uz, 0, -ux, + // -uy, ux, 0; + // + // Eigen::MatrixXd A_s = u_hat * R30; + // Eigen::MatrixXd B_s = -u_hat * u_hat * R30; + // Eigen::MatrixXd C_s = (Eigen::MatrixXd::Identity(3, 3) + u_hat * u_hat) * R30; + // + // Eigen::Matrix3d R3_1 = A_s *sin(psi) + B_s * cos(psi) + C_s; + // + // // std::cout <<" R3_1 "<< R3_1.transpose() * R3 << std::endl; + + + // 计算肩部角度 (关节0, 1, 2) + joints[0] = std::atan2(-R3(1, 1) * shoulder_config_, -R3(0, 1) * shoulder_config_); + joints[1] = std::acos(std::clamp(double(-R3(2, 1)), -0.9999999999, 0.999999999)) * shoulder_config_; + joints[2] = std::atan2(R3(2, 2) * shoulder_config_, -R3(2, 0) * shoulder_config_); + + // 计算 R04 + Eigen::Matrix3d R04 = Eigen::Matrix3d::Identity(); + for (int i = 0; i < 4; ++i) { + // 从 DH 参数中获取参数 + Eigen::Vector4d dh = dh_params_.row(i); + R04 = R04 * calc_dh(dh[0], dh[1], dh[2], dh[3] + joints[i]).block<3, 3>(0, 0); + } + + + Eigen::Matrix3d R47 = R04.transpose() * pose.block<3, 3>(0, 0); + + + // // + // // 计算变换矩阵 + // Eigen::MatrixXd T34 = calc_dh(dh_params_(3,0),dh_params_(3,1),dh_params_(3,2),dh_params_(3,3)+joints[3]); + // Eigen::MatrixXd R34 = T34.block(0, 0, 3, 3); + // Eigen::MatrixXd A_w = R34.transpose() * A_s.transpose() * pose.block(0, 0, 3, 3); + // Eigen::MatrixXd B_w = R34.transpose() * B_s.transpose() * pose.block(0, 0, 3, 3); + // Eigen::MatrixXd C_w = R34.transpose() * C_s.transpose() * pose.block(0, 0, 3, 3); + // + // Eigen::Matrix3d R47_2 = A_w *sin(psi) + B_w * cos(psi) + C_w; + // + // std::cout <<" R47_2 "<< R47.transpose() * R47_2 << std::endl; + // 提取腕部欧拉角 + double phi_z = std::atan2(R47(1, 2), R47(0, 2)); + double theta_y = std::atan2(std::sqrt(R47(2, 0) * R47(2, 0) + R47(2, 1) * R47(2, 1)), R47(2, 2)); + double psi_z = std::atan2(R47(2, 1), -R47(2, 0)); + + // 处理奇异情况 + if (std::sin(theta_y) < 1e-12) { + phi_z = std::atan2(R47(1, 0), R47(0, 0)); + psi_z = 0.0; + } + if (std::sin(M_PI - theta_y) < 1e-12) { + phi_z = std::atan2(-R47(1, 0), -R47(0, 0)); + psi_z = 0.0; + } + + // 腕部分支调整 + if (wrist_config_ == INWARD) { + phi_z += M_PI; + theta_y = -theta_y; + psi_z += M_PI; + } + + // 调整角度 + joints[4] = normalize_angle(phi_z - M_PI / 2); + joints[5] = normalize_angle(theta_y - M_PI / 2); + joints[6] = normalize_angle(psi_z); + + // // 调整角度 + // joints[4] = (phi_z ); + // joints[5] = (theta_y); + // joints[6] = (psi_z); + + for (double q1: joints) { + std::cout << q1 << " , "; + } + std::cout << std::endl; + + + return joints; + } catch (const std::exception &e) { + throw std::runtime_error(e.what()); + } +} + +Eigen::Matrix3d SRSIkSlover::calc_rotation_matrix(const Eigen::Vector3d &rotation_axis, double rotation_angle) { + // 归一化旋转轴 + Eigen::Vector3d normalized_axis = rotation_axis.normalized(); + + // 构造反对称矩阵 + double ux = normalized_axis[0], uy = normalized_axis[1], uz = normalized_axis[2]; + Eigen::Matrix3d u_hat; + u_hat << 0, -uz, uy, + uz, 0, -ux, + -uy, ux, 0; + + // 计算旋转矩阵 + Eigen::Matrix3d rotation_matrix = Eigen::Matrix3d::Identity() + std::sin(rotation_angle) * u_hat + ( + 1 - std::cos(rotation_angle)) * (u_hat * u_hat); + + return rotation_matrix; +} + +Eigen::Matrix4d SRSIkSlover::calc_dh(double d, double alpha, double a, double theta) { + double ca = std::cos(alpha); + double sa = std::sin(alpha); + double ct = std::cos(theta); + double st = std::sin(theta); + + // 构建 DH 变换矩阵 + Eigen::Matrix4d T; + T << ct, -st * ca, st * sa, a * ct, + st, ct * ca, -ct * sa, a * st, + 0.0, sa, ca, d, + 0.0, 0.0, 0.0, 1.0; + + return T; +} + +double SRSIkSlover::normalize_angle(const double angle) { + // 将角度转换为 [0, 2π) 范围 + double a = std::fmod(angle + M_PI, 2.0 * M_PI); + + // 如果 a 为负数,则添加 2π,使其位于 [0, 2π) 范围 + if (a < 0.0) { + a += 2.0 * M_PI; + } + + // 将角度范围调整到 [-π, π] 范围 + return a - M_PI; +} + +Eigen::Matrix4d SRSIkSlover::calc_total_transform(const std::vector &joint_angles) { + Eigen::Matrix4d T_total = Eigen::Matrix4d::Identity(); // 初始化为单位矩阵 + + // 遍历每一组 DH 参数 + for (size_t i = 0; i < dh_params_.rows(); ++i) { + // 获取当前关节的 DH 参数 + double d = dh_params_(i, 0); + double alpha = dh_params_(i, 1); + double a = dh_params_(i, 2); + double theta0 = dh_params_(i, 3); + + // 当前关节的实际旋转角度 theta + double theta = theta0 + joint_angles[i]; + + // 计算当前关节的变换矩阵 + Eigen::Matrix4d T = calc_dh(d, alpha, a, theta); + + // 更新总变换矩阵 + T_total = T_total * T; + } + + return T_total; +} + +bool SRSIkSlover::cal_coefficient_matrix(const Eigen::MatrixXd &pose, Eigen::MatrixXd &s_mat, Eigen::MatrixXd &w_mat) { + if (s_mat.rows() != 3 || s_mat.cols() != 9) s_mat.setZero(3, 9); + if (w_mat.rows() != 3 || w_mat.cols() != 9) w_mat.setZero(3, 9); + + try { + // Eigen::VectorXd joints(7); + std::vector joints(7, 0); + + // 目标位置 + Eigen::Vector3d P_target = pose.block<3, 1>(0, 3); + + // 肩部 S 位置 ,相对于基坐标系 + Eigen::Vector3d S(0.0, 0.0, d_bs_); + + // P67 : tcp 相对于 {6} 坐标系(腕心 W)的位置 + Eigen::Vector3d P67(0.0, 0.0, d_wt_); + + // 腕心 W 位置 ,相对于基坐标系 + Eigen::Vector3d W = P_target - pose.block<3, 3>(0, 0) * P67; + + + double d_sw = (W - S).norm(); + if ((std::abs(d_se_ + d_ew_) < d_sw) || (d_sw < std::abs(d_se_ - d_ew_))) { + throw std::runtime_error("Pose outside reachable workspace, IK solve failed"); + } + + // 计算肘部角度 关节3 + double cos_elbow = (d_se_ * d_se_ + d_ew_ * d_ew_ - d_sw * d_sw) / (2 * d_se_ * d_ew_); + cos_elbow = std::clamp(cos_elbow, -1.0, 1.0); + joints[3] = elbow_config_ * (M_PI - std::acos(cos_elbow)); + + + // 计算臂平面E处相对于 基坐标系 的旋转矩阵 + Eigen::Matrix3d R30 = reference_plane(S, W); + Eigen::Vector3d normalized_axis = (W - S).normalized(); + + // 构造反对称矩阵 + double ux = normalized_axis[0], uy = normalized_axis[1], uz = normalized_axis[2]; + Eigen::Matrix3d u_hat; + u_hat << 0, -uz, uy, + uz, 0, -ux, + -uy, ux, 0; + + // 计算旋转矩阵 R03 + Eigen::MatrixXd A_s = u_hat * R30; + Eigen::MatrixXd B_s = -u_hat * u_hat * R30; + Eigen::MatrixXd C_s = (Eigen::MatrixXd::Identity(3, 3) + u_hat * u_hat) * R30; + + + // 计算变换矩阵 + Eigen::MatrixXd T34 = calc_dh(dh_params_(3, 0), dh_params_(3, 1), dh_params_(3, 2), + dh_params_(3, 3) + joints[3]); + Eigen::MatrixXd R34 = T34.block(0, 0, 3, 3); + Eigen::MatrixXd A_w = R34.transpose() * A_s.transpose() * pose.block(0, 0, 3, 3); + Eigen::MatrixXd B_w = R34.transpose() * B_s.transpose() * pose.block(0, 0, 3, 3); + Eigen::MatrixXd C_w = R34.transpose() * C_s.transpose() * pose.block(0, 0, 3, 3); + + s_mat.block<3, 3>(0, 0) = A_s; + s_mat.block<3, 3>(0, 3) = B_s; + s_mat.block<3, 3>(0, 6) = C_s; + + w_mat.block<3, 3>(0, 0) = A_w; + w_mat.block<3, 3>(0, 3) = B_w; + w_mat.block<3, 3>(0, 6) = C_w; + + return true; + } catch (const std::exception &e) { + throw std::runtime_error(e.what()); + return false; + } +} + + +std::vector > SRSIkSlover::calc_arm_angle_limits( + const Eigen::MatrixXd &s_mat, const Eigen::MatrixXd &w_mat) { + // 期望 s_mat / w_mat 都是 3x9: [A | B | C] + if (s_mat.rows() != 3 || s_mat.cols() != 9 || + w_mat.rows() != 3 || w_mat.cols() != 9) { + // 尺寸不对,直接返回空 + return {}; + } + + + const Eigen::Matrix3d As = s_mat.block<3, 3>(0, 0); + const Eigen::Matrix3d Bs = s_mat.block<3, 3>(0, 3); + const Eigen::Matrix3d Cs = s_mat.block<3, 3>(0, 6); + + const Eigen::Matrix3d Aw = w_mat.block<3, 3>(0, 0); + const Eigen::Matrix3d Bw = w_mat.block<3, 3>(0, 3); + const Eigen::Matrix3d Cw = w_mat.block<3, 3>(0, 6); + + auto s = static_cast(shoulder_config_); + auto e = static_cast(elbow_config_); + auto w = static_cast(wrist_config_); + + auto limit_1 = ik_limit_analyzer_.calc_tan_limits(-s * As(1, 1), -s * As(0, 1), -s * Bs(1, 1), -s * Bs(0, 1), + -s * Cs(1, 1), -s * Cs(0, 1), 0.5, M_PI / 2.0); + + auto limit_2 = ik_limit_analyzer_.calc_cos_limits(-As(2, 1), -Bs(2, 1), -Cs(2, 1), s, -2.5, -2); + + auto limit_3 = ik_limit_analyzer_.calc_tan_limits(s * As(2, 2), + -s * As(2, 0), s * Bs(2, 2), -s * Bs(2, 0), + s * Cs(2, 2), -s * Cs(2, 0), -3.14 / 2.0, 3.14 / 3.0); + + auto limit_5 = ik_limit_analyzer_.calc_tan_limits(w * Aw(1, 2), + w * Aw(0, 2), w * Bw(1, 2), w * Bw(0, 2), + w * Cw(1, 2), w * Cw(0, 2), -0.2, 1.8,M_PI / 2.0); + + auto limit_6 = ik_limit_analyzer_.calc_cos_limits(Aw(2, 2), Bw(2, 2), Cw(2, 2), w, 0.5, 2.0,M_PI / 2.0); + auto limit_7 = ik_limit_analyzer_.calc_tan_limits(w * Aw(2, 1), + -w * Aw(2, 0), w * Bw(2, 1), -w * Bw(2, 0), + w * Cw(2, 1), -w * Cw(2, 0), -3.0, -2.0); + + + ik_limit_analyzer_.print_intervals(limit_6); + + + return limit_6; +} diff --git a/src/utils/srs_ik/srs_ik_slover.h b/src/utils/srs_ik/srs_ik_slover.h new file mode 100644 index 00000000..ca671027 --- /dev/null +++ b/src/utils/srs_ik/srs_ik_slover.h @@ -0,0 +1,89 @@ +// +// Created by lgv on 2025/11/3. +// + +#ifndef CMVR_ES_SRS_IK_SLOVER_H +#define CMVR_ES_SRS_IK_SLOVER_H + + +#include +#include "srs_ik/ik_limit_analyzer.h" +namespace cmvr { +namespace utils { + + class SRSIkSlover { + public: + enum ConfigDirection { + OUTWARD = 1, // 向外 + INWARD = -1 // 向内 + }; + + public: + SRSIkSlover(); + ~SRSIkSlover(){}; + + std::vector inverse_kinematics(const Eigen::MatrixXd& pose, double psi); + + Eigen::Matrix4d calc_total_transform(const std::vector& joint_angles); + + bool cal_coefficient_matrix(const Eigen::MatrixXd& pose,Eigen::MatrixXd& s_mat , Eigen::MatrixXd& w_mat); + std::vector> calc_arm_angle_limits(const Eigen::MatrixXd& s_mat ,const Eigen::MatrixXd& w_mat); + + void set_shoulder_config(ConfigDirection value) { + shoulder_config_ = value; + } + + void set_elbow_config(ConfigDirection value) { + elbow_config_ = value; + } + + void set_wrist_config(ConfigDirection value) { + wrist_config_ = value; + } + + + + private: + + + ConfigDirection shoulder_config_{OUTWARD}; + ConfigDirection elbow_config_{OUTWARD}; + ConfigDirection wrist_config_{OUTWARD}; + // DH参数 + Eigen::VectorXd link_lengths_; + Eigen::MatrixXd dh_params_; + + double d_bs_, d_se_, d_ew_, d_wt_; + + // 关节物理限位 + // first : min second : max + std::vector> joints_limits_{}; + + IkLimitAnalyzer ik_limit_analyzer_; + + + + + + // 计算参考平面相对于基坐标系的旋转矩阵 + Eigen::Matrix3d reference_plane(const Eigen::Vector3d& S, const Eigen::Vector3d& W); + + // 罗德里格斯公式 + Eigen::Matrix3d calc_rotation_matrix(const Eigen::Vector3d& rotation_axis, double rotation_angle); + + + // 使用 DH 参数计算变换矩阵 + Eigen::Matrix4d calc_dh(double d, double alpha, double a, double theta); + + // 将角度归一化到 [-π, π] 范围内 + double normalize_angle(const double angle); + + + + + }; +} +} + + +#endif //CMVR_ES_SRS_IK_SLOVER_H \ No newline at end of file diff --git a/src/utils/srs_ik/srs_ik_test.cpp b/src/utils/srs_ik/srs_ik_test.cpp new file mode 100644 index 00000000..25e8da24 --- /dev/null +++ b/src/utils/srs_ik/srs_ik_test.cpp @@ -0,0 +1,132 @@ +// +// Created by lgv on 2025/11/3. +// + + +#include "gtest/gtest.h" +#include "manif/SE3.h" +#include "srs_ik/srs_ik_slover.h" +#include "srs_ik/ik_limit_analyzer.h" +#include +#include +#include + +using namespace manif; +using namespace cmvr::utils; + +struct IkSample { + double psi; + std::array q; // q1..q7 +}; + + + +bool write_ik_samples_csv(const std::string& filepath, + const std::vector& samples, + bool write_header, + int precision) +{ + std::ofstream ofs(filepath, std::ios::out | std::ios::trunc); + if (!ofs.is_open()) return false; + + // 固定小数点(避免本地化成逗号) + ofs.imbue(std::locale::classic()); + ofs << std::fixed << std::setprecision(precision); + + if (write_header) { + ofs << "psi,q1,q2,q3,q4,q5,q6,q7\n"; + } + for (const auto& s : samples) { + ofs << s.psi; + for (int i = 0; i < 7; ++i) ofs << ',' << s.q[i]; + ofs << '\n'; + } + return true; +} + +TEST(SRS_IK_TEST,SRS_IK_SLOVER_TEST) { + + std::cout << std::fixed << std::setprecision(7); + + SRSIkSlover slover; + std::vector samples; + samples.reserve(4096); + + std::vector joint_angles(7,0); + joint_angles[3] = 0.111; + joint_angles = { 0.875, M_PI / 2, 0.2644, M_PI / 2, 1, M_PI/ 4, M_PI/ 5}; + + auto pose = slover.calc_total_transform(joint_angles); + std::cout << "Pose: " << pose << std::endl; + + // slover.set_elbow_config(SRSIkSlover::INWARD); + // slover.set_wrist_config(SRSIkSlover::INWARD); + // slover.set_shoulder_config(SRSIkSlover::INWARD); + + + Eigen::MatrixXd s_mat(3, 9), w_mat(3, 9); + slover.cal_coefficient_matrix(pose, s_mat, w_mat); + auto limits = slover.calc_arm_angle_limits(s_mat,w_mat); + for (const auto & limit: limits) { + for (double psi = limit.first; psi < limit.second; psi+=0.001 ) { + auto q = slover.inverse_kinematics(pose,psi); + samples.push_back(IkSample{psi, {q[0],q[1],q[2],q[3],q[4],q[5],q[6]}}); + pose = slover.calc_total_transform(q); + // std::cout << "Pose: " << pose << std::endl; + } + } + + // Eigen::VectorXd nsparams = Eigen::VectorXd::LinSpaced(1000, -3.1415926, 3.1415926); + // for (auto psi: nsparams) { + // auto q = slover.inverse_kinematics(pose,psi); + // samples.push_back(IkSample{psi, {q[0],q[1],q[2],q[3],q[4],q[5],q[6]}}); + // for (double q1: q) { + // std::cout << q1 << " , " ; + // } + // std::cout << std::endl; + // pose = slover.calc_total_transform(q); + // // std::cout << "Pose: " << pose << std::endl; + // } + + + write_ik_samples_csv("/home/lgv/cmvr/cmvr-es/data/ik_psi_sweep.csv", samples,true, 9); +} + +TEST(SRS_IK_TEST,INTERSECT_TEST) { + // 测试 1: 有交集的区间 + std::vector> A = {{-3.0, -1.0}, {1.0, 4.0}}; + std::vector> B = {{-2.0, 0.5}, {2.5, 5.0}}; + + std::cout << "Test 1: Intersecting intervals" << std::endl; + auto result1 = IkLimitAnalyzer::intersect(A, B); + IkLimitAnalyzer::print_intervals(result1); + // 预期输出: [-2.0, -1.0] [2.5, 4.0] + + // 测试 2: 相邻但不重叠的区间 + std::vector> C = {{-3.0, -1.0}, {2.0, 4.0}}; + std::vector> D = {{-1.0, 0.0}, {1.0, 3.0}}; + + std::cout << "Test 2: Adjacent intervals" << std::endl; + auto result2 = IkLimitAnalyzer::intersect(C, D); + IkLimitAnalyzer::print_intervals(result2); + // 预期输出: [2.0, 3.0] + + // 测试 3: 无交集的区间 + std::vector> E = {{-5.0, -3.0}, {2.0, 4.0}}; + std::vector> F = {{5.0, 6.0}, {7.0, 8.0}}; + + std::cout << "Test 3: Non-intersecting intervals" << std::endl; + auto result3 = IkLimitAnalyzer::intersect(E, F); + IkLimitAnalyzer::print_intervals(result3); + // 预期输出: (无输出) + + // 测试 4: 一个空的区间集 + std::vector> G = {}; + std::vector> H = {{1.0, 2.0}, {3.0, 4.0}}; + + std::cout << "Test 4: Empty intervals" << std::endl; + auto result4 = IkLimitAnalyzer::intersect(G, H); + IkLimitAnalyzer::print_intervals(result4); + // 预期输出: (无输出) + +} \ No newline at end of file diff --git a/third_party/manif/0.0.5/include/manif/Bundle.h b/third_party/manif/0.0.5/include/manif/Bundle.h new file mode 100644 index 00000000..8cf7873c --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/Bundle.h @@ -0,0 +1,17 @@ +#ifndef _MANIF_BUNDLE_H_ +#define _MANIF_BUNDLE_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/utils.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/bundle/Bundle_properties.h" +#include "manif/impl/bundle/Bundle_base.h" +#include "manif/impl/bundle/Bundle_map.h" +#include "manif/impl/bundle/Bundle.h" +#include "manif/impl/bundle/BundleTangent_base.h" +#include "manif/impl/bundle/BundleTangent.h" +#include "manif/impl/bundle/BundleTangent_map.h" + +#endif // _MANIF_BUNDLE_H_ diff --git a/third_party/manif/0.0.5/include/manif/Rn.h b/third_party/manif/0.0.5/include/manif/Rn.h new file mode 100644 index 00000000..1affac10 --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/Rn.h @@ -0,0 +1,17 @@ +#ifndef _MANIF_RN_H_ +#define _MANIF_RN_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/utils.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/rn/Rn_properties.h" +#include "manif/impl/rn/Rn_base.h" +#include "manif/impl/rn/RnTangent_base.h" +#include "manif/impl/rn/Rn.h" +#include "manif/impl/rn/RnTangent.h" +#include "manif/impl/rn/Rn_map.h" +#include "manif/impl/rn/RnTangent_map.h" + +#endif // _MANIF_RN_H_ diff --git a/third_party/manif/0.0.5/include/manif/SE2.h b/third_party/manif/0.0.5/include/manif/SE2.h new file mode 100644 index 00000000..c0195140 --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/SE2.h @@ -0,0 +1,16 @@ +#ifndef _MANIF_SE2_H_ +#define _MANIF_SE2_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/se2/SE2_properties.h" +#include "manif/impl/se2/SE2_base.h" +#include "manif/impl/se2/SE2Tangent_base.h" +#include "manif/impl/se2/SE2.h" +#include "manif/impl/se2/SE2Tangent.h" +#include "manif/impl/se2/SE2_map.h" +#include "manif/impl/se2/SE2Tangent_map.h" + +#endif /* _MANIF_SE2_H_ */ diff --git a/third_party/manif/0.0.5/include/manif/SE3.h b/third_party/manif/0.0.5/include/manif/SE3.h new file mode 100644 index 00000000..1be5c754 --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/SE3.h @@ -0,0 +1,15 @@ +#ifndef _MANIF_SE3_H_ +#define _MANIF_SE3_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/se3/SE3_properties.h" +#include "manif/impl/se3/SE3_base.h" +#include "manif/impl/se3/SE3Tangent_base.h" +#include "manif/impl/se3/SE3.h" +#include "manif/impl/se3/SE3Tangent.h" +#include "manif/impl/se3/SE3_map.h" +#include "manif/impl/se3/SE3Tangent_map.h" +#endif /* _MANIF_SE3_H_ */ diff --git a/third_party/manif/0.0.5/include/manif/SE_2_3.h b/third_party/manif/0.0.5/include/manif/SE_2_3.h new file mode 100644 index 00000000..8cdf7d35 --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/SE_2_3.h @@ -0,0 +1,16 @@ +#ifndef _MANIF_SE_2_3_H_ +#define _MANIF_SE_2_3_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/se_2_3/SE_2_3_properties.h" +#include "manif/impl/se_2_3/SE_2_3_base.h" +#include "manif/impl/se_2_3/SE_2_3Tangent_base.h" +#include "manif/impl/se_2_3/SE_2_3.h" +#include "manif/impl/se_2_3/SE_2_3Tangent.h" +#include "manif/impl/se_2_3/SE_2_3_map.h" +#include "manif/impl/se_2_3/SE_2_3Tangent_map.h" + +#endif /* _MANIF_SE_2_3_H_ */ diff --git a/third_party/manif/0.0.5/include/manif/SGal3.h b/third_party/manif/0.0.5/include/manif/SGal3.h new file mode 100644 index 00000000..895e29ea --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/SGal3.h @@ -0,0 +1,16 @@ +#ifndef _MANIF_SGAL3_H_ +#define _MANIF_SGAL3_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/sgal3/SGal3_properties.h" +#include "manif/impl/sgal3/SGal3_base.h" +#include "manif/impl/sgal3/SGal3Tangent_base.h" +#include "manif/impl/sgal3/SGal3.h" +#include "manif/impl/sgal3/SGal3Tangent.h" +#include "manif/impl/sgal3/SGal3_map.h" +#include "manif/impl/sgal3/SGal3Tangent_map.h" + +#endif // _MANIF_SGAL3_H_ diff --git a/third_party/manif/0.0.5/include/manif/SO2.h b/third_party/manif/0.0.5/include/manif/SO2.h new file mode 100644 index 00000000..0091a0a1 --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/SO2.h @@ -0,0 +1,17 @@ +#ifndef _MANIF_SO2_H_ +#define _MANIF_SO2_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/utils.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/so2/SO2_properties.h" +#include "manif/impl/so2/SO2_base.h" +#include "manif/impl/so2/SO2Tangent_base.h" +#include "manif/impl/so2/SO2.h" +#include "manif/impl/so2/SO2Tangent.h" +#include "manif/impl/so2/SO2_map.h" +#include "manif/impl/so2/SO2Tangent_map.h" + +#endif /* _MANIF_SO2_H_ */ diff --git a/third_party/manif/0.0.5/include/manif/SO3.h b/third_party/manif/0.0.5/include/manif/SO3.h new file mode 100644 index 00000000..6e2100fb --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/SO3.h @@ -0,0 +1,16 @@ +#ifndef _MANIF_SO3_H_ +#define _MANIF_SO3_H_ + +#include "manif/impl/macro.h" +#include "manif/impl/lie_group_base.h" +#include "manif/impl/tangent_base.h" + +#include "manif/impl/so3/SO3_properties.h" +#include "manif/impl/so3/SO3_base.h" +#include "manif/impl/so3/SO3Tangent_base.h" +#include "manif/impl/so3/SO3.h" +#include "manif/impl/so3/SO3Tangent.h" +#include "manif/impl/so3/SO3_map.h" +#include "manif/impl/so3/SO3Tangent_map.h" + +#endif /* _MANIF_SO3_H_ */ diff --git a/third_party/manif/0.0.5/include/manif/algorithms/average.h b/third_party/manif/0.0.5/include/manif/algorithms/average.h new file mode 100644 index 00000000..acb40d05 --- /dev/null +++ b/third_party/manif/0.0.5/include/manif/algorithms/average.h @@ -0,0 +1,274 @@ +#ifndef _MANIF_MANIF_AVERAGE_H_ +#define _MANIF_MANIF_AVERAGE_H_ + +#include "manif/impl/lie_group_base.h" +//#include "manif/interpolation.h" +#include +namespace manif { + +//template